From 8cb1fd994e286a2c111edd510b3ab4786a5dd8ff Mon Sep 17 00:00:00 2001 From: Kar Rui Lau Date: Tue, 10 Aug 2021 11:00:43 +0800 Subject: [PATCH] chore: merge develop to form-v2/develop (#2533) * feat(config): support env var config via dotenv Allow Form to be configured using a .env file, read by dotenv and populated into `process.env`. - `npm install dotenv` - pick up the `.env` config using dotenv just before we invoke the application - remove `.env` entry from `.dockerignore` * build(ci): create .env files in EB with Param Store - use an .ebextensions config to create an .env from Parameter Store - determine the environment name by looking at container config files directly [1] - mount the .env into /opt/formsg/.env References: [1]: https://aws.amazon.com/premiumsupport/knowledge-center/view-environment-properties-elastic-beanstalk/ * refactor(env): drive SSM name prefix by env var * docs(deploy): add information concerning SSM params * refactor: revert "refactor(email-submission): encapsulate parsedResponses (#2206)" (#2248) This reverts commit 6512a84c6456665e6f12a8fad5a7e8ccd9860d28. * chore: bump version to v5.17.0 * chore(deps-dev): bump optimize-css-assets-webpack-plugin (#2251) Bumps [optimize-css-assets-webpack-plugin](https://github.com/NMFR/optimize-css-assets-webpack-plugin) from 5.0.3 to 5.0.8. - [Release notes](https://github.com/NMFR/optimize-css-assets-webpack-plugin/releases) - [Commits](https://github.com/NMFR/optimize-css-assets-webpack-plugin/compare/v5.0.3...v5.0.8) --- updated-dependencies: - dependency-name: optimize-css-assets-webpack-plugin dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.932.0 to 2.933.0 (#2252) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.932.0 to 2.933.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.932.0...v2.933.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump prettier from 2.3.1 to 2.3.2 (#2260) Bumps [prettier](https://github.com/prettier/prettier) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.3.1...2.3.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.933.0 to 2.935.0 (#2259) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.933.0 to 2.935.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.933.0...v2.935.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: upgrade mongoose from 5.12.12 to 5.12.13 (#2257) Snyk has created this PR to upgrade mongoose from 5.12.12 to 5.12.13. See this package in npm: https://www.npmjs.com/package/mongoose See this project in Snyk: https://app.snyk.io/org/yiyin/project/c84a5cfa-bfa2-44b6-8cc6-5d1271040a58?utm_source=github&utm_medium=upgrade-pr * feat: Admin form UI changes to "Edit Welcome" fields (#2258) * feat: in "Edit Welcome", move "Color Theme" to btwn "Logo" and "Time taken for..." and add rows="12" to "Instructions..." textarea * chore: run formatter * fix(deps): bump @sentry/integrations from 6.7.2 to 6.8.0 (#2268) Bumps [@sentry/integrations](https://github.com/getsentry/sentry-javascript) from 6.7.2 to 6.8.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.7.2...6.8.0) --- updated-dependencies: - dependency-name: "@sentry/integrations" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 4.28.0 to 4.28.1 (#2270) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.0 to 4.28.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @sentry/browser from 6.7.2 to 6.8.0 (#2269) Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 6.7.2 to 6.8.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.7.2...6.8.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: correctly retrieve targetFormId for redirect state (#2261) this fixes the bug where the targetFormId was incorrectly retrieving the first 24 characters of the URL, which will fail as the API URLs have changed to be more semantic. instead, take in the targetFormId directly as we already know the formId. * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2271) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.0 to 4.28.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: ensure consistent filesize const (#2079) * refactor: move MB to shared/constants and use MB throughout app * ref: lint attachmentValidator and use relative import Co-authored-by: Kar Rui Lau * chore(deps-dev): bump core-js from 3.15.1 to 3.15.2 (#2272) Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.15.1 to 3.15.2. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.15.2/packages/core-js) --- updated-dependencies: - dependency-name: core-js dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.935.0 to 2.936.0 (#2273) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.935.0 to 2.936.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.935.0...v2.936.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump coveralls from 3.1.0 to 3.1.1 (#2274) Bumps [coveralls](https://github.com/nickmerwin/node-coveralls) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/nickmerwin/node-coveralls/releases) - [Commits](https://github.com/nickmerwin/node-coveralls/compare/v3.1.0...3.1.1) --- updated-dependencies: - dependency-name: coveralls dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump ts-node-dev from 1.1.6 to 1.1.7 (#2275) Bumps [ts-node-dev](https://github.com/whitecolor/ts-node-dev) from 1.1.6 to 1.1.7. - [Release notes](https://github.com/whitecolor/ts-node-dev/releases) - [Changelog](https://github.com/wclr/ts-node-dev/blob/master/CHANGELOG.md) - [Commits](https://github.com/whitecolor/ts-node-dev/compare/v1.1.6...v1.1.7) --- updated-dependencies: - dependency-name: ts-node-dev dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: allow creation of storage form when emails are invalid (#2263) * refactor(emails-input): use ng-messages * fix: fail validation only if responseMode is email * fix: allow empty array and string for emails key in storage mode * feat: rename "Reference Number" to "Response ID" (#2277) * feat: update response email subject to use # * feat: update response email body to use Response ID * feat: update storage mode Data tab to use Response ID * feat: update storage mode CSV to use Response ID * feat: update email confirmation PDF to use Response ID * build: empty commit to trigger build * chore: bump version to v5.18.0 * fix(deps): bump twilio from 3.64.0 to 3.65.0 (#2284) Bumps [twilio](https://github.com/twilio/twilio-node) from 3.64.0 to 3.65.0. - [Release notes](https://github.com/twilio/twilio-node/releases) - [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md) - [Commits](https://github.com/twilio/twilio-node/compare/3.64.0...3.65.0) --- updated-dependencies: - dependency-name: twilio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/mongodb from 3.6.18 to 3.6.19 (#2286) Bumps [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mongodb) from 3.6.18 to 3.6.19. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mongodb) --- updated-dependencies: - dependency-name: "@types/mongodb" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.936.0 to 2.937.0 (#2287) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.936.0 to 2.937.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.936.0...v2.937.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump ts-node-dev from 1.1.7 to 1.1.8 (#2285) Bumps [ts-node-dev](https://github.com/whitecolor/ts-node-dev) from 1.1.7 to 1.1.8. - [Release notes](https://github.com/whitecolor/ts-node-dev/releases) - [Changelog](https://github.com/wclr/ts-node-dev/blob/master/CHANGELOG.md) - [Commits](https://github.com/whitecolor/ts-node-dev/compare/v1.1.7...v1.1.8) --- updated-dependencies: - dependency-name: ts-node-dev dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump express-rate-limit from 5.2.6 to 5.3.0 (#2288) Bumps [express-rate-limit](https://github.com/nfriedly/express-rate-limit) from 5.2.6 to 5.3.0. - [Release notes](https://github.com/nfriedly/express-rate-limit/releases) - [Commits](https://github.com/nfriedly/express-rate-limit/compare/v5.2.6...v5.3.0) --- updated-dependencies: - dependency-name: express-rate-limit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: revert the revert of encapsulate parsedResponses (#2278) This reverts commit 5237a0b007635e495ab7eef29dfd1747dd22b41a. * fix(deps): bump libphonenumber-js from 1.9.20 to 1.9.21 (#2291) Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.9.20 to 1.9.21. - [Release notes](https://gitlab.com/catamphetamine/libphonenumber-js/tags) - [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.9.20...v1.9.21) --- updated-dependencies: - dependency-name: libphonenumber-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.937.0 to 2.939.0 (#2293) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.937.0 to 2.939.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.937.0...v2.939.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/uuid from 8.3.0 to 8.3.1 (#2294) Bumps [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid) from 8.3.0 to 8.3.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/uuid) --- updated-dependencies: - dependency-name: "@types/uuid" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint from 7.29.0 to 7.30.0 (#2295) Bumps [eslint](https://github.com/eslint/eslint) from 7.29.0 to 7.30.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.29.0...v7.30.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump zod from 3.2.0 to 3.3.3 (#2296) Bumps [zod](https://github.com/colinhacks/zod) from 3.2.0 to 3.3.3. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/commits) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump neverthrow from 4.2.1 to 4.2.2 (#2297) Bumps [neverthrow](https://github.com/supermacro/neverthrow) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/supermacro/neverthrow/releases) - [Commits](https://github.com/supermacro/neverthrow/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: neverthrow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/validator from 13.1.4 to 13.6.2 (#2298) Bumps [@types/validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validator) from 13.1.4 to 13.6.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/validator) --- updated-dependencies: - dependency-name: "@types/validator" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump zod from 3.3.3 to 3.3.4 (#2299) Bumps [zod](https://github.com/colinhacks/zod) from 3.3.3 to 3.3.4. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/commits) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: Set SP/CP JWT cookie to HttpOnly (#2193) * feat: add route and controller to clear cookie * feat: frontend to call logout endpoint to delete cookie * feat: backend to return spcpSssion msToExpiry in network response * feat: frontend uses spcpSession data from response instead of decoding jwt * feat: set spcp cookies to http only * chore: update tests * chore: add tests * feat: retain httpOnly as false for now for backward compatibility * chore: fix merge conflict * chore: rename to logoutOfSpcpSession * chore: rename route to /auth/:authType/logout * chore: rely on joi for authType validation * chore: clean up types, check cookie expiry directly against exp instead of msToExpiry * chore: use $q to wrap logout request * chore: update tests * refactor: combine conditionals * feat: set http only to true * chore: clean up types * chore: add defensive check for cookie exp before returning to client * chore: rename to handleSpcpLogout * chore: return spcpSession obj instead of destructuring * chore: add spcpSession properties for route test * chore: new type for jwt from cookie * refactor: combine response call * chore: tighten test for spcpsession, rename to CookieTimestamp * feat(auth): enable sgID Fully flesh out sgID integrations with FormSG [config] - Add needed configuration to configure sgID authentication, driving most of these using env vars [modules] - add an sgid module, taking inspiration from spcp - add sgid-related entries alongside spcp equivalents in public-form and email-submission controllers - do likewise for frontend components [deps] - add @opengovsg/sgid-client fixup! feat(auth): enable sgID * test(sgid): provide test coverage * feat(sgid): guard with beta flag, reword text - add sgid beta flag - add authType as argument to isDisableAuthType so that we can disable sgID if user does not have the appropriate beta flag - reword text for form submitters and admins so that they understand that sgID is in effect an extension of Singpass * fix(sgid): rework codebase in-line with review * feat: Remove self from collaborator list (#2212) * feat: Remove self from collaborator list * Fix typo in removeSelfFromCollaborators function * address mantariksh@'s comments * fix: allow duplicating email field with PDF to storage mode (#2303) * fix: allow duplicating email field with PDF to storage mode Bug was due to regression caused in #1971 where the set hook was converted to a validator hook. Upon further examination, the set hook was needed to set includeFormSummary to false on encrypt-mode forms. The pre-validate hook will always pass if storage mode forms's email.includeFormSummary is always set to true, and is thus redundant and kept deleted. * test(emailField): add unit tests for includeFormSummary * refactor(sgid): use httpOnly cookies, inject sgid config directly * fix(deps): unpin typescript (#2305) * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2307) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.1 to 4.28.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.2/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 4.28.1 to 4.28.2 (#2306) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.1 to 4.28.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.2/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/convict from 6.0.2 to 6.1.0 (#2308) Bumps [@types/convict](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/convict) from 6.0.2 to 6.1.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/convict) --- updated-dependencies: - dependency-name: "@types/convict" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump version to 5.19.0 * chore(deps-dev): bump husky from 6.0.0 to 7.0.0 (#2289) Bumps [husky](https://github.com/typicode/husky) from 6.0.0 to 7.0.0. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v6.0.0...v7.0.0) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(types): recognise User.betaFlags in zod (#2314) * fix(settings): reorder and reword auth options (#2315) * chore(deps-dev): bump husky from 7.0.0 to 7.0.1 (#2318) Bumps [husky](https://github.com/typicode/husky) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v7.0.0...v7.0.1) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump zod from 3.3.4 to 3.4.2 (#2319) Bumps [zod](https://github.com/colinhacks/zod) from 3.3.4 to 3.4.2. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/commits/v3.4.2) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(admin-form.service): fixed logical error in duplicate form field (#2301) * fix(admin-form.service): fixed logical error in duplicate form field * docs(admin-form.service): updated comments for duplicateFormField * chore(deps-dev): bump @types/bluebird from 3.5.35 to 3.5.36 (#2331) Bumps [@types/bluebird](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bluebird) from 3.5.35 to 3.5.36. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bluebird) --- updated-dependencies: - dependency-name: "@types/bluebird" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 14.17.4 to 14.17.5 (#2332) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.4 to 14.17.5. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/compression from 1.7.0 to 1.7.1 (#2334) Bumps [@types/compression](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/compression) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/compression) --- updated-dependencies: - dependency-name: "@types/compression" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/validator from 13.6.2 to 13.6.3 (#2336) Bumps [@types/validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validator) from 13.6.2 to 13.6.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/validator) --- updated-dependencies: - dependency-name: "@types/validator" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/mongodb from 3.6.19 to 3.6.20 (#2335) Bumps [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mongodb) from 3.6.19 to 3.6.20. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mongodb) --- updated-dependencies: - dependency-name: "@types/mongodb" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.939.0 to 2.940.0 (#2338) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.939.0 to 2.940.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.939.0...v2.940.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump zod from 3.4.2 to 3.5.1 (#2339) Bumps [zod](https://github.com/colinhacks/zod) from 3.4.2 to 3.5.1. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/commits) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: client to delete spcp cookie (#2328) * feat: client to delete cookie * chore: add env var for old domain name * doc: add comment * chore: add oldSpcpCookieDomain to environment * fix: undefined cookieName * chore: bump version to 5.19.1 * chore(deps-dev): bump @types/express from 4.17.12 to 4.17.13 (#2340) Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.12 to 4.17.13. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express) --- updated-dependencies: - dependency-name: "@types/express" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/convict from 6.1.0 to 6.1.1 (#2337) Bumps [@types/convict](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/convict) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/convict) --- updated-dependencies: - dependency-name: "@types/convict" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: visiting archived form URL to show correct error message (#2320) * fix: visiting archived form URL to show correct error message * fix: tests * fix: update stale test * fix: read email validation error message from Joi response (#2321) * fix: read email validation error message for joi response * fix: update the e2e test with hardcoded email * tests: await the e2e assertion * chore(deps-dev): bump @types/nodemailer from 6.4.2 to 6.4.3 (#2343) Bumps [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) from 6.4.2 to 6.4.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer) --- updated-dependencies: - dependency-name: "@types/nodemailer" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/express-rate-limit from 5.1.2 to 5.1.3 (#2333) Bumps [@types/express-rate-limit](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express-rate-limit) from 5.1.2 to 5.1.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express-rate-limit) --- updated-dependencies: - dependency-name: "@types/express-rate-limit" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump opossum from 6.1.0 to 6.2.0 (#2347) Bumps [opossum](https://github.com/nodeshift/opossum) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/nodeshift/opossum/releases) - [Changelog](https://github.com/nodeshift/opossum/blob/main/CHANGELOG.md) - [Commits](https://github.com/nodeshift/opossum/compare/v6.1.0...v6.2.0) --- updated-dependencies: - dependency-name: opossum dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/busboy from 0.2.3 to 0.2.4 (#2348) Bumps [@types/busboy](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/busboy) from 0.2.3 to 0.2.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/busboy) --- updated-dependencies: - dependency-name: "@types/busboy" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/jest from 26.0.23 to 26.0.24 (#2345) Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.23 to 26.0.24. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest) --- updated-dependencies: - dependency-name: "@types/jest" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.940.0 to 2.941.0 (#2352) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.940.0 to 2.941.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.940.0...v2.941.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump testcafe from 1.14.2 to 1.15.0 (#2356) Bumps [testcafe](https://github.com/DevExpress/testcafe) from 1.14.2 to 1.15.0. - [Release notes](https://github.com/DevExpress/testcafe/releases) - [Changelog](https://github.com/DevExpress/testcafe/blob/master/CHANGELOG.md) - [Commits](https://github.com/DevExpress/testcafe/compare/v1.14.2...v1.15.0) --- updated-dependencies: - dependency-name: testcafe dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump type-fest from 1.2.1 to 1.2.2 (#2357) Bumps [type-fest](https://github.com/sindresorhus/type-fest) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/sindresorhus/type-fest/releases) - [Commits](https://github.com/sindresorhus/type-fest/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: type-fest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/express-request-id from 1.4.1 to 1.4.2 (#2358) Bumps [@types/express-request-id](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express-request-id) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express-request-id) --- updated-dependencies: - dependency-name: "@types/express-request-id" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/ejs from 3.0.6 to 3.0.7 (#2344) Bumps [@types/ejs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ejs) from 3.0.6 to 3.0.7. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ejs) --- updated-dependencies: - dependency-name: "@types/ejs" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/mongodb-uri from 0.9.0 to 0.9.1 (#2364) Bumps [@types/mongodb-uri](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mongodb-uri) from 0.9.0 to 0.9.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mongodb-uri) --- updated-dependencies: - dependency-name: "@types/mongodb-uri" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.941.0 to 2.943.0 (#2366) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.941.0 to 2.943.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.941.0...v2.943.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/opossum from 4.1.1 to 4.1.2 (#2363) Bumps [@types/opossum](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/opossum) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/opossum) --- updated-dependencies: - dependency-name: "@types/opossum" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump ts-node from 10.0.0 to 10.1.0 (#2368) Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.0.0 to 10.1.0. - [Release notes](https://github.com/TypeStrong/ts-node/releases) - [Commits](https://github.com/TypeStrong/ts-node/compare/v10.0.0...v10.1.0) --- updated-dependencies: - dependency-name: ts-node dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/nodemailer from 6.4.3 to 6.4.4 (#2367) Bumps [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) from 6.4.3 to 6.4.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer) --- updated-dependencies: - dependency-name: "@types/nodemailer" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(SGID): add sgid to User schema beta flags (#2371) * fix(deps): bump celebrate from 14.0.0 to 15.0.0 (#2365) * fix(deps): bump celebrate from 14.0.0 to 15.0.0 Bumps [celebrate](https://github.com/arb/celebrate) from 14.0.0 to 15.0.0. - [Release notes](https://github.com/arb/celebrate/releases) - [Commits](https://github.com/arb/celebrate/compare/v14.0.0...v15.0.0) --- updated-dependencies: - dependency-name: celebrate dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * fix(test): update tests to account for new celebrate error default msg Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kar Rui Lau * fix(BetaService): make SGID form-level beta feature (#2369) * fix(BetaService): make SGID form-level beta feature * chore: remove outdated comment * fix: check for user access to SGID * fix: return authType when retrieving single example Users without SGID beta flag were not being prevented from creating SGID forms because the single example endpoint was not retrieving the authType, resulting in the frontend being unable to detect when the form is an SGID form. * fix: return authType when retrieving list of examples * test: update examples tests * fix: allow myinfo authtype for logout (#2362) * chore: bump version to 5.19.2 * build: move end-to-end tests to GitHub Actions (#2353) * build: move end-to-end tests to GitHub Actions * build: remove babel-loader from webpack dev When building the frontend using webpack, GA shows a series of `UnhandledPromiseRejectionWarning` errors related to socket hangups, and the frontend ultimately fails to build. This happens frequently in the dev environment, but has never occurred for the production webpack build. The only difference between the dev webpack config and the "common" config shared with prod is that babel-loader is used in dev. So I attempted to remove babel-loader from dev, since it is not necessary for the dev environment anyway. This seemed to stop the errors. * test(e2e): increase waiting time for download file Tests were still flaky due to downloaded files (e.g. storage mode CSV) taking too long to save to disk, resulting in Testcafe timing out and failing the test. The solution is to increase the waiting time between downloading the file and checking for its contents. * build: reduce e2e test concurrency Tests were still flaky, likely due to Headless Chrome running too slowly. I finally gave in and reduced the concurrency from 3 to 2 to reduce memory consumption and hopefully make the tests more reliable. * chore(deps-dev): bump @typescript-eslint/parser from 4.28.2 to 4.28.3 (#2374) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.2 to 4.28.3. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @sentry/integrations from 6.8.0 to 6.9.0 (#2375) Bumps [@sentry/integrations](https://github.com/getsentry/sentry-javascript) from 6.8.0 to 6.9.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.8.0...6.9.0) --- updated-dependencies: - dependency-name: "@sentry/integrations" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump libphonenumber-js from 1.9.21 to 1.9.22 (#2377) Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.9.21 to 1.9.22. - [Release notes](https://gitlab.com/catamphetamine/libphonenumber-js/tags) - [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.9.21...v1.9.22) --- updated-dependencies: - dependency-name: libphonenumber-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @sentry/browser from 6.8.0 to 6.9.0 (#2376) Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 6.8.0 to 6.9.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.8.0...6.9.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2378) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.2 to 4.28.3. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(deps): upgrade to latest TypeScript (#2383) * fix(deps): bump aws-sdk from 2.943.0 to 2.944.0 (#2386) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.943.0 to 2.944.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.943.0...v2.944.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump lint-staged from 11.0.0 to 11.0.1 (#2387) Bumps [lint-staged](https://github.com/okonet/lint-staged) from 11.0.0 to 11.0.1. - [Release notes](https://github.com/okonet/lint-staged/releases) - [Commits](https://github.com/okonet/lint-staged/compare/v11.0.0...v11.0.1) --- updated-dependencies: - dependency-name: lint-staged dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump version to 5.20.0 * feat: set up standalone `/shared` root folder for clean sharing of types and utils (#2322) * build: set up separate shared package with its own node_modules this allows for true independence and allows typescript build orchestration * build: set up tooling to handle new shared root folder * ref: collapse types into single file * feat: correct types used in document types * feat: use shared types in client * chore: update mongoose to v5.13.2 allows some new inference of types for instance/static methods * feat(shared): add more Dto and Base types for Agency * feat(agency): use new shared types as base for backend types * build: revert alias tooling This partially reverts commit 089eee52e6ac6653deb63da5beaee9b6e4573028. Not going to bother for now, backend build somehow keeps failing with aliases * fix: correct built server file path changed due to inclusion of a new shared folder in the compilation step * feat: remove unused types/api files agency and user.ts have been superseded by their new shared/types files * feat: update _id type for UserBase Co-authored-by: Antariksh Mahajan Co-authored-by: Antariksh Mahajan * feat(form-logic): introduce form logic model validation (#2302) * chore(audit-fixes): fix 162 vulnerability * fix(deps): bump nodemailer from 6.6.2 to 6.6.3 (#2398) Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.6.2 to 6.6.3. - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodemailer/nodemailer/commits/v6.6.3) --- updated-dependencies: - dependency-name: nodemailer dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump twilio from 3.65.0 to 3.66.0 (#2402) Bumps [twilio](https://github.com/twilio/twilio-node) from 3.65.0 to 3.66.0. - [Release notes](https://github.com/twilio/twilio-node/releases) - [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md) - [Commits](https://github.com/twilio/twilio-node/compare/3.65.0...3.66.0) --- updated-dependencies: - dependency-name: twilio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump convict from 6.1.0 to 6.2.0 (#2403) Bumps [convict](https://github.com/mozilla/node-convict) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/mozilla/node-convict/releases) - [Changelog](https://github.com/mozilla/node-convict/blob/master/CHANGELOG.md) - [Commits](https://github.com/mozilla/node-convict/compare/v6.1.0...v6.2.0) --- updated-dependencies: - dependency-name: convict dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.945.0 to 2.946.0 (#2404) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.945.0 to 2.946.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.945.0...v2.946.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * perf(png-size): optimize image sizes * fix(deps): bump aws-sdk from 2.946.0 to 2.948.0 (#2406) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.946.0 to 2.948.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.946.0...v2.948.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint from 7.30.0 to 7.31.0 (#2407) Bumps [eslint](https://github.com/eslint/eslint) from 7.30.0 to 7.31.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.30.0...v7.31.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 4.28.3 to 4.28.4 (#2409) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.3 to 4.28.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.4/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2411) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.3 to 4.28.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.4/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.948.0 to 2.949.0 (#2413) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.948.0 to 2.949.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.948.0...v2.949.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump convict-format-with-validator from 6.0.1 to 6.2.0 (#2414) Bumps [convict-format-with-validator](https://github.com/mozilla/node-convict) from 6.0.1 to 6.2.0. - [Release notes](https://github.com/mozilla/node-convict/releases) - [Changelog](https://github.com/mozilla/node-convict/blob/master/CHANGELOG.md) - [Commits](https://github.com/mozilla/node-convict/compare/v6.0.1...v6.2.0) --- updated-dependencies: - dependency-name: convict-format-with-validator dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @babel/core from 7.14.6 to 7.14.8 (#2416) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.14.6 to 7.14.8. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @babel/preset-env from 7.14.7 to 7.14.8 (#2417) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.7 to 7.14.8. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.949.0 to 2.950.0 (#2418) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.949.0 to 2.950.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.949.0...v2.950.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump supertest from 6.1.3 to 6.1.4 (#2419) Bumps [supertest](https://github.com/visionmedia/supertest) from 6.1.3 to 6.1.4. - [Release notes](https://github.com/visionmedia/supertest/releases) - [Commits](https://github.com/visionmedia/supertest/compare/v6.1.3...v6.1.4) --- updated-dependencies: - dependency-name: supertest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @babel/runtime from 7.14.6 to 7.14.8 (#2421) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.14.6 to 7.14.8. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint-plugin-jest from 24.3.6 to 24.3.7 (#2422) Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 24.3.6 to 24.3.7. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v24.3.6...v24.3.7) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @sentry/browser from 6.9.0 to 6.10.0 (#2423) Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 6.9.0 to 6.10.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.9.0...6.10.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint-plugin-jest from 24.3.7 to 24.4.0 (#2424) Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 24.3.7 to 24.4.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v24.3.7...v24.4.0) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump @sentry/integrations from 6.9.0 to 6.10.0 (#2425) Bumps [@sentry/integrations](https://github.com/getsentry/sentry-javascript) from 6.9.0 to 6.10.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/6.9.0...6.10.0) --- updated-dependencies: - dependency-name: "@sentry/integrations" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.950.0 to 2.951.0 (#2426) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.950.0 to 2.951.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.950.0...v2.951.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump web-streams-polyfill from 3.0.3 to 3.1.0 (#2427) Bumps [web-streams-polyfill](https://github.com/MattiasBuelens/web-streams-polyfill) from 3.0.3 to 3.1.0. - [Release notes](https://github.com/MattiasBuelens/web-streams-polyfill/releases) - [Changelog](https://github.com/MattiasBuelens/web-streams-polyfill/blob/master/CHANGELOG.md) - [Commits](https://github.com/MattiasBuelens/web-streams-polyfill/compare/v3.0.3...v3.1.0) --- updated-dependencies: - dependency-name: web-streams-polyfill dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump lint-staged from 11.0.1 to 11.1.0 (#2428) Bumps [lint-staged](https://github.com/okonet/lint-staged) from 11.0.1 to 11.1.0. - [Release notes](https://github.com/okonet/lint-staged/releases) - [Commits](https://github.com/okonet/lint-staged/compare/v11.0.1...v11.1.0) --- updated-dependencies: - dependency-name: lint-staged dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump lint-staged from 11.1.0 to 11.1.1 (#2429) Bumps [lint-staged](https://github.com/okonet/lint-staged) from 11.1.0 to 11.1.1. - [Release notes](https://github.com/okonet/lint-staged/releases) - [Commits](https://github.com/okonet/lint-staged/compare/v11.1.0...v11.1.1) --- updated-dependencies: - dependency-name: lint-staged dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 14.17.5 to 14.17.6 (#2430) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.5 to 14.17.6. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump date-fns from 2.22.1 to 2.23.0 (#2431) Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.22.1 to 2.23.0. - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md) - [Commits](https://github.com/date-fns/date-fns/compare/v2.22.1...v2.23.0) --- updated-dependencies: - dependency-name: date-fns dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.951.0 to 2.953.0 (#2433) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.951.0 to 2.953.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.951.0...v2.953.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump jszip from 3.6.0 to 3.7.0 (#2434) Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.0. - [Release notes](https://github.com/Stuk/jszip/releases) - [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md) - [Commits](https://github.com/Stuk/jszip/commits) --- updated-dependencies: - dependency-name: jszip dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: package.json & package-lock.json to reduce vulnerabilities (#2412) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-VALIDATOR-1090599 - https://snyk.io/vuln/SNYK-JS-VALIDATOR-1090600 - https://snyk.io/vuln/SNYK-JS-VALIDATOR-1090601 - https://snyk.io/vuln/SNYK-JS-VALIDATOR-1090602 * ref(shared-types-refactor): move form field types to root shared folder (#2355) * feat: add primitive types in shared/types/field * ref: use shared types when instantiating backend field types * ref: simplify FormField type export * fix: new import path of enum types for e2e tests * feat: make form_fields discriminatable with just switch statements convert most instances where the field types need to be discriminated against to new FormFieldSchema type * fix: remove FieldBase props from Table column types * fix: correct types used for field validation * feat(shared-types): extract analytics types to root shared folder (#2401) * ref: extract analytics types to root shared folder * chore: add semantic commit so semantic pull request does not complain * refactor: add adaptor layer and refactor getVisibleFieldIds and getLogicUnitPreventSubmit callers (#2435) * chore(deps-dev): bump ngrok from 4.0.1 to 4.1.0 (#2439) Bumps [ngrok](https://github.com/bubenshchykov/ngrok) from 4.0.1 to 4.1.0. - [Release notes](https://github.com/bubenshchykov/ngrok/releases) - [Changelog](https://github.com/bubenshchykov/ngrok/blob/master/CHANGELOG.md) - [Commits](https://github.com/bubenshchykov/ngrok/commits) --- updated-dependencies: - dependency-name: ngrok dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump fp-ts from 2.10.5 to 2.11.0 (#2440) Bumps [fp-ts](https://github.com/gcanti/fp-ts) from 2.10.5 to 2.11.0. - [Release notes](https://github.com/gcanti/fp-ts/releases) - [Changelog](https://github.com/gcanti/fp-ts/blob/master/CHANGELOG.md) - [Commits](https://github.com/gcanti/fp-ts/compare/2.10.5...2.11.0) --- updated-dependencies: - dependency-name: fp-ts dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2441) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.4 to 4.28.5. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.5/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 4.28.4 to 4.28.5 (#2442) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.4 to 4.28.5. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.5/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump version to 5.21.0 * chore: add postinstall script to install /shared modules (#2438) * ref: remove backend package dependencies from Form (sub-)types and move to shared dir (#2385) * feat: add shared base for form_logo types * feat: add shared base for form_logic types * feat: add shared base for form types * feat(form_logo): use shared types * fix: correct logicType of PreventSubmitLogic * feat: use shared logic types and allow logic discrimination * feat: add shared form constants for form settings and public fields * feat(form): create PublicFormDto and FormSettings types * feat: use new shared types in backend * feat: add more DTO types to shared/types * ref: export shared types from backend types for use in rest of backend * ref(client): import form types from shared instead of backend dir * ref(backend): sync types with client, update tests * ref: set all default keys in FormBase to be required reverse the schema to make form base keys optional when extending * fix: rebase errors * feat(shared-types): move core, FormFeedback related types to root shared folder (#2394) * feat: move core types to root shared folder * ref: move FormFeedback related types to root shared folder * feat: correctly type FormFeedbackDto * ref: use correct import for FormFeedbackMetaDto * fix: set backend formId type to be from IFormSchema * fix(deps): bump aws-sdk from 2.953.0 to 2.954.0 (#2451) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.953.0 to 2.954.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.953.0...v2.954.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(client): add EncryptionService to validate encrypt submission responses (#2436) * feat: add shared field response types with zod validation * feat: add EncryptionService for validating and encrypting responses * ref(Form.class): use EncryptionService to get encrypted content string * chore: set eslint rule for typesafe to be warn in /public folder * test(EncryptionService): add base tests * ref: replace BasicFIeld and MyInfoAttribute types with shared type * fix: update isPossibleResponse typeguard to be fieldType string * fix: upgrade sortablejs from 1.13.0 to 1.14.0 (#2456) Snyk has created this PR to upgrade sortablejs from 1.13.0 to 1.14.0. See this package in npm: https://www.npmjs.com/package/sortablejs See this project in Snyk: https://app.snyk.io/org/open-government-products/project/d5cee0f2-80bf-4efc-9f84-61ab911f7cef?utm_source=github&utm_medium=upgrade-pr * fix(deps): bump fp-ts from 2.11.0 to 2.11.1 (#2458) Bumps [fp-ts](https://github.com/gcanti/fp-ts) from 2.11.0 to 2.11.1. - [Release notes](https://github.com/gcanti/fp-ts/releases) - [Changelog](https://github.com/gcanti/fp-ts/blob/master/CHANGELOG.md) - [Commits](https://github.com/gcanti/fp-ts/compare/2.11.0...2.11.1) --- updated-dependencies: - dependency-name: fp-ts dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump testcafe from 1.15.0 to 1.15.1 (#2459) Bumps [testcafe](https://github.com/DevExpress/testcafe) from 1.15.0 to 1.15.1. - [Release notes](https://github.com/DevExpress/testcafe/releases) - [Changelog](https://github.com/DevExpress/testcafe/blob/master/CHANGELOG.md) - [Commits](https://github.com/DevExpress/testcafe/compare/v1.15.0...v1.15.1) --- updated-dependencies: - dependency-name: testcafe dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @opengovsg/mockpass from 2.7.4 to 2.7.6 (#2460) Bumps [@opengovsg/mockpass](https://github.com/opengovsg/mockpass) from 2.7.4 to 2.7.6. - [Release notes](https://github.com/opengovsg/mockpass/releases) - [Commits](https://github.com/opengovsg/mockpass/compare/v2.7.4...v2.7.6) --- updated-dependencies: - dependency-name: "@opengovsg/mockpass" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.954.0 to 2.955.0 (#2461) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.954.0 to 2.955.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.954.0...v2.955.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add MYINFO_BANNER_CONTENT env var for bannering myinfo forms (#2457) * fix(types): Fix express session types based on latest definitions (#2463) * fix: allow underscores in form esrvcId validation * chore: bump version to v5.21.1 * fix(snyk): Fix vulnerability in Twilio (#2469) Open redirect issue fixed in url-parse@1.5.2 https://app.snyk.io/org/open-government-products/project/d5cee0f2-80bf-4efc-9f84-61ab911f7cef#issue-SNYK-JS-URLPARSE-1533425 * fix(SGID): disallow SGID authentication in storage mode (#2468) * fix(SGID): prevent authType SGID in storage mode * test: add tests for invalid authType * chore(deps-dev): bump type-fest from 1.2.2 to 1.2.3 (#2473) Bumps [type-fest](https://github.com/sindresorhus/type-fest) from 1.2.2 to 1.2.3. - [Release notes](https://github.com/sindresorhus/type-fest/releases) - [Commits](https://github.com/sindresorhus/type-fest/compare/v1.2.2...v1.2.3) --- updated-dependencies: - dependency-name: type-fest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.955.0 to 2.956.0 (#2474) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.955.0 to 2.956.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.955.0...v2.956.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: remove validation when logging esrvcId to login collection not needed, and part of the incomplete hotfix undertaken in #2470 * chore: bump version to v5.21.2 * fix: upgrade zod from 3.3.4 to 3.5.1 (#2476) Snyk has created this PR to upgrade zod from 3.3.4 to 3.5.1. See this package in npm: https://www.npmjs.com/package/zod See this project in Snyk: https://app.snyk.io/org/formsg/project/c35bb3aa-a521-4778-a5b9-491c66e3e78d?utm_source=github&utm_medium=upgrade-pr * fix(deps): bump zod from 3.5.1 to 3.6.1 (#2490) Bumps [zod](https://github.com/colinhacks/zod) from 3.5.1 to 3.6.1. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/compare/v3.5.1...v3.6.1) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @babel/preset-env from 7.14.8 to 7.14.9 (#2491) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.8 to 7.14.9. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.14.9/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 14.17.6 to 14.17.7 (#2492) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.6 to 14.17.7. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint from 7.31.0 to 7.32.0 (#2494) Bumps [eslint](https://github.com/eslint/eslint) from 7.31.0 to 7.32.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.31.0...v7.32.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump ts-essentials from 7.0.2 to 7.0.3 (#2495) Bumps [ts-essentials](https://github.com/krzkaczor/ts-essentials) from 7.0.2 to 7.0.3. - [Release notes](https://github.com/krzkaczor/ts-essentials/releases) - [Changelog](https://github.com/krzkaczor/ts-essentials/blob/master/CHANGELOG.md) - [Commits](https://github.com/krzkaczor/ts-essentials/compare/v7.0.2...v7.0.3) --- updated-dependencies: - dependency-name: ts-essentials dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump type-fest from 1.2.3 to 1.3.0 (#2496) Bumps [type-fest](https://github.com/sindresorhus/type-fest) from 1.2.3 to 1.3.0. - [Release notes](https://github.com/sindresorhus/type-fest/releases) - [Commits](https://github.com/sindresorhus/type-fest/compare/v1.2.3...v1.3.0) --- updated-dependencies: - dependency-name: type-fest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump core-js from 3.15.2 to 3.16.0 (#2493) Bumps [core-js](https://github.com/zloirock/core-js) from 3.15.2 to 3.16.0. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/compare/v3.15.2...v3.16.0) --- updated-dependencies: - dependency-name: core-js dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump aws-sdk from 2.956.0 to 2.958.0 (#2497) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.956.0 to 2.958.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.956.0...v2.958.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(shared-types): relocate (admin-related) Submission types to new shared folder (#2399) * ref: move submission to shared folder, fix SubmissionCountQueryDto * ref(client): use relocated shared types in client services * ref: alias or use new shared types in backend types * ref(controllers): type params and queries with DTO types * fix(login): show Joi validation error correctly (#2499) * chore(signin): change "otp" to "OTP" in response * chore(signin): render Joi error message correctly * test: update casing in tests * feat(shared-types): move billing related types to shared folder (#2400) * ref: move billing related types to root shared folder * ref(server): extend from shared types * ref(client): use shared types * feat: remove export for ILogin type * chore: remove express-device (#2498) * feat(sms-limiting): db dependencies (#2503) * feat(sms-limiting): sms counts retrieval (#2276) * feat(sms_count.server.model): adds new isOnboardedAcc key and scripts to add/delete the key * refactor(sms.types): adds property that checks if a sms is sent using formsg's credentials * refactor(sms_count.server.model): adds pre-save hook to automatically set property * feat(sms.types): updated typings of IVerificationsmscount * test(sms_count.server): fixed tests and added extra tests for isOnboardedAccount * feat(sms.service): adds new method to retrieve free sms counts of a user * test(sms.service): adds new unit tests for sms count retrieval * test(sms_count.server.model): updated test case for a client using default credentials * feat(sms.controller): added new sms controller iwth method to retrieve counts and msgsrvcid fix(sms.controller.ts): added mapRouteError for sms controller * feat(routes): exposes new route at sms/:userId/:formId * fix(sms.controller): removed sms count retrieval requiring the userId as it sohuld be for the admin * refactor(sms): count retrieval no longer required userId * test(sms.controller): added unit tests for controller method to retrieve counts * fix(sms.controller): changed to relative imports in spec to avoid e2e tests breaking * refactor(sms_count): sms service wraps model count documents call * test(sms.service): reworked tests to account for mocking of db * refactor(sms.controller): removed extra middleware from sms controller * test(sms.controller.spec): renamed sms controller's exposed method in tests * refactor(sms.routes): removed unused sms route * refactor(sms.controller): changed counts retrieval to be solely focused on counts * feat(admin-forms.form.routes): adds new route for retrieving free sms ocunts for admin of a form * refactor(sms_count): shifts default msgsrvcid to be from config, helper method defined in test * test(sms.controller.spec): updated tests to use mocks * test(sms_count.server.model.spec): updated db tests to use smsConfig * fix(v3.routes): removed extra import statement * refactor(types): renamed smscounts meta and shifted it to api renamed to smsCountsDto because it is used to transfer data b/w fe and be. against giving it a more specific name because this is a type signifying a transfer of sms count data. context for what this sms counts actually means should be given by the caller * test(sms_count.server.model.spec): updated test to use sms_config * docs(sms): updated docs for sms counts retrieval in controller and route * test(sms.service.spec): made tests more explicit * refactor(admin-form.controller): shifts over handler for count retrieval from sms to admin-form * test(admin-form.controller.spec): shifts over associated tests * refactor(sms_count.server.model.spec): changed tests structure * chore(sms.util): removed unneeded method * refactor(sms.types): added in docs for retrieveFreeSmsCounts * fix(admin-forms.form.routes): removed erroneous import * fix(sms.service): adds error logging * feat(sms-limiting): prerelease (#2500) * refactor(admin-form/controller): removed env var being sent and changed quota to be on method * refactor(sms.types): updated disableSms to use mongoose types; updated typing of verification schema * fix(sms.config): added missing property * fix(deps): bump libphonenumber-js from 1.9.22 to 1.9.23 (#2505) Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.9.22 to 1.9.23. - [Release notes](https://gitlab.com/catamphetamine/libphonenumber-js/tags) - [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.9.22...v1.9.23) --- updated-dependencies: - dependency-name: libphonenumber-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): bump zod from 3.6.1 to 3.7.1 (#2506) Bumps [zod](https://github.com/colinhacks/zod) from 3.6.1 to 3.7.1. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/commits) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @opengovsg/mockpass from 2.7.6 to 2.7.7 (#2507) Bumps [@opengovsg/mockpass](https://github.com/opengovsg/mockpass) from 2.7.6 to 2.7.7. - [Release notes](https://github.com/opengovsg/mockpass/releases) - [Commits](https://github.com/opengovsg/mockpass/compare/v2.7.6...v2.7.7) --- updated-dependencies: - dependency-name: "@opengovsg/mockpass" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#2508) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.5 to 4.29.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.29.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump version to 5.22.0 * fix(deps): bump aws-sdk from 2.958.0 to 2.959.0 (#2523) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.958.0 to 2.959.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.958.0...v2.959.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 4.28.5 to 4.29.0 (#2524) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.5 to 4.29.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.29.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: move src/types/api/auth to shared/types/form/form_auth (#2510) * feat: move most of src/shared to root shared folder (#2519) * feat: remove dependency on `path` import in shared folder may result in wonky behaviour, since `path` is a nodejs module * ref(file-validation): refactor getInvalidFileExtensionsInZip to not require currying and be a single function instead * feat(old-shared): remove now unused FilePlatforms enum * ref: move src/types/utils to shared/types/utils * chore: add additional npm packages for root shared folder in prep for moving src/shared to root shared * feat: move util/email-domain-validation to root shared folder * feat: move util/has-prop to root shared folder * feat: move util/file-validation to root shared folder * feat: move util/immutable-array-fns to root shared folder * feat: move util/nric-validation to root shared folder * feat: move util/phone-num-validation to root shared folder * feat: move util/stringify-safe to root shared folder * feat: move util/uen-validation to root shared folder * feat: move util/url-validation to root shared folder * feat: move util/verification to root shared folder * feat: move util/verified-content to root shared folder * feat: rename shared/util to shared/utils * feat: move src/shared/resources to shared/constants/field the old place was confusing. The exported elements are basically constants * feat: extract file related constants in src/shared/constants move them to shared/constants/file * feat: extract link constants into own shared/constants/link.ts * feat: use DateSelectedValidation in shared instead of types * feat: add TODO to complete shared/logic * fix: use relative paths in utils/field-validation typescript would not correctly compile when absolute path is used for some reason, will debug in the future. this causes crashes when typescript feature such enums are used, since the types are not compiled. * feat: loosen esrvcId validation to only restrict whitespace (#2521) * feat: loosen esrvcId validation to only restrict whitespace * test(FormModel): add unit test for validating esrvcId * ref: migrate public-facing submission types to shared folder (#2509) * ref: move client-only response types to own folder * feat: remove unused ClientSubmission interface * feat: add submission content types for email mode * feat: add server-side ParsedEmailModeSubmissionBody types denotes the shape after passing the dto through email submission middlewares * ref: add and use public storage mode submission types * feat: add specific types for Email and Encrypt mode submissions * feat: clean up some response types * fix: remove extraneous period in comment * fix(deps): bump aws-sdk from 2.959.0 to 2.960.0 (#2528) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.959.0 to 2.960.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.959.0...v2.960.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 14.17.7 to 14.17.9 (#2529) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.7 to 14.17.9. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update bcrypt dependencies in package-lock (#2530) Co-authored-by: LoneRifle Co-authored-by: Antariksh Mahajan Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snyk bot Co-authored-by: Jiayee Lim Co-authored-by: tshuli <63710093+tshuli@users.noreply.github.com> Co-authored-by: Frank Chen Co-authored-by: shuli-ogp Co-authored-by: seaerchin <44049504+seaerchin@users.noreply.github.com> Co-authored-by: Aniruddha Adhikary (Ani) Co-authored-by: Foo Yong Jie Co-authored-by: Timothee Groleau Co-authored-by: Chow Yi Yin <54089291+chowyiyin@users.noreply.github.com> --- .dockerignore | 1 - .ebextensions/env-file-creation.config | 42 + .eslintrc | 2 +- .github/workflows/ci.yml | 19 + .template-env | 1 + CHANGELOG.md | 290 +- CREDITS.md | 32 - Dockerrun.aws.json | 6 +- README.md | 3 - docker-compose.yml | 7 + docs/DEPLOYMENT_SETUP.md | 16 + package-lock.json | 4614 +++++++---------- package.json | 133 +- shared/.eslintrc | 20 + .../constants/field/basic.ts | 10 +- .../constants/field}/myinfo/index.ts | 8 +- .../field}/myinfo/myinfo-countries.ts | 0 .../field}/myinfo/myinfo-dialects.ts | 0 .../field}/myinfo/myinfo-nationalities.ts | 0 .../field}/myinfo/myinfo-occupations.ts | 0 .../constants/field}/myinfo/myinfo-races.ts | 0 shared/constants/file.ts | 10 + shared/constants/form.ts | 46 + shared/constants/links.ts | 1 + shared/package-lock.json | 556 ++ shared/package.json | 21 + shared/tsconfig.json | 72 + shared/types/agency.ts | 32 + shared/types/analytics.ts | 5 + shared/types/billing.ts | 37 + shared/types/core.ts | 12 + shared/types/field/attachmentField.ts | 15 + .../types/field/base.ts | 22 +- shared/types/field/checkboxField.ts | 14 + shared/types/field/dateField.ts | 19 + shared/types/field/decimalField.ts | 12 + shared/types/field/dropdownField.ts | 6 + shared/types/field/emailField.ts | 16 + shared/types/field/homeNoField.ts | 6 + shared/types/field/imageField.ts | 9 + shared/types/field/index.ts | 80 + shared/types/field/longTextField.ts | 7 + shared/types/field/mobileField.ts | 8 + shared/types/field/nricField.ts | 5 + shared/types/field/numberField.ts | 17 + shared/types/field/radioField.ts | 7 + shared/types/field/ratingField.ts | 14 + shared/types/field/sectionField.ts | 5 + shared/types/field/shortTextField.ts | 8 + shared/types/field/statementField.ts | 5 + shared/types/field/tableField.ts | 25 + shared/types/field/uenField.ts | 5 + shared/types/field/utils/index.ts | 1 + shared/types/field/utils/textField.ts | 15 + shared/types/field/yesNoField.ts | 5 + shared/types/form/form.ts | 223 + .../auth.ts => shared/types/form/form_auth.ts | 2 + shared/types/form/form_feedback.ts | 43 + shared/types/form/form_logic.ts | 48 + shared/types/form/form_logo.ts | 26 + shared/types/form/index.ts | 5 + shared/types/generic.ts | 10 + shared/types/response.ts | 146 + shared/types/submission.ts | 124 + shared/types/user.ts | 41 + shared/types/utils.ts | 15 + .../utils}/__tests__/file-validation.spec.ts | 24 +- .../utils/__tests__/stringify-safe.spec.ts | 4 +- .../utils}/email-domain-validation.ts | 2 +- .../util => shared/utils}/file-validation.ts | 49 +- {src/shared/util => shared/utils}/has-prop.ts | 0 .../utils}/immutable-array-fns.ts | 2 +- .../util => shared/utils}/nric-validation.ts | 0 .../utils}/phone-num-validation.ts | 0 .../util => shared/utils}/stringify-safe.ts | 2 +- .../util => shared/utils}/uen-validation.ts | 0 .../util => shared/utils}/url-validation.ts | 0 .../util => shared/utils}/verification.ts | 2 +- .../util => shared/utils}/verified-content.ts | 2 + src/app/config/features/sgid.config.ts | 72 + src/app/config/features/sms.config.ts | 8 + src/app/config/features/spcp-myinfo.config.ts | 15 + src/app/config/formsg-sdk.ts | 2 +- src/app/constants/filesize.ts | 2 - src/app/loaders/express/index.ts | 7 +- src/app/loaders/express/locals.ts | 5 + .../__tests__/agency.server.model.spec.ts | 7 +- .../__tests__/form.server.model.spec.ts | 134 +- .../__tests__/login.server.model.spec.ts | 22 +- src/app/models/agency.server.model.ts | 22 +- .../models/field/__tests__/emailField.spec.ts | 105 + .../common/textValidationOptionsSchema.ts | 6 +- src/app/models/field/dateField.ts | 3 +- src/app/models/field/emailField.ts | 18 +- src/app/models/form.server.model.ts | 235 +- src/app/models/login.server.model.ts | 4 - src/app/models/submission.server.model.ts | 2 +- src/app/models/user.server.model.ts | 8 +- .../auth/__tests__/auth.routes.spec.ts | 4 +- src/app/modules/auth/auth.controller.ts | 4 +- src/app/modules/auth/auth.middlewares.ts | 3 +- src/app/modules/auth/auth.routes.ts | 2 +- src/app/modules/auth/auth.service.ts | 4 +- src/app/modules/auth/auth.utils.ts | 7 +- src/app/modules/billing/billing.controller.ts | 3 +- .../bounce/__tests__/bounce-test-helpers.ts | 2 +- .../bounce/__tests__/bounce.service.spec.ts | 16 +- src/app/modules/bounce/bounce.service.ts | 6 +- .../__tests__/helpers/prepareTestData.ts | 3 + src/app/modules/examples/examples.queries.ts | 4 +- src/app/modules/examples/examples.types.ts | 6 +- .../__tests__/feedback.service.spec.ts | 4 +- src/app/modules/feedback/feedback.service.ts | 8 +- .../modules/form/__tests__/form.utils.spec.ts | 4 +- .../__tests__/admin-form.controller.spec.ts | 450 +- .../__tests__/admin-form.routes.spec.ts | 41 +- .../__tests__/admin-form.service.spec.ts | 82 +- .../__tests__/admin-form.utils.spec.ts | 14 +- .../form/admin-form/admin-form.controller.ts | 312 +- .../form/admin-form/admin-form.routes.ts | 20 +- .../form/admin-form/admin-form.service.ts | 78 +- .../form/admin-form/admin-form.types.ts | 4 +- .../form/admin-form/admin-form.utils.ts | 32 +- src/app/modules/form/form.errors.ts | 2 +- src/app/modules/form/form.utils.ts | 12 +- .../__tests__/public-form.controller.spec.ts | 134 +- .../__tests__/public-form.routes.spec.ts | 43 +- .../__tests__/public-form.service.spec.ts | 51 +- .../public-form/public-form.controller.ts | 92 +- .../form/public-form/public-form.service.ts | 22 +- .../form/public-form/public-form.utils.ts | 4 +- src/app/modules/myinfo/myinfo.util.ts | 4 +- .../sgid/__tests__/sgid.controller.spec.ts | 200 + .../sgid/__tests__/sgid.routes.spec.ts | 268 + .../sgid/__tests__/sgid.service.spec.ts | 255 + .../sgid/__tests__/sgid.test.constants.ts | 77 + src/app/modules/sgid/sgid.constants.ts | 5 + src/app/modules/sgid/sgid.controller.ts | 83 + src/app/modules/sgid/sgid.errors.ts | 52 + src/app/modules/sgid/sgid.middlewares.ts | 8 + src/app/modules/sgid/sgid.routes.ts | 8 + src/app/modules/sgid/sgid.service.ts | 236 + src/app/modules/sgid/sgid.types.ts | 5 + src/app/modules/sgid/sgid.util.ts | 64 + .../spcp/__tests__/spcp.controller.spec.ts | 4 +- .../spcp/__tests__/spcp.test.constants.ts | 4 +- src/app/modules/spcp/spcp.controller.ts | 2 +- src/app/modules/spcp/spcp.service.ts | 17 +- src/app/modules/spcp/spcp.types.ts | 24 +- src/app/modules/spcp/spcp.util.ts | 12 +- .../submission/IncomingSubmission.class.ts | 31 +- .../ParsedResponsesObject.class.ts | 39 +- .../email-submission.receiver.spec.ts | 10 +- .../__tests__/email-submission.routes.spec.ts | 32 +- .../__tests__/email-submission.util.spec.ts | 2 +- .../email-submission.controller.ts | 25 +- .../email-submission.receiver.ts | 2 +- .../email-submission.service.ts | 4 +- .../email-submission.types.ts | 16 +- .../email-submission/email-submission.util.ts | 30 +- .../encrypt-submission.controller.ts | 17 +- .../encrypt-submission.types.ts | 4 +- .../modules/submission/submission.types.ts | 28 +- .../modules/submission/submission.utils.ts | 9 +- src/app/modules/user/user.service.ts | 4 +- .../__tests__/verification.controller.spec.ts | 2 +- .../verification/verification.controller.ts | 2 +- .../verification/verification.model.ts | 2 +- .../verification/verification.service.ts | 2 +- .../modules/verification/verification.util.ts | 2 +- .../verified-content.service.ts | 6 + .../verified-content.types.ts | 4 +- .../verified-content.utils.ts | 2 +- src/app/modules/webhook/webhook.utils.ts | 2 +- src/app/modules/webhook/webhook.validation.ts | 2 +- .../__tests__/admin-forms.form.routes.spec.ts | 4 +- .../admin-forms.presign.routes.spec.ts | 2 +- .../admin-forms.preview.routes.spec.ts | 32 +- .../v3/admin/forms/admin-forms.form.routes.ts | 14 + .../forms/admin-forms.settings.routes.ts | 17 + .../api/v3/auth/__tests__/auth.routes.spec.ts | 4 +- src/app/routes/api/v3/auth/auth.routes.ts | 2 +- .../public-forms.feedback.routes.spec.ts | 3 +- .../public-forms.form.routes.spec.ts | 34 +- .../public-forms.submissions.routes.spec.ts | 32 +- .../public-forms.verification.routes.spec.ts | 8 +- .../api/v3/forms/public-forms.auth.routes.ts | 11 + .../mail/__tests__/mail.service.spec.ts | 7 +- src/app/services/mail/mail.service.ts | 6 +- .../sms/__tests__/sms.service.spec.ts | 38 +- .../__tests__/sms_count.server.model.spec.ts | 56 +- src/app/services/sms/sms.service.ts | 34 +- src/app/services/sms/sms.types.ts | 10 +- .../services/sms/sms_count.server.model.ts | 23 + .../field-validation/answerField.factory.ts | 34 +- .../answerValidator.factory.ts | 97 +- .../field-validation.guards.ts | 2 +- src/app/utils/field-validation/index.ts | 31 +- .../__tests__/email-validation.spec.ts | 2 +- .../__tests__/mobile-num-validation.spec.ts | 2 +- .../__tests__/text-validator.spec.ts | 2 +- .../validators/attachmentValidator.ts | 16 +- .../validators/checkboxValidator.ts | 11 +- .../field-validation/validators/common.ts | 15 +- .../validators/dateValidator.ts | 16 +- .../validators/decimalValidator.ts | 11 +- .../validators/dropdownValidator.ts | 12 +- .../validators/emailValidator.ts | 11 +- .../validators/homeNoValidator.ts | 14 +- .../validators/mobileNoValidator.ts | 14 +- .../validators/nricValidator.ts | 7 +- .../validators/numberValidator.ts | 16 +- .../validators/radioButtonValidator.ts | 11 +- .../validators/ratingValidator.ts | 13 +- .../validators/sectionValidator.ts | 4 +- .../validators/tableValidator.ts | 8 +- .../validators/textValidator.ts | 17 +- .../validators/uenValidator.ts | 7 +- .../validators/yesNoValidator.ts | 4 +- src/app/utils/logic-adaptor.ts | 32 + .../submit-form-email.server.view.html | 2 +- .../submit-form-summary-pdf.server.view.html | 2 +- src/public/.eslintrc | 2 +- src/public/main.js | 1 + .../core/img/landing/restricted__1-MOM.png | Bin 40483 -> 37561 bytes .../core/img/landing/restricted__2-MOE.png | Bin 153843 -> 151779 bytes .../core/img/landing/restricted__3-NEA.png | Bin 160046 -> 154777 bytes .../core/img/landing/restricted__7-MFA.png | Bin 59307 -> 56551 bytes .../core/img/landing/restricted__8-IPOS.png | Bin 51008 -> 47885 bytes .../core/img/landing/restricted__9-SCB.png | Bin 74404 -> 72294 bytes .../img/landing/restricted__build-demo.png | Bin 66306 -> 64661 bytes .../core/img/landing/restricted__feature1.png | Bin 29338 -> 28496 bytes .../core/img/landing/restricted__feature2.png | Bin 37421 -> 36426 bytes .../core/img/landing/restricted__feature3.png | Bin 26336 -> 24742 bytes .../modules/core/img/og/img_metatag.png | Bin 33207 -> 26891 bytes .../core/img/og/logo-vertical-color.png | Bin 4479 -> 4429 bytes .../form-emails-input.client.view.html | 28 +- .../form-emails-input.client.component.js | 36 - .../activate-form-modal.client.controller.js | 4 + .../collaborator-modal.client.controller.js | 33 + .../edit-fields-modal.client.controller.js | 16 +- .../edit-logic-modal.client.controller.js | 2 +- ...edit-start-page-modal.client.controller.js | 12 +- .../list-forms.client.controller.js | 2 +- .../view-responses.client.controller.js | 2 +- .../modules/forms/admin/css/settings-form.css | 5 + .../settings-form.client.view.html | 28 +- .../directives/edit-form.client.directive.js | 4 +- .../settings-form.client.directive.js | 14 +- ...lidate-email-domain-from-text.directive.js | 2 +- .../validate-form-emails-input.directive.js | 39 + .../views/collaborator.client.modal.html | 38 +- .../views/edit-start-page.client.modal.html | 47 +- .../views/view-responses.client.view.html | 8 +- .../forms/base/componentViews/end-page.html | 2 +- .../field-attachment.client.view.html | 2 +- .../forms/base/componentViews/start-page.html | 18 +- .../field-attachment.client.component.js | 23 +- .../submit-form.client.controller.js | 19 +- .../base/directives/ng-intl-tel-input.js | 2 +- .../base/directives/submit-form.directive.js | 2 +- .../validate-nric.client.directive.js | 4 +- .../validate-uen.client.directive.js | 2 +- .../validate-url.client.directive.js | 2 +- .../forms/config/forms.client.routes.js | 6 +- .../helpers/CsvMergedHeadersGenerator.ts | 4 +- .../forms/helpers/FeedbackCsvGenerator.ts | 4 +- .../__tests__/FeedbackCsvGenerator.spec.ts | 13 +- .../ArrayAnswerResponse.class.ts | 2 +- .../csv-response-classes/Response.class.ts | 2 +- .../SingleAnswerResponse.class.ts | 2 +- .../TableResponse.class.ts | 2 +- .../forms/helpers/decryption.worker.js | 2 +- .../modules/forms/helpers/field-factory.js | 4 +- .../helpers/process-decrypted-content.ts | 12 +- .../modules/forms/helpers/response-factory.ts | 4 +- .../forms/services/form-api.client.factory.js | 43 +- .../services/form-fields.client.service.js | 8 +- .../form-logic.client.service.spec.ts | 78 - .../form-logic/form-logic.client.service.ts | 55 - .../services/spcp-session.client.factory.js | 60 +- .../modules/forms/viewmodels/Form.class.js | 6 +- .../authentication.client.controller.js | 28 +- .../examples-card.client.directive.js | 2 +- .../services/AdminSubmissionsService.ts | 31 +- src/public/services/AdminViewFormService.ts | 21 +- src/public/services/AnalyticsService.ts | 2 +- src/public/services/AuthService.ts | 6 +- src/public/services/BetaService.ts | 93 +- src/public/services/BillingService.ts | 2 +- src/public/services/CreateFormService.ts | 21 +- src/public/services/EncryptionService.ts | 102 + src/public/services/ExamplesService.ts | 17 +- src/public/services/FormFeedbackService.ts | 23 +- src/public/services/FormSgSdkService.ts | 2 +- src/public/services/PublicFormAuthService.ts | 14 +- src/public/services/PublicFormService.ts | 12 +- src/public/services/UpdateFormService.ts | 52 +- src/public/services/UserService.ts | 12 +- .../__tests__/AdminSubmissionsService.test.ts | 18 +- .../__tests__/AdminViewFormService.test.ts | 20 +- .../services/__tests__/BetaService.test.ts | 60 +- .../__tests__/CreateFormService.test.ts | 26 +- .../__tests__/EncryptionService.test.ts | 89 + .../__tests__/PublicFormAuthService.test.ts | 31 + .../__tests__/PublicFormService.test.ts | 12 +- .../__tests__/UpdateFormService.test.ts | 11 +- src/public/types/README.md | 1 + src/public/types/response.ts | 17 + src/public/utils/__tests__/submission.test.ts | 4 +- src/public/utils/injectedVariables.ts | 2 + src/public/utils/submission.ts | 4 +- src/shared/constants.ts | 22 - src/shared/util/__tests__/logic.spec.ts | 76 + src/shared/util/logic.ts | 58 +- src/types/agency.ts | 36 +- src/types/analytics.ts | 6 +- src/types/api/agency.ts | 14 - src/types/api/billing.ts | 13 +- src/types/api/core.ts | 9 +- src/types/api/email_submission.ts | 29 +- src/types/api/encrypt_submission.ts | 37 +- src/types/api/field.ts | 4 +- src/types/api/form.ts | 88 +- src/types/api/form_auth.ts | 1 + src/types/api/form_feedback.ts | 22 +- src/types/api/index.ts | 3 +- src/types/api/submission.ts | 32 +- src/types/api/user.ts | 25 - src/types/config.ts | 12 + src/types/field/attachmentField.ts | 26 +- src/types/field/baseField.ts | 26 +- src/types/field/checkboxField.ts | 18 +- src/types/field/dateField.ts | 18 +- src/types/field/decimalField.ts | 16 +- src/types/field/dropdownField.ts | 12 +- src/types/field/emailField.ts | 23 +- src/types/field/homeNoField.ts | 12 +- src/types/field/imageField.ts | 15 +- src/types/field/index.ts | 127 +- src/types/field/longTextField.ts | 9 +- src/types/field/mobileField.ts | 10 +- src/types/field/myinfoField.ts | 4 +- src/types/field/nricField.ts | 10 +- src/types/field/numberField.ts | 25 +- src/types/field/radioField.ts | 12 +- src/types/field/ratingField.ts | 23 +- src/types/field/sectionField.ts | 9 +- src/types/field/shortTextField.ts | 9 +- src/types/field/statementField.ts | 9 +- src/types/field/tableField.ts | 36 +- src/types/field/uenField.ts | 10 +- src/types/field/utils/guards.ts | 120 - src/types/field/utils/textField.ts | 15 - src/types/field/yesNoField.ts | 10 +- src/types/form.ts | 246 +- src/types/form_feedback.ts | 28 +- src/types/form_logic.ts | 77 +- src/types/form_logo.ts | 23 +- src/types/login.ts | 21 +- src/types/response/index.ts | 105 +- src/types/spcp.ts | 4 +- src/types/submission.ts | 119 +- src/types/user.ts | 23 +- src/types/utils.ts | 1 - src/types/vendor/express-device.d.ts | 23 - src/types/vendor/express.d.ts | 18 +- tests/.test-env | 7 + tests/end-to-end/helpers/email-mode.js | 4 +- tests/end-to-end/helpers/encrypt-mode.js | 11 +- tests/end-to-end/helpers/selectors.js | 4 +- tests/end-to-end/helpers/util.js | 10 +- tests/end-to-end/login.e2e.js | 10 + tests/unit/backend/helpers/celebrate.ts | 2 +- .../backend/helpers/generate-form-data.ts | 12 +- .../helpers/CsvMergedHeadersGenerator.test.js | 12 +- tsconfig.json | 2 +- webpack.dev.js | 11 - 378 files changed, 9401 insertions(+), 5503 deletions(-) create mode 100644 .ebextensions/env-file-creation.config create mode 100644 shared/.eslintrc rename src/shared/resources/basic/index.ts => shared/constants/field/basic.ts (90%) rename {src/shared/resources => shared/constants/field}/myinfo/index.ts (98%) rename {src/shared/resources => shared/constants/field}/myinfo/myinfo-countries.ts (100%) rename {src/shared/resources => shared/constants/field}/myinfo/myinfo-dialects.ts (100%) rename {src/shared/resources => shared/constants/field}/myinfo/myinfo-nationalities.ts (100%) rename {src/shared/resources => shared/constants/field}/myinfo/myinfo-occupations.ts (100%) rename {src/shared/resources => shared/constants/field}/myinfo/myinfo-races.ts (100%) create mode 100644 shared/constants/file.ts create mode 100644 shared/constants/form.ts create mode 100644 shared/constants/links.ts create mode 100644 shared/package-lock.json create mode 100644 shared/package.json create mode 100644 shared/tsconfig.json create mode 100644 shared/types/agency.ts create mode 100644 shared/types/analytics.ts create mode 100644 shared/types/billing.ts create mode 100644 shared/types/core.ts create mode 100644 shared/types/field/attachmentField.ts rename src/types/field/fieldTypes.ts => shared/types/field/base.ts (77%) create mode 100644 shared/types/field/checkboxField.ts create mode 100644 shared/types/field/dateField.ts create mode 100644 shared/types/field/decimalField.ts create mode 100644 shared/types/field/dropdownField.ts create mode 100644 shared/types/field/emailField.ts create mode 100644 shared/types/field/homeNoField.ts create mode 100644 shared/types/field/imageField.ts create mode 100644 shared/types/field/index.ts create mode 100644 shared/types/field/longTextField.ts create mode 100644 shared/types/field/mobileField.ts create mode 100644 shared/types/field/nricField.ts create mode 100644 shared/types/field/numberField.ts create mode 100644 shared/types/field/radioField.ts create mode 100644 shared/types/field/ratingField.ts create mode 100644 shared/types/field/sectionField.ts create mode 100644 shared/types/field/shortTextField.ts create mode 100644 shared/types/field/statementField.ts create mode 100644 shared/types/field/tableField.ts create mode 100644 shared/types/field/uenField.ts create mode 100644 shared/types/field/utils/index.ts create mode 100644 shared/types/field/utils/textField.ts create mode 100644 shared/types/field/yesNoField.ts create mode 100644 shared/types/form/form.ts rename src/types/api/auth.ts => shared/types/form/form_auth.ts (75%) create mode 100644 shared/types/form/form_feedback.ts create mode 100644 shared/types/form/form_logic.ts create mode 100644 shared/types/form/form_logo.ts create mode 100644 shared/types/form/index.ts create mode 100644 shared/types/generic.ts create mode 100644 shared/types/response.ts create mode 100644 shared/types/submission.ts create mode 100644 shared/types/user.ts create mode 100644 shared/types/utils.ts rename {src/shared/util => shared/utils}/__tests__/file-validation.spec.ts (79%) rename {src/app => shared}/utils/__tests__/stringify-safe.spec.ts (95%) rename {src/shared/util => shared/utils}/email-domain-validation.ts (93%) rename {src/shared/util => shared/utils}/file-validation.ts (63%) rename {src/shared/util => shared/utils}/has-prop.ts (100%) rename {src/shared/util => shared/utils}/immutable-array-fns.ts (97%) rename {src/shared/util => shared/utils}/nric-validation.ts (100%) rename {src/shared/util => shared/utils}/phone-num-validation.ts (100%) rename {src/shared/util => shared/utils}/stringify-safe.ts (92%) rename {src/shared/util => shared/utils}/uen-validation.ts (100%) rename {src/shared/util => shared/utils}/url-validation.ts (100%) rename {src/shared/util => shared/utils}/verification.ts (94%) rename {src/shared/util => shared/utils}/verified-content.ts (93%) create mode 100644 src/app/config/features/sgid.config.ts delete mode 100644 src/app/constants/filesize.ts create mode 100644 src/app/models/field/__tests__/emailField.spec.ts create mode 100644 src/app/modules/sgid/__tests__/sgid.controller.spec.ts create mode 100644 src/app/modules/sgid/__tests__/sgid.routes.spec.ts create mode 100644 src/app/modules/sgid/__tests__/sgid.service.spec.ts create mode 100644 src/app/modules/sgid/__tests__/sgid.test.constants.ts create mode 100644 src/app/modules/sgid/sgid.constants.ts create mode 100644 src/app/modules/sgid/sgid.controller.ts create mode 100644 src/app/modules/sgid/sgid.errors.ts create mode 100644 src/app/modules/sgid/sgid.middlewares.ts create mode 100644 src/app/modules/sgid/sgid.routes.ts create mode 100644 src/app/modules/sgid/sgid.service.ts create mode 100644 src/app/modules/sgid/sgid.types.ts create mode 100644 src/app/modules/sgid/sgid.util.ts create mode 100644 src/app/utils/logic-adaptor.ts create mode 100644 src/public/modules/forms/admin/directives/validate-form-emails-input.directive.js delete mode 100644 src/public/modules/forms/services/form-logic/__tests__/form-logic.client.service.spec.ts delete mode 100644 src/public/modules/forms/services/form-logic/form-logic.client.service.ts create mode 100644 src/public/services/EncryptionService.ts create mode 100644 src/public/services/__tests__/EncryptionService.test.ts create mode 100644 src/public/types/README.md create mode 100644 src/public/types/response.ts delete mode 100644 src/types/api/agency.ts create mode 100644 src/types/api/form_auth.ts delete mode 100644 src/types/api/user.ts delete mode 100644 src/types/field/utils/guards.ts delete mode 100644 src/types/field/utils/textField.ts delete mode 100644 src/types/utils.ts delete mode 100644 src/types/vendor/express-device.d.ts diff --git a/.dockerignore b/.dockerignore index fd52bb262d..9733fcdbf0 100644 --- a/.dockerignore +++ b/.dockerignore @@ -5,7 +5,6 @@ **/.elasticbeanstalk **/node_modules **/public/lib -**/.env .eslintrc.json .prettierrc.json .travis.yml diff --git a/.ebextensions/env-file-creation.config b/.ebextensions/env-file-creation.config new file mode 100644 index 0000000000..98d4976552 --- /dev/null +++ b/.ebextensions/env-file-creation.config @@ -0,0 +1,42 @@ +# Creates an .env file from AWS SSM Parameter Store + +commands: + 01-create-env: + command: "/tmp/create-env.sh" + +files: + "/tmp/create-env.sh": + mode: "000755" + content : | + #!/bin/bash + # Reach into the undocumented container config + AWS_REGION='`{"Ref": "AWS::Region"}`' + ENV_NAME=$(/opt/elasticbeanstalk/bin/get-config environment -k SSM_PREFIX) + TARGET_DIR=/etc/formsg + + echo "Checking if ${TARGET_DIR} exists..." + if [ ! -d ${TARGET_DIR} ]; then + echo "Creating directory ${TARGET_DIR} ..." + mkdir -p ${TARGET_DIR} + if [ $? -ne 0 ]; then + echo 'ERROR: Directory creation failed!' + exit 1 + fi + else + echo "Directory ${TARGET_DIR} already exists!" + fi + echo "Creating config for ${ENV_NAME} in ${AWS_REGION}" + aws ssm get-parameter --name "${ENV_NAME}-general" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' > $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-captcha" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-ga" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-intranet" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-sentry" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-sms" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-ndi" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-sgid" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-verified-fields" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + aws ssm get-parameter --name "${ENV_NAME}-webhook-verified-content" --with-decryption --region $AWS_REGION | jq -r '.Parameter.Value' >> $TARGET_DIR/.env + +packages: + yum: + jq: [] \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index 90a294173e..edcfd975a4 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,7 +4,7 @@ "es6": true, "node": true }, - "ignorePatterns": ["./frontend"], + "ignorePatterns": ["./shared", "./frontend"], "extends": ["eslint:recommended", "plugin:prettier/recommended"], "globals": { "Atomics": "readonly", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7e9fc3458..8e3087db66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,6 +26,25 @@ jobs: ${{ runner.OS }}- - run: npm ci + test-e2e: + needs: install + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: '14.x' + - name: Load Node.js modules + uses: actions/cache@v2 + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + - run: npm ci + - run: npm run test-e2e + test-frontend: needs: install runs-on: ubuntu-latest diff --git a/.template-env b/.template-env index 2e6fcf10d0..2f92911332 100644 --- a/.template-env +++ b/.template-env @@ -107,6 +107,7 @@ FORMSG_SDK_MODE= # IS_SP_MAINTENANCE= # IS_CP_MAINTENANCE= +# MYINFO_BANNER_CONTENT= ## Per-minute, per-IP request limits applied to specific endpoints # SUBMISSIONS_RATE_LIMIT= diff --git a/CHANGELOG.md b/CHANGELOG.md index 3764fe3ac7..7ec74ed442 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,255 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [v5.22.0](https://github.com/opengovsg/FormSG/compare/v5.21.2...v5.22.0) + +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2508`](https://github.com/opengovsg/FormSG/pull/2508) +- chore(deps-dev): bump @opengovsg/mockpass from 2.7.6 to 2.7.7 [`#2507`](https://github.com/opengovsg/FormSG/pull/2507) +- fix(deps): bump zod from 3.6.1 to 3.7.1 [`#2506`](https://github.com/opengovsg/FormSG/pull/2506) +- fix(deps): bump libphonenumber-js from 1.9.22 to 1.9.23 [`#2505`](https://github.com/opengovsg/FormSG/pull/2505) +- feat(sms-limiting): db dependencies [`#2503`](https://github.com/opengovsg/FormSG/pull/2503) +- chore: remove express-device [`#2498`](https://github.com/opengovsg/FormSG/pull/2498) +- feat(shared-types): move billing related types to shared folder [`#2400`](https://github.com/opengovsg/FormSG/pull/2400) +- fix(login): show Joi validation error correctly [`#2499`](https://github.com/opengovsg/FormSG/pull/2499) +- feat(shared-types): relocate (admin-related) Submission types to new shared folder [`#2399`](https://github.com/opengovsg/FormSG/pull/2399) +- fix(deps): bump aws-sdk from 2.956.0 to 2.958.0 [`#2497`](https://github.com/opengovsg/FormSG/pull/2497) +- chore(deps-dev): bump core-js from 3.15.2 to 3.16.0 [`#2493`](https://github.com/opengovsg/FormSG/pull/2493) +- chore(deps-dev): bump type-fest from 1.2.3 to 1.3.0 [`#2496`](https://github.com/opengovsg/FormSG/pull/2496) +- chore(deps-dev): bump ts-essentials from 7.0.2 to 7.0.3 [`#2495`](https://github.com/opengovsg/FormSG/pull/2495) +- chore(deps-dev): bump eslint from 7.31.0 to 7.32.0 [`#2494`](https://github.com/opengovsg/FormSG/pull/2494) +- chore(deps-dev): bump @types/node from 14.17.6 to 14.17.7 [`#2492`](https://github.com/opengovsg/FormSG/pull/2492) +- chore(deps-dev): bump @babel/preset-env from 7.14.8 to 7.14.9 [`#2491`](https://github.com/opengovsg/FormSG/pull/2491) +- fix(deps): bump zod from 3.5.1 to 3.6.1 [`#2490`](https://github.com/opengovsg/FormSG/pull/2490) +- chore: merge hotfix release v5.21.2 back to develop [`#2486`](https://github.com/opengovsg/FormSG/pull/2486) +- fix: upgrade zod from 3.3.4 to 3.5.1 [`#2476`](https://github.com/opengovsg/FormSG/pull/2476) +- fix(deps): bump aws-sdk from 2.955.0 to 2.956.0 [`#2474`](https://github.com/opengovsg/FormSG/pull/2474) +- chore(deps-dev): bump type-fest from 1.2.2 to 1.2.3 [`#2473`](https://github.com/opengovsg/FormSG/pull/2473) +- fix(SGID): disallow SGID authentication in storage mode [`#2468`](https://github.com/opengovsg/FormSG/pull/2468) +- fix(snyk): Fix vulnerability in Twilio [`#2469`](https://github.com/opengovsg/FormSG/pull/2469) +- chore: merge hotfix release v5.21.1 back into develop [`#2472`](https://github.com/opengovsg/FormSG/pull/2472) +- fix(types): Fix express session types based on latest definitions [`#2463`](https://github.com/opengovsg/FormSG/pull/2463) +- feat: add MYINFO_BANNER_CONTENT env var for bannering myinfo forms [`#2457`](https://github.com/opengovsg/FormSG/pull/2457) +- fix(deps): bump aws-sdk from 2.954.0 to 2.955.0 [`#2461`](https://github.com/opengovsg/FormSG/pull/2461) +- chore(deps-dev): bump @opengovsg/mockpass from 2.7.4 to 2.7.6 [`#2460`](https://github.com/opengovsg/FormSG/pull/2460) +- chore(deps-dev): bump testcafe from 1.15.0 to 1.15.1 [`#2459`](https://github.com/opengovsg/FormSG/pull/2459) +- fix(deps): bump fp-ts from 2.11.0 to 2.11.1 [`#2458`](https://github.com/opengovsg/FormSG/pull/2458) +- fix: upgrade sortablejs from 1.13.0 to 1.14.0 [`#2456`](https://github.com/opengovsg/FormSG/pull/2456) +- feat(client): add EncryptionService to validate encrypt submission responses [`#2436`](https://github.com/opengovsg/FormSG/pull/2436) +- fix(deps): bump aws-sdk from 2.953.0 to 2.954.0 [`#2451`](https://github.com/opengovsg/FormSG/pull/2451) +- build: merge 5.21.0 into develop [`#2445`](https://github.com/opengovsg/FormSG/pull/2445) +- feat(shared-types): move core, FormFeedback related types to root shared folder [`#2394`](https://github.com/opengovsg/FormSG/pull/2394) +- ref: remove backend package dependencies from Form (sub-)types and move to shared dir [`#2385`](https://github.com/opengovsg/FormSG/pull/2385) +- chore: add postinstall script to install /shared modules [`#2438`](https://github.com/opengovsg/FormSG/pull/2438) +- feat: remove validation when logging esrvcId to login collection [`90a0fb0`](https://github.com/opengovsg/FormSG/commit/90a0fb04c450607c5e246c153583844bfe6d42dc) +- chore: bump version to v5.21.2 [`7c87b10`](https://github.com/opengovsg/FormSG/commit/7c87b106400c1fbd197fe503cfa716a0b169f8c0) + +#### [v5.21.2](https://github.com/opengovsg/FormSG/compare/v5.21.1...v5.21.2) + +> 30 July 2021 + +- chore: bump version to v5.21.2 [`08cf7d4`](https://github.com/opengovsg/FormSG/commit/08cf7d4a838dde0ca3c418451f72eefd9ef88d19) +- feat: remove validation when logging esrvcId to login collection [`5bea425`](https://github.com/opengovsg/FormSG/commit/5bea4252707eb1bd6e2776175dab591dd0738ec8) + +#### [v5.21.1](https://github.com/opengovsg/FormSG/compare/v5.21.0...v5.21.1) + +> 29 July 2021 + +- chore: bump version to v5.21.1 [`139cd93`](https://github.com/opengovsg/FormSG/commit/139cd931e96e92ba5c267dbd8a62124ac058acfe) +- fix: allow underscores in form esrvcId validation [`1e7f725`](https://github.com/opengovsg/FormSG/commit/1e7f7250de8621506b916d7b54bde6ab27a225f1) + +#### [v5.21.0](https://github.com/opengovsg/FormSG/compare/v5.20.0...v5.21.0) + +> 29 July 2021 + +- chore(deps-dev): bump @typescript-eslint/parser from 4.28.4 to 4.28.5 [`#2442`](https://github.com/opengovsg/FormSG/pull/2442) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2441`](https://github.com/opengovsg/FormSG/pull/2441) +- fix(deps): bump fp-ts from 2.10.5 to 2.11.0 [`#2440`](https://github.com/opengovsg/FormSG/pull/2440) +- chore(deps-dev): bump ngrok from 4.0.1 to 4.1.0 [`#2439`](https://github.com/opengovsg/FormSG/pull/2439) +- refactor: add adaptor layer and refactor getVisibleFieldIds and getLogicUnitPreventSubmit callers [`#2435`](https://github.com/opengovsg/FormSG/pull/2435) +- feat(shared-types): extract analytics types to root shared folder [`#2401`](https://github.com/opengovsg/FormSG/pull/2401) +- ref(shared-types-refactor): move form field types to root shared folder [`#2355`](https://github.com/opengovsg/FormSG/pull/2355) +- fix: package.json & package-lock.json to reduce vulnerabilities [`#2412`](https://github.com/opengovsg/FormSG/pull/2412) +- fix(deps): bump jszip from 3.6.0 to 3.7.0 [`#2434`](https://github.com/opengovsg/FormSG/pull/2434) +- fix(deps): bump aws-sdk from 2.951.0 to 2.953.0 [`#2433`](https://github.com/opengovsg/FormSG/pull/2433) +- fix(deps): bump date-fns from 2.22.1 to 2.23.0 [`#2431`](https://github.com/opengovsg/FormSG/pull/2431) +- chore(deps-dev): bump @types/node from 14.17.5 to 14.17.6 [`#2430`](https://github.com/opengovsg/FormSG/pull/2430) +- chore(deps-dev): bump lint-staged from 11.1.0 to 11.1.1 [`#2429`](https://github.com/opengovsg/FormSG/pull/2429) +- chore(deps-dev): bump lint-staged from 11.0.1 to 11.1.0 [`#2428`](https://github.com/opengovsg/FormSG/pull/2428) +- fix(deps): bump web-streams-polyfill from 3.0.3 to 3.1.0 [`#2427`](https://github.com/opengovsg/FormSG/pull/2427) +- fix(deps): bump aws-sdk from 2.950.0 to 2.951.0 [`#2426`](https://github.com/opengovsg/FormSG/pull/2426) +- fix(deps): bump @sentry/integrations from 6.9.0 to 6.10.0 [`#2425`](https://github.com/opengovsg/FormSG/pull/2425) +- chore(deps-dev): bump eslint-plugin-jest from 24.3.7 to 24.4.0 [`#2424`](https://github.com/opengovsg/FormSG/pull/2424) +- fix(deps): bump @sentry/browser from 6.9.0 to 6.10.0 [`#2423`](https://github.com/opengovsg/FormSG/pull/2423) +- chore(deps-dev): bump eslint-plugin-jest from 24.3.6 to 24.3.7 [`#2422`](https://github.com/opengovsg/FormSG/pull/2422) +- fix(deps): bump @babel/runtime from 7.14.6 to 7.14.8 [`#2421`](https://github.com/opengovsg/FormSG/pull/2421) +- chore(deps-dev): bump supertest from 6.1.3 to 6.1.4 [`#2419`](https://github.com/opengovsg/FormSG/pull/2419) +- fix(deps): bump aws-sdk from 2.949.0 to 2.950.0 [`#2418`](https://github.com/opengovsg/FormSG/pull/2418) +- chore(deps-dev): bump @babel/preset-env from 7.14.7 to 7.14.8 [`#2417`](https://github.com/opengovsg/FormSG/pull/2417) +- chore(deps-dev): bump @babel/core from 7.14.6 to 7.14.8 [`#2416`](https://github.com/opengovsg/FormSG/pull/2416) +- fix(deps): bump convict-format-with-validator from 6.0.1 to 6.2.0 [`#2414`](https://github.com/opengovsg/FormSG/pull/2414) +- fix(deps): bump aws-sdk from 2.948.0 to 2.949.0 [`#2413`](https://github.com/opengovsg/FormSG/pull/2413) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2411`](https://github.com/opengovsg/FormSG/pull/2411) +- chore(deps-dev): bump @typescript-eslint/parser from 4.28.3 to 4.28.4 [`#2409`](https://github.com/opengovsg/FormSG/pull/2409) +- chore(deps-dev): bump eslint from 7.30.0 to 7.31.0 [`#2407`](https://github.com/opengovsg/FormSG/pull/2407) +- fix(deps): bump aws-sdk from 2.946.0 to 2.948.0 [`#2406`](https://github.com/opengovsg/FormSG/pull/2406) +- perf(png-size): optimize image sizes [`#2405`](https://github.com/opengovsg/FormSG/pull/2405) +- fix(deps): bump aws-sdk from 2.945.0 to 2.946.0 [`#2404`](https://github.com/opengovsg/FormSG/pull/2404) +- fix(deps): bump convict from 6.1.0 to 6.2.0 [`#2403`](https://github.com/opengovsg/FormSG/pull/2403) +- fix(deps): bump twilio from 3.65.0 to 3.66.0 [`#2402`](https://github.com/opengovsg/FormSG/pull/2402) +- fix(deps): bump nodemailer from 6.6.2 to 6.6.3 [`#2398`](https://github.com/opengovsg/FormSG/pull/2398) +- chore(audit-fixes): fix 162 vulnerability [`#2396`](https://github.com/opengovsg/FormSG/pull/2396) +- feat(form-logic): introduce form logic model validation [`#2302`](https://github.com/opengovsg/FormSG/pull/2302) +- feat: set up standalone `/shared` root folder for clean sharing of types and utils [`#2322`](https://github.com/opengovsg/FormSG/pull/2322) +- chore: merge v5.20.0 into develop [`#2392`](https://github.com/opengovsg/FormSG/pull/2392) +- chore: bump version to 5.21.0 [`027a399`](https://github.com/opengovsg/FormSG/commit/027a399f1d28ee8d598bdaba93f7361d2a5981c1) + +#### [v5.20.0](https://github.com/opengovsg/FormSG/compare/v5.19.2...v5.20.0) + +> 14 July 2021 + +- chore(deps-dev): bump lint-staged from 11.0.0 to 11.0.1 [`#2387`](https://github.com/opengovsg/FormSG/pull/2387) +- fix(deps): bump aws-sdk from 2.943.0 to 2.944.0 [`#2386`](https://github.com/opengovsg/FormSG/pull/2386) +- feat(deps): upgrade to latest TypeScript [`#2383`](https://github.com/opengovsg/FormSG/pull/2383) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2378`](https://github.com/opengovsg/FormSG/pull/2378) +- fix(deps): bump @sentry/browser from 6.8.0 to 6.9.0 [`#2376`](https://github.com/opengovsg/FormSG/pull/2376) +- fix(deps): bump libphonenumber-js from 1.9.21 to 1.9.22 [`#2377`](https://github.com/opengovsg/FormSG/pull/2377) +- fix(deps): bump @sentry/integrations from 6.8.0 to 6.9.0 [`#2375`](https://github.com/opengovsg/FormSG/pull/2375) +- chore(deps-dev): bump @typescript-eslint/parser from 4.28.2 to 4.28.3 [`#2374`](https://github.com/opengovsg/FormSG/pull/2374) +- build: move end-to-end tests to GitHub Actions [`#2353`](https://github.com/opengovsg/FormSG/pull/2353) +- chore: merge v5.19.2 into develop [`#2373`](https://github.com/opengovsg/FormSG/pull/2373) +- fix(deps): bump celebrate from 14.0.0 to 15.0.0 [`#2365`](https://github.com/opengovsg/FormSG/pull/2365) +- chore(deps-dev): bump @types/nodemailer from 6.4.3 to 6.4.4 [`#2367`](https://github.com/opengovsg/FormSG/pull/2367) +- chore(deps-dev): bump ts-node from 10.0.0 to 10.1.0 [`#2368`](https://github.com/opengovsg/FormSG/pull/2368) +- chore(deps-dev): bump @types/opossum from 4.1.1 to 4.1.2 [`#2363`](https://github.com/opengovsg/FormSG/pull/2363) +- fix(deps): bump aws-sdk from 2.941.0 to 2.943.0 [`#2366`](https://github.com/opengovsg/FormSG/pull/2366) +- chore(deps-dev): bump @types/mongodb-uri from 0.9.0 to 0.9.1 [`#2364`](https://github.com/opengovsg/FormSG/pull/2364) +- chore(deps-dev): bump @types/ejs from 3.0.6 to 3.0.7 [`#2344`](https://github.com/opengovsg/FormSG/pull/2344) +- chore(deps-dev): bump @types/express-request-id from 1.4.1 to 1.4.2 [`#2358`](https://github.com/opengovsg/FormSG/pull/2358) +- chore(deps-dev): bump type-fest from 1.2.1 to 1.2.2 [`#2357`](https://github.com/opengovsg/FormSG/pull/2357) +- chore(deps-dev): bump testcafe from 1.14.2 to 1.15.0 [`#2356`](https://github.com/opengovsg/FormSG/pull/2356) +- build: merge Release 5.19.1 into develop [`#2350`](https://github.com/opengovsg/FormSG/pull/2350) +- fix(deps): bump aws-sdk from 2.940.0 to 2.941.0 [`#2352`](https://github.com/opengovsg/FormSG/pull/2352) +- chore(deps-dev): bump @types/jest from 26.0.23 to 26.0.24 [`#2345`](https://github.com/opengovsg/FormSG/pull/2345) +- chore(deps-dev): bump @types/busboy from 0.2.3 to 0.2.4 [`#2348`](https://github.com/opengovsg/FormSG/pull/2348) +- fix(deps): bump opossum from 6.1.0 to 6.2.0 [`#2347`](https://github.com/opengovsg/FormSG/pull/2347) +- build: merge release 5.19.0 into develop [`#2324`](https://github.com/opengovsg/FormSG/pull/2324) +- chore(deps-dev): bump @types/express-rate-limit from 5.1.2 to 5.1.3 [`#2333`](https://github.com/opengovsg/FormSG/pull/2333) +- chore(deps-dev): bump @types/nodemailer from 6.4.2 to 6.4.3 [`#2343`](https://github.com/opengovsg/FormSG/pull/2343) +- fix: read email validation error message from Joi response [`#2321`](https://github.com/opengovsg/FormSG/pull/2321) +- fix: visiting archived form URL to show correct error message [`#2320`](https://github.com/opengovsg/FormSG/pull/2320) +- chore(deps-dev): bump @types/convict from 6.1.0 to 6.1.1 [`#2337`](https://github.com/opengovsg/FormSG/pull/2337) +- chore(deps-dev): bump @types/express from 4.17.12 to 4.17.13 [`#2340`](https://github.com/opengovsg/FormSG/pull/2340) +- fix(deps): bump zod from 3.4.2 to 3.5.1 [`#2339`](https://github.com/opengovsg/FormSG/pull/2339) +- fix(deps): bump aws-sdk from 2.939.0 to 2.940.0 [`#2338`](https://github.com/opengovsg/FormSG/pull/2338) +- chore(deps-dev): bump @types/mongodb from 3.6.19 to 3.6.20 [`#2335`](https://github.com/opengovsg/FormSG/pull/2335) +- chore(deps-dev): bump @types/validator from 13.6.2 to 13.6.3 [`#2336`](https://github.com/opengovsg/FormSG/pull/2336) +- chore(deps-dev): bump @types/compression from 1.7.0 to 1.7.1 [`#2334`](https://github.com/opengovsg/FormSG/pull/2334) +- chore(deps-dev): bump @types/node from 14.17.4 to 14.17.5 [`#2332`](https://github.com/opengovsg/FormSG/pull/2332) +- chore(deps-dev): bump @types/bluebird from 3.5.35 to 3.5.36 [`#2331`](https://github.com/opengovsg/FormSG/pull/2331) +- fix(admin-form.service): fixed logical error in duplicate form field [`#2301`](https://github.com/opengovsg/FormSG/pull/2301) +- fix(deps): bump zod from 3.3.4 to 3.4.2 [`#2319`](https://github.com/opengovsg/FormSG/pull/2319) +- chore(deps-dev): bump husky from 7.0.0 to 7.0.1 [`#2318`](https://github.com/opengovsg/FormSG/pull/2318) +- chore(deps-dev): bump husky from 6.0.0 to 7.0.0 [`#2289`](https://github.com/opengovsg/FormSG/pull/2289) +- chore: bump version to 5.20.0 [`58a6df0`](https://github.com/opengovsg/FormSG/commit/58a6df02c8f0a31ce7e13350db850c8510eaa797) + +#### [v5.19.2](https://github.com/opengovsg/FormSG/compare/v5.19.1...v5.19.2) + +> 12 July 2021 + +- fix: allow myinfo authtype for logout [`#2362`](https://github.com/opengovsg/FormSG/pull/2362) +- fix(BetaService): make SGID form-level beta feature [`#2369`](https://github.com/opengovsg/FormSG/pull/2369) +- fix(SGID): add sgid to User schema beta flags [`#2371`](https://github.com/opengovsg/FormSG/pull/2371) +- chore: bump version to 5.19.2 [`588730c`](https://github.com/opengovsg/FormSG/commit/588730c0559ca424ad89fd2743e72c7694cfebaf) + +#### [v5.19.1](https://github.com/opengovsg/FormSG/compare/v5.18.0...v5.19.1) + +> 8 July 2021 + +- feat: client to delete spcp cookie [`#2328`](https://github.com/opengovsg/FormSG/pull/2328) +- fix(settings): reorder and reword auth options [`#2315`](https://github.com/opengovsg/FormSG/pull/2315) +- fix(types): recognise User.betaFlags in zod [`#2314`](https://github.com/opengovsg/FormSG/pull/2314) +- feat(auth): support sgID for form submissions [`#1986`](https://github.com/opengovsg/FormSG/pull/1986) +- build: merge release 5.18.0 into develop [`#2311`](https://github.com/opengovsg/FormSG/pull/2311) +- chore(deps-dev): bump @types/convict from 6.0.2 to 6.1.0 [`#2308`](https://github.com/opengovsg/FormSG/pull/2308) +- chore(deps-dev): bump @typescript-eslint/parser from 4.28.1 to 4.28.2 [`#2306`](https://github.com/opengovsg/FormSG/pull/2306) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2307`](https://github.com/opengovsg/FormSG/pull/2307) +- fix(deps): unpin typescript [`#2305`](https://github.com/opengovsg/FormSG/pull/2305) +- fix: allow duplicating email field with PDF to storage mode [`#2303`](https://github.com/opengovsg/FormSG/pull/2303) +- feat: Remove self from collaborator list [`#2212`](https://github.com/opengovsg/FormSG/pull/2212) +- feat: Set SP/CP JWT cookie to HttpOnly [`#2193`](https://github.com/opengovsg/FormSG/pull/2193) +- fix(deps): bump zod from 3.3.3 to 3.3.4 [`#2299`](https://github.com/opengovsg/FormSG/pull/2299) +- chore(deps-dev): bump @types/validator from 13.1.4 to 13.6.2 [`#2298`](https://github.com/opengovsg/FormSG/pull/2298) +- fix(deps): bump neverthrow from 4.2.1 to 4.2.2 [`#2297`](https://github.com/opengovsg/FormSG/pull/2297) +- fix(deps): bump zod from 3.2.0 to 3.3.3 [`#2296`](https://github.com/opengovsg/FormSG/pull/2296) +- chore(deps-dev): bump eslint from 7.29.0 to 7.30.0 [`#2295`](https://github.com/opengovsg/FormSG/pull/2295) +- chore(deps-dev): bump @types/uuid from 8.3.0 to 8.3.1 [`#2294`](https://github.com/opengovsg/FormSG/pull/2294) +- fix(deps): bump aws-sdk from 2.937.0 to 2.939.0 [`#2293`](https://github.com/opengovsg/FormSG/pull/2293) +- fix(deps): bump libphonenumber-js from 1.9.20 to 1.9.21 [`#2291`](https://github.com/opengovsg/FormSG/pull/2291) +- refactor: revert the revert of encapsulate parsedResponses [`#2278`](https://github.com/opengovsg/FormSG/pull/2278) +- fix(deps): bump express-rate-limit from 5.2.6 to 5.3.0 [`#2288`](https://github.com/opengovsg/FormSG/pull/2288) +- chore(deps-dev): bump ts-node-dev from 1.1.7 to 1.1.8 [`#2285`](https://github.com/opengovsg/FormSG/pull/2285) +- fix(deps): bump aws-sdk from 2.936.0 to 2.937.0 [`#2287`](https://github.com/opengovsg/FormSG/pull/2287) +- chore(deps-dev): bump @types/mongodb from 3.6.18 to 3.6.19 [`#2286`](https://github.com/opengovsg/FormSG/pull/2286) +- fix(deps): bump twilio from 3.64.0 to 3.65.0 [`#2284`](https://github.com/opengovsg/FormSG/pull/2284) +- test(sgid): provide test coverage [`cf12c15`](https://github.com/opengovsg/FormSG/commit/cf12c150c23c8ee19c6ae5b7682489730fb30327) +- feat(auth): enable sgID [`34a9b6f`](https://github.com/opengovsg/FormSG/commit/34a9b6fa631134401706ae5e7a533bb21f2be6fc) +- fix(sgid): rework codebase in-line with review [`876fe7a`](https://github.com/opengovsg/FormSG/commit/876fe7a9748619e5ca8aac9bb1725b8b96319eb1) + +#### [v5.18.0](https://github.com/opengovsg/FormSG/compare/v5.17.0...v5.18.0) + +> 1 July 2021 + +- chore: merge release v5.17.0 back to develop [`#2281`](https://github.com/opengovsg/FormSG/pull/2281) +- feat: rename "Reference Number" to "Response ID" [`#2277`](https://github.com/opengovsg/FormSG/pull/2277) +- fix: allow creation of storage form when emails are invalid [`#2263`](https://github.com/opengovsg/FormSG/pull/2263) +- chore(deps-dev): bump ts-node-dev from 1.1.6 to 1.1.7 [`#2275`](https://github.com/opengovsg/FormSG/pull/2275) +- chore(deps-dev): bump coveralls from 3.1.0 to 3.1.1 [`#2274`](https://github.com/opengovsg/FormSG/pull/2274) +- fix(deps): bump aws-sdk from 2.935.0 to 2.936.0 [`#2273`](https://github.com/opengovsg/FormSG/pull/2273) +- chore(deps-dev): bump core-js from 3.15.1 to 3.15.2 [`#2272`](https://github.com/opengovsg/FormSG/pull/2272) +- refactor: ensure consistent filesize const [`#2079`](https://github.com/opengovsg/FormSG/pull/2079) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2271`](https://github.com/opengovsg/FormSG/pull/2271) +- fix: correctly retrieve targetFormId for redirect state [`#2261`](https://github.com/opengovsg/FormSG/pull/2261) +- fix(deps): bump @sentry/browser from 6.7.2 to 6.8.0 [`#2269`](https://github.com/opengovsg/FormSG/pull/2269) +- chore(deps-dev): bump @typescript-eslint/parser from 4.28.0 to 4.28.1 [`#2270`](https://github.com/opengovsg/FormSG/pull/2270) +- fix(deps): bump @sentry/integrations from 6.7.2 to 6.8.0 [`#2268`](https://github.com/opengovsg/FormSG/pull/2268) +- feat: Admin form UI changes to "Edit Welcome" fields [`#2258`](https://github.com/opengovsg/FormSG/pull/2258) +- fix: upgrade mongoose from 5.12.12 to 5.12.13 [`#2257`](https://github.com/opengovsg/FormSG/pull/2257) +- fix(deps): bump aws-sdk from 2.933.0 to 2.935.0 [`#2259`](https://github.com/opengovsg/FormSG/pull/2259) +- chore(deps-dev): bump prettier from 2.3.1 to 2.3.2 [`#2260`](https://github.com/opengovsg/FormSG/pull/2260) +- fix(deps): bump aws-sdk from 2.932.0 to 2.933.0 [`#2252`](https://github.com/opengovsg/FormSG/pull/2252) +- chore(deps-dev): bump optimize-css-assets-webpack-plugin [`#2251`](https://github.com/opengovsg/FormSG/pull/2251) +- chore: bump version to v5.18.0 [`bb10467`](https://github.com/opengovsg/FormSG/commit/bb104678690ffaa1317c2982570e45af06688874) + +#### [v5.17.0](https://github.com/opengovsg/FormSG/compare/v5.16.0...v5.17.0) + +> 24 June 2021 + +- refactor: revert "refactor(email-submission): encapsulate parsedResponses (#2206)" [`#2248`](https://github.com/opengovsg/FormSG/pull/2248) +- feat(config): support config via dotenv, use EB to create file [`#2194`](https://github.com/opengovsg/FormSG/pull/2194) +- chore(deps-dev): bump @types/node from 14.17.3 to 14.17.4 [`#2245`](https://github.com/opengovsg/FormSG/pull/2245) +- chore(deps-dev): bump core-js from 3.15.0 to 3.15.1 [`#2243`](https://github.com/opengovsg/FormSG/pull/2243) +- docs(script): add script to sync (has)AllowedEmailDomains [`#2234`](https://github.com/opengovsg/FormSG/pull/2234) +- test: fix flaky form feedback test [`#2241`](https://github.com/opengovsg/FormSG/pull/2241) +- chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#2239`](https://github.com/opengovsg/FormSG/pull/2239) +- fix(deps): bump nocache from 3.0.0 to 3.0.1 [`#2236`](https://github.com/opengovsg/FormSG/pull/2236) +- chore(deps-dev): bump @babel/preset-env from 7.14.5 to 7.14.7 [`#2238`](https://github.com/opengovsg/FormSG/pull/2238) +- fix(deps): bump aws-sdk from 2.931.0 to 2.932.0 [`#2237`](https://github.com/opengovsg/FormSG/pull/2237) +- refactor(feature-manager): delete remaining unused code [`#2223`](https://github.com/opengovsg/FormSG/pull/2223) +- feat(feature-manager): remove spcp-myinfo from feature manager [`#2222`](https://github.com/opengovsg/FormSG/pull/2222) +- feat(feature-manager): remove sms from feature manager [`#2218`](https://github.com/opengovsg/FormSG/pull/2218) +- refactor: convert CsvMergedHeadersGenerator to typescript [`#2080`](https://github.com/opengovsg/FormSG/pull/2080) +- refactor(email-submission): encapsulate parsedResponses [`#2206`](https://github.com/opengovsg/FormSG/pull/2206) +- build: merge release 5.16.0 into develop [`#2230`](https://github.com/opengovsg/FormSG/pull/2230) +- chore(deps-dev): bump @typescript-eslint/parser from 4.27.0 to 4.28.0 [`#2226`](https://github.com/opengovsg/FormSG/pull/2226) +- chore(deps-dev): bump core-js from 3.14.0 to 3.15.0 [`#2225`](https://github.com/opengovsg/FormSG/pull/2225) +- chore: bump version to v5.17.0 [`c01e980`](https://github.com/opengovsg/FormSG/commit/c01e980e544695743985553e67b8dc66e065e2a3) +- build(ci): create .env files in EB with Param Store [`ac27242`](https://github.com/opengovsg/FormSG/commit/ac2724276bef8e4bd47211efa32b24a5a8cb1738) +- docs(deploy): add information concerning SSM params [`ef7d79f`](https://github.com/opengovsg/FormSG/commit/ef7d79fdfac7c482504aa2e2621b4b190479f070) + #### [v5.16.0](https://github.com/opengovsg/FormSG/compare/v5.15.0...v5.16.0) +> 22 June 2021 + - fix(deps): bump @sentry/browser from 6.7.1 to 6.7.2 [`#2228`](https://github.com/opengovsg/FormSG/pull/2228) - fix(deps): bump @sentry/integrations from 6.7.1 to 6.7.2 [`#2227`](https://github.com/opengovsg/FormSG/pull/2227) - fix(deps): bump libphonenumber-js from 1.9.19 to 1.9.20 [`#2224`](https://github.com/opengovsg/FormSG/pull/2224) @@ -39,6 +286,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix(deps): bump aws-sdk from 2.927.0 to 2.928.0 [`#2182`](https://github.com/opengovsg/FormSG/pull/2182) - chore: merge v5.14.0 into develop [`#2174`](https://github.com/opengovsg/FormSG/pull/2174) - feat: update landing spcp image, minify app images [`#2173`](https://github.com/opengovsg/FormSG/pull/2173) +- chore: bump version to 5.16.0 [`1288985`](https://github.com/opengovsg/FormSG/commit/128898523c9fe31ddf970f2e175074bfecb80163) #### [v5.15.0](https://github.com/opengovsg/FormSG/compare/v5.14.1...v5.15.0) @@ -122,8 +370,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 11 June 2021 -- fix: use correct argument key when counting form submissions [`#2101`](https://github.com/opengovsg/FormSG/pull/2101) -- chore: bump version to v5.13.0 [`4516bbc`](https://github.com/opengovsg/FormSG/commit/4516bbcaf2ef2d99830cb5abb0ee26e2d53b31c2) - chore: bump version to 5.13.1 [`7c87bf3`](https://github.com/opengovsg/FormSG/commit/7c87bf3af16347b630581427bc9223a84846dea3) - feat(verification): up expiry time to 30min [`34b28c8`](https://github.com/opengovsg/FormSG/commit/34b28c87c14e8e0b55276e5a21b6f5473c436e24) @@ -131,6 +377,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 8 June 2021 +- fix: use correct argument key when counting form submissions [`#2101`](https://github.com/opengovsg/FormSG/pull/2101) - chore(adminsubmissionsservice): renamed form to submissions to reflect context [`#2098`](https://github.com/opengovsg/FormSG/pull/2098) - feat: enable retries for webhooks [`#2093`](https://github.com/opengovsg/FormSG/pull/2093) - feat: log form updates [`#2063`](https://github.com/opengovsg/FormSG/pull/2063) @@ -162,7 +409,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix(deps): update mongoose to 5.12.12, update model types [`#2046`](https://github.com/opengovsg/FormSG/pull/2046) - chore(deps-dev): bump type-fest from 0.20.2 to 1.2.0 [`#2049`](https://github.com/opengovsg/FormSG/pull/2049) - test(betas): provide coverage [`23f9a9f`](https://github.com/opengovsg/FormSG/commit/23f9a9fe9675eab1d25c1983a08a7c76e0139d52) -- chore: bump version to v5.13.0 [`6fa6c88`](https://github.com/opengovsg/FormSG/commit/6fa6c888fd381ae2fef0a83ff2fc0f1d89a6635a) +- chore: bump version to v5.13.0 [`4516bbc`](https://github.com/opengovsg/FormSG/commit/4516bbcaf2ef2d99830cb5abb0ee26e2d53b31c2) #### [v5.12.1](https://github.com/opengovsg/FormSG/compare/v5.12.0...v5.12.1) @@ -211,6 +458,12 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix: add types to RequestHandler in submitEncryptModeForm [`#1889`](https://github.com/opengovsg/FormSG/pull/1889) - chore: merge v5.11.0 into develop [`#1969`](https://github.com/opengovsg/FormSG/pull/1969) - fix(verification): loosen OTP waiting time by 2 seconds [`#1957`](https://github.com/opengovsg/FormSG/pull/1957) +- chore: bump version to 5.12.0 [`85759bc`](https://github.com/opengovsg/FormSG/commit/85759bc9dc01f73da3cbd0ec73c636e58e983948) + +#### [v5.11.0](https://github.com/opengovsg/FormSG/compare/v5.10.0...v5.11.0) + +> 25 May 2021 + - fix: set form logo default value when creating form document [`#1966`](https://github.com/opengovsg/FormSG/pull/1966) - chore(deps-dev): bump ts-node from 9.1.1 to 10.0.0 [`#1964`](https://github.com/opengovsg/FormSG/pull/1964) - feat: extract public form submission flow (and preview) to specific Typescript services [`#1917`](https://github.com/opengovsg/FormSG/pull/1917) @@ -243,13 +496,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - feat: upgrade myinfo-gov-client to 4.0.0 [`#1925`](https://github.com/opengovsg/FormSG/pull/1925) - feat: add response ID to thank you page [`#1855`](https://github.com/opengovsg/FormSG/pull/1855) - refactor(verification): reset field verification state when field changes [`#1900`](https://github.com/opengovsg/FormSG/pull/1900) -- chore: bump version to 5.11.0 [`54b1958`](https://github.com/opengovsg/FormSG/commit/54b1958d0968e670ef145461d9d7859384d573ef) -- chore: bump version to 5.12.0 [`85759bc`](https://github.com/opengovsg/FormSG/commit/85759bc9dc01f73da3cbd0ec73c636e58e983948) - -#### [v5.11.0](https://github.com/opengovsg/FormSG/compare/v5.10.0...v5.11.0) - -> 19 May 2021 - - chore(deps-dev): bump @babel/core from 7.14.2 to 7.14.3 [`#1920`](https://github.com/opengovsg/FormSG/pull/1920) - fix(deps): bump aws-sdk from 2.907.0 to 2.908.0 [`#1922`](https://github.com/opengovsg/FormSG/pull/1922) - chore(deps-dev): bump @types/node from 14.14.45 to 14.17.0 [`#1921`](https://github.com/opengovsg/FormSG/pull/1921) @@ -281,7 +527,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix(deps): bump aws-sdk from 2.903.0 to 2.904.0 [`#1869`](https://github.com/opengovsg/FormSG/pull/1869) - chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#1868`](https://github.com/opengovsg/FormSG/pull/1868) - fix(deps): bump @sentry/integrations from 6.3.5 to 6.3.6 [`#1850`](https://github.com/opengovsg/FormSG/pull/1850) -- chore: bump version to 5.11.0 [`971eb29`](https://github.com/opengovsg/FormSG/commit/971eb2948f01461d884c1ba504d421ed5be189a2) +- chore: bump version to 5.11.0 [`54b1958`](https://github.com/opengovsg/FormSG/commit/54b1958d0968e670ef145461d9d7859384d573ef) - chore: bump version to v5.10.1 [`0442cd7`](https://github.com/opengovsg/FormSG/commit/0442cd72637019fb1e43bce5f8f5abe14ee79f8c) - fix: allow for unknown keys in updateEndPage validator [`617d86a`](https://github.com/opengovsg/FormSG/commit/617d86a28910eec6ebd3249a2de636086429d6a6) @@ -328,14 +574,13 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#1790`](https://github.com/opengovsg/FormSG/pull/1790) - feat(api-refactor): add specific update end page endpoint in server [`#1760`](https://github.com/opengovsg/FormSG/pull/1760) - feat: move server.ts into src/app [`#1785`](https://github.com/opengovsg/FormSG/pull/1785) -- fix: trigger digest cycle for delete logic [`#1787`](https://github.com/opengovsg/FormSG/pull/1787) -- chore: bump version to 5.9.0 [`6d6e475`](https://github.com/opengovsg/FormSG/commit/6d6e475c417cfb5efacb203888b0f296159d8ac1) - chore: bump version to v5.10.0 [`0615ce5`](https://github.com/opengovsg/FormSG/commit/0615ce5262fcdb65932ad6c9be9ee66503b0e949) #### [v5.9.0](https://github.com/opengovsg/FormSG/compare/v5.8.0...v5.9.0) > 4 May 2021 +- fix: trigger digest cycle for delete logic [`#1787`](https://github.com/opengovsg/FormSG/pull/1787) - fix: allow commas in email confirmation sender [`#1782`](https://github.com/opengovsg/FormSG/pull/1782) - chore(deps-dev): bump core-js from 3.11.1 to 3.11.2 [`#1780`](https://github.com/opengovsg/FormSG/pull/1780) - fix(deps): bump fp-ts from 2.10.4 to 2.10.5 [`#1781`](https://github.com/opengovsg/FormSG/pull/1781) @@ -360,7 +605,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix(deps): bump aws-sdk from 2.893.0 to 2.894.0 [`#1756`](https://github.com/opengovsg/FormSG/pull/1756) - fix(deps): bump @sentry/integrations from 6.3.1 to 6.3.3 [`#1755`](https://github.com/opengovsg/FormSG/pull/1755) - chore: merge v5.8.0 into develop [`#1751`](https://github.com/opengovsg/FormSG/pull/1751) -- chore: bump version to 5.9.0 [`902fd6a`](https://github.com/opengovsg/FormSG/commit/902fd6a764e94bd0882ca1f7bebb3e79f916c9f3) +- chore: bump version to 5.9.0 [`6d6e475`](https://github.com/opengovsg/FormSG/commit/6d6e475c417cfb5efacb203888b0f296159d8ac1) #### [v5.8.0](https://github.com/opengovsg/FormSG/compare/v5.7.1...v5.8.0) @@ -469,15 +714,15 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 13 April 2021 -- fix: call correct user update emergency contact endpoint [`#1631`](https://github.com/opengovsg/FormSG/pull/1631) -- chore: bump version to v5.6.0 [`c4724a9`](https://github.com/opengovsg/FormSG/commit/c4724a9f64c6dd5cb134dd46ceae8ab6a736dbec) - test(AdminFormRoutes): test for equal start and end dates validation [`2d81ff4`](https://github.com/opengovsg/FormSG/commit/2d81ff4a4573a70a698596f5ac2ec1a4c5139b27) - chore: bump version to v5.6.1 [`c640dd1`](https://github.com/opengovsg/FormSG/commit/c640dd1e8c219f5293f36fff18f57881ae1ded73) +- fix: use Joi.date.min() instead of Joi.date.greater() for date range [`864561c`](https://github.com/opengovsg/FormSG/commit/864561c129bebd24cfd7dca2851106066141a780) #### [v5.6.0](https://github.com/opengovsg/FormSG/compare/v5.5.1...v5.6.0) > 13 April 2021 +- fix: call correct user update emergency contact endpoint [`#1631`](https://github.com/opengovsg/FormSG/pull/1631) - fix(deps): bump winston-cloudwatch from 2.5.1 to 2.5.2 [`#1626`](https://github.com/opengovsg/FormSG/pull/1626) - chore(deps-dev): bump @typescript-eslint/parser from 4.21.0 to 4.22.0 [`#1627`](https://github.com/opengovsg/FormSG/pull/1627) - chore(deps-dev): bump date-fns from 2.20.1 to 2.20.2 [`#1628`](https://github.com/opengovsg/FormSG/pull/1628) @@ -542,7 +787,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - chore(deps-dev): bump @typescript-eslint/eslint-plugin [`#1556`](https://github.com/opengovsg/FormSG/pull/1556) - fix(deps): bump @opengovsg/spcp-auth-client from 1.4.4 to 1.4.5 [`#1555`](https://github.com/opengovsg/FormSG/pull/1555) - refactor(corppass-ui): make ui changes for corppass [`#1533`](https://github.com/opengovsg/FormSG/pull/1533) -- chore: bump version to v5.6.0 [`bf1874d`](https://github.com/opengovsg/FormSG/commit/bf1874d1aedec79f416cf0db3eec02eb1bcf017b) +- chore: bump version to v5.6.0 [`c4724a9`](https://github.com/opengovsg/FormSG/commit/c4724a9f64c6dd5cb134dd46ceae8ab6a736dbec) #### [v5.5.1](https://github.com/opengovsg/FormSG/compare/v5.5.0...v5.5.1) @@ -858,15 +1103,14 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 23 February 2021 -- fix: add _id key in permissionList object for updateForm validator [`#1224`](https://github.com/opengovsg/FormSG/pull/1224) - feat: remove updateFormValidator [`92f3f75`](https://github.com/opengovsg/FormSG/commit/92f3f75bc760f32bdb495e27eb880d53f1562093) -- chore: bump version to v4.59.0 [`21bee76`](https://github.com/opengovsg/FormSG/commit/21bee768bb40e9eae57fe25b8a3c7b2ea3ccc130) - chore: bump version to v4.59.1 [`a712594`](https://github.com/opengovsg/FormSG/commit/a712594146e294a01cea13e429e4ed03109a1f70) #### [v4.59.0](https://github.com/opengovsg/FormSG/compare/v4.58.2...v4.59.0) > 23 February 2021 +- fix: add _id key in permissionList object for updateForm validator [`#1224`](https://github.com/opengovsg/FormSG/pull/1224) - chore: use formsg-sdk beta release [`#1219`](https://github.com/opengovsg/FormSG/pull/1219) - chore(deps-dev): bump csv-parse from 4.15.1 to 4.15.3 [`#1213`](https://github.com/opengovsg/FormSG/pull/1213) - refactor: move addLogin method to Billing module [`#1195`](https://github.com/opengovsg/FormSG/pull/1195) @@ -923,7 +1167,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix(deps): bump nodemailer from 6.4.17 to 6.4.18 [`#1143`](https://github.com/opengovsg/FormSG/pull/1143) - fix(deps): bump @sentry/integrations from 5.30.0 to 6.1.0 [`#1142`](https://github.com/opengovsg/FormSG/pull/1142) - fix(deps): bump libphonenumber-js from 1.9.8 to 1.9.11 [`#1138`](https://github.com/opengovsg/FormSG/pull/1138) -- chore: bump version to v4.59.0 [`53bd033`](https://github.com/opengovsg/FormSG/commit/53bd03318be09e83dc549d93515830e3b7efc365) +- chore: bump version to v4.59.0 [`21bee76`](https://github.com/opengovsg/FormSG/commit/21bee768bb40e9eae57fe25b8a3c7b2ea3ccc130) #### [v4.58.2](https://github.com/opengovsg/FormSG/compare/v4.58.1...v4.58.2) @@ -1233,16 +1477,16 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - build: Release 4.30.1 - Fix field creation on old clients [`#74`](https://github.com/opengovsg/FormSG/pull/74) - Release 4.30.0 - acknowledgement for secret key backup, TypeScript migrations [`#67`](https://github.com/opengovsg/FormSG/pull/67) - build: empty commit to trigger PR build [`d0c6583`](https://github.com/opengovsg/FormSG/commit/d0c65838efa6731a0f10e89ff954c132b9f8b854) -- feat: update table field styling to not rely on multiple divs [`db03da3`](https://github.com/opengovsg/FormSG/commit/db03da33eca2fc0a6174ca58d7dd8b3cfadadcea) - fix: return 401 for missing JWT [`e6c1947`](https://github.com/opengovsg/FormSG/commit/e6c19477b05fc4aed90b2db42916220aea2a263c) +- test: add tests for extractJwt [`16191a9`](https://github.com/opengovsg/FormSG/commit/16191a957be0dc7f63dc4221569fac2794b7d063) #### [v4.50.2](https://github.com/opengovsg/FormSG/compare/v4.50.1...v4.50.2) > 16 December 2020 -- feat: update table field styling to not rely on multiple divs [`e857aed`](https://github.com/opengovsg/FormSG/commit/e857aed667145441758f09f311c2b9f16f57645b) +- feat: update table field styling to not rely on multiple divs [`db03da3`](https://github.com/opengovsg/FormSG/commit/db03da33eca2fc0a6174ca58d7dd8b3cfadadcea) - fix: email format validation should allow 126/163.com, align frontend and backend validation [`be35522`](https://github.com/opengovsg/FormSG/commit/be35522e15d20521f58fada7ed3164e6c0c0894d) -- chore: bump version to v4.50.2 [`fad62ec`](https://github.com/opengovsg/FormSG/commit/fad62ec5730412201e208332a91286fd53e2b36a) +- chore: bump version to v4.50.2 [`1ac7be6`](https://github.com/opengovsg/FormSG/commit/1ac7be6cb69553d186ec194682ae25bd98318a8b) #### [v4.50.1](https://github.com/opengovsg/FormSG/compare/v4.50.0...v4.50.1) diff --git a/CREDITS.md b/CREDITS.md index 1a2344ce57..d2029eaa44 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -1293,38 +1293,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- - -## Project -express-device - -### Source -https://github.com/rguerreiro/express-device - -### License -(The MIT License) - -Copyright (c) 2012-2015 Rodrigo Guerreiro - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ------------------------------------------------------------------------------- ## Project diff --git a/Dockerrun.aws.json b/Dockerrun.aws.json index b981ab4556..d47772957f 100644 --- a/Dockerrun.aws.json +++ b/Dockerrun.aws.json @@ -13,6 +13,10 @@ { "HostDirectory": "/certs", "ContainerDirectory": "/certs" + }, + { + "HostDirectory": "/etc/formsg/.env", + "ContainerDirectory": "/opt/formsg/.env" } ] -} +} \ No newline at end of file diff --git a/README.md b/README.md index 244d460204..c5839949d0 100755 --- a/README.md +++ b/README.md @@ -91,9 +91,6 @@ FormSG requires some environment variables in order to function. More information about the required environment variables can be seen in [DEPLOYMENT_SETUP.md](/docs/DEPLOYMENT_SETUP.md). -The docker-compose file declares some blank environment variables that are secret and cannot be committed into -the repository. See below instructions to get them injected into the container. - We provide a [`.template-env`](./.template-env) file with the secrets blanked out. You can copy and paste the variables described into a self-created `.env` file, replacing the required values with your own. diff --git a/docker-compose.yml b/docker-compose.yml index 6a5672fcb5..ec02a73455 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,11 +74,18 @@ services: - CORPPASS_IDP_ID=https://saml.corppass.gov.sg/FIM/sps/CorpIDPFed/saml20 - IS_SP_MAINTENANCE - IS_CP_MAINTENANCE + - MYINFO_BANNER_CONTENT - MYINFO_CLIENT_CONFIG=dev - MYINFO_FORMSG_KEY_PATH=./node_modules/@opengovsg/mockpass/static/certs/key.pem - MYINFO_CERT_PATH=./node_modules/@opengovsg/mockpass/static/certs/spcp.crt - MYINFO_CLIENT_ID=mockClientId - MYINFO_CLIENT_SECRET=mockClientSecret + - SGID_ENDPOINT=http://localhost:5156/sgid/v1/oauth + - SGID_CLIENT_ID=sgidclientid + - SGID_CLIENT_SECRET=sgidclientsecret + - SGID_REDIRECT_URI=http://localhost:5000/sgid/login + - SGID_PRIVATE_KEY=./node_modules/@opengovsg/mockpass/static/certs/key.pem + - SGID_PUBLIC_KEY=./node_modules/@opengovsg/mockpass/static/certs/server.crt - SES_PASS - SES_USER - OTP_LIFE_SPAN diff --git a/docs/DEPLOYMENT_SETUP.md b/docs/DEPLOYMENT_SETUP.md index 1d73dead40..d9bee23381 100644 --- a/docs/DEPLOYMENT_SETUP.md +++ b/docs/DEPLOYMENT_SETUP.md @@ -19,6 +19,7 @@ Infrastructure - AWS Elastic Beanstalk / EC2 for hosting and deployment - AWS Elastic File System for mounting files (i.e. SingPass/MyInfo private keys into the `/certs` directory) - AWS S3 for image and logo hosting, attachments for Storage Mode forms +- AWS Service Manager - Parameter Store, for holding environment variable configuration DevOps @@ -104,8 +105,22 @@ The following env variables are set in Travis: ## Environment Variables +These are configured by creating groups of environment variables formatted like `.env` files in the Parameter +Store of AWS Service Manager. These groups have names formatted as `-`. + +The environment for each group is user-defined, and should be specified in the Elastic Beanstalk configuration +as the environment variable `SSM_PREFIX`. + +The list of categories can be inferred by looking at the file `.ebextensions/env-file-creation.config`. + ### Core Features +#### AWS Service Manager + +| Variable | Description | +| :----------- | ------------------------------------------------------------------------------------------------------------ | +| `SSM_PREFIX` | String prefix (typically the environment name) for AWS SSM parameter names to create a .env file for FormSG. | + #### App Config | Variable | Description | @@ -175,6 +190,7 @@ SITE_BANNER_CONTENT=hello:This is an invalid banner type, and the full text will | `ADMIN_BANNER_CONTENT` | If set, displays a banner message on private admin routes such as the form list page as well as form builder pages. | | `IS_LOGIN_BANNER` | If set, displays a banner message on the login page. | | `IS_GENERAL_MAINTENANCE` | If set, displays a banner message on all forms. Overrides `IS_SP_MAINTENANCE` and `IS_CP_MAINTENANCE`. | +| `MYINFO_BANNER_CONTENT` | all public **MyInfo-enabled** forms | | `IS_SP_MAINTENANCE` | all public **SingPass-enabled** forms | | `IS_CP_MAINTENANCE` | all public **CorpPass-enabled** forms | diff --git a/package-lock.json b/package-lock.json index 0b5626768d..7fb06ba9f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "FormSG", - "version": "5.16.0", + "version": "5.22.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,20 +20,20 @@ "dev": true }, "@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.8", "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", + "@babel/helper-module-transforms": "^7.14.8", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.14.8", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -52,18 +52,18 @@ } }, "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", "dev": true }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", + "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -100,6 +100,70 @@ "@babel/types": "^7.14.5" } }, + "@babel/helper-member-expression-to-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz", + "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.8", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, "@babel/helper-split-export-declaration": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", @@ -110,9 +174,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", + "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", "dev": true }, "@babel/helper-validator-option": { @@ -133,9 +197,9 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", + "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", "dev": true }, "@babel/template": { @@ -150,72 +214,41 @@ } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", + "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.8", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.14.8", + "@babel/types": "^7.14.8", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", + "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.8", "to-fast-properties": "^2.0.0" } }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "caniuse-lite": { - "version": "1.0.30001237", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz", - "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, - "electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", - "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==", - "dev": true - }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -225,12 +258,6 @@ "minimist": "^1.2.5" } }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -261,29 +288,28 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } } @@ -302,34 +328,30 @@ }, "dependencies": { "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "node-releases": "^1.1.71" + }, + "dependencies": { + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + } } }, "caniuse-lite": { - "version": "1.0.30001194", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001194.tgz", - "integrity": "sha512-iDUOH+oFeBYk5XawYsPtsx/8fFpndAPUQJC7gBTfxHM8xw5nOZv7ceAD4frS1MKCLUac7QL5wdAJiFQlDRjXlA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.678", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.678.tgz", - "integrity": "sha512-E5ha1pE9+aWWrT2fUD5wdPBWUnYtKnEnloewbtVyrkAs79HvodOiNO4rMR94+hKbxgMFQG4fnPQACOc1cfMfBg==", - "dev": true - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.0.30001245", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", + "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", "dev": true }, "semver": { @@ -341,163 +363,172 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz", - "integrity": "sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.14.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, + "@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "requires": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.14.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/highlight": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.8.tgz", - "integrity": "sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.9.tgz", - "integrity": "sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -525,18 +556,18 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } } @@ -703,28 +734,27 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz", - "integrity": "sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } } @@ -815,19 +845,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz", + "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-simple-access": "^7.14.8", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.8", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8" }, "dependencies": { "@babel/code-frame": { @@ -840,12 +870,12 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -871,9 +901,9 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "requires": { "@babel/types": "^7.14.5" @@ -919,9 +949,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/highlight": { @@ -936,9 +966,9 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -953,36 +983,36 @@ } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -1006,152 +1036,151 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.14.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/highlight": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.8.tgz", - "integrity": "sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.9.tgz", - "integrity": "sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -1172,27 +1201,27 @@ } }, "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.14.8" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } } @@ -1208,18 +1237,18 @@ }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } } @@ -1259,14 +1288,14 @@ } }, "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz", + "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==", "dev": true, "requires": { "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8" }, "dependencies": { "@babel/code-frame": { @@ -1279,12 +1308,12 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", + "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1319,9 +1348,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", + "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", "dev": true }, "@babel/highlight": { @@ -1336,9 +1365,9 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", + "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", "dev": true }, "@babel/template": { @@ -1353,36 +1382,36 @@ } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", + "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.8", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.14.8", + "@babel/types": "^7.14.8", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", + "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.8", "to-fast-properties": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -1427,38 +1456,38 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", - "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } }, "@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -1474,373 +1503,30 @@ "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, "@babel/helper-plugin-utils": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } } } }, "@babel/plugin-proposal-decorators": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz", - "integrity": "sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz", + "integrity": "sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.2", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-decorators": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-decorators": "^7.14.5" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.2.tgz", - "integrity": "sha512-OnADYbKrffDVai5qcpkMxQ7caomHOoEwjkouqnN2QhydAjowFAZcsdecFIRUBdb+ZcruwYE4ythYmF1UBZU5xQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.2.tgz", - "integrity": "sha512-6YctwVsmlkchxfGUogvVrrhzyD3grFJyluj5JgDlQrwfMLJSt5tdAzFZfPf4H2Xoi5YLcQ6BxfJlaOBHuctyIw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.2.tgz", - "integrity": "sha512-IoVDIHpsgE/fu7eXBeRWt8zLbDrSvD7H1gpomOkPpBoEN8KCruCqSDdqo8dddwQQrui30KSvQBaMUOJiuFu6QQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } } } }, @@ -1964,22 +1650,89 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", - "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" + "@babel/plugin-transform-parameters": "^7.14.5" }, "dependencies": { + "@babel/compat-data": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "dev": true + }, + "@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "caniuse-lite": { + "version": "1.0.30001244", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001244.tgz", + "integrity": "sha512-Wb4UFZPkPoJoKKVfELPWytRzpemjP/s0pe22NriANru1NoI+5bGNxzKtk7edYL8rmCWTfQO8eRiF0pn1Dqzx7Q==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.775", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.775.tgz", + "integrity": "sha512-EGuiJW4yBPOTj2NtWGZcX93ZE8IGj33HJAx4d3ouE2zOfW2trbWU+t1e0yzLr1qQIw81++txbM3BH52QwSRE6Q==", + "dev": true + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -2031,183 +1784,11 @@ "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true } } }, @@ -2223,26 +1804,6 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, "@babel/helper-annotate-as-pure": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", @@ -2252,154 +1813,27 @@ "@babel/types": "^7.14.5" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, "@babel/helper-plugin-utils": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } } } }, @@ -2474,18 +1908,18 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", - "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz", + "integrity": "sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -2509,18 +1943,18 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", - "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", + "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -2561,18 +1995,18 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", - "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -2691,21 +2125,46 @@ } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" }, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } } } }, @@ -2822,37 +2281,37 @@ } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", - "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", + "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-flow": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-flow": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -2912,9 +2371,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/highlight": { @@ -2929,9 +2388,9 @@ } }, "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -2946,12 +2405,12 @@ } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } } @@ -3050,9 +2509,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true } } @@ -3076,9 +2535,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", - "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", + "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" @@ -3121,12 +2580,12 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -3197,9 +2656,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/highlight": { @@ -3214,9 +2673,9 @@ } }, "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -3231,36 +2690,36 @@ } }, "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -3269,18 +2728,18 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", - "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } @@ -3303,124 +2762,124 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz", - "integrity": "sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz", + "integrity": "sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true } } }, "@babel/plugin-transform-react-jsx": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", - "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz", + "integrity": "sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/types": "^7.13.12" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.14.5", + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", + "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", "dev": true }, "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", + "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.8", "to-fast-properties": "^2.0.0" } } } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", - "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", + "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.12.17" + "@babel/plugin-transform-react-jsx": "^7.14.5" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", - "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz", + "integrity": "sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", + "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", "dev": true }, "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", + "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.8", "to-fast-properties": "^2.0.0" } } @@ -3627,17 +3086,17 @@ } }, "@babel/preset-env": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", - "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.9.tgz", + "integrity": "sha512-BV5JvCwBDebkyh67bPKBYVCC6gGw0MCzU6HfKe5Pm3upFpPVqiC/hB33zkOe0tVdAzaMywah0LSXQeD9v/BYdQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.7", + "@babel/compat-data": "^7.14.9", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-async-generator-functions": "^7.14.9", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.14.5", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -3670,7 +3129,7 @@ "@babel/plugin-transform-async-to-generator": "^7.14.5", "@babel/plugin-transform-block-scoped-functions": "^7.14.5", "@babel/plugin-transform-block-scoping": "^7.14.5", - "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.9", "@babel/plugin-transform-computed-properties": "^7.14.5", "@babel/plugin-transform-destructuring": "^7.14.7", "@babel/plugin-transform-dotall-regex": "^7.14.5", @@ -3684,7 +3143,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/plugin-transform-modules-systemjs": "^7.14.5", "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", "@babel/plugin-transform-new-target": "^7.14.5", "@babel/plugin-transform-object-super": "^7.14.5", "@babel/plugin-transform-parameters": "^7.14.5", @@ -3699,11 +3158,11 @@ "@babel/plugin-transform-unicode-escapes": "^7.14.5", "@babel/plugin-transform-unicode-regex": "^7.14.5", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.9", "babel-plugin-polyfill-corejs2": "^0.2.2", "babel-plugin-polyfill-corejs3": "^0.2.2", "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.15.0", + "core-js-compat": "^3.16.0", "semver": "^6.3.0" }, "dependencies": { @@ -3717,18 +3176,18 @@ } }, "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.9.tgz", + "integrity": "sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw==", "dev": true }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -3742,16 +3201,6 @@ "@babel/types": "^7.14.5" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", - "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, "@babel/helper-compilation-targets": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", @@ -3764,29 +3213,6 @@ "semver": "^6.3.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", - "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, "@babel/helper-function-name": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", @@ -3816,15 +3242,6 @@ "@babel/types": "^7.14.5" } }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, "@babel/helper-optimise-call-expression": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", @@ -3840,17 +3257,6 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, - "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, "@babel/helper-replace-supers": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", @@ -3873,9 +3279,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/helper-validator-option": { @@ -3884,18 +3290,6 @@ "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true }, - "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", - "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, "@babel/highlight": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", @@ -3908,15 +3302,15 @@ } }, "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", - "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz", + "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5", @@ -3924,29 +3318,6 @@ "@babel/plugin-syntax-async-generators": "^7.8.4" } }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", - "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" - } - }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -3974,17 +3345,6 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, "@babel/plugin-transform-block-scoping": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", @@ -3995,9 +3355,9 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", - "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz", + "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.14.5", @@ -4009,16 +3369,6 @@ "globals": "^11.1.0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, "@babel/plugin-transform-for-of": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", @@ -4028,15 +3378,6 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, "@babel/template": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", @@ -4049,61 +3390,36 @@ } }, "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, "core-js-compat": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.0.tgz", - "integrity": "sha512-8X6lWsG+s7IfOKzV93a7fRYfWRZobOfjw5V5rrq43Vh/W+V6qYxl7Akalsvgab4PFT/4L/pjQbdBUEM36NXKrw==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz", + "integrity": "sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -4119,26 +3435,14 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, - "electron-to-chromium": { - "version": "1.3.754", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.754.tgz", - "integrity": "sha512-Q50dJbfYYRtwK3G9mFP/EsJVzlgcYwKxFjbXmvVa1lDAbdviPcT9QOpFoufDApub4j0hBfDRL6v3lWNLEdEDXQ==", - "dev": true - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -4148,20 +3452,26 @@ } }, "@babel/preset-flow": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.13.13.tgz", - "integrity": "sha512-MDtwtamMifqq3R2mC7l3A3uFalUb3NH5TIBQWjN/epEPlZktcLq4se3J+ivckKrLMGsR7H9LW8+pYuIUN9tsKg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.14.5.tgz", + "integrity": "sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-transform-flow-strip-types": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-flow-strip-types": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true } } @@ -4180,31 +3490,37 @@ } }, "@babel/preset-react": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz", - "integrity": "sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", + "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.13.12", - "@babel/plugin-transform-react-jsx-development": "^7.12.17", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.5", + "@babel/plugin-transform-react-jsx-development": "^7.14.5", + "@babel/plugin-transform-react-pure-annotations": "^7.14.5" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true } } }, "@babel/runtime": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", - "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", + "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -4286,9 +3602,9 @@ } }, "@eslint/eslintrc": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", - "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -4303,18 +3619,18 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -4341,18 +3657,46 @@ } }, "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" }, "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" } }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -4920,13 +4264,13 @@ } }, "@mapbox/node-pre-gyp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.0.tgz", - "integrity": "sha512-mEaiD1CURETR/dBIiJAwz0M0Q0mH3gCW4pPMaIlNt97mdzYUVeqGcTJSamgJpS6Tg4tBHDrOJpjdh5fJTLnyNQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz", + "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", "requires": { "detect-libc": "^1.0.3", - "http-proxy-agent": "^4.0.1", - "mkdirp": "^1.0.4", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", "node-fetch": "^2.6.1", "nopt": "^5.0.0", "npmlog": "^4.1.2", @@ -4944,61 +4288,47 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { - "yallist": "^4.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, "@nodelib/fs.scandir": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", @@ -5075,9 +4405,9 @@ } }, "@opengovsg/mockpass": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/@opengovsg/mockpass/-/mockpass-2.7.4.tgz", - "integrity": "sha512-oYp8/SfiN6o8hm9ekHi2VA1lDSgcWoHk7abwXd3MMWDlgl7vxyc7Ftl5/HgYFlIrP4n6qNzNP2clB/67VhG1pA==", + "version": "2.7.7", + "resolved": "https://registry.npmjs.org/@opengovsg/mockpass/-/mockpass-2.7.7.tgz", + "integrity": "sha512-vxveki0rNWnBG1rbkYGwsG5hDDqujLXJd1ePYGlDyjr7q92/7+c4oe2+s95vw0KtgBBrMP7GaYH27/1Hhb1g2Q==", "dev": true, "requires": { "base-64": "^1.0.0", @@ -5124,6 +4454,17 @@ "resolved": "https://registry.npmjs.org/@opengovsg/ng-file-upload/-/ng-file-upload-12.2.15.tgz", "integrity": "sha512-YqR6GIsum9K7Cg6wOTxwJnKP+KDOxbZ9dnQE2/M47vP0ynXyTadvwflGBukzJ/MhzrS2R6buNhFjFnVJRXJinw==" }, + "@opengovsg/sgid-client": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@opengovsg/sgid-client/-/sgid-client-0.0.12.tgz", + "integrity": "sha512-+qCaglpfMIgHK6jhmGUf/sA34YBidNvB2sIKQrgbFqiIsqmj48x48EXJMghBryWFFObjWiBaTe0Dv8E1eLIKEQ==", + "requires": { + "jsonwebtoken": "^8.5.1", + "jwt-decode": "^3.1.2", + "node-jose": "^2.0.0", + "openid-client": "^4.7.4" + } + }, "@opengovsg/spcp-auth-client": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/@opengovsg/spcp-auth-client/-/spcp-auth-client-1.4.8.tgz", @@ -5140,78 +4481,138 @@ "xpath": "0.0.32" } }, + "@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" + }, "@sentry/browser": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.7.2.tgz", - "integrity": "sha512-Lv0Ne1QcesyGAhVcQDfQa3hDPR/MhPSDTMg3xFi+LxqztchVc4w/ynzR0wCZFb8KIHpTj5SpJHfxpDhXYMtS9g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.10.0.tgz", + "integrity": "sha512-H0Blgp8f8bomebkkGWIgxHVjabtQAlsKJDiFXBg7gIc75YcarRxwH0R3hMog1/h8mmv4CGGUsy5ljYW6jsNnvA==", "requires": { - "@sentry/core": "6.7.2", - "@sentry/types": "6.7.2", - "@sentry/utils": "6.7.2", + "@sentry/core": "6.10.0", + "@sentry/types": "6.10.0", + "@sentry/utils": "6.10.0", "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.10.0.tgz", + "integrity": "sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==" + }, + "@sentry/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-F9OczOcZMFtazYVZ6LfRIe65/eOfQbiAedIKS0li4npuMz0jKYRbxrjd/U7oLiNQkPAp4/BujU4m1ZIwq6a+tg==", + "requires": { + "@sentry/types": "6.10.0", + "tslib": "^1.9.3" + } + } } }, "@sentry/core": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.7.2.tgz", - "integrity": "sha512-NTZqwN5nR94yrXmSfekoPs1mIFuKvf8esdIW/DadwSKWAdLJwQTJY9xK/8PQv+SEzd7wiitPAx+mCw2By1xiNQ==", - "requires": { - "@sentry/hub": "6.7.2", - "@sentry/minimal": "6.7.2", - "@sentry/types": "6.7.2", - "@sentry/utils": "6.7.2", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.10.0.tgz", + "integrity": "sha512-5KlxHJlbD7AMo+b9pMGkjxUOfMILtsqCtGgI7DMvZNfEkdohO8QgUY+hPqr540kmwArFS91ipQYWhqzGaOhM3Q==", + "requires": { + "@sentry/hub": "6.10.0", + "@sentry/minimal": "6.10.0", + "@sentry/types": "6.10.0", + "@sentry/utils": "6.10.0", "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.10.0.tgz", + "integrity": "sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==" + }, + "@sentry/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-F9OczOcZMFtazYVZ6LfRIe65/eOfQbiAedIKS0li4npuMz0jKYRbxrjd/U7oLiNQkPAp4/BujU4m1ZIwq6a+tg==", + "requires": { + "@sentry/types": "6.10.0", + "tslib": "^1.9.3" + } + } } }, "@sentry/hub": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.7.2.tgz", - "integrity": "sha512-05qVW6ymChJsXag4+fYCQokW3AcABIgcqrVYZUBf6GMU/Gbz5SJqpV7y1+njwWvnPZydMncP9LaDVpMKbE7UYQ==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.10.0.tgz", + "integrity": "sha512-MV8wjhWiFAXZAhmj7Ef5QdBr2IF93u8xXiIo2J+dRZ7eVa4/ZszoUiDbhUcl/TPxczaw4oW2a6tINBNFLzXiig==", "requires": { - "@sentry/types": "6.7.2", - "@sentry/utils": "6.7.2", + "@sentry/types": "6.10.0", + "@sentry/utils": "6.10.0", "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.10.0.tgz", + "integrity": "sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==" + }, + "@sentry/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-F9OczOcZMFtazYVZ6LfRIe65/eOfQbiAedIKS0li4npuMz0jKYRbxrjd/U7oLiNQkPAp4/BujU4m1ZIwq6a+tg==", + "requires": { + "@sentry/types": "6.10.0", + "tslib": "^1.9.3" + } + } } }, "@sentry/integrations": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.7.2.tgz", - "integrity": "sha512-IvOLqKVTxPxSJLbKVEe15BjvotnWBs86h5MJx3DLA/1HLP4xtUOvFsdmuMLJij5PtFG10HuUpRn8acEh5h9PTw==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.10.0.tgz", + "integrity": "sha512-NMtB0jjFYFZRxyjYu2dWLThk9YPIwqhi4hYywmWkbv4/ILzi5Rwnh+aqNW6yrj8qG4b9itNMh3YvEzmf0aqauw==", "requires": { - "@sentry/types": "6.7.2", - "@sentry/utils": "6.7.2", + "@sentry/types": "6.10.0", + "@sentry/utils": "6.10.0", "localforage": "^1.8.1", "tslib": "^1.9.3" } }, "@sentry/minimal": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.7.2.tgz", - "integrity": "sha512-jkpwFv2GFHoVl5vnK+9/Q+Ea8eVdbJ3hn3/Dqq9MOLFnVK7ED6MhdHKLT79puGSFj+85OuhM5m2Q44mIhyS5mw==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.10.0.tgz", + "integrity": "sha512-yarm046UgUFIBoxqnBan2+BEgaO9KZCrLzsIsmALiQvpfW92K1lHurSawl5W6SR7wCYBnNn7CPvPE/BHFdy4YA==", "requires": { - "@sentry/hub": "6.7.2", - "@sentry/types": "6.7.2", + "@sentry/hub": "6.10.0", + "@sentry/types": "6.10.0", "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.10.0.tgz", + "integrity": "sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==" + } } }, "@sentry/types": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.7.2.tgz", - "integrity": "sha512-h21Go/PfstUN+ZV6SbwRSZVg9GXRJWdLfHoO5PSVb3TVEMckuxk8tAE57/u+UZDwX8wu+Xyon2TgsKpiWKxqUg==" + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.10.0.tgz", + "integrity": "sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==" }, "@sentry/utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.7.2.tgz", - "integrity": "sha512-9COL7aaBbe61Hp5BlArtXZ1o/cxli1NGONLPrVT4fMyeQFmLonhUiy77NdsW19XnvhvaA+2IoV5dg3dnFiF/og==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-F9OczOcZMFtazYVZ6LfRIe65/eOfQbiAedIKS0li4npuMz0jKYRbxrjd/U7oLiNQkPAp4/BujU4m1ZIwq6a+tg==", "requires": { - "@sentry/types": "6.7.2", + "@sentry/types": "6.10.0", "tslib": "^1.9.3" } }, "@sideway/address": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz", - "integrity": "sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", + "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -5229,8 +4630,7 @@ "@sindresorhus/is": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", - "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", - "dev": true + "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==" }, "@sinonjs/commons": { "version": "1.8.0", @@ -5278,7 +4678,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dev": true, "requires": { "defer-to-connect": "^2.0.0" } @@ -5289,21 +4688,21 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@tsconfig/node10": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz", - "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "dev": true }, "@tsconfig/node12": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz", - "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", "dev": true }, "@tsconfig/node14": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz", - "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", "dev": true }, "@tsconfig/node16": { @@ -5368,15 +4767,15 @@ } }, "@types/bluebird": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.35.tgz", - "integrity": "sha512-2WeeXK7BuQo7yPI4WGOBum90SzF/f8rqlvpaXx4rjeTmNssGRDHWf7fgDUH90xMB3sUOu716fUK5d+OVx0+ncQ==", + "version": "3.5.36", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", + "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", "dev": true }, "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", "dev": true, "requires": { "@types/connect": "*", @@ -5384,17 +4783,17 @@ } }, "@types/bson": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", - "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz", + "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==", "requires": { "@types/node": "*" } }, "@types/busboy": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@types/busboy/-/busboy-0.2.3.tgz", - "integrity": "sha1-ZpetKYcyRsUw8Jo/9aQIYYJCMNU=", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@types/busboy/-/busboy-0.2.4.tgz", + "integrity": "sha512-f+ZCVjlcN8JW/zf3iR0GqO4gjOUlltMTtZjn+YR1mlK+MVu6esTiIecO0/GQlmYQPQLdBnc7+5vG3Xb+SkvFLw==", "dev": true, "requires": { "@types/node": "*" @@ -5404,7 +4803,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dev": true, "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -5419,27 +4817,27 @@ "dev": true }, "@types/compression": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.0.tgz", - "integrity": "sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.1.tgz", + "integrity": "sha512-d6K1bU3qIjtfB2u+A1N0WDf62LpewRjrvbqY79qlPwk2otgQ4mWB4+LzPCWTvGmcuVwo+zAroEhsNlJavRcFvg==", "dev": true, "requires": { "@types/express": "*" } }, "@types/connect": { - "version": "3.4.34", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", - "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/convict": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/convict/-/convict-6.0.2.tgz", - "integrity": "sha512-lYFEgTO7c36/Sq8+FKTn64jA/6B7xLeKv0/NZkWIaavMlBzlU5zgiyfJvl9rOTCxvlUT2rXTD6In5DmEGTK5+w==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/convict/-/convict-6.1.1.tgz", + "integrity": "sha512-R+JLaTvhsD06p4jyjUDtbd5xMtZTRE3c0iI+lrFWZogSVEjgTWPYwvJPVf+t92E+yrlbXa4X4Eg9ro6gPdUt4w==", "dev": true, "requires": { "@types/node": "*" @@ -5467,9 +4865,9 @@ "dev": true }, "@types/ejs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.0.6.tgz", - "integrity": "sha512-fj1hi+ZSW0xPLrJJD+YNwIh9GZbyaIepG26E/gXvp8nCa2pYokxUYO1sK9qjGxp2g8ryZYuon7wmjpwE2cyASQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.0.7.tgz", + "integrity": "sha512-AUxAGNIPr7wQmzdFMNhHy/RkR5kk8gSzAZIuCYY//6ZYJKHvnjezmoEYP34coPleUPnqrUWt03cCq7NzNaA/qg==", "dev": true }, "@types/error-stack-parser": { @@ -5485,9 +4883,9 @@ "dev": true }, "@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, "requires": { "@types/body-parser": "*", @@ -5497,27 +4895,27 @@ } }, "@types/express-rate-limit": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/express-rate-limit/-/express-rate-limit-5.1.2.tgz", - "integrity": "sha512-loN1dcr0WEKsbVtXNQKDef4Fmh25prfy+gESrwTDofIhAt17ngTxrsDiEZxLemmfHH279x206CdUB9XHXS9E6Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-rate-limit/-/express-rate-limit-5.1.3.tgz", + "integrity": "sha512-H+TYy3K53uPU2TqPGFYaiWc2xJV6+bIFkDd/Ma2/h67Pa6ARk9kWE0p/K9OH1Okm0et9Sfm66fmXoAxsH2PHXg==", "dev": true, "requires": { "@types/express": "*" } }, "@types/express-request-id": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/express-request-id/-/express-request-id-1.4.1.tgz", - "integrity": "sha512-39g9HGiBJBjsSJZ80vYgkR4yvu7XVL2R/R/KezU/060gnW5e9btRP7d0R8QORzJ3/Uo7Sis36AM58KSQQOfgcw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/express-request-id/-/express-request-id-1.4.2.tgz", + "integrity": "sha512-K0rhnzYklvOur+6eHOKDa3HYPLT9rbx1bLBbUvQew7CgBHnKnkfu9H+p2guCOTW/oDyJSCpPj/T6vd38Lz7tIQ==", "dev": true, "requires": { "@types/express-serve-static-core": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.20.tgz", - "integrity": "sha512-8qqFN4W53IEWa9bdmuVrUcVkFemQWnt5DKPQ/oa8xKDYgtjCr2OO6NX5TIK49NLFr3mPYU2cLh92DQquC3oWWQ==", + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", + "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", "dev": true, "requires": { "@types/node": "*", @@ -5526,19 +4924,18 @@ } }, "@types/express-session": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.0.tgz", - "integrity": "sha512-OQEHeBFE1UhChVIBhRh9qElHUvTp4BzKKHxMDkGHT7WuYk5eL93hPG7D8YAIkoBSbhNEY0RjreF15zn+U0eLjA==", + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.4.tgz", + "integrity": "sha512-7cNlSI8+oOBUHTfPXMwDxF/Lchx5aJ3ho7+p9jJZYVg9dVDJFh3qdMXmJtRsysnvS+C6x46k9DRYmrmCkE+MVg==", "dev": true, "requires": { - "@types/express": "*", - "@types/node": "*" + "@types/express": "*" } }, "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", "dev": true, "requires": { "@types/minimatch": "*", @@ -5572,8 +4969,7 @@ "@types/http-cache-semantics": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", - "dev": true + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" }, "@types/ip": { "version": "1.1.0", @@ -5609,9 +5005,9 @@ } }, "@types/jest": { - "version": "26.0.23", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", - "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -5639,15 +5035,14 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dev": true, "requires": { "@types/node": "*" } }, "@types/lodash": { - "version": "4.14.169", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz", - "integrity": "sha512-DvmZHoHTFJ8zhVYwCLWbQ7uAbYQEk52Ev2/ZiQ7Y7gQGeV9pjBqjnQpECMHfKS1rCYAhMI7LHVxwyZLZinJgdw==", + "version": "4.14.171", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.171.tgz", + "integrity": "sha512-7eQ2xYLLI/LsicL2nejW9Wyko3lcpN6O/z0ZLHrEQsg280zIdCv1t/0m6UtBjUHokCGBQ3gYTbHzDkZ1xOBwwg==", "dev": true }, "@types/mdast": { @@ -5666,9 +5061,9 @@ "dev": true }, "@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "@types/minimist": { @@ -5678,29 +5073,29 @@ "dev": true }, "@types/mongodb": { - "version": "3.6.18", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.18.tgz", - "integrity": "sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==", + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", + "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", "requires": { "@types/bson": "*", "@types/node": "*" } }, "@types/mongodb-uri": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/mongodb-uri/-/mongodb-uri-0.9.0.tgz", - "integrity": "sha512-N52kUCiYyH4H2xOMHV7lIDjv4ZLRcRgEiN0xut/BNKHD/dLox10Q6WVl1vjnfA+rvdL9rFZGUxs9EQunQosAlA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@types/mongodb-uri/-/mongodb-uri-0.9.1.tgz", + "integrity": "sha512-Rxyje0yj8zI8GX4qKtroVpidJglBLZBjZG9QLizHdymZmvmVZdOkseje7Qrk9Kpbjopis9ZAvMnkEArQYV0ZaA==", "dev": true }, "@types/node": { - "version": "14.17.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.4.tgz", - "integrity": "sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A==" + "version": "14.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.9.tgz", + "integrity": "sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g==" }, "@types/nodemailer": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.2.tgz", - "integrity": "sha512-yhsqg5Xbr8aWdwjFS3QjkniW5/tLpWXtOYQcJdo9qE3DolBxsKzgRCQrteaMY0hos8MklJNSEsMqDpZynGzMNg==", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.4.tgz", + "integrity": "sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw==", "dev": true, "requires": { "@types/node": "*" @@ -5713,9 +5108,9 @@ "dev": true }, "@types/opossum": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@types/opossum/-/opossum-4.1.1.tgz", - "integrity": "sha512-9TMnd8AWRVtnZMqBbbzceQoJdafErgUViogFaQ3eetsbeLtiFFZ695mepNaLtlfJi4uRP3GmHfe3CJ2DZKaxYA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/opossum/-/opossum-4.1.2.tgz", + "integrity": "sha512-/t9JaahIqrkA8ZxExHwkLTgSLQ/g8UFPM0rqQK3xKUV7MS19XhHlSHEkQ1izpJLATY09iVL+ZG5xZihncRIwSw==", "dev": true, "requires": { "@types/node": "*" @@ -5767,22 +5162,21 @@ "dev": true }, "@types/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, "@types/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, "requires": { "@types/node": "*" } @@ -5794,9 +5188,9 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", - "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, "requires": { "@types/mime": "^1", @@ -5871,15 +5265,15 @@ "dev": true }, "@types/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==", "dev": true }, "@types/validator": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.4.tgz", - "integrity": "sha512-19C02B8mr53HufY7S+HO/EHBD7a/R22IwEwyqiHaR19iwL37dN3o0M8RianVInfSSqP7InVSg/o0mUATM4JWsQ==", + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.6.3.tgz", + "integrity": "sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==", "dev": true }, "@types/yargs": { @@ -5907,13 +5301,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.0.tgz", - "integrity": "sha512-KcF6p3zWhf1f8xO84tuBailV5cN92vhS+VT7UJsPzGBm9VnQqfI9AsiMUFUCYHTYPg1uCCo+HyiDnpDuvkAMfQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.0.tgz", + "integrity": "sha512-eiREtqWRZ8aVJcNru7cT/AMVnYd9a2UHsfZT8MR1dW3UUEg6jDv9EQ9Cq4CUPZesyQ58YUpoAADGv71jY8RwgA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.28.0", - "@typescript-eslint/scope-manager": "4.28.0", + "@typescript-eslint/experimental-utils": "4.29.0", + "@typescript-eslint/scope-manager": "4.29.0", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.1.0", @@ -5922,49 +5316,49 @@ }, "dependencies": { "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", "dev": true }, "@typescript-eslint/experimental-utils": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.0.tgz", - "integrity": "sha512-9XD9s7mt3QWMk82GoyUpc/Ji03vz4T5AYlHF9DcoFNfJ/y3UAclRsfGiE2gLfXtyC+JRA3trR7cR296TEb1oiQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.0.tgz", + "integrity": "sha512-FpNVKykfeaIxlArLUP/yQfv/5/3rhl1ov6RWgud4OgbqWLkEq7lqgQU9iiavZRzpzCRQV4XddyFz3wFXdkiX9w==", "dev": true, "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.0", - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/typescript-estree": "4.28.0", + "@typescript-eslint/scope-manager": "4.29.0", + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/typescript-estree": "4.29.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/scope-manager": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz", - "integrity": "sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.29.0.tgz", + "integrity": "sha512-HPq7XAaDMM3DpmuijxLV9Io8/6pQnliiXMQUcAdjpJJSR+fdmbD/zHCd7hMkjJn04UQtCQBtshgxClzg6NIS2w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/visitor-keys": "4.28.0" + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/visitor-keys": "4.29.0" } }, "@typescript-eslint/types": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.0.tgz", - "integrity": "sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.29.0.tgz", + "integrity": "sha512-2YJM6XfWfi8pgU2HRhTp7WgRw78TCRO3dOmSpAvIQ8MOv4B46JD2chnhpNT7Jq8j0APlIbzO1Bach734xxUl4A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz", - "integrity": "sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.0.tgz", + "integrity": "sha512-8ZpNHDIOyqzzgZrQW9+xQ4k5hM62Xy2R4RPO3DQxMc5Rq5QkCdSpk/drka+DL9w6sXNzV5nrdlBmf8+x495QXQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/visitor-keys": "4.28.0", + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/visitor-keys": "4.29.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -5973,34 +5367,24 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz", - "integrity": "sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.0.tgz", + "integrity": "sha512-LoaofO1C/jAJYs0uEpYMXfHboGXzOJeV118X4OsZu9f7rG7Pr9B3+4HTU8+err81rADa4xfQmAxnRnPAI2jp+Q==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", + "@typescript-eslint/types": "4.29.0", "eslint-visitor-keys": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "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-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", @@ -6016,23 +5400,6 @@ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, "globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -6047,15 +5414,6 @@ "slash": "^3.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -6064,74 +5422,82 @@ "requires": { "lru-cache": "^6.0.0" } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz", + "integrity": "sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.4", + "@typescript-eslint/types": "4.28.4", + "@typescript-eslint/typescript-estree": "4.28.4", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "dev": true }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "tslib": "^1.8.1" + "eslint-visitor-keys": "^2.0.0" } }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, - "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, "@typescript-eslint/parser": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.0.tgz", - "integrity": "sha512-7x4D22oPY8fDaOCvkuXtYYTQ6mTMmkivwEzS+7iml9F9VkHGbbZ3x4fHRwxAb5KeuSkLqfnYjs46tGx2Nour4A==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.29.0.tgz", + "integrity": "sha512-+92YRNHFdXgq+GhWQPT2bmjX09X7EH36JfgN2/4wmhtwV/HPxozpCNst8jrWcngLtEVd/4zAwA6BKojAlf+YqA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.28.0", - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/typescript-estree": "4.28.0", + "@typescript-eslint/scope-manager": "4.29.0", + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/typescript-estree": "4.29.0", "debug": "^4.3.1" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz", - "integrity": "sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.29.0.tgz", + "integrity": "sha512-HPq7XAaDMM3DpmuijxLV9Io8/6pQnliiXMQUcAdjpJJSR+fdmbD/zHCd7hMkjJn04UQtCQBtshgxClzg6NIS2w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/visitor-keys": "4.28.0" + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/visitor-keys": "4.29.0" } }, "@typescript-eslint/types": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.0.tgz", - "integrity": "sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.29.0.tgz", + "integrity": "sha512-2YJM6XfWfi8pgU2HRhTp7WgRw78TCRO3dOmSpAvIQ8MOv4B46JD2chnhpNT7Jq8j0APlIbzO1Bach734xxUl4A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz", - "integrity": "sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.0.tgz", + "integrity": "sha512-8ZpNHDIOyqzzgZrQW9+xQ4k5hM62Xy2R4RPO3DQxMc5Rq5QkCdSpk/drka+DL9w6sXNzV5nrdlBmf8+x495QXQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", - "@typescript-eslint/visitor-keys": "4.28.0", + "@typescript-eslint/types": "4.29.0", + "@typescript-eslint/visitor-keys": "4.29.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -6140,19 +5506,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz", - "integrity": "sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.0.tgz", + "integrity": "sha512-LoaofO1C/jAJYs0uEpYMXfHboGXzOJeV118X4OsZu9f7rG7Pr9B3+4HTU8+err81rADa4xfQmAxnRnPAI2jp+Q==", "dev": true, "requires": { - "@typescript-eslint/types": "4.28.0", + "@typescript-eslint/types": "4.29.0", "eslint-visitor-keys": "^2.0.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -6178,15 +5544,6 @@ "slash": "^3.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -6195,64 +5552,63 @@ "requires": { "lru-cache": "^6.0.0" } - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz", + "integrity": "sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.28.4", + "@typescript-eslint/visitor-keys": "4.28.4" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.4.tgz", + "integrity": "sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz", + "integrity": "sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.28.4", + "@typescript-eslint/visitor-keys": "4.28.4", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6280,19 +5636,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz", + "integrity": "sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.28.4", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } @@ -6540,18 +5896,18 @@ } }, "acorn-hammerhead": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/acorn-hammerhead/-/acorn-hammerhead-0.4.0.tgz", - "integrity": "sha512-zMjPa6kNgMB0zclCZI41sPofSeeHMF9Q6e3ALRsowmmNqoiz1qiJI9oemt9GfZ5e5EmQpElvePT3AVcLU3AzHQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/acorn-hammerhead/-/acorn-hammerhead-0.5.0.tgz", + "integrity": "sha512-TI9TFfJBfduhcM2GggayNhdYvdJ3UgS/Bu3sB7FB2AUmNCmCJ+TSOT6GXu+bodG5/xL74D5zE4XRaqyjgjsYVQ==", "dev": true, "requires": { "@types/estree": "0.0.46" } }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, "acorn-walk": { @@ -6813,12 +6169,6 @@ "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", "dev": true }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7248,9 +6598,9 @@ "integrity": "sha512-24q5Rh3bno7ldoyCq99d6hpnLI+PAMocdeVaaGt/5BTQMprvDwQToHfNnruqN11odCHZZIQbRBw+nZo1lTCH9g==" }, "aws-sdk": { - "version": "2.932.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.932.0.tgz", - "integrity": "sha512-U6MWUtFD0npWa+ReVEgm0fCIM0fMOYahFp14GLv8fC+BWOTvh5Iwt/gF8NrLomx42bBjA1Abaw6yhmiaSJDQHQ==", + "version": "2.960.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.960.0.tgz", + "integrity": "sha512-e3KNZ5x0uzBNbVLbGUO2xrMRonUPpmXxgyZ/MaHx5yOQIv9G2a7dei/TvrMa9rl4MFCScGLw1LjbYb7CrdbMBQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -8098,15 +7448,30 @@ } }, "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "dependencies": { + "caniuse-lite": { + "version": "1.0.30001245", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", + "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + } } }, "bs-logger": { @@ -8342,14 +7707,12 @@ "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -8361,10 +7724,9 @@ }, "dependencies": { "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" } } }, @@ -8377,12 +7739,6 @@ "get-intrinsic": "^1.0.2" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -8450,7 +7806,8 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "camelcase-keys": { "version": "6.2.2", @@ -8505,9 +7862,9 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "celebrate": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/celebrate/-/celebrate-14.0.0.tgz", - "integrity": "sha512-TqbsEkppmR3st1XFAatlfrWM2q0peZpaXDr0qAs4mXZ8yHtjwYYUgSl4/pluL+hlljbdC9OAJVkL5U3dFpSwxw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/celebrate/-/celebrate-15.0.0.tgz", + "integrity": "sha512-eGA5CHv5GYbV6ZaBEYKIST+7OUsHZKcyiNdagdVDu6uO1QK2i2qLrS9XWdJ1pWPuw9M0D7B1rUFQqIld1nNcMA==", "requires": { "escape-html": "1.0.3", "joi": "17.x.x", @@ -8578,27 +7935,46 @@ "dev": true }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } } } }, @@ -8608,13 +7984,13 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-remote-interface": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.25.7.tgz", - "integrity": "sha512-6zI6LbR2IiGmduFZededaerEr9hHXabxT/L+fRrdq65a0CfyLMzpq0BKuZiqN0Upqcacsb6q2POj7fmobwBsEA==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.30.1.tgz", + "integrity": "sha512-emKaqCjYAgrT35nm6PvTUKJ++2NX9qAmrcNRPRGyryG9Kc7wlkvO0bmvEdNMrr8Bih2e149WctJZFzUiM1UNwg==", "dev": true, "requires": { "commander": "2.11.x", - "ws": "3.3.x" + "ws": "^7.2.0" }, "dependencies": { "commander": { @@ -8622,23 +7998,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } } } }, @@ -8722,8 +8081,7 @@ "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { "version": "3.1.0", @@ -8894,7 +8252,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -9395,27 +8752,27 @@ } }, "convict": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/convict/-/convict-6.1.0.tgz", - "integrity": "sha512-8dzppr6Z9URlm6P8N9NiydFRq2NWtQyf4RZOK5m0Q48fWWuKamHLXD7Qz/SiLvRXnjQcKCuHayIk9Fk51sax0w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.0.tgz", + "integrity": "sha512-aCk1+VWt3TG6SJV59u+wwuza7lvtlJfj6zH/fmE1xzx5yZnNby1lPYkccq1mKaJJXHjk9cuVCFWVVIhbkpmwRw==", "requires": { "lodash.clonedeep": "^4.5.0", - "yargs-parser": "^18.1.3" + "yargs-parser": "^20.2.7" + }, + "dependencies": { + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } } }, "convict-format-with-validator": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/convict-format-with-validator/-/convict-format-with-validator-6.0.1.tgz", - "integrity": "sha512-6/O0W9/0MESdL+0fY7glQlWHs+wnP9xXlB1tjY/Wb9ujCCEBqMP8VCjtLvRlBdfwgONrpb+DTPSHQRhUO5aTlQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/convict-format-with-validator/-/convict-format-with-validator-6.2.0.tgz", + "integrity": "sha512-2LIL3yEZY27M13UHLIP4mGivusP9h2M+X4mYsRBLexwUp8+0sgVk2MgB2b2bnQwkn293lkbkxgdevzn0nZdyzQ==", "requires": { - "validator": "^11.1.0" - }, - "dependencies": { - "validator": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", - "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" - } + "validator": "^13.6.0" } }, "cookie": { @@ -9600,9 +8957,9 @@ } }, "core-js": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.1.tgz", - "integrity": "sha512-h8VbZYnc9pDzueiS2610IULDkpFFPunHwIpl8yRwFahAEEdSpHlTy3h3z3rKq5h11CaUdBEeRViu9AYvbxiMeg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz", + "integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==", "dev": true }, "core-js-compat": { @@ -9709,9 +9066,9 @@ } }, "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", + "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", "dev": true, "requires": { "js-yaml": "^3.13.1", @@ -9903,24 +9260,6 @@ "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - } } }, "css-select-base-adapter": { @@ -9953,9 +9292,9 @@ } }, "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true }, "cssesc": { @@ -9965,13 +9304,13 @@ "dev": true }, "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "dev": true, "requires": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" }, @@ -10007,9 +9346,9 @@ } }, "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", "dev": true, "requires": { "css-declaration-sorter": "^4.0.1", @@ -10040,7 +9379,7 @@ "postcss-ordered-values": "^4.1.2", "postcss-reduce-initial": "^4.0.3", "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", + "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" } }, @@ -10072,28 +9411,28 @@ "dev": true }, "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.39" + "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, "requires": { - "mdn-data": "2.0.6", + "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, "source-map": { @@ -10143,15 +9482,6 @@ "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -10183,188 +9513,14 @@ } }, "date-fns": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.22.1.tgz", - "integrity": "sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==" - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } - } + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", + "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" }, "dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==" }, "debug": { "version": "3.1.0", @@ -10384,7 +9540,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decamelize-keys": { "version": "1.1.0", @@ -10519,8 +9676,7 @@ "defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", @@ -10750,14 +9906,6 @@ } } }, - "device": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/device/-/device-0.3.11.tgz", - "integrity": "sha512-4+vaidA09uqcuMHQKFlFgoOJN7vi4R5Pn2B+GyIsJOGZnv8SSrXv0Ep4Y6wCoKVCcYx5PYQjunaWAg2sZz+s6g==", - "requires": { - "useragent": "*" - } - }, "device-specs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/device-specs/-/device-specs-1.0.0.tgz", @@ -10909,9 +10057,9 @@ } }, "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" @@ -10928,8 +10076,7 @@ "dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" }, "duplexify": { "version": "3.7.1", @@ -10983,9 +10130,9 @@ } }, "electron-to-chromium": { - "version": "1.3.475", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.475.tgz", - "integrity": "sha512-vcTeLpPm4+ccoYFXnepvkFt0KujdyrBU19KNEO40Pnkhta6mUi2K0Dn7NmpRcNz7BvysnSqeuIYScP003HWuYg==", + "version": "1.3.775", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.775.tgz", + "integrity": "sha512-EGuiJW4yBPOTj2NtWGZcX93ZE8IGj33HJAx4d3ouE2zOfW2trbWU+t1e0yzLr1qQIw81++txbM3BH52QwSRE6Q==", "dev": true }, "elegant-spinner": { @@ -11277,22 +10424,53 @@ } }, "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + } } }, "es-to-primitive": { @@ -11363,13 +10541,14 @@ } }, "eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -11419,9 +10598,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/highlight": { @@ -11461,9 +10640,9 @@ "dev": true }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -11517,9 +10696,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -11531,52 +10710,16 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "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": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -11964,9 +11107,9 @@ } }, "eslint-plugin-jest": { - "version": "24.3.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", - "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", + "version": "24.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz", + "integrity": "sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==", "dev": true, "requires": { "@typescript-eslint/experimental-utils": "^4.0.1" @@ -12000,13 +11143,32 @@ } }, "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "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.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "dependencies": { + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + } } }, "eslint-utils": { @@ -12340,24 +11502,10 @@ } } }, - "express-device": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/express-device/-/express-device-0.4.2.tgz", - "integrity": "sha1-WXyCL9QgTUayL68q1p7IWTa8tqM=", - "requires": { - "device": ">=0.3.1", - "express-partials": "0.3.0" - } - }, - "express-partials": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/express-partials/-/express-partials-0.3.0.tgz", - "integrity": "sha1-iLnEAWSv2aVSeGKbKUjmrOe/9F8=" - }, "express-rate-limit": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.2.6.tgz", - "integrity": "sha512-nE96xaxGfxiS5jP3tD3kIW1Jg9yQgX0rXCs3rCkZtmbWHEGyotwaezkLj7bnB41Z0uaOLM8W4AX6qHao4IZ2YA==" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.3.0.tgz", + "integrity": "sha512-qJhfEgCnmteSeZAeuOKQ2WEIFTX5ajrzE0xS6gCOBCoRQcU+xEzQmgYQQTpzCcqUAAzTEtu4YEih4pnLfvNtew==" }, "express-request-id": { "version": "1.4.1", @@ -12634,15 +11782,6 @@ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -12973,9 +12112,9 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fp-ts": { - "version": "2.10.5", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.10.5.tgz", - "integrity": "sha512-X2KfTIV0cxIk3d7/2Pvp/pxL/xr2MV1WooyEzKtTWYSc1+52VF4YzjBTXqeOlSiZsPCxIBpDGfT9Dyo7WEY0DQ==" + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.11.1.tgz", + "integrity": "sha512-CJOfs+Heq/erkE5mqH2mhpsxCKABGmcLyeEwPxtbTlkLkItGUs6bmk2WqjB2SgoVwNwzTE5iKjPQJiq06CPs5g==" }, "fragment-cache": { "version": "0.2.1", @@ -13263,20 +12402,14 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -13497,7 +12630,6 @@ "version": "11.8.2", "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", - "dev": true, "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -13516,7 +12648,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, "requires": { "mimic-response": "^3.1.0" } @@ -13524,8 +12655,7 @@ "mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" } } }, @@ -13826,15 +12956,15 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "hpagent": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.1.tgz", - "integrity": "sha512-IxJWQiY0vmEjetHdoE9HZjD4Cx+mYTr25tR7JCxXaiI3QxW0YqYyM11KyZbHufoa/piWhMb2+D3FGpMgmA2cFQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", + "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", "dev": true, "optional": true }, @@ -13850,12 +12980,6 @@ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", "dev": true }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -14040,8 +13164,7 @@ "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { "version": "1.7.2", @@ -14109,7 +13232,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -14118,8 +13240,7 @@ "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" } } }, @@ -14160,15 +13281,15 @@ "integrity": "sha1-GZT/rs3+nEQe0r2sdFK3u0yeQaQ=" }, "humanize-duration": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.26.0.tgz", - "integrity": "sha512-SddekX3p5ApvPY6bbAYppGKe874jP6iFZXYtrQToDV4R0j2UpTYPqwTFM2QpXpuw9DhS/eXTUnKYTF9TbXAJ6A==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.0.tgz", + "integrity": "sha512-qLo/08cNc3Tb0uD7jK0jAcU5cnqCM0n568918E7R2XhMr/+7F37p4EY062W/stg7tmzvknNn9b/1+UhVRzsYrQ==", "dev": true }, "husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.1.tgz", + "integrity": "sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA==", "dev": true }, "iconv-lite": { @@ -14319,8 +13440,7 @@ "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "indexes-of": { "version": "1.0.1", @@ -14723,12 +13843,21 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } } }, "is-regexp": { @@ -14755,15 +13884,6 @@ "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -16629,9 +15749,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", - "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.1.tgz", + "integrity": "sha512-gDPOwQ5sr+BUxXuPDGrC1pSNcVR/yGGcTI0aCnjYxZEa3za60K/iCQ+OFIkEHWZGVCUcUlXlFKvMmrlmxrG6UQ==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -16640,6 +15760,14 @@ "@sideway/pinpoint": "^2.0.0" } }, + "jose": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", + "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, "jquery": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", @@ -16730,8 +15858,7 @@ "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-parse-better-errors": { "version": "1.0.2", @@ -16816,9 +15943,9 @@ } }, "jszip": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", - "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.0.tgz", + "integrity": "sha512-Y2OlFIzrDOPWUnpU0LORIcDn2xN7rC9yKffFM/7pGhQuhO+SUhfm2trkJ/S5amjFvem0Y+1EALz/MEPkvHXVNw==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -16859,7 +15986,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dev": true, "requires": { "json-buffer": "3.0.1" } @@ -16927,9 +16053,9 @@ } }, "libphonenumber-js": { - "version": "1.9.20", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.20.tgz", - "integrity": "sha512-fZw/XGE19SdRtcmAa5mEUjhGuFrVsT6x3V07TLt36psLbJnZiAdI0i/h4JSufKGXFCyreYM7gP98julXfO1XNA==" + "version": "1.9.23", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.23.tgz", + "integrity": "sha512-+qWSwPyJWSV9ukb7Iu21WpWEP7irFWR1ojoYykL2itAfXKj9FjsTjS6PPZoPUOZk+1kxliHjwsilqA1TNeOhuQ==" }, "lie": { "version": "3.3.0", @@ -16946,9 +16072,9 @@ "dev": true }, "lint-staged": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", - "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.1.tgz", + "integrity": "sha512-eTNGe6i78PSUUH2BZi1gZmGmNfb8IeN4z2OzMYxSZ1qnP1WXKn1E7D+OHwLbRDm/wQINnzIj0bsKJ6lLVSuZiQ==", "dev": true, "requires": { "chalk": "^4.1.1", @@ -17020,18 +16146,18 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -17104,9 +16230,9 @@ "dev": true }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "shebang-command": { @@ -17154,15 +16280,13 @@ } }, "listr2": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.2.tgz", - "integrity": "sha512-E28Fw7Zd3HQlCJKzb9a8C8M0HtFWQeucE+S8YrSrqZObuCLPRHMRrR8gNmYt65cU9orXYHwvN5agXC36lYt7VQ==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.0.tgz", + "integrity": "sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ==", "dev": true, "requires": { - "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", + "colorette": "^1.2.2", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.7", @@ -17185,16 +16309,6 @@ "color-convert": "^2.0.1" } }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -17210,10 +16324,10 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "is-fullwidth-code-point": { @@ -17242,15 +16356,6 @@ "ansi-regex": "^5.0.0" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -17591,16 +16696,6 @@ "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -17610,22 +16705,20 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^4.0.0" }, "dependencies": { "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -17711,8 +16804,7 @@ "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "makeerror": { "version": "1.0.11", @@ -18315,9 +17407,9 @@ "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" }, "moment-duration-format-commonjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/moment-duration-format-commonjs/-/moment-duration-format-commonjs-1.0.0.tgz", - "integrity": "sha512-MVFR4hIh4jfuwSCPBEE5CCwn3refvTsxK/Yv/DpKJ6YcNnCimlVJ6DQeTJG1KVQPw1o8m3tkbHE9gVjivyv9iA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/moment-duration-format-commonjs/-/moment-duration-format-commonjs-1.0.1.tgz", + "integrity": "sha512-KhKZRH21/+ihNRWrmdNFOyBptFi7nAWZFeFsRRpXkzgk/Yublb4fxyP0jU6EY1VDxUL/VUPdCmm/wAnpbfXdfw==", "dev": true }, "moment-timezone": { @@ -18620,11 +17712,12 @@ "integrity": "sha1-D3ca0W9IOuZfQoeWlCjp+8SqYYE=" }, "mongoose": { - "version": "5.12.12", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.12.tgz", - "integrity": "sha512-n+ZmGApaL5x/r92w6S4pb+c075i+YKzg1F9YWkznSzQMtvetj/2dSjj2cqsITpd6z60k3K7ZaosIl6hzHwUA9g==", + "version": "5.13.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz", + "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==", "requires": { "@types/mongodb": "^3.5.27", + "@types/node": "14.x || 15.x", "bson": "^1.1.4", "kareem": "2.3.2", "mongodb": "3.6.8", @@ -18857,9 +17950,9 @@ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, "neverthrow": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/neverthrow/-/neverthrow-4.2.1.tgz", - "integrity": "sha512-faWQGNqVQrXOuG8K7E0PRzsfBHzfVqeDX9nwawKDseuH/qEGIH02Nrq03OJOs5eTFML03xeol3otzagPoHyEPA==" + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/neverthrow/-/neverthrow-4.2.2.tgz", + "integrity": "sha512-zmJ1Oo368VlI7Fp2p+uD3ekkEEYzHr4ZlTE/4vfjA+TPtstftvJ3meIS2EReKy604wVXb+N+8XtwN98Mc1jJsA==" }, "ng-infinite-scroll": { "version": "1.3.0", @@ -18883,9 +17976,9 @@ } }, "ngrok": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ngrok/-/ngrok-4.0.1.tgz", - "integrity": "sha512-1RDEaP6urGt8dVzZ68mlf1799VXucJ3bEcNDOSwWoGUjgXS7MxMw+ngyw/2H/O+EMk1Fj1+Md2Au595rB4lG5w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ngrok/-/ngrok-4.1.0.tgz", + "integrity": "sha512-ajSwP/qfGVaXXD0PYphg/IJD4pzt2ObKo6HDvBK4feLrFLSIJDWjlVQRwv3NYDnHzeSMb9MiJtObDKhGNhYELA==", "dev": true, "requires": { "@types/node": "^8.10.50", @@ -18939,9 +18032,9 @@ } }, "node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node-cache": { "version": "5.1.2", @@ -19140,21 +18233,15 @@ } }, "node-releases": { - "version": "1.1.58", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", - "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", - "dev": true - }, - "node-version": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.2.0.tgz", - "integrity": "sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "nodemailer": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.2.tgz", - "integrity": "sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q==" + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.3.tgz", + "integrity": "sha512-faZFufgTMrphYoDjvyVpbpJcYzwyFnbAMmQtj1lVBYAUSm3SOy2fIdd9+Mr4UxPosBa0JRw9bJoIwQn+nswiew==" }, "noop-logger": { "version": "0.1.1", @@ -19304,10 +18391,15 @@ } } }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", "dev": true }, "object-keys": { @@ -19326,25 +18418,26 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.2" } }, "object.pick": { @@ -19357,17 +18450,21 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" } }, + "oidc-token-hash": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz", + "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -19406,6 +18503,44 @@ "mimic-fn": "^2.1.0" } }, + "openid-client": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-4.7.4.tgz", + "integrity": "sha512-n+RURXYuR0bBZo9i0pn+CXZSyg5JYQ1nbwEwPQvLE7EcJt/vMZ2iIMjLehl5DvCN53XUoPVZs9KAE5r6d9fxsw==", + "requires": { + "aggregate-error": "^3.1.0", + "got": "^11.8.0", + "jose": "^2.0.5", + "lru-cache": "^6.0.0", + "make-error": "^1.3.6", + "object-hash": "^2.0.1", + "oidc-token-hash": "^5.0.1" + }, + "dependencies": { + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "opn": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", @@ -19424,9 +18559,9 @@ } }, "opossum": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/opossum/-/opossum-6.1.0.tgz", - "integrity": "sha512-vzZxPqjfJQisLhavf68PMPCTuGMBp6Ar38LjKD/uVrAF+htVMJ8FXtp/wJMBG5NZ9B+VRMDpVymvDP31FjFFDg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/opossum/-/opossum-6.2.0.tgz", + "integrity": "sha512-pqemKjWRvgkhNNRsovfKQ/B3t16OIyOp+VPr+jQCf2U/PhqfyFyvur6LxMxw+1Vrj+Q392YSav6z9wS1wwc+2g==" }, "optimist": { "version": "0.6.1", @@ -19445,9 +18580,9 @@ } }, "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz", + "integrity": "sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==", "dev": true, "requires": { "cssnano": "^4.1.10", @@ -19492,13 +18627,13 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-cancelable": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz", - "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==", - "dev": true + "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==" }, "p-defer": { "version": "1.0.0", @@ -19797,7 +18932,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "dev": true, + "optional": true }, "path-exists": { "version": "3.0.0", @@ -20005,9 +19141,9 @@ "dev": true }, "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -20033,9 +19169,9 @@ } }, "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", "dev": true, "requires": { "postcss": "^7.0.27", @@ -20454,12 +19590,11 @@ } }, "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", "dev": true, "requires": { - "is-svg": "^3.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "svgo": "^1.0.0" @@ -20573,9 +19708,9 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "prettier-linter-helpers": { @@ -20773,11 +19908,6 @@ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -21184,9 +20314,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -21437,18 +20567,18 @@ "dev": true }, "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", "dev": true, "requires": { "is-finite": "^1.0.0" } }, "replicator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/replicator/-/replicator-1.0.3.tgz", - "integrity": "sha512-WsKsraaM0x0QHy5CtzdgFXUxyowoBhyNkmPqmZShW6h+rOWnyT6Od3zRdTX9r616rAA6kDC9MKQGnSM/CJKfVQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/replicator/-/replicator-1.0.5.tgz", + "integrity": "sha512-saxS4y7NFkLMa92BR4bPHR41GD+f/qoDAwD2xZmN+MpDXgibkxwLO2qk7dCHYtskSkd/bWS8Jy6kC5MZUkg1tw==", "dev": true }, "request": { @@ -21571,8 +20701,7 @@ "resolve-alpn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", - "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", - "dev": true + "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" }, "resolve-cwd": { "version": "3.0.0", @@ -21642,7 +20771,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, "requires": { "lowercase-keys": "^2.0.0" } @@ -22469,22 +21597,16 @@ } }, "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", "dev": true, "requires": { - "component-emitter": "1.2.1", + "component-emitter": "~1.3.0", "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, "isarray": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", @@ -22531,9 +21653,9 @@ } }, "sortablejs": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.13.0.tgz", - "integrity": "sha512-RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" }, "source-list-map": { "version": "2.0.1", @@ -22707,29 +21829,12 @@ } }, "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { "minipass": "^3.1.1" - }, - "dependencies": { - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "stable": { @@ -22886,23 +21991,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string_decoder": { @@ -23205,9 +22310,9 @@ } }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -23417,9 +22522,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -23446,16 +22551,19 @@ } }, "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "dev": true }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "readable-stream": { "version": "3.6.0", @@ -23469,9 +22577,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23486,9 +22594,9 @@ } }, "supertest": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.3.tgz", - "integrity": "sha512-v2NVRyP73XDewKb65adz+yug1XMtmvij63qIWHZzSX8tp6wiq6xBLUy4SUAd2NII6wIipOmHT/FD9eicpJwdgQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.4.tgz", + "integrity": "sha512-giC9Zm+Bf1CZP09ciPdUyl+XlMAu6rbch79KYiYKOGcbK2R1wH8h+APul1i/3wN6RF1XfWOIF+8X1ga+7SBrug==", "dev": true, "requires": { "methods": "^1.1.2", @@ -23603,9 +22711,9 @@ }, "dependencies": { "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -23661,9 +22769,9 @@ "dev": true }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.6.tgz", + "integrity": "sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -23886,9 +22994,9 @@ } }, "testcafe": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/testcafe/-/testcafe-1.14.2.tgz", - "integrity": "sha512-QSvCwS4J3jzXRMcDBAlnm+SUf/PoWEkKZEnsIYzdbFheJYFNNIOXL/SeNA9L4cDWH7AjsOQxfALlRQOkQVSamw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/testcafe/-/testcafe-1.15.1.tgz", + "integrity": "sha512-t4OYDCFLKeQTg228ss2ZFbJFec0w68Z+LxA4BzQkp9kFXsDA4FFBHk6R+X7gQ3gv1wGfWCkggrskHDx7vjSh1A==", "dev": true, "requires": { "@babel/core": "^7.12.1", @@ -23916,9 +23024,9 @@ "callsite-record": "^4.0.0", "chai": "^4.1.2", "chalk": "^2.3.0", - "chrome-remote-interface": "^0.25.3", + "chrome-remote-interface": "^0.30.0", "coffeescript": "^2.3.1", - "commander": "^2.8.1", + "commander": "^8.0.0", "debug": "^4.3.1", "dedent": "^0.4.0", "del": "^3.0.0", @@ -23929,7 +23037,7 @@ "endpoint-utils": "^1.0.2", "error-stack-parser": "^1.3.6", "execa": "^4.0.3", - "globby": "^9.2.0", + "globby": "^11.0.4", "graceful-fs": "^4.1.11", "graphlib": "^2.1.5", "humanize-duration": "^3.25.0", @@ -23948,7 +23056,6 @@ "moment-duration-format-commonjs": "^1.0.0", "mustache": "^2.1.2", "nanoid": "^1.0.1", - "node-version": "^1.0.0", "os-family": "^1.0.0", "parse5": "^1.5.0", "pify": "^2.3.0", @@ -23958,16 +23065,16 @@ "promisify-event": "^1.0.0", "qrcode-terminal": "^0.10.0", "read-file-relative": "^1.2.0", - "replicator": "^1.0.3", + "replicator": "^1.0.5", "resolve-cwd": "^1.0.0", "resolve-from": "^4.0.0", "sanitize-filename": "^1.6.0", "semver": "^5.6.0", "source-map-support": "^0.5.16", "strip-bom": "^2.0.0", - "testcafe-browser-tools": "2.0.15", - "testcafe-hammerhead": "24.2.1", - "testcafe-legacy-api": "5.0.0", + "testcafe-browser-tools": "2.0.16", + "testcafe-hammerhead": "24.4.1", + "testcafe-legacy-api": "5.0.2", "testcafe-reporter-json": "^2.1.0", "testcafe-reporter-list": "^2.1.0", "testcafe-reporter-minimal": "^2.1.0", @@ -23981,69 +23088,25 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@types/node": { - "version": "12.20.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.13.tgz", - "integrity": "sha512-1x8W5OpxPq+T85OUsHRP6BqXeosKmeXRtjoF39STcdf/UWLqUsoehstZKOi0CunhVqHG17AyZgpj20eRVooK6A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "@babel/helper-plugin-utils": "^7.14.5" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } + "@types/node": { + "version": "12.20.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.17.tgz", + "integrity": "sha512-so8EHl4S6MmatPS0f9sE1ND94/ocbcEshW5OpyYthRqeRpiYyW2uXYTo/84kmfdfeNrDycARkvuiXl6nO40NGg==", + "dev": true }, "ci-info": { "version": "1.6.0", @@ -24052,9 +23115,9 @@ "dev": true }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", "dev": true }, "cross-spawn": { @@ -24069,9 +23132,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -24083,15 +23146,6 @@ "integrity": "sha1-h979BAvUwVldljKC7FfzwqhSVkI=", "dev": true }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -24109,105 +23163,20 @@ "strip-final-newline": "^2.0.0" } }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, "import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", @@ -24225,12 +23194,6 @@ "repeating": "^1.1.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", @@ -24240,6 +23203,12 @@ "ci-info": "^1.5.0" } }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -24247,40 +23216,12 @@ "dev": true, "requires": { "is-extglob": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "json5": { @@ -24309,27 +23250,6 @@ } } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, "mustache": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", @@ -24363,15 +23283,6 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "repeating": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "resolve-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz", @@ -24410,12 +23321,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -24434,20 +23339,10 @@ "os-tmpdir": "~1.0.1" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, "typescript": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", - "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, "which": { @@ -24462,12 +23357,13 @@ } }, "testcafe-browser-tools": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/testcafe-browser-tools/-/testcafe-browser-tools-2.0.15.tgz", - "integrity": "sha512-bzkh5B1+Ws/I3YZL+9M4TSUq3aAewjvF2oue2l7T7eROIvqwPDE22ZFfPuLew6VIZcotCFZj432s1EgJDFyH7g==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/testcafe-browser-tools/-/testcafe-browser-tools-2.0.16.tgz", + "integrity": "sha512-JljbS0FboABksIMEH1L7P4ZdI82AQ8saWb/7WsxkDCOtDuHID5ZSEb/w9tqLN1+4BQaCgS5veN3lWUnfb0saEA==", "dev": true, "requires": { "array-find": "^1.0.0", + "debug": "^4.3.1", "dedent": "^0.7.0", "del": "^5.1.0", "execa": "^3.3.0", @@ -24495,6 +23391,15 @@ "which": "^2.0.1" } }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -24558,9 +23463,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "mustache": { @@ -24638,12 +23543,12 @@ } }, "testcafe-hammerhead": { - "version": "24.2.1", - "resolved": "https://registry.npmjs.org/testcafe-hammerhead/-/testcafe-hammerhead-24.2.1.tgz", - "integrity": "sha512-SyZgnOnF7ya+I9+jagWd5RMcyS9K+yzZDX8i/FkuAS6QITbEMvNxyNIS20enBAGy4FE3dlrfzo4TQfgp6Au3Bg==", + "version": "24.4.1", + "resolved": "https://registry.npmjs.org/testcafe-hammerhead/-/testcafe-hammerhead-24.4.1.tgz", + "integrity": "sha512-+H3+tz4n3hoFVDHsyNXHkNOi5QYVBWGcCXu2kxMwNsfsk31njjJvmPPl3Ew1trpkWgnekwZVGRPJzQwcmbsJZQ==", "dev": true, "requires": { - "acorn-hammerhead": "0.4.0", + "acorn-hammerhead": "0.5.0", "asar": "^2.0.1", "bowser": "1.6.0", "brotli": "^1.3.1", @@ -24757,9 +23662,9 @@ } }, "testcafe-legacy-api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/testcafe-legacy-api/-/testcafe-legacy-api-5.0.0.tgz", - "integrity": "sha512-Peb5NJLP7g6HTihMrrGKV7YnGvD6xw4eNPA7Fx44r1GzncuVY/fV1lIL0EQyr8uz0bS5+Hgr0fHSiZ/E4hCjeQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/testcafe-legacy-api/-/testcafe-legacy-api-5.0.2.tgz", + "integrity": "sha512-2BWjCIN5YOUOTyOT4B0wy2TiaJgV8dWhIGpKqE3S34RjNEH62WR+JNhcnh4BSE+btp6H8n1TefcP/AObqSDSDQ==", "dev": true, "requires": { "async": "0.2.6", @@ -24912,14 +23817,6 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, "tmp-promise": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.1.0.tgz", @@ -25090,9 +23987,9 @@ "dev": true }, "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, "triple-beam": { @@ -25116,9 +24013,9 @@ } }, "ts-essentials": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.2.tgz", - "integrity": "sha512-qWPVC1xZGdefbsgFP7tPo+bsgSA2ZIXL1XeEe5M2WoMZxIOr/HbsHxP/Iv75IFhiMHMDGL7cOOwi5SXcgx9mHw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true }, "ts-jest": { @@ -25208,9 +24105,9 @@ } }, "ts-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", - "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.1.0.tgz", + "integrity": "sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA==", "dev": true, "requires": { "@tsconfig/node10": "^1.0.7", @@ -25226,13 +24123,12 @@ } }, "ts-node-dev": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.1.6.tgz", - "integrity": "sha512-RTUi7mHMNQospArGz07KiraQcdgUVNXKsgO2HAi7FoiyPMdTDqdniB6K1dqyaIxT7c9v/VpSbfBZPS6uVpaFLQ==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.1.8.tgz", + "integrity": "sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg==", "dev": true, "requires": { "chokidar": "^3.5.1", - "dateformat": "~1.0.4-1.2.3", "dynamic-dedupe": "^0.3.0", "minimist": "^1.2.5", "mkdirp": "^1.0.4", @@ -25305,9 +24201,9 @@ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -25338,9 +24234,9 @@ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, "twilio": { - "version": "3.64.0", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.64.0.tgz", - "integrity": "sha512-pTTjj0HH3EiN0+nF1VeGIgw85tm6u+WA7yHBaBRxXN7QaBWNMyA+ozA0H9+YVgE1oin7ZdJz8WDshnQ6aYYfGg==", + "version": "3.66.1", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.66.1.tgz", + "integrity": "sha512-BmIgfx2VuS7tj4IscBhyEj7CdmtfIaaJ1IuNeGoJFYBx5xikpuwkR0Ceo5CNtK5jnN3SCKmxHxToec/MYEXl0A==", "requires": { "axios": "^0.21.1", "dayjs": "^1.8.29", @@ -25364,9 +24260,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } @@ -25410,9 +24306,9 @@ "dev": true }, "type-fest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.1.tgz", - "integrity": "sha512-SbmIRuXhJs8KTneu77Ecylt9zuqL683tuiLYpTRil4H++eIhqCmx6ko6KAFem9dty8sOdnEiX7j4K1nRE628fQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.3.0.tgz", + "integrity": "sha512-mYUYkAy6fPatVWtUeCV/qGeGL3IVucmdJOzeAEfwgCJDx8gP0JaW8jn6KQ5xDfPec31e0KXWn5EUOZMhquR1zA==", "dev": true }, "type-is": { @@ -25440,9 +24336,9 @@ } }, "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true }, "uglify-js": { @@ -25487,12 +24383,6 @@ "random-bytes": "~1.0.0" } }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -25772,9 +24662,9 @@ } }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -25786,15 +24676,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", @@ -26245,9 +25126,9 @@ "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" }, "web-streams-polyfill": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.0.3.tgz", - "integrity": "sha512-d2H/t0eqRNM4w2WvmTdoeIvzAUSpK7JmATB8Nr2lb7nQ9BTIJVjbQ/TRFVEh2gUH1HwclPdoPtfMoFfetXaZnA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.0.tgz", + "integrity": "sha512-wO9r1YnYe7kFBLHyyVEhV1H8VRWoNiNnuP+v/HUUmSTaRF8F93Kmd3JMrETx0f11GXxRek6OcL2QtjFIdc5WYw==" }, "webauth": { "version": "1.1.0", @@ -27042,9 +25923,9 @@ } }, "ws": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", - "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==" + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==" }, "xml": { "version": "1.0.1", @@ -27252,6 +26133,7 @@ "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -27279,9 +26161,9 @@ "dev": true }, "zod": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.2.0.tgz", - "integrity": "sha512-yvcO3FZ8URR+LliMGqaW7tlVOOTzmup3vzKEe9Ds7twyJtdhvYa7dIYr0FbD1wVfWC1OuS83vZfHtCKslPuRhA==" + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.7.1.tgz", + "integrity": "sha512-9TRjeMKz3xFUOl/CYhBmp/hCrMhk5U6qRnfy9q+HwmQPbMYp3qnM+/cPst+wzHQjfSBjHDYZq7S7TQnlAjqjFg==" }, "zwitch": { "version": "1.0.5", diff --git a/package.json b/package.json index de655eab79..eb345abc25 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "FormSG", "description": "Form Manager for Government", - "version": "5.16.0", + "version": "5.22.0", "homepage": "https://form.gov.sg", "authors": [ "FormSG " @@ -24,16 +24,16 @@ "build-frontend": "webpack --config webpack.prod.js", "build-frontend-dev": "webpack --config webpack.dev.js", "build-frontend-dev:watch": "webpack --config webpack.dev.js --watch", - "start": "node dist/backend/app/server.js", + "start": "node -r dotenv/config dist/backend/src/app/server.js", "dev": "docker-compose up --build", - "docker-dev": "npm run build-frontend-dev:watch & ts-node-dev --respawn --transpile-only --inspect=0.0.0.0 --exit-child -- src/app/server.ts", + "docker-dev": "npm run build-frontend-dev:watch & ts-node-dev --respawn --transpile-only --inspect=0.0.0.0 --exit-child -r dotenv/config -- src/app/server.ts", "test": "npm run test-backend && npm run test-frontend", "download-binary": "node tests/end-to-end/helpers/get-mongo-binary.js", "test-e2e": "npm run test-e2e-build && npm run test-e2e-ci", "test-e2e-build": "npm run build-backend && npm run build-frontend-dev", "test-e2e-ci": "env-cmd -f tests/.test-env --use-shell \"npm run download-binary && npm run testcafe-command\"", - "testcafe-command": "testcafe --skip-js-errors -c 3 chrome:headless ./tests/end-to-end --app \"npm run test-e2e-server\" --app-init-delay 10000", - "test-e2e-server": "concurrently --success last --kill-others \"mockpass\" \"maildev\" \"node dist/backend/app/server.js\" \"node ./tests/mock-webhook-server.js\"", + "testcafe-command": "testcafe --skip-js-errors -c 2 chrome:headless ./tests/end-to-end --app \"npm run test-e2e-server\" --app-init-delay 10000", + "test-e2e-server": "concurrently --success last --kill-others \"mockpass\" \"maildev\" \"node dist/backend/src/app/server.js\" \"node ./tests/mock-webhook-server.js\"", "lint-code": "eslint src/ --quiet --fix", "lint-style": "stylelint '*/**/*.css' --quiet --fix", "lint-html": "htmlhint && prettier --write './src/public/**/*.html' --ignore-path './dist/**' --loglevel silent", @@ -43,10 +43,12 @@ "prepare": "husky install", "pre-commit": "lint-staged", "storybook": "npm run --prefix frontend storybook", - "postinstall": "cd frontend && npm install" + "postinstall:frontend": "cd frontend && npm install", + "postinstall:shared": "cd shared && npm install", + "postinstall": "npm run postinstall:frontend && npm run postinstall:shared" }, "dependencies": { - "@babel/runtime": "^7.14.6", + "@babel/runtime": "^7.14.8", "@joi/date": "^2.1.0", "@opengovsg/angular-daterangepicker-webpack": "^1.1.5", "@opengovsg/angular-legacy-sortablejs-maintained": "^1.0.0", @@ -54,9 +56,10 @@ "@opengovsg/formsg-sdk": "^0.9.0", "@opengovsg/myinfo-gov-client": "^4.0.0", "@opengovsg/ng-file-upload": "^12.2.15", + "@opengovsg/sgid-client": "0.0.12", "@opengovsg/spcp-auth-client": "^1.4.8", - "@sentry/browser": "^6.7.2", - "@sentry/integrations": "^6.7.2", + "@sentry/browser": "^6.10.0", + "@sentry/integrations": "^6.10.0", "@stablelib/base64": "^1.0.1", "JSONStream": "^1.3.5", "abortcontroller-polyfill": "^1.7.3", @@ -74,7 +77,7 @@ "angular-ui-bootstrap": "~2.5.6", "angular-ui-router": "~1.0.29", "aws-info": "^1.2.0", - "aws-sdk": "^2.932.0", + "aws-sdk": "^2.960.0", "axios": "^0.21.1", "bcrypt": "^5.0.1", "bluebird": "^3.5.2", @@ -83,20 +86,20 @@ "boxicons": "1.8.0", "bson-ext": "^2.0.5", "busboy": "^0.3.1", - "celebrate": "^14.0.0", + "celebrate": "^15.0.0", "compression": "~1.7.2", "connect-mongo": "^4.4.1", - "convict": "^6.1.0", - "convict-format-with-validator": "^6.0.1", + "convict": "^6.2.0", + "convict-format-with-validator": "^6.2.0", "cookie-parser": "~1.4.0", "css-toggle-switch": "^4.1.0", "csv-string": "^4.0.1", - "date-fns": "^2.22.1", + "date-fns": "^2.23.0", "dedent-js": "~1.0.1", + "dotenv": "^10.0.0", "ejs": "^3.1.6", "express": "^4.16.4", - "express-device": "~0.4.2", - "express-rate-limit": "^5.2.6", + "express-rate-limit": "^5.3.0", "express-request-id": "^1.4.1", "express-session": "^1.17.2", "express-winston": "^4.1.0", @@ -104,34 +107,34 @@ "file-loader": "^4.3.0", "file-saver": "^2.0.5", "font-awesome": "4.7.0", - "fp-ts": "^2.10.5", + "fp-ts": "^2.11.1", "has-ansi": "^4.0.1", "helmet": "^4.6.0", "http-status-codes": "^2.1.4", "intl-tel-input": "~12.4.0", "json-stringify-safe": "^5.0.1", - "jszip": "^3.6.0", + "jszip": "^3.7.0", "jwt-decode": "^3.1.2", - "libphonenumber-js": "^1.9.20", + "libphonenumber-js": "^1.9.23", "lodash": "^4.17.21", "moment-timezone": "0.5.33", "mongodb-uri": "^0.9.7", - "mongoose": "^5.12.12", + "mongoose": "^5.13.2", "multiparty": ">=4.2.2", - "neverthrow": "^4.2.1", + "neverthrow": "^4.2.2", "ng-infinite-scroll": "^1.3.0", "ng-table": "^3.0.1", "ngclipboard": "^2.0.0", "nocache": "^3.0.1", "node-cache": "^5.1.2", - "nodemailer": "^6.6.2", - "opossum": "^6.1.0", + "nodemailer": "^6.6.3", + "opossum": "^6.2.0", "p-queue": "^6.6.2", "promise-retry": "^2.0.1", "puppeteer-core": "^5.3.1", "selectize": "0.12.6", "slick-carousel": "1.8.1", - "sortablejs": "~1.13.0", + "sortablejs": "~1.14.0", "spark-md5": "^3.0.1", "sqs-consumer": "^5.5.0", "sqs-producer": "^2.1.0", @@ -139,69 +142,69 @@ "toastr": "^2.1.4", "triple-beam": "^1.3.0", "tweetnacl": "^1.0.1", - "twilio": "^3.64.0", + "twilio": "^3.66.1", "ui-select": "^0.19.8", "uid-generator": "^2.0.0", "uuid": "^8.3.2", "validator": "^13.6.0", - "web-streams-polyfill": "^3.0.3", + "web-streams-polyfill": "^3.1.0", "whatwg-fetch": "^3.6.2", "winston": "^3.3.3", "winston-cloudwatch": "^2.5.2", - "zod": "^3.2.0" + "zod": "^3.7.1" }, "devDependencies": { - "@babel/core": "^7.14.6", + "@babel/core": "^7.14.8", "@babel/plugin-transform-runtime": "^7.14.5", - "@babel/preset-env": "^7.14.7", - "@opengovsg/mockpass": "^2.7.4", + "@babel/preset-env": "^7.14.9", + "@opengovsg/mockpass": "^2.7.7", "@types/bcrypt": "^5.0.0", - "@types/bluebird": "^3.5.35", - "@types/busboy": "^0.2.3", - "@types/compression": "^1.7.0", - "@types/convict": "^6.0.2", + "@types/bluebird": "^3.5.36", + "@types/busboy": "^0.2.4", + "@types/compression": "^1.7.1", + "@types/convict": "^6.1.1", "@types/cookie-parser": "^1.4.2", "@types/dedent": "^0.7.0", - "@types/ejs": "^3.0.6", - "@types/express": "^4.17.12", - "@types/express-rate-limit": "^5.1.2", - "@types/express-request-id": "^1.4.1", - "@types/express-session": "^1.17.0", + "@types/ejs": "^3.0.7", + "@types/express": "^4.17.13", + "@types/express-rate-limit": "^5.1.3", + "@types/express-request-id": "^1.4.2", + "@types/express-session": "^1.17.4", "@types/has-ansi": "^3.0.0", "@types/helmet": "4.0.0", "@types/ip": "^1.1.0", - "@types/jest": "^26.0.23", + "@types/jest": "^26.0.24", "@types/json-stringify-safe": "^5.0.0", - "@types/mongodb": "^3.6.18", - "@types/mongodb-uri": "^0.9.0", - "@types/node": "^14.17.4", - "@types/nodemailer": "^6.4.2", - "@types/opossum": "^4.1.1", + "@types/mongodb": "^3.6.20", + "@types/mongodb-uri": "^0.9.1", + "@types/node": "^14.17.9", + "@types/nodemailer": "^6.4.4", + "@types/opossum": "^4.1.2", "@types/promise-retry": "^1.1.3", "@types/puppeteer-core": "^5.4.0", "@types/spark-md5": "^3.0.2", "@types/supertest": "^2.0.10", "@types/triple-beam": "^1.3.2", "@types/uid-generator": "^2.0.2", - "@types/uuid": "^8.3.0", - "@types/validator": "^13.1.4", - "@typescript-eslint/eslint-plugin": "^4.28.0", - "@typescript-eslint/parser": "^4.28.0", + "@types/uuid": "^8.3.1", + "@types/validator": "^13.6.3", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", "auto-changelog": "^2.3.0", "axios-mock-adapter": "^1.19.0", "babel-loader": "^8.2.2", "concurrently": "^6.2.0", "copy-webpack-plugin": "^6.0.2", - "core-js": "^3.15.1", - "coveralls": "^3.1.0", + "core-js": "^3.16.0", + "coveralls": "^3.1.1", "css-loader": "^2.1.1", "csv-parse": "^4.16.0", "env-cmd": "^10.1.0", - "eslint": "^7.29.0", + "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-angular": "^4.0.1", "eslint-plugin-import": "^2.23.4", - "eslint-plugin-jest": "^24.3.6", + "eslint-plugin-jest": "^24.4.0", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-typesafe": "^0.5.2", @@ -209,20 +212,20 @@ "google-fonts-plugin": "4.1.0", "html-loader": "~0.5.5", "htmlhint": "^0.15.1", - "husky": "^6.0.0", + "husky": "^7.0.1", "jest": "^26.6.3", "jest-extended": "^0.11.5", "jest-localstorage-mock": "^2.4.14", "jest-mock-axios": "^4.4.0", - "lint-staged": "^11.0.0", + "lint-staged": "^11.1.1", "maildev": "^1.1.0", "mini-css-extract-plugin": "^0.5.0", "mockdate": "^3.0.5", "mockingoose": "^2.13.2", "mongodb-memory-server-core": "^6.9.6", - "ngrok": "^4.0.1", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "prettier": "^2.3.1", + "ngrok": "^4.1.0", + "optimize-css-assets-webpack-plugin": "^5.0.8", + "prettier": "^2.3.2", "proxyquire": "^2.1.3", "regenerator": "^0.14.4", "rimraf": "^3.0.2", @@ -230,17 +233,17 @@ "stylelint-config-prettier": "^8.0.2", "stylelint-config-standard": "^22.0.0", "stylelint-prettier": "^1.2.0", - "supertest": "^6.1.3", + "supertest": "^6.1.4", "supertest-session": "^4.1.0", "terser-webpack-plugin": "^1.2.3", - "testcafe": "^1.14.2", - "ts-essentials": "^7.0.2", + "testcafe": "^1.15.1", + "ts-essentials": "^7.0.3", "ts-jest": "^26.5.6", "ts-loader": "^7.0.5", - "ts-node": "^10.0.0", - "ts-node-dev": "^1.1.6", - "type-fest": "^1.2.1", - "typescript": "=4.2.4", + "ts-node": "^10.1.0", + "ts-node-dev": "^1.1.8", + "type-fest": "^1.3.0", + "typescript": "^4.3.5", "url-loader": "^1.1.2", "webpack": "^4.46.0", "webpack-cli": "^3.3.12", diff --git a/shared/.eslintrc b/shared/.eslintrc new file mode 100644 index 0000000000..f444594c12 --- /dev/null +++ b/shared/.eslintrc @@ -0,0 +1,20 @@ +{ + "root": true, + "plugins": ["import", "simple-import-sort", "prettier"], + "extends": ["eslint:recommended", "plugin:prettier/recommended"], + "overrides": [ + { + "files": ["*.ts", "*.tsx"], + "extends": ["plugin:@typescript-eslint/recommended"], + "parser": "@typescript-eslint/parser", + "rules": { + "@typescript-eslint/no-unused-vars": "error" + } + } + ], + "env": { "es6": true }, + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module" + } +} diff --git a/src/shared/resources/basic/index.ts b/shared/constants/field/basic.ts similarity index 90% rename from src/shared/resources/basic/index.ts rename to shared/constants/field/basic.ts index ad84dffcc5..9d8cb56467 100644 --- a/src/shared/resources/basic/index.ts +++ b/shared/constants/field/basic.ts @@ -1,13 +1,17 @@ -import { BasicField } from '../../../types' +import { BasicField } from '../../types/field' -interface IBasicFieldType { +type BasicFieldBlock = { + /** Type of field */ name: BasicField + /** Default name of field */ value: string + /** Whether field is to be submittable */ submitted: boolean + /** Whether field is multi-answer */ answerArray: boolean } -export const types: IBasicFieldType[] = [ +export const types: BasicFieldBlock[] = [ { name: BasicField.Section, value: 'Header', diff --git a/src/shared/resources/myinfo/index.ts b/shared/constants/field/myinfo/index.ts similarity index 98% rename from src/shared/resources/myinfo/index.ts rename to shared/constants/field/myinfo/index.ts index 0bc00218e6..1ba99d5d39 100644 --- a/src/shared/resources/myinfo/index.ts +++ b/shared/constants/field/myinfo/index.ts @@ -1,5 +1,4 @@ -import { BasicField, MyInfoAttribute } from '../../../types' - +import { BasicField, MyInfoAttribute } from '../../../types/field' import COUNTRIES from './myinfo-countries' import DIALECTS from './myinfo-dialects' import NATIONALITIES from './myinfo-nationalities' @@ -7,7 +6,8 @@ import OCCUPATIONS from './myinfo-occupations' import RACES from './myinfo-races' type MyInfoVerifiedType = 'SG' | 'PR' | 'F' -interface IMyInfoFieldType { + +type MyInfoFieldBlock = { name: MyInfoAttribute value: string category: string @@ -19,7 +19,7 @@ interface IMyInfoFieldType { ValidationOptions?: Record } -export const types: IMyInfoFieldType[] = [ +export const types: MyInfoFieldBlock[] = [ { name: MyInfoAttribute.Name, value: 'Name', diff --git a/src/shared/resources/myinfo/myinfo-countries.ts b/shared/constants/field/myinfo/myinfo-countries.ts similarity index 100% rename from src/shared/resources/myinfo/myinfo-countries.ts rename to shared/constants/field/myinfo/myinfo-countries.ts diff --git a/src/shared/resources/myinfo/myinfo-dialects.ts b/shared/constants/field/myinfo/myinfo-dialects.ts similarity index 100% rename from src/shared/resources/myinfo/myinfo-dialects.ts rename to shared/constants/field/myinfo/myinfo-dialects.ts diff --git a/src/shared/resources/myinfo/myinfo-nationalities.ts b/shared/constants/field/myinfo/myinfo-nationalities.ts similarity index 100% rename from src/shared/resources/myinfo/myinfo-nationalities.ts rename to shared/constants/field/myinfo/myinfo-nationalities.ts diff --git a/src/shared/resources/myinfo/myinfo-occupations.ts b/shared/constants/field/myinfo/myinfo-occupations.ts similarity index 100% rename from src/shared/resources/myinfo/myinfo-occupations.ts rename to shared/constants/field/myinfo/myinfo-occupations.ts diff --git a/src/shared/resources/myinfo/myinfo-races.ts b/shared/constants/field/myinfo/myinfo-races.ts similarity index 100% rename from src/shared/resources/myinfo/myinfo-races.ts rename to shared/constants/field/myinfo/myinfo-races.ts diff --git a/shared/constants/file.ts b/shared/constants/file.ts new file mode 100644 index 0000000000..133d07286d --- /dev/null +++ b/shared/constants/file.ts @@ -0,0 +1,10 @@ +// Constants relating to files used across the application. + +/** File types that can be uploaded for form image/logo */ +export const VALID_UPLOAD_FILE_TYPES = ['image/jpeg', 'image/png', 'image/gif'] + +export const KB = 1000 +export const MB = 1000 * KB + +// Define max file size as 2MB +export const MAX_UPLOAD_FILE_SIZE = 2 * MB // 2 Million/Mega Bytes, or 2 MB diff --git a/shared/constants/form.ts b/shared/constants/form.ts new file mode 100644 index 0000000000..5d6740c486 --- /dev/null +++ b/shared/constants/form.ts @@ -0,0 +1,46 @@ +const PUBLIC_FORM_FIELDS = [ + 'admin', + 'authType', + 'endPage', + 'esrvcId', + 'form_fields', + 'form_logics', + 'hasCaptcha', + 'startPage', + 'status', + 'title', + '_id', + 'responseMode', +] + +export const EMAIL_PUBLIC_FORM_FIELDS = PUBLIC_FORM_FIELDS +export const STORAGE_PUBLIC_FORM_FIELDS = [ + ...PUBLIC_FORM_FIELDS, + 'publicKey', +] + +const FORM_SETTINGS_FIELDS = [ + 'authType', + 'esrvcId', + 'hasCaptcha', + 'inactiveMessage', + 'status', + 'submissionLimit', + 'title', + 'webhook', +] + +export const EMAIL_FORM_SETTINGS_FIELDS = [ + ...FORM_SETTINGS_FIELDS, + 'emails', +] +export const STORAGE_FORM_SETTINGS_FIELDS = FORM_SETTINGS_FIELDS + +export const ADMIN_FORM_META_FIELDS = [ + 'admin', + 'title', + 'lastModified', + 'status', + '_id', + 'responseMode', +] diff --git a/shared/constants/links.ts b/shared/constants/links.ts new file mode 100644 index 0000000000..53259e9c5c --- /dev/null +++ b/shared/constants/links.ts @@ -0,0 +1 @@ +export const SUPPORT_FORM_LINK = 'https://go.gov.sg/formsg-support' diff --git a/shared/package-lock.json b/shared/package-lock.json new file mode 100644 index 0000000000..f25486a811 --- /dev/null +++ b/shared/package-lock.json @@ -0,0 +1,556 @@ +{ + "name": "shared", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", + "integrity": "sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.28.2", + "@typescript-eslint/scope-manager": "4.28.2", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", + "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2" + } + }, + "@typescript-eslint/types": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.2", + "eslint-visitor-keys": "^2.0.0" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "date-fns": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.22.1.tgz", + "integrity": "sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==" + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "eslint-config-prettier": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "dev": true + }, + "eslint-plugin-prettier": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz", + "integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "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-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jszip": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.0.tgz", + "integrity": "sha512-Y2OlFIzrDOPWUnpU0LORIcDn2xN7rC9yKffFM/7pGhQuhO+SUhfm2trkJ/S5amjFvem0Y+1EALz/MEPkvHXVNw==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "libphonenumber-js": { + "version": "1.9.23", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.23.tgz", + "integrity": "sha512-+qWSwPyJWSV9ukb7Iu21WpWEP7irFWR1ojoYykL2itAfXKj9FjsTjS6PPZoPUOZk+1kxliHjwsilqA1TNeOhuQ==" + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-fest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.1.tgz", + "integrity": "sha512-SbmIRuXhJs8KTneu77Ecylt9zuqL683tuiLYpTRil4H++eIhqCmx6ko6KAFem9dty8sOdnEiX7j4K1nRE628fQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "validator": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.6.0.tgz", + "integrity": "sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "zod": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.5.1.tgz", + "integrity": "sha512-Gg9GTai0iDHowuYM9VNhdFMmesgt44ufzqaE5CPHshpuK5fCzbibdqCnrWuYH6ZmOn/N+BlGmwZtVSijhKmhKw==" + } + } +} diff --git a/shared/package.json b/shared/package.json new file mode 100644 index 0000000000..b01119c7d4 --- /dev/null +++ b/shared/package.json @@ -0,0 +1,21 @@ +{ + "name": "shared", + "version": "1.0.0", + "description": "", + "dependencies": { + "date-fns": "^2.22.1", + "json-stringify-safe": "^5.0.1", + "jszip": "^3.7.0", + "libphonenumber-js": "^1.9.23", + "lodash": "^4.17.21", + "type-fest": "^1.2.1", + "validator": "^13.6.0", + "zod": "^3.5.1" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.28.2", + "@typescript-eslint/parser": "^4.28.2", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^3.4.0" + } +} diff --git a/shared/tsconfig.json b/shared/tsconfig.json new file mode 100644 index 0000000000..3c167ef85c --- /dev/null +++ b/shared/tsconfig.json @@ -0,0 +1,72 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + "declaration": true /* Generates corresponding '.d.ts' file. */, + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + "composite": true /* Enable project compilation */, + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/shared/types/agency.ts b/shared/types/agency.ts new file mode 100644 index 0000000000..912a729f10 --- /dev/null +++ b/shared/types/agency.ts @@ -0,0 +1,32 @@ +import { Opaque } from 'type-fest' +import { z } from 'zod' +import { DateString } from './generic' + +export type AgencyId = Opaque +export const AgencyId = z.string() as unknown as z.Schema + +// Base used for being referenced by schema/model in the backend. +// Note the lack of typing of _id. +export const AgencyBase = z.object({ + _id: z.unknown(), + emailDomain: z.array(z.string()), + fullName: z.string(), + shortName: z.string(), + logo: z.string(), +}) +export type AgencyBase = z.infer + +export const AgencyDto = AgencyBase.extend({ + _id: AgencyId, + created: DateString, + lastModified: DateString, +}) +export type AgencyDto = z.infer + +export const PublicAgencyDto = AgencyDto.pick({ + shortName: true, + fullName: true, + emailDomain: true, + logo: true, +}) +export type PublicAgencyDto = z.infer diff --git a/shared/types/analytics.ts b/shared/types/analytics.ts new file mode 100644 index 0000000000..6538edef52 --- /dev/null +++ b/shared/types/analytics.ts @@ -0,0 +1,5 @@ +export type AnalyticStatsDto = { + userCount: number + formCount: number + submissionCount: number +} diff --git a/shared/types/billing.ts b/shared/types/billing.ts new file mode 100644 index 0000000000..55f227ecc0 --- /dev/null +++ b/shared/types/billing.ts @@ -0,0 +1,37 @@ +import { AgencyDto } from './agency' +import { FormDto } from './form/form' +import { UserDto } from './user' + +/** + * The name `Login` may cause confusion. + * This type relates to the data stored when a form respondent logs in to the + * form via any of the public form auth methods (Singpass, Corppass, MyInfo, + * etc). + */ +export type LoginBase = { + admin: UserDto['_id'] + form: FormDto['_id'] + agency: AgencyDto['_id'] + authType: FormDto['authType'] + // A login must be for a form that has an esrvcId. + esrvcId: NonNullable +} + +export type FormBillingStatistic = { + adminEmail: UserDto['email'] + formName: FormDto['title'] + formId: FormDto['_id'] + authType: FormDto['authType'] + total: number +} + +// yr: The year to get the billing information for +// mth: The month to get the billing information for +// esrvcId: The id of the form +export type BillingQueryDto = { + esrvcId: NonNullable + yr: string + mth: string +} + +export type BillingInfoDto = { loginStats: FormBillingStatistic[] } diff --git a/shared/types/core.ts b/shared/types/core.ts new file mode 100644 index 0000000000..3b7f68d505 --- /dev/null +++ b/shared/types/core.ts @@ -0,0 +1,12 @@ +export interface ErrorDto { + message: string +} + +export interface SuccessMessageDto { + message: string +} + +export interface PrivateFormErrorDto extends ErrorDto { + isPageFound: true + formTitle: string +} diff --git a/shared/types/field/attachmentField.ts b/shared/types/field/attachmentField.ts new file mode 100644 index 0000000000..04497883e9 --- /dev/null +++ b/shared/types/field/attachmentField.ts @@ -0,0 +1,15 @@ +import { BasicField, FieldBase } from './base' + +export enum AttachmentSize { + OneMb = '1', + TwoMb = '2', + ThreeMb = '3', + SevenMb = '7', + TenMb = '10', + TwentyMb = '20', +} + +export interface AttachmentFieldBase extends FieldBase { + fieldType: BasicField.Attachment + attachmentSize: AttachmentSize +} diff --git a/src/types/field/fieldTypes.ts b/shared/types/field/base.ts similarity index 77% rename from src/types/field/fieldTypes.ts rename to shared/types/field/base.ts index e72862f865..0e0224fe0b 100644 --- a/src/types/field/fieldTypes.ts +++ b/shared/types/field/base.ts @@ -48,8 +48,22 @@ export enum MyInfoAttribute { WorkpassExpiryDate = 'workpassexpirydate', } -export enum SPCPFieldTitle { - SpNric = 'SingPass Validated NRIC', - CpUid = 'CorpPass Validated UID', - CpUen = 'CorpPass Validated UEN', +export type AllowMyInfoBase = { + myInfo?: { + attr: MyInfoAttribute + } } +export type VerifiableFieldBase = { + isVerifiable: boolean +} + +export type FieldBase = { + globalId?: string + title: string + description: string + required: boolean + disabled: boolean + fieldType: BasicField +} + +export type MyInfoableFieldBase = FieldBase & AllowMyInfoBase diff --git a/shared/types/field/checkboxField.ts b/shared/types/field/checkboxField.ts new file mode 100644 index 0000000000..e37a844391 --- /dev/null +++ b/shared/types/field/checkboxField.ts @@ -0,0 +1,14 @@ +import { BasicField, FieldBase } from './base' + +export type CheckboxValidationOptions = { + customMax: number | null + customMin: number | null +} + +export interface CheckboxFieldBase extends FieldBase { + fieldType: BasicField.Checkbox + fieldOptions: string[] + othersRadioButton: boolean + ValidationOptions: CheckboxValidationOptions + validateByValue: boolean +} diff --git a/shared/types/field/dateField.ts b/shared/types/field/dateField.ts new file mode 100644 index 0000000000..bfcf56893a --- /dev/null +++ b/shared/types/field/dateField.ts @@ -0,0 +1,19 @@ +import { BasicField, MyInfoableFieldBase } from './base' + +// Enum of date validation options +export enum DateSelectedValidation { + NoPast = 'Disallow past dates', + NoFuture = 'Disallow future dates', + Custom = 'Custom date range', +} + +export type DateValidationOptions = { + customMaxDate: Date | null + customMinDate: Date | null + selectedDateValidation: DateSelectedValidation | null +} + +export interface DateFieldBase extends MyInfoableFieldBase { + fieldType: BasicField.Date + dateValidation: DateValidationOptions +} diff --git a/shared/types/field/decimalField.ts b/shared/types/field/decimalField.ts new file mode 100644 index 0000000000..7f8c17dea5 --- /dev/null +++ b/shared/types/field/decimalField.ts @@ -0,0 +1,12 @@ +import { BasicField, FieldBase } from './base' + +export type DecimalValidationOptions = { + customMax: number | null + customMin: number | null +} + +export interface DecimalFieldBase extends FieldBase { + fieldType: BasicField.Decimal + ValidationOptions: DecimalValidationOptions + validateByValue: boolean +} diff --git a/shared/types/field/dropdownField.ts b/shared/types/field/dropdownField.ts new file mode 100644 index 0000000000..c13675dd31 --- /dev/null +++ b/shared/types/field/dropdownField.ts @@ -0,0 +1,6 @@ +import { BasicField, MyInfoableFieldBase } from './base' + +export interface DropdownFieldBase extends MyInfoableFieldBase { + fieldType: BasicField.Dropdown + fieldOptions: string[] +} diff --git a/shared/types/field/emailField.ts b/shared/types/field/emailField.ts new file mode 100644 index 0000000000..235da15a4c --- /dev/null +++ b/shared/types/field/emailField.ts @@ -0,0 +1,16 @@ +import { BasicField, FieldBase, VerifiableFieldBase } from './base' + +export type AutoReplyOptions = { + hasAutoReply: boolean + autoReplySubject: string + autoReplySender: string + autoReplyMessage: string + includeFormSummary: boolean +} + +export interface EmailFieldBase extends FieldBase, VerifiableFieldBase { + fieldType: BasicField.Email + autoReplyOptions: AutoReplyOptions + hasAllowedEmailDomains: boolean + allowedEmailDomains: string[] +} diff --git a/shared/types/field/homeNoField.ts b/shared/types/field/homeNoField.ts new file mode 100644 index 0000000000..7b6dc3c3c5 --- /dev/null +++ b/shared/types/field/homeNoField.ts @@ -0,0 +1,6 @@ +import { BasicField, MyInfoableFieldBase } from './base' + +export interface HomenoFieldBase extends MyInfoableFieldBase { + fieldType: BasicField.HomeNo + allowIntlNumbers: boolean +} diff --git a/shared/types/field/imageField.ts b/shared/types/field/imageField.ts new file mode 100644 index 0000000000..6474cb6778 --- /dev/null +++ b/shared/types/field/imageField.ts @@ -0,0 +1,9 @@ +import { BasicField, FieldBase } from './base' + +export interface ImageFieldBase extends FieldBase { + fieldType: BasicField.Image + url: string + fileMd5Hash: string + name: string + size: string +} diff --git a/shared/types/field/index.ts b/shared/types/field/index.ts new file mode 100644 index 0000000000..93a7553b42 --- /dev/null +++ b/shared/types/field/index.ts @@ -0,0 +1,80 @@ +import { AttachmentFieldBase } from './attachmentField' +import { CheckboxFieldBase } from './checkboxField' +import { DateFieldBase } from './dateField' +import { DecimalFieldBase } from './decimalField' +import { DropdownFieldBase } from './dropdownField' +import { EmailFieldBase } from './emailField' +import { HomenoFieldBase } from './homeNoField' +import { ImageFieldBase } from './imageField' +import { LongTextFieldBase } from './longTextField' +import { MobileFieldBase } from './mobileField' +import { NricFieldBase } from './nricField' +import { NumberFieldBase } from './numberField' +import { RadioFieldBase } from './radioField' +import { RatingFieldBase } from './ratingField' +import { SectionFieldBase } from './sectionField' +import { ShortTextFieldBase } from './shortTextField' +import { StatementFieldBase } from './statementField' +import { TableFieldBase } from './tableField' +import { UenFieldBase } from './uenField' +import { YesNoFieldBase } from './yesNoField' + +export * from './base' +export * from './attachmentField' +export * from './checkboxField' +export * from './dateField' +export * from './decimalField' +export * from './dropdownField' +export * from './emailField' +export * from './homeNoField' +export * from './imageField' +export * from './longTextField' +export * from './mobileField' +export * from './nricField' +export * from './numberField' +export * from './radioField' +export * from './ratingField' +export * from './sectionField' +export * from './shortTextField' +export * from './statementField' +export * from './tableField' +export * from './uenField' +export * from './yesNoField' + +export * from './utils' + +export type FormField = + | AttachmentFieldBase + | CheckboxFieldBase + | DateFieldBase + | DecimalFieldBase + | DropdownFieldBase + | EmailFieldBase + | HomenoFieldBase + | ImageFieldBase + | LongTextFieldBase + | MobileFieldBase + | NricFieldBase + | NumberFieldBase + | RadioFieldBase + | RatingFieldBase + | SectionFieldBase + | ShortTextFieldBase + | StatementFieldBase + | TableFieldBase + | UenFieldBase + | YesNoFieldBase + +export type FormFieldWithId = FormField & { _id: string } + +export type PossiblyPrefilledFormField = FormFieldWithId & { + fieldValue?: string +} + +/** + * Form field POJO with id + */ +export type FormFieldDto = PossiblyPrefilledFormField | FormFieldWithId + +export type FieldCreateDto = FormField +export type FieldUpdateDto = FormField & { _id: string } diff --git a/shared/types/field/longTextField.ts b/shared/types/field/longTextField.ts new file mode 100644 index 0000000000..3c179fc8a9 --- /dev/null +++ b/shared/types/field/longTextField.ts @@ -0,0 +1,7 @@ +import { BasicField, FieldBase } from './base' +import { TextValidationOptions } from './utils' + +export interface LongTextFieldBase extends FieldBase { + fieldType: BasicField.LongText + ValidationOptions: TextValidationOptions +} diff --git a/shared/types/field/mobileField.ts b/shared/types/field/mobileField.ts new file mode 100644 index 0000000000..5c250ee774 --- /dev/null +++ b/shared/types/field/mobileField.ts @@ -0,0 +1,8 @@ +import { BasicField, MyInfoableFieldBase, VerifiableFieldBase } from './base' + +export interface MobileFieldBase + extends MyInfoableFieldBase, + VerifiableFieldBase { + fieldType: BasicField.Mobile + allowIntlNumbers: boolean +} diff --git a/shared/types/field/nricField.ts b/shared/types/field/nricField.ts new file mode 100644 index 0000000000..e64b98dbdf --- /dev/null +++ b/shared/types/field/nricField.ts @@ -0,0 +1,5 @@ +import { BasicField, FieldBase } from './base' + +export interface NricFieldBase extends FieldBase { + fieldType: BasicField.Nric +} diff --git a/shared/types/field/numberField.ts b/shared/types/field/numberField.ts new file mode 100644 index 0000000000..655e2bc975 --- /dev/null +++ b/shared/types/field/numberField.ts @@ -0,0 +1,17 @@ +import { BasicField, MyInfoableFieldBase } from './base' + +export enum NumberSelectedValidation { + Max = 'Maximum', + Min = 'Minimum', + Exact = 'Exact', +} + +export type NumberValidationOptions = { + customVal: number | null + selectedValidation: NumberSelectedValidation | null +} + +export interface NumberFieldBase extends MyInfoableFieldBase { + fieldType: BasicField.Number + ValidationOptions: NumberValidationOptions +} diff --git a/shared/types/field/radioField.ts b/shared/types/field/radioField.ts new file mode 100644 index 0000000000..a15f21ef9f --- /dev/null +++ b/shared/types/field/radioField.ts @@ -0,0 +1,7 @@ +import { BasicField, FieldBase } from './base' + +export interface RadioFieldBase extends FieldBase { + fieldType: BasicField.Radio + fieldOptions: string[] + othersRadioButton: boolean +} diff --git a/shared/types/field/ratingField.ts b/shared/types/field/ratingField.ts new file mode 100644 index 0000000000..67aaee0d07 --- /dev/null +++ b/shared/types/field/ratingField.ts @@ -0,0 +1,14 @@ +import { BasicField, FieldBase } from './base' + +export enum RatingShape { + Heart = 'Heart', + Star = 'Star', +} + +export interface RatingFieldBase extends FieldBase { + fieldType: BasicField.Rating + ratingOptions: { + steps: number + shape: RatingShape + } +} diff --git a/shared/types/field/sectionField.ts b/shared/types/field/sectionField.ts new file mode 100644 index 0000000000..9b49d9afee --- /dev/null +++ b/shared/types/field/sectionField.ts @@ -0,0 +1,5 @@ +import { BasicField, FieldBase } from './base' + +export interface SectionFieldBase extends FieldBase { + fieldType: BasicField.Section +} diff --git a/shared/types/field/shortTextField.ts b/shared/types/field/shortTextField.ts new file mode 100644 index 0000000000..407504a789 --- /dev/null +++ b/shared/types/field/shortTextField.ts @@ -0,0 +1,8 @@ +import { BasicField, FieldBase, MyInfoableFieldBase } from './base' +import { TextValidationOptions } from './utils' + +export interface ShortTextFieldBase extends MyInfoableFieldBase, FieldBase { + fieldType: BasicField.ShortText + ValidationOptions: TextValidationOptions + allowPrefill?: boolean +} diff --git a/shared/types/field/statementField.ts b/shared/types/field/statementField.ts new file mode 100644 index 0000000000..436171f17d --- /dev/null +++ b/shared/types/field/statementField.ts @@ -0,0 +1,5 @@ +import { BasicField, FieldBase } from './base' + +export interface StatementFieldBase extends FieldBase { + fieldType: BasicField.Statement +} diff --git a/shared/types/field/tableField.ts b/shared/types/field/tableField.ts new file mode 100644 index 0000000000..b712938249 --- /dev/null +++ b/shared/types/field/tableField.ts @@ -0,0 +1,25 @@ +import { FieldBase, BasicField } from './base' +import { DropdownFieldBase } from './dropdownField' +import { ShortTextFieldBase } from './shortTextField' + +// Column types do not have most field base props. +type ColumnBase = Omit & { + title: string + required: boolean +} +export interface ShortTextColumnBase extends ColumnBase { + columnType: BasicField.ShortText +} +export interface DropdownColumnBase extends ColumnBase { + columnType: BasicField.Dropdown +} + +export type Column = ShortTextColumnBase | DropdownColumnBase + +export interface TableFieldBase extends FieldBase { + fieldType: BasicField.Table + minimumRows: number + addMoreRows?: boolean + maximumRows?: number + columns: Column[] +} diff --git a/shared/types/field/uenField.ts b/shared/types/field/uenField.ts new file mode 100644 index 0000000000..52fe579c71 --- /dev/null +++ b/shared/types/field/uenField.ts @@ -0,0 +1,5 @@ +import { BasicField, FieldBase } from './base' + +export interface UenFieldBase extends FieldBase { + fieldType: BasicField.Uen +} diff --git a/shared/types/field/utils/index.ts b/shared/types/field/utils/index.ts new file mode 100644 index 0000000000..e26858a348 --- /dev/null +++ b/shared/types/field/utils/index.ts @@ -0,0 +1 @@ +export * from './textField' diff --git a/shared/types/field/utils/textField.ts b/shared/types/field/utils/textField.ts new file mode 100644 index 0000000000..0206a6bf6d --- /dev/null +++ b/shared/types/field/utils/textField.ts @@ -0,0 +1,15 @@ +/** + * Utility types for fields that extend text field + * (i.e. short and long text field) + */ + +export enum TextSelectedValidation { + Maximum = 'Maximum', + Minimum = 'Minimum', + Exact = 'Exact', +} + +export type TextValidationOptions = { + customVal: number | null + selectedValidation: TextSelectedValidation | null +} diff --git a/shared/types/field/yesNoField.ts b/shared/types/field/yesNoField.ts new file mode 100644 index 0000000000..fc70259bcc --- /dev/null +++ b/shared/types/field/yesNoField.ts @@ -0,0 +1,5 @@ +import { BasicField, FieldBase } from './base' + +export interface YesNoFieldBase extends FieldBase { + fieldType: BasicField.YesNo +} diff --git a/shared/types/form/form.ts b/shared/types/form/form.ts new file mode 100644 index 0000000000..f5422b7559 --- /dev/null +++ b/shared/types/form/form.ts @@ -0,0 +1,223 @@ +import { PublicUserDto, UserDto } from '../user' +import { FormField, FormFieldDto } from '../field' + +import { FormLogic } from './form_logic' +import { FormLogo } from './form_logo' +import { Merge, Opaque, PartialDeep } from 'type-fest' +import { + ADMIN_FORM_META_FIELDS, + EMAIL_FORM_SETTINGS_FIELDS, + EMAIL_PUBLIC_FORM_FIELDS, + STORAGE_FORM_SETTINGS_FIELDS, + STORAGE_PUBLIC_FORM_FIELDS, +} from '../../constants/form' +import { DateString } from '../generic' + +export type FormId = Opaque + +export enum FormColorTheme { + Blue = 'blue', + Red = 'red', + Green = 'green', + Orange = 'orange', + Brown = 'brown', + Grey = 'grey', +} + +export type FormPermission = { + id?: string + email: string + write: boolean +} + +export type FormStartPage = { + paragraph?: string + estTimeTaken?: number + colorTheme: FormColorTheme + logo: FormLogo +} + +export type FormEndPage = { + title: string + paragraph?: string + buttonLink?: string + buttonText: string +} + +export enum FormAuthType { + NIL = 'NIL', + SP = 'SP', + CP = 'CP', + MyInfo = 'MyInfo', + SGID = 'SGID', +} + +export enum FormStatus { + Private = 'PRIVATE', + Public = 'PUBLIC', + Archived = 'ARCHIVED', +} + +export type FormWebhook = { + url: string + isRetryEnabled: boolean +} + +export enum FormResponseMode { + Encrypt = 'encrypt', + Email = 'email', +} + +export interface FormBase { + title: string + admin: UserDto['_id'] + + form_fields: FormField[] + form_logics: FormLogic[] + permissionList: FormPermission[] + + startPage: FormStartPage + endPage: FormEndPage + + hasCaptcha: boolean + authType: FormAuthType + + status: FormStatus + + inactiveMessage: string + submissionLimit: number | null + isListed: boolean + + esrvcId?: string + + msgSrvcName?: string + + webhook: FormWebhook + + responseMode: FormResponseMode +} + +export interface EmailFormBase extends FormBase { + responseMode: FormResponseMode.Email + emails: string[] +} + +export interface StorageFormBase extends FormBase { + responseMode: FormResponseMode.Encrypt + publicKey: string +} + +/** + * Additional props to be added/replaced when tranformed into DTO. + */ +type FormDtoBase = { + _id: FormId + form_fields: FormFieldDto[] + created: DateString + lastModified: DateString +} + +export type StorageFormDto = Merge + +export type EmailFormDto = Merge + +export type FormDto = StorageFormDto | EmailFormDto + +export type AdminFormDto = Merge + +type PublicFormBase = { + admin: PublicUserDto +} + +export type PublicStorageFormDto = Merge< + Pick< + StorageFormDto, + // Arrays like typeof list have numeric index signatures, so their number key + // yields the union of all numerically-indexed properties. + typeof STORAGE_PUBLIC_FORM_FIELDS[number] + >, + PublicFormBase +> + +export type PublicEmailFormDto = Merge< + Pick< + StorageFormDto, + // Arrays like typeof list have numeric index signatures, so their number key + // yields the union of all numerically-indexed properties. + typeof EMAIL_PUBLIC_FORM_FIELDS[number] + >, + PublicFormBase +> + +export type PublicFormDto = PublicStorageFormDto | PublicEmailFormDto + +export type EmailFormSettings = Pick< + EmailFormDto, + typeof EMAIL_FORM_SETTINGS_FIELDS[number] +> +export type StorageFormSettings = Pick< + StorageFormDto, + typeof STORAGE_FORM_SETTINGS_FIELDS[number] +> + +export type FormSettings = EmailFormSettings | StorageFormSettings + +export type SettingsUpdateDto = PartialDeep + +/** + * Misnomer. More of a public form auth session. + */ +export interface SpcpSession { + userName: string + iat?: number // Optional as these are not returned for MyInfo forms + rememberMe?: boolean + exp?: number +} + +export type PublicFormViewDto = { + form: PublicFormDto + spcpSession?: SpcpSession + isIntranetUser?: boolean + myInfoError?: true +} + +export type PreviewFormViewDto = Pick + +export type AdminFormViewDto = { + form: AdminFormDto +} + +export type AdminDashboardFormMetaDto = Pick< + AdminFormDto, + typeof ADMIN_FORM_META_FIELDS[number] +> + +export type DuplicateFormBodyDto = { + title: string +} & ( + | { + responseMode: FormResponseMode.Email + emails: string | string[] + } + | { + responseMode: FormResponseMode.Encrypt + publicKey: string + } +) + +export type CreateEmailFormBodyDto = Pick< + EmailFormDto, + 'emails' | 'responseMode' | 'title' +> +export type CreateStorageFormBodyDto = Pick< + StorageFormDto, + 'publicKey' | 'responseMode' | 'title' +> + +export type CreateFormBodyDto = + | CreateEmailFormBodyDto + | CreateStorageFormBodyDto + +export type EndPageUpdateDto = FormEndPage +export type StartPageUpdateDto = FormStartPage +export type PermissionsUpdateDto = FormPermission[] diff --git a/src/types/api/auth.ts b/shared/types/form/form_auth.ts similarity index 75% rename from src/types/api/auth.ts rename to shared/types/form/form_auth.ts index c08249d4cd..7917d60e34 100644 --- a/src/types/api/auth.ts +++ b/shared/types/form/form_auth.ts @@ -3,3 +3,5 @@ export type PublicFormAuthRedirectDto = { redirectURL: string } export type PublicFormAuthValidateEsrvcIdDto = | { isValid: true } | { isValid: false; errorCode: string | null } + +export type PublicFormAuthLogoutDto = { message: string } diff --git a/shared/types/form/form_feedback.ts b/shared/types/form/form_feedback.ts new file mode 100644 index 0000000000..840e4ca201 --- /dev/null +++ b/shared/types/form/form_feedback.ts @@ -0,0 +1,43 @@ +import { Merge } from 'type-fest' +import { DateString } from '../generic' +import { FormDto } from './form' + +export type SubmitFormFeedbackBodyDto = { + isPreview?: boolean + rating: number + comment?: string +} + +/** + * Typing for individual form feedback + */ +export type FormFeedbackBase = { + rating: number + comment?: string + formId: FormDto['_id'] + created?: Date + lastModified?: Date +} + +// Convert to serialized version. +export type FormFeedbackDto = Merge< + FormFeedbackBase, + { created?: DateString; lastModified?: DateString } +> + +export type ProcessedFeedbackMeta = { + index: number + timestamp: number + rating: number + comment: string + // Note that this date is not a DateString, it is actually "D MMM YYYY" + // format. + date: string + dateShort: string +} + +export type FormFeedbackMetaDto = { + average?: string + count: number + feedback: ProcessedFeedbackMeta[] +} diff --git a/shared/types/form/form_logic.ts b/shared/types/form/form_logic.ts new file mode 100644 index 0000000000..f5caabbd30 --- /dev/null +++ b/shared/types/form/form_logic.ts @@ -0,0 +1,48 @@ +import { FormFieldDto } from '../field' + +export enum LogicConditionState { + Equal = 'is equals to', + Lte = 'is less than or equal to', + Gte = 'is more than or equal to', + Either = 'is either', +} + +export enum LogicType { + ShowFields = 'showFields', + PreventSubmit = 'preventSubmit', +} + +export enum LogicIfValue { + Number = 'number', + SingleSelect = 'single-select', + MultiSelect = 'multi-select', +} + +export type FormCondition = { + field: FormFieldDto['_id'] + state: LogicConditionState + value: string | number | string[] | number[] + ifValueType?: LogicIfValue +} + +export type FormLogicBase = { + logicType: LogicType + conditions: FormCondition[] +} + +export interface ShowFieldLogic extends FormLogicBase { + logicType: LogicType.ShowFields + show: FormFieldDto['_id'][] +} + +export interface PreventSubmitLogic extends FormLogicBase { + logicType: LogicType.PreventSubmit + preventSubmitMessage: string +} + +export type FormLogic = ShowFieldLogic | PreventSubmitLogic + +export type ShowFieldLogicDto = ShowFieldLogic & { _id: string } +export type PreventSubmitLogicDto = PreventSubmitLogic & { _id: string } + +export type LogicDto = FormLogic & { _id: string } diff --git a/shared/types/form/form_logo.ts b/shared/types/form/form_logo.ts new file mode 100644 index 0000000000..d5cd88fbd2 --- /dev/null +++ b/shared/types/form/form_logo.ts @@ -0,0 +1,26 @@ +export enum FormLogoState { + Default = 'DEFAULT', + None = 'NONE', + Custom = 'CUSTOM', +} + +export interface FormLogoBase { + state: FormLogoState +} + +export interface CustomFormLogo extends FormLogoBase { + state: FormLogoState.Custom + fileId: string + fileName: string + fileSizeInBytes: number +} + +export interface NoFormLogo extends FormLogoBase { + state: FormLogoState.None +} + +export interface DefaultFormLogo extends FormLogoBase { + state: FormLogoState.Default +} + +export type FormLogo = CustomFormLogo | NoFormLogo | DefaultFormLogo diff --git a/shared/types/form/index.ts b/shared/types/form/index.ts new file mode 100644 index 0000000000..63b6286f0e --- /dev/null +++ b/shared/types/form/index.ts @@ -0,0 +1,5 @@ +export * from './form' +export * from './form_auth' +export * from './form_feedback' +export * from './form_logic' +export * from './form_logo' diff --git a/shared/types/generic.ts b/shared/types/generic.ts new file mode 100644 index 0000000000..2479645f44 --- /dev/null +++ b/shared/types/generic.ts @@ -0,0 +1,10 @@ +import { Opaque } from 'type-fest' +import { z } from 'zod' +import { isDate, parseISO } from 'date-fns' + +export type DateString = Opaque + +export const DateString = z.custom().refine( + (val) => isDate(parseISO(val)), + (val) => ({ message: `${val} is not a valid date` }), +) diff --git a/shared/types/response.ts b/shared/types/response.ts new file mode 100644 index 0000000000..3aa6719211 --- /dev/null +++ b/shared/types/response.ts @@ -0,0 +1,146 @@ +import { Opaque } from 'type-fest' +import { z } from 'zod' +import { BasicField, MyInfoAttribute } from './field' + +const ResponseBase = z.object({ + myInfo: z.never().optional(), + signature: z.never().optional(), + _id: z.string(), + question: z.string(), +}) +const MyInfoResponseBase = z.object({ + myInfo: z + .object({ + attr: z.nativeEnum(MyInfoAttribute), + }) + .optional(), +}) + +const VerifiableResponseBase = z.object({ + signature: z.string().optional(), +}) + +const SingleAnswerResponse = ResponseBase.extend({ + answer: z.string(), +}) + +const MultiAnswerResponse = ResponseBase.extend({ + answerArray: z.array(z.string()), +}) + +const MyInfoableSingleResponse = SingleAnswerResponse.merge(MyInfoResponseBase) + +export const HeaderResponse = SingleAnswerResponse.extend({ + isHeader: z.literal(true), + fieldType: z.literal(BasicField.Section), +}) +export type HeaderResponse = z.infer + +export const EmailResponse = SingleAnswerResponse.merge( + VerifiableResponseBase, +).extend({ fieldType: z.literal(BasicField.Email) }) +export type EmailResponse = z.infer + +export const MobileResponse = MyInfoableSingleResponse.merge( + VerifiableResponseBase, +).extend({ fieldType: z.literal(BasicField.Mobile) }) +export type MobileResponse = z.infer + +export const HomeNoResponse = MyInfoableSingleResponse.extend({ + fieldType: z.literal(BasicField.HomeNo), +}) +export type HomeNoResponse = z.infer + +export const NumberResponse = MyInfoableSingleResponse.extend({ + fieldType: z.literal(BasicField.Number), +}) +export type NumberResponse = z.infer + +export const DecimalResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Decimal), +}) +export type DecimalResponse = z.infer + +export const ShortTextResponse = MyInfoableSingleResponse.extend({ + fieldType: z.literal(BasicField.ShortText), +}) +export type ShortTextResponse = z.infer + +export const LongTextResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.LongText), +}) +export type LongTextResponse = z.infer + +export const DropdownResponse = MyInfoableSingleResponse.extend({ + fieldType: z.literal(BasicField.Dropdown), +}) +export type DropdownResponse = z.infer + +export const YesNoResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.YesNo), +}) +export type YesNoResponse = z.infer + +export const CheckboxResponse = MultiAnswerResponse.extend({ + fieldType: z.literal(BasicField.Checkbox), +}) +export type CheckboxResponse = z.infer + +export const RadioResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Radio), +}) +export type RadioResponse = z.infer + +export const AttachmentResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Attachment), +}) +export type AttachmentResponse = z.infer + +export const DateResponse = MyInfoableSingleResponse.extend({ + fieldType: z.literal(BasicField.Date), +}) +export type DateResponse = z.infer + +export const RatingResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Rating), +}) +export type RatingResponse = z.infer + +export const NricResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Nric), +}) +export type NricResponse = z.infer + +export type TableRow = Opaque + +export const TableResponse = ResponseBase.extend({ + // Table fields have an array of array of strings. + answerArray: z.array(z.array(z.string())) as unknown as z.Schema, + fieldType: z.literal(BasicField.Table), +}) +export type TableResponse = z.infer + +export const UenResponse = SingleAnswerResponse.extend({ + fieldType: z.literal(BasicField.Uen), +}) +export type UenResponse = z.infer + +export type FieldResponse = + | HeaderResponse + | EmailResponse + | MobileResponse + | HomeNoResponse + | NumberResponse + | DecimalResponse + | ShortTextResponse + | LongTextResponse + | DropdownResponse + | YesNoResponse + | CheckboxResponse + | RadioResponse + | AttachmentResponse + | DateResponse + | RatingResponse + | NricResponse + | TableResponse + | UenResponse diff --git a/shared/types/submission.ts b/shared/types/submission.ts new file mode 100644 index 0000000000..f4fbd8439c --- /dev/null +++ b/shared/types/submission.ts @@ -0,0 +1,124 @@ +import { Opaque, RequireAtLeastOne } from 'type-fest' +import { ErrorDto } from './core' +import { FormFieldDto, MyInfoAttribute } from './field' +import { FormAuthType, FormDto } from './form/form' +import { DateString } from './generic' +import { FieldResponse } from './response' + +export type SubmissionId = Opaque + +export enum SubmissionType { + Email = 'emailSubmission', + Encrypt = 'encryptSubmission', +} + +export type SubmissionBase = { + form: FormDto['_id'] + authType: FormAuthType + myInfoFields?: MyInfoAttribute[] + submissionType: SubmissionType +} + +/** + * Email mode submission typings as stored in the database. + */ +export interface EmailModeSubmissionBase extends SubmissionBase { + submissionType: SubmissionType.Email + recipientEmails: string[] + responseHash: string + responseSalt: string + hasBounced: boolean +} + +export type WebhookResponse = { + webhookUrl: string + signature: string + response: { + status: number + headers: string + data: string + } +} + +/** + * Storage mode submission typings as stored in the database. + */ +export interface StorageModeSubmissionBase extends SubmissionBase { + submissionType: SubmissionType.Encrypt + encryptedContent: string + verifiedContent?: string + attachmentMetadata?: Map + version: number + webhookResponses?: WebhookResponse[] +} + +export type StorageModeSubmissionDto = { + refNo: SubmissionId + submissionTime: string + content: string + verified?: string + attachmentMetadata: Record + version: number +} + +export type StorageModeSubmissionMetadata = { + number: number + refNo: SubmissionId + /** Not a DateString, format is `Do MMM YYYY, h:mm:ss a` */ + submissionTime: string +} + +export type StorageModeSubmissionMetadataList = { + metadata: StorageModeSubmissionMetadata[] + count: number +} + +export type SubmissionResponseDto = { + message: string + submissionId: string +} + +export type SubmissionErrorDto = ErrorDto & { spcpSubmissionFailure?: true } + +export type SubmissionCountQueryDto = + | { + startDate: DateString + endDate: DateString + } + | undefined + +export type FormSubmissionMetadataQueryDto = RequireAtLeastOne< + { + page: number + submissionId: string + }, + 'page' | 'submissionId' +> + +type SubmissionContentBase = { + responses: FieldResponse[] +} + +/** + * Shape of email form submissions + */ +export type EmailModeSubmissionContentDto = SubmissionContentBase + +type StorageModeAttachment = { + encryptedFile?: { + binary: string + nonce: string + submissionPublicKey: string + } +} + +export type StorageModeAttachmentsMap = Record< + FormFieldDto['_id'], + StorageModeAttachment +> + +export type StorageModeSubmissionContentDto = SubmissionContentBase & { + encryptedContent: string + attachments?: StorageModeAttachmentsMap + version: number +} diff --git a/shared/types/user.ts b/shared/types/user.ts new file mode 100644 index 0000000000..3651817782 --- /dev/null +++ b/shared/types/user.ts @@ -0,0 +1,41 @@ +import { z } from 'zod' +import { Opaque } from 'type-fest' + +import { DateString } from './generic' +import { AgencyBase, AgencyDto, PublicAgencyDto } from './agency' + +type UserId = Opaque + +// Base used for being referenced by schema/model in the backend. +// Note the lack of typing of _id. +export const UserBase = z.object({ + email: z.string().email(), + agency: AgencyBase.shape._id, + betaFlags: z + .object({ + sgid: z.boolean().optional(), + }) + .optional(), + created: z.date(), + lastAccessed: z.date().optional(), + updatedAt: z.date(), + contact: z.string().optional(), +}) +export type UserBase = z.infer + +// Convert to serialized versions. +export const UserDto = UserBase.extend({ + _id: z.string() as unknown as z.Schema, + agency: AgencyDto.extend({ + created: DateString, + lastModified: DateString, + }), + created: DateString, + lastAccessed: DateString.optional(), + updatedAt: DateString, +}) +export type UserDto = z.infer + +export type PublicUserDto = { + agency: PublicAgencyDto | AgencyDto['_id'] +} diff --git a/shared/types/utils.ts b/shared/types/utils.ts new file mode 100644 index 0000000000..a950ed3f41 --- /dev/null +++ b/shared/types/utils.ts @@ -0,0 +1,15 @@ +import { DateString } from './generic' + +export type ExtractTypeFromArray = T extends readonly (infer E)[] ? E : T + +/** + * Helper type to transform DTO types back to their serialized types. + * Currently only used to cast DateStrings back to Date types. + * + * This is useful to transform shared DTO types back to their backend types + * for typing express controller return types, relying on implicit + * JSON.parse(JSON.stringify()) conversions between client and server. + */ +export type DeserializeTransform = { + [K in keyof T]: T[K] extends DateString ? Date : T[K] +} diff --git a/src/shared/util/__tests__/file-validation.spec.ts b/shared/utils/__tests__/file-validation.spec.ts similarity index 79% rename from src/shared/util/__tests__/file-validation.spec.ts rename to shared/utils/__tests__/file-validation.spec.ts index 20b51dfed8..1418c81a77 100644 --- a/src/shared/util/__tests__/file-validation.spec.ts +++ b/shared/utils/__tests__/file-validation.spec.ts @@ -1,11 +1,10 @@ import fs from 'fs' -import { FilePlatforms } from 'src/shared/constants' import { getFileExtension, getInvalidFileExtensionsInZip, isInvalidFileExtension, -} from 'src/shared/util/file-validation' +} from '../file-validation' describe('File validation utils', () => { describe('getFileExtension', () => { @@ -52,56 +51,51 @@ describe('File validation utils', () => { }) }) - describe('getInvalidFileExtensionsInZip on server', () => { + // Note that blob version is unable to be tested as Jest is running in a node environment. + describe('getInvalidFileExtensionsInZip with nodebuffer', () => { it('should return empty array when there is only valid files', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync( './tests/unit/backend/resources/onlyvalid.zip', ) - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual([]) }) it('should return invalid extensions when zipped files are all invalid file extensions', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync( './tests/unit/backend/resources/onlyinvalid.zip', ) - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual(['.a', '.abc', '.py']) }) it('should return only invalid extensions when zip has some valid file extensions', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync( './tests/unit/backend/resources/invalidandvalid.zip', ) - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual(['.a', '.oo']) }) it('should exclude repeated invalid extensions', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync( './tests/unit/backend/resources/repeated.zip', ) - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual(['.a']) }) it('should exclude folders', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync('./tests/unit/backend/resources/folder.zip') - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual([]) }) it('should include invalid extensions in nested zip files', async () => { - const fn = getInvalidFileExtensionsInZip(FilePlatforms.Server) const file = fs.readFileSync( './tests/unit/backend/resources/nestedInvalid.zip', ) - const actual = await fn(file) + const actual = await getInvalidFileExtensionsInZip('nodebuffer', file) expect(actual).toEqual(['.a', '.oo']) }) }) diff --git a/src/app/utils/__tests__/stringify-safe.spec.ts b/shared/utils/__tests__/stringify-safe.spec.ts similarity index 95% rename from src/app/utils/__tests__/stringify-safe.spec.ts rename to shared/utils/__tests__/stringify-safe.spec.ts index fba269da57..eb52820877 100644 --- a/src/app/utils/__tests__/stringify-safe.spec.ts +++ b/shared/utils/__tests__/stringify-safe.spec.ts @@ -1,6 +1,6 @@ -import { cloneDeep } from 'lodash' +import cloneDeep from 'lodash/cloneDeep' -import { stringifySafe } from 'src/shared/util/stringify-safe' +import { stringifySafe } from '../stringify-safe' // Tests that the stringifySafe function works as expected, i.e. correctly // deals with circular references and BigInt. diff --git a/src/shared/util/email-domain-validation.ts b/shared/utils/email-domain-validation.ts similarity index 93% rename from src/shared/util/email-domain-validation.ts rename to shared/utils/email-domain-validation.ts index 7f5a1804e0..ddf7eeefca 100644 --- a/src/shared/util/email-domain-validation.ts +++ b/shared/utils/email-domain-validation.ts @@ -1,4 +1,4 @@ -import { isEmpty } from 'lodash' +import isEmpty from 'lodash/isEmpty' import validator from 'validator' export const validateEmailDomains = (emailDomains: string[]): boolean => { diff --git a/src/shared/util/file-validation.ts b/shared/utils/file-validation.ts similarity index 63% rename from src/shared/util/file-validation.ts rename to shared/utils/file-validation.ts index a5ae0e0418..f65fd26a0e 100644 --- a/src/shared/util/file-validation.ts +++ b/shared/utils/file-validation.ts @@ -1,11 +1,8 @@ import JSZip from 'jszip' import flattenDeep from 'lodash/flattenDeep' import uniq from 'lodash/uniq' -import path from 'path' -import { FilePlatforms } from '../constants' - -const validExtensions = [ +const VALID_EXTENSIONS = [ '.asc', '.avi', '.bmp', @@ -76,38 +73,40 @@ const validExtensions = [ /** * Extracts the file extension of a given filename. * - * @param filename - Name of the file - * @return The file extension + * @param filename name of the file to check the extension for + * @return the file extension if it exists, otherwise an empty string. */ -export const getFileExtension = (filename: string) => path.extname(filename) +export const getFileExtension = (filename: string): string => { + const splits = filename.split('.') + if (splits.length < 2) { + return '' + } + return `.${splits[splits.length - 1]}` +} /** - * Checks against the list of validExtensions whether the given - * file extension is valid. + * Checks whether the given file extension is valid against the list of valid + * extensions. * - * @param ext - The file extension - * @return Whether the file extension is invalid + * @param ext the file extension to check + * @return `true` if the file extension is invalid, otherwise `false`. */ -export const isInvalidFileExtension = (ext: string) => - !validExtensions.includes(ext.toLowerCase()) +export const isInvalidFileExtension = (ext: string): boolean => + !VALID_EXTENSIONS.includes(ext.toLowerCase()) /** * Dives into a zip file and recursively checks if it contains * any invalid files. A file is deemed invalid if its file extension * is not valid as checked by isInvalidFileExtension. * - * To use this checker, first call the function and specify the platform. - * Then use the resulting checker function to check zip files. - * - * @param platform - The platform the code is being - * run on - * @return The checker function + * @param dataFormat the format of the file to use in JSZip. Should be `'blob'` for `Blob` file type, and `nodebuffer` for `Buffer` file type. + * @param file the file to check + * @return array of invalid file extensions in given zip file */ export const getInvalidFileExtensionsInZip = ( - platform: FilePlatforms, -): ((file: File | Buffer) => Promise) => { - const dataFormat = platform === FilePlatforms.Browser ? 'blob' : 'nodebuffer' - + dataFormat: 'blob' | 'nodebuffer', + file: Blob | Buffer, +): Promise => { // We wrap this checker into a closure because the data format // needs to be different for frontend vs backend. const checkZipForInvalidFiles = async ( @@ -115,7 +114,7 @@ export const getInvalidFileExtensionsInZip = ( ): Promise => { const zip = await JSZip.loadAsync(file) const invalidFileExtensions: (string | string[] | Promise)[] = [] - zip.forEach((relativePath, fileEntry) => { + zip.forEach((_relativePath, fileEntry) => { if (fileEntry.dir) return const fileExt = getFileExtension(fileEntry.name) if (isInvalidFileExtension(fileExt)) { @@ -131,5 +130,5 @@ export const getInvalidFileExtensionsInZip = ( const results = await Promise.all(invalidFileExtensions) return uniq(flattenDeep(results)) } - return checkZipForInvalidFiles + return checkZipForInvalidFiles(file) } diff --git a/src/shared/util/has-prop.ts b/shared/utils/has-prop.ts similarity index 100% rename from src/shared/util/has-prop.ts rename to shared/utils/has-prop.ts diff --git a/src/shared/util/immutable-array-fns.ts b/shared/utils/immutable-array-fns.ts similarity index 97% rename from src/shared/util/immutable-array-fns.ts rename to shared/utils/immutable-array-fns.ts index f93b437768..43cc792737 100644 --- a/src/shared/util/immutable-array-fns.ts +++ b/shared/utils/immutable-array-fns.ts @@ -2,7 +2,7 @@ * This utility file contains immutable array functions. */ -import { ExtractTypeFromArray } from '../../types/utils' +import { ExtractTypeFromArray } from '../types/utils' /** * Pure function to reorders given array from given `fromIndex` to `toIndex`. diff --git a/src/shared/util/nric-validation.ts b/shared/utils/nric-validation.ts similarity index 100% rename from src/shared/util/nric-validation.ts rename to shared/utils/nric-validation.ts diff --git a/src/shared/util/phone-num-validation.ts b/shared/utils/phone-num-validation.ts similarity index 100% rename from src/shared/util/phone-num-validation.ts rename to shared/utils/phone-num-validation.ts diff --git a/src/shared/util/stringify-safe.ts b/shared/utils/stringify-safe.ts similarity index 92% rename from src/shared/util/stringify-safe.ts rename to shared/utils/stringify-safe.ts index d08ef50bd6..b2eec2afab 100644 --- a/src/shared/util/stringify-safe.ts +++ b/shared/utils/stringify-safe.ts @@ -17,7 +17,7 @@ import stringify from 'json-stringify-safe' * JSON.stringify. * @param obj the object to be stringified */ -export const stringifySafe = (obj: any): string | undefined => { +export const stringifySafe = (obj: unknown): string | undefined => { return stringify(obj, (_key, value) => typeof value === 'bigint' ? value.toString() : value, ) diff --git a/src/shared/util/uen-validation.ts b/shared/utils/uen-validation.ts similarity index 100% rename from src/shared/util/uen-validation.ts rename to shared/utils/uen-validation.ts diff --git a/src/shared/util/url-validation.ts b/shared/utils/url-validation.ts similarity index 100% rename from src/shared/util/url-validation.ts rename to shared/utils/url-validation.ts diff --git a/src/shared/util/verification.ts b/shared/utils/verification.ts similarity index 94% rename from src/shared/util/verification.ts rename to shared/utils/verification.ts index 3f361a96a3..a3467c70ba 100644 --- a/src/shared/util/verification.ts +++ b/shared/utils/verification.ts @@ -1,4 +1,4 @@ -import { BasicField } from '../../types' +import { BasicField } from '../types/field' export const VERIFIED_FIELDTYPES = [BasicField.Email, BasicField.Mobile] export const SALT_ROUNDS = 10 diff --git a/src/shared/util/verified-content.ts b/shared/utils/verified-content.ts similarity index 93% rename from src/shared/util/verified-content.ts rename to shared/utils/verified-content.ts index fc82e4aa06..985cb33dcc 100644 --- a/src/shared/util/verified-content.ts +++ b/shared/utils/verified-content.ts @@ -1,10 +1,12 @@ import values from 'lodash/values' // Shared centralised mapping layer for use in both frontend and backend to get the mapped value. + export enum VerifiedKeys { SpUinFin = 'uinFin', CpUen = 'cpUen', CpUid = 'cpUid', + SgidUinFin = 'sgidUinFin', } /** diff --git a/src/app/config/features/sgid.config.ts b/src/app/config/features/sgid.config.ts new file mode 100644 index 0000000000..f73ac64f1e --- /dev/null +++ b/src/app/config/features/sgid.config.ts @@ -0,0 +1,72 @@ +import convict, { Schema } from 'convict' +import { url } from 'convict-format-with-validator' + +import { ISgidVarsSchema } from '../../../types' + +convict.addFormat(url) + +const HOUR_IN_MILLIS = 1000 * 60 * 60 +const DAY_IN_MILLIS = 24 * HOUR_IN_MILLIS + +export const sgidVarsSchema: Schema = { + endpoint: { + doc: 'The sgID OIDC endpoint', + format: 'url', + default: null, + env: 'SGID_ENDPOINT', + }, + clientId: { + doc: 'The client id registered with sgID', + format: String, + default: null, + env: 'SGID_CLIENT_ID', + }, + clientSecret: { + doc: 'The client secret registered with sgID', + format: String, + default: null, + env: 'SGID_CLIENT_SECRET', + }, + privateKeyPath: { + doc: 'The path to the private key to decrypt payloads from sgID. Also used for JWT signing', + format: String, + default: null, + env: 'SGID_PRIVATE_KEY', + }, + publicKeyPath: { + doc: 'The path to the public key given to sgID. Also used to verify JWTs created by FormSG', + format: String, + default: null, + env: 'SGID_PUBLIC_KEY', + }, + redirectUri: { + doc: 'The callback uri that sgID will pass the authorization code and state to', + format: 'url', + default: null, + env: 'SGID_REDIRECT_URI', + }, + cookieMaxAge: { + doc: 'Max sgID cookie age with remember me unchecked', + format: 'int', + default: 3 * HOUR_IN_MILLIS, + env: 'SGID_COOKIE_MAX_AGE', + }, + cookieMaxAgePreserved: { + doc: 'Max sgID cookie age with remember me checked', + format: 'int', + default: 30 * DAY_IN_MILLIS, + env: 'SGID_COOKIE_MAX_AGE_PRESERVED', + }, + cookieDomain: { + doc: 'Domain name set on cookie that holds the sgID jwt', + format: String, + default: '', + env: 'SGID_COOKIE_DOMAIN', + }, +} + +// Load and validate sgid configuration values +// If environment variables are not present, an error will be thrown +export const sgid = convict(sgidVarsSchema) + .validate({ allowed: 'strict' }) + .getProperties() diff --git a/src/app/config/features/sms.config.ts b/src/app/config/features/sms.config.ts index 10a0804b2c..f0649b58ee 100644 --- a/src/app/config/features/sms.config.ts +++ b/src/app/config/features/sms.config.ts @@ -5,6 +5,7 @@ export interface ISms { twilioApiKey: string twilioApiSecret: string twilioMsgSrvcSid: string + smsVerificationLimit: number } const smsSchema: Schema = { @@ -32,6 +33,13 @@ const smsSchema: Schema = { default: null, env: 'TWILIO_MESSAGING_SERVICE_SID', }, + smsVerificationLimit: { + doc: 'Sms verification limit for an admin', + // Positive int + format: 'nat', + default: 10000, + env: 'SMS_VERIFICATION_LIMIT', + }, } export const smsConfig = convict(smsSchema) diff --git a/src/app/config/features/spcp-myinfo.config.ts b/src/app/config/features/spcp-myinfo.config.ts index 9346b98779..93d63c8fcf 100644 --- a/src/app/config/features/spcp-myinfo.config.ts +++ b/src/app/config/features/spcp-myinfo.config.ts @@ -8,9 +8,11 @@ const DAY_IN_MILLIS = 24 * HOUR_IN_MILLIS type ISpcpConfig = { isSPMaintenance: string isCPMaintenance: string + myInfoBannerContent: string spCookieMaxAge: number spCookieMaxAgePreserved: number spcpCookieDomain: string + oldSpcpCookieDomain: string // TODO (#2329): To remove after old cookies have expired cpCookieMaxAge: number spIdpId: string cpIdpId: string @@ -58,6 +60,12 @@ const spcpMyInfoSchema: Schema = { default: null, env: 'IS_CP_MAINTENANCE', }, + myInfoBannerContent: { + doc: 'If set, displays a banner message on MyInfo forms', + format: '*', + default: null, + env: 'MYINFO_BANNER_CONTENT', + }, spCookieMaxAge: { doc: 'Max SingPass cookie age with remember me unchecked', format: 'int', @@ -76,6 +84,13 @@ const spcpMyInfoSchema: Schema = { default: '', env: 'SPCP_COOKIE_DOMAIN', }, + oldSpcpCookieDomain: { + // TODO (#2329): To remove after old cookies have expired + doc: 'Old domain name set on cookie that holds the SPCP jwt', + format: String, + default: '', + env: 'OLD_SPCP_COOKIE_DOMAIN', + }, cpCookieMaxAge: { doc: 'Max CorpPass cookie age', format: 'int', diff --git a/src/app/config/formsg-sdk.ts b/src/app/config/formsg-sdk.ts index c4916ddb50..cf4ca2766c 100644 --- a/src/app/config/formsg-sdk.ts +++ b/src/app/config/formsg-sdk.ts @@ -1,6 +1,6 @@ import formsgSdkPackage from '@opengovsg/formsg-sdk' -import * as vfnConstants from '../../shared/util/verification' +import * as vfnConstants from '../../../shared/utils/verification' import { verifiedFieldsConfig } from './features/verified-fields.config' import { webhooksAndVerifiedContentConfig } from './features/webhook-verified-content.config' diff --git a/src/app/constants/filesize.ts b/src/app/constants/filesize.ts deleted file mode 100644 index de246ed4c7..0000000000 --- a/src/app/constants/filesize.ts +++ /dev/null @@ -1,2 +0,0 @@ -// 1 megabyte in bytes -export const MB = 1048576 diff --git a/src/app/loaders/express/index.ts b/src/app/loaders/express/index.ts index fe2b264ee1..a70d67626f 100644 --- a/src/app/loaders/express/index.ts +++ b/src/app/loaders/express/index.ts @@ -1,6 +1,5 @@ import compression from 'compression' import express, { Express } from 'express' -import device from 'express-device' import addRequestId from 'express-request-id' import http from 'http' import { Connection } from 'mongoose' @@ -20,6 +19,7 @@ import { FrontendRouter } from '../../modules/frontend/frontend.routes' import { HomeRouter } from '../../modules/home/home.routes' import { MYINFO_ROUTER_PREFIX } from '../../modules/myinfo/myinfo.constants' import { MyInfoRouter } from '../../modules/myinfo/myinfo.routes' +import { SgidRouter } from '../../modules/sgid/sgid.routes' import { CorppassLoginRouter, SingpassLoginRouter, @@ -138,9 +138,6 @@ const loadExpressApp = async (connection: Connection) => { app.use(loggingMiddleware()) - // setup express-device - app.use(device.capture({ parseUserAgent: true })) - // Log intranet usage app.use(IntranetMiddleware.logIntranetUsage) @@ -159,6 +156,8 @@ const loadExpressApp = async (connection: Connection) => { // Registered routes with the Singpass/Corppass servers app.use('/singpass/login', SingpassLoginRouter) app.use('/corppass/login', CorppassLoginRouter) + // Registered routes with sgID + app.use('/sgid', SgidRouter) // Use constant for registered routes with MyInfo servers app.use(MYINFO_ROUTER_PREFIX, MyInfoRouter) app.use(AdminFormsRouter) diff --git a/src/app/loaders/express/locals.ts b/src/app/loaders/express/locals.ts index cf01c5ddd3..f3576b95eb 100644 --- a/src/app/loaders/express/locals.ts +++ b/src/app/loaders/express/locals.ts @@ -18,14 +18,17 @@ const frontendVars = { sentryConfigUrl: sentryConfig.sentryConfigUrl, // Sentry.IO isSPMaintenance: spcpMyInfoConfig.isSPMaintenance, // Singpass maintenance message isCPMaintenance: spcpMyInfoConfig.isCPMaintenance, // Corppass maintenance message + myInfoBannerContent: spcpMyInfoConfig.myInfoBannerContent, // MyInfo maintenance message GATrackingID: googleAnalyticsConfig.GATrackingID, spcpCookieDomain: spcpMyInfoConfig.spcpCookieDomain, // Cookie domain used for removing spcp cookies + oldSpcpCookieDomain: spcpMyInfoConfig.oldSpcpCookieDomain, // Old cookie domain used for backward compatibility. TODO (#2329): Delete env var } const environment = ejs.render( ` // Singpass/Corppass maintenance message var isSPMaintenance = "<%- isSPMaintenance %>" var isCPMaintenance = "<%- isCPMaintenance %>" + var myInfoBannerContent = "<%- myInfoBannerContent %>" var isGeneralMaintenance = "<%- isGeneralMaintenance %>" var isLoginBanner = "<%- isLoginBanner %>" var siteBannerContent = "<%- siteBannerContent %>" @@ -42,6 +45,8 @@ const environment = ejs.render( var formsgSdkMode = "<%= formsgSdkMode%>" // SPCP Cookie var spcpCookieDomain = "<%= spcpCookieDomain%>" + // Old SPCP Cookie + var oldSpcpCookieDomain = "<%= oldSpcpCookieDomain%>" `, frontendVars, ) diff --git a/src/app/models/__tests__/agency.server.model.spec.ts b/src/app/models/__tests__/agency.server.model.spec.ts index 40a7a2bf1d..7d557e6214 100644 --- a/src/app/models/__tests__/agency.server.model.spec.ts +++ b/src/app/models/__tests__/agency.server.model.spec.ts @@ -1,9 +1,8 @@ import { pick } from 'lodash' import mongoose from 'mongoose' +import { PublicAgencyDto } from 'shared/types/agency' -import getAgencyModel, { - AGENCY_PUBLIC_FIELDS, -} from 'src/app/models/agency.server.model' +import getAgencyModel from 'src/app/models/agency.server.model' import dbHandler from 'tests/unit/backend/helpers/jest-db' @@ -32,7 +31,7 @@ describe('agency.server.model', () => { const actual = agency.getPublicView() // Assert - expect(actual).toEqual(pick(agency, AGENCY_PUBLIC_FIELDS)) + expect(actual).toEqual(pick(agency, Object.keys(PublicAgencyDto.shape))) }) }) }) diff --git a/src/app/models/__tests__/form.server.model.spec.ts b/src/app/models/__tests__/form.server.model.spec.ts index 5eb7a8bae1..e6d4b118d5 100644 --- a/src/app/models/__tests__/form.server.model.spec.ts +++ b/src/app/models/__tests__/form.server.model.spec.ts @@ -2,13 +2,17 @@ import { ObjectId } from 'bson-ext' import { cloneDeep, map, merge, omit, orderBy, pick } from 'lodash' import mongoose, { Types } from 'mongoose' +import { + EMAIL_PUBLIC_FORM_FIELDS, + STORAGE_PUBLIC_FORM_FIELDS, +} from 'shared/constants/form' import getFormModel, { - FORM_PUBLIC_FIELDS, getEmailFormModel, getEncryptedFormModel, } from 'src/app/models/form.server.model' import { + AuthType, BasicField, EndPage, FormFieldWithId, @@ -117,6 +121,34 @@ describe('Form Model', () => { expect(actualSavedObject).toEqual(expectedObject) }) + it('should create and save successfully with valid esrvcId', async () => { + // Arrange + const validEsrvcId = 'validEsrvcId' + const validFormParams = merge({}, MOCK_FORM_PARAMS, { + esrvcId: validEsrvcId, + }) + + // Act + const validForm = new Form(validFormParams) + const saved = await validForm.save() + + // Assert + // All fields should exist + // Object Id should be defined when successfully saved to MongoDB. + expect(saved._id).toBeDefined() + expect(saved.created).toBeInstanceOf(Date) + expect(saved.lastModified).toBeInstanceOf(Date) + // Retrieve object and compare to params, remove indeterministic keys + const actualSavedObject = omit(saved.toObject(), [ + '_id', + 'created', + 'lastModified', + '__v', + ]) + const expectedObject = merge({}, FORM_DEFAULTS, validFormParams) + expect(actualSavedObject).toEqual(expectedObject) + }) + it('should save successfully, but not save fields that is not defined in the schema', async () => { // Arrange const formParamsWithExtra = merge({}, MOCK_FORM_PARAMS, { @@ -147,6 +179,56 @@ describe('Form Model', () => { expect(Object.keys(saved)).not.toContain('extra') }) + it('should create and save successfully with form_logics that reference nonexistent form_fields', async () => { + // Arrange + const FORM_LOGICS = { + form_logics: [ + { + conditions: [ + { + _id: '', + field: new ObjectId(), + state: 'is equals to', + value: '', + ifValueType: 'number', + }, + ], + logicType: 'preventSubmit', + preventSubmitMessage: '', + }, + ], + } + const formParamsWithLogic = merge({}, MOCK_FORM_PARAMS, FORM_LOGICS) + + // Act + const validForm = new Form(formParamsWithLogic) + const saved = await validForm.save() + + // Assert + // All fields should exist + // Object Id should be defined when successfully saved to MongoDB. + expect(saved._id).toBeDefined() + expect(saved.created).toBeInstanceOf(Date) + expect(saved.lastModified).toBeInstanceOf(Date) + // Retrieve object and compare to params, remove indeterministic keys + const actualSavedObject = omit(saved.toObject(), [ + '_id', + 'created', + 'lastModified', + '__v', + ]) + actualSavedObject.form_logics = actualSavedObject.form_logics?.map( + (logic) => omit(logic, '_id'), + ) + const expectedObject = merge( + {}, + FORM_DEFAULTS, + MOCK_FORM_PARAMS, + FORM_LOGICS, + ) + expect(actualSavedObject).toEqual(expectedObject) + }) + it('should create and save successfully with valid permissionList emails', async () => { // Arrange // permissionList has email with valid domain @@ -290,6 +372,22 @@ describe('Form Model', () => { mongoose.Error.ValidationError, ) }) + + it('should reject when esrvcId id has whitespace', async () => { + // Arrange + const whitespaceEsrvcId = 'whitespace\tesrvcId' + const paramsWithWhitespaceEsrvcId = merge({}, MOCK_FORM_PARAMS, { + esrvcId: whitespaceEsrvcId, + }) + + // Act + const invalidForm = new Form(paramsWithWhitespaceEsrvcId) + + // Assert + await expect(invalidForm.save()).rejects.toThrowError( + 'Form validation failed: esrvcId: e-service ID must not contain whitespace', + ) + }) }) describe('Encrypted form schema', () => { @@ -515,6 +613,32 @@ describe('Form Model', () => { mongoose.Error.ValidationError, ) }) + + it('should set authType to NIL when given authType is MyInfo', async () => { + // Arrange + const malformedParams = merge({}, MOCK_ENCRYPTED_FORM_PARAMS, { + authType: AuthType.MyInfo, + }) + + // Act + const invalidForm = await EncryptedForm.create(malformedParams) + + // Assert + await expect(invalidForm.authType).toBe(AuthType.NIL) + }) + + it('should set authType to NIL when given authType is SGID', async () => { + // Arrange + const malformedParams = merge({}, MOCK_ENCRYPTED_FORM_PARAMS, { + authType: AuthType.SGID, + }) + + // Act + const invalidForm = await EncryptedForm.create(malformedParams) + + // Assert + await expect(invalidForm.authType).toBe(AuthType.NIL) + }) }) describe('Email form schema', () => { @@ -1857,7 +1981,7 @@ describe('Form Model', () => { const actual = emailForm.getPublicView() // Assert - expect(actual).toEqual(pick(emailForm, FORM_PUBLIC_FIELDS)) + expect(actual).toEqual(pick(emailForm, EMAIL_PUBLIC_FORM_FIELDS)) // Admin should be plain admin id since form is not populated. expect(actual.admin).toBeInstanceOf(ObjectId) }) @@ -1881,7 +2005,7 @@ describe('Form Model', () => { expect(JSON.stringify(actual)).toEqual( JSON.stringify({ - ...pick(populatedEmailForm, FORM_PUBLIC_FIELDS), + ...pick(populatedEmailForm, STORAGE_PUBLIC_FORM_FIELDS), // Admin should only contain public view of agency since agency is populated. admin: { agency: expectedPublicAgencyView, @@ -1903,7 +2027,7 @@ describe('Form Model', () => { const actual = encryptForm.getPublicView() // Assert - expect(actual).toEqual(pick(encryptForm, FORM_PUBLIC_FIELDS)) + expect(actual).toEqual(pick(encryptForm, STORAGE_PUBLIC_FORM_FIELDS)) // Admin should be plain admin id since form is not populated. expect(actual.admin).toBeInstanceOf(ObjectId) }) @@ -1927,7 +2051,7 @@ describe('Form Model', () => { expect(JSON.stringify(actual)).toEqual( JSON.stringify({ - ...pick(populatedEncryptForm, FORM_PUBLIC_FIELDS), + ...pick(populatedEncryptForm, STORAGE_PUBLIC_FORM_FIELDS), // Admin should only contain public view of agency since agency is populated. admin: { agency: expectedPublicAgencyView, diff --git a/src/app/models/__tests__/login.server.model.spec.ts b/src/app/models/__tests__/login.server.model.spec.ts index 1c625b1d2f..9fe734f605 100644 --- a/src/app/models/__tests__/login.server.model.spec.ts +++ b/src/app/models/__tests__/login.server.model.spec.ts @@ -8,7 +8,7 @@ import getLoginModel from 'src/app/models/login.server.model' import { AuthType, IFormSchema, - ILogin, + ILoginSchema, IPopulatedForm, IUserSchema, } from 'src/types' @@ -23,7 +23,7 @@ describe('login.server.model', () => { afterAll(async () => await dbHandler.closeDatabase()) describe('Schema', () => { - const DEFAULT_PARAMS: ILogin = { + const DEFAULT_PARAMS: mongoose.LeanDocument = { admin: new ObjectId(), agency: new ObjectId(), authType: AuthType.SP, @@ -104,19 +104,6 @@ describe('login.server.model', () => { mongoose.Error.ValidationError, ) }) - - it('should throw validation error when esrvcId param is invalid format', async () => { - // Act - const actualPromise = LoginModel.create({ - ...DEFAULT_PARAMS, - esrvcId: 'id with spaces', - }) - - // Assert - await expect(actualPromise).rejects.toThrowError( - 'e-service ID must be alphanumeric, dashes are allowed', - ) - }) }) describe('Statics', () => { @@ -163,6 +150,7 @@ describe('login.server.model', () => { it('should reject when the form does not contain an authType', async () => { await expect( + // @ts-ignore LoginModel.addLoginFromForm(omit(fullForm, 'authType')), ).rejects.toThrow('Form does not contain authType or e-service ID') }) @@ -175,7 +163,7 @@ describe('login.server.model', () => { const FUTURE_MOMENT = CURR_MOMENT.clone().add(2, 'years') const FUTURE_DATE = FUTURE_MOMENT.toDate() - let mockLoginDocuments: ILogin[] + let mockLoginDocuments: ILoginSchema[] let testUser: IUserSchema let testForm: IFormSchema @@ -219,7 +207,7 @@ describe('login.server.model', () => { esrvcId: VALID_ESRVC_ID, created: FUTURE_DATE, }, - ] + ] as ILoginSchema[] await LoginModel.insertMany(mockLoginDocuments) testUser = user diff --git a/src/app/models/agency.server.model.ts b/src/app/models/agency.server.model.ts index 0930252b24..47532c7002 100644 --- a/src/app/models/agency.server.model.ts +++ b/src/app/models/agency.server.model.ts @@ -1,7 +1,13 @@ import { pick } from 'lodash' import { Mongoose, Schema } from 'mongoose' -import { IAgencyModel, IAgencySchema, PublicAgency } from '../../types' +import { PublicAgencyDto } from '../../../shared/types/agency' +import { + AgencyInstanceMethods, + IAgencyDocument, + IAgencyModel, + PublicAgency, +} from '../../types' export const AGENCY_SCHEMA_ID = 'Agency' @@ -13,7 +19,12 @@ export const AGENCY_PUBLIC_FIELDS = [ 'logo', ] -const AgencySchema = new Schema( +const AgencySchema = new Schema< + IAgencyDocument, + IAgencyModel, + undefined, + AgencyInstanceMethods +>( { shortName: { type: String, @@ -51,11 +62,12 @@ const AgencySchema = new Schema( // Methods AgencySchema.methods.getPublicView = function (): PublicAgency { - return pick(this, AGENCY_PUBLIC_FIELDS) as PublicAgency + return pick(this, Object.keys(PublicAgencyDto.shape)) as PublicAgency } -const compileAgencyModel = (db: Mongoose): IAgencyModel => - db.model(AGENCY_SCHEMA_ID, AgencySchema) +const compileAgencyModel = (db: Mongoose): IAgencyModel => { + return db.model(AGENCY_SCHEMA_ID, AgencySchema) +} /** * Retrieves the Agency model on the given Mongoose instance. If the model is diff --git a/src/app/models/field/__tests__/emailField.spec.ts b/src/app/models/field/__tests__/emailField.spec.ts new file mode 100644 index 0000000000..58f7fd65a7 --- /dev/null +++ b/src/app/models/field/__tests__/emailField.spec.ts @@ -0,0 +1,105 @@ +import merge from 'lodash/merge' +import { Model, Schema } from 'mongoose' + +import { IEmailField, IEmailFieldSchema, ResponseMode } from 'src/types' + +import dbHandler from 'tests/unit/backend/helpers/jest-db' + +import createEmailFieldSchema from '../emailField' + +describe('models.fields.emailField', () => { + // Required as the field validator has a this.parent() check for response mode. + let MockParent: Model<{ + responseMode: ResponseMode + field: IEmailFieldSchema + }> + + const EMAIL_FIELD_DEFAULTS: Partial = { + autoReplyOptions: { + hasAutoReply: true, + autoReplySubject: '', + autoReplySender: '', + autoReplyMessage: '', + includeFormSummary: false, + }, + isVerifiable: false, + hasAllowedEmailDomains: false, + allowedEmailDomains: [], + } + + beforeAll(async () => { + const db = await dbHandler.connect() + const emailFieldSchema = createEmailFieldSchema() + MockParent = db.model( + 'mockParent', + new Schema({ + responseMode: { + type: String, + enum: Object.values(ResponseMode), + }, + field: emailFieldSchema, + }), + ) + }) + beforeEach(async () => await dbHandler.clearDatabase()) + afterAll(async () => await dbHandler.closeDatabase()) + + it('should set includeFormSummary to false on ResponseMode.Encrypt forms', async () => { + // Arrange + const mockEmailField = { + autoReplyOptions: { + hasAutoReply: true, + autoReplySubject: 'some subject', + autoReplySender: 'some sender', + autoReplyMessage: 'This is a test message', + // Set includeFormSummary to true. + includeFormSummary: true, + }, + } + // Act + const actual = await MockParent.create({ + responseMode: ResponseMode.Encrypt, + field: mockEmailField, + }) + + // Assert + const expected = merge(EMAIL_FIELD_DEFAULTS, mockEmailField, { + _id: expect.anything(), + autoReplyOptions: { + // Regardless, should be false since ResponseMode is Encrypt. + includeFormSummary: false, + }, + }) + expect(actual.field.toObject()).toEqual(expected) + }) + + it('should set includeFormSummary to given value on ResponseMode.Email forms', async () => { + // Arrange + const mockEmailField = { + autoReplyOptions: { + hasAutoReply: true, + autoReplySubject: 'some subject', + autoReplySender: 'some sender', + autoReplyMessage: 'This is a test message', + // Set includeFormSummary to true. + includeFormSummary: true, + }, + } + // Act + const actual = await MockParent.create({ + responseMode: ResponseMode.Email, + field: mockEmailField, + }) + + // Assert + const expected = merge(EMAIL_FIELD_DEFAULTS, mockEmailField, { + _id: expect.anything(), + autoReplyOptions: { + // Should be initial value (true) + // Do not really need to declare here, but here just to be explicit. + includeFormSummary: true, + }, + }) + expect(actual.field.toObject()).toEqual(expected) + }) +}) diff --git a/src/app/models/field/common/textValidationOptionsSchema.ts b/src/app/models/field/common/textValidationOptionsSchema.ts index 582da4d87c..b4a144e4cc 100644 --- a/src/app/models/field/common/textValidationOptionsSchema.ts +++ b/src/app/models/field/common/textValidationOptionsSchema.ts @@ -1,7 +1,9 @@ import { Schema } from 'mongoose' -import { TextSelectedValidation } from '../../../../types/field/baseField' -import { TextValidationOptions } from '../../../../types/field/utils/textField' +import { + TextSelectedValidation, + TextValidationOptions, +} from '../../../../types/field' import { WithCustomMinMax } from '../../../../types/field/utils/virtuals' export const TextValidationOptionsSchema = new Schema< diff --git a/src/app/models/field/dateField.ts b/src/app/models/field/dateField.ts index be2e1ccf40..e7c3716093 100644 --- a/src/app/models/field/dateField.ts +++ b/src/app/models/field/dateField.ts @@ -1,7 +1,6 @@ import { Schema } from 'mongoose' -import { DateSelectedValidation } from '../../../shared/constants' -import { IDateFieldSchema } from '../../../types' +import { DateSelectedValidation, IDateFieldSchema } from '../../../types' import { MyInfoSchema } from './baseField' diff --git a/src/app/models/field/emailField.ts b/src/app/models/field/emailField.ts index 3913ca6f33..5c081a4f06 100644 --- a/src/app/models/field/emailField.ts +++ b/src/app/models/field/emailField.ts @@ -1,6 +1,6 @@ import { Schema } from 'mongoose' -import { validateEmailDomains } from '../../../shared/util/email-domain-validation' +import { validateEmailDomains } from '../../../../shared/utils/email-domain-validation' import { IEmailFieldSchema, ResponseMode } from '../../../types' const createEmailFieldSchema = (): Schema => { @@ -29,19 +29,9 @@ const createEmailFieldSchema = (): Schema => { includeFormSummary: { type: Boolean, default: false, - validate: { - validator: function (this: IEmailFieldSchema, v: boolean) { - // always ok to set to false - return ( - !v || - // either true or false is okay if not in storage mode - this.parent().responseMode !== ResponseMode.Encrypt || - // in storage mode, we can ignore this field if email confirmation is not enabled anyway - !this.autoReplyOptions.hasAutoReply - ) - }, - message: - 'PDF response summaries are not allowed for email confirmations in storage mode forms', + set: function (this: IEmailFieldSchema, v: boolean) { + // Set to false if encrypt mode regardless of initial value. + return this.parent().responseMode === ResponseMode.Encrypt ? false : v }, }, }, diff --git a/src/app/models/form.server.model.ts b/src/app/models/form.server.model.ts index 7e6a87b00d..1a40818e77 100644 --- a/src/app/models/form.server.model.ts +++ b/src/app/models/form.server.model.ts @@ -1,4 +1,4 @@ -import BSON from 'bson-ext' +import BSON, { ObjectId } from 'bson-ext' import { compact, omit, pick, uniq } from 'lodash' import mongoose, { Mongoose, @@ -9,16 +9,26 @@ import mongoose, { } from 'mongoose' import validator from 'validator' -import { reorder } from '../../shared/util/immutable-array-fns' +import { MB } from '../../../shared/constants/file' +import { + ADMIN_FORM_META_FIELDS, + EMAIL_FORM_SETTINGS_FIELDS, + EMAIL_PUBLIC_FORM_FIELDS, + STORAGE_FORM_SETTINGS_FIELDS, + STORAGE_PUBLIC_FORM_FIELDS, +} from '../../../shared/constants/form' +import { reorder } from '../../../shared/utils/immutable-array-fns' +import { getApplicableIfStates } from '../../shared/util/logic' import { AuthType, BasicField, Colors, + EmailFormSettings, EndPage, FormField, FormFieldWithId, + FormLogicSchema, FormLogoState, - FormMetaView, FormOtpData, FormSettings, IEmailFormModel, @@ -29,19 +39,21 @@ import { IFormDocument, IFormModel, IFormSchema, + ILogicSchema, IPopulatedForm, + LogicConditionState, LogicDto, LogicType, Permission, PickDuplicateForm, PublicForm, - PublicFormValues, ResponseMode, StartPage, Status, + StorageFormSettings, } from '../../types' +import { AdminDashboardFormMetaDto } from '../../types/api/form' import { IPopulatedUser, IUserSchema } from '../../types/user' -import { MB } from '../constants/filesize' import { OverrideProps } from '../modules/form/admin-form/admin-form.types' import { getFormFieldById, transformEmails } from '../modules/form/form.utils' import { validateWebhookUrl } from '../modules/webhook/webhook.validation' @@ -79,35 +91,6 @@ import getUserModel from './user.server.model' export const FORM_SCHEMA_ID = 'Form' -// Exported for testing. -export const FORM_PUBLIC_FIELDS: (keyof PublicFormValues)[] = [ - 'admin', - 'authType', - 'endPage', - 'esrvcId', - 'form_fields', - 'form_logics', - 'hasCaptcha', - 'publicKey', - 'startPage', - 'status', - 'title', - '_id', - 'responseMode', -] - -export const FORM_SETTING_FIELDS: (keyof FormSettings)[] = [ - 'authType', - 'emails', - 'esrvcId', - 'hasCaptcha', - 'inactiveMessage', - 'status', - 'submissionLimit', - 'title', - 'webhook', -] - const bson = new BSON([ BSON.Binary, BSON.Code, @@ -208,7 +191,67 @@ const compileFormModel = (db: Mongoose): IFormModel => { 'Check that your form is MyInfo-authenticated, is an email mode form and has 30 or fewer MyInfo fields.', }, }, - form_logics: [LogicSchema], + form_logics: { + type: [LogicSchema], + validate: { + validator(this: IFormSchema, v: ILogicSchema[]) { + /** + * A validatable condition is incomplete if there is a possibility + * that its fieldType is null, which is a sign that a condition's + * field property references a non-existent form_field. + */ + type IncompleteValidatableCondition = { + state: LogicConditionState + fieldType?: BasicField + } + + /** + * A condition object is said to be validatable if it contains the two + * necessary for validation: fieldType and state + */ + type ValidatableCondition = IncompleteValidatableCondition & { + fieldType: BasicField + } + + const isConditionReferencesExistingField = ( + condition: IncompleteValidatableCondition, + ): condition is ValidatableCondition => !!condition.fieldType + + const conditions = v.flatMap((logic) => { + return logic.conditions.map( + (condition) => { + const { + field, + state, + }: { field: ObjectId | string; state: LogicConditionState } = + condition + return { + state, + fieldType: this.form_fields?.find( + (f: IFieldSchema) => String(f._id) === String(field), + )?.fieldType, + } + }, + ) + }) + + return conditions.every((condition) => { + /** + * Form fields can get deleted by form admins, which causes logic + * conditions to reference invalid fields. Here we bypass validation + * and allow these conditions to be saved, so we don't make life + * difficult for form admins. + */ + if (!isConditionReferencesExistingField(condition)) return true + + const { fieldType, state } = condition + const applicableIfStates = getApplicableIfStates(fieldType) + return applicableIfStates.includes(state) + }) + }, + message: 'Form logic condition validation failed.', + }, + }, admin: { type: Schema.Types.ObjectId, @@ -295,12 +338,19 @@ const compileFormModel = (db: Mongoose): IFormModel => { // Do not allow authType to be changed if form is published if (this.authType !== v && this.status === Status.Public) { return this.authType + // Singpass/Corppass authentication is available for both email + // and storage mode + // Important - this case must come before the MyInfo/SGID + storage + // mode case, or else we may accidentally set Singpass/Corppass storage + // mode forms to AuthType.NIL + } else if ([AuthType.SP, AuthType.CP].includes(v)) { + return v } else if ( this.responseMode === ResponseMode.Encrypt && - v === AuthType.MyInfo + // SGID and MyInfo are not available for storage mode + (v === AuthType.MyInfo || v === AuthType.SGID) ) { - // Do not allow storage mode to have MyInfo authentication - return this.authType + return AuthType.NIL } else { return v } @@ -340,10 +390,7 @@ const compileFormModel = (db: Mongoose): IFormModel => { esrvcId: { type: String, required: false, - validate: [ - /^([a-zA-Z0-9-]){1,25}$/i, - 'e-service ID must be alphanumeric, dashes are allowed', - ], + validate: [/^\S*$/i, 'e-service ID must not contain whitespace'], }, webhook: { @@ -441,16 +488,6 @@ const compileFormModel = (db: Mongoose): IFormModel => { FormLogicPath.discriminator(LogicType.PreventSubmit, PreventSubmitLogicSchema) // Methods - FormSchema.methods.getDashboardView = function (admin: IPopulatedUser) { - return { - _id: this._id, - title: this.title, - status: this.status, - lastModified: this.lastModified, - responseMode: this.responseMode, - admin, - } - } // Method to return myInfo attributes FormSchema.methods.getUniqueMyInfoAttrs = function () { @@ -479,21 +516,6 @@ const compileFormModel = (db: Mongoose): IFormModel => { return { ...newForm, ...overrideProps } } - FormSchema.methods.getPublicView = function (): PublicForm { - const basePublicView = pick(this, FORM_PUBLIC_FIELDS) as PublicFormValues - - // Return non-populated public fields of form if not populated. - if (!this.populated('admin')) { - return basePublicView - } - - // Populated, return public view with user's public view. - return { - ...basePublicView, - admin: (this.admin as IUserSchema).getPublicView(), - } - } - // Archives form. FormSchema.methods.archive = function () { // Return instantly when form is already archived. @@ -507,8 +529,44 @@ const compileFormModel = (db: Mongoose): IFormModel => { const FormDocumentSchema = FormSchema as unknown as Schema + FormDocumentSchema.methods.getDashboardView = function ( + admin: IPopulatedUser, + ) { + return { + _id: this._id, + title: this.title, + status: this.status, + lastModified: this.lastModified, + responseMode: this.responseMode, + admin, + } + } + FormDocumentSchema.methods.getSettings = function (): FormSettings { - return pick(this, FORM_SETTING_FIELDS) + const formSettings = + this.responseMode === ResponseMode.Encrypt + ? (pick(this, STORAGE_FORM_SETTINGS_FIELDS) as StorageFormSettings) + : (pick(this, EMAIL_FORM_SETTINGS_FIELDS) as EmailFormSettings) + + return formSettings + } + + FormDocumentSchema.methods.getPublicView = function (): PublicForm { + const basePublicView = + this.responseMode === ResponseMode.Encrypt + ? (pick(this, STORAGE_PUBLIC_FORM_FIELDS) as PublicForm) + : (pick(this, EMAIL_PUBLIC_FORM_FIELDS) as PublicForm) + + // Return non-populated public fields of form if not populated. + if (!this.populated('admin')) { + return basePublicView + } + + // Populated, return public view with user's public view. + return { + ...basePublicView, + admin: (this.admin as IUserSchema).getPublicView(), + } } // Transfer ownership of the form to another user @@ -639,10 +697,10 @@ const compileFormModel = (db: Mongoose): IFormModel => { return form.save() } - FormSchema.statics.getMetaByUserIdOrEmail = async function ( + FormDocumentSchema.statics.getMetaByUserIdOrEmail = async function ( userId: IUserSchema['_id'], userEmail: IUserSchema['email'], - ): Promise { + ): Promise { return ( this.find() // List forms when either the user is an admin or collaborator. @@ -655,7 +713,7 @@ const compileFormModel = (db: Mongoose): IFormModel => { // selection is made for explicitness. // `_id` is also returned regardless and selection is made for // explicitness. - .select('_id title admin lastModified status responseMode') + .select(ADMIN_FORM_META_FIELDS.join(' ')) .sort('-lastModified') .populate({ path: 'admin', @@ -690,14 +748,13 @@ const compileFormModel = (db: Mongoose): IFormModel => { formId: string, createLogicBody: LogicDto, ): Promise { - return this.findByIdAndUpdate( - formId, - { $push: { form_logics: createLogicBody } }, - { - new: true, - runValidators: true, - }, - ).exec() + const form = await this.findById(formId).exec() + if (!form?.form_logics) return null + const newLogic = ( + form.form_logics as Types.DocumentArray + ).create(createLogicBody) + form.form_logics.push(newLogic) + return form.save() } // Deletes specified form field by id. @@ -718,17 +775,15 @@ const compileFormModel = (db: Mongoose): IFormModel => { logicId: string, updatedLogic: LogicDto, ): Promise { - return this.findByIdAndUpdate( - formId, - { - $set: { 'form_logics.$[object]': updatedLogic }, - }, - { - arrayFilters: [{ 'object._id': logicId }], - new: true, - runValidators: true, - }, - ).exec() + let form = await this.findById(formId).exec() + if (!form?.form_logics) return null + const index = form.form_logics.findIndex( + (logic) => String(logic._id) === logicId, + ) + form = form.set(`form_logics.${index}`, updatedLogic, { + new: true, + }) + return form.save() } FormSchema.statics.updateEndPageById = async function ( diff --git a/src/app/models/login.server.model.ts b/src/app/models/login.server.model.ts index d9276d302d..2e254e147f 100644 --- a/src/app/models/login.server.model.ts +++ b/src/app/models/login.server.model.ts @@ -39,10 +39,6 @@ const LoginSchema = new Schema( esrvcId: { type: String, required: true, - validate: [ - /^([a-zA-Z0-9-]){1,25}$/i, - 'e-service ID must be alphanumeric, dashes are allowed', - ], }, }, { diff --git a/src/app/models/submission.server.model.ts b/src/app/models/submission.server.model.ts index 7f96c38887..e318188de1 100644 --- a/src/app/models/submission.server.model.ts +++ b/src/app/models/submission.server.model.ts @@ -185,7 +185,7 @@ EncryptSubmissionSchema.methods.getWebhookView = function ( this: IEncryptedSubmissionSchema | IPopulatedWebhookSubmission, ): WebhookView { const formId = this.populated('form') - ? String(this.form._id) + ? String((this as IPopulatedWebhookSubmission).form._id) : String(this.form) const attachmentRecords = Object.fromEntries( this.attachmentMetadata ?? new Map(), diff --git a/src/app/models/user.server.model.ts b/src/app/models/user.server.model.ts index 07977a2980..a6b063910f 100644 --- a/src/app/models/user.server.model.ts +++ b/src/app/models/user.server.model.ts @@ -4,7 +4,7 @@ import { CallbackError, Mongoose, Schema } from 'mongoose' import validator from 'validator' import { - IAgencySchema, + AgencyDocument, IUser, IUserModel, IUserSchema, @@ -68,7 +68,9 @@ const compileUserModel = (db: Mongoose) => { type: Date, default: () => Date.now(), }, - betaFlags: {}, + betaFlags: { + sgid: Boolean, + }, }, { timestamps: { @@ -108,7 +110,7 @@ const compileUserModel = (db: Mongoose) => { // Return public view of nested agency document if populated. return { agency: this.populated('agency') - ? (this.agency as IAgencySchema).getPublicView() + ? (this.agency as AgencyDocument).getPublicView() : this.agency, } } diff --git a/src/app/modules/auth/__tests__/auth.routes.spec.ts b/src/app/modules/auth/__tests__/auth.routes.spec.ts index e5d3749cd3..2e1a53a674 100644 --- a/src/app/modules/auth/__tests__/auth.routes.spec.ts +++ b/src/app/modules/auth/__tests__/auth.routes.spec.ts @@ -357,7 +357,7 @@ describe('auth.routes', () => { expect(response.status).toEqual(400) expect(response.body).toEqual( buildCelebrateError({ - body: { key: 'otp', message: 'Please enter a valid otp' }, + body: { key: 'otp', message: 'Please enter a valid OTP' }, }), ) }) @@ -373,7 +373,7 @@ describe('auth.routes', () => { expect(response.status).toEqual(400) expect(response.body).toEqual( buildCelebrateError({ - body: { key: 'otp', message: 'Please enter a valid otp' }, + body: { key: 'otp', message: 'Please enter a valid OTP' }, }), ) }) diff --git a/src/app/modules/auth/auth.controller.ts b/src/app/modules/auth/auth.controller.ts index 81b2993b79..5d280baeba 100644 --- a/src/app/modules/auth/auth.controller.ts +++ b/src/app/modules/auth/auth.controller.ts @@ -1,7 +1,7 @@ import { StatusCodes } from 'http-status-codes' import { isEmpty } from 'lodash' -import { LINKS } from '../../../shared/constants' +import { SUPPORT_FORM_LINK } from '../../../../shared/constants/links' import { createLoggerWithLabel } from '../../config/logger' import MailService from '../../services/mail/mail.service' import { createReqMeta, getRequestIp } from '../../utils/request' @@ -123,7 +123,7 @@ export const handleLoginVerifyOtp: ControllerHandler< email, ...createReqMeta(req), } - const coreErrorMessage = `Failed to process OTP. Please try again later and if the problem persists, submit our Support Form (${LINKS.supportFormLink}).` + const coreErrorMessage = `Failed to process OTP. Please try again later and if the problem persists, submit our Support Form (${SUPPORT_FORM_LINK}).` const validateResult = await AuthService.validateEmailDomain(email) if (validateResult.isErr()) { diff --git a/src/app/modules/auth/auth.middlewares.ts b/src/app/modules/auth/auth.middlewares.ts index 0e4650eb1e..d61ad462aa 100644 --- a/src/app/modules/auth/auth.middlewares.ts +++ b/src/app/modules/auth/auth.middlewares.ts @@ -1,3 +1,4 @@ +import { AuthedSessionData } from 'express-session' import { StatusCodes } from 'http-status-codes' import { createLoggerWithLabel } from '../../config/logger' @@ -33,7 +34,7 @@ export const logAdminAction: ControllerHandler<{ formId: string }> = async ( res, next, ) => { - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const body = req.body const method = req.method const query = req.query diff --git a/src/app/modules/auth/auth.routes.ts b/src/app/modules/auth/auth.routes.ts index 69e669fb73..b47a532017 100644 --- a/src/app/modules/auth/auth.routes.ts +++ b/src/app/modules/auth/auth.routes.ts @@ -82,7 +82,7 @@ AuthRouter.post( otp: Joi.string() .required() .regex(/^\d{6}$/) - .message('Please enter a valid otp'), + .message('Please enter a valid OTP'), }), }), AuthController.handleLoginVerifyOtp, diff --git a/src/app/modules/auth/auth.service.ts b/src/app/modules/auth/auth.service.ts index 885d2b410f..8f22ce167c 100644 --- a/src/app/modules/auth/auth.service.ts +++ b/src/app/modules/auth/auth.service.ts @@ -2,7 +2,7 @@ import mongoose from 'mongoose' import { errAsync, okAsync, Result, ResultAsync } from 'neverthrow' import validator from 'validator' -import { LINKS } from '../../../shared/constants' +import { SUPPORT_FORM_LINK } from '../../../../shared/constants/links' import { IAgencySchema, IPopulatedForm, @@ -67,7 +67,7 @@ export const validateEmailDomain = ( }) return new DatabaseError( - `Unable to validate email domain. If this issue persists, please submit a Support Form at (${LINKS.supportFormLink})`, + `Unable to validate email domain. If this issue persists, please submit a Support Form at (${SUPPORT_FORM_LINK})`, ) }, ).andThen((agency) => { diff --git a/src/app/modules/auth/auth.utils.ts b/src/app/modules/auth/auth.utils.ts index 829cb8d7f3..609260d6c6 100644 --- a/src/app/modules/auth/auth.utils.ts +++ b/src/app/modules/auth/auth.utils.ts @@ -1,3 +1,4 @@ +import { AuthedSessionData, SessionData } from 'express-session' import { StatusCodes } from 'http-status-codes' import { MapRouteError } from '../../../types/routing' @@ -52,13 +53,13 @@ export const mapRouteError: MapRouteError = (error, coreErrorMessage) => { } export const isUserInSession = ( - session?: Express.Session, -): session is Express.AuthedSession => { + session?: SessionData, +): session is AuthedSessionData => { return !!session?.user?._id } export const getUserIdFromSession = ( - session?: Express.Session, + session?: SessionData, ): string | undefined => { return session?.user?._id as string | undefined } diff --git a/src/app/modules/billing/billing.controller.ts b/src/app/modules/billing/billing.controller.ts index 3cef391c75..cd5e7cf6f3 100644 --- a/src/app/modules/billing/billing.controller.ts +++ b/src/app/modules/billing/billing.controller.ts @@ -1,3 +1,4 @@ +import { AuthedSessionData } from 'express-session' import { StatusCodes } from 'http-status-codes' import moment from 'moment-timezone' @@ -25,7 +26,7 @@ export const handleGetBillInfo: ControllerHandler< BillingQueryDto > = async (req, res) => { const { esrvcId, mth, yr } = req.query - const authedUser = (req.session as Express.AuthedSession).user + const authedUser = (req.session as AuthedSessionData).user const startOfMonth = moment .tz([parseInt(yr), parseInt(mth)], 'Asia/Singapore') diff --git a/src/app/modules/bounce/__tests__/bounce-test-helpers.ts b/src/app/modules/bounce/__tests__/bounce-test-helpers.ts index ed6595e9e8..f8b3bf664e 100644 --- a/src/app/modules/bounce/__tests__/bounce-test-helpers.ts +++ b/src/app/modules/bounce/__tests__/bounce-test-helpers.ts @@ -50,7 +50,7 @@ const makeEmailNotification = ( }, ], commonHeaders: { - subject: `Title (Ref: ${submissionId})`, + subject: `Title (#${submissionId})`, to: recipientList, from: 'donotreply@form.gov.sg', }, diff --git a/src/app/modules/bounce/__tests__/bounce.service.spec.ts b/src/app/modules/bounce/__tests__/bounce.service.spec.ts index d98175ebf6..1c9c807c8a 100644 --- a/src/app/modules/bounce/__tests__/bounce.service.spec.ts +++ b/src/app/modules/bounce/__tests__/bounce.service.spec.ts @@ -423,7 +423,7 @@ describe('BounceService', () => { expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledTimes(2) expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledWith({ adminEmail: testUser.email, - adminId: testUser._id, + adminId: String(testUser._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT.contact, @@ -431,7 +431,7 @@ describe('BounceService', () => { }) expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledWith({ adminEmail: testUser.email, - adminId: testUser._id, + adminId: String(testUser._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT_2.contact, @@ -467,7 +467,7 @@ describe('BounceService', () => { expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledTimes(2) expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledWith({ adminEmail: testUser.email, - adminId: testUser._id, + adminId: String(testUser._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT.contact, @@ -475,7 +475,7 @@ describe('BounceService', () => { }) expect(MockSmsFactory.sendBouncedSubmissionSms).toHaveBeenCalledWith({ adminEmail: testUser.email, - adminId: testUser._id, + adminId: String(testUser._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT_2.contact, @@ -912,7 +912,7 @@ describe('BounceService', () => { expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledTimes(2) expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledWith({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT.contact, @@ -920,7 +920,7 @@ describe('BounceService', () => { }) expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledWith({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT_2.contact, @@ -948,7 +948,7 @@ describe('BounceService', () => { expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledTimes(2) expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledWith({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT.contact, @@ -956,7 +956,7 @@ describe('BounceService', () => { }) expect(MockSmsFactory.sendFormDeactivatedSms).toHaveBeenCalledWith({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: MOCK_CONTACT_2.contact, diff --git a/src/app/modules/bounce/bounce.service.ts b/src/app/modules/bounce/bounce.service.ts index e78b4dbc44..69c3d13808 100644 --- a/src/app/modules/bounce/bounce.service.ts +++ b/src/app/modules/bounce/bounce.service.ts @@ -10,7 +10,7 @@ import { ResultAsync, } from 'neverthrow' -import { hasProp } from '../../../shared/util/has-prop' +import { hasProp } from '../../../../shared/utils/has-prop' import { BounceType, IBounceSchema, @@ -290,7 +290,7 @@ export const sendSmsBounceNotification = ( const smsResults = possibleSmsRecipients.map((recipient) => SmsFactory.sendBouncedSubmissionSms({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: recipient.contact, @@ -439,7 +439,7 @@ export const notifyAdminsOfDeactivation = ( const smsResults = possibleSmsRecipients.map((recipient) => SmsFactory.sendFormDeactivatedSms({ adminEmail: form.admin.email, - adminId: form.admin._id, + adminId: String(form.admin._id), formId: form._id, formTitle: form.title, recipient: recipient.contact, diff --git a/src/app/modules/examples/__tests__/helpers/prepareTestData.ts b/src/app/modules/examples/__tests__/helpers/prepareTestData.ts index 70259ac154..8112de6979 100644 --- a/src/app/modules/examples/__tests__/helpers/prepareTestData.ts +++ b/src/app/modules/examples/__tests__/helpers/prepareTestData.ts @@ -6,6 +6,7 @@ import getFormFeedbackModel from 'src/app/models/form_feedback.server.model' import getFormStatisticsTotalModel from 'src/app/models/form_statistics_total.server.model' import getSubmissionModel from 'src/app/models/submission.server.model' import { + AuthType, IAgencySchema, IFormFeedbackSchema, IFormSchema, @@ -88,6 +89,7 @@ const prepareTestData = async ( // surface. status: Status.Public, isListed: true, + authType: AuthType.NIL, } // Populate forms in database with prespecified number of times. @@ -207,6 +209,7 @@ const prepareTestData = async ( timeText: 'less than 1 day ago', lastSubmission: expect.anything(), title: form.title, + authType: form.authType, })) } diff --git a/src/app/modules/examples/examples.queries.ts b/src/app/modules/examples/examples.queries.ts index 4d4e46ca4f..b018898586 100644 --- a/src/app/modules/examples/examples.queries.ts +++ b/src/app/modules/examples/examples.queries.ts @@ -290,6 +290,7 @@ export const projectFormDetails: Record[] = [ logo: '$agencyInfo.logo', agency: '$agencyInfo.shortName', colorTheme: '$formInfo.startPage.colorTheme', + authType: '$formInfo.authType', }, }, ] @@ -323,6 +324,7 @@ export const selectAndProjectCardInfo = ( agency: '$agencyInfo.shortName', colorTheme: '$formInfo.startPage.colorTheme', avgFeedback: { $avg: '$formFeedbackInfo.rating' }, + authType: '$formInfo.authType', }, }, ] @@ -334,7 +336,7 @@ export const selectAndProjectCardInfo = ( * If this aggregation step is used by the Submission collection, the key value * would be `form`. \ * If used with the FormStatisticsTotal collection, the key - * value would be `formId`. See ISubmission['form'] and + * value would be `formId`. See ISubmissionSchema['form'] and * IFormStatisticsTotal['formId']. * * @param key The key of the formId to be retrieved from. diff --git a/src/app/modules/examples/examples.types.ts b/src/app/modules/examples/examples.types.ts index 132d406eb9..2971e6927e 100644 --- a/src/app/modules/examples/examples.types.ts +++ b/src/app/modules/examples/examples.types.ts @@ -1,5 +1,5 @@ import { - IAgency, + IAgencyDocument, IForm, IFormFeedbackSchema, IFormStatisticsTotalModel, @@ -19,8 +19,8 @@ export type QueryExecResult = { lastSubmission: Date | null title: IForm['title'] form_fields: IForm['form_fields'] - logo: IAgency['logo'] - agency: IAgency['shortName'] + logo: IAgencyDocument['logo'] + agency: IAgencyDocument['shortName'] colorTheme: StartPage['colorTheme'] avgFeedback: number | null } diff --git a/src/app/modules/feedback/__tests__/feedback.service.spec.ts b/src/app/modules/feedback/__tests__/feedback.service.spec.ts index ef0aa91fa7..0fe5c831a9 100644 --- a/src/app/modules/feedback/__tests__/feedback.service.spec.ts +++ b/src/app/modules/feedback/__tests__/feedback.service.spec.ts @@ -8,7 +8,7 @@ import getFormFeedbackModel from 'src/app/models/form_feedback.server.model' import dbHandler from 'tests/unit/backend/helpers/jest-db' -import { GetFormFeedbackDto } from '../../../../types/api/form_feedback' +import { FormFeedbackMetaDto } from '../../../../types/api/form_feedback' import { DatabaseError } from '../../core/core.errors' import * as FeedbackService from '../feedback.service' @@ -201,7 +201,7 @@ describe('feedback.service', () => { const actualResult = await FeedbackService.getFormFeedbacks(mockFormId) // Assert - const expectedResult: GetFormFeedbackDto = { + const expectedResult: FormFeedbackMetaDto = { count: 1, average: '3.00', feedback: [ diff --git a/src/app/modules/feedback/feedback.service.ts b/src/app/modules/feedback/feedback.service.ts index 25ec230c45..d39df1e4f4 100644 --- a/src/app/modules/feedback/feedback.service.ts +++ b/src/app/modules/feedback/feedback.service.ts @@ -4,8 +4,8 @@ import mongoose from 'mongoose' import { ResultAsync } from 'neverthrow' import { IFormFeedbackSchema } from '../../../types' -import { GetFormFeedbackDto } from '../../../types/api/form_feedback' -import { ProcessedFeedback } from '../../../types/form_feedback' +import { FormFeedbackMetaDto } from '../../../types/api/form_feedback' +import { ProcessedFeedbackMeta } from '../../../types/form_feedback' import { createLoggerWithLabel } from '../../config/logger' import getFormFeedbackModel from '../../models/form_feedback.server.model' import { getMongoErrorMessage } from '../../utils/handle-mongo-error' @@ -61,7 +61,7 @@ export const getFormFeedbackStream = ( */ export const getFormFeedbacks = ( formId: string, -): ResultAsync => { +): ResultAsync => { return ResultAsync.fromPromise( FormFeedbackModel.find({ formId }).sort({ created: 1 }).exec(), (error) => { @@ -89,7 +89,7 @@ export const getFormFeedbacks = ( let totalRating = 0 const processedFeedback = feedbacks.map((fb, idx) => { totalRating += fb.rating - const response: ProcessedFeedback = { + const response: ProcessedFeedbackMeta = { // 1-based indexing. index: idx + 1, timestamp: moment(fb.created).valueOf(), diff --git a/src/app/modules/form/__tests__/form.utils.spec.ts b/src/app/modules/form/__tests__/form.utils.spec.ts index 7012d93ee5..bcd7fbe5dd 100644 --- a/src/app/modules/form/__tests__/form.utils.spec.ts +++ b/src/app/modules/form/__tests__/form.utils.spec.ts @@ -1,7 +1,7 @@ import { ObjectId } from 'bson-ext' import { Types } from 'mongoose' -import { BasicField, IFieldSchema, Permission } from 'src/types' +import { BasicField, FormFieldSchema, Permission } from 'src/types' import { generateDefaultField } from 'tests/unit/backend/helpers/generate-form-data' @@ -70,7 +70,7 @@ describe('form.utils', () => { 1: fieldToFind, isMongooseDocumentArray: true, id: jest.fn().mockReturnValue(fieldToFind), - } as unknown as Types.DocumentArray + } as unknown as Types.DocumentArray // Act const result = getFormFieldById(mockDocArray, fieldToFind._id) diff --git a/src/app/modules/form/admin-form/__tests__/admin-form.controller.spec.ts b/src/app/modules/form/admin-form/__tests__/admin-form.controller.spec.ts index 3fefae6160..97b34ddb31 100644 --- a/src/app/modules/form/admin-form/__tests__/admin-form.controller.spec.ts +++ b/src/app/modules/form/admin-form/__tests__/admin-form.controller.spec.ts @@ -43,12 +43,10 @@ import { EditFieldActions } from 'src/shared/constants' import { AuthType, BasicField, - FormMetaView, FormSettings, IEmailSubmissionSchema, IEncryptedSubmissionSchema, IFieldSchema, - IForm, IFormDocument, IFormSchema, ILogicSchema, @@ -57,18 +55,21 @@ import { IPopulatedForm, IPopulatedUser, IUserSchema, + LogicDto, PublicForm, ResponseMode, Status, } from 'src/types' import { - DuplicateFormBody, + AdminDashboardFormMetaDto, + CreateFormBodyDto, + DuplicateFormBodyDto, EditFormFieldParams, EncryptSubmissionDto, FieldCreateDto, FieldUpdateDto, } from 'src/types/api' -import { GetFormFeedbackDto } from 'src/types/api/form_feedback' +import { FormFeedbackMetaDto } from 'src/types/api/form_feedback' import { generateDefaultField, @@ -77,6 +78,8 @@ import { } from 'tests/unit/backend/helpers/generate-form-data' import expressHandler from 'tests/unit/backend/helpers/jest-express' +import { smsConfig } from '../../../../config/features/sms.config' +import * as SmsService from '../../../../services/sms/sms.service' import ParsedResponsesObject from '../../../submission/email-submission/ParsedResponsesObject.class' import * as UserService from '../../../user/user.service' import { @@ -136,6 +139,8 @@ jest.mock('../../../user/user.service') const MockUserService = mocked(UserService) jest.mock('src/app/services/mail/mail.service') const MockMailService = mocked(MailService) +jest.mock('../../../../services/sms/sms.service') +const MockSmsService = mocked(SmsService) describe('admin-form.controller', () => { beforeEach(() => jest.clearAllMocks()) @@ -216,7 +221,7 @@ describe('admin-form.controller', () => { _id: new ObjectId(), title: 'mock title', } as IFormSchema - const MOCK_FORM_PARAMS: Omit = { + const MOCK_FORM_PARAMS: CreateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'some form title', @@ -394,7 +399,7 @@ describe('admin-form.controller', () => { const MOCK_USER = { _id: MOCK_USER_ID, email: 'somerandom@example.com', - } as IPopulatedUser + } as unknown as IPopulatedUser const MOCK_FORM = { admin: MOCK_USER, _id: MOCK_FORM_ID, @@ -925,7 +930,7 @@ describe('admin-form.controller', () => { const MOCK_USER = { _id: MOCK_USER_ID, email: 'somerandom@example.com', - } as IPopulatedUser + } as unknown as IPopulatedUser const MOCK_FORM = { admin: MOCK_USER, _id: MOCK_FORM_ID, @@ -2420,7 +2425,7 @@ describe('admin-form.controller', () => { it('should return 200 with feedback response successfully', async () => { // Arrange const mockRes = expressHandler.mockResponse() - const expectedFormFeedback: GetFormFeedbackDto = { + const expectedFormFeedback: FormFeedbackMetaDto = { count: 212, feedback: [ { @@ -3011,17 +3016,19 @@ describe('admin-form.controller', () => { _id: MOCK_USER_ID, }, }, - body: {} as DuplicateFormBody, + body: {} as DuplicateFormBodyDto, }) it('should return duplicated form view on duplicate success', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'mock title', } - const mockDupedFormView = { title: 'mock view' } as FormMetaView + const mockDupedFormView = { + title: 'mock view', + } as AdminDashboardFormMetaDto const mockDupedForm = merge({}, MOCK_FORM, { title: 'duped form with new title', _id: new ObjectId(), @@ -3087,7 +3094,7 @@ describe('admin-form.controller', () => { it('should return 404 when form to duplicate cannot be found', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'mock title', @@ -3221,7 +3228,7 @@ describe('admin-form.controller', () => { it('should return 500 when database error occurs whilst duplicating form', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'mock title', @@ -3442,19 +3449,19 @@ describe('admin-form.controller', () => { _id: MOCK_USER_ID, }, }, - body: {} as DuplicateFormBody, + body: {} as DuplicateFormBodyDto, }) it('should return copied template form view on duplicate success', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Email, emails: ['some-email@example.com'], title: 'mock new template title', } const mockDupedFormView = { title: 'mock template view', - } as FormMetaView + } as AdminDashboardFormMetaDto const mockDupedForm = merge({}, MOCK_FORM, { title: 'duped form with new title', _id: new ObjectId(), @@ -3522,7 +3529,7 @@ describe('admin-form.controller', () => { it('should return 404 when form to duplicate cannot be found', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'mock title', @@ -3670,7 +3677,7 @@ describe('admin-form.controller', () => { it('should return 500 when database error occurs whilst duplicating form', async () => { // Arrange - const expectedParams: DuplicateFormBody = { + const expectedParams: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'mock title', @@ -6070,7 +6077,10 @@ describe('admin-form.controller', () => { describe('submitEncryptPreview', () => { const MOCK_RESPONSES = [ - generateUnprocessedSingleAnswerResponse(BasicField.Email), + { + question: 'testQuestion', + ...generateUnprocessedSingleAnswerResponse(BasicField.Email), + }, ] const MOCK_ENCRYPTED_CONTENT = 'mockEncryptedContent' const MOCK_VERSION = 1 @@ -7942,7 +7952,7 @@ describe('admin-form.controller', () => { ) MockAdminFormService.deleteFormLogic.mockReturnValue( - okAsync(MOCK_FORM as IFormSchema), + okAsync(MOCK_FORM as IFormDocument), ) }) @@ -8297,7 +8307,7 @@ describe('admin-form.controller', () => { const MOCK_UPDATED_FORM = { ...MOCK_FORM, form_fields: [MOCK_FIELDS[0]], - } as IFormSchema + } as IFormDocument const MOCK_REQ = expressHandler.mockRequest({ params: { @@ -9103,7 +9113,7 @@ describe('admin-form.controller', () => { const mockUpdatedLogic = { _id: logicId, - } as ILogicSchema + } as LogicDto const MOCK_FORM = { admin: MOCK_USER, @@ -9467,6 +9477,264 @@ describe('admin-form.controller', () => { }) }) + describe('handleRemoveSelfFromCollaborators', () => { + const MOCK_USER_ID = new ObjectId().toHexString() + const MOCK_FORM_ID = new ObjectId().toHexString() + const MOCK_USER = { + _id: MOCK_USER_ID, + email: 'somerandom@example.com', + } as IPopulatedUser + + const MOCK_WRITER_ID = new ObjectId().toHexString() + const MOCK_WRITER = { + _id: MOCK_WRITER_ID, + email: 'mockwriter@example.com', + } + + const MOCK_READER_ID = new ObjectId().toHexString() + const MOCK_READER = { + _id: MOCK_READER_ID, + email: 'mockreader@example.com', + } + + const MOCK_RANDOM_USER_ID = new ObjectId().toHexString() + const MOCK_RANDOM_USER = { + _id: MOCK_RANDOM_USER_ID, + email: 'mockrandomuser@example.com', + } + + const MOCK_COLLABORATORS = [ + { + email: MOCK_READER.email, + write: false, + }, + { + email: MOCK_WRITER.email, + write: true, + }, + ] + const MOCK_COLLABORATORS_ONLY_READER = [ + { + email: MOCK_READER.email, + write: false, + }, + ] + const MOCK_COLLABORATORS_ONLY_WRITER = [ + { + email: MOCK_WRITER.email, + write: true, + }, + ] + + const MOCK_FORM = { + admin: MOCK_USER, + _id: MOCK_FORM_ID, + permissionList: MOCK_COLLABORATORS, + } as IPopulatedForm + + const MOCK_READER_REQ = expressHandler.mockRequest({ + params: { + formId: MOCK_FORM_ID, + }, + session: { + user: { + _id: MOCK_READER_ID, + }, + }, + }) + const MOCK_WRITER_REQ = expressHandler.mockRequest({ + params: { + formId: MOCK_FORM_ID, + }, + session: { + user: { + _id: MOCK_WRITER_ID, + }, + }, + }) + const MOCK_RANDOM_USER_REQ = expressHandler.mockRequest({ + params: { + formId: MOCK_FORM_ID, + }, + session: { + user: { + _id: MOCK_RANDOM_USER_ID, + }, + }, + }) + + beforeEach(() => { + // Mock various services to return expected results. + MockAuthService.getFormAfterPermissionChecks.mockReturnValue( + okAsync(MOCK_FORM), + ) + }) + it('should return 200 when the current writer is removed successfully', async () => { + // Arrange + MockUserService.getPopulatedUserById.mockReturnValue(okAsync(MOCK_WRITER)) + MockAdminFormService.updateFormCollaborators.mockReturnValueOnce( + okAsync(MOCK_COLLABORATORS_ONLY_READER), + ) + const mockRes = expressHandler.mockResponse() + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_WRITER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.OK) + expect(mockRes.json).toBeCalledWith(MOCK_COLLABORATORS_ONLY_READER) + }) + + it('should return 200 when the current reader is removed successfully', async () => { + // Arrange + MockUserService.getPopulatedUserById.mockReturnValue(okAsync(MOCK_READER)) + MockAdminFormService.updateFormCollaborators.mockReturnValueOnce( + okAsync(MOCK_COLLABORATORS_ONLY_WRITER), + ) + const mockRes = expressHandler.mockResponse() + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_READER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.OK) + expect(mockRes.json).toBeCalledWith(MOCK_COLLABORATORS_ONLY_WRITER) + }) + + it('should return 403 when the user does not have sufficient permissions to update the form', async () => { + // Arrange + MockUserService.getPopulatedUserById.mockReturnValue( + okAsync(MOCK_RANDOM_USER), + ) + const ERROR_MESSAGE = 'all your base are belong to us' + MockAuthService.getFormAfterPermissionChecks.mockReturnValueOnce( + errAsync(new ForbiddenFormError(ERROR_MESSAGE)), + ) + const mockRes = expressHandler.mockResponse() + const expectedResponse = { message: ERROR_MESSAGE } + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_RANDOM_USER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.FORBIDDEN) + expect(mockRes.json).toBeCalledWith(expectedResponse) + expect( + MockAdminFormService.updateFormCollaborators, + ).not.toHaveBeenCalled() + }) + + it('should return 404 when the form could not be found', async () => { + // Arrange + const ERROR_MESSAGE = 'all your base are belong to us' + MockUserService.getPopulatedUserById.mockReturnValue(okAsync(MOCK_WRITER)) + MockAuthService.getFormAfterPermissionChecks.mockReturnValueOnce( + errAsync(new FormNotFoundError(ERROR_MESSAGE)), + ) + const mockRes = expressHandler.mockResponse() + const expectedResponse = { message: ERROR_MESSAGE } + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_WRITER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.NOT_FOUND) + expect(mockRes.json).toBeCalledWith(expectedResponse) + expect( + MockAdminFormService.updateFormCollaborators, + ).not.toHaveBeenCalled() + }) + + it('should return 410 when the form has been archived', async () => { + // Arrange + const ERROR_MESSAGE = 'all your base are belong to us' + MockUserService.getPopulatedUserById.mockReturnValue(okAsync(MOCK_WRITER)) + MockAuthService.getFormAfterPermissionChecks.mockReturnValueOnce( + errAsync(new FormDeletedError(ERROR_MESSAGE)), + ) + const mockRes = expressHandler.mockResponse() + const expectedResponse = { message: ERROR_MESSAGE } + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_WRITER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.GONE) + expect(mockRes.json).toBeCalledWith(expectedResponse) + expect( + MockAdminFormService.updateFormCollaborators, + ).not.toHaveBeenCalled() + }) + + it('should return 422 when the session user could not be retrieved from the database', async () => { + // Arrange + const ERROR_MESSAGE = 'all your base are belong to us' + MockUserService.getPopulatedUserById.mockReturnValueOnce( + errAsync(new MissingUserError(ERROR_MESSAGE)), + ) + const expectedResponse = { message: ERROR_MESSAGE } + const mockRes = expressHandler.mockResponse() + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_RANDOM_USER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.UNPROCESSABLE_ENTITY) + expect(mockRes.json).toBeCalledWith(expectedResponse) + expect( + MockAdminFormService.updateFormCollaborators, + ).not.toHaveBeenCalled() + }) + + it('should return 500 when a database error occurs', async () => { + // Arrange + const ERROR_MESSAGE = 'all your base are belong to us' + MockUserService.getPopulatedUserById.mockReturnValueOnce( + errAsync(new DatabaseError(ERROR_MESSAGE)), + ) + const expectedResponse = { message: ERROR_MESSAGE } + const mockRes = expressHandler.mockResponse() + + // Act + await AdminFormController.handleRemoveSelfFromCollaborators( + MOCK_RANDOM_USER_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(StatusCodes.INTERNAL_SERVER_ERROR) + expect(mockRes.json).toBeCalledWith(expectedResponse) + expect( + MockAdminFormService.updateFormCollaborators, + ).not.toHaveBeenCalled() + }) + }) + describe('handleGetFormCollaborators', () => { const MOCK_FORM_ID = new ObjectId().toHexString() const MOCK_USER_ID = new ObjectId().toHexString() @@ -9805,4 +10073,142 @@ describe('admin-form.controller', () => { expect(MockAdminFormService.getFormField).not.toHaveBeenCalled() }) }) + + describe('handleGetFreeSmsCountForFormAdmin', () => { + const mockForm = { + admin: new ObjectId().toHexString(), + } as unknown as IFormSchema + const VERIFICATION_SMS_COUNT = 3 + + beforeAll(() => { + MockFormService.retrieveFormById.mockReturnValue(okAsync(mockForm)) + MockSmsService.retrieveFreeSmsCounts.mockReturnValue( + okAsync(VERIFICATION_SMS_COUNT), + ) + }) + + it('should retrieve sms counts and quota when the user and the form exist', async () => { + // Arrange + const MOCK_REQ = expressHandler.mockRequest({ + params: { + formId: mockForm._id, + }, + session: { + user: { + _id: 'exists', + }, + }, + }) + const mockRes = expressHandler.mockResponse() + const expected = { + freeSmsCounts: VERIFICATION_SMS_COUNT, + quota: smsConfig.smsVerificationLimit, + } + + // Act + await AdminFormController.handleGetFreeSmsCountForFormAdmin( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(200) + expect(mockRes.json).toBeCalledWith(expected) + }) + + it('should return 404 when the form is not found in the database', async () => { + // Arrange + const MOCK_REQ = expressHandler.mockRequest({ + params: { + formId: new ObjectId().toHexString(), + }, + session: { + user: { + _id: 'exists', + }, + }, + }) + MockFormService.retrieveFormById.mockReturnValueOnce( + errAsync(new FormNotFoundError()), + ) + const mockRes = expressHandler.mockResponse() + const expected = { + message: 'Form not found', + } + + // Act + await AdminFormController.handleGetFreeSmsCountForFormAdmin( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(404) + expect(mockRes.json).toBeCalledWith(expected) + }) + + it('should return 500 when a database error occurs during form retrieval', async () => { + // Arrange + const MOCK_REQ = expressHandler.mockRequest({ + params: { + formId: mockForm._id, + }, + session: { + user: { + _id: 'exists', + }, + }, + }) + const mockRes = expressHandler.mockResponse() + const retrieveSpy = jest.spyOn(FormService, 'retrieveFormById') + retrieveSpy.mockReturnValueOnce(errAsync(new DatabaseError())) + const expected = { + message: 'Something went wrong. Please try again.', + } + + // Act + await AdminFormController.handleGetFreeSmsCountForFormAdmin( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(500) + expect(mockRes.json).toBeCalledWith(expected) + }) + + it('should return 500 when a database error occurs during count retrieval', async () => { + // Arrange + const MOCK_REQ = expressHandler.mockRequest({ + params: { + formId: mockForm._id, + }, + session: { + user: { + _id: 'exists', + }, + }, + }) + const mockRes = expressHandler.mockResponse() + const retrieveSpy = jest.spyOn(SmsService, 'retrieveFreeSmsCounts') + retrieveSpy.mockReturnValueOnce(errAsync(new DatabaseError())) + const expected = { + message: 'Something went wrong. Please try again.', + } + + // Act + await AdminFormController.handleGetFreeSmsCountForFormAdmin( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + // Assert + expect(mockRes.status).toBeCalledWith(500) + expect(mockRes.json).toBeCalledWith(expected) + }) + }) }) diff --git a/src/app/modules/form/admin-form/__tests__/admin-form.routes.spec.ts b/src/app/modules/form/admin-form/__tests__/admin-form.routes.spec.ts index 07fea92b2c..af2f902735 100644 --- a/src/app/modules/form/admin-form/__tests__/admin-form.routes.spec.ts +++ b/src/app/modules/form/admin-form/__tests__/admin-form.routes.spec.ts @@ -36,7 +36,7 @@ import { } from 'src/app/modules/submission/email-submission/__tests__/email-submission.test.constants' import { saveSubmissionMetadata } from 'src/app/modules/submission/email-submission/email-submission.service' import { SubmissionHash } from 'src/app/modules/submission/email-submission/email-submission.types' -import { EditFieldActions, VALID_UPLOAD_FILE_TYPES } from 'src/shared/constants' +import { EditFieldActions } from 'src/shared/constants' import { BasicField, IFieldSchema, @@ -65,6 +65,7 @@ import { import dbHandler from 'tests/unit/backend/helpers/jest-db' import { jsonParseStringify } from 'tests/unit/backend/helpers/serialize-data' +import { VALID_UPLOAD_FILE_TYPES } from '../../../../../../shared/constants/file' import { insertFormFeedback } from '../../public-form/public-form.service' import { AdminFormsRouter } from '../admin-form.routes' import * as AdminFormService from '../admin-form.service' @@ -308,9 +309,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing _id', async () => { @@ -335,9 +334,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing fieldType', async () => { @@ -362,9 +359,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has invalid fieldType', async () => { @@ -391,9 +386,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing answer', async () => { @@ -418,9 +411,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has both answer and answerArray', async () => { @@ -445,9 +436,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has filename but not content', async () => { @@ -472,9 +461,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has content but not filename', async () => { @@ -499,9 +486,7 @@ describe('admin-form.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) }) @@ -2529,7 +2514,9 @@ describe('admin-form.routes', () => { // Assert expect(response.status).toEqual(410) - expect(response.body).toEqual({ message: 'Form has been deleted' }) + expect(response.body).toEqual({ + message: 'This form is no longer active', + }) }) it('should return 500 when database error occurs whilst retrieving form', async () => { @@ -2879,7 +2866,7 @@ describe('admin-form.routes', () => { // Assert expect(response.status).toEqual(410) expect(response.body).toEqual({ - message: 'Form has been deleted', + message: 'This form is no longer active', }) }) diff --git a/src/app/modules/form/admin-form/__tests__/admin-form.service.spec.ts b/src/app/modules/form/admin-form/__tests__/admin-form.service.spec.ts index 5c0ac4f00a..f21bd90796 100644 --- a/src/app/modules/form/admin-form/__tests__/admin-form.service.spec.ts +++ b/src/app/modules/form/admin-form/__tests__/admin-form.service.spec.ts @@ -21,22 +21,22 @@ import { import { MissingUserError } from 'src/app/modules/user/user.errors' import * as UserService from 'src/app/modules/user/user.service' import { formatErrorRecoveryMessage } from 'src/app/utils/handle-mongo-error' -import { EditFieldActions, VALID_UPLOAD_FILE_TYPES } from 'src/shared/constants' +import { EditFieldActions } from 'src/shared/constants' import { AuthType, BasicField, + Colors, EndPage, + FormLogicSchema, FormLogoState, - FormMetaView, FormSettings, ICustomFormLogo, IEmailFormSchema, IFormDocument, IFormSchema, - ILogicSchema, IPopulatedForm, - IPopulatedUser, IUserSchema, + LogicDto, LogicType, PickDuplicateForm, ResponseMode, @@ -44,7 +44,8 @@ import { Status, } from 'src/types' import { - DuplicateFormBody, + AdminDashboardFormMetaDto, + DuplicateFormBodyDto, EditFormFieldParams, FieldCreateDto, FieldUpdateDto, @@ -53,6 +54,7 @@ import { import { generateDefaultField } from 'tests/unit/backend/helpers/generate-form-data' +import { VALID_UPLOAD_FILE_TYPES } from '../../../../../../shared/constants/file' import { FormNotFoundError, LogicNotFoundError, @@ -109,20 +111,20 @@ describe('admin-form.service', () => { email: 'MOCK_EMAIL@example.com', _id: mockUserId, } as IUserSchema - const mockDashboardForms: FormMetaView[] = [ + const mockDashboardForms = [ { - admin: {} as IPopulatedUser, + admin: {}, title: 'test form 1', _id: 'any', responseMode: ResponseMode.Email, }, { - admin: {} as IPopulatedUser, + admin: {}, title: 'test form 2', _id: 'any2', responseMode: ResponseMode.Encrypt, }, - ] + ] as AdminDashboardFormMetaDto[] // Mock user admin success. MockUserService.findUserById.mockReturnValueOnce( okAsync(mockUser as IUserSchema), @@ -418,12 +420,12 @@ describe('admin-form.service', () => { } as ICustomFormLogo, }, } as unknown as IFormDocument - const MOCK_EMAIL_OVERRIDE_PARAMS: DuplicateFormBody = { + const MOCK_EMAIL_OVERRIDE_PARAMS: DuplicateFormBodyDto = { responseMode: ResponseMode.Email, title: 'mock new title', emails: ['mockExample@example.com'], } - const MOCK_ENCRYPT_OVERRIDE_PARAMS: DuplicateFormBody = { + const MOCK_ENCRYPT_OVERRIDE_PARAMS: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, title: 'mock new title', publicKey: 'some public key', @@ -1096,6 +1098,7 @@ describe('admin-form.service', () => { title: 'new title', webhook: { url: '', + isRetryEnabled: false, }, } @@ -1369,7 +1372,7 @@ describe('admin-form.service', () => { { _id: logicId, id: logicId, - } as ILogicSchema, + } as FormLogicSchema, ], } @@ -1696,32 +1699,32 @@ describe('admin-form.service', () => { { _id: logicId1, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, { _id: logicId2, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, ], } const createLogicBody = { logicType: LogicType.PreventSubmit, - } as ILogicSchema + } as LogicDto const mockFormLogicUpdated = { form_logics: [ { _id: logicId1, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, { _id: logicId2, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, { _id: logicId3, logicType: LogicType.PreventSubmit, - } as ILogicSchema, + } as FormLogicSchema, ], } @@ -1757,7 +1760,7 @@ describe('admin-form.service', () => { it('should return ok(created logic) on successful form logic create for email mode form', async () => { // Arrange - CREATE_SPY.mockResolvedValue(mockEmailFormUpdated as IFormSchema) + CREATE_SPY.mockResolvedValue(mockEmailFormUpdated as IFormDocument) // Act const actualResult = await createFormLogic(mockEmailForm, createLogicBody) @@ -1776,7 +1779,7 @@ describe('admin-form.service', () => { it('should return ok(created logic) on successful form logic create for encrypt mode form', async () => { // Arrange - CREATE_SPY.mockResolvedValue(mockEncryptFormUpdated as IFormSchema) + CREATE_SPY.mockResolvedValue(mockEncryptFormUpdated as IFormDocument) // Act const actualResult = await createFormLogic( @@ -1798,7 +1801,7 @@ describe('admin-form.service', () => { it('should return err(FormNotFoundError) if db does not return form object', async () => { // Arrange - CREATE_SPY.mockResolvedValue(undefined as unknown as IFormSchema) + CREATE_SPY.mockResolvedValue(undefined as unknown as IFormDocument) // Act const actualResult = await createFormLogic( @@ -1822,7 +1825,7 @@ describe('admin-form.service', () => { mockEncryptFormUpdated, 'form_logics', ) - CREATE_SPY.mockResolvedValue(updatedFormWithoutLogic as IFormSchema) + CREATE_SPY.mockResolvedValue(updatedFormWithoutLogic as IFormDocument) // Act const actualResult = await createFormLogic( @@ -1846,7 +1849,7 @@ describe('admin-form.service', () => { ...mockEncryptFormUpdated, form_logics: [], } - CREATE_SPY.mockResolvedValue(updatedFormWithEmptyLogic as IFormSchema) + CREATE_SPY.mockResolvedValue(updatedFormWithEmptyLogic as IFormDocument) // Act const actualResult = await createFormLogic( @@ -1999,8 +2002,12 @@ describe('admin-form.service', () => { const updateSpy = jest.spyOn(FormModel, 'updateStartPageById') const MOCK_FORM_ID = new ObjectId().toHexString() const MOCK_NEW_START_PAGE: StartPage = { + colorTheme: Colors.Blue, paragraph: 'some paragraph', estTimeTaken: 10000000, + logo: { + state: FormLogoState.Default, + }, } it('should return updated start page when update is successful', async () => { @@ -2057,29 +2064,34 @@ describe('admin-form.service', () => { { _id: logicId1, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, { _id: logicId2, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, ], } + const updateLogicBody = { + _id: String(logicId1), + logicType: LogicType.PreventSubmit, + } as LogicDto + const updatedLogic = { _id: logicId1, logicType: LogicType.PreventSubmit, - } as ILogicSchema + } as FormLogicSchema const mockFormLogicUpdated = { form_logics: [ { _id: logicId1, logicType: LogicType.PreventSubmit, - } as ILogicSchema, + } as FormLogicSchema, { _id: logicId2, logicType: LogicType.ShowFields, - } as ILogicSchema, + } as FormLogicSchema, ], } @@ -2121,7 +2133,7 @@ describe('admin-form.service', () => { const actualResult = await updateFormLogic( mockEmailForm, logicId1.toHexString(), - updatedLogic, + updateLogicBody, ) // Assert @@ -2131,7 +2143,7 @@ describe('admin-form.service', () => { expect(UPDATE_SPY).toHaveBeenCalledWith( mockEmailForm._id.toHexString(), logicId1.toHexString(), - updatedLogic, + updateLogicBody, ) }) @@ -2143,7 +2155,7 @@ describe('admin-form.service', () => { const actualResult = await updateFormLogic( mockEncryptForm, logicId1.toHexString(), - updatedLogic, + updateLogicBody, ) // Assert @@ -2153,7 +2165,7 @@ describe('admin-form.service', () => { expect(UPDATE_SPY).toHaveBeenCalledWith( mockEncryptFormId.toHexString(), logicId1.toHexString(), - updatedLogic, + updateLogicBody, ) }) @@ -2163,7 +2175,7 @@ describe('admin-form.service', () => { const actualResult = await updateFormLogic( mockEmailForm, wrongLogicId, - updatedLogic, + updateLogicBody, ) // Assert @@ -2182,7 +2194,7 @@ describe('admin-form.service', () => { // Append created field to end of form_fields. form_fields: [MOCK_FIELD], _id: new ObjectId(), - } as IFormSchema + } as IFormDocument // Act const actual = await getFormField(MOCK_FORM, String(MOCK_FIELD._id)) @@ -2199,7 +2211,7 @@ describe('admin-form.service', () => { // Append created field to end of form_fields. form_fields: [], _id: new ObjectId(), - } as unknown as IFormSchema + } as unknown as IFormDocument const expectedError = new FieldNotFoundError( `Attempted to retrieve field ${MOCK_ID} from ${MOCK_FORM._id} but field was not present`, ) diff --git a/src/app/modules/form/admin-form/__tests__/admin-form.utils.spec.ts b/src/app/modules/form/admin-form/__tests__/admin-form.utils.spec.ts index b4a01b62e5..fd7a7d1f82 100644 --- a/src/app/modules/form/admin-form/__tests__/admin-form.utils.spec.ts +++ b/src/app/modules/form/admin-form/__tests__/admin-form.utils.spec.ts @@ -4,15 +4,15 @@ import { cloneDeep, omit, tail } from 'lodash' import { EditFieldActions } from 'src/shared/constants' import { BasicField, + FormFieldSchema, IEmailFieldSchema, - IFieldSchema, IPopulatedForm, IPopulatedUser, Permission, ResponseMode, Status, } from 'src/types' -import { DuplicateFormBody, EditFormFieldParams } from 'src/types/api' +import { DuplicateFormBodyDto, EditFormFieldParams } from 'src/types/api' import { generateDefaultField } from 'tests/unit/backend/helpers/generate-form-data' @@ -281,7 +281,7 @@ describe('admin-form.utils', () => { it('should return processed props for ResponseMode.Encrypt', async () => { // Arrange const newAdminId = new ObjectId().toHexString() - const params: DuplicateFormBody = { + const params: DuplicateFormBodyDto = { responseMode: ResponseMode.Encrypt, publicKey: 'some public key', title: 'some title', @@ -303,7 +303,7 @@ describe('admin-form.utils', () => { it('should return processed props for ResponseMode.Email', async () => { // Arrange const newAdminId = new ObjectId().toHexString() - const params: DuplicateFormBody = { + const params: DuplicateFormBodyDto = { responseMode: ResponseMode.Email, emails: ['some@example.com', 'another@example.com'], title: 'some title', @@ -370,9 +370,9 @@ describe('admin-form.utils', () => { it('should return updated fields successfully on duplicate action', async () => { // Arrange // Remove globalId from duplicate. - const duplicateField: IFieldSchema = omit(cloneDeep(INITIAL_FIELDS[1]), [ + const duplicateField = omit(cloneDeep(INITIAL_FIELDS[1]), [ 'globalId', - ]) + ]) as FormFieldSchema const dupeFieldParams: EditFormFieldParams = { action: { name: EditFieldActions.Duplicate }, field: duplicateField, @@ -418,7 +418,7 @@ describe('admin-form.utils', () => { const fieldToUpdate = { ...INITIAL_FIELDS[0], title: 'some new title!!!', - } as IFieldSchema + } as FormFieldSchema const updateFieldParams: EditFormFieldParams = { action: { diff --git a/src/app/modules/form/admin-form/admin-form.controller.ts b/src/app/modules/form/admin-form/admin-form.controller.ts index 311deac41a..7b4dc4e992 100644 --- a/src/app/modules/form/admin-form/admin-form.controller.ts +++ b/src/app/modules/form/admin-form/admin-form.controller.ts @@ -1,5 +1,6 @@ import JoiDate from '@joi/date' import { celebrate, Joi as BaseJoi, Segments } from 'celebrate' +import { AuthedSessionData } from 'express-session' import { StatusCodes } from 'http-status-codes' import JSONStream from 'JSONStream' import { ResultAsync } from 'neverthrow' @@ -7,14 +8,14 @@ import { ResultAsync } from 'neverthrow' import { MAX_UPLOAD_FILE_SIZE, VALID_UPLOAD_FILE_TYPES, -} from '../../../../shared/constants' +} from '../../../../../shared/constants/file' +import { DeserializeTransform } from '../../../../../shared/types/utils' import { AuthType, BasicField, Colors, - FieldResponse, + FormFieldWithId, FormLogoState, - FormMetaView, FormSettings, IForm, IFormDocument, @@ -23,23 +24,35 @@ import { LogicDto, LogicIfValue, LogicType, + PublicFormDto, ResponseMode, } from '../../../../types' import { - DuplicateFormBody, + AdminDashboardFormMetaDto, + CreateFormBodyDto, + DuplicateFormBodyDto, EncryptSubmissionDto, EndPageUpdateDto, ErrorDto, FieldCreateDto, FieldUpdateDto, + FormDto, + FormFeedbackMetaDto, FormFieldDto, FormUpdateParams, + ParsedEmailModeSubmissionBody, PermissionsUpdateDto, + PreviewFormViewDto, + PrivateFormErrorDto, SettingsUpdateDto, + SmsCountsDto, StartPageUpdateDto, + SubmissionCountQueryDto, } from '../../../../types/api' +import { smsConfig } from '../../../config/features/sms.config' import { createLoggerWithLabel } from '../../../config/logger' import MailService from '../../../services/mail/mail.service' +import * as SmsService from '../../../services/sms/sms.service' import { createReqMeta } from '../../../utils/request' import * as AuthService from '../../auth/auth.service' import { @@ -99,12 +112,19 @@ const createFormValidator = celebrate({ title: Joi.string().min(4).max(200).required(), // Require emails string (for backwards compatibility) or string // array if form to be created in Email mode. - emails: Joi.alternatives() - .try(Joi.array().items(Joi.string()).min(1), Joi.string()) - .when('responseMode', { - is: ResponseMode.Email, - then: Joi.required(), - }), + emails: Joi.when('responseMode', { + is: ResponseMode.Email, + then: Joi.alternatives() + .try(Joi.array().items(Joi.string()).min(1), Joi.string()) + .required(), + // TODO (#2264): disallow the 'emails' key when responseMode is not Email + // Allow old clients to send this key but optionally and without restrictions + // on array length or type + otherwise: Joi.alternatives().try( + Joi.array(), + Joi.string().allow(''), + ), + }), // Require publicKey field if form to be created in Storage mode. publicKey: Joi.string() .allow('') @@ -120,7 +140,7 @@ const createFormValidator = celebrate({ }) const duplicateFormValidator = celebrate({ - [Segments.BODY]: BaseJoi.object({ + [Segments.BODY]: BaseJoi.object({ // Require valid responsesMode field. responseMode: Joi.string() .valid(...Object.values(ResponseMode)) @@ -129,12 +149,16 @@ const duplicateFormValidator = celebrate({ title: Joi.string().min(4).max(200).required(), // Require emails string (for backwards compatibility) or string array // if form to be duplicated in Email mode. - emails: Joi.alternatives() - .try(Joi.array().items(Joi.string()).min(1), Joi.string()) - .when('responseMode', { - is: ResponseMode.Email, - then: Joi.required(), - }), + emails: Joi.when('responseMode', { + is: ResponseMode.Email, + then: Joi.alternatives() + .try(Joi.array().items(Joi.string()).min(1), Joi.string()) + .required(), + // TODO (#2264): disallow the 'emails' key when responseMode is not Email + // Allow old clients to send this key but optionally and without restrictions + // on array length or type + otherwise: Joi.alternatives().try(Joi.array(), Joi.string().allow('')), + }), // Require publicKey field if form to be duplicated in Storage mode. publicKey: Joi.string() .allow('') @@ -178,9 +202,9 @@ const fileUploadValidator = celebrate({ */ export const handleListDashboardForms: ControllerHandler< unknown, - FormMetaView[] | ErrorDto + AdminDashboardFormMetaDto[] | ErrorDto > = async (req, res) => { - const authedUserId = (req.session as Express.AuthedSession).user._id + const authedUserId = (req.session as AuthedSessionData).user._id return AdminFormService.getDashboardForms(authedUserId) .map((dashboardView) => res.json(dashboardView)) @@ -214,7 +238,7 @@ export const handleGetAdminForm: ControllerHandler<{ formId: string }> = ( res, ) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -260,7 +284,7 @@ export const handleGetFormCollaborators: ControllerHandler< PermissionsUpdateDto | ErrorDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -308,7 +332,7 @@ export const handlePreviewAdminForm: ControllerHandler<{ formId: string }> = ( res, ) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. UserService.getPopulatedUserById(sessionUserId) @@ -364,7 +388,7 @@ export const createPresignedPostUrlForImages: ControllerHandler< > = async (req, res) => { const { formId } = req.params const { fileId, fileMd5Hash, fileType } = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -429,7 +453,7 @@ export const createPresignedPostUrlForLogos: ControllerHandler< > = async (req, res) => { const { formId } = req.params const { fileId, fileMd5Hash, fileType } = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -498,11 +522,11 @@ export const countFormSubmissions: ControllerHandler< { formId: string }, ErrorDto | number, unknown, - { startDate?: string; endDate?: string } + SubmissionCountQueryDto > = async (req, res) => { const { formId } = req.params - const { startDate, endDate } = req.query - const sessionUserId = (req.session as Express.AuthedSession).user._id + const dateRange = req.query + const sessionUserId = (req.session as AuthedSessionData).user._id const logMeta = { action: 'handleCountFormSubmissions', @@ -534,10 +558,7 @@ export const countFormSubmissions: ControllerHandler< } // Step 3: Has permissions, continue to retrieve submission counts. - return SubmissionService.getFormSubmissionsCount(formId, { - startDate, - endDate, - }) + return SubmissionService.getFormSubmissionsCount(formId, dateRange) .map((count) => res.json(count)) .mapErr((error) => { logger.error({ @@ -572,11 +593,12 @@ export const handleCountFormSubmissions = [ * @returns 422 when user in session cannot be retrieved from the database * @returns 500 when database error occurs */ -export const handleCountFormFeedback: ControllerHandler<{ - formId: string -}> = async (req, res) => { +export const handleCountFormFeedback: ControllerHandler< + { formId: string }, + number | ErrorDto +> = async (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -625,7 +647,7 @@ export const handleStreamFormFeedback: ControllerHandler<{ formId: string }> = async (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. const hasReadPermissionResult = await UserService.getPopulatedUserById( @@ -715,11 +737,12 @@ export const handleStreamFormFeedback: ControllerHandler<{ * @returns 422 when user in session cannot be retrieved from the database * @returns 500 when database error occurs */ -export const handleGetFormFeedback: ControllerHandler<{ - formId: string -}> = (req, res) => { +export const handleGetFormFeedback: ControllerHandler< + { formId: string }, + FormFeedbackMetaDto | ErrorDto +> = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return UserService.getPopulatedUserById(sessionUserId) .andThen((user) => @@ -763,7 +786,7 @@ export const handleArchiveForm: ControllerHandler<{ formId: string }> = async ( res, ) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -813,10 +836,10 @@ export const handleArchiveForm: ControllerHandler<{ formId: string }> = async ( export const duplicateAdminForm: ControllerHandler< { formId: string }, unknown, - DuplicateFormBody + DuplicateFormBodyDto > = (req, res) => { const { formId } = req.params - const userId = (req.session as Express.AuthedSession).user._id + const userId = (req.session as AuthedSessionData).user._id const overrideParams = req.body return ( @@ -875,12 +898,12 @@ export const handleDuplicateAdminForm = [ * @returns 410 when form is archived * @returns 500 when database error occurs */ -export const handleGetTemplateForm: ControllerHandler<{ formId: string }> = ( - req, - res, -) => { +export const handleGetTemplateForm: ControllerHandler< + { formId: string }, + PreviewFormViewDto | ErrorDto | PrivateFormErrorDto +> = (req, res) => { const { formId } = req.params - const userId = (req.session as Express.AuthedSession).user._id + const userId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve form only if form is currently public. @@ -888,7 +911,9 @@ export const handleGetTemplateForm: ControllerHandler<{ formId: string }> = ( // Step 2: Remove private form details before being returned. .map((populatedForm) => populatedForm.getPublicView()) .map((scrubbedForm) => - res.status(StatusCodes.OK).json({ form: scrubbedForm }), + res + .status(StatusCodes.OK) + .json({ form: scrubbedForm as PublicFormDto }), ) .mapErr((error) => { logger.error({ @@ -934,11 +959,11 @@ export const handleGetTemplateForm: ControllerHandler<{ formId: string }> = ( */ export const handleCopyTemplateForm: ControllerHandler< { formId: string }, - unknown, - DuplicateFormBody + AdminDashboardFormMetaDto | ErrorDto, + DuplicateFormBodyDto > = (req, res) => { const { formId } = req.params - const userId = (req.session as Express.AuthedSession).user._id + const userId = (req.session as AuthedSessionData).user._id const overrideParams = req.body return ( @@ -1000,7 +1025,7 @@ export const transferFormOwnership: ControllerHandler< > = (req, res) => { const { formId } = req.params const { email: newOwnerEmail } = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -1055,11 +1080,11 @@ export const handleTransferFormOwnership = [ */ export const createForm: ControllerHandler< unknown, - unknown, - { form: Omit } + DeserializeTransform | ErrorDto, + { form: CreateFormBodyDto } > = async (req, res) => { const { form: formParams } = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -1068,7 +1093,11 @@ export const createForm: ControllerHandler< .andThen((user) => AdminFormService.createForm({ ...formParams, admin: user._id }), ) - .map((createdForm) => res.status(StatusCodes.OK).json(createdForm)) + .map((createdForm) => { + return res + .status(StatusCodes.OK) + .json(createdForm as DeserializeTransform) + }) .mapErr((error) => { logger.error({ message: 'Error occurred when creating form', @@ -1112,7 +1141,7 @@ export const handleUpdateForm: ControllerHandler< > = (req, res) => { const { formId } = req.params const { form: formUpdateParams } = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return UserService.getPopulatedUserById(sessionUserId) @@ -1180,7 +1209,7 @@ export const handleDuplicateFormField: ControllerHandler< FormFieldDto | ErrorDto > = (req, res) => { const { formId, fieldId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return UserService.getPopulatedUserById(sessionUserId) @@ -1193,7 +1222,9 @@ export const handleDuplicateFormField: ControllerHandler< }), ) .andThen((form) => AdminFormService.duplicateFormField(form, fieldId)) - .map((duplicatedField) => res.status(StatusCodes.OK).json(duplicatedField)) + .map((duplicatedField) => + res.status(StatusCodes.OK).json(duplicatedField as FormFieldDto), + ) .mapErr((error) => { logger.error({ message: 'Error occurred when duplicating field', @@ -1232,7 +1263,7 @@ export const handleUpdateSettings: ControllerHandler< SettingsUpdateDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const settingsToPatch = req.body // Step 1: Retrieve currently logged in user. @@ -1280,7 +1311,7 @@ export const _handleUpdateFormField: ControllerHandler< FieldUpdateDto > = (req, res) => { const { formId, fieldId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1298,7 +1329,7 @@ export const _handleUpdateFormField: ControllerHandler< AdminFormService.updateFormField(form, fieldId, req.body), ) .map((updatedFormField) => - res.status(StatusCodes.OK).json(updatedFormField), + res.status(StatusCodes.OK).json(updatedFormField as FormFieldDto), ) .mapErr((error) => { logger.error({ @@ -1335,7 +1366,7 @@ export const handleGetSettings: ControllerHandler< FormSettings | ErrorDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return UserService.getPopulatedUserById(sessionUserId) .andThen((user) => @@ -1381,7 +1412,7 @@ export const submitEncryptPreview: ControllerHandler< EncryptSubmissionDto > = async (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // No need to process attachments as we don't do anything with them const { encryptedContent, responses, version } = req.body const logMeta = { @@ -1472,11 +1503,11 @@ export const handleEncryptPreviewSubmission = [ export const submitEmailPreview: ControllerHandler< { formId: string }, { message: string; submissionId?: string }, - { responses: FieldResponse[] }, + ParsedEmailModeSubmissionBody, { captchaResponse?: unknown } > = async (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // No need to process attachments as we don't do anything with them const { responses } = req.body const logMeta = { @@ -1664,11 +1695,11 @@ export const handleUpdateFormField = [ */ export const _handleCreateFormField: ControllerHandler< { formId: string }, - FormFieldDto | ErrorDto, + FormFieldWithId | ErrorDto, FieldCreateDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1684,7 +1715,7 @@ export const _handleCreateFormField: ControllerHandler< // Step 3: User has permissions, proceed to create form field with provided body. .andThen((form) => AdminFormService.createFormField(form, req.body)) .map((createdFormField) => - res.status(StatusCodes.OK).json(createdFormField), + res.status(StatusCodes.OK).json(createdFormField as FormFieldWithId), ) .mapErr((error) => { logger.error({ @@ -1723,7 +1754,7 @@ export const _handleCreateLogic: ControllerHandler< > = (req, res) => { const { formId } = req.params const createLogicBody = req.body - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1740,7 +1771,9 @@ export const _handleCreateLogic: ControllerHandler< .andThen((retrievedForm) => AdminFormService.createFormLogic(retrievedForm, createLogicBody), ) - .map((createdLogic) => res.status(StatusCodes.OK).json(createdLogic)) + .map((createdLogic) => + res.status(StatusCodes.OK).json(createdLogic as LogicDto), + ) .mapErr((error) => { logger.error({ message: 'Error occurred when creating form logic', @@ -1822,7 +1855,7 @@ export const handleDeleteLogic: ControllerHandler<{ logicId: string }> = (req, res) => { const { formId, logicId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1904,7 +1937,7 @@ export const _handleReorderFormField: ControllerHandler< > = (req, res) => { const { formId, fieldId } = req.params const { to } = req.query - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1920,7 +1953,7 @@ export const _handleReorderFormField: ControllerHandler< // Step 3: User has permissions, proceed to reorder field .andThen((form) => AdminFormService.reorderFormField(form, fieldId, to)) .map((reorderedFormFields) => - res.status(StatusCodes.OK).json(reorderedFormFields), + res.status(StatusCodes.OK).json(reorderedFormFields as FormFieldDto[]), ) .mapErr((error) => { logger.error({ @@ -1972,7 +2005,7 @@ export const _handleUpdateLogic: ControllerHandler< > = (req, res) => { const { formId, logicId } = req.params const updatedLogic = { ...req.body } - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -1989,7 +2022,9 @@ export const _handleUpdateLogic: ControllerHandler< .andThen((retrievedForm) => AdminFormService.updateFormLogic(retrievedForm, logicId, updatedLogic), ) - .map((updatedLogic) => res.status(StatusCodes.OK).json(updatedLogic)) + .map((updatedLogic) => + res.status(StatusCodes.OK).json(updatedLogic as LogicDto), + ) .mapErr((error) => { logger.error({ message: 'Error occurred when updating form logic', @@ -2046,7 +2081,7 @@ export const handleDeleteFormField: ControllerHandler< ErrorDto | void > = (req, res) => { const { formId, fieldId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -2099,7 +2134,7 @@ export const _handleUpdateEndPage: ControllerHandler< EndPageUpdateDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -2169,7 +2204,7 @@ export const handleGetFormField: ControllerHandler< ErrorDto | FormFieldDto > = (req, res) => { const { formId, fieldId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id return ( // Step 1: Retrieve currently logged in user. @@ -2183,7 +2218,9 @@ export const handleGetFormField: ControllerHandler< }), ) .andThen((form) => AdminFormService.getFormField(form, fieldId)) - .map((formField) => res.status(StatusCodes.OK).json(formField)) + .map((formField) => + res.status(StatusCodes.OK).json(formField as FormFieldDto), + ) .mapErr((error) => { logger.error({ message: 'Error occurred when retrieving form field', @@ -2221,7 +2258,7 @@ export const _handleUpdateCollaborators: ControllerHandler< PermissionsUpdateDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Get the form after permission checks return ( UserService.getPopulatedUserById(sessionUserId) @@ -2277,6 +2314,68 @@ export const handleUpdateCollaborators = [ _handleUpdateCollaborators, ] as ControllerHandler[] +/** + * Handler for DELETE /api/v3/admin/forms/:formId/collaborators/self + * @precondition Must be preceded by request validation + * @security session + * + * @returns 200 with updated collaborators and permissions + * @returns 403 when current user does not have permissions to remove themselves from the collaborators list + * @returns 404 when form cannot be found + * @returns 410 when updating collaborators for an archived form + * @returns 422 when user in session cannot be retrieved from the database + * @returns 500 when database error occurs + */ +export const handleRemoveSelfFromCollaborators: ControllerHandler< + { formId: string }, + PermissionsUpdateDto | ErrorDto +> = (req, res) => { + const { formId } = req.params + const sessionUserId = (req.session as AuthedSessionData).user._id + let currentUserEmail = '' + // Step 1: Get the form after permission checks + return ( + UserService.getPopulatedUserById(sessionUserId) + .andThen((user) => { + // Step 2: Retrieve form with read permission check, since we are only removing the user themselves + currentUserEmail = user.email + return AuthService.getFormAfterPermissionChecks({ + user, + formId, + level: PermissionLevel.Read, + }) + }) + // Step 3: Update the form collaborators + .andThen((form) => { + const updatedPermissionList = form.permissionList.filter( + (user) => user.email.toLowerCase() !== currentUserEmail.toLowerCase(), + ) + return AdminFormService.updateFormCollaborators( + form, + updatedPermissionList, + ) + }) + .map((updatedCollaborators) => + res.status(StatusCodes.OK).json(updatedCollaborators), + ) + .mapErr((error) => { + logger.error({ + message: 'Error occurred when updating collaborators', + meta: { + action: 'handleRemoveSelfFromCollaborators', + ...createReqMeta(req), + userId: sessionUserId, + formId, + formCollaborators: req.body, + }, + error, + }) + const { errorMessage, statusCode } = mapRouteError(error) + return res.status(statusCode).json({ message: errorMessage }) + }) + ) +} + /** * NOTE: Exported for testing. * Private handler for PUT /forms/:formId/start-page @@ -2296,7 +2395,7 @@ export const _handleUpdateStartPage: ControllerHandler< StartPageUpdateDto > = (req, res) => { const { formId } = req.params - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id // Step 1: Retrieve currently logged in user. return ( @@ -2369,3 +2468,50 @@ export const handleUpdateStartPage = [ }), _handleUpdateStartPage, ] as ControllerHandler[] + +/** + * Handler to retrieve the free sms counts used by a form's administrator and the sms verifications quota + * This is the controller for GET /admin/forms/:formId/verified-sms/count/free + * @param formId The id of the form to retrieve the free sms counts for + * @returns 200 with free sms counts and quota when successful + * @returns 404 when the formId is not found in the database + * @returns 500 when a database error occurs during retrieval + */ +export const handleGetFreeSmsCountForFormAdmin: ControllerHandler< + { + formId: string + }, + ErrorDto | SmsCountsDto +> = (req, res) => { + const { formId } = req.params + const logMeta = { + action: 'handleGetFreeSmsCountForFormAdmin', + ...createReqMeta(req), + formId, + } + + // Step 1: Check that the form exists + return ( + FormService.retrieveFormById(formId) + // Step 2: Retrieve the free sms count + .andThen(({ admin }) => { + return SmsService.retrieveFreeSmsCounts(String(admin)) + }) + // Step 3: Map/MapErr accordingly + .map((freeSmsCountForAdmin) => + res.status(StatusCodes.OK).json({ + freeSmsCounts: freeSmsCountForAdmin, + quota: smsConfig.smsVerificationLimit, + }), + ) + .mapErr((error) => { + logger.error({ + message: 'Error while retrieving sms counts for user', + meta: logMeta, + error, + }) + const { statusCode, errorMessage } = mapRouteError(error) + return res.status(statusCode).json({ message: errorMessage }) + }) + ) +} diff --git a/src/app/modules/form/admin-form/admin-form.routes.ts b/src/app/modules/form/admin-form/admin-form.routes.ts index 415fb45f35..9e73afacd4 100644 --- a/src/app/modules/form/admin-form/admin-form.routes.ts +++ b/src/app/modules/form/admin-form/admin-form.routes.ts @@ -7,7 +7,7 @@ import { celebrate, Joi as BaseJoi, Segments } from 'celebrate' import { Router } from 'express' import { ResponseMode } from '../../../../types' -import { DuplicateFormBody } from '../../../../types/api' +import { DuplicateFormBodyDto } from '../../../../types/api' import { withUserAuthentication } from '../../auth/auth.middlewares' import * as EncryptSubmissionController from '../../submission/encrypt-submission/encrypt-submission.controller' @@ -19,7 +19,7 @@ const Joi = BaseJoi.extend(JoiDate) as typeof BaseJoi // Validators const duplicateFormValidator = celebrate({ - [Segments.BODY]: Joi.object({ + [Segments.BODY]: Joi.object({ // Require valid responsesMode field. responseMode: Joi.string() .valid(...Object.values(ResponseMode)) @@ -28,12 +28,16 @@ const duplicateFormValidator = celebrate({ title: Joi.string().min(4).max(200).required(), // Require emails string (for backwards compatibility) or string array // if form to be duplicated in Email mode. - emails: Joi.alternatives() - .try(Joi.array().items(Joi.string()).min(1), Joi.string()) - .when('responseMode', { - is: ResponseMode.Email, - then: Joi.required(), - }), + emails: Joi.when('responseMode', { + is: ResponseMode.Email, + then: Joi.alternatives() + .try(Joi.array().items(Joi.string()).min(1), Joi.string()) + .required(), + // TODO (#2264): disallow the 'emails' key when responseMode is not Email + // Allow old clients to send this key but optionally and without restrictions + // on array length or type + otherwise: Joi.alternatives().try(Joi.array(), Joi.string().allow('')), + }), // Require publicKey field if form to be duplicated in Storage mode. publicKey: Joi.string() .allow('') diff --git a/src/app/modules/form/admin-form/admin-form.service.ts b/src/app/modules/form/admin-form/admin-form.service.ts index eb5c64a9bf..724dbbbe45 100644 --- a/src/app/modules/form/admin-form/admin-form.service.ts +++ b/src/app/modules/form/admin-form/admin-form.service.ts @@ -5,26 +5,26 @@ import { err, errAsync, ok, okAsync, Result, ResultAsync } from 'neverthrow' import { Except, Merge } from 'type-fest' import { - EditFieldActions, MAX_UPLOAD_FILE_SIZE, VALID_UPLOAD_FILE_TYPES, -} from '../../../../shared/constants' +} from '../../../../../shared/constants/file' +import { EditFieldActions } from '../../../../shared/constants' import { + FormFieldSchema, + FormLogicSchema, FormLogoState, - FormMetaView, FormSettings, - IFieldSchema, IForm, IFormDocument, IFormSchema, - ILogicSchema, IPopulatedForm, IUserSchema, LogicDto, Permission, } from '../../../../types' import { - DuplicateFormBody, + AdminDashboardFormMetaDto, + DuplicateFormBodyDto, EditFormFieldParams, EndPageUpdateDto, FieldCreateDto, @@ -89,7 +89,10 @@ type PresignedPostUrlParams = { */ export const getDashboardForms = ( userId: string, -): ResultAsync => { +): ResultAsync< + AdminDashboardFormMetaDto[], + MissingUserError | DatabaseError +> => { // Step 1: Verify user exists. return ( UserService.findUserById(userId) @@ -225,7 +228,7 @@ export const createPresignedPostUrlForLogos = ( * @returns List of IDs of MyInfo fields */ export const extractMyInfoFieldIds = ( - formFields: IFieldSchema[] | undefined, + formFields: FormFieldSchema[] | undefined, ): string[] => { return formFields ? formFields @@ -279,7 +282,7 @@ export const transferFormOwnership = ( return ( // Step 1: Retrieve current owner of form to transfer. - UserService.findUserById(currentForm.admin._id) + UserService.findUserById(String(currentForm.admin._id)) .andThen((currentOwner) => { // No need to transfer form ownership if new and current owners are // the same. @@ -358,24 +361,27 @@ export const transferFormOwnership = ( export const createForm = ( formParams: Merge, ): ResultAsync< - IFormSchema, + IFormDocument, | DatabaseError | DatabaseValidationError | DatabaseConflictError | DatabasePayloadSizeError > => { - return ResultAsync.fromPromise(FormModel.create(formParams), (error) => { - logger.error({ - message: 'Database error encountered when creating form', - meta: { - action: 'createForm', - formParams, - }, - error, - }) + return ResultAsync.fromPromise( + FormModel.create(formParams) as Promise, + (error) => { + logger.error({ + message: 'Database error encountered when creating form', + meta: { + action: 'createForm', + formParams, + }, + error, + }) - return transformMongoError(error) - }) + return transformMongoError(error) + }, + ) } /** @@ -388,7 +394,7 @@ export const createForm = ( export const duplicateForm = ( originalForm: IFormDocument, newAdminId: string, - overrideParams: DuplicateFormBody, + overrideParams: DuplicateFormBodyDto, ): ResultAsync => { const overrideProps = processDuplicateOverrideProps( overrideParams, @@ -439,7 +445,7 @@ export const updateFormField = ( form: IPopulatedForm, fieldId: string, newField: FieldUpdateDto, -): ResultAsync => { +): ResultAsync => { return ResultAsync.fromPromise( form.updateFormFieldById(fieldId, newField), (error) => { @@ -456,7 +462,7 @@ export const updateFormField = ( return transformMongoError(error) }, - ).andThen((updatedForm) => { + ).andThen((updatedForm) => { if (!updatedForm) { return errAsync(new FieldNotFoundError()) } @@ -479,7 +485,7 @@ export const duplicateFormField = ( form: IPopulatedForm, fieldId: string, ): ResultAsync< - IFieldSchema, + FormFieldSchema, PossibleDatabaseError | FormNotFoundError | FieldNotFoundError > => { return ResultAsync.fromPromise( @@ -499,7 +505,12 @@ export const duplicateFormField = ( }, ).andThen((updatedForm) => { if (!updatedForm) { - return errAsync(new FormNotFoundError()) + // Success means field is in initial form object but query still returned null. + // Return best guess error that form is now not found in the DB. + // Otherwise, err(FieldNotFoundError) will be returned by the function. + return getFormField(form, fieldId).asyncAndThen(() => + errAsync(new FormNotFoundError()), + ) } const updatedField = last(updatedForm.form_fields) return updatedField @@ -519,7 +530,7 @@ export const createFormField = ( form: IPopulatedForm, newField: FieldCreateDto, ): ResultAsync< - IFieldSchema, + FormFieldSchema, PossibleDatabaseError | FormNotFoundError | FieldNotFoundError > => { return ResultAsync.fromPromise(form.insertFormField(newField), (error) => { @@ -558,7 +569,10 @@ export const reorderFormField = ( form: IPopulatedForm, fieldId: string, newPosition: number, -): ResultAsync => { +): ResultAsync< + FormFieldSchema[], + PossibleDatabaseError | FieldNotFoundError +> => { return ResultAsync.fromPromise( form.reorderFormFieldById(fieldId, newPosition), (error) => { @@ -767,7 +781,7 @@ export const updateFormSettings = ( export const createFormLogic = ( form: IPopulatedForm, createLogicBody: LogicDto, -): ResultAsync => { +): ResultAsync => { // Create new form logic return ResultAsync.fromPromise( FormModel.createFormLogic(form._id, createLogicBody), @@ -805,7 +819,7 @@ export const deleteFormLogic = ( form: IPopulatedForm, logicId: string, ): ResultAsync< - IFormSchema, + IFormDocument, DatabaseError | LogicNotFoundError | FormNotFoundError > => { // First check if specified logic exists @@ -859,7 +873,7 @@ export const updateFormLogic = ( logicId: string, updatedLogic: LogicDto, ): ResultAsync< - ILogicSchema, + FormLogicSchema, DatabaseError | LogicNotFoundError | FormNotFoundError > => { // First check if specified logic exists @@ -997,7 +1011,7 @@ export const updateEndPage = ( export const getFormField = ( form: IPopulatedForm, fieldId: string, -): Result => { +): Result => { const formField = getFormFieldById(form.form_fields, fieldId) if (!formField) return err( diff --git a/src/app/modules/form/admin-form/admin-form.types.ts b/src/app/modules/form/admin-form/admin-form.types.ts index bde8301348..f308c7c410 100644 --- a/src/app/modules/form/admin-form/admin-form.types.ts +++ b/src/app/modules/form/admin-form/admin-form.types.ts @@ -1,7 +1,7 @@ import { Result } from 'neverthrow' import { - IFieldSchema, + FormFieldSchema, IForm, IPopulatedForm, IUserSchema, @@ -32,4 +32,4 @@ export type OverrideProps = { publicKey?: string } -export type EditFormFieldResult = Result +export type EditFormFieldResult = Result diff --git a/src/app/modules/form/admin-form/admin-form.utils.ts b/src/app/modules/form/admin-form/admin-form.utils.ts index b51d6d2dc5..3caa9168bc 100644 --- a/src/app/modules/form/admin-form/admin-form.utils.ts +++ b/src/app/modules/form/admin-form/admin-form.utils.ts @@ -1,15 +1,21 @@ import { StatusCodes } from 'http-status-codes' import { err, ok, Result } from 'neverthrow' +import { + reorder, + replaceAt, +} from '../../../../../shared/utils/immutable-array-fns' import { EditFieldActions } from '../../../../shared/constants' -import { reorder, replaceAt } from '../../../../shared/util/immutable-array-fns' import { - IFieldSchema, + FormFieldSchema, IPopulatedForm, ResponseMode, Status, } from '../../../../types' -import { DuplicateFormBody, EditFormFieldParams } from '../../../../types/api' +import { + DuplicateFormBodyDto, + EditFormFieldParams, +} from '../../../../types/api' import { createLoggerWithLabel } from '../../../config/logger' import { isPossibleEmailFieldSchema } from '../../../utils/field-validation/field-validation.guards' import { @@ -234,7 +240,7 @@ export const getAssertPermissionFn = (level: PermissionLevel): AssertFormFn => { * @returns override props for use in duplicating a form */ export const processDuplicateOverrideProps = ( - params: DuplicateFormBody, + params: DuplicateFormBodyDto, newAdminId: string, ): OverrideProps => { const { responseMode, title } = params @@ -265,8 +271,8 @@ export const processDuplicateOverrideProps = ( * @returns err(EditFieldError) if field to be updated does not exist */ const updateCurrentField = ( - existingFormFields: IFieldSchema[], - fieldToUpdate: IFieldSchema, + existingFormFields: FormFieldSchema[], + fieldToUpdate: FormFieldSchema, ): EditFormFieldResult => { const existingFieldPosition = existingFormFields.findIndex( (f) => f.globalId === fieldToUpdate.globalId, @@ -285,8 +291,8 @@ const updateCurrentField = ( * @returns err(EditFieldError) if field to be inserted already exists in current fields */ const insertField = ( - existingFormFields: IFieldSchema[], - fieldToInsert: IFieldSchema, + existingFormFields: FormFieldSchema[], + fieldToInsert: FormFieldSchema, ): EditFormFieldResult => { const doesFieldExist = existingFormFields.some( (f) => f.globalId === fieldToInsert.globalId, @@ -309,8 +315,8 @@ const insertField = ( * @returns err(EditFieldError) if field to be deleted does not exist */ const deleteField = ( - existingFormFields: IFieldSchema[], - fieldToDelete: IFieldSchema, + existingFormFields: FormFieldSchema[], + fieldToDelete: FormFieldSchema, ): EditFormFieldResult => { const updatedFormFields = existingFormFields.filter( (f) => f.globalId !== fieldToDelete.globalId, @@ -331,8 +337,8 @@ const deleteField = ( * @returns err(EditFieldError) if field to reorder does not exist */ const reorderField = ( - existingFormFields: IFieldSchema[], - fieldToReorder: IFieldSchema, + existingFormFields: FormFieldSchema[], + fieldToReorder: FormFieldSchema, newPosition: number, ): EditFormFieldResult => { const existingFieldPosition = existingFormFields.findIndex( @@ -353,7 +359,7 @@ const reorderField = ( * @returns err(EditFieldError) if any errors occur whilst updating fields */ export const getUpdatedFormFields = ( - currentFormFields: IFieldSchema[], + currentFormFields: FormFieldSchema[], editFieldParams: EditFormFieldParams, ): EditFormFieldResult => { const { field: fieldToUpdate, action } = editFieldParams diff --git a/src/app/modules/form/form.errors.ts b/src/app/modules/form/form.errors.ts index 2ef6c2f07c..f45b34926f 100644 --- a/src/app/modules/form/form.errors.ts +++ b/src/app/modules/form/form.errors.ts @@ -9,7 +9,7 @@ export class FormNotFoundError extends ApplicationError { } export class FormDeletedError extends ApplicationError { - constructor(message = 'Form has been deleted') { + constructor(message = 'This form is no longer active') { super(message) } } diff --git a/src/app/modules/form/form.utils.ts b/src/app/modules/form/form.utils.ts index e80a70022c..1b23ff6b24 100644 --- a/src/app/modules/form/form.utils.ts +++ b/src/app/modules/form/form.utils.ts @@ -1,8 +1,8 @@ import { + FormFieldSchema, + FormLogicSchema, IEncryptedFormSchema, - IFieldSchema, IFormSchema, - ILogicSchema, IPopulatedEmailForm, IPopulatedForm, Permission, @@ -88,8 +88,8 @@ export const isEmailModeForm = ( */ export const getFormFieldById = ( formFields: IFormSchema['form_fields'], - fieldId: IFieldSchema['_id'], -): IFieldSchema | null => { + fieldId: FormFieldSchema['_id'], +): FormFieldSchema | null => { if (!formFields) { return null } @@ -109,8 +109,8 @@ export const getFormFieldById = ( */ export const getLogicById = ( form_logics: IFormSchema['form_logics'], - logicId: ILogicSchema['_id'], -): ILogicSchema | null => { + logicId: FormLogicSchema['_id'], +): FormLogicSchema | null => { if (!form_logics) { return null } diff --git a/src/app/modules/form/public-form/__tests__/public-form.controller.spec.ts b/src/app/modules/form/public-form/__tests__/public-form.controller.spec.ts index c695f23f24..f88af52c90 100644 --- a/src/app/modules/form/public-form/__tests__/public-form.controller.spec.ts +++ b/src/app/modules/form/public-form/__tests__/public-form.controller.spec.ts @@ -31,8 +31,10 @@ import { import expressHandler from 'tests/unit/backend/helpers/jest-express' import * as AuthService from '../../../auth/auth.service' +import { MYINFO_COOKIE_NAME } from '../../../myinfo/myinfo.constants' import { MyInfoCookieStateError } from '../../../myinfo/myinfo.errors' import { MyInfoService } from '../../../myinfo/myinfo.service' +import { SGID_COOKIE_NAME } from '../../../sgid/sgid.constants' import { CreateRedirectUrlError, FetchLoginPageError, @@ -40,6 +42,7 @@ import { MissingJwtError, } from '../../../spcp/spcp.errors' import { SpcpService } from '../../../spcp/spcp.service' +import { JwtName } from '../../../spcp/spcp.types' import { AuthTypeMismatchError, FormAuthNoEsrvcIdError, @@ -220,7 +223,9 @@ describe('public-form.controller', () => { expect(MockFormService.isFormPublic).toHaveBeenCalledWith(MOCK_FORM) expect(MockPublicFormService.insertFormFeedback).not.toHaveBeenCalled() expect(mockRes.status).toHaveBeenCalledWith(410) - expect(mockRes.json).toHaveBeenCalledWith({ message: 'Gone' }) + expect(mockRes.json).toHaveBeenCalledWith({ + message: 'This form is no longer active', + }) }) it('should return 500 when database errors occur', async () => { @@ -515,7 +520,12 @@ describe('public-form.controller', () => { it('should return 200 when client authenticates using SP', async () => { // Arrange - const MOCK_SPCP_SESSION = { userName: MOCK_JWT_PAYLOAD.userName } + const MOCK_SPCP_SESSION = { + userName: MOCK_JWT_PAYLOAD.userName, + exp: 1000000000, + iat: 100000000, + rememberMe: false, + } const MOCK_SP_AUTH_FORM = { ...BASE_FORM, authType: AuthType.SP, @@ -549,7 +559,12 @@ describe('public-form.controller', () => { it('should return 200 when client authenticates using CP', async () => { // Arrange - const MOCK_SPCP_SESSION = { userName: MOCK_JWT_PAYLOAD.userName } + const MOCK_SPCP_SESSION = { + userName: MOCK_JWT_PAYLOAD.userName, + exp: 1000000000, + iat: 100000000, + rememberMe: false, + } const MOCK_CP_AUTH_FORM = { ...BASE_FORM, authType: AuthType.CP, @@ -989,6 +1004,9 @@ describe('public-form.controller', () => { describe('errors in form access', () => { const MOCK_SPCP_SESSION = { userName: 'mock', + exp: 1000000000, + iat: 100000000, + rememberMe: false, } it('should return 200 with isIntranetUser set to false when a user accesses a form from outside intranet', async () => { @@ -1455,6 +1473,116 @@ describe('public-form.controller', () => { }) }) + describe('handlePublicAuthLogout', () => { + it('should return 200 if authType is SP and call clearCookie()', async () => { + const authType = AuthType.SP + MockPublicFormService.getCookieNameByAuthType.mockReturnValueOnce( + JwtName[authType], + ) + const MOCK_REQ = expressHandler.mockRequest({ + params: { + authType, + }, + }) + const mockRes = expressHandler.mockResponse({ + clearCookie: jest.fn().mockReturnThis(), + }) + + await PublicFormController._handlePublicAuthLogout( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + expect(mockRes.status).toBeCalledWith(200) + expect(mockRes.clearCookie).toHaveBeenCalledWith(JwtName[authType]) + expect(mockRes.json).toBeCalledWith({ + message: 'Successfully logged out.', + }) + }) + + it('should return 200 if authType is CP and call clearCookie()', async () => { + const authType = AuthType.CP + MockPublicFormService.getCookieNameByAuthType.mockReturnValueOnce( + JwtName[authType], + ) + const MOCK_REQ = expressHandler.mockRequest({ + params: { + authType, + }, + }) + const mockRes = expressHandler.mockResponse({ + clearCookie: jest.fn().mockReturnThis(), + }) + + await PublicFormController._handlePublicAuthLogout( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + expect(mockRes.status).toBeCalledWith(200) + expect(mockRes.clearCookie).toHaveBeenCalledWith(JwtName[authType]) + expect(mockRes.json).toBeCalledWith({ + message: 'Successfully logged out.', + }) + }) + + it('should return 200 if authType is MyInfo and call clearCookie()', async () => { + const authType = AuthType.MyInfo + MockPublicFormService.getCookieNameByAuthType.mockReturnValueOnce( + MYINFO_COOKIE_NAME, + ) + const MOCK_REQ = expressHandler.mockRequest({ + params: { + authType, + }, + }) + const mockRes = expressHandler.mockResponse({ + clearCookie: jest.fn().mockReturnThis(), + }) + + await PublicFormController._handlePublicAuthLogout( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + expect(mockRes.status).toBeCalledWith(200) + expect(mockRes.clearCookie).toHaveBeenCalledWith(MYINFO_COOKIE_NAME) + expect(mockRes.json).toBeCalledWith({ + message: 'Successfully logged out.', + }) + }) + + it('should return 200 if authType is SGID and call clearCookie()', async () => { + const authType = AuthType.SGID + MockPublicFormService.getCookieNameByAuthType.mockReturnValueOnce( + SGID_COOKIE_NAME, + ) + const MOCK_REQ = expressHandler.mockRequest({ + params: { + authType, + }, + }) + const mockRes = expressHandler.mockResponse({ + clearCookie: jest.fn().mockReturnThis(), + }) + + await PublicFormController._handlePublicAuthLogout( + MOCK_REQ, + mockRes, + jest.fn(), + ) + + expect(mockRes.status).toBeCalledWith(200) + expect(mockRes.clearCookie).toHaveBeenCalledWith(SGID_COOKIE_NAME) + expect(mockRes.json).toBeCalledWith({ + message: 'Successfully logged out.', + }) + }) + }) + describe('handleValidateFormEsrvcId', () => { const MOCK_REQ = expressHandler.mockRequest({ params: { diff --git a/src/app/modules/form/public-form/__tests__/public-form.routes.spec.ts b/src/app/modules/form/public-form/__tests__/public-form.routes.spec.ts index ddc33e7bc2..bc9891c144 100644 --- a/src/app/modules/form/public-form/__tests__/public-form.routes.spec.ts +++ b/src/app/modules/form/public-form/__tests__/public-form.routes.spec.ts @@ -83,6 +83,9 @@ describe('public-form.routes', () => { mockSpClient.verifyJWT.mockImplementationOnce((_jwt, cb) => cb(null, { userName: MOCK_COOKIE_PAYLOAD.userName, + iat: 100000000, + exp: 1000000000, + rememberMe: false, }), ) const { form } = await dbHandler.insertEmailForm({ @@ -96,13 +99,16 @@ describe('public-form.routes', () => { const formId = form._id // NOTE: This is needed to inject admin info into the form const fullForm = await dbHandler.getFullFormById(formId) - const expectedResponseBody = JSON.parse( - JSON.stringify({ - form: fullForm?.getPublicView(), - spcpSession: { userName: MOCK_COOKIE_PAYLOAD.userName }, - isIntranetUser: false, - }), - ) + const expectedResponseBody = { + form: JSON.parse(JSON.stringify(fullForm?.getPublicView())), + spcpSession: { + userName: MOCK_COOKIE_PAYLOAD.userName, + iat: 100000000, + exp: 1000000000, + rememberMe: false, + }, + isIntranetUser: false, + } // Act // Set cookie on request @@ -120,6 +126,9 @@ describe('public-form.routes', () => { cb(null, { userName: MOCK_COOKIE_PAYLOAD.userName, userInfo: 'MyCorpPassUEN', + iat: 100000000, + exp: 1000000000, + rememberMe: false, }), ) const { form } = await dbHandler.insertEmailForm({ @@ -133,13 +142,17 @@ describe('public-form.routes', () => { const formId = form._id // NOTE: This is needed to inject admin info into the form const fullForm = await dbHandler.getFullFormById(formId) - const expectedResponseBody = JSON.parse( - JSON.stringify({ - form: fullForm?.getPublicView(), - spcpSession: { userName: MOCK_COOKIE_PAYLOAD.userName }, - isIntranetUser: false, - }), - ) + const expectedResponseBody = { + form: JSON.parse(JSON.stringify(fullForm?.getPublicView())), + spcpSession: { + userName: MOCK_COOKIE_PAYLOAD.userName, + userInfo: 'MyCorpPassUEN', + iat: 100000000, + exp: 1000000000, + rememberMe: false, + }, + isIntranetUser: false, + } // Act // Set cookie on request @@ -244,7 +257,7 @@ describe('public-form.routes', () => { }) const expectedResponseBody = JSON.parse( JSON.stringify({ - message: 'Gone', + message: 'This form is no longer active', }), ) diff --git a/src/app/modules/form/public-form/__tests__/public-form.service.spec.ts b/src/app/modules/form/public-form/__tests__/public-form.service.spec.ts index 07ea266ac0..23e3b29e8d 100644 --- a/src/app/modules/form/public-form/__tests__/public-form.service.spec.ts +++ b/src/app/modules/form/public-form/__tests__/public-form.service.spec.ts @@ -6,8 +6,11 @@ import { PartialDeep } from 'type-fest' import getFormModel from 'src/app/models/form.server.model' import getFormFeedbackModel from 'src/app/models/form_feedback.server.model' import { DatabaseError } from 'src/app/modules/core/core.errors' -import { IFormSchema } from 'src/types' +import { AuthType, IFormSchema } from 'src/types' +import { MYINFO_COOKIE_NAME } from '../../../myinfo/myinfo.constants' +import { SGID_COOKIE_NAME } from '../../../sgid/sgid.constants' +import { JwtName } from '../../../spcp/spcp.types' import { FormNotFoundError } from '../../form.errors' import * as PublicFormService from '../public-form.service' import { Metatags } from '../public-form.types' @@ -18,6 +21,52 @@ const FormModel = getFormModel(mongoose) describe('public-form.service', () => { beforeEach(() => jest.clearAllMocks()) + describe('getCookieNameByAuthType', () => { + it('should return JwtName[AuthType.SP] when authType is SP', () => { + // Arrange + const authType = AuthType.SP + + // Act + const result = PublicFormService.getCookieNameByAuthType(authType) + + // Assert + expect(result).toEqual(JwtName[AuthType.SP]) + }) + + it('should return JwtName[AuthType.CP] when authType is CP', () => { + // Arrange + const authType = AuthType.CP + + // Act + const result = PublicFormService.getCookieNameByAuthType(authType) + + // Assert + expect(result).toEqual(JwtName[AuthType.CP]) + }) + + it('should return MYINFO_COOKIE_NAME when authType is MyInfo', () => { + // Arrange + const authType = AuthType.MyInfo + + // Act + const result = PublicFormService.getCookieNameByAuthType(authType) + + // Assert + expect(result).toEqual(MYINFO_COOKIE_NAME) + }) + + it('should return SGID_COOKIE_NAME when authType is SGID', () => { + // Arrange + const authType = AuthType.SGID + + // Act + const result = PublicFormService.getCookieNameByAuthType(authType) + + // Assert + expect(result).toEqual(SGID_COOKIE_NAME) + }) + }) + describe('insertFormFeedback', () => { const MOCK_FORM_FEEDBACK = new FormFeedbackModel({ formId: new ObjectId().toHexString(), diff --git a/src/app/modules/form/public-form/public-form.controller.ts b/src/app/modules/form/public-form/public-form.controller.ts index 4a062ccaa3..5c1382a147 100644 --- a/src/app/modules/form/public-form/public-form.controller.ts +++ b/src/app/modules/form/public-form/public-form.controller.ts @@ -4,10 +4,12 @@ import { err } from 'neverthrow' import querystring from 'querystring' import { UnreachableCaseError } from 'ts-essentials' -import { AuthType } from '../../../../types' +import { FormFieldDto } from '../../../../../shared/types/field' +import { AuthType, PublicFormDto } from '../../../../types' import { ErrorDto, PrivateFormErrorDto, + PublicFormAuthLogoutDto, PublicFormAuthRedirectDto, PublicFormAuthValidateEsrvcIdDto, PublicFormViewDto, @@ -30,6 +32,8 @@ import { extractAndAssertMyInfoCookieValidity, validateMyInfoForm, } from '../../myinfo/myinfo.util' +import { SgidService } from '../../sgid/sgid.service' +import { validateSgidForm } from '../../sgid/sgid.util' import { InvalidJwtError, VerifyJwtError } from '../../spcp/spcp.errors' import { SpcpService } from '../../spcp/spcp.service' import { getRedirectTarget, validateSpcpForm } from '../../spcp/spcp.util' @@ -258,7 +262,7 @@ export const handleGetPublicForm: ControllerHandler< } const form = formResult.value - const publicForm = form.getPublicView() + const publicForm = form.getPublicView() as PublicFormDto const { authType } = form const isIntranetUser = FormService.checkIsIntranetFormAccess( getRequestIp(req), @@ -271,13 +275,13 @@ export const handleGetPublicForm: ControllerHandler< case AuthType.SP: case AuthType.CP: return SpcpService.extractJwtPayloadFromRequest(authType, req.cookies) - .map(({ userName }) => - res.json({ + .map((spcpSession) => { + return res.json({ form: publicForm, isIntranetUser, - spcpSession: { userName }, - }), - ) + spcpSession, + }) + }) .mapErr((error) => { // Report only relevant errors - verification failed for user here if ( @@ -330,7 +334,10 @@ export const handleGetPublicForm: ControllerHandler< ) .json({ spcpSession, - form: { ...publicForm, form_fields: prefilledFields }, + form: { + ...publicForm, + form_fields: prefilledFields as FormFieldDto[], + }, isIntranetUser, }) }) @@ -355,6 +362,29 @@ export const handleGetPublicForm: ControllerHandler< }) ) } + case AuthType.SGID: + return SgidService.extractSgidJwtPayload(req.cookies.jwtSgid) + .map((spcpSession) => { + return res.json({ + form: publicForm, + isIntranetUser, + spcpSession, + }) + }) + .mapErr((error) => { + // Report only relevant errors - verification failed for user here + if ( + error instanceof VerifyJwtError || + error instanceof InvalidJwtError + ) { + logger.error({ + message: 'Error getting public form', + meta: logMeta, + error, + }) + } + return res.json({ form: publicForm, isIntranetUser }) + }) default: return new UnreachableCaseError(authType) } @@ -414,8 +444,13 @@ export const _handleFormAuthRedirect: ControllerHandler< ) }) } - // NOTE: Only MyInfo and SPCP should have redirects as the point of a redirect is - // to provide auth for users from a third party + case AuthType.SGID: + return validateSgidForm(form).andThen(() => { + return SgidService.createRedirectUrl( + formId, + Boolean(isPersistentLogin), + ) + }) default: return err( new AuthTypeMismatchError(form.authType), @@ -451,6 +486,43 @@ export const handleFormAuthRedirect = [ _handleFormAuthRedirect, ] as ControllerHandler[] +/** + * NOTE: This is exported only for testing + * Logs user out of SP / CP / MyInfo / SGID by deleting cookie + * @param authType type of authentication + * + * @returns 200 with success message when user logs out successfully + * @returns 400 if authType is invalid + */ +export const _handlePublicAuthLogout: ControllerHandler< + { authType: AuthType.SP | AuthType.CP | AuthType.MyInfo | AuthType.SGID }, + PublicFormAuthLogoutDto +> = (req, res) => { + const { authType } = req.params + + const cookieName = PublicFormService.getCookieNameByAuthType(authType) + + return res + .clearCookie(cookieName) + .status(200) + .json({ message: 'Successfully logged out.' }) +} + +/** + * Handler for /forms/auth/:authType/logout + * Valid AuthTypes are SP / CP / MyInfo / SGID + */ +export const handlePublicAuthLogout = [ + celebrate({ + [Segments.PARAMS]: Joi.object({ + authType: Joi.string() + .valid(AuthType.SP, AuthType.CP, AuthType.MyInfo, AuthType.SGID) + .required(), + }), + }), + _handlePublicAuthLogout, +] as ControllerHandler[] + /** * Handler for validating the eServiceId of a given form * diff --git a/src/app/modules/form/public-form/public-form.service.ts b/src/app/modules/form/public-form/public-form.service.ts index 4548f2146a..9057977a28 100644 --- a/src/app/modules/form/public-form/public-form.service.ts +++ b/src/app/modules/form/public-form/public-form.service.ts @@ -1,11 +1,14 @@ import mongoose from 'mongoose' import { errAsync, okAsync, ResultAsync } from 'neverthrow' -import { IFormFeedbackSchema } from '../../../../types' +import { AuthType, IFormFeedbackSchema } from '../../../../types' import { createLoggerWithLabel } from '../../../config/logger' import getFormModel from '../../../models/form.server.model' import getFormFeedbackModel from '../../../models/form_feedback.server.model' import { DatabaseError } from '../../core/core.errors' +import { MYINFO_COOKIE_NAME } from '../../myinfo/myinfo.constants' +import { SGID_COOKIE_NAME } from '../../sgid/sgid.constants' +import { JwtName } from '../../spcp/spcp.types' import { FormNotFoundError } from '../form.errors' import { Metatags } from './public-form.types' @@ -56,6 +59,23 @@ export const insertFormFeedback = ({ ) } +/** + * Returns the cookie name based on auth type + * Valid AuthTypes are SP / CP / MyInfo / SGID + */ +export const getCookieNameByAuthType = ( + authType: AuthType.SP | AuthType.CP | AuthType.MyInfo | AuthType.SGID, +): string => { + switch (authType) { + case AuthType.MyInfo: + return MYINFO_COOKIE_NAME + case AuthType.SGID: + return SGID_COOKIE_NAME + default: + return JwtName[authType] + } +} + /** * Creates metatags for given formId. * @param formId the id of the form to use for metadata diff --git a/src/app/modules/form/public-form/public-form.utils.ts b/src/app/modules/form/public-form/public-form.utils.ts index db5cd0a86e..696b91c10a 100644 --- a/src/app/modules/form/public-form/public-form.utils.ts +++ b/src/app/modules/form/public-form/public-form.utils.ts @@ -1,4 +1,4 @@ -import { getReasonPhrase, StatusCodes } from 'http-status-codes' +import { StatusCodes } from 'http-status-codes' import { MapRouteError } from 'src/types' @@ -33,7 +33,7 @@ export const mapRouteError = ( case FormErrors.FormDeletedError: return { statusCode: StatusCodes.GONE, - errorMessage: getReasonPhrase(StatusCodes.GONE), + errorMessage: error.message, } case FormErrors.PrivateFormError: return { diff --git a/src/app/modules/myinfo/myinfo.util.ts b/src/app/modules/myinfo/myinfo.util.ts index e7715b6341..f5d7868982 100644 --- a/src/app/modules/myinfo/myinfo.util.ts +++ b/src/app/modules/myinfo/myinfo.util.ts @@ -5,8 +5,8 @@ import mongoose from 'mongoose' import { err, ok, Result } from 'neverthrow' import { v4 as uuidv4, validate as validateUUID } from 'uuid' -import { types as myInfoTypes } from '../../../shared/resources/myinfo' -import { hasProp } from '../../../shared/util/has-prop' +import { types as myInfoTypes } from '../../../../shared/constants/field/myinfo' +import { hasProp } from '../../../../shared/utils/has-prop' import { AuthType, BasicField, diff --git a/src/app/modules/sgid/__tests__/sgid.controller.spec.ts b/src/app/modules/sgid/__tests__/sgid.controller.spec.ts new file mode 100644 index 0000000000..abb1743ad6 --- /dev/null +++ b/src/app/modules/sgid/__tests__/sgid.controller.spec.ts @@ -0,0 +1,200 @@ +import { err, errAsync, ok, okAsync } from 'neverthrow' +import { mocked } from 'ts-jest/utils' + +import config from 'src/app/config/config' +import * as RealFormService from 'src/app/modules/form/form.service' +import { MOCK_COOKIE_AGE } from 'src/app/modules/myinfo/__tests__/myinfo.test.constants' + +import expressHandler from 'tests/unit/backend/helpers/jest-express' + +import { ApplicationError } from '../../core/core.errors' +import { FormNotFoundError } from '../../form/form.errors' +import { SGID_COOKIE_NAME } from '../sgid.constants' +import * as SgidController from '../sgid.controller' +import { + SgidFetchAccessTokenError, + SgidFetchUserInfoError, + SgidInvalidStateError, +} from '../sgid.errors' +import { SgidService as RealSgidService } from '../sgid.service' + +import { + MOCK_AUTH_CODE, + MOCK_COOKIE_SETTINGS, + MOCK_DESTINATION, + MOCK_JWT, + MOCK_REMEMBER_ME, + MOCK_SGID_FORM, + MOCK_SP_FORM, + MOCK_STATE, + MOCK_TARGET, + MOCK_TOKEN_RESULT, + MOCK_USER_INFO, +} from './sgid.test.constants' + +jest.mock('../sgid.service') +const SgidService = mocked(RealSgidService, true) +jest.mock('src/app/modules/form/form.service') +const FormService = mocked(RealFormService, true) +jest.mock('src/app/config/config') +const MockConfig = mocked(config, true) +MockConfig.isDev = false + +const MOCK_RESPONSE = expressHandler.mockResponse() +const MOCK_LOGIN_REQ = expressHandler.mockRequest({ + query: { code: MOCK_AUTH_CODE, state: MOCK_STATE }, +}) + +describe('sgid.controller', () => { + beforeEach(() => jest.clearAllMocks()) + afterAll(() => jest.clearAllMocks()) + + describe('handleLogin', () => { + beforeEach(() => { + SgidService.parseState.mockReturnValue( + ok({ + formId: MOCK_TARGET, + rememberMe: MOCK_REMEMBER_ME, + }), + ) + FormService.retrieveFullFormById.mockReturnValue(okAsync(MOCK_SGID_FORM)) + SgidService.retrieveAccessToken.mockReturnValue( + okAsync(MOCK_TOKEN_RESULT), + ) + SgidService.retrieveUserInfo.mockReturnValue(okAsync(MOCK_USER_INFO)) + SgidService.createJwt.mockReturnValue( + ok({ jwt: MOCK_JWT, maxAge: MOCK_COOKIE_AGE }), + ) + SgidService.getCookieSettings.mockReturnValue(MOCK_COOKIE_SETTINGS) + }) + + it('should return 400 when state cannot be parsed', async () => { + SgidService.parseState.mockReturnValue(err(new SgidInvalidStateError())) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(MOCK_RESPONSE.sendStatus).toHaveBeenCalledWith(400) + expect(MOCK_RESPONSE.cookie).not.toHaveBeenCalled() + expect(MOCK_RESPONSE.redirect).not.toHaveBeenCalled() + expect(FormService.retrieveFullFormById).not.toHaveBeenCalled() + expect(SgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(SgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(SgidService.createJwt).not.toHaveBeenCalled() + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should return 404 when form cannot be found', async () => { + FormService.retrieveFullFormById.mockReturnValue( + errAsync(new FormNotFoundError()), + ) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(MOCK_RESPONSE.sendStatus).toHaveBeenCalledWith(404) + expect(MOCK_RESPONSE.cookie).not.toHaveBeenCalled() + expect(MOCK_RESPONSE.redirect).not.toHaveBeenCalled() + expect(SgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(SgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(SgidService.createJwt).not.toHaveBeenCalled() + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when form has wrong auth type', async () => { + FormService.retrieveFullFormById.mockReturnValue( + // Note that this is a CorpPass form + okAsync(MOCK_SP_FORM), + ) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('isLoginError', true) + expect(MOCK_RESPONSE.redirect).toHaveBeenCalledWith(MOCK_DESTINATION) + expect(SgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(SgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(SgidService.createJwt).not.toHaveBeenCalled() + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when sgidService.token errors', async () => { + SgidService.retrieveAccessToken.mockReturnValue( + errAsync(new SgidFetchAccessTokenError()), + ) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('isLoginError', true) + expect(MOCK_RESPONSE.redirect).toHaveBeenCalledWith(MOCK_DESTINATION) + expect(SgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(SgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(SgidService.createJwt).not.toHaveBeenCalled() + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when sgidService.userinfo errors', async () => { + SgidService.retrieveUserInfo.mockReturnValue( + errAsync(new SgidFetchUserInfoError()), + ) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(SgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(SgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('isLoginError', true) + expect(MOCK_RESPONSE.redirect).toHaveBeenCalledWith(MOCK_DESTINATION) + expect(SgidService.createJwt).not.toHaveBeenCalled() + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when createJWT errors', async () => { + SgidService.createJwt.mockReturnValue(err(new ApplicationError())) + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(SgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(SgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(SgidService.createJwt).toHaveBeenCalledWith( + MOCK_USER_INFO.data, + MOCK_REMEMBER_ME, + ) + expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('isLoginError', true) + expect(MOCK_RESPONSE.redirect).toHaveBeenCalledWith(MOCK_DESTINATION) + expect(SgidService.getCookieSettings).not.toHaveBeenCalled() + }) + it('should set the cookie with the correct params and redirect to the destination', async () => { + await SgidController.handleLogin(MOCK_LOGIN_REQ, MOCK_RESPONSE, jest.fn()) + expect(SgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(SgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(SgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(SgidService.createJwt).toHaveBeenCalledWith( + MOCK_USER_INFO.data, + MOCK_REMEMBER_ME, + ) + expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith( + SGID_COOKIE_NAME, + MOCK_JWT, + { + maxAge: MOCK_COOKIE_AGE, + httpOnly: true, + sameSite: 'lax', + secure: !MockConfig.isDev, + ...MOCK_COOKIE_SETTINGS, + }, + ) + expect(MOCK_RESPONSE.redirect).toHaveBeenCalledWith(MOCK_DESTINATION) + }) + }) +}) diff --git a/src/app/modules/sgid/__tests__/sgid.routes.spec.ts b/src/app/modules/sgid/__tests__/sgid.routes.spec.ts new file mode 100644 index 0000000000..d4411cc4cd --- /dev/null +++ b/src/app/modules/sgid/__tests__/sgid.routes.spec.ts @@ -0,0 +1,268 @@ +import { err, errAsync, ok, okAsync } from 'neverthrow' +import session from 'supertest-session' +import { mocked } from 'ts-jest/utils' + +import config from 'src/app/config/config' +import * as RealFormService from 'src/app/modules/form/form.service' +import { MOCK_COOKIE_AGE } from 'src/app/modules/myinfo/__tests__/myinfo.test.constants' + +import { setupApp } from 'tests/integration/helpers/express-setup' +import { buildCelebrateError } from 'tests/unit/backend/helpers/celebrate' + +import { ApplicationError } from '../../core/core.errors' +import { FormNotFoundError } from '../../form/form.errors' +import { SGID_COOKIE_NAME } from '../sgid.constants' +import { + SgidFetchAccessTokenError, + SgidFetchUserInfoError, + SgidInvalidStateError, +} from '../sgid.errors' +import { SgidRouter } from '../sgid.routes' +import { SgidService as RealSgidService } from '../sgid.service' + +import { + MOCK_AUTH_CODE, + MOCK_COOKIE_SETTINGS, + MOCK_DESTINATION, + MOCK_JWT, + MOCK_REMEMBER_ME, + MOCK_SGID_FORM, + MOCK_SP_FORM, + MOCK_STATE, + MOCK_TARGET, + MOCK_TOKEN_RESULT, + MOCK_USER_INFO, +} from './sgid.test.constants' + +jest.mock('../sgid.service') +const sgidService = mocked(RealSgidService, true) +jest.mock('src/app/modules/form/form.service') +const FormService = mocked(RealFormService, true) +jest.mock('src/app/config/config') +const MockConfig = mocked(config, true) +MockConfig.isDev = false + +const app = setupApp('/sgid', SgidRouter) + +const MOCK_LOGIN_QUERY = { code: MOCK_AUTH_CODE, state: MOCK_STATE } + +describe('sgid.controller', () => { + beforeEach(() => jest.clearAllMocks()) + afterAll(() => jest.clearAllMocks()) + const LOGIN_ROUTE = '/sgid/login' + describe(`GET ${LOGIN_ROUTE}`, () => { + beforeEach(() => { + sgidService.parseState.mockReturnValue( + ok({ + formId: MOCK_TARGET, + rememberMe: MOCK_REMEMBER_ME, + }), + ) + FormService.retrieveFullFormById.mockReturnValue(okAsync(MOCK_SGID_FORM)) + sgidService.retrieveAccessToken.mockReturnValue( + okAsync(MOCK_TOKEN_RESULT), + ) + sgidService.retrieveUserInfo.mockReturnValue(okAsync(MOCK_USER_INFO)) + sgidService.createJwt.mockReturnValue( + ok({ jwt: MOCK_JWT, maxAge: MOCK_COOKIE_AGE }), + ) + sgidService.getCookieSettings.mockReturnValue(MOCK_COOKIE_SETTINGS) + }) + + it('should return 400 on missing code', async () => { + sgidService.parseState.mockReturnValue(err(new SgidInvalidStateError())) + const response = await session(app) + .get(LOGIN_ROUTE) + .query({ state: MOCK_LOGIN_QUERY.state }) + + expect(response.status).toBe(400) + expect(response.body).toEqual( + buildCelebrateError({ query: { key: 'code' } }), + ) + + expect(sgidService.parseState).not.toHaveBeenCalled() + expect(FormService.retrieveFullFormById).not.toHaveBeenCalled() + expect(sgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should return 400 on missing state', async () => { + sgidService.parseState.mockReturnValue(err(new SgidInvalidStateError())) + const response = await session(app) + .get(LOGIN_ROUTE) + .query({ code: MOCK_LOGIN_QUERY.code }) + + expect(response.status).toBe(400) + expect(response.body).toEqual( + buildCelebrateError({ query: { key: 'state' } }), + ) + + expect(sgidService.parseState).not.toHaveBeenCalled() + expect(FormService.retrieveFullFormById).not.toHaveBeenCalled() + expect(sgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should return 400 when state cannot be parsed', async () => { + sgidService.parseState.mockReturnValue(err(new SgidInvalidStateError())) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.status).toBe(400) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).not.toHaveBeenCalled() + expect(sgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should return 404 when form cannot be found', async () => { + FormService.retrieveFullFormById.mockReturnValue( + errAsync(new FormNotFoundError()), + ) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.status).toBe(404) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when form has wrong auth type', async () => { + FormService.retrieveFullFormById.mockReturnValue( + // Note that this is a SingPass form + okAsync(MOCK_SP_FORM), + ) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.headers['set-cookie']).toEqual([ + expect.stringContaining('isLoginError=true'), + ]) + expect(response.status).toBe(302) + expect(response.headers['location']).toEqual(MOCK_DESTINATION) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).not.toHaveBeenCalled() + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when sgidService.token errors', async () => { + sgidService.retrieveAccessToken.mockReturnValue( + errAsync(new SgidFetchAccessTokenError()), + ) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.headers['set-cookie']).toEqual([ + expect.stringContaining('isLoginError=true'), + ]) + expect(response.status).toBe(302) + expect(response.headers['location']).toEqual(MOCK_DESTINATION) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(sgidService.retrieveUserInfo).not.toHaveBeenCalled() + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when sgidService.userinfo errors', async () => { + sgidService.retrieveUserInfo.mockReturnValue( + errAsync(new SgidFetchUserInfoError()), + ) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.headers['set-cookie']).toEqual([ + expect.stringContaining('isLoginError=true'), + ]) + expect(response.status).toBe(302) + expect(response.headers['location']).toEqual(MOCK_DESTINATION) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(sgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(sgidService.createJwt).not.toHaveBeenCalled() + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + + it('should set isLoginError cookie and redirect when createJWT errors', async () => { + sgidService.createJwt.mockReturnValue(err(new ApplicationError())) + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.headers['set-cookie']).toEqual([ + expect.stringContaining('isLoginError=true'), + ]) + expect(response.status).toBe(302) + expect(response.headers['location']).toEqual(MOCK_DESTINATION) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(sgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(sgidService.createJwt).toHaveBeenCalledWith( + MOCK_USER_INFO.data, + MOCK_REMEMBER_ME, + ) + expect(sgidService.getCookieSettings).not.toHaveBeenCalled() + }) + it('should set the cookie with the correct params and redirect to the destination', async () => { + const response = await session(app) + .get(LOGIN_ROUTE) + .query(MOCK_LOGIN_QUERY) + + expect(response.headers['set-cookie']).toEqual([ + expect.stringContaining(`${SGID_COOKIE_NAME}=${MOCK_JWT}`), + ]) + expect(response.status).toBe(302) + expect(response.headers['location']).toEqual(MOCK_DESTINATION) + + expect(sgidService.parseState).toHaveBeenCalledWith(MOCK_STATE) + expect(FormService.retrieveFullFormById).toHaveBeenCalledWith(MOCK_TARGET) + expect(sgidService.retrieveAccessToken).toHaveBeenCalledWith( + MOCK_AUTH_CODE, + ) + expect(sgidService.retrieveUserInfo).toHaveBeenCalledWith( + MOCK_TOKEN_RESULT, + ) + expect(sgidService.createJwt).toHaveBeenCalledWith( + MOCK_USER_INFO.data, + MOCK_REMEMBER_ME, + ) + }) + }) +}) diff --git a/src/app/modules/sgid/__tests__/sgid.service.spec.ts b/src/app/modules/sgid/__tests__/sgid.service.spec.ts new file mode 100644 index 0000000000..dcbdbff431 --- /dev/null +++ b/src/app/modules/sgid/__tests__/sgid.service.spec.ts @@ -0,0 +1,255 @@ +import { SgidClient } from '@opengovsg/sgid-client' +import fs from 'fs' +import { mocked } from 'ts-jest/utils' + +import { + SgidCreateRedirectUrlError, + SgidFetchAccessTokenError, + SgidFetchUserInfoError, + SgidInvalidJwtError, + SgidInvalidStateError, + SgidMissingJwtError, + SgidVerifyJwtError, +} from '../sgid.errors' +import { SgidServiceClass } from '../sgid.service' + +import { + MOCK_ACCESS_TOKEN, + MOCK_AUTH_CODE, + MOCK_DESTINATION, + MOCK_JWT, + MOCK_JWT_PAYLOAD, + MOCK_NONCE, + MOCK_OPTIONS, + MOCK_REDIRECT_URL, + MOCK_REMEMBER_ME, + MOCK_STATE, + MOCK_TOKEN_RESULT, + MOCK_USER_INFO, +} from './sgid.test.constants' + +jest.mock('@opengovsg/sgid-client') +const MockSgidClient = mocked(SgidClient, true) +jest.mock('fs', () => ({ + ...(jest.requireActual('fs') as typeof fs), + readFileSync: jest.fn().mockImplementation((v) => v), +})) + +describe('sgid.service', () => { + beforeEach(async () => { + jest.clearAllMocks() + }) + describe('constructor', () => { + it('should create an SgidClient correctly', () => { + const { endpoint, clientId, clientSecret, privateKeyPath, redirectUri } = + MOCK_OPTIONS + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + expect(SgidService).toBeInstanceOf(SgidServiceClass) + expect(MockSgidClient).toHaveBeenCalledWith({ + endpoint, + clientId, + clientSecret, + privateKey: privateKeyPath, + redirectUri, + }) + }) + }) + describe('createRedirectUrl', () => { + it('should return a string if ok', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.authorizationUrl.mockReturnValue({ + url: MOCK_REDIRECT_URL, + nonce: MOCK_NONCE, + }) + const url = SgidService.createRedirectUrl( + MOCK_DESTINATION, + MOCK_REMEMBER_ME, + ) + expect(url._unsafeUnwrap()).toEqual(MOCK_REDIRECT_URL) + expect(sgidClient.authorizationUrl).toHaveBeenCalledWith(MOCK_STATE) + }) + it('should return error if not ok', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.authorizationUrl.mockReturnValue({ + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + url: undefined, + nonce: MOCK_NONCE, + }) + const url = SgidService.createRedirectUrl( + MOCK_DESTINATION, + MOCK_REMEMBER_ME, + ) + expect(url._unsafeUnwrapErr()).toBeInstanceOf(SgidCreateRedirectUrlError) + expect(sgidClient.authorizationUrl).toHaveBeenCalledWith(MOCK_STATE) + }) + }) + describe('parseState', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + it('should parse state', () => { + const state = SgidService.parseState(MOCK_STATE) + expect(state._unsafeUnwrap()).toStrictEqual({ + formId: MOCK_DESTINATION, + rememberMe: MOCK_REMEMBER_ME, + }) + }) + it('should error on invalid state', () => { + const state = SgidService.parseState('') + expect(state._unsafeUnwrapErr()).toBeInstanceOf(SgidInvalidStateError) + }) + }) + describe('token', () => { + it('should return the access token given the code', async () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.callback.mockResolvedValue(MOCK_TOKEN_RESULT) + const result = await SgidService.retrieveAccessToken(MOCK_AUTH_CODE) + expect(result._unsafeUnwrap()).toStrictEqual(MOCK_TOKEN_RESULT) + expect(sgidClient.callback).toHaveBeenCalledWith(MOCK_AUTH_CODE) + }) + it('should return error on error', async () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.callback.mockRejectedValue(new Error()) + const result = await SgidService.retrieveAccessToken(MOCK_AUTH_CODE) + expect(result._unsafeUnwrapErr()).toBeInstanceOf( + SgidFetchAccessTokenError, + ) + expect(sgidClient.callback).toHaveBeenCalledWith(MOCK_AUTH_CODE) + }) + }) + describe('userInfo', () => { + it('should return the userinfo given the code', async () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.userinfo.mockResolvedValue({ + sub: MOCK_USER_INFO.sub, + data: { + ...MOCK_USER_INFO.data, + 'myinfo.name': 'not supposed to be here', + }, + }) + const result = await SgidService.retrieveUserInfo({ + accessToken: MOCK_ACCESS_TOKEN, + }) + expect(result._unsafeUnwrap()).toStrictEqual(MOCK_USER_INFO) + expect(sgidClient.userinfo).toHaveBeenCalledWith(MOCK_ACCESS_TOKEN) + }) + it('should return error on error', async () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.userinfo.mockRejectedValue(new Error()) + const result = await SgidService.retrieveUserInfo({ + accessToken: MOCK_ACCESS_TOKEN, + }) + expect(result._unsafeUnwrapErr()).toBeInstanceOf(SgidFetchUserInfoError) + expect(sgidClient.userinfo).toHaveBeenCalledWith(MOCK_ACCESS_TOKEN) + }) + }) + describe('createJwt', () => { + it('should return a jwt with short shelf life', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.createJWT.mockReturnValue(MOCK_JWT) + const result = SgidService.createJwt(MOCK_USER_INFO.data, false) + expect(result._unsafeUnwrap()).toStrictEqual({ + jwt: MOCK_JWT, + maxAge: MOCK_OPTIONS.cookieMaxAge, + }) + expect(sgidClient.createJWT).toHaveBeenCalledWith( + { + userName: MOCK_USER_INFO.data['myinfo.nric_number'], + rememberMe: false, + }, + MOCK_OPTIONS.cookieMaxAge / 1000, + ) + }) + + it('should return a jwt with long shelf life', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.createJWT.mockReturnValue(MOCK_JWT) + const result = SgidService.createJwt(MOCK_USER_INFO.data, true) + expect(result._unsafeUnwrap()).toStrictEqual({ + jwt: MOCK_JWT, + maxAge: MOCK_OPTIONS.cookieMaxAgePreserved, + }) + expect(sgidClient.createJWT).toHaveBeenCalledWith( + { + userName: MOCK_USER_INFO.data['myinfo.nric_number'], + rememberMe: true, + }, + MOCK_OPTIONS.cookieMaxAgePreserved / 1000, + ) + }) + }) + describe('extractSgidJwtPayload', () => { + it('should return an sgID JWT payload', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.verifyJWT.mockReturnValue(MOCK_JWT_PAYLOAD) + const result = SgidService.extractSgidJwtPayload(MOCK_JWT) + expect(result._unsafeUnwrap()).toStrictEqual(MOCK_JWT_PAYLOAD) + expect(sgidClient.verifyJWT).toHaveBeenCalledWith( + MOCK_JWT, + MOCK_OPTIONS.publicKeyPath, + ) + }) + + it('should return SgidMissingJwtError on malformed payload', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.verifyJWT.mockReturnValue({}) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const result = SgidService.extractSgidJwtPayload(undefined) + expect(result._unsafeUnwrapErr()).toBeInstanceOf(SgidMissingJwtError) + expect(sgidClient.verifyJWT).not.toHaveBeenCalled() + }) + + it('should return SgidInvalidJwtError on malformed payload', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.verifyJWT.mockReturnValue({}) + const result = SgidService.extractSgidJwtPayload(MOCK_JWT) + expect(result._unsafeUnwrapErr()).toBeInstanceOf(SgidInvalidJwtError) + expect(sgidClient.verifyJWT).toHaveBeenCalledWith( + MOCK_JWT, + MOCK_OPTIONS.publicKeyPath, + ) + }) + it('should return SgidVerifyJwtError on verify failure', () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const sgidClient = mocked(MockSgidClient.mock.instances[0], true) + sgidClient.verifyJWT.mockImplementation(() => { + throw new Error() + }) + const result = SgidService.extractSgidJwtPayload(MOCK_JWT) + expect(result._unsafeUnwrapErr()).toBeInstanceOf(SgidVerifyJwtError) + expect(sgidClient.verifyJWT).toHaveBeenCalledWith( + MOCK_JWT, + MOCK_OPTIONS.publicKeyPath, + ) + }) + }) + describe('getCookieSettings', () => { + it('should return a domain object if domain is defined', async () => { + const SgidService = new SgidServiceClass(MOCK_OPTIONS) + const cookieSettings = SgidService.getCookieSettings() + expect(cookieSettings).toStrictEqual({ + domain: MOCK_OPTIONS.cookieDomain, + path: '/', + }) + }) + it('should return an empty object if domain is not defined', async () => { + const SgidService = new SgidServiceClass({ + ...MOCK_OPTIONS, + cookieDomain: '', + }) + const cookieSettings = SgidService.getCookieSettings() + expect(cookieSettings).toStrictEqual({}) + }) + }) +}) diff --git a/src/app/modules/sgid/__tests__/sgid.test.constants.ts b/src/app/modules/sgid/__tests__/sgid.test.constants.ts new file mode 100644 index 0000000000..814ca93757 --- /dev/null +++ b/src/app/modules/sgid/__tests__/sgid.test.constants.ts @@ -0,0 +1,77 @@ +import { ObjectId } from 'bson' +import _ from 'lodash' + +import { IPopulatedForm } from 'src/types' + +import { MOCK_COOKIE_AGE } from '../../myinfo/__tests__/myinfo.test.constants' + +export const MOCK_TARGET = new ObjectId().toHexString() +export const MOCK_DESTINATION = `/${MOCK_TARGET}` +export const MOCK_REDIRECT_URL = 'redirectUrl' +export const MOCK_REMEMBER_ME = true +export const MOCK_STATE = `${MOCK_DESTINATION},${MOCK_REMEMBER_ME}` +export const MOCK_TITLE = 'title' +export const MOCK_JWT = 'jwt' + +export const MOCK_MAX_AGE = 4 * 60 * 60 + +export const MOCK_AUTH_CODE = 'mock-authorization-code' + +export const MOCK_ACCESS_TOKEN = 'mock-access-token' + +export const MOCK_SUBJECT = 'mock-subject-proxy-id' + +export const MOCK_TOKEN_RESULT = { + sub: MOCK_SUBJECT, + accessToken: MOCK_ACCESS_TOKEN, +} + +export const MOCK_USER_INFO = { + sub: MOCK_SUBJECT, + data: { 'myinfo.nric_number': 'S9322889A' }, +} + +export const MOCK_JWT_PAYLOAD = { + userName: MOCK_USER_INFO.data['myinfo.nric_number'], +} + +export const MOCK_SGID_FORM = { + authType: 'SGID', + title: 'Mock SGID form', + _id: new ObjectId().toHexString(), + admin: { + _id: new ObjectId().toHexString(), + agency: new ObjectId().toHexString(), + }, + getPublicView: () => _.omit(this, 'admin'), +} as unknown as IPopulatedForm + +export const MOCK_SP_FORM = { + authType: 'SP', + title: 'Mock SP form', + _id: new ObjectId().toHexString(), + admin: { + _id: new ObjectId().toHexString(), + agency: new ObjectId().toHexString(), + }, + getPublicView: () => _.omit(this, 'admin'), +} as unknown as IPopulatedForm + +export const MOCK_COOKIE_SETTINGS = { + domain: 'domain', + path: 'path', +} + +export const MOCK_NONCE = 'nonce' + +export const MOCK_OPTIONS = { + endpoint: 'http://localhost/', + clientId: 'client-id', + clientSecret: 'client-secret', + privateKeyPath: 'private-key', + publicKeyPath: 'public-key', + redirectUri: MOCK_REDIRECT_URL, + cookieDomain: MOCK_COOKIE_SETTINGS.domain, + cookieMaxAge: MOCK_COOKIE_AGE, + cookieMaxAgePreserved: MOCK_COOKIE_AGE * 2, +} diff --git a/src/app/modules/sgid/sgid.constants.ts b/src/app/modules/sgid/sgid.constants.ts new file mode 100644 index 0000000000..69545f5d9a --- /dev/null +++ b/src/app/modules/sgid/sgid.constants.ts @@ -0,0 +1,5 @@ +/** + * Name of cookie which contains state of sgid login, and access + * token if login was successful. + */ +export const SGID_COOKIE_NAME = 'jwtSgid' diff --git a/src/app/modules/sgid/sgid.controller.ts b/src/app/modules/sgid/sgid.controller.ts new file mode 100644 index 0000000000..e4b26bc9b1 --- /dev/null +++ b/src/app/modules/sgid/sgid.controller.ts @@ -0,0 +1,83 @@ +import { ParamsDictionary } from 'express-serve-static-core' +import { StatusCodes } from 'http-status-codes' + +import { AuthType } from '../../../types' +import config from '../../config/config' +import { createLoggerWithLabel } from '../../config/logger' +import { ControllerHandler } from '../core/core.types' +import * as FormService from '../form/form.service' + +import { SGID_COOKIE_NAME } from './sgid.constants' +import { SgidService } from './sgid.service' + +const logger = createLoggerWithLabel(module) + +export const handleLogin: ControllerHandler< + ParamsDictionary, + unknown, + unknown, + { code: string; state: string } +> = async (req, res) => { + const { code, state } = req.query + const meta = { action: 'handleLogin', code, state } + + const parsedState = SgidService.parseState(state) + + if (parsedState.isErr()) { + logger.error({ + message: 'Invalid state sent from sgID', + meta, + error: parsedState.error, + }) + return res.sendStatus(StatusCodes.BAD_REQUEST) + } + + const { formId, rememberMe } = parsedState.value + const formResult = await FormService.retrieveFullFormById(formId) + if (formResult.isErr()) { + logger.error({ + message: 'Form not found', + meta, + error: formResult.error, + }) + return res.sendStatus(StatusCodes.NOT_FOUND) + } + + const form = formResult.value + if (form.authType !== AuthType.SGID) { + logger.error({ + message: "Log in attempt to wrong endpoint for form's authType", + meta: { + ...meta, + formAuthType: form.authType, + endpointAuthType: AuthType.SGID, + }, + }) + res.cookie('isLoginError', true) + return res.redirect(`/${formId}`) + } + + const jwtResult = await SgidService.retrieveAccessToken(code) + .andThen((data) => SgidService.retrieveUserInfo(data)) + .andThen(({ data }) => SgidService.createJwt(data, rememberMe)) + + if (jwtResult.isErr()) { + logger.error({ + message: 'Error while handling login via sgID', + meta, + error: jwtResult.error, + }) + res.cookie('isLoginError', true) + return res.redirect(`/${formId}`) + } + + const { maxAge, jwt } = jwtResult.value + res.cookie(SGID_COOKIE_NAME, jwt, { + maxAge, + httpOnly: true, + sameSite: 'lax', // Setting to 'strict' prevents Singpass login on Safari, Firefox + secure: !config.isDev, + ...SgidService.getCookieSettings(), + }) + return res.redirect(`/${formId}`) +} diff --git a/src/app/modules/sgid/sgid.errors.ts b/src/app/modules/sgid/sgid.errors.ts new file mode 100644 index 0000000000..0d0467ddbe --- /dev/null +++ b/src/app/modules/sgid/sgid.errors.ts @@ -0,0 +1,52 @@ +import { ApplicationError } from '../../modules/core/core.errors' + +export class SgidCreateRedirectUrlError extends ApplicationError { + constructor(message = 'Error while creating redirect URL') { + super(message) + } +} + +export class SgidInvalidStateError extends ApplicationError { + constructor(message = 'State given by sgID is malformed') { + super(message) + } +} + +export class SgidFetchAccessTokenError extends ApplicationError { + constructor(message = 'Error while fetching access token') { + super(message) + } +} + +export class SgidFetchUserInfoError extends ApplicationError { + constructor(message = 'Error while fetching user info') { + super(message) + } +} + +/** + * JWT could not be decoded. + */ +export class SgidVerifyJwtError extends ApplicationError { + constructor(message = 'Invalid JWT') { + super(message) + } +} + +/** + * JWT could be decoded but has the wrong shape + */ +export class SgidInvalidJwtError extends ApplicationError { + constructor(message = 'Decoded JWT did not contain the correct attributes') { + super(message) + } +} + +/** + * JWT not present in cookies + */ +export class SgidMissingJwtError extends ApplicationError { + constructor(message = 'No JWT present in cookies') { + super(message) + } +} diff --git a/src/app/modules/sgid/sgid.middlewares.ts b/src/app/modules/sgid/sgid.middlewares.ts new file mode 100644 index 0000000000..375b0657f8 --- /dev/null +++ b/src/app/modules/sgid/sgid.middlewares.ts @@ -0,0 +1,8 @@ +import { celebrate, Joi, Segments } from 'celebrate' + +export const validateLoginRequest = celebrate({ + [Segments.QUERY]: Joi.object({ + code: Joi.string().required(), + state: Joi.string().required(), + }), +}) diff --git a/src/app/modules/sgid/sgid.routes.ts b/src/app/modules/sgid/sgid.routes.ts new file mode 100644 index 0000000000..1cb0f81a2c --- /dev/null +++ b/src/app/modules/sgid/sgid.routes.ts @@ -0,0 +1,8 @@ +import { Router } from 'express' + +import { handleLogin } from './sgid.controller' +import { validateLoginRequest } from './sgid.middlewares' + +export const SgidRouter = Router() + +SgidRouter.get('/login', validateLoginRequest, handleLogin) diff --git a/src/app/modules/sgid/sgid.service.ts b/src/app/modules/sgid/sgid.service.ts new file mode 100644 index 0000000000..df6df92b85 --- /dev/null +++ b/src/app/modules/sgid/sgid.service.ts @@ -0,0 +1,236 @@ +import { SgidClient } from '@opengovsg/sgid-client' +import fs from 'fs' +import { err, ok, Result, ResultAsync } from 'neverthrow' + +import { sgid } from '../../config/features/sgid.config' +import { createLoggerWithLabel } from '../../config/logger' +import { ApplicationError } from '../core/core.errors' + +import { + SgidCreateRedirectUrlError, + SgidFetchAccessTokenError, + SgidFetchUserInfoError, + SgidInvalidJwtError, + SgidInvalidStateError, + SgidMissingJwtError, + SgidVerifyJwtError, +} from './sgid.errors' +import { isSgidJwtPayload } from './sgid.util' + +const logger = createLoggerWithLabel(module) + +export class SgidServiceClass { + private client: SgidClient + + private publicKeyPath: string | Buffer + + private cookieDomain: string + private cookieMaxAge: number + private cookieMaxAgePreserved: number + + constructor({ + cookieDomain, + cookieMaxAge, + cookieMaxAgePreserved, + privateKeyPath, + publicKeyPath, + ...sgidOptions + }: { + endpoint: string + clientId: string + clientSecret: string + privateKeyPath: string + publicKeyPath: string + redirectUri: string + cookieDomain: string + cookieMaxAge: number + cookieMaxAgePreserved: number + }) { + this.client = new SgidClient({ + ...sgidOptions, + privateKey: fs.readFileSync(privateKeyPath), + }) + this.publicKeyPath = fs.readFileSync(publicKeyPath) + this.cookieDomain = cookieDomain + this.cookieMaxAge = cookieMaxAge + this.cookieMaxAgePreserved = cookieMaxAgePreserved + } + + /** + * Create a URL to sgID which is used to redirect the user for authentication + * @param formId - the form id to redirect to after authentication + * @param rememberMe - whether we create a JWT that remembers the user + * for an extended period of time + */ + createRedirectUrl( + formId: string, + rememberMe: boolean, + ): Result { + const state = `${formId},${rememberMe}` + const logMeta = { + action: 'createRedirectUrl', + state, + } + const result = this.client.authorizationUrl(state) + if (typeof result.url === 'string') { + return ok(result.url) + } else { + logger.error({ + message: 'Error while creating redirect URL', + meta: logMeta, + error: result, + }) + return err(new SgidCreateRedirectUrlError()) + } + } + + /** + * Parses the string serialization containing the form id and if the + * user should be remembered, both needed when redirecting the user back to + * the form post-authentication + * @param state - a comma-separated string of the form id and a boolean flag + * indicating if the user should be remembered + * @returns {Result<{ formId: string; rememberMe: boolean }, SgidInvalidStateError>} + * the form id and whether the user should be remembered + */ + parseState( + state: string, + ): Result<{ formId: string; rememberMe: boolean }, SgidInvalidStateError> { + const [formId, rememberMeStr] = state.split(',') + const rememberMe = rememberMeStr === 'true' + return formId + ? ok({ formId, rememberMe }) + : err(new SgidInvalidStateError()) + } + + /** + * Given the OIDC authorization code from sgID, obtain the corresponding + * access token, which will be used later to retrieve user information + * @param code - the authorization code + */ + retrieveAccessToken( + code: string, + ): ResultAsync< + { sub: string; accessToken: string }, + SgidFetchAccessTokenError + > { + return ResultAsync.fromPromise(this.client.callback(code), (error) => { + logger.error({ + message: 'Failed to retrieve access token from sgID', + meta: { + action: 'token', + code, + }, + error, + }) + return new SgidFetchAccessTokenError() + }) + } + + /** + * Given the OIDC access token from sgID, obtain the + * user's NRIC number and proxy id + * @param accessToken - the access token + */ + retrieveUserInfo({ + accessToken, + }: { + accessToken: string + }): ResultAsync< + { sub: string; data: { 'myinfo.nric_number': string } }, + SgidFetchUserInfoError + > { + return ResultAsync.fromPromise( + this.client.userinfo(accessToken).then(({ sub, data }) => ({ + sub, + data: { 'myinfo.nric_number': data['myinfo.nric_number'] }, + })), + (error) => { + logger.error({ + message: 'Failed to retrieve user info from sgID', + meta: { + action: 'userInfo', + accessToken, + }, + error, + }) + return new SgidFetchUserInfoError() + }, + ) + } + + /** + * Create a JWT based on the userinfo from sgID + * @param data - the userinfo as obtained from sgID + * @param rememberMe - determines how long the JWT is valid for + */ + createJwt( + data: { 'myinfo.nric_number': string }, + rememberMe: boolean, + ): Result<{ jwt: string; maxAge: number }, ApplicationError> { + const userName = data['myinfo.nric_number'] + const payload = { userName, rememberMe } + const maxAge = rememberMe ? this.cookieMaxAgePreserved : this.cookieMaxAge + return ok({ + jwt: this.client.createJWT(payload, maxAge / 1000), + maxAge, + }) + } + + /** + * Verifies a sgID JWT and extracts its payload. + * @param jwtSgid The contents of the JWT cookie + */ + extractSgidJwtPayload( + jwtSgid: string, + ): Result< + { userName: string }, + SgidVerifyJwtError | SgidInvalidJwtError | SgidMissingJwtError + > { + const logMeta = { + action: 'extractSgidJwtPayload', + } + try { + if (!jwtSgid) { + return err(new SgidMissingJwtError()) + } + + const payload = this.client.verifyJWT(jwtSgid, this.publicKeyPath) + + if (isSgidJwtPayload(payload)) { + return ok(payload) + } + + const payloadIsDefined = !!payload + const payloadKeys = + typeof payload === 'object' && !!payload && Object.keys(payload) + logger.error({ + message: 'JWT has incorrect shape', + meta: { + ...logMeta, + payloadIsDefined, + payloadKeys, + }, + }) + return err(new SgidInvalidJwtError()) + } catch (error) { + logger.error({ + message: 'Failed to verify JWT with auth client', + meta: logMeta, + error, + }) + return err(new SgidVerifyJwtError()) + } + } + + /** + * Gets the cookie domain settings. + */ + getCookieSettings(): + | { domain: string; path: string } + | Record { + return this.cookieDomain ? { domain: this.cookieDomain, path: '/' } : {} + } +} + +export const SgidService = new SgidServiceClass(sgid) diff --git a/src/app/modules/sgid/sgid.types.ts b/src/app/modules/sgid/sgid.types.ts new file mode 100644 index 0000000000..75ef2e953a --- /dev/null +++ b/src/app/modules/sgid/sgid.types.ts @@ -0,0 +1,5 @@ +import { AuthType, IFormSchema } from 'src/types' + +export type SgidForm = T & { + authType: AuthType.SGID +} diff --git a/src/app/modules/sgid/sgid.util.ts b/src/app/modules/sgid/sgid.util.ts new file mode 100644 index 0000000000..8274a862ba --- /dev/null +++ b/src/app/modules/sgid/sgid.util.ts @@ -0,0 +1,64 @@ +import { err, ok, Result } from 'neverthrow' + +import { NricResponse } from '../../../../shared/types/response' +import { hasProp } from '../../../../shared/utils/has-prop' +import { + AuthType, + BasicField, + IFormSchema, + SgidFieldTitle, +} from '../../../types' +import { AuthTypeMismatchError } from '../form/form.errors' +import { ProcessedSingleAnswerResponse } from '../submission/submission.types' + +import { SgidForm } from './sgid.types' + +/** + * Validates that a form is an sgID form + * @param form Form to validate + */ +export const validateSgidForm = ( + form: T, +): Result, AuthTypeMismatchError> => { + return isSgidForm(form) + ? ok(form) + : err(new AuthTypeMismatchError(AuthType.SGID, form.authType)) +} + +// Typeguard to ensure that form has the correct authType +const isSgidForm = (form: F): form is SgidForm => { + return form.authType === AuthType.SGID +} + +/** + * Wraps sgID data in the form of parsed form fields. + * @param uinFin the UIN/FIN number given + */ +export const createSgidParsedResponses = ( + uinFin: string, +): ProcessedSingleAnswerResponse[] => { + return [ + { + _id: '', + question: SgidFieldTitle.SgidNric, + fieldType: BasicField.Nric, + isVisible: true, + answer: uinFin, + }, + ] +} + +/** + * Typeguard for SingPass JWT payload. + * @param payload Payload decrypted from JWT + */ +export const isSgidJwtPayload = ( + payload: unknown, +): payload is { userName: string } => { + return ( + typeof payload === 'object' && + !!payload && + hasProp(payload, 'userName') && + typeof payload.userName === 'string' + ) +} diff --git a/src/app/modules/spcp/__tests__/spcp.controller.spec.ts b/src/app/modules/spcp/__tests__/spcp.controller.spec.ts index c43e20e1dd..dbf4ca9d94 100644 --- a/src/app/modules/spcp/__tests__/spcp.controller.spec.ts +++ b/src/app/modules/spcp/__tests__/spcp.controller.spec.ts @@ -307,7 +307,7 @@ describe('spcp.controller', () => { ) expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('jwtSp', MOCK_JWT, { maxAge: MOCK_COOKIE_AGE, - httpOnly: false, + httpOnly: true, sameSite: 'lax', secure: !MockConfig.isDev, ...MOCK_COOKIE_SETTINGS, @@ -566,7 +566,7 @@ describe('spcp.controller', () => { ) expect(MOCK_RESPONSE.cookie).toHaveBeenCalledWith('jwtCp', MOCK_JWT, { maxAge: MOCK_COOKIE_AGE, - httpOnly: false, + httpOnly: true, sameSite: 'lax', secure: !MockConfig.isDev, ...MOCK_COOKIE_SETTINGS, diff --git a/src/app/modules/spcp/__tests__/spcp.test.constants.ts b/src/app/modules/spcp/__tests__/spcp.test.constants.ts index fce05097de..5b36cf509b 100644 --- a/src/app/modules/spcp/__tests__/spcp.test.constants.ts +++ b/src/app/modules/spcp/__tests__/spcp.test.constants.ts @@ -3,7 +3,7 @@ import { ObjectId } from 'bson' import crypto from 'crypto' import _ from 'lodash' -import { ISpcpMyInfo } from 'src/app/config/feature-manager' +import { ISpcpMyInfo } from 'src/app/config/features/spcp-myinfo.config' import { ILoginSchema, IPopulatedForm } from 'src/types' import { JwtName } from '../spcp.types' @@ -11,8 +11,10 @@ import { JwtName } from '../spcp.types' export const MOCK_SERVICE_PARAMS: ISpcpMyInfo = { isSPMaintenance: 'isSPMaintenance', isCPMaintenance: 'isCPMaintenance', + myInfoBannerContent: 'myInfoBannerContent', spCookieMaxAge: 1, spCookieMaxAgePreserved: 2, + oldSpcpCookieDomain: 'oldSpcpCookieDomain', spcpCookieDomain: 'spcpCookieDomain', cpCookieMaxAge: 3, // spIdpId and cpIdpId need to match the injected environment values diff --git a/src/app/modules/spcp/spcp.controller.ts b/src/app/modules/spcp/spcp.controller.ts index 56e4668872..da55476392 100644 --- a/src/app/modules/spcp/spcp.controller.ts +++ b/src/app/modules/spcp/spcp.controller.ts @@ -165,7 +165,7 @@ export const handleLogin: ( .map(() => { res.cookie(JwtName[authType], jwtResult.value, { maxAge: cookieDuration, - httpOnly: false, // the JWT needs to be read by client-side JS + httpOnly: true, sameSite: 'lax', // Setting to 'strict' prevents Singpass login on Safari, Firefox secure: !config.isDev, ...SpcpService.getCookieSettings(), diff --git a/src/app/modules/spcp/spcp.service.ts b/src/app/modules/spcp/spcp.service.ts index 497474e6ee..25bcac49de 100644 --- a/src/app/modules/spcp/spcp.service.ts +++ b/src/app/modules/spcp/spcp.service.ts @@ -26,12 +26,13 @@ import { } from './spcp.errors' import { CorppassAttributes, - CorppassJwtPayload, + CorppassJwtPayloadFromCookie, JwtName, JwtPayload, + JwtPayloadFromCookie, ParsedSpcpParams, SingpassAttributes, - SingpassJwtPayload, + SingpassJwtPayloadFromCookie, SpcpCookies, SpcpDomainSettings, } from './spcp.types' @@ -221,7 +222,10 @@ export class SpcpServiceClass { */ extractSingpassJwtPayload( jwt: string, - ): ResultAsync { + ): ResultAsync< + SingpassJwtPayloadFromCookie, + VerifyJwtError | InvalidJwtError + > { const logMeta = { action: 'extractSingpassJwtPayload', } @@ -261,7 +265,10 @@ export class SpcpServiceClass { */ extractCorppassJwtPayload( jwt: string, - ): ResultAsync { + ): ResultAsync< + CorppassJwtPayloadFromCookie, + VerifyJwtError | InvalidJwtError + > { const logMeta = { action: 'extractCorppassJwtPayload', } @@ -453,7 +460,7 @@ export class SpcpServiceClass { authType: AuthType.SP | AuthType.CP, cookies: SpcpCookies, ): ResultAsync< - JwtPayload, + JwtPayloadFromCookie, VerifyJwtError | InvalidJwtError | MissingJwtError > { return this.extractJwt(cookies, authType).asyncAndThen((jwtResult) => { diff --git a/src/app/modules/spcp/spcp.types.ts b/src/app/modules/spcp/spcp.types.ts index 1ec0ff194a..2cefa42436 100644 --- a/src/app/modules/spcp/spcp.types.ts +++ b/src/app/modules/spcp/spcp.types.ts @@ -18,7 +18,29 @@ export type CorppassJwtPayload = { rememberMe: boolean } -export type JwtPayload = SingpassJwtPayload | CorppassJwtPayload +export type SgidJwtPayload = { + userName: string + rememberMe: boolean +} + +export type JwtPayload = + | SingpassJwtPayload + | CorppassJwtPayload + | SgidJwtPayload + +type CookieTimestamp = { + iat: number // iat and exp are present after cookie has been set + exp: number +} + +export type SingpassJwtPayloadFromCookie = SingpassJwtPayload & CookieTimestamp +export type CorppassJwtPayloadFromCookie = CorppassJwtPayload & CookieTimestamp +export type SgidJwtPayloadFromCookie = SgidJwtPayload & CookieTimestamp + +export type JwtPayloadFromCookie = + | SingpassJwtPayloadFromCookie + | CorppassJwtPayloadFromCookie + | SgidJwtPayloadFromCookie export interface SingpassAttributes { UserName?: string diff --git a/src/app/modules/spcp/spcp.util.ts b/src/app/modules/spcp/spcp.util.ts index 60195fd7e4..af5b88239f 100644 --- a/src/app/modules/spcp/spcp.util.ts +++ b/src/app/modules/spcp/spcp.util.ts @@ -3,7 +3,7 @@ import crypto from 'crypto' import { StatusCodes } from 'http-status-codes' import { err, ok, Result } from 'neverthrow' -import { hasProp } from '../../../shared/util/has-prop' +import { hasProp } from '../../../../shared/utils/has-prop' import { AuthType, BasicField, @@ -26,7 +26,11 @@ import { MissingJwtError, VerifyJwtError, } from './spcp.errors' -import { CorppassJwtPayload, SingpassJwtPayload, SpcpForm } from './spcp.types' +import { + CorppassJwtPayloadFromCookie, + SingpassJwtPayloadFromCookie, + SpcpForm, +} from './spcp.types' const logger = createLoggerWithLabel(module) const DESTINATION_REGEX = /^\/([\w]+)\/?/ @@ -149,7 +153,7 @@ export const verifyJwtPromise = ( */ export const isSingpassJwtPayload = ( payload: unknown, -): payload is SingpassJwtPayload => { +): payload is SingpassJwtPayloadFromCookie => { return ( typeof payload === 'object' && !!payload && @@ -164,7 +168,7 @@ export const isSingpassJwtPayload = ( */ export const isCorppassJwtPayload = ( payload: unknown, -): payload is CorppassJwtPayload => { +): payload is CorppassJwtPayloadFromCookie => { return ( typeof payload === 'object' && !!payload && diff --git a/src/app/modules/submission/IncomingSubmission.class.ts b/src/app/modules/submission/IncomingSubmission.class.ts index 9aa549a0ba..ebc095a173 100644 --- a/src/app/modules/submission/IncomingSubmission.class.ts +++ b/src/app/modules/submission/IncomingSubmission.class.ts @@ -1,10 +1,5 @@ import { combineWithAllErrors, err, ok, Result } from 'neverthrow' -import { - FieldIdSet, - getLogicUnitPreventingSubmit, - getVisibleFieldIds, -} from '../../../shared/util/logic' import { FieldResponse, IFieldSchema, @@ -12,6 +7,11 @@ import { IPopulatedForm, } from '../../../types' import { validateField } from '../../utils/field-validation' +import { + FieldIdSet, + getLogicUnitPreventingSubmit, + getVisibleFieldIds, +} from '../../utils/logic-adaptor' import { ProcessingError, ValidateFieldError } from './submission.errors' import { @@ -23,7 +23,7 @@ import { } from './submission.types' export abstract class IncomingSubmission { - private readonly visibleFieldIds: FieldIdSet + private readonly visibleFieldIds: Result private readonly visibleResponseIds: VisibleResponseIdSet private readonly verifiableResponseIds: VerifiableResponseIdSet protected constructor( @@ -152,15 +152,20 @@ export abstract class IncomingSubmission { } protected validate(): Result { + if (this.visibleFieldIds.isErr()) { + return err(this.visibleFieldIds.error) + } // Guard against invalid form submissions that should have been prevented by // logic. - if ( - getLogicUnitPreventingSubmit( - this.responses, - this.form, - this.visibleFieldIds, - ) - ) { + const logicUnitPreventingSubmit = getLogicUnitPreventingSubmit( + this.responses, + this.form, + this.visibleFieldIds.value, + ) + + if (logicUnitPreventingSubmit.isErr()) { + return err(logicUnitPreventingSubmit.error) + } else if (logicUnitPreventingSubmit.value) { return err(new ProcessingError('Submission prevented by form logic')) } diff --git a/src/app/modules/submission/email-submission/ParsedResponsesObject.class.ts b/src/app/modules/submission/email-submission/ParsedResponsesObject.class.ts index 0a3d899220..df486f84cd 100644 --- a/src/app/modules/submission/email-submission/ParsedResponsesObject.class.ts +++ b/src/app/modules/submission/email-submission/ParsedResponsesObject.class.ts @@ -1,17 +1,18 @@ import { err, ok, Result } from 'neverthrow' -import { - getLogicUnitPreventingSubmit, - getVisibleFieldIds, -} from '../../../../shared/util/logic' import { AuthType, FieldResponse, - IFieldSchema, + FormFieldSchema, IFormDocument, ResponseMode, } from '../../../../types' import { validateField } from '../../../utils/field-validation' +import { + getLogicUnitPreventingSubmit, + getVisibleFieldIds, +} from '../../../utils/logic-adaptor' +import { createSgidParsedResponses } from '../../sgid/sgid.util' import { createCorppassParsedResponses, createSingpassParsedResponses, @@ -25,7 +26,7 @@ import { ProcessedFieldResponse } from '../submission.types' import { getFilteredResponses } from '../submission.utils' type NdiUserInfo = - | { authType: AuthType.SP | AuthType.MyInfo; uinFin: string } + | { authType: AuthType.SP | AuthType.MyInfo | AuthType.SGID; uinFin: string } | { authType: AuthType.CP; uinFin: string; userInfo: string } export default class ParsedResponsesObject { @@ -49,6 +50,9 @@ export default class ParsedResponsesObject { info.userInfo, ) break + case AuthType.SGID: + this.ndiResponses = createSgidParsedResponses(info.uinFin) + break } return this } @@ -82,12 +86,21 @@ export default class ParsedResponsesObject { // Set of all visible fields const visibleFieldIds = getVisibleFieldIds(filteredResponses, form) + if (visibleFieldIds.isErr()) { + return err(visibleFieldIds.error) + } - // Guard against invalid form submissions that should have been prevented by - // logic. - if ( - getLogicUnitPreventingSubmit(filteredResponses, form, visibleFieldIds) - ) { + const logicUnitPreventingSubmit = getLogicUnitPreventingSubmit( + filteredResponses, + form, + visibleFieldIds.value, + ) + + if (logicUnitPreventingSubmit.isErr()) { + return err(logicUnitPreventingSubmit.error) + } else if (logicUnitPreventingSubmit.value) { + // Guard against invalid form submissions that should have been prevented by + // logic. return err(new ProcessingError('Submission prevented by form logic')) } @@ -98,7 +111,7 @@ export default class ParsedResponsesObject { } const fieldMap = form.form_fields.reduce<{ - [fieldId: string]: IFieldSchema + [fieldId: string]: FormFieldSchema }>((acc, field) => { acc[field._id] = field return acc @@ -128,7 +141,7 @@ export default class ParsedResponsesObject { ? 'answer' in response && typeof response.answer === 'string' && response.answer.trim() !== '' - : visibleFieldIds.has(responseId), + : visibleFieldIds.value.has(responseId), question: formField.getQuestion(), } diff --git a/src/app/modules/submission/email-submission/__tests__/email-submission.receiver.spec.ts b/src/app/modules/submission/email-submission/__tests__/email-submission.receiver.spec.ts index 06895b026e..04601bebda 100644 --- a/src/app/modules/submission/email-submission/__tests__/email-submission.receiver.spec.ts +++ b/src/app/modules/submission/email-submission/__tests__/email-submission.receiver.spec.ts @@ -5,7 +5,6 @@ import { IncomingHttpHeaders } from 'http' import { pick } from 'lodash' import { mocked } from 'ts-jest/utils' -import { MB } from 'src/app/constants/filesize' import { BasicField } from 'src/types' import { @@ -13,6 +12,7 @@ import { generateNewSingleAnswerResponse, } from 'tests/unit/backend/helpers/generate-form-data' +import { MB } from '../../../../../../shared/constants/file' import { InitialiseMultipartReceiverError, MultipartError, @@ -52,8 +52,8 @@ describe('email-submission.receiver', () => { expect(MockBusboy).toHaveBeenCalledWith({ headers: MOCK_HEADERS, limits: { - fieldSize: 3 * 1048576, - fileSize: 7 * 1048576, + fieldSize: 3 * MB, + fileSize: 7 * MB, }, }) expect(result._unsafeUnwrap()).toEqual(MOCK_BUSBOY) @@ -71,8 +71,8 @@ describe('email-submission.receiver', () => { expect(MockBusboy).toHaveBeenCalledWith({ headers: MOCK_HEADERS, limits: { - fieldSize: 3 * 1048576, - fileSize: 7 * 1048576, + fieldSize: 3 * MB, + fileSize: 7 * MB, }, }) expect(result._unsafeUnwrapErr()).toEqual( diff --git a/src/app/modules/submission/email-submission/__tests__/email-submission.routes.spec.ts b/src/app/modules/submission/email-submission/__tests__/email-submission.routes.spec.ts index 3b5cacf004..0702dc689d 100644 --- a/src/app/modules/submission/email-submission/__tests__/email-submission.routes.spec.ts +++ b/src/app/modules/submission/email-submission/__tests__/email-submission.routes.spec.ts @@ -266,9 +266,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing _id', async () => { @@ -290,9 +288,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing fieldType', async () => { @@ -314,9 +310,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has invalid fieldType', async () => { @@ -340,9 +334,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing answer', async () => { @@ -364,9 +356,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has both answer and answerArray', async () => { @@ -388,9 +378,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has filename but not content', async () => { @@ -412,9 +400,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has content but not filename', async () => { @@ -436,9 +422,7 @@ describe('email-submission.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) }) diff --git a/src/app/modules/submission/email-submission/__tests__/email-submission.util.spec.ts b/src/app/modules/submission/email-submission/__tests__/email-submission.util.spec.ts index 25533986b7..2238bfd98f 100644 --- a/src/app/modules/submission/email-submission/__tests__/email-submission.util.spec.ts +++ b/src/app/modules/submission/email-submission/__tests__/email-submission.util.spec.ts @@ -2,7 +2,6 @@ import { ObjectId } from 'bson' import { readFileSync } from 'fs' import { cloneDeep, merge } from 'lodash' -import { types as basicTypes } from 'src/shared/resources/basic' import { AuthType, BasicField, @@ -25,6 +24,7 @@ import { generateNewTableResponse, } from 'tests/unit/backend/helpers/generate-form-data' +import { types as basicTypes } from '../../../../../../shared/constants/field/basic' import { ProcessedFieldResponse } from '../../submission.types' import { ATTACHMENT_PREFIX, diff --git a/src/app/modules/submission/email-submission/email-submission.controller.ts b/src/app/modules/submission/email-submission/email-submission.controller.ts index 2e94c14898..dbe7045cd3 100644 --- a/src/app/modules/submission/email-submission/email-submission.controller.ts +++ b/src/app/modules/submission/email-submission/email-submission.controller.ts @@ -2,7 +2,7 @@ import { ok, okAsync, ResultAsync } from 'neverthrow' import { AuthType, IPopulatedEmailForm } from '../../../../types' import { - EmailSubmissionDto, + ParsedEmailModeSubmissionBody, SubmissionErrorDto, SubmissionResponseDto, } from '../../../../types/api' @@ -19,6 +19,7 @@ import { } from '../../myinfo/myinfo.constants' import { MyInfoService } from '../../myinfo/myinfo.service' import * as MyInfoUtil from '../../myinfo/myinfo.util' +import { SgidService } from '../../sgid/sgid.service' import { SpcpService } from '../../spcp/spcp.service' import * as EmailSubmissionMiddleware from '../email-submission/email-submission.middleware' import * as SubmissionService from '../submission.service' @@ -38,7 +39,7 @@ const logger = createLoggerWithLabel(module) const submitEmailModeForm: ControllerHandler< { formId: string }, SubmissionResponseDto | SubmissionErrorDto, - EmailSubmissionDto, + ParsedEmailModeSubmissionBody, { captchaResponse?: unknown } > = async (req, res) => { const { formId } = req.params @@ -222,6 +223,26 @@ const submitEmailModeForm: ControllerHandler< }) return error }) + case AuthType.SGID: + return SgidService.extractSgidJwtPayload(req.cookies.jwtSgid) + .map( + ({ userName: uinFin }) => ({ + form, + parsedResponses: parsedResponses.addNdiResponses({ + authType, + uinFin, + }), + }), + ) + .mapErr((error) => { + spcpSubmissionFailure = true + logger.error({ + message: 'Failed to verify sgID JWT with auth client', + meta: logMeta, + error, + }) + return error + }) default: return ok({ form, diff --git a/src/app/modules/submission/email-submission/email-submission.receiver.ts b/src/app/modules/submission/email-submission/email-submission.receiver.ts index 47d2c2c7a7..dddd400f4d 100644 --- a/src/app/modules/submission/email-submission/email-submission.receiver.ts +++ b/src/app/modules/submission/email-submission/email-submission.receiver.ts @@ -2,9 +2,9 @@ import Busboy from 'busboy' import { IncomingHttpHeaders } from 'http' import { err, ok, Result, ResultAsync } from 'neverthrow' +import { MB } from '../../../../../shared/constants/file' import { IAttachmentInfo } from '../../../../types' import { createLoggerWithLabel } from '../../../config/logger' -import { MB } from '../../../constants/filesize' import { InitialiseMultipartReceiverError, diff --git a/src/app/modules/submission/email-submission/email-submission.service.ts b/src/app/modules/submission/email-submission/email-submission.service.ts index 3cce3c4b53..816a1a5a7a 100644 --- a/src/app/modules/submission/email-submission/email-submission.service.ts +++ b/src/app/modules/submission/email-submission/email-submission.service.ts @@ -5,7 +5,6 @@ import { err, errAsync, ok, okAsync, Result, ResultAsync } from 'neverthrow' import { BasicField, EmailAdminDataField, - FieldResponse, IAttachmentInfo, IEmailSubmissionSchema, IPopulatedEmailForm, @@ -13,6 +12,7 @@ import { ResponseMode, SubmissionType, } from '../../../../types' +import { ParsedEmailFormFieldResponse } from '../../../../types/api' import { createLoggerWithLabel } from '../../../config/logger' import { getEmailSubmissionModel } from '../../../models/submission.server.model' import { DatabaseError } from '../../core/core.errors' @@ -51,7 +51,7 @@ const logger = createLoggerWithLabel(module) * @returns errAsync(AttachmentTooLargeError) if total attachment size exceeds 7MB */ export const validateAttachments = ( - parsedResponses: FieldResponse[], + parsedResponses: ParsedEmailFormFieldResponse[], ): ResultAsync => { const logMeta = { action: 'validateAttachments' } const attachments = mapAttachmentsFromResponses(parsedResponses) diff --git a/src/app/modules/submission/email-submission/email-submission.types.ts b/src/app/modules/submission/email-submission/email-submission.types.ts index d142ed7b60..b641cd2ae6 100644 --- a/src/app/modules/submission/email-submission/email-submission.types.ts +++ b/src/app/modules/submission/email-submission/email-submission.types.ts @@ -1,23 +1,13 @@ -import { - BasicField, - FieldResponse, - IBaseResponse, - IPopulatedEmailForm, -} from '../../../../types' +import { FieldResponse, IPopulatedEmailForm } from '../../../../types' import { ProcessedResponse } from '../submission.types' import ParsedResponsesObject from './ParsedResponsesObject.class' // When a response has been formatted for email, all answerArray // should have been converted to answer -interface IResponseFormattedForEmail extends IBaseResponse { - question: string - fieldType: BasicField +export type ResponseFormattedForEmail = Omit & { answer: string -} - -export type ResponseFormattedForEmail = IResponseFormattedForEmail & - ProcessedResponse +} & ProcessedResponse export interface ParsedMultipartForm { responses: FieldResponse[] diff --git a/src/app/modules/submission/email-submission/email-submission.util.ts b/src/app/modules/submission/email-submission/email-submission.util.ts index 0a143f3fc1..0bc834519f 100644 --- a/src/app/modules/submission/email-submission/email-submission.util.ts +++ b/src/app/modules/submission/email-submission/email-submission.util.ts @@ -1,8 +1,7 @@ import { StatusCodes } from 'http-status-codes' import { compact, flattenDeep, sumBy } from 'lodash' -import { FilePlatforms } from '../../../../shared/constants' -import * as FileValidation from '../../../../shared/util/file-validation' +import * as FileValidation from '../../../../../shared/utils/file-validation' import { AuthType, BasicField, @@ -11,12 +10,14 @@ import { EmailDataFields, EmailDataForOneField, EmailRespondentConfirmationField, - FieldResponse, IAttachmentInfo, - IAttachmentResponse, MapRouteError, SPCPFieldTitle, } from '../../../../types' +import { + ParsedEmailAttachmentResponse, + ParsedEmailFormFieldResponse, +} from '../../../../types/api' import { createLoggerWithLabel } from '../../../config/logger' import { CaptchaConnectionError, @@ -266,15 +267,16 @@ export const getInvalidFileExtensions = ( ): Promise => { // Turn it into an array of promises that each resolve // to an array of file extensions that are invalid (if any) - const getInvalidFileExtensionsInZip = - FileValidation.getInvalidFileExtensionsInZip(FilePlatforms.Server) const promises = attachments.map((attachment) => { const extension = FileValidation.getFileExtension(attachment.filename) if (FileValidation.isInvalidFileExtension(extension)) { return Promise.resolve([extension]) } if (extension !== '.zip') return Promise.resolve([]) - return getInvalidFileExtensionsInZip(attachment.content) + return FileValidation.getInvalidFileExtensionsInZip( + 'nodebuffer', + attachment.content, + ) }) return Promise.all(promises).then((results) => flattenDeep(results)) @@ -294,11 +296,11 @@ export const areAttachmentsMoreThan7MB = ( } const isAttachmentResponse = ( - response: FieldResponse, -): response is IAttachmentResponse => { + response: ParsedEmailFormFieldResponse, +): response is ParsedEmailAttachmentResponse => { return ( response.fieldType === BasicField.Attachment && - (response as IAttachmentResponse).content !== undefined + response.content !== undefined ) } @@ -307,7 +309,7 @@ const isAttachmentResponse = ( * @param responses Form responses */ export const mapAttachmentsFromResponses = ( - responses: FieldResponse[], + responses: ParsedEmailFormFieldResponse[], ): IAttachmentInfo[] => { // look for attachments in parsedResponses // Could be undefined if it is not required, or hidden @@ -470,8 +472,8 @@ export const mapRouteError: MapRouteError = (error) => { */ const isAttachmentResponseFromMap = ( attachmentMap: Record, - response: FieldResponse, -): response is IAttachmentResponse => { + response: ParsedEmailFormFieldResponse, +): response is ParsedEmailAttachmentResponse => { return !!attachmentMap[response._id] } @@ -485,7 +487,7 @@ const isAttachmentResponseFromMap = ( * @returns void. Modifies responses in place. */ export const addAttachmentToResponses = ( - responses: FieldResponse[], + responses: ParsedEmailFormFieldResponse[], attachments: IAttachmentInfo[], ): void => { // Create a map of the attachments with fieldId as keys diff --git a/src/app/modules/submission/encrypt-submission/encrypt-submission.controller.ts b/src/app/modules/submission/encrypt-submission/encrypt-submission.controller.ts index 1f4cee219c..0cc100b502 100644 --- a/src/app/modules/submission/encrypt-submission/encrypt-submission.controller.ts +++ b/src/app/modules/submission/encrypt-submission/encrypt-submission.controller.ts @@ -1,9 +1,10 @@ import JoiDate from '@joi/date' import { celebrate, Joi as BaseJoi, Segments } from 'celebrate' +import { AuthedSessionData } from 'express-session' import { StatusCodes } from 'http-status-codes' import JSONStream from 'JSONStream' import mongoose from 'mongoose' -import { RequireAtLeastOne, SetOptional } from 'type-fest' +import { SetOptional } from 'type-fest' import { AuthType, @@ -13,6 +14,7 @@ import { import { EncryptSubmissionDto, ErrorDto, + FormSubmissionMetadataQueryDto, SubmissionErrorDto, SubmissionResponseDto, } from '../../../../types/api' @@ -405,7 +407,7 @@ export const streamEncryptedResponses: ControllerHandler< unknown, { startDate?: string; endDate?: string; downloadAttachments: boolean } > = async (req, res) => { - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const { formId } = req.params const { startDate, endDate } = req.query @@ -545,7 +547,7 @@ export const getEncryptedResponseUsingQueryParams: ControllerHandler< unknown, { submissionId: string } > = async (req, res) => { - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const { submissionId } = req.query const { formId } = req.params @@ -623,7 +625,7 @@ export const handleGetEncryptedResponse: ControllerHandler< { formId: string; submissionId: string }, EncryptedSubmissionDto | ErrorDto > = async (req, res) => { - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const { formId, submissionId } = req.params return ( @@ -690,12 +692,9 @@ export const getMetadata: ControllerHandler< { formId: string }, SubmissionMetadataList | ErrorDto, unknown, - RequireAtLeastOne< - { page?: number; submissionId?: string }, - 'page' | 'submissionId' - > + FormSubmissionMetadataQueryDto > = async (req, res) => { - const sessionUserId = (req.session as Express.AuthedSession).user._id + const sessionUserId = (req.session as AuthedSessionData).user._id const { formId } = req.params const { page, submissionId } = req.query diff --git a/src/app/modules/submission/encrypt-submission/encrypt-submission.types.ts b/src/app/modules/submission/encrypt-submission/encrypt-submission.types.ts index 8feb259149..04650c98ad 100644 --- a/src/app/modules/submission/encrypt-submission/encrypt-submission.types.ts +++ b/src/app/modules/submission/encrypt-submission/encrypt-submission.types.ts @@ -1,10 +1,10 @@ import { IPopulatedEncryptedForm } from '../../../../types' -import { EncryptedAttachmentsDto } from '../../../../types/api' +import { StorageModeAttachmentsMap } from '../../../../types/api' import { ProcessedFieldResponse } from '../submission.types' export type EncryptSubmissionBodyAfterProcess = { encryptedContent: string - attachments?: EncryptedAttachmentsDto + attachments?: StorageModeAttachmentsMap isPreview: boolean version: number parsedResponses: ProcessedFieldResponse[] diff --git a/src/app/modules/submission/submission.types.ts b/src/app/modules/submission/submission.types.ts index 4db1cdfc6f..b9a6a16188 100644 --- a/src/app/modules/submission/submission.types.ts +++ b/src/app/modules/submission/submission.types.ts @@ -1,14 +1,16 @@ import { Opaque } from 'type-fest' +import { + EncryptAttachmentResponse, + ParsedEmailAttachmentResponse, +} from '../../../types/api' +import { BasicField, FormFieldSchema } from '../../../types/field' import { FieldResponse, - IAttachmentResponse, ICheckboxResponse, ISingleAnswerResponse, ITableResponse, -} from 'src/types/response' - -import { BasicField, IFieldSchema } from '../../../types/field' +} from '../../../types/response' export type ProcessedResponse = { question: string @@ -21,7 +23,7 @@ export type ProcessedResponse = { * ALL field responses in an incoming submission. */ export type ValidatedFieldMap = Opaque< - { [p: string]: IFieldSchema }, + { [p: string]: FormFieldSchema }, 'ValidatedFieldMap' > @@ -45,12 +47,22 @@ export type ColumnResponse = { isVisible?: boolean } -export type ProcessedSingleAnswerResponse = ISingleAnswerResponse & - ProcessedResponse +export type ProcessedSingleAnswerResponse< + T extends ISingleAnswerResponse = ISingleAnswerResponse, +> = T & ProcessedResponse export type ProcessedCheckboxResponse = ICheckboxResponse & ProcessedResponse export type ProcessedTableResponse = ITableResponse & ProcessedResponse -export type ProcessedAttachmentResponse = IAttachmentResponse & +/** + * Can be either email or storage mode attachment response. + * Email mode attachment response in the server will have extra metadata injected + * by a middleware. + * Storage mode attachment response is the default response. + */ +export type ProcessedAttachmentResponse = ( + | ParsedEmailAttachmentResponse + | EncryptAttachmentResponse +) & ProcessedResponse export type ProcessedFieldResponse = diff --git a/src/app/modules/submission/submission.utils.ts b/src/app/modules/submission/submission.utils.ts index e9754cb8af..d8657ca4d4 100644 --- a/src/app/modules/submission/submission.utils.ts +++ b/src/app/modules/submission/submission.utils.ts @@ -1,15 +1,14 @@ import { differenceBy, intersectionBy, keyBy, uniqBy } from 'lodash' import { err, ok, Result } from 'neverthrow' -import { FIELDS_TO_REJECT } from '../../../shared/resources/basic' +import { FIELDS_TO_REJECT } from '../../../../shared/constants/field/basic' import { BasicField, FieldResponse, - IFieldSchema, + FormFieldSchema, IFormDocument, ResponseMode, } from '../../../types' -import { isEmailField } from '../../../types/field/utils/guards' import { AutoReplyMailData } from '../../services/mail/mail.types' import { IncomingSubmission } from './IncomingSubmission.class' @@ -53,14 +52,14 @@ const encryptModeFilter = (responses: T[] = []) => { // TODO: Migrate to extractEmailConfirmationDataFromIncomingSubmission export const extractEmailConfirmationData = ( responses: FieldResponse[], - formFields: IFieldSchema[] | undefined, + formFields: FormFieldSchema[] | undefined, ): AutoReplyMailData[] => { const fieldsById = keyBy(formFields, '_id') return responses.reduce((acc, response) => { const field = fieldsById[response._id] if ( field && - isEmailField(field) && + field.fieldType === BasicField.Email && response.fieldType === BasicField.Email && response.answer ) { diff --git a/src/app/modules/user/user.service.ts b/src/app/modules/user/user.service.ts index 1d4d6e0aa7..9726479eaf 100644 --- a/src/app/modules/user/user.service.ts +++ b/src/app/modules/user/user.service.ts @@ -158,7 +158,7 @@ export const updateUserContact = ( if (!admin) { return errAsync(new MissingUserError()) } - return okAsync(admin) + return okAsync(admin as IPopulatedUser) }) } @@ -201,7 +201,7 @@ export const getPopulatedUserById = ( }) return errAsync(new MissingUserError()) } - return okAsync(retrievedUser) + return okAsync(retrievedUser as IPopulatedUser) }) } diff --git a/src/app/modules/verification/__tests__/verification.controller.spec.ts b/src/app/modules/verification/__tests__/verification.controller.spec.ts index 4f7ba37aed..5b27d647da 100644 --- a/src/app/modules/verification/__tests__/verification.controller.spec.ts +++ b/src/app/modules/verification/__tests__/verification.controller.spec.ts @@ -12,11 +12,11 @@ import { } from 'src/app/services/sms/sms.errors' import { HashingError } from 'src/app/utils/hash' import * as OtpUtils from 'src/app/utils/otp' -import { WAIT_FOR_OTP_SECONDS } from 'src/shared/util/verification' import { IFormSchema, IVerificationSchema } from 'src/types' import dbHandler from 'tests/unit/backend/helpers/jest-db' +import { WAIT_FOR_OTP_SECONDS } from '../../../../../shared/utils/verification' import expressHandler from '../../../../../tests/unit/backend/helpers/jest-express' import { DatabaseError, MalformedParametersError } from '../../core/core.errors' import { FormNotFoundError } from '../../form/form.errors' diff --git a/src/app/modules/verification/verification.controller.ts b/src/app/modules/verification/verification.controller.ts index aac2173c02..1b134d165c 100644 --- a/src/app/modules/verification/verification.controller.ts +++ b/src/app/modules/verification/verification.controller.ts @@ -1,7 +1,7 @@ import { celebrate, Joi, Segments } from 'celebrate' import { StatusCodes } from 'http-status-codes' -import { SALT_ROUNDS } from '../../../shared/util/verification' +import { SALT_ROUNDS } from '../../../../shared/utils/verification' import { ErrorDto } from '../../../types/api' import { createLoggerWithLabel } from '../../config/logger' import { generateOtpWithHash } from '../../utils/otp' diff --git a/src/app/modules/verification/verification.model.ts b/src/app/modules/verification/verification.model.ts index c090a5864f..b8c19c89fc 100644 --- a/src/app/modules/verification/verification.model.ts +++ b/src/app/modules/verification/verification.model.ts @@ -1,7 +1,7 @@ import { pick } from 'lodash' import { Mongoose, Schema } from 'mongoose' -import { TRANSACTION_EXPIRE_AFTER_SECONDS } from '../../../shared/util/verification' +import { TRANSACTION_EXPIRE_AFTER_SECONDS } from '../../../../shared/utils/verification' import { IFormSchema, IVerificationFieldSchema, diff --git a/src/app/modules/verification/verification.service.ts b/src/app/modules/verification/verification.service.ts index d1f48041d8..1ae5f98324 100644 --- a/src/app/modules/verification/verification.service.ts +++ b/src/app/modules/verification/verification.service.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' import { err, errAsync, ok, okAsync, Result, ResultAsync } from 'neverthrow' -import { NUM_OTP_RETRIES } from '../../../shared/util/verification' +import { NUM_OTP_RETRIES } from '../../../../shared/utils/verification' import { BasicField, IVerificationFieldSchema, diff --git a/src/app/modules/verification/verification.util.ts b/src/app/modules/verification/verification.util.ts index da915b3afb..2e179dfc75 100644 --- a/src/app/modules/verification/verification.util.ts +++ b/src/app/modules/verification/verification.util.ts @@ -5,7 +5,7 @@ import { VERIFIED_FIELDTYPES, WAIT_FOR_OTP_SECONDS, WAIT_FOR_OTP_TOLERANCE_SECONDS, -} from '../../../shared/util/verification' +} from '../../../../shared/utils/verification' import { IFieldSchema, IVerificationSchema, diff --git a/src/app/modules/verified-content/verified-content.service.ts b/src/app/modules/verified-content/verified-content.service.ts index 0d69530695..ca5ac43233 100644 --- a/src/app/modules/verified-content/verified-content.service.ts +++ b/src/app/modules/verified-content/verified-content.service.ts @@ -36,6 +36,12 @@ export const getVerifiedContent = ({ return getSpVerifiedContent(data) case AuthType.CP: return getCpVerifiedContent(data) + case AuthType.SGID: + return err( + new EncryptVerifiedContentError( + 'Fields from sgID not currently supported', + ), + ) } } diff --git a/src/app/modules/verified-content/verified-content.types.ts b/src/app/modules/verified-content/verified-content.types.ts index 82559da122..713d45d174 100644 --- a/src/app/modules/verified-content/verified-content.types.ts +++ b/src/app/modules/verified-content/verified-content.types.ts @@ -1,6 +1,6 @@ import { Result } from 'neverthrow' -import { VerifiedKeys } from '../../../shared/util/verified-content' +import { VerifiedKeys } from '../../../../shared/utils/verified-content' import { AuthType } from '../../../types' import { MalformedVerifiedContentError } from './verified-content.errors' @@ -33,6 +33,6 @@ export type EncryptVerificationContentParams = { } export type GetVerifiedContentParams = { - type: AuthType.SP | AuthType.CP + type: AuthType.SP | AuthType.CP | AuthType.SGID data: Record } diff --git a/src/app/modules/verified-content/verified-content.utils.ts b/src/app/modules/verified-content/verified-content.utils.ts index c53498ed58..84b7395c7a 100644 --- a/src/app/modules/verified-content/verified-content.utils.ts +++ b/src/app/modules/verified-content/verified-content.utils.ts @@ -1,6 +1,6 @@ import { err, ok } from 'neverthrow' -import { VerifiedKeys } from '../../../shared/util/verified-content' +import { VerifiedKeys } from '../../../../shared/utils/verified-content' import { MalformedVerifiedContentError } from './verified-content.errors' import { diff --git a/src/app/modules/webhook/webhook.utils.ts b/src/app/modules/webhook/webhook.utils.ts index 8fb69408ab..7e004e68e4 100644 --- a/src/app/modules/webhook/webhook.utils.ts +++ b/src/app/modules/webhook/webhook.utils.ts @@ -3,7 +3,7 @@ import { inRange } from 'lodash' import moment from 'moment-timezone' import { err, ok, Result } from 'neverthrow' -import { stringifySafe } from '../../../shared/util/stringify-safe' +import { stringifySafe } from '../../../../shared/utils/stringify-safe' import { IWebhookResponse } from '../../../types' import { TIMEZONE } from '../../constants/timezone' import { randomUniformInt } from '../../utils/random-uniform' diff --git a/src/app/modules/webhook/webhook.validation.ts b/src/app/modules/webhook/webhook.validation.ts index b899efe0c3..b36a4a193d 100644 --- a/src/app/modules/webhook/webhook.validation.ts +++ b/src/app/modules/webhook/webhook.validation.ts @@ -1,7 +1,7 @@ import { promises as dns } from 'dns' import ip from 'ip' -import { isValidHttpsUrl } from '../../../shared/util/url-validation' +import { isValidHttpsUrl } from '../../../../shared/utils/url-validation' import config from '../../config/config' import { WebhookValidationError } from './webhook.errors' diff --git a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.form.routes.spec.ts b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.form.routes.spec.ts index b75424f7c9..0da7e80350 100644 --- a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.form.routes.spec.ts +++ b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.form.routes.spec.ts @@ -1743,7 +1743,9 @@ describe('admin-form.form.routes', () => { // Assert expect(response.status).toEqual(404) - expect(response.body).toEqual({ message: 'Form not found' }) + expect(response.body).toEqual({ + message: `Attempted to retrieve field ${randomFieldId} from ${formToUpdate._id} but field was not present`, + }) }) it('should return 410 when form is already archived', async () => { diff --git a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.presign.routes.spec.ts b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.presign.routes.spec.ts index 8dbcdc420c..b52487f880 100644 --- a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.presign.routes.spec.ts +++ b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.presign.routes.spec.ts @@ -7,7 +7,6 @@ import supertest, { Session } from 'supertest-session' import { aws } from 'src/app/config/config' import { getEncryptedFormModel } from 'src/app/models/form.server.model' import getUserModel from 'src/app/models/user.server.model' -import { VALID_UPLOAD_FILE_TYPES } from 'src/shared/constants' import { IUserSchema, ResponseMode, Status } from 'src/types' import { createAuthedSession } from 'tests/integration/helpers/express-auth' @@ -15,6 +14,7 @@ import { setupApp } from 'tests/integration/helpers/express-setup' import { buildCelebrateError } from 'tests/unit/backend/helpers/celebrate' import dbHandler from 'tests/unit/backend/helpers/jest-db' +import { VALID_UPLOAD_FILE_TYPES } from '../../../../../../../../shared/constants/file' import { AdminFormsRouter } from '../admin-forms.routes' // Prevent rate limiting. diff --git a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.preview.routes.spec.ts b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.preview.routes.spec.ts index 8ec121b206..7881ce9616 100644 --- a/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.preview.routes.spec.ts +++ b/src/app/routes/api/v3/admin/forms/__tests__/admin-forms.preview.routes.spec.ts @@ -465,9 +465,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing _id', async () => { @@ -492,9 +490,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing fieldType', async () => { @@ -519,9 +515,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has invalid fieldType', async () => { @@ -548,9 +542,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing answer', async () => { @@ -575,9 +567,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has both answer and answerArray', async () => { @@ -602,9 +592,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has filename but not content', async () => { @@ -629,9 +617,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has content but not filename', async () => { @@ -656,9 +642,7 @@ describe('admin-form.preview.routes', () => { .query({ captchaResponse: 'null' }) expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) }) diff --git a/src/app/routes/api/v3/admin/forms/admin-forms.form.routes.ts b/src/app/routes/api/v3/admin/forms/admin-forms.form.routes.ts index 16e07aa942..6676aa2cf0 100644 --- a/src/app/routes/api/v3/admin/forms/admin-forms.form.routes.ts +++ b/src/app/routes/api/v3/admin/forms/admin-forms.form.routes.ts @@ -197,3 +197,17 @@ AdminFormsFormRouter.put( '/:formId([a-fA-F0-9]{24})/start-page', AdminFormController.handleUpdateStartPage, ) + +/** + * Retrieves the free sms counts used by a form's administrator and the sms verification quota + * @security session + * + * @returns 200 with the free sms counts and the quota + * @returns 401 when user does not exist in session + * @returns 404 when the formId is not found in the database + * @returns 500 when a database error occurs during retrieval + */ +AdminFormsFormRouter.get( + '/:formId([a-fA-F0-9]{24})/verified-sms/count/free', + AdminFormController.handleGetFreeSmsCountForFormAdmin, +) diff --git a/src/app/routes/api/v3/admin/forms/admin-forms.settings.routes.ts b/src/app/routes/api/v3/admin/forms/admin-forms.settings.routes.ts index 799e784260..390cb00986 100644 --- a/src/app/routes/api/v3/admin/forms/admin-forms.settings.routes.ts +++ b/src/app/routes/api/v3/admin/forms/admin-forms.settings.routes.ts @@ -97,3 +97,20 @@ AdminFormsSettingsRouter.route('/:formId([a-fA-F0-9]{24})/collaborators') * @returns 500 when database error occurs */ .get(AdminFormController.handleGetFormCollaborators) + +AdminFormsSettingsRouter.route('/:formId([a-fA-F0-9]{24})/collaborators/self') + /** + * Removes the current user from the collaborator list + * @route DELETE /admin/forms/:formId/collaborators/self + * @group admin + * @precondition Must be preceded by request validation + * @security session + * + * @returns 200 with updated collaborators and permissions + * @returns 403 when current user does not have permissions to remove themselves the collaborators list + * @returns 404 when form cannot be found + * @returns 410 when updating collaborators for an archived form + * @returns 422 when user in session cannot be retrieved from the database + * @returns 500 when database error occurs + */ + .delete(AdminFormController.handleRemoveSelfFromCollaborators) diff --git a/src/app/routes/api/v3/auth/__tests__/auth.routes.spec.ts b/src/app/routes/api/v3/auth/__tests__/auth.routes.spec.ts index d6aed891d9..ebf551a704 100644 --- a/src/app/routes/api/v3/auth/__tests__/auth.routes.spec.ts +++ b/src/app/routes/api/v3/auth/__tests__/auth.routes.spec.ts @@ -356,7 +356,7 @@ describe('auth.routes', () => { expect(response.status).toEqual(400) expect(response.body).toEqual( buildCelebrateError({ - body: { key: 'otp', message: 'Please enter a valid otp' }, + body: { key: 'otp', message: 'Please enter a valid OTP' }, }), ) }) @@ -372,7 +372,7 @@ describe('auth.routes', () => { expect(response.status).toEqual(400) expect(response.body).toEqual( buildCelebrateError({ - body: { key: 'otp', message: 'Please enter a valid otp' }, + body: { key: 'otp', message: 'Please enter a valid OTP' }, }), ) }) diff --git a/src/app/routes/api/v3/auth/auth.routes.ts b/src/app/routes/api/v3/auth/auth.routes.ts index eedc25fff8..1bf1f9ecac 100644 --- a/src/app/routes/api/v3/auth/auth.routes.ts +++ b/src/app/routes/api/v3/auth/auth.routes.ts @@ -80,7 +80,7 @@ AuthRouter.post( otp: Joi.string() .required() .regex(/^\d{6}$/) - .message('Please enter a valid otp'), + .message('Please enter a valid OTP'), }), }), AuthController.handleLoginVerifyOtp, diff --git a/src/app/routes/api/v3/forms/__tests__/public-forms.feedback.routes.spec.ts b/src/app/routes/api/v3/forms/__tests__/public-forms.feedback.routes.spec.ts index 8f77df7651..67c4e609e5 100644 --- a/src/app/routes/api/v3/forms/__tests__/public-forms.feedback.routes.spec.ts +++ b/src/app/routes/api/v3/forms/__tests__/public-forms.feedback.routes.spec.ts @@ -1,4 +1,3 @@ -import { getReasonPhrase, StatusCodes } from 'http-status-codes' import { errAsync } from 'neverthrow' import supertest, { Session } from 'supertest-session' @@ -112,7 +111,7 @@ describe('public-form.feedback.routes', () => { } const expectedResponse = JSON.parse( JSON.stringify({ - message: getReasonPhrase(StatusCodes.GONE), + message: 'This form is no longer active', }), ) diff --git a/src/app/routes/api/v3/forms/__tests__/public-forms.form.routes.spec.ts b/src/app/routes/api/v3/forms/__tests__/public-forms.form.routes.spec.ts index 65a0eca891..060f14b20b 100644 --- a/src/app/routes/api/v3/forms/__tests__/public-forms.form.routes.spec.ts +++ b/src/app/routes/api/v3/forms/__tests__/public-forms.form.routes.spec.ts @@ -92,6 +92,8 @@ describe('public-form.form.routes', () => { mockSpClient.verifyJWT.mockImplementationOnce((_jwt, cb) => cb(null, { userName: MOCK_COOKIE_PAYLOAD.userName, + iat: 100000000, + exp: 1000000000, }), ) const { form } = await dbHandler.insertEmailForm({ @@ -105,13 +107,15 @@ describe('public-form.form.routes', () => { const formId = form._id // NOTE: This is needed to inject admin info into the form const fullForm = await dbHandler.getFullFormById(formId) - const expectedResponseBody = JSON.parse( - JSON.stringify({ - form: fullForm?.getPublicView(), - spcpSession: { userName: MOCK_COOKIE_PAYLOAD.userName }, - isIntranetUser: false, + const expectedResponseBody = { + form: JSON.parse(JSON.stringify(fullForm?.getPublicView())), + spcpSession: expect.objectContaining({ + userName: MOCK_COOKIE_PAYLOAD.userName, + iat: 100000000, + exp: 1000000000, }), - ) + isIntranetUser: false, + } // Act // Set cookie on request @@ -129,6 +133,8 @@ describe('public-form.form.routes', () => { cb(null, { userName: MOCK_COOKIE_PAYLOAD.userName, userInfo: 'MyCorpPassUEN', + iat: 100000000, + exp: 1000000000, }), ) const { form } = await dbHandler.insertEmailForm({ @@ -142,13 +148,15 @@ describe('public-form.form.routes', () => { const formId = form._id // NOTE: This is needed to inject admin info into the form const fullForm = await dbHandler.getFullFormById(formId) - const expectedResponseBody = JSON.parse( - JSON.stringify({ - form: fullForm?.getPublicView(), - spcpSession: { userName: MOCK_COOKIE_PAYLOAD.userName }, - isIntranetUser: false, + const expectedResponseBody = { + form: JSON.parse(JSON.stringify(fullForm?.getPublicView())), + spcpSession: expect.objectContaining({ + userName: MOCK_COOKIE_PAYLOAD.userName, + iat: 100000000, + exp: 1000000000, }), - ) + isIntranetUser: false, + } // Act // Set cookie on request @@ -256,7 +264,7 @@ describe('public-form.form.routes', () => { }) const expectedResponseBody = JSON.parse( JSON.stringify({ - message: 'Gone', + message: 'This form is no longer active', }), ) diff --git a/src/app/routes/api/v3/forms/__tests__/public-forms.submissions.routes.spec.ts b/src/app/routes/api/v3/forms/__tests__/public-forms.submissions.routes.spec.ts index d2e4fa56c0..9dad71ad9c 100644 --- a/src/app/routes/api/v3/forms/__tests__/public-forms.submissions.routes.spec.ts +++ b/src/app/routes/api/v3/forms/__tests__/public-forms.submissions.routes.spec.ts @@ -288,9 +288,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing _id', async () => { @@ -315,9 +313,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing fieldType', async () => { @@ -342,9 +338,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has invalid fieldType', async () => { @@ -371,9 +365,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response is missing answer', async () => { @@ -398,9 +390,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when response has both answer and answerArray', async () => { @@ -425,9 +415,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has filename but not content', async () => { @@ -452,9 +440,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) it('should return 400 when attachment response has content but not filename', async () => { @@ -479,9 +465,7 @@ describe('public-form.submissions.routes', () => { // Assert expect(response.status).toBe(400) - expect(response.body.message).toEqual( - 'celebrate request validation failed', - ) + expect(response.body.message).toEqual('Validation failed') }) }) diff --git a/src/app/routes/api/v3/forms/__tests__/public-forms.verification.routes.spec.ts b/src/app/routes/api/v3/forms/__tests__/public-forms.verification.routes.spec.ts index e01ebc7055..6b30962fa2 100644 --- a/src/app/routes/api/v3/forms/__tests__/public-forms.verification.routes.spec.ts +++ b/src/app/routes/api/v3/forms/__tests__/public-forms.verification.routes.spec.ts @@ -22,10 +22,6 @@ import MailService from 'src/app/services/mail/mail.service' import { SmsSendError } from 'src/app/services/sms/sms.errors' import * as SmsService from 'src/app/services/sms/sms.service' import * as OtpUtils from 'src/app/utils/otp' -import { - NUM_OTP_RETRIES, - WAIT_FOR_OTP_SECONDS, -} from 'src/shared/util/verification' import { BasicField, IVerificationSchema } from 'src/types' import { setupApp } from 'tests/integration/helpers/express-setup' @@ -33,6 +29,10 @@ import MockTwilio from 'tests/integration/helpers/twilio' import { generateDefaultField } from 'tests/unit/backend/helpers/generate-form-data' import dbHandler from 'tests/unit/backend/helpers/jest-db' +import { + NUM_OTP_RETRIES, + WAIT_FOR_OTP_SECONDS, +} from '../../../../../../../shared/utils/verification' import { MOCK_OTP } from '../../../../../modules/verification/__tests__/verification.test.helpers' import { PublicFormsVerificationRouter } from '../public-forms.verification.routes' diff --git a/src/app/routes/api/v3/forms/public-forms.auth.routes.ts b/src/app/routes/api/v3/forms/public-forms.auth.routes.ts index f5ebdcea0f..1d1382aee9 100644 --- a/src/app/routes/api/v3/forms/public-forms.auth.routes.ts +++ b/src/app/routes/api/v3/forms/public-forms.auth.routes.ts @@ -22,6 +22,17 @@ PublicFormsAuthRouter.route('/:formId([a-fA-F0-9]{24})/auth/redirect').get( PublicFormController.handleFormAuthRedirect, ) +/** + * Removes SP/CP JWT cookie when called to logout user from SP/CP + * @route /auth/:authType/logout + * + * @returns 200 with success message when user logs out successfully + * @returns 400 if authType is invalid + */ +PublicFormsAuthRouter.route('/auth/:authType/logout').get( + PublicFormController.handlePublicAuthLogout, +) + /** * Validates a form's eServiceId through parsing the returned html of the spcp login page * @route /:formId/auth/validate diff --git a/src/app/services/mail/__tests__/mail.service.spec.ts b/src/app/services/mail/__tests__/mail.service.spec.ts index 38c920d85d..2ad3be7949 100644 --- a/src/app/services/mail/__tests__/mail.service.spec.ts +++ b/src/app/services/mail/__tests__/mail.service.spec.ts @@ -11,9 +11,10 @@ import { SendAutoReplyEmailsArgs, } from 'src/app/services/mail/mail.types' import * as MailUtils from 'src/app/services/mail/mail.utils' -import { HASH_EXPIRE_AFTER_SECONDS } from 'src/shared/util/verification' import { BounceType, IPopulatedForm, ISubmissionSchema } from 'src/types' +import { HASH_EXPIRE_AFTER_SECONDS } from '../../../../../shared/utils/verification' + const MOCK_VALID_EMAIL = 'to@example.com' const MOCK_VALID_EMAIL_2 = 'to2@example.com' const MOCK_VALID_EMAIL_3 = 'to3@example.com' @@ -396,7 +397,7 @@ describe('mail.service', () => { // Should include the metadata in the front. const EXPECTED_JSON_DATA = [ { - question: 'Reference Number', + question: 'Response ID', answer: MOCK_VALID_SUBMISSION_PARAMS.submission.id, }, { @@ -410,7 +411,7 @@ describe('mail.service', () => { return { to: toField, from: MOCK_SENDER_STRING, - subject: `formsg-auto: ${MOCK_VALID_SUBMISSION_PARAMS.form.title} (Ref: ${MOCK_VALID_SUBMISSION_PARAMS.submission.id})`, + subject: `formsg-auto: ${MOCK_VALID_SUBMISSION_PARAMS.form.title} (#${MOCK_VALID_SUBMISSION_PARAMS.submission.id})`, html: expectedHtml, attachments: MOCK_VALID_SUBMISSION_PARAMS.attachments, headers: { diff --git a/src/app/services/mail/mail.service.ts b/src/app/services/mail/mail.service.ts index 39073a036f..4729b08b95 100644 --- a/src/app/services/mail/mail.service.ts +++ b/src/app/services/mail/mail.service.ts @@ -5,7 +5,7 @@ import Mail from 'nodemailer/lib/mailer' import promiseRetry from 'promise-retry' import validator from 'validator' -import { HASH_EXPIRE_AFTER_SECONDS } from '../../../shared/util/verification' +import { HASH_EXPIRE_AFTER_SECONDS } from '../../../../shared/utils/verification' import { BounceType, EmailAdminDataField, @@ -453,7 +453,7 @@ export class MailService { // Unshift is not used as it mutates the array. const fullDataCollationData = [ { - question: 'Reference Number', + question: 'Response ID', answer: refNo, }, { @@ -476,7 +476,7 @@ export class MailService { const mail: MailOptions = { to: form.emails, from: this.#senderFromString, - subject: `formsg-auto: ${formTitle} (Ref: ${refNo})`, + subject: `formsg-auto: ${formTitle} (#${refNo})`, html: mailHtml, attachments, headers: { diff --git a/src/app/services/sms/__tests__/sms.service.spec.ts b/src/app/services/sms/__tests__/sms.service.spec.ts index 4579a0344c..59fe04032a 100644 --- a/src/app/services/sms/__tests__/sms.service.spec.ts +++ b/src/app/services/sms/__tests__/sms.service.spec.ts @@ -2,12 +2,16 @@ import { ObjectId } from 'bson' import mongoose from 'mongoose' import getFormModel from 'src/app/models/form.server.model' -import { MalformedParametersError } from 'src/app/modules/core/core.errors' -import { VfnErrors } from 'src/shared/util/verification' +import { + DatabaseError, + MalformedParametersError, +} from 'src/app/modules/core/core.errors' +import { getMongoErrorMessage } from 'src/app/utils/handle-mongo-error' import { FormOtpData, IFormSchema, IUserSchema, ResponseMode } from 'src/types' import dbHandler from 'tests/unit/backend/helpers/jest-db' +import { VfnErrors } from '../../../../../shared/utils/verification' import { InvalidNumberError } from '../sms.errors' import * as SmsService from '../sms.service' import { LogType, SmsType, TwilioConfig } from '../sms.types' @@ -351,6 +355,36 @@ describe('sms.service', () => { }) }) + describe('retrieveFreeSmsCounts', () => { + const VERIFICATION_SMS_COUNT = 3 + + it('should retrieve sms counts correctly for a specified user', async () => { + // Arrange + const retrieveSpy = jest.spyOn(SmsCountModel, 'retrieveFreeSmsCounts') + retrieveSpy.mockResolvedValueOnce(VERIFICATION_SMS_COUNT) + + // Act + const actual = await SmsService.retrieveFreeSmsCounts(testUser._id) + + // Assert + expect(actual._unsafeUnwrap()).toBe(VERIFICATION_SMS_COUNT) + }) + + it('should return a database error when retrieval fails', async () => { + // Arrange + const retrieveSpy = jest.spyOn(SmsCountModel, 'retrieveFreeSmsCounts') + retrieveSpy.mockRejectedValueOnce('ohno') + + // Act + const actual = await SmsService.retrieveFreeSmsCounts(testUser._id) + + // Assert + expect(actual._unsafeUnwrapErr()).toEqual( + new DatabaseError(getMongoErrorMessage('ohno')), + ) + }) + }) + it('should log failure and throw error when contact OTP fails to send', async () => { // Act const actualResult = await SmsService.sendAdminContactOtp( diff --git a/src/app/services/sms/__tests__/sms_count.server.model.spec.ts b/src/app/services/sms/__tests__/sms_count.server.model.spec.ts index ad0d66b67f..e599c04c54 100644 --- a/src/app/services/sms/__tests__/sms_count.server.model.spec.ts +++ b/src/app/services/sms/__tests__/sms_count.server.model.spec.ts @@ -5,6 +5,7 @@ import mongoose from 'mongoose' import dbHandler from 'tests/unit/backend/helpers/jest-db' +import { smsConfig } from '../../../config/features/sms.config' import { IVerificationSmsCount, LogType, SmsType } from '../sms.types' import getSmsCountModel from '../sms_count.server.model' @@ -230,9 +231,22 @@ describe('SmsCount', () => { }) describe('VerificationCount Schema', () => { + const twilioMsgSrvcSid = smsConfig.twilioMsgSrvcSid + + beforeAll(() => { + smsConfig.twilioMsgSrvcSid = MOCK_MSG_SRVC_SID + }) + + afterAll(() => { + smsConfig.twilioMsgSrvcSid = twilioMsgSrvcSid + }) + it('should create and save successfully', async () => { // Arrange const smsCountParams = createVerificationSmsCountParams() + const expected = merge(smsCountParams, { + isOnboardedAccount: false, + }) // Act const validSmsCount = new SmsCount(smsCountParams) @@ -249,7 +263,7 @@ describe('SmsCount', () => { 'createdAt', '__v', ]) - expect(actualSavedObject).toEqual(smsCountParams) + expect(actualSavedObject).toEqual(expected) }) it('should save successfully, but not save fields that is not defined in the schema', async () => { @@ -260,6 +274,9 @@ describe('SmsCount', () => { extra: 'somethingExtra', }, ) + const expected = merge(omit(smsCountParamsWithExtra, 'extra'), { + isOnboardedAccount: false, + }) // Act const validSmsCount = new SmsCount(smsCountParamsWithExtra) @@ -278,7 +295,38 @@ describe('SmsCount', () => { 'createdAt', '__v', ]) - expect(actualSavedObject).toEqual(omit(smsCountParamsWithExtra, 'extra')) + expect(actualSavedObject).toEqual(expected) + }) + + it('should save successfully and set isOnboarded to true when the credentials are different from default', async () => { + // Arrange + const verificationParams = merge( + createVerificationSmsCountParams({ + logType: LogType.success, + smsType: SmsType.Verification, + }), + { msgSrvcSid: 'i am different' }, + ) + + // Act + const validSmsCount = new SmsCount(verificationParams) + const saved = await validSmsCount.save() + + // Assert + // All fields should exist + // Object Id should be defined when successfully saved to MongoDB. + expect(saved._id).toBeDefined() + expect(saved.createdAt).toBeInstanceOf(Date) + // Retrieve object and compare to params, remove indeterministic keys + const actualSavedObject = omit(saved.toObject(), [ + '_id', + 'createdAt', + '__v', + ]) + expect(omit(actualSavedObject, 'isOnboardedAccount')).toEqual( + verificationParams, + ) + expect(actualSavedObject.isOnboardedAccount).toBe(true) }) it('should reject if form key is missing', async () => { @@ -566,7 +614,6 @@ const createVerificationSmsCountParams = ({ smsCountParams.logType = logType smsCountParams.smsType = smsType smsCountParams.msgSrvcSid = MOCK_MSG_SRVC_SID - return smsCountParams } @@ -589,6 +636,9 @@ const logAndReturnExpectedLog = async ({ msgSrvcSid: MOCK_MSG_SRVC_SID, smsType, logType, + ...(smsType === SmsType.Verification && { + isOnboardedAccount: !(MOCK_MSG_SRVC_SID === smsConfig.twilioMsgSrvcSid), + }), } return expectedLog diff --git a/src/app/services/sms/sms.service.ts b/src/app/services/sms/sms.service.ts index 489ad34d99..186b953730 100644 --- a/src/app/services/sms/sms.service.ts +++ b/src/app/services/sms/sms.service.ts @@ -4,7 +4,7 @@ import { errAsync, okAsync, ResultAsync } from 'neverthrow' import NodeCache from 'node-cache' import Twilio from 'twilio' -import { isPhoneNumber } from '../../../shared/util/phone-num-validation' +import { isPhoneNumber } from '../../../../shared/utils/phone-num-validation' import { AdminContactOtpData, FormOtpData } from '../../../types' import config from '../../config/config' import { createLoggerWithLabel } from '../../config/logger' @@ -12,8 +12,12 @@ import getFormModel from '../../models/form.server.model' import { DatabaseError, MalformedParametersError, + PossibleDatabaseError, } from '../../modules/core/core.errors' -import { getMongoErrorMessage } from '../../utils/handle-mongo-error' +import { + getMongoErrorMessage, + transformMongoError, +} from '../../utils/handle-mongo-error' import { InvalidNumberError, SmsSendError } from './sms.errors' import { @@ -461,3 +465,29 @@ export const sendBouncedSubmissionSms = ( SmsType.BouncedSubmission, ) } + +/** + * Retrieves the free sms count for a particular user + * @param userId The id of the user to retrieve the sms counts for + * @returns ok(count) when retrieval is successful + * @returns err(error) when retrieval fails due to a database error + */ +export const retrieveFreeSmsCounts = ( + userId: string, +): ResultAsync => { + return ResultAsync.fromPromise( + SmsCount.retrieveFreeSmsCounts(userId), + (error) => { + logger.error({ + message: `Retrieving free sms counts failed for ${userId}`, + meta: { + action: 'retrieveFreeSmsCounts', + userId, + error, + }, + }) + + return transformMongoError(error) + }, + ) +} diff --git a/src/app/services/sms/sms.types.ts b/src/app/services/sms/sms.types.ts index 438837e53f..ba1cdcf35f 100644 --- a/src/app/services/sms/sms.types.ts +++ b/src/app/services/sms/sms.types.ts @@ -60,9 +60,12 @@ export interface IVerificationSmsCount extends ISmsCount { email: string userId: IUserSchema['_id'] } + isOnboardedAccount: boolean } -export type IVerificationSmsCountSchema = ISmsCountSchema +export interface IVerificationSmsCountSchema extends ISmsCountSchema { + isOnboardedAccount: boolean +} export interface IAdminContactSmsCount extends ISmsCount { admin: IUserSchema['_id'] @@ -88,6 +91,11 @@ export interface IBouncedSubmissionSmsCountSchema export interface ISmsCountModel extends Model { logSms: (logParams: LogSmsParams) => Promise + /** + * Counts the number of sms which an admin has sent using default (formSG) credentials. + * NOTE: This counts across all forms which an admin has. + */ + retrieveFreeSmsCounts: (userId: string) => Promise } export type TwilioCredentials = { diff --git a/src/app/services/sms/sms_count.server.model.ts b/src/app/services/sms/sms_count.server.model.ts index 66d8176f15..c509168b1a 100644 --- a/src/app/services/sms/sms_count.server.model.ts +++ b/src/app/services/sms/sms_count.server.model.ts @@ -2,6 +2,7 @@ import { parsePhoneNumberFromString } from 'libphonenumber-js/mobile' import { Mongoose, Schema } from 'mongoose' import validator from 'validator' +import { smsConfig } from '../../../app/config/features/sms.config' import { FORM_SCHEMA_ID } from '../../models/form.server.model' import { USER_SCHEMA_ID } from '../../models/user.server.model' @@ -34,8 +35,20 @@ const VerificationSmsCountSchema = new Schema({ required: true, }, }, + isOnboardedAccount: { + type: Boolean, + }, }) +VerificationSmsCountSchema.pre( + 'save', + function (next) { + const formTwilioId = smsConfig.twilioMsgSrvcSid + this.isOnboardedAccount = !(this.msgSrvcSid === formTwilioId) + return next() + }, +) + const AdminContactSmsCountSchema = new Schema({ admin: { type: Schema.Types.ObjectId, @@ -125,6 +138,16 @@ const compileSmsCountModel = (db: Mongoose) => { return smsCount.save() } + SmsCountSchema.statics.retrieveFreeSmsCounts = async function ( + userId: string, + ) { + return this.countDocuments({ + 'formAdmin.userId': userId, + smsType: SmsType.Verification, + isOnboardedAccount: false, + }).exec() + } + const SmsCountModel = db.model( SMS_COUNT_SCHEMA_NAME, SmsCountSchema, diff --git a/src/app/utils/field-validation/answerField.factory.ts b/src/app/utils/field-validation/answerField.factory.ts index 008420f275..5b4a0d289b 100644 --- a/src/app/utils/field-validation/answerField.factory.ts +++ b/src/app/utils/field-validation/answerField.factory.ts @@ -1,4 +1,9 @@ -import { BasicField, IColumnSchema } from '../../../types' +import { + IColumnSchema, + IDropdownFieldSchema, + IShortTextFieldSchema, + OmitUnusedValidatorProps, +} from '../../../types' /** * Return type of createAnswerFieldFromColumn(). @@ -6,32 +11,19 @@ import { BasicField, IColumnSchema } from '../../../types' * fieldType is restricted) and allows the result to be * passed into validateField(). * */ -type ColumnWithFieldProperties = IColumnSchema & { - getQuestion: { (): string } - description: string - disabled: boolean - fieldType: BasicField.ShortText | BasicField.Dropdown -} +type ColumnWithFieldProperties = + | OmitUnusedValidatorProps + | OmitUnusedValidatorProps /** * Takes a table field column and generates a form field by - * filling in the missing attributes. + * filling in the missing fieldType attribute. * */ export const createAnswerFieldFromColumn = ( column: IColumnSchema, ): ColumnWithFieldProperties => { - const columnField = { - // Convert mongoose document to object first, - // otherwise the values will not be correctly spread + return { ...column.toObject(), - disabled: false, - description: 'some description', - get fieldType() { - return column.columnType - }, - getQuestion() { - return 'some question' - }, - } - return columnField as ColumnWithFieldProperties + fieldType: column.columnType, + } as ColumnWithFieldProperties } diff --git a/src/app/utils/field-validation/answerValidator.factory.ts b/src/app/utils/field-validation/answerValidator.factory.ts index 79d83b58b4..91edcc0f9c 100644 --- a/src/app/utils/field-validation/answerValidator.factory.ts +++ b/src/app/utils/field-validation/answerValidator.factory.ts @@ -1,26 +1,6 @@ import { left } from 'fp-ts/lib/Either' -import { IField } from '../../../types/field/baseField' -import { - isAttachmentField, - isCheckboxField, - isDateField, - isDecimalField, - isDropdownField, - isEmailField, - isHomeNumberField, - isLongTextField, - isMobileNumberField, - isNricField, - isNumberField, - isRadioButtonField, - isRatingField, - isSectionField, - isShortTextField, - isTableField, - isUenField, - isYesNoField, -} from '../../../types/field/utils/guards' +import { BasicField, FieldValidationSchema } from '../../../types' import { ResponseValidator } from '../../../types/field/utils/validation' import { ProcessedAttachmentResponse, @@ -52,64 +32,67 @@ import { constructYesNoValidator } from './validators/yesNoValidator' * @param formField A form field from a form object */ export const constructSingleAnswerValidator = ( - formField: IField, + formField: FieldValidationSchema, ): ResponseValidator => { - if (isSectionField(formField)) { - return constructSectionValidator() - } else if (isShortTextField(formField) || isLongTextField(formField)) { - return constructTextValidator(formField) - } else if (isNricField(formField)) { - return constructNricValidator() - } else if (isHomeNumberField(formField)) { - return constructHomeNoValidator(formField) - } else if (isRadioButtonField(formField)) { - return constructRadioButtonValidator(formField) - } else if (isRatingField(formField)) { - return constructRatingValidator(formField) - } else if (isMobileNumberField(formField)) { - return constructMobileNoValidator(formField) - } else if (isDateField(formField)) { - return constructDateValidator(formField) - } else if (isNumberField(formField)) { - return constructNumberValidator(formField) - } else if (isDecimalField(formField)) { - return constructDecimalValidator(formField) - } else if (isDropdownField(formField)) { - return constructDropdownValidator(formField) - } else if (isEmailField(formField)) { - return constructEmailValidator(formField) - } else if (isUenField(formField)) { - return constructUenValidator() - } else if (isYesNoField(formField)) { - return constructYesNoValidator() + switch (formField.fieldType) { + case BasicField.Section: + return constructSectionValidator() + case BasicField.ShortText: + case BasicField.LongText: + return constructTextValidator(formField) + case BasicField.Nric: + return constructNricValidator() + case BasicField.HomeNo: + return constructHomeNoValidator(formField) + case BasicField.Radio: + return constructRadioButtonValidator(formField) + case BasicField.Rating: + return constructRatingValidator(formField) + case BasicField.Mobile: + return constructMobileNoValidator(formField) + case BasicField.Date: + return constructDateValidator(formField) + case BasicField.Number: + return constructNumberValidator(formField) + case BasicField.Decimal: + return constructDecimalValidator(formField) + case BasicField.Dropdown: + return constructDropdownValidator(formField) + case BasicField.Email: + return constructEmailValidator(formField) + case BasicField.Uen: + return constructUenValidator() + case BasicField.YesNo: + return constructYesNoValidator() + default: + return () => left('Unsupported field type') } - return () => left('Unsupported field type') } export const constructAttachmentFieldValidator = ( // Separate from constructSingleAnswerValidator as // constructAttachmentValidator returns different type - formField: IField, + formField: FieldValidationSchema, ): ResponseValidator => { - if (isAttachmentField(formField)) { + if (formField.fieldType === BasicField.Attachment) { return constructAttachmentValidator(formField) } return () => left('Unsupported field type') } export const constructCheckboxFieldValidator = ( - formField: IField, + formField: FieldValidationSchema, ): ResponseValidator => { - if (isCheckboxField(formField)) { + if (formField.fieldType === BasicField.Checkbox) { return constructCheckboxValidator(formField) } return () => left('Unsupported field type') } export const constructTableFieldValidator = ( - formField: IField, + formField: FieldValidationSchema, ): ResponseValidator => { - if (isTableField(formField)) { + if (formField.fieldType === BasicField.Table) { return constructTableValidator(formField) } return () => left('Unsupported field type') diff --git a/src/app/utils/field-validation/field-validation.guards.ts b/src/app/utils/field-validation/field-validation.guards.ts index 221f1bd92c..dba136ce53 100644 --- a/src/app/utils/field-validation/field-validation.guards.ts +++ b/src/app/utils/field-validation/field-validation.guards.ts @@ -1,6 +1,6 @@ import { get } from 'lodash' -import { types as basicTypes } from '../../../shared/resources/basic' +import { types as basicTypes } from '../../../../shared/constants/field/basic' import { BasicField, IEmailFieldSchema, ITableRow } from '../../../types' import { ColumnResponse, diff --git a/src/app/utils/field-validation/index.ts b/src/app/utils/field-validation/index.ts index cd553dda5d..e385388144 100644 --- a/src/app/utils/field-validation/index.ts +++ b/src/app/utils/field-validation/index.ts @@ -1,6 +1,7 @@ import { Either, isLeft, left, right } from 'fp-ts/lib/Either' import { err, ok, Result } from 'neverthrow' +import { FIELDS_TO_REJECT } from '../../../../shared/constants/field/basic' import { ProcessedAttachmentResponse, ProcessedCheckboxResponse, @@ -8,9 +9,12 @@ import { ProcessedSingleAnswerResponse, ProcessedTableResponse, } from '../../../app/modules/submission/submission.types' -import { FIELDS_TO_REJECT } from '../../../shared/resources/basic' -import { IFieldSchema, ITableFieldSchema } from '../../../types/field' -import { isTableField } from '../../../types/field/utils/guards' +import { + BasicField, + FieldValidationSchema, + ITableFieldSchema, + OmitUnusedValidatorProps, +} from '../../../types/field' import { ResponseValidator } from '../../../types/field/utils/validation' import { createLoggerWithLabel } from '../../config/logger' import { ValidateFieldError } from '../../modules/submission/submission.errors' @@ -43,7 +47,7 @@ const isValidResponseFieldType = (response: ProcessedFieldResponse): boolean => * @param response The submitted response */ const doFieldTypesMatch = ( - formField: IFieldSchema, + formField: FieldValidationSchema, response: ProcessedFieldResponse, ): Either => { return response.fieldType !== formField.fieldType @@ -96,23 +100,23 @@ const isResponsePresentOnHiddenField = ( * @param response The submitted response */ const singleAnswerRequiresValidation = ( - formField: IFieldSchema, + formField: FieldValidationSchema, response: ProcessedSingleAnswerResponse, ) => (formField.required && response.isVisible) || response.answer.trim() !== '' const attachmentRequiresValidation = ( - formField: IFieldSchema, + formField: FieldValidationSchema, response: ProcessedAttachmentResponse, ) => (formField.required && response.isVisible) || response.answer.trim() !== '' const checkboxRequiresValidation = ( - formField: IFieldSchema, + formField: FieldValidationSchema, response: ProcessedCheckboxResponse, ) => (formField.required && response.isVisible) || response.answerArray.length > 0 const tableRequiresValidation = ( - formField: ITableFieldSchema, + formField: OmitUnusedValidatorProps, response: ProcessedTableResponse, ) => { const { columns } = formField @@ -134,7 +138,7 @@ const tableRequiresValidation = ( */ const logInvalidAnswer = ( formId: string, - formField: IFieldSchema, + formField: FieldValidationSchema, message: string, ) => { logger.error({ @@ -155,7 +159,7 @@ const logInvalidAnswer = ( const validateResponseWithValidator = ( validator: ResponseValidator, formId: string, - formField: IFieldSchema, + formField: FieldValidationSchema, response: T, ): Result => { const validEither = validator(response) @@ -176,7 +180,7 @@ const validateResponseWithValidator = ( */ export const validateField = ( formId: string, - formField: IFieldSchema, + formField: FieldValidationSchema, response: ProcessedFieldResponse, ): Result => { if (!isValidResponseFieldType(response)) { @@ -227,7 +231,10 @@ export const validateField = ( response, ) } - } else if (isProcessedTableResponse(response) && isTableField(formField)) { + } else if ( + isProcessedTableResponse(response) && + formField.fieldType === BasicField.Table + ) { if (tableRequiresValidation(formField, response)) { const validator = constructTableFieldValidator(formField) return validateResponseWithValidator( diff --git a/src/app/utils/field-validation/validators/__tests__/email-validation.spec.ts b/src/app/utils/field-validation/validators/__tests__/email-validation.spec.ts index ec83b72acf..6f586b2b37 100644 --- a/src/app/utils/field-validation/validators/__tests__/email-validation.spec.ts +++ b/src/app/utils/field-validation/validators/__tests__/email-validation.spec.ts @@ -3,7 +3,7 @@ import { ValidateFieldError } from 'src/app/modules/submission/submission.errors import { ProcessedFieldResponse } from 'src/app/modules/submission/submission.types' import { validateField } from 'src/app/utils/field-validation' import { IFieldSchema } from 'src/types' -import { BasicField } from 'src/types/field/fieldTypes' +import { BasicField } from 'src/types/field' import { ISingleAnswerResponse } from 'src/types/response' type VerificationMock = { diff --git a/src/app/utils/field-validation/validators/__tests__/mobile-num-validation.spec.ts b/src/app/utils/field-validation/validators/__tests__/mobile-num-validation.spec.ts index caff55f504..5d3b217284 100644 --- a/src/app/utils/field-validation/validators/__tests__/mobile-num-validation.spec.ts +++ b/src/app/utils/field-validation/validators/__tests__/mobile-num-validation.spec.ts @@ -2,7 +2,7 @@ import formsgSdk from 'src/app/config/formsg-sdk' import { ValidateFieldError } from 'src/app/modules/submission/submission.errors' import { validateField } from 'src/app/utils/field-validation' import { IFieldSchema } from 'src/types' -import { BasicField } from 'src/types/field/fieldTypes' +import { BasicField } from 'src/types/field' import { generateDefaultField, diff --git a/src/app/utils/field-validation/validators/__tests__/text-validator.spec.ts b/src/app/utils/field-validation/validators/__tests__/text-validator.spec.ts index 6d8894e91a..f0775dbb06 100644 --- a/src/app/utils/field-validation/validators/__tests__/text-validator.spec.ts +++ b/src/app/utils/field-validation/validators/__tests__/text-validator.spec.ts @@ -1,6 +1,6 @@ import { ValidateFieldError } from 'src/app/modules/submission/submission.errors' import { validateField } from 'src/app/utils/field-validation' -import { BasicField, TextSelectedValidation } from 'src/types' +import { BasicField, TextSelectedValidation } from 'src/types/field' import { generateDefaultField, diff --git a/src/app/utils/field-validation/validators/attachmentValidator.ts b/src/app/utils/field-validation/validators/attachmentValidator.ts index 6aed2bd41c..4328cb88d3 100644 --- a/src/app/utils/field-validation/validators/attachmentValidator.ts +++ b/src/app/utils/field-validation/validators/attachmentValidator.ts @@ -1,15 +1,17 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedAttachmentResponse } from 'src/app/modules/submission/submission.types' -import { IAttachmentField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - -const MILLION = 1000000 +import { MB } from '../../../../../shared/constants/file' +import { + IAttachmentFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedAttachmentResponse } from '../../../modules/submission/submission.types' type AttachmentValidator = ResponseValidator type AttachmentValidatorConstructor = ( - attachmentField: IAttachmentField, + attachmentField: OmitUnusedValidatorProps, ) => AttachmentValidator /** @@ -41,7 +43,7 @@ const attachmentContentValidator: AttachmentValidator = (response) => { const makeAttachmentSizeValidator: AttachmentValidatorConstructor = (attachmentField) => (response) => { const { attachmentSize } = attachmentField - const byteSizeLimit = parseInt(attachmentSize) * MILLION + const byteSizeLimit = parseInt(attachmentSize) * MB return response.content.byteLength < byteSizeLimit ? right(response) : left(`AttachmentValidator:\t File size more than limit`) diff --git a/src/app/utils/field-validation/validators/checkboxValidator.ts b/src/app/utils/field-validation/validators/checkboxValidator.ts index d69e0b8e6c..2394da3aa3 100644 --- a/src/app/utils/field-validation/validators/checkboxValidator.ts +++ b/src/app/utils/field-validation/validators/checkboxValidator.ts @@ -1,15 +1,18 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedCheckboxResponse } from 'src/app/modules/submission/submission.types' -import { ICheckboxField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { + ICheckboxFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedCheckboxResponse } from '../../../modules/submission/submission.types' import { isOtherOption } from './options' type CheckboxValidator = ResponseValidator type CheckboxValidatorConstructor = ( - checkboxField: ICheckboxField, + checkboxField: OmitUnusedValidatorProps, ) => CheckboxValidator /** diff --git a/src/app/utils/field-validation/validators/common.ts b/src/app/utils/field-validation/validators/common.ts index 5c50a9ebba..73f4715510 100644 --- a/src/app/utils/field-validation/validators/common.ts +++ b/src/app/utils/field-validation/validators/common.ts @@ -1,10 +1,13 @@ import { left, right } from 'fp-ts/lib/Either' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IEmailFieldSchema, IMobileFieldSchema } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - +import { + IEmailFieldSchema, + IMobileFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' import formsgSdk from '../../../config/formsg-sdk' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' /** * A function which returns a validator to check if single answer has a non-empty response @@ -23,7 +26,9 @@ export const notEmptySingleAnswerResponse: ResponseValidator + | OmitUnusedValidatorProps, ) => ResponseValidator = (formField) => (response) => { const { isVerifiable, _id } = formField diff --git a/src/app/utils/field-validation/validators/dateValidator.ts b/src/app/utils/field-validation/validators/dateValidator.ts index 32e4288654..c470da85fa 100644 --- a/src/app/utils/field-validation/validators/dateValidator.ts +++ b/src/app/utils/field-validation/validators/dateValidator.ts @@ -2,16 +2,20 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' import moment from 'moment-timezone' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IDateField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - -import { DateSelectedValidation } from '../../../../shared/constants' +import { + DateSelectedValidation, + IDateFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type DateValidator = ResponseValidator -type DateValidatorConstructor = (dateField: IDateField) => DateValidator +type DateValidatorConstructor = ( + dateField: OmitUnusedValidatorProps, +) => DateValidator /** * @param date diff --git a/src/app/utils/field-validation/validators/decimalValidator.ts b/src/app/utils/field-validation/validators/decimalValidator.ts index 7de5cee0a0..bd572bcb76 100644 --- a/src/app/utils/field-validation/validators/decimalValidator.ts +++ b/src/app/utils/field-validation/validators/decimalValidator.ts @@ -3,15 +3,18 @@ import { flow } from 'fp-ts/lib/function' import isFloat from 'validator/lib/isFloat' import isInt from 'validator/lib/isInt' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IDecimalField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { + IDecimalFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type DecimalValidator = ResponseValidator type DecimalValidatorConstructor = ( - decimalField: IDecimalField, + decimalField: OmitUnusedValidatorProps, ) => DecimalValidator interface IIsFloatOptions { min?: number diff --git a/src/app/utils/field-validation/validators/dropdownValidator.ts b/src/app/utils/field-validation/validators/dropdownValidator.ts index 065c9063f4..6e97234b82 100644 --- a/src/app/utils/field-validation/validators/dropdownValidator.ts +++ b/src/app/utils/field-validation/validators/dropdownValidator.ts @@ -1,18 +1,20 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IDropdownField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - +import { + IDropdownFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' import { getMyInfoFieldOptions } from '../../../modules/myinfo/myinfo.util' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' import { isOneOfOptions } from './options' type DropdownValidator = ResponseValidator type DropdownValidatorConstructor = ( - dropdownField: IDropdownField, + dropdownField: OmitUnusedValidatorProps, ) => DropdownValidator /** diff --git a/src/app/utils/field-validation/validators/emailValidator.ts b/src/app/utils/field-validation/validators/emailValidator.ts index e7394552bc..ae9fa31341 100644 --- a/src/app/utils/field-validation/validators/emailValidator.ts +++ b/src/app/utils/field-validation/validators/emailValidator.ts @@ -2,15 +2,18 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' import isEmail from 'validator/lib/isEmail' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IEmailFieldSchema } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { + IEmailFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { makeSignatureValidator, notEmptySingleAnswerResponse } from './common' type EmailValidator = ResponseValidator type EmailValidatorConstructor = ( - emailField: IEmailFieldSchema, + emailField: OmitUnusedValidatorProps, ) => EmailValidator /** diff --git a/src/app/utils/field-validation/validators/homeNoValidator.ts b/src/app/utils/field-validation/validators/homeNoValidator.ts index 77075671f6..769206897c 100644 --- a/src/app/utils/field-validation/validators/homeNoValidator.ts +++ b/src/app/utils/field-validation/validators/homeNoValidator.ts @@ -1,20 +1,22 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IHomenoField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - import { isHomePhoneNumber, startsWithSgPrefix, -} from '../../../../shared/util/phone-num-validation' +} from '../../../../../shared/utils/phone-num-validation' +import { + IHomenoFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type HomeNoValidator = ResponseValidator type HomeNoValidatorConstructor = ( - homeNumberField: IHomenoField, + homeNumberField: OmitUnusedValidatorProps, ) => HomeNoValidator /** diff --git a/src/app/utils/field-validation/validators/mobileNoValidator.ts b/src/app/utils/field-validation/validators/mobileNoValidator.ts index e8eacb36e3..51a02171a5 100644 --- a/src/app/utils/field-validation/validators/mobileNoValidator.ts +++ b/src/app/utils/field-validation/validators/mobileNoValidator.ts @@ -1,20 +1,22 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IMobileFieldSchema } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - import { isMobilePhoneNumber, startsWithSgPrefix, -} from '../../../../shared/util/phone-num-validation' +} from '../../../../../shared/utils/phone-num-validation' +import { + IMobileFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { makeSignatureValidator, notEmptySingleAnswerResponse } from './common' type MobileNoValidator = ResponseValidator type MobileNoValidatorConstructor = ( - mobileNumberField: IMobileFieldSchema, + mobileNumberField: OmitUnusedValidatorProps, ) => MobileNoValidator /** diff --git a/src/app/utils/field-validation/validators/nricValidator.ts b/src/app/utils/field-validation/validators/nricValidator.ts index 2f25d85e29..7747c2b1e1 100644 --- a/src/app/utils/field-validation/validators/nricValidator.ts +++ b/src/app/utils/field-validation/validators/nricValidator.ts @@ -1,10 +1,9 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { ResponseValidator } from 'src/types/field/utils/validation' - -import { isNricValid } from '../../../../shared/util/nric-validation' +import { isNricValid } from '../../../../../shared/utils/nric-validation' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' diff --git a/src/app/utils/field-validation/validators/numberValidator.ts b/src/app/utils/field-validation/validators/numberValidator.ts index 6568e5f0f9..d99cda29ca 100644 --- a/src/app/utils/field-validation/validators/numberValidator.ts +++ b/src/app/utils/field-validation/validators/numberValidator.ts @@ -1,16 +1,20 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { INumberField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - -import { NumberSelectedValidation } from '../../../../types/field' +import { + INumberFieldSchema, + NumberSelectedValidation, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type NumberValidator = ResponseValidator -type NumberValidatorConstructor = (numberField: INumberField) => NumberValidator +type NumberValidatorConstructor = ( + numberField: OmitUnusedValidatorProps, +) => NumberValidator /** * Return a validator to check if number format is correct. diff --git a/src/app/utils/field-validation/validators/radioButtonValidator.ts b/src/app/utils/field-validation/validators/radioButtonValidator.ts index 87020a4211..7392ef62ab 100644 --- a/src/app/utils/field-validation/validators/radioButtonValidator.ts +++ b/src/app/utils/field-validation/validators/radioButtonValidator.ts @@ -1,16 +1,19 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IRadioField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { + IRadioFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' import { isOneOfOptions, isOtherOption } from './options' type RadioButtonValidator = ResponseValidator type RadioButtonValidatorConstructor = ( - radioButtonField: IRadioField, + radioButtonField: OmitUnusedValidatorProps, ) => RadioButtonValidator /** diff --git a/src/app/utils/field-validation/validators/ratingValidator.ts b/src/app/utils/field-validation/validators/ratingValidator.ts index 14c95e179c..a1fa6a8f35 100644 --- a/src/app/utils/field-validation/validators/ratingValidator.ts +++ b/src/app/utils/field-validation/validators/ratingValidator.ts @@ -2,14 +2,19 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' import isInt from 'validator/lib/isInt' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { IRatingField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { + IRatingFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type RatingValidator = ResponseValidator -type RatingValidatorConstructor = (ratingField: IRatingField) => RatingValidator +type RatingValidatorConstructor = ( + ratingField: OmitUnusedValidatorProps, +) => RatingValidator /** * Returns a validation function to check if the diff --git a/src/app/utils/field-validation/validators/sectionValidator.ts b/src/app/utils/field-validation/validators/sectionValidator.ts index c60d83bfcd..edc401f0ca 100644 --- a/src/app/utils/field-validation/validators/sectionValidator.ts +++ b/src/app/utils/field-validation/validators/sectionValidator.ts @@ -1,7 +1,7 @@ import { left, right } from 'fp-ts/lib/Either' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' type SectionValidatorConstructor = () => ResponseValidator diff --git a/src/app/utils/field-validation/validators/tableValidator.ts b/src/app/utils/field-validation/validators/tableValidator.ts index d0bdf04fe4..172b3b61fb 100644 --- a/src/app/utils/field-validation/validators/tableValidator.ts +++ b/src/app/utils/field-validation/validators/tableValidator.ts @@ -1,7 +1,11 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { BasicField, ITableFieldSchema } from '../../../../types/field' +import { + BasicField, + ITableFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' import { ResponseValidator } from '../../../../types/field/utils/validation' import { ProcessedSingleAnswerResponse, @@ -14,7 +18,7 @@ const ALLOWED_COLUMN_TYPES = [BasicField.ShortText, BasicField.Dropdown] type TableValidator = ResponseValidator type TableValidatorConstructor = ( - tableField: ITableFieldSchema, + tableField: OmitUnusedValidatorProps, ) => TableValidator /** diff --git a/src/app/utils/field-validation/validators/textValidator.ts b/src/app/utils/field-validation/validators/textValidator.ts index 83d5ef8dcb..5731e36094 100644 --- a/src/app/utils/field-validation/validators/textValidator.ts +++ b/src/app/utils/field-validation/validators/textValidator.ts @@ -1,16 +1,21 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { ILongTextField, IShortTextField } from 'src/types/field' -import { ResponseValidator } from 'src/types/field/utils/validation' - -import { TextSelectedValidation } from '../../../../types/field/baseField' +import { TextSelectedValidation } from '../../../../../shared/types/field' +import { + ILongTextFieldSchema, + IShortTextFieldSchema, + OmitUnusedValidatorProps, +} from '../../../../types/field' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' type TextFieldValidatorConstructor = ( - textField: IShortTextField | ILongTextField, + textField: + | OmitUnusedValidatorProps + | OmitUnusedValidatorProps, ) => ResponseValidator /** diff --git a/src/app/utils/field-validation/validators/uenValidator.ts b/src/app/utils/field-validation/validators/uenValidator.ts index 924281b440..bd022ba475 100644 --- a/src/app/utils/field-validation/validators/uenValidator.ts +++ b/src/app/utils/field-validation/validators/uenValidator.ts @@ -1,10 +1,9 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { ResponseValidator } from 'src/types/field/utils/validation' - -import { isUenValid } from '../../../../shared/util/uen-validation' +import { isUenValid } from '../../../../../shared/utils/uen-validation' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' diff --git a/src/app/utils/field-validation/validators/yesNoValidator.ts b/src/app/utils/field-validation/validators/yesNoValidator.ts index b0a3afdf52..979b45b076 100644 --- a/src/app/utils/field-validation/validators/yesNoValidator.ts +++ b/src/app/utils/field-validation/validators/yesNoValidator.ts @@ -1,8 +1,8 @@ import { chain, left, right } from 'fp-ts/lib/Either' import { flow } from 'fp-ts/lib/function' -import { ProcessedSingleAnswerResponse } from 'src/app/modules/submission/submission.types' -import { ResponseValidator } from 'src/types/field/utils/validation' +import { ResponseValidator } from '../../../../types/field/utils/validation' +import { ProcessedSingleAnswerResponse } from '../../../modules/submission/submission.types' import { notEmptySingleAnswerResponse } from './common' diff --git a/src/app/utils/logic-adaptor.ts b/src/app/utils/logic-adaptor.ts new file mode 100644 index 0000000000..e93ee2ef8f --- /dev/null +++ b/src/app/utils/logic-adaptor.ts @@ -0,0 +1,32 @@ +import { ok, Result } from 'neverthrow' + +import { + FieldIdSet, + getLogicUnitPreventingSubmit as logicGetLogicUnitPreventingSubmit, + getVisibleFieldIds as logicGetVisibleFieldIds, +} from '../../shared/util/logic' +import { + FieldResponse, + IFormDocument, + IPreventSubmitLogicSchema, +} from '../../types' +import { ProcessingError } from '../modules/submission/submission.errors' + +export { FieldIdSet } from '../../shared/util/logic' + +export const getVisibleFieldIds = ( + submission: FieldResponse[], + form: IFormDocument, +): Result => { + return ok(logicGetVisibleFieldIds(submission, form)) +} + +export const getLogicUnitPreventingSubmit = ( + submission: FieldResponse[], + form: IFormDocument, + visibleFieldIds?: FieldIdSet, +): Result => { + return ok( + logicGetLogicUnitPreventingSubmit(submission, form, visibleFieldIds), + ) +} diff --git a/src/app/views/templates/submit-form-email.server.view.html b/src/app/views/templates/submit-form-email.server.view.html index d1988f609d..3abb5a0c6d 100644 --- a/src/app/views/templates/submit-form-email.server.view.html +++ b/src/app/views/templates/submit-form-email.server.view.html @@ -13,7 +13,7 @@ > - Reference Number + Response ID <%= refNo %> diff --git a/src/app/views/templates/submit-form-summary-pdf.server.view.html b/src/app/views/templates/submit-form-summary-pdf.server.view.html index 7ca4ea5bec..279961c359 100644 --- a/src/app/views/templates/submit-form-summary-pdf.server.view.html +++ b/src/app/views/templates/submit-form-summary-pdf.server.view.html @@ -43,7 +43,7 @@ <% } %> - Reference Number + Response ID <%= refNo %> diff --git a/src/public/.eslintrc b/src/public/.eslintrc index 029f038482..2b77b7e3b4 100644 --- a/src/public/.eslintrc +++ b/src/public/.eslintrc @@ -76,7 +76,7 @@ "import/no-duplicates": "error", "@typescript-eslint/no-floating-promises": 2, "@typescript-eslint/no-unused-vars": 2, - "typesafe/no-throw-sync-func": "error" + "typesafe/no-throw-sync-func": "warn" } }, { diff --git a/src/public/main.js b/src/public/main.js index 48e1c66d11..5c14f3b313 100644 --- a/src/public/main.js +++ b/src/public/main.js @@ -173,6 +173,7 @@ require('./modules/forms/admin/controllers/pop-up-modal.client.controller.js') // forms admin directives require('./modules/forms/admin/directives/settings-form.client.directive.js') +require('./modules/forms/admin/directives/validate-form-emails-input.directive.js') require('./modules/forms/admin/directives/edit-form.client.directive.js') require('./modules/forms/admin/directives/is-verifiable-save-interceptor.directive.js') require('./modules/forms/admin/directives/validate-email-domain-from-text.directive.js') diff --git a/src/public/modules/core/img/landing/restricted__1-MOM.png b/src/public/modules/core/img/landing/restricted__1-MOM.png index 5f82085f31c95fd8faaf3024bdbe1909d8f0c0a4..e34dc5026965a8cd21dcc642c2d5aca4ba238c34 100644 GIT binary patch literal 37561 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:iuQAVaxz6T=$m(+U z-1-dV`lU*n@psCX-_$qOU7c=+wa?nlbtl$4 ze+p`=x!aX5Oc_y#M{hCCE*?s<{-9FPPdP4)H=+`&4F(G9w8=&=qr37hd~`%whr7hu zT<8bCWtiH&?=K{?B3+r$5bn=c1)Af>j_V9hxy%}=b^O!uieJ6Lw*~qtKCX)_z*axq z4zKHh&C3@yVu8-ZQp2?LxHhuGd0HYFt AApigX literal 40483 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 diff --git a/src/public/modules/core/img/landing/restricted__2-MOE.png b/src/public/modules/core/img/landing/restricted__2-MOE.png index 39772960dec1b8c0c87fdffefa52e0c6e17cbee2..035a812bddd26ce4f5c87791b3cc86e27d3c1c4a 100644 GIT binary patch literal 151779 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 Py{Ig&Ay+5!D&l_ubjN^) literal 153843 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 diff --git a/src/public/modules/core/img/landing/restricted__3-NEA.png b/src/public/modules/core/img/landing/restricted__3-NEA.png index 2f4a3b8a3e3cb8c22c9882b0bf45fec428d5b4f9..fc756434b841e3811bbd1872f9494d35c773e7aa 100644 GIT binary patch literal 154777 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 literal 160046 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

N6CK!)V27LBbr5>bgCmThM82_ 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

lOi4jw9HDkP+*gf!&y5YCC^| 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

;tzV^+P| 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 literal 74404 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 literal 66306 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"F8>g?ukMD9!1Wk^^QOV>=aaB1N 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 diff --git a/src/public/modules/core/img/landing/restricted__feature1.png b/src/public/modules/core/img/landing/restricted__feature1.png index 0aebd1d76ce5c6f876ceac69f2ad5f9ac12e9563..33273419e0ce35f55464f68a715e205cf82262f0 100644 GIT binary patch literal 28496 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 literal 29338 zcmce;2{@E*yf;3!gh~sNNJyF~DIrEXmx-s_y}egEe_my7%U-k5K{fNv9WPMEqrHZ=jv6l z$;nCdJ&pbSed`Z-TXJ=<|aY_82R===fu_w*fo;O@KZn|dNa?mzv zhJIgv()hR0B=+Q=p9A7Gqb4!K2B;zS7b9>Px8EmuUh36e$K~@^A1t+a|A8}kYf9mFs892A=Pm2sL}E9 z@qec8w#?XoT~}Av{POnT z;NX>q6_u5hZEfwjC9Qw{{E;$knWoVssD-7arNnFsR@V`JLr=}FgHPFT|MSiLV!yt= zzWXj+$A5g_vb8@aZ*cmB&GCp&%&oCj^Ub)K>aR%?`&sV4HfZ~a&-Z&v_TOH5Z2$A3 zM#3GPkEgudzx_y3qm}bZ>+w9aU{ClwUm3q2dT(rOEIT`UIoXlAv)fC+zH%bB{e{GzA%HYtlt=#Wc^}`%<$BS` z*z|yeuHRkDiOB_()h*e1l}`*+3uA6Jr{7Rhzh@sZ^wwT6Gw=7$jMB{fMq#Wjl{TN5 z|9xznR`bJWtMqlyM2pWC-?^6Dv(LlLyvvi`Iq%k>k7mWb_G|QeZ6yJG9gO{y5F&dj zFW1$}k}}veRxaK%J}Tl=b1tOJ^3ik7FR{89<9$kR!C0@&cujl&VTYg_P3wMPr@H6H zmlXff^{sMmRY7we#>*`|BKWcP+yER(bex?Q27ocK96KqTrHC^m1Z|OVQkWXIe<&M~dOx&*!p%Z#C*WvS!Mjw+*}Y zHDSVbe#Qpo?PU1h(-ljA!CvjD-BH9j_09DD`kZ|2xbl7Zin;pM9S&aa^()W6dLDjC zC)!%f-I()uP{=sXU>t{aU@ixzB!%NxXKU5noQgfdBdVXXO!(X|ff{*=pKUdW>i^4e<@ z?LJZT!8p@&<1cZ>04H4Qw7cW2;*_jnfSiKLdiF)qbC2)HCkeXdqpAEc?I}7)6R^83 zM#*U^0z$Z?1S|S%*d^K3X{Mff%leCo0ucn8JK!Hh5Di{gMJFC7UO-MHcb_6Cy+mpw zCrGXEci_@>Fof<#%1H#blc_JJ*PM-@WEVuiXXjk8V;w;uvs>Wuy5L2mPvS}wE(bHa zEobwb?JesfY7*y*nN59K$fx41f50aON9YTjtzYCB>MO5cZ>44e(^d|;v~WjKpLi?$ z&P7fQ$=l#hbo^!Qhg6Oj*CzNphOhs%+dK{uqc$T zwUufessBh;@#C%b0j?kA2^qt~_3^R1Ku%GFO07%SG&n?IqoQ$YLB~mzI+T(c~ zEt*IJZ+$TWa_g8znP9gA8B?VY0xg$F>0ozt`~s*PVY+Ykjp*8vGPHlv7|wV?_1%wM zUHc|4;YY!PcOy63WV45}<<>gj34X&s_s}e}Ji)kR0W-KgrNc!qF4#b=&ZO2|O|yZ+TrwZjkO?kPIhLt7B*7TziirHb zC6At#b+psE4we53QR4hZ2V=PRV9$pXz0WKg@!o+f%e9ZX(Cp#gu6^t51$L<%)9s`= zJKz6Sdv^$koL^Z=2CmGTfpSBX2{rJ+qZnXtu#fbe`66Nl-sDJI4F1IG%1S86D<>*} zSAV8~EhN9oGjKcFD66aQH-axlLkBLR1VQZ)tt1lSKEl;^5fdNO1K4WUop|W#d&(67 zceThs-y{M}`Gw+irJb|6bo$pU{17rY&W}SDa$j&xF}l zI8aRde@HWHewWBWoIf`qR@H!3>v3Y;E7>|;I?fS(-xUrCXN%G;fm_-$SiuXy2$VAR zmxxnc%1Ln&&g2a-28GxLw4B=yvq`wGXS#g5q5*j}YSx*nZ?oA?`|w>2tw z_PA}0daCvxUw#zRm<#!b^6^>oABjsNw|o*PaOqK!1QB$RgBVia+yj7A1lR&O z!;;u`|5oQRBPVLLYG^Pi=foW&?k2L<39UO{272h?`$vzwO)VpAACDM7Ulmm@v#$=h z{f;9=H}eWoe!c>)wY~V$L1BfX2kwHn=7K1p68iFb;2x260R-Qxt(e6Uu}cv3ux!;X zX{Lun5uD*zZ?%mDNBz=((LH;9NI`)ejP`sWWEaY3K{kGff13h#VI6Tqljk3@91t00 zG1mm`v;4Z#IC2zvXX0h!9*L^VtJ66?OffWw%8GK^DEQ{d599~&rS}tVr zJ=E&P(HBmA&CuLCN&TTQ;E~l1v0psr)^1$rfqxYzCQU|e-Z{WkVN%`@kU9~AD$-FP zg|yK_da56Iw@&%qrxsuZ=Qh*9qAjZ2*{I3_Xfbb6SZDC|kV;Grbx25adRddfQDUD_ZvU%Xeqym17-IygKNtXlzMsQu zS)`0f4-L9M`%9FbhdWrDb3i~78C}TVd~@1491!AvJEu{>5FdI}r&=VtEay2{lkyBA z&(a+J5-OMu>I4ya`qT;mMEN|xk_KE{S?_3R`r-%~#S5v%wc61VaA9?rxK)W!uE2!0 z3<9&U8bgGwZeRxY%+`^%jOtp>P6dx$UcI`EX$52&hDc%$no*G1ZwTUZ&%m%vpk5Xo50lq9_WiPt zIn)&g5Rv0}0s&!vD^b}bXq9LTK28TH6cQ<-ug)@f@qu=z5;ndPli%G5c-mUnE)&`o zabN2xq=+8)ddN!02wXHT(b7#_lIr|mdw*Oax#SQyTO-NgaqOsm#hZ%GM?RZmp z5o4&;6^0i*&A%{u4(`}&cxF0)d>mu*W|6p6F~k=qed3)Fw^XQ}-@Vik0}uaeej%i= z4h62CjK3HX&+1;iBRGDIX#7*)nPvM?q_JZfS#4{(a7g54?dVuaOq9S!f|lkGFx}MY zCd(OqUrMP6JbyrH0g{3%F+Qe`vJ?;M;yc=fmKqo=pB-8`$$0iIY3GN3%~fd?+R zlG(}GYZytXcTh%6XqjVIZwMD2jFFh&RJemLk<2U`|HJ}opz9il!FIlZv}yxR%9?D> zpQOOk0J;2Gc>iSSavUT&AKwooi6Bs%X7X#TfFvY%V-{ZD4AtNa{$4L?mEu9O7$W%g z${Zws4Ji)1<4~9LPj9K#8mm`J_y>B*mFCh!$oR5-@y&rw_Z_gSU64eh@Ed=1j$Cp@ zn}Y?iWPf(ScHjwkYiSVJzo4B39O!e^d7h;6v0pCUIIaC}KYyNdztmb%;KMl6+6}uEn_TJVyN`1rzA!!K*$*G9BbJ7i{r1u9&|RWd?@4Cum(O28T+M zdw$v%7FrgY4-TdSeiayaEmWMeK!XnieQ^gg9ZLIo_ihiV>M6+40sv`1eGLWC|jj>#wC@gf<1N%nWH)1O58)cP$s`S4{y2q|Is42Rr^F z*WI^^WNtd38Bh~H!8JIKz5uE};;d}^8{$$IP!sNYTO@9GvY`ilbOoPF+zORm*)^UD zuL`@GDxSDij+vDV zVXnr^YG*@*KMSp!>3~2Bz}yNfrU3!1fLJW3v{(q3$xpQYC2kDD7q&^dEkJY{fPlPF zC+2`=f&#W#g&`gIsI&*p2`!Hkr)A^4q2+wX7{oyfF5d7UT)xC5KZ2Gb6mpOB|7x-^ zo{0QBvV3Z#<7*GRV*oG&4udN=6Nr1wI)|(>w$uB6ak@(-$qy?@Zt=Itndd{mZ3S}M;US_w16{sT2$j#u~#^yW9 z`#6+x6F>_EEDN_M`0D964xJ)OA;m)XDCvOi{XOeznZhV-Iu~@=hV1IiI*f*;8kX-f zRIjV7Sjg!IwQ4bZaK(lwfyJ_SErnQPuNA1BVz-V~s>ZS{{P0q>IxSkJfny1k2ogx| z`qSl}6Lt0CMf(Wxi$3q~xHw8oB`ciIbE_!Zp~}XCE6^p-9bCZ^%Q5lucw!sSLs}uU z0WPev!6kqT8fyf$Iij&t_zZ3fLxrP!25($!TGT$Kpt$09RtMU)EP!|rUCL-E9-Cil*o#Dj@BfZy!+IJbYjZTmja zr8cGiH-Q+_hmp+eQTdGNn~kA*Vuj~BOkt>1>I)5d>~>5!MsgS(zTr#qTXdEwG+*hE z(~x4IkXqF=kWvG&hEhjtUt zNf}$5@E4H|oPm7Y=R?Q<3@D`1Hh`~}G}uEr;$o4AS{=EkF^}CY#|XCow`U=%Jt?H< zH4X=|{6Ar7{~Ha=-yk6W@%=voN!`GD{_yV??w(Mz;vQoSraX=$-=aVqzWA=2&S~-Q zTwFeIEECD;wJGwoP~^_tiJ@I64}-$izr3C@v6DMy+Zy6HC-4-E>6j*+ZrA>usaI;v zenyrv-V|H>;OFbi|19|^*5Elq3~i34;DUHdBu9TI@Pz-( zT)Y3MkOPA7ZwFRe0RG4u`JGTEorBuL?do%@ke^jhE4WDvmBcfHqyNXhE)>#KZfKF= zK@NU^I_lf5wADB1kjW4<8HJL({^N!$rvjF*9dNL4b3nZLw^II>KmLRG|Moyb27rxd ziiMaqqybZ>MB@II>Ay3DO44y5Gs<#~P>2PjnHOf6y*n=r)Q?nSl%)&6gn|&+q)v$Z{%T zv)cgSo_|`MM0CoH+pOs>~u2=oHVdB9<3)arG9lh!mF7n-eYZg+z9 z0Q_UPYaL60zh_9jrg-h!8KAFf4{2~m zr?5+Qe>-M|baDXBI1dWWki?;eE255w_(f1k0|muhX%ikTH{~z8*e z-$ZOHBY3BQO}zk59&miEL&g=&;K*7|M4DmEzd*NHW4dB}Z+n36Gw`G04z%S$`%xoV z6Rd&vdI!xt$#Yxkx+Cq}TF1LTD9LT-_TMAL8Vv;BOz%*b!Uo_{u29?$AiV%}1`c!dZ6rc|(#i+y)^JEy)-r-|=0QT> z<~Rtb;3gtH#TGnPV<{3at2jfFc0~+|xjOpysX{M>?7qooD!h6B)w|mNINuBYlhSRN zqI5M0Cg4*+Y5!iJ%leg3>u6u{bw>myc7yM1G-yMCv%H<-a9P2fLum&PG8C~UEx^eh z_}LX4*Z-D)Tk9C(!=93z@FvzFXrw&Mh8h2`Kj9=ad8ZrL>6e3UVChl8oi4rvo-?w- zZ-{kK;L9}NB+Z2;A!c(}Zv{{1fL1cV8aVpR+&+mi@g@YN6@Wb?5tlmpe+RcH5na0c ztQ9!a180d?hcuId8UvAaG2j)59R<32)E)Xe;eSJ@bD=G?WCxz6z|YR$-(?WP_8Z7Q z`O{%2lQ)DQ%`RYB2xri=NRKjk`yVu*wF1w3;83jx5|t`2pQ1pQ6%HN;G_-2Of-U%& zjz!Cqr~U!N0~p$YR`hV1H#YX)VbTC-JvfK*d4J%QRSH}}Sk}HU+1{_U6+pSL9$i0q z2fx}uwFPN%RctHxqmVmBJa4GzeR$wS%qYXC{XsSVi*4(-GAVGj89d{`N}uryqZS2b z{AUCvS$k*xO1P8~b^>yfhX*(`*M45^sn9`SO-801X=^9m=GEMV9@r0j7Mwi-J%>AM zL&a23rZfX#grk0f34`Aa80ymi=N0@%Gi*8_^z=X$-3p$?fd-{m=BNb6du!ek@?3~K ztNW$;3lD$!oE7_3TvWuyXZ2O+tyqyWxm5WwBI51@acj%yh2h~PMNsO=GLM65e+3b7Y^wFM7iMBI zX)#*LzmaOr5}O(QJlTa?KWJ93^J;rOu)j(*37mUYbkimqCvUbu`IFbc%7 zECr({h_sT%c#M8IQJfK}{U~y;<5=;{H;uMeC!%ez?x@-cK65tLIv6X`zGdK)JMt|j z@*5qb=3guKIo4+H~P!g5-j$p>+>%R{@N(dP!s{LZ*~&l8kY4q(fI8WId(e zudF_k#s=?RjBAG&0$E^~{4t}s9}Y(dL5Z`Qx5jcQ7a$*T%#m`L8E-Tmo8?9d>yEET z+m7pHd7-oijIq&xMHJv_ekFRVnD~yM zRScHjX=mo2Py`$Pq%F*($Dp+5AL3~@Kcai!ii1SofpfMB)weERod(B)h02K-LJww{n9iC+Y$$?FmW#l`lo?9(42}@e(;ON&z_zYYL^lznE z(~LBJJFm>u1kRJKf)Ek;#4PS{%juJJV_$z*2px=K;ym6D=M5^#13>GSnhS> zRM5RqBH1jI^<=s8iZC>sIb~{reUNxdPB#O^slk=HFZAicJpA%3UjCw>odqPnc4xDs zp8Y{$$V;rS6n67z5N2|hlrHZJ_rZup1BZSigIyk(c<5wo11QYVr$Oqw%kBzL#4<1% zgKk!!P6o;z|9J7U+NZ&JcoJtD>pwi}Tn*3;o`@BOK#ngNpwj)3cbMB?NDKUJa*2r8 zFj0Tc6Td$MHUzBWCo-M#y$5ZupSyY&|v)*tq1DAQbo@?VY5F(@QfY> zXmCmg_*Nsdmt^KfVng00g}pU8kK7alR5^k(eVOOz{(67CC=9L4)N=2GYg zZRKGY7RSrxY!)(Wcq=viM6OVBQBjmgpU$9}QHx;9TW{!XT0*mXr^FuQc_`{;5%Oxv8N1!K z6u_*sHj)X+qEiBwoeABn_(bCGm44VVrH!r;c>1s8F&;n`!ix*_ECpFBq&*TOza4({ zNGeiex%1*5!P9@Vi*ETL?7qfaO}=z7tHo!~g^lZ-j$=HVq5)f5{LL{=r!Y0t?`L=! zF!Z-9bvxXL|NKXO&&V@a@V+Y|t(RHzGAT_HRCVdcjvbB(>}By@`aae_x!`>*IxINejVqoJ7xDc4!F`V4}WSa zL@P7P1HMMrZL&B?>}`&_NvUU46WS;`O-)$o2t&>`_^Z8au%TkbL10P2<+*048Sb|^ zeUH<)t-XQh$;)?E!~@$zK>?;^Dg|- z+9L2o$c4L2SOr$!#U{7KJQ$-CoP4OId2s9^|K2=9#=86AKc`uUZSx%;0woq{!sc!88kET)?I$Q7EfhsU zYJO3oII*_x*LAON?k8`F+G0_BQ+JUjnV@gy=&)9(q6wNaj`m7CUhqXE?8ro{NsoT@ zGHLg>?lHqJ7YP|XKo!qcRj&|rM00TB!GuU{*9nPD|D$g4(0dqH>8KZ}ky=llSWX1w zR}KRGu&~w-r|730TOW~X+k%U%eDj6ve2II!v+Q?M4Zo!g0cT;fo55j^agMjNJs(cA zk#?WLPG4RR97gEf1)r~MuBDJ@!X2_?IdVDWx{Fx=gbJtsqKE9)}bXIq~ zWuVy(^Y<1UU=j^C+b?OeDO8MEi2i9Iu{l$5T&j?4H$$Z}eF-d`7qq)|wH#o0REg;! z&ML>W!pr;JHIb0+{p;9lSXMBXMevj`E{Q(NyQaG#N-!PzYV}G_i6>c;p+#F@QpMS? zr0&-kylNrr3noPzk_zoMnrS*0!@6!hf`sY&3R64y&J&D(*UZ=ywWd4#T2qS8p9r+`W!YYj{VwH|gVs2!pm%-Zb9_JPJNC7P+_2W8Hu%Mt>-erg z1>Ja428H|S<8WbuzCGmqWGHIt>1UZ>XMHc%pjO8=M$hJd#R!+D0AY5BqxW5Xzn}Et ztNJ!gL~_#`)_%4_oR}lD#Q`jAj=n~uI#`(R~^U{F$X zGGe`h#p|+-5CQ$p&R1s6mCO(oooCYr=)y3yy_C(A-}&#jugI=$l&BtGM^)tm0j{*~ zMd!qBk2;|1U+g`=3=sKiUu>Or9NfA3V3uS9CTeLiYwAAApCP>!xP}i@Xktymn75Ib z7WX^hNhobeu^9A6Do$l_JO^xoxe0tdVU6Uxo_Ik!cPw0;iNGpP)OtMQVW+*s<1agr z173wa`dWMVJH}iF-l_Cz%UgzX4xcaz2km~6*rLczkec1o-J(9~XJG5#8qUfI{me%LY=~k-3+H-b+?HR~4XpLf!k>n((ltCEGR@ad zd8K=AXlboO*emry#;82Ow`B1~G>=N%_xiQ4pqsXJix0fJ$94qYI)@W<&U&sQK4;|m zqgIcWUH{bZ5qi_eK(#mF*AWTN!Rd5d2fN5Fq)_}deEHC5P~FFKF&$*{d6MB$se7;SFud_QPKG5AeglNU-TK50=hoCU?vSe0 z+ecnePiz|krpl}o1aIuMlPH>MB(D2#OF6(4+j|Lmrrnkf_k?$x9kfx@aEiA`Vo!-& zB5olflTc4z%9^0<-PKZ)e;8)&R2EZY;$IfDGp40TZ_l6It^52qHEfB9)Nc_{92$1L zD`?(I@I8xYTwk{7HPpu?lm~)36VJ=}*X9gr%+IrqZJasp2fq}xEc)qGO}-k(Hsh^# ztDIhU=ti}?6ui9e(21rhT)1$R^CLY=qWLA~Gej@7A|s`1zn;1l<;cj3-K5h`zr5!v z9_m!7X)9K^=}bd;iCN#jdAi=!Z-Ucf=efTJh)axXPd);k6!H5EJnPj?j&lU>M=n_j z4Z3oLM}p@<($4Jm1y_k~R;+^cD%Wo)!~%uUqguhdaO$%rYxEgys~Zeo*PX)CkD8-- z8k&LBdp-UoZq5>_DE+0+asKFe98Do!sVW5_sznWL6ANa3f-z-L4cIe0`^1E%#r61) z_6@B2_QE9QQG=gyk+pO5xvfFOoJ)gUSF760d$d+CvT6wk+{7hxm??Bi%oFX}lU6Yw zgTE^4tEGUd?gX{QyBZUgOAM+xfkG-|KKGOR|@VmH; z08`@+@YUl_!AarIt-*#`DJ)5ogtJa&y@`+nvRs4=N;a82VnA2s(4R+t=dR>*t=|!v zB&oc9I>F^wm%M_B|9}og%T#?|TP-|w*7&UrC2XGKGwev#4ao~_ZYiU2Czd-pm6MB{ z&WPjzrZe;S4N)8!m&{1kDwG8osb}xfotdOd6D16SZ4dU>s*NDtPU*qlT)&SoI@Wzz z!N8SX2KzqL7Ti=E5RB75H;`*`>`B7)5n<0qehj}Y%5QNFYlWY9T=Lm7|32^hYizow zI|79x>pZ%mArkaLg+Wl52{x%@#^SD2AP6H;ooV$oQ^Hw)_D1g(Ijl2(ukunSXjO)s zYJjEtB$lMuyo8dlleMKYTh5SpJ`n)|%56`Q-hkzIS}c_Z+<8-WRyF~0Zt zY_=5R@%x8%iF*?9I@xX&%N^MnuV^-7d&c>0+viOWJ)6Y~GJXr6P2MUObs*!Vwn-qM?d zZ&v$1FK>5yxOFC%XT$l1@>Q?eg3h{A zaqo9w`hE^|BJHNvTroS`Wi5~p-m=*rlIZss(!R<7Imq($ew4S1LZCle<4}Yx;}cUS zVnL-!&P^-?&`h~H`Y8B~swA1$LwM@*n$gnW#|qZ9SWo5!8Ayk80DX!m|C)Z)8b2H? zkT~g-EO3o;;%DULb6&S0O^cbWL`*-&^ukyBy;GHRsYSj`%5zN-C@k|KAO5w^D}LBM z!l>()o9b&AxV^^-{ipanfvkXC?$W4*-_^@*>#ZjTNICtp9P40uf|n>|!%kpRS(iFh zxy&(!$?k?JLmvCC8Gq`7!*jTPYlzn8v-0zEOSB<9r8wsO6ug?SCBNz=qg};(&9O7#F#O~* zudmJs)5dawMc{ESWzI87H0P{IUV3S}OG!^7LF29~1Ee)>IxCW3Nb0eYlSU(wcJ+c) z8_VvgPyY@bhS`zCZzpdwwKmfuo|pHEtIB5%7y6k!$c&i6qzhIXDQMmF?y}q(7!f#mJ89+gh8h_E zR*1kSFr)UNb5Lwig8Xf;7R9vS@1SGKBdMBw_W%CE}ht)F9SsMP7U6Q?g1 z-`5Kk+`0$0@o)B)WmQ;M0wfJ^gDR&}AlKHIBjvJrN-^k{Ga9KX+R2e7n_N9E;{P4g ze<{8yN`51trJOZ_jKfP~)yxUBoe=VIg%6z}WIQjJ2h2Y0RZy^h;ym_?qwwytj~mkp z_FK9nJe?OCb8=3H$UPHZ+0Ju6E#5dkm9;S!tDkLp&mixgux!q;^|nk<=*|{HX*NT= ztsUPHI`#3?O)@pOM;)+;7{z4Y4kj$YjwD`nK*lS@Uqnpsdf753uStalVV2t6XYZSU zF+BEYQBBetv=5D4zPGS@JnPN*!(}&4G8NEAF^h9AZqyiU?WuhFa$D+>AUo)ABW&g7 zUL={@F*~l+hCaFo$Aq{C*Fk$)p0S=L}tUSHBJpsD=QXUYR6zKabkGijo9e1%0Ql|3kN0JupHo z7?5$GUSsIXOIP6=QM24*I%D;?1wSN zIgKIhI|aFtWBfZ$(`2*4Sn24K((}tU)p!+QFCF8{uWs||$41{jy3~C?n@Ll&HtSYx zwMlX40plI!V@TB3j8 zY`f_%O{mPxV+N_aB9FE|Pe`2Y{kRm?9PGYx+DZO}nn# z+RezSky4IKlX;9a4kJ_Il0n|F_I9`#5&TGNPo=tEIjVGLByA6nyI&{)q9?H7N@&msm?oD6*`ruq$!d>0h@kVs>wfQ|SpY6$Zah>Nw_(~wAl3cHeT;pXo?zcx;iiYxih10j zmO6Q{W4uQzoVMg~FxF2A&y&wlmRKIbUMt-p5#D51+KO+8-iS^&?t57!aj4dC}y6TedNu0JHn9k_xCQJp+7oCsEx@xWK zeXK+(0G(;5qByQMa5>a?cKUr&b$k20m|iD87o-czpDO_pW!fJvr7*yPALx%U$9mFA zla33bX@>?bgw=J=!oQAaJQIk)bCfB@n8RLHohbRFzOp^JSlxGMXf5}J?)2)N<>Tv$ zuBa?YY|bO~^XNGad+YSobzK9a#%aSt>x z)6!0Gi{XZh=I`M#Il(RFrtAE*vraq0Cw7Yq@`F#_Ys_`{RGZf~tWSSJ2Hg35jSf^U3l(!*_^S;@6sOORS~;l@qv6C0QQj2;jg=; zDAg}_7LO}b&1sp&344VNZk{?6Wy5|l5r%v9P2vK~G|a5XWuQCaf;wyiu)UOdf43nx z?p9fcc1-Q#ZkRc&dd&SbP=xy~)%DIS$_40kOT5bLA8GMipHW@Zq~=$V(%QO-(s{3S zC)M9isXi-f+p-Vf+XT!U%++DZ{%yoMb53iu)OUFL`GxC8Wa6*D9~qZlfzwG( zft4jHGd|NouSyiMU&T*b7sr{gzISI$lh`R{dgolrSP0X;G^8b~8U|eRyAUS$=Jm#> zOH@Iwosf@#uN1NqMxS=pc$u+#FL~Jxy}IUJmX@H%0}~2#_TtsF}XR zx%RM<83B8*qee>pTEhzqcI+5ZqcSas1uR(~O8xSc1=gTG;b;Aseor0tgwhq?=5o~o zhN!7xSC|d6l0Q{Y0v z6}Gar+p@t)G$lBH`#OsWlFfq}}V+;XV4gwC}Ek9-CxK=m9hHdnWJXN25sVWvf zcE;&#c=~MVsGZRAf2#W~$}ctLGM059CZ3IFpzHQ@HxQp3gvy#;=1&$}F<;-iWB+GAEAU(dW;C%B-ue0oG-Oo(F?%ySVaiVn66L}8ydJ`qf&M|Cf(j>Y0kM&i! zx6TVsoIk3tQ8iRNo_Lheh*xa>i{R@S&ShA|H3lJvrw?t!cD{U(RUg z5qsNj`E7sx*j4-7q>^&!3-0Szo0%0{mR^J!Ro@S3DwR>73H%wix_b zw*y;CwU{0%snU58ajTcV{H&}l=zi9g8A|@iSho6pTOp!rEirv~_pv#V-Yv|&$BZy* zd3M{yOr1DYJwr=KvwYVEnrZKja`G)){Nb3R8;zK;_kFrqZp{@uNmKfMFL0WAoa-omTA0ou4%|OYT4E2gkwo*5bqr zLg3$iTaGS?_^_7c{(fXn`>8G&JaAQ#0|6W6T1ROrV`3j<^bw61%l3^jiM5Rx6}{0$ zHL;EHureld>sQB{-Er!|S5c{QC+V)evUV>q8*pBE{PmOUFA+tSvW+vYbpk=J=Tsur z)1@;nwlHy*rls0qiZa2O%3u(lPAQ`hJZ`_%qCObff4C)Eul&Y{CFoOD=gJwg<^ejCB(Ld?+T;7%C+PU!v<;25JiaF1<$-uN=I^^M`oV53F9!tt`j z)<(@E0wuV;kR3~aHHUug7pAP`>D4#++%B_hD_u8#$8It$@fZkau_)WmKFD#<-RIwU zNq8UH+pG5wbu*CJ#w!)%GTdx-y|}64E}+f-1pLYaY^KtFC$TM+(sF<2(!yC`vQ-um z!=V^qn={!r_T3whr^`$g4Yg&D_P#b)IQD0}h>sj%QM>!J?D1+S8H32^zL-h-R-Z33 z{ngO1Yb2RHt=Cqpn4dSYDS5)i;@&xXSY2|;-FeDOQ=!xN!CJ$m2!2g2A<6M!i@++$ z*7a0MAs0;ex+dQ_*Q&X@S6>i{udyrW`Kzo70iiWMk8~WwJOyCqgL=MTJ|#D|szt8- zP=UFnWkksa7u1(7_-UKbm$^HJ3Wa=kB)E>8CjGi=S0)-f_r~>>yeeIY%=~Hug1rIO zWNw#bC?7Xd_)Rc*NpvU7BCF@)u{>d|PUm$mCTDGUxnOsBYU}+@$RmG#S`ZC4UXdc4a(Dj8dj`PidEc$hauw@2{$s|SP$5$*1w7+X_qzs=;5TyGik(GW}GPr7~_c9qR#OE!MX7;r^oDrR3$r<>>? zzCipO?&~1d$+K&^B~PR=sNVzO3_DE27$AF^PV13 z8`Ce&F)BEtED2v~>3SrXoJcwL6%_)pNh1-WSG_)PJ-j)3~=}yWEa@ErquNp4hS9!zV)a|9G7>d@Y;b-N{O5ByjnecDwtt}c_ zI5b(W){t_@YibFw`FvjRS%+XKJ-Uo4%@oDK>kkA=eVbAsNuLI3#hM}#@m}KAS1|GS z>$usxmNu%I2FIk2D${XG8sO>8(cIi|ir&%20@SZJ7|_z ziNisv>0-Yo37H?U*zR=~9Kq#hN2cyNr)Izjds^ez_gIxs?->6C0LzbKWt9xUxNE~N zbtNKK=Ze|gHKQO*yNWBI8P{q@o4w71H@`x#xydlm27f}aW93E?=-*>NujuxFx&@`} zqymj-J61H;5XmLiVhQUvnWlE#jdckPU z#Y~xE3hqt9I_J$52~dQ9Xq!>4N^w$O1p$+=FdRVusE7lUPm<5(hqp&!f-Ur|8P;v- zp);OqbB5WLmsrd43>9C05uy0mNuEv~Ic9;9PIyK=UOSo{{`lAL3+NA5^^SZ$UJ&OQ z(iZ=ancd@!QuW=QmJR(%Ew=`lx?PWqZzD62sR2wF9jUU#MG5c2$l$AUI|1{Zhfh*) z1&`U&-U=7ow?pVL@b(`Tq~OXihopagJ8`Fl^e$a(xXPvO5;FJ-7w)qYv_S!Cos0Hu zffrJ685G<*Os_H+qznq$)m?=~ketzgLo4Z7E9o#H!w)0uhf${B4IsvLh?sVg_&W=K z6q#s8Tjx%}X&)9Qh#Pr=N|N@^M>50+HqTQN(a8AMhM>}j0vM!&w?hZHfoMd0CrOx) zF_s($7>~|N6V%cGb;!DxL{I#tV-X%GDF}V}ZNSx!4O& zWtG7eEkzLjY+$Vwo~7Le=R5Pz4(XFaPdItLi&QQdYQRg&@IV!u>+n3bxTj#pI{TT5 zhoxgQ48AqX5ErV}D^dfSmq{Mo-CNqFRSmQkIeU&j{8ojRLutllc4(C@qtAOnHTNjE z0EeHCUZO!pReN$AV8?0?8rzXMktU}JF6I>c83Uw!@LP=VJ4~n|Na3L1?d^OqZ!mf) z|5e8Txhld;Kp!TEzg^}a&=WEO{^bv*m9!@t+1y;HF(yOE_`EHL>~y?2|DJtFJq%nX zm@h|Q^s1eGF{=ZsR$~SI62x|R1%-n^%SB3@y@|z$EM9>qg$I=E-wUO=g9(cf2MI&L zMY?m#tpyTft3RDR*wX)-bc=ctu85BLcp)hF5At%9Uj(l98_wwwXO>Pd-d& zBh?)%+?Y%NMrvK6twaa(CbLT)`~MJ5ZYydv@aT1 zX8e!bAGVVW!DjnCJ6&)gV{aPg3n@AD>*3OEPzg#f=&bX9L!SdsfeCob0_LR%`xqKA zucyRNdhfY%Ruk}tgv7o9X}6e&LX3bupd@ZSa)C&Ljc44hbl(O0THu5>_<`#^dh#+vae*4G6t znn@oaz2sH*J%8fbIQF&Rfb<`6vrfd!;fI2Zf?t`Toll}OTL&;=;GG`Po>~l?Ec3H7CxBSBTzJv6LbWvr;QlGWkvAXZLml`8eo1q1#RSO zfs5s&0Q~?A62gYufe467Gdc#+NJ>hV8x5CDIwd8f z1&Iw1Ns*d_l7a%?c;EN;{k40})6a?foO{lB#_~rK^!Qi5EXaNaY)u8k=Kwy#5UbT> zb`Na^XyGM{eh6%h^x`974MXHtlkay8HGF=QSO0X) z^PSmYh&vKWXiZT(YIy?2nZ&9bViOG`~0#TE~G66JZ)556#O;!m8oFGqObsQv)s zBM=D{%+v?SZKNjYf=@Cf$u1?(r(Qo_{eMLwi2-&j2e{|aPYx}7fCBdm%<4zpvyWoQ zpi5*V$BtuZ5{VCsC@?CKFz;Gxupq@w3DnC2%nY*s+337w8en@6Vd*atQgs8oof7jV;9 zf`&oGRQdz3rhgs3f`*+R9f54DB2bo|#D}-)G9(WC=jE)_LF-}2-z}K@rGT5CuXKu+ zDnX%z92i{OI!s>P>Er&GEQ(E21FXph2rs-pY|a1PN+iYLSvH`Vp{fNtX0(5QXf^5g zvm^C%q;R@z`G68AN)lLwLTsYCqxzb~O-xnZKltky)pUtZ;uwA@b?@ zrHy1)cl>|VPoT9EZ6_H}U(ErAXnNg()*vtg=AHA8k2awa_YGTYl|a9LX_8=11Egep zbfHTj|G4P2Z0(=U@1zh-VKte`Lp#P5gg#B$3Wpv3OTIjF->PganKV6-W0))yhLWRq zTS9AB?hiv^Mj)ljP2GbF?}0-7C75HoIcc$_TWWuUH2r(2dm+!WnRwtVk*Gyt_?a%j zBiJhJbsJR<%oLMD1gtO@FsOe%jY4@K)hiA>_(>hChIi584NNx|SW*ME3&$lCGChz{ z)3BD{E_w`qQsXZ-O)&AC7tK1{uJZX`^eFcBS-0dj8+_TQ^#gxYchTMs!#|_88xHGJ z0izxtY_c5u`Rn3bw7!a1NR26fkpz>;CwT%oj9< zKiC6byd-668aZp$@(!?73p93wE``JFenzx3J&xsxqL4nJp*><}8&K$Ss*W`ow2}++ z_rjfWYjHxl5lBUpzx57{M)>9^3I;u#z_5gh_CtapiF=g#?VY3r-G= zRFO7#<|t!p^aYaf4PhrCyB8|BfcTACdaq>w-tL5?{hrgwk#EBeH}T)q7J%-#QG?nY z*q~1A@Q+^X9RfP>-2a#R6$?|)iEOYhooDd29|M7OWBf3!aA4epf8K?E9qMM7#1G?@ zwkov-vl0t6q**;2Wt#AFXM&$h!|fPAVzEdy`;jc~HQ1AX%#!fX71V9UXm?9X$o`|L z>eI?pA1KMPOpY@{jQ!*xcHh>LEu|&I&fvAbr`)}?Q-cq0ZmXj6v9zAV<-Gw8 z7^K9)s$ZV^3O~97g4Q>i>rPGs+F=3GVSsdDbJ-G4d;al^OKt~tOz7G6=3;VdBU_Q& zk(hQc=C4Z>{i1L7)KqFGL%u&|Fz(we3O!vV;Pu6kbRbDfP z_mWIL$FxJxql~a8Gz9DjAM{D;jYILD4qva5yhFEu=lSt@0xRo0$Feg+%rQ6V#;@Xi z>lNraXh0IYYj1fGAN^<(sN__%u|I?Tn8day8!aT0M7-X11D5bcm@1J~nXO|g@^$I& z>(kO=ZyWAimtvQAw_^8caAvT7X*MEB%z5bVBjL^ageAh;+HBm{rnw=peHLG&$aDDd zBVjLZVv3XE@jcE{U3kk(?1Z@RB+%5JHDw`O>w^?kjO9}5I)p4=U&s0v4FX%M&I^N7 zE5g1+GKQ=ZoA_|~+MbvJV9oO7Byi!q*OFrAU20z>T*hzrQ&_d5Y*#b*tcMQx47P?Q zNlpUmkbQh$54JXIC`)lezw3{(JTLn7ZAeh^(Knr`=kQ99bcuxSZeh0H{X@A>aQb#s zi`B1QDnZmCMO*Bw0^=DAN+053%ju|rpr%AV8SHcaZB1L2Is6Q< z-0l0@Y*=>D%*%roP+^S0m8`_nd)>e%>Xk`RcaSKV8?n!Pl){&kE{>$dhsgjp?9H2j z-ysX3u9@8l52+yR{%+(t*kv}Z8*SRfH@}qTdVkC^AFlvU?%y5U2Lh+JNEw!XZ}x|G zm|Y$9rl5VlJW4f3VLE0kkVkQ`_~tJ{ZbRq4`22VMkJN`y-cb&Cqk9lj+8v7C;-Yhj z#!_v;d=!k2L{#<>ch|8AZCOO>J#&yMB_~r>i46*4p<)Zt`*E%}Kg54KW38aD8G@!1 zBZiTf!Z#?_v03P%XC16_QpJ8ah@_jg6W+^5hVikr@o2a@O1nA$yBKW?A&gVD|A(&l z9im7**37r?`iHJ&zQCY$~EvH$JxAnII@ zUYLQQ{K$ppPSZc+agQnYrm`!1733F>x#1gMm>Ul!fyH2XLJ}=L?DaRn_ZBIA`)*Ow z^zc3txv+e>CHN!e@dQYdaH-*guSkAdFa5LO!0;SSN6JYOWKMAD(n$kYSDNh&(;L_F_W{%Z{aKBRZy8$FAAeG3}*a&7_ANcFl=K0tMEe1HqS z$md$(Bja*jdV4h?A(Hg@bZYrqMPt5cWPfUUz~_AD$z8={EHxXU*C^7+0C8i<>~ZNrjLnXlx0(Kgj||>ZBCT+OM0z z7x^>C#!@w*E)BR1m19+P7tr6>6=&J4R!jNC-ydq+M;hbUU!7U(3h|uAdLK)d5VtaZ zw({B;uw|(#K1>(F+caDgFNBvCoH^q63pgEzrj$L8K(fHgL0z_4$Ajdb-}qdyB2G*) z4+P9OM99wNy3BlxuGfl{@5*9VT*tP{TPa+1(5ONq3qF3hR5xhL)TMG>3xv%?G1Q7| z#5YF%PrhKh(>G<;!G`<+NYdPTY?p$N3+fI3S zXDeV7&`P&%Z$=xF?z&i9I@)pSV~9lMCq_>9{-^7KW2I@rZ);3Z zrHZ?mK~z-7+@H03t3=ZZ=5!x#`f-(&f)0;F0#x6w^OHQ3laN6H!IW&p8c`-6%I z@Ofv%BI%-mxro>huSV2~KdOE~Q#-%vC(z*}ZE}*mj-6YBTvxP)UGhcR`b|+QD(PxR zrD`6fZKZ9RANo9cW}fA+FF$Lk!R&2bW-TCSVNlZNx@M4X;>vfJv70uPjHfD*e{@K4Lcel^^8Cw_}yn5Ic z^?G^xn3e!W<$WBi+sA!t3hDU6T@CV20)cOLEGrh1(=wWlyBXT}OG<7-s>NeMwH0L^ za0%cSvG_<6pNA!Cv(sPP^yX?qDcTas80tD zx5T}t$s6!Y`W}f*%^;@DQFQR_Tc^C)?F>oqsg38I)-KKgD~PCWmmkkU#Oyk<*oT2l z`oDnU&GWuQXZKW3UJc!Osd{wJ1_I^r=SVSyv*xO&2KFGI{CalL};f(si_j z?vm*98@Gd=tls{G_{;+%gjx9WR3QbRQhLk|BV7)oLI2U6WD%dho`&$)2hwMVH_lj& z14Up*NW%~|{=!k{rh3-{dqY7-0_HRGREPQh6V2Y(x}wQ|w%b{_b}(%S7xH+bR#r%l zTBM0f_)$R7i@m%n&RGWe;hKe=khc|iD}MGa?xym^Nk!P+y`g!-z0GF8Z#Qis3V|Oj zcJ!p}Wr+FAT-D#0E8@)iVC5--T0lL(f^&GNAc^X1U{Ahm&pOgo{;ZM$43cLP^t1a^ z$x>~;qqiFc8@Xf5CQRo}8+>v_L}j-m4R?W1sfh2wzERxf@MC|^ZN$0Au^T_JH#0_> zYl0|czz)r4LVIg_u6|q-T5-gZw2BWHJwWNtqA5q>+jU6zYx%u{FObzkwX`!)+2uFC zPuB}oIHcA1Z>Fo7vgO@3M3Prq=leJKBr-kXS)E|~N52>Fy%oQ5H=NA;j!%gDeQ8d| zqa{hmUv=I(6Zo=`yT%H%^gd5WrK1EX{pHy!T%qaQ=*pmr4SioH8+-&=U9(~m^pIw* znyb>ye{|2z)~T8_;BJuyoQWK(N}{+0%|UrR0q~UPK%(Y#JO1>~&QwcZCT$pdvZ81M zUwz=#bl|!DRjs1hgG-dhtcFGTT-Wnz_K;ZJyvsE%G+sS0(XdTp?0i)4#k|*CJjPcU zKU7qT1;oH~toMh$Uvl4C|C9QvhQUVIX1Pqx-)DCU)0(7wykycTvih{OUoH$NiU2a2 zrQKiteR?g>>USr2ya{n3YRX$f@8}@Bwl*U0e_I=g=F+JY+PgAfLX%m^yIYSy?XnfWaHxgp$ z-&nrFOadZ8%%PFMHN(-y+T*tG_tp-J0q5_2#++tBgqCcF0Wwkmt%$C|X*XYihqxlm zPxeItXAFc^7}roY5kp#0xb(;HvoGS?J0F3tn;NN1X#8F^AF78{uZNWT1E_ z;TR$$!aGx-+J}Aft(7X#7YZ8=|W~w=0$3n6t>s{9XtUhFGvd+%>sX^F7MLmvA63hM*7wt9( zUAE-uA9vkYyi>u(b(mckupa@~@!S8YvFh;eN7n38vi?`uLAy4nUwGp;%ZMr%FVePNJ{Te#{nj>6F`tS8TKkv)_1Kx0zUb z45;XNQ%*#YR>J%dlE-^?{+V0v1bBD9A9U67pn1^!xfu&S?JOJmr;pcP(U6wN>-I1$ z`9q=ilA)v(^1cC}ugBr;c##AUbO71kVLT_sf=RskJC^Y;&vO=!R{`=-k-iUN%Wxla zj@C2hj6HG6(~HmTtC1?vV;er4P;)iEKvECE@e#UmwyEk`=WOgqi$(h)98(CA95nBQ zgmglx-x@I6gECq@*h!cEd6)j5M5H+uHtMP^=nXTQ*`e3i^-%`F(WMH9K`_A z2J0^TjSp^iN13fyh9pdkjC)M^SK%P!4MJRAs_&o>u21xivtLe-~ZY0m6qi8@H zM%a>}ZmE9W1;zg_8c?gC*ucDwGr9(Y$H98u(t9B-zK>mbXegx>9tA@j&Ix35M@iC% z*)dhNx*7=2)CjWKk)$7t)a;_f2hj+51ZSI^t z6Ylb)UHI%ZG+i}}WzPYu8uIGj(s#9vVM#eUs8$hApi>o9X(u5ts~kW=3Djn?y?mHK z+AX2P;K-o{aXDZu;T7>bre6s}2EkI=Ec=P{go6lJ4)A&y3;pS9jBC4w7|J8B zJKJ}D>)7g{v^m>@2k-p_eT&#Q5wTp-NA(-3Hyz=;j&eJb>5KRM3-s{P`Cfs6jV_>E=lJmIh>2Nb$#G zSLeKgw}d9fTEEf{+q#C?TD!AO!d|H>tM!Y&<^ywpvN-(&J^#}7sx4(A!{6T`Z%)NI z-&`QWRNYx69$!qU0YuCi*ZaswZGcQapN;ygQiwO_+x8~A!3O1>*!J~-!w92#%VT8H zd=^k%0&%@mA5PGgW;v85qaV13;s2nYYfSrOpWH5P6%p0lWnJyPV7kuWYw}B8)*#&F z`f(STw5U5Y#ie@Ynf+Wdn=iW39}ZV#t$&WD7}Z%ts5G5^MSX7aIXJ=iPT|bz$LLh| z>Q~nDC?T8z(3Dxo;tA%_M?=ubOE!Q}T<&vILE@zPh0#xIhybuP_JJgnU~--qWmDkE zZ;7VRk7331ldjC8VSSW@?U)!?U;PM3Ip6ka4W9~&)d4-9E?i55RYud_mN)d^{{Y-A z0-DNye#aQQ=u^at=K^+4GgHaLlr{XOfSfm&B?cp>c2@`MbP-Z@UdS&XT8T8#v&>tc zlNPm!f?1{S#U2y^83N7Wce&OOy;{^tZkc(&wanvKk^J6R*#oz_90wFp;4Uv&q|OLd zu>RYMw^^$%!BlGOVad-D&nQ=#-<`kIMzA^)ixYz-zav?*j$uMq!Jzb>M}@11y0`xM zLbgezFx_h)nS~#lK@=>K{$MaOE2t1g-Hp99Plg^`8PFWTn#MkHAk>SbMcv#q;Un`P zmUsH!6>{!;1q-7g!x%U5UIo{^hysf&q|eAVH|?``%(b^z&PtL_G~JLt7-LZwxd(1_ zq4kS5yv-OaiUG(lO!l;AAagVY=@T_fLZ00B-{%on?b$QUHSlLrOH+>)-|IZ-075w9 z^@nPD_@LDRfftu|rE~_&OP)}$ZU)C1>5V8&hN#^BtzZ>%MQ8cc z{A|9Doj^ITn_kIyPbavp4@+A)k=cN$S^?}YaFrS-RH*l)j}(qh2Eq(80TPnLx-0T6 z@JMi+IP)-zYItca6cnLqL@3Keq)z|gKq?Z7hYw=S+lI* z^~qUmLr+5cb(YL_N{WG?dZ(w)b7sd)1&AzdntO`V)5um<6wUA0)cH54nqKpC4RTTa zFa0nejICLV>?#(v)mW;&?T*YN3ox{&xm1KLp+?c@SrtG_ZG^gBpR~`myo1rHy&#+D z`5AoBl%g;EjYvcKc*SVBL}=Bsd60{K|nqZ4G1sel3P-;XWga&u4DeUM7%4plAa_Nok6K!Vw zEkgkcUKv{Dn;ul39k>aB-=?U;n=$v)K3`;sY`GY4;2Fm|(b3s8_<wFSow-im<+P*ppJ>_w5Yf$qa7Byu$?gT|I2#9Zoz%_siV1Uv;AQjFXU~n#jlkh>C%J>I!wPq zI0sR8a%o?;FUG&OP?^769e?L#?2h*heIZ=DkWCTPSd<2O5Ox#ybZK4UoZmO~KMV)J zKD&Nbv>LghCjggLGV2Nwv|@PN9Td?1p`y%u@B4Yly19zEx;J~#&vu6=?^{8HEHrDa zsk7yV+)_=$2cPa}*8aY4wf8+^QSq}1F2|O}<}~T~r)HRu=J^MJ^q=f=7Ai)X5?{Qt z){mpN%&P8L^Uz{XV3Z+CjbQ#tF_hJJppxB!oc*n8QNO};adxqS5VL*tJ% zj}j#9W+Z2h1bYIpnonssN@%QJC|SL*`XLY$!KZR5^%9_9BzJ_t6_w&cAI`f8m(i_A z)jz&M5#f8vb(76b)p)Cq8Y=T4{rHDiD5K73cun^hq_H7$#*3Oe)H`A{++%zF>Wp7Q z`k@*x~bGRWW&v!my4#r{&Q<1;u z%oLEE8(#k_quS`V!j5Hl!rV9oYIMIRLDZ&FtyJ`zE=6Ql_POj(1gi!h>bHR?4i0`z zsFy`)=GVq#KGw5$3dRi=j<2&I@2!0bmT9Bm&sE(}*ZZpH>)nCwVwbr8cFIk4S-lcg zf$GVp!)E!P3#rmORtmuv?lTd{Bx`MyOK;OXM3icUFcb!PIJ~D6%wbHR`WiBd7XLW? z}&gl9JMjej_gch;Xhp8J{JTeR=Sz)Jg8+)^(}Q{#11vWMCo z>&jItwp8m<#I{xlN1pi$bGC=(Y`BlP`)InlEz3}DLi=@>8CKl83$Kp$=#bvLb}sse z)fDViZR|J~FOFvP`CUEZgg7$Rhvwy~`lF9jAh$T&H?b}%e5DOxNQ<2zo719vT5MdA z=)&I%{5SPy%v6MoewE#xxnCQupO{1y@svxO?|eb0vVq!q9%fayBV;tnqoBCgVN~y> zo)*omw6su!Yyp#Q<@C^IQ_Cxr<-~9~wXO$SZjx1Tm3j+HnFoc5>K|j;El6j{c{ymA zBlL6nrSuPa`vDK@ZF}^#ZJJo&q1Q*JjhEpIC-|MWxR!))jzK)6N% zcqx&6+Ffy*<6&{Scl**?qo9x0YzzvgZ^u4Kx=3d}yZfH{PXWts5e0hbGcvgsa?aRk zC85|A$3tqQ`p)<_M*ggB#w8|H@XJ}VbG+}+VngqaTrxik1`1zJu6lpW$fkq-B5iq7 z_r|=U%-c)&Ce@4FRNn?gRdK*Y?r@9Oj+)tW5sc=V3iM@kYhwqDDwhTp+En->i$bsF zDTg7-xk$eYp$H~j>U%~vshIS&#CbmkakRd@)JA)TQ!{qVfW4i`WWH*)b@*mQUgi~} z`RcxGL87hp>qnC-@x-osp^W)1&@X^9cj(pV72j+Ba42q`>y#{jgN!OMeG9X--2Qh) zk{R=NkX4V*c*X2P3ZU^M4z5$#@kGr$$f8Q1@a{(lyU`ATa_RV#x%)@N>2va5?-%8% zNpnG{sGz%+ZS>FL_t-Z&%bS|-cIB(Da1*YD+C?T~h1VJ1RAfSl-om7<6n6BwpC;-j zRflx8+Le2pl}^NnwDCFv7P=x?PJND+a8cn3EsurU#q~%cS0i_=j9Stn#z~cb1R-M1 zG-Fh}BDKdy@4)lr5Vhx7RXz0m?yn=pemC5^yaBttUm7}9J3o+KswCI>RNWadi1OjZ zej(q)e`qyQ6@R;F8F7IGNK9NUQEM4?qRHXGy-*haG8j)>y71bJS0#Wf6n z95Tp>gF%St{Qde5_6dCPP0V&Qy)!Q^Z=@`ZTnIwMMOaLsN6}?^gwnX#g9|vS`SKfY08U-9 z(TwDg$WcYb`Bx=b>K_iO$TeTw_@ISQDtmC5iZ#Cakq2(HIHoBRB?D%*Q=X(lIYqDqTn_@7fIt-X)g z@O~6q6iz7LpP#%)cJU%v`l+@Ri_K**lfjD~G+IF>_HncQvF?9DWlL%v==tlH1+Jx|p zJkL4jIq&|}eQUd@mpvWNk01X+# z+Hgt=0HFR>QP7Y^zW%R2l>Zg;cLa@q8-;)?C7&yY(IA(}FuPtSr|~eS=_sekFsI1~ zhhZP1N+F9z?Mt%}cEesy<3Tpv7B>AZWM&TiPAU;^F4GZC6DTRC1&j7KYOw%L;~@$@ zH`>>cG{T-pZAhL`DVLJpje^e=$=@^lZtVIU$g+^H$bWA0>ASl-WI<3UR8djU-`_td zYxVc=&J!^6Y*&AS`Bh`hYKv$Hev z@WrdEtD~c%l$4at&Q2H%_UqR#4x{0NgM*comEGOl+}zxajSY2m_0{dG#l^+*%ik(0 zDhDUmb88p-`}^d)F8o$w>;`>7nQO<#$8BwG78VvifBt-z@Iy;WYjAMz`sNndQK_k^ z;*Jw!T(+c~R$E(JB6j24W+UmBF>}o13Yr>FC0l)Vs;_^z^}5cw=Luv$Jz?>t0sF4x4_@?Ck6%;&*w+eq;Y(czC#x zkJvSMRnzYibrT8y@~w)*+`O-xK|A0RB+9p=$;o-^Hnq8XmG^CDYY%Y*zjpny996J6Iy!1#V9+*lTv1U` zTwFXgHPzkSE%ScT<5T~)Z{Hk(zo~i6tnXZX8#-!eXoxA?lyjY8)orhx-7MoCH{ta;U_TQ>ne*vgjG=Y@U)d9p;y zrnp;ueI3%T`_yhv^y7S4RI>A6OD@CFKGrD!5ZNgwC86=bXn$$kZc&^NW6XsT=TyzU zt%EL_t1|)P;?8fH!B*b*t-OmQB#f}kdqf6zX#YDg|LRbdu<f0IAC*Q6pKeSjV`rA_SuX0%!`kz>N;TM$Rt1MihrPjP@f8iSh1@57zZjdEc zYqe9o>PV%1Sn1G##XN=~C6(lcc7fu;rps?4Kw;@kQ{yh)7U9(gEWzr3Q9TL-xVy|= z@xmwoK5VF+5&p?fPubeXx*uhtKP(Jhx5dX@EF>LSMWxy1eLjo!girMql?}>5qw-l3 zV>^jQgn9Wx6>#ALu%x$_??=R~kx_bj8_Y{G=s^^zZzbqe(Ez#xKqkz8&pVwSLKqlq z5zn^ELeu+wd!UHqCMc`dWmCUdA(K*nMY!8}d|ES%{w-y%14g=DvORIf-bby1OVH8J2`HWZ)?RF^X+9rQH-nTX1HH4EcD zCL`x7y}Sfe71S#|b@F}4Oa(NR+Qn@r5T{Fs%n72%Zt+dB%t9(%^rd;u{;SK+eRm8K zK#1v2N7;T0uT+vYR3xUNoch6jd}vSO6bm6v^LXoigOB9U{tiKq4VeFbg=WE3SmQr} z6Mm!Me}{i$zgP1=Rs47MM#2A?UBrF&6LJ-y2R^~0qx`Mj@-gDgI$;ChA|wbp{R(Bw z6jX_*)bA^`4R)dGgX1U6!uyPg&_csAC36!w*pp?L)wR%GiLoequWV!Ia|vX5wA`HY3qjZ3{9#Di{0)f_yZ2tu8@@hm;J#*cn^3|g9*eGi zmE05i`H$JiO7%07S~wJqZb-du>oeqdJE(7w36gJuZFwZ@1~3&F)=#s%n5n6gMpn8A zK|AXvKb>FjZuV>Ag-`@M@8-MB_axqEtBy&z1t9I)gVq!t!~wtKIq+`pja_~HeY1d^ z(j_cE<{y#0ooS(5ak4L#xY_hs01}W0j28>uWx^Wj>8qQ1nUC{6jtL2g-g4UG+bKcW zHQ;%`JHG2rM<0u2jngj)5L=1%hq71~Z>DbI4X^j)^7QuwmOaK=(^ob|hdX2PgVDj_ z;kNFm65Y&;MJZO>3=haDINXV|!V*X*o{|~)GcbO|VV`_mY{YCkeDa=hUibvoG}jtv zR9{278eVwD5au(?lYzs7KTP}mYGe>xcPeV}5bJvlW#2I0`|(b*?;q!E3GjXGpoUJ+ zA7JY_Roh|d#k${Yq2A5o3#uFsu0+x?d1&I8qN?OcO@%k|+&g{dSPX(|t4yBTy=oPI z_)+A=zRr)dJ}{GLx+S3h_UH1xahyGk$oHM}{FezW#dSGN0=b;&IPHE(4Xqt=lT8n> zpc}eDwRs$CC*B}weJruS#B8iH3Sue79q|sl3~nHE>#C(O?d4{65Qtv!dHa7^n10@W6U{ zX=`SwtZ8%=53rvxW_9LWc>t~jdQ=T(q4X|H@lTIzD7-LC*nWDUICy zElEp(n>;C4l?DZ6A5m5V&LoBMst{&S5c%8fU3^!V-=|U(>Y0W(IquIr4f#tty@2UK)(35aaWuf3pyt%?3H+tC7GHgPT-}Pgx?tj2No&YE zL$vsVz4}{o^IqQ^jVB77%|wvft_#38tm8(44`*3f`gCF$FX*`u>4H}d*!br#!!(9= zT)Ca4kK9a4;hs;0n}VcKkB3~k%=Zxe(}#fUDM>cHAZhN6t{nAh;GB08Oj9e`u8lf2 zMM3=GXE~E0ixPKt?JQpax^qg{)EbLXG2&at=fGJ#h7wzVO|g0gil~thh0l><)H!up zOb+E|a=ar+?FZwCKm3+sNw;Z(E_s--g!-d$sJVwl*@x?3Z#|?7kKU{?F?QWeV(AWk&RJ1QS%4&3>Hw` zQPgnjsbvwolr88(sG^&8?=)Ahs(=orEfszO=hRJtLE^b{P2E~DLGkeiJpUPUYVo87 z)~*IXfwG-ZIkPXF`%qV+L-NS&@l=V}+{4WQQh(~|Jg=!BN3tUcZ_V&7G=(ZnlI$~- z3Z0!OvaxF(yTkYPhvodvTl|33n#V!4Z$a41l|>R@Jy4>`NQ;8l*{n*w*WZg9C$B?Z6OJZJ!|l&xW=);u;FD?u zAN<@$VE6t}?kIQS!??{f_G07H4{Gqk@@n*{riYe_!0Y7a%-Fjfxn0Z zeJFxKa>*nuIR?RG>9Z|2v39p|;jAsY&4d^VIqZ=QI1!0(7% z6=$v0!}b(j-ZWH(puOEXdignjxkE>Lb|ZORkJhfO0_-`*sMh=AS^T-u+y5|1WQA^1>3xExaqs37KN1ah_gfI_FgJ&;h`L=?L44wmP< zT#DlVN>Y?nx!f5o+@pWc0*c1FyA-0aUdC2epYg<}u;Hg?9;}LSXc6$Pf+xVk7<8bP zYTk)BaHJysxQ=M`PmVyCwgNqxfOlP-ZNtg%uedSmJOf3*SDCtrhs)|vO>gDb{trIFiHwauwfs*yzz0PR>DpYWHwDOWWKa0A#$7@=vu7>=ZL2qa_jdj6g>6h%Y&V8 zd(Or3DNyXOtbdHpb83*Hv3r6uBbW1NS5wxPR!sh^Gt*G?MU|K?C~;tsF86>@cTh%> zoTBO^jJ!n+gxo3%XFPg*I(K<%-%1xuOT7EK`z5`!ODOj9mypAods|p;c02UycCr-c zZ2mKxbLQsQaHJMMpt*1c#x?quIayB;=7>nOAW;%ji<8vNF|QW&kb{iJn%hCg85i5# z;`x01UjV}@Ovc=A9(RHJgld6i?;d>QN!%5bML~GE6^w3J16P>(0wNwWf5Fc*h@U9| z_DQGk<&bq>BJZC*c03=)4B z`D&H+P>oFa;0-3huDx);{#7dekbB{+mBvRa4J(W;Ey%rIf*} zJLlSoFV|IVo&$e|Ce;TM;#|$uk&cnZ)o*KnlJw#8=H<0dOwlJ^;E?ymi!KChen(n` zJHs}zrcfxTHnliJB%C^A?FDb?lXq!0t_`Nw@1_Xc$hgwvr*D+^Qt5Bp4RGR9%V4wu zO*8LQMc(Eq(g*93W{1D0%x-^6+bID z0Qz}W7~(#yTh1*Z=}D?>AS$~=RA@%aj~xkSv{#YWn6+4c~|)%ri# zea6733Hx{T!vjCg)^~yCfHDE50A{XB9r$h<30iEj;8-PSm=d5$5wjmkKwFrxFCkyq z4H0PJzQuM2cGK1$gBpROq5WLGk`&oI_E4N`^n%29a~GDqTg$|sown7G-2-|IH@^Ly zL4A8(26nDN1<-R8f;op)g39tQbl_PG6ZutmfER|!C}>uJ07C5&PH#Kux|v)8oh_Lg z5hthz?yl+0*C}bU8L)mfb^+R2<&)^JD3W?ni)Qi@^g6*QBw#e?^`7u+(*&`-$C~3E zQ~}C_EVjRBej>Pf5<(&q8}*688-U3sK5bx(;?F`bl?wgJ_S+Yi6BNSJcSXFr_4!J% zNC;N@N+#4Pr1I$?N^j@uu*sr#EERoKq+djjIMJ}4uhsI!{jrTdj&75|ewGh@p89IQ z4QKrE+Z6OC-}i~+Do3ND>2-nmO`9$BzI!)gYAs-%zX8D4-q%r;^tVN9mol+Vu5CV6 z-ig8Seyj##ECU92jfmW@&e)Z^!?;4h!CtGIO+JBQ&*R)8cJk*6B?uzoPfj-9jX-oj z=FddK5kqC3A7;RQ-es^sa{Q3@j}{-{4}pr1W>e7j&iIb(`0fS^>)-$!hOo^beFKz< z@zTasE<>P3eG}xGTdQSC$IhY;MHO57l&*Zg zna~`$!{ku|67V?>ef(7g(=FFhSeXL%DK(-27DJmZK0cXkWKV-q? z_~q1IO)M88Dt5i@hL(TV@+BjWMZE`%?{79tEpZYNlucyCV&++(V^qk}UbYUb_6lVYP_?VE_8t5iQH`f@`$6UN+ z!=7Gk;ILH6#mlvCuz9T3vo-QI*wva{`3|@w^)8(A60RCqA$3wae@a(HCpCgABI{(5 zLn6yZh$-=NEmTht&xpk|kL2|WEpuA?o;Nl2lJ6Js2qM3yLIVNvzJz8`AGx%>8I(F0O|2Byzl~Dozn4zQ0LA9y^gPiyr+eq3TTFdSprdI~ty@r+%RN^lO4uHSBR;QNVdooTU0{ON}y=Qs(BNzSzlc z?;G0Uru@6Xn%_Ixw8mj72ifHB8Fk&rTg2+7+t^LSbtr^}ppIy)UsB?SSxSbrsF>IXM$KF>ixXDtzrfTbI- zrxoY*Ph-7*b~NSk&ghiK0nvwO3S)P^^5Cm?y)yFUqBVyC4MAmZFlU5FzP|YC^`2a# zufq{2BQ9C0@xn>v{0;Q6COr1$7ndT+B#Y#Z8kWsALHo3U>sqiGup#Hbp~ zUJRpdGLs((0HHk3Bz};SDDf`!9D=G89Ay5^$%N_g;e*DME1#Aw^U|h#`*O_*T^!b~ z2k8r?%KgL=wN4d+A4$w?xh>h!mek=yO+)Bm8e!d!SWtaDd({Y^-82PoAbYwjYPhTO z1@N%cQ#ZZptccNLmz_EE2oW{|Z z^LYv+v@LX7e(RiF*$sBPd@mLJsLn|6?Wj}`)5481NMX3#f;5rajV=|pN)xo0Er@4M zm2Ex}SM|9I!Md~yrP*eSYlMNzn`VH_=Wzc^fQA*3#e!k?R5vvf`!hQUv!dkHTnB5Y zSM_(YO|vq-tixS%QVj7J4iu6dscDgXzIWU;9#c#5;mkWKiY;C)*It>vGb_b{CDvcJ zFA5_i&v3TU_PK=Cm7h3mwZWQwdN<1NM=+)cjrT-w0G@QwoRo(gI2}ZJH254aB+`dy}C6_%4*lK~7k_=``K)))K(> zmK^`nZ};s(5z+N+#zVqXxM8{mjpzNuWX~j0$%uQ8X-Ky%@f!X|DPK(a=tnF_#^t3wMaQ+<@A(MkW1 zOz^I!uWU|zWToL9(#cn=jyPeEMt-0%)pW+ z2(+v&e5=TD4iNrsCLaGrT;FFIB2x_e!YhZjqzyV(52HTypT0xtrO)Y-PZ1Y~bH zqbw*JL+T#xNaL#Q(fXhfnKp$UIZ30kqbYgmD&QRPfU-v`@o@l36QL6GC!kD5 zVSTCRcl;jwE|dYU-rDOrH4y9ykd6K}Y>==Qk{KX^^f<+^guKJa1nDF(^t#Vv`@>DT@R!&x z0a|p~yy%;wkY?>#F1$}Q;WjfE1{C6vMVWR^BTOnlk0QWxMpN9(S4`Q3%pBg|jJ{T+ zr3mwP`-oJWlOe%*j(ZaIbB9MA~~F;rBrra;um z;{g=tZ9#hyPai!{!V@B%2&CuQx2g#6$VVRZD?k0_ic$5&bI_A|s4|z*$Q`sq_3rPm zbVK_N^skqHJ(sBXvHltO`=BWQ2p!Nie15EdMBEEIpe~^He*~ni8xt(0NaV3UAv#~} z-N9Hlh1eYIGefTu^)%qYYZO3jzy&>;kL>FRvOs2BwPRaMe*UXQ92aB0KG=?eKeS44 zjtYXt_X>v(3t|pxhs{w{3i4qmm%!=fN1_pyV~Ez(mLlSsjbd11)3#<$YAHjlBR z^P9`e3p@rDVj^tvR95E52kTPIg#o}9MFE*4%sNWLQm%A~nP@VC*$m_8+*P*32^~!V zG#5tAyU8B}26l7?J|9~BUai#fDT8WV9YCx52gr^4DsSoetmk03UAWPlTQ_J9Bb89{ z&>~7>1)gRodA(p4*Gdd$e!@HqcQMs8*?eQ@qAG_C&-AWBjIbSmHR?k{N z?!It2z=4l$^5=4}ndwtIyl1FaBf13A>9TZwX+G#;aB>wv-CZZPp}VO8s1k?0tj((W zB60no$68goGb8NSp9tDd=C@8!6IY9J-Z+jH#Nb^<3is)yg=-aLL z@Gb`<0OQK2@^B;FMG-(~xjk$3>(F#XHKO4(LLgi|V*0@BC7a%~aswh)A@!zU;pXJw z1pnuyv*+a(i|po;ynREzhq;KOTM)@pDlQIU#wu7l&vp(R;Ik%kF!skSUc)`kS9B15 z!o8o7#*HYhRGmcR{U-2z+yIEHdxjIdkKvl24q+40s3?~u9yZIT<<$(rd1(8B_ELN) zZklJT`wbZxrb~eO2JWsPcDDIa)|+i%fxN-WIhb=tB{YPx*AfR^ozhR>59c9JP;J!!f=GA9o|`MsPxuKr<@EQfH+f@OSD zb!F%l7&Ly->De$PK zjCqc_y*_A9DYB^XT-ZvdF1isYi%lmCID`wRl;rli7E%N}X_K#|a-dWE$(%~FI68IF1RTT0; z;uc?g7@#d`h`z@52(leenfL>iFBP?JKp>@yZhJUyKpjKH7Lz`b%K+(n6Bt+i&~VCk zVTtdNgJ+5ML!rX}VfKp7N@(5&;7OFWqZoj3o02$e(ZE1b)xgeDDxB2_IC0v7fgT?w zNneGa_%O$Z)}L=AtJH9g^(mHO16tvGAn%`~Y?`f=O0>>zZh11l6A2(uE7esd&M{5_C3M z$?U=UIhOM^@7yP;hSeY&W@}nAAB#N&;vfZ8Q+x#Dx=!F%ha!$}ZWY#ueLm+*8B<)S zz=_9(HssaYu-wv`5qXGlm)hDxSOuT+*i)j>*R^;##FT%ng;+=VO!%*5k?zN~jTs%V zr)1p#tL@hg41-hDIys0)s5NtO3%)n8k&JwsYiI8U+{9NYsHp4l1e3uhg$a$&TmC* zZTH|txsi-qzS-Yp^l5Oj+K{JDAsJ|h?N$Uq#K76JUohY>^Jdn7x|pQnD9m>*+$G*s z&(8Yiu9CbYQQ=S(6{WcWd9#xINBY+`BxBBdVJa|=mp4s*E8*d`1&5JtEm%ry{85v^nt2~8eG^9PX^EsS6Jk^uiUAUXa57Xq6taPzR zcdp8xpq!^ch4H_oUp;`tY34~SMABFi3m`-xXx#Wo7NEEKnDeP)35Vv{w-~~ZpkrGC zKdUJfu6>=y(MX%oUI~5dmiZeDrFPVQ$pEp=#-mbA3H!=;X${%-KYC5{3EFeviYc(d zJ?|Y`9!m}E{~D?y#pz%~f~A)9!2PK9iuWz9I-!yoDC6|h>0*)12QETb%bS!9kdj*_ zDR?(AZwpz;D~WhPDjtik)DM%-Y^rHOS9%A>Zyb1be>lnl;h_v@RmW{uwHHHZfhoCW1A)@Ld?vP(=HlP-EY81txYl zk(KV~i@s#xCmEmHqCe#e*nVn>?r{Do0&2bU>G4`VjyBCZxq~m;O7b+})r$t|!Ne*C zcD7jfktCPbFfffJP$bs}{^Oj(dt)9pTGAcNcf@`s%o^l)%YwTolC1Q@S?t~G30%>& zkoFUKNW*!Zqjw`Tqco2-c+tN!vMA&l&uwCWgTE*uwEe<^kBqpq!8OIfC`-Su62BUu zu@O;ySgvqg3E6BGkP%v%7hxJ_FREIZ#!NvMROXMNxpef!(N&dHG+OZfNWhxn!wAvd zX8vZeOG&>3q)6nPGI7HqR{lV2@}fJ)C`+DxM)UVZ-)BMy`RZ=Ps@enROviHmU&~>0 z-kWG8vL)W+WdOgkuTaI*gGCYlpuLs37QpXn#6;D&HKYx{i%;41xqfq_pEDXXiI204 z?)TVN21HjlV3-}Nk9{psqZ^~DIRJ06W`s%F#- z^zu_>S8GTLQ+LeB(K)v^K^|~pTVC~TBi8O%uTqV zPN4M;l+Bx4UycB!S+3>kCYOpO(ZEz9$?)dr0`VO)kwT6IcZSi zk=Cc&^9Gx*StbRtZdxQf3kx)i(5xj@hDt+wZSZskG&m)(s)gUSc7H5GbJZ)aZ<_J+ z1OI?^Hj_VWrrit+J^BR=IHo7f{fR-vj&Q5w?j#n(ArJZwEYd8ya8kxem|*Sh>3JGc8a z8`FD}D_hEmhlOodQw@Eb8NR1tJ4X=6ti(IV(-nR{>@Gg*rHdy0K}Evmb>hPMIE{0x z-7KD)HcjuRNQfvH(2L*@3zE?DVMZ=ZYvczklLIQ5k=x@lZA!b$MQUHye&Zv_(%vI zghb*df3avtXg(Y8pZ5wwqZ0rUe`oBKhF%FGp}8YIGQ}Ufj#T8}Ta7038~~uh#qdH{ zex5a*Cu=7O>>TmV)|;k!^m2ddB@t4F&PC;)E+me2E9xqRMtPYO-tUVnG~*ZXeVIsY z_Zxw~iw}bGAU%ct+63Gq|NA`wve19A_maP3|4!5aLsb5?i};V8|Ecod+V2}@0{8y^ zRQd0H$e+!Jr`Z3l<$tUEPuKm~(}>Xi?^^y**|t9=@faYEF5cm20%u+o#9l4D`=Ls3 z8=M?D1kkS*ob#S5(nbZC5c&t&x1Z7-TZm`2HL z^FfC+>Lar6vQLqWd@y<~S%V?(l4X?87(`dWFR(dvbE>FXs{62~oy#*r^Uo3IG<|dtU)FSneqn^6hW0DoGfi>-jR_N0(m)zkL1=@_}?u}ZsG z|7bB53QNfDZ3q;!-}sWjUL$lXl#o1VPq5PLxPc;(~j#sA!=CD43`Od81mGz;JT`>YOL-h zg;UO&@}=^T?C=|b1Z|KY!56*ioj1t#p2*o*?L_lAW|vfM+AWtbJ-oDUWhiR%ad-7D zvWMs-y83?m$onvF#!3%V2KLA?fbK;cdDyq=v$=!gU7aG#V|<{-S-qWh*O#G~d_*jz zOzsZfRFVE~A{8(6l;EZHF;Mwtn4Pbskrvz=(qKHNv!gqZP-1`NV0OW8`)RtxdYR4` z)Lg;*qtP=am*G_&m?JO1vm&q3aU_Y|7%qv196uSod1}fSnGa_^Sh~&jwxW=HFq_s8Td^NGP zx3bXL-#>-mB~!)84a|6-!L(8o$u&_wf{!b6#tT zq1;ye*^gn4>1r9fTf>KJ&dhFXZqI=UV2{X&R}K#4`9D_ta$(arMfSus6Xj4V$|5}5 z?T$aCn=5~`pHW$vF-X|X!!d?4yY61vwK5#&FH7Hs5x=+q8Yjj2tY&Q5(J=BIB7aLh z<(`^T{f4!`wqFx9{6x9=+Gymue465R5UeM-7lR~ z)v5lGrPK|*kIvN6e&;}E+_cYLz?GzW_KNgZBDYGr1;D#a%$1UfA#Z3y*hon;@W{bA z!`Jsz1hSo>&GLm`P2+s0e7VGvS7Dg^ex6&COjl>)<2d!JHI##4_P)QymTrtEnzjt( zqrM7#8JPs@Do>&uZT5!!GpADyTbzsJHnG-$Yy8jXDCDNM^-!8UZb7%ZDJ`Y^y^gtiDnI$%jAYKf%nOvDJK`R=aQg zGaer&Zq}PG5p3D;t;XJ5I3d(&ZAeA$r7_%f!pGs2HoOU}!M9!a%4Rvyj+3?&+15hA zi_IY0khu5Q7eHs=BjeBDBOn$3%R3r5(+V-6@LW8-i>~Jemcm2ABFnZ5l`eO@64^ zOH}H-JhCT@9!9u&kCpYrM14+B#0}K=Ar7TQ`(M`YFB^z-Sye}l+P&kd`adYzR4OtC zZOVJlA4#c@Z};@y#``b+U&dP<`;Y7F-zNND#{0ibIN}UxYVUjfFZwUz{of}1t_zm4rr$XV9fe&Nvsa|zaGDf%f)KJae*K|md2Qy zmFifU000pHqagsA6YwDY^V9djyB!&XH5Q;sPlTm7zOb7D8Xc}Q3L#cz0kP?`qM(n3 z{l&ZC*!h=7QU;y(2Zo5F|KFhi(f@%RZVoLwa2Kc`uPi&>{yEe93ysW)Q2ZZI;Qo~J zUq_q&05}fm1pgC_{R5c&`^5AgSZ6fs|LwFCsq&Tksy`-jBqVg+lnDG9rF(y>usc_j zgM=3kknqC9Q!u7HU>*)1T0#b!#5=xWxy^}T?7AgS1^#HwN*$P)T=6Qkmu6LRh z4T<|@zeG9));*TN=aRE>XHSMnT3u19*Z*gMe3-Mg2sch7?Og>9Bd8;-z6ir}`v zZ_AiBw?{=yg)rJxt4E&3K(c8ADWEn~8c3#!BuGXBqzcsp5ltIt+>^iLZK_iLB}XRu zFF8`lU-Gtisr&r@k>4jo=KYr(S%~HzIlM&XANv0-|GWJEGymPM$+)qzj)IKUYhAYw z>R+eb&bYHQiuVQ(8nnxEOYc@&LmGPRIyLEw?^}3VU9c^B<@lnsuuyLD7n9=+?joTI#3 z*_-lSbZZ#0u)?e0))4Franmx5jwdkDfUX+Ode2!gwlqTWd2VLxS`R3~8tIA==g*1} zA|jVK!yB4kQ+h%)NlhCaVk3udDeYPZUK6ILJ#VQ4uXIiSRZHJn#Oz8LVq^4`XBpT$ zwB`I4FoTI{wMmA5)b@^;=@;?}!ZWhf>!VU+ld_SHZIkfXqnVpaQ9sY`V1fj+LiuGm zyzVisPqL*LC=8zk%NajQ@J=^A9K{ivH^)f#AvHmdQ|nXbG8=e-UNf3g240Z|^9+Pc zb$lp+bzNhXd6r$zZ%YPo%f!TG_SM zD^7@o#sA1GNPPW6okrUs!O3ehs&pN7CrlU$1bD`ler~p}y;kLy^um9jwKG45Lb&}X znj)-uR>Y12_LD^9nJXIkdzvn9q0daZRPDYIxxxgh&S|z@kU83s*2%oncVoAx(_XN;=-R_<9%oV?W&`!kDb2B$5l>=j~MFWtg zEH5;D-$RwH`dTFY$Sc-(_FF6n70G`Vjh71S{VrY?VA%&XUwI z5I@YHtwcQ8T707I0viqjl(O)%n}EHa*opERTlDgJL9n2@>YE=Qw7-x+!4)*{XId3N z1Dx{8hthCI<1q2r9*H%4o4TP-d-mZ?a#-KODn(_d5l(xlI$Gs0(FdC2+V8OXc$DMt zCOUteig{)KQm~svKnCVr82)8 zs$#0@CRVpx3_SV7ln<-2f+p#t2AmMQhgY_#!l`y){e-LB7|%LdiV)<{1>T|ZjJ<=k zOvtVx>3x_4*nf|%V~#ut83viW3*u=<^=fXLd>>|eb*g~8!_}3XY2HzzOy*{qzWRd@ zX*S`bzSD(>m9|r#`9j2<_xbkh2dBfuO_pdnL6qPNZi^kcQhjKgPA^;1+Q3VHNBm^m z*;TLh=kQbtDEKpu&7AUQr4OwKcs+#!tx(e^_O*)8Ym>$$nXo2`5<|Pzg;Hn6aF+rq zw2S%o4^}y}{oM{-D-fih-n!w=4n7@(H9ZPaX;Sh1mSOw@9@C^Z&Sq$ z^K)PxI{tgZ*Yx;VP>vdF1F1{!C?Cy+dF3z~^6S#pDh2d=(>H1!D-XEA4^`}&MW7~? zR?il7$krrT7cN>*x#?Qv3)#iKv`Wtc?vc~F&fI*WWX!L6>I?ysNkS{u*t=x7-XQwf zJn)rih3%a3n!1d52H_mIZIdXmFoE9*;IIkCNh_v~JB9m?<@8OCbF1gg5AfX%B%>91 z)y(olAQ)lz)fr{Zi0Xl9rbD^FmivkZE?EKtnQ8ZYs%87yx`5d=xf62w7mgjG9ot;e zg`ZH#2-!P1PNdb9+8$+C+Bt1A66(7>5udaGuWj7Uojns8RronsQyCk@N5C;n#l!|Y z6ndZf#RXSMJIQp4%4z*MP{w~`hh3_{fid&GtK)uZH|Pb%$udbgjiNTz9nh90^DL&l zqG(pU06y!d@SZQQ7|7zWa+{%I-1hM28sOGV-Y*qQ7|M10ELihAslbwF7MsK2i_P4# zT2PmWh&8V zl;oI|i&6f9x7|re8{1q4G|C5C@1yK($d)Q#e6y?|uF}Q5LmSfgD_;MuD=yp`wR#_! z99DaqFM^SzHLlk#r@RI_6$+V7j79-3$&Aq#>LHPrYiWPb3rKD>>DcEgEIr+Lb%7h$ zw@9}3s9fM4<@8z8`kl-0dS9QcENerBhpqM*{u1~Br(4?0Kv=U;g|M`HSk%`@)c%<6 z-VF20?lMF)uzgMLu4A}=N7`mPj^d{9dt%3N4;ae9$XrOK5cZcGf%ojcO#=YHMNxT&$3}o{p%Qc`cD`yDzE~?bcf(;aiafb9#llBNW+M#M?Iqd| zK;5xVmy1plVnp6LL;+Z#K_$_+$J)>e=x^TPR1y8-nD8Gg5*M%h<8(6!dKd72z-Lb3 zcXY_I{J9i(VtF|q%hGx>y6yjvKmn+rw~wu~k4mDFPh}>%#@Y$&hs?Q6QKfEjpa={E zfG?}j`tB?FpfmF0_^V(E6VO`$VKy(*T*UK#> z_-N(OW0rZu3p=q_8mOQHA=T_LcEUYp^uf^903-JiL7s%(2_e4Vr7Ld^2Ol741d#?h zN$DD2Qm92xj~ffG2hk>l?kIoynu#yc^9ETCw;`*nrtqW)4~v^EPrd@mcUYDJfjkmP<_}A)TAxEWyE6Gh z-A}a~)4N#Qcxo~omMJYkA=OQ|8Nps~WS-wme6xddkLfqo9veQwvX^omK<@v=KB^CY z99zzZ68y3%iekzC0{sGAdGgQ_q$lZ=5O&=^X^HZ6B@ntILj1EDvB*^9Q0{QcsLBjc zS4;*4kfV{jKU5BSMok-_u=t5#2S3OK;;}*=x4qcX96|N8SN15I!xkPtl|m)2w{KUx z9lp>nSSJs;G~%)ZS;B{MRQPDQqouQ16v&yNfgKMQf4^p}XD_p!$64aK$O%&#su^;} zW}cU(ac3j=av=AJ?H9hzsYOZ!SdaH|EkTZh z^;$1Bzd5S6`)5cx@uX$(jj~}nv*ayeEsb8(?694cXDiv^9v;LOf0y!UdAC@v9Rfu# zY=_s_&GJSji;hr){@^#+^G4U7t*$^%DSR0=NPnUQMp%6l;k@KT7^b>v`cm5_dVJhEWT3}g%XvA#wTBy7dghwmu1 zwN;uMman31j6b3ymUK?v(uhCh12LtmZPE(441daK`p)D+jR`TJjV!hr3iA%#^D} zJx6Omyux~dpN$b61(vZ?ZID(C!_>!i-rX?oR?u6#<_a9tZ`J3V%x+XUiZBQxJl|pE5 zW+x@7%M4*fy2^x93sQGTNbEXNdambI3mjH^V$1EC!XxsJnQh&kg-h>;h$_O-RpsROr+FwWjFU+LbMj~Em}Gnewc4r{R#G6qp%BRMYM&nTa93SqAocV zL41*2H3n0T7$N;)mP{WoI|P#{#5657cjwREp0Tk3nZNE(4O7PSO}Fxb>v ziAhhbx^+90Z|LN|S%T4oO4o!nDqBeNTUL}Jt;*v;SeqOJ?=KPhtHhr*-E9%ApHF;* zGAQFe@sg(T?b9uG!A8B1?PS*~Y@>F~et-5(Hk8kgeuJiMuG?RMu>m2ruLR+lN-A1} zxh?`8>JyV>k*oH&*@DERS_*yi{IlXsYLcMWHR8n}D}4zsR%)neav|YB5u+o`i(N4aDW_o=r-|D_ zi^-G8?+!{h&6afkPi21|2;~<&j^iVhiYyVzR!YbgW-!^ZZ)HjLEnAkc#E>RL${s30 zW9<7b`yiBkdF(scJ!2_iDyA&oXY_jiKJU*TpFe(oFwb-Dz2}~Lo^!Wz?m1Uli9v9^ z?X3hs$?KwbBak1#TN%P#H4*9Z{K8a&;1Y$oHBn7$%%jkrSn@$$-WFY71F!@RKB*9U zQd0MiX#p2_Z>I9d9p0QOXi^I}nrr>E8!qfZtiD&Rd+qYcM=S9MGD-45O0J%X?o?cB zdm26dmm;NZl-uwM@jjMzZTw`-nrR`CAk*!W=p+7(=VcvTk?LM$&i-PYfE!JL!?dO`Y^l^K1y59ZVNX24I(fm<&VPew2*)N>bIvDj@jzC^tkaJkQ#-of2*2&`-`^Bx03 z>l=#BkMMCXrHN{MfZK{D4Kv`L=xIGlChwu~od8vQI zXRRRJr9@XESBEknK=UW*-baC4pO^RkP-f_G5*ZUCr*MX>-3GGMTUh$o7hkGpT^^Kq zMFR*f)mg!@w<}Hpj{3#%G`1=Aap?oBM0PFQ72{jybB%#7CRwXCgWm7dYo2XexTq&l zC+GH0_|f6#IYXSBKR!4uGhZ3~q7(d>!JhJjV)`z)WA8+S>-P6oy2>q3D7c8%gh#l$ zeW7tp`P$0^TzIX2L1I@=ti!YHzEF}6us;yIk%Va(R7@Ive9FY4AM{FGi2QIdY1fAd z!FKKoTu%3UH9A>a z<@N0kR_;=F`UsEu>wNg;qupV@o8S7TN>Pr!Lkr4~#7V1yw zpOVQUEKJj)yAbr*yCsO*ndwx0UfD$khL_+O!OAev^?&fxh-|GNN%>oS8vMZ_q&eL8!QpA*dxe&NB*ym$ls_Z zM1IvB;^?Ey1A2oeI}K%4^*77igfzS5X(bYDvCxWL4=r5oF3F}h)NL{*`+9AR9fDyj z>P4bCH}s}_-9-*Z)|s}I2AxhhTb?D`YMe_TD`Ot!fA0cf$(Eu_kZiNV@}B%Z+XRV>sS_{I~Ux;r~C#k$HFsT^b0X`~Tq$DA(_RLz^dhmHf5{DP1p_lK(|@rSc+;$Kf`^@t_e17|#L3Ac z#fF}w=~Jr{GLJ@E{Xc`BOiv3+1l)s+K`xnhn3O1fq}0HKd3e)LRGkmaaig$cT(SB&H`%v%91um_8?7p27n@4~Ye*lZ>Lik@L$E zZzPSklF|21gB@*>bKny<$c~ais@?~uYsv7V-iFWr;mS8m8W&5NW`A04)*%54ddT$3 zK(V;^T5XU-NQl(SY->g>s_M!M=WJ|Vl7f9#&i`2988Ej`BS{k2f#S3E(=Od%${BFL zwpV=6JX@aN*obWUnmMl-uAJcqAh4OF`pL2Z%`oM~tGYy1;vA|ZRZ5K*nOv_H&Khyz z*7|DCHplYkl;PtTz3_$Z)kc?^ahsD)E!p!Gh<) z4PhRQnoLJ+qHYxkPjH;Io_$n8a@*tVD;&mw7l2$IC(fJWM^it&bGO*B>uz9nL+ zIoPn&kkN(&c(A)_#2dZ* zQQUC4izsb$I4A_@heNbD%?{weNOBF>Ve>k?rWx@LF+iCZn`shf{yR69^voK&tMk|C zxs0Vp?R6~F5RZKK!(6ck2~dd&%iPs{m6CW+|n(}QH?bHbhGj2uXhE5Se0cH3sn;7X*_8V z$*;;3CX}4=P8Yt6qIwaLp5x5yBsxT2mVOz|WbP6-!fdzp=Csc$%j(26es?$FPZ8#K zuWStxiyYwlduZ)*$EwY3Znzp6o`7#!RCJ669aFkql>xuBmxQ<#(Qrvu z3@a8T7Q=weL}DFI4DSElz=f5{Wa2$~zN1o-HWCiQ2iO7ebjOq)VCyz7RHFZ67RJr8 z0|}MD++YGy2{wH%SqaLHjWd&SfR%aG;C_Jh;YV*EQ(czsVKQSnY4eGa+9de-GIov~ zO~kq@>v<+ePKFIMNXopeLE$n<(vd=RcZg9@e6KyUUxB~k9jAz#*ts+4zgYQaSvWQ> z2=^@V?NRkEC00j(F%j%WPUH5vD_ntbtXPT16#qzn|MS^6k75gWDgtO3n32Rhardv%7NwPmlZn&gGY-el zm9_Z2!y@E8vstD&ElB}*6Uu^U(=ElK&yY?suxd}v#>rlsi*b}=gj&VIxHL1PrWiiZ zP<=C2v#N4fi-F|N30EU#M5ANr`oahH?^xD|9n`Mp1cQGZL`z7!ZLLz0yYsj+08wny za_GHpC~8cG#8mVX@SO`P~j5n(+9I39tM2+Hl&Ddn`r=d z=Ux-}%4-0q&Z~`M&G$wduEbUsIHokqNC7Oi0N{$|Zrqt+wyN07L0Kk@%d(}Bq;p6d z8`!N?DIIepFZVU9{6Ip;Bb0ElxEUbh(wX-j^6(-i z8xuRH$VrW}H&Qe3Pp&sMYS96*Ac(M`_(weNv#WNi zQHoV~Y3jVpd1CY)_98s>S@ue78a$>5V#Mq>E*WMkq*WAB=ktCBeL!+oo5xy!xA$(v)mcF=XL&g$R3g4(h4nadO zgcI)bwc{h$O*%u&0w>e8&I4QJfP7fkz|5#sKG==7;Y3-k*U~*e!yS?s)A5E@lOoA* zkz~)qtX+_xGpDiEHHS#Jj1?&Z+%Ga<**dd8$3{C0lobh8T<7fe-y_s7puReYBa;br zbQkhR-EUMvLp)5!hk%a%z@x*N)xM<%J=$M0Z=GqOVA^HFos=BsyvCu$kesE(OZE07 zLwPM$RG&rXP0~{;ohw0R&rWpQc*CClX5ol!j$)SDwig*NofNZC$N#{W+cqa;gMnL_ z*PT`}G%0}jRSxk`Cp7N||w%_!FNr|0=f4uZ5#Nq){} zc|4x|P+>Y>|H+^NP9{`VHD*AT>c{EX*1>ZMQ=+df1n<5yU)bh-rArJ*2SF~2-^}i& zFz5uITZwB%IQg_-O*A&?NI?XXenyuV+{xrzA`9>axzg$qv*U2sjSX&Ht@m9pJ9VGusGG`9y0J zy&~&kR%gxy#S_JBE#?m#@2lt0tDniT&r)3sdUNjONzbd*#+NSjG(BWvss2cLNOd3V zMV8C{eiraZwo&|V1D4~wzUwx)aO?HUA`+9PD6M@jBz9Q&KY|Ime}T-=nY+a2!kHb& z8YBbi&{)&~XljSEh%Vu#abbvn-uMd8s_!oPZJQK9g4YJ%LVzM)EQwo<)Q#YwQzI+E z;j=rM+XiqqJ>=d;7zLH!1F%+6L`F9>_t^fn4QDVG^?6K&C8@d>KEC+p89JWMGl`J_ z^?cZKg%nvfK654y#Baj4e~$zWTFvw}ca9ht4C8@tV`8)I;XdZ1vzv?`5F0)_6QrZZ zy!fMMgl!`@5E7z~;0;i759KD~1titBn8pUrob>VXoB@@KFpouJG=ZqlV!Z7VbInt} z@taFDZdy>KA3=(?ef)(NSo!UheT5p*Nou!hcAd>`4$|bK%;&>D-C$6IjfpG_1$Yqx zohdPkI>w)mOIJg|?ELBsIfd{xA74tKGeNIu&wJ!@Md7_$eM}+vL)*hY-g~H$llReG zM(N*?o=s73nGaR4SxH{*u^BEj&rifIVP63ytW9YuE3#`M8U=6?{UQFytU4X;*iWDi z{qGj zX)-nq5|WQ#sR>c!eJ!EF)XWLS??#NdW&OWv-JfJan$oSFQ43t&OuENvN@Xtra1d_coI$bGhiYi=xSqD)eDdmM6rb&BKc$ z7kX(a3-A?QtA+Ro4D_WvIUfR4x_v4d+G!I4(P7^dF@Ig5VP$N8qFj99O|TL!;$x7< z9R!z&yE|9q{!d2K;fE<*?FMVwmR=%L;LkD1kK{I8{E1yXP;_>)IYdKzA6ecH=Y4~f zR)R5#_nsH;H%c$^XC#aLT!%G{;rD9@pXXf&2OuG>vLqDmkLZup#m;>pH{>s?n+Daj z?V|Yd$6DF@`cw;M4~h;#Fup0WgXwayRzao|VY*A#ZPUVbpI%zyH@Wcj|sCwOmk#vV?RlZtUdL?{+s1 z?AJ;Puf||sxedfkq5qub}(vdwmFUe<*azkJWMdILT~ zomqknCd~HHtrFF{FGkH7o^-b>++)ghx~kvXd@o|Cd5^~J=6UvfC(8ouqLw34EsmPI{6l-x(kj%u#~S8sZg{$+i%h|CZN6CxPW66SFIV^3#A10L zcA&Z6Z-e701|7@W}ry2AYs zP0)N#a2(kW-GI2UiWO-QU+a;M*7|YxS|eFtXXqvCcE@Ef4oL|Edo$S53|_gxQqmEX z89JZRQ7AGsASD;YKqiy~Gb~D5sTmaW0d3$ch`CQ_x5m&#!k8aNEZulR2lhxO-l!Y3 z!`a~*m8k4T9u5sg?9;=&w3Yuf@>qU4(AEOR5UCVh{Y9jb$a{mhzs`r!g--C(g?vJlF3Z}>vwFv2r1?JS{nI{(~h~gsDpI05_BN7;9 zuBo*maj8&fiVwdMlsZQCFQPaD^PnZjn2h!BT0IrLIA&OlyIb=RZwWzS<{N)CV-6V1 z`9?U!lrO*&NM?T1_rzr)6ym(fK?m27XwgT|DumoQMZ7O~elH(JGTUdGZ}loqnz|cF zWAx(JC1!qa+dBwORi@~9%z7!uOD9J>6~6sv@QK62lvNzbO#qdB_S=IE#kgc`t;$CZ zS*T5#?q4o)L5QQ2X&D&AK>}Z=YtPQ4XLLi)Q9`I?IXD9@D7H53^kPFP$dh9qR(?ey z<^=Z`4ndHhll=D!jqx}{fFF74L8AIxwaGt+d$rKFLywWCQ0Qkr;RTs)2LPJb{{6Is z{`X4G1R;aO-h`-FB!BM-YN7aeBJRU(wMQ~nV$l3?|C9c;{8Z|q>8dkSNh`Jj)E;i< z_~cjnKd-?TW~;cU^~rTWNM!=f0VOe~yVfwiXM{d6r(n_K&sIb-9BuV|K;MGLwV=z` zu>V0Z)G5zqx%O_zB%7=M4?3+MmF#%?hYFX1vmiE*8)X?fgl^?Cx4! z*i!ny)EX-|SyrxQws=WN<5k9gxo3mK=y}FN2J!USHk664(*FZ*vco2PlrfP4e=&O9 zx^-9c{%dT1T2VxKG@GrSL|W0SwEr^81-@glKam;{wk!zyPCx30=^8F(TDFZ&xcPSK zm?XKN3yg0W_r8a{qtJ!Upe2+IOvcfnY}oVvai~ythkGd0N*9xZp$0Yd|L(KM| zKwtMSfkA{jJnvxOIZsa4ZVB+>PB2B!Ro|zMFA|pdvO=Del_vH+xQww!TLys zt#$N=5Xb0X6JzpH;ZPR!+#aU$NXe}=;zuP<93p}Cw{pJCb=9>Ngw@OJ*i`x!+F^3v zO8p2@`wkSaA-AQp>={#SgtHKH%C~vB?JHZ={WXCe$4EmZ)_*-*+LhJqmrIrT?ZCl& z4Rw@dnJE2RH176|{_1?vIZduS4Er>4n_YGpk7PJV@UQoA;yAY?wYl+K>w<_B{>+oc z`W8%lU=UyB1W(+RQ&y)vZeB>YJ9~!Xa_H@|bvWu8pS464-LjWvZHx0(Zz5<9DWj(d z*Gfwu>2{te`so)V0k+UVszY2jw!Y}M z5|9)vQLz1mCZRri^(%SvG{0sv4N*6d^gl|CV)Ps3OwpJzGJi2)BIlQ9u zW5%N<9%tHs&|Q%wXIhp0^V%C7f^pCspombLL#2qfO7&;FzA`S>p;drTGsJs4i2a^e zctMx;5a5y$c`>kLKS+48u^PaTQb>_DP*r#j7E=!!SZ<(Da%i|L|7FAE@#o$;#c3RU z0kYb5Iq#JH^1Dq5ogFrdJ3C`C{+w)q$7v)NbD|U>$P1wsj@42-z^WbDWmBLP!dv5kYb)~(nIN=oYVP&3Z}wBBAia_Y z(=I77@zUq+u_+G6YkXmbW5XoAR-OqnliE{|i_b>c{@#~XEp=P*$5eeLtugX7>H`hs zJ3}*s`bPnD(C+m$dcoXi&R>qB91z%g?t4+?dC}yY5~MLmF+I^&EC&Rm;YM%XkvG2E zQY?K@-fQLrVF*%AhKThAqisi5G>&T6fk{x=ku%v;hU*K)*<2Ih^Y=ec4Dk&*VeoyF zJBFl$ztFm4E+g zVBf47(nh`|E@GTI^%-RQ2=E$6`PuKmNo9rRmIE^qkV14tM#g=de>y_$d66cu6M|TxGOFW^h}PnLPGp3s&;=4i#IxD=-rDGC z^9)R71a@)=Gdr3(J4h~XY4&}@t|V-B_!wC~rt%EXVf3%ER8P*8-wm^Up)Wvk?%zT}>Zfq<$PI~gFU!P3?e$B~p!&y*qwG_Tvx71| zTvp$v(%nudu&NH8aAjoDcPF;*m&v;t{{(9-%Tg+>vMZhYj=4Jkikgvi1H z=|}s>sqmv3Xzv24Q!2)s4u7&7=fQ8#0?sKF_s~&fc^LHD?D(W}n@ihS=dNeHKV%1d@CK1X(|% zM%3H!x9C}a11YM2*f?-K&}XH#dm$pJvfAoVy^;S-0D$&gkQ|L_w0$a>4oG$|}Y ziuSLYOQu^J-F)a?{aIt~Ze#2{K82H+x?OR)N@|KHgYSsO-cxFR5fT`jmGp>lDEN(H z#pBV_!K!ADhocq?xSF%Y2`OzWHc6xBO>lD=%XW_r9@mQV*un{^J@rU&#+VLU>+$@_ zBk!#xOmbtjl~}j8MTf@@se5Rser3g6c*Jj$)cORiaRE>v-j?~5{&v#XDZao;tpjct z^W1H#X1ItnxO(U7DBGxE-G|CkK+9d=B0+Q!mvkG5y(#%xlo$9F@GYR~$H0!8uto;n zQEo3-!vCoi?7|&1%f{fUBm=N=;b(5z^W;VqOpUWX`nHs0JW-r26Eoy_8(LS1IUO2~ z&usoHo3fd4Q5ntq;**!RYwmy%c6{Jw@%faeLaW$uT|Pv?XYq#~_pwPm_{ncfj+?5; zDd)o*yZ49vJ}>?&KFdWLYTvvu(9lPxRB;9HZ60WLeF#8Fl9N8;w6e_V9%m6`8&KNxh z$HRpN?XTg>tBDmLdP+d(Em-#PU(us&|E6J8d0ofSonR*9rgc{PopHagem|r0u3A{4 z9<>M|0=c_yldN`A!)01YKiWP0ki7~?^ z6VM&(%pu-F}ALRG+_+_B4B7*GH-LFN{t^ zP5saWI*~Z|%HfH{tiQVGR^naaq1?%+k!Rwi7;y>_*{GEHKHW6TVF6D+Ue0P@M?)_) zx4STc{RKt>ODF|~vv1NULB`W-uoyXWu6ePail^c}>bMqes_`rUN zgyWRQB^Q^3$7FmCb$=-EanYgm|D(h7Enhl*_bTzgZ#GD?q-AFHm=u=2jsr{LErYpl zQ=goni7Z4f;9cN*{x&U=OAg!6r0><)+TiT2aj(K4E3S@JC9-5Gk@k&tDAY(4XjNp4*XQiO*H9)2{l;a$D95oG^`Y^PM%BY|*` z--1}<;a>>ZU^6iHQ$ZzJtPlK1A2JoAu`H>|#4I`B@7S>o_dzyhJcn#vPJ!&UZM=gr z22Qj7j*TL9-?fM-pnR-jiZh(6%C{V)CdtrphxJw0<<52&Pu@Ri6pk?Gv?I>Vw|3d$ zQx$Kv2G5GGEex;6wEgveEGN{1LrV--4f?KCd1%%2dZrNUKX48bZK1=0m2SM#)}$$|Qcu7zE^NS0 z>pqG4*{ICpMv>nC2&YTOY|CIS5+-H7S8zS~4#I6%BQk#Uu2R`?_rEzYq#~hlD&P9g z*43W*GafulWeGZc$cv7@JTQ4OZuyCH!|Z_1HAQsIFF8E;`TgOLAFwmySZkdU!XjvGD~GC1>I=E%vhUa&jX=wUQ8>Kx8| z0++^VC9x>ek1_YVI%ohEh}Co@cp0O6;=BA~Bxq>koRBr0HIFh--cWW*_yPAS=>1DSw{?HR+1hEOV6|6)c{ z0DRa%B!erZ*p6-Rcgl8$IjT$Z zctx9`P6S+&Jn~~e?z1RuXs`Ck`MD4W;3`SPJ#!X*_x^a?y_z9ey>(a8AOPSIIUeFI z&N{lyW?jz0FJ~MNvsT(@M!kY`Y!5wxJftU_L5#m~c4A98E`1>hTt7EzeppE6lXZ=J zO2(MEdFFFOQ<=|EfvcS!tX63Oyb8lMESeRWExt ziRBedjm7dJbqdMXO%W03RzgQ7oB-y)PXKSG~=6sawPgnf+LMV_63~|(Pg8t{v z!Qe#q$zn_c+a@YyStgi#vsN1=b#v8?XqN%5M;}405x<+Tk^LeR#oph$i~t*3RmaN(MroM=}#-%hpS6!#%15@uYmbMkbkG*TqLg#2*mDGf7&z2pw8N ze+fk6bMA`sd88O3XdgkoldEaWKK^h(0}2cSb1wO`^xJFtEmUpwC1xTNJ*JRXvX2}q zhC}@$*n`$5+HaAIyq%rVMZirc1mB-HMQP%mb^0$qX)2$UZGijzg33PUwTZ*(Y)Ug)}hv zJaw}nS~=4uv+$8Bs_`!QTWKIfldyc(xt{e|0%)`m5pvMU!`%EW2wUOsXF4UpmzN6# zW`K<}n3lsHC`PTgyH1|77(K>jT4V+rgIBvo?qvTdfZ{6L0e;P%pl{F@r$?vHIzxeP zbkSd{U^qzw?}?h8YrhPjfDeIK-mTp^*(V1%Yh}m8j$;#d>zpah$mMq&S7S~m1Y1$q z@m=K}m$9m!YqC5Tdu()E{X4bd#~)FLYqi3vLB-w<gj@u*WTDT32RCd)t#nQc*eAKvkt=g!t^j_cb!vC$Z*KX2AGIrP`sRj&z#dr=w1HhASigT?lrb!{-V&*MIMY%z@bGaF-|F$>NDb zSbf-$M~q9b{fGURs&bIJnmK2fI(|LxID?2WtdFhh%3M`f`fW17+5nNj95`KidDyyb z>>xV#mSMjc*O3jc+H?ZxZ4r0%{w)8i?dX2OR?y%^6(soN#&FJR6b1Y&p3rsmE9P)hcd1#=I3}u;GxF`w zl@aAqZdKEJbjLU`?8HNjyd`0|2&ZKGrhlY|@qb@^rLEO#36e(|eWK+Zm$>w{Tx-p*@AG@M{KrE!hMSPGzF4!WTG*ex?kDmX1I_`T-!fV)?sR4%xkn`@4j zM$gQ6CtWumSl;xP`@ZFqv(Mb}f+$~%ceYfv>*n1H`#I+cs3;!+21H?QS-GoD6rD{A z*hsSPA`3f=QLanL?$;BPFxh4CIdrCpdX{L_^z~ml9RqSPwjgKEy$0ka`!-%w?)EdK z4m|oV`|PPVE8?55Wdq{D1wDZ7a#XwZx>9MY4qEn1V;a^Mwz>EEa-i0zUz73!qKrgQ zEVq0c#cY5ABK3r$eahQYWeDKV4Ij3MsadE*JDoj;+!1{UiaRd#Yh_12+};F(dqO5 z%MtY@L&C{w1d3oS#cDsb#Uk9LJYXky3C_B4>guJFg`+Be8+?D6jQinsazx(93l@T< zs>%o}N^h}Nuag~`?|8Ua%}?ODubn?B*{L1aD|GD_|E+%O*@+Pu530MKcN#Uvgk)T_ z(^@*u7%jsND1;LN45JuTIavu}fVy;$L!;=CAg5o)yz5 zM>~ALCZKEi-$J3_g-u$5vXUsV*E=Q+U*KA{xjN~K-$CDH>s^?$B`m`3a-yiAa$%n_ zi^aR@5ARk4$L#3FE?pbF2eAEc4AJ`8b;_?@;NnK~GQ*~Zwl4b8HhlqDKoSnm19`68 z%dy74HW*0rIM>1BYUc>2e-p|&SSyN1%~Wp*(HRrUy?eU$*PH7}wPFY>apq=2NIEQ_ zkH~l@^scR9i&CoUrM!0%n@)nd*Ze2o_n#isGSq+J>AF1TmEdaGVfMlB^T@teMNG(l z#LlXr?&iEr_lQPFvR_wc3xzA*?Ydl2f??ipjKunIUQzApcqt zEkxxCQgx;PA47TBJ5712HeK}f_zClYTRx`dR2-MD?rfh$&7XdHMRrEGj7;4p20h^G zxuWGKKvLeIlxm-yl+nX)CnYd}61JNb=ICnCERUFT*APEXBid2bb2rI#G=}AYYOeE8 zjQD^~Zo4cwQA#%T1K-hX_ykSq3*UF*GzG7J3JP>}o^buCk#cqEbsi+*^}HEa-}l}A za@2N8ZsRj?br+aJwVsxAJwBaj@^S59?ON4nE!N;o$N6h=<@t+s)>qq%zXs{sv{H^i z{il%%>P6Nop*(J*GwS_79`ca4<$xLHpkNyxlZZ{0C z7%zmpo4KE9^r`+ZX}X^KufIax$>eSdc_)*bKlg1Up8|H}4D1dkVtVqG0UwRFJynJ+ z>wHLUe^Rcbger7#>FnviGc=TCsr6b9O7t`)UMjnvMkE=3d77hp^ZUGS>eUo#$t|?* z413bJGV7gsC*n&Gobaolq$2zIo@~K7r3-yMx!sl<==|;L97^ATy<;12{Zdk$WO2Uw zXbJtBBb3+FWR;HEux-sa-%RU$JKQDC+UYV)rS(R%5Yvz|zX__CrXYCegTd6z)iJKZ z?*%T}k$Lrx4=F7-yO5zW4x$+>lyqx^d-EE5A&iRi-n2Tx+NYefq4iD8M2@J$U1*hr zptFCihlZvn0r_@lUdsjlz2zfqp>>Ns+PRMvf@ zg3=@YXea09pc6IJCQjErDglNi-1La_9b~9sR8))oZy-U>9o`iDfC@o}CbP+nQKH(eWOVJCCWq4CSpJLuApO8ZN|hQ|wRs5H5uHJtl_yc9sap;0~U zBxy7dY)VhYhRPf#xm}ZgQ0^`l$#^Lf!&0UKC~=bUm^nQDs7xf?^ST6}^b@l|>liZa zH9N-VoJ*zyZQ(WTZ*}z1jO46aG@0Po1qsP0kaOvG{GeYMM|3}?VT@v*_^ zXMv0dbo;tStXKuw=N{fHbvLpL=ARhlOYB(~+&oe0oE`nScrB9>jjAu4AJ2P$Xo%*& z7@V)k@BPcI#DVUvNA_igqK})0GlZC>e!mZfF1g1oqEJQGSV4TLsk?7%S?6Sb+MzUi z=zSg%755Ohqj+O}RLJw}b60Lpu18nY<`LW)t5_B7%mG~IUAq0}4EV)N>1&Io7m~Fi zrsIyxM#8_n9M|FYNc__(P@O0+#liUDCBGOuV@=&v#F7mY<&XpBCE4Su(c# zz#B6*J)Rsz^&aou_su*#v2~_u1&OV>8zJm=nw!w=G@JZJS@N!rGIKgAN+aX)ot`lD z9aV9x;qUOy7?BY_h5XG9N>EwsN}cbI!W5>p1{M{q{>hE=hxz&91aGGIToC2i+uELj z{2EW+kMC!NRsWI}A4v8yB)(5nr#$iflW+#i`~vdSSNpf&k7_yS!>bzAi4v>Pk)4)% zJG*OCufIpu&p(19a(_6H3HC>l`{;Ai3msK^gNyUFZ@Wsh5blRc%OX!N?Wz5Izy&|o zoFZy=<#$}?l$KL;qWa0;lCYw?;Xj+dhjrd%%DDw`!@Ja++|BbbRq9qRprKUZ3;Uz*u^UcZ2m1a9bycp3*R8`o>4y25o*`KPVMF;A(r>} zD%ET1vtKOIzl;UlseMzXK+zGLEbRKG>hV47U+R+AYT{FuoJ>5|9$Cx1k80gCq${0G zhI)rU!_pao&^&@ISSK57V=fcR#N?jE;o;*YF$ceYHurE);c962j!!}f^*bk~Kl@ZFzl5+7 zNnU%0{>nG;mjEt$GjsDY*J%&-o^rVb{{n~o1;O~GiQiwoEG~8AkCE$WIxQT&%DQLa z+?TjnTY>e}ViMSuY|_3<A%A_tD*dexzyvNhGTmL`tl?Sqi@krN7T6WNzE9rF7|UI`v-2H*D&HFOg^QV#cIj z>d$^h;ZU@IY+?r@K*Sy*GYVvR^NR^s<6Qlf1;+WFnlX%pv+y!W#xX`Hg}?{6En&;= z5L^n(aeGD2-(7~XFX~3tIeQ4k|Bg3{E_Vz^9r6hsqsfLnjkP{_K=b8>lXv>CAaZ2-j;uDrM7bB1`egfhaQ90ERqee&dAEA$nYt!s zBeV0F?MLOd9emW3dQ8Eiy(e!-4YqeD@3qX;pGH|kNk7hvS4@0*wp9J^a&kpjOwT7N zTA+?Hcstn5{W=$S|~cUmIQ~VKwF5a=FYefngcQ zv;>)#7WX$Wmp&Oqw8_LDzZc?ihjzN23UuwvIAN*A*dZmPId0dfWKRhA^#wYm&w5OS z8AQWhJN#!E=zIW#Bp!{C`$he(XD0-ogHeWDF3tdLn1oYxo;D&c?*1OT4K?z_UmWA11Ps)-qM znQ{Zj-*n95_|1?1<_-_47MVopQqrF_zieY6d0a$XX@R^5a zV3c{O*Nd5Mlm%L*kJszxeP}<;Y*076j_leEc{(@84ohmOBxNrT{+z&VP0IwQp7;UX zaP)0Lh&J#RO^EejyRj2BL1CUAM{z!7`kJ)@{Hj7}*PoQMbq(SH$_-nehk1D8#GP+8 za$_iP>9irro|D!(sgLV7DyhwB!$^$Ei`hNEN^RSJv8ZZ*4`BL=e0gVvt|W zbtrm&LWvVr1gmrGIm4OD97SAAk+d$U!2HR9!c2z`;CLgPa0#bBspL2b13oRs)=N%Y zJ@|o`hh6$&julBH8!Mn2&qU)>oFA%_w8;O!l zI}SK1LdyGl@l>EyF3IuOp6JlmLM+H=nygA#L?-f< zF>gl8=(pzb_8ffuk+_k`Qw3?p`|?$AJ;cGK8$H30fO;M)))7z_VZWKPq!cgR>+RT; z3sHu49)yfEJLVZ3F4`u-y*|S-k;iKFBP7e}P3Fan{g?Rq3cE2#x-SvhF+zqFk9x5N zg4SdcL!ZRw&7`qICi%Ef3enWC;5lS}U}nI!;4zj7<@>x~{;~0M7b51Oa==Gh z5y>;Hw_vA;dbNuGnn0;WE3h1;OtJmQ^3-p8I})py;8qmmkI6x(AS}gaiZ0$t6`iw$ zOodWgOXG{tR4XsY4x)dnUJ?A4^Fmj|!6awlL3Towima*mcA8&1*{{^&`3QPMd(_I_ z0m{16P~9YS?HjKF8r>yGt$`q_6*Ijj{O_iEiZI!>Vep7JeiQJyq7?h$E>R|cV45}N|dFfnM zx=km0!ytRhtW`&^rVp>jlU4w^Z3iB^Zs#E(C-MLF=S&NEj{l!OJeCr2?*89@WJhmu z(f|4Tzl-M~Eyh)oRAN)(y+4!BEG$7(OuEvG~P#i0S!|kpn$=*yCh>X6R{(x#z<^V=z0e#dMnNCg1hfOjVBz!pJq( zxH6rDU?z8Wu7(JAzktg2?pRx9u#zi8$&E;8l0km`q3fCSWRRKM3@VNsF>8&uV5moS znkOK*Y#H0gl+c;3PvwM>Yu6#MD#e|Ea`{shA4&5;4V)ghe_%ijJ%}&+yq80g{r8zk z#uiLuRQG-v9jY>ri2!XssX+SPkr}mtc)6Du5cQMk&f|;F1G13JrcCfB$+#kq3py;2 zN4mKlf-OY4na=h@$Nj<)M-lT^**%XUV8bLko^b z^kk6OxhWXAR@3w_2$67KlTZev3U}5H*g+pahX|Gm>^XVJNa_fFwds-T>7aA8$AJBD z>rG@TsIec3+H_W# z$ObvW*Yin^v{v`2Z^^Yj>a73M7{>hYX_!u?BVDAyEKn5r`<8ZY*oKtJqy5zQLGH~V z{zWZ#_`TF4yQ;7o9v?0Tk*?;<5x0I49T_u;BTVL1KgLqEdprie*jGk=@40?7S2n9$ zU#p%QPSmS>{oNC>?9<{h`K0?&fO^yy7{k{mhY}Xrb6}FNY4G4xH`T#&5B=h`nRoSQ zng`iK(GUGn3PR3uH!st3xo4gU1i*=`GZQJDwj*?V*n-e{=J`KL1stLIv3Mw$ literal 37421 zcmcF~bx@qm((fVx0t841?gR_LVQ~!*2n2V6yDYjvHh2iZoglkNAV6>r?m>bq?yd{L zVS_9|?&iJck6U%?R(;>O-=W~Co|&h+ncwuxboa~?sj05?2%j1s002CCt*oF806c)B z|K#zo&^0d_&d31(%v;Sjx{B!H|Mi3Mf7Se}f?m{%TJ#-_@H-x}K|YINZsTrV^I=}g zQC^E-UW*YP(|%e>e@@*xeyb5~(>`AFK`x_KuD3tX%sg+q*))szEJt`P;N-kEoCeKw z(jmO&L)5}v3@@YTB_L>NXqrtupGL%sTKFBB{!55>alh?C>p~aNzXI0N_xJbcRFJQL3ygaUW`@@G1S#`TPrM)ik%frLNg)MuV zd#Hkfg5SS?TSqKjU0od?A7^A_ba!_n5QyvRYaX-V!^6YX)z!Vdz5M+A&CN|69i6qE ztHs5|^UGUJP0hp8KXdCB2L}gKLLMS^W85bFpZ6vC7QMly#Y);BzGBwcFm_mUJ2yuo}s(S?llbPf1Df^YfcrKJS}6_4W0w?L7p6 zK$L>6U3I zy?vj)ZiIz}b#(O=6&0PG-=vfya&vRz;^NwdkA-YT+uPfNf`TR{CUy={wq60>DeNr-sGIUNBPziPq%7K0B z)V58q@JKWE`@!ivBZan3@pszlIsh!3ha?069-Zzs*qYCBe1Llf0K^r%R*=*6T{u`?b|Te!`e1F+ ziJ*-?V^LBTPoDA&_aQAp&tH>)^YI(%rw`;55@%-2-VICd{Gqp+J1}z2!6t5nsm(5W z&jYEhf}pPR6*H6Li`cwAA}d^i?ypl}r!F5T8nf!D8Wk2#)jk9XzBMZE+;;N*iaiRW z99o}nv47}4lnW?FWqunrpo*}3w$W|QeK5on=L%ip_gN%VsCnYH{|Q>T6sZNc30{q@Nt8#SaZIh1z}quz^!60q`T8tl(F5V8K!jd0qQB}nO&SNQHEsF|dfr-CGWTJTuA zEE%C`xHEZrvi_Ym?%SU?n$!wjH4YE=_H%<=!oh4TrKz0D%5@)qd#n<#r$iR1>i#_M zNsqhbleT5{d|myjM4svJPe`jsR(QUw?pGJKY_JUN{mW+ytb3ET8)CmTs-3$&Bk@h` zH=2&ae~Xc-Cl|#XX)2gsGX)IwY{ppyyvp#sxCQ4wb-v8Xl4x|K#Ovl$d6?1_LZrWl z-@BFlK0zC>&63L3^HOXq#I0Hg*{_Q0yH13 z_+Je~bj1*QV0hf$*X5O*vX$Vu&;F_yOGI;kca`DDBC&UW)%>SlzqbDt=g5c+;D|zr zKWwPkSjD0tQl9(yr#xc8KOUa@6X6FUQWRdb26NP)=wb4S@XI;cC{TMpLemB*B^=HS zJBF;>hzGkhgGQp^qYNi%K`?7DUX_?|I3}9l_%9MWb~}M)PabZH#@(AUoRE&xQAH$# zTb)*YX}tZifI~H>N{vr{k?`T2yX@JR9O;J>i-<3p^kwpE)pOptL-Y$WR`%KB{Ap#& ztoaMa`y@^y$Qb$+B%dJ13TAOr0+isCTp1oVWfIXK>%^0fc-i_u8_Wcx*x*Jt6*rN% zg-n^C+kFYpO-?*LZyA9U+DL;#i%S6MZVS^*X?#eSCdmdc5&bf%_LrGNNt>s=Ok4+< zgHRlwrt5(v<3f?Nxc*1`bjDt;yU2V0cwwabK)k*8{K*zmKEg`D=`QJNx7y!VyG$Z= z3_80_G5|0M=dv0E5|1VbaV6U@#q4~S)u2M_ewB~ljf`(qV|haGLM%DfNOJw>(vJYL z!kye!_W2J_giwwPK)1v&EXKfjjh$foN|b5$_Xp^nJkv&|^(gVk8ZmWjJYlDnr-AbQFS(y0hC08ag+${VEGFD+O@Pg<8R-{ zm;-E5sQ58%CoZ`S?H^E#QHI|S++6n7dB=~x={xP85g1>3GcOLBaU=SRm9*_9P^0=+ zAwOw(+Jz4v$(vWIN*R14Q|I_P%@xO;lh*WcIu|#Oj(%uu5vBmmotxfWK2R~76-jjX zPWlyEx%VDWpVi_WbU#rFxyoOap6?smgA~)ldvg89TV!{g>(3uuq8^RJ@baI>YYHzt ze|Jkz@4B%3XnBz@xAgh#@{H$i8~S?g0F0FpSB(l(>x%IRec0N>x!yI-!T(Uj@;~2O!gLf1dJ;J!l ze61w5HDl7?P>T98tS_3ms#UYIKc=?2O`KTtS@W{OSUsKlEo|c?p@xiE5E)AUJN!o@0(%3FtFTM&Q@T~@Hvh@Wr2)k-k zy)iycPF25rMzrQcGAvO8h5bok_w$&0Lq0b&?Gp|>rhZf2O!_KrMAfgatOT;c$Ad8L z7nf*phPP!y_-8AtGx-d~_P%ADZF)H@Vz>r& zxd}^L42j)OMqh_Nxr}lG1O?dsBx^SZv3=)l|N;}6Au1bmw zGoQ;rNroQLC_iI1NBWgA^&&`orq+37ZN2xgzh+`T1ICpE7nTF^eV{wpnoSwPPtgD` z!W8MQ0~}uKwb)fAiKCsL10*mye>$R{OY(iR@mNhlvJ*@A465%Nt~6}!KYR1FM|ZV~c2iBC0kr&~ zG@T<~Hg-z(zC!(of^DHp9IQT@*2ked$*b$4EIX}3fXdDtYqiopr&StIyMQi*MMamI zO!L2HGr94MqIMp%Khq%Gm}&T-RMo5)c(T#=4CponLg(@$>_{LUjgwrI0;P>f9Sa$ zkj)%Fl?`vysG%%{Nc@667>wyWA9uOnC!m~J!Xu71mlHh$ZEQy$J1+Grtg6A^hd=b@ zI^+)n{#~#&BHbjTO1GYyEOP4K;SHSqIe!i8UF{vLB|z^abHOU}jb zQUiNekOs88nrzIa0jI6j{%$~djsKpxi_7oJ8-S}#r82Xtg zI^9LLwKzI%<9CYQwbAcA15X*^z0_95Gc{3G_Ll<-etup+^6a&TWmmo$mReL#ShRv% zl~K8}fEqcK+t89bZI@mM*-F&lpK% z&_pPv7W7?7dlf&fvdPYtue)Y)gX4`+4aD5(?k3t|{lg>;M& z6fRo^jG^XKrU=#k=G?k#)H0^t*F=5VL<@NNv8+i#|Lv{gH6d-6sprhVR03!0$1aFr z#lSR|hDGs^nfT=Ib*MAl897g+z|apMLx*d-cTlJJtKNauTWga}ecEDFNtel+G?Akd zN~{TS`-|fK6$5aS>q<`HJ+YG+xgRyX4#^Jnt9%Z619L5)fn+5r-uKfdr#MGHc7mmr zw>C`&7O*l4<)o#(Se#mud?q(96{&}BBd+a#0CCUqAEt4>_zE-^eqX#KJeL4G{!L#b zL0SvD&0)79lqr-i{z6mzK|dJGVdUah7yai{O0a z&&Bo_t-Q4YRk<1%6*+ZIe)Qc-DvqDWO9|`V@dt2qW?R^Un=`GRLR};)`q^epU?u-n z`gOpl@f2k3x6Hmt1w?hlvJUZ6hsb0JwJn4K)gc@vPja2X@o*y}@H0YGhy-uefgYwQ z0o5MtB5VIS;FR15JsX4j=tYk1jnYk>%A4o@81LV zxxCcFzoi=!_n=3i23&%OY5?A!hZ3_5qjKq}2Xa{ZXZ&;KKOB9CTPy8$XyN+al6K$Lz!;#xl&vQ?OX|!eN&QV z%*52=#;JWtF^y&x)yq6dxYS1vE|tI1igPF5EJJw4kv_31wLja|pZ(zYB(n`rkh)7&qMiPGx;KTr;ajKv~Py? zQ4NL(xx@G|Um@aT=aF$-<@%K5OkM$bsOnf+t_$xD%iLXS&C2?zGQ8A=CeARsenUE+ zV8Xu&;cJ@LD;m50YgUqXFg+jP5J`?x5H{2`;4Mxv5LL09(Q_7^usc))eX%m_f0jN3 zwXacEsf!7`s&l3%z`mi(f8am|L~gy>I?9p+NmW7a8}&0CxDgEDf6>c zfx|B#WN%!+z42mua5{%*t}{-e9J+hOdSK7$?d-kyy>qrUTtwc6a#UHZj;$PG_H;e< zDbMpDMEjD2)m&^z(}o<}cDN<*s&Bic-znRQ%9Kfc06MyugG;<`+<}O*&98lhZ~EF) z1Jh?1dz>t-h4;o&>AU_nhO2bmFE@TbbCDvM(sXMLE_GwD&eVE6uSsF(se4FwO(@*^ z72%gcbRRUqR7j={Nqz7eFr6V#B>||E@qF#0%Wvnvn+0;ExXG&NtC122eGTF|e7D5i zykfp=zMxXNn1TUmA_|TP8v8XPko`HzS?y14#O5nJLFU6vGs9hXiN~%51)@*1qAErt ztIVIeKGXyEMni+nP^-l#pu8;1?LBZcp^~Lu%2i{CyTQV5phyoiSqz~|1s84)G^noq z_$1dx9-Qa9IrcsJMudNmb}oZRB!@D8)@;*wPQbvioXungJxO_;;wokCX@E)thOr`U zAKIX}FfW%G4l5IQd?Vf>89dyXh~-$t20LmaQvPvv9fFs>r0F+4?n|e>nU6!QXn0@4 zPtQk}gYSQbMPK;BfA|{}M4G{?hq4Ghq1UOX2Xn?Zw_Q+GL8E{NQ5z2~RaEo#iU`(A zRVoM#!iXB^_?bUK-LY@FSVPwl@qA21NQ>LT{BM7Nt6TlsWkDdgwOYm37q&K} z#IurksCCY#y##)F{3xR_{3V_+)z=iJkM|1|$9sF4cfT%7=AotdjIdXVy%C5Hg!8*p zg;oQV(%}Wam(;_Qd>avVrz})CgEP4t*?6~~>7v3ek2OuyS7-1aJI_KeLY7~01nYd4 z*E(%ROkB2QYM3GGMp9Z3Vgh`|;9{t4T427EHd1EGW6w&n_gUf3H-YD4%u7P@zq7*A zfLE(_<=d$lVitdN8=s<)C3d>=@ocZd81f=Y&3g1G6+3=ipk>|FbE7AQM~s)cqZ$xh z?}4f6`YfU%Bi0CTx4+13jv2KP3t`euo|fe9d5Tll1Ni#U#h6h#4n4N+MLsJVFZ~)g zG+k}gfD#h(^HMxsEOuyfb^rJS93L=Oi4gQ|k96AtnOBrFo%K8MfbX8lxOuDxlHNZE zP$&pvGOJMSsZG~>^zs`YKXWeb*3E(c#=5ig<55Vg{=}Z9ikK)jYhE7i0Kx!%1wN$v zT=6npvoKO8;)ycD^FEOS@kG?Lswl>J@xYDbcB z^!k?ZjpItM!Cr6P$S98nb&^(~i!7gm{??k4&2C`3=m+<1d{AwgPUyF0*9M8L&{_dc z10aJe-;Ohoxag-1{9AN|bw{!_i55WNwm>{=Z6ig4^@Rc)mOA}OIG>3~Evwo+2inp< z$6f}3Um#yjo1nt)25V8*Kkhx_eOU~~nGxbtbdOt^9-OVx^D&og%{Y1N=S^hJPC#l0 zK?LTR4vzXf74V^hNhM`}*_X-NS8;6jn;hpwutzpKh4O5B2rr2cJg$bgv0T_`VgK z7!K{@pZN(5x9a;uiM3D1k~0!aV^6(RS{&#w5ar?S6f<3wOz1-hVhdy-o;HW*>%#9< z;Gh+G*7)_Gz1JzU^a|Er5#7PeWpC`EscJ!*NdEa!Y^5o=?`bQ5Pg`GgckF$msjr0| z14UNIh*S&)mW`35TX{nH^@hcljMH24+@+f^s55F9hfSz!y{V5La)oio))JyNAT6=e z07W}hC8*V3PI6gecTTyPQHPN{UXTy*zVL9>K)G^UsMf+;dZQZ{pku!TeH zTxbYW*ZR>OQj}e?B@dCP?Akw3KhvsY4KU`)Gpl8UC=&57-7i9a-09}?#}Xf#YPKIp zM=~^a&$S${R@}+=?`Z-J(7n{Y=%>;uiS8{kbMf=-eL7Y{^^F?{&woomeGW*zm>LDe zW}IB9>%K^KF^TuiJwLGF_oi9(@`(>1*8?j~-|)^q}SXW`$!xc5;ZB_dK>pm zg?_R15B}^Z;VeyZ7@#EF?x0a@9x%$t;4rBKcqIPJIa?EunE{h2TU)}K8I?*O4h`O?#! z-+!8wLZa1A+ArYmzOyfk*3#=ZpBU8irOD!eu^lp~2If&f8 zssJIiC#zB{%`@#-Rf{lf9<;V{q4$EAR+l-0rD=E{?S3qSr1^*brURxGk^|ak*`|Nu zia@Q(5oeF)j+jHPcn-O&2EyxG%H{rsM)%H&(@wy=rzU16DnyQN z22!DaW|%*GNiMSu|7{AKrNC<1xQD7?bq-5A%7*sIGR8|p8_u+5pp#K8&SuMAlu1~+ z6l85)2?q6 z?&Bitpkja|9Np21PzKU=|(oDOUwjScvmag_4U%)@Z>NfMe=;@y^fqB}E#k#xO9x zyu}Uh&zv>q@m$6Wo*84Bf5avB2z+kh-Xl-<)gt6R&-mj^FKR|=^w3aN8t;)CMg zxt)mr2r-fhXJB6wlyX569l@hEU=Yy*Vf5jG#eajST1I^j)TrhWK_57X{v1u;X`Z8n z{b0K5*DZxti_uz8C7YsqVA=5}{a_Z|3vY?oUw3~iDu>dKK;V^wEDh&970U3A*?1#S z^G>Y!2<2ZJ{+JKRdeoQ_!sc0Qm=rMaBWYS5HoHG&;xRdon$Ul{+ZRUOBD%UhBJsMM z`xfkM+_)q`OuOU42Kh$1o{=ds&Ix<*bPy4Bk2Q$E536a~=m@T9dg+k~_gN3!l>FEt zBJmkcmXiw#6rwY5H_om#5Hj_7_TI1IAX2U}ZSxoIYQK7!H=d9yTp^}CKa9lULm$KN3hqfG0!M>NZ5&7+#aGEg$@ z17SZo8j_cyp%-NmomTy)FXU9p?~L(&)R_*|TWZ%-;QpLQH zjJxQgQI;v(QKInO3`LPFWU`nQ&+&(^HTl!T&5&O?Dr{><7G+U*r#FkN6S^(jnEPf& zNlrx*zFk@+{7w6NW`HY<*z}JyO`lWacbm*8_!M(xOJEI3um8erX8!p3$ggEZ%89^a zOI@S{j2*_iyS3BML~LrNI~q*&fDG$S753+H99U=rW^bz8fP&~*KA5eKtVuKr?RYTN zHYIxNR^=C9oG2tSY6%-~z=AB02s+%R;RG`$fR`Qp6ugDePH8byU}SKg{kd3h7yoiq z6g{B%XeHkz-1KKN1fUVVmg0T!Twp}g8iYLnk%rmp9XTfMp)}_I#5B1(EJsbQ3{bGp zgtmb92N0?mtMv{=vIxwNoOCA9YZs6U6lmoFfK?*1)Gn$fn&eQAHE?{(88-|t7^J(w6W0I9f|kMX?J=fJG zmq<;b!Advdt4BC!dRc^BNC@ZTv2Bo_z>Gpt0&fW)S_jM(EO{a6_1VZ=f@NZUdH%7% zVXtk%3G5+(dy)ZWw_ZmTUweF_8JugFP#I3>n=bZ8rjGKxoO5ZuWvOi{b9>|nBl`;DDd77hl$NuP2og;i@R@?sy(xY!uU+VizY_*`S&jC{ z&^OK${B2XvOWK$xf!OS(oDB;oVBN=Cr{Iiet~pJClMNz{7bKrLxh!M#UV_>`z>qu~ z{8TKuU5rf+nuD$H;^1kHu@5MdCTxL!vO&^YvU<)twGgtz8y8VdP?pglhL#-|SI_$? zw+pKxb(i%A>i0q^PaULcA>1v8rKGgI)}R&c$7(Zk-yEx30+#HkPhMm#JKPT!ysiad zAVL1gD+4nth>(!%-u52|>qN((+FA`Q%&#|lJRI@259Tww)k8q)%CD7_dt`jvz$C(^ zKXS-ub@AVGJ^6%Q)oqc)ARY&d${#@+%SYd2k*=*%OIoCu{ zd>n$h^zpojIo_)p1;H1YRMBnl&~I_hDc|_XW?lre>-;n4LCDy;CZ3_476akqZ=ae6 zT#!uLtqH)mm| zGM5NshV6=!$yL@~;dKfMjt>2%EaLfd3NZ=#3AVE%FvtK&f8+k6qDqB_Tr|-RUDs|& znDBlyRTN+(lJ@(#=ZU+a$hSNCgYH^*jzQ!{o)w9R4+Yo16VTQj0BcE(L@nZ|D?{6R zxfrgz9FP?Ui#`2|H`UF2RDx0`Y%twwQytc<15a3n10HClMohJ8K~rS@Cexel>-!Wq z`;%y(jhF2cIk)8FjVHg{-H=a|DtY>NYIqYGSyk^utS=`JK5IKxMO$NtWbTq*2jKZu zF?l$P&Z>Z2#hR8RMd)`z7IZGqqH8YHBzIq0Uk!rXOsqbC%D4U2y*C}0Ae=^VJ<~Af zZ-X`D&J;$^gW>l(5f033t7{^_5^dE}bVwr4jqx3gR*C?mlmo#*W)9krz*2mE*_ZmdG0pdzhNPRj zEdl{2W`a5J@>9aK+js5fDr&27beV<16qyEMd~LPu2>~SKfZcT{T4+s9pKM2C18V(X z6dd@zXiJCs_~Qmayp_3naW&@1r!PqvSZ;NgCBJkldoWr>R91UZNda>GDZ**u@oXp; z^_VQmq&cdNBV?)u%%93DRm-yOP2#z`{rn4(wBJ+{W!78`f9k|cT&FMVI8xyE&y#1K zN%RZ~r!8=??hyCht`cvx2EJGmEu>o2>)$JN-`I z+1z^LpB_2VWuC(;e|%*qXSfaoANF~<)rquBHMl;PR-C`-h?;NX+b_Vb9taG!Yv8Dn z(R^f@duJTB(GgjL>i9^i9MdtU!S}OF^v^QNf^SdG|AR6rqmtB-(ExVxI`H*UFAO+fAcCZkej{7u#c8eE${o|}DknY^Q z=z{h(Uj`%~gx6BlRW=G2u4#!4IOz1>xxwdCE=vgR%)Q=FOKMHvsc=sUY zmj0?0ZV>y+;i8TSLt1}}iv)bc07Rhn`l4_?y_c0HpcZ#GxO?*0X#OT6$TMDpj#Sul zAu|kKiE;4v-}p}k8~@{B%*c>B9VrtDfDeG|?H>I30V56rSGk*Q)11uxke%5IZ1@*F zg1@oGU-Y>CqW3qtsrnmCk^c=+{zCje^%AlJZtf#m3xkX4y4|&RXP{%M+yEqQ=F}|W z;|1KDLiAfa{Go8Tx-k1Zt@wPV4S3fEoCMEJhQI#rR^Ift)792J?(?7xG7s84#`~^E zl1r!ElWXxBD5n$eIo6wP!X%IT3_Bc~g-V>|@yCQ*R=kIl;WKi(b6?0!#OrwTd`6Kb zt++4xauWzTM%P%OeoqqoAKvf0Oi?crn>PgKy|aQ3^g&4rNS)P%XEHgm48b+k2!&rg z(BxPky9)bECa6qIOS~FkV-1g-hy=3JIII5~tiR03kq=%Eg51am&dhDk6z@cgz)1xN*ri=dU=$|3SGRgTH#snufh(gLyXgHvC(Cbx7?8&g3Kt276 zX_Dr2eEDE3P-dc-NZoUQ;!^jC_aGgy?6-SkW;z*fmLBM&f*~?v8h0gP1B*Eot-Cj}z z=|up)MOGmM_n#KUP5yFG&3_>B&1r?lIb#uM{$T8R7Oj_3W6Dqb;Pun%@y-WMiyrW5 zo<6cCKwjsd1L(1BExZJmP;sC6_m8~*TS(ho+lTC3Xp60j!N0^hGX-CAjtK5OF~+=5 zn7(;Q*n%j87wkM4l!8YFzB@5vMw*ALG$LI1-w!~eEoX03UXB8GZ?-UFrnDDmI?JOy z+pV1fInbRAtwPk6;vT3tFt|{}eQd{|xSVdqBxGR{X@>k33vTd$d$6jkz^V`%SgKE& zh|+$qyF{FE0?brmfc9`ll`4eJSE6@6eh|5@cgC(8GPUfrr+^hvBA?CwKF zB!4RyVP!@-Wj_pdiLCpPbQxl;#Sn{5P=+?vC^Dn={o>nm(* zu$55okOzD=@e!O_`1ZW(0Y-in%rs zbwV=wL=crd2NZebGt-)ztxE%So)_VaXo`Oax29v7$zj@E(uJ-ihlv@1&_wzE{x zued1G%bu$s0w!e+eqT#i4Raq)f6)Ib#Jf^?atqzwdMWf4VIH2Yb_8)9UQ+5f)p+@{f^t44`AaB?)$Cupjp4l zolMl4lvvzzpX8FJ2@Q0P{fJEuT(H_!iE21*$DCC?ZV&A!e0bF&b`5j!I%CZEZ((%U(c`QXg`mHL!maaqQ4Vl(DQMsfn#cV-6&;ZPzOTGlTKIRDuRF|&xya|RPS*X}cdQKI<|+Yz?P?XK67>x9`VooV;{o;pYaoii0Dseo2@ z9q|2lH8IiQ;Z1z4`W0z0Kz}yKM1hzALKJS2idf<7cvYQbc3MEb7FUHmv~@b}3rKyi zkK@R^{ihbHRJL9A@(GsO!7(orW9lI>q?d90{Ob{63KROGme1gAF^cOseuH+NVn@nn z6G6v;k!P}R2`Z#;EU7kAbAX2G5Vrmys=BAPp`)m(MV4DvII-gm9`=U~a%%}r=k{q5 zq^bPi@tC%TyzftBs`|viAtcO2^5w$%h&zF7WUkAZMf5fHN87#9;7YZj5$Rw`f&}s3 z#1)WyHA@~0)rdk7)rzjs@FCWu&yKXyuc6MGcS$8po()SdDDUDQghwb?=U3(k|4&JB z`BQgp9N)G_BYths?%Pezvdcw)`k?1dRQ| zM|V>p54Di$^`vnO)ZV6Vh14r6@Nr7L^ZH|6?snVMvuAfC(EL#ibvCnm&HGWFuZdt? zGi7x)x2b7m(339Rb_Tbpf(U2E|9iLki$EhQ(>G0{Ds4;Ruuh@ctdZVxVL?Y|ixQAL zmk@o<)Fkoh8)8&uf9j^V62u?@4B9VEqc;cFnh3wJ2_TO+;3FIYWzEWdcn?UW`l*W; z|6%V={xjMP2l62Qz;D#h_`#R&Mw7uTDBCr=RmuJ`kauYRQIVtP+a>n_G5*pnFT>VP z{ExmUh}o{G;+*~rQ{Tgtal&%CV~yqEVoJ3b_wJeJ?C)uN@d@t=N51Odw59>kobteZ zFz;u;yEhg6s`bDf!7yXpcAP#FK>Aq5M*%`T@b(d97F1>@5qSK}`RLUD_Z(F9e8LD{ zHl6iRcLCl8=dWQ34za?*-6#m(Iol<01JUf&qtEVP-OYxHy8or zJFqDV+^L%<+Mgc)a0xNqmfbVEoKUCFuM1R-@DnaMLOKaStmFG0!da-TQViPhk0e_U zQabXTDwdvq)j?jaxI5kL@6?ZGLS=4IBJu~YMW>~YThAy$IxSPnauji=TZh>68!=Q9 z&4fg`1(!lx;vY0=JZeB}iPI`kP2g3W--KBy*qMK0m>~BuLV75(#k&tVg&$%7SKsZ! z&MmtfUMU8=(m_c9=#?C?G<}cY%&qYFcsyOtVFo;oy-;aO$Qo%2x z^H6}9x4)k-^*aV|cJEESFNSKmUnvMv>e%k_mQfJA6r}zmHLR`r8c%{=zH&-Xo6gzR zW6R*V5bLIH2AkE3aeElMZTq7kE@OpVc=K<8L7f6`tl>l+04bvM4l5#b|29CI)`bJsddTrS^fsUa4DyEu zeX-oB{)rh3_{ex^+ZrU7qZUU+r%V+k^5bPJKOV%6w81G3Vi(j2FEUtaF-4LdDQrVI zGn0Uo*h>xTA~&YWV9C#urauHm-U4R@mUhx5IZqXpweZYF$TDt{p|}D9lb)>7|5Dg8 z3JltAIc~qUhIiZ@W#l^ZNa%?XTO0<%Ujt&7-T@}nApNW~n~@y!uM>ymqQ>cL7c5*c z#=mm;c(foKv>0&R-@70Dc$t{H2%L2iG7#c+44AZmpKmbd!EoB#xos&Wb0XL@9B&xq zbBsc~&Bh^124It_Bgs-{%IOEgEQ>S=;yBKfhT!@4o1RY+O|v|Tpz-L-B>!v~GS`)F zc~+l0+6?sJ2M>I@{lZx(q&)IfDU{ad*-s)6D%@uI3xDNpE<#|3IGAyO&B(0T6r3-t zY|0+(`I?Ov=2=D{S@ZT=ez?WMl!4|Ea~1zFbL8t=J4FvaMai+u5u}X;yr8tq1lCTV zhkX3?ANV`CNut%h%=&tj8HzrX9XksLZ?B27xJYIC1=IgB1R?AaNN7pdy-{nuEFZ%R z$+U&Ylew2;^q$E!kd?u+BK#|R3J>;=G*9RHUL8;;4Iq0gtJ4=>@~&#N7%sY&znmzn zhc`)f^YgF29wvT0l5%W1ZsJ8CVjI_qP+$Hd>V^I!q=B4?tKT?5-&*X8ebcWw(UkSS zdsA=3^ip##k_yBdw0_zeEHPXnmfgxnpn1fIUb=kHC;AE@9Ko0t<_sgd)MBC}SaNE; zoz$RiBEp_0WwHcSgrv!7EnRQzqSA#f;r)(5E%EXFci-uH+2;LymdbF$K3(5ODaLABuicg<9RX5iI(rK%2dPYI{F4{pH`t8vP$G*#A4}v;$wEn`9(WlzVy} z_V^`Ut}KQeHSmeUxV(Ig1pd#~pty)dGx1`v*XX2+^ASt`Lgv<- zVD*i_mfMDi$13|(fxrfat2?P{gLm^0EdN!q{a~tE1xxN}*!rb-Pokp&9^PB* zE(><2XJr;?!B?2SxStXz(#RdwYm*R+v!Nrs7wutHTFKFr-b_XpJog5Kw2i&GGX8mp zsv@y9Qee0u93!VljLV7WN&#-E1@2^bB8rA$No#=(r)WqXG2sV*vVT|HZI>@wc>k-m1J9K&*prVg|Djw zIJK`(OC*}HArkLMapzNCC8^hc@l0CRgO)^mKS}I}=d_`8Whu?daz==+Ym+s?uQ?t0 zX$huib%a_F-YmOg91}8dusBRQgnrX!O#;P5@@-@}@K*+e}K?d4Q5UW&kD~< z%HGVn#F4S}kFN;}UezW<-v`6*1N$heP#yAyizbU`pW`&AL5y=E6I?irt2k>AD(}KD zaFxM?@s8&=E@-8^kkh-N$((&ok*}ZUwdo2%J~2*4M^&OEY>Q-ynu!6Dz-T>82K%a*p9xcpCXG*j8(wwo>cJmLmjAOUp4RQ%PSTsi`H` z|M$oiN-Q9Dew~Y^BlMBr#L~wWT!TGxVz5e`De<5Q&%qwaj~~E*R5fSZ&XDa3tTwMg z=1%|5g9!a*iU@;r+$zH@I;`{oody5MY==fl9Y63h6(4fE1^*N+Kp(Kqu*z5GW;-Di zFtJrM3~9`mQp=diwdE;Rk;;qjd_82U&&1)5A#IDu!HJPlfnARMt{7O^mcR)|)MIcp zdWu`wT#G}W-M0fh=iZD08vWo6D9w=Xj*RqdIt~e1?A$u=hx^r;{9^3Su_%=_|JwT` zoePqPcHDAC^UrTW>_qJN(Rs;HKJhvKG9D@XuTH%ow3oX1uOEvsVbNX*Uv5kcv&{yZ z7BV&3^0R%-tnYXL%zIaO;s^WI7|RGG+m_z`)Yhc=)195OcwaWMfhqmK2CNHV)E(vW zPj%#$Pe?Q;x*kf0>uH%!)7tT4g2ppL82QcuW;PS9gw3t=ys0lg2=kt@VLv|t@az4m z_-7(vRy4z7&5xJ;x;os5{O`Kj{CLeAkhz=?iX^UM`6t$mq3{OrdH)dCN|r%q*+ljl zcg`MzbsiQyTcjSxX>62xazZ{8saBLjErhebn|5UWM!Gx_qi(Z^<5Mvx5ceuT`*E^P zf^QZmuty*`vVMH|WVYPW7VJ#;L8obsY-&0)q8DO`^itj{Pt*VaSLDVJTJ-YT1Pe=> zUqBb+Zdi^T+Ase>GV28hx$}|W2?gW4WnL(}M zvXk9dDLnYs6z^Z%XSf4STFpL_1E8DA(`et?AJ zfwC2V`Xq2o1%5LAjSTAnzo9g2dsAB^M&N z16x4DB=GPPf&OQ5Q$Km0h}p=g%KutAQcd|Z1`%d{T37A!uLf&Cbjlaz@l8%*_Ai^c zy!EZpKTm)EN$Za`+?!HEBweeu+WV)=wdU5+O_=qP!s#ySYH=BEC07coZd~W(OJ0LM zYVto@BSz2T>z{&}5ovO8S+ThHLARDG@=wg_o^lJw#*16_-%LIIRIvk{nfMjl`G_TOw!Xs z#>KaPw$Hjd-2RXzTU*}5aqTP@%S*6?cQz~Gc%oND;g8Di7C2R&bh^HHf~4Qi@39|^?1NH zzv*bBu=V>HYFRw0kCy9|3M3l`tj^uH#t66pX#h#TQ;s@3JN69d(T3x$kG zy!uUY86$a?J#U;nSdPD!VV!Oe+lb2VN{#s|T?c9yO3c@rgI&Uq%e(#)5K&z*2hyX+;n zjBA@h4j)x1|Jl1G6}lmucW;@JU)ha9RGzwr2e_BxHg7ZRIdknc zf7bJAyR%9!vXJ2NojEry&>F6m)j73MM4S@n^OTF~3tpdTUk58@!ao!6xdsgbym{}N zG$n48G)BBhTGZ=@%J?H@wi|RMDyZi{izsJh`Tq0HS8ehr?w0QgXM$T3PDKwm=p2;g z=5is}SKcwj?()g{UT_5-^9``xxi#OV@ z72FIx=}Np1_~srTYr2$m?kE45$?(i_vVYtxG2$UxoF?H|Z|w z4+)nXL!mJtR%gg4MU9j`F6C0v$zeRJKi(tmHh0i5sK{hrmrIbJ@wDndJzF z4Gzn+tMrdPOIk?|(%Zrvu7d&(Yv~MewUjgOp4HKJ;{Eh~nf{Jux%I6SxzD+xJ#NRT zF~0fT`}lZV*`mhJ6wJp!KKrzq9PDXapBmv%HHh9hi~O`!n0Cq?d27VAhx%f_aPDE< zvWVi)`$^~K;?=|>k~CFO63RPi!r_VFA!H4gG4chui2pA)3CqxuQ2&sB2UJJH*5y>- zG7?zRy5VW#2 z0X=c0Lrzb@@n8?6_%1B7HrC`ylZ&{Dmlv{ipR6K~)L-P0;z2pjF$#EU=snnZhvffb zS8M>H_0Z%<^8efUDxVRnSch@8X{D3--Beu0d)?X6EZl;7gPwxE2O;=Fqmw{>*2z6>K1a2)HObdCyAPZfw;2D;)n8&Uu~$SyL@(}gyE%4_!o+h~ zr16Qu^ySJ*WW9{3C67U^3@yXp$eVJhkbO_eXSCxW88Rt3IJn6H?*~%4F<@RQYcXB; z8FUyJvSS`%0;El`4nKTU3ZaFOmZ_?43H7$h@T$ShJ+KHMeb~NNY-ID#ZED0P>Q+bp z%aYGzbh)cwovWeE$9o%TSvL-~#a9h)8uql|9e8>u1cGbgN;r+ zT7E`L-^Cy}JfQlWiflRxsFR*To1_gii2)G^D@gzJv#}oZ)SmiwrBJ9Bj^>UnYlG4jmAx>9>m-V*<*tf*7QX|0;X{Bxn%M-bSfr|LtEGeIFWe1XT61 zh}RG)Z{%qd4LWJ>wpgMDX(B~g*%;7OO8K&dOi z7de40@=FJO^P(Z;fz5~M%E}dDQ#&K^^6W!m=@PcPB4R7QiE|F0BHAA3cC4D)kfu?A3=Oo)VNNxJa4XlUx=30g8?%Xw+rniTa$ zAQqJZ36n7G^pn{_r-(Tb64P$tLZ7L}vKl01pU?x+}YU%^lu+@Dk9*bjmUER&FKJ zQ23TnF-Ol3vu}ceO#vD$uMd*WltP%Z=vGeh^RKnsPhO9SZMgXTYAWz5Xx>(_qOr8Fgl-c;JEFK^{i;S^vu|eHs=u~o_Z`1^k+VBZ}dSJf#dZEQ2x}V z*Sk))i+${TB)U~R6LRR4>Ak|HjaNxatn71HNc{BxOf-h?_Gk__-S=ioRIr9SNS(Ps zp0IVhc5aYUj>hO_3Kul2+a&dc12Bh0J6Bp2)T3_vi$W9~%D>IlB84;d{j%PXJb`Y0-g>+51cMCvj zKA6LjCURE#qh$Wr^16T->suF%V3v<=aw%~(FTuTT#dNc&Yv~2V9=5Zla_SD?2)d#L z@+Vm$T3`1BB;Wvt2g_@fxV>lE#FE$4N5$p@7R1 zOZeHGi;){)&pfW>ng*RaLQ5=N=IppwONM~W>07;8OeJ*DG&B-FFJD0Uxk(sbtNeOt zPPP-*NuB#sG|a#yxe9Rak5YO}Qh;az;RLJ`k#yuQa1mvjmup-=!)rmZPgN&PYId_v zMkry>^W~9!xb&vH*{A{_H)+fvIAhAI@zonA@NQVCb;9_J( zP-0=eS#L=YR2@N6G3z%4%Zb6gFPMtyw%kT6z+#qGzqGD6vImHXR{Oo;cPJKL9f zD+09m{f>KiNKaN9m2(Tuue1!@Dh8p)MRd)szoHatIOH(8FH;jdjJTQsm##9b6o%L$ ze7Ba@2wus8cxOfg5bdvkLlJ-rM=j=Y7?977a7H4!v!YIEho^ve@CJz?6QYG9^*FZs zKn6c9*rRmo`KkQxf0_f=)0G47oGzk=)p@Flvnx}@hlA$YB7XmrS6uHKwBU;H7Ffuj z_Nz^)uM740WJMdMjr1OR8%Af6dYI&XK zRIp+xJuF2!M56D!;oH@fwActGfeiIgC8H9$=7p$)+f9?_~5;3DE7N#0*SK%;yH)G2lKig+41gmH}Dl4oyd`&EulYq zLA2gFeq`mVoY*BEeA%ZM)_aSS>l6H(R7<#4oIdwtw>63jUq+2N?6lD9H!|@YB7Jjy z@|8SJevID9;2qu6n{Z{@f2o%OMq0sy!sIH*a^@=GWdE+Ckr#KEWchwefO6{$j;CU9Y)7d}0%n%d;L7zb~T z8XWxSy{kkUQL;`cD6ZlK&f{<)^i3~tary&C=ZnBpE^VJ%4uqk2cTlz35Yu>Zj>gLV1i zaAXl3nZ(?eCYwoKdIP^mNV+0}eZ8yC#;=773JAOcSvmvM{j|E+VPh}ViAG&_28%<;a(1f)?y$>6mO={Xit(~pn4 zt$SXJd&}Z&;-5p!ySfsDT=MDBhYBev@OAv6HA<5n6D*`@ZK!_nFQa&bk^CaM^;j@S z@H;ZrcHi7sE{neoa|FNG<^r_x?*M@q_EJbOJL$r8(TdTo4cRt$wS#X7K_f}`^Lq!{J>zv!yoh%;RA2UwIYTz9>bRn;El}y?m`O!Q5X7EH# znI!>v9mtU&O}jDDbml#~ctx@}}>VumOQSJwNlJm$8?@($rR=bzsWZN5%b6 z7PLs?v|YQfZUqN9BpsM*M-DRpJ@wQ>Bj%P>I8}*JsD#q`6ThvKg!W7&<-tBY6XvY-v$#ab_OJ?Kq$bB>kaY)g`vb=H+H>*tCdLDY- zH_Q6ysvS?{NAyn86X%I1@$p$d-rH$k3KWLFHKlr+uBBwnSg`6sPfg;koYnoR@qYQ? zJ4-ZpxIMYT@jQ3cWDR{ow}9@x^aY7gTAs_Llk4^PFDSk1pNb6kvhAT$2dE{gR!T{`ut ztDNr3g!W`-Ay|5*%V!=#0>^P}ajGWr!k(`RzYlMw2&TVwGdR@1b?9~0Qx8$A$5Lu1 z)jf3Iap+*Mxm`Y*;$74Imt}n`OfBTG{mpxq>FJH}!O#F{= zt@*iJG`iVgf}dn!hhL=~b{x2oR1Iocyo4IB6csDp)%P(54UKY_au$AboH%%Uu^JUB znTS?ma`===oai8xTYS2s6o0Ao)W;$sm&&W}X1r@9O!JS82jzIIUjv?}zglmn{muqj z-yFQB`a@ChAj@VUM7kIsAs)wo?j3H5UVs6^^6I80K6ER(lwMPhPlqFj@dShUR0Ze1 zJj$WGd*pFZo{=W68zgE4`05sZn5;NAtI-eP0V{Uk+{Q9^JglSdPWa1c6J=xFKNN30|_yf#mbit#XdA#t@<; zGAAvxEp2C`TE0(cMqxl5a@KGW(}gvxF-IY%D2JMV|BX$~!=40+a*o=I52 z^R7k6FgH`;PkkTr@Y&yedTcas`&Yl|h|(z}G7@d!y9H1eV(x4p!u~TbrDKl_KWmy1 zMwD(K)n@R85v8>MXEvgfkp~Z(rI#-o+dt&iKp!FDBKj{}@MdOmDB8n?H@-x58r*smwBwc}mhe}H6h4)lG+KiK{}YV-Vb z&#K)|OR^MAmE$o6kq0~D?)ddgy$skXCX&4~#>xg?wyVB$7Iflj{jqfZ8kx_}j+g!i zI=&UMzUnIwzTzHoFvj9PO*9ALH>l~@xVm8BT1DwgT{33~XyriSbBi$QySPG&71YHcd-$G-Y- zD{0V%;7&L)qO=GIy}qmSmA9AGRVl(d!}$LcnT#;b^uEt~EisSfzElpECrB8J{B-+S z2mx@HW&3MOvgk>2rW5Q}Fk8vt4y66z59JR^_ zYj?i#y>1uu5Cvu%79qC&&%!QYN~Mfn-8(MtIw7N~1gN{=mSER;-nN-_PdRVi2fRa; zF>X(z-Szv*9lGOoGh%`3eZcOmbW?xww(gL>5tg=iLNI-{WiNx2@KJ$3%p%7*c&>Q; zl(H1qr}vrJlBe-8uPmycB@L%@!Tn=J*rBc`>-_|!j?_t;_oeF^pVxUe1H~fB*%_}C z5+9c$_rquIUF-Rn_v_H**l6c`sN~WIC!I}nio4XqVWqbgAfwSiGo=aUbMnaRhzaLM z$lBO}4?3bfcmiHUmgo4h_{eiPPye+w0kw@TnZ=#BDq6^uMfO4(Z@zlXj(c{8SDad0 zb6L5M@s`3B4pi6G{sAiEm72Ru*8?M*3IT?ss_*adTEgRYObDSo;3DI+=`%e(`2eYB z>_)*pyD&$4*`9rtcN_T_`>QqrmF7lN@T{@nmv43D-D^!ARit+@dNt)qulKXP>=Jh- z9X^F-udskwlDKO=Nn#B~^9CcncxT-#r(Y*jRZ|I1UW~q4JJuDieL=dqKS!>R&UXJ^ zikslg4Cl}M4eE(`d*&`49fQ<#Ky|l~pw7JX^f z_P)-*tLzWL@uGAV-{@YOY!CdaLou3)tm5k~o_}l`x|l@neiYRVHAhEJo;Bbc4qCyI zw<;jZSK2tLg6P<5#yHkcr~hhR1IROoJC-TTXEH1(@<^-!@`WN5=$7&<%{G!He5yue zUn1*o0mAcle|@tGs3rkZA08!3FI&718~yxXtPs=qTQ4v49$!r>byHa&QBW53z7l+t zTJr-Pavq)WJE}sf@G^L9_ypD=^ziLMDDcC%CnY)8POnR&%X8W)&LD=9QO9kEoFAQ7 zc*VrWGZwJGqE*+WS!D*}cpF8ey%$aJ$=ATA1;%NnFe;9DIQSif!r@<{0Xnvl0&0Yh zhgF9?={wNzN)IINjd#9vIB+;972rw8kOe32ERW8z0YKCga z@|Skg*~r>jx5<*`wB=;)Ie%}^~f+}vr?q{_<=!~GJ?&O?zj}e>SsDM5r z6MzZNVNsR_SBi>f0?>K>X4`EMRnfL$nTpU!6#tBUlxmGNM!;{4suigMv1^@&VEq0Z4>C`0C&+ zF@uIpKY@@nfD;JB^bf1PcSf2I{FOWAs^a6(7pAFNE{RpqbR%TPV?Fu~G#t*kXC35z z1^$V^8~|Ep?9z(^t-ds=vTV_xH!Ka45e{siB5mKc4z=i7;Yh8Ub6kHa%k14~#HU4#N3 z2+~E;{lW2KNvxpYIC(C-H;}JdB^(8bTwjuPAVZS>-`fvq)jMN$Npq5Mr(6s(0#y4`> z1&YA>>F@5q(tTt}(Q$z+ajanT`M%P8t}Nn8o18Wipbo1HY@VsbsPzi~>v_mfB-0fF zcG3yqupeZ!h28Jv({H&E9%d4`P=+ENUUl$rP~Z+O&OMF;wbTF|K2}BF^m?YOsPDY3 zl_UG+6J8yxTWkFb1DD}du31!|?-=5@?=w%dlL5~K0_e2c1AHIlSyEOO-0)ni0W5O` zqjNIq16dzHPI~Z=4Kj+0baxrZA3MLEmR=Es= zY7Pz}V`itYf^krj#<4pKt*%mzDgItlEewooKV&|Zerz>XUvK^sto+*m5PjNpS4jnf z@t=KP8X39ltqyY{!-+>8Kv}L1nOw!(+T3N&1}T>KrLpsM+gZPEp1tAP(z2FlE`g`x zYZCTvywfLiWl_Ea#d}F<8o*CY26Zk_f%#6bJY5m-0SAiR3Wi*4ZdQ$(IvaGFgh6BC zw!$#&YQutQzuT2&{WPt(tx;LY3etiWH`Ix245{IL8tiV4@OhIXlBDdPOAd*-iw3VOxX153)G>Y+d)0sj#nyn z71@h(KrY6-*-7MfS}D7_wytZ7nr~>VM^gp9#XyF>a0B@Bt_2>o6U0?y*gS+Ed%(FO zsq^akjsKjr2c2>*+b5ymT~Xp-P}gtM)emLF$d;GiJF1twC#~T%Zz*!I9jbMHWZhZ3 zef$CsX!!25qzwTHF(!a9i%xZuv$f9-Fz!#k?P`Td&qi}Y$OHJ?S$(3-%?u)5DxX`q z_Yq-;a5fR>Z1;IR;f*~4db?afWb-Jm>~i?{pXYPwyXMge0iLB^B*>){j{ZXoMOK9c zx)rG8`Rr_>9j((Q4i94Vv>doL` zI;oWmG{z933Ck0uY=B{SqLox?ogpEJDGG71Hhcr{kd?O`J)R*c0XmxAHkOjP0}2f` zR*h!o8?U9*L2-zc^b830}`c}^5aX%%rLK>WM$tad|4;OODcT>8P?Q^oP9tcAn5_*KxPl)~p zCLQK864TLi?;nu*<{8S()zjneMODzqhmg?Sq@FAaBTcqX)Ay6AYp_Ipib!Jj1)iSS zUg04Dm)+x7q=jcVFB8qvE7^CzH>C-^gE?YQ*^P#5kVSSMX40?Y7N_l$Z$w)@!VtsdX>2gB+6;)^iFYBHQYLb&@82?3Q<qlxxRzb$9NQJE2M*J|Q0^~=|JfPd ze4%%e=l!kJx+&|wCj*8&IyWOyTiu=aTz$Ri4^b&e!>4hU`5*2{oX1x?C2D5iurAD* zC7Psop%bM&C*OGI$=5S1;WzI7@ZFas!e@>PjB>bt=jjP^i>f8u+i?Ds#ZO5e-uZ;_ z-9(+-Sl_TwBTo;Abz{>@p>&$VGH&~J@`;j!l*t|SnSvjIvfL~)XY!BW47wMwf~9aK`J!8#zhZ!YMl?YWT7${|9qAWzSvD> z0tq9Vy7X_ZuYq!V+V{pu<3(1&3(OIKRzT^bTm=ZzMQoE5QzM{S z*Q9_tTi^82pZ!Sh14SjAn=c-sJYVi^1zj1yPFlUo`n!D$B*pex zh0X2)%GMIqcmEH0!r_nm1whNerc>Dp>I9TFLHJM>2FSrAJVc5I$U16BE3ARYDWnD^ zmdJtB0GzsW_9#p5h~4s5Q6OX^(KiEW963{?0}Gv9=iC*$j+N4al>yG#iG85?cc56N z6uk@jE2#I!Wfw62V2j4aw(>>fsvI9-r%$2V9h|#yAZEnh39eR<|BR>vs9H18}HI43#z%F zQo2C|J0eSD$Cue%B7!x8J0lZb4jLe(J*bF&5$V?MC1i8Be`3}(_yW-AEhsVfsH+oE zMEo)#f}#ViYY{xjDVh_{-9`X?*-Ht3Ed%UFA~2wsf^fVVT{8M;5?YP zUQmd`H_L4%6ylGs44QB7NDeVZA)T9tj5Rt!T(U-Y!v5ednDul>yZsH6mr z1D#&lVHyz{jI3rlx#2@b`@Sf+oq1a4P$?+qAzZ7 z-`p<=>~PbW-t`NJi&w!xrS_&{ptO>ImU3?x?Lc&}w6FY475iN{Cu=}^EB$wo;-Z~f z5gkJtfGZCtA4Z(5fsn8V8^5EM>;@mg)5NaqDb^DUH(EllR|vxPv#yJLLrT`Yro9Yv znmk%uJ-5(EPtCLVN%L}IhF7{2Efk(3R^$rBewu1iDnsycE3JXU&;oXH!Dlj$oZ)X4 zupT!10D03LA>lm+u>UYGqldlhdS56yYo{b_yK>>VRm=Bso84;bizxYP_;eqsboR`Y z$pGcoh}Tf^rZ5-$9qo9CW|2(zY^UVN6V=dDd$ilM2a#}XK(ilwQHRiWv-gm7%D9>S zmxAOopj?BXh}@T^q*G0*mD&-Y>f}=TeR~4HPI(KT(^v|u2zrM+cOZPrSU?81%(|wa}A6?DVK`RO$Acz@CwWPhC3x{fHN+Se1LoYIh)2 z5#Y!7PUX;UwRx2Hi0q=iuf|Qr1NyZeO?EYNAp-uau9J~a-5h0uXG}u2N{x_x$F!W1 zko>rXXm&N8XN3!l1P+0DqPZDO;<@f~D9EMu3L*RU`_Z60HJEZNn_?B5fRMNcQYX;) zl*U5n)(>bLOPO)0lffDc>tO{$1WO3=Qx117K?IciK``>8P9anr38}AQTRttIK$@${ zLr6pNA=H>Ti)-2Hi=4ShY=Mw=d`w__RW&n;=M|5w6u^%XD^f-A^vd#~RVBqUK6Sk9 zCl~zb4+@1|Tn3w~H3(slMok1n2S|gcb^Y<NR@m-O3c_p%uJsWv>(sYC}XZ)5VI%inv3 zo5XrI)_nh{obRw_jRyjU1>QwI146j+1LkO)XE*z&)kcCU`MRio=|x^NfmiQ&t9*OL z^M$38&*nbhm=EpgsW67WGI&p(n19wwB;%usM}n5s^(n^@A<3|EVkE#&SZNGznB1+G zS*qfSL%qC=cI+;K@Vmq#0e0uY(ZYkrG9iL3%-==b#1Ra@(CV}TI^NnN7x^e2vCh+o zaFXW?Zo5WQf4?eY9&{1m7##`Bf9~GSSYSiFF}wP%g{uPZz~9>WESC-6M&^+O}m1r%*Clx$T}ld(X^J@Vwcwhyi9*5z3w#5aB79NeB>Qe)8lM6+M5Ot(_o%(642DOusAK} z7ARI0VqINCwT}({tq4TN_XL6dZ|T_ttuJI(FGPzj!?nc>bg4Mo*WVifcQ4stvrHMJ zj^;{MmtWSn(!jKramhzCEOS3slXZ{qB?YU;VNVmnMF6!FmKv1$qq;Or`{n4v@A1Tw=4c-8D4d5i7$`4L++^3?eWHl+*wl>Bjhnph z{pJAC^TcUUbHb7Q0w{STNa#L|V9b5_nT#o@NzMjrEnxLMikod5mtWNvLc&tUpky%} ze_T@vw@<-&!i;bv<*yXKR_I~2>tq=Z1X+I^e*Irfczm)6PHsVbzWV;hCJ)(x&WZuCL%@p8vOD)qR~R z<1FvAcP9s(Hvcsp9U-6XVGaAfpKywL8BsA3=ivyBy%M@ZVf)8o0~b8`M#!L1@4r9(X*=%Yz`Jizv$IrMnl_^qQ`09~Rb*d4%XCI5GhM8-tGb0E02EUA6g^9D-aE=?2Nc`+e& zRSO+*d>-#`U*^lv+4}IaHV8FiaH)F@$%FXTYYZ|x`T8Cy;wglZhm~3xuD{FMcbv!W z8A3sLWFip=xxWnPySLSUi9#BQ?Kav}j;XUNl9k^6Ur7*;R%ADNZxZDkqK#$|MHKDH z@a`vfl~vglByxC4E1>b!fGxl8`22Sf^bhR3LgRSBJ*msw=6g8H^bp?+@ZrTXUM%N5Pg={?|zr0kv-b_ocL+?vtNlA*IJZ)ChuY4_Z1K->DmBX%0w+TfJTmvulK zZjmd6_AX+3jvBaNMp%Ngl}j$?ovsT_^$PgswSAO_ zt7xIz2LmT&98&84!J5JnnOb*bF1?LQ5sAK)sk*oF0H5E(j3>PNzV)GSr>~RS>s89> z(YzOW_EDIvVK2;7C<9-Fg4o8~s!ZCxL))ZPbbLHcsxm<^AJUy>uzuBBec||TXWnlN zm0a0GwaQS}*2@kD-wk|FzoaYJ(=-pHRQ@&-k-)?RRYo}_26JPd2si^opP1*rM8`C% z3IP5h$~&z9GC&L6M?b1?Gxz@O*aW$cBAf$`IZ3aNjfMKF<;a#3PwYLNcQ#-~=6y`^ zkARDbp39GBILtG&?w8>NjX_Ph0eNH+06O+U+}GbbtDhNWxAz{FH+%5Vgn8lo;Ckpg?tMz_orl}hu!XeJ)`jKs$y_u#fg$9ij3Y#bHIYbNgt$PF! zl$5+kg%n0N5}>FOdu9y_8m;Q`XxaqMJ&E_$n4drvp<-iI&DuL;!CSwQyHjqvDrKq zP<`-&jK6|`^=Xa1y z-DrhXtR?wMA^~DI(ZBO|&M^uoq_HiNgF#gMRT=D%vb|C_3beE9ADVwo?* zmaU48CMa-nDRMiv^|~FxKo-fMi!?#;#vuGrdq$_$Yqq{BGlB8$Ep7!S*1C=ubu^DI z(}+^s3{~KhOzbm&8g^3rlK4WR1ajhRV^}wJdVKJ!5vX}o4ITega9F^dPXfJu{Nq+Q z;TMv=xV&*ny+$p=8@ZYs$^tqQHi1?@GH>ZPnx=oXiv;xDmn_pp@DGkCCBLNxtsD~S z7Fik&;*aYi0j*bFt^P;M8~M23b~sy?B3iXghIeFw;Pu`QIe$iG0-aBP0~cx6NljIr zDv$KF(5jj>J^zyu!u9TZfkqCCv2Q2_Mn)&uA_~#i@hRdyjv}JKdN#Dp##V1aDE{ao zUPOtOqUHe6B9Cx_ZCeEx>9q>GLgFpCVlMLM7-usWqi6R|jxK#?v7{zaoaJjhzYTts z;rF2?j;4^~LWekGIf}GiMrB@qY~$Kq!S>iFMT4uTK;wYzgw#IZ;KKrrW1?RUE>1^1 zwmFh=cvbN()C0UVD;3TU*iJeFCh2~Rb~K#AIE%!xfw4UGKGhx`!AJPl`NGTTY}2L7 zfv%w6CCxz~KG!&#;w|7ZkBn;xD6+IsgFYMBp@OALDF*pEHgE#U1{D%`U>#8;U07O0 zAJokE(p1{C-IYcU0z1JbaO63h$3!Pgs{y1nf0Q1<20L^95~SH$96zm#FAI>lXmhaM zRqBE51ZrctPDhZ1jcan@6iM5mw0fp_Zt zNVkvPIJEr0qvh-hsBIPR`r?RW^PIik2rWHa=*8hnrF0?eFxDezzZ!UJ{pANHl>D6^ zZ^Jg?W1F?5CO=}b%^ODTRtIB74}Ca~e6KG(jCwF}i9>K&ul~6+cecT=ljI`jJaz~F zuHq+o61mkP)}V>SB;%N{&!Gva1Z5`0%kuMDr|#BpTWeZvrfQDW&i|TWX<&G+2E=dB zP(t}+C{S=1zrC+7#)#nbnsE>5&b|tD?bsu^Xv^k|;UJ!_*9B1fZ-4ZTh7J4Yx=Z?J zrdJ*-?HTyfHt0gic2X_GxRSg`+La1I!H>>s9$mSqg)eJ?IBTE~8#tO?zWoWNZw7i- zDP~MLJ)UVk9lorPAwRJey!G38=;`LrdWX&+AmLat?L3fJHxFQ2$~24(H3;e3=@5o= zhwVoBJAMv7>+136Fj)jS0VWXZAI_u+;etP*2pQ}VAv$cPsQu+@M=9>&k$(5YJp3;w zaXa!%Sg7ZtceawKK^m^$&TM6m+NcIxn)}i(#EjtKKD?QwdFQ0bcRAO63fhYg=47pZ zJaprA_1n^cSvg9@(jJKI>|GA+U*jj7ihg}oH#utv&>jRf5TvKUx%4X^=iAps!Wane z2B82@(J`^y*fdV*Y+TgSGbacVpP57~&IoNKK`-AakjoO;yPbucCA##EI@l0q(L&{D zDu4$`E9)pvF?NNdU^X^iyJPGlu7a&6ehGSzEP5b+Z)N%C#Kl)O@^fbWK{1|IFEzcP z^ZC5NLnEHyQ|AY+>ZXp`;mbVG03#i6(W@Rzbre1v3f1e{@Mi=P0E=yyzNga19i@nl9&#!{hO`wzm5E-6C~o zadNt&Uxr6VKVI_tUfuPy21zX-S4en%Ms&|cS8*tm`0ce-DU=);o+v#_0e$|7T| z>}K{oQ}sInO=}i^?0qvD^v2vuDV0FHd%xWbzU}t5#N0(z!G0cz`w9mc`~P2wtm~JTwZ8XPP<^LcGgVXh(XG zaR6k-3s6jb31m1~VX`p}PiK7!Fo|Ma7;!GrIch@eq|Avx6;JByLUA z{JBy}7az3qz(vN`?59NqPJVF`WV7Kz3+3!$4SONpnn@Wmkf@pgA43(viATVJK$5^! zIjTU)fjSZc+1<1A62a^HNyY&?SeA~f{ZYHIsVvfm1+^m}bQmm7`~G0^3(rl#f4WA= zk)acxkNy^*h-70fRn-7afeB4AtrRG&&G{Cd$K=pw=@fcNO88AHs_{_;dFtjF3`f|H zXPw)@i7DK93ExycT#%n)c^(BYMiaUyOO%@hbsG4msoDpTL}V#tkTsvEN<86lXz+V1 zHjdK|$Y~ULLJ00Zs{;i?}k(VB_Zc%TLVZzcHlBp=N9maU#1} zMR+4v0p!oLUA9XZwX+9FUQ)`IRx5JW#SuhbWcokiV;jPOae1!I+fw`e10%wZzCupO z7WttkncIGD_n&dEY|gyKv45{FEA{>>u6PaelL3tNxE1E3`>Dp4>eMjZEH2D>rt*Qm zT0AOA35G2_rqoZ>EgNOywF_@3+VLgxAsLGPV|tdo6e543q3yjE`(~*OdAxF)kOgV> zwy0Hc?VoH->hqoRn_l%+txccqHHA#wSx_5Kt{k;PvS+YI(FMz)-IR(rh7;&Cl$4<< z_QBluK2qPNE~z5J^Z@5phA23KWMPqX1D*@I@i*0y=VFYUQ0$*h!V_0KbFE`284!|? z(a^OXY7(LW1onXN0{N^oD?wybA0>7P&Hp!7x1O$ltqc^Yu)DB>|BG^>iws2(mgvsO zft+VMc1g@7#bARU6LbrDI9GM&&RZ=md^FESIEdahCw!g=l**-zr+JphQ2#QXv+6)m z$$@W4&aQwB7>!l}5Q)-kZOMJZlO_^gg5UwmCdvyYZJ-vLqO7V#!)z zV!3Nj(c4#H>ArA@0E%VkU)E^wK=t0l?XKPv6ZNbNH@ME6wUv-aG$=gDnj7uQaq^hR z`br3svV%uQ;+@Z;>|gqq%rl1~gcw4D#db4OD_)?hpf3J2Z8zB^Sbha0{hYw;s@ON2 z3qi{MY#*k0v3?z_LoS7EGpJBL37@)A#wI!MV$)B4 zhs8SlivEHlTeAN7`7t-2IH-i=l~((ekil45HU(-@8D`YIQHG93vJ=LKvxtRI6zp2i z>>7)xR&x~KarKCScXsRWS#+^qORp1%2G_k!G8I_*$MCeK+FC4H$zr1vQew(`G8xxOujL~=oFzmg$AxtEjn zg;@Hcufmzqp>$%G^IdFuAT9x!DInIDN1064w3bTse1Q;3V+Ajwrf7DTQ@;D$OE`*T zo$t9I39R`nVwVC>Zw~E{uWMnI{#9}6F5!z=#5m-G*rq8(imu)MyScN*EMhGLz}wD+ z4#=^f;rh)FwDuvHN`@?AByCM+okUhAWOJ**A;_v+NA_OcqxrgA>rc7*yO^uDMViJXZ?<~T zLr7rOYe+1lWlZ3lTd>>QxEtFEIaQw(C#zipkd6Vd6>W1B3Nc-*s1GOX!kOI*Ts%nrpphRe%H1UM$g@x z|DLXbV~ZSaiU-t%(Mvhd6CH4)03%`o|G!tPJnCnU&4TU?H@(`bb%dzP-JLfa)<^|B zMhJ=Y#fHA+e2ODaWg$@r9bc;g{ca@sWNDisb%Ji6*uPH2u`9D9uZ;~WQNLZ-Ub<_m zlefDw;uqKFzW(ScZc-amf8G+~B0#2P?W(D5)A!YSL+!7!k)!TPOE+1rQ z!?6F|?z`0ae=K`js|85&=bXo(&s$AE%*S(%zn0@p1evmYXRmopP5g;PAf0Fa8r&<~ z($W?Pa?>-Ty3bbm%R%C&`#q9&geqJnd!ETa#jVFFWXddg{%_hJv!ic$<+G!f3c6jR~}E3&(cesefTS*;*~r6 zrqeGyk>8_O_D?3PE>6e{{WnJGugw?!rnYC8z zl+Rk1Jnf{R2H%RE%0TA4{Sw{T{j+{Ad}bwfMMnL~9YNFU7gJVNIiTEwii_J+rc4Jt_&Zw6wrkFdeL8{4LZ@H47s`mJ)iVum$~c~t?PZF()zf)G-etE{NOH0*zv9w8k9>3hXP-HW#Si;CD6{~mrlM%P9I#(?Dnk6UY@8d)00QG{;$%K`t{>( zR8orXBERk1qLOaQm-W|&eOlfeBo|#ib;T5hz?%Et^pBrSEUu~CHc?{!i-5gpvx++w z@AeGIKH(q|^?6q2ImMoHRY_M>Iuy80F5Ff7%2=Rr{@Lv3>aHCJ-*;Y(PF+yb?eg|a zltM#T0Y|lNz`nd`3Z{}8w`-ZQy8>)ZcXqTmF*q&wV|LzQWgE->n3v}khLj0^wA5os zIMd|p60mP$vGbqQTd50l_S)F1_e_)2IC-j;%dc91yS1p~+L@orXNJ0J9DQKLx_)QA zaly|h;o>XB8uyB3J;=Sh^QUFZx{qG*=XU0)NtNvIIsMG)V7-KCv$a@3Rgge~Yd&0D-5gpUXO@geCw5Kg&P> diff --git a/src/public/modules/core/img/landing/restricted__feature3.png b/src/public/modules/core/img/landing/restricted__feature3.png index 83d7804813ee77a5751eaf28dfd249719bc20d92..ea1b113e4dbb4b6e5fe67342a0ec8a063b3488f3 100644 GIT binary patch delta 24145 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

uzzG|Q83X7;3T5B?rNXzfl`cuaG*poGncvwx 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 delta 25753 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 diff --git a/src/public/modules/core/img/og/img_metatag.png b/src/public/modules/core/img/og/img_metatag.png index c10cbf7bf47968be458324c60b6c452c5e121b76..ec612f58a8348a6fbcda344dd3c8f8d7bd676778 100644 GIT binary patch literal 26891 zcmb??byQW|*X}`i5tI}}x?7}6Lb{|wI;BIpTRDhI2}pN$OP6$)ba!{hA?`Z9zwi6* zxMSRL|GED#*n6+N)?9Nw^O>>s`KBl@iT0G>DFgyRla>-whCmQYA&^H-$dACCkR3Vj z*ZhyPn6Rpw-rl^nwT^mx>_|~vITH^3f|#a5Uvyekj%~6%QrW!J6JZ6^OhPnSy_4ZM z_ij-?#BLa3x781R^gqZyoQkDB3zHC_^~++O$xz<0Va%f-jbbZ!u5iu&8q2o+9`l@j zBB1a?RQd8F)p%U`a@E2Q$75PNbVMi<{~Td;V>~RF>3jG(vr`d32%}~i&*$wLI%-cs z*87%&A&`NM<=**y(*k07@}zh3J{C5viVVotVI z8Hh^e4^(%bkh?>K(4LAwo(9OeWhVtnql!Qj{Xb*+#cj8KE0CB?k|a0$cff|3JaVf` zeMOlr8p>mcr6T5|AM!c9Svqdn1Mgmc68+C>S+CZmiJm|5Bfx<|+EEO7qvG4i$sxJI z!pH{WTPt4M?c~cjgr5I3XY|Iq9K7dh*d8?h86)KuQGe<3ywnZ{GG?$SjO<5lSTWw@ zc_=Ie0b<=Dkwd;f>pfv9HU|OFe>a1Q;yCTZ({r<-XOcq_fe0B(B|~JPYPfE-<_V~T zVGzQKe&9h;k^UivtSkGNdN3qr&L6awc&*MsXZf6;&|WPeuSlZD6F#u%#PZxE;cz*BIqagg%-80FO*Ybg* znu~MV+P-+5LX5vJ)wv5QO}9KkX%PR;uc4QioInp9oi0>e)UI8$CjN3-p_ErNx9x2> z0fpqYY|&^ z-W9(5>lnGN?Uh?=dk#LNRRg;_rx#kWy$e1T6Z!ad)fUQyZH}4;5iK zWIqC;Ffv3T?2B@{x}SX}?90J>IKrSMLk`)#}R@E%!*d z(Bnfo4HKWBUwuyOs0IGSIpvG_Na%2^r9$A_TT??`@9mO_rHq^t+f>Am&Ak|zYY5Qw zZ!$!`UU>m7!%Laf*jF(Q-1;@o6IdWX?pq=e$k%#=)oZk}%FYL(j#=)PV`LD^BSwEr z$On^-iSIJ3s{?N6Nc#1a=A+<&T@5gslHo0?5oOZ54%v{hnY(;caC^%W8NrTDeD1x* zbY6<>Q>K9!+|53eH?Aaq?err+858W^BMt(&BR#?#@(q)#X;caG=K0+Cc@j5!Xio|S zQsYD~_IM%{g&d-4^<=g_gg+#gft-N(#12w{Ow0{2Z%OXs(L%^rK;B>#}t z?=@kcAM)bTjqTlVh-3W<-Y`6|QpCIfY!q*|VmbT<3W4~=WOb~%tZrtG8!#gyK)|G8 z|NY;v^Ee*YbcNDjtF z2S0)c88uf{RFl$ROycIWX|_O*Qk|!4Tw4Rc6Yu6qK6l}6;B$DGG|)0gwJSmWxJ2cI zmluOnZESOu>L7p?1q71H62-~*9E#l9r2ewdN5`USrujsqJqvkA}R7 zgLBqpVWL2Jel2?ABS0OB+A^3PR{W>%bdRDdvrP2*v&qLMtW3f|7oY1dW| zV?x_pjNCV-pGl79jTODz41R(DF~FOxv1$H=d3xAGvv+?qvAOZ+vmH*@(m=o}l3&>i zeNU4zK;WWa?e>wrNV%!TZ-S9y;iz#eKG838R+(BX_fviBrlxE=1509uUSzXnxQC;H zAk`Yhr_G0PN%-V7fY#6^eXtzQ%RvAO^VYcSJiyd8+wrLczl?Dp5VB&N`T5yqZ$}@a z`Waomc(>1(z+~07r8>Qr7uYnhWWYRbH?P@_9Vz1f!sz!K==e>`DnT#__wt4dClwa_ zg)QPou4|e&lQCwk#%1tnAprCcKlsZ+m_X%Za7T;|R4 zZ5B27tcpdXs#XImvi(E2U6jcG3V;n3s;RQ8edCDt<(rPnZQWmy)|Hu{ZgNPa|8E)p zXIc1GglJ^BAm+qX2?O#)BmE|$Ss%C(qyvv17mya+r3k{@d3uUs^u5+6LXJ=&Kvt}p zn`8fhcl-BhoC|@p?PLvgicLP}Cx5*1RJ#L?A%gckDZZPFUd)MWu1$AEM*f&UOJx7} z-j7TSsaLNI*ca7QH4&D$J)DHR(!aSKKOGP;a4z~|{;QS6e%J9dz$<+ez8ltmd@ow= z^qwZKWmG<~x+LwS@jA~6u#@+5sUNkjY-1U*sg6uU0vbm}de~zYyxv-UlBQ6k2Fp40 zF0Yt%TMc4P?7I+Ing}{&Rc~bpm(LMZCPxPJE_idi;~y9@T)mKMw`sV#Yun6rLxcDy zPi9+{hX2X$GHl2Zt*=M5w!gpIk==vB{h53X9o){phtv*it<~E!r>2TKoO29s5dZ@G zv@-A)DX<3zpOAiZK6NPkd+*`Sck&CX18N2WBs9sO#0OI%bVZfP#t`Ere(7l`Yp{i$ z4iACvY}T~{9v8rkmz!BV@I$Qh5gxDos17FvVkRED9Rs{j&r8x!z@0*v4zLXoJn{vZ zb`KV^(34iX!eW7|5atHVPHf1OD6-#qdZh$As${`<@pytE>c3(&zW8F1q5RAU8ICYj zLI9ruHNIeSI828vD+BLgVbA`BERV}0$h!_5yliVOVu?o@^$(@2YvN0DHC)==wA5%| z_>VqR?x|v(YF7-)?9B`Gacv;j4^Qa(GBFt$dTadc6vM9y&2DF1m zLQDyI@yux3);H6A0oF8NYPz)wa?%?Je7)$6UPB%|Z}+#sui-)*UB|rq!qKH2&m3rv z1P54wgub^sd158=e3KT#T5IfMfCoSF<>^js*%o!%*U;l9@KK_z-1^N}gM*7#0|_rz zo!Q`iNOo}Px%zCfRTHisyLAV09U}PcQadMBn_EJ!T?1Fi74b*#x0}wc3-n=D+$pw# zhFp>NGqwxC&7x9VKwZCPlS1}qdgqH=7xf>u^?jZT9xlvI7mz}qp)cK>^iM7}ode|F z-Q^d=JPa;2c;D^FN)bW2p|tRDa$}!0ZFzZ9I-0jPv0BNa-c-er1W5NKu23Ro)Adb| z{lsMj#)0pzi=}Cm7Hwv|Z=5_>lIV}fkkh95bpVY%V<9rBQ2w~bZ3}qwIl_+sTd(7Q zkRpIs*ssoVOriAarZYJ3*@zviR3F(A#>-J+9ZR;nV;bfQRJQdNXoh@oHdcQlM zz~v`F7q{v-Rit3$t+v^m7e9>(*8*KAxohM;8Ov zQ&3t&a_hsf)z#B4Pc5k6Qv>3X$bw zh^ou(xE6bGBS^l={eL*n`x;%J%-pnH{Rz?gfJVmDq`f#7#4Y2vp42F@R}JXipWCp) zeJTlUqkMaMJCA3)0oEgbiS+`?zgvrvqp~PSB!YQyFU@~l@(f~NldZwD!Q2jIp&|}) zTz6u40n3lkcs#i@uv>9VuAj)n4Z!#H0ROgW&D+(^UEhMYFiW;{$9&oZyCZ^NZu|I`uzh>%PHx@J^0*c&7HH}1G@($PoZFQ9FAjCy z6(W(ZVSU?^T^J=u88+BzE<1*d2#{2i)$}SG+|FTw2BeHGIgM_!w^prF&Vl}u24f#v z4}!>7NxH9cNU@+Sj4Bkx&h7qJqP(n;TIbS9|CgNX%}3=YQ!T=O&BRY3_BxxAQ5X zRNdb`7u)LS8Yv+TqEM;dKmaQ;t(ZS>TJcwA+Vp%DE~)1~f|nu=f^4HGWgUAMZOr_9 zW3|e3k?Vv1!dzAgP5&kvE4>kR=XXypT=7e}%zb&<2?L@X{zU_Jmu#}NDM>0lQ2|?) zcY1$UU)^K+GAG12HOeP-bT?jfW%Fms!GGMK1ZB0|!H*2uV#yLNhYazfDcs`{!C?~6 z^?%G|s6**-x3liKi{Z)1qtPBJjhT)Vxd^?zsP<)+eGU=Aeyi*6&%Mknm=JzuX~(jO z3C(S3=LTtJJj(*9CU|66f`kpfxyA{ty9tUX`D99pX25bo+1CYb}vWjYT z^qE*TjKJwF7)Ql~tmGdLo* zu1XPoHOFUo#=C};2J!QcPM=pXeVHmT5}NSk?Udb#Xulkv(n050ScSg|KrQXo2QPY) zid;689$A)#-2njjk*WFvtuHtwu&{EvIRIfHpB2%*44uWZ(Erah`V7>6a%l^`Sxl(q zQ8$gOF`8v7$-h@n8d*iO3-iDGvpj02ku~_wX2B9Pvaj8?!PY{{*MdA|Lw`% zxIsC5x^Bd=rDHiaSXMyDz9q23B=p$PrV8&11|(IB@9S=9>(w_SKc^jKA)p@LER;pq zk`FiYP!RB;=na`u_JIFrYFqhjid>+5lzh%3p!lm-gN<-yDt4QRzSVK6wdU0`L2zc(`H-EnTf;Qu4}WHT&B@H$PZjxHH=K17%} zRQEY*OMyzmhcz7!CfItdyIhhi2C= z;++rPBM5Lr5JpDvQ<#~gs8_-8HfOB|F79FNI&2^ z0)L*2s?Zrb)H>n4AP8w=`2@H67WPb%JdZ1U7uPHMSu74~<=b`(@U)sCQWm^ow}<#& zZ~xy?Zk|9)vj0CDmI7F<5@NrtF-54T>^ ztmrjzpdvrAhAI}~9{;N-n5?8bHNo4GQrtcsmPBBwM=u;b4obkQizV zt`XDTXKasQ8O~W(VmF2S^+_UEGDGWD7Fj!ABUs?WZkO-T;=|_QL&3vLy7j zUG&^Z8AYHghLzbtB}s zV$o?W;jp37%b7_Q>Hd`TmMjqoI0bgA3rvZJ4^#cq{i*M@?W*cg?aP?XR|_%kI@E3E z-R6A8wTz66tnPfMB}{MQ9!^s3#kZa;x@`_{H#zVnVgrkUrdO+RY{Kh7P){)-_hhO_ zJ~7O}9z?f1O1ZCC3>$EvG3w;uLj4A>ytr)_6EUQ#8)wa{W>$H~sfhjUx{pp`_0U4` z-|95J93+Ieo%%}EH5#TkG9e42={53_-n6?m!R}bfAdoJ3yJ3D*(Z^*-^)MvKrHMZ7 zR-k1vWMat??yaQPtk3oDPYRaL;8x>6M-Ti}jd{Nn=8GedrOME7zdrk)Ct;dw@uY4d zU+4V`NWF<9)(dR!Jn~dg@8Dh%k69HOhpG4UvETT3B@4qbV(a2HZ1Jf#0(hoe#M!3Q z+u?-=X@I>H#K?GV#lmF>M~j<>XQjX0Pm#BTNMEQkDDzuveRq=rRXoH?!RSGUR*wz0^egOyNkAtBarwdQaKV4}ZJ$_}V7YNmIiq&fsuh!i zqm}s#&1*UBKiNGNz0r?#AE|sPXCE%j;d^3ASNgcZy4GnZ@!&U8q9Mu8~tSX?Gwa@**$ zfbR;SS?ZXto}m%&GqCG(z-~W{7-(cC3iw*I?U-D=OZeFua6eLu9%T8n3irN&E*8_r z>oni@Y6@mHh{Ac{^qglFc_gczI(rc(sm{1Yb|JEK=A9?JP2op?8jwNpN6@@R_aff% z33jU{$>|<1UoNMcro<&`!bmJm(ifP4L$dbOtiNC1`+0tC?448vNnZ~{)f`_BBGqj3 z^8t@+4o!a#W!0e|OOEK-e?)*DELq~7SB#Mf=dRYUH!Y8SOT6dquoWp1Msrni+#?wa zTYF)*dcJGsEq68%N|W?-Cs9!y{l4v#)|kBU)3<7vWQg4_)D%2`>{KK(K?^C&nL_#j z&F?g_$(l(yNav;IMXdlx2IebtNwu5a2n(5qIdQIijUrLx5O-tWtvIa~Jn8 z9KO`gZ5ol$%s55cnQ0BEU(p{iZCtBt=~k}G)x*n)hb4Tm%eu~6R4c*pV{EL=O*T>t z4(d@$y&zf4D8X3B=ZA^yQRWCj7?gY+G}-(Jj4{$CmOjgwORR2sJf^K@w#2n`-%S2| z6Dwyo_wx--(e|gJYTM^gf1rZAQzp=i2trA7c*qt)GbM#)*|v@`5)F@h3tzs!k>beK zrmh=A&&)KSx5CtD^jHt!E{y5hrt#2aiPe!vNh+;hR-TQ|ZPe<;1`}|0f4CW=;rF!R z!THwHu<{K`LNOjznck{tQegik@qN_Iu3ABdl0|~enFa;c(=J(dlJBuvetCVbH=4OM zenqDL7T^=KTL~Fuzr=joVC27MS~$&jU=dvoj46cn9GWLrV<=a_M4PyP-fV!6L@Rr@ zRxP7mVm;jYlj2d1M2geC~R~jxh(w3m097>}osl(`7yW0q02wf}z?21fYc)Oby75&Mj%`<;7%4IuJr%6;7?pI@Z>|bFz~0XGBCs5}h|=zCEH#(Xfb2(X;;-Di z-IB;}JxlYhH2J#9Qg9nBb#IB$Tm2wIR5UEI8?Ox(vQzG$UEcwZgwV=e9tq7Y{|w;C zCmy%S>BkA`1*bcI;RDH^ALpzrei|g6t&yIsvwzUsBnR&Z1M57>&CfgG@O09mllgs+ zpzd?A@xtK+d?hkhWCXmjuUOpT#*D@K6cj7mXjs!ED07KD-XhgG*)!|G8n0Fy#_L?Y zBPW(lbDo&kfVa}@I1Heiv%OhJC?XJDY*F2`w1sXB+xDY`8+`T;rsWW`^%t|+(da$U z%0Kxgbn1C()vL?1ykf>fR-5n%{0R0A@Iz^z_qe?>fvaM)*-WC&$8}q`sKpqTHAGuR zDu+Z;i3EA3C#ki8kJcyNy4h?nP<#1!RHCA)M$5p-*7` zj%pmBVhFe|Ge*0>An1X_-jLFYz4{Xck=CR z&JZB`{d%6Sr)iB$?;m1fw4O;Z&IgjFMp3aQ&#V3$q|2m*FMJK>5##^@*tk`|Abz`_ z7x&&Ag>C9b|8i$2xIb$d+8(-QKb(!EjQFxB8!GdK<5~0h0Rr)hcX4InB4O6rloY%q zV>13d%y+`4O;)o*q0sZb#@z&JQ2Y4N^f$td9Fn}#{1$e5pT^W9Mn>Q>;k%PXTwjT@ zN%}nbhm_W)ctv_f>tQm?8?@MFw~aVey7+w#>v1@YC{9E!hef$P#n-f%o4g&Z<|$o^ zrsvdNy#euq!|(u(%zh+&^qc$L%EOp`fs2V2r}!hQNKv*D$LHRfA`!{D`;)!vXCIcC znUa67DPjd#pw0CEkaah6^K#VIZN}Q(BZM8@Or$h#B;drwV}IeQ9AEJDPB2D;K!%~U zlR&jg2?EWqwQ&9K-9uG-y~QZaGuNNxpPASYcm{6nH#SCo$=uKA-6&=%6VV4-dUPfA7OFy|aPb z7JFSzC8O%bmHM-k$x8l{73rAyY{yn_+nY+H>R;UVS5je_0Dr?!!U+!Uu{SF5EP)_k zBWz(Oc_7%{h%C|SP3H(^u{cTP8vU-Fz__8Ji5qU-p;0LCDRwj3AeC{AE9GTb+7_T> z-(nr%3>oiX+uI}ECqdsyJgObNf|Di1#6F86m+8l1*Lz?7nxr_UtIr802 zmdW+7ZiA1HKx{3%e&T+KlF(T`mvhPtdft#rLOLD*RW{i2+5Bvbyw%L}$JJf~7X@Hv za=OJD@Hk=(@01lm1X4*~MS-{I^2ONhjqpd29@3&Y+jF8H6d)~dPQZ`AA=O%>V!z$j zwQ6>mBmj9Ta|w*3!9sjESmqNs56R8+!X_2=Zw%j)UyLL`WJR8MAGB5)6$pCJ4&Lhl z0{&8?OO->HgTwuZLNEKf{h^zBuhmc6?y2Y~%@!6?ZaqHPtjS|2zhwYO>ryI4&$2VN9wwqR zaAXkSo|8tM@h^B&?GlVd&#qa-RU(bsn%tH`BR0i1^M#XM?KHJ8GMvE@4x{Ls@py{O zB%fXW2-YM1S-9m^Du@@J2oOD1TRPFjqf2R`jokLTyf*#x+iG1eLHfhu(?3{ z#Ch6#g1sls>hfWIW?kG(?bmIWKae9A)34gN*FSqnkJT7mb8IPQVm{hKg!8&CcYKbyJ(OpKL8!*>0B*p`Ky=QHReQc#@^J)`b@s&x?Yf)SW3so0Mr9ILaQxfnsJls z;RONNsXnHAWmtmP&t_9~_GwFO6!G4v(Wpyq-rT4{8Abop?Z(Z#S%;26v!5a%s>}~bG@9n$a ziA;yU;}_UPm-yq6QsdpSYIK@QG}B4wIaiLc2yL9lq5aLlhdCvsLw0Hbt&W+_4lTBD zUJ{}o5nw?eYo~whXsynHK%U%H)asBKZ=~11v>z#lSFOF{9UeTxb4tJ;Z-kaFsn1KT z4v%f0F%2$L+oYtvZOJMp9I;PYN7IkDu@;S<1w!%nsjSajr$xW4NtB=`4ggsltZ+Yxi@_jNS4`Z;0UKNXEkMz>2dU*9D`<(jyyzT8G6_)sc;eh*Kb9Pgk5b5CL^B>)kPjDAS`~q zL^@UW=OwuvPw-X-tzd{jB=ut+(<^8GTu*{Cl;{$drXy7aGhEJ^*?J4$QEZ|ru2a4h zGJjHc={#s89`4tK=`(BEC@6|-zns}d$to7Lbjg#%pD(&bP2KnWahUzBm}2JKYMEfw z)_(SiEx=6%^xuBRe(fF~ma$6KX; z`6oW$iR1sw8_2NBC6#S=Q**MC0Z57 znQIBlpwz2pT+69G_(SEnHRaRuJrviu^!kz(BTJBcOeF)I63brw>sL^#`?q{t`FS}- z`wJyZZj3u@l9RSDYH&$vUtGTl$)Ca0b?^qh>TljdHhKR+x7 zd!^7pY1u!~@$Y*g<7|Bz^l(qqB`$%3FH@3yWiI zwcQ~`HtCee+BIjXPbOOay-wQV?O4I}u=JB;TP=c64K>_mBqNv2tcyxzhJV2difzXu zsg9hEy9SeMZCu+M6LW5k>U0V1te+u3ah2Yt4lGysCRrrdQOd(@=`&De`1db>9u0z^ ze>4-9qTbzk&8%EVpFK>kf14WaxvJ?m?AXO#4dIe2DMxL68drWHdscC1D<$1R?Wh4y z_hpekCBhu#8ljv*B&SiR0o{y;u~wv0GGWb{)N1NU`0piYu}F) zHr4$NLRVATPn@m1aOHAYYa44RYqdp8Mk1T*RuS&#*}Z-h9WT%FWo9x}7O^JT(1Y*= z*e?|+gr7-c@{QrFBW0+8mvtSI8An?2S3J(Ph%|+Ua$8T8E)W!DHh$5bD~vrZU~9{5 z&&q7&JpU9y`gdEN$e;KpQg`+U_c0{Ij3)xH!(2&wn0A~FZxw9ksWsiVrtVWdPG^zc zQK&>byOeQrwmXU^%p?M9`=O9)NHbrbid_DX?Kx~k`6!Zv{k^veCFMLNo|RlyYWqyL zK8vv!{oklUL@s)gx%ide*Msaj*sS(-;?&|S^&yIs&O2kbjxXZ+@Gyo*{yT^*j~CWy z{LW!nY?>fSERQ4t-|G0?8}JYqK(*cIrf1Q81R;)XrBcTIR9f|WpSg82FKGl&>t9~J zlQ8xW!L$5jQbsEBolbF%JZ;+v!+DO(1a3h@@>tA`yM`^djMt;jpkX$1X|s>0we@1m zB6HreVU?=kR3O2M8{hZBj|(*T5T+=|dm_~bLyTQNDaH)$#tZ8*hC8E?OqId%T=_uK zNBz;3gSpv=r`E4*Nrnd4m)@|lN916^C#cOPst^KMIM~^)A7%z$?0v?RMb3zzO=>h^ zGhvJjz^iKqcKpDjL4trS6A+zDZ!vhHIeB((*{7S-@%>!*x5fDH6J2e>g9Sd z!B;tVE!}7TwAM6=d|y94pp1xG_)1QpWp#h~@gvXTd+wz^SVB7Gt3~xDcmfNjfC)D* zdTTOSPF(JF0m@h0s3mi$$I)Hh{x{iM5xK%(3^V33-m zUoi9px^rRf$Rm5-h%5heF>J)*HsRuB7@L$lM@luO&`~MzZwa!B*rkq!lf`FDp^!Ej ziZrBz%&T{s&+05#YI)v1t1G<^+O>VP6+SYil(qmFvsgChI=>M}!WnBk4YFqWH%*e# zctuS*!J#_j{7Lb$WAP!-n|XgKNf#SbEe|o1^Y;c_rajebq8X>ghNbqkriSIHk_nA7 zKG~zh73$kD2BP&F>9(hX9r2%m7zX=@KT0S=6J~cVx&yv#qZq!!z8@dCYdZEbmiM*V zY!UD{_{Bc#OEH|XJ>wx@pD)fkDVnigUTTd0E<@)%m;jvieSMSY{8#ST?BCi%`F6|}<(hx~YuMIHP&&%mjakf@!HfE}KNL5mK7=DuYA-jy(6p_*BQ%YQ_avJ9XS}$8!bS zyRloVt)h)gN1h4-)#a%7Y=q4g-G7IF#*97sCDr7f<&cuK@7{L;;xGriTJd$Azeoza z=znmNJ-1^VO?X_UrCm5kQ*rDV2tWEnB(IUsNFCqN@}Gh7zP?R1iStP@d(&QgVO5Fb z+}Qs4CGvoVsjxZMtOu4!ueHdhlc9-{4VX(Eg;$N>93p+%q961qDpPZ~*4r$ls9JG2r(&n&YA z6+>6p8R~xXZNTFbOZ>7U8;WGWG@Cx=%|Mw;ptdPI!JL|jpDX7upmIPM$mb(((tMf>j=z3YNVokO7c7d_afvG*i^U#23ro)vHn$F+2Bw2l z5yXf_BguZ(c-7kR;OnJqtlFxKB%x-L`?YJX&4-?|M0IEL`|@%LEM!@OqFLCyogy8+ z1KiQaqQsLyQg1j6caDxOJB{_fyhNsamBd!kM-l~}7w~U9%k`GI<{Nf?A12TRe+JFx z{?HBjSa2SAv~R^+TuX22`feII-kzOc=+Iq>)1`w!A2F_>l}J+f#Mm3y>jyf{teo^(QtjGi8+N_WnNM-Sj`yuiR9rCc6F;>U%f# znjr9obaPv@qJx}5U&j{)8VLO@u~zVNb3j-^{Rc!lHEFWtEO_6XFGA3R6DBKbDv>Ht zBE7HnF>Jl`9rs^=EvaC)wmlY5u=O@5rr}t@y6cAX0muN1(+)}|52+iZYc?yNEehNY z>ffH6Kb(!KKiuXS`Ia44KDaEM87^kMm*YemM|TgKwvM6idVB|h#TMuX$S`FLeY zifLI9@#5)>ZvE+lR)g_4v zz0oGKbpG};sKsvBKPIe?z~sWn>;#7%W-Q54-E$55$w&&7Yf%$R)2EaL>Rjg7gIfL> z5;e7D62+GL=&rWyv6}v2N&G(xTig+;!uQ%1du!xzd_8uHQyM(Id~IXYt$X?cZ&Wf^ z-$*$juA=3Lq)Ck-cXd*fWo$}#bhVcMFs~4}`#SHrdG{hC`kS39F8p)?6I!aSr4IVI z7ifJ%fDhbDgtLfqIeF%xd7L%HMsby`6f&KlJNSoS>>mvLB2H8SbDX@?xK-AZ|7y1g!@PZG#v{q`9ekGGTtu-y zI({oz==LUT6HZUE-w{BXCi^<_swvjHv!u?Q2k$E<)Eb8w~(F(c3Bm{qzzk4M%V16`Ohk z-*?dZJvbDg?uhbgI4ekE-lF7|G3OQl zWEpG{g1wQp6nG8N1HJ#wwG8?`QWaDoZes8>0}#1CfsTRM-FV-}ioOP~RfLZs^O_|v zq)H6xS9Q6H4=B9HqbjNRoXfA7-^Oi_&R7w!aW~wn9cGo4$|CqBa96p{$!qokAo_Lb zj?ZbZS0Je*4BJ$XJO?4SFmlcu+e0_`bFsu;2p(Xmex#VrdqL03KZKGl$@aHJDlgSy z;-A0PGn4p9_YVOU<(mths!zZBygqp)dVMc!7^Kjr6e{oKiU~-bU=9;$>U|J_+d9{Gh7UafBd4{hZHSw=0A{ zXL(62QXkeK!6OVNGJ+S07XeDI0DXhlFTGzl;%OeJ7Vwz*h}=(dWM;AWpb3BPVbb?@ zLDm7wUU#U*Cq8(+(5KFc?QH~pUo}_gLQ@>cm2KpS@!3J@WJ!>o&d^YWs#wF?nA}q= z6wkiM9ZyrdRS6?*IU2UMb1$qsAFpU5S-jU_VT<3T#-91YE`4c(;0*E!^Y>yQKivZ? z=HAi!!sol;Fio#tmS#amEazg|)R+j=yln0P~Y!KEmrT($tBTT`Qy*`c4t) zNF6za(aI6G6-#@#J}bzt4ckrW>jGO3UBT9bn)Qd7Xg)@ULL@RYn0hSox`|ii6@ppC zl@j9)-IJ;Qun^yDiw>}wdK?XqCf{wW!Vmp_WM2CU682KuC@HG>_SCZQ2S;)|SbJ-} zrTe~(fQkhBpt2S>btSCO-c!!IpVdQ!Z0m%Nw4u4;(UkZerdmgAdQg?`jrp<^@0n`3`P1_p(l+5AzA zLkx^nHwtwS)PIj|wl&a+t?|ewza>P+FuI<~O@h?0S%!TL<+0$kk-gRm{N$k>thOQD zg{M@`c;062akMhNa1g`CM(T4sZYCWMaB~!?EpUzX_$a4EDPp4{#zDW~?XBXZBnr^U z@j7BFzXGulLDY*Ie8c!e=!iq#&G1P~h#rTQhs86fM(uQ@0`Phs{`ft#P%(N84D{7N zzJgDOJ=80`bbf9e(S1KQoq2GN!wTcVv5PsQnSx#KaZG%FQCG#eej`uZR3LeR=sGq9l`F zntbrOpEuM??ClaKL)=On)?vmBXB-(qcHT9B9Vqsd6I<6?Y$xby7?uVOvJQuOarjU96feA3P;^l+MpwJVv(8$XD)L zmgmi7-olgE-D+5MwC969XSnt*sqf|4z{Cxkc!1i1!!N4I$1BqDFQ+B1U%Kj^_C#Z% z57F@IGcm>y^$mnfA8q^t_Fr^UV>&q&~X?QnRIr0^F0iyp)#*wykzL1XpfbG1_E z(f;GDwS||jHm&17xq4DZ>>}K68S_i;Kdfjp*s@4>CN;On{jtw5DxGW|*HS3KAgmA* zFc=GxDA@S6*!=?7!Om<~4d*809_6E!s)o<~gaaKZa>p4Y30o`N>`y0Fq*;$e_%54= zbGl?unPqzQA$`%KG#zrVwe=sX%Y$0BJ=h6U0}odxsj^`wpRkY-w6^yv#O#T%-oz25 z`0iKGIb@)pGLEN=^_l*PQ7>}`8?f_sx@6|E_C9k~T0TtnY2M1le?%^{**@&U=VY(x z@+bGFIkb)=F1I!%0R8)@6n+@3y2A(^fPL*7)5{i*rTX+=xG&(y{Q-PXU1ERzq-Pps zxyKj>8lL42e(NToj)SCrKLLM(`K)g@Lzl~B&HZ@g+;B2o1W?zNHAY$i)8~9gPwvLA ziHStj`+jAw%KPy~>#QZ13C=%zWbE0w(W!&PVd-Y8aY+5Zdj2Ppwh}r2HtJGuZh7H(e5?RN)m+EmT zJ25g4Dg1FLo~q3KF@xea^Nm8GK1S9&lxJKxK9n$R5JSXyll`a6NyNrCE5J@7ZkqfW z3uOD{790B`nT!nlp$f>**O2y%vVKJrxhPquWXx>ojAWmcz{Uel6OLVIsWV)!5b*#L z8tc~#RG5#(7KJqlNb`m$_Pws{Rtfc1t5JD!Cqe;)b%8?(7 z9?AD;3P&L};ys8O@$Y4fyNYhJn&AiI=oq}*Y&nnSLo-@y#RC949j89k-7!oHS><6r z_m`{_5IKypNP^}4bX)mHrp~?9ZGqD^83?kqsF5G^^kZBpBZF7vB@?rJi6$=PF|Jng;F%0{4ulw2%iPi{;=gp>?xtv9wSysc;$ z1zGrsu#uTb{UUqHihoMc*k{O;hPrR+F*yg11o~jA3F>hw{6Z4(s;%hdNJTW@koW1Y zMmjod_I(}m6z4^>!qYyaR*6@Q_Zn}M8eG&R;IWE$m%7~e179A#k?HQXLeL!R0SD&A zO*O$Mmf&c@Po?>+dm4#&(2+9(B89b4M9A++eQzdGBszvY$(GZ}z*C6;6O#ZdB1_t0 zVgsD8b4OvNj!Z24BSmeOo$8O@h#zoKw&S|TbFz=;d6u6ADRqp-sv*%{v;!4FR^(f* z)3a)9x0n>#nsnrUf&4zVV)37I|59hz)*EhBeXnX-E`UCq7x_8<>d}|=Ig5QMFHg5T zQ%bsXAjjr&Qcl1iJ|A;my&|$V?!1}V-`k@elE`WY#5mD%VkC^GSrwMwFtd&Z{1-S= zNt182M}azZTfuu-_&{b_xuT@BmQ-xwYa2$!x^qylpmXR;bMRD~Gmd0_;i& z)C$Q>Dn&@bw#<`dAg(E%)Y2;{Kqg+5$kNl0+dnH(5W+bg8zCHz36K_n7 zp*A8$c9w2jk8xqdtu=P-zuvmdN?|tQ+nTY$F*yjX!aKHz|aDle47FW&)MeGxI?2L>WdFd80 zC6svBZ`gHlL$r43&bq$9HvcR4g#*2h%89jc*TX&8xhL|@$JgWNT>l_HFXO564SpKy zM44f@N%5vaNpR<}7$cZp2z-pdW@)6;eE!}rIfoZ>2VrSqW8>`T;9{bm=Q#7b-FK6m ztp@6>nA_mLeK!$EHVM*Br-DZ$p^4E!NliQJO1F=9}^54K)GsxrK%Jx0L-m^eNxn8K}V?zNgy-Z;!!A7@nrD z^4PfJ<{}E0klfKvyk<@y++{O@4Nh=uZ^v@q(Z7-;8kbWz72^hj5k(-!bXBU)@@rEj z@QyhjB^b@+L+y563eLV?|8$r^=V0}>^fC}bI5I75Ht4TlrX0s^UH1|EP9Z=(Ha4Z` zj5@PJ*WceW_d4TWk-x5%H4()Bl0%*!T!+?8`WSiZ4%YFV1}icXd~85ftq{}InzG?3 zfqOZ8^$aCzO`kPNqmC2>WV;c92z zYHZN}nvzTNoKk`C?%w1Ke;O@RJe+VyMdsbS1#2TU{0BmQLdbR|W4$#tF(`(ZXJXTH zQ<&>Y_{h61PpiZ43J0*yX*(k4?P8T1k(qvXz(66YkOZhh;&V>%9!kMwbr>)lyWI-?Pt^_=rzNC9Rdl~ z0S$CJ`8F{cE^Tc~{@jaRtFH{yBd%uCG8=2n6}4UJ>K&YE;*_-nW2?W8Y=MsVhsI5}# z8dbsYj@J?~QRuqLaM(%M3uNI}z`-1CKJgZb<9Jx--ktTRvx&wi{QRWIt+1v^01c zD&RLO^Dr;*xBnDdtx+Oii>%&gvXxz;O{}(`-EO&2es?+e*yrV1U2Xb2mHxX(5r(b? z+@IAQTVwwc64v3xJ1TbY3vSV*YExDwmG>A&K$dU^ZN=qy&EgjOx;v!wrNY@gAbi@0szyJG*3pmd?XXe~< z&&-Jl*56l%S08~7nkiz1zD2JliNJx0WqaaV^b~Y^GdMkJ2;3TPy{Mn~-CU(#^US*~ zq1%JlfP8}__us=8iyyZwpoT9~-MyxUHHYj=>RR0loM8qAMXH3&awD{;n@H>5`?^** z)Wor{;Fi`N&lM!Wr{AmlRsV2v)9LUgbQ&kF)PMmSW$7n92F&T>3J#(~9^92q058MY ziA)EpJc(khMORlJG(-Lz9_SbR3ZM`_r&ipi6@0`tmc`%Ul7-7A0H8B}_}So=BYcwT zn_gh!Ona+Ya$w{p6hYryF8;b%mga8l45`OjuEJ&5;Ozf+<+~CcFIJ!K`E&e_FMsEv zXX{=`Q!+3G)o?K!e^D6Kz~$DoLwKqnkFxB_5tIIeNH(b=Nc-N6g^sf# z?#@GhCy{1SKXEpQ^-I$KCXTi~Ox0&kpV zX3)SJ5ILO!hwsWi7SKc~kHHitY-kHms1-k;6<`&HoTxRwnMMv{gIL%d35n^A8_4GL z77n6;{WX#PO|~52XP7?!>Rxi&S3mO=T)Dawkm&Ii^>0T0Hh70Kb+Y3h)y&l-{YIm|7Wa{=|Mz_7t!S;;69#HvTLLQ=HJ^u}SA5P17{ zBUjW42{MO%&8|ID`g32YFEoPpsp~A300=kn=cxY^|7_o6ebY@bC?rsJ;*!KN5zhp& zmN+K=Go|CZmhJq|rSK5YKd=vA$nR+STmyeJQCs+~UU*@Iq;@DJOeE(u1Qf$R7Jw|V zmVb7gjRP5wd7;f(H>gKe;QGB)A1Fhz4FWaT4|F38768VjPx^y!*C{?`UbB^OH$ zd_NbY69ygjlqs$QVF}0Ef&I}OZB!OqbM^@ z-JwT{@gk%(4pul)ZCbG8UPEuF0@=FKn{n8gFNHn*BV$J3%|%IRgn$cGFPpw~`INy)Z#=;pCa zuwWi=sasL*^{cqt4&mwRJi!381eU+#z$a6c{@1MHkOUo5myv_OWCe}pgrH^Orm4On z$5W34J(*Di)B(rXKz2`PIe+}b5bC|Zs?l>3-9K~SlO*0@2%tc(ZBL2!6AWkt*r_R< zM#7t83N&kv!l|>hBDc8LFY~R{{7f8C;hA~hS@2D`egfONse)o>NsY^*qxN2UJ>zch z{6(`tvVe9E2*sV6vg0-dVm3#GDT-8}OnEL#KOV(0MP@Xon;oi~cKWp8PRxOLBe(%l zB+}jcfzrdbiCj_QxE7NKYzXj|a;EZCf@l6efNHatu#ZlOj+OA#taD+5$MP(-mDcV! zYY;!w%YvVy0_1_vb+759`l>bva=&@XFB#a5V@-Gnc*^j-vJ9I1x8%T3t`JucY9*8% zE-rO-mMoLp16H(bW*C9VXW11p(m%EO!oM9}ngLAf`seJVR85SF(S5b61m}%&8`c0hh;(#xR4$WA+rG&d7*4uG<&i7y_2q`kLarZUWOp;y> zBs@{TJ6@#N!`S}X@7@vf$h=a?NI{umA47kniWH42Wwf-&OJb}4980DA$r$J9sZ!Qhx+F&%%^05TR}Lg=OfzRFBBGb%e~9n=5|ZH+&NKW=#qwDCfGLY1GVqkk65NF3RfSe(aN<|!d4Q>x7L=!z!I_aBBDmHZe56mLTx+u$Pp~7 z4DdZf_}{=4cRc4QprBT@vJSL*e@bK1^+E=b9LGRNn<-uWi`Nd?%y2L?g@(FtXf1)p zLl*^pF+*$@&s6zZcu6@%2TXzPwEs&19mt>@bm)eFLYePIg+$#ie0f`Sv?v@H+tN%= zGv-O4nfnuAqV_*V%Zk>T|NH8xb*I;$AvX0vpY4w6?BpZ`3B1A)Iv32}7O$;h$@$;M z?z_6EF^h+LIgUE0jr|-}VMh|Qq}@Mtd)Q`tulOdPvfCR!HFmmH^KIf;8Q!m6HI0x( z8|LBsPxAj3uHmF`X!iuR7ui&hHd1ibRG=Iq-rlqOQ2h=GfFx51mSdvsTWiWPmj~L4 zp(g1bJ{iouAbG5mummAa>#TZnZYnXJCGlD?PTl`za8?jX_fRU$^hq;SisfI=i>~=? z1-i>jvo`fHiD!-`GZOJbe?+40Lo4i{P@Tvdw77#e{u_w^)Ru!kRGy zxW(TU(?Ox32cch%kIi_JU(#OCgTKoHzE3|M)xVyitDb^I1m?_$6kmD8K|)nd_S=~DLcf!pO(Vn2 z#rv^C)8!VIUH@k9?aw%I$x%F)sKY3*XG08y*1^FbDN#FmM!(6hfJ0JbiU8*nh)M2m z{z*`P*L^w`_}9{9!S&=!Ar$1|(CJwQg4XIcM|HPMYw`I*8RR5f-S=*=Cz}pxU5f;6 zo=!8W|En{1$FDO<@KuvBsjeFfjrR>>A=AFiQD8mHG66z}A7Xx`lgY_XCMW7dmX=qj z3WoUDqtjD{k)x`UQXg9{cfS3q6_%oecD7zmZ~NBN9lU4BiN3PN|d%g!NDOsLrG92ZvR6aq`tNJ>R&z& zx-5W!Vcl->Had<6{}xW8u2DbO=WyAkX|80HGxW|ZJVNTE|Jh>mf(+xUt`Xzm44Gs-qE}-a7@5)3pp4l_dscFd9u_hyxf>)fDJ0FLFV%G z%pAue%FQse>{UJm;b!9EIn!8-|LVe|rgtQ`;!z**0opQ40ZkC(aug`$_~6auYhY8b z&Xgy85U%XJ2;CD7IvrCyU&+IY`A@!&1N0?mB>y3LHHK9$$C-XHyDpf|5cB5GEdYKw zQz%LjhsbQFsiV~r1;U|$Fr9_|!?XUi)-2Yj)R)T?#4KRS&@4JlZ$zildtnI_q2BRG z?-yXfb(Iu}^o9fJ2KwO1OUScOO8oZD0iT4$TnNsU;IEO8>fGGpj@KkHe6Qu6NG%u@ z5!&+p&(VI{Z{%L|O$=9j+n?!uNCk%<&8Paei7;@YbLD^Pv;zJs#mAY7 zD&!^W%V!!PfV!X{!lfpRjDwQ;<)M$E2-CfEPB(0P5$D2ipGP|4;_m~Bc-jX`6%hwt{bj>BLNlpH0_T$A0iD|UrDI5 zH%6ET--p&j#6~fZ2&PtL^ld~FpGrxIN|M1&3<|gRD!ADWzEDykT!tr2qhKhn0Z$TF|jh;Ee)7B4?i_ z;b`uFLh3_$kQ{a6Ix2qHeOIar*OeByn|PPv2`x)+1b_c*=*O3R8JP^twpnZH93VnJ z5QA45);oHiA$oD6v*O}W_eI_HlL|+!Vq$V{oJ~gvepWcnU@oP&2Oq5@&z(<54XyC; z2>7VphQ+JCy|ht8SFt+3rVd0n4^UX@PvdIKF^ey^PSig=PFd~ud>cQs;YheJFi$Sf zqA(|qi`n7~6F#a$6<=Avl_cY7NC{yd4#*eQt z(CNBrcTamu?I?RgAHIZSc+<`CFqh8d9~D5qwkZdf>nZ1N{;1@@H^*;xY1_|v+xK4& zR+F`x=k;z@7yPQlrSf&x&!J%UJi>Moa_U8#!LY=mqWiILeFK4LtA`O&=}Tk&KFAM0 zj9$HYy2*YrBG-23pMol8I_>+do8fu+0o2L%%%*?q1q#GUn>hYCLRh&}ffFRUkU%Ad zl{aeQ;qTh)!~i=PrVIW|)3Zl>{P5;tGjmId=#)rEy{#Qbq#;yJxpTcYVyLSVWiVLL zAWcyLGod7bt5m>tDdA+3Iw?IH+C=}Tbj=@J2V$I_u8=R&HV<4JDdxTHZRqRK9OK29%V&NZBND)`I!Bn0I=XZo%%v{XOzo(0YxzvMFK}q(2WXRuAZp| z>WUZR!g)(G_hy~n(?;o~{l)rG=YD0cH6?{P*A(53*#ujk`n58871_AC`nj9~hZe@7 z4rcx?W+!ZX=klXr)23#6rKdeAUe?V*C3F~oun)`XA8;uFGKpG^99}Lj@EcW$?xsm> z6#W3456%5dJ^@ZAnb!dUJkwzj(G7MB{5Vp1ID%EnO5reV>pR=~N^?gTq+wW0m7pHe zO)mgTit%Gjb}48C{9JcOXkkQX^W>%kYt(uo#3PJI1HFyW8rSVa_+Gh5Gu3MCpUuuIhFjf|vYFFW6Wy_aTEm_>4GF~Y(mXG2^A}&ZJn;Yq#s9hIJVmD(yR_^Xa^_dyQtRR9eAnoG*RwV123)j~*W=_$B$yr^ruX|&*+ zjJ)}%lEl@5{-5Z1`sGdXglxzEwNftGg@Il7@3>ip$hBUBV_I z@!tLL_i=G!S@A>ZBMHB`MBTYt6AzeX7yeeKf#Zj=6$;`$RFq}>ms^C|$L}SzefJ3o zgNuHyX^n&Ef3b+C!MOJQP%zP17BKvQw!S!>KRAZX9WKI>_Gb{<_!0-ZsMh;6J#6g^ zqf3a0rbV??$1uL5|79c`Qv@sa1x-nO8GZ6#Rlt6%(|lCUPszxsKid8!KVCxOtTTmX zRG5TcJ35Yh67v(!2H)rAwTowUbPfsK;9K3k$i#q7ot!O)WdV4EV)fzQI>DM5Sd>qv zwTF+kSD!_(6d2|EKJNVKnqwwq1t2P)03<9UgJ(!KMbsqy@Ek_Es39gG?x*`pNF0YN zW&3X$DYk8s7z-NWx0smNBKxiokOD3B;=bSVTW;25q#`#d?IwO7jPqqY1ar(ah1@As z`lNKIeCwInqgQ>+R}7Dmz9gFo0a58u)&r%I`ak=$Y#V~+2PM_9(x;sqy|T~4wHP^X zUc2>k-o1en?=4+GgKc?>8IjFhUkO(*Pxw!l7X~(?fI|(hpi`R!SMY77l}H~@D@;-6 zQJKEL6hD4DDa42w>Jp<8aP&;JghPKkn@PhE0OlKEGySXm-n*ZN54u~n|4jauz$dd52F9Y1W2CBSSGWdM(-w)%S&@CIErVKa-GDK{i2k9rYLYv zkuSWy*Jrx*{3c4{{D|WyZAfi$dlFo&rV9eHvFpREYyNla7t=w<&z4+iLO#yog?}tf z?1#Y0*u>zAeHnj5bZ)4Wv5p97JiQsLN>JaaS@#(Wf12!WS<+CTf!^Cy%lUlepIZMybM80tLZ^kmH|R}xmSR8lq4 zM}sckZ#&E1zDpZr`u^2;wPF|xwh)^ud*@(f3aw~hVUNF@K+w2MT~VAGX?Gd}lUW!GF~7*X-Ul`s!SFcMr)ZcaLpR3Y3XyainDwR~CiE3YW#IsC@pAUX|voS4l;%*n;T&2%5S}(hk znTXHZ6E7CsWEv(;7tK%Fs$M(=jyGzf-~0M+o10&p@&*ZJBd!};ufJ{60IxQfZv`G9 z=6+QA?w82i-Cnf5A65!f6a=*u{KYU`*xxKWM$>P~k!C{Jwg`Ix9pnJRz{c>$BxlB-b@{~(-|(}vgS8DcM0*nV-9402T%Tn z)9qAV?rALhPP1`Rwh6w_o7|MGly-s^#uowm6=hjc1;1 zww~E;6_@W|Fs)}YWk1J%(p>k-1Qw@r>xJNivX{<3MjvO9NEmR#j{JA)yS4$W|^*yb3Th9)6u2-k$CW={*lk+PV8Q*ALg=gYF`J6Ri^9!f~jNkX@ zGV^R>>6o4y1}oI_*)QqgCzrV}-BzLO_>+8TbP=BDoga>9)i?B6-pVFGX5`?e%!0Bjw{HM9*|Q1LjYLg>!9;DSWGOq2SxV$^&m8R0Kc$1*X`R5pLgS_VjpWTF3c$zp zf-`JjUsoh~EZLw(rGzmoTo+fw4-(U7qPE#LAQ)cdR#m^HzJoK>bPJ*iTk?~KS-v~Q1i)3a;cfQRA;&}0bn*3tysH|zgN|NGeV*MO?>y& zafJ-a&8tgJye&W9W9-#NG6ROVMdMOdscqsN=MCCabrBZIL+7$ zKX3LzVHm83$xMB25DvV53%1%qpPurG;=OZs6xt@pNbT?7=H^a@q^HY|!%1Vv?0t$3ZOiEPLD<#Q z%uR2Zf1*SaF%d3`|nUe&tgEC@FN=BEs0zrPj%@!fciqBh%?Ql&xwy?RW zX2;w#y{A`t?^H^5C$k*0Ftzm)6v z+96+G9vR!97#R(1P)FAyusNf;%XuTr;ewP#g1V*@+L1srp;+52Nx?Sr-_ zx5M~}d0!a$#_hkpf%mRHwF_7uDMld1zvo(lA<21@P2;JNYmBJ+nXa~pGy$l3oico> zV`%m+;2KqQ%BLe_{_q}5X5G$Q!;lq`k3Am_j#p*F(Ky@X| zZ2c%6IF_29P%rI^D=#;7|D%vUVxi-7aJeQSCi0QEk&q+N$+B#vvannN?|UTbjk0$! z=9eKxN4Qsm5PhjkV#}_RCGm!1i#=OUNOaY@yYIsc2t7jp2YgVyTQ!$42$A9JwY~Nt6$d=j=}QVvIy_nmP0hUV zZ5MdS*HYIXR#b442d&;-`NE>9YR{kBk}^SJA5Uy_w^=UpOl0&TpY*u~ zJQFzIB7JTHCEm;}V!pVQWY9AW6fXNc>tkE{NJRc~N_v`%$T#|AbpW>O6+?sQ{6~OA zAw&9d`ob@51t|*|x1C8Ffq!<|>NMYl0yiDn+{l>dBH%ai@TMde5+8cV)d_Zl?8dit z{r0BS!{Jc_G`SHu>=Fci!$-?>N*n^ToVdzymFw(w%mw-tw9E#&Ls?H#$1#5~EDfu* z&8xceCsP)%Ot8*mflH(L!7|<}+{EIqBb?=u4`I{K&?8;U$wuVqnzAWOQoyeIAe zG_I839F~dyc2Z9?`<<_K73!Rj0LijGc;urK=cAn>bGNyuwo zRq$|E;-@|Y_Z{FFPTa%8r*fjHlyG-XHXBrhm?7?{cz#u<;xKUNAnW-D_dmB%BlXUg zi=9UrPB3`s=}aRV>6Q|?I`xK};nJJ|?)Zm`F;II*-1XTX^xjNkF*5%hhF82q7 literal 33207 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 d0Ljz!j4?wf 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

  • sk|blSTTb-0w(73sRiCUI25(FKik z5OB)V&B_a>`<)*tl-U=t9wsXho$k^I6mm#jfE06jVbeuzoy`K!iI1jsN6Ef*HpkCp zVzU<03VMBh%%lR(mFfgZC$QJv(A&(#e(CLrh1FwOLO_7WQJVqMZ{=*Qu`ONd@ zw|I*2I`85d4ih)dKyph$I^VwFTyjshFMtO81SK#n(f@XMIJ#5%=Z}1rg4hhkOBiBa zbNTvg^@dS!QK>K!b>=R@CFr*L#^B?4Bs{VKPgKlIoY$7;S%*jRMoUO(tywKL{+tqIUd2(*K_&`uwAx-sZzmND_Uk0k8b@y4r})iqg93|6Y<|CfRgBwv0c{`Y@5cpzeJ6#M*{P0z?l2|&bDW%fS%orwI) z&>OLe%A}}>cIGF>X6zo@|7x2#+ZN$f|HdK)AuU3VgV;SWDDCQ|4>GOwI)3cnd8W&O zrfX=3Rr)00e?CCiIml7EBs}a~961~_z)H}HyI-YS?(e1s|L^1?Zpam;*$v-DBePy& z2`UP821{WkBsS*|VE<`&kb08^qQ-ru@&W_N3^MDf{Oj^ab)~mV6G7~^7u;0o5@RWN zQwQPtw~%GA)F_S~Jo#y_@Dh3EAtE+J0yx0@VoEtH&~cBYEoa8r6R8#ax|X`)>98!h zSoH;5k(e+#o&U1+nni<-L_rvw=#r5ITdOG+Tt2>w`51HfV8NY@&GpR>iC)&F;^VlE zO@5JocvHA{;)Qn23$uA_NR?MDsDCROpN%+Oh$dm0hJKB>vX?{{R1`^FP-+=#Z{Xax z0&c=zp6Sfs6btyl%Y(3Dh zqQ36zsOOd;UEQ2I;yi^CzpgC`740;Z)Y$857z00Yky7tw!z?HTU}k?!-1~al)>{&U zGxT_rw&bRClwT*G0Ek>*$29MUTXt@{j&yHehD|fW=vN+>Tu7@w za#oa9sc>$~21RpOkh4vyiin@dN8w7Mc^uR_;KOus>U(}^$nSuvm0MBmT# z>_?laxU(VvVoGZIG@gGW0=MLPMSwRRZclcMbLG#!^Rb7FQxfY6G>7f&(g zm)ewQ&_x{i3cMP}oo3bdBYCY#rx}Qxy$D?k?Ra?q79AWbYBksMts;UR6QU6kc3%7T zL&8^EWe-3U9gxON(SCW5nPVEj0gU7CaeR;f04G2^%J77JdEK4G6ABPX2Y2?R{J%T!~on6p1lDf^}SyJmh!e{=mq2!$sxjdXj+u0;m5oy=#)v?7(P()&cNA8>d zKsC=tIn#JwqZMZu+*Tal5Td2JoAIl^t;x}3KAO1f2#}y5@;yyK6cC(nhf8^aCZ7Wg zMSR$(oO^EBL8W;hsDtZ+^Yr;6QJWr>H0ESlO|*f90aBYx%PK<=eBD7PA#Dj-?;oDI zVTndMnH`Q39j!p*pI{Gwb~xx(5-)AkDGRs~T!Q;L(>p&6NDBG$iN~eOR>$NTP8Z#) zMoLH!55isx#09G4`RMrYG--t&FCH8p!`p&_c`}G@9*6AcYez`&+|U_g7a=$S!oq%91bUIhq7J7 zbGvx7f|BAlrR@;KK~jwg

    -@FoQGgS2f6}kMfZT zc39MfDTx6vEASr;87|ebCZY<4T~H9^3`NM=jGUw>@W+{rQxtIwbBx6GqSGc zy)_E>Ci7zTdw6%zfMH8+W~sT?5tli=lD#ztU7X(amFHG2+=+H6w<-vn?401ttK|Gl z`92?6xjWLsq0}ZK((zQr=ZG5)|9*I8R==PBS+K@SG5Oz%S&xEOCzOv)9qGR4R8o90 z_;POMhY(Gbzyf)$xoO3lp*vTqYg(T<8SP{S9lj#%rMf1(v^Yys==hgw+1|M)skwsI zQC(?0Y&g@&aQ~>RqkH%3knkp8Z-K$fHwE1e*4wnrJI)X+E#ZFpyM$`)k9t4Wyi(C6 zdGl9-+^3A4wM+e?&h1GL8Gc5o9N25)PtNbf{}sYgV@dZvuN~j2EuC1fZoww4 z^6>FZqt70B-2O~7v+H|7%B|z=39{YhChD)fHcp+%m z3euAj%h4_qF9a*cyP?SY#_N9D?j$6{M5gZJS-b(lJ4Y?Z}eUY2d@ zw>gQ)XSE)lOR`7ca;XMEtc2M9b?r~T%wJ{~yY_CLK_1tCjD9t~RR`ppg+o7Wthjh3 zR6mv=!9DRxn0tkv|Me2Gs(=p5P)MVR7P(k>u-miw=mk}5W(_0GW>Die^APY!#V$h~ zvH++SRRMm6JX4Y!av&_N=op2&0cVFAX_jgRKLV1Ol?joD?VA@Y&9~26V?vxG`7#=Aie;5JDPv}+T&4xJLNw0EwebQ1p>zr(J@bh zC_%MImg_Y|2Z_eK&^0Ed!j?hZxgL}4cuJVvUtdFHfKdf>`db(6-SYXr;EsslS0Kj< z{!o;W#I=p~X2A+;DQC=x0M;mB5FKqtz8u>^hsFn+K#nFnxUg&XRbwy(Y<>Fp`m0%x zBM*oE<)9P!dA%+sAQ%0cfH3jYD=r~xvCh<=KFzC3k{Zx^q|KoslG7hIx}F=RaQ`O- z!;z>a{|MG%`t`5OI0!-r{pM0UV`_R$0ve}}d<{;rh3~}+Z+rR8r&y7Zwt&PZ>QD*N zl~NCZ^HypnL82CKAYJts1za)W3!;*4L7+Z-VejT;mf6Vjv$oKzv5q}z4L8OMi?3O< zn3HR9Z;s1V*!(d#cK2&Q`t!VVAW?~z*>lUC2#oLG%RGwo)dnyEd)4^IMj~*0hwrbZ z!yr)_npK$FgE;N_<^ew&Y9moV2)+?jfBrc>DLX!;*SNz5M&gAQdln!7ACcGMLj;KJ znVSO5MyNmH!gT)26VYSt$d{<1)j`UWt&{0iqP40M+%sRG-=5(myYdZv%_CDL ze>RleF}5OIpZL1hxm^E64dA^ZY9q!R7z3Gs?{~&VTzjY?j-q+1SJ z1Vs!^_Z5IdkjI@{y$urGHOjUmL0~$i&}T)12eHDu0QWYI9S8?4D#-7UWeiE zT?e&jw+y$i;CO>}=Xy|VxfQ~U)_&ox0U^pa4$f-<7{I=Zo4TO`64Ct^RgY9oiBBX9 zv-%dqtxDlE91Hk5sXzos=<(K!Xd>V%TgW=VV2fML=~?HvSH;@~hI0?O1+m19(xMGU zXut3{tpP16H=OP#5&>E6KJ4n$Yjvn?{_>Hx^KwK$PVC3a2;>AV_j;w$p%OZ3h3)sO zl)?00zAd_Ap$_FC2OfG(>B5k)RFLuCdwTkHDBvNOay6$~fJB_k6ISFJ~5+YuTTLS)>kJYLx)P{2Bsc3dobCpfAJLjt5u?Z^I+RcQ?JHnj+- z+kW!%uS3LUbsl#pN3LX71|3RUbFQ`b^}+yNd|#pd#VgsHh?bjT7hSV!13%EA?})<6 zLKFUDnK{ILAZ6y+WokIGi~~khx%*;wt;x_yK4=3|i_S*5y;WVWhRxs$r>+h^m%Rx? z{?s6y9mNA9EkYVLBgNj6vu?B6bZ06OGtB#b_*rjL;=)p0?|-{u7v0nfsHcpH4<-*X z_`JSmb?H3CJ$t?h?u45Hv!f5vSk^|b>)*Z?we~d~aZMat+PwOp`T3kQ{G^_&jJjT` zepAq91IM`EJN<%Hg609Ax}D$L>YO@5ht9Hm1_u(5VS6D~sVDiLTT=9JJIMKPYT^vZ zb7Xrm@hvh> zvUZn37KEP1Z>Zwfb?$Ba(gXJT9xSJ$e7 z3LjVY#Z_0wGW_=vHJ(UUw0o6p`TJ7@0(hn5?CH(;+;LVR&1e(AKW2UP^Qv9m!b0$> z1b6;+F?N3W;I4N(klo=Vs3Zuz%8xu3ZLE~+df3!O^?yL7cbx}?ayD0h?%}+Pr$?U4 zqM6RoQD{(X4fDsO_1#&B``h(k%VOXigSnd?uqnVU zH$Mh3mUXq>f_BM7l4^XbTVj7;vb5evomtO=Psc+B*B_M3sPOl=T0TAPZ*T8}Bsisq zb4)UFr&dxwwxG$?%Ryla_I!8CsdfAI-93>R7dX?oVDxP1ZfQ(-XTVg-;R?4`8)}B; zjxAIYo?P(m(?2%WwL_ckJ{^19b@4HWUx7X_kzTWAjkEuMpPyWQ%6PdWJor|haVopb zPkPpF{<2K{*^VaA{ii|D=q5$)obk5c;v!1|7d6Y3`^~ z-{4BuL>cAELkA@z|L)|--mcQdZtJ~Q1JAdD!leUi_inO$CiqD5C?pzeD<<$eo7B~m zBJBnPBJmiS^}+6X^GRyf$8rLT;Tpnp>S4oUmF9c;(@_~vLp_y%@lxFdX?LrR+MoXS zv^>PNR3HKQ*Dfh5tL45M*A-(KG0w`dcwO#6#V4TL_Xzy$$hV`6+N}^7Z^+k{P!+Hn#lj2Lcs1ht_&1&Hc%uI z(3oZn$<$*E^;1a+XhWNrG%ot11-OLSFvdHvOI+IB>eu;z(24&&fq*q~b5$SrJ*py zj7n67uEXjW0gI37(K&fYniIw-6mytAG{fL*4fP8I46!SURRrN|b@fXG3}@$3^i%Ip zd`JREQoPT&w!5Sj+{o_~NB$mXCrKh|QExCI?vo&+Q3a_$8c1xO;A>}=2Dy(ZNUagW zw$Hu545CCooG8xxb$@P5Fh?7*LHCK1n>Nw@FZ$GdeUhcJ)Cn5MnQiL3;CYE&OR$uZ zB8u@xQC>&QV0W^l4AhL~i3>kH7bU7lUHqWJ&780^)oWKK0f%dro*Tc&N+zj5rF=wO z_RROtuhGvEL<-jxg~gkE8(Go+K3A<>g2Y$@isD|@!CHnXUIPlE7iT@&kp^o(>?NOh zN~XV;^dovbpvo;q^FAQ3!sDB{g;f?hy_)$^IFT+@O9rciC(LW z=Lg$4soLe;kGgCN_w#1B1-5X0R=;cLwXG)tGy-A1+Rk(SS{cp6>h zD7=ZKM7|66$;&UwF`?}M_Doip3zA1a?(Uu4o>ckjkgH*!i?;8+?SS&*fmN0W$f9f8 zhsX?ipHam0oBv3TY(!}BoYLu6;+*|JEbExe@=s*HTs?+HG(`& z`d|a=GNO~Sc{9M+|Co_h&3e4`A;Z$>66)jjU`$e7%#E~c*5rA;pO8XL(sr4`7+EM! zYk)`PP&sB0iLHymgjq?F9QqwNwVoCMbnVbAb$RgV90jD&I{7n%F*0))-?bynb^anz z1JVvbY??`sNr+%gq0TWGqwN})BzqUlncqkfZ6aTe7tE!KETZy3BALuZ4-sZ@N$U{d z#CnCBe*}uyA+J$Fq)z@CAAZzC4~2307=cR7L>d}L2~ZI4o}{HbNr5pFA9((@AbJQti%)uuWc&AiO-$h^LK)0`bc`UhrKREUsT>IiWbV_z@N9sVh7Ub@ zQ{)@Rc|yQA=M<@n2%}kj8+2^Z%F0q6WYf0r?n!86>SIdx#xC5%V;5>ag63dS0`}{$i_(BDfaC3IGi4`icd;M+i{2E zPRl#tn#i)(+v6UeGmk}FzBY6eMr;c}WswgLIPv~WWxim~^@GNCw}CGEmPWK}t- z0xcvoE0G|$BL?c)&lF2;;plp*e>|=c4}#kmxd4mym_DltLbS$suJ$i|fulvbA|zCo zrH;hon(=a|$8Pk3@NbxFWyW|%z@H~*L3Vrrff$M=3(a9%C{9vjd8&<>VkqY9puWa% zt#}&uyPr>}y|evjhzkOdlo`2rdz9FUy diff --git a/src/public/modules/forms/admin/componentViews/form-emails-input.client.view.html b/src/public/modules/forms/admin/componentViews/form-emails-input.client.view.html index 6d60f6e389..b7dc899af0 100644 --- a/src/public/modules/forms/admin/componentViews/form-emails-input.client.view.html +++ b/src/public/modules/forms/admin/componentViews/form-emails-input.client.view.html @@ -34,12 +34,12 @@ placeholder="e.g. leo@data.gov.sg, john@data.gov.sg" ng-model="vm.formData.emails" name="emailList" - ng-required="true" - ng-change="vm.validateEmails(vm.formData.emails)" + ng-required="vm.formData.responseMode === 'email'" autocomplete="off" ng-keyup="($event.keyCode === 13 && vm.formController.emailList.$valid) && vm.saveForm()" ng-blur="vm.saveForm()" ng-class="vm.formController.emailList.$valid ? '' : 'input-error'" + validate-form-emails-input /> @@ -52,9 +52,29 @@

    - - {{vm.emailErrorMsg}} +
    + + You must at least enter one email to receive responses +
    +
    + + Please enter valid email(s) (e.g. me@example.com) separated by + commas +
    +
    + + Please remove duplicate emails +
    +
    + + Please limit number of emails to 30 +
    diff --git a/src/public/modules/forms/admin/components/form-emails-input.client.component.js b/src/public/modules/forms/admin/components/form-emails-input.client.component.js index 8e8226ea37..ea7e166568 100644 --- a/src/public/modules/forms/admin/components/form-emails-input.client.component.js +++ b/src/public/modules/forms/admin/components/form-emails-input.client.component.js @@ -1,5 +1,3 @@ -const validator = require('validator') - angular.module('forms').component('formEmailsInputComponent', { templateUrl: 'modules/forms/admin/componentViews/form-emails-input.client.view.html', @@ -21,38 +19,4 @@ function formEmailsInputController($scope) { ? 'Recommended: at least 2 recipients to prevent response loss from bounced emails' : null }) - - vm.validateEmails = (emails) => { - const emailsToCheck = emails ? String(emails).split(',') : undefined - vm.emailErrorMsg = checkForErrors(emailsToCheck) - vm.formController.emailList.$setValidity('text', !vm.emailErrorMsg) - } - - function checkForErrors(emailsToCheck) { - if (!emailsToCheck) { - return 'You must at least enter one email to receive responses' - } - - const emails = String(emailsToCheck).split(',') - - if (emails.some((email) => isInvalid(email))) { - return 'Please enter valid email(s) (e.g. me@example.com) separated by commas' - } - if (hasDuplicates(emails)) { - return 'Please remove duplicate emails' - } - if (emails.length > 30) { - return 'Please limit number of emails to 30' - } - return null - } - - function hasDuplicates(emails) { - const trimmed = emails.map((email) => email.trim()) - return new Set(trimmed).size !== emails.length - } - - function isInvalid(email) { - return !validator.isEmail(email.trim()) - } } diff --git a/src/public/modules/forms/admin/controllers/activate-form-modal.client.controller.js b/src/public/modules/forms/admin/controllers/activate-form-modal.client.controller.js index c45bb3385b..f748ea118d 100644 --- a/src/public/modules/forms/admin/controllers/activate-form-modal.client.controller.js +++ b/src/public/modules/forms/admin/controllers/activate-form-modal.client.controller.js @@ -118,6 +118,10 @@ function ActivateFormController( // CorpPass doesn't return any error page even with the wrong e-service id updateDisplay(null, { authType, esrvcId }, 0) return Promise.resolve(true) + } else if (authType === 'SGID') { + // sgID doesn't have an esrvcId + updateDisplay(null, { authType }, 0) + return Promise.resolve(true) } } diff --git a/src/public/modules/forms/admin/controllers/collaborator-modal.client.controller.js b/src/public/modules/forms/admin/controllers/collaborator-modal.client.controller.js index a9ff67bcde..6938a52feb 100644 --- a/src/public/modules/forms/admin/controllers/collaborator-modal.client.controller.js +++ b/src/public/modules/forms/admin/controllers/collaborator-modal.client.controller.js @@ -9,6 +9,7 @@ angular .controller('CollaboratorModalController', [ '$q', '$scope', + '$state', '$timeout', '$uibModalInstance', 'externalScope', @@ -32,6 +33,7 @@ const ROLES = { function CollaboratorModalController( $q, $scope, + $state, $timeout, $uibModalInstance, externalScope, @@ -63,6 +65,8 @@ function CollaboratorModalController( $scope.isDisplayTransferOwnerModal = false $scope.transferOwnerEmail = undefined + $scope.isDisplayRemoveSelfFromCollabModal = false + /** * Transfers ownership of the form to the selected user, reset UI messages */ @@ -136,6 +140,35 @@ function CollaboratorModalController( } } + /** + * Removes the current user from the collaborator list and bounces the user back to the forms select page + */ + $scope.removeSelfFromCollab = () => { + return $q + .when(UpdateFormService.removeSelfFromCollaborators($scope.myform._id)) + .then(() => { + // redirects the user back to the home page now that they have lost access to this form + $scope.toggleRemoveSelfFromCollabModal() + $scope.closeModal() + $state.go('listForms') + }) + } + + /** + * Toggles the remove self from collaboration modal + */ + $scope.toggleRemoveSelfFromCollabModal = () => { + $scope.isDisplayRemoveSelfFromCollabModal = + !$scope.isDisplayRemoveSelfFromCollabModal + } + + /** + * Remove the current user from the permissionList, prompting the user first before confirming the action. + */ + $scope.handleRemoveSelfFromCollabButtonClick = () => { + $scope.isDisplayRemoveSelfFromCollabModal = true + } + /** * Remove the user object that has the email provided from the permissionList. * @param {String} email - The email of the user to remove. diff --git a/src/public/modules/forms/admin/controllers/edit-fields-modal.client.controller.js b/src/public/modules/forms/admin/controllers/edit-fields-modal.client.controller.js index 2ffef32d71..f0c41eb7ab 100644 --- a/src/public/modules/forms/admin/controllers/edit-fields-modal.client.controller.js +++ b/src/public/modules/forms/admin/controllers/edit-fields-modal.client.controller.js @@ -2,6 +2,7 @@ const axios = require('axios').default const values = require('lodash/values') +const range = require('lodash/range') const cloneDeep = require('lodash/cloneDeep') const UserService = require('../../../../services/UserService') @@ -9,13 +10,14 @@ const UserService = require('../../../../services/UserService') const { VALID_UPLOAD_FILE_TYPES, MAX_UPLOAD_FILE_SIZE, -} = require('shared/constants') + MB, +} = require('../../../../../../shared/constants/file') const { UPDATE_FORM_TYPES } = require('../constants/update-form-types') const { uploadImage } = require('../../../../services/FileHandlerService') const { DateSelectedValidation: DateValidationOptions, -} = require('../../../../../shared/constants') -const { Rating, RatingShape } = require('../../../../../types') + RatingShape, +} = require('../../../../../../shared/types/field') const CancelToken = axios.CancelToken const EMAIL_MODE_ALLOWED_SIZES = ['1', '2', '3', '7'] @@ -157,7 +159,7 @@ function EditFieldsModalController( } } - vm.ratingSteps = Rating + vm.ratingSteps = range(1, 11).map(String) vm.ratingShapes = Object.values(RatingShape) vm.showDuplicateOptionsError = function (field) { @@ -546,8 +548,8 @@ function EditFieldsModalController( field.uploadedFile = '' switch (ngfError.$error) { case 'maxSize': - vm.uploadError = `${(ngfError.size / 1000000).toFixed(2)} MB / ${ - vm.maxImageSize / 1000000 + vm.uploadError = `${(ngfError.size / MB).toFixed(2)} MB / ${ + vm.maxImageSize / MB } MB: File size exceeded` break case 'resize': @@ -572,7 +574,7 @@ function EditFieldsModalController( field.url = result.url field.fileMd5Hash = result.fileMd5Hash field.name = result.name - field.size = `${(result.size / 1000000).toFixed(2)} MB` + field.size = `${(result.size / MB).toFixed(2)} MB` }) .catch((uploadError) => { // This is a reference to the ng-model of the upload button, which points to the uploaded file diff --git a/src/public/modules/forms/admin/controllers/edit-logic-modal.client.controller.js b/src/public/modules/forms/admin/controllers/edit-logic-modal.client.controller.js index c6d2d5c164..36f72c7d0f 100644 --- a/src/public/modules/forms/admin/controllers/edit-logic-modal.client.controller.js +++ b/src/public/modules/forms/admin/controllers/edit-logic-modal.client.controller.js @@ -2,7 +2,7 @@ const { range } = require('lodash') const { LogicType } = require('../../../../../types') -const FormLogic = require('../../services/form-logic/form-logic.client.service') +const FormLogic = require('../../../../../shared/util/logic') const UpdateFormService = require('../../../../services/UpdateFormService') angular diff --git a/src/public/modules/forms/admin/controllers/edit-start-page-modal.client.controller.js b/src/public/modules/forms/admin/controllers/edit-start-page-modal.client.controller.js index 984862402d..5eae39c8c2 100644 --- a/src/public/modules/forms/admin/controllers/edit-start-page-modal.client.controller.js +++ b/src/public/modules/forms/admin/controllers/edit-start-page-modal.client.controller.js @@ -4,9 +4,12 @@ const axios = require('axios').default const { MAX_UPLOAD_FILE_SIZE, VALID_UPLOAD_FILE_TYPES, -} = require('shared/constants') + MB, +} = require('../../../../../../shared/constants/file') const { uploadLogo } = require('../../../../services/FileHandlerService') -const { FormLogoState } = require('../../../../../types') +const { + FormLogoState, +} = require('../../../../../../shared/types/form/form_logo') const { getFormLogo } = require('../../helpers/logo') const CancelToken = axios.CancelToken @@ -32,6 +35,7 @@ function EditStartPageController( vm.maxLogoSize = MAX_UPLOAD_FILE_SIZE vm.validLogoExtensions = VALID_UPLOAD_FILE_TYPES + vm.MB = MB vm.FormLogoState = FormLogoState vm.logoUrl = getFormLogo(myform) @@ -116,8 +120,8 @@ function EditStartPageController( vm.uploaded.file = '' switch (ngfError.$error) { case 'maxSize': - vm.uploadError = `${(ngfError.size / 1000000).toFixed(2)} MB / ${ - vm.maxLogoSize / 1000000 + vm.uploadError = `${(ngfError.size / MB).toFixed(2)} MB / ${ + vm.maxLogoSize / MB } MB: File size exceeded` break case 'resize': diff --git a/src/public/modules/forms/admin/controllers/list-forms.client.controller.js b/src/public/modules/forms/admin/controllers/list-forms.client.controller.js index 659443cb53..0ae05f1867 100644 --- a/src/public/modules/forms/admin/controllers/list-forms.client.controller.js +++ b/src/public/modules/forms/admin/controllers/list-forms.client.controller.js @@ -173,7 +173,7 @@ function ListFormsController( } vm.duplicateForm = function (formIndex) { - const missingBetaPermissions = BetaService.getMissingFieldPermissions( + const missingBetaPermissions = BetaService.getMissingBetaPermissions( vm.user, vm.myforms[formIndex], ) diff --git a/src/public/modules/forms/admin/controllers/view-responses.client.controller.js b/src/public/modules/forms/admin/controllers/view-responses.client.controller.js index cef7955405..e195f9da0f 100644 --- a/src/public/modules/forms/admin/controllers/view-responses.client.controller.js +++ b/src/public/modules/forms/admin/controllers/view-responses.client.controller.js @@ -418,7 +418,7 @@ function ViewResponsesController( }) : AdminSubmissionsService.getSubmissionsMetadataByPage({ formId: vm.myform._id, - pageNum: page, + page, }) return $q .when(getMetadataPromise) diff --git a/src/public/modules/forms/admin/css/settings-form.css b/src/public/modules/forms/admin/css/settings-form.css index 960d1b4429..0778154401 100644 --- a/src/public/modules/forms/admin/css/settings-form.css +++ b/src/public/modules/forms/admin/css/settings-form.css @@ -240,3 +240,8 @@ #settings-form input.input-error { border: 2px solid #a94442; } + +#settings-form .sgid-formsg-contact { + padding-left: 15px; + text-decoration: underline; +} diff --git a/src/public/modules/forms/admin/directiveViews/settings-form.client.view.html b/src/public/modules/forms/admin/directiveViews/settings-form.client.view.html index 08e51cab73..e0cd8ab5b6 100644 --- a/src/public/modules/forms/admin/directiveViews/settings-form.client.view.html +++ b/src/public/modules/forms/admin/directiveViews/settings-form.client.view.html @@ -237,11 +237,11 @@
    diff --git a/src/public/modules/forms/admin/directives/edit-form.client.directive.js b/src/public/modules/forms/admin/directives/edit-form.client.directive.js index fb9b0828fc..2dd6a50243 100644 --- a/src/public/modules/forms/admin/directives/edit-form.client.directive.js +++ b/src/public/modules/forms/admin/directives/edit-form.client.directive.js @@ -1,6 +1,8 @@ 'use strict' const { groupLogicUnitsByField } = require('shared/util/logic') -const { reorder } = require('shared/util/immutable-array-fns') +const { + reorder, +} = require('../../../../../../shared/utils/immutable-array-fns') const FieldFactory = require('../../helpers/field-factory') const { UPDATE_FORM_TYPES } = require('../constants/update-form-types') const BetaService = require('../../../../services/BetaService') diff --git a/src/public/modules/forms/admin/directives/settings-form.client.directive.js b/src/public/modules/forms/admin/directives/settings-form.client.directive.js index 8e2826fbc9..34ac7684c5 100644 --- a/src/public/modules/forms/admin/directives/settings-form.client.directive.js +++ b/src/public/modules/forms/admin/directives/settings-form.client.directive.js @@ -2,6 +2,7 @@ const dedent = require('dedent-js') const { get, set, isEqual } = require('lodash') const AdminSubmissionsService = require('../../../../services/AdminSubmissionsService') +const BetaService = require('../../../../services/BetaService') const UserService = require('../../../../services/UserService') @@ -143,9 +144,11 @@ function settingsFormDirective( ) } - $scope.isDisableAuthType = () => { + $scope.isDisableAuthType = (authType) => { return ( $scope.isFormPublic() || + (authType.val === 'SGID' && + !BetaService.userHasAccessToFeature($scope.user, 'sgid')) || ($scope.isFormPrivate() && $scope.myInfoSPWarning()) ) } @@ -177,14 +180,19 @@ function settingsFormDirective( name: 'Singpass', isEnabledInStorageMode: true, }, + { + val: 'SGID', + name: 'Singpass App-only Login (Free)', + isEnabledInStorageMode: false, + }, { val: 'MyInfo', - name: 'Singpass (MyInfo)', + name: 'Singpass with MyInfo', isEnabledInStorageMode: false, }, { val: 'CP', - name: 'Singpass (Corporate)', + name: 'Singpass Corporate', isEnabledInStorageMode: true, }, ] diff --git a/src/public/modules/forms/admin/directives/validate-email-domain-from-text.directive.js b/src/public/modules/forms/admin/directives/validate-email-domain-from-text.directive.js index 753cec2386..f0750f0d2a 100644 --- a/src/public/modules/forms/admin/directives/validate-email-domain-from-text.directive.js +++ b/src/public/modules/forms/admin/directives/validate-email-domain-from-text.directive.js @@ -2,7 +2,7 @@ const { validateEmailDomains, -} = require('../../../../../shared/util/email-domain-validation') +} = require('../../../../../../shared/utils/email-domain-validation') angular .module('forms') diff --git a/src/public/modules/forms/admin/directives/validate-form-emails-input.directive.js b/src/public/modules/forms/admin/directives/validate-form-emails-input.directive.js new file mode 100644 index 0000000000..b93f67f0d1 --- /dev/null +++ b/src/public/modules/forms/admin/directives/validate-form-emails-input.directive.js @@ -0,0 +1,39 @@ +'use strict' + +const validator = require('validator') +const get = require('lodash/get') + +angular + .module('forms') + .directive('validateFormEmailsInput', validateFormEmailsInput) + +function validateFormEmailsInput() { + return { + restrict: 'A', + require: 'ngModel', + link: (scope, _elem, _attr, ngModel) => { + ngModel.$validators.validEmails = (rawInput) => { + const emails = String(rawInput).split(',') + return ( + get(scope, 'vm.formData.responseMode') !== 'email' || + emails.every((email) => validator.isEmail(email.trim())) + ) + } + ngModel.$validators.duplicateEmails = (rawInput) => { + const emails = String(rawInput).split(',') + const trimmed = emails.map((email) => email.trim()) + return ( + get(scope, 'vm.formData.responseMode') !== 'email' || + new Set(trimmed).size === emails.length + ) + } + ngModel.$validators.maxNumEmails = (rawInput) => { + const emails = String(rawInput).split(',') + return ( + get(scope, 'vm.formData.responseMode') !== 'email' || + emails.length <= 30 + ) + } + }, + } +} diff --git a/src/public/modules/forms/admin/views/collaborator.client.modal.html b/src/public/modules/forms/admin/views/collaborator.client.modal.html index eb7a5cb873..67d79ad002 100644 --- a/src/public/modules/forms/admin/views/collaborator.client.modal.html +++ b/src/public/modules/forms/admin/views/collaborator.client.modal.html @@ -36,7 +36,36 @@ -
    +
    +
    + Remove myself as a collaborator from this form +
    +
    + You will be removed as a collaborator and will lose access to this form. + You cannot undo this. +
    + + +
    + +
    diff --git a/src/public/modules/forms/admin/views/edit-start-page.client.modal.html b/src/public/modules/forms/admin/views/edit-start-page.client.modal.html index 26baf55798..31b0ef9bd1 100644 --- a/src/public/modules/forms/admin/views/edit-start-page.client.modal.html +++ b/src/public/modules/forms/admin/views/edit-start-page.client.modal.html @@ -79,7 +79,7 @@ > {{ - (vm.myform.startPage.logo.fileSizeInBytes/1000000).toFixed(2) + (vm.myform.startPage.logo.fileSizeInBytes/vm.MB).toFixed(2) }} MB
    @@ -114,6 +114,28 @@

    +
    +
    + Color Theme +
    +
    +
    + +
    +
    +
    + +

    +
    Time Taken for Form (in minutes) @@ -164,34 +186,13 @@ ng-model="vm.myform.startPage.paragraph" placeholder="e.g. 1) You will require your sales receipt to fill this reimbursement form." name="paragraph" + rows="12" >

    -
    -
    - Color Theme -
    -
    -
    - -
    -
    -
    - -

    -
    @@ -227,7 +227,7 @@
    - Reference number + Response ID
    {{ vm.decryptedResponse.refNo }}
    diff --git a/src/public/modules/forms/base/componentViews/end-page.html b/src/public/modules/forms/base/componentViews/end-page.html index e9059e4235..cf880a2bef 100644 --- a/src/public/modules/forms/base/componentViews/end-page.html +++ b/src/public/modules/forms/base/componentViews/end-page.html @@ -37,7 +37,7 @@

    {{ vm.title }}

    +
  • L_Q1*9KtFput@*y~saLIh9=H&;d zw%>jQ4AK&@t$8p(>P*Wcsu7}{J%)Dso*T*-(1>wNM#jLRquH&cBGdFyj!waxhluww z5;}1y@6O@@WVxQv8J!n+h}Z2Hw^|VOk5@>qHX?PK5?-{m@ukN`Dfj;O5z;Jxdv(q; zxulRZK1ty*$6rubphJ#qmf<9*qGgwbBx z0OQsd0w&B*7Me`Suwp@T>CSvV!i6pf&e!}g(=3m_Uyb~bsQyha>4^%nZuTlJ8w%>N z70w^SzhR){^(;O6*m$>W_fT5UXp==Q&4CScVyuAy&Bj5hGGZeM`j(GeCUPI1fZcv( ze(HZsj{!}5cCth4-}?DxW38~T6Qx6CY)O$bcwUd~*;8J;6ZF#W(9!y1-3y$Cy^rzO zkSbdztNzv`?bMF(FW8W-0TYkK>fEtEKOH@0Huc9JjAz-)i8hW7&W2Sj0#UI5XB>ga zoibOy+02j7;|CCRhV7X*t1M}NaVYx z?2yz_s2OK(kJFOw^!RS#tA-IW3d==IXz%tJHR-#&4RC=?ltq@^ai`+6)%ZW8Gy_JHw zMy;~!)jZU=b^%mlro2Mj}oBi|0*cxoHvRf?v7Svt9_%u||h4Vh=*g)5Il*_D&rKh(siJvS;3 zQc%vG>T(N$t`lUgNOHC85b@f@0gr)tjwSk33jaNCd-)t zO{5qOJCz;wj`HbO=3#3Q<-XG-FBGlk=cKZ4L43bgf@Vq?%*Q5lf4`j`B|=2rk`S?a zmRoZ~XnDq}ac!fRauG@ZR#oRqqt(@Cs#}}(R+$@y&Y?EQ139|fFE9U86eqcHr%6sK zETb}}lvE$hI~{m2u}+zxllK?M??3FP^Qccl!x}W-a}p_geZ^V6cIT<^weG&$TllVN zV<-Ee%_-PfK8&$Gu!*;^w80F<@+gCtn1;P)SNl}fMretPg9CKpMFC7<138bgf`s0; z|87oRFS9C4SZ-H((GzEy>i9BfC#Dg9B)$|DJX($K5d6yWvG>~ormu6WdJU!Cus2w9 zJ*is+qv3V2fycw?Nfvf2sj=*i&tsY9p;S>cQ92Vf#~pLeP2v8Y&|;bqOOl>;LE<3mvg>R|GbktMaUqfcp*o^$tM1ZS_aPWc*(IPN-ewKWAA z8W6skLK(vWgHe>CbmNR&CWRy5w8e=Fi?8P-DjWTfq%4}!W1#OC$$Hef%E~hb8gbhP zx(D}xbYv-iw%@;~#MLUIiL~L_fNwo_i&~O?_4+l;x9Smu>@~VcyaKEhKc@V}2UBLZ z7Z*7PZ8da1w3uPfmpgu?A85xOHoPY2=}g*mB0VScv^%f4chqJ2K(}P51T8jJ_VyYx z%D)kRcatve4O0F;sQb#esDig`*np+GLApx;=~zM}q`OgS5h>|rX+%H)LDE$O1Vp48 zl$2h&K|o>Y?s^yf*YkXOKD_aJ`81q8duHaId+s?qb6?lhitQJFE=P_zZS*&?$xW8n zkfH%@Sk~7TH~Wfs_uXE7`Y{Dv*aZ@NyAPNHNunWb79d&-_?`c0F{5jqArk{1&EC2B z{WYBqHdf7|q<+�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 diff --git a/src/public/modules/core/img/landing/restricted__7-MFA.png b/src/public/modules/core/img/landing/restricted__7-MFA.png index 3b3662ecddf7e3d0ea288d48c77418c5d835c930..3683321fe6ce412300d58130eaa08d544a654e6c 100644 GIT binary patch literal 56551 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�MB~h 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%0AZjZ+z2TK2|%L+VSyox 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 literal 59307 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 diff --git a/src/public/modules/core/img/landing/restricted__8-IPOS.png b/src/public/modules/core/img/landing/restricted__8-IPOS.png index ddcf3a26aa3484acf3da4f164229cf746d81d147..dbf458c3076637999e485dc2cd6b4d68c05f91aa 100644 GIT binary patch literal 47885 zcmd?Pbx>4&8$Y}v3W|V~G>C*W(hW=ZBHf@O9n#%`NJ~pMNK1Ej?gG*!z0@MGbnI_Y z@B5kOooD8qdH;H6erM*u?%6%x@0FkHb6sacUV~&XACo)=005YBvXZI*00s~Mc+if1 zA9>}7LUiwig$-ZXTeBqyt(sgp;bDOp)b=>mb^U}ZyGo}HZE3iAsL^!KkoFAfh6nO@RMiAzAC zP;n8_`T6;o>FM2_oi9;Q4fPGCa6xZd2B{mh)zzb; zqq*5RWk0X?kFJ{5uP?L6${nS2WMxl0sIq6ydnXRB%ZU)}II=R<_SQBA0kbkXDHf(? zX?jv?r-+I!m`UzD0fm`suAW=rGQg|oHm>N&g1#c54LUIj-HMdEtWcZy;aN^KCB#FPp^WG7J67jx0<*omc#|X z?WoQ(jV_C%WiH z<^h1ZAvsAgbvMJkDSk}9*Z2Uj>nrc+Ep+tEOghe!$1^sFCjh|t2=G3@&;KC+a32!@ zct`>OJmCTW-elebwEzF;1HXa##;FVKNtyL#Qvi`U!1ffD#~od>e084Fb4-F?^Z8pG zeL})ZA(*=7TqgASLuDMCA7T;`Y$%{wj49GDX|C^L4>_uy#E3o5dg&j2#S&-HBygm! zA=g+WloIKB+kbcin!d{B_KyAis!cXIZ1cei(x@EK_JZu0QBz5pNK zSC0@W5|V`21)~?>Mu@Z9o{#wPxOv@*cPVjU-5<*wqiZDu08o*JCt{ZJ{h1`Xe>|hv zUB%@o(%9Bq-+C+Sb$hOJda@gl3h5L@xHcZA&b+BsANRM-R;$^H86g=H0&ULaeQ$dD z`Es>)@#UC$Hy-mP228!h3>@@1wMA<`mm~<-`0h}W{?PRv;Q5_%$LTj>z~cLM?N!Yg zW)8we`c_vLY^o5W59^<94-iQ(ftR(pq-m%2`PMF9oeV*nCp(H*R-&1@j;4XnR1)2n&kw1##5V)fu20Ei45fXQ(kr_OQMt$j;9O-9gcl8~1O{{{V3 z2_v-abGeb6xG$lLtT`htoVRmQf4{whz1c9#gwL@!saPJ9JgXM_s2+cPKyga4YKPiA z;WYWG=5-Vo{Gc=#@JDu2#neXg%^-zDhR+y*l=t1w6)$xd%x8_-9w%E%h5M`4%iIQ`D4RKNcF;%ZPw zENJ%1P_ymfE{ECPBgDKYBkFGx_;rl47bm{dUA*w2pjb2rH#|m)XacwiEfM!c$SefB zgjkq5kEi!|2(68i({#1&k23d=m7T~OjoZpHCw?aBK|0FM?;&!niGsx-pH{LoFFqBe z%<^(JR@?XM7@ckEk8U&=&9{1)HnU-dBi+9)OJ7Zy^1VJJ>aKawVawfhsFyn6F#Enm zkG=K6*8ER&p(Jae!L#x+(z-gn!jBz+zFx4cu%W9frhyyYafmNYQGn02*+h|4mTr~9 zlQt7z)e~azX$%Vc(l;-(ma1{Gy;QymmlaU+94Y|-Pay!njQ