From a74ceef5550fbba97414aab9def137f45a69bb15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arsenije=20Savi=C4=87?= Date: Thu, 1 Jun 2023 06:39:54 -0600 Subject: [PATCH] chore: release 2.26.0 (#2192) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(develop): release 2.25.1 * feat(proposals) v2 cleanup (#2096) * feat(proposal-list): removed view selector from filter widget and added titles with counters (#2061) * feat(proposal-list): improved filter widget (#2061) (cherry picked from commit 388e40df91362328268c9ec862f91d6a2749efed) (cherry picked from commit f3177eb5cead242931e509d6d3e937eaf37a971e) (cherry picked from commit 4f6701b8889ae5b830bffab6f701475b991500f8) * feat(proposal-card): improved proposal card styles in proposals page (#2061) * feat(proposal-list): added proposal history widget (#2061) (cherry picked from commit 175a47efbadc06cd8ba5ee0c118e6447067a62db) (cherry picked from commit 5f6811e37e9208ec3d540603fd35c61549782992) (cherry picked from commit f4007cff364bfebdc12584ba8277617a84340ed6) * feat(proposal-list): fixed view selector in filter-widget (#2061) * feat(proposal-list): fixed page displaying (#2061) * feat(proposal-list): improved code style (#2061) * feat(proposal-list): improved code * feat(organization): add circles (#2104) (#2119) * feat(organization): added circles widget in organization page (#2104) * feat(organization): improved code (#2104) * feat(circles): add circle dashboard * feat(organization): add slug param to the circles * fix(profile-picture): remove right slot * feat(members): add member actions * feat(circle-card): add slug * refactor(circle): remove commented code * feat(dao-proposal-history): add circle doc * feat(circles): add backend integration * feat(circle): add subscribeToMore for dao circle detail * feat(circle): add dao circle detail subscription * feat(circle): add subcircles --------- Co-authored-by: Arsenije Savic * feat: proposal details design updates (#2123) * feat(proposal-details): updated voting widget styles * feat(proposal-details): updated comments widget styles * feat(proposal-details): updated proposal details page styles * feat: policy proposal version history (#2105) (#2112) * feat(version-history): added version history component (#2105) * feat(version-history): added missed icons (#2105) * feat(version-history): temporarily hide component (#2105) * feat(version-history): fixed comment * feat: eaas (#2034) * feat: eaas * fix: remove console.log * feat(ecosystem-info): add domain const * refactor(ecosystem-info): clean up * feat: ecosystem filter (#1557) (#2102) * feat(explore-page): added ecosystem filter widget in explore page (#1557) * feat(explore-page): added top icon (#1557) * feat(explore-page): added few fields in graphql (#1557) * feat(explore-page): explore by widget moved to a separate component (#1557) * feat(explore-page): created new component ecosystem-card (#1557) * fix(dao): action clean up * fix(create-dho-widget): remove lorem ipsum * fix(profile-card): remove try catch * fix(ecosystem-checkout): add plan const * refactor(router): remove unsude route * refactor(dao): remove created date * style(create-dho-widget): add todo for copy * refactor(ecosystem): add ecosystem domain const * refactor(explore-by-widget): add EXPLORE_BY const * refactor(ecosystem-info): add check for form domain * refactor(explore-by-widget): swap select fn with change * refactor(explore): rename displayingItemsType to exploreBy * refactor(wallet-hypha): add token computed * refactor(wallet-hypha): remove commented code * feat(ecosystem-checkout): add waitingForActivationInterval * feat(ecosystem-checkout): add CHECKOUT_STATE * refactor: add explore by const --------- Co-authored-by: Evgeni B * feat(configuration): add multi sig (#2126) * fix: update ual-seeds and hypha-dao/ppp-client-api libraries (#2125) * refactor(ts): common components to ts (#2114) * feat: add prettier and volar pug plugin * refactor(ts): common components to ts * fix: remove import * fix: run yarn * fix(prettier): prettier configuration for pug * build(yarn): update lock file * feat(proposals): proposal creation wizard v2 (#2127) * feat(proposals): added quest-claim-widget component (#2107) * feat(proposals): addedui part for quest progression component (#2106) * feat(proposal-creation): update config for new proposal-creation flow - intermediate commit (#1980) * feat(proposal-creation): added config for core - apply flow (#1980) * feat(proposal-creation): added config for core - create flow (#1980) * feat(config): update copy for proposal creation * fix(proposal-type): add correct styling * feat(step-description): add label to parent circle * feat: add circle proposal * feat(proposal-creation): improved ipfs component * feat(proposal-creation): improved styles for q-date component * feat(proposal-creation): fixed titles, structures and designs for proposal creation - core flow * feat(proposal-creation): update config for proposal creation core flow * fix(dao-proposals-stage): comment parent circle * feat(step-description): list circles from backend * feat(dao-proposals-history): add circle type * feat(proposal-creation): integrate backend part for create policy type proposal * feat(proposal-creation): fixed edit possibility for staging proposals * feat(proposal-creation): integrate api for quest start proposal * feat(quest): add backend implemntation * feat: add quest proposal * feat(proposal-creation): added new dynamic getter for check member type * feat(proposal-creation): integrate api for policy version history (#2105) (#2124) * feat(quest-progression): integrate api for quest progression widget (#2106) * feat: add copy changes * refactor: proposal create * refactor: proposal create * feat(circle-budget): integrate circle budget creation with backend * feat(proposal-creation): integrate api for poll proposal type creation * refactor: clean up --------- Co-authored-by: Evgeni B Co-authored-by: Evgeni B * chore: remove console.log * fix(proposal): rename compensation to payout * fix(proposals): add isApplying * feat: add eos account support (#2045) * feat: add github actions for deploying eos mainnet and eos testnet instances * feat: retrieve the configuration from github environment secrets and variables * feat: retrieve the configuration from github environment secrets and variables * feat: add github actions for deploying eos mainnet and eos testnet instances * feat: retrieve the configuration from github environment secrets and variables * feat: retrieve the configuration from github environment secrets and variables * feat: use DHO with EOS account * feat: add login with EOS * fix: replace hardcoded kv contract name with config variable * fix: remove hardcoded contract names * fix: add missing spaces, make lint happy * fix: add BASE_APP as app id * fix: force new deploy - rollback * fix: remove unused DGraph call, force deploy to EOS MainNet DHO * fix: fix deploy to production EOS * fix: set root dao slug as env variable * fix: temp fix for redirect * fix(configuration): add correct variable name (#2120) * chore: release 2.5.2 Release-As: 2.5.2 * build(eslint): remove console.log * chore: release 2.5.3 Release-As: 2.5.3 * fix: update the ppp-client-api dependency version * fix: fix typo; deploy updated instance --------- Co-authored-by: Arsenije Savić * fix: update eos deployment workflows * fix(home): members count in dashboard (#2132) * fix(proposal-creation): added compensation widget to review step (#2133) * feat(proposal-details): added parent circle for proposal details with circle type (#2130) * feat(proposal-details): added parent circle for proposal details with circle type * fix(proposal-creation): policy type creation * fix(proposal-editing): returns the previously selected parent circle when edited (#DEV-616) (#2135) * fix(proposal-view): added circle widget in review step (#DEV-615,620) (#2136) * fix(proposal-card): proposal publishing time (#DEV-617) (#2137) * fix(configuration): add ability to save all params (#2131) * fix(multi-sig): remove console.log * fix(explore): colors in explore by widget (#DEV-632) (#2142) * fix(explore): explore page improvements (#2143) * fix(explore): remove view selector from filter (#DEV-634) * fix(explore): dho card layout (#DEV-633) * ci: implement deployment actions for new workflow (#2129) * fix(configuration): add correct variable name (#2120) * chore: release 2.5.2 Release-As: 2.5.2 * build(eslint): remove console.log * chore: release 2.5.3 Release-As: 2.5.3 * ci: update the workflow actions * fix: replace usage of ::set-output * fix: add credentials and deploy step * fix: add check to not create bucket if it already exists * feat: create and configure distribution if it doesn'te exists already * feat: get branch name * fix: create cloudfront distribution * ci: deploy to production on published release * ci: add all conventional commit branch types --------- Co-authored-by: Arsenije Savić * refactor(configuration): multi-sig clean up (#2144) * refactor(configuration): configuration multi-sig clean up * refactor(configuraion): feedback cleanup * feat(circles): swap getDao with queryCircle (#2139) * refactor(proposal): change budget copy (#2138) * fix(circles-widget): improved circles widget ui in circle budget distribution tab (#DEV-594) (#2145) * chore(api): add console.error * chore(dev): add sentry dsn * fix(dao-badges): query only approved * chore(api): add full error logging * fix: eos specific variables (#2149) * fix(proposal): remove active tag for generic contribution proposal type (#DEV-641) (#2150) * fix(side-panel): improved side menu (#DEV-583) (#2151) * fix: use root dao slug instead of app default route variable (#2157) * fix: use root dao slug instead of app default route variable * ci: add github action to destroy resources when branch is deleted * fix: fix dev env variables * fix(organization-assets): bug with archetypes not loading (#DEV-662) (#2159) * fix(filter-widget): search filter box bug (#DEV-663) (#2158) * fix(badges): apply button (#DEV-659) (#2160) * fix(proposal-creation): removed reset button from duration step (#DEV-674) (#2163) * fix(explore): ecosystems filter (#DEV-678) (#2167) * fix(proposal-history): hide staging and voting proposals in history page (#DEV-614) (#2134) * fix(proposal-history): hide staging and voting proposals in history page (#DEV-614) * fix(proposal-history): query for getting proposal history * fix(proposal-history): changed values to constants * fix: proposal history page design (DEV-631) (#2148) * fix(proposal-card): improved design (#DEV-631) - intermediate commit * fix(proposal-card): improved design (#DEV-631) - finally * fix(proposal-history): changed values to constants * feat(proposal-creation): added poll proposal to the core (#DEV-666) (#2161) * feat(proposal-creation): added poll proposal to the core (#DEV-666) * fix: added dynamic check for voting method * fix(dho-card): added missed prop (#DEV-677) (#2168) * fix(proposals): ability proposals showing bug (#DEV-685) (#2169) * fix(filter-widget): add new types in proposal filter (#DEV-688) (#2173) * fix(members): spinner bug (#DEV-676) (#2162) * fix(members): spinner bug (#DEV-676) * fix: created hasLastResult method * fix(proposal-creation): added auto fill for title and description in ability type (#DEV-683) (#2172) * fix(proposal-creation): added auto fill for title and description in ability type (#DEV-683) * fix: code improvements * fix(proposal-card): added parent circle name in dho-card (#DEV-691) (#2171) * fix(proposal-card): added parent circle name in dho-card (#DEV-691) * fix: code improvements * fix(proposal-creation): creation poll proposal bug (#DEV-692) (#2170) * fix(proposal-creation): creation poll proposal bug (#DEV-692) * fix: remove console.log * fix(proposal-creation): duration now showing on quest proposal (#DEV-684) (#2182) * fix(proposal-creation): bug with not showing compensation elements on budget proposal (#DEV-681) (#2181) * fix(step-duration): added default value for start date and period (#DEV-673) (#2179) * fix(proposal-creation): change computed to method (#2178) * fix(proposal-list): filtered proposals count (#DEV-680) (#2177) * fix(ecosystems): add missing icons (#DEV-679) (#2176) * fix(explore): hide search bar in explore page (#DEV-695) (#2180) * fix(explore): hide search bar in explore page (#DEV-695) * fix(search): remove search box from all pages * fix(policy): added parent policy select in proposal creation (#DEV-689) (#2183) * feat: treasury page (#2184) * feat(treasury): integrated new UI with dummy data for treasury page (#DEV-626) * feat(treasury): integrated new UI with dummy data for treasury page (#DEV-626) * feat(treasury): added subscription under widget * feat(treasury): integrate api for create multisig, approve multisig and get multisigs list * feat(treasury): integrated remaining api * fix(treasury): select row bug * fix(treasury): changed telos icon * fix(treasury): changed values to constants * refactor: remove console.log --------- Co-authored-by: Arsenije Savic * fix: merge conflict * refactor(dho): move settings getter * fix(wallet): add all address redemption * feat(treasury): add polling * feat(templates): templates modal UI (#DEV-667) (#2166) * feat(templates): created templates modal component with start step (#DEV-667) * feat(templates): added modal config file and second step * feat(templates): added setup state for templates modal * feat(templates): improved config file * feat(templates): added ui for options details step * feat(templates): added proposal details step * refactor(organization): remove template * refactor(dho-selector): clean up * fix(proposal-list): add margins * fix(configuration): save url only when changed * feat(actions): add initDAOTemplate function * refactor: clean up --------- Co-authored-by: Arsenije Savic * fix: format currency in treasury tables (#2185) * feat(gql): add types codegen (#2141) * feat: add prettier and volar pug plugin * refactor(ts): common components to ts * fix: remove import * fix: run yarn * fix(prettier): prettier configuration for pug * feat(codegen): add codegen for gql types * fix: merge issue * fix: load graphql url from environment variable --------- Co-authored-by: Alex-IS * feat(templates): added modal config file and second step * feat(templates): added setup state for templates modal * refactor: clean up * fix(proposal-creation): integrated new ui for attachments (#DEV-672) (#2186) * fix: remove console log that breaks the build * feat(proposal-view): remove voting method from proposal review (#DEV-740) (#2187) * fix(proposal): added circle widget for budget proposal type (#DEV-738) (#2189) * fix(proposal-view): added token widget for budget proposal type (#DEV-739) (#2188) * ci: add missing health endpoint variable * fix(profile): remove email and sms card (#2164) * fix: remove email and sms card add some debug statements and fake email * fix: adding missing profile fields as needed Fixes DEV-687 * fix: remove some unneeded printouts * fix(profile): added quests tab in profile page (#DEV-741) (#2190) * fix(profile): added quests tab in profile page (#DEV-741) * refactor: add const insted of string --------- Co-authored-by: Arsenije Savic * refactor: remove console.log * refactor(multi-dho-layout): remove template modal * refactor: remove console * fix: the loading of eos testnet (#2193) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Evgeni B Co-authored-by: Alex Co-authored-by: Irving Puga Co-authored-by: Evgeni B Co-authored-by: Nikolaus Heger --- .env-eos-mainnet.example | 41 + .env-eos-testnet.example | 42 + .env.example | 1 - .eslintrc.js | 5 +- .github/workflows/deploy-dev.yml | 18 +- .github/workflows/deploy-eos-dev.yml | 39 +- .github/workflows/deploy-eos-prod.yml | 73 +- .github/workflows/deploy-prod.yml | 14 +- .github/workflows/deploy-staging.yml | 2 +- .github/workflows/deploy.branch.yml | 124 + .github/workflows/destroy.branch.yml | 47 + .prettierrc.cjs | 30 + CHANGELOG.md | 29 +- codegen.ts | 37 + cypress/support/component.js | 2 +- package-lock.json | 1329 +- package.json | 21 +- public/svg/create-new-dao.svg | 1 + public/svg/icon-anchor.svg | 3 + public/svg/icon-gallery.svg | 5 + quasar.conf.js | 8 +- src/App.vue | 2 + src/assets/icons/attachments/camera.svg | 3 + src/assets/icons/attachments/cloud.svg | 6 + src/assets/icons/attachments/doc.svg | 3 + src/assets/icons/attachments/picture.svg | 3 + .../icons/ecosystem/socio-ecological.svg | 5 + src/assets/icons/ecosystem/socio-economic.svg | 3 + .../icons/ecosystem/socio-political.svg | 5 + .../icons/ecosystem/socio-psychological.svg | 3 + src/assets/icons/tlos.png | Bin 0 -> 42075 bytes src/assets/images/scratch-option-img.png | Bin 0 -> 91297 bytes src/assets/images/template-option-img.png | Bin 0 -> 72597 bytes src/boot/api.js | 70 +- src/boot/axios.js | 6 +- src/boot/config.js | 80 +- src/boot/dgraph.js | 107 - src/boot/matomo.js | 12 +- src/boot/ppp.js | 2 +- src/boot/ual.js | 2 +- src/components.d.ts | 10 + .../assignments/assignment-radio.stories.js | 3 - .../assignments/assignment-radio.vue | 11 - src/components/common/base-banner.vue | 49 +- src/components/common/button-card.vue | 75 +- src/components/common/button-radio.vue | 124 +- src/components/common/chips.vue | 65 +- src/components/common/color-palette.vue | 43 +- src/components/common/coming-soon-tag.vue | 33 +- .../common/confirm-action-modal.vue | 74 +- src/components/common/edit-controls.vue | 58 +- src/components/common/empty-widget-label.vue | 18 +- .../common/explore-by-widget.stories.js | 22 + src/components/common/explore-by-widget.vue | 66 + src/components/common/info-tooltip.vue | 21 +- src/components/common/input-editor.vue | 22 +- src/components/common/loading-spinner.vue | 12 +- src/components/common/payout-amounts.vue | 29 +- src/components/common/progress-percentage.vue | 61 +- src/components/common/token-logo.vue | 49 +- src/components/common/token-value.vue | 51 +- .../common/upvote-delegate-widget.vue | 135 +- src/components/common/widget-editable.vue | 98 +- src/components/common/widget-more-btn.vue | 33 +- src/components/common/widget.vue | 79 +- src/components/dao/multisig-modal.vue | 228 + src/components/dao/settings-community.vue | 1 - src/components/dao/settings-general.vue | 23 +- ...-members.stories.js => members.stories.js} | 8 +- src/components/dashboard/new-members.vue | 37 - .../ecosystem/ecosystem-card.stories.js | 22 + src/components/ecosystem/ecosystem-card.vue | 78 + src/components/ecosystem/ecosystem-info.vue | 217 + src/components/filters/filter-widget.vue | 20 +- src/components/form/custom-period-input.vue | 10 +- src/components/ipfs/input-file-ipfs.vue | 14 +- src/components/ipfs/ipfs-image-viewer.vue | 21 +- src/components/navigation/dho-card.vue | 101 +- src/components/navigation/top-navigation.vue | 6 +- .../organization-asset/asset-card.vue | 6 +- .../create-badge-widget.stories.js | 2 +- .../create-badge-widget.vue | 2 +- src/components/organization/circle-card.vue | 109 +- .../organization/circles-widget.vue | 131 +- .../organization/create-dho-widget.vue | 8 +- src/components/organization/members.vue | 57 + ...ry-widget.stories.js => tokens.stories.js} | 10 +- .../{treasury-widget.vue => tokens.vue} | 12 +- .../profiles/active-assignments.vue | 42 +- src/components/profiles/members-list.vue | 7 +- src/components/profiles/profile-card.vue | 84 +- src/components/profiles/profile-picture.vue | 9 +- src/components/profiles/proposal-item.vue | 6 +- src/components/profiles/wallet-hypha.vue | 92 + src/components/profiles/wallet.vue | 6 +- src/components/proposals/comments-widget.vue | 3 +- .../proposals/creation-stepper.stories.js | 22 +- .../proposals/one-time-activity-header.vue | 8 +- .../proposals/proposal-card-chips.vue | 82 +- src/components/proposals/proposal-card.vue | 101 +- src/components/proposals/proposal-list.vue | 3 +- src/components/proposals/proposal-view.vue | 212 +- .../proposals/quest-claim-widget.stories.js | 21 + .../proposals/quest-claim-widget.vue | 29 + .../proposals/quest-progression.stories.js | 21 + .../proposals/quest-progression.vue | 148 + .../proposals/version-history.stories.js | 19 + src/components/proposals/version-history.vue | 77 + src/components/proposals/voter-list.vue | 12 +- src/components/proposals/voting.vue | 2 +- src/components/templates/config/config.json | 355 + src/components/templates/templates-modal.vue | 311 + src/const.js | 84 + src/css/quasar-classes-override.styl | 17 + src/css/typography.styl | 82 + src/generated/gql.ts | 27805 ++++++++++++++++ .../subscription/dao-active.subscription.gql | 2 +- src/layouts/DhoSelector.vue | 36 +- src/layouts/MultiDhoLayout.vue | 81 +- src/mixins/proposals.js | 12 +- src/pages/dho/Circle.vue | 146 + src/pages/dho/Configuration.vue | 304 +- src/pages/dho/Ecosystem.vue | 406 + src/pages/dho/Explore.vue | 87 +- src/pages/dho/Home.vue | 17 +- src/pages/dho/Members.vue | 26 +- src/pages/dho/Organization.vue | 82 +- src/pages/dho/OrganizationalAssets.vue | 2 +- src/pages/dho/Treasury.vue | 701 +- src/pages/ecosystem/EcosystemChekout.vue | 199 + src/pages/onboarding/create.vue | 24 +- src/pages/profiles/Profile.vue | 120 +- src/pages/proposals/ProposalCreate.vue | 27 +- src/pages/proposals/ProposalDetail.vue | 110 +- src/pages/proposals/ProposalHistory.vue | 14 +- src/pages/proposals/ProposalList.vue | 76 +- .../proposals/create/OptionsArchetypes.vue | 77 +- src/pages/proposals/create/OptionsBadges.vue | 88 +- .../proposals/create/OptionsPolicies.vue | 74 + src/pages/proposals/create/OptionsQuests.vue | 106 + .../proposals/create/StepDescription.vue | 243 - src/pages/proposals/create/StepDetails.vue | 316 + ...{StepDateDuration.vue => StepDuration.vue} | 152 +- src/pages/proposals/create/StepIcon.vue | 5 +- .../{StepCompensation.vue => StepPayout.vue} | 26 +- .../proposals/create/StepProposalType.vue | 110 +- src/pages/proposals/create/StepReview.vue | 24 +- src/pages/proposals/create/config.json | 797 +- .../proposals/create/config_backup_mvp.json | 6 +- src/pages/search/Results.vue | 10 +- src/query/account/dao-community-member.gql | 8 + src/query/account/dao-core-member.gql | 8 + src/query/archetypes/archetypes.gql | 15 - src/query/assignments/assignments-past.gql | 3 - src/query/assignments/total-assignments.gql | 5 - src/query/badges/badges-options.gql | 2 +- src/query/badges/badges.gql | 12 - .../dao-circle-details-review-step.gql | 26 + src/query/circles/dao-circle-details-sub.gql | 31 + src/query/circles/dao-circle-details.gql | 31 + src/query/circles/dao-circle-list.gql | 11 + src/query/circles/dao-circles.gql | 37 + src/query/dao-active.gql | 109 +- src/query/dao-created.gql | 2 +- src/query/dao-draft-created.gql | 71 + src/query/dao/dao-list-asc.gql | 2 +- src/query/dao/dao-list-info.gql | 2 +- src/query/dao/dao-list-recent.gql | 2 +- src/query/ecosystem/ecosystem-child-list.gql | 38 + src/query/ecosystem/ecosystem-info.gql | 15 + src/query/ecosystem/ecosystems-list.gql | 25 + src/query/main-dho.gql | 5 + src/query/policy/dao-policy-list.gql | 11 + .../policy/dao-policy-version-history.gql | 7 + src/query/profile/profile-assignments.gql | 2 +- src/query/profile/profile-contributions.gql | 2 +- src/query/profile/profile-quests.gql | 48 + src/query/profile/profile.gql | 98 - src/query/profile/profile.graphql | 165 - .../proposals/dao-active-proposal-count.gql | 2 +- .../proposals/dao-proposal-detail-subs.gql | 108 + src/query/proposals/dao-proposal-detail.gql | 339 +- .../dao-proposals-active-vote-subs.gql | 2 +- .../proposals/dao-proposals-active-vote.gql | 202 +- src/query/proposals/dao-proposals-active.gql | 2 +- src/query/proposals/dao-proposals-count.gql | 2 +- src/query/proposals/dao-proposals-history.gql | 315 +- .../proposals/dao-proposals-stage-subs.gql | 3 +- src/query/proposals/dao-proposals-stage.gql | 126 +- src/query/proposals/dao-proposals-subs.gql | 192 - src/query/proposals/proposal-detail.gql | 189 - src/query/proposals/proposals-active.gql | 126 - src/query/quests/dao-quest-list.gql | 9 + src/query/quests/dao-quest-progression.gql | 15 + src/query/test.gql | 2 +- .../treasury/dao-multisig-sign-requests.gql | 33 + src/query/treasury/dao-redemptions.gql | 5 + src/query/treasury/dao-treasurers.gql | 16 - src/query/treasury/dao-treasury-account.gql | 7 + src/query/treasury/dao-treasury-id.gql | 7 + src/query/upvote-election-data-subs.gql | 2 +- .../upvote-election-voted-users-subs.gql | 2 +- src/router/index.js | 5 +- src/router/routes.js | 37 +- src/store/accounts/actions.js | 26 + src/store/accounts/getters.js | 1 + src/store/accounts/mutations.js | 4 + src/store/dao/actions.js | 437 +- src/store/dao/getters.js | 9 +- src/store/dao/mutations.js | 221 +- src/store/dao/state.js | 1 + src/store/payments/actions.js | 8 +- src/store/profiles/actions.js | 155 +- src/store/proposals/index.js | 196 +- src/store/treasury/actions.js | 2 +- src/utils/diff.js | 112 + src/utils/proposal-filter.js | 51 +- src/utils/proposal-parsing.js | 258 +- tsconfig.json | 9 +- yarn.lock | 1883 +- 220 files changed, 40823 insertions(+), 3804 deletions(-) create mode 100644 .env-eos-mainnet.example create mode 100644 .env-eos-testnet.example create mode 100644 .github/workflows/deploy.branch.yml create mode 100644 .github/workflows/destroy.branch.yml create mode 100644 .prettierrc.cjs create mode 100644 codegen.ts create mode 100644 public/svg/create-new-dao.svg create mode 100644 public/svg/icon-anchor.svg create mode 100644 public/svg/icon-gallery.svg create mode 100644 src/assets/icons/attachments/camera.svg create mode 100644 src/assets/icons/attachments/cloud.svg create mode 100644 src/assets/icons/attachments/doc.svg create mode 100644 src/assets/icons/attachments/picture.svg create mode 100644 src/assets/icons/ecosystem/socio-ecological.svg create mode 100644 src/assets/icons/ecosystem/socio-economic.svg create mode 100644 src/assets/icons/ecosystem/socio-political.svg create mode 100644 src/assets/icons/ecosystem/socio-psychological.svg create mode 100644 src/assets/icons/tlos.png create mode 100644 src/assets/images/scratch-option-img.png create mode 100644 src/assets/images/template-option-img.png create mode 100644 src/components.d.ts create mode 100644 src/components/common/explore-by-widget.stories.js create mode 100644 src/components/common/explore-by-widget.vue create mode 100644 src/components/dao/multisig-modal.vue rename src/components/dashboard/{new-members.stories.js => members.stories.js} (88%) delete mode 100644 src/components/dashboard/new-members.vue create mode 100644 src/components/ecosystem/ecosystem-card.stories.js create mode 100644 src/components/ecosystem/ecosystem-card.vue create mode 100644 src/components/ecosystem/ecosystem-info.vue create mode 100644 src/components/organization/members.vue rename src/components/organization/{treasury-widget.stories.js => tokens.stories.js} (70%) rename src/components/organization/{treasury-widget.vue => tokens.vue} (91%) create mode 100644 src/components/profiles/wallet-hypha.vue create mode 100644 src/components/proposals/quest-claim-widget.stories.js create mode 100644 src/components/proposals/quest-claim-widget.vue create mode 100644 src/components/proposals/quest-progression.stories.js create mode 100644 src/components/proposals/quest-progression.vue create mode 100644 src/components/proposals/version-history.stories.js create mode 100644 src/components/proposals/version-history.vue create mode 100644 src/components/templates/config/config.json create mode 100644 src/components/templates/templates-modal.vue create mode 100644 src/const.js create mode 100644 src/generated/gql.ts create mode 100644 src/pages/dho/Circle.vue create mode 100644 src/pages/dho/Ecosystem.vue create mode 100644 src/pages/ecosystem/EcosystemChekout.vue create mode 100644 src/pages/proposals/create/OptionsPolicies.vue delete mode 100644 src/pages/proposals/create/StepDescription.vue create mode 100644 src/pages/proposals/create/StepDetails.vue rename src/pages/proposals/create/{StepDateDuration.vue => StepDuration.vue} (70%) rename src/pages/proposals/create/{StepCompensation.vue => StepPayout.vue} (96%) create mode 100644 src/query/account/dao-community-member.gql create mode 100644 src/query/account/dao-core-member.gql delete mode 100644 src/query/archetypes/archetypes.gql delete mode 100644 src/query/assignments/total-assignments.gql delete mode 100644 src/query/badges/badges.gql create mode 100644 src/query/circles/dao-circle-details-review-step.gql create mode 100644 src/query/circles/dao-circle-details-sub.gql create mode 100644 src/query/circles/dao-circle-details.gql create mode 100644 src/query/circles/dao-circle-list.gql create mode 100644 src/query/circles/dao-circles.gql create mode 100644 src/query/dao-draft-created.gql create mode 100644 src/query/ecosystem/ecosystem-child-list.gql create mode 100644 src/query/ecosystem/ecosystem-info.gql create mode 100644 src/query/ecosystem/ecosystems-list.gql create mode 100644 src/query/policy/dao-policy-list.gql create mode 100644 src/query/policy/dao-policy-version-history.gql create mode 100644 src/query/profile/profile-quests.gql delete mode 100644 src/query/profile/profile.gql delete mode 100644 src/query/profile/profile.graphql delete mode 100644 src/query/proposals/dao-proposals-subs.gql delete mode 100644 src/query/proposals/proposal-detail.gql delete mode 100644 src/query/proposals/proposals-active.gql create mode 100644 src/query/quests/dao-quest-list.gql create mode 100644 src/query/quests/dao-quest-progression.gql create mode 100644 src/query/treasury/dao-multisig-sign-requests.gql delete mode 100644 src/query/treasury/dao-treasurers.gql create mode 100644 src/query/treasury/dao-treasury-account.gql create mode 100644 src/query/treasury/dao-treasury-id.gql create mode 100644 src/utils/diff.js diff --git a/.env-eos-mainnet.example b/.env-eos-mainnet.example new file mode 100644 index 000000000..b2dd55cb5 --- /dev/null +++ b/.env-eos-mainnet.example @@ -0,0 +1,41 @@ +APP_NAME=Hypha DHO - EOS MainNet + +# BLOCKCHAIN CONFIG +NETWORK_CHAIN_ID=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 +BLOCKCHAIN_ENDPOINTS=https://eos.api.eosnation.io + +# BLOCKCHAIN EXPLORER +BLOCKCHAIN_EXPLORER=https://bloks.io/ +BLOCKCHAIN_EXPLORER_BTC=https://www.blockchain.com/btc/tx/ +BLOCKCHAIN_EXPLORER_ETH=https://etherscan.io/tx/ +BLOCKCHAIN_EXPLORER_EOS=https://bloks.io/transaction/ + +# CONTRACTS +DAO_CONTRACT=dao.hypha +TLOSTO_SEEDS=tlosto.seeds +SUPPLY_CONTRACT=voice.hypha +KV_CONTRACT=kv.hypha + +# INFURA +IPFS_URL=ipfs.infura.io +IPFS_PROJECT_ID= +IPFS_PROJECT_SECRET= + +# GRAPHQL +DGRAPH_URL=https://nameless-brook-400051.eu-central-1.aws.cloud.dgraph.io +GRAPHQL_URI=https://nameless-brook-400051.eu-central-1.aws.cloud.dgraph.io/graphql +DGRAPH_AUTH_KEY= + +# HYPHA TOKEN SALES +HYPHA_TOKEN_SALES_ENCODE_KEY= +HYPHA_TOKEN_SALES_URL='https://tokensale.hypha.earth' + +# ONBOARDING AND ACCOUNT CREATION SERVICE +PPP_ENV=eos +ACCOUNT_API_URL=https://9fxmgfe1l5.execute-api.us-east-1.amazonaws.com/eosMainNet +ACCOUNT_API_KEY= + +# MONITORING / TOOLING +SENTRY_DSN= +DOCUMENTATION=https://notepad.hypha.earth/5dC66nNXRVGpb1aTHaRJXw +CHROMATIC_PROJECT_TOKEN= diff --git a/.env-eos-testnet.example b/.env-eos-testnet.example new file mode 100644 index 000000000..621a59ac1 --- /dev/null +++ b/.env-eos-testnet.example @@ -0,0 +1,42 @@ +APP_NAME=Hypha DHO - EOS TestNet + +# BLOCKCHAIN CONFIG +NETWORK_CHAIN_ID=73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d +BLOCKCHAIN_ENDPOINTS=https://jungle4.cryptolions.io +EOS_ENDPOINTS=https://jungle4.cryptolions.io + +# BLOCKCHAIN EXPLORER +BLOCKCHAIN_EXPLORER=https://local.bloks.io/?nodeUrl=jungle4.cryptolions.io&systemDomain=eosio&hyperionUrl=https%3A%2F%2Fjungle4history.cryptolions.io +BLOCKCHAIN_EXPLORER_BTC=https://www.blockchain.com/btc/tx/ +BLOCKCHAIN_EXPLORER_ETH=https://etherscan.io/tx/ +BLOCKCHAIN_EXPLORER_EOS=https://bloks.io/transaction/ + +# CONTRACTS +DAO_CONTRACT=daoxhypha111 +TLOSTO_SEEDS=tlosto.seeds +SUPPLY_CONTRACT=voicexhypha1 +KV_CONTRACT=kvxhypha1111 + +# INFURA +IPFS_URL=ipfs.infura.io +IPFS_PROJECT_ID= +IPFS_PROJECT_SECRET= + +# GRAPHQL +DGRAPH_URL=https://nameless-brook-400226.eu-central-1.aws.cloud.dgraph.io +GRAPHQL_URI=https://nameless-brook-400226.eu-central-1.aws.cloud.dgraph.io/graphql +DGRAPH_AUTH_KEY= + +# HYPHA TOKEN SALES +HYPHA_TOKEN_SALES_ENCODE_KEY= +HYPHA_TOKEN_SALES_URL='https://tokensale.hypha.earth' + +# ONBOARDING AND ACCOUNT CREATION SERVICE +PPP_ENV=eos-test +ACCOUNT_API_URL=https://9fxmgfe1l5.execute-api.us-east-1.amazonaws.com/eosMainNet +ACCOUNT_API_KEY= + +# MONITORING / TOOLING +SENTRY_DSN= +DOCUMENTATION=https://notepad.hypha.earth/5dC66nNXRVGpb1aTHaRJXw +CHROMATIC_PROJECT_TOKEN= diff --git a/.env.example b/.env.example index 2fa59821a..6a86d47a0 100644 --- a/.env.example +++ b/.env.example @@ -21,7 +21,6 @@ DGRAPH_ROOT_HASH=52a7ff82bd6f53b31285e97d6806d886eefb650e79754784e9d923d3df347c9 GRAPHQL_URI=https://alpha-stts.tekit.io/graphql BLOCKCHAIN_ENDPOINTS=https://testnet.telos.caleos.io -EOS_ENDPOINTS='https://eos.greymass.com' TLOSTO_SEEDS=tlosto.seeds SUPPLY_CONTRACT=mtvoicehypha diff --git a/.eslintrc.js b/.eslintrc.js index 093b563a3..c36a64ad9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,8 @@ module.exports = { root: true, + parser: 'vue-eslint-parser', parserOptions: { - parser: 'babel-eslint', + parser: '@typescript-eslint/parser', sourceType: 'module' }, env: { @@ -20,6 +21,8 @@ module.exports = { }, // add your custom rules here rules: { + 'space-before-function-paren': 'off', + semi: ['error', 'never'], // allow async-await 'generator-star-spacing': 'off', // allow paren-less arrow functions diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 52357c4f6..cb5e0b9bb 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -2,11 +2,13 @@ name: Build and Deploy to Development on: push: - branches: [ develop ] + branches: + - develop jobs: build: name: build-dev + environment: telosTestNet runs-on: ubuntu-latest steps: - name: Checkout code @@ -33,10 +35,9 @@ jobs: BLOCKCHAIN_EXPLORER_ETH: 'https://etherscan.io/tx/' BLOCKCHAIN_EXPLORER_EOS: 'https://bloks.io/transaction/' PPP_ENV: 'test' - SENTRY_DSN: '' + SENTRY_DSN: ${{ vars.SENTRY_DSN }} DGRAPH_URL: 'https://alpha-test.tekit.io/' - DGRAPH_ROOT_HASH: '52a7ff82bd6f53b31285e97d6806d886eefb650e79754784e9d923d3df347c91' - BLOCKCHAIN_ENDPOINTS: ${{ secrets.DEV_BLOCKCHAIN_ENDPOINTS }} + BLOCKCHAIN_ENDPOINTS: ${{ vars.BLOCKCHAIN_ENDPOINTS }} TLOSTO_SEEDS: 'tlosto.seeds' SUPPLY_CONTRACT: 'mtvoicehypha' GRAPHQL_URI: 'https://alpha-stts.tekit.io/graphql' @@ -51,7 +52,10 @@ jobs: HYPHA_TOKEN_SALES_URL: 'https://dp9rw57cx84kg.cloudfront.net' HYPHA_TOKEN_SALES_API_URL: 'http://api-tokensale.hypha.earth' HYPHA_TOKEN_SALES_RPC_URL: 'https://telos.greymass.com' - + ROOT_DAO_ID: ${{vars.ROOT_DAO_ID}} + ROOT_DAO_SLUG: ${{vars.ROOT_DAO_SLUG}} + HEALTH_ENDPOINT: ${{ vars.HEALTH_ENDPOINT }} + - name: S3 sync uses: jakejarvis/s3-sync-action@master with: @@ -60,8 +64,8 @@ jobs: AWS_S3_BUCKET: ${{ secrets.DEV_AWS_S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }} - AWS_REGION: 'us-east-1' # optional: defaults to us-east-1 - SOURCE_DIR: 'dist/spa' # optional: defaults to entire repository + AWS_REGION: 'us-east-1' # optional: defaults to us-east-1 + SOURCE_DIR: 'dist/spa' # optional: defaults to entire repository # Invalidate Cloudfront (this action) - name: invalidate diff --git a/.github/workflows/deploy-eos-dev.yml b/.github/workflows/deploy-eos-dev.yml index 7e6f23630..9a61e9927 100644 --- a/.github/workflows/deploy-eos-dev.yml +++ b/.github/workflows/deploy-eos-dev.yml @@ -1,10 +1,8 @@ -name: EOS - Build and Deploy to Development - TestNet +name: EOS - Build and Deploy to Development - TestNet on: push: - branches: - - feat/eos-deploy - - feature/eos-account-support + branches: [develop] jobs: build: @@ -23,28 +21,28 @@ jobs: - name: Use Node.js uses: actions/setup-node@v1 with: - node-version: "16.x" + node-version: '16.x' - run: yarn global add @vue/cli@latest - run: yarn install - run: mv public/chain-manifests-dev.json public/chain-manifests.json - run: mv public/app-manifest-dev.json public/app-manifest.json - run: yarn build env: - APP_NAME: "Hypha DHO - EOS TestNet" + APP_NAME: 'Hypha DHO - EOS TestNet' NETWORK_CHAIN_ID: ${{ vars.NETWORK_CHAIN_ID }} - DAO_CONTRACT: "daoxhypha111" - HYPHA_CONTRACT: "hyphaxhypha1" - SUPPLY_CONTRACT: "voicexhypha1" - MULTISIG_CONTRACT: "msig.hypha" - KV_CONTRACT: "kvxhypha1111" + DAO_CONTRACT: 'daoxhypha111' + HYPHA_CONTRACT: 'hyphaxhypha1' + SUPPLY_CONTRACT: 'voicexhypha1' + MULTISIG_CONTRACT: 'msig.hypha' + KV_CONTRACT: 'kvxhypha1111' PPP_ENV: ${{ vars.PPP_ENV }} ACCOUNT_API_URL: ${{ vars.ACCOUNT_API_URL }} ACCOUNT_API_KEY: ${{ secrets.ACCOUNT_API_KEY }} BLOCKCHAIN_ENDPOINTS: ${{ vars.BLOCKCHAIN_ENDPOINTS }} BLOCKCHAIN_EXPLORER: ${{ vars.BLOCKCHAIN_EXPLORER }} - BLOCKCHAIN_EXPLORER_BTC: "https://www.blockchain.com/btc/tx/" - BLOCKCHAIN_EXPLORER_ETH: "https://etherscan.io/tx/" - BLOCKCHAIN_EXPLORER_EOS: "https://bloks.io/transaction/" + BLOCKCHAIN_EXPLORER_BTC: 'https://www.blockchain.com/btc/tx/' + BLOCKCHAIN_EXPLORER_ETH: 'https://etherscan.io/tx/' + BLOCKCHAIN_EXPLORER_EOS: 'https://bloks.io/transaction/' SENTRY_DSN: ${{ secrets.SENTRY_DSN }} DOCUMENTATION: ${{ vars.DOCUMENTATION }} @@ -54,19 +52,20 @@ jobs: DGRAPH_AUTH_KEY: ${{ secrets.DGRAPH_AUTH_KEY }} GRAPHQL_URI: ${{vars.GRAPHQL_URI}} ROOT_DAO_ID: ${{vars.ROOT_DAO_ID}} + HEALTH_ENDPOINT: ${{ vars.HEALTH_ENDPOINT }} ELASTIC_SEARCH_URL: ${{ vars.ELASTIC_SEARCH_URL }} ELASTIC_SEARCH_API_KEY: ${{ secrets.ELASTIC_SEARCH_API_KEY }} - IPFS_URL: "ipfs.infura.io" - IPFS_PROJECT_ID: "2F5pWHIOMgHji1DeqUT0mGpvySz" + IPFS_URL: 'ipfs.infura.io' + IPFS_PROJECT_ID: '2F5pWHIOMgHji1DeqUT0mGpvySz' IPFS_PROJECT_SECRET: ${{ secrets.IPFS_PROJECT_SECRET }} - IPFS_GATEWAY: "https://hypha.infura-ipfs.io/ipfs/" + IPFS_GATEWAY: 'https://hypha.infura-ipfs.io/ipfs/' HYPHA_TOKEN_SALES_ENCODE_KEY: ${{ secrets.HYPHA_TOKEN_SALES_ENCODE_KEY }} HYPHA_TOKEN_SALES_URL: ${{ vars.HYPHA_TOKEN_SALES_URL }} - HYPHA_TOKEN_SALES_API_URL: "http://api-tokensale.hypha.earth" - HYPHA_TOKEN_SALES_RPC_URL: "https://telos.greymass.com" + HYPHA_TOKEN_SALES_API_URL: 'http://api-tokensale.hypha.earth' + HYPHA_TOKEN_SALES_RPC_URL: 'https://telos.greymass.com' - name: Deploy to S3 bucket run: aws s3 sync ./dist/spa s3://${{ vars.AWS_S3_BUCKET}} --delete @@ -74,6 +73,6 @@ jobs: uses: chetan/invalidate-cloudfront-action@v2 env: DISTRIBUTION: ${{ vars.DISTRIBUTION_ID}} - PATHS: "/*" + PATHS: '/*' AWS_ACCESS_KEY_ID: ${{ secrets.HYPHA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.HYPHA_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/deploy-eos-prod.yml b/.github/workflows/deploy-eos-prod.yml index 42e096c3a..784643f73 100644 --- a/.github/workflows/deploy-eos-prod.yml +++ b/.github/workflows/deploy-eos-prod.yml @@ -1,9 +1,8 @@ name: EOS - Build and Deploy to Production - MainNet on: - push: - branches: - - master + release: + types: [published] jobs: build: @@ -22,41 +21,53 @@ jobs: - name: Use Node.js uses: actions/setup-node@v1 with: - node-version: "16.x" + node-version: '16.x' - run: yarn global add @vue/cli@latest - run: yarn install - run: mv public/chain-manifests-prod.json public/chain-manifests.json - run: mv public/app-manifest-prod.json public/app-manifest.json - run: yarn build env: - APP_NAME: "Hypha DHO" - NETWORK_CHAIN_ID: "1eaa0824707c8c16bd25145493bf062aecddfeb56c736f6ba6397f3195f33c9f" - DAO_CONTRACT: "dao.hypha" - HYPHA_CONTRACT: "hypha.hypha" - ACCOUNT_API_URL: "https://tb3nnn0qa9.execute-api.us-east-1.amazonaws.com/prod" - ACCOUNT_API_KEY: ${{ secrets.PROD_ACCOUNT_API_KEY }} - BLOCKCHAIN_EXPLORER: "https://telos.bloks.io" - BLOCKCHAIN_EXPLORER_BTC: "https://www.blockchain.com/btc/tx/" - BLOCKCHAIN_EXPLORER_ETH: "https://etherscan.io/tx/" - BLOCKCHAIN_EXPLORER_EOS: "https://bloks.io/transaction/" - PPP_ENV: eos - SENTRY_DSN: "https://0b768263dc6247a5a2d309e07f771528@o324628.ingest.sentry.io/4503898341703680" - DOCUMENTATION: "https://notepad.hypha.earth/5dC66nNXRVGpb1aTHaRJXw" - DGRAPH_URL: "https://alpha.tekit.io" - DGRAPH_ROOT_HASH: "52a7ff82bd6f53b31285e97d6806d886eefb650e79754784e9d923d3df347c91" - BLOCKCHAIN_ENDPOINTS: "https://mainnet.telos.net" - TLOSTO_SEEDS: "tlosto.seeds" - SUPPLY_CONTRACT: "voice.hypha" - GRAPHQL_URI: "https://alpha-dhomn.tekit.io/graphql" - ELASTIC_SEARCH_URL: "https://hypha.es.eu-west-1.aws.found.io:9243/dho-mainnet-documents/_search" - ELASTIC_SEARCH_API_KEY: ${{ secrets.PROD_ELASTIC_SEARCH_API_KEY }} - IPFS_URL: "ipfs.infura.io" - IPFS_PROJECT_ID: "2F5pWHIOMgHji1DeqUT0mGpvySz" + APP_NAME: 'Hypha DHO - EOS' + NETWORK_CHAIN_ID: ${{ vars.NETWORK_CHAIN_ID }} + DAO_CONTRACT: 'dao.hypha' + HYPHA_CONTRACT: 'hypha.hypha' + SUPPLY_CONTRACT: 'voice.hypha' + MULTISIG_CONTRACT: 'msig.hypha' + KV_CONTRACT: 'kv.hypha' + PPP_ENV: ${{ vars.PPP_ENV }} + PPP_APP_ID: ${{ vars.PPP_APP_ID }} + ACCOUNT_API_URL: ${{ vars.ACCOUNT_API_URL }} + ACCOUNT_API_KEY: ${{ secrets.ACCOUNT_API_KEY }} + BLOCKCHAIN_ENDPOINTS: ${{ vars.BLOCKCHAIN_ENDPOINTS }} + BLOCKCHAIN_EXPLORER: ${{ vars.BLOCKCHAIN_EXPLORER }} + BLOCKCHAIN_EXPLORER_BTC: 'https://www.blockchain.com/btc/tx/' + BLOCKCHAIN_EXPLORER_ETH: 'https://etherscan.io/tx/' + BLOCKCHAIN_EXPLORER_EOS: 'https://bloks.io/transaction/' + + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + DOCUMENTATION: ${{ vars.DOCUMENTATION }} + + DGRAPH_URL: ${{ vars.DGRAPH_URL }} + DGRAPH_ROOT_HASH: ${{ vars.DGRAPH_ROOT_HASH }} + DGRAPH_AUTH_KEY: ${{ secrets.DGRAPH_AUTH_KEY }} + GRAPHQL_URI: ${{vars.GRAPHQL_URI}} + ROOT_DAO_ID: ${{vars.ROOT_DAO_ID}} + ROOT_DAO_SLUG: ${{vars.ROOT_DAO_SLUG}} + HEALTH_ENDPOINT: ${{ vars.HEALTH_ENDPOINT }} + + ELASTIC_SEARCH_URL: ${{ vars.ELASTIC_SEARCH_URL }} + ELASTIC_SEARCH_API_KEY: ${{ secrets.ELASTIC_SEARCH_API_KEY }} + + IPFS_URL: 'ipfs.infura.io' + IPFS_PROJECT_ID: '2F5pWHIOMgHji1DeqUT0mGpvySz' IPFS_PROJECT_SECRET: ${{ secrets.IPFS_PROJECT_SECRET }} - IPFS_GATEWAY: "https://hypha.infura-ipfs.io/ipfs/" - MULTISIG_CONTRACT: "msigdhohypha" + IPFS_GATEWAY: 'https://hypha.infura-ipfs.io/ipfs/' + HYPHA_TOKEN_SALES_ENCODE_KEY: ${{ secrets.HYPHA_TOKEN_SALES_ENCODE_KEY }} - HYPHA_TOKEN_SALES_URL: "https://tokensale.hypha.earth" + HYPHA_TOKEN_SALES_URL: ${{ vars.HYPHA_TOKEN_SALES_URL }} + HYPHA_TOKEN_SALES_API_URL: 'http://api-tokensale.hypha.earth' + HYPHA_TOKEN_SALES_RPC_URL: 'https://telos.greymass.com' - name: Deploy to S3 bucket run: aws s3 sync ./dist/spa s3://${{ vars.AWS_S3_BUCKET}} --delete @@ -64,6 +75,6 @@ jobs: uses: chetan/invalidate-cloudfront-action@v2 env: DISTRIBUTION: ${{ vars.DISTRIBUTION_ID}} - PATHS: "/*" + PATHS: '/*' AWS_ACCESS_KEY_ID: ${{ secrets.HYPHA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.HYPHA_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index ed344c577..61199a9c1 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -1,9 +1,8 @@ name: Build and Deploy to Production on: - push: - branches: [ master ] - + release: + types: [published] jobs: build: name: build-prod @@ -37,7 +36,6 @@ jobs: SENTRY_DSN: ${{ vars.SENTRY_DSN }} DOCUMENTATION: 'https://notepad.hypha.earth/5dC66nNXRVGpb1aTHaRJXw' DGRAPH_URL: 'https://alpha.tekit.io' - DGRAPH_ROOT_HASH: '52a7ff82bd6f53b31285e97d6806d886eefb650e79754784e9d923d3df347c91' BLOCKCHAIN_ENDPOINTS: 'https://mainnet.telos.net' TLOSTO_SEEDS: 'tlosto.seeds' SUPPLY_CONTRACT: 'voice.hypha' @@ -53,6 +51,9 @@ jobs: HYPHA_TOKEN_SALES_URL: 'https://tokensale.hypha.earth' HYPHA_TOKEN_SALES_API_URL: 'http://api-tokensale.hypha.earth' HYPHA_TOKEN_SALES_RPC_URL: 'https://telos.greymass.com' + ROOT_DAO_ID: ${{vars.ROOT_DAO_ID}} + ROOT_DAO_SLUG: ${{vars.ROOT_DAO_SLUG}} + HEALTH_ENDPOINT: ${{ vars.HEALTH_ENDPOINT }} - name: S3 sync uses: jakejarvis/s3-sync-action@master @@ -62,8 +63,8 @@ jobs: AWS_S3_BUCKET: ${{ secrets.PROD_AWS_S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.PROD_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.PROD_AWS_SECRET_ACCESS_KEY }} - AWS_REGION: 'us-east-1' # optional: defaults to us-east-1 - SOURCE_DIR: 'dist/spa' # optional: defaults to entire repository + AWS_REGION: 'us-east-1' # optional: defaults to us-east-1 + SOURCE_DIR: 'dist/spa' # optional: defaults to entire repository # Invalidate Cloudfront (this action) - name: invalidate @@ -75,7 +76,6 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.PROD_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.PROD_AWS_SECRET_ACCESS_KEY }} - # - name: S3 Sync and Invalidate Cloudfront Distribution # uses: digital-scarcity/s3-sync-action@master # with: diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 8bf9640b9..59d36ad0d 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -2,7 +2,7 @@ name: Build and Deploy to Staging on: push: - branches: [ staging ] + branches: [ master ] jobs: build: diff --git a/.github/workflows/deploy.branch.yml b/.github/workflows/deploy.branch.yml new file mode 100644 index 000000000..278ddd1e0 --- /dev/null +++ b/.github/workflows/deploy.branch.yml @@ -0,0 +1,124 @@ +name: Deploy temporary instance + +on: + push: + branches: + - feat/** + - feature/** + - fix/** + - hotfix/** + - docs/** + - style/** + - refactor/** + - perf/** + - test/** + - build/** + - ci/** + - chore/** + - revert/** + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.HYPHA_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.HYPHA_AWS_SECRET_ACCESS_KEY }} + AWS_REGION: eu-west-1 + NODE_ENV: development + BRANCH_PR_NUMBER: ${{ github.event.number }} + APP_NAME: 'Hypha DHO' + NETWORK_CHAIN_ID: ${{ vars.NETWORK_CHAIN_ID }} + DAO_CONTRACT: ${{ vars.DAO_CONTRACT }} + HYPHA_CONTRACT: ${{ vars.HYPHA_CONTRACT }} + SUPPLY_CONTRACT: ${{ vars.SUPPLY_CONTRACT }} + MULTISIG_CONTRACT: ${{ vars.MULTISIG_CONTRACT }} + KV_CONTRACT: ${{ vars.KV_CONTRACT }} + PPP_ENV: ${{ vars.PPP_ENV }} + ACCOUNT_API_URL: ${{ vars.ACCOUNT_API_URL }} + ACCOUNT_API_KEY: ${{ secrets.ACCOUNT_API_KEY }} + BLOCKCHAIN_ENDPOINTS: ${{ vars.BLOCKCHAIN_ENDPOINTS }} + BLOCKCHAIN_EXPLORER: ${{ vars.BLOCKCHAIN_EXPLORER }} + BLOCKCHAIN_EXPLORER_BTC: ${{ vars.BLOCKCHAIN_EXPLORER_BTC }} + BLOCKCHAIN_EXPLORER_ETH: ${{ vars.BLOCKCHAIN_EXPLORER_ETH }} + BLOCKCHAIN_EXPLORER_EOS: ${{ vars.BLOCKCHAIN_EXPLORER_EOS }} + + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + DOCUMENTATION: ${{ vars.DOCUMENTATION }} + + DGRAPH_URL: ${{ vars.DGRAPH_URL }} + DGRAPH_ROOT_HASH: ${{ vars.DGRAPH_ROOT_HASH }} + DGRAPH_AUTH_KEY: ${{ secrets.DGRAPH_AUTH_KEY }} + GRAPHQL_URI: ${{vars.GRAPHQL_URI}} + ROOT_DAO_ID: ${{vars.ROOT_DAO_ID}} + + ELASTIC_SEARCH_URL: ${{ vars.ELASTIC_SEARCH_URL }} + ELASTIC_SEARCH_API_KEY: ${{ secrets.ELASTIC_SEARCH_API_KEY }} + + IPFS_URL: ${{ secrets.IPFS_URL }} + IPFS_PROJECT_ID: ${{ secrets.IPFS_PROJECT_ID }} + IPFS_PROJECT_SECRET: ${{ secrets.IPFS_PROJECT_SECRET }} + IPFS_GATEWAY: ${{ secrets.IPFS_GATEWAY }} + + HYPHA_TOKEN_SALES_ENCODE_KEY: ${{ secrets.HYPHA_TOKEN_SALES_ENCODE_KEY }} + HYPHA_TOKEN_SALES_URL: ${{ vars.HYPHA_TOKEN_SALES_URL }} + HYPHA_TOKEN_SALES_API_URL: ${{ vars.HYPHA_TOKEN_SALES_API_URL }} + HYPHA_TOKEN_SALES_RPC_URL: ${{ vars.HYPHA_TOKEN_SALES_RPC_URL }} + +jobs: + build_and_deploy: + name: 'Build and Deploy App' + environment: telosTestNet + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Generate branch name + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV + - name: checkout + uses: actions/checkout@v3 + - name: Create S3 bucket + run: | + if aws s3api head-bucket --bucket ${{ env.BRANCH_NAME }} 2>/dev/null; then + echo "Bucket exists" + else + aws s3 mb s3://${{ env.BRANCH_NAME }} --region ${{ env.AWS_REGION }} + echo "Bucket created" + fi + + - name: Check CloudFront Distribution + run: | + DISTRIBUTION_ID=$(aws cloudfront list-distributions --query "DistributionList.Items[?Aliases.Items[0]=='${{ env.BRANCH_NAME }}'].Id" --output text) + if [ -z "$DISTRIBUTION_ID" ] + then + echo "Creating CloudFront distribution" + aws cloudfront create-distribution \ + --origin-domain-name ${{ env.BRANCH_NAME }}.s3.amazonaws.com \ + --default-root-object index.html + else + echo "CloudFront distribution exists with ID: $DISTRIBUTION_ID" + echo "::set-output name=cf-dist-id::$DISTRIBUTION_ID" + fi + + - name: Get CloudFront Distribution DNS Name + id: get_cf_dns_name + run: | + echo "::set-output name=distribution_dns_name::$(aws cloudfront get-distribution-config --id ${{ steps.create_cloudfront.outputs.cloudfront_distribution_id }} --query 'DistributionConfig.ViewerCertificate.ACMCertificateArn' --output text | cut -d '/' -f 2)" + + - name: Create CNAME entry + if: steps.get_cf_dns_name.outputs.distribution_dns_name != '' + run: | + echo ${{ env.BRANCH_NAME }} ${{ steps.get_cf_dns_name.outputs.distribution_dns_name }} >> /etc/hosts + aws route53 change-resource-record-sets --hosted-zone-id ${{ env.AWS_HOSTED_ZONE_ID }} --change-batch '{"Changes":[{"Action":"UPSERT","ResourceRecordSet":{"Name":"${env.BRANCH_NAME}.","Type":"CNAME","TTL":300,"ResourceRecords":[{"Value":"${steps.get_cf_dns_name.outputs.distribution_dns_name}"}]}}]}' + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: '16.x' + - run: yarn global add @vue/cli@latest + - run: yarn install + - run: mv public/chain-manifests-prod.json public/chain-manifests.json + - run: mv public/app-manifest-prod.json public/app-manifest.json + - run: yarn build + - name: S3 sync + uses: jakejarvis/s3-sync-action@master + with: + args: --follow-symlinks --delete + env: + AWS_S3_BUCKET: ${{ env.BRANCH_NAME }} + AWS_REGION: ${{ env.AWS_REGION }} + SOURCE_DIR: 'dist/spa' diff --git a/.github/workflows/destroy.branch.yml b/.github/workflows/destroy.branch.yml new file mode 100644 index 000000000..9f463f30b --- /dev/null +++ b/.github/workflows/destroy.branch.yml @@ -0,0 +1,47 @@ +name: Destroy temporary instance + +on: + delete: + branches: + - feat/** + - feature/** + - fix/** + - hotfix/** + - docs/** + - style/** + - refactor/** + - perf/** + - test/** + - build/** + - ci/** + - chore/** + - revert/** + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.HYPHA_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.HYPHA_AWS_SECRET_ACCESS_KEY }} + AWS_REGION: eu-west-1 + NODE_ENV: development + +jobs: + remove_bucket_and_distribution: + runs-on: ubuntu-latest + + steps: + - name: Generate branch name + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV + - name: Checkout Repository + uses: actions/checkout@v3 + - name: Delete CloudFront Distribution + if: github.event.pull_request.merged == true + run: | + DISTRIBUTION_ID=$(aws cloudfront list-distributions --query "DistributionList.Items[?Aliases.Items[0]=='${{ env.BRANCH_NAME }}'].Id" --output text) + if [ ! -z "$DISTRIBUTION_ID" ] + then + aws cloudfront delete-distribution --id $DISTRIBUTION_ID + fi + + - name: Delete S3 Bucket + if: github.event.pull_request.merged == true + run: | + aws s3api delete-bucket --bucket ${{ env.BRANCH_NAME }} --region ${{ secrets.AWS_REGION }} diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 000000000..1a03b30c2 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,30 @@ + +// @ts-check +/// + +/** + * @type {import('prettier').Options} + */ + +module.exports = { + plugins: [require.resolve('@prettier/plugin-pug')], + pugBracketSameLine: false, + pugSingleQuote: false, + pugWrapAttributesThreshold: 1, + pugUseTabs: false, + "spaceBeforeFunctionParen": false, + "arrowParens": "always", + "pugBracketSpacing": false, + "pugIndentOffset": -2, + "pugIndentStart": false, + "semi": false, + "pugPrintWidth": 80, + "pugSingleFileComponentIndentation": true, + "pugAttributeSeparator": "none", + "pugSortAttributes": "asc", + "pugClosingBracketPosition": "new-line", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "printWidth": 80, + } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c90d02b..06c507701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.25.1](https://github.com/hypha-dao/dho-web-client/compare/v2.25.0...v2.25.1) (2023-04-06) + + +### Features + +* add proposal history page ([#2065](https://github.com/hypha-dao/dho-web-client/issues/2065)) ([863b8ed](https://github.com/hypha-dao/dho-web-client/commit/863b8ed55945a165ecc179b3900c3fe0430571a4)) +* **organization:** added circles widget in organization page ([#2104](https://github.com/hypha-dao/dho-web-client/issues/2104)) ([#2111](https://github.com/hypha-dao/dho-web-client/issues/2111)) ([a2358f6](https://github.com/hypha-dao/dho-web-client/commit/a2358f63f0a064c4c44b184296a5295db1423272)) +* **ts:** add typescript support ([#2110](https://github.com/hypha-dao/dho-web-client/issues/2110)) ([320771a](https://github.com/hypha-dao/dho-web-client/commit/320771ae540a9e4aaf6c9571da81ab1451235296)) + + +### Reverts + +* feat(organization): added circles widget in organization page ([#2104](https://github.com/hypha-dao/dho-web-client/issues/2104)) ([#2111](https://github.com/hypha-dao/dho-web-client/issues/2111)) ([#2115](https://github.com/hypha-dao/dho-web-client/issues/2115)) ([3a099da](https://github.com/hypha-dao/dho-web-client/commit/3a099da5227ddf1d7c6ccaff3088855ec6cb9d8b)) + + +### Miscellaneous Chores + +* release 2.25.1 ([658ef6f](https://github.com/hypha-dao/dho-web-client/commit/658ef6f12a949482b35de6850e59e5e01d7daeb8)) + ## [2.24.0](https://github.com/hypha-dao/dho-web-client/compare/v2.23.0...v2.24.0) (2023-03-14) @@ -218,7 +237,7 @@ * **sliding-design:** centering widgets ([#1918](https://github.com/hypha-dao/dho-web-client/issues/1918)) ([#1921](https://github.com/hypha-dao/dho-web-client/issues/1921)) ([69983bd](https://github.com/hypha-dao/dho-web-client/commit/69983bd0f781850578c06d783755d30fe4e79d0c)) * **sliding-design:** issues after feedback ([#1906](https://github.com/hypha-dao/dho-web-client/issues/1906)) ([#1912](https://github.com/hypha-dao/dho-web-client/issues/1912)) ([04aeaf5](https://github.com/hypha-dao/dho-web-client/commit/04aeaf50839ab061d540152c65afc62678e2b78d)) * small fix in router ([#1749](https://github.com/hypha-dao/dho-web-client/issues/1749)) ([846c889](https://github.com/hypha-dao/dho-web-client/commit/846c889e6fc38e95a17bac5459c5e9ebe3e72213)) -* **step-description:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) +* **step-details:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) * **style:** add specificity for rounded border q-input ([d36f94e](https://github.com/hypha-dao/dho-web-client/commit/d36f94ef2a0a92a0c75b445c4279ca3e39e3e8b4)) * **style:** rename rounded-corners to the rounded-full ([#2016](https://github.com/hypha-dao/dho-web-client/issues/2016)) ([cbad8fd](https://github.com/hypha-dao/dho-web-client/commit/cbad8fd98b1b42180d2608fad1adcf716ba7ba91)) * **tablet:** organizational assets page ([44d0bf6](https://github.com/hypha-dao/dho-web-client/commit/44d0bf63cf6a5a21d6755bcf53db620992b22c30)) @@ -455,7 +474,7 @@ * **sliding-design:** centering widgets ([#1918](https://github.com/hypha-dao/dho-web-client/issues/1918)) ([#1921](https://github.com/hypha-dao/dho-web-client/issues/1921)) ([69983bd](https://github.com/hypha-dao/dho-web-client/commit/69983bd0f781850578c06d783755d30fe4e79d0c)) * **sliding-design:** issues after feedback ([#1906](https://github.com/hypha-dao/dho-web-client/issues/1906)) ([#1912](https://github.com/hypha-dao/dho-web-client/issues/1912)) ([04aeaf5](https://github.com/hypha-dao/dho-web-client/commit/04aeaf50839ab061d540152c65afc62678e2b78d)) * small fix in router ([#1749](https://github.com/hypha-dao/dho-web-client/issues/1749)) ([846c889](https://github.com/hypha-dao/dho-web-client/commit/846c889e6fc38e95a17bac5459c5e9ebe3e72213)) -* **step-description:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) +* **step-details:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) * **style:** add specificity for rounded border q-input ([d36f94e](https://github.com/hypha-dao/dho-web-client/commit/d36f94ef2a0a92a0c75b445c4279ca3e39e3e8b4)) * **style:** rename rounded-corners to the rounded-full ([#2016](https://github.com/hypha-dao/dho-web-client/issues/2016)) ([cbad8fd](https://github.com/hypha-dao/dho-web-client/commit/cbad8fd98b1b42180d2608fad1adcf716ba7ba91)) * **tablet:** organizational assets page ([44d0bf6](https://github.com/hypha-dao/dho-web-client/commit/44d0bf63cf6a5a21d6755bcf53db620992b22c30)) @@ -666,7 +685,7 @@ * **sliding-design:** centering widgets ([#1918](https://github.com/hypha-dao/dho-web-client/issues/1918)) ([#1921](https://github.com/hypha-dao/dho-web-client/issues/1921)) ([69983bd](https://github.com/hypha-dao/dho-web-client/commit/69983bd0f781850578c06d783755d30fe4e79d0c)) * **sliding-design:** issues after feedback ([#1906](https://github.com/hypha-dao/dho-web-client/issues/1906)) ([#1912](https://github.com/hypha-dao/dho-web-client/issues/1912)) ([04aeaf5](https://github.com/hypha-dao/dho-web-client/commit/04aeaf50839ab061d540152c65afc62678e2b78d)) * small fix in router ([#1749](https://github.com/hypha-dao/dho-web-client/issues/1749)) ([846c889](https://github.com/hypha-dao/dho-web-client/commit/846c889e6fc38e95a17bac5459c5e9ebe3e72213)) -* **step-description:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) +* **step-details:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) * **style:** add specificity for rounded border q-input ([d36f94e](https://github.com/hypha-dao/dho-web-client/commit/d36f94ef2a0a92a0c75b445c4279ca3e39e3e8b4)) * **tablet:** organizational assets page ([44d0bf6](https://github.com/hypha-dao/dho-web-client/commit/44d0bf63cf6a5a21d6755bcf53db620992b22c30)) * **tablet:** proposal detail styles ([dd45277](https://github.com/hypha-dao/dho-web-client/commit/dd45277cc0e413794c9bc4330653df9c626a78d2)) @@ -837,7 +856,7 @@ * show dynamic deferred on active and archived proposals ([#1578](https://github.com/hypha-dao/dho-web-client/issues/1578)) ([d895d70](https://github.com/hypha-dao/dho-web-client/commit/d895d7020ef78919de618efb197062a80d0495fd)) * **sliding-design:** issues after feedback ([#1906](https://github.com/hypha-dao/dho-web-client/issues/1906)) ([#1912](https://github.com/hypha-dao/dho-web-client/issues/1912)) ([04aeaf5](https://github.com/hypha-dao/dho-web-client/commit/04aeaf50839ab061d540152c65afc62678e2b78d)) * small fix in router ([#1749](https://github.com/hypha-dao/dho-web-client/issues/1749)) ([846c889](https://github.com/hypha-dao/dho-web-client/commit/846c889e6fc38e95a17bac5459c5e9ebe3e72213)) -* **step-description:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) +* **step-details:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) * **style:** add specificity for rounded border q-input ([d36f94e](https://github.com/hypha-dao/dho-web-client/commit/d36f94ef2a0a92a0c75b445c4279ca3e39e3e8b4)) * **tablet:** organizational assets page ([44d0bf6](https://github.com/hypha-dao/dho-web-client/commit/44d0bf63cf6a5a21d6755bcf53db620992b22c30)) * **tablet:** proposal detail styles ([dd45277](https://github.com/hypha-dao/dho-web-client/commit/dd45277cc0e413794c9bc4330653df9c626a78d2)) @@ -1002,7 +1021,7 @@ * select options in filter widget has been fixed ([#1523](https://github.com/hypha-dao/dho-web-client/issues/1523), [#1556](https://github.com/hypha-dao/dho-web-client/issues/1556)) ([#1580](https://github.com/hypha-dao/dho-web-client/issues/1580)) ([8c927bb](https://github.com/hypha-dao/dho-web-client/commit/8c927bbd8b2b8d449acec26bc434a9362153174b)) * show dynamic deferred on active and archived proposals ([#1578](https://github.com/hypha-dao/dho-web-client/issues/1578)) ([d895d70](https://github.com/hypha-dao/dho-web-client/commit/d895d7020ef78919de618efb197062a80d0495fd)) * small fix in router ([#1749](https://github.com/hypha-dao/dho-web-client/issues/1749)) ([846c889](https://github.com/hypha-dao/dho-web-client/commit/846c889e6fc38e95a17bac5459c5e9ebe3e72213)) -* **step-description:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) +* **step-details:** duplicated titles in proposal with edit type ([#1735](https://github.com/hypha-dao/dho-web-client/issues/1735)) ([#1894](https://github.com/hypha-dao/dho-web-client/issues/1894)) ([a110420](https://github.com/hypha-dao/dho-web-client/commit/a110420ce6ff08edc1ef816253733cd20d95fc08)) * **style:** add specificity for rounded border q-input ([d36f94e](https://github.com/hypha-dao/dho-web-client/commit/d36f94ef2a0a92a0c75b445c4279ca3e39e3e8b4)) * **tablet:** organizational assets page ([44d0bf6](https://github.com/hypha-dao/dho-web-client/commit/44d0bf63cf6a5a21d6755bcf53db620992b22c30)) * **tablet:** proposal detail styles ([dd45277](https://github.com/hypha-dao/dho-web-client/commit/dd45277cc0e413794c9bc4330653df9c626a78d2)) diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 000000000..fb5ac090e --- /dev/null +++ b/codegen.ts @@ -0,0 +1,37 @@ +import * as dotenv from 'dotenv' +import { CodegenConfig } from '@graphql-codegen/cli' + +dotenv.config({ path: __dirname + '/.env' }) + +const config: CodegenConfig = { + overwrite: true, + schema: process.env.GRAPHQL_URI, + documents: ['src/**/*.gql'], + generates: { + './src/generated/gql.ts': { + config: { + useTypeImports: true + }, + plugins: [ + { + add: { + content: '/* eslint-disable */' + } + }, + 'typescript', + 'typescript-operations', + 'typescript-vue-apollo-smart-ops' + ] + } + }, + config: { + contextType: 'Context', + strictScalars: true, + scalars: { + DateTime: 'Date', + Int64: 'BigInt' + } + } +} + +export default config diff --git a/cypress/support/component.js b/cypress/support/component.js index 53d9d15a2..3d1a3d225 100644 --- a/cypress/support/component.js +++ b/cypress/support/component.js @@ -24,4 +24,4 @@ import { mount } from 'cypress/vue2' Cypress.Commands.add('mount', mount) // Example use: -// cy.mount(MyComponent) \ No newline at end of file +// cy.mount(MyComponent) diff --git a/package-lock.json b/package-lock.json index b309524a1..a7408d928 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dho-web-client", - "version": "2.11.0", + "version": "2.25.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3968,6 +3968,15 @@ "integrity": "sha512-nWlGg+aMfQDhGYa5FtBhZwldeo2MtdjHdxmEQvhBXEnxgD5IhIYl0PHvex8SdwyN7qcSoMykMWdjyAX7ZxkpMw==", "dev": true }, + "@prettier/plugin-pug": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-2.4.2.tgz", + "integrity": "sha512-NYno1b0ZIY/2/wIiPSIWVRbWdhJ7KPkwjOo/xzWOZYUA35ZrwaEQshoEoLEizUrnizBuIgW93E9kqIrJEjBang==", + "dev": true, + "requires": { + "pug-lexer": "^5.0.0" + } + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -4275,37 +4284,37 @@ } }, "@sentry-internal/tracing": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.48.0.tgz", - "integrity": "sha512-MFAPDTrvCtfSm0/Zbmx7HA0Q5uCfRadOUpN8Y8rP1ndz+329h2kA3mZRCuC+3/aXL11zs2CHUhcAkGjwH2vogg==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.47.0.tgz", + "integrity": "sha512-udpHnCzF8DQsWf0gQwd0XFGp6Y8MOiwnl8vGt2ohqZGS3m1+IxoRLXsSkD8qmvN6KKDnwbaAvYnK0z0L+AW95g==", "requires": { - "@sentry/core": "7.48.0", - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "@sentry/core": "7.47.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" }, "dependencies": { "@sentry/core": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.48.0.tgz", - "integrity": "sha512-8FYuJTMpyuxRZvlen3gQ3rpOtVInSDmSyXqWEhCLuG/w34AtWoTiW7G516rsAAh6Hy1TP91GooMWbonP3XQNTQ==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz", + "integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==", "requires": { - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" } }, "@sentry/types": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.48.0.tgz", - "integrity": "sha512-kkAszZwQ5/v4n7Yyw/DPNRWx7h724mVNRGZIJa9ggUMvTgMe7UKCZZ5wfQmYiKVlGbwd9pxXAcP8Oq15EbByFQ==" + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz", + "integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==" }, "@sentry/utils": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.48.0.tgz", - "integrity": "sha512-d977sghkFVMfld0LrEyyY2gYrfayLPdDEpUDT+hg5y79r7zZDCFyHtdB86699E5K89MwDZahW7Erk+a1nk4x5w==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz", + "integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==", "requires": { - "@sentry/types": "7.48.0", + "@sentry/types": "7.47.0", "tslib": "^1.9.3" } } @@ -4366,47 +4375,47 @@ } }, "@sentry/replay": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.48.0.tgz", - "integrity": "sha512-8fRHMGJ0NJeIZi6UucxUTvfDPaBa7+jU1kCTLjCcuH3X/UVz5PtGLMtFSO5U8HP+mUDlPs97MP1uoDvMa4S2Ng==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.47.0.tgz", + "integrity": "sha512-BFpVZVmwlezZ83y0L43TCTJY142Fxh+z+qZSwTag5HlhmIpBKw/WKg06ajOhrYJbCBkhHmeOvyKkxX0jnc39ZA==", "requires": { - "@sentry/core": "7.48.0", - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0" + "@sentry/core": "7.47.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0" }, "dependencies": { "@sentry/core": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.48.0.tgz", - "integrity": "sha512-8FYuJTMpyuxRZvlen3gQ3rpOtVInSDmSyXqWEhCLuG/w34AtWoTiW7G516rsAAh6Hy1TP91GooMWbonP3XQNTQ==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz", + "integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==", "requires": { - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" } }, "@sentry/types": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.48.0.tgz", - "integrity": "sha512-kkAszZwQ5/v4n7Yyw/DPNRWx7h724mVNRGZIJa9ggUMvTgMe7UKCZZ5wfQmYiKVlGbwd9pxXAcP8Oq15EbByFQ==" + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz", + "integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==" }, "@sentry/utils": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.48.0.tgz", - "integrity": "sha512-d977sghkFVMfld0LrEyyY2gYrfayLPdDEpUDT+hg5y79r7zZDCFyHtdB86699E5K89MwDZahW7Erk+a1nk4x5w==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz", + "integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==", "requires": { - "@sentry/types": "7.48.0", + "@sentry/types": "7.47.0", "tslib": "^1.9.3" } } } }, "@sentry/tracing": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.48.0.tgz", - "integrity": "sha512-X6w74Av0fyayNicKIlwL1IdpZ3O0ETQjyYXCDTwHoJL71ojrgrL5vdiNz8WwbPONTnqu98HehPYL/z3DCCKVbw==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.47.0.tgz", + "integrity": "sha512-hJCpKdekwaFNbCVXxfCz5IxfSEJIKnkPmRSVHITOm5VhKwq2e5kmy4Rn6bzSETwJFSDE8LGbR/3eSfGTqw37XA==", "requires": { - "@sentry-internal/tracing": "7.48.0" + "@sentry-internal/tracing": "7.47.0" } }, "@sentry/types": { @@ -4424,51 +4433,51 @@ } }, "@sentry/vue": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.48.0.tgz", - "integrity": "sha512-0XN7SEkjQxdWPgkJvy7cXf1beJROCtkaILj1PeFWSUAObKemU902n25TNRbVeukUt5Mxjp3/8a0CvhQdpMpTbA==", - "requires": { - "@sentry/browser": "7.48.0", - "@sentry/core": "7.48.0", - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.47.0.tgz", + "integrity": "sha512-ZaiddqyjMH5PAhe3JMw5Xy4vO3wvc97JzmvLnZ3qHkA69hQ1yFDtVhncscWeVtn5r0N9D4+VxUOHMCpDFNyATw==", + "requires": { + "@sentry/browser": "7.47.0", + "@sentry/core": "7.47.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" }, "dependencies": { "@sentry/browser": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.48.0.tgz", - "integrity": "sha512-tdx/2nhuiykncmXFlV4Dpp+Hxgt/v31LiyXE79IcM560wc+QmWKtzoW9azBWQ0xt5KOO3ERMib9qPE4/ql1/EQ==", - "requires": { - "@sentry-internal/tracing": "7.48.0", - "@sentry/core": "7.48.0", - "@sentry/replay": "7.48.0", - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.47.0.tgz", + "integrity": "sha512-L0t07kS/G1UGVZ9fpD6HLuaX8vVBqAGWgu+1uweXthYozu/N7ZAsakjU/Ozu6FSXj1mO3NOJZhOn/goIZLSj5A==", + "requires": { + "@sentry-internal/tracing": "7.47.0", + "@sentry/core": "7.47.0", + "@sentry/replay": "7.47.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" } }, "@sentry/core": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.48.0.tgz", - "integrity": "sha512-8FYuJTMpyuxRZvlen3gQ3rpOtVInSDmSyXqWEhCLuG/w34AtWoTiW7G516rsAAh6Hy1TP91GooMWbonP3XQNTQ==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz", + "integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==", "requires": { - "@sentry/types": "7.48.0", - "@sentry/utils": "7.48.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0", "tslib": "^1.9.3" } }, "@sentry/types": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.48.0.tgz", - "integrity": "sha512-kkAszZwQ5/v4n7Yyw/DPNRWx7h724mVNRGZIJa9ggUMvTgMe7UKCZZ5wfQmYiKVlGbwd9pxXAcP8Oq15EbByFQ==" + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz", + "integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==" }, "@sentry/utils": { - "version": "7.48.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.48.0.tgz", - "integrity": "sha512-d977sghkFVMfld0LrEyyY2gYrfayLPdDEpUDT+hg5y79r7zZDCFyHtdB86699E5K89MwDZahW7Erk+a1nk4x5w==", + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz", + "integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==", "requires": { - "@sentry/types": "7.48.0", + "@sentry/types": "7.47.0", "tslib": "^1.9.3" } } @@ -4508,9 +4517,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4537,9 +4546,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4565,9 +4574,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4609,9 +4618,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4640,9 +4649,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4668,9 +4677,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -4701,9 +4710,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4727,9 +4736,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4750,9 +4759,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4777,9 +4786,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4804,9 +4813,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4837,9 +4846,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -4912,9 +4921,9 @@ } }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "find-up": { @@ -4993,9 +5002,9 @@ } }, "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5040,9 +5049,9 @@ } }, "terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -5086,9 +5095,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -5116,9 +5125,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -5135,9 +5144,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -5171,9 +5180,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -5198,9 +5207,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -5222,9 +5231,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -5277,9 +5286,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -5406,9 +5415,9 @@ } }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "cosmiconfig": { @@ -5462,9 +5471,9 @@ }, "dependencies": { "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5552,9 +5561,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -5629,9 +5638,9 @@ "dev": true }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "fs-extra": { @@ -5722,9 +5731,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "fs-extra": { @@ -5757,9 +5766,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -5830,9 +5839,9 @@ } }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "find-up": { @@ -5933,9 +5942,9 @@ } }, "terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -5962,9 +5971,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", - "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -6038,9 +6047,9 @@ } }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -6055,9 +6064,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -6087,9 +6096,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -6117,9 +6126,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -6162,9 +6171,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "estraverse": { @@ -6216,9 +6225,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -6254,9 +6263,9 @@ } }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "fs-extra": { @@ -6286,9 +6295,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -6316,9 +6325,9 @@ }, "dependencies": { "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true }, "qs": { @@ -6367,9 +6376,9 @@ "dev": true }, "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "dev": true } } @@ -6572,9 +6581,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", + "version": "4.14.192", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", + "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==", "dev": true }, "@types/long": { @@ -6867,6 +6876,63 @@ "tsutils": "^3.21.0" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", + "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0" + } + }, + "@typescript-eslint/types": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", + "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", + "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", + "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", + "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "eslint-visitor-keys": "^3.3.0" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6876,6 +6942,22 @@ "ms": "2.1.2" } }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, "semver": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", @@ -6899,6 +6981,47 @@ "debug": "^4.3.4" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", + "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0" + } + }, + "@typescript-eslint/types": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", + "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", + "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", + "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "eslint-visitor-keys": "^3.3.0" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6907,17 +7030,32 @@ "requires": { "ms": "2.1.2" } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "semver": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, "@typescript-eslint/scope-manager": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", - "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", + "version": "5.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.1.tgz", + "integrity": "sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/visitor-keys": "5.58.0" + "@typescript-eslint/types": "5.57.1", + "@typescript-eslint/visitor-keys": "5.57.1" } }, "@typescript-eslint/type-utils": { @@ -6932,6 +7070,63 @@ "tsutils": "^3.21.0" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", + "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0" + } + }, + "@typescript-eslint/types": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", + "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", + "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", + "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", + "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.58.0", + "eslint-visitor-keys": "^3.3.0" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6940,23 +7135,48 @@ "requires": { "ms": "2.1.2" } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "semver": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, "@typescript-eslint/types": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", - "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "version": "5.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.1.tgz", + "integrity": "sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", - "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "version": "5.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.1.tgz", + "integrity": "sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/visitor-keys": "5.58.0", + "@typescript-eslint/types": "5.57.1", + "@typescript-eslint/visitor-keys": "5.57.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6974,9 +7194,9 @@ } }, "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -6985,17 +7205,17 @@ } }, "@typescript-eslint/utils": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", - "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", + "version": "5.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.1.tgz", + "integrity": "sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.58.0", - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/typescript-estree": "5.58.0", + "@typescript-eslint/scope-manager": "5.57.1", + "@typescript-eslint/types": "5.57.1", + "@typescript-eslint/typescript-estree": "5.57.1", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -7011,9 +7231,9 @@ } }, "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -7022,12 +7242,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", - "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "version": "5.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.1.tgz", + "integrity": "sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/types": "5.57.1", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { @@ -7039,6 +7259,156 @@ } } }, + "@volar-plugins/html": { + "version": "2.0.0-alpha.13", + "resolved": "https://registry.npmjs.org/@volar-plugins/html/-/html-2.0.0-alpha.13.tgz", + "integrity": "sha512-z9ogEvMtrqkSl/m5h9019mWPbA2R8jua+AXkVJhLGIt/pc+S9SmMGpX+8eZGCPQhNkvzeoR9Cfg1wP0k/tGDVA==", + "dev": true, + "requires": { + "vscode-html-languageservice": "^5.0.4", + "vscode-languageserver-protocol": "^3.17.3", + "vscode-languageserver-textdocument": "^1.0.8" + } + }, + "@volar-plugins/pug": { + "version": "2.0.0-alpha.13", + "resolved": "https://registry.npmjs.org/@volar-plugins/pug/-/pug-2.0.0-alpha.13.tgz", + "integrity": "sha512-chlweqIZHOsbrZsLWrrUUTYvd3nAV7ItzkglWV8WmHwzXJmTr3r+jDgRik1YwYOGQgRFTi4jDuawAByuzqgETg==", + "dev": true, + "requires": { + "@volar-plugins/html": "2.0.0-alpha.13", + "@volar/language-service": "1.3.0-alpha.0", + "@volar/source-map": "1.3.0-alpha.0", + "muggle-string": "^0.2.2", + "pug-lexer": "^5.0.1", + "pug-parser": "^6.0.0", + "vscode-html-languageservice": "^5.0.4", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-languageserver-types": "^3.17.2" + }, + "dependencies": { + "@volar/source-map": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz", + "integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==", + "dev": true, + "requires": { + "muggle-string": "^0.2.2" + } + } + } + }, + "@volar/language-core": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz", + "integrity": "sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==", + "dev": true, + "requires": { + "@volar/source-map": "1.3.0-alpha.0" + }, + "dependencies": { + "@volar/source-map": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz", + "integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==", + "dev": true, + "requires": { + "muggle-string": "^0.2.2" + } + } + } + }, + "@volar/language-service": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-1.3.0-alpha.0.tgz", + "integrity": "sha512-dEzslTv2bHNP+ariZu0kj1C7ClSMzfX41Cmctp2MnNMN68F/olrmP4sT84+D7COeYj+wz7SduDqWSsWPGXfT2g==", + "dev": true, + "requires": { + "@volar/language-core": "1.3.0-alpha.0", + "@volar/shared": "1.3.0-alpha.0", + "@volar/source-map": "1.3.0-alpha.0", + "@volar/typescript-faster": "1.3.0-alpha.0", + "vscode-html-languageservice": "^5.0.4", + "vscode-json-languageservice": "^5.2.0", + "vscode-languageserver-protocol": "^3.17.3", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-uri": "^3.0.7" + }, + "dependencies": { + "@volar/source-map": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz", + "integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==", + "dev": true, + "requires": { + "muggle-string": "^0.2.2" + } + } + } + }, + "@volar/shared": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/shared/-/shared-1.3.0-alpha.0.tgz", + "integrity": "sha512-+sRJ8tHp9IHpD3X2caeDRLA1BU7ntxRh8kpjhML9xUHYfGJv+C8pQUYqfAjemPwU4Z8F3C4gEM1Cvzg6aoyyLw==", + "dev": true, + "requires": { + "typesafe-path": "^0.2.2", + "vscode-uri": "^3.0.7" + } + }, + "@volar/source-map": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", + "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", + "dev": true, + "requires": { + "muggle-string": "^0.1.0" + }, + "dependencies": { + "muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + } + } + }, + "@volar/typescript-faster": { + "version": "1.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-1.3.0-alpha.0.tgz", + "integrity": "sha512-9qQHzjARrwrx7HElzOAU8B0QL66HuVjRHNVaOAcoraRk+8ioGDVRaHPS4vuE+cnXXieul28UeAk7AQl/o639Ww==", + "dev": true, + "requires": { + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@volar/vue-language-plugin-pug": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@volar/vue-language-plugin-pug/-/vue-language-plugin-pug-1.2.0.tgz", + "integrity": "sha512-Mt8XMBGO0FHfnPFKLEeVgWkPmZ7LOqtbKddy1jhkAKqdEgcqGO5Bo/RdpLdqnYgUlPUdn/0XNDK09fsNygOtsg==", + "dev": true, + "requires": { + "@volar-plugins/pug": "2.0.0-alpha.13", + "@volar/source-map": "1.0.24" + } + }, + "@vscode/l10n": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.11.tgz", + "integrity": "sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA==", + "dev": true + }, "@vue/compiler-core": { "version": "3.2.47", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", @@ -7094,12 +7464,12 @@ "dev": true }, "postcss": { - "version": "8.4.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", - "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "requires": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -7174,6 +7544,15 @@ "eslint-import-resolver-webpack": "^0.13.0" } }, + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dev": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, "@vue/reactivity-transform": { "version": "3.2.47", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", @@ -7187,6 +7566,27 @@ "magic-string": "^0.25.7" } }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, "@vue/shared": { "version": "3.2.47", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", @@ -8122,6 +8522,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -8161,6 +8574,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -8272,6 +8699,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -8311,6 +8751,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -8416,23 +8870,6 @@ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true }, - "ast-types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - } - } - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -8688,9 +9125,9 @@ }, "dependencies": { "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -8703,12 +9140,12 @@ "dev": true }, "resolve": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.3.tgz", - "integrity": "sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "requires": { - "is-core-module": "^2.12.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -11307,6 +11744,12 @@ } } }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -14671,9 +15114,9 @@ "dev": true }, "flow-parser": { - "version": "0.204.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.204.0.tgz", - "integrity": "sha512-cQhNPLOk5NFyDXBC8WE8dy2Gls+YqKI3FNqQbJ7UrbFyd30IdEX3t27u3VsnoVK22I872+PWeb1KhHxDgu7kAg==", + "version": "0.203.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.203.1.tgz", + "integrity": "sha512-Nw2M8MPP/Zb+yhvmPDEjzkCXLtgyWGKXZjAYOVftm+wIf3xd4FKa7nRI9v67rODs0WzxMbPc8IPs/7o/dyxo/Q==", "dev": true }, "flush-write-stream": { @@ -16733,6 +17176,19 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } } } }, @@ -17798,6 +18254,12 @@ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -19488,6 +19950,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "muggle-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz", + "integrity": "sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==", + "dev": true + }, "multiaddr": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", @@ -20093,6 +20561,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -20132,6 +20613,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -20241,6 +20736,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -20280,6 +20788,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -21773,11 +22295,10 @@ "dev": true }, "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true, - "optional": true + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "dev": true }, "pretty-bytes": { "version": "5.6.0", @@ -22000,6 +22521,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -22039,6 +22573,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -22148,6 +22696,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -22187,6 +22748,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -22796,13 +23371,13 @@ } }, "recast": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.1.tgz", - "integrity": "sha512-RokaBcoxSjXUDzz1TXSZmZsSW6ZpLmlA3GGqJ8uuTrQ9hZhEz+4Tpsc+gRvYRJ2BU4H+ZyUlg91eSGDw7bwy7g==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.22.0.tgz", + "integrity": "sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==", "dev": true, "requires": { "assert": "^2.0.0", - "ast-types": "^0.16.1", + "ast-types": "0.15.2", "esprima": "~4.0.0", "source-map": "~0.6.1", "tslib": "^2.0.1" @@ -22820,6 +23395,15 @@ "util": "^0.12.0" } }, + "ast-types": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", + "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -23878,17 +24462,12 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" - }, "postcss": { - "version": "8.4.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", - "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "requires": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -25170,6 +25749,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -25209,6 +25801,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -25318,6 +25924,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -25357,6 +25976,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -25466,6 +26099,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -25505,6 +26151,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -25614,6 +26274,19 @@ "has-tostringtag": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -25653,6 +26326,20 @@ "define-properties": "^1.1.4", "es-abstract": "^1.20.4" } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } } } }, @@ -26643,6 +27330,12 @@ "is-typedarray": "^1.0.0" } }, + "typesafe-path": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", + "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", + "dev": true + }, "typescript": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", @@ -27540,6 +28233,65 @@ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", "dev": true }, + "vscode-html-languageservice": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.0.4.tgz", + "integrity": "sha512-tvrySfpglu4B2rQgWGVO/IL+skvU7kBkQotRlxA7ocSyRXOZUd6GA13XHkxo8LPe07KWjeoBlN1aVGqdfTK4xA==", + "dev": true, + "requires": { + "@vscode/l10n": "^0.0.11", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-languageserver-types": "^3.17.2", + "vscode-uri": "^3.0.7" + } + }, + "vscode-json-languageservice": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.2.tgz", + "integrity": "sha512-5td6olfoNdtyxnNA4uocq7V9jdTJt63o9mGEntQb6cbD2HiObZW2XgbSj6nRaebWwBCiYdWpFklNjm6Wz6Xy1Q==", + "dev": true, + "requires": { + "@vscode/l10n": "^0.0.11", + "jsonc-parser": "^3.2.0", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-languageserver-types": "^3.17.3", + "vscode-uri": "^3.0.7" + } + }, + "vscode-jsonrpc": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", + "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==", + "dev": true + }, + "vscode-languageserver-protocol": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz", + "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==", + "dev": true, + "requires": { + "vscode-jsonrpc": "8.1.0", + "vscode-languageserver-types": "3.17.3" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", + "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, "vue": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", @@ -27566,20 +28318,20 @@ } }, "vue-docgen-api": { - "version": "4.67.0", - "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.67.0.tgz", - "integrity": "sha512-BXXgWp80f03JMgNM9cCxmjdFc28SkjK3Kx4TA0LBkQXPBzcj4OQSp2GWKTz8fAB2Nefh7EXa2iGdCaDRiTFdeA==", + "version": "4.64.1", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.64.1.tgz", + "integrity": "sha512-jbOf7ByE3Zvtuk+429Jorl+eIeh2aB2Fx1GUo3xJd1aByJWE8KDlSEa6b11PB1ze8f0sRUBraRDinICCk0KY7g==", "dev": true, "requires": { - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/parser": "^7.13.12", + "@babel/types": "^7.18.8", "@vue/compiler-dom": "^3.2.0", "@vue/compiler-sfc": "^3.2.0", - "ast-types": "^0.16.1", + "ast-types": "0.14.2", "hash-sum": "^2.0.0", "lru-cache": "^8.0.3", "pug": "^3.0.2", - "recast": "^0.23.1", + "recast": "0.22.0", "ts-map": "^1.0.3", "vue-inbrowser-compiler-independent-utils": "^4.64.1" }, @@ -27613,6 +28365,15 @@ "to-fast-properties": "^2.0.0" } }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, "hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", @@ -27624,6 +28385,12 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true } } }, diff --git a/package.json b/package.json index 5b023657d..7fc1d2452 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dho-web-client", - "version": "2.24.1", + "version": "2.25.1", "description": "Governance, payroll and treasury tools for distributed HUMAN organizations (DHO)", "productName": "Hypha DHO", "author": "Max ", @@ -14,9 +14,11 @@ "build-storybook": "build-storybook -s ./public", "graph-schema": "node ./src/apollo/generatePossibleTypes.js", "prepare": "husky install", - "commit": "git-cz" + "commit": "git-cz", + "generate-types": " graphql-codegen --config codegen.ts" }, "dependencies": { + "@graphql-codegen/typescript-operations": "^3.0.3", "@hypha-dao/hypha-token-sales-util": "^1.0.1", "@hypha-dao/ppp-client-api": "1.0.2", "@quasar/extras": "1.10.4", @@ -48,6 +50,7 @@ "universal-authenticator-library": "^0.3.0", "validator": "13.6.0", "vue": "^2.6.12", + "vue-apollo-smart-ops": "^0.2.0-beta.1", "vue-croppa": "^1.3.8", "vue-lodash": "^2.1.2", "vue-matomo": "^4.0.0", @@ -60,6 +63,11 @@ "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@commitlint/cli": "^17.0.3", "@commitlint/config-conventional": "^17.0.3", + "@graphql-codegen/add": "^4.0.1", + "@graphql-codegen/cli": "^3.3.0", + "@graphql-codegen/typescript": "^3.0.3", + "@graphql-codegen/typescript-vue-apollo-smart-ops": "^2.3.6", + "@prettier/plugin-pug": "^2.4.2", "@quasar/app": "^2.2.4", "@quasar/quasar-app-extension-apollo": "^1.0.0-beta.8", "@quasar/quasar-app-extension-qmarkdown": "^1.4.1", @@ -69,7 +77,9 @@ "@storybook/vue": "^6.5.12", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", + "@volar/vue-language-plugin-pug": "^1.2.0", "@vue/eslint-config-standard": "6.0.0", + "@vue/runtime-dom": "^3.2.47", "babel-eslint": "10.1.0", "babel-loader": "^8.2.2", "chromatic": "^5.8.2", @@ -86,11 +96,14 @@ "eslint-plugin-storybook": "^0.6.4", "eslint-plugin-vue": "7.9.0", "husky": "^8.0.1", + "prettier": "^2.8.7", "pug": "3.0.2", "pug-plain-loader": "1.1.0", "raw-loader": "^4.0.2", "style-loader": "^2.0.0", - "vue-loader": "^15.9.6" + "ts-node": "^10.9.1", + "typescript": "^5.0.4", + "vue-loader": "15.9.6" }, "husky": { "hooks": { @@ -119,4 +132,4 @@ "last 10 iOS versions", "last 5 Opera versions" ] -} +} \ No newline at end of file diff --git a/public/svg/create-new-dao.svg b/public/svg/create-new-dao.svg new file mode 100644 index 000000000..030173293 --- /dev/null +++ b/public/svg/create-new-dao.svg @@ -0,0 +1 @@ +Risorsa 3 \ No newline at end of file diff --git a/public/svg/icon-anchor.svg b/public/svg/icon-anchor.svg new file mode 100644 index 000000000..a37376034 --- /dev/null +++ b/public/svg/icon-anchor.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/svg/icon-gallery.svg b/public/svg/icon-gallery.svg new file mode 100644 index 000000000..51df611bf --- /dev/null +++ b/public/svg/icon-gallery.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/quasar.conf.js b/quasar.conf.js index bf1a649b4..e36c54c0b 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -71,14 +71,14 @@ module.exports = function (ctx) { DGRAPH_URL: process.env.DGRAPH_URL, DGRAPH_ROOT_HASH: process.env.DGRAPH_ROOT_HASH, DGRAPH_AUTH_KEY: process.env.DGRAPH_AUTH_KEY, + ROOT_DAO_ID: process.env.ROOT_DAO_ID, + ROOT_DAO_SLUG: process.env.ROOT_DAO_SLUG, REGISTER_API_URL: process.env.REGISTER_API_URL, REGISTER_API_KEY: process.env.REGISTER_API_KEY, ACCOUNT_API_URL: process.env.ACCOUNT_API_URL, ACCOUNT_API_KEY: process.env.ACCOUNT_API_KEY, NETWORK_CHAIN_ID: process.env.NETWORK_CHAIN_ID, BLOCKCHAIN_ENDPOINTS: process.env.BLOCKCHAIN_ENDPOINTS, - EOS_NETWORK_CHAIN_ID: process.env.EOS_NETWORK_CHAIN_ID, - EOS_ENDPOINTS: process.env.EOS_ENDPOINTS, TLOSTO_SEEDS: process.env.TLOSTO_SEEDS, DAO_CONTRACT: process.env.DAO_CONTRACT, KV_CONTRACT: process.env.KV_CONTRACT, @@ -87,6 +87,7 @@ module.exports = function (ctx) { BLOCKCHAIN_EXPLORER_ETH: process.env.BLOCKCHAIN_EXPLORER_ETH, BLOCKCHAIN_EXPLORER_EOS: process.env.BLOCKCHAIN_EXPLORER_EOS, PPP_ENV: process.env.PPP_ENV, + PPP_APP_ID: process.env.PPP_APP_ID, SENTRY_DSN: process.env.SENTRY_DSN, SENTRY_ENV: process.env.SENTRY_ENV, IPFS_URL: process.env.IPFS_URL, @@ -103,7 +104,8 @@ module.exports = function (ctx) { HYPHA_TOKEN_SALES_URL: process.env.HYPHA_TOKEN_SALES_URL, HYPHA_TOKEN_SALES_API_URL: process.env.HYPHA_TOKEN_SALES_API_URL, HYPHA_TOKEN_SALES_RPC_URL: process.env.HYPHA_TOKEN_SALES_RPC_URL, - PACKAGE_VERSION: JSON.parse(packageJson).version || 0 + PACKAGE_VERSION: JSON.parse(packageJson).version || 0, + HEALTH_ENDPOINT: process.env.HEALTH_ENDPOINT }, scopeHoisting: true, diff --git a/src/App.vue b/src/App.vue index 8971ddc53..c36d99800 100644 --- a/src/App.vue +++ b/src/App.vue @@ -27,6 +27,7 @@ export default { async beforeMount () { await this.autoLogin() + await this.initConfigs() await this.loadAlert() }, @@ -38,6 +39,7 @@ export default { methods: { ...mapActions('accounts', ['autoLogin']), + ...mapActions('dao', ['initConfigs']), ...mapActions('layout', ['loadAlert']), ...mapMutations('layout', ['dismissAlert']) } diff --git a/src/assets/icons/attachments/camera.svg b/src/assets/icons/attachments/camera.svg new file mode 100644 index 000000000..c5ceb63bf --- /dev/null +++ b/src/assets/icons/attachments/camera.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/attachments/cloud.svg b/src/assets/icons/attachments/cloud.svg new file mode 100644 index 000000000..d8fc30d6d --- /dev/null +++ b/src/assets/icons/attachments/cloud.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/attachments/doc.svg b/src/assets/icons/attachments/doc.svg new file mode 100644 index 000000000..8a1d478f8 --- /dev/null +++ b/src/assets/icons/attachments/doc.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/attachments/picture.svg b/src/assets/icons/attachments/picture.svg new file mode 100644 index 000000000..a0189e29a --- /dev/null +++ b/src/assets/icons/attachments/picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/ecosystem/socio-ecological.svg b/src/assets/icons/ecosystem/socio-ecological.svg new file mode 100644 index 000000000..265fb7f5f --- /dev/null +++ b/src/assets/icons/ecosystem/socio-ecological.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/ecosystem/socio-economic.svg b/src/assets/icons/ecosystem/socio-economic.svg new file mode 100644 index 000000000..4993b58ba --- /dev/null +++ b/src/assets/icons/ecosystem/socio-economic.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/ecosystem/socio-political.svg b/src/assets/icons/ecosystem/socio-political.svg new file mode 100644 index 000000000..353e8a234 --- /dev/null +++ b/src/assets/icons/ecosystem/socio-political.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/ecosystem/socio-psychological.svg b/src/assets/icons/ecosystem/socio-psychological.svg new file mode 100644 index 000000000..0ffc0f6c5 --- /dev/null +++ b/src/assets/icons/ecosystem/socio-psychological.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/tlos.png b/src/assets/icons/tlos.png new file mode 100644 index 0000000000000000000000000000000000000000..51213ed6310eca52a88a59dda2812021d40ef66b GIT binary patch literal 42075 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 B9g_e6 literal 0 HcmV?d00001 diff --git a/src/boot/api.js b/src/boot/api.js index 4bd9e1e41..d3662ed6a 100644 --- a/src/boot/api.js +++ b/src/boot/api.js @@ -2,46 +2,59 @@ import { Api, JsonRpc } from 'eosjs' import axios from 'axios' const signTransaction = async function (actions) { - actions.forEach(action => { + actions.forEach((action) => { if (!action.authorization || !action.authorization.length) { - action.authorization = [{ - actor: this.state.accounts.account, - permission: 'active' - }] + action.authorization = [ + { + actor: this.state.accounts.account, + permission: 'active' + } + ] } }) let transactionId = null let error = null try { if (this.$type === 'ual') { - const result = await this.$ualUser.signTransaction({ - actions - }, { - blocksBehind: 3, - expireSeconds: 30 - }) + const result = await this.$ualUser.signTransaction( + { + actions + }, + { + blocksBehind: 3, + expireSeconds: 30 + } + ) transactionId = result.transactionId } else if (this.$type === 'inApp') { - const result = await this.$inAppUser.transact({ - actions - }, { - blocksBehind: 3, - expireSeconds: 30 - }) + const result = await this.$inAppUser.transact( + { + actions + }, + { + blocksBehind: 3, + expireSeconds: 30 + } + ) transactionId = result.transaction_id } else if (typeof window.LightWalletChannel === 'object') { transactionId = await this.$lightWallet.sendTransaction(actions) } } catch (e) { error = this.$type === 'inApp' ? e.message : e.cause.message - // console.error(error) // eslint-disable-line no-console - // console.error(actions) // eslint-disable-line no-console + console.error(e) // eslint-disable-line no-console + console.error(error) // eslint-disable-line no-console + console.error(actions) // eslint-disable-line no-console this.$sentry?.setExtra('actions', JSON.stringify(actions)) this.$sentry?.setExtra('error', error) this.$sentry?.captureException(e) throw new Error(e) } - this.commit('notifications/addNotification', { transactionId, actions, error }, { root: true }) + this.commit( + 'notifications/addNotification', + { transactionId, actions, error }, + { root: true } + ) return error === null } @@ -57,12 +70,11 @@ const getAccount = async function (account) { } export default async ({ store }) => { - const apiUrl = await getBestEndpoint() - const eosApiUrl = await getBestEndpoint(process.env.EOS_ENDPOINTS) + const apiUrl = await getBestEndpoint(process.env.BLOCKCHAIN_ENDPOINTS) store.$apiUrl = apiUrl - store.$eosApiUrl = eosApiUrl const rpc = new JsonRpc(apiUrl) + store.$defaultApi = new Api({ rpc }) store.$api = { @@ -72,20 +84,24 @@ export default async ({ store }) => { } } -const getBestEndpoint = async (endpoints = process.env.BLOCKCHAIN_ENDPOINTS) => { +const getBestEndpoint = async ( + endpoints = process.env.BLOCKCHAIN_ENDPOINTS, + healthEndpoint = process.env.HEALTH_ENDPOINT +) => { const promises = [] for (const endpoint of endpoints.split(',')) { - promises.push(pingEndpoint(endpoint)) + promises.push(pingEndpoint(endpoint, healthEndpoint)) } const result = await Promise.all(promises) result.sort((a, b) => a.time - b.time) return result[0].url } -const pingEndpoint = async (url) => { +const pingEndpoint = async (url, healthEndoint) => { const start = Date.now() + const healthUrl = healthEndoint ? `${url}/${healthEndoint}` : url try { - await axios.get(`${url}/v2/health`, { + await axios.get(`${healthUrl}`, { timeout: 5000 }) } catch (e) { diff --git a/src/boot/axios.js b/src/boot/axios.js index eb18af5f4..a783e011b 100644 --- a/src/boot/axios.js +++ b/src/boot/axios.js @@ -1,7 +1,7 @@ import axios from 'axios' export const accountApi = axios.create({ - baseURL: process.env.EOS_ACCOUNT_API_URL, + baseURL: process.env.ACCOUNT_API_URL, headers: { 'Content-Type': 'application/json', 'x-api-key': process.env.ACCOUNT_API_KEY @@ -9,8 +9,8 @@ export const accountApi = axios.create({ }) accountApi.interceptors.response.use( - response => response.data || {}, - error => { + (response) => response.data || {}, + (error) => { return { status: error.response.status, error: error.response.data diff --git a/src/boot/config.js b/src/boot/config.js index b16f63218..ed886b3a4 100644 --- a/src/boot/config.js +++ b/src/boot/config.js @@ -1,4 +1,3 @@ - export default async ({ Vue, store }) => { try { const contracts = { @@ -12,84 +11,11 @@ export default async ({ Vue, store }) => { kv: process.env.KV_CONTRACT } - // Debug purpose - /* - const all = `{ - documents(func: has(hash)) { - expand(_all_) { - expand(_all_) { - expand(_all_) - } - } - } - }` - - const allDocuments = await store.$dgraph.newTxn().query(all) - */ - const query = ` - query document($hash:string) { - document(func: eq(hash, $hash)) { - uid - hash - settings { - hash - creator - created_date - content_groups{ - contents { - label - value - type - } - } - } - content_groups{ - contents { - label - value - type - } - } - } - } - ` - // debugger - const root = await store.$dgraph.newTxn().queryWithVars(query, { $hash: `${process.env.DGRAPH_ROOT_HASH}` }) - let settings - if (root) { - root.data.document[0] && root.data.document[0].settings[0].content_groups.forEach(cg => { - if (cg.contents.some(c => c.label === 'content_group_label' && c.value === 'settings')) { - settings = cg.contents - } - }) - } - if (settings) { - contracts.decide = settings.find(o => o.label === 'telos_decide_contract').value - contracts.hyphaToken = settings.find(o => o.label === 'hypha_token_contract').value - contracts.deferredHyphaToken = settings.find(o => o.label === 'hypha_cosale_contract').value - contracts.hvoiceToken = settings.find(o => o.label === 'hvoice_token_contract').value - contracts.hyphaMultiplier = parseInt(settings.find(o => o.label === 'hypha_deferral_factor_x100').value) / 100 - contracts.hyphaUsdValue = parseFloat(settings.find(o => o.label === 'hypha_usd_value').value) - contracts.husdToken = settings.find(o => o.label === 'husd_token_contract').value - contracts.seedsToken = settings.find(o => o.label === 'seeds_token_contract').value - contracts.seedsEscrow = settings.find(o => o.label === 'seeds_escrow_contract').value - contracts.seedsMultiplier = parseInt(settings.find(o => o.label === 'seeds_deferral_factor_x100').value) / 100 - contracts.treasury = settings.find(o => o.label === 'treasury_contract').value - contracts.voteDurationSeconds = parseInt(settings.find(o => o.label === 'voting_duration_sec').value) - } - - const seedsConfig = settings && contracts.seedsToken && await store.$api.getTableRows({ - code: 'tlosto.seeds', - scope: 'tlosto.seeds', - table: 'config' - }) - if (seedsConfig && seedsConfig.rows.length) { - const usdToSeeds = parseFloat(seedsConfig.rows[0].seeds_per_usd) - const seedsToUsd = 1 / usdToSeeds - store.commit('payouts/setSeedsValues', { usdToSeeds, seedsToUsd }, { root: true }) + Vue.prototype.$config = { + contracts, + rootDaoSlug: process.env.ROOT_DAO_SLUG || 'hypha' } - Vue.prototype.$config = { contracts } store.$config = { dho: process.env.ROOT_DAO_ID, contracts diff --git a/src/boot/dgraph.js b/src/boot/dgraph.js index bf3f00d0b..983e0c1c0 100644 --- a/src/boot/dgraph.js +++ b/src/boot/dgraph.js @@ -1,119 +1,12 @@ import { DgraphClient, DgraphClientStub } from 'dgraph-js-http' -/** - * Generates vars for a dgraph query in the expected format - * Example output: { $key1: value1, $key2: value2 } - */ -function buildVars (item, parameters) { - const vars = {} - if (item.parameters && parameters) { - Object.keys(item.parameters).forEach(key => { - vars[`$${key}`] = `${parameters[key]}` - }) - } - - return vars -} - export default ({ Vue, store }) => { - // Defines the query 'routes' that our app uses - // The query can be written in a graphql file or inline - // The provided 'name' must match the query name from graphql - const QUERIES = { - '/profile/get': { - name: 'profile', - query: require('../query/profile/profile.graphql').default, - parameters: { - username: String - }, - single: true - } - } - const client = new DgraphClient(new DgraphClientStub(process.env.DGRAPH_URL, false)) if (process.env.DGRAPH_AUTH_KEY) { client.setCloudApiKey(process.env.DGRAPH_AUTH_KEY) } - function convertContentGroups (data) { - const result = {} - - if (data) { - // Transform content_groups to sub objects - if (Array.isArray(data.content_groups)) { - data.content_groups.forEach(group => { - if (Array.isArray(group.contents)) { - const groupName = group.contents.find(c => c.label === 'content_group_label').value - data[groupName] = {} - group.contents.forEach(c => { - if (c.label === 'content_group_label') return - let value = c.value - switch (c.type) { - case 'int64': value = Number.parseInt(c.value); break - case 'float': value = Number.parseInt(c.value); break - case 'asset': break - case 'time_point': value = new Date(c.value); break - } - data[groupName][c.label] = value - }) - } - }) - } - // Retrieve values from data object, ignoring content_groups - Object.keys(data).forEach(key => { - if (key === 'content_groups') return - if (Array.isArray(data[key])) { - const items = [] - data[key].forEach(item => items.push(convertContentGroups(item))) - result[key] = items - } else { - result[key] = data[key] - } - }) - } - - return result - } - - async function dgraphQuery (item, parameters) { - const res = await client.newTxn({ readOnly: true, bestEffort: true }) - .queryWithVars(item.query, buildVars(item, parameters)) - if (item.single) { - const data = res.data[item.name][0] - return convertContentGroups(data) - } - - if (Array.isArray(res.data[item.name])) { - const results = [] - res.data[item.name].forEach(r => { - results.push(convertContentGroups(r)) - }) - - return results - } - - // TODO: Throw exception? - return null - } - // TODO: Remove this, used by legacy dgraph queries store.$dgraph = client - - /** - * Run a dgraph query and extract the results into a plain javascript object - * TODO: Transform content_groups and contents to simple properties of proper type - * TODO: Cache the result of this query and return that immediately for subsequent calls - * TODO: If same query is in flight recently (<2 seconds) return results of the first call - * @param {String} path Query route to use (unique identifier) - * @param {Object} parameters Object with parameters for query - */ - Vue.prototype.$dgraphQuery = async (path, parameters) => { - const item = QUERIES[path] - if (item) { - return await dgraphQuery(item, parameters) - } - - return null - } } diff --git a/src/boot/matomo.js b/src/boot/matomo.js index dd117ff8a..8c2ddc06d 100644 --- a/src/boot/matomo.js +++ b/src/boot/matomo.js @@ -1,9 +1,9 @@ -import VueMatomo from 'vue-matomo' +// import VueMatomo from 'vue-matomo' export default ({ Vue, router }) => { - Vue.use(VueMatomo, { - host: 'https://track.hypha.earth', - siteId: 1, - router - }) + // Vue.use(VueMatomo, { + // host: 'https://track.hypha.earth', + // siteId: 1, + // router + // }) } diff --git a/src/boot/ppp.js b/src/boot/ppp.js index b1552f275..180538306 100644 --- a/src/boot/ppp.js +++ b/src/boot/ppp.js @@ -1,6 +1,6 @@ import PPP from '@hypha-dao/ppp-client-api' export default async ({ store }) => { - PPP.configure(process.env.PPP_ENV) + PPP.configure(process.env.PPP_ENV, process.env.PPP_APP_ID) store.$ppp = PPP } diff --git a/src/boot/ual.js b/src/boot/ual.js index 20a2a1e9d..c16cb854d 100644 --- a/src/boot/ual.js +++ b/src/boot/ual.js @@ -7,7 +7,7 @@ export default async ({ Vue, store }) => { chainId: process.env.NETWORK_CHAIN_ID, rpcEndpoints: [{ protocol: 'https', - host: store.$eosApiUrl.replace('https://', ''), + host: store.$apiUrl.replace('https://', ''), port: 443 }] } diff --git a/src/components.d.ts b/src/components.d.ts new file mode 100644 index 000000000..f70061b0c --- /dev/null +++ b/src/components.d.ts @@ -0,0 +1,10 @@ +import { ComponentConstructor } from 'quasar'; + +type Quasar = typeof import('quasar'); +type QuasarComponentNames = keyof { [K in keyof Quasar as (Quasar)[K] extends ComponentConstructor ? K : never]: any }; +type QuasarComponents = Pick; +type QuasarFuncationalComponents = { [K in keyof QuasarComponents]: Quasar[K] extends ComponentConstructor ? (props: Partial) => void : never }; + +declare module '@vue/runtime-dom' { // Vue <= 2.6.14 + export interface GlobalComponents extends QuasarFuncationalComponents { } +} diff --git a/src/components/assignments/assignment-radio.stories.js b/src/components/assignments/assignment-radio.stories.js index c68e98124..4395e3d56 100644 --- a/src/components/assignments/assignment-radio.stories.js +++ b/src/components/assignments/assignment-radio.stories.js @@ -20,9 +20,6 @@ Example.args = { __typename: 'Assignment', details_title_s: 'Hypha Frontend Dev', details_periodCount_i: 12, - details_startPeriod_c_edge: { - details_startTime_t: 1234567890 - }, role: [ { details_title_s: 'Building and Developing B4' diff --git a/src/components/assignments/assignment-radio.vue b/src/components/assignments/assignment-radio.vue index 6f5f89df0..c3b315ee6 100644 --- a/src/components/assignments/assignment-radio.vue +++ b/src/components/assignments/assignment-radio.vue @@ -1,6 +1,5 @@