etincidunt 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ };