sintfacilis 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,50 @@
|
|
1
|
+
{
|
2
|
+
"name": "sapper-webmap-checker",
|
3
|
+
"description": "this thing is cray cray",
|
4
|
+
"private": true,
|
5
|
+
"version": "3.3.0",
|
6
|
+
"scripts": {
|
7
|
+
"dev": "sapper dev",
|
8
|
+
"build:legacy": "sapper build --legacy",
|
9
|
+
"export": "sapper export --legacy",
|
10
|
+
"start": "node __sapper__/build",
|
11
|
+
"cy:run": "cypress run",
|
12
|
+
"cy:open": "cypress open",
|
13
|
+
"test": "run-p --race dev cy:run"
|
14
|
+
},
|
15
|
+
"dependencies": {
|
16
|
+
"@esri/arcgis-rest-auth": "^3.3.0",
|
17
|
+
"@esri/arcgis-rest-portal": "^3.3.0",
|
18
|
+
"@esri/arcgis-rest-request": "^3.3.0",
|
19
|
+
"compression": "^1.7.1",
|
20
|
+
"cookies": "^0.7.3",
|
21
|
+
"cross-fetch": "^3.0.0",
|
22
|
+
"dotenv": "^6.2.0",
|
23
|
+
"esri-loader": "^2.6.0",
|
24
|
+
"express": "^4.16.4",
|
25
|
+
"express-session": "^1.15.6",
|
26
|
+
"fs-extra": "^7.0.1",
|
27
|
+
"isomorphic-form-data": "^1.0.0",
|
28
|
+
"polka": "^0.4.0",
|
29
|
+
"session-file-store": "^1.2.0",
|
30
|
+
"sirv": "^0.2.0"
|
31
|
+
},
|
32
|
+
"devDependencies": {
|
33
|
+
"@babel/core": "^7.0.0",
|
34
|
+
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
|
35
|
+
"@babel/plugin-transform-runtime": "^7.0.0",
|
36
|
+
"@babel/preset-env": "^7.0.0",
|
37
|
+
"@babel/runtime": "^7.0.0",
|
38
|
+
"chokidar": "^2.1.0",
|
39
|
+
"npm-run-all": "^4.1.5",
|
40
|
+
"rollup": "^1.0.0",
|
41
|
+
"rollup-plugin-babel": "^4.0.2",
|
42
|
+
"rollup-plugin-commonjs": "^9.1.6",
|
43
|
+
"rollup-plugin-node-resolve": "^4.0.0",
|
44
|
+
"rollup-plugin-replace": "^2.0.0",
|
45
|
+
"rollup-plugin-svelte": "^5.0.1",
|
46
|
+
"rollup-plugin-terser": "^1.0.1",
|
47
|
+
"sapper": "^0.24.2",
|
48
|
+
"svelte": "^2.0.0"
|
49
|
+
}
|
50
|
+
}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
import resolve from 'rollup-plugin-node-resolve';
|
2
|
+
import replace from 'rollup-plugin-replace';
|
3
|
+
import commonjs from 'rollup-plugin-commonjs';
|
4
|
+
import svelte from 'rollup-plugin-svelte';
|
5
|
+
import babel from 'rollup-plugin-babel';
|
6
|
+
import { terser } from 'rollup-plugin-terser';
|
7
|
+
import config from 'sapper/config/rollup.js';
|
8
|
+
import pkg from './package.json';
|
9
|
+
|
10
|
+
const mode = process.env.NODE_ENV;
|
11
|
+
const dev = mode === 'development';
|
12
|
+
const legacy = !!process.env.SAPPER_LEGACY_BUILD;
|
13
|
+
|
14
|
+
export default {
|
15
|
+
client: {
|
16
|
+
input: config.client.input(),
|
17
|
+
output: config.client.output(),
|
18
|
+
plugins: [
|
19
|
+
replace({
|
20
|
+
'process.browser': true,
|
21
|
+
'process.env.NODE_ENV': JSON.stringify(mode)
|
22
|
+
}),
|
23
|
+
svelte({
|
24
|
+
dev,
|
25
|
+
hydratable: true,
|
26
|
+
emitCss: true
|
27
|
+
}),
|
28
|
+
resolve(),
|
29
|
+
commonjs(),
|
30
|
+
|
31
|
+
legacy && babel({
|
32
|
+
extensions: ['.js', '.html'],
|
33
|
+
runtimeHelpers: true,
|
34
|
+
exclude: ['node_modules/@babel/**'],
|
35
|
+
presets: [
|
36
|
+
['@babel/preset-env', {
|
37
|
+
targets: '> 0.25%, not dead'
|
38
|
+
}]
|
39
|
+
],
|
40
|
+
plugins: [
|
41
|
+
'@babel/plugin-syntax-dynamic-import',
|
42
|
+
['@babel/plugin-transform-runtime', {
|
43
|
+
useESModules: true
|
44
|
+
}]
|
45
|
+
]
|
46
|
+
}),
|
47
|
+
|
48
|
+
!dev && terser({
|
49
|
+
module: true
|
50
|
+
})
|
51
|
+
],
|
52
|
+
},
|
53
|
+
|
54
|
+
server: {
|
55
|
+
input: config.server.input(),
|
56
|
+
output: config.server.output(),
|
57
|
+
plugins: [
|
58
|
+
replace({
|
59
|
+
'process.browser': false,
|
60
|
+
'process.env.NODE_ENV': JSON.stringify(mode)
|
61
|
+
}),
|
62
|
+
svelte({
|
63
|
+
generate: 'ssr',
|
64
|
+
dev
|
65
|
+
}),
|
66
|
+
resolve(),
|
67
|
+
commonjs()
|
68
|
+
],
|
69
|
+
external: Object.keys(pkg.dependencies).concat(
|
70
|
+
require('module').builtinModules || Object.keys(process.binding('natives'))
|
71
|
+
),
|
72
|
+
},
|
73
|
+
|
74
|
+
serviceworker: {
|
75
|
+
input: config.serviceworker.input(),
|
76
|
+
output: config.serviceworker.output(),
|
77
|
+
plugins: [
|
78
|
+
resolve(),
|
79
|
+
replace({
|
80
|
+
'process.browser': true,
|
81
|
+
'process.env.NODE_ENV': JSON.stringify(mode)
|
82
|
+
}),
|
83
|
+
commonjs(),
|
84
|
+
!dev && terser()
|
85
|
+
]
|
86
|
+
}
|
87
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import * as sapper from "../__sapper__/client.js";
|
2
|
+
import { Store } from "svelte/store.js";
|
3
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
4
|
+
|
5
|
+
// sapper will have already rendered the HTML page in a specific state
|
6
|
+
// based on the Store we defined in server.js but we need to rehydrate that
|
7
|
+
// state on the client and start sapper.
|
8
|
+
sapper.start({
|
9
|
+
target: document.querySelector("#app"),
|
10
|
+
store: data => {
|
11
|
+
// `data` is whatever was in the Store on the server side.
|
12
|
+
// if we have a session we can create a new UserSession that we can
|
13
|
+
// use with ArcGIS REST JS on the client.
|
14
|
+
return new Store({
|
15
|
+
session: data && data.session ? new UserSession(data.session) : null,
|
16
|
+
user: data.user,
|
17
|
+
org: data.org
|
18
|
+
});
|
19
|
+
}
|
20
|
+
});
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<h3>{title}</h3>
|
2
|
+
|
3
|
+
<!-- Render a link to ArcGIS Online -->
|
4
|
+
{#if itemId}
|
5
|
+
<p>
|
6
|
+
<a href="https://{$org.urlKey}.maps.arcgis.com/home/item.html?id={itemId}"
|
7
|
+
>View in ArcGIS Online</a
|
8
|
+
>
|
9
|
+
</p>
|
10
|
+
{/if}
|
11
|
+
|
12
|
+
<!-- Render a link to the service URL -->
|
13
|
+
{#if url || (item && item.url)}
|
14
|
+
<p>
|
15
|
+
<a href="{url || item.url}?token={$session.token}">
|
16
|
+
View Service URL
|
17
|
+
</a>
|
18
|
+
</p>
|
19
|
+
{/if}
|
20
|
+
|
21
|
+
<!-- Render this items sharing status-->
|
22
|
+
{#if itemId && item}
|
23
|
+
<p>Sharing Status: {item.access}</p>
|
24
|
+
{/if}
|
25
|
+
|
26
|
+
<!-- Render this items service status-->
|
27
|
+
{#if serviceHealth}
|
28
|
+
<p>Service Health: {serviceHealth}</p>
|
29
|
+
{/if}
|
30
|
+
|
31
|
+
<script>
|
32
|
+
import { getItem } from "@esri/arcgis-rest-portal";
|
33
|
+
import { request } from "@esri/arcgis-rest-request";
|
34
|
+
import { retryWithNewSession } from "../utils.js";
|
35
|
+
|
36
|
+
export default {
|
37
|
+
data: function() {
|
38
|
+
return {
|
39
|
+
serviceHealth: "unknown",
|
40
|
+
item: null
|
41
|
+
};
|
42
|
+
},
|
43
|
+
// runs every time the components state changes and only on the client
|
44
|
+
onstate({ changed, current, previous }) {
|
45
|
+
// this fires before oncreate, and on every state change.
|
46
|
+
// the first time it runs, `previous` is undefined
|
47
|
+
if (changed.url && current.url && !current.serviceHealthTimer) {
|
48
|
+
// check the service URL to see it is up
|
49
|
+
this.checkServiceStatus();
|
50
|
+
}
|
51
|
+
|
52
|
+
// load the item details async
|
53
|
+
if (changed.itemId && current.itemId) {
|
54
|
+
this.loadItemId();
|
55
|
+
}
|
56
|
+
},
|
57
|
+
// removes the setTimeout function when this component is destroyed
|
58
|
+
ondestroy() {
|
59
|
+
const { serviceHealthTimer } = this.get();
|
60
|
+
if (serviceHealthTimer) {
|
61
|
+
clearTimeout(serviceHealthTimer);
|
62
|
+
}
|
63
|
+
},
|
64
|
+
methods: {
|
65
|
+
// load more info about an item with ArcGIS REST JS
|
66
|
+
loadItemId() {
|
67
|
+
const { itemId, url } = this.get();
|
68
|
+
const { session } = this.store.get();
|
69
|
+
|
70
|
+
if (itemId) {
|
71
|
+
getItem(itemId, {
|
72
|
+
authentication: session
|
73
|
+
})
|
74
|
+
.catch(error => {
|
75
|
+
return retryWithNewSession(error, fetch);
|
76
|
+
})
|
77
|
+
.then(item => {
|
78
|
+
this.set({ item, url: url || item.url });
|
79
|
+
});
|
80
|
+
}
|
81
|
+
},
|
82
|
+
|
83
|
+
// Hit the service endpoint for a URL to see if the service is live
|
84
|
+
// Using the generic request method is useful for arbitrary methods
|
85
|
+
// or methods that aren't supported directly by ArcGIS Rest JS.
|
86
|
+
checkServiceStatus() {
|
87
|
+
const { url } = this.get();
|
88
|
+
const { session } = this.store.get();
|
89
|
+
if (url) {
|
90
|
+
request(url, { method: "get", authentication: session })
|
91
|
+
.then(response => {
|
92
|
+
this.set({ serviceHealth: "good" });
|
93
|
+
})
|
94
|
+
.catch(() => {
|
95
|
+
this.set({ serviceHealth: "bad" });
|
96
|
+
})
|
97
|
+
.finally(() => {
|
98
|
+
// setup a setTimeout so that this runs continuously
|
99
|
+
const serviceHealthTimer = setTimeout(() => {
|
100
|
+
this.checkServiceStatus();
|
101
|
+
}, 3000);
|
102
|
+
this.set({ serviceHealthTimer });
|
103
|
+
});
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
};
|
108
|
+
</script>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<nav class="flex items-center justify-between flex-wrap bg-teal p-6">
|
2
|
+
<div class="flex items-center flex-no-shrink text-white mr-6">
|
3
|
+
<span class="font-semibold text-4xl">Web Map Dependency Checker</span>
|
4
|
+
</div>
|
5
|
+
{#if $session}
|
6
|
+
<p class="text-white">
|
7
|
+
Signed in as {$session.username}
|
8
|
+
<a
|
9
|
+
href="/auth/sign-out"
|
10
|
+
class="inline-block px-6 py-3 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal hover:bg-white mt-1"
|
11
|
+
>Sign out</a
|
12
|
+
>
|
13
|
+
</p>
|
14
|
+
{:else}
|
15
|
+
<a
|
16
|
+
href="/auth/authorize"
|
17
|
+
class="inline-block px-6 py-3 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal hover:bg-white mt-1"
|
18
|
+
>Sign in</a
|
19
|
+
>
|
20
|
+
{/if}
|
21
|
+
</nav>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
<!-- We need to use a ref here so we can access this div inside out component -->
|
2
|
+
<div ref:mapContainer class="webmap-container"></div>
|
3
|
+
|
4
|
+
<style>
|
5
|
+
.webmap-container {
|
6
|
+
width: 100%;
|
7
|
+
height: 400px;
|
8
|
+
}
|
9
|
+
</style>
|
10
|
+
<script>
|
11
|
+
import { loadModules, loadCss } from "esri-loader";
|
12
|
+
|
13
|
+
export default {
|
14
|
+
// oncreate run only the client
|
15
|
+
oncreate() {
|
16
|
+
this.intializeWebMap();
|
17
|
+
},
|
18
|
+
methods: {
|
19
|
+
intializeWebMap() {
|
20
|
+
// get the id of the webmap from the component
|
21
|
+
const { itemId } = this.get();
|
22
|
+
|
23
|
+
// set the session from the global store
|
24
|
+
const { session } = this.store.get();
|
25
|
+
|
26
|
+
// load the CSS dynamically with Esri Loader
|
27
|
+
loadCss("https://js.arcgis.com/4.10/esri/css/main.css");
|
28
|
+
|
29
|
+
// load JS API modules with Esri Loader
|
30
|
+
loadModules([
|
31
|
+
"esri/views/MapView",
|
32
|
+
"esri/WebMap",
|
33
|
+
"esri/identity/IdentityManager"
|
34
|
+
])
|
35
|
+
.then(([MapView, WebMap, esriId]) => {
|
36
|
+
// since our webmap might be private we can pass teh credentials
|
37
|
+
// from the ArcGIS REST JS session to the JS API Identity Manager
|
38
|
+
// the JS API will then use these credentials for future requests
|
39
|
+
esriId.registerToken(session.toCredential());
|
40
|
+
|
41
|
+
// then we load a web map from an id
|
42
|
+
var webmap = new WebMap({
|
43
|
+
portalItem: {
|
44
|
+
// autocasts as new PortalItem()
|
45
|
+
id: itemId
|
46
|
+
}
|
47
|
+
});
|
48
|
+
|
49
|
+
// and we show that map in a container
|
50
|
+
var view = new MapView({
|
51
|
+
map: webmap,
|
52
|
+
container: this.refs.mapContainer
|
53
|
+
});
|
54
|
+
})
|
55
|
+
.catch(err => {
|
56
|
+
// handle any errors
|
57
|
+
console.error(err);
|
58
|
+
});
|
59
|
+
}
|
60
|
+
}
|
61
|
+
};
|
62
|
+
</script>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<svelte:head>
|
2
|
+
<title>{status}</title>
|
3
|
+
</svelte:head>
|
4
|
+
|
5
|
+
<h1>{status}</h1>
|
6
|
+
|
7
|
+
<p>{error.message}</p>
|
8
|
+
|
9
|
+
{#if dev && error.stack}
|
10
|
+
<pre>{error.stack}</pre>
|
11
|
+
{/if}
|
12
|
+
|
13
|
+
<style>
|
14
|
+
h1, p {
|
15
|
+
margin: 0 auto;
|
16
|
+
}
|
17
|
+
|
18
|
+
h1 {
|
19
|
+
font-size: 2.8em;
|
20
|
+
font-weight: 700;
|
21
|
+
margin: 0 0 0.5em 0;
|
22
|
+
}
|
23
|
+
|
24
|
+
p {
|
25
|
+
margin: 1em auto;
|
26
|
+
}
|
27
|
+
|
28
|
+
@media (min-width: 480px) {
|
29
|
+
h1 {
|
30
|
+
font-size: 4em;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
</style>
|
34
|
+
|
35
|
+
<script>
|
36
|
+
export default {
|
37
|
+
helpers: {
|
38
|
+
dev: process.env.NODE_ENV === 'development'
|
39
|
+
}
|
40
|
+
};
|
41
|
+
</script>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<svelte:head>
|
2
|
+
<link
|
3
|
+
href="https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css"
|
4
|
+
rel="stylesheet"
|
5
|
+
/>
|
6
|
+
</svelte:head>
|
7
|
+
|
8
|
+
<Nav/>
|
9
|
+
|
10
|
+
<main class="p-6">
|
11
|
+
<svelte:component this="{child.component}" {...child.props} />
|
12
|
+
</main>
|
13
|
+
|
14
|
+
<script>
|
15
|
+
import Nav from '../components/Nav.html';
|
16
|
+
export default {
|
17
|
+
components: {
|
18
|
+
Nav
|
19
|
+
}
|
20
|
+
};
|
21
|
+
</script>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
2
|
+
|
3
|
+
// setup config variables
|
4
|
+
require("dotenv").config();
|
5
|
+
const { CLIENT_ID, REDIRECT_URI } = process.env;
|
6
|
+
|
7
|
+
// when a user access /auth/authorize we will allow
|
8
|
+
// UserSession.authorize to handle the response and
|
9
|
+
// redirect a user to the oAuth sign in page.
|
10
|
+
export function get(request, response, next) {
|
11
|
+
UserSession.authorize(
|
12
|
+
{
|
13
|
+
clientId: CLIENT_ID,
|
14
|
+
redirectUri: REDIRECT_URI
|
15
|
+
},
|
16
|
+
response
|
17
|
+
);
|
18
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// if a token expires on the client side we don't have to ask then to log in
|
2
|
+
// again. Instead we can maek a request to /auth/exchange-token. Since this
|
3
|
+
// request will be same-domain this request will get the session cookie and
|
4
|
+
// can hydrate request.session.userSession which we can then refresh getting a
|
5
|
+
// new token which can be used on the client.
|
6
|
+
export function get(request, response, next) {
|
7
|
+
request.session.userSession
|
8
|
+
.refreshSession()
|
9
|
+
.then(newSession => {
|
10
|
+
request.session.userSession = newSession;
|
11
|
+
const serializedSession = newSession.toJSON();
|
12
|
+
delete serializedSession.refreshToken;
|
13
|
+
delete serializedSession.refreshTokenExpires;
|
14
|
+
response.json(serializedSession);
|
15
|
+
})
|
16
|
+
.catch(error => {
|
17
|
+
console.error(error);
|
18
|
+
response.json(error);
|
19
|
+
});
|
20
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
2
|
+
|
3
|
+
// setup config variables
|
4
|
+
require("dotenv").config();
|
5
|
+
const { CLIENT_ID, REDIRECT_URI } = process.env;
|
6
|
+
debugger;
|
7
|
+
// a user will be redirected to /auth/post-sign-in after completing the sign in
|
8
|
+
// form in ArcGIS Online. We will allow UserSession.exchangeAuthorizationCode to
|
9
|
+
// trade the oAuth authorization code for a token and create a user session.
|
10
|
+
// We can then add that user session to the request.
|
11
|
+
export async function get(request, response, next) {
|
12
|
+
// exchange the auth token for a full `UserSession`
|
13
|
+
request.session.userSession = await UserSession.exchangeAuthorizationCode(
|
14
|
+
{
|
15
|
+
clientId: CLIENT_ID,
|
16
|
+
redirectUri: REDIRECT_URI
|
17
|
+
},
|
18
|
+
request.query.code
|
19
|
+
);
|
20
|
+
|
21
|
+
// once we have the session set redirect the user to the /webmaps
|
22
|
+
// route so they can use the app.
|
23
|
+
response.redirect("/webmaps");
|
24
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
// to sign a user out we have to destroy their session which will
|
2
|
+
// remove the encrypted file from disk and clear the session cookie
|
3
|
+
export function get(request, response, next) {
|
4
|
+
request.session.destroy(function(err) {
|
5
|
+
response.cookie("webmap-checker-session", { maxAge: 2592000000 });
|
6
|
+
|
7
|
+
// redirect user user to the homepag when we are done.
|
8
|
+
response.redirect("/");
|
9
|
+
});
|
10
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<svelte:head>
|
2
|
+
<title>Web Map Dependency Checker</title>
|
3
|
+
</svelte:head>
|
4
|
+
<!-- The $ prefix tells sapper to load this from the global store-->
|
5
|
+
{#if $session}
|
6
|
+
<p>
|
7
|
+
Signed in as {$session.username}
|
8
|
+
<a
|
9
|
+
href="webmaps"
|
10
|
+
class="inline-block px-6 py-3 leading-none border rounded text-teal border-teal hover:border-dark-teal hover:text-dark-teal hover:bg-white mt-1"
|
11
|
+
>View web maps</a
|
12
|
+
>
|
13
|
+
</p>
|
14
|
+
{:else}
|
15
|
+
<a
|
16
|
+
href="/auth/authorize"
|
17
|
+
class="inline-block px-6 py-3 leading-none border rounded text-teal border-teal hover:border-dark-teal hover:text-dark-teal hover:bg-white mt-1"
|
18
|
+
>Sign in to get started</a
|
19
|
+
>
|
20
|
+
{/if}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
<a href="./webmaps" class="text-blue">Back to list</a>
|
2
|
+
|
3
|
+
<h2>{item.title}</h2>
|
4
|
+
<p class="mb-4">Sharing Status: {item.access}</p>
|
5
|
+
|
6
|
+
<!-- show a preview of the webmap -->
|
7
|
+
{#if item}
|
8
|
+
<WebMap itemId="{item.id}" />
|
9
|
+
{/if}
|
10
|
+
|
11
|
+
<ul class="list-reset">
|
12
|
+
{#each layers as layer}
|
13
|
+
<li class="py-2">
|
14
|
+
<!-- show a list of layers and their statuses -->
|
15
|
+
<LayerStatus title="{layer.title}" itemId="{layer.itemId}" url="{layer.url}" serviceStatus="unknown" />
|
16
|
+
</li>
|
17
|
+
{/each}
|
18
|
+
</ul>
|
19
|
+
|
20
|
+
<pre class="max-w p-6 border border-grey-light rounded overflow-scroll shadow-lg">{webmapText}</pre>
|
21
|
+
|
22
|
+
<script>
|
23
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
24
|
+
import { getItem, getItemData } from "@esri/arcgis-rest-portal";
|
25
|
+
import { retryWithNewSession } from "../../utils.js";
|
26
|
+
import LayerStatus from "../../components/LayerStatus.html";
|
27
|
+
import WebMap from "../../components/WebMap.html";
|
28
|
+
|
29
|
+
export default {
|
30
|
+
components: {
|
31
|
+
LayerStatus,
|
32
|
+
WebMap
|
33
|
+
},
|
34
|
+
// preload runs on the server to generate the inital state of the page and
|
35
|
+
// when a user navigates on the client to create the new view of the page.
|
36
|
+
// We can use arcgis-rest-js here to preload data.
|
37
|
+
preload({ params }) {
|
38
|
+
const { session } = this.store.get();
|
39
|
+
|
40
|
+
// redirect to the homepage unless the user is signed in
|
41
|
+
if (!session) {
|
42
|
+
this.redirect(302, "/");
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
const { webmapId } = params;
|
47
|
+
|
48
|
+
// if we are on the server we won't have an actuall UserSession just a
|
49
|
+
// JSON representation of one. So we need to hydrate a UserSession.
|
50
|
+
const userSession = process.browser ? session : new UserSession(session);
|
51
|
+
|
52
|
+
// next we can request both the webmap item and the webmap data (the JSON)
|
53
|
+
// and process the data to get a list of layers.
|
54
|
+
return Promise.all([
|
55
|
+
getItem(webmapId, {
|
56
|
+
authentication: userSession
|
57
|
+
}).catch(error => {
|
58
|
+
return retryWithNewSession(error, this.fetch);
|
59
|
+
}),
|
60
|
+
getItemData(webmapId, {
|
61
|
+
authentication: userSession
|
62
|
+
}).catch(error => {
|
63
|
+
return retryWithNewSession(error, this.fetch);
|
64
|
+
})
|
65
|
+
]).then(([item, webmap]) => {
|
66
|
+
const layers = webmap.operationalLayers
|
67
|
+
.concat(webmap.baseMap.baseMapLayers)
|
68
|
+
.map(layer => {
|
69
|
+
return {
|
70
|
+
title: layer.title || layer.id,
|
71
|
+
url: layer.url,
|
72
|
+
itemId: layer.itemId
|
73
|
+
};
|
74
|
+
});
|
75
|
+
return {
|
76
|
+
item,
|
77
|
+
webmapText: JSON.stringify(webmap, null, 2),
|
78
|
+
layers: layers
|
79
|
+
};
|
80
|
+
});
|
81
|
+
}
|
82
|
+
};
|
83
|
+
</script>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<h1>Webmaps</h1>
|
2
|
+
|
3
|
+
<ul class="list-reset">
|
4
|
+
{#each webmaps as webmap}
|
5
|
+
<li class="py-2">
|
6
|
+
<a href="webmaps/{webmap.id}" class="text-blue">{webmap.title}</a>
|
7
|
+
</li>
|
8
|
+
{/each}
|
9
|
+
</ul>
|
10
|
+
|
11
|
+
<script>
|
12
|
+
import { UserSession } from "@esri/arcgis-rest-auth";
|
13
|
+
import { searchItems } from "@esri/arcgis-rest-portal";
|
14
|
+
import { retryWithNewSession } from "../../utils.js";
|
15
|
+
|
16
|
+
export default {
|
17
|
+
// preload runs on the server to generate the inital state of the page and
|
18
|
+
// when a user navigates on the client to create the new view of the page.
|
19
|
+
// We can use arcgis-rest-js here to preload data.
|
20
|
+
preload() {
|
21
|
+
const { session } = this.store.get();
|
22
|
+
|
23
|
+
// redirect to the homepage unless the user is signed in
|
24
|
+
if (!session) {
|
25
|
+
this.redirect(302, "/");
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
|
29
|
+
// if we are on the server we won't have an actuall UserSession just a
|
30
|
+
// JSON representation of one. So we need to hydrate a UserSession.
|
31
|
+
const userSession = process.browser ? session : new UserSession(session);
|
32
|
+
|
33
|
+
// now we can search for webmaps. Sapper will wait until this promise
|
34
|
+
// resolves before rendering the page.
|
35
|
+
return (
|
36
|
+
searchItems({
|
37
|
+
q: `owner:${session.username} type:"Web Map"`,
|
38
|
+
num: 100,
|
39
|
+
authentication: userSession
|
40
|
+
})
|
41
|
+
// if there is an error we can retry the request with a fresh session
|
42
|
+
// from /auth/exchange-token
|
43
|
+
.catch(error => {
|
44
|
+
return retryWithNewSession(error, this.fetch);
|
45
|
+
})
|
46
|
+
// then we can process out response.
|
47
|
+
.then(response => {
|
48
|
+
return {
|
49
|
+
webmaps: response.results
|
50
|
+
};
|
51
|
+
})
|
52
|
+
|
53
|
+
.catch(error => {
|
54
|
+
console.error(error);
|
55
|
+
})
|
56
|
+
);
|
57
|
+
}
|
58
|
+
};
|
59
|
+
</script>
|