autculpa 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (489) hide show
  1. package/.env.example +2 -0
  2. package/.eslintrc.json +37 -0
  3. package/.github/workflows/deploy-docs.yml +27 -0
  4. package/.github/workflows/pre-release-tests.yml +49 -0
  5. package/.github/workflows/pull-request-tests.yml +49 -0
  6. package/.github/workflows/release.yml +75 -0
  7. package/.prettierignore +2 -0
  8. package/.prettierrc +19 -0
  9. package/.vscode/launch.json +25 -0
  10. package/.vscode/settings.json +5 -0
  11. package/codecov.yml +7 -0
  12. package/commitlint.config.cjs +41 -0
  13. package/demos/.eslintrc.js +13 -0
  14. package/demos/ago-node-cli/README.md +30 -0
  15. package/demos/ago-node-cli/ago.js +31 -0
  16. package/demos/ago-node-cli/index.js +11 -0
  17. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  18. package/demos/ago-node-cli/lib/item-search-command.js +32 -0
  19. package/demos/ago-node-cli/package.json +29 -0
  20. package/demos/attachments-browser/README.md +7 -0
  21. package/demos/attachments-browser/index.html +165 -0
  22. package/demos/attachments-browser/package.json +15 -0
  23. package/demos/attachments-node/README.md +4 -0
  24. package/demos/attachments-node/image.jpg +0 -0
  25. package/demos/attachments-node/index.js +89 -0
  26. package/demos/attachments-node/package.json +19 -0
  27. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  28. package/demos/batch-geocoder-node/README.md +13 -0
  29. package/demos/batch-geocoder-node/batch-geocode.js +112 -0
  30. package/demos/batch-geocoder-node/config-template.js +18 -0
  31. package/demos/batch-geocoder-node/package.json +34 -0
  32. package/demos/browser-es-modules/README.md +7 -0
  33. package/demos/browser-es-modules/index.html +38 -0
  34. package/demos/browser-es-modules/package.json +15 -0
  35. package/demos/deno/README.md +1 -0
  36. package/demos/deno/import_map.json +8 -0
  37. package/demos/deno/index.js +5 -0
  38. package/demos/express/README.md +16 -0
  39. package/demos/express/config.json.template +3 -0
  40. package/demos/express/package.json +15 -0
  41. package/demos/express/server.js +37 -0
  42. package/demos/feature-service-browser/README.md +8 -0
  43. package/demos/feature-service-browser/index.html +122 -0
  44. package/demos/feature-service-browser/package.json +15 -0
  45. package/demos/geocoder-browser/README.md +12 -0
  46. package/demos/geocoder-browser/authenticate.html +29 -0
  47. package/demos/geocoder-browser/config.js.template +1 -0
  48. package/demos/geocoder-browser/index.html +139 -0
  49. package/demos/geocoder-browser/package.json +15 -0
  50. package/demos/jsapi-integration/README.md +26 -0
  51. package/demos/jsapi-integration/authenticate.html +29 -0
  52. package/demos/jsapi-integration/config.js +6 -0
  53. package/demos/jsapi-integration/index.html +91 -0
  54. package/demos/jsapi-integration/package.json +15 -0
  55. package/demos/node-cli-item-management/README.md +11 -0
  56. package/demos/node-cli-item-management/index.js +229 -0
  57. package/demos/node-cli-item-management/package.json +24 -0
  58. package/demos/node-cli-item-management/screenshot.png +0 -0
  59. package/demos/node-common-js/README.md +4 -0
  60. package/demos/node-common-js/index.js +5 -0
  61. package/demos/node-common-js/package.json +15 -0
  62. package/demos/node-es-modules/README.md +4 -0
  63. package/demos/node-es-modules/index.js +5 -0
  64. package/demos/node-es-modules/package.json +16 -0
  65. package/demos/oauth2-browser/README.md +17 -0
  66. package/demos/oauth2-browser/authenticate.html +29 -0
  67. package/demos/oauth2-browser/config.js.template +6 -0
  68. package/demos/oauth2-browser/index.html +223 -0
  69. package/demos/oauth2-browser/logo.svg +4 -0
  70. package/demos/oauth2-browser/package.json +15 -0
  71. package/demos/oauth2-browser/style.css +36 -0
  72. package/demos/oauth2-browser-retry/README.md +32 -0
  73. package/demos/oauth2-browser-retry/authenticate.html +21 -0
  74. package/demos/oauth2-browser-retry/index.html +114 -0
  75. package/demos/oauth2-browser-retry/logo.svg +4 -0
  76. package/demos/oauth2-browser-retry/package.json +15 -0
  77. package/demos/parcel/README.md +8 -0
  78. package/demos/parcel/index.html +16 -0
  79. package/demos/parcel/index.js +8 -0
  80. package/demos/parcel/package.json +20 -0
  81. package/demos/snowpack/README.md +8 -0
  82. package/demos/snowpack/index.html +16 -0
  83. package/demos/snowpack/index.js +8 -0
  84. package/demos/snowpack/package.json +20 -0
  85. package/demos/snowpack/snowpack.config.js +3 -0
  86. package/demos/stream-response-to-file/README.md +7 -0
  87. package/demos/stream-response-to-file/index.js +36 -0
  88. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  89. package/demos/stream-response-to-file/package.json +31 -0
  90. package/demos/tree-shaking-rollup/.babelrc +3 -0
  91. package/demos/tree-shaking-rollup/README.md +9 -0
  92. package/demos/tree-shaking-rollup/index.html +11 -0
  93. package/demos/tree-shaking-rollup/package.json +22 -0
  94. package/demos/tree-shaking-rollup/rollup.config.js +13 -0
  95. package/demos/tree-shaking-rollup/src/index.js +8 -0
  96. package/demos/tree-shaking-webpack/README.md +9 -0
  97. package/demos/tree-shaking-webpack/index.html +11 -0
  98. package/demos/tree-shaking-webpack/package.json +26 -0
  99. package/demos/tree-shaking-webpack/src/index.js +8 -0
  100. package/demos/tree-shaking-webpack/webpack.config.js +29 -0
  101. package/demos/vite/README.md +6 -0
  102. package/demos/vite/favicon.svg +15 -0
  103. package/demos/vite/index.html +13 -0
  104. package/demos/vite/main.js +8 -0
  105. package/demos/vite/package.json +18 -0
  106. package/demos/vue/.env.example +11 -0
  107. package/demos/vue/.eslintrc.js +17 -0
  108. package/demos/vue/.postcssrc.js +5 -0
  109. package/demos/vue/README.md +17 -0
  110. package/demos/vue/babel.config.js +3 -0
  111. package/demos/vue/package.json +35 -0
  112. package/demos/vue/public/favicon.ico +0 -0
  113. package/demos/vue/public/index.html +24 -0
  114. package/demos/vue/src/assets/logo.svg +29 -0
  115. package/demos/vue/src/components/App.vue +303 -0
  116. package/demos/vue/src/components/Authenticate.vue +65 -0
  117. package/demos/vue/src/components/Loader.vue +230 -0
  118. package/demos/vue/src/main.js +92 -0
  119. package/demos/webmap-checker-sapper/.env.example +5 -0
  120. package/demos/webmap-checker-sapper/README.md +124 -0
  121. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  122. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  123. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  124. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  125. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  126. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  127. package/demos/webmap-checker-sapper/cypress.json +4 -0
  128. package/demos/webmap-checker-sapper/package.json +47 -0
  129. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  130. package/demos/webmap-checker-sapper/src/client.js +20 -0
  131. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  132. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  133. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  134. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  135. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  136. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  137. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  138. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  139. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  140. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  141. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  142. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  143. package/demos/webmap-checker-sapper/src/server.js +102 -0
  144. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  145. package/demos/webmap-checker-sapper/src/template.html +33 -0
  146. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  147. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  148. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  149. package/demos/webmap-checker-sapper/static/global.css +36 -0
  150. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  151. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  152. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  153. package/docs/.eslintrc.js +12 -0
  154. package/docs/FAQ.md +48 -0
  155. package/docs/HISTORY.md +62 -0
  156. package/docs/acetate.config.js +262 -0
  157. package/docs/build-typedoc.js +434 -0
  158. package/docs/generate-srihashes.js +61 -0
  159. package/docs/package.json +3 -0
  160. package/docs/src/_layout.html +86 -0
  161. package/docs/src/api/_declaration.html +600 -0
  162. package/docs/src/api/_layout.html +204 -0
  163. package/docs/src/api/_package.html +38 -0
  164. package/docs/src/api/index.html +16 -0
  165. package/docs/src/guides/_layout.html +24 -0
  166. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  167. package/docs/src/guides/browser-authentication.md +39 -0
  168. package/docs/src/guides/bundlers.md +52 -0
  169. package/docs/src/guides/cli-authentication.md +9 -0
  170. package/docs/src/guides/client-server-authentication.md +9 -0
  171. package/docs/src/guides/embedded-apps.md +106 -0
  172. package/docs/src/guides/from-a-cdn.md +38 -0
  173. package/docs/src/guides/index.md +59 -0
  174. package/docs/src/guides/node.md +84 -0
  175. package/docs/src/guides/package-overview.md +111 -0
  176. package/docs/src/guides/server-authentication.md +9 -0
  177. package/docs/src/guides/whats-new-v2-0.md +305 -0
  178. package/docs/src/img/icons.png +0 -0
  179. package/docs/src/img/icons@2x.png +0 -0
  180. package/docs/src/img/oauth-browser.png +0 -0
  181. package/docs/src/index.html +12 -0
  182. package/docs/src/js/api-search.js +112 -0
  183. package/docs/src/js/nav-toggle.js +41 -0
  184. package/docs/src/sass/_highlight.scss +96 -0
  185. package/docs/src/sass/_icons.scss +157 -0
  186. package/docs/src/sass/style.scss +242 -0
  187. package/jasmine.json +7 -0
  188. package/jasmine.live.json +7 -0
  189. package/karma.conf.cjs +128 -0
  190. package/package.json +140 -0
  191. package/packages/arcgis-rest-auth/CHANGELOG.md +80 -0
  192. package/packages/arcgis-rest-auth/README.md +71 -0
  193. package/packages/arcgis-rest-auth/package.json +66 -0
  194. package/packages/arcgis-rest-auth/src/index.ts +34 -0
  195. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  196. package/packages/arcgis-rest-demographics/CHANGELOG.md +14 -0
  197. package/packages/arcgis-rest-demographics/README.md +74 -0
  198. package/packages/arcgis-rest-demographics/package.json +69 -0
  199. package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
  200. package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +161 -0
  201. package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +86 -0
  202. package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
  203. package/packages/arcgis-rest-demographics/src/helpers.ts +27 -0
  204. package/packages/arcgis-rest-demographics/src/index.ts +16 -0
  205. package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +108 -0
  206. package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +89 -0
  207. package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +114 -0
  208. package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +69 -0
  209. package/packages/arcgis-rest-demographics/test/getGeography.test.ts +150 -0
  210. package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
  211. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +50 -0
  212. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +127 -0
  213. package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
  214. package/packages/arcgis-rest-feature-service/CHANGELOG.md +44 -0
  215. package/packages/arcgis-rest-feature-service/README.md +75 -0
  216. package/packages/arcgis-rest-feature-service/package.json +70 -0
  217. package/packages/arcgis-rest-feature-service/src/add.ts +55 -0
  218. package/packages/arcgis-rest-feature-service/src/addAttachment.ts +53 -0
  219. package/packages/arcgis-rest-feature-service/src/addToServiceDefinition.ts +74 -0
  220. package/packages/arcgis-rest-feature-service/src/applyEdits.ts +94 -0
  221. package/packages/arcgis-rest-feature-service/src/createFeatureService.ts +191 -0
  222. package/packages/arcgis-rest-feature-service/src/decodeValues.ts +126 -0
  223. package/packages/arcgis-rest-feature-service/src/delete.ts +62 -0
  224. package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +52 -0
  225. package/packages/arcgis-rest-feature-service/src/getAllLayersAndTables.ts +30 -0
  226. package/packages/arcgis-rest-feature-service/src/getAttachments.ts +55 -0
  227. package/packages/arcgis-rest-feature-service/src/getLayer.ts +23 -0
  228. package/packages/arcgis-rest-feature-service/src/getService.ts +25 -0
  229. package/packages/arcgis-rest-feature-service/src/getServiceAdminInfo.ts +33 -0
  230. package/packages/arcgis-rest-feature-service/src/getViewSources.ts +19 -0
  231. package/packages/arcgis-rest-feature-service/src/helpers.ts +768 -0
  232. package/packages/arcgis-rest-feature-service/src/index.ts +37 -0
  233. package/packages/arcgis-rest-feature-service/src/query.ts +200 -0
  234. package/packages/arcgis-rest-feature-service/src/queryRelated.ts +86 -0
  235. package/packages/arcgis-rest-feature-service/src/update.ts +65 -0
  236. package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +59 -0
  237. package/packages/arcgis-rest-feature-service/src/updateServiceDefinition.ts +53 -0
  238. package/packages/arcgis-rest-feature-service/test/addToServiceDefinition.test.ts +350 -0
  239. package/packages/arcgis-rest-feature-service/test/attachments.test.ts +188 -0
  240. package/packages/arcgis-rest-feature-service/test/createFeatureService.test.ts +279 -0
  241. package/packages/arcgis-rest-feature-service/test/crud.test.ts +196 -0
  242. package/packages/arcgis-rest-feature-service/test/decodeValues.test.ts +66 -0
  243. package/packages/arcgis-rest-feature-service/test/getAllLayersAndTables.test.ts +27 -0
  244. package/packages/arcgis-rest-feature-service/test/getLayer.test.ts +30 -0
  245. package/packages/arcgis-rest-feature-service/test/getService.test.ts +30 -0
  246. package/packages/arcgis-rest-feature-service/test/getServiceAdminInfo.test.ts +41 -0
  247. package/packages/arcgis-rest-feature-service/test/getViewSources.test.ts +45 -0
  248. package/packages/arcgis-rest-feature-service/test/helpers.test.ts +27 -0
  249. package/packages/arcgis-rest-feature-service/test/mocks/allLayersAndTablesResponse.ts +950 -0
  250. package/packages/arcgis-rest-feature-service/test/mocks/cvdQueryResponse.ts +225 -0
  251. package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +302 -0
  252. package/packages/arcgis-rest-feature-service/test/mocks/fields.ts +779 -0
  253. package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
  254. package/packages/arcgis-rest-feature-service/test/mocks/layerDefinition.ts +80 -0
  255. package/packages/arcgis-rest-feature-service/test/mocks/service.ts +476 -0
  256. package/packages/arcgis-rest-feature-service/test/query.test.ts +166 -0
  257. package/packages/arcgis-rest-feature-service/test/updateServiceDefinition.test.ts +103 -0
  258. package/packages/arcgis-rest-feature-service/tsconfig.json +9 -0
  259. package/packages/arcgis-rest-fetch/README.md +17 -0
  260. package/packages/arcgis-rest-fetch/browser-ponyfill.js +8 -0
  261. package/packages/arcgis-rest-fetch/browser-ponyfill.mjs +8 -0
  262. package/packages/arcgis-rest-fetch/index.types.d.ts +8 -0
  263. package/packages/arcgis-rest-fetch/node-ponyfill.js +10 -0
  264. package/packages/arcgis-rest-fetch/node-ponyfill.mjs +10 -0
  265. package/packages/arcgis-rest-fetch/package.json +21 -0
  266. package/packages/arcgis-rest-form-data/README.md +15 -0
  267. package/packages/arcgis-rest-form-data/browser-ponyfill.js +5 -0
  268. package/packages/arcgis-rest-form-data/browser-ponyfill.mjs +3 -0
  269. package/packages/arcgis-rest-form-data/index.types.d.ts +9 -0
  270. package/packages/arcgis-rest-form-data/node-ponyfill.js +7 -0
  271. package/packages/arcgis-rest-form-data/node-ponyfill.mjs +5 -0
  272. package/packages/arcgis-rest-form-data/package.json +21 -0
  273. package/packages/arcgis-rest-geocoding/CHANGELOG.md +26 -0
  274. package/packages/arcgis-rest-geocoding/README.md +85 -0
  275. package/packages/arcgis-rest-geocoding/package.json +69 -0
  276. package/packages/arcgis-rest-geocoding/src/bulk.ts +106 -0
  277. package/packages/arcgis-rest-geocoding/src/geocode.ts +169 -0
  278. package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
  279. package/packages/arcgis-rest-geocoding/src/index.ts +17 -0
  280. package/packages/arcgis-rest-geocoding/src/reverse.ts +82 -0
  281. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  282. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +193 -0
  283. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +254 -0
  284. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  285. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +1031 -0
  286. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +124 -0
  287. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  288. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  289. package/packages/arcgis-rest-portal/README.md +72 -0
  290. package/packages/arcgis-rest-portal/package.json +68 -0
  291. package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
  292. package/packages/arcgis-rest-portal/src/groups/create.ts +42 -0
  293. package/packages/arcgis-rest-portal/src/groups/get.ts +187 -0
  294. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  295. package/packages/arcgis-rest-portal/src/groups/invite-users.ts +141 -0
  296. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  297. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  298. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  299. package/packages/arcgis-rest-portal/src/groups/remove-users.ts +84 -0
  300. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  301. package/packages/arcgis-rest-portal/src/groups/search.ts +48 -0
  302. package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
  303. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  304. package/packages/arcgis-rest-portal/src/helpers.ts +83 -0
  305. package/packages/arcgis-rest-portal/src/index.ts +68 -0
  306. package/packages/arcgis-rest-portal/src/items/add.ts +145 -0
  307. package/packages/arcgis-rest-portal/src/items/content.ts +70 -0
  308. package/packages/arcgis-rest-portal/src/items/create.ts +149 -0
  309. package/packages/arcgis-rest-portal/src/items/export.ts +92 -0
  310. package/packages/arcgis-rest-portal/src/items/get.ts +444 -0
  311. package/packages/arcgis-rest-portal/src/items/helpers.ts +272 -0
  312. package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
  313. package/packages/arcgis-rest-portal/src/items/reassign.ts +59 -0
  314. package/packages/arcgis-rest-portal/src/items/remove.ts +139 -0
  315. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  316. package/packages/arcgis-rest-portal/src/items/update.ts +188 -0
  317. package/packages/arcgis-rest-portal/src/items/upload.ts +124 -0
  318. package/packages/arcgis-rest-portal/src/orgs/notification.ts +148 -0
  319. package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
  320. package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +29 -0
  321. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  322. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +80 -0
  323. package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
  324. package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +335 -0
  325. package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +114 -0
  326. package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
  327. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  328. package/packages/arcgis-rest-portal/src/users/get-user.ts +60 -0
  329. package/packages/arcgis-rest-portal/src/users/invitation.ts +157 -0
  330. package/packages/arcgis-rest-portal/src/users/notification.ts +67 -0
  331. package/packages/arcgis-rest-portal/src/users/search-users.ts +35 -0
  332. package/packages/arcgis-rest-portal/src/users/update.ts +63 -0
  333. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
  334. package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
  335. package/packages/arcgis-rest-portal/src/util/generic-search.ts +111 -0
  336. package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +44 -0
  337. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +32 -0
  338. package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
  339. package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
  340. package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
  341. package/packages/arcgis-rest-portal/src/util/search.ts +48 -0
  342. package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +238 -0
  343. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +183 -0
  344. package/packages/arcgis-rest-portal/test/groups/get.test.ts +174 -0
  345. package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
  346. package/packages/arcgis-rest-portal/test/groups/join.test.ts +71 -0
  347. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +111 -0
  348. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +71 -0
  349. package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
  350. package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
  351. package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +64 -0
  352. package/packages/arcgis-rest-portal/test/items/add.test.ts +320 -0
  353. package/packages/arcgis-rest-portal/test/items/content.test.ts +161 -0
  354. package/packages/arcgis-rest-portal/test/items/create.test.ts +404 -0
  355. package/packages/arcgis-rest-portal/test/items/export.test.ts +115 -0
  356. package/packages/arcgis-rest-portal/test/items/get.test.ts +606 -0
  357. package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
  358. package/packages/arcgis-rest-portal/test/items/protect.test.ts +120 -0
  359. package/packages/arcgis-rest-portal/test/items/reassign.test.ts +130 -0
  360. package/packages/arcgis-rest-portal/test/items/remove.test.ts +259 -0
  361. package/packages/arcgis-rest-portal/test/items/search.test.ts +274 -0
  362. package/packages/arcgis-rest-portal/test/items/update.test.ts +549 -0
  363. package/packages/arcgis-rest-portal/test/items/upload.test.ts +286 -0
  364. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
  365. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  366. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
  367. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
  368. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  369. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
  370. package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
  371. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  372. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  373. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  374. package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
  375. package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
  376. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
  377. package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +142 -0
  378. package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +64 -0
  379. package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +41 -0
  380. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  381. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  382. package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1328 -0
  383. package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
  384. package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
  385. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  386. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  387. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +126 -0
  388. package/packages/arcgis-rest-portal/test/users/notification.test.ts +76 -0
  389. package/packages/arcgis-rest-portal/test/users/search.test.ts +41 -0
  390. package/packages/arcgis-rest-portal/test/users/update.test.ts +150 -0
  391. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +295 -0
  392. package/packages/arcgis-rest-portal/test/util/array.test.ts +33 -0
  393. package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +57 -0
  394. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  395. package/packages/arcgis-rest-portal/test/util/portal.test.ts +137 -0
  396. package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +25 -0
  397. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  398. package/packages/arcgis-rest-request/README.md +72 -0
  399. package/packages/arcgis-rest-request/package.json +69 -0
  400. package/packages/arcgis-rest-request/post-message-auth-spec.md +70 -0
  401. package/packages/arcgis-rest-request/src/ApiKeyManager.ts +60 -0
  402. package/packages/arcgis-rest-request/src/ApplicationCredentialsManager.ts +141 -0
  403. package/packages/arcgis-rest-request/src/ArcGISIdentityManager.ts +1470 -0
  404. package/packages/arcgis-rest-request/src/app-tokens.ts +132 -0
  405. package/packages/arcgis-rest-request/src/authenticated-request-options.ts +23 -0
  406. package/packages/arcgis-rest-request/src/federation-utils.ts +88 -0
  407. package/packages/arcgis-rest-request/src/fetch-token.ts +48 -0
  408. package/packages/arcgis-rest-request/src/generate-token.ts +32 -0
  409. package/packages/arcgis-rest-request/src/index.ts +45 -0
  410. package/packages/arcgis-rest-request/src/request.ts +446 -0
  411. package/packages/arcgis-rest-request/src/revoke-token.ts +73 -0
  412. package/packages/arcgis-rest-request/src/types/feature.ts +42 -0
  413. package/packages/arcgis-rest-request/src/types/geometry.ts +239 -0
  414. package/packages/arcgis-rest-request/src/types/group.ts +72 -0
  415. package/packages/arcgis-rest-request/src/types/service.ts +87 -0
  416. package/packages/arcgis-rest-request/src/types/symbol.ts +21 -0
  417. package/packages/arcgis-rest-request/src/types/user.ts +49 -0
  418. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +82 -0
  419. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  420. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  421. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  422. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
  423. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  424. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  425. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  426. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  427. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  428. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +59 -0
  429. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  430. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  431. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +46 -0
  432. package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
  433. package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
  434. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +41 -0
  435. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +37 -0
  436. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  437. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  438. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  439. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  440. package/packages/arcgis-rest-request/src/validate-app-access.ts +69 -0
  441. package/packages/arcgis-rest-request/test/ApiKey.test.ts +53 -0
  442. package/packages/arcgis-rest-request/test/ApplicationSession.test.ts +148 -0
  443. package/packages/arcgis-rest-request/test/ArcGISIdentityManager.test.ts +2579 -0
  444. package/packages/arcgis-rest-request/test/app-tokens.test.ts +91 -0
  445. package/packages/arcgis-rest-request/test/federation-utils.test.ts +323 -0
  446. package/packages/arcgis-rest-request/test/fetchToken.test.ts +110 -0
  447. package/packages/arcgis-rest-request/test/generateToken.test.ts +40 -0
  448. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  449. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  450. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  451. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  452. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  453. package/packages/arcgis-rest-request/test/request.test.ts +563 -0
  454. package/packages/arcgis-rest-request/test/revoke-token.test.ts +55 -0
  455. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +196 -0
  456. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  457. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  458. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
  459. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +146 -0
  460. package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +22 -0
  461. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
  462. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +135 -0
  463. package/packages/arcgis-rest-request/test/validate-app-access.test.ts +44 -0
  464. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  465. package/packages/arcgis-rest-routing/README.md +74 -0
  466. package/packages/arcgis-rest-routing/package.json +69 -0
  467. package/packages/arcgis-rest-routing/src/closestFacility.ts +223 -0
  468. package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
  469. package/packages/arcgis-rest-routing/src/index.ts +20 -0
  470. package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +219 -0
  471. package/packages/arcgis-rest-routing/src/serviceArea.ts +169 -0
  472. package/packages/arcgis-rest-routing/src/solveRoute.ts +179 -0
  473. package/packages/arcgis-rest-routing/test/closestFacility.test.ts +686 -0
  474. package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
  475. package/packages/arcgis-rest-routing/test/mocks/responses.ts +13316 -0
  476. package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +795 -0
  477. package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
  478. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +681 -0
  479. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  480. package/prettier-package-json.config.cjs +81 -0
  481. package/rollup.js +152 -0
  482. package/scripts/create-dist-package-jsons.js +17 -0
  483. package/scripts/deploy-doc-site.js +16 -0
  484. package/scripts/generate-sri-hashes.js +52 -0
  485. package/scripts/get-package-json.js +27 -0
  486. package/scripts/run-demo-server.js +21 -0
  487. package/scripts/test-helpers.ts +20 -0
  488. package/tsconfig.json +62 -0
  489. package/typedoc.json +14 -0
@@ -0,0 +1,768 @@
1
+ /* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+ import {
4
+ cleanUrl,
5
+ IRequestOptions,
6
+ GeometryType,
7
+ IGeometry,
8
+ ISpatialReference,
9
+ IHasZM,
10
+ IExtent,
11
+ IField,
12
+ IFeature
13
+ } from "@esri/arcgis-rest-request";
14
+
15
+
16
+ /**
17
+ * The spatial relationship used to compare input geometries
18
+ */
19
+ export type SpatialRelationship =
20
+ | "esriSpatialRelIntersects"
21
+ | "esriSpatialRelContains"
22
+ | "esriSpatialRelCrosses"
23
+ | "esriSpatialRelEnvelopeIntersects"
24
+ | "esriSpatialRelIndexIntersects"
25
+ | "esriSpatialRelOverlaps"
26
+ | "esriSpatialRelTouches"
27
+ | "esriSpatialRelWithin";
28
+
29
+ /**
30
+ * Base options for making requests against feature layers
31
+ */
32
+ export interface IGetLayerOptions extends IRequestOptions {
33
+ /**
34
+ * Layer service url.
35
+ */
36
+ url: string;
37
+ }
38
+
39
+ export interface ISharedQueryOptions extends IGetLayerOptions {
40
+ /**
41
+ * A where clause for the query. Defaults to "1=1"
42
+ */
43
+ where?: string;
44
+ geometry?: IGeometry;
45
+ geometryType?: GeometryType;
46
+ // NOTE: either WKID or ISpatialReference
47
+ inSR?: string | ISpatialReference;
48
+ spatialRel?: SpatialRelationship;
49
+ }
50
+
51
+ /**
52
+ * Add, update and delete features result Object.
53
+ */
54
+ export interface IEditFeatureResult {
55
+ objectId: number;
56
+ globalId?: string;
57
+ success: boolean;
58
+ }
59
+
60
+ /**
61
+ * `globalId` always returned with attachments via apply edits.
62
+ */
63
+ export interface IApplyEditsAttachmentResult extends IEditFeatureResult {
64
+ globalId: string;
65
+ }
66
+
67
+ /**
68
+ * Apply edits result Object.
69
+ */
70
+ export interface IApplyEditsResult {
71
+ addResults: IEditFeatureResult[];
72
+ updateResults: IEditFeatureResult[];
73
+ deleteResults: IEditFeatureResult[];
74
+ attachments?: {
75
+ addResults?: IApplyEditsAttachmentResult[];
76
+ updateResults?: IApplyEditsAttachmentResult[];
77
+ deleteResults?: IApplyEditsAttachmentResult[];
78
+ };
79
+ }
80
+
81
+ /**
82
+ * Common add, update, and delete features options.
83
+ */
84
+ export interface ISharedEditOptions extends IGetLayerOptions {
85
+ /**
86
+ * The geodatabase version to apply the edits.
87
+ */
88
+ gdbVersion?: string;
89
+ /**
90
+ * Optional parameter specifying whether the response will report the time features were added.
91
+ */
92
+ returnEditMoment?: boolean;
93
+ /**
94
+ * Optional parameter to specify if the edits should be applied only if all submitted edits succeed.
95
+ */
96
+ rollbackOnFailure?: boolean;
97
+ }
98
+
99
+ const serviceRegex = new RegExp(/.+(?:map|feature|image)server/i);
100
+ /**
101
+ * Return the service url. If not matched, returns what was passed in
102
+ */
103
+ export function parseServiceUrl(url: string) {
104
+ const match = url.match(serviceRegex);
105
+ if (match) {
106
+ return match[0];
107
+ } else {
108
+ return stripQueryString(url);
109
+ }
110
+ }
111
+
112
+ function stripQueryString(url: string) {
113
+ const stripped = url.split("?")[0];
114
+ return cleanUrl(stripped);
115
+ }
116
+
117
+ export interface IStatisticDefinition {
118
+ /**
119
+ * Statistical operation to perform (count, sum, min, max, avg, stddev, var, percentile_cont, percentile_disc).
120
+ */
121
+ statisticType:
122
+ | "count"
123
+ | "sum"
124
+ | "min"
125
+ | "max"
126
+ | "avg"
127
+ | "stddev"
128
+ | "var"
129
+ | "percentile_cont"
130
+ | "percentile_disc";
131
+ /**
132
+ * Parameters to be used along with statisticType. Currently, only applicable for percentile_cont (continuous percentile) and percentile_disc (discrete percentile).
133
+ */
134
+ statisticParameters?: {
135
+ value: number;
136
+ orderBy?: "asc" | "desc";
137
+ };
138
+ /**
139
+ * Field on which to perform the statistical operation.
140
+ */
141
+ onStatisticField: string;
142
+ /**
143
+ * Field name for the returned statistic field. If outStatisticFieldName is empty or missing, the server will assign one. A valid field name can only contain alphanumeric characters and an underscore. If the outStatisticFieldName is a reserved keyword of the underlying DBMS, the operation can fail. Try specifying an alternative outStatisticFieldName.
144
+ */
145
+ outStatisticFieldName?: string;
146
+ }
147
+
148
+ export interface ILayer {
149
+ /** A unique identifying string for the layer. */
150
+ id: any;
151
+ /** Layer name */
152
+ name?: string;
153
+ /** Optional string containing the item ID of the service if it's registered on ArcGIS Online or your organization's portal. */
154
+ itemId?: string;
155
+ /** Indicates the layer type */
156
+ layerType: string;
157
+ /** Integer property used to determine the maximum scale at which the layer is displayed. */
158
+ maxScale?: number;
159
+ /** Integer property used to determine the minimum scale at which the layer is displayed. */
160
+ minScale?: number;
161
+ /** The degree of transparency applied to the layer on the client side, where 0 is full transparency and 1 is no transparency. */
162
+ opacity?: number;
163
+ /** Boolean property indicating whether to display in the legend. */
164
+ showLegend?: boolean;
165
+ /** A user-friendly string title for the layer that can be used in a table of contents. */
166
+ title?: string;
167
+ /**
168
+ * Deprecated, use layerType instead.
169
+ * @deprecated
170
+ */
171
+ type?: string;
172
+ /** Boolean property determining whether the layer is initially visible in the web map. */
173
+ visibility?: boolean;
174
+ /** The URL to the layer. Not applicable to all layer types. */
175
+ url?: string;
176
+ }
177
+
178
+ /**
179
+ * Very generic structure representing the return value from the
180
+ * /arcgis/rest/admin/services/<service-name>/FeatureServer?f=json response
181
+ */
182
+ export interface IServiceInfo extends Record<string, unknown> {
183
+ adminServiceInfo: {
184
+ name: string;
185
+ type: string;
186
+ status: string;
187
+ database: {
188
+ datasource: {
189
+ name: string;
190
+ };
191
+ };
192
+ };
193
+ layers: Record<string, unknown>[];
194
+ }
195
+
196
+ /**
197
+ * Individual View Source entry
198
+ */
199
+
200
+ export interface IViewServiceSource {
201
+ name: string;
202
+ type: string;
203
+ url: string;
204
+ serviceItemId: string;
205
+ }
206
+
207
+ /**
208
+ * Response from the /sources end-point of a view service
209
+ */
210
+ export interface IViewServiceSources {
211
+ currentVersion: number;
212
+ services: IViewServiceSource[];
213
+ }
214
+
215
+
216
+ /**
217
+ * `IFeatureServiceDefinition` can also be imported from the following packages:
218
+ *
219
+ * ```js
220
+ * import { IFeatureServiceDefinition } from "@esri/arcgis-rest-service-admin";
221
+ * import { IFeatureServiceDefinition } from "@esri/arcgis-rest-feature-service";
222
+ * ```
223
+ */
224
+ export interface IFeatureServiceDefinition {
225
+ currentVersion?: number;
226
+ serviceDescription: string;
227
+ hasVersionedData: boolean;
228
+ supportsDisconnectedEditing: boolean;
229
+ supportsReturnDeleteResults: boolean;
230
+ /** Boolean value indicating whether data changes. True if it does not. */
231
+ hasStaticData?: boolean;
232
+ /** Numeric value indicating tbe maximum number of records that will be returned at once for a query. */
233
+ maxRecordCount: number;
234
+ /** String value indicating the output formats that are supported in a query. */
235
+ supportedQueryFormats: string;
236
+ supportsRelationshipsResource: boolean;
237
+ /** A comma separated list of supported capabilities, e.g. Query,Editing. */
238
+ capabilities: string;
239
+ /** String value of the layer as defined in the map service. */
240
+ description: string;
241
+ /** String value for the copyright text information for the layer. */
242
+ copyrightText: string;
243
+ advancedEditingCapabilities: { [key: string]: boolean };
244
+ /** An object containing the WKID or WKT identifying the spatial reference of the layer's geometry. */
245
+ spatialReference: ISpatialReference;
246
+ initialExtent: IExtent;
247
+ fullExtent: IExtent;
248
+ /** Boolean value indicating whether the geometry of the features in the layer can be edited. */
249
+ allowGeometryUpdates: boolean;
250
+ units: string;
251
+ syncEnabled: boolean;
252
+ returnServiceEditsHaveSR?: boolean;
253
+ validationSystemLayers: {
254
+ validationPointErrorlayerId: number;
255
+ validationLineErrorlayerId: number;
256
+ validationPolygonErrorlayerId: number;
257
+ validationObjectErrortableId: number;
258
+ };
259
+ extractChangesCapabilities: {
260
+ supportsReturnIdsOnly: boolean;
261
+ supportsReturnExtentOnly: boolean;
262
+ supportsReturnAttachments: boolean;
263
+ supportsLayerQueries: boolean;
264
+ supportsSpatialFilter: boolean;
265
+ supportsReturnFeature: boolean;
266
+ };
267
+ syncCapabilities: {
268
+ supportsASync: boolean;
269
+ supportsRegisteringExistingData: boolean;
270
+ supportsSyncDirectionControl: boolean;
271
+ supportsPerLayerSync: boolean;
272
+ supportsPerReplicaSync: boolean;
273
+ supportsRollbackOnFailure: boolean;
274
+ supportedSyncDataOptions: number;
275
+ };
276
+ editorTrackingInfo: {
277
+ enableEditorTracking: boolean;
278
+ enableOwnershipAccessControl: boolean;
279
+ allowOthersToUpdate: boolean;
280
+ allowOthersToDelete: boolean;
281
+ };
282
+ documentInfo?: { [key: string]: string };
283
+ // the feature layers published by this service
284
+ layers: ILayerDefinition[];
285
+ // the non-spatial tables published by this service
286
+ tables: ITable[];
287
+ relationships: [
288
+ {
289
+ id: number;
290
+ name: string;
291
+ backwardPathLabel: string;
292
+ originLayerId: number;
293
+ originPrimaryKey: string;
294
+ forwardPathLabel: string;
295
+ destinationLayerId: number;
296
+ originForeignKey: string;
297
+ relationshipTableId: number;
298
+ destinationPrimaryKey: string;
299
+ destinationForeignKey: string;
300
+ rules: [
301
+ {
302
+ ruleID: number;
303
+ originSubtypeCode: number;
304
+ originMinimumCardinality: number;
305
+ originMaximumCardinality: number;
306
+ destinationSubtypeCode: number;
307
+ destinationMinimumCardinality: number;
308
+ destinationMaximumCardinality: number;
309
+ }
310
+ ];
311
+ cardinality:
312
+ | "esriRelCardinalityOneToOne"
313
+ | "esriRelCardinalityOneToMany"
314
+ | "esriRelCardinalityManyToMany";
315
+ attributed: boolean;
316
+ composite: boolean;
317
+ }
318
+ ];
319
+ enableZDefaults?: boolean;
320
+ isLocationTrackingService: boolean;
321
+ isLocationTrackingView: boolean;
322
+ zDefault?: number;
323
+ }
324
+
325
+
326
+ /**
327
+ * Root element in the web map specifying an array of table objects.
328
+ *
329
+ * `ITable` can also be imported from the following packages:
330
+ *
331
+ * ```js
332
+ * import { ITable } from "@esri-arcgis-rest-service-admin"
333
+ * ```
334
+ */
335
+ export interface ITable {
336
+ /** Table name */
337
+ name?: string;
338
+ /** A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: 'Create', 'Delete', 'Query', 'Update', and 'Editing'. */
339
+ capabilities?: string;
340
+ /** Object indicating the definitionEditor used as a layer's interactive filter. */
341
+ definitionEditor?: IDefinitionEditor;
342
+ /** Unique identifier for the table. */
343
+ id?: number;
344
+ /** Unique string value indicating an item registered in ArcGIS Online or your organization's portal. */
345
+ itemId?: string;
346
+ /** A layerDefinition object defining a definition expression for the table. */
347
+ layerDefinition?: ILayerDefinition;
348
+ /** An object defining the content of popup windows when you query a record and the sort option for child related records. */
349
+ popupInfo?: IPopupInfo;
350
+ /** String value for the title of the table. */
351
+ title?: string;
352
+ /** String value indicating the URL reference of the hosted table. */
353
+ url?: string;
354
+ }
355
+
356
+ export interface IDefinitionParameter {
357
+ /** The default value that is automatically given if nothing is provided. */
358
+ defaultValue?: number | string;
359
+ /** A string value representing the name of the field to query. */
360
+ fieldName?: string;
361
+ /** Number given to uniquely identify the specified parameter. */
362
+ parameterId?: any;
363
+ /** The field type for the specified field parameter. */
364
+ type?:
365
+ | "esriFieldTypeBlob"
366
+ | "esriFieldTypeDate"
367
+ | "esriFieldTypeDouble"
368
+ | "esriFieldTypeGeometry"
369
+ | "esriFieldTypeGlobalID"
370
+ | "esriFieldTypeGUID"
371
+ | "esriFieldTypeInteger"
372
+ | "esriFieldTypeOID"
373
+ | "esriFieldTypeRaster"
374
+ | "esriFieldTypeSingle"
375
+ | "esriFieldTypeSmallInteger"
376
+ | "esriFieldTypeString"
377
+ | "esriFieldTypeXML";
378
+
379
+ /** An integer value representing exact UNIX time used when defaultValue is a date string. */
380
+ utcValue?: number;
381
+ }
382
+
383
+ export interface IDefinitionInput {
384
+ /** A string value representing a hint for the input. */
385
+ hint?: string;
386
+ /** An array of parameter objects. */
387
+ parameters?: IDefinitionParameter[];
388
+ /** A string value representing the prompt for the input. */
389
+ prompt?: string;
390
+ }
391
+
392
+ /**
393
+ * The definitionEditor stores interactive filters at the same level as layerDefinition.
394
+ */
395
+ export interface IDefinitionEditor {
396
+ /** An array of input objects. */
397
+ inputs?: IDefinitionInput[];
398
+ /** A string value representing the where clause for the interactive filter. */
399
+ parameterizedExpression?: string;
400
+ }
401
+
402
+
403
+ /**
404
+ * Arcade expression added to the pop-up.
405
+ */
406
+ export interface IPopupExpressionInfo {
407
+ /** The Arcade expression. */
408
+ expression?: string;
409
+ /** Unique identifier for the expression. */
410
+ name?: string;
411
+ /** Return type of the Arcade expression, can be number or string. Defaults to string value. Number values are assumed to be double. This can be determined by the authoring client by executing the expression using a sample feature(s), although it can be corrected by the user. Knowing the returnType allows the authoring client to present fields in relevant contexts. For example, numeric fields in numeric contexts such as charts. */
412
+ returnType?: "number" | "string";
413
+ /** Title of the expression. */
414
+ title?: string;
415
+ }
416
+
417
+
418
+ /**
419
+ * The format object can be used with numerical or date fields to provide more detail about how values should be displayed in popup windows.
420
+ */
421
+ export interface IFieldFormat {
422
+ /** A string used with date fields to specify how the date should appear in popup windows. */
423
+ dateFormat?:
424
+ | "shortDate"
425
+ | "shortDateLE"
426
+ | "longMonthDayYear"
427
+ | "dayShortMonthYear"
428
+ | "longDate"
429
+ | "shortDateShortTime"
430
+ | "shortDateLEShortTime"
431
+ | "shortDateShortTime24"
432
+ | "shortDateLEShortTime24"
433
+ | "shortDateLongTime"
434
+ | "shortDateLELongTime"
435
+ | "shortDateLongTime24"
436
+ | "shortDateLELongTime24"
437
+ | "longMonthYear"
438
+ | "shortMonthYear"
439
+ | "year";
440
+
441
+ /**
442
+ * A Boolean used with numerical fields. A value of true allows the number to have a digit (or thousands) separator when the value appears in popup windows.
443
+ * Depending on the locale, this separator is a decimal point or a comma. A value of false means that no separator will be used.
444
+ */
445
+ digitSeparator?: boolean;
446
+ /**
447
+ * An integer used with numerical fields to specify the number of supported decimal places that should appear in popup windows. Any places beyond this value are rounded.
448
+ */
449
+ places?: number;
450
+ }
451
+
452
+ /**
453
+ * Defines how a field in the dataset participates (or does not participate) in a popup window.
454
+ */
455
+ export interface IFieldInfo {
456
+ /** A string containing the field name as defined by the service. Anywhere that a fieldname is referenced as {field-name} in popupInfo, an Arcade expression can also be referenced as{expression/}`. */
457
+ fieldName?: any;
458
+ /** A format object used with numerical or date fields to provide more detail about how the value should be displayed in a web map popup window. */
459
+ format?: IFieldFormat;
460
+ /** A Boolean determining whether users can edit this field. Not applicable to Arcade expressions. */
461
+ isEditable?: boolean;
462
+ /** A string containing the field alias. This can be overridden by the web map author. Not applicable to Arcade expressions as title is used instead. */
463
+ label?: string;
464
+ /** A string determining what type of input box editors see when editing the field. Applies only to string fields. Not applicable to Arcade expressions. */
465
+ stringFieldOption?: "textbox" | "textarea" | "richtext";
466
+
467
+ /** A string providing an editing hint for editors of the field. Not applicable to Arcade expressions. */
468
+ tooltip?: string;
469
+ /** A Boolean determining whether the field is visible in the popup window. */
470
+ visible?: boolean;
471
+ }
472
+
473
+ /**
474
+ * Defines the look and feel of popup windows when a user clicks or queries a feature.
475
+ */
476
+ export interface IPopupInfo {
477
+ /** A string that appears in the body of the popup window as a description. It is also possible to specify the description as HTML-formatted content. */
478
+ description?: string | null;
479
+ /** List of Arcade expressions added to the pop-up. */
480
+ expressionInfos?: IPopupExpressionInfo[];
481
+ /** Array of fieldInfo information properties. This information is provided by the service layer definition. When the description uses name/value pairs, the order of the array is how the fields display in the editable Map Viewer popup and the resulting popup. It is also possible to specify HTML-formatted content. */
482
+ fieldInfos?: IFieldInfo[];
483
+ /** Additional options that can be defined for the popup layer. */
484
+ layerOptions?: {
485
+ /** Indicates whether or not the NoData records should be displayed. */
486
+ showNoDataRecords: boolean;
487
+ };
488
+ /** Array of various mediaInfo to display. Can be of type image, piechart, barchart, columnchart, or linechart. The order given is the order in which is displays. */
489
+ mediaInfos?: IMediaInfo[];
490
+ /** An array of popupElement objects that represent an ordered list of popup elements. */
491
+ popupElements?: IPopupElement[];
492
+ /** Indicates whether to enable related records if they exist on a layer. */
493
+ relatedRecordsInfo?: IRelatedRecordsInfo;
494
+ /** Indicates whether attachments will be loaded for feature layers that have attachments. */
495
+ showAttachments?: boolean;
496
+ /** A string that appears at the top of the popup window as a title. */
497
+ title?: string;
498
+ }
499
+
500
+ /**
501
+ * The sort in the popupInfo for the parent feature. This impacts the sorting order for the returned child records.
502
+ */
503
+ export interface IRelatedRecordsInfo {
504
+ /** Array of orderByFields objects indicating the field display order for the related records and whether they should be sorted in ascending 'asc' or descending 'desc' order. */
505
+ orderByFields?: IOrderByField[];
506
+ /** Required boolean value indicating whether to display related records. If true, client should let the user navigate to the related records. Defaults to true if the layer participates in a relationship AND the related layer/table has already been added to the map (either as an operationalLayer or as a table). */
507
+ showRelatedRecords: boolean;
508
+ }
509
+
510
+ /**
511
+ * Object indicating the field display order for the related records and whether they should be sorted in ascending or descending order.
512
+ */
513
+ export interface IOrderByField {
514
+ /** The attribute value of the field selected that will drive the sorting of related records. */
515
+ field?: string;
516
+ /** Set the ascending or descending sort order of the returned related records. */
517
+ order?: "asc" | "desc";
518
+ }
519
+
520
+
521
+ /**
522
+ * The value object contains information for popup windows about how images should be retrieved or charts constructed.
523
+ */
524
+ export interface IMediaInfoValue {
525
+ /** Used with charts. An array of strings, with each string containing the name of a field to display in the chart. */
526
+ fields?: string[];
527
+ /** Used with images. A string containing a URL to be launched in a browser when a user clicks the image. */
528
+ linkURL?: string;
529
+ /** Used with charts. An optional string containing the name of a field. The values of all fields in the chart will be normalized (divided) by the value of this field. */
530
+ normalizeField?: string;
531
+ /** Used with images. A string containing the URL to the image. */
532
+ sourceURL?: string;
533
+ /** String value indicating the tooltip for a chart specified from another field. This field is needed when related records are not sued. It is used for showing tooltips from another field in the same layer or related layer/table. */
534
+ tooltipField?: string;
535
+ }
536
+
537
+
538
+ /**
539
+ * Defines an image or a chart to be displayed in a popup window.
540
+ */
541
+ export interface IMediaInfo {
542
+ /** A string caption describing the media. */
543
+ caption?: any;
544
+ /** Refresh interval of the layer in minutes. Non-zero value indicates automatic layer refresh at the specified interval. Value of 0 indicates auto refresh is not enabled. If the property does not exist, it's equivalent to having a value of 0. Only applicable when type is set to image. */
545
+ refreshInterval?: any;
546
+ /** A string title for the media. */
547
+ title?: string | null;
548
+ /** A string defining the type of media. */
549
+ type?: "image" | "barchart" | "columnchart" | "linechart" | "piechart";
550
+
551
+ /** A value object containing information about how the image should be retrieved or how the chart should be constructed. */
552
+ value?: IMediaInfoValue | null;
553
+ }
554
+
555
+ /**
556
+ * Popup elements allow users to author popups, using multiple elements such as tabular views, string description, media (charts and images), and attachments of the attributes
557
+ * and control the order in which they appear. Specifically, popupElements do the following:
558
+ * 1) provide the ability to explicitly add a field/ value table in addition to a description,
559
+ * 2) allow adding multiple description elements, and
560
+ * 3) allow a user to author and consume elements of a popup in the order of their choosing.
561
+ */
562
+ export interface IPopupElement {
563
+ /**
564
+ * This property applies to elements of type attachments. A string value indicating how to display the attachment.
565
+ * Possible values are, preview, and list. If list is specified, attachments show as links.
566
+ */
567
+ displayType?: "preview" | "list";
568
+ /**
569
+ * This property applies to elements of type fields. It is an array of popupInfo.fieldInfo objects representing a field/value pair displayed as a table within the popupElement.
570
+ * If the fieldInfos property is not provided, the popupElement will display whatever is specified directly in the popupInfo.fieldInfos property.
571
+ */
572
+ fieldInfos?: IFieldInfo[];
573
+ /**
574
+ * This property applies to elements of type media. An array of popupInfo.mediaInfo objects representing an image or chart for display.
575
+ * If no mediaInfos property is provided, the popupElement will display whatever is specified in the popupInfo.mediaInfo property.
576
+ */
577
+ mediaInfos?: IMediaInfo[];
578
+ /**
579
+ * This property applies to elements of type text. This is string value indicating the text to be displayed within the popupElement.
580
+ * If no text property is provided, the popupElement will display whatever is specified in the popupInfo.description property.
581
+ */
582
+ text?: string;
583
+ /** String value indicating which elements to use. */
584
+ type?: "text" | "fields" | "media" | "attachments";
585
+ }
586
+
587
+
588
+
589
+ export interface IEditingInfo {
590
+ /** date of last edit to the layer */
591
+ lastEditDate?: number;
592
+ }
593
+
594
+
595
+ export type FeatureEditTool =
596
+ | "esriFeatureEditToolAutoCompletePolygon"
597
+ | "esriFeatureEditToolPolygon"
598
+ | "esriFeatureEditToolTriangle"
599
+ | "esriFeatureEditToolRectangle"
600
+ | "esriFeatureEditToolLeftArrow"
601
+ | "esriFeatureEditToolRightArrow"
602
+ | "esriFeatureEditToolEllipse"
603
+ | "esriFeatureEditToolUpArrow"
604
+ | "esriFeatureEditToolDownArrow"
605
+ | "esriFeatureEditToolCircle"
606
+ | "esriFeatureEditToolFreehand"
607
+ | "esriFeatureEditToolLine"
608
+ | "esriFeatureEditToolNone"
609
+ | "esriFeatureEditToolText"
610
+ | "esriFeatureEditToolPoint";
611
+
612
+ /**
613
+ * Templates describe features that can be created in a layer. They are generally used with feature collections and editable web-based CSV layers.
614
+ * Templates are not used with ArcGIS feature services as these already have templates defined in the service. They are also defined as properties
615
+ * of the layer definition when there are no defined types. Otherwise, templates are defined as properties of the types.
616
+ */
617
+ export interface ITemplate {
618
+ /** A string value containing a detailed description of the template. */
619
+ description?: any;
620
+ /**
621
+ * An optional string that can define a client-side drawing tool to be used with this feature. For example, map notes used by the Online Map Viewer use this to represent the viewer's different drawing tools.
622
+ */
623
+ drawingTool?: FeatureEditTool;
624
+ /** A string containing a user-friendly name for the template. */
625
+ name?: string;
626
+ /** A feature object representing a prototypical feature for the template. */
627
+ prototype?: IFeature;
628
+ }
629
+
630
+ /**
631
+ * `ILayerDefinition` can also be imported from the following packages:
632
+ *
633
+ * ```js
634
+ * import { ILayerDefinition } from "@esri/arcgis-rest-service-admin";
635
+ * import { ILayerDefinition } from "@esri/arcgis-rest-feature-service";
636
+ * ```
637
+ */
638
+ export interface ILayerDefinition extends IHasZM {
639
+ /** Boolean value indicating whether the geometry of the features in the layer can be edited. */
640
+ allowGeometryUpdates?: boolean;
641
+ /** A comma separated list of supported capabilities, e.g. Query,Editing. */
642
+ capabilities?: string;
643
+ /** String value for the copyright text information for the layer. */
644
+ copyrightText?: string;
645
+ /** Numeric value indicating the server version of the layer. */
646
+ currentVersion?: number;
647
+ /** Boolean value indicating whether the layer's visibility is turned on. */
648
+ defaultVisibility?: boolean;
649
+ /** Stores interactive filters. */
650
+ definitionEditor?: IDefinitionEditor;
651
+ /** SQL-based definition expression string that narrows the data to be displayed in the layer. */
652
+ definitionExpression?: string;
653
+ /** String value of the layer as defined in the map service. */
654
+ description?: string;
655
+ /** A string value that summarizes the feature. */
656
+ displayField?: string;
657
+ /** Contains drawing, labeling, and transparency information. */
658
+ drawingInfo?: any;
659
+ /** An object defining the rectangular area. */
660
+ extent?: IExtent | null;
661
+ /** An object defining the editing info (last edit date). */
662
+ editingInfo?: IEditingInfo;
663
+ /** Feature reductions declutter the screen by hiding features that would otherwise intersect with other features on screen. */
664
+ featureReduction?: any;
665
+ /** An array of field objects containing information about the attribute fields for the feature collection or layer. */
666
+ fields?: IField[];
667
+ /** A string defining the type of geometry. Possible geometry types are: esriGeometryPoint, esriGeometryMultipoint, esriGeometryPolyline, esriGeometryPolygon, and esriGeometryEnvelope. */
668
+ geometryType?: GeometryType;
669
+ /** The unique identifier for a feature or table row within a geodatabase. */
670
+ globalIdField?: string;
671
+ /** Indicates whether attachments should be loaded for the layer. */
672
+ hasAttachments?: boolean;
673
+ /** Boolean value indicating whether data changes. True if it does not. */
674
+ hasStaticData?: boolean;
675
+ /** String value indicating the HTML popup type. */
676
+ htmlPopupType?:
677
+ | "esriServerHTMLPopupTypeNone"
678
+ | "esriServerHTMLPopupTypeAsURL"
679
+ | "esriServerHTMLPopupTypeAsHTMLText";
680
+
681
+ /** The identifier assigned to the layer. */
682
+ id?: number;
683
+ /** Boolean value indicating whether the data is versioned. */
684
+ isDataVersioned?: boolean;
685
+ /** Numeric value indicating tbe maximum number of records that will be returned at once for a query. */
686
+ maxRecordCount?: number;
687
+ /** Represents the maximum scale at which the layer definition will be applied. This does not apply to layers of type: ArcGISMapServiceLayer, ImageServiceVectorLayer or ImageServiceLayer. */
688
+ maxScale?: number;
689
+ /** Represents the minimum scale at which the layer definition will be applied. This does not apply to layers of type: ArcGISMapServiceLayer, ImageServiceVectorLayer or ImageServiceLayer. */
690
+ minScale?: number;
691
+ /** Contains a unique name for the layer that can be displayed in a legend. */
692
+ name?: string;
693
+ /** Indicates the name of the object ID field in the dataset. */
694
+ objectIdField?: string;
695
+ /** Dictates whether a client can support having an end user modify symbols on individual features. */
696
+ overrideSymbols?: boolean;
697
+ /** Indicates range information */
698
+ rangeInfos?: any;
699
+ /** An object indicating the layerDefinition's layer source. */
700
+ source?: any;
701
+ /** An object containing the WKID or WKT identifying the spatial reference of the layer's geometry. */
702
+ spatialReference?: ISpatialReference;
703
+ /** String value indicating the output formats that are supported in a query. */
704
+ supportedQueryFormats?: string;
705
+ /** Boolean value indicating whether the layer supports orderByFields in a query operation. */
706
+ supportsAdvancedQueries?: boolean;
707
+ /** Boolean value indicating whether the layer supports uploading attachments with the Uploads operation. This can then be used in the Add Attachment and Update Attachment operations. */
708
+ supportsAttachmentsByUploadId?: boolean;
709
+ /** Boolean value indicating whether the layer supports the Calculate REST operation when updating features. */
710
+ supportsCalculate?: boolean;
711
+ /** Boolean value indicating whether the layer supports rolling back edits made on a feature layer if some of the edits fail. */
712
+ supportsRollbackOnFailureParameter?: boolean;
713
+ /** Boolean value indicating whether feature layer query operations support statistical functions. */
714
+ supportsStatistics?: boolean;
715
+ /** Boolean value indicating whether the validateSQL operation is supported across a feature service layer. */
716
+ supportsValidateSql?: boolean;
717
+ /** A property of the layer definition when there are no types defined; otherwise, templates are defined as properties of the types. */
718
+ templates?: ITemplate[];
719
+ /** The time info metadata of the layer. May be set for feature layers inside a feature collection item. */
720
+ timeInfo?: any;
721
+ /** Indicates whether the layerDefinition applies to a Feature Layer or a Table. */
722
+ type?: "Feature Layer" | "Table";
723
+ /** Contains the name of the field holding the type ID for the features. */
724
+ typeIdField?: string;
725
+ /** Contains information about an attribute field. */
726
+ types?: any;
727
+ /** String value indicating the attribute field that is used to control the visibility of a feature.
728
+ * If applicable, when rendering a feature the client should use this field to control visibility.
729
+ * The field's values are 0 = do not display, 1 = display.
730
+ */
731
+ visibilityField?: string;
732
+ relationships?: any[];
733
+ editFieldsInfo?: {
734
+ creationDateField?: string;
735
+ creatorField?: string;
736
+ editDateField?: string;
737
+ editorField?: string;
738
+ };
739
+ parentLayerId?: number;
740
+ ownershipBasedAccessControlForFeatures?: boolean;
741
+ syncCanReturnChanges?: boolean;
742
+ archivingInfo?: {
743
+ supportsQueryWithHistoricMoment?: boolean;
744
+ startArchivingMoment?: number;
745
+ };
746
+ supportsValidateSQL?: boolean;
747
+ advancedQueryCapabilities?: {
748
+ supportsPagination?: boolean;
749
+ supportsTrueCurve?: boolean;
750
+ supportsQueryWithDistance?: boolean;
751
+ supportsReturningQueryExtent?: boolean;
752
+ supportsStatistics?: boolean;
753
+ supportsOrderBy?: boolean;
754
+ supportsDistinct?: boolean;
755
+ supportsSqlExpression?: boolean;
756
+ supportsPercentileStatistics?: boolean;
757
+ };
758
+ allowTrueCurvesUpdates?: boolean;
759
+ onlyAllowTrueCurveUpdatesByTrueCurveClients?: boolean;
760
+ supportsApplyEditsWithGlobalIds?: boolean;
761
+ subtypeField?: string;
762
+ indexes?: any[];
763
+ dateFieldsTimeReference?: {
764
+ timeZone?: string;
765
+ respectsDaylightSaving?: boolean;
766
+ };
767
+ useStandardizedQueries?: boolean;
768
+ }