etincidunt 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 (226) hide show
  1. package/.prettierignore +2 -0
  2. package/.travis.yml +29 -0
  3. package/.vscode/launch.json +24 -0
  4. package/.vscode/settings.json +3 -0
  5. package/demos/ago-node-cli/README.md +29 -0
  6. package/demos/ago-node-cli/ago.js +32 -0
  7. package/demos/ago-node-cli/index.js +11 -0
  8. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  9. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  10. package/demos/ago-node-cli/package-lock.json +172 -0
  11. package/demos/ago-node-cli/package.json +30 -0
  12. package/demos/attachments/README.md +5 -0
  13. package/demos/attachments/index.html +164 -0
  14. package/demos/attachments/package-lock.json +182 -0
  15. package/demos/attachments/package.json +18 -0
  16. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  17. package/demos/batch-geocoder-node/README.md +14 -0
  18. package/demos/batch-geocoder-node/batch-geocode.js +112 -0
  19. package/demos/batch-geocoder-node/config-template.js +18 -0
  20. package/demos/batch-geocoder-node/package-lock.json +109 -0
  21. package/demos/batch-geocoder-node/package.json +37 -0
  22. package/demos/express/README.md +10 -0
  23. package/demos/express/config.json.template +3 -0
  24. package/demos/express/package-lock.json +388 -0
  25. package/demos/express/package.json +18 -0
  26. package/demos/express/server.js +28 -0
  27. package/demos/feature-service-browser/README.md +6 -0
  28. package/demos/feature-service-browser/index.html +122 -0
  29. package/demos/feature-service-browser/package-lock.json +182 -0
  30. package/demos/feature-service-browser/package.json +18 -0
  31. package/demos/geocoder-browser/README.md +10 -0
  32. package/demos/geocoder-browser/config.js.template +1 -0
  33. package/demos/geocoder-browser/index.html +131 -0
  34. package/demos/geocoder-browser/package-lock.json +163 -0
  35. package/demos/geocoder-browser/package.json +19 -0
  36. package/demos/geocoder-browser/post-sign-in.html +25 -0
  37. package/demos/jsapi-integration/README.md +8 -0
  38. package/demos/jsapi-integration/config.js +6 -0
  39. package/demos/jsapi-integration/index.html +79 -0
  40. package/demos/jsapi-integration/package-lock.json +184 -0
  41. package/demos/jsapi-integration/package.json +19 -0
  42. package/demos/oauth2-browser/README.md +12 -0
  43. package/demos/oauth2-browser/authenticate.html +32 -0
  44. package/demos/oauth2-browser/config.js.template +6 -0
  45. package/demos/oauth2-browser/index.html +202 -0
  46. package/demos/oauth2-browser/logo.svg +4 -0
  47. package/demos/oauth2-browser/package-lock.json +163 -0
  48. package/demos/oauth2-browser/package.json +18 -0
  49. package/demos/oauth2-browser/style.css +36 -0
  50. package/demos/vue/.babelrc +6 -0
  51. package/demos/vue/.env.example +8 -0
  52. package/demos/vue/README.md +17 -0
  53. package/demos/vue/index.html +21 -0
  54. package/demos/vue/package-lock.json +7236 -0
  55. package/demos/vue/package.json +39 -0
  56. package/demos/vue/src/assets/logo.svg +29 -0
  57. package/demos/vue/src/components/App.vue +302 -0
  58. package/demos/vue/src/components/Authenticate.vue +68 -0
  59. package/demos/vue/src/components/Loader.vue +216 -0
  60. package/demos/vue/src/main.js +75 -0
  61. package/demos/vue/webpack.config.js +84 -0
  62. package/docs/FAQ.md +28 -0
  63. package/docs/HISTORY.md +62 -0
  64. package/docs/acetate.config.js +214 -0
  65. package/docs/build-typedoc.js +301 -0
  66. package/docs/src/_layout.html +82 -0
  67. package/docs/src/api/_declaration.html +496 -0
  68. package/docs/src/api/_layout.html +127 -0
  69. package/docs/src/api/_package.html +13 -0
  70. package/docs/src/api/index.html +23 -0
  71. package/docs/src/guides/_layout.html +24 -0
  72. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  73. package/docs/src/guides/babel-and-rollup.md +30 -0
  74. package/docs/src/guides/babel-and-webpack.md +30 -0
  75. package/docs/src/guides/browser-authentication.md +9 -0
  76. package/docs/src/guides/browserify.md +9 -0
  77. package/docs/src/guides/cli-authentication.md +9 -0
  78. package/docs/src/guides/client-server-authentication.md +9 -0
  79. package/docs/src/guides/from-a-cdn.md +36 -0
  80. package/docs/src/guides/index.md +52 -0
  81. package/docs/src/guides/node.md +30 -0
  82. package/docs/src/guides/package-overview.md +8 -0
  83. package/docs/src/guides/server-authentication.md +9 -0
  84. package/docs/src/guides/typescript-and-webpack.md +9 -0
  85. package/docs/src/img/icons.png +0 -0
  86. package/docs/src/img/icons@2x.png +0 -0
  87. package/docs/src/index.html +12 -0
  88. package/docs/src/js/api-search.js +113 -0
  89. package/docs/src/js/index.js +1 -0
  90. package/docs/src/js/nav-toggle.js +41 -0
  91. package/docs/src/sass/_highlight.scss +96 -0
  92. package/docs/src/sass/_icons.scss +157 -0
  93. package/docs/src/sass/style.scss +169 -0
  94. package/jasmine.json +7 -0
  95. package/karma.conf.js +100 -0
  96. package/lerna.json +8 -0
  97. package/notes/README.md +88 -0
  98. package/package.json +91 -0
  99. package/packages/arcgis-rest-auth/README.md +64 -0
  100. package/packages/arcgis-rest-auth/package-lock.json +11 -0
  101. package/packages/arcgis-rest-auth/package.json +51 -0
  102. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +91 -0
  103. package/packages/arcgis-rest-auth/src/UserSession.ts +829 -0
  104. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +21 -0
  105. package/packages/arcgis-rest-auth/src/fetch-token.ts +55 -0
  106. package/packages/arcgis-rest-auth/src/generate-token.ts +36 -0
  107. package/packages/arcgis-rest-auth/src/index.ts +5 -0
  108. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +121 -0
  109. package/packages/arcgis-rest-auth/test/UserSession.test.ts +883 -0
  110. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +76 -0
  111. package/packages/arcgis-rest-auth/test/generateToken.test.ts +36 -0
  112. package/packages/arcgis-rest-auth/test/utils.ts +11 -0
  113. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  114. package/packages/arcgis-rest-common-types/README.md +61 -0
  115. package/packages/arcgis-rest-common-types/package.json +38 -0
  116. package/packages/arcgis-rest-common-types/src/group.ts +51 -0
  117. package/packages/arcgis-rest-common-types/src/index.ts +467 -0
  118. package/packages/arcgis-rest-common-types/src/item.ts +45 -0
  119. package/packages/arcgis-rest-common-types/src/webmap.ts +1225 -0
  120. package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
  121. package/packages/arcgis-rest-feature-service/README.md +70 -0
  122. package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
  123. package/packages/arcgis-rest-feature-service/package.json +50 -0
  124. package/packages/arcgis-rest-feature-service/src/add.ts +82 -0
  125. package/packages/arcgis-rest-feature-service/src/addAttachment.ts +65 -0
  126. package/packages/arcgis-rest-feature-service/src/delete.ts +85 -0
  127. package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +68 -0
  128. package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
  129. package/packages/arcgis-rest-feature-service/src/helpers.ts +77 -0
  130. package/packages/arcgis-rest-feature-service/src/index.ts +8 -0
  131. package/packages/arcgis-rest-feature-service/src/query.ts +174 -0
  132. package/packages/arcgis-rest-feature-service/src/update.ts +81 -0
  133. package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +74 -0
  134. package/packages/arcgis-rest-feature-service/test/attachments.test.ts +179 -0
  135. package/packages/arcgis-rest-feature-service/test/features.test.ts +172 -0
  136. package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +220 -0
  137. package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
  138. package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
  139. package/packages/arcgis-rest-geocoder/README.md +73 -0
  140. package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
  141. package/packages/arcgis-rest-geocoder/package.json +52 -0
  142. package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
  143. package/packages/arcgis-rest-geocoder/src/geocode.ts +117 -0
  144. package/packages/arcgis-rest-geocoder/src/helpers.ts +81 -0
  145. package/packages/arcgis-rest-geocoder/src/index.ts +4 -0
  146. package/packages/arcgis-rest-geocoder/src/reverse.ts +84 -0
  147. package/packages/arcgis-rest-geocoder/src/suggest.ts +72 -0
  148. package/packages/arcgis-rest-geocoder/test/geocoder.test.ts +510 -0
  149. package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +588 -0
  150. package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
  151. package/packages/arcgis-rest-groups/README.md +64 -0
  152. package/packages/arcgis-rest-groups/package-lock.json +11 -0
  153. package/packages/arcgis-rest-groups/package.json +52 -0
  154. package/packages/arcgis-rest-groups/src/groups.ts +272 -0
  155. package/packages/arcgis-rest-groups/src/index.ts +1 -0
  156. package/packages/arcgis-rest-groups/test/groups.test.ts +280 -0
  157. package/packages/arcgis-rest-groups/test/mocks/responses.ts +137 -0
  158. package/packages/arcgis-rest-groups/tsconfig.json +6 -0
  159. package/packages/arcgis-rest-items/README.md +66 -0
  160. package/packages/arcgis-rest-items/package-lock.json +11 -0
  161. package/packages/arcgis-rest-items/package.json +52 -0
  162. package/packages/arcgis-rest-items/src/index.ts +1 -0
  163. package/packages/arcgis-rest-items/src/items.ts +498 -0
  164. package/packages/arcgis-rest-items/test/items.test.ts +1153 -0
  165. package/packages/arcgis-rest-items/test/mocks/foo.zip +0 -0
  166. package/packages/arcgis-rest-items/test/mocks/item.ts +30 -0
  167. package/packages/arcgis-rest-items/test/mocks/resources.ts +28 -0
  168. package/packages/arcgis-rest-items/test/mocks/search.ts +60 -0
  169. package/packages/arcgis-rest-items/tsconfig.json +6 -0
  170. package/packages/arcgis-rest-request/README.md +65 -0
  171. package/packages/arcgis-rest-request/package-lock.json +11 -0
  172. package/packages/arcgis-rest-request/package.json +42 -0
  173. package/packages/arcgis-rest-request/src/index.ts +10 -0
  174. package/packages/arcgis-rest-request/src/request.ts +259 -0
  175. package/packages/arcgis-rest-request/src/utils/ArcGISAuthError.ts +67 -0
  176. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +73 -0
  177. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  178. package/packages/arcgis-rest-request/src/utils/check-for-errors.ts +65 -0
  179. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +29 -0
  180. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
  181. package/packages/arcgis-rest-request/src/utils/get-portal-url.ts +25 -0
  182. package/packages/arcgis-rest-request/src/utils/get-portal.ts +45 -0
  183. package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
  184. package/packages/arcgis-rest-request/test/mocks/errors.ts +59 -0
  185. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +10 -0
  186. package/packages/arcgis-rest-request/test/mocks/portal.ts +109 -0
  187. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +38 -0
  188. package/packages/arcgis-rest-request/test/mocks/webmap.ts +38 -0
  189. package/packages/arcgis-rest-request/test/request.test.ts +296 -0
  190. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +167 -0
  191. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +40 -0
  192. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +101 -0
  193. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +112 -0
  194. package/packages/arcgis-rest-request/test/utils/get-portal-url.test.ts +34 -0
  195. package/packages/arcgis-rest-request/test/utils/portal.test.ts +94 -0
  196. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +190 -0
  197. package/packages/arcgis-rest-request/tsconfig.json +6 -0
  198. package/packages/arcgis-rest-sharing/README.md +67 -0
  199. package/packages/arcgis-rest-sharing/package-lock.json +11 -0
  200. package/packages/arcgis-rest-sharing/package.json +55 -0
  201. package/packages/arcgis-rest-sharing/src/access.ts +91 -0
  202. package/packages/arcgis-rest-sharing/src/group-sharing.ts +212 -0
  203. package/packages/arcgis-rest-sharing/src/helpers.ts +92 -0
  204. package/packages/arcgis-rest-sharing/src/index.ts +2 -0
  205. package/packages/arcgis-rest-sharing/test/access.test.ts +153 -0
  206. package/packages/arcgis-rest-sharing/test/group-sharing.test.ts +436 -0
  207. package/packages/arcgis-rest-sharing/test/mocks/sharing.ts +15 -0
  208. package/packages/arcgis-rest-sharing/tsconfig.json +6 -0
  209. package/packages/arcgis-rest-users/README.md +71 -0
  210. package/packages/arcgis-rest-users/package-lock.json +11 -0
  211. package/packages/arcgis-rest-users/package.json +51 -0
  212. package/packages/arcgis-rest-users/src/index.ts +1 -0
  213. package/packages/arcgis-rest-users/src/users.ts +70 -0
  214. package/packages/arcgis-rest-users/test/mocks/responses.ts +170 -0
  215. package/packages/arcgis-rest-users/test/users.test.ts +97 -0
  216. package/packages/arcgis-rest-users/tsconfig.json +6 -0
  217. package/support/FormData.d.ts +1 -0
  218. package/support/changelog.js +388 -0
  219. package/support/commit-template.txt +19 -0
  220. package/support/deploy-doc-site.js +16 -0
  221. package/support/publish.sh +40 -0
  222. package/support/test-helpers.js +8 -0
  223. package/tsconfig.json +69 -0
  224. package/tslint.json +14 -0
  225. package/umd-base-profile.js +82 -0
  226. package/umd-production-profile.js +13 -0
@@ -0,0 +1,65 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { ArcGISRequestError } from "./ArcGISRequestError";
5
+ import { ArcGISAuthError } from "./ArcGISAuthError";
6
+ import { IRequestOptions, IParams } from "../request";
7
+ /**
8
+ * Checks for errors in a JSON response from the ArcGIS REST API. If there are no errors, it will return the `data` passed in. If there is an error, it will throw an `ArcGISRequestError` or `ArcGISAuthError`.
9
+ *
10
+ * @param data The response JSON to check for errors.
11
+ * @param url The url of the original request
12
+ * @param params The parameters of the original request
13
+ * @param options The options of the original request
14
+ * @returns The data that was passed in the `data` parameter
15
+ */
16
+ export function checkForErrors(
17
+ response: any,
18
+ url?: string,
19
+ params?: IParams,
20
+ options?: IRequestOptions
21
+ ): any {
22
+ // this is an error message from billing.arcgis.com backend
23
+ if (response.code >= 400) {
24
+ const { message, code } = response;
25
+ throw new ArcGISRequestError(message, code, response, url, options);
26
+ }
27
+
28
+ // error from ArcGIS Online or an ArcGIS Portal or server instance.
29
+ if (response.error) {
30
+ const { message, code, messageCode } = response.error;
31
+ const errorCode = messageCode || code || "UNKNOWN_ERROR_CODE";
32
+
33
+ if (code === 498 || code === 499 || messageCode === "GWM_0003") {
34
+ throw new ArcGISAuthError(message, errorCode, response, url, options);
35
+ }
36
+
37
+ throw new ArcGISRequestError(message, errorCode, response, url, options);
38
+ }
39
+
40
+ // error from a status check
41
+ if (response.status === "failed") {
42
+ let message: string;
43
+ let code: string = "UNKNOWN_ERROR_CODE";
44
+
45
+ try {
46
+ message = JSON.parse(response.statusMessage).message;
47
+ code = JSON.parse(response.statusMessage).code;
48
+ } catch (e) {
49
+ message = response.statusMessage;
50
+ }
51
+
52
+ throw new ArcGISRequestError(message, code, response, url, options);
53
+ }
54
+
55
+ return response;
56
+ }
57
+
58
+ /**
59
+ * Method used internally to surface messages to developers.
60
+ */
61
+ export function warn(message: string) {
62
+ if (console && console.warn) {
63
+ console.warn.apply(console, [message]);
64
+ }
65
+ }
@@ -0,0 +1,29 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { processParams, requiresFormData } from "./process-params";
5
+ import { encodeQueryString } from "./encode-query-string";
6
+ /**
7
+ * Encodes parameters in a [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object in browsers or in a [FormData](https://github.com/form-data/form-data) in Node.js
8
+ *
9
+ * @param params An object to be encoded.
10
+ * @returns The complete [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object.
11
+ */
12
+ export function encodeFormData(params: any): FormData | string {
13
+ const useFormData = requiresFormData(params);
14
+ const newParams = processParams(params);
15
+ if (useFormData) {
16
+ const formData = new FormData();
17
+ Object.keys(newParams).forEach((key: any) => {
18
+ if (key === "file" && newParams[key].name) {
19
+ // Pass on the file's name if provided to override defaults such as "blob"
20
+ formData.append(key, newParams[key], newParams[key].name);
21
+ } else {
22
+ formData.append(key, newParams[key]);
23
+ }
24
+ });
25
+ return formData;
26
+ } else {
27
+ return encodeQueryString(params);
28
+ }
29
+ }
@@ -0,0 +1,23 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { processParams } from "./process-params";
5
+
6
+ export function encodeParam(key: string, value: any) {
7
+ return encodeURIComponent(key) + "=" + encodeURIComponent(value);
8
+ }
9
+
10
+ /**
11
+ * Encodes the passed object as a query string.
12
+ *
13
+ * @param params An object to be encoded.
14
+ * @returns An encoded query string.
15
+ */
16
+ export function encodeQueryString(params: any): string {
17
+ const newParams = processParams(params);
18
+ return Object.keys(newParams)
19
+ .map((key: any) => {
20
+ return encodeParam(key, newParams[key]);
21
+ })
22
+ .join("&");
23
+ }
@@ -0,0 +1,25 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+ import { IRequestOptions } from "../request";
4
+
5
+ /**
6
+ * Helper that returns the portalUrl - either defaulting to www.arcgis.com or using
7
+ * the passed in auth manager's .portal property
8
+ *
9
+ * @param requestOptions - Request options that may have authentication manager
10
+ * @returns Portal url to be used in API requests
11
+ */
12
+ export function getPortalUrl(requestOptions: IRequestOptions = {}): string {
13
+ // use portal in options if specified
14
+ if (requestOptions.portal) {
15
+ return requestOptions.portal;
16
+ }
17
+
18
+ // if the auth was passed, use that portal
19
+ if (requestOptions.authentication) {
20
+ return requestOptions.authentication.portal;
21
+ }
22
+
23
+ // default to arcgis.com
24
+ return "https://www.arcgis.com/sharing/rest";
25
+ }
@@ -0,0 +1,45 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, IRequestOptions } from "../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
+ * Get a portal by id. If no id is passed, it will call portals/self
26
+ * @param id
27
+ * @param requestOptions
28
+ */
29
+ export function getPortal(
30
+ id?: string,
31
+ requestOptions?: IRequestOptions
32
+ ): Promise<IPortal> {
33
+ // construct the search url
34
+ const idOrSelf = id ? id : "self";
35
+ const url = `${getPortalUrl(requestOptions)}/portals/${idOrSelf}`;
36
+
37
+ // default to a GET request
38
+ const options: IRequestOptions = {
39
+ ...{ httpMethod: "GET" },
40
+ ...requestOptions
41
+ };
42
+
43
+ // send the request
44
+ return request(url, options);
45
+ }
@@ -0,0 +1,99 @@
1
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ /**
5
+ * Checks parameters to see if we should use FormData to send the request
6
+ * @param params The object whose keys will be encoded.
7
+ * @return A boolean indicating if FormData will be required.
8
+ */
9
+ export function requiresFormData(params: any) {
10
+ return Object.keys(params).some(key => {
11
+ const value = params[key];
12
+
13
+ if (!value) {
14
+ return false;
15
+ }
16
+
17
+ const type = value.constructor.name;
18
+
19
+ switch (type) {
20
+ case "Array":
21
+ return false;
22
+ case "Object":
23
+ return false;
24
+ case "Date":
25
+ return false;
26
+ case "Function":
27
+ return false;
28
+ case "Boolean":
29
+ return false;
30
+ case "String":
31
+ return false;
32
+ case "Number":
33
+ return false;
34
+ default:
35
+ return true;
36
+ }
37
+ });
38
+ }
39
+
40
+ /**
41
+ * Converts parameters to the proper representation to send to the ArcGIS REST API.
42
+ * @param params The object whose keys will be encoded.
43
+ * @return A new object with properly encoded values.
44
+ */
45
+ export function processParams(params: any): any {
46
+ const newParams: any = {};
47
+
48
+ Object.keys(params).forEach(key => {
49
+ const param = params[key];
50
+ if (
51
+ !param &&
52
+ param !== 0 &&
53
+ typeof param !== "boolean" &&
54
+ typeof param !== "string"
55
+ ) {
56
+ return;
57
+ }
58
+ const type = param.constructor.name;
59
+
60
+ let value: any;
61
+
62
+ // properly encodes objects, arrays and dates for arcgis.com and other services.
63
+ // ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30
64
+ // also see https://github.com/Esri/arcgis-rest-js/issues/18:
65
+ // null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "".
66
+ switch (type) {
67
+ case "Array":
68
+ // Based on the first element of the array, classify array as an array of objects to be stringified
69
+ // or an array of non-objects to be comma-separated
70
+ value =
71
+ param[0] &&
72
+ param[0].constructor &&
73
+ param[0].constructor.name === "Object"
74
+ ? JSON.stringify(param)
75
+ : param.join(",");
76
+ break;
77
+ case "Object":
78
+ value = JSON.stringify(param);
79
+ break;
80
+ case "Date":
81
+ value = param.valueOf();
82
+ break;
83
+ case "Function":
84
+ value = null;
85
+ break;
86
+ case "Boolean":
87
+ value = param + "";
88
+ break;
89
+ default:
90
+ value = param;
91
+ break;
92
+ }
93
+ if (value || value === 0 || typeof value === "string") {
94
+ newParams[key] = value;
95
+ }
96
+ });
97
+
98
+ return newParams;
99
+ }
@@ -0,0 +1,59 @@
1
+ export const ArcGISOnlineError: any = {
2
+ error: {
3
+ code: 400,
4
+ message: "'type' and 'title' property required.",
5
+ details: []
6
+ }
7
+ };
8
+
9
+ export const ArcGISOnlineAuthError: any = {
10
+ error: {
11
+ code: 498,
12
+ message: "Invalid token.",
13
+ details: []
14
+ }
15
+ };
16
+
17
+ export const ArcGISOnlineErrorNoMessageCode: any = {
18
+ error: {
19
+ code: 403,
20
+ message:
21
+ "You do not have permissions to access this resource or perform this operation.",
22
+ details: []
23
+ }
24
+ };
25
+
26
+ export const ArcGISOnlineErrorNoCode: any = {
27
+ error: {
28
+ message:
29
+ "You do not have permissions to access this resource or perform this operation.",
30
+ details: []
31
+ }
32
+ };
33
+
34
+ export const ArcGISServerTokenRequired: any = {
35
+ error: {
36
+ code: 499,
37
+ message: "Token Required",
38
+ messageCode: "GWM_0003",
39
+ details: ["Token Required"]
40
+ }
41
+ };
42
+
43
+ export const BillingError: any = {
44
+ code: 500,
45
+ message: "Error getting subscription info",
46
+ status: "failure",
47
+ details: null as any
48
+ };
49
+
50
+ export const TaskErrorWithJSON: any = {
51
+ status: "failed",
52
+ statusMessage:
53
+ '{"code":400,"message":"Index was outside the bounds of the array."}'
54
+ };
55
+
56
+ export const TaskError: any = {
57
+ status: "failed",
58
+ statusMessage: "failed"
59
+ };
@@ -0,0 +1,10 @@
1
+ export const GeoJSONFeatureCollection: any = {
2
+ type: "FeatureCollection",
3
+ crs: {
4
+ type: "name",
5
+ properties: {
6
+ name: "EPSG:4326"
7
+ }
8
+ },
9
+ features: []
10
+ };
@@ -0,0 +1,109 @@
1
+ import { IPortal } from "../../src/utils/get-portal";
2
+
3
+ export const PortalResponse: IPortal = {
4
+ access: "public",
5
+ allSSL: false,
6
+ allowedRedirectUris: [],
7
+ analysisLayersGroupQuery:
8
+ 'title:"Living Atlas Analysis Layers" AND owner:esri',
9
+ authorizedCrossOriginDomains: [],
10
+ availableCredits: 9584.193,
11
+ basemapGalleryGroupQuery: "id:06d589ea1fdb47768ee3870f497333c0",
12
+ canListApps: false,
13
+ canListData: false,
14
+ canListPreProvisionedItems: false,
15
+ canProvisionDirectPurchase: false,
16
+ canSearchPublic: true,
17
+ canShareBingPublic: false,
18
+ canSharePublic: true,
19
+ canSignInArcGIS: true,
20
+ canSignInIDP: true,
21
+ colorSetsGroupQuery: 'title:"Esri Colors" AND owner:esri_en',
22
+ commentsEnabled: true,
23
+ created: 1392336986000,
24
+ creditAssignments: "enabled",
25
+ culture: "en",
26
+ customBaseUrl: "mapsdevext.arcgis.com",
27
+ databaseQuota: -1,
28
+ databaseUsage: -1,
29
+ defaultBasemap: {},
30
+ defaultExtent: {
31
+ type: "extent",
32
+ xmin: -8589300.590116454,
33
+ ymin: 4692777.971239516,
34
+ xmax: -8562027.314872108,
35
+ ymax: 4722244.554454538,
36
+ spatialReference: {
37
+ wkid: 102100
38
+ }
39
+ },
40
+ defaultUserCreditAssignment: 100,
41
+ defaultVectorBasemap: {
42
+ baseMapLayers: [],
43
+ title: "Topographic"
44
+ },
45
+ description: "We're the DC R&amp;D Center",
46
+ eueiEnabled: false,
47
+ featuredGroups: [],
48
+ featuredGroupsId: "",
49
+ featuredItemsGroupQuery: "",
50
+ galleryTemplatesGroupQuery: 'title:"Gallery Templates" AND owner:esri_en',
51
+ hasCategorySchema: false,
52
+ helpBase: "http://docdev.arcgis.com/en/arcgis-online/",
53
+ helpMap: {},
54
+ helperServices: {},
55
+ homePageFeaturedContent: "",
56
+ homePageFeaturedContentCount: 12,
57
+ id: "LjjARY1mkhxulWPq",
58
+ isPortal: false,
59
+ layerTemplatesGroupQuery: 'title:"Esri Layer Templates" AND owner:esri_en',
60
+ livingAtlasGroupQuery: 'title:"Featured Maps And Apps" AND owner:esri',
61
+ maxTokenExpirationMinutes: -1,
62
+ metadataEditable: true,
63
+ metadataFormats: ["iso19139"],
64
+ modified: 1511894763000,
65
+ name: "Washington, DC",
66
+ notificationsEnabled: false,
67
+ portalHostname: "devext.arcgis.com",
68
+ portalMode: "multitenant",
69
+ portalName: "ArcGIS Online",
70
+ portalProperties: {},
71
+ portalThumbnail: null,
72
+ region: "WO",
73
+ rotatorPanels: [
74
+ {
75
+ id: "banner-2",
76
+ innerHTML:
77
+ "<img src='images/banner-2.jpg' style='-webkit-border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px; -o-border-radius:0 0 10px 10px; border-radius:0 0 10px 10px; margin-top:0; width:960px; height:180px;'/><div style='position:absolute; bottom:80px; left:80px; max-height:65px; width:660px; margin:0;'><img src='http://dc.mapsdevext.arcgis.com/sharing/rest/portals/self/resources/thumbnail.png?token=SECURITY_TOKEN' alt='Washington, DC' class='esriFloatLeading esriTrailingMargin025' style='margin-bottom:0; max-height:100px;'/><span style='position:absolute; bottom:0; margin-bottom:0; line-height:normal; font-family:HelveticaNeue,Verdana; font-weight:600; font-size:32px; color:#369;'>Washington, DC</span></div>"
78
+ }
79
+ ],
80
+ showHomePageDescription: false,
81
+ staticImagesUrl: "http://static.arcgis.com/images",
82
+ storageQuota: 2199023255552,
83
+ storageUsage: 17622609523,
84
+ stylesGroupQuery: 'title:"Esri Styles" AND owner:esri_en',
85
+ supportsHostedServices: true,
86
+ symbolSetsGroupQuery: 'title:"Esri Symbols" AND owner:esri_en',
87
+ templatesGroupQuery: "id:f233da8d297e4ff9ae992c21f8f4010f",
88
+ thumbnail: "thumbnail.png",
89
+ units: "english",
90
+ updateUserProfileDisabled: false,
91
+ urlKey: "dc",
92
+ useStandardizedQuery: true,
93
+ useVectorBasemaps: false,
94
+ vectorBasemapGalleryGroupQuery:
95
+ 'title:"ArcGIS Online Vector Basemaps" AND owner:esri_en',
96
+ subscriptionInfo: {},
97
+ isHubEnabled: false,
98
+ ipCntryCode: "US",
99
+ httpPort: 80,
100
+ httpsPort: 443,
101
+ supportsOAuth: true,
102
+ currentVersion: "5.4",
103
+ allowedOrigins: [],
104
+ mfaAdmins: [],
105
+ contacts: ["dcadmin"],
106
+ mfaEnabled: false,
107
+ user: {},
108
+ appInfo: {}
109
+ };
@@ -0,0 +1,38 @@
1
+ export const SharingRestInfo = {
2
+ owningSystemUrl: "http://www.arcgis.com",
3
+ authInfo: {
4
+ tokenServicesUrl: "https://www.arcgis.com/sharing/rest/generateToken",
5
+ isTokenBasedSecurity: true
6
+ }
7
+ };
8
+
9
+ export const SharingRestInfoHTML = `<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
10
+
11
+
12
+
13
+
14
+
15
+
16
+ <html>
17
+ <head>
18
+ <title>ArcGIS Portal Directory</title>
19
+ <link href="/sharing/rest/files/gw.css" rel="stylesheet" type="text/css"/>
20
+ </head>
21
+ <body>
22
+ <br/>
23
+ <div class="gwDiv">
24
+ <table class="navTable" width="100%"><tr><td class="breadcrumbs">ArcGIS Portal Directory</td></tr></table>
25
+ <tr valign="top">
26
+ <br/><br/>
27
+ <b>
28
+ <a href="http://resources.arcgis.com/en/help/arcgis-rest-api/" >API Reference</a>
29
+ </b>
30
+
31
+ </tr>
32
+ </table>
33
+
34
+ </div>
35
+
36
+ </body>
37
+
38
+ </html>`;
@@ -0,0 +1,38 @@
1
+ export const WebMapAsText =
2
+ '{"operationalLayers":[{"id":"Alternative_Fueling_Stations_3694","layerType":"ArcGISFeatureLayer","url":"http://services.arcgis.com/rOo16HdIMeOBI4Mb/arcgis/rest/services/Alternative_Fueling_Stations/FeatureServer/0","visibility":true,"opacity":1,"title":"Alternative Fueling Stations","itemId":"44612e6217d34f40b1ce2a48f367e90a","layerDefinition":{"minScale":2896791,"maxScale":0}}],"baseMap":{"baseMapLayers":[{"id":"VectorTile_4047","type":"VectorTileLayer","layerType":"VectorTileLayer","title":"Dark Gray Canvas","styleUrl":"http://www.arcgis.com/sharing/rest/content/items/5ad3948260a147a993ef4865e3fad476/resources/styles/root.json","itemId":"5ad3948260a147a993ef4865e3fad476","visibility":true,"opacity":1}],"title":"Basemap"},"spatialReference":{"wkid":102100,"latestWkid":3857},"authoringApp":"WebMapViewer","authoringAppVersion":"5.1","version":"2.8"}';
3
+
4
+ export const WebMapAsJSON = {
5
+ operationalLayers: [
6
+ {
7
+ id: "Alternative_Fueling_Stations_3694",
8
+ layerType: "ArcGISFeatureLayer",
9
+ url:
10
+ "http://services.arcgis.com/rOo16HdIMeOBI4Mb/arcgis/rest/services/Alternative_Fueling_Stations/FeatureServer/0",
11
+ visibility: true,
12
+ opacity: 1,
13
+ title: "Alternative Fueling Stations",
14
+ itemId: "44612e6217d34f40b1ce2a48f367e90a",
15
+ layerDefinition: { minScale: 2896791, maxScale: 0 }
16
+ }
17
+ ],
18
+ baseMap: {
19
+ baseMapLayers: [
20
+ {
21
+ id: "VectorTile_4047",
22
+ type: "VectorTileLayer",
23
+ layerType: "VectorTileLayer",
24
+ title: "Dark Gray Canvas",
25
+ styleUrl:
26
+ "http://www.arcgis.com/sharing/rest/content/items/5ad3948260a147a993ef4865e3fad476/resources/styles/root.json",
27
+ itemId: "5ad3948260a147a993ef4865e3fad476",
28
+ visibility: true,
29
+ opacity: 1
30
+ }
31
+ ],
32
+ title: "Basemap"
33
+ },
34
+ spatialReference: { wkid: 102100, latestWkid: 3857 },
35
+ authoringApp: "WebMapViewer",
36
+ authoringAppVersion: "5.1",
37
+ version: "2.8"
38
+ };