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.
- package/.prettierignore +2 -0
- package/.travis.yml +29 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +3 -0
- package/demos/ago-node-cli/README.md +29 -0
- package/demos/ago-node-cli/ago.js +32 -0
- package/demos/ago-node-cli/index.js +11 -0
- package/demos/ago-node-cli/lib/item-export-command.js +48 -0
- package/demos/ago-node-cli/lib/item-search-command.js +35 -0
- package/demos/ago-node-cli/package-lock.json +172 -0
- package/demos/ago-node-cli/package.json +30 -0
- package/demos/attachments/README.md +5 -0
- package/demos/attachments/index.html +164 -0
- package/demos/attachments/package-lock.json +182 -0
- package/demos/attachments/package.json +18 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +14 -0
- package/demos/batch-geocoder-node/batch-geocode.js +112 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +109 -0
- package/demos/batch-geocoder-node/package.json +37 -0
- package/demos/express/README.md +10 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +388 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +28 -0
- package/demos/feature-service-browser/README.md +6 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package-lock.json +182 -0
- package/demos/feature-service-browser/package.json +18 -0
- package/demos/geocoder-browser/README.md +10 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +131 -0
- package/demos/geocoder-browser/package-lock.json +163 -0
- package/demos/geocoder-browser/package.json +19 -0
- package/demos/geocoder-browser/post-sign-in.html +25 -0
- package/demos/jsapi-integration/README.md +8 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +79 -0
- package/demos/jsapi-integration/package-lock.json +184 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/oauth2-browser/README.md +12 -0
- package/demos/oauth2-browser/authenticate.html +32 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +202 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package-lock.json +163 -0
- package/demos/oauth2-browser/package.json +18 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/vue/.babelrc +6 -0
- package/demos/vue/.env.example +8 -0
- package/demos/vue/README.md +17 -0
- package/demos/vue/index.html +21 -0
- package/demos/vue/package-lock.json +7236 -0
- package/demos/vue/package.json +39 -0
- package/demos/vue/src/assets/logo.svg +29 -0
- package/demos/vue/src/components/App.vue +302 -0
- package/demos/vue/src/components/Authenticate.vue +68 -0
- package/demos/vue/src/components/Loader.vue +216 -0
- package/demos/vue/src/main.js +75 -0
- package/demos/vue/webpack.config.js +84 -0
- package/docs/FAQ.md +28 -0
- package/docs/HISTORY.md +62 -0
- package/docs/acetate.config.js +214 -0
- package/docs/build-typedoc.js +301 -0
- package/docs/src/_layout.html +82 -0
- package/docs/src/api/_declaration.html +496 -0
- package/docs/src/api/_layout.html +127 -0
- package/docs/src/api/_package.html +13 -0
- package/docs/src/api/index.html +23 -0
- package/docs/src/guides/_layout.html +24 -0
- package/docs/src/guides/amd-requirejs-dojo.md +40 -0
- package/docs/src/guides/babel-and-rollup.md +30 -0
- package/docs/src/guides/babel-and-webpack.md +30 -0
- package/docs/src/guides/browser-authentication.md +9 -0
- package/docs/src/guides/browserify.md +9 -0
- package/docs/src/guides/cli-authentication.md +9 -0
- package/docs/src/guides/client-server-authentication.md +9 -0
- package/docs/src/guides/from-a-cdn.md +36 -0
- package/docs/src/guides/index.md +52 -0
- package/docs/src/guides/node.md +30 -0
- package/docs/src/guides/package-overview.md +8 -0
- package/docs/src/guides/server-authentication.md +9 -0
- package/docs/src/guides/typescript-and-webpack.md +9 -0
- package/docs/src/img/icons.png +0 -0
- package/docs/src/img/icons@2x.png +0 -0
- package/docs/src/index.html +12 -0
- package/docs/src/js/api-search.js +113 -0
- package/docs/src/js/index.js +1 -0
- package/docs/src/js/nav-toggle.js +41 -0
- package/docs/src/sass/_highlight.scss +96 -0
- package/docs/src/sass/_icons.scss +157 -0
- package/docs/src/sass/style.scss +169 -0
- package/jasmine.json +7 -0
- package/karma.conf.js +100 -0
- package/lerna.json +8 -0
- package/notes/README.md +88 -0
- package/package.json +91 -0
- package/packages/arcgis-rest-auth/README.md +64 -0
- package/packages/arcgis-rest-auth/package-lock.json +11 -0
- package/packages/arcgis-rest-auth/package.json +51 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +91 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +829 -0
- package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +21 -0
- package/packages/arcgis-rest-auth/src/fetch-token.ts +55 -0
- package/packages/arcgis-rest-auth/src/generate-token.ts +36 -0
- package/packages/arcgis-rest-auth/src/index.ts +5 -0
- package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +121 -0
- package/packages/arcgis-rest-auth/test/UserSession.test.ts +883 -0
- package/packages/arcgis-rest-auth/test/fetchToken.test.ts +76 -0
- package/packages/arcgis-rest-auth/test/generateToken.test.ts +36 -0
- package/packages/arcgis-rest-auth/test/utils.ts +11 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-common-types/README.md +61 -0
- package/packages/arcgis-rest-common-types/package.json +38 -0
- package/packages/arcgis-rest-common-types/src/group.ts +51 -0
- package/packages/arcgis-rest-common-types/src/index.ts +467 -0
- package/packages/arcgis-rest-common-types/src/item.ts +45 -0
- package/packages/arcgis-rest-common-types/src/webmap.ts +1225 -0
- package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
- package/packages/arcgis-rest-feature-service/README.md +70 -0
- package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service/package.json +50 -0
- package/packages/arcgis-rest-feature-service/src/add.ts +82 -0
- package/packages/arcgis-rest-feature-service/src/addAttachment.ts +65 -0
- package/packages/arcgis-rest-feature-service/src/delete.ts +85 -0
- package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +68 -0
- package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
- package/packages/arcgis-rest-feature-service/src/helpers.ts +77 -0
- package/packages/arcgis-rest-feature-service/src/index.ts +8 -0
- package/packages/arcgis-rest-feature-service/src/query.ts +174 -0
- package/packages/arcgis-rest-feature-service/src/update.ts +81 -0
- package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +74 -0
- package/packages/arcgis-rest-feature-service/test/attachments.test.ts +179 -0
- package/packages/arcgis-rest-feature-service/test/features.test.ts +172 -0
- package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +220 -0
- package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
- package/packages/arcgis-rest-geocoder/README.md +73 -0
- package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
- package/packages/arcgis-rest-geocoder/package.json +52 -0
- package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
- package/packages/arcgis-rest-geocoder/src/geocode.ts +117 -0
- package/packages/arcgis-rest-geocoder/src/helpers.ts +81 -0
- package/packages/arcgis-rest-geocoder/src/index.ts +4 -0
- package/packages/arcgis-rest-geocoder/src/reverse.ts +84 -0
- package/packages/arcgis-rest-geocoder/src/suggest.ts +72 -0
- package/packages/arcgis-rest-geocoder/test/geocoder.test.ts +510 -0
- package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +588 -0
- package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
- package/packages/arcgis-rest-groups/README.md +64 -0
- package/packages/arcgis-rest-groups/package-lock.json +11 -0
- package/packages/arcgis-rest-groups/package.json +52 -0
- package/packages/arcgis-rest-groups/src/groups.ts +272 -0
- package/packages/arcgis-rest-groups/src/index.ts +1 -0
- package/packages/arcgis-rest-groups/test/groups.test.ts +280 -0
- package/packages/arcgis-rest-groups/test/mocks/responses.ts +137 -0
- package/packages/arcgis-rest-groups/tsconfig.json +6 -0
- package/packages/arcgis-rest-items/README.md +66 -0
- package/packages/arcgis-rest-items/package-lock.json +11 -0
- package/packages/arcgis-rest-items/package.json +52 -0
- package/packages/arcgis-rest-items/src/index.ts +1 -0
- package/packages/arcgis-rest-items/src/items.ts +498 -0
- package/packages/arcgis-rest-items/test/items.test.ts +1153 -0
- package/packages/arcgis-rest-items/test/mocks/foo.zip +0 -0
- package/packages/arcgis-rest-items/test/mocks/item.ts +30 -0
- package/packages/arcgis-rest-items/test/mocks/resources.ts +28 -0
- package/packages/arcgis-rest-items/test/mocks/search.ts +60 -0
- package/packages/arcgis-rest-items/tsconfig.json +6 -0
- package/packages/arcgis-rest-request/README.md +65 -0
- package/packages/arcgis-rest-request/package-lock.json +11 -0
- package/packages/arcgis-rest-request/package.json +42 -0
- package/packages/arcgis-rest-request/src/index.ts +10 -0
- package/packages/arcgis-rest-request/src/request.ts +259 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISAuthError.ts +67 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +73 -0
- package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/check-for-errors.ts +65 -0
- package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
- package/packages/arcgis-rest-request/src/utils/get-portal-url.ts +25 -0
- package/packages/arcgis-rest-request/src/utils/get-portal.ts +45 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
- package/packages/arcgis-rest-request/test/mocks/errors.ts +59 -0
- package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +10 -0
- package/packages/arcgis-rest-request/test/mocks/portal.ts +109 -0
- package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +38 -0
- package/packages/arcgis-rest-request/test/mocks/webmap.ts +38 -0
- package/packages/arcgis-rest-request/test/request.test.ts +296 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +167 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +40 -0
- package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +101 -0
- package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +112 -0
- package/packages/arcgis-rest-request/test/utils/get-portal-url.test.ts +34 -0
- package/packages/arcgis-rest-request/test/utils/portal.test.ts +94 -0
- package/packages/arcgis-rest-request/test/utils/process-params.test.ts +190 -0
- package/packages/arcgis-rest-request/tsconfig.json +6 -0
- package/packages/arcgis-rest-sharing/README.md +67 -0
- package/packages/arcgis-rest-sharing/package-lock.json +11 -0
- package/packages/arcgis-rest-sharing/package.json +55 -0
- package/packages/arcgis-rest-sharing/src/access.ts +91 -0
- package/packages/arcgis-rest-sharing/src/group-sharing.ts +212 -0
- package/packages/arcgis-rest-sharing/src/helpers.ts +92 -0
- package/packages/arcgis-rest-sharing/src/index.ts +2 -0
- package/packages/arcgis-rest-sharing/test/access.test.ts +153 -0
- package/packages/arcgis-rest-sharing/test/group-sharing.test.ts +436 -0
- package/packages/arcgis-rest-sharing/test/mocks/sharing.ts +15 -0
- package/packages/arcgis-rest-sharing/tsconfig.json +6 -0
- package/packages/arcgis-rest-users/README.md +71 -0
- package/packages/arcgis-rest-users/package-lock.json +11 -0
- package/packages/arcgis-rest-users/package.json +51 -0
- package/packages/arcgis-rest-users/src/index.ts +1 -0
- package/packages/arcgis-rest-users/src/users.ts +70 -0
- package/packages/arcgis-rest-users/test/mocks/responses.ts +170 -0
- package/packages/arcgis-rest-users/test/users.test.ts +97 -0
- package/packages/arcgis-rest-users/tsconfig.json +6 -0
- package/support/FormData.d.ts +1 -0
- package/support/changelog.js +388 -0
- package/support/commit-template.txt +19 -0
- package/support/deploy-doc-site.js +16 -0
- package/support/publish.sh +40 -0
- package/support/test-helpers.js +8 -0
- package/tsconfig.json +69 -0
- package/tslint.json +14 -0
- package/umd-base-profile.js +82 -0
- 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,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&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
|
+
};
|