aspernaturalias 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 (370) hide show
  1. package/.prettierignore +2 -0
  2. package/.travis.yml +31 -0
  3. package/.vscode/launch.json +24 -0
  4. package/.vscode/settings.json +3 -0
  5. package/codecov.yml +3 -0
  6. package/demos/ago-node-cli/README.md +29 -0
  7. package/demos/ago-node-cli/ago.js +33 -0
  8. package/demos/ago-node-cli/index.js +11 -0
  9. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  10. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  11. package/demos/ago-node-cli/package-lock.json +152 -0
  12. package/demos/ago-node-cli/package.json +30 -0
  13. package/demos/attachments/README.md +5 -0
  14. package/demos/attachments/index.html +164 -0
  15. package/demos/attachments/package-lock.json +182 -0
  16. package/demos/attachments/package.json +18 -0
  17. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  18. package/demos/batch-geocoder-node/README.md +15 -0
  19. package/demos/batch-geocoder-node/batch-geocode.js +115 -0
  20. package/demos/batch-geocoder-node/config-template.js +18 -0
  21. package/demos/batch-geocoder-node/package-lock.json +94 -0
  22. package/demos/batch-geocoder-node/package.json +38 -0
  23. package/demos/express/README.md +15 -0
  24. package/demos/express/config.json.template +3 -0
  25. package/demos/express/package-lock.json +413 -0
  26. package/demos/express/package.json +18 -0
  27. package/demos/express/server.js +33 -0
  28. package/demos/feature-service-browser/README.md +6 -0
  29. package/demos/feature-service-browser/index.html +122 -0
  30. package/demos/feature-service-browser/package-lock.json +182 -0
  31. package/demos/feature-service-browser/package.json +18 -0
  32. package/demos/geocoder-browser/README.md +10 -0
  33. package/demos/geocoder-browser/config.js.template +1 -0
  34. package/demos/geocoder-browser/index.html +131 -0
  35. package/demos/geocoder-browser/package-lock.json +182 -0
  36. package/demos/geocoder-browser/package.json +19 -0
  37. package/demos/geocoder-browser/post-sign-in.html +25 -0
  38. package/demos/jsapi-integration/README.md +25 -0
  39. package/demos/jsapi-integration/config.js +6 -0
  40. package/demos/jsapi-integration/index.html +85 -0
  41. package/demos/jsapi-integration/package-lock.json +184 -0
  42. package/demos/jsapi-integration/package.json +19 -0
  43. package/demos/node-cli-item-management/README.md +10 -0
  44. package/demos/node-cli-item-management/index.js +238 -0
  45. package/demos/node-cli-item-management/package-lock.json +152 -0
  46. package/demos/node-cli-item-management/package.json +27 -0
  47. package/demos/node-cli-item-management/screenshot.png +0 -0
  48. package/demos/oauth2-browser/README.md +14 -0
  49. package/demos/oauth2-browser/authenticate.html +30 -0
  50. package/demos/oauth2-browser/config.js.template +6 -0
  51. package/demos/oauth2-browser/index.html +202 -0
  52. package/demos/oauth2-browser/logo.svg +4 -0
  53. package/demos/oauth2-browser/package-lock.json +163 -0
  54. package/demos/oauth2-browser/package.json +18 -0
  55. package/demos/oauth2-browser/style.css +36 -0
  56. package/demos/oauth2-browser-retry/README.md +25 -0
  57. package/demos/oauth2-browser-retry/authenticate.html +22 -0
  58. package/demos/oauth2-browser-retry/index.html +116 -0
  59. package/demos/oauth2-browser-retry/logo.svg +4 -0
  60. package/demos/stream-response-to-file/README.md +7 -0
  61. package/demos/stream-response-to-file/index.js +36 -0
  62. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  63. package/demos/stream-response-to-file/package-lock.json +60 -0
  64. package/demos/stream-response-to-file/package.json +33 -0
  65. package/demos/tree-shaking-rollup/.babelrc +3 -0
  66. package/demos/tree-shaking-rollup/README.md +9 -0
  67. package/demos/tree-shaking-rollup/index.html +11 -0
  68. package/demos/tree-shaking-rollup/package-lock.json +2225 -0
  69. package/demos/tree-shaking-rollup/package.json +25 -0
  70. package/demos/tree-shaking-rollup/rollup.config.js +17 -0
  71. package/demos/tree-shaking-rollup/src/index.js +8 -0
  72. package/demos/tree-shaking-webpack/README.md +9 -0
  73. package/demos/tree-shaking-webpack/index.html +11 -0
  74. package/demos/tree-shaking-webpack/package-lock.json +4595 -0
  75. package/demos/tree-shaking-webpack/package.json +24 -0
  76. package/demos/tree-shaking-webpack/src/index.js +10 -0
  77. package/demos/tree-shaking-webpack/webpack.config.js +27 -0
  78. package/demos/vue/.env.example +11 -0
  79. package/demos/vue/.eslintrc.js +17 -0
  80. package/demos/vue/.postcssrc.js +5 -0
  81. package/demos/vue/README.md +17 -0
  82. package/demos/vue/babel.config.js +3 -0
  83. package/demos/vue/package-lock.json +11323 -0
  84. package/demos/vue/package.json +33 -0
  85. package/demos/vue/public/favicon.ico +0 -0
  86. package/demos/vue/public/index.html +24 -0
  87. package/demos/vue/src/assets/logo.svg +29 -0
  88. package/demos/vue/src/components/App.vue +305 -0
  89. package/demos/vue/src/components/Authenticate.vue +65 -0
  90. package/demos/vue/src/components/Loader.vue +230 -0
  91. package/demos/vue/src/main.js +92 -0
  92. package/demos/webmap-checker-sapper/.env.example +5 -0
  93. package/demos/webmap-checker-sapper/README.md +123 -0
  94. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  95. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  96. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  97. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  98. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  99. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  100. package/demos/webmap-checker-sapper/cypress.json +4 -0
  101. package/demos/webmap-checker-sapper/package-lock.json +3851 -0
  102. package/demos/webmap-checker-sapper/package.json +50 -0
  103. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  104. package/demos/webmap-checker-sapper/src/client.js +20 -0
  105. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  106. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  107. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  108. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  109. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  110. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  111. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  112. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  113. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  114. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  115. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  116. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  117. package/demos/webmap-checker-sapper/src/server.js +101 -0
  118. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  119. package/demos/webmap-checker-sapper/src/template.html +33 -0
  120. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  121. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  122. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  123. package/demos/webmap-checker-sapper/static/global.css +36 -0
  124. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  125. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  126. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  127. package/docs/FAQ.md +48 -0
  128. package/docs/HISTORY.md +62 -0
  129. package/docs/acetate.config.js +262 -0
  130. package/docs/build-typedoc.js +434 -0
  131. package/docs/generate-srihashes.js +53 -0
  132. package/docs/src/_layout.html +86 -0
  133. package/docs/src/api/_declaration.html +600 -0
  134. package/docs/src/api/_layout.html +204 -0
  135. package/docs/src/api/_package.html +38 -0
  136. package/docs/src/api/index.html +16 -0
  137. package/docs/src/guides/_layout.html +24 -0
  138. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  139. package/docs/src/guides/browser-authentication.md +41 -0
  140. package/docs/src/guides/bundlers.md +52 -0
  141. package/docs/src/guides/cli-authentication.md +9 -0
  142. package/docs/src/guides/client-server-authentication.md +9 -0
  143. package/docs/src/guides/from-a-cdn.md +38 -0
  144. package/docs/src/guides/index.md +59 -0
  145. package/docs/src/guides/node.md +87 -0
  146. package/docs/src/guides/package-overview.md +111 -0
  147. package/docs/src/guides/server-authentication.md +9 -0
  148. package/docs/src/guides/whats-new-v2-0.md +305 -0
  149. package/docs/src/img/icons.png +0 -0
  150. package/docs/src/img/icons@2x.png +0 -0
  151. package/docs/src/index.html +12 -0
  152. package/docs/src/js/api-search.js +112 -0
  153. package/docs/src/js/nav-toggle.js +41 -0
  154. package/docs/src/sass/_highlight.scss +96 -0
  155. package/docs/src/sass/_icons.scss +157 -0
  156. package/docs/src/sass/style.scss +242 -0
  157. package/docs/src/srihashes.json +12 -0
  158. package/jasmine.json +7 -0
  159. package/karma.conf.js +106 -0
  160. package/lerna.json +8 -0
  161. package/notes/README.md +88 -0
  162. package/package.json +129 -0
  163. package/packages/arcgis-rest-auth/README.md +71 -0
  164. package/packages/arcgis-rest-auth/package-lock.json +11 -0
  165. package/packages/arcgis-rest-auth/package.json +69 -0
  166. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
  167. package/packages/arcgis-rest-auth/src/UserSession.ts +997 -0
  168. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
  169. package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
  170. package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
  171. package/packages/arcgis-rest-auth/src/index.ts +9 -0
  172. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
  173. package/packages/arcgis-rest-auth/test/UserSession.test.ts +1315 -0
  174. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
  175. package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
  176. package/packages/arcgis-rest-auth/test/utils.ts +14 -0
  177. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  178. package/packages/arcgis-rest-feature-layer/README.md +77 -0
  179. package/packages/arcgis-rest-feature-layer/package-lock.json +11 -0
  180. package/packages/arcgis-rest-feature-layer/package.json +64 -0
  181. package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
  182. package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
  183. package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +124 -0
  184. package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
  185. package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
  186. package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
  187. package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
  188. package/packages/arcgis-rest-feature-layer/src/helpers.ts +55 -0
  189. package/packages/arcgis-rest-feature-layer/src/index.ts +28 -0
  190. package/packages/arcgis-rest-feature-layer/src/query.ts +203 -0
  191. package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
  192. package/packages/arcgis-rest-feature-layer/src/update.ts +56 -0
  193. package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
  194. package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +202 -0
  195. package/packages/arcgis-rest-feature-layer/test/crud.test.ts +130 -0
  196. package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
  197. package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
  198. package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
  199. package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +281 -0
  200. package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
  201. package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
  202. package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +259 -0
  203. package/packages/arcgis-rest-feature-layer/test/query.test.ts +168 -0
  204. package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
  205. package/packages/arcgis-rest-geocoding/README.md +86 -0
  206. package/packages/arcgis-rest-geocoding/package-lock.json +11 -0
  207. package/packages/arcgis-rest-geocoding/package.json +64 -0
  208. package/packages/arcgis-rest-geocoding/src/bulk.ts +105 -0
  209. package/packages/arcgis-rest-geocoding/src/geocode.ts +130 -0
  210. package/packages/arcgis-rest-geocoding/src/helpers.ts +54 -0
  211. package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
  212. package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
  213. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  214. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +151 -0
  215. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +212 -0
  216. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  217. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +637 -0
  218. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
  219. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  220. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  221. package/packages/arcgis-rest-portal/README.md +73 -0
  222. package/packages/arcgis-rest-portal/package-lock.json +11 -0
  223. package/packages/arcgis-rest-portal/package.json +64 -0
  224. package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
  225. package/packages/arcgis-rest-portal/src/groups/get.ts +99 -0
  226. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  227. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  228. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  229. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  230. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  231. package/packages/arcgis-rest-portal/src/groups/search.ts +25 -0
  232. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  233. package/packages/arcgis-rest-portal/src/index.ts +48 -0
  234. package/packages/arcgis-rest-portal/src/items/add.ts +137 -0
  235. package/packages/arcgis-rest-portal/src/items/create.ts +128 -0
  236. package/packages/arcgis-rest-portal/src/items/get.ts +177 -0
  237. package/packages/arcgis-rest-portal/src/items/helpers.ts +193 -0
  238. package/packages/arcgis-rest-portal/src/items/protect.ts +39 -0
  239. package/packages/arcgis-rest-portal/src/items/remove.ts +131 -0
  240. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  241. package/packages/arcgis-rest-portal/src/items/update.ts +145 -0
  242. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  243. package/packages/arcgis-rest-portal/src/sharing/group-sharing.ts +210 -0
  244. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +84 -0
  245. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  246. package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
  247. package/packages/arcgis-rest-portal/src/users/invitation.ts +162 -0
  248. package/packages/arcgis-rest-portal/src/users/notification.ts +70 -0
  249. package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
  250. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +374 -0
  251. package/packages/arcgis-rest-portal/src/util/generic-search.ts +67 -0
  252. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +27 -0
  253. package/packages/arcgis-rest-portal/src/util/get-portal.ts +52 -0
  254. package/packages/arcgis-rest-portal/src/util/search.ts +38 -0
  255. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
  256. package/packages/arcgis-rest-portal/test/groups/get.test.ts +101 -0
  257. package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
  258. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
  259. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
  260. package/packages/arcgis-rest-portal/test/groups/search.test.ts +110 -0
  261. package/packages/arcgis-rest-portal/test/items/add.test.ts +321 -0
  262. package/packages/arcgis-rest-portal/test/items/create.test.ts +375 -0
  263. package/packages/arcgis-rest-portal/test/items/get.test.ts +309 -0
  264. package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
  265. package/packages/arcgis-rest-portal/test/items/remove.test.ts +238 -0
  266. package/packages/arcgis-rest-portal/test/items/search.test.ts +272 -0
  267. package/packages/arcgis-rest-portal/test/items/update.test.ts +515 -0
  268. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +144 -0
  269. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  270. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +122 -0
  271. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +31 -0
  272. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  273. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +112 -0
  274. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  275. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  276. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  277. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +173 -0
  278. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  279. package/packages/arcgis-rest-portal/test/sharing/group-sharing.test.ts +650 -0
  280. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  281. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  282. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  283. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
  284. package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
  285. package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
  286. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +340 -0
  287. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  288. package/packages/arcgis-rest-portal/test/util/portal.test.ts +97 -0
  289. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  290. package/packages/arcgis-rest-request/README.md +72 -0
  291. package/packages/arcgis-rest-request/package-lock.json +11 -0
  292. package/packages/arcgis-rest-request/package.json +60 -0
  293. package/packages/arcgis-rest-request/src/index.ts +24 -0
  294. package/packages/arcgis-rest-request/src/request.ts +389 -0
  295. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
  296. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  297. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  298. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  299. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +21 -0
  300. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  301. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  302. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  303. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  304. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  305. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +43 -0
  306. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  307. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  308. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
  309. package/packages/arcgis-rest-request/src/utils/clean-url.ts +16 -0
  310. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
  311. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
  312. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  313. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  314. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  315. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  316. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  317. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  318. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  319. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  320. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  321. package/packages/arcgis-rest-request/test/request.test.ts +496 -0
  322. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
  323. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  324. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  325. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +47 -0
  326. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
  327. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +193 -0
  328. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
  329. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  330. package/packages/arcgis-rest-routing/README.md +75 -0
  331. package/packages/arcgis-rest-routing/package-lock.json +11 -0
  332. package/packages/arcgis-rest-routing/package.json +63 -0
  333. package/packages/arcgis-rest-routing/src/helpers.ts +16 -0
  334. package/packages/arcgis-rest-routing/src/index.ts +11 -0
  335. package/packages/arcgis-rest-routing/src/solveRoute.ts +124 -0
  336. package/packages/arcgis-rest-routing/test/mocks/responses.ts +825 -0
  337. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +509 -0
  338. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  339. package/packages/arcgis-rest-service-admin/README.md +73 -0
  340. package/packages/arcgis-rest-service-admin/package-lock.json +11 -0
  341. package/packages/arcgis-rest-service-admin/package.json +65 -0
  342. package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
  343. package/packages/arcgis-rest-service-admin/src/create.ts +213 -0
  344. package/packages/arcgis-rest-service-admin/src/index.ts +9 -0
  345. package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
  346. package/packages/arcgis-rest-service-admin/test/create.test.ts +377 -0
  347. package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
  348. package/packages/arcgis-rest-service-admin/test/mocks/move.ts +11 -0
  349. package/packages/arcgis-rest-service-admin/test/mocks/service.ts +69 -0
  350. package/packages/arcgis-rest-service-admin/tsconfig.json +6 -0
  351. package/packages/arcgis-rest-types/README.md +66 -0
  352. package/packages/arcgis-rest-types/package.json +54 -0
  353. package/packages/arcgis-rest-types/src/feature.ts +39 -0
  354. package/packages/arcgis-rest-types/src/geometry.ts +272 -0
  355. package/packages/arcgis-rest-types/src/group.ts +72 -0
  356. package/packages/arcgis-rest-types/src/index.ts +7 -0
  357. package/packages/arcgis-rest-types/src/item.ts +65 -0
  358. package/packages/arcgis-rest-types/src/symbol.ts +170 -0
  359. package/packages/arcgis-rest-types/src/user.ts +48 -0
  360. package/packages/arcgis-rest-types/src/webmap.ts +1345 -0
  361. package/packages/arcgis-rest-types/tsconfig.json +9 -0
  362. package/support/changelog.js +393 -0
  363. package/support/deploy-doc-site.js +16 -0
  364. package/support/dev.sh +6 -0
  365. package/support/publish.sh +47 -0
  366. package/support/test-helpers.js +9 -0
  367. package/tsconfig.json +63 -0
  368. package/tslint.json +16 -0
  369. package/umd-base-profile.js +81 -0
  370. package/umd-production-profile.js +13 -0
@@ -0,0 +1,374 @@
1
+ import { IParamBuilder, warn } from "@esri/arcgis-rest-request";
2
+ /**
3
+ * `SearchQueryBuilder` can be used to construct the `q` param for [`searchItems`](/arcgis-rest-js/api/portal/searchItems#searchItems-search) or [`searchGroups`](/arcgis-rest-js/api/portal/searchGroups#searchGroups-search). By chaining methods, it helps build complex search queries.
4
+ *
5
+ * ```js
6
+ * const query = new SearchQueryBuilder()
7
+ * .match("Patrick")
8
+ * .in("owner")
9
+ * .and()
10
+ * .startGroup()
11
+ * .match("Web Mapping Application")
12
+ * .in("type")
13
+ * .or()
14
+ * .match("Mobile Application")
15
+ * .in("type")
16
+ * .or()
17
+ * .match("Application")
18
+ * .in("type")
19
+ * .endGroup()
20
+ * .and()
21
+ * .match("Demo App");
22
+ *
23
+ * searchItems(query).then((results) => {
24
+ * console.log(request);
25
+ * });
26
+ * ```
27
+ *
28
+ * Will search for items matching
29
+ * ```
30
+ * "owner: Patrick AND (type:"Web Mapping Application" OR type:"Mobile Application" OR type:Application) AND Demo App"
31
+ * ```
32
+ */
33
+ export class SearchQueryBuilder implements IParamBuilder {
34
+ private termStack: any[] = [];
35
+ private rangeStack: any[] = [];
36
+ private q: string;
37
+ private openGroups = 0;
38
+ private currentModifer: string;
39
+
40
+ /**
41
+ * @param q An existing query string to start building from.
42
+ */
43
+ constructor(q: string = "") {
44
+ this.q = q;
45
+ }
46
+
47
+ /**
48
+ * Defines strings to search for.
49
+ *
50
+ * ```js
51
+ * const query = new SearchQueryBuilder()
52
+ * .match("My Layer")
53
+ * ```
54
+ *
55
+ * @param terms strings to search for.
56
+ */
57
+ public match(this: SearchQueryBuilder, ...terms: string[]) {
58
+ this.termStack = this.termStack.concat(terms);
59
+ return this;
60
+ }
61
+
62
+ /**
63
+ * Defines fields to search in. You can pass `"*"` or call this method without arguments to search a default set of fields
64
+ *
65
+ * ```js
66
+ * const query = new SearchQueryBuilder()
67
+ * .match("My Layer")
68
+ * .in("title")
69
+ * ```
70
+ *
71
+ * @param field The field to search for the previous match in.
72
+ */
73
+ public in(this: SearchQueryBuilder, field?: string) {
74
+ const fn = `\`in(${field ? `"${field}"` : ""})\``;
75
+
76
+ if (!this.hasRange && !this.hasTerms) {
77
+ warn(
78
+ // prettier-ignore
79
+ `${fn} was called with no call to \`match(...)\` or \`from(...)\`/\`to(...)\`. Your query was not modified.`
80
+ );
81
+ return this;
82
+ }
83
+
84
+ if (field && field !== "*") {
85
+ this.q += `${field}:`;
86
+ }
87
+
88
+ return this.commit();
89
+ }
90
+
91
+ /**
92
+ * Starts a new search group.
93
+ *
94
+ * ```js
95
+ * const query = new SearchQueryBuilder()
96
+ * .startGroup()
97
+ * .match("Lakes")
98
+ * .in("title")
99
+ * .endGroup()
100
+ * .or()
101
+ * .startGroup()
102
+ * .match("Rivers")
103
+ * .in("title")
104
+ * .endGroup()
105
+ * ```
106
+ */
107
+ public startGroup(this: SearchQueryBuilder) {
108
+ this.commit();
109
+ if (this.openGroups > 0) {
110
+ this.q += " ";
111
+ }
112
+ this.openGroups++;
113
+ this.q += "(";
114
+ return this;
115
+ }
116
+
117
+ /**
118
+ * Ends a search group.
119
+ *
120
+ * ```js
121
+ * const query = new SearchQueryBuilder()
122
+ * .startGroup()
123
+ * .match("Lakes")
124
+ * .in("title")
125
+ * .endGroup()
126
+ * .or()
127
+ * .startGroup()
128
+ * .match("Rivers")
129
+ * .in("title")
130
+ * .endGroup()
131
+ * ```
132
+ */
133
+ public endGroup(this: SearchQueryBuilder) {
134
+ if (this.openGroups <= 0) {
135
+ warn(
136
+ `\`endGroup(...)\` was called without calling \`startGroup(...)\` first. Your query was not modified.`
137
+ );
138
+ return this;
139
+ }
140
+ this.commit();
141
+ this.openGroups--;
142
+ this.q += ")";
143
+ return this;
144
+ }
145
+
146
+ /**
147
+ * Joins two sets of queries with an `AND` clause.
148
+ *
149
+ * ```js
150
+ * const query = new SearchQueryBuilder()
151
+ * .match("Lakes")
152
+ * .in("title")
153
+ * .and()
154
+ * .match("Rivers")
155
+ * .in("title")
156
+ * ```
157
+ */
158
+ public and(this: SearchQueryBuilder) {
159
+ return this.addModifier("and");
160
+ }
161
+
162
+ /**
163
+ * Joins two sets of queries with an `OR` clause.
164
+ *
165
+ * ```js
166
+ * const query = new SearchQueryBuilder()
167
+ * .match("Lakes")
168
+ * .in("title")
169
+ * .or()
170
+ * .match("Rivers")
171
+ * .in("title")
172
+ * ```
173
+ */
174
+ public or(this: SearchQueryBuilder) {
175
+ return this.addModifier("or");
176
+ }
177
+
178
+ /**
179
+ * Joins two sets of queries with a `NOT` clause. Another option for filtering results is the [prohibit operator '-'](https://developers.arcgis.com/rest/users-groups-and-items/search-reference.htm#ESRI_SECTION1_5C6C35DB9E4A4F4492C5B937BDA2BF67).
180
+ *
181
+ * ```js
182
+ * // omit results with "Rivers" in their title
183
+ * const query = new SearchQueryBuilder()
184
+ * .not()
185
+ * .match("Rivers")
186
+ * .in("title")
187
+ *
188
+ * // equivalent
189
+ * const query = new SearchQueryBuilder()
190
+ * .match("Rivers")
191
+ * .in("-title")
192
+ * ```
193
+ */
194
+ public not(this: SearchQueryBuilder) {
195
+ return this.addModifier("not");
196
+ }
197
+
198
+ /**
199
+ * Begins a new range query.
200
+ *
201
+ * ```js
202
+ * const query = new SearchQueryBuilder()
203
+ * .from(yesterdaysDate)
204
+ * .to(todaysDate)
205
+ * .in("created")
206
+ * ```
207
+ */
208
+ public from(this: SearchQueryBuilder, term: number | string | Date) {
209
+ if (this.hasTerms) {
210
+ warn(
211
+ // prettier-ignore
212
+ `\`from(...)\` is not allowed after \`match(...)\` try using \`.from(...).to(...).in(...)\`. Your query was not modified.`
213
+ );
214
+ return this;
215
+ }
216
+ this.rangeStack[0] = term;
217
+ return this;
218
+ }
219
+
220
+ /**
221
+ * Ends a range query.
222
+ *
223
+ * ```js
224
+ * const query = new SearchQueryBuilder()
225
+ * .from(yesterdaysDate)
226
+ * .to(todaysDate)
227
+ * .in("created")
228
+ * ```
229
+ */
230
+ public to(this: SearchQueryBuilder, term: any) {
231
+ if (this.hasTerms) {
232
+ warn(
233
+ // prettier-ignore
234
+ `\`to(...)\` is not allowed after \`match(...)\` try using \`.from(...).to(...).in(...)\`. Your query was not modified.`
235
+ );
236
+ return this;
237
+ }
238
+ this.rangeStack[1] = term;
239
+ return this;
240
+ }
241
+
242
+ /**
243
+ * Boosts the previous term to increase its rank in the results.
244
+ *
245
+ * ```js
246
+ * const query = new SearchQueryBuilder()
247
+ * .match("Lakes")
248
+ * .in("title")
249
+ * .or()
250
+ * .match("Rivers")
251
+ * .in("title")
252
+ * .boost(3)
253
+ * ```
254
+ */
255
+ public boost(this: SearchQueryBuilder, num: number) {
256
+ this.commit();
257
+ this.q += `^${num}`;
258
+ return this;
259
+ }
260
+
261
+ /**
262
+ * Returns the current query string. Called internally when the request is made.
263
+ */
264
+ public toParam() {
265
+ this.commit();
266
+ this.cleanup();
267
+ return this.q;
268
+ }
269
+
270
+ /**
271
+ * Returns a new instance of `SearchQueryBuilder` based on the current instance.
272
+ */
273
+ public clone() {
274
+ this.commit();
275
+ this.cleanup();
276
+ return new SearchQueryBuilder(this.q + "");
277
+ }
278
+
279
+ private addModifier(modifier: string) {
280
+ if (this.currentModifer) {
281
+ warn(
282
+ // prettier-ignore
283
+ `You have called \`${this.currentModifer}()\` after \`${modifier}()\`. Your current query was not modified.`
284
+ );
285
+ return this;
286
+ }
287
+
288
+ this.commit();
289
+
290
+ if (this.q === "" && modifier !== "not") {
291
+ warn(
292
+ `You have called \`${modifier}()\` without calling another method to modify your query first. Try calling \`match()\` first.`
293
+ );
294
+ return this;
295
+ }
296
+
297
+ this.currentModifer = modifier;
298
+ this.q += this.q === "" ? "" : " ";
299
+ this.q += `${modifier.toUpperCase()} `;
300
+ return this;
301
+ }
302
+
303
+ private hasWhiteSpace(s: string) {
304
+ return /\s/g.test(s);
305
+ }
306
+
307
+ private formatTerm(term: any) {
308
+ if (term instanceof Date) {
309
+ return term.getTime();
310
+ }
311
+
312
+ if (typeof term === "string" && this.hasWhiteSpace(term)) {
313
+ return `"${term}"`;
314
+ }
315
+
316
+ return term;
317
+ }
318
+
319
+ private commit() {
320
+ this.currentModifer = undefined;
321
+ if (this.hasRange) {
322
+ this.q += `[${this.formatTerm(this.rangeStack[0])} TO ${this.formatTerm(
323
+ this.rangeStack[1]
324
+ )}]`;
325
+ this.rangeStack = [undefined, undefined];
326
+ }
327
+
328
+ if (this.hasTerms) {
329
+ this.q += this.termStack
330
+ .map(term => {
331
+ return this.formatTerm(term);
332
+ })
333
+ .join(" ");
334
+ this.termStack = [];
335
+ }
336
+
337
+ return this;
338
+ }
339
+
340
+ private get hasTerms() {
341
+ return this.termStack.length > 0;
342
+ }
343
+
344
+ private get hasRange() {
345
+ return this.rangeStack.length && this.rangeStack[0] && this.rangeStack[1];
346
+ }
347
+
348
+ private cleanup() {
349
+ // end a group if we have started one
350
+ if (this.openGroups > 0) {
351
+ warn(
352
+ // prettier-ignore
353
+ `Automatically closing ${this.openGroups} group(s). You can use \`endGroup(...)\` to remove this warning.`
354
+ );
355
+
356
+ while (this.openGroups > 0) {
357
+ this.q += ")";
358
+ this.openGroups--;
359
+ }
360
+ }
361
+
362
+ const oldQ = this.q;
363
+ this.q = oldQ.replace(/( AND ?| NOT ?| OR ?)*$/, "");
364
+
365
+ if (oldQ !== this.q) {
366
+ warn(
367
+ `\`startGroup(...)\` was called without calling \`endGroup(...)\` first. Your query was not modified.`
368
+ );
369
+ }
370
+
371
+ // clear empty groups
372
+ this.q = this.q.replace(/(\(\))*/, "");
373
+ }
374
+ }
@@ -0,0 +1,67 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import {
5
+ request,
6
+ IRequestOptions,
7
+ appendCustomParams
8
+ } from "@esri/arcgis-rest-request";
9
+ import { IItem, IGroup } from "@esri/arcgis-rest-types";
10
+
11
+ import { SearchQueryBuilder } from "./SearchQueryBuilder";
12
+ import { getPortalUrl } from "../util/get-portal-url";
13
+ import { ISearchOptions, ISearchResult } from "../util/search";
14
+
15
+ export function genericSearch<T extends IItem | IGroup>(
16
+ search: string | ISearchOptions | SearchQueryBuilder,
17
+ searchType: "item" | "group"
18
+ ): Promise<ISearchResult<T>> {
19
+ let url: string;
20
+ let options: IRequestOptions;
21
+ if (typeof search === "string" || search instanceof SearchQueryBuilder) {
22
+ options = {
23
+ httpMethod: "GET",
24
+ params: {
25
+ q: search
26
+ }
27
+ };
28
+ } else {
29
+ options = appendCustomParams<ISearchOptions>(
30
+ search,
31
+ ["q", "num", "start", "sortField", "sortOrder"],
32
+ {
33
+ httpMethod: "GET"
34
+ }
35
+ );
36
+ }
37
+
38
+ url =
39
+ getPortalUrl(options) +
40
+ (searchType === "item" ? "/search" : "/community/groups");
41
+
42
+ // send the request
43
+ return request(url, options).then(r => {
44
+ if (r.nextStart && r.nextStart !== -1) {
45
+ r.nextPage = function() {
46
+ let newOptions: ISearchOptions;
47
+
48
+ if (
49
+ typeof search === "string" ||
50
+ search instanceof SearchQueryBuilder
51
+ ) {
52
+ newOptions = {
53
+ q: search,
54
+ start: r.nextStart
55
+ };
56
+ } else {
57
+ newOptions = search;
58
+ newOptions.start = r.nextStart;
59
+ }
60
+
61
+ return genericSearch<T>(newOptions, searchType);
62
+ };
63
+ }
64
+
65
+ return r;
66
+ });
67
+ }
@@ -0,0 +1,27 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { IRequestOptions, cleanUrl } from "@esri/arcgis-rest-request";
5
+
6
+ /**
7
+ * Helper that returns the appropriate portal url for a given request. `requestOptions.portal` is given
8
+ * precedence over `authentication.portal`. If neither are present, `www.arcgis.com/sharing/rest` is returned.
9
+ *
10
+ * @param requestOptions - Request options that may have authentication manager
11
+ * @returns Portal url to be used in API requests
12
+ */
13
+ export function getPortalUrl(requestOptions: IRequestOptions = {}): string {
14
+ // use portal in options if specified
15
+ if (requestOptions.portal) {
16
+ return cleanUrl(requestOptions.portal);
17
+ }
18
+
19
+ // if auth was passed, use that portal
20
+ if (requestOptions.authentication) {
21
+ // the portal url is already scrubbed in the auth package
22
+ return requestOptions.authentication.portal;
23
+ }
24
+
25
+ // default to arcgis.com
26
+ return "https://www.arcgis.com/sharing/rest";
27
+ }
@@ -0,0 +1,52 @@
1
+ /* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, IRequestOptions } from "@esri/arcgis-rest-request";
5
+
6
+ import { getPortalUrl } from "./get-portal-url";
7
+
8
+ export interface IPortal {
9
+ id: string;
10
+ isPortal: boolean;
11
+ name: string;
12
+ [key: string]: any;
13
+ }
14
+
15
+ /**
16
+ * Get the portal
17
+ * @param requestOptions
18
+ */
19
+ export function getSelf(requestOptions?: IRequestOptions): Promise<IPortal> {
20
+ // just delegate to getPortal w/o an id
21
+ return getPortal(null, requestOptions);
22
+ }
23
+
24
+ /**
25
+ * ```js
26
+ * import { getPortal } from "@esri/arcgis-rest-request";
27
+ * //
28
+ * getPortal()
29
+ * getPortal("fe8")
30
+ * getPortal(null, { portal: "https://custom.maps.arcgis.com/sharing/rest/" })
31
+ * ```
32
+ * Fetch information about the current portal by id. If no id is passed, portals/self will be called
33
+ * @param id
34
+ * @param requestOptions
35
+ */
36
+ export function getPortal(
37
+ id?: string,
38
+ requestOptions?: IRequestOptions
39
+ ): Promise<IPortal> {
40
+ // construct the search url
41
+ const idOrSelf = id ? id : "self";
42
+ const url = `${getPortalUrl(requestOptions)}/portals/${idOrSelf}`;
43
+
44
+ // default to a GET request
45
+ const options: IRequestOptions = {
46
+ ...{ httpMethod: "GET" },
47
+ ...requestOptions
48
+ };
49
+
50
+ // send the request
51
+ return request(url, options);
52
+ }
@@ -0,0 +1,38 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
5
+ import { IPagingParams, IItem, IGroup } from "@esri/arcgis-rest-types";
6
+ import { SearchQueryBuilder } from "./SearchQueryBuilder";
7
+
8
+ export interface ISearchOptions extends IRequestOptions, IPagingParams {
9
+ q: string | SearchQueryBuilder;
10
+ sortField?: string;
11
+ sortOrder?: string;
12
+ [key: string]: any;
13
+ }
14
+
15
+ /**
16
+ * Results from an item or group search.
17
+ */
18
+ export interface ISearchResult<T extends IItem | IGroup> {
19
+ query: string; // matches the api's form param
20
+ total: number;
21
+ start: number;
22
+ num: number;
23
+ nextStart: number;
24
+ results: T[];
25
+ nextPage?: () => Promise<ISearchResult<T>>;
26
+ /**
27
+ * Aggregations will only be present on item searches when [`fieldCounts`](https://developers.arcgis.com/rest/users-groups-and-items/search.htm#GUID-1C625F8A-4A12-45BB-B537-74C82315759A) are requested.
28
+ */
29
+ aggregations?: {
30
+ counts: {
31
+ fieldName: string;
32
+ fieldValues: Array<{
33
+ value: any;
34
+ count: number;
35
+ }>;
36
+ };
37
+ };
38
+ }