@esri/hub-common 9.21.2 → 9.23.1
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/dist/es2017/content/_fetch.js +87 -0
- package/dist/es2017/content/_fetch.js.map +1 -0
- package/dist/es2017/content/_internal.js +75 -3
- package/dist/es2017/content/_internal.js.map +1 -1
- package/dist/es2017/content/compose.js +59 -22
- package/dist/es2017/content/compose.js.map +1 -1
- package/dist/es2017/content/fetch.js +109 -0
- package/dist/es2017/content/fetch.js.map +1 -0
- package/dist/es2017/content/index.js +9 -80
- package/dist/es2017/content/index.js.map +1 -1
- package/dist/es2017/content/slugs.js +63 -0
- package/dist/es2017/content/slugs.js.map +1 -0
- package/dist/es2017/content/types.js +1 -0
- package/dist/es2017/content/types.js.map +1 -0
- package/dist/es2017/items/_enrichments.js +176 -0
- package/dist/es2017/items/_enrichments.js.map +1 -0
- package/dist/esm/content/_fetch.js +102 -0
- package/dist/esm/content/_fetch.js.map +1 -0
- package/dist/esm/content/_internal.js +75 -3
- package/dist/esm/content/_internal.js.map +1 -1
- package/dist/esm/content/compose.js +60 -21
- package/dist/esm/content/compose.js.map +1 -1
- package/dist/esm/content/fetch.js +177 -0
- package/dist/esm/content/fetch.js.map +1 -0
- package/dist/esm/content/index.js +9 -80
- package/dist/esm/content/index.js.map +1 -1
- package/dist/esm/content/slugs.js +63 -0
- package/dist/esm/content/slugs.js.map +1 -0
- package/dist/esm/content/types.js +1 -0
- package/dist/esm/content/types.js.map +1 -0
- package/dist/esm/items/_enrichments.js +177 -0
- package/dist/esm/items/_enrichments.js.map +1 -0
- package/dist/node/content/_fetch.js +90 -0
- package/dist/node/content/_fetch.js.map +1 -0
- package/dist/node/content/_internal.js +76 -4
- package/dist/node/content/_internal.js.map +1 -1
- package/dist/node/content/compose.js +59 -22
- package/dist/node/content/compose.js.map +1 -1
- package/dist/node/content/fetch.js +112 -0
- package/dist/node/content/fetch.js.map +1 -0
- package/dist/node/content/index.js +11 -86
- package/dist/node/content/index.js.map +1 -1
- package/dist/node/content/slugs.js +70 -0
- package/dist/node/content/slugs.js.map +1 -0
- package/dist/node/content/types.js +3 -0
- package/dist/node/content/types.js.map +1 -0
- package/dist/node/items/_enrichments.js +179 -0
- package/dist/node/items/_enrichments.js.map +1 -0
- package/dist/types/content/_fetch.d.ts +60 -0
- package/dist/types/content/_internal.d.ts +79 -0
- package/dist/types/content/compose.d.ts +31 -0
- package/dist/types/content/fetch.d.ts +24 -0
- package/dist/types/content/index.d.ts +4 -41
- package/dist/types/content/slugs.d.ts +34 -0
- package/dist/types/content/types.d.ts +7 -0
- package/dist/types/core/types/IHubContent.d.ts +4 -0
- package/dist/types/items/_enrichments.d.ts +24 -0
- package/dist/umd/common.umd.js +2238 -836
- package/dist/umd/common.umd.js.map +1 -1
- package/dist/umd/common.umd.min.js +1 -1
- package/dist/umd/common.umd.min.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
import { getCollection } from "../collections";
|
|
3
3
|
import { categories as allCategories } from "../categories";
|
|
4
|
-
import {
|
|
5
|
-
import { includes, isGuid } from "../utils";
|
|
4
|
+
import { includes } from "../utils";
|
|
6
5
|
import { getProp } from "../objects";
|
|
7
6
|
import { getServiceTypeFromUrl } from "../urls";
|
|
8
7
|
import { getHubRelativeUrl, isPageType } from "./_internal";
|
|
9
8
|
import { camelize } from "../util";
|
|
10
9
|
import { normalizeItemType, getContentTypeIcon, composeContent, } from "./compose";
|
|
11
10
|
import { getFamily } from "./get-family";
|
|
11
|
+
import { parseDatasetId, removeContextFromSlug } from "./slugs";
|
|
12
12
|
// re-export functions used in this file
|
|
13
13
|
export * from "./compose";
|
|
14
14
|
export * from "./get-family";
|
|
15
|
+
export * from "./slugs";
|
|
16
|
+
export * from "./fetch";
|
|
17
|
+
export * from "./types";
|
|
15
18
|
// TODO: remove this at next breaking version
|
|
16
19
|
/**
|
|
17
20
|
* ```js
|
|
@@ -127,67 +130,6 @@ export function getContentIdentifier(content, site) {
|
|
|
127
130
|
}
|
|
128
131
|
return content.hubId || content.id;
|
|
129
132
|
}
|
|
130
|
-
//////////////////////
|
|
131
|
-
// Slug Helpers
|
|
132
|
-
//////////////////////
|
|
133
|
-
/**
|
|
134
|
-
* Parse item ID and layer ID (if any) from dataset record ID
|
|
135
|
-
*
|
|
136
|
-
* @param datasetId Hub API dataset record id ({itemId}_{layerId} or {itemId})
|
|
137
|
-
* @returns A hash with the `itemId` and `layerId` (if any)
|
|
138
|
-
*/
|
|
139
|
-
export function parseDatasetId(datasetId) {
|
|
140
|
-
var _a = datasetId ? datasetId.split("_") : [], itemId = _a[0], layerId = _a[1];
|
|
141
|
-
return { itemId: itemId, layerId: layerId };
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Determine if an identifier is a Hub API slug
|
|
145
|
-
*
|
|
146
|
-
* @param identifier Hub API slug ({orgKey}::{title-as-slug} or {title-as-slug})
|
|
147
|
-
* or record id ((itemId}_{layerId} or {itemId})
|
|
148
|
-
* @returns true if the identifier is valid _and_ is **not** a record id
|
|
149
|
-
*/
|
|
150
|
-
export function isSlug(identifier) {
|
|
151
|
-
var itemId = parseDatasetId(identifier).itemId;
|
|
152
|
-
if (!itemId || isGuid(itemId)) {
|
|
153
|
-
// it's either invalid, or an item id, or a dataset id
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
// otherwise assume it's a slug
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Add a context (prefix) to slug if it doesn't already have one
|
|
161
|
-
*
|
|
162
|
-
* @param slug Hub API slug (with or without context)
|
|
163
|
-
* @param context usually a portal's orgKey
|
|
164
|
-
* @returns slug with context ({context}::{slug})
|
|
165
|
-
*/
|
|
166
|
-
export function addContextToSlug(slug, context) {
|
|
167
|
-
// the slug has an org key already e.g. dc::crime-incidents
|
|
168
|
-
if (/.+::.+/.test(slug)) {
|
|
169
|
-
return slug;
|
|
170
|
-
// the slug belongs to the org that owns the site e.g. crime-incidents
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
return context + "::" + slug;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Remove context (prefix) from a slug
|
|
178
|
-
*
|
|
179
|
-
* @param slug Hub API slug with context
|
|
180
|
-
* @param context usually a portal's orgKey
|
|
181
|
-
* @returns slug without context
|
|
182
|
-
*/
|
|
183
|
-
export function removeContextFromSlug(slug, context) {
|
|
184
|
-
if (context && slug.match(context + "::")) {
|
|
185
|
-
return slug.split(context + "::")[1];
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
return slug;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
133
|
/**
|
|
192
134
|
* DEPRECATED: Use getFamily() instead.
|
|
193
135
|
*
|
|
@@ -233,7 +175,7 @@ export function datasetToContent(dataset) {
|
|
|
233
175
|
// map and feature server enrichments
|
|
234
176
|
server = _a.server, layers = _a.layers, layer = _a.layer, recordCount = _a.recordCount, statistics = _a.statistics,
|
|
235
177
|
// additional attributes needed
|
|
236
|
-
extent = _a.extent,
|
|
178
|
+
extent = _a.extent, searchDescription = _a.searchDescription;
|
|
237
179
|
// get the layerId from the layer
|
|
238
180
|
var layerId = layer && layer.id;
|
|
239
181
|
// re-assemble the org as an enrichment
|
|
@@ -243,7 +185,7 @@ export function datasetToContent(dataset) {
|
|
|
243
185
|
extent: orgExtent,
|
|
244
186
|
};
|
|
245
187
|
// compose a content out of the above
|
|
246
|
-
|
|
188
|
+
return composeContent(item, {
|
|
247
189
|
layerId: layerId,
|
|
248
190
|
slug: slug,
|
|
249
191
|
errors: errors,
|
|
@@ -255,23 +197,10 @@ export function datasetToContent(dataset) {
|
|
|
255
197
|
layers: layers,
|
|
256
198
|
recordCount: recordCount,
|
|
257
199
|
boundary: boundary,
|
|
200
|
+
extent: extent,
|
|
201
|
+
searchDescription: searchDescription,
|
|
258
202
|
statistics: statistics,
|
|
259
203
|
});
|
|
260
|
-
// TODO: need to add searchDescription logic to composeContent()
|
|
261
|
-
// or fetch it as a Hub enrichment like boundary
|
|
262
|
-
if (searchDescription) {
|
|
263
|
-
// overwrite default summary (from snippet) w/ search description
|
|
264
|
-
content.summary = searchDescription;
|
|
265
|
-
}
|
|
266
|
-
// TODO: need to add extent logic to composeContent()
|
|
267
|
-
// or fetch it as a Hub enrichment like boundary
|
|
268
|
-
if (!isBBox(item.extent) && extent && isBBox(extent.coordinates)) {
|
|
269
|
-
// we fall back to the extent derived by the API
|
|
270
|
-
// which prefers layer or service extents and ultimately
|
|
271
|
-
// falls back to the org's extent
|
|
272
|
-
content.extent = extent.coordinates;
|
|
273
|
-
}
|
|
274
|
-
return content;
|
|
275
204
|
}
|
|
276
205
|
/**
|
|
277
206
|
* Convert a Hub API dataset resource to a portal item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { isGuid } from "../utils";
|
|
2
|
+
//////////////////////
|
|
3
|
+
// Slug Helpers
|
|
4
|
+
//////////////////////
|
|
5
|
+
/**
|
|
6
|
+
* Parse item ID and layer ID (if any) from dataset record ID
|
|
7
|
+
*
|
|
8
|
+
* @param datasetId Hub API dataset record id ({itemId}_{layerId} or {itemId})
|
|
9
|
+
* @returns A hash with the `itemId` and `layerId` (if any)
|
|
10
|
+
*/
|
|
11
|
+
export function parseDatasetId(datasetId) {
|
|
12
|
+
var _a = datasetId ? datasetId.split("_") : [], itemId = _a[0], layerId = _a[1];
|
|
13
|
+
return { itemId: itemId, layerId: layerId };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Determine if an identifier is a Hub API slug
|
|
17
|
+
*
|
|
18
|
+
* @param identifier Hub API slug ({orgKey}::{title-as-slug} or {title-as-slug})
|
|
19
|
+
* or record id ((itemId}_{layerId} or {itemId})
|
|
20
|
+
* @returns true if the identifier is valid _and_ is **not** a record id
|
|
21
|
+
*/
|
|
22
|
+
export function isSlug(identifier) {
|
|
23
|
+
var itemId = parseDatasetId(identifier).itemId;
|
|
24
|
+
if (!itemId || isGuid(itemId)) {
|
|
25
|
+
// it's either invalid, or an item id, or a dataset id
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
// otherwise assume it's a slug
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add a context (prefix) to slug if it doesn't already have one
|
|
33
|
+
*
|
|
34
|
+
* @param slug Hub API slug (with or without context)
|
|
35
|
+
* @param context usually a portal's orgKey
|
|
36
|
+
* @returns slug with context ({context}::{slug})
|
|
37
|
+
*/
|
|
38
|
+
export function addContextToSlug(slug, context) {
|
|
39
|
+
// the slug has an org key already e.g. dc::crime-incidents
|
|
40
|
+
if (/.+::.+/.test(slug)) {
|
|
41
|
+
return slug;
|
|
42
|
+
// the slug belongs to the org that owns the site e.g. crime-incidents
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return context + "::" + slug;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Remove context (prefix) from a slug
|
|
50
|
+
*
|
|
51
|
+
* @param slug Hub API slug with context
|
|
52
|
+
* @param context usually a portal's orgKey
|
|
53
|
+
* @returns slug without context
|
|
54
|
+
*/
|
|
55
|
+
export function removeContextFromSlug(slug, context) {
|
|
56
|
+
if (context && slug.match(context + "::")) {
|
|
57
|
+
return slug.split(context + "::")[1];
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return slug;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=slugs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/content/slugs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,sBAAsB;AACtB,eAAe;AACf,sBAAsB;AAEtB;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAIxC,IAAA,KAAoB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAxD,MAAM,QAAA,EAAE,OAAO,QAAyC,CAAC;IAChE,OAAO,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,UAAkB;IAC/B,IAAA,MAAM,GAAK,cAAc,CAAC,UAAU,CAAC,OAA/B,CAAgC;IAC9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;QAC7B,sDAAsD;QACtD,OAAO,KAAK,CAAC;KACd;IACD,+BAA+B;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;QACZ,sEAAsE;KACvE;SAAM;QACL,OAAU,OAAO,UAAK,IAAM,CAAC;KAC9B;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,CAAI,OAAO,OAAI,CAAC,EAAE;QACzC,OAAO,IAAI,CAAC,KAAK,CAAI,OAAO,OAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACtC;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/content/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { __assign, __spreadArrays } from "tslib";
|
|
2
|
+
import { getItemData, getItemGroups, getUser, } from "@esri/arcgis-rest-portal";
|
|
3
|
+
import { getAllLayersAndTables, getService, } from "@esri/arcgis-rest-feature-layer";
|
|
4
|
+
import { createOperationPipeline } from "../utils";
|
|
5
|
+
import OperationStack from "../OperationStack";
|
|
6
|
+
// TODO: move these functions here under /items
|
|
7
|
+
import { getItemMetadata } from "@esri/arcgis-rest-portal";
|
|
8
|
+
import { parse } from "fast-xml-parser";
|
|
9
|
+
function parseMetadataXml(metadataXml) {
|
|
10
|
+
var opts = {
|
|
11
|
+
// options for fastXmlParser to read tag attrs
|
|
12
|
+
ignoreAttributes: false,
|
|
13
|
+
attributeNamePrefix: "@_",
|
|
14
|
+
textNodeName: "#value",
|
|
15
|
+
};
|
|
16
|
+
return parse(metadataXml, opts);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Fetch an [item's metadata](https://doc.arcgis.com/en/arcgis-online/manage-data/metadata.htm) from a portal
|
|
20
|
+
* and parse and return it as JSON
|
|
21
|
+
* @param id item id
|
|
22
|
+
* @param requestOptions
|
|
23
|
+
*/
|
|
24
|
+
function fetchContentMetadata(id, requestOptions) {
|
|
25
|
+
return getItemMetadata(id, requestOptions)
|
|
26
|
+
.then(function (metadataXml) { return parseMetadataXml(metadataXml); })
|
|
27
|
+
.catch(function () {
|
|
28
|
+
// many items don't have metadata and the request will 404
|
|
29
|
+
// in these cases we don't want to treat it as an error
|
|
30
|
+
// content.metadata === null signals to consumers that
|
|
31
|
+
// we attempted to fetch the metadata, but it doesn't exist
|
|
32
|
+
// TODO: we should probably still throw the error if it's not a 404
|
|
33
|
+
return null;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
var enrichGroupIds = function (input) {
|
|
37
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
38
|
+
var opId = stack.start("enrichGroupIds");
|
|
39
|
+
return getItemGroups(data.item.id, requestOptions)
|
|
40
|
+
.then(function (response) {
|
|
41
|
+
var admin = response.admin, member = response.member, other = response.other;
|
|
42
|
+
var groupIds = __spreadArrays(admin, member, other).map(function (group) { return group.id; });
|
|
43
|
+
stack.finish(opId);
|
|
44
|
+
return {
|
|
45
|
+
data: __assign(__assign({}, data), { groupIds: groupIds }),
|
|
46
|
+
stack: stack,
|
|
47
|
+
requestOptions: requestOptions,
|
|
48
|
+
};
|
|
49
|
+
})
|
|
50
|
+
.catch(function (error) { return handleEnrichmentError(error, input, opId); });
|
|
51
|
+
};
|
|
52
|
+
var enrichMetadata = function (input) {
|
|
53
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
54
|
+
var opId = stack.start("enrichMetadata");
|
|
55
|
+
return fetchContentMetadata(data.item.id, requestOptions).then(function (metadata) {
|
|
56
|
+
stack.finish(opId);
|
|
57
|
+
return {
|
|
58
|
+
data: __assign(__assign({}, data), { metadata: metadata }),
|
|
59
|
+
stack: stack,
|
|
60
|
+
requestOptions: requestOptions,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
// TODO: currently fetchContentMetadata will never throw, but
|
|
64
|
+
// if we update it to throw for non-404 errors, need to uncomment this:
|
|
65
|
+
// .catch((error) => handleEnrichmentError(error, input, opId));
|
|
66
|
+
};
|
|
67
|
+
var enrichOwnerUser = function (input) {
|
|
68
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
69
|
+
var opId = stack.start("enrichOwner");
|
|
70
|
+
// w/o the : any here, I get a compile error about
|
|
71
|
+
// .authentication being incompatible w/ UserSession
|
|
72
|
+
var options = __assign({ username: data.item.owner }, requestOptions);
|
|
73
|
+
return getUser(options)
|
|
74
|
+
.then(function (ownerUser) {
|
|
75
|
+
stack.finish(opId);
|
|
76
|
+
return {
|
|
77
|
+
data: __assign(__assign({}, data), { ownerUser: ownerUser }),
|
|
78
|
+
stack: stack,
|
|
79
|
+
requestOptions: requestOptions,
|
|
80
|
+
};
|
|
81
|
+
})
|
|
82
|
+
.catch(function (error) { return handleEnrichmentError(error, input, opId); });
|
|
83
|
+
};
|
|
84
|
+
var enrichData = function (input) {
|
|
85
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
86
|
+
var opId = stack.start("enrichData");
|
|
87
|
+
return getItemData(data.item.id, requestOptions)
|
|
88
|
+
.then(function (itemData) {
|
|
89
|
+
stack.finish(opId);
|
|
90
|
+
return { data: __assign(__assign({}, data), { data: itemData }), stack: stack, requestOptions: requestOptions };
|
|
91
|
+
})
|
|
92
|
+
.catch(function (error) { return handleEnrichmentError(error, input, opId); });
|
|
93
|
+
};
|
|
94
|
+
var enrichServer = function (input) {
|
|
95
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
96
|
+
var opId = stack.start("enrichServer");
|
|
97
|
+
var url = data.item.url;
|
|
98
|
+
var options = __assign(__assign({}, requestOptions), { url: url });
|
|
99
|
+
return getService(options)
|
|
100
|
+
.then(function (server) {
|
|
101
|
+
stack.finish(opId);
|
|
102
|
+
return { data: __assign(__assign({}, data), { server: server }), stack: stack, requestOptions: requestOptions };
|
|
103
|
+
})
|
|
104
|
+
.catch(function (error) { return handleEnrichmentError(error, input, opId); });
|
|
105
|
+
};
|
|
106
|
+
var enrichLayers = function (input) {
|
|
107
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
108
|
+
var opId = stack.start("enrichLayers");
|
|
109
|
+
var url = data.item.url;
|
|
110
|
+
var options = __assign(__assign({}, requestOptions), { url: url });
|
|
111
|
+
return (getAllLayersAndTables(options)
|
|
112
|
+
// merge layers and tables into a single array
|
|
113
|
+
// and filter out any group layers
|
|
114
|
+
.then(function (response) {
|
|
115
|
+
var merged = __spreadArrays(response.layers, response.tables);
|
|
116
|
+
return merged.filter(function (layer) { return layer.type !== "Group Layer"; });
|
|
117
|
+
})
|
|
118
|
+
.then(function (layers) {
|
|
119
|
+
stack.finish(opId);
|
|
120
|
+
return { data: __assign(__assign({}, data), { layers: layers }), stack: stack, requestOptions: requestOptions };
|
|
121
|
+
})
|
|
122
|
+
.catch(function (error) { return handleEnrichmentError(error, input, opId); }));
|
|
123
|
+
};
|
|
124
|
+
// add the error to the content.errors,
|
|
125
|
+
// log current stack operation as finished with an error
|
|
126
|
+
// and return output that can be piped into the next operation
|
|
127
|
+
var handleEnrichmentError = function (error, input, opId) {
|
|
128
|
+
var data = input.data, stack = input.stack, requestOptions = input.requestOptions;
|
|
129
|
+
stack.finish(opId, { error: error });
|
|
130
|
+
var message = typeof error === "string"
|
|
131
|
+
? /* istanbul ignore next our tests only throw Error objects */
|
|
132
|
+
error
|
|
133
|
+
: error.message;
|
|
134
|
+
var errors = data.errors || [];
|
|
135
|
+
errors.push({
|
|
136
|
+
// NOTE: for now we just return the message and type "Other"
|
|
137
|
+
// but we could later introspect for HTTP or AGO errors
|
|
138
|
+
// and/or return the status code if available
|
|
139
|
+
type: "Other",
|
|
140
|
+
message: message,
|
|
141
|
+
});
|
|
142
|
+
return { data: __assign(__assign({}, data), { errors: errors }), stack: stack, requestOptions: requestOptions };
|
|
143
|
+
};
|
|
144
|
+
var enrichmentOperations = {
|
|
145
|
+
groupIds: enrichGroupIds,
|
|
146
|
+
metadata: enrichMetadata,
|
|
147
|
+
ownerUser: enrichOwnerUser,
|
|
148
|
+
// TOOD: org
|
|
149
|
+
data: enrichData,
|
|
150
|
+
server: enrichServer,
|
|
151
|
+
layers: enrichLayers,
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Fetch enrichments for an item
|
|
155
|
+
* @param item
|
|
156
|
+
* @param enrichments the list of enrichments to fetch
|
|
157
|
+
* @param requestOptions
|
|
158
|
+
* @returns an object with the item and enrichments
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
export var fetchItemEnrichments = function (item, enrichments, requestOptions) {
|
|
162
|
+
// create a pipeline of enrichment operations
|
|
163
|
+
var operations = enrichments.reduce(function (ops, enrichment) {
|
|
164
|
+
var operation = enrichmentOperations[enrichment];
|
|
165
|
+
// only include the enrichments that we know how to fetch
|
|
166
|
+
operation && ops.push(operation);
|
|
167
|
+
return ops;
|
|
168
|
+
}, []);
|
|
169
|
+
var pipeline = createOperationPipeline(operations);
|
|
170
|
+
// execute pipeline and return the item and enrichments
|
|
171
|
+
return pipeline({
|
|
172
|
+
data: { item: item },
|
|
173
|
+
stack: new OperationStack(),
|
|
174
|
+
requestOptions: requestOptions,
|
|
175
|
+
}).then(function (output) { return output.data; });
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=_enrichments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_enrichments.js","sourceRoot":"","sources":["../../../src/items/_enrichments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchHubEnrichmentsById = exports.fetchHubEnrichmentsBySlug = exports.getContentEnrichments = void 0;
|
|
4
|
+
const request_1 = require("../request");
|
|
5
|
+
const urls_1 = require("../urls");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
const compose_1 = require("./compose");
|
|
9
|
+
const get_family_1 = require("./get-family");
|
|
10
|
+
const slugs_1 = require("./slugs");
|
|
11
|
+
// TODO: need to fetch data for client-side layer views as well
|
|
12
|
+
// determine if we should fetch data for an item
|
|
13
|
+
const shouldFetchData = (item) => {
|
|
14
|
+
const type = compose_1.normalizeItemType(item);
|
|
15
|
+
const family = get_family_1.getFamily(type);
|
|
16
|
+
const dataFamilies = ["template", "solution"];
|
|
17
|
+
const dataTypes = ["Web Map", "Web Scene"];
|
|
18
|
+
return utils_1.includes(dataFamilies, family) || utils_1.includes(dataTypes, type);
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* get the default list of enrichments to fetch for content
|
|
22
|
+
* @param item
|
|
23
|
+
* @returns the default list of enrichments to fetch for content
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
exports.getContentEnrichments = (item) => {
|
|
27
|
+
// we fetch these enrichments for all content types
|
|
28
|
+
const enrichments = [
|
|
29
|
+
"groupIds",
|
|
30
|
+
"metadata",
|
|
31
|
+
"ownerUser",
|
|
32
|
+
"org",
|
|
33
|
+
];
|
|
34
|
+
// we only fetch data for certain content
|
|
35
|
+
if (shouldFetchData(item)) {
|
|
36
|
+
enrichments.push("data");
|
|
37
|
+
}
|
|
38
|
+
// we fetch server and layers for map and feature services
|
|
39
|
+
return urls_1.isMapOrFeatureServerUrl(item.url)
|
|
40
|
+
? enrichments.concat("server", "layers")
|
|
41
|
+
: enrichments;
|
|
42
|
+
};
|
|
43
|
+
// build up request options to only include the above enrichments
|
|
44
|
+
// that we fetch from the Hub API, and to optionally filter by slug
|
|
45
|
+
const getHubEnrichmentsOptions = (requestOptions, slug) => {
|
|
46
|
+
const opts = util_1.cloneObject(requestOptions);
|
|
47
|
+
opts.params = Object.assign(Object.assign({}, opts.params), { "fields[datasets]": "slug,boundary,extent,searchDescription,statistics" });
|
|
48
|
+
if (slug) {
|
|
49
|
+
opts.params["filter[slug]"] = slug;
|
|
50
|
+
}
|
|
51
|
+
return opts;
|
|
52
|
+
};
|
|
53
|
+
// extract the ids and enrichments from the Hub API response
|
|
54
|
+
const getDatasetEnrichments = (dataset) => {
|
|
55
|
+
const { itemId, layerId: layerIdString } = slugs_1.parseDatasetId(dataset.id);
|
|
56
|
+
const layerId = layerIdString && parseInt(layerIdString, 10);
|
|
57
|
+
const { slug, boundary, extent, searchDescription, statistics } = dataset.attributes;
|
|
58
|
+
return {
|
|
59
|
+
itemId,
|
|
60
|
+
layerId,
|
|
61
|
+
slug,
|
|
62
|
+
boundary,
|
|
63
|
+
extent,
|
|
64
|
+
searchDescription,
|
|
65
|
+
statistics,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* fetch enrichment from the Hub API by slug
|
|
70
|
+
* @param slug
|
|
71
|
+
* @param requestOptions
|
|
72
|
+
* @returns enrichments from the Hub API (slug, boundary, statistic, etc)
|
|
73
|
+
* @private
|
|
74
|
+
*/
|
|
75
|
+
exports.fetchHubEnrichmentsBySlug = async (slug, requestOptions) => {
|
|
76
|
+
const response = await request_1.hubApiRequest(`/datasets`, getHubEnrichmentsOptions(requestOptions, slug));
|
|
77
|
+
return getDatasetEnrichments(response.data[0]);
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* fetch enrichment from the Hub API by id
|
|
81
|
+
* @param slug
|
|
82
|
+
* @param requestOptions
|
|
83
|
+
* @returns enrichments from the Hub API (slug, boundary, statistic, etc)
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
exports.fetchHubEnrichmentsById = async (hubId, requestOptions) => {
|
|
87
|
+
const response = await request_1.hubApiRequest(`/datasets/${hubId}`, getHubEnrichmentsOptions(requestOptions));
|
|
88
|
+
return getDatasetEnrichments(response.data);
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=_fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_fetch.js","sourceRoot":"","sources":["../../../src/content/_fetch.ts"],"names":[],"mappings":"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"}
|