autculpa 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 (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,41 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request } from "@esri/arcgis-rest-request";
5
+
6
+ import { getPortalUrl } from "../util/get-portal-url.js";
7
+ import { IUserItemOptions, determineOwner } from "./helpers.js";
8
+
9
+ /**
10
+ * Protect an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/protect.htm) for more information.
11
+ *
12
+ * @param requestOptions - Options for the request
13
+ * @returns A Promise to protect an item.
14
+ */
15
+ export function protectItem(
16
+ requestOptions: IUserItemOptions
17
+ ): Promise<{ success: boolean }> {
18
+ return determineOwner(requestOptions).then((owner) => {
19
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
20
+ requestOptions.id
21
+ }/protect`;
22
+ return request(url, requestOptions);
23
+ });
24
+ }
25
+
26
+ /**
27
+ * Unprotect an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/unprotect.htm) for more information.
28
+ *
29
+ * @param requestOptions - Options for the request
30
+ * @returns A Promise to unprotect an item.
31
+ */
32
+ export function unprotectItem(
33
+ requestOptions: IUserItemOptions
34
+ ): Promise<{ success: boolean }> {
35
+ return determineOwner(requestOptions).then((owner) => {
36
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
37
+ requestOptions.id
38
+ }/unprotect`;
39
+ return request(url, requestOptions);
40
+ });
41
+ }
@@ -0,0 +1,59 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+ import { request, IUserRequestOptions } from "@esri/arcgis-rest-request";
4
+ import { getPortalUrl } from "../util/get-portal-url.js";
5
+ import { isOrgAdmin } from "../sharing/helpers.js";
6
+
7
+ interface IReassignItemOptions extends IUserRequestOptions {
8
+ id: string;
9
+ currentOwner: string;
10
+ targetUsername: string;
11
+ targetFolderName?: string;
12
+ }
13
+
14
+ interface IReassignItemResponse {
15
+ success: boolean;
16
+ itemId: string;
17
+ }
18
+
19
+ /**
20
+ * ```js
21
+ * import { reassignItem } from '@esri/arcgis-rest-portal';
22
+ * //
23
+ * reassignItem({
24
+ * id: "abc123",
25
+ * currentOwner: "charles",
26
+ * targetUsername: "leslie",
27
+ * authentication
28
+ * })
29
+ * ```
30
+ * Reassign an item from one user to another.
31
+ * Caller must be an org admin or the request will fail.
32
+ * `currentOwner` and `targetUsername` must be in the same
33
+ * organization or the request will fail
34
+ * @param reassignOptions - Options for the request
35
+ */
36
+ export function reassignItem(
37
+ reassignOptions: IReassignItemOptions
38
+ ): Promise<IReassignItemResponse> {
39
+ return isOrgAdmin(reassignOptions).then((isAdmin) => {
40
+ if (!isAdmin) {
41
+ throw Error(
42
+ `Item ${reassignOptions.id} can not be reassigned because current user is not an organization administrator.`
43
+ );
44
+ }
45
+ // we're operating as an org-admin
46
+ const url = `${getPortalUrl(reassignOptions)}/content/users/${
47
+ reassignOptions.currentOwner
48
+ }/items/${reassignOptions.id}/reassign`;
49
+
50
+ const opts = {
51
+ params: {
52
+ targetUsername: reassignOptions.targetUsername,
53
+ targetFolderName: reassignOptions.targetFolderName
54
+ },
55
+ authentication: reassignOptions.authentication
56
+ };
57
+ return request(url, opts);
58
+ });
59
+ }
@@ -0,0 +1,139 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, appendCustomParams } from "@esri/arcgis-rest-request";
5
+
6
+ import { getPortalUrl } from "../util/get-portal-url.js";
7
+ import {
8
+ IUserItemOptions,
9
+ IRemoveItemResourceOptions,
10
+ IFolderIdOptions,
11
+ determineOwner,
12
+ IManageItemRelationshipOptions
13
+ } from "./helpers.js";
14
+
15
+ /**
16
+ * ```js
17
+ * import { removeItem } from "@esri/arcgis-rest-portal";
18
+ * //
19
+ * removeItem({
20
+ * id: "3ef",
21
+ * authentication
22
+ * })
23
+ * ```
24
+ * Delete an item from the portal. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-item.htm) for more information.
25
+ *
26
+ * @param requestOptions - Options for the request
27
+ * @returns A Promise that deletes an item.
28
+ */
29
+ export function removeItem(
30
+ requestOptions: IUserItemOptions
31
+ ): Promise<{ success: boolean; itemId: string }> {
32
+ return determineOwner(requestOptions).then((owner) => {
33
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
34
+ requestOptions.id
35
+ }/delete`;
36
+ return request(url, requestOptions);
37
+ });
38
+ }
39
+
40
+ /**
41
+ * ```js
42
+ * import { removeItemRelationship } from "@esri/arcgis-rest-portal";
43
+ * //
44
+ * removeItemRelationship({
45
+ * originItemId: '3ef',
46
+ * destinationItemId: 'ae7',
47
+ * relationshipType: 'Service2Layer',
48
+ * authentication
49
+ * })
50
+ * .then(response)
51
+ * ```
52
+ * Remove a relationship between two items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-relationship.htm) for more information.
53
+ *
54
+ * @param requestOptions - Options for the request
55
+ * @returns A Promise to add item resources.
56
+ */
57
+ export function removeItemRelationship(
58
+ requestOptions: IManageItemRelationshipOptions
59
+ ): Promise<{ success: boolean }> {
60
+ return determineOwner(requestOptions).then((owner) => {
61
+ const url = `${getPortalUrl(
62
+ requestOptions
63
+ )}/content/users/${owner}/deleteRelationship`;
64
+
65
+ const options = appendCustomParams<IManageItemRelationshipOptions>(
66
+ requestOptions,
67
+ ["originItemId", "destinationItemId", "relationshipType"],
68
+ { params: { ...requestOptions.params } }
69
+ );
70
+
71
+ return request(url, options);
72
+ });
73
+ }
74
+
75
+ /**
76
+ * Remove a resource associated with an item
77
+ *
78
+ * @param requestOptions - Options for the request
79
+ * @returns A Promise that deletes an item resource.
80
+ */
81
+ export function removeItemResource(
82
+ requestOptions: IRemoveItemResourceOptions
83
+ ): Promise<{ success: boolean }> {
84
+ return determineOwner(requestOptions).then((owner) => {
85
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
86
+ requestOptions.id
87
+ }/removeResources`;
88
+
89
+ // mix in user supplied params
90
+ requestOptions.params = {
91
+ ...requestOptions.params,
92
+ resource: requestOptions.resource
93
+ };
94
+
95
+ // only override the deleteAll param specified previously if it is passed explicitly
96
+ if (typeof requestOptions.deleteAll !== "undefined") {
97
+ requestOptions.params.deleteAll = requestOptions.deleteAll;
98
+ }
99
+
100
+ return request(url, requestOptions);
101
+ });
102
+ }
103
+
104
+ /**
105
+ * ```js
106
+ * import { removeFolder } from "@esri/arcgis-rest-portal";
107
+ * //
108
+ * removeFolder({
109
+ * folderId: "fe4",
110
+ * owner: "c@sey",
111
+ * authentication
112
+ * })
113
+ * .then(response)
114
+ *
115
+ * ```
116
+ * Delete a non-root folder and all the items it contains. See the [REST
117
+ * Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-folder.htm) for
118
+ * more information.
119
+ *
120
+ * @param requestOptions - Options for the request
121
+ * @returns A Promise that deletes a folder
122
+ */
123
+ export function removeFolder(requestOptions: IFolderIdOptions): Promise<{
124
+ success: boolean;
125
+ folder: {
126
+ username: string;
127
+ id: string;
128
+ title: string;
129
+ };
130
+ }> {
131
+ return determineOwner(requestOptions).then((owner) => {
132
+ const url = `${getPortalUrl(
133
+ requestOptions
134
+ )}/content/users/${encodeURIComponent(owner)}/${
135
+ requestOptions.folderId
136
+ }/delete`;
137
+ return request(url, requestOptions);
138
+ });
139
+ }
@@ -0,0 +1,25 @@
1
+ /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { IItem } from "../helpers.js";
5
+ import { SearchQueryBuilder } from "../util/SearchQueryBuilder.js";
6
+ import { ISearchOptions, ISearchResult } from "../util/search.js";
7
+ import { genericSearch } from "../util/generic-search.js";
8
+
9
+ /**
10
+ * ```js
11
+ * import { searchItems } from "@esri/arcgis-rest-portal";
12
+ * //
13
+ * searchItems('water')
14
+ * .then(response) // response.total => 355
15
+ * ```
16
+ * Search a portal for items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/search.htm) for more information.
17
+ *
18
+ * @param search - A string or RequestOptions object to pass through to the endpoint.
19
+ * @returns A Promise that will resolve with the data from the response.
20
+ */
21
+ export function searchItems(
22
+ search: string | ISearchOptions | SearchQueryBuilder
23
+ ): Promise<ISearchResult<IItem>> {
24
+ return genericSearch<IItem>(search, "item");
25
+ }
@@ -0,0 +1,188 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, IRequestOptions } from "@esri/arcgis-rest-request";
5
+ import { IItemUpdate } from "../helpers.js";
6
+
7
+ import { getPortalUrl } from "../util/get-portal-url.js";
8
+ import {
9
+ ICreateUpdateItemOptions,
10
+ IMoveItemResponse,
11
+ IItemInfoOptions,
12
+ IItemResourceOptions,
13
+ IItemInfoResponse,
14
+ IItemResourceResponse,
15
+ IUpdateItemResponse,
16
+ determineOwner
17
+ } from "./helpers.js";
18
+
19
+ export interface IUpdateItemOptions extends ICreateUpdateItemOptions {
20
+ item: IItemUpdate;
21
+ }
22
+
23
+ export interface IMoveItemOptions extends ICreateUpdateItemOptions {
24
+ /**
25
+ * Alphanumeric id of item to be moved.
26
+ */
27
+ itemId: string;
28
+ /**
29
+ * Alphanumeric id of folder to house moved item. If null, empty, or "/", the destination is the
30
+ * root folder.
31
+ */
32
+ folderId?: string;
33
+ }
34
+
35
+ /**
36
+ * ```js
37
+ * import { updateItem } from "@esri/arcgis-rest-portal";
38
+ * //
39
+ * updateItem({
40
+ * item: {
41
+ * id: "3ef",
42
+ * description: "A three hour tour"
43
+ * },
44
+ * authentication
45
+ * })
46
+ * .then(response)
47
+ * ```
48
+ * Update an Item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.
49
+ *
50
+ * @param requestOptions - Options for the request.
51
+ * @returns A Promise that updates an item.
52
+ */
53
+ export function updateItem(
54
+ requestOptions: IUpdateItemOptions
55
+ ): Promise<IUpdateItemResponse> {
56
+ return determineOwner(requestOptions).then((owner) => {
57
+ const url = requestOptions.folderId
58
+ ? `${getPortalUrl(requestOptions)}/content/users/${owner}/${
59
+ requestOptions.folderId
60
+ }/items/${requestOptions.item.id}/update`
61
+ : `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
62
+ requestOptions.item.id
63
+ }/update`;
64
+
65
+ // serialize the item into something Portal will accept
66
+ requestOptions.params = {
67
+ ...requestOptions.params,
68
+ ...requestOptions.item
69
+ };
70
+
71
+ return request(url, requestOptions);
72
+ });
73
+ }
74
+
75
+ /**
76
+ * ```js
77
+ * import { updateItemInfo } from "@esri/arcgis-rest-portal";
78
+ * //
79
+ * updateItemInfo({
80
+ * id: '3ef',
81
+ * file: file,
82
+ * authentication
83
+ * })
84
+ * .then(response)
85
+ * ```
86
+ * Update an info file associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-info.htm) for more information.
87
+ *
88
+ * @param requestOptions - Options for the request
89
+ * @returns A Promise that updates an item info file.
90
+ */
91
+ export function updateItemInfo(
92
+ requestOptions: IItemInfoOptions
93
+ ): Promise<IItemInfoResponse> {
94
+ return determineOwner(requestOptions).then((owner) => {
95
+ const url = `${getPortalUrl(
96
+ requestOptions as IRequestOptions
97
+ )}/content/users/${owner}/items/${requestOptions.id}/updateinfo`;
98
+
99
+ // mix in user supplied params
100
+ requestOptions.params = {
101
+ folderName: requestOptions.folderName,
102
+ file: requestOptions.file,
103
+ ...requestOptions.params
104
+ };
105
+
106
+ return request(url, requestOptions);
107
+ });
108
+ }
109
+
110
+ /**
111
+ * ```js
112
+ * import { updateItemResource } from "@esri/arcgis-rest-portal";
113
+ * //
114
+ * updateItemResource({
115
+ * id: '3ef',
116
+ * resource: file,
117
+ * name: 'bigkahuna.jpg',
118
+ * authentication
119
+ * })
120
+ * .then(response)
121
+ * ```
122
+ * Update a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm) for more information.
123
+ *
124
+ * @param requestOptions - Options for the request
125
+ * @returns A Promise that updates an item resource.
126
+ */
127
+ export function updateItemResource(
128
+ requestOptions: IItemResourceOptions
129
+ ): Promise<IItemResourceResponse> {
130
+ return determineOwner(requestOptions).then((owner) => {
131
+ const url = `${getPortalUrl(
132
+ requestOptions as IRequestOptions
133
+ )}/content/users/${owner}/items/${requestOptions.id}/updateResources`;
134
+
135
+ // mix in user supplied params
136
+ requestOptions.params = {
137
+ file: requestOptions.resource,
138
+ fileName: requestOptions.name,
139
+ resourcesPrefix: requestOptions.prefix,
140
+ text: requestOptions.content,
141
+ ...requestOptions.params
142
+ };
143
+
144
+ // only override the access specified previously if 'private' is passed explicitly
145
+ if (typeof requestOptions.private !== "undefined") {
146
+ requestOptions.params.access = requestOptions.private
147
+ ? "private"
148
+ : "inherit";
149
+ }
150
+ return request(url, requestOptions);
151
+ });
152
+ }
153
+
154
+ /**
155
+ * ```js
156
+ * import { moveItem } from "@esri/arcgis-rest-portal";
157
+ * //
158
+ * moveItem({
159
+ * itemId: "3ef",
160
+ * folderId: "7c5",
161
+ * authentication: ArcGISIdentityManager
162
+ * })
163
+ * ```
164
+ * Move an item to a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/move-item.htm) for more information.
165
+ *
166
+ * @param requestOptions - Options for the request
167
+ * @returns A Promise that resolves with owner and folder details once the move has been completed
168
+ */
169
+ export function moveItem(
170
+ requestOptions: IMoveItemOptions
171
+ ): Promise<IMoveItemResponse> {
172
+ return determineOwner(requestOptions).then((owner) => {
173
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
174
+ requestOptions.itemId
175
+ }/move`;
176
+
177
+ let folderId = requestOptions.folderId;
178
+ if (!folderId) {
179
+ folderId = "/";
180
+ }
181
+ requestOptions.params = {
182
+ folder: folderId,
183
+ ...requestOptions.params
184
+ };
185
+
186
+ return request(url, requestOptions);
187
+ });
188
+ }
@@ -0,0 +1,124 @@
1
+ /* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, appendCustomParams } from "@esri/arcgis-rest-request";
5
+ import { IItemAdd } from "../helpers.js";
6
+
7
+ import { getPortalUrl } from "../util/get-portal-url.js";
8
+ import {
9
+ IUserItemOptions,
10
+ IUpdateItemResponse,
11
+ determineOwner,
12
+ IItemPartOptions
13
+ } from "./helpers.js";
14
+
15
+ export interface ICommitItemOptions extends IUserItemOptions {
16
+ item: IItemAdd;
17
+ }
18
+
19
+ /**
20
+ * ```js
21
+ * import { addItemPart } from "@esri/arcgis-rest-portal";
22
+ * //
23
+ * addItemPart({
24
+ * id: "30e5fe3149c34df1ba922e6f5bbf808f",
25
+ * file: data,
26
+ * partNum: 1,
27
+ * authentication
28
+ * })
29
+ * .then(response)
30
+ * ```
31
+ * Add Item Part allows the caller to upload a file part when doing an add or update item operation in multipart mode. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item-part.htm) for more information.
32
+ *
33
+ * @param requestOptions - Options for the request
34
+ * @returns A Promise to add the item part status.
35
+ */
36
+ export function addItemPart(
37
+ requestOptions?: IItemPartOptions
38
+ ): Promise<IUpdateItemResponse> {
39
+ const partNum = requestOptions.partNum;
40
+
41
+ if (!Number.isInteger(partNum) || partNum < 1 || partNum > 10000) {
42
+ return Promise.reject(
43
+ new Error(
44
+ "The part number must be an integer between 1 to 10000, inclusive."
45
+ )
46
+ );
47
+ }
48
+
49
+ return determineOwner(requestOptions).then((owner) => {
50
+ // AGO adds the "partNum" parameter in the query string, not in the body
51
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
52
+ requestOptions.id
53
+ }/addPart?partNum=${partNum}`;
54
+
55
+ const options = appendCustomParams<IItemPartOptions>(
56
+ requestOptions,
57
+ ["file"],
58
+ { params: { ...requestOptions.params } }
59
+ );
60
+
61
+ return request(url, options);
62
+ });
63
+ }
64
+
65
+ /**
66
+ * ```js
67
+ * import { commitItemUpload } from "@esri/arcgis-rest-portal";
68
+ * //
69
+ * commitItemUpload({
70
+ * id: "30e5fe3149c34df1ba922e6f5bbf808f",
71
+ * authentication
72
+ * })
73
+ * .then(response)
74
+ * ```
75
+ * Commit is called once all parts are uploaded during a multipart Add Item or Update Item operation. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/commit.htm) for more information.
76
+ *
77
+ * @param requestOptions - Options for the request
78
+ * @returns A Promise to get the commit result.
79
+ */
80
+ export function commitItemUpload(
81
+ requestOptions?: ICommitItemOptions
82
+ ): Promise<IUpdateItemResponse> {
83
+ return determineOwner(requestOptions).then((owner) => {
84
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
85
+ requestOptions.id
86
+ }/commit`;
87
+
88
+ const options = appendCustomParams<ICommitItemOptions>(requestOptions, [], {
89
+ params: {
90
+ ...requestOptions.params,
91
+ ...requestOptions.item
92
+ }
93
+ });
94
+
95
+ return request(url, options);
96
+ });
97
+ }
98
+
99
+ /**
100
+ * ```js
101
+ * import { cancelItemUpload } from "@esri/arcgis-rest-portal";
102
+ * //
103
+ * cancelItemUpload({
104
+ * id: "30e5fe3149c34df1ba922e6f5bbf808f",
105
+ * authentication
106
+ * })
107
+ * .then(response)
108
+ * ```
109
+ * Cancels a multipart upload on an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/cancel.htm) for more information.
110
+ *
111
+ * @param requestOptions - Options for the request
112
+ * @returns A Promise to get the commit result.
113
+ */
114
+ export function cancelItemUpload(
115
+ requestOptions?: IUserItemOptions
116
+ ): Promise<IUpdateItemResponse> {
117
+ return determineOwner(requestOptions).then((owner) => {
118
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
119
+ requestOptions.id
120
+ }/cancel`;
121
+
122
+ return request(url, requestOptions);
123
+ });
124
+ }