sintfacilis 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.env.example +2 -0
- package/.eslintrc.js +20 -0
- package/.github/workflows/deploy-docs.yml +27 -0
- package/.github/workflows/pre-release-tests.yml +45 -0
- package/.github/workflows/pull-request-tests.yml +45 -0
- package/.prettierignore +2 -0
- package/.prettierrc +19 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +3 -0
- package/codecov.yml +7 -0
- package/demos/.eslintrc.js +13 -0
- package/demos/ago-node-cli/README.md +29 -0
- package/demos/ago-node-cli/ago.js +33 -0
- package/demos/ago-node-cli/index.js +11 -0
- package/demos/ago-node-cli/lib/item-export-command.js +48 -0
- package/demos/ago-node-cli/lib/item-search-command.js +35 -0
- package/demos/ago-node-cli/package-lock.json +430 -0
- package/demos/ago-node-cli/package.json +30 -0
- package/demos/attachments/README.md +5 -0
- package/demos/attachments/index.html +165 -0
- package/demos/attachments/package-lock.json +543 -0
- package/demos/attachments/package.json +18 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +15 -0
- package/demos/batch-geocoder-node/batch-geocode.js +115 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +336 -0
- package/demos/batch-geocoder-node/package.json +37 -0
- package/demos/express/README.md +15 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +1008 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +33 -0
- package/demos/feature-service-browser/README.md +6 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package-lock.json +543 -0
- package/demos/feature-service-browser/package.json +18 -0
- package/demos/geocoder-browser/README.md +10 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +131 -0
- package/demos/geocoder-browser/package-lock.json +610 -0
- package/demos/geocoder-browser/package.json +19 -0
- package/demos/geocoder-browser/post-sign-in.html +25 -0
- package/demos/jsapi-integration/README.md +25 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +93 -0
- package/demos/jsapi-integration/package-lock.json +247 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/node-cli-item-management/README.md +10 -0
- package/demos/node-cli-item-management/index.js +238 -0
- package/demos/node-cli-item-management/package-lock.json +432 -0
- package/demos/node-cli-item-management/package.json +27 -0
- package/demos/node-cli-item-management/screenshot.png +0 -0
- package/demos/oauth2-browser/README.md +14 -0
- package/demos/oauth2-browser/authenticate.html +30 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +211 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package-lock.json +474 -0
- package/demos/oauth2-browser/package.json +18 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/oauth2-browser-retry/README.md +25 -0
- package/demos/oauth2-browser-retry/authenticate.html +22 -0
- package/demos/oauth2-browser-retry/index.html +116 -0
- package/demos/oauth2-browser-retry/logo.svg +4 -0
- package/demos/stream-response-to-file/README.md +7 -0
- package/demos/stream-response-to-file/index.js +36 -0
- package/demos/stream-response-to-file/output/.gitkeep +0 -0
- package/demos/stream-response-to-file/package-lock.json +227 -0
- package/demos/stream-response-to-file/package.json +33 -0
- package/demos/tree-shaking-rollup/.babelrc +3 -0
- package/demos/tree-shaking-rollup/README.md +9 -0
- package/demos/tree-shaking-rollup/index.html +11 -0
- package/demos/tree-shaking-rollup/package-lock.json +5646 -0
- package/demos/tree-shaking-rollup/package.json +25 -0
- package/demos/tree-shaking-rollup/rollup.config.js +17 -0
- package/demos/tree-shaking-rollup/src/index.js +8 -0
- package/demos/tree-shaking-webpack/README.md +8 -0
- package/demos/tree-shaking-webpack/index.html +11 -0
- package/demos/tree-shaking-webpack/package-lock.json +11455 -0
- package/demos/tree-shaking-webpack/package.json +24 -0
- package/demos/tree-shaking-webpack/src/index.js +10 -0
- package/demos/tree-shaking-webpack/webpack.config.js +27 -0
- package/demos/vue/.env.example +11 -0
- package/demos/vue/.eslintrc.js +17 -0
- package/demos/vue/.postcssrc.js +5 -0
- package/demos/vue/README.md +17 -0
- package/demos/vue/babel.config.js +3 -0
- package/demos/vue/package-lock.json +28044 -0
- package/demos/vue/package.json +33 -0
- package/demos/vue/public/favicon.ico +0 -0
- package/demos/vue/public/index.html +24 -0
- package/demos/vue/src/assets/logo.svg +29 -0
- package/demos/vue/src/components/App.vue +305 -0
- package/demos/vue/src/components/Authenticate.vue +65 -0
- package/demos/vue/src/components/Loader.vue +230 -0
- package/demos/vue/src/main.js +92 -0
- package/demos/webmap-checker-sapper/.env.example +5 -0
- package/demos/webmap-checker-sapper/README.md +123 -0
- package/demos/webmap-checker-sapper/appveyor.yml +18 -0
- package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
- package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
- package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
- package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
- package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
- package/demos/webmap-checker-sapper/cypress.json +4 -0
- package/demos/webmap-checker-sapper/package-lock.json +9622 -0
- package/demos/webmap-checker-sapper/package.json +50 -0
- package/demos/webmap-checker-sapper/rollup.config.js +87 -0
- package/demos/webmap-checker-sapper/src/client.js +20 -0
- package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
- package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
- package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
- package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
- package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
- package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
- package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
- package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
- package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
- package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
- package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
- package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
- package/demos/webmap-checker-sapper/src/server.js +101 -0
- package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
- package/demos/webmap-checker-sapper/src/template.html +33 -0
- package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
- package/demos/webmap-checker-sapper/src/utils.js +33 -0
- package/demos/webmap-checker-sapper/static/favicon.png +0 -0
- package/demos/webmap-checker-sapper/static/global.css +36 -0
- package/demos/webmap-checker-sapper/static/manifest.json +20 -0
- package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
- package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
- package/docs/.eslintrc.js +12 -0
- package/docs/FAQ.md +48 -0
- package/docs/HISTORY.md +62 -0
- package/docs/acetate.config.js +262 -0
- package/docs/build-typedoc.js +434 -0
- package/docs/generate-srihashes.js +53 -0
- package/docs/src/_layout.html +86 -0
- package/docs/src/api/_declaration.html +600 -0
- package/docs/src/api/_layout.html +204 -0
- package/docs/src/api/_package.html +38 -0
- package/docs/src/api/index.html +16 -0
- package/docs/src/guides/_layout.html +24 -0
- package/docs/src/guides/amd-requirejs-dojo.md +40 -0
- package/docs/src/guides/browser-authentication.md +39 -0
- package/docs/src/guides/bundlers.md +52 -0
- package/docs/src/guides/cli-authentication.md +9 -0
- package/docs/src/guides/client-server-authentication.md +9 -0
- package/docs/src/guides/embedded-apps.md +106 -0
- package/docs/src/guides/from-a-cdn.md +38 -0
- package/docs/src/guides/index.md +59 -0
- package/docs/src/guides/node.md +104 -0
- package/docs/src/guides/package-overview.md +111 -0
- package/docs/src/guides/server-authentication.md +9 -0
- package/docs/src/guides/whats-new-v2-0.md +305 -0
- package/docs/src/img/icons.png +0 -0
- package/docs/src/img/icons@2x.png +0 -0
- package/docs/src/img/oauth-browser.png +0 -0
- package/docs/src/index.html +12 -0
- package/docs/src/js/api-search.js +112 -0
- package/docs/src/js/nav-toggle.js +41 -0
- package/docs/src/sass/_highlight.scss +96 -0
- package/docs/src/sass/_icons.scss +157 -0
- package/docs/src/sass/style.scss +242 -0
- package/docs/src/srihashes.json +12 -0
- package/jasmine.json +7 -0
- package/jasmine.live.json +7 -0
- package/karma.conf.js +107 -0
- package/lerna.json +8 -0
- package/notes/README.md +68 -0
- package/package.json +141 -0
- package/packages/arcgis-rest-auth/README.md +71 -0
- package/packages/arcgis-rest-auth/package.json +69 -0
- package/packages/arcgis-rest-auth/post-message-auth-spec.md +70 -0
- package/packages/arcgis-rest-auth/src/ApiKey.ts +41 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +1355 -0
- package/packages/arcgis-rest-auth/src/app-tokens.ts +131 -0
- package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
- package/packages/arcgis-rest-auth/src/federation-utils.ts +85 -0
- package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
- package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
- package/packages/arcgis-rest-auth/src/index.ts +13 -0
- package/packages/arcgis-rest-auth/src/validate-app-access.ts +68 -0
- package/packages/arcgis-rest-auth/test/ApiKey.test.ts +35 -0
- package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
- package/packages/arcgis-rest-auth/test/UserSession.test.ts +2377 -0
- package/packages/arcgis-rest-auth/test/app-tokens.test.ts +95 -0
- package/packages/arcgis-rest-auth/test/federation-utils.test.ts +323 -0
- package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
- package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
- package/packages/arcgis-rest-auth/test/utils.ts +14 -0
- package/packages/arcgis-rest-auth/test/validate-app-access.test.ts +46 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-demographics/README.md +75 -0
- package/packages/arcgis-rest-demographics/package.json +69 -0
- package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
- package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +166 -0
- package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +88 -0
- package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
- package/packages/arcgis-rest-demographics/src/helpers.ts +28 -0
- package/packages/arcgis-rest-demographics/src/index.ts +8 -0
- package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +106 -0
- package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +92 -0
- package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +115 -0
- package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +72 -0
- package/packages/arcgis-rest-demographics/test/getGeography.test.ts +141 -0
- package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +42 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +113 -0
- package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
- package/packages/arcgis-rest-feature-layer/README.md +77 -0
- package/packages/arcgis-rest-feature-layer/package.json +64 -0
- package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
- package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
- package/packages/arcgis-rest-feature-layer/src/applyEdits.ts +95 -0
- package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +122 -0
- package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
- package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
- package/packages/arcgis-rest-feature-layer/src/getAllLayersAndTables.ts +30 -0
- package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
- package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
- package/packages/arcgis-rest-feature-layer/src/getService.ts +26 -0
- package/packages/arcgis-rest-feature-layer/src/helpers.ts +97 -0
- package/packages/arcgis-rest-feature-layer/src/index.ts +32 -0
- package/packages/arcgis-rest-feature-layer/src/query.ts +204 -0
- package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
- package/packages/arcgis-rest-feature-layer/src/update.ts +60 -0
- package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
- package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +200 -0
- package/packages/arcgis-rest-feature-layer/test/crud.test.ts +197 -0
- package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
- package/packages/arcgis-rest-feature-layer/test/getAllLayersAndTables.test.ts +28 -0
- package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
- package/packages/arcgis-rest-feature-layer/test/getService.test.ts +31 -0
- package/packages/arcgis-rest-feature-layer/test/helpers.test.ts +25 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/allLayersAndTablesResponse.ts +906 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +302 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +398 -0
- package/packages/arcgis-rest-feature-layer/test/query.test.ts +167 -0
- package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
- package/packages/arcgis-rest-geocoding/README.md +86 -0
- package/packages/arcgis-rest-geocoding/package.json +66 -0
- package/packages/arcgis-rest-geocoding/src/bulk.ts +104 -0
- package/packages/arcgis-rest-geocoding/src/geocode.ts +166 -0
- package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
- package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
- package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
- package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
- package/packages/arcgis-rest-geocoding/test/bulk.test.ts +194 -0
- package/packages/arcgis-rest-geocoding/test/geocode.test.ts +253 -0
- package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
- package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +591 -0
- package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
- package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
- package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
- package/packages/arcgis-rest-portal/README.md +73 -0
- package/packages/arcgis-rest-portal/package.json +64 -0
- package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
- package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
- package/packages/arcgis-rest-portal/src/groups/get.ts +184 -0
- package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
- package/packages/arcgis-rest-portal/src/groups/invite-users.ts +127 -0
- package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
- package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
- package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
- package/packages/arcgis-rest-portal/src/groups/remove-users.ts +76 -0
- package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
- package/packages/arcgis-rest-portal/src/groups/search.ts +47 -0
- package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
- package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
- package/packages/arcgis-rest-portal/src/index.ts +69 -0
- package/packages/arcgis-rest-portal/src/items/add.ts +138 -0
- package/packages/arcgis-rest-portal/src/items/content.ts +67 -0
- package/packages/arcgis-rest-portal/src/items/create.ts +150 -0
- package/packages/arcgis-rest-portal/src/items/export.ts +80 -0
- package/packages/arcgis-rest-portal/src/items/get.ts +437 -0
- package/packages/arcgis-rest-portal/src/items/helpers.ts +292 -0
- package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
- package/packages/arcgis-rest-portal/src/items/reassign.ts +61 -0
- package/packages/arcgis-rest-portal/src/items/remove.ts +141 -0
- package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
- package/packages/arcgis-rest-portal/src/items/update.ts +185 -0
- package/packages/arcgis-rest-portal/src/items/upload.ts +125 -0
- package/packages/arcgis-rest-portal/src/orgs/notification.ts +131 -0
- package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
- package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +30 -0
- package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
- package/packages/arcgis-rest-portal/src/sharing/helpers.ts +81 -0
- package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
- package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +336 -0
- package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +105 -0
- package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
- package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
- package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
- package/packages/arcgis-rest-portal/src/users/invitation.ts +156 -0
- package/packages/arcgis-rest-portal/src/users/notification.ts +68 -0
- package/packages/arcgis-rest-portal/src/users/search-users.ts +37 -0
- package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
- package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
- package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
- package/packages/arcgis-rest-portal/src/util/generic-search.ts +99 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +45 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +28 -0
- package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
- package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
- package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
- package/packages/arcgis-rest-portal/src/util/search.ts +42 -0
- package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +239 -0
- package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
- package/packages/arcgis-rest-portal/test/groups/get.test.ts +176 -0
- package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
- package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
- package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
- package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
- package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
- package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
- package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +62 -0
- package/packages/arcgis-rest-portal/test/items/add.test.ts +323 -0
- package/packages/arcgis-rest-portal/test/items/content.test.ts +156 -0
- package/packages/arcgis-rest-portal/test/items/create.test.ts +400 -0
- package/packages/arcgis-rest-portal/test/items/export.test.ts +122 -0
- package/packages/arcgis-rest-portal/test/items/get.test.ts +583 -0
- package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
- package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
- package/packages/arcgis-rest-portal/test/items/reassign.test.ts +131 -0
- package/packages/arcgis-rest-portal/test/items/remove.test.ts +261 -0
- package/packages/arcgis-rest-portal/test/items/search.test.ts +275 -0
- package/packages/arcgis-rest-portal/test/items/update.test.ts +556 -0
- package/packages/arcgis-rest-portal/test/items/upload.test.ts +282 -0
- package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
- package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
- package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
- package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
- package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
- package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
- package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
- package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
- package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
- package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
- package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +144 -0
- package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +59 -0
- package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +46 -0
- package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
- package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
- package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1328 -0
- package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
- package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
- package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
- package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
- package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
- package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
- package/packages/arcgis-rest-portal/test/users/search.test.ts +42 -0
- package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
- package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +340 -0
- package/packages/arcgis-rest-portal/test/util/array.test.ts +30 -0
- package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +68 -0
- package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
- package/packages/arcgis-rest-portal/test/util/portal.test.ts +148 -0
- package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +22 -0
- package/packages/arcgis-rest-portal/tsconfig.json +6 -0
- package/packages/arcgis-rest-request/README.md +72 -0
- package/packages/arcgis-rest-request/package.json +60 -0
- package/packages/arcgis-rest-request/src/index.ts +25 -0
- package/packages/arcgis-rest-request/src/request.ts +433 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
- package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
- package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
- package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
- package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
- package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
- package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
- package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
- package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
- package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +54 -0
- package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
- package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
- package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
- package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
- package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
- package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +35 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
- package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
- package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
- package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
- package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
- package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
- package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
- package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
- package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
- package/packages/arcgis-rest-request/test/request.test.ts +621 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
- package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
- package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
- package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
- package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +18 -0
- package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
- package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
- package/packages/arcgis-rest-request/tsconfig.json +4 -0
- package/packages/arcgis-rest-routing/README.md +75 -0
- package/packages/arcgis-rest-routing/package.json +65 -0
- package/packages/arcgis-rest-routing/src/closestFacility.ts +225 -0
- package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
- package/packages/arcgis-rest-routing/src/index.ts +14 -0
- package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +223 -0
- package/packages/arcgis-rest-routing/src/serviceArea.ts +173 -0
- package/packages/arcgis-rest-routing/src/solveRoute.ts +180 -0
- package/packages/arcgis-rest-routing/test/closestFacility.test.ts +683 -0
- package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
- package/packages/arcgis-rest-routing/test/mocks/responses.ts +13316 -0
- package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +795 -0
- package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
- package/packages/arcgis-rest-routing/test/solveRoute.test.ts +677 -0
- package/packages/arcgis-rest-routing/tsconfig.json +6 -0
- package/packages/arcgis-rest-service-admin/README.md +73 -0
- package/packages/arcgis-rest-service-admin/package.json +65 -0
- package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
- package/packages/arcgis-rest-service-admin/src/create.ts +189 -0
- package/packages/arcgis-rest-service-admin/src/get-service-admin-info.ts +34 -0
- package/packages/arcgis-rest-service-admin/src/get-view-sources.ts +20 -0
- package/packages/arcgis-rest-service-admin/src/index.ts +14 -0
- package/packages/arcgis-rest-service-admin/src/update.ts +50 -0
- package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
- package/packages/arcgis-rest-service-admin/test/create.test.ts +294 -0
- package/packages/arcgis-rest-service-admin/test/get-service-admin-info.test.ts +37 -0
- package/packages/arcgis-rest-service-admin/test/get-view-sources.test.ts +40 -0
- package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
- package/packages/arcgis-rest-service-admin/test/mocks/service.ts +81 -0
- package/packages/arcgis-rest-service-admin/test/update.test.ts +115 -0
- package/packages/arcgis-rest-service-admin/tsconfig.json +5 -0
- package/packages/arcgis-rest-types/README.md +66 -0
- package/packages/arcgis-rest-types/package.json +54 -0
- package/packages/arcgis-rest-types/src/feature.ts +42 -0
- package/packages/arcgis-rest-types/src/geometry.ts +272 -0
- package/packages/arcgis-rest-types/src/group.ts +72 -0
- package/packages/arcgis-rest-types/src/index.ts +9 -0
- package/packages/arcgis-rest-types/src/item.ts +81 -0
- package/packages/arcgis-rest-types/src/service.ts +156 -0
- package/packages/arcgis-rest-types/src/statisticDefinition.ts +33 -0
- package/packages/arcgis-rest-types/src/symbol.ts +170 -0
- package/packages/arcgis-rest-types/src/user.ts +49 -0
- package/packages/arcgis-rest-types/src/webmap.ts +1405 -0
- package/packages/arcgis-rest-types/tsconfig.json +10 -0
- package/support/changelog.js +393 -0
- package/support/deploy-doc-site.js +16 -0
- package/support/dev.sh +6 -0
- package/support/publish.sh +47 -0
- package/support/test-helpers.js +9 -0
- package/tsconfig.json +63 -0
- package/umd-base-profile.js +81 -0
- package/umd-production-profile.js +13 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
// Import VueJS.
|
2
|
+
import Vue from "vue";
|
3
|
+
// Using the router to treat this like a single-page application.
|
4
|
+
import Router from "vue-router";
|
5
|
+
// Import the store plugin, Vuex.
|
6
|
+
import Vuex from "vuex";
|
7
|
+
// Import the arcgis-rest-auth bit required for deserializing local storage sessions.
|
8
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
9
|
+
// Importing the main application.
|
10
|
+
import App from "./components/App.vue";
|
11
|
+
// Importing the authentication component that post-processes the OAuth response.
|
12
|
+
import Authenticate from "./components/Authenticate.vue";
|
13
|
+
|
14
|
+
// Tell Vue to use the vue-router plugin.
|
15
|
+
Vue.use(Router);
|
16
|
+
|
17
|
+
// Define the router.
|
18
|
+
const router = new Router({
|
19
|
+
routes: [
|
20
|
+
// The root path will render the main application component.
|
21
|
+
{ path: "/", component: App },
|
22
|
+
// At /authenticate, the authentication component will be rendered.
|
23
|
+
{ path: "/authenticate", component: Authenticate }
|
24
|
+
]
|
25
|
+
});
|
26
|
+
|
27
|
+
// Tell Vue to use the Vuex plugin.
|
28
|
+
Vue.use(Vuex);
|
29
|
+
|
30
|
+
// Define the application store.
|
31
|
+
const store = new Vuex.Store({
|
32
|
+
state: {
|
33
|
+
session: null
|
34
|
+
},
|
35
|
+
mutations: {
|
36
|
+
setSession(state, data) {
|
37
|
+
state.session = data;
|
38
|
+
}
|
39
|
+
},
|
40
|
+
actions: {
|
41
|
+
updateSession({ commit }, session) {
|
42
|
+
// Apply the changes to the state's session.
|
43
|
+
commit("setSession", session);
|
44
|
+
// If the browser supports local storage, re-serialize it on change
|
45
|
+
// and update the local storage.
|
46
|
+
if (typeof Storage !== "undefined") {
|
47
|
+
if (session && session.serialize) {
|
48
|
+
localStorage.setItem(
|
49
|
+
"__ARCGIS_REST_USER_SESSION__",
|
50
|
+
session.serialize()
|
51
|
+
);
|
52
|
+
} else {
|
53
|
+
localStorage.removeItem("__ARCGIS_REST_USER_SESSION__");
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
});
|
59
|
+
|
60
|
+
// Define the main Vue instance.
|
61
|
+
new Vue({
|
62
|
+
el: "#app",
|
63
|
+
router,
|
64
|
+
store,
|
65
|
+
data() {
|
66
|
+
return {};
|
67
|
+
},
|
68
|
+
created() {
|
69
|
+
// Load any previously serialized session.
|
70
|
+
this.loadSerializedSession();
|
71
|
+
},
|
72
|
+
methods: {
|
73
|
+
// Function to load any serialized session from local storage.
|
74
|
+
loadSerializedSession() {
|
75
|
+
if (typeof Storage !== "undefined") {
|
76
|
+
const serializedSession = localStorage.getItem(
|
77
|
+
"__ARCGIS_REST_USER_SESSION__"
|
78
|
+
);
|
79
|
+
if (serializedSession !== null && serializedSession !== "undefined") {
|
80
|
+
// If there is a serialized session, deserialize it into a new session object.
|
81
|
+
store.dispatch(
|
82
|
+
"updateSession",
|
83
|
+
UserSession.deserialize(serializedSession)
|
84
|
+
);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
},
|
89
|
+
render(createElement) {
|
90
|
+
return createElement("router-view");
|
91
|
+
}
|
92
|
+
});
|
@@ -0,0 +1,123 @@
|
|
1
|
+
# Web map checker
|
2
|
+
|
3
|
+
This app demonstrates the use of ArcGIS REST JS with [sapper](https://sapper.svelte.technology/) a cutting edge web framework. [sapper is built on the [svelte](https://svelte.technology) component library and is a universal app framework that supports both client and server side rendering.
|
4
|
+
|
5
|
+
You may want to use a universal framework in your app for a few reasons:
|
6
|
+
|
7
|
+
1. Better SEO, because the app is rendered on the server search engines like Google can read the content and index your pages without using JavaScript.
|
8
|
+
2. Very fast performance. Because the app is rendered on the server browsers will render the initial HTML on the page providing a very fast experience, then JavaScript loads making the app interactive.
|
9
|
+
3. Server based sign in experiences can have longer sessions with less logins.
|
10
|
+
4. You might want access to a users token on the server side to perform background tasks like monitoring or data processing.
|
11
|
+
5. Increased security. In this example a users token is never stored on the client. Instead a a secure cookie is used on the client that pairs with an encrypted session store on the server. The client only gets short lived access tokens and is expected to frequently refresh them.
|
12
|
+
|
13
|
+
Since ArcGIS REST JS works on both the client and the server it is ideal for use in universal app frameworks.
|
14
|
+
|
15
|
+
Sapper is still in alpha and should not be used for production. However there are other universal app frameworks like [Nuxt](https://nuxtjs.org/) (Vue JS) and Next](https://nextjs.org/) (React)
|
16
|
+
|
17
|
+
## App Overview
|
18
|
+
|
19
|
+
Sapper works by starting up an [Express JS](https://expressjs.com/) web server and creating a route for each of the files in `src/routes`. Files ending in `.js` are API endpoints and files ending in `.html` are rendered as Svelte components.
|
20
|
+
|
21
|
+
The app has 4 API endpoints
|
22
|
+
|
23
|
+
* `src/routes/auth/authorize.js` - starts the oAuth 2.0 process to sign in a user.
|
24
|
+
* `src/routes/auth/post-sign-in.js` - completes the oAuth 2.0 process.
|
25
|
+
* `src/routes/auth/exchange-token.js` - provides a fresh token based on the secure session cookie when the current token expires.
|
26
|
+
* `src/routes/auth/sign-out.js` - signs the user out, destroying the saved session on the server and the session cookie on the client.
|
27
|
+
|
28
|
+
and 3 Svelte routes:
|
29
|
+
|
30
|
+
* `src/routes/index.html` - renders the main page for signed out users which shows a sign in buttons.
|
31
|
+
* `src/routes/webmaps/index.html` - renders a list of the users webmaps
|
32
|
+
* `src/routes/webmaps/[webmapId].html` - renders a detailed view for a webmap. The brackets indicate that will be replaced by an actual URL like `/webmaps/c7f2cdb8638147b0b5b792bcee800b48`
|
33
|
+
|
34
|
+
The `server.js` file defines the server and sets up [`express-session`](https://www.npmjs.com/package/express-session) with [`session-file-store`](https://www.npmjs.com/package/session-file-store) as well as defining the server side Svelte `Store` used to power the server side rendering.
|
35
|
+
|
36
|
+
`client.js` consumes the server side Svelte `Store` and uses it to hydrate the client side `Store`.
|
37
|
+
|
38
|
+
Once the app boots subsequent navigation by the user is handled client side by Svelte for better performance.
|
39
|
+
|
40
|
+
This app is based on https://github.com/sveltejs/sapper-template.
|
41
|
+
|
42
|
+
## Running this demo
|
43
|
+
|
44
|
+
1. Like all the other demo apps, run `npm run bootstrap` in the root directory.
|
45
|
+
1. `cd demos/webmap-checker-sapper`
|
46
|
+
1. Create a `.env` file at the root of the `webmap-checker-sapper` folder that contains the following:
|
47
|
+
```text
|
48
|
+
CLIENT_ID=YfFEWoHwtOY4KP1t
|
49
|
+
REDIRECT_URI=http://localhost:3000/auth/post-sign-in
|
50
|
+
ENCRYPTION_KEY=vf00tpMiGRSCO36yrbNm9jWyAStIJWJ5
|
51
|
+
SESSION_SECRET=Sb66uSlcA3RqyIXLOtwK5P1a37FvYqHD
|
52
|
+
PORT=3000
|
53
|
+
```
|
54
|
+
**Use these values only for development and testing out the demo.**
|
55
|
+
1. `npm run dev`
|
56
|
+
|
57
|
+
## Configuration
|
58
|
+
|
59
|
+
There are five config values stored in `.env`:
|
60
|
+
|
61
|
+
* `CLIENT_ID` - The client id from an app registered in ArcGIS Online. Directions for setting this up are part of the [named user login documentation](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/signing-in-arcgis-online-users/).
|
62
|
+
* `REDIRECT_URL` - A valid redirect URL from the app that owns the `CLIENT_ID`. Directions for setting this up are part of the [named user login documentation](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/signing-in-arcgis-online-users/).
|
63
|
+
* `ENCRYPTION_KEY` - Any string, but preferably a secure key from somewhere like https://randomkeygen.com/.
|
64
|
+
* `SESSION_SECRET` - Any string, but preferably a secure key from somewhere like https://randomkeygen.com/.
|
65
|
+
* `PORT` - The port to run the development server on.
|
66
|
+
|
67
|
+
## Authentication Workflow
|
68
|
+
|
69
|
+
This sample differs from other workflows in how authentication works but shows the flexibility of the ArcGIS REST JS library to perform server based authentication, store sessions on the server and seamlessly share sessions with the client and ArcGIS API for JavaScript
|
70
|
+
|
71
|
+
1. First a user sign in with OAuth 2.0. This starts by sending the user to `/auth/authorize`:
|
72
|
+
|
73
|
+
```html
|
74
|
+
<a href="/auth/authorize">Sign in to get stared</a>
|
75
|
+
```
|
76
|
+
2. Inside the `/auth/authorize` endpoint we call [`UserSession.authorize()`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#authorize) to start the Oauth 2.0 login process. This redirects the user to the ArcGIS Online authorization page where they will sign in with their ArcGIS Online account.
|
77
|
+
3. After the user signs in with their ArcGIS Online account they are redirected back the app at the configured redirect URL which is `/auth/post-sign-in`. We then call [`UserSession.exchangeAuthorizationCode()`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#exchangeAuthorizationCode) which finishes the authroization workflow and returns a [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/) that we can use to authenticate subsequent requests. In order to persist the session we assign it to `request.session.userSession` which triggers the [Express session middleware](https://github.com/expressjs/session). `/auth/post-sign-in` finishes by redirecting the user to `/webmaps` which is the main landing page of the app.
|
78
|
+
4. When `/auth/post-sign-in` finishes the session middleware saves the values assigned to `request.session` which includes our [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/). The session middleware uses a defined store (in this case [`session-file-store`](https://www.npmjs.com/package/session-file-store)) to serialize and encrypt the session to a file on disk. Then the session middleware sets a cookie on the client. On subsequent requests the session middleware will use the cookie to lookup the encrypted session and rehydrate our [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/).
|
79
|
+
5. Since we also need access ot our [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/) on the client we can use [`UserSession.toJSON()`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#toJSON) method to convert it to a JSON object that can be serialized and sent to the client. Since our server-side session includes a refresh token we also need to delete the refresh token from the session before sending it to the client. The serialized session is sent to the client via sappers `Store` class.
|
80
|
+
6. On the client the serialized session is recreated and can now be used for requests on the client.
|
81
|
+
7. Since sessions on the client are short lived (they expire after a few hours) we need a mechanism to refresh the client side session with a new token if the old token expires. This needs to work seamlessly even in the middle of a series of requests. ArcGIS REST JS provides an easy mechanism to do this. Consider the following request:
|
82
|
+
|
83
|
+
```js
|
84
|
+
getItem(webmapId, {
|
85
|
+
authentication: userSession // userSession is expired
|
86
|
+
}).catch(error => {
|
87
|
+
// handle the error
|
88
|
+
})
|
89
|
+
```
|
90
|
+
|
91
|
+
`error` will be an instance of either [`ArcGISRequestError`](https://esri.github.io/arcgis-rest-js/api/request/ArcGISRequestError/) or [`ArcGISAuthError`](https://esri.github.io/arcgis-rest-js/api/request/ArcGISAuthError/). `ArcGISAuthError` includes a special `retry()` method that can accept a new session and retry the request. You can them implement your logic to refresh a session and retry the request as in this example:
|
92
|
+
|
93
|
+
```js
|
94
|
+
getItem(webmapId, {
|
95
|
+
authentication: userSession // userSession is expired
|
96
|
+
}).catch(error => {
|
97
|
+
if (error.name === "ArcGISAuthError") {
|
98
|
+
return methodThatRefreshesSession(error).then((newSession) => {
|
99
|
+
return error.retry(newSession);
|
100
|
+
});
|
101
|
+
}
|
102
|
+
|
103
|
+
throw error; // otherwise rethrow the error so we can handle it in a later catch
|
104
|
+
}).then(response => {
|
105
|
+
// handle a successful response.
|
106
|
+
}).catch(error => {
|
107
|
+
// handle an actual request failure or error.
|
108
|
+
});
|
109
|
+
```
|
110
|
+
8. The retry workflow is handled entirely by a simple utility function called `retryWithNewSession()`. In order to get a new token a request is made to `/auth/exchange-token`. This request includes the session cookie so the server can find the instance of [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/) and call [`UserSession.refreshSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#refreshSession) to refresh the session, strip out the refresh token and return the new session to the client which then retries the request with the new authentication.
|
111
|
+
9. In order to load the webmaps we also need to pass our [`UserSession`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/) to the ArcGIS API for JavaScript [`IdentityManager`](https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-IdentityManager.html) to allow it load resources that require authentication. You can use [`UserSession.toCredential()`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#toCredential-summary) to convert the session into a [`Credential`](https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-Credential.html) to pass to [`IdentityManager`](https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-IdentityManager.html) as shown below:
|
112
|
+
|
113
|
+
```js
|
114
|
+
require([
|
115
|
+
"esri/identity/IdentityManager"
|
116
|
+
], function (esriId){
|
117
|
+
esriId.registerToken(session.toCredential());
|
118
|
+
});
|
119
|
+
```
|
120
|
+
|
121
|
+
New credentials should also be registered with [`IdentityManager`](https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-IdentityManager.html) when they are retrieved from the server as older sessions expire.
|
122
|
+
|
123
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
version: "{build}"
|
2
|
+
|
3
|
+
shallow_clone: true
|
4
|
+
|
5
|
+
init:
|
6
|
+
- git config --global core.autocrlf false
|
7
|
+
|
8
|
+
build: off
|
9
|
+
|
10
|
+
environment:
|
11
|
+
matrix:
|
12
|
+
# node.js
|
13
|
+
- nodejs_version: stable
|
14
|
+
|
15
|
+
install:
|
16
|
+
- ps: Install-Product node $env:nodejs_version
|
17
|
+
- npm install cypress
|
18
|
+
- npm install
|
@@ -0,0 +1,19 @@
|
|
1
|
+
describe('Sapper template app', () => {
|
2
|
+
beforeEach(() => {
|
3
|
+
cy.visit('/')
|
4
|
+
});
|
5
|
+
|
6
|
+
it('has the correct <h1>', () => {
|
7
|
+
cy.contains('h1', 'Great success!')
|
8
|
+
});
|
9
|
+
|
10
|
+
it('navigates to /about', () => {
|
11
|
+
cy.get('nav a').contains('about').click();
|
12
|
+
cy.url().should('include', '/about');
|
13
|
+
});
|
14
|
+
|
15
|
+
it('navigates to /blog', () => {
|
16
|
+
cy.get('nav a').contains('blog').click();
|
17
|
+
cy.url().should('include', '/blog');
|
18
|
+
});
|
19
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// ***********************************************************
|
2
|
+
// This example plugins/index.js can be used to load plugins
|
3
|
+
//
|
4
|
+
// You can change the location of this file or turn off loading
|
5
|
+
// the plugins file with the 'pluginsFile' configuration option.
|
6
|
+
//
|
7
|
+
// You can read more here:
|
8
|
+
// https://on.cypress.io/plugins-guide
|
9
|
+
// ***********************************************************
|
10
|
+
|
11
|
+
// This function is called when a project is opened or re-opened (e.g. due to
|
12
|
+
// the project's config changing)
|
13
|
+
|
14
|
+
module.exports = (on, config) => {
|
15
|
+
// `on` is used to hook into various events Cypress emits
|
16
|
+
// `config` is the resolved Cypress config
|
17
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
// ***********************************************
|
2
|
+
// This example commands.js shows you how to
|
3
|
+
// create various custom commands and overwrite
|
4
|
+
// existing commands.
|
5
|
+
//
|
6
|
+
// For more comprehensive examples of custom
|
7
|
+
// commands please read more here:
|
8
|
+
// https://on.cypress.io/custom-commands
|
9
|
+
// ***********************************************
|
10
|
+
//
|
11
|
+
//
|
12
|
+
// -- This is a parent command --
|
13
|
+
// Cypress.Commands.add("login", (email, password) => { ... })
|
14
|
+
//
|
15
|
+
//
|
16
|
+
// -- This is a child command --
|
17
|
+
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
18
|
+
//
|
19
|
+
//
|
20
|
+
// -- This is a dual command --
|
21
|
+
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
|
22
|
+
//
|
23
|
+
//
|
24
|
+
// -- This is will overwrite an existing command --
|
25
|
+
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// ***********************************************************
|
2
|
+
// This example support/index.js is processed and
|
3
|
+
// loaded automatically before your test files.
|
4
|
+
//
|
5
|
+
// This is a great place to put global configuration and
|
6
|
+
// behavior that modifies Cypress.
|
7
|
+
//
|
8
|
+
// You can change the location of this file or turn off
|
9
|
+
// automatically serving support files with the
|
10
|
+
// 'supportFile' configuration option.
|
11
|
+
//
|
12
|
+
// You can read more here:
|
13
|
+
// https://on.cypress.io/configuration
|
14
|
+
// ***********************************************************
|
15
|
+
|
16
|
+
// Import commands.js using ES2015 syntax:
|
17
|
+
import './commands'
|
18
|
+
|
19
|
+
// Alternatively you can use CommonJS syntax:
|
20
|
+
// require('./commands')
|