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.
Files changed (461) hide show
  1. package/.env.example +2 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/deploy-docs.yml +27 -0
  4. package/.github/workflows/pre-release-tests.yml +45 -0
  5. package/.github/workflows/pull-request-tests.yml +45 -0
  6. package/.prettierignore +2 -0
  7. package/.prettierrc +19 -0
  8. package/.vscode/launch.json +24 -0
  9. package/.vscode/settings.json +3 -0
  10. package/codecov.yml +7 -0
  11. package/demos/.eslintrc.js +13 -0
  12. package/demos/ago-node-cli/README.md +29 -0
  13. package/demos/ago-node-cli/ago.js +33 -0
  14. package/demos/ago-node-cli/index.js +11 -0
  15. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  16. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  17. package/demos/ago-node-cli/package-lock.json +430 -0
  18. package/demos/ago-node-cli/package.json +30 -0
  19. package/demos/attachments/README.md +5 -0
  20. package/demos/attachments/index.html +165 -0
  21. package/demos/attachments/package-lock.json +543 -0
  22. package/demos/attachments/package.json +18 -0
  23. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  24. package/demos/batch-geocoder-node/README.md +15 -0
  25. package/demos/batch-geocoder-node/batch-geocode.js +115 -0
  26. package/demos/batch-geocoder-node/config-template.js +18 -0
  27. package/demos/batch-geocoder-node/package-lock.json +336 -0
  28. package/demos/batch-geocoder-node/package.json +37 -0
  29. package/demos/express/README.md +15 -0
  30. package/demos/express/config.json.template +3 -0
  31. package/demos/express/package-lock.json +1008 -0
  32. package/demos/express/package.json +18 -0
  33. package/demos/express/server.js +33 -0
  34. package/demos/feature-service-browser/README.md +6 -0
  35. package/demos/feature-service-browser/index.html +122 -0
  36. package/demos/feature-service-browser/package-lock.json +543 -0
  37. package/demos/feature-service-browser/package.json +18 -0
  38. package/demos/geocoder-browser/README.md +10 -0
  39. package/demos/geocoder-browser/config.js.template +1 -0
  40. package/demos/geocoder-browser/index.html +131 -0
  41. package/demos/geocoder-browser/package-lock.json +610 -0
  42. package/demos/geocoder-browser/package.json +19 -0
  43. package/demos/geocoder-browser/post-sign-in.html +25 -0
  44. package/demos/jsapi-integration/README.md +25 -0
  45. package/demos/jsapi-integration/config.js +6 -0
  46. package/demos/jsapi-integration/index.html +93 -0
  47. package/demos/jsapi-integration/package-lock.json +247 -0
  48. package/demos/jsapi-integration/package.json +19 -0
  49. package/demos/node-cli-item-management/README.md +10 -0
  50. package/demos/node-cli-item-management/index.js +238 -0
  51. package/demos/node-cli-item-management/package-lock.json +432 -0
  52. package/demos/node-cli-item-management/package.json +27 -0
  53. package/demos/node-cli-item-management/screenshot.png +0 -0
  54. package/demos/oauth2-browser/README.md +14 -0
  55. package/demos/oauth2-browser/authenticate.html +30 -0
  56. package/demos/oauth2-browser/config.js.template +6 -0
  57. package/demos/oauth2-browser/index.html +211 -0
  58. package/demos/oauth2-browser/logo.svg +4 -0
  59. package/demos/oauth2-browser/package-lock.json +474 -0
  60. package/demos/oauth2-browser/package.json +18 -0
  61. package/demos/oauth2-browser/style.css +36 -0
  62. package/demos/oauth2-browser-retry/README.md +25 -0
  63. package/demos/oauth2-browser-retry/authenticate.html +22 -0
  64. package/demos/oauth2-browser-retry/index.html +116 -0
  65. package/demos/oauth2-browser-retry/logo.svg +4 -0
  66. package/demos/stream-response-to-file/README.md +7 -0
  67. package/demos/stream-response-to-file/index.js +36 -0
  68. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  69. package/demos/stream-response-to-file/package-lock.json +227 -0
  70. package/demos/stream-response-to-file/package.json +33 -0
  71. package/demos/tree-shaking-rollup/.babelrc +3 -0
  72. package/demos/tree-shaking-rollup/README.md +9 -0
  73. package/demos/tree-shaking-rollup/index.html +11 -0
  74. package/demos/tree-shaking-rollup/package-lock.json +5646 -0
  75. package/demos/tree-shaking-rollup/package.json +25 -0
  76. package/demos/tree-shaking-rollup/rollup.config.js +17 -0
  77. package/demos/tree-shaking-rollup/src/index.js +8 -0
  78. package/demos/tree-shaking-webpack/README.md +8 -0
  79. package/demos/tree-shaking-webpack/index.html +11 -0
  80. package/demos/tree-shaking-webpack/package-lock.json +11455 -0
  81. package/demos/tree-shaking-webpack/package.json +24 -0
  82. package/demos/tree-shaking-webpack/src/index.js +10 -0
  83. package/demos/tree-shaking-webpack/webpack.config.js +27 -0
  84. package/demos/vue/.env.example +11 -0
  85. package/demos/vue/.eslintrc.js +17 -0
  86. package/demos/vue/.postcssrc.js +5 -0
  87. package/demos/vue/README.md +17 -0
  88. package/demos/vue/babel.config.js +3 -0
  89. package/demos/vue/package-lock.json +28044 -0
  90. package/demos/vue/package.json +33 -0
  91. package/demos/vue/public/favicon.ico +0 -0
  92. package/demos/vue/public/index.html +24 -0
  93. package/demos/vue/src/assets/logo.svg +29 -0
  94. package/demos/vue/src/components/App.vue +305 -0
  95. package/demos/vue/src/components/Authenticate.vue +65 -0
  96. package/demos/vue/src/components/Loader.vue +230 -0
  97. package/demos/vue/src/main.js +92 -0
  98. package/demos/webmap-checker-sapper/.env.example +5 -0
  99. package/demos/webmap-checker-sapper/README.md +123 -0
  100. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  101. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  102. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  103. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  104. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  105. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  106. package/demos/webmap-checker-sapper/cypress.json +4 -0
  107. package/demos/webmap-checker-sapper/package-lock.json +9622 -0
  108. package/demos/webmap-checker-sapper/package.json +50 -0
  109. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  110. package/demos/webmap-checker-sapper/src/client.js +20 -0
  111. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  112. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  113. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  114. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  115. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  116. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  117. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  118. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  119. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  120. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  121. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  122. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  123. package/demos/webmap-checker-sapper/src/server.js +101 -0
  124. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  125. package/demos/webmap-checker-sapper/src/template.html +33 -0
  126. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  127. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  128. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  129. package/demos/webmap-checker-sapper/static/global.css +36 -0
  130. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  131. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  132. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  133. package/docs/.eslintrc.js +12 -0
  134. package/docs/FAQ.md +48 -0
  135. package/docs/HISTORY.md +62 -0
  136. package/docs/acetate.config.js +262 -0
  137. package/docs/build-typedoc.js +434 -0
  138. package/docs/generate-srihashes.js +53 -0
  139. package/docs/src/_layout.html +86 -0
  140. package/docs/src/api/_declaration.html +600 -0
  141. package/docs/src/api/_layout.html +204 -0
  142. package/docs/src/api/_package.html +38 -0
  143. package/docs/src/api/index.html +16 -0
  144. package/docs/src/guides/_layout.html +24 -0
  145. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  146. package/docs/src/guides/browser-authentication.md +39 -0
  147. package/docs/src/guides/bundlers.md +52 -0
  148. package/docs/src/guides/cli-authentication.md +9 -0
  149. package/docs/src/guides/client-server-authentication.md +9 -0
  150. package/docs/src/guides/embedded-apps.md +106 -0
  151. package/docs/src/guides/from-a-cdn.md +38 -0
  152. package/docs/src/guides/index.md +59 -0
  153. package/docs/src/guides/node.md +104 -0
  154. package/docs/src/guides/package-overview.md +111 -0
  155. package/docs/src/guides/server-authentication.md +9 -0
  156. package/docs/src/guides/whats-new-v2-0.md +305 -0
  157. package/docs/src/img/icons.png +0 -0
  158. package/docs/src/img/icons@2x.png +0 -0
  159. package/docs/src/img/oauth-browser.png +0 -0
  160. package/docs/src/index.html +12 -0
  161. package/docs/src/js/api-search.js +112 -0
  162. package/docs/src/js/nav-toggle.js +41 -0
  163. package/docs/src/sass/_highlight.scss +96 -0
  164. package/docs/src/sass/_icons.scss +157 -0
  165. package/docs/src/sass/style.scss +242 -0
  166. package/docs/src/srihashes.json +12 -0
  167. package/jasmine.json +7 -0
  168. package/jasmine.live.json +7 -0
  169. package/karma.conf.js +107 -0
  170. package/lerna.json +8 -0
  171. package/notes/README.md +68 -0
  172. package/package.json +141 -0
  173. package/packages/arcgis-rest-auth/README.md +71 -0
  174. package/packages/arcgis-rest-auth/package.json +69 -0
  175. package/packages/arcgis-rest-auth/post-message-auth-spec.md +70 -0
  176. package/packages/arcgis-rest-auth/src/ApiKey.ts +41 -0
  177. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
  178. package/packages/arcgis-rest-auth/src/UserSession.ts +1355 -0
  179. package/packages/arcgis-rest-auth/src/app-tokens.ts +131 -0
  180. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
  181. package/packages/arcgis-rest-auth/src/federation-utils.ts +85 -0
  182. package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
  183. package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
  184. package/packages/arcgis-rest-auth/src/index.ts +13 -0
  185. package/packages/arcgis-rest-auth/src/validate-app-access.ts +68 -0
  186. package/packages/arcgis-rest-auth/test/ApiKey.test.ts +35 -0
  187. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
  188. package/packages/arcgis-rest-auth/test/UserSession.test.ts +2377 -0
  189. package/packages/arcgis-rest-auth/test/app-tokens.test.ts +95 -0
  190. package/packages/arcgis-rest-auth/test/federation-utils.test.ts +323 -0
  191. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
  192. package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
  193. package/packages/arcgis-rest-auth/test/utils.ts +14 -0
  194. package/packages/arcgis-rest-auth/test/validate-app-access.test.ts +46 -0
  195. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  196. package/packages/arcgis-rest-demographics/README.md +75 -0
  197. package/packages/arcgis-rest-demographics/package.json +69 -0
  198. package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
  199. package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +166 -0
  200. package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +88 -0
  201. package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
  202. package/packages/arcgis-rest-demographics/src/helpers.ts +28 -0
  203. package/packages/arcgis-rest-demographics/src/index.ts +8 -0
  204. package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +106 -0
  205. package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +92 -0
  206. package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +115 -0
  207. package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +72 -0
  208. package/packages/arcgis-rest-demographics/test/getGeography.test.ts +141 -0
  209. package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
  210. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +42 -0
  211. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +113 -0
  212. package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
  213. package/packages/arcgis-rest-feature-layer/README.md +77 -0
  214. package/packages/arcgis-rest-feature-layer/package.json +64 -0
  215. package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
  216. package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
  217. package/packages/arcgis-rest-feature-layer/src/applyEdits.ts +95 -0
  218. package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +122 -0
  219. package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
  220. package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
  221. package/packages/arcgis-rest-feature-layer/src/getAllLayersAndTables.ts +30 -0
  222. package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
  223. package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
  224. package/packages/arcgis-rest-feature-layer/src/getService.ts +26 -0
  225. package/packages/arcgis-rest-feature-layer/src/helpers.ts +97 -0
  226. package/packages/arcgis-rest-feature-layer/src/index.ts +32 -0
  227. package/packages/arcgis-rest-feature-layer/src/query.ts +204 -0
  228. package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
  229. package/packages/arcgis-rest-feature-layer/src/update.ts +60 -0
  230. package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
  231. package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +200 -0
  232. package/packages/arcgis-rest-feature-layer/test/crud.test.ts +197 -0
  233. package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
  234. package/packages/arcgis-rest-feature-layer/test/getAllLayersAndTables.test.ts +28 -0
  235. package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
  236. package/packages/arcgis-rest-feature-layer/test/getService.test.ts +31 -0
  237. package/packages/arcgis-rest-feature-layer/test/helpers.test.ts +25 -0
  238. package/packages/arcgis-rest-feature-layer/test/mocks/allLayersAndTablesResponse.ts +906 -0
  239. package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
  240. package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +302 -0
  241. package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
  242. package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
  243. package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +398 -0
  244. package/packages/arcgis-rest-feature-layer/test/query.test.ts +167 -0
  245. package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
  246. package/packages/arcgis-rest-geocoding/README.md +86 -0
  247. package/packages/arcgis-rest-geocoding/package.json +66 -0
  248. package/packages/arcgis-rest-geocoding/src/bulk.ts +104 -0
  249. package/packages/arcgis-rest-geocoding/src/geocode.ts +166 -0
  250. package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
  251. package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
  252. package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
  253. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  254. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +194 -0
  255. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +253 -0
  256. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  257. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +591 -0
  258. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
  259. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  260. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  261. package/packages/arcgis-rest-portal/README.md +73 -0
  262. package/packages/arcgis-rest-portal/package.json +64 -0
  263. package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
  264. package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
  265. package/packages/arcgis-rest-portal/src/groups/get.ts +184 -0
  266. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  267. package/packages/arcgis-rest-portal/src/groups/invite-users.ts +127 -0
  268. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  269. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  270. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  271. package/packages/arcgis-rest-portal/src/groups/remove-users.ts +76 -0
  272. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  273. package/packages/arcgis-rest-portal/src/groups/search.ts +47 -0
  274. package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
  275. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  276. package/packages/arcgis-rest-portal/src/index.ts +69 -0
  277. package/packages/arcgis-rest-portal/src/items/add.ts +138 -0
  278. package/packages/arcgis-rest-portal/src/items/content.ts +67 -0
  279. package/packages/arcgis-rest-portal/src/items/create.ts +150 -0
  280. package/packages/arcgis-rest-portal/src/items/export.ts +80 -0
  281. package/packages/arcgis-rest-portal/src/items/get.ts +437 -0
  282. package/packages/arcgis-rest-portal/src/items/helpers.ts +292 -0
  283. package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
  284. package/packages/arcgis-rest-portal/src/items/reassign.ts +61 -0
  285. package/packages/arcgis-rest-portal/src/items/remove.ts +141 -0
  286. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  287. package/packages/arcgis-rest-portal/src/items/update.ts +185 -0
  288. package/packages/arcgis-rest-portal/src/items/upload.ts +125 -0
  289. package/packages/arcgis-rest-portal/src/orgs/notification.ts +131 -0
  290. package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
  291. package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +30 -0
  292. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  293. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +81 -0
  294. package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
  295. package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +336 -0
  296. package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +105 -0
  297. package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
  298. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  299. package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
  300. package/packages/arcgis-rest-portal/src/users/invitation.ts +156 -0
  301. package/packages/arcgis-rest-portal/src/users/notification.ts +68 -0
  302. package/packages/arcgis-rest-portal/src/users/search-users.ts +37 -0
  303. package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
  304. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
  305. package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
  306. package/packages/arcgis-rest-portal/src/util/generic-search.ts +99 -0
  307. package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +45 -0
  308. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +28 -0
  309. package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
  310. package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
  311. package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
  312. package/packages/arcgis-rest-portal/src/util/search.ts +42 -0
  313. package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +239 -0
  314. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
  315. package/packages/arcgis-rest-portal/test/groups/get.test.ts +176 -0
  316. package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
  317. package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
  318. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
  319. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
  320. package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
  321. package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
  322. package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +62 -0
  323. package/packages/arcgis-rest-portal/test/items/add.test.ts +323 -0
  324. package/packages/arcgis-rest-portal/test/items/content.test.ts +156 -0
  325. package/packages/arcgis-rest-portal/test/items/create.test.ts +400 -0
  326. package/packages/arcgis-rest-portal/test/items/export.test.ts +122 -0
  327. package/packages/arcgis-rest-portal/test/items/get.test.ts +583 -0
  328. package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
  329. package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
  330. package/packages/arcgis-rest-portal/test/items/reassign.test.ts +131 -0
  331. package/packages/arcgis-rest-portal/test/items/remove.test.ts +261 -0
  332. package/packages/arcgis-rest-portal/test/items/search.test.ts +275 -0
  333. package/packages/arcgis-rest-portal/test/items/update.test.ts +556 -0
  334. package/packages/arcgis-rest-portal/test/items/upload.test.ts +282 -0
  335. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
  336. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  337. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
  338. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
  339. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  340. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
  341. package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
  342. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  343. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  344. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  345. package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
  346. package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
  347. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
  348. package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +144 -0
  349. package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +59 -0
  350. package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +46 -0
  351. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  352. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  353. package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1328 -0
  354. package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
  355. package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
  356. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  357. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  358. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
  359. package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
  360. package/packages/arcgis-rest-portal/test/users/search.test.ts +42 -0
  361. package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
  362. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +340 -0
  363. package/packages/arcgis-rest-portal/test/util/array.test.ts +30 -0
  364. package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +68 -0
  365. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  366. package/packages/arcgis-rest-portal/test/util/portal.test.ts +148 -0
  367. package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +22 -0
  368. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  369. package/packages/arcgis-rest-request/README.md +72 -0
  370. package/packages/arcgis-rest-request/package.json +60 -0
  371. package/packages/arcgis-rest-request/src/index.ts +25 -0
  372. package/packages/arcgis-rest-request/src/request.ts +433 -0
  373. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
  374. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  375. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  376. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  377. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
  378. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  379. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  380. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  381. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  382. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  383. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +54 -0
  384. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  385. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  386. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
  387. package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
  388. package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
  389. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
  390. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +35 -0
  391. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  392. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  393. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  394. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  395. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  396. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  397. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  398. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  399. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  400. package/packages/arcgis-rest-request/test/request.test.ts +621 -0
  401. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
  402. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  403. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  404. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
  405. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
  406. package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +18 -0
  407. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
  408. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
  409. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  410. package/packages/arcgis-rest-routing/README.md +75 -0
  411. package/packages/arcgis-rest-routing/package.json +65 -0
  412. package/packages/arcgis-rest-routing/src/closestFacility.ts +225 -0
  413. package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
  414. package/packages/arcgis-rest-routing/src/index.ts +14 -0
  415. package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +223 -0
  416. package/packages/arcgis-rest-routing/src/serviceArea.ts +173 -0
  417. package/packages/arcgis-rest-routing/src/solveRoute.ts +180 -0
  418. package/packages/arcgis-rest-routing/test/closestFacility.test.ts +683 -0
  419. package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
  420. package/packages/arcgis-rest-routing/test/mocks/responses.ts +13316 -0
  421. package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +795 -0
  422. package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
  423. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +677 -0
  424. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  425. package/packages/arcgis-rest-service-admin/README.md +73 -0
  426. package/packages/arcgis-rest-service-admin/package.json +65 -0
  427. package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
  428. package/packages/arcgis-rest-service-admin/src/create.ts +189 -0
  429. package/packages/arcgis-rest-service-admin/src/get-service-admin-info.ts +34 -0
  430. package/packages/arcgis-rest-service-admin/src/get-view-sources.ts +20 -0
  431. package/packages/arcgis-rest-service-admin/src/index.ts +14 -0
  432. package/packages/arcgis-rest-service-admin/src/update.ts +50 -0
  433. package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
  434. package/packages/arcgis-rest-service-admin/test/create.test.ts +294 -0
  435. package/packages/arcgis-rest-service-admin/test/get-service-admin-info.test.ts +37 -0
  436. package/packages/arcgis-rest-service-admin/test/get-view-sources.test.ts +40 -0
  437. package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
  438. package/packages/arcgis-rest-service-admin/test/mocks/service.ts +81 -0
  439. package/packages/arcgis-rest-service-admin/test/update.test.ts +115 -0
  440. package/packages/arcgis-rest-service-admin/tsconfig.json +5 -0
  441. package/packages/arcgis-rest-types/README.md +66 -0
  442. package/packages/arcgis-rest-types/package.json +54 -0
  443. package/packages/arcgis-rest-types/src/feature.ts +42 -0
  444. package/packages/arcgis-rest-types/src/geometry.ts +272 -0
  445. package/packages/arcgis-rest-types/src/group.ts +72 -0
  446. package/packages/arcgis-rest-types/src/index.ts +9 -0
  447. package/packages/arcgis-rest-types/src/item.ts +81 -0
  448. package/packages/arcgis-rest-types/src/service.ts +156 -0
  449. package/packages/arcgis-rest-types/src/statisticDefinition.ts +33 -0
  450. package/packages/arcgis-rest-types/src/symbol.ts +170 -0
  451. package/packages/arcgis-rest-types/src/user.ts +49 -0
  452. package/packages/arcgis-rest-types/src/webmap.ts +1405 -0
  453. package/packages/arcgis-rest-types/tsconfig.json +10 -0
  454. package/support/changelog.js +393 -0
  455. package/support/deploy-doc-site.js +16 -0
  456. package/support/dev.sh +6 -0
  457. package/support/publish.sh +47 -0
  458. package/support/test-helpers.js +9 -0
  459. package/tsconfig.json +63 -0
  460. package/umd-base-profile.js +81 -0
  461. package/umd-production-profile.js +13 -0
@@ -0,0 +1,52 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, cleanUrl } from "@esri/arcgis-rest-request";
5
+ import { IGetLayerOptions, IEditFeatureResult } from "./helpers";
6
+
7
+ /**
8
+ * Request options to for deleting related attachments of a feature by id. See [Delete Attachments](https://developers.arcgis.com/rest/services-reference/delete-attachments.htm) for more information.
9
+ *
10
+ */
11
+ export interface IDeleteAttachmentsOptions extends IGetLayerOptions {
12
+ /**
13
+ * Unique identifier of feature to delete related attachment(s).
14
+ */
15
+ featureId: number;
16
+ /**
17
+ * Array of unique identifiers of attachments to delete.
18
+ */
19
+ attachmentIds: number[];
20
+ }
21
+
22
+ /**
23
+ * ```js
24
+ * import { deleteAttachments } from '@esri/arcgis-rest-feature-layer';
25
+ * //
26
+ * deleteAttachments({
27
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0",
28
+ * featureId: 8484,
29
+ * attachmentIds: [306]
30
+ * });
31
+ * ```
32
+ * Delete existing attachment files of a feature by id. See [Delete Attachments](https://developers.arcgis.com/rest/services-reference/delete-attachments.htm) for more information.
33
+ *
34
+ * @param requestOptions - Options for the request.
35
+ * @returns A Promise that will resolve with the `deleteAttachments()` response.
36
+ */
37
+ export function deleteAttachments(
38
+ requestOptions: IDeleteAttachmentsOptions
39
+ ): Promise<{ deleteAttachmentResults: IEditFeatureResult[] }> {
40
+ const options: IDeleteAttachmentsOptions = {
41
+ params: {},
42
+ ...requestOptions
43
+ };
44
+
45
+ // `attachmentIds` --> params: {}
46
+ options.params.attachmentIds = requestOptions.attachmentIds;
47
+
48
+ return request(
49
+ `${cleanUrl(options.url)}/${options.featureId}/deleteAttachments`,
50
+ options
51
+ );
52
+ }
@@ -0,0 +1,30 @@
1
+ import { IGetLayerOptions, parseServiceUrl } from "./helpers";
2
+ import { request } from '@esri/arcgis-rest-request';
3
+ import { ILayerDefinition } from "@esri/arcgis-rest-types";
4
+
5
+ export interface IAllLayersAndTablesResponse {
6
+ layers: ILayerDefinition[],
7
+ tables: ILayerDefinition[],
8
+ }
9
+
10
+ /**
11
+ * ```js
12
+ * import { getAllLayersAndTables } from '@esri/arcgis-rest-feature-layer';
13
+ * getAllLayersAndTables({
14
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0"
15
+ * })
16
+ * .then(response) // { layers: [...], tables: [...] }
17
+ * ```
18
+ * Fetches all the layers and tables associated with a given layer service.
19
+ * Wrapper for https://developers.arcgis.com/rest/services-reference/all-layers-and-tables.htm
20
+ *
21
+ * @param options - Request options, including the url for the layer service
22
+ * @returns A Promise that will resolve with the layers and tables for the given service
23
+ */
24
+ // TODO: should we expand this to support other valid params of the endpoint?
25
+ export function getAllLayersAndTables(options: IGetLayerOptions): Promise<IAllLayersAndTablesResponse> {
26
+ const { url, ...requestOptions } = options;
27
+ const layersUrl = `${parseServiceUrl(url)}/layers`;
28
+ return request(layersUrl, requestOptions);
29
+ }
30
+
@@ -0,0 +1,55 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, cleanUrl } from "@esri/arcgis-rest-request";
5
+ import { IGetLayerOptions } from "./helpers";
6
+
7
+ /**
8
+ * Request options to fetch `attachmentInfos` of a feature by id. See [Attachment Infos](https://developers.arcgis.com/rest/services-reference/attachment-infos-feature-service-.htm) for more information.
9
+ *
10
+ */
11
+ export interface IGetAttachmentsOptions extends IGetLayerOptions {
12
+ /**
13
+ * Unique identifier of feature to request related `attachmentInfos`.
14
+ */
15
+ featureId: number;
16
+ }
17
+
18
+ /**
19
+ * Attachment, a.k.a. `attachmentInfo`. See [Attachment](https://developers.arcgis.com/rest/services-reference/attachment-feature-service-.htm) for more information.
20
+ */
21
+ export interface IAttachmentInfo {
22
+ id: number;
23
+ contentType: string;
24
+ size: number;
25
+ name: string;
26
+ }
27
+
28
+ /**
29
+ * ```js
30
+ * import { getAttachments } from '@esri/arcgis-rest-feature-layer';
31
+ * //
32
+ * getAttachments({
33
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0",
34
+ * featureId: 8484
35
+ * });
36
+ * ```
37
+ * Request `attachmentInfos` of a feature by id. See [Attachment Infos](https://developers.arcgis.com/rest/services-reference/attachment-infos-feature-service-.htm) for more information.
38
+ *
39
+ * @param requestOptions - Options for the request.
40
+ * @returns A Promise that will resolve with the `getAttachments()` response.
41
+ */
42
+ export function getAttachments(
43
+ requestOptions: IGetAttachmentsOptions
44
+ ): Promise<{ attachmentInfos: IAttachmentInfo[] }> {
45
+ const options: IGetAttachmentsOptions = {
46
+ httpMethod: "GET",
47
+ ...requestOptions
48
+ };
49
+
50
+ // pass through
51
+ return request(
52
+ `${cleanUrl(options.url)}/${options.featureId}/attachments`,
53
+ options
54
+ );
55
+ }
@@ -0,0 +1,24 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, cleanUrl } from "@esri/arcgis-rest-request";
5
+ import { ILayerDefinition } from "@esri/arcgis-rest-types";
6
+ import { IGetLayerOptions } from "./helpers";
7
+
8
+ /**
9
+ * ```js
10
+ * import { getLayer } from '@esri/arcgis-rest-feature-layer';
11
+ * //
12
+ * getLayer({
13
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0"
14
+ * })
15
+ * .then(response) // { name: "311", id: 0, ... }
16
+ * ```
17
+ * Layer (Feature Service) request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/layer-feature-service-.htm) for more information.
18
+ *
19
+ * @param options - Options for the request.
20
+ * @returns A Promise that will resolve with the addFeatures response.
21
+ */
22
+ export function getLayer(options: IGetLayerOptions): Promise<ILayerDefinition> {
23
+ return request(cleanUrl(options.url), options);
24
+ }
@@ -0,0 +1,26 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, cleanUrl } from "@esri/arcgis-rest-request";
5
+ import { IFeatureServiceDefinition } from "@esri/arcgis-rest-types";
6
+ import { IGetLayerOptions } from "./helpers";
7
+
8
+ /**
9
+ * ```js
10
+ * import { getService } from '@esri/arcgis-rest-feature-layer';
11
+ * //
12
+ * getService({
13
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer"
14
+ * })
15
+ * .then(response) // { name: "311", id: 0, ... }
16
+ * ```
17
+ * Feature Service request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/feature-service.htm) for more information.
18
+ *
19
+ * @param options - Options for the request.
20
+ * @returns A Promise that will resolve with the getService response.
21
+ */
22
+ export function getService(
23
+ options: IGetLayerOptions
24
+ ): Promise<IFeatureServiceDefinition> {
25
+ return request(cleanUrl(options.url), options);
26
+ }
@@ -0,0 +1,97 @@
1
+ /* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+ import { cleanUrl, IRequestOptions } from "@esri/arcgis-rest-request";
4
+ import {
5
+ GeometryType,
6
+ SpatialRelationship,
7
+ IGeometry,
8
+ ISpatialReference
9
+ } from "@esri/arcgis-rest-types";
10
+
11
+ /**
12
+ * Base options for making requests against feature layers
13
+ */
14
+ export interface IGetLayerOptions extends IRequestOptions {
15
+ /**
16
+ * Layer service url.
17
+ */
18
+ url: string;
19
+ }
20
+
21
+ export interface ISharedQueryOptions extends IGetLayerOptions {
22
+ /**
23
+ * A where clause for the query. Defaults to "1=1"
24
+ */
25
+ where?: string;
26
+ geometry?: IGeometry;
27
+ geometryType?: GeometryType;
28
+ // NOTE: either WKID or ISpatialReference
29
+ inSR?: string | ISpatialReference;
30
+ spatialRel?: SpatialRelationship;
31
+ }
32
+
33
+ /**
34
+ * Add, update and delete features result Object.
35
+ */
36
+ export interface IEditFeatureResult {
37
+ objectId: number;
38
+ globalId?: string;
39
+ success: boolean;
40
+ }
41
+
42
+ /**
43
+ * `globalId` always returned with attachments via apply edits.
44
+ */
45
+ export interface IApplyEditsAttachmentResult extends IEditFeatureResult {
46
+ globalId: string;
47
+ }
48
+
49
+ /**
50
+ * Apply edits result Object.
51
+ */
52
+ export interface IApplyEditsResult {
53
+ addResults: IEditFeatureResult[];
54
+ updateResults: IEditFeatureResult[];
55
+ deleteResults: IEditFeatureResult[];
56
+ attachments?: {
57
+ addResults?: IApplyEditsAttachmentResult[];
58
+ updateResults?: IApplyEditsAttachmentResult[];
59
+ deleteResults?: IApplyEditsAttachmentResult[];
60
+ };
61
+ }
62
+
63
+ /**
64
+ * Common add, update, and delete features options.
65
+ */
66
+ export interface ISharedEditOptions extends IGetLayerOptions {
67
+ /**
68
+ * The geodatabase version to apply the edits.
69
+ */
70
+ gdbVersion?: string;
71
+ /**
72
+ * Optional parameter specifying whether the response will report the time features were added.
73
+ */
74
+ returnEditMoment?: boolean;
75
+ /**
76
+ * Optional parameter to specify if the edits should be applied only if all submitted edits succeed.
77
+ */
78
+ rollbackOnFailure?: boolean;
79
+ }
80
+
81
+ const serviceRegex = new RegExp(/.+(?:map|feature|image)server/i);
82
+ /**
83
+ * Return the service url. If not matched, returns what was passed in
84
+ */
85
+ export function parseServiceUrl (url: string) {
86
+ const match = url.match(serviceRegex);
87
+ if (match) {
88
+ return match[0];
89
+ } else {
90
+ return stripQueryString(url);
91
+ }
92
+ }
93
+
94
+ function stripQueryString (url: string) {
95
+ const stripped = url.split('?')[0];
96
+ return cleanUrl(stripped);
97
+ }
@@ -0,0 +1,32 @@
1
+ /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ export * from "./query";
5
+ export * from "./add";
6
+ export * from "./update";
7
+ export * from "./delete";
8
+ export * from "./applyEdits";
9
+ export * from "./getAllLayersAndTables";
10
+ export * from "./getAttachments";
11
+ export * from "./addAttachment";
12
+ export * from "./updateAttachment";
13
+ export * from "./deleteAttachments";
14
+ export * from "./queryRelated";
15
+ export * from "./getLayer";
16
+ export * from "./getService";
17
+ export * from "./decodeValues";
18
+ export * from "./helpers";
19
+ export {
20
+ IFeature,
21
+ ISpatialReference,
22
+ IHasZM,
23
+ GeometryType,
24
+ IField,
25
+ IFeatureSet,
26
+ Units,
27
+ IExtent,
28
+ SpatialRelationship,
29
+ IGeometry,
30
+ ILayerDefinition,
31
+ IFeatureServiceDefinition
32
+ } from "@esri/arcgis-rest-types";
@@ -0,0 +1,204 @@
1
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import {
5
+ request,
6
+ cleanUrl,
7
+ appendCustomParams
8
+ } from "@esri/arcgis-rest-request";
9
+
10
+ import {
11
+ ISpatialReference,
12
+ IFeatureSet,
13
+ IFeature,
14
+ Units,
15
+ IExtent,
16
+ IStatisticDefinition
17
+ } from "@esri/arcgis-rest-types";
18
+
19
+ import { IGetLayerOptions, ISharedQueryOptions } from "./helpers";
20
+
21
+ /**
22
+ * Request options to fetch a feature by id.
23
+ */
24
+ export interface IGetFeatureOptions extends IGetLayerOptions {
25
+ /**
26
+ * Unique identifier of the feature.
27
+ */
28
+ id: number;
29
+ }
30
+
31
+ /**
32
+ * feature query request options. See [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm) for more information.
33
+ */
34
+ export interface IQueryFeaturesOptions extends ISharedQueryOptions {
35
+ objectIds?: number[];
36
+ relationParam?: string;
37
+ // NOTE: either time=1199145600000 or time=1199145600000, 1230768000000
38
+ time?: number | number[];
39
+ distance?: number;
40
+ units?: Units;
41
+ /**
42
+ * Attribute fields to include in the response. Defaults to "*"
43
+ */
44
+ outFields?: "*" | string[];
45
+ returnGeometry?: boolean;
46
+ maxAllowableOffset?: number;
47
+ geometryPrecision?: number;
48
+ // NOTE: either WKID or ISpatialReference
49
+ inSR?: string | ISpatialReference;
50
+ outSR?: string | ISpatialReference;
51
+ gdbVersion?: string;
52
+ returnDistinctValues?: boolean;
53
+ returnIdsOnly?: boolean;
54
+ returnCountOnly?: boolean;
55
+ returnExtentOnly?: boolean;
56
+ orderByFields?: string;
57
+ groupByFieldsForStatistics?: string;
58
+ outStatistics?: IStatisticDefinition[];
59
+ returnZ?: boolean;
60
+ returnM?: boolean;
61
+ multipatchOption?: "xyFootprint";
62
+ resultOffset?: number;
63
+ resultRecordCount?: number;
64
+ // TODO: IQuantizationParameters?
65
+ quantizationParameters?: any;
66
+ returnCentroid?: boolean;
67
+ resultType?: "none" | "standard" | "tile";
68
+ // to do: convert from Date() to epoch time internally
69
+ historicMoment?: number;
70
+ returnTrueCurves?: false;
71
+ sqlFormat?: "none" | "standard" | "native";
72
+ returnExceededLimitFeatures?: boolean;
73
+ /**
74
+ * Response format. Defaults to "json"
75
+ * NOTE: for "pbf" you must also supply `rawResponse: true`
76
+ * and parse the response yourself using `response.arrayBuffer()`
77
+ */
78
+ f?: "json" | "geojson" | "pbf";
79
+ /**
80
+ * someday...
81
+ *
82
+ * If 'true' the query will be preceded by a metadata check to gather info about coded value domains and result values will be decoded. If a fieldset is provided it will be used to decode values and no internal metadata request will be issued.
83
+ */
84
+ // decodeValues?: boolean | IField[];
85
+ }
86
+
87
+ export interface IQueryFeaturesResponse extends IFeatureSet {
88
+ exceededTransferLimit?: boolean;
89
+ }
90
+
91
+ export interface IQueryResponse {
92
+ count?: number;
93
+ extent?: IExtent;
94
+ objectIdFieldName?: string;
95
+ objectIds?: number[];
96
+ }
97
+
98
+ /**
99
+ * ```js
100
+ * import { getFeature } from '@esri/arcgis-rest-feature-layer';
101
+ * //
102
+ * const url = "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Landscape_Trees/FeatureServer/0";
103
+ * //
104
+ * getFeature({
105
+ * url,
106
+ * id: 42
107
+ * }).then(feature => {
108
+ * console.log(feature.attributes.FID); // 42
109
+ * });
110
+ * ```
111
+ * Get a feature by id.
112
+ *
113
+ * @param requestOptions - Options for the request
114
+ * @returns A Promise that will resolve with the feature or the [response](https://developer.mozilla.org/en-US/docs/Web/API/Response) itself if `rawResponse: true` was passed in.
115
+ */
116
+ export function getFeature(
117
+ requestOptions: IGetFeatureOptions
118
+ ): Promise<IFeature> {
119
+ const url = `${cleanUrl(requestOptions.url)}/${requestOptions.id}`;
120
+
121
+ // default to a GET request
122
+ const options: IGetFeatureOptions = {
123
+ ...{ httpMethod: "GET" },
124
+ ...requestOptions
125
+ };
126
+ return request(url, options).then((response: any) => {
127
+ if (options.rawResponse) {
128
+ return response;
129
+ }
130
+ return response.feature;
131
+ });
132
+ }
133
+
134
+ /**
135
+ * ```js
136
+ * import { queryFeatures } from '@esri/arcgis-rest-feature-layer';
137
+ * //
138
+ * queryFeatures({
139
+ * url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",
140
+ * where: "STATE_NAME = 'Alaska'"
141
+ * })
142
+ * .then(result)
143
+ * ```
144
+ * Query a feature service. See [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm) for more information.
145
+ *
146
+ * @param requestOptions - Options for the request
147
+ * @returns A Promise that will resolve with the query response.
148
+ */
149
+ export function queryFeatures(
150
+ requestOptions: IQueryFeaturesOptions
151
+ ): Promise<IQueryFeaturesResponse | IQueryResponse> {
152
+ const queryOptions = appendCustomParams<IQueryFeaturesOptions>(
153
+ requestOptions,
154
+ [
155
+ "where",
156
+ "objectIds",
157
+ "relationParam",
158
+ "time",
159
+ "distance",
160
+ "units",
161
+ "outFields",
162
+ "geometry",
163
+ "geometryType",
164
+ "spatialRel",
165
+ "returnGeometry",
166
+ "maxAllowableOffset",
167
+ "geometryPrecision",
168
+ "inSR",
169
+ "outSR",
170
+ "gdbVersion",
171
+ "returnDistinctValues",
172
+ "returnIdsOnly",
173
+ "returnCountOnly",
174
+ "returnExtentOnly",
175
+ "orderByFields",
176
+ "groupByFieldsForStatistics",
177
+ "outStatistics",
178
+ "returnZ",
179
+ "returnM",
180
+ "multipatchOption",
181
+ "resultOffset",
182
+ "resultRecordCount",
183
+ "quantizationParameters",
184
+ "returnCentroid",
185
+ "resultType",
186
+ "historicMoment",
187
+ "returnTrueCurves",
188
+ "sqlFormat",
189
+ "returnExceededLimitFeatures",
190
+ "f"
191
+ ],
192
+ {
193
+ httpMethod: "GET",
194
+ params: {
195
+ // set default query parameters
196
+ where: "1=1",
197
+ outFields: "*",
198
+ ...requestOptions.params
199
+ }
200
+ }
201
+ );
202
+
203
+ return request(`${cleanUrl(requestOptions.url)}/query`, queryOptions);
204
+ }
@@ -0,0 +1,89 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import {
5
+ request,
6
+ cleanUrl,
7
+ appendCustomParams
8
+ } from "@esri/arcgis-rest-request";
9
+
10
+ import {
11
+ ISpatialReference,
12
+ IFeature,
13
+ IHasZM,
14
+ GeometryType,
15
+ IField
16
+ } from "@esri/arcgis-rest-types";
17
+
18
+ import { IGetLayerOptions } from "./helpers";
19
+
20
+ /**
21
+ * Related record query request options. Additional arguments can be passed via the [params](/arcgis-rest-js/api/feature-service/IQueryRelatedOptions/#params) property. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-related-feature-service-.htm) for more information and a full list of parameters.
22
+ */
23
+ export interface IQueryRelatedOptions extends IGetLayerOptions {
24
+ relationshipId?: number;
25
+ objectIds?: number[];
26
+ outFields?: "*" | string[];
27
+ definitionExpression?: string;
28
+ }
29
+
30
+ /**
31
+ * Related record data structure
32
+ */
33
+
34
+ export interface IRelatedRecordGroup {
35
+ objectId: number;
36
+ relatedRecords?: IFeature[];
37
+ count?: number;
38
+ }
39
+
40
+ /**
41
+ * Related record response structure
42
+ */
43
+
44
+ export interface IQueryRelatedResponse extends IHasZM {
45
+ geometryType?: GeometryType;
46
+ spatialReference?: ISpatialReference;
47
+ fields?: IField[];
48
+ relatedRecordGroups: IRelatedRecordGroup[];
49
+ }
50
+ /**
51
+ *
52
+ * ```js
53
+ * import { queryRelated } from '@esri/arcgis-rest-feature-layer'
54
+ * //
55
+ * queryRelated({
56
+ * url: "http://services.myserver/OrgID/ArcGIS/rest/services/Petroleum/KSPetro/FeatureServer/0",
57
+ * relationshipId: 1,
58
+ * params: { returnCountOnly: true }
59
+ * })
60
+ * .then(response) // response.relatedRecords
61
+ * ```
62
+ * Query the related records for a feature service. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-related-records-feature-service-.htm) for more information.
63
+ *
64
+ * @param requestOptions
65
+ * @returns A Promise that will resolve with the query response
66
+ */
67
+ export function queryRelated(
68
+ requestOptions: IQueryRelatedOptions
69
+ ): Promise<IQueryRelatedResponse> {
70
+ const options = appendCustomParams<IQueryRelatedOptions>(
71
+ requestOptions,
72
+ ["objectIds", "relationshipId", "definitionExpression", "outFields"],
73
+ {
74
+ httpMethod: "GET",
75
+ params: {
76
+ // set default query parameters
77
+ definitionExpression: "1=1",
78
+ outFields: "*",
79
+ relationshipId: 0,
80
+ ...requestOptions.params
81
+ }
82
+ }
83
+ );
84
+
85
+ return request(
86
+ `${cleanUrl(requestOptions.url)}/queryRelatedRecords`,
87
+ options
88
+ );
89
+ }
@@ -0,0 +1,60 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import {
5
+ request,
6
+ cleanUrl,
7
+ appendCustomParams
8
+ } from "@esri/arcgis-rest-request";
9
+
10
+ import { IFeature } from "@esri/arcgis-rest-types";
11
+
12
+ import { ISharedEditOptions, IEditFeatureResult } from "./helpers";
13
+
14
+ /**
15
+ * Update features request options. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/update-features.htm) for more information.
16
+ *
17
+ */
18
+ export interface IUpdateFeaturesOptions extends ISharedEditOptions {
19
+ /**
20
+ * Array of JSON features to update.
21
+ */
22
+ features: IFeature[];
23
+ /**
24
+ * Optional parameter which is false by default is set by client to indicate to the server that client in true curve capable.
25
+ */
26
+ trueCurveClient?: boolean;
27
+ }
28
+
29
+ /**
30
+ *
31
+ * ```js
32
+ * import { updateFeatures } from '@esri/arcgis-rest-feature-layer';
33
+ * //
34
+ * updateFeatures({
35
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0",
36
+ * features: [{
37
+ * geometry: { x: -120, y: 45, spatialReference: { wkid: 4326 } },
38
+ * attributes: { status: "alive" }
39
+ * }]
40
+ * });
41
+ * ```
42
+ * Update features request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/update-features.htm) for more information.
43
+ *
44
+ * @param requestOptions - Options for the request.
45
+ * @returns A Promise that will resolve with the updateFeatures response.
46
+ */
47
+ export function updateFeatures(
48
+ requestOptions: IUpdateFeaturesOptions
49
+ ): Promise<{ updateResults: IEditFeatureResult[] }> {
50
+ const url = `${cleanUrl(requestOptions.url)}/updateFeatures`;
51
+
52
+ // edit operations are POST only
53
+ const options = appendCustomParams<IUpdateFeaturesOptions>(
54
+ requestOptions,
55
+ ["features", "gdbVersion", "returnEditMoment", "rollbackOnFailure", "trueCurveClient"],
56
+ { params: { ...requestOptions.params } }
57
+ );
58
+
59
+ return request(url, options);
60
+ }