@esri/hub-common 9.25.4 → 9.25.7

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.
@@ -14,8 +14,22 @@ const compose_1 = require("./compose");
14
14
  const hasFeatures = (contentType) => ["Feature Layer", "Table"].includes(contentType);
15
15
  const maybeFetchLayerEnrichments = async (itemAndEnrichments, options) => {
16
16
  // determine if this is a client-side feature layer view
17
- const { item, data, layers } = itemAndEnrichments;
18
- const layer = layers && compose_1.getItemLayer(item, layers, options && options.layerId);
17
+ const { item, data } = itemAndEnrichments;
18
+ let { layers } = itemAndEnrichments;
19
+ let layer = layers && compose_1.getItemLayer(item, layers, options && options.layerId);
20
+ // TODO: Remove once we stop supporting ArcGIS Servers below version 10.5.
21
+ // The /layers endpoint of some earlier servers return layers and tables
22
+ // without certain critical properties, such as type. If this is the case,
23
+ // fetch the fully hydrated target layer and stab it onto the layers array.
24
+ // See https://devtopia.esri.com/dc/hub/issues/3488 for more details
25
+ if (layer && !layer.type) {
26
+ const layerUrl = arcgis_rest_feature_layer_1.parseServiceUrl(item.url) + "/" + layer.id;
27
+ const getLayerOptions = Object.assign({ url: layerUrl }, options); // works whether options is defined or not
28
+ layer = await arcgis_rest_feature_layer_1.getLayer(getLayerOptions);
29
+ layers = layers.map((unhydratedLayer) => {
30
+ return unhydratedLayer.id === layer.id ? layer : unhydratedLayer;
31
+ });
32
+ }
19
33
  // TODO: add recordCount here too?
20
34
  const layerEnrichments = layer && compose_1.isLayerView(layer) && !data
21
35
  ? // NOTE: I'm not sure what conditions causes a layer view
@@ -26,11 +40,17 @@ const maybeFetchLayerEnrichments = async (itemAndEnrichments, options) => {
26
40
  : undefined;
27
41
  return Object.assign(Object.assign(Object.assign({}, itemAndEnrichments), layerEnrichments), {
28
42
  // merge error arrays
29
- errors: _array_1.maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]) });
43
+ errors: _array_1.maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]),
44
+ // Also remove once we stop supporting ArcGIS Servers below version 10.5
45
+ layers });
30
46
  };
31
47
  const fetchItemAndEnrichments = async (itemId, options) => {
32
48
  // fetch the item
33
49
  const item = await arcgis_rest_portal_1.getItem(itemId, options);
50
+ // The Hub Application expects the item url of proxied CSVs to point to the
51
+ // proxying feature service. Stabbing it on here maintains that consistency
52
+ // and also helps us fetch and calculate the correct reference layer
53
+ item.url = compose_1.getProxyUrl(item, options) || item.url;
34
54
  // fetch the enrichments
35
55
  const enrichmentsToFetch = (options === null || options === void 0 ? void 0 : options.enrichments) || _fetch_1.getContentEnrichments(item);
36
56
  const enrichments = await _enrichments_1.fetchItemEnrichments(item, enrichmentsToFetch, options);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/content/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/content/fetch.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,5 @@
1
- /**
2
- * Use this module for functions that do not need to be used by consumers (yet),
3
- * but may be shared between hub.js modules, and/or need to be tested
4
- * to get 100% coverage w/o writing cumbersome tests of higher level functions.
5
- *
6
- * Consuming will not be able to import these functions.
7
- *
8
- * It's probably a good pattern to add functions here first and then
9
- * move them to index.ts only when they are needed by a consumer.
10
- */
11
- import { ILayerDefinition, IFeatureServiceDefinition } from "@esri/arcgis-rest-feature-layer";
12
1
  import { IItem } from "@esri/arcgis-rest-portal";
13
- import { ISpatialReference } from "@esri/arcgis-rest-types";
2
+ import { ILayerDefinition, ISpatialReference } from "@esri/arcgis-rest-types";
14
3
  import { IHubContent } from "../core";
15
4
  import { IHubGeography, GeographyProvenance, IHubRequestOptions } from "../types";
16
5
  import { IHubAdditionalResource } from "../core/types/IHubAdditionalResource";
@@ -98,7 +87,7 @@ export declare const setContentBoundary: (content: IHubContent, boundary: Geogra
98
87
  ownerUser?: import("@esri/arcgis-rest-portal").IUser;
99
88
  org?: Partial<import("@esri/arcgis-rest-portal").IPortal>;
100
89
  errors?: import("../types").IEnrichmentErrorInfo[];
101
- server?: Partial<IFeatureServiceDefinition>;
90
+ server?: Partial<import("@esri/arcgis-rest-feature-layer").IFeatureServiceDefinition>;
102
91
  layers?: Partial<ILayerDefinition>[];
103
92
  recordCount?: number;
104
93
  created: number;
@@ -242,6 +231,16 @@ interface IAGOAdditionalResource {
242
231
  * @private
243
232
  */
244
233
  export declare const getAdditionalResources: (item: IItem, metadata?: any, requestOptions?: IHubRequestOptions) => IHubAdditionalResource[];
234
+ /**
235
+ * @private
236
+ *
237
+ * Extracts additional resources from formal item metadata.
238
+ * If none are available, null is returned.
239
+ *
240
+ * @param metadata the formal item metadata
241
+ * @returns an array of all additional resources, or null
242
+ */
243
+ export declare const extractRawResources: (metadata?: any) => IAGOAdditionalResource[];
245
244
  /**
246
245
  * Determines whether a raw additional resource (i.e. extracted out of formal
247
246
  * metadata with no transformation) references the underlying service that backs
@@ -266,4 +265,22 @@ export declare const isDataSourceOfItem: (resource: IAGOAdditionalResource, item
266
265
  * @private
267
266
  */
268
267
  export declare const getAdditionalResourceUrl: (resource: IAGOAdditionalResource, item: IItem, requestOptions?: IHubRequestOptions) => string;
268
+ /**
269
+ * @private
270
+ *
271
+ * Contains fallback logic for determining a content's extent.
272
+ *
273
+ * The fallback priority is as follows:
274
+ * 1) item's extent (if valid bbox)
275
+ * 2) extent enrichment from the hub api (if coordinates are valid bbox)
276
+ * 3) layer's extent (if spatial reference is 4326)
277
+ *
278
+ * If none of these conditions are met, undefined is returned.
279
+ *
280
+ * @param item
281
+ * @param layer
282
+ * @param extentEnrichment
283
+ * @returns the correct extent in a bbox format, or undefined
284
+ */
285
+ export declare const determineExtent: (item: IItem, extentEnrichment?: any, layer?: ILayerDefinition) => any;
269
286
  export {};
@@ -1,5 +1,5 @@
1
1
  /* @preserve
2
- * @esri/hub-common - v9.25.3 - Thu Mar 31 2022 16:05:42 GMT+0000 (Coordinated Universal Time)
2
+ * @esri/hub-common - v9.25.6 - Mon Apr 04 2022 23:16:31 GMT+0000 (Coordinated Universal Time)
3
3
  * Copyright (c) 2022 Environmental Systems Research Institute, Inc.
4
4
  * Apache-2.0
5
5
  */
@@ -6172,6 +6172,26 @@
6172
6172
  return request(layersUrl, requestOptions);
6173
6173
  }
6174
6174
 
6175
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
6176
+ * Apache-2.0 */
6177
+ /**
6178
+ * ```js
6179
+ * import { getLayer } from '@esri/arcgis-rest-feature-layer';
6180
+ * //
6181
+ * getLayer({
6182
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0"
6183
+ * })
6184
+ * .then(response) // { name: "311", id: 0, ... }
6185
+ * ```
6186
+ * Layer (Feature Service) request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/layer-feature-service-.htm) for more information.
6187
+ *
6188
+ * @param options - Options for the request.
6189
+ * @returns A Promise that will resolve with the addFeatures response.
6190
+ */
6191
+ function getLayer(options) {
6192
+ return request(cleanUrl(options.url), options);
6193
+ }
6194
+
6175
6195
  /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
6176
6196
  * Apache-2.0 */
6177
6197
  /**
@@ -6629,17 +6649,49 @@
6629
6649
  * @private
6630
6650
  */
6631
6651
  var getAdditionalResources = function (item, metadata, requestOptions) {
6632
- var rawResources = getProp(metadata, "metadata.distInfo.distTranOps.onLineSrc") || null;
6633
- if (rawResources === null) {
6634
- return null;
6635
- }
6636
- // Coerce to array since rawResources will be an object if only 1 resource is available
6637
- rawResources = Array.isArray(rawResources) ? rawResources : [rawResources];
6638
- return rawResources.map(function (resource) { return ({
6639
- name: resource.orName,
6640
- url: getAdditionalResourceUrl(resource, item, requestOptions),
6641
- isDataSource: isDataSourceOfItem(resource, item),
6642
- }); });
6652
+ var rawResources = extractRawResources(metadata);
6653
+ return (rawResources &&
6654
+ rawResources.map(function (resource) { return ({
6655
+ name: resource.orName,
6656
+ url: getAdditionalResourceUrl(resource, item, requestOptions),
6657
+ isDataSource: isDataSourceOfItem(resource, item),
6658
+ }); }));
6659
+ };
6660
+ /**
6661
+ * @private
6662
+ *
6663
+ * Extracts additional resources from formal item metadata.
6664
+ * If none are available, null is returned.
6665
+ *
6666
+ * @param metadata the formal item metadata
6667
+ * @returns an array of all additional resources, or null
6668
+ */
6669
+ var extractRawResources = function (metadata) {
6670
+ var rawResources = [];
6671
+ // The property path to additional resources should be fairly simple.
6672
+ // In many cases, it's just `metadata.metadata.distInfo.distTranOps.onLineSrc`.
6673
+ // However, since `distInfo`, `distTranOps` and `onLineSrc` can be either
6674
+ // Objects OR Arrays, we have to do all this looping.
6675
+ castToArray(getProp(metadata, "metadata.distInfo") || []).forEach(function (distInfo) {
6676
+ castToArray(distInfo.distTranOps || []).forEach(function (distTranOps) {
6677
+ castToArray(distTranOps.onLineSrc || []).forEach(function (onLineSrc) {
6678
+ rawResources.push(onLineSrc);
6679
+ });
6680
+ });
6681
+ });
6682
+ return rawResources.length ? rawResources : null;
6683
+ };
6684
+ /**
6685
+ * @private
6686
+ *
6687
+ * Arrays are returned as-is.
6688
+ * Objects are wrapped into a 1 element array.
6689
+ *
6690
+ * @param objectOrArray
6691
+ * @returns the casted array
6692
+ */
6693
+ var castToArray = function (objectOrArray) {
6694
+ return Array.isArray(objectOrArray) ? objectOrArray : [objectOrArray];
6643
6695
  };
6644
6696
  /**
6645
6697
  * Determines whether a raw additional resource (i.e. extracted out of formal
@@ -6679,6 +6731,33 @@
6679
6731
  }
6680
6732
  return result;
6681
6733
  };
6734
+ /**
6735
+ * @private
6736
+ *
6737
+ * Contains fallback logic for determining a content's extent.
6738
+ *
6739
+ * The fallback priority is as follows:
6740
+ * 1) item's extent (if valid bbox)
6741
+ * 2) extent enrichment from the hub api (if coordinates are valid bbox)
6742
+ * 3) layer's extent (if spatial reference is 4326)
6743
+ *
6744
+ * If none of these conditions are met, undefined is returned.
6745
+ *
6746
+ * @param item
6747
+ * @param layer
6748
+ * @param extentEnrichment
6749
+ * @returns the correct extent in a bbox format, or undefined
6750
+ */
6751
+ var determineExtent = function (item, extentEnrichment, layer) {
6752
+ var itemExtent = isBBox(item.extent) ? item.extent : undefined;
6753
+ var extentEnrichmentCoordinates = isBBox(extentEnrichment === null || extentEnrichment === void 0 ? void 0 : extentEnrichment.coordinates)
6754
+ ? extentEnrichment.coordinates
6755
+ : undefined;
6756
+ var layerExtent = getProp(layer, "extent.spatialReference.wkid") === 4326
6757
+ ? extentToBBox(layer.extent)
6758
+ : undefined;
6759
+ return itemExtent || extentEnrichmentCoordinates || layerExtent;
6760
+ };
6682
6761
 
6683
6762
  var STANDARD_LICENSES = [
6684
6763
  {
@@ -7010,17 +7089,18 @@
7010
7089
  var layer = layers && layers.length === 1 ? layers[0] : undefined;
7011
7090
  return layer && layer.capabilities.includes("Query") ? layer : undefined;
7012
7091
  };
7013
- var shouldUseLayerInfo = function (layer, layers, url) {
7014
- return (layer &&
7092
+ var shouldUseLayerInfo = function (item, layer, layers, requestOptions) {
7093
+ return (!isProxiedCSV(item, requestOptions) &&
7094
+ layer &&
7015
7095
  layers &&
7016
7096
  layers.length > 1 &&
7017
7097
  // we use item info instead of layer info for single layer items
7018
- !getLayerIdFromUrl(url));
7098
+ !getLayerIdFromUrl(item.url));
7019
7099
  };
7020
7100
  // this logic adapted from hub-indexer's determineName(), see
7021
7101
  // https://github.com/ArcGIS/hub-indexer/blob/8f4dd6f928124c1f35dd02bc11bd996191ee1160/packages/duke/compose/common.js#L7-L34
7022
- var getContentName = function (item, layer, layers) {
7023
- return ((shouldUseLayerInfo(layer, layers, item.url)
7102
+ var getContentName = function (item, layer, layers, requestOptions) {
7103
+ return ((shouldUseLayerInfo(item, layer, layers, requestOptions)
7024
7104
  ? layer.name
7025
7105
  : item.title || item.name) || "").replace(/_/g, " ");
7026
7106
  };
@@ -7268,7 +7348,9 @@
7268
7348
  var getProxyUrl = function (item, requestOptions) {
7269
7349
  var result;
7270
7350
  if (isProxiedCSV(item, requestOptions)) {
7271
- result = getHubApiUrl(requestOptions) + "/datasets/" + item.id + "_0/FeatureServer/0";
7351
+ // Sometimes hubApiUrl includes /api/v3, sometimes it doesn't
7352
+ var baseUrl = getHubApiUrl(requestOptions).replace("/api/v3", "");
7353
+ result = baseUrl + "/datasets/" + item.id + "_0/FeatureServer/0";
7272
7354
  }
7273
7355
  return result;
7274
7356
  };
@@ -7408,6 +7490,18 @@
7408
7490
  var isLayerView = function (layer) {
7409
7491
  return layer.isView;
7410
7492
  };
7493
+ var determineHubId = function (item, layer, requestOptions) {
7494
+ // Proxied CSVs are one offs in that we don't index the proxied layer,
7495
+ // so we cannot append _0. Return item id instead.
7496
+ if (isProxiedCSV(item, requestOptions)) {
7497
+ return item.id;
7498
+ }
7499
+ return canUseHubApiForItem(item, requestOptions)
7500
+ ? layer
7501
+ ? item.id + "_" + layer.id
7502
+ : getItemHubId(item)
7503
+ : undefined;
7504
+ };
7411
7505
  /**
7412
7506
  * Compose a new content object out of an item, enrichments, and context
7413
7507
  * @param item
@@ -7420,15 +7514,12 @@
7420
7514
  // set common variables that we will use in the derived properties below
7421
7515
  var layer = getItemLayer(item, layers, options === null || options === void 0 ? void 0 : options.layerId);
7422
7516
  // NOTE: we only set hubId for public items in online
7423
- var hubId = canUseHubApiForItem(item, requestOptions)
7424
- ? layer
7425
- ? item.id + "_" + layer.id
7426
- : getItemHubId(item)
7427
- : undefined;
7517
+ var hubId = determineHubId(item, layer, requestOptions);
7428
7518
  var identifier = slug || hubId || item.id;
7429
7519
  // whether or not we should show layer info for name, description, etc
7430
- var name = getContentName(item, layer, layers);
7431
- var _layerDescription = shouldUseLayerInfo(layer, layers, item.url) && layer.description;
7520
+ var name = getContentName(item, layer, layers, requestOptions);
7521
+ var _layerDescription = shouldUseLayerInfo(item, layer, layers, requestOptions) &&
7522
+ layer.description;
7432
7523
  // so much depends on type
7433
7524
  var type = layer
7434
7525
  ? // use layer type (Feature Layer, Table, etc) for layer content
@@ -7507,15 +7598,8 @@
7507
7598
  control: item.itemControl || "view",
7508
7599
  };
7509
7600
  },
7510
- // TODO: do we want to add dataset extent logic as a getter here?
7511
7601
  get extent() {
7512
- return !isBBox(item.extent) && extent && isBBox(extent.coordinates)
7513
- ? // we fall back to the extent derived by the Hub API
7514
- // which prefers layer or service extents and ultimately
7515
- // falls back to the org's extent
7516
- extent.coordinates
7517
- : // prefer item extent
7518
- item.extent;
7602
+ return determineExtent(item, extent, layer);
7519
7603
  },
7520
7604
  // would require us to do client-side projection of server/layer extent
7521
7605
  get boundary() {
@@ -8994,31 +9078,45 @@
8994
9078
  return ["Feature Layer", "Table"].includes(contentType);
8995
9079
  };
8996
9080
  var maybeFetchLayerEnrichments = function (itemAndEnrichments, options) { return __awaiter(void 0, void 0, void 0, function () {
8997
- var item, data, layers, layer, layerEnrichments, _a;
9081
+ var item, data, layers, layer, layerUrl, getLayerOptions, layerEnrichments, _a;
8998
9082
  return __generator(this, function (_b) {
8999
9083
  switch (_b.label) {
9000
9084
  case 0:
9001
- item = itemAndEnrichments.item, data = itemAndEnrichments.data, layers = itemAndEnrichments.layers;
9085
+ item = itemAndEnrichments.item, data = itemAndEnrichments.data;
9086
+ layers = itemAndEnrichments.layers;
9002
9087
  layer = layers && getItemLayer(item, layers, options && options.layerId);
9003
- if (!(layer && isLayerView(layer) && !data)) return [3 /*break*/, 2];
9088
+ if (!(layer && !layer.type)) return [3 /*break*/, 2];
9089
+ layerUrl = parseServiceUrl(item.url) + "/" + layer.id;
9090
+ getLayerOptions = Object.assign({ url: layerUrl }, options);
9091
+ return [4 /*yield*/, getLayer(getLayerOptions)];
9092
+ case 1:
9093
+ layer = _b.sent();
9094
+ layers = layers.map(function (unhydratedLayer) {
9095
+ return unhydratedLayer.id === layer.id ? layer : unhydratedLayer;
9096
+ });
9097
+ _b.label = 2;
9098
+ case 2:
9099
+ if (!(layer && isLayerView(layer) && !data)) return [3 /*break*/, 4];
9004
9100
  // to store (at least part of) it's view definition in item data
9005
9101
  // it seems that most do not, but until we have a reliable signal
9006
9102
  // we just fetch the item data for all layer views
9007
9103
  return [4 /*yield*/, fetchItemEnrichments(item, ["data"], options)];
9008
- case 1:
9104
+ case 3:
9009
9105
  // to store (at least part of) it's view definition in item data
9010
9106
  // it seems that most do not, but until we have a reliable signal
9011
9107
  // we just fetch the item data for all layer views
9012
9108
  _a = _b.sent();
9013
- return [3 /*break*/, 3];
9014
- case 2:
9109
+ return [3 /*break*/, 5];
9110
+ case 4:
9015
9111
  _a = undefined;
9016
- _b.label = 3;
9017
- case 3:
9112
+ _b.label = 5;
9113
+ case 5:
9018
9114
  layerEnrichments = _a;
9019
9115
  return [2 /*return*/, __assign(__assign(__assign({}, itemAndEnrichments), layerEnrichments), {
9020
9116
  // merge error arrays
9021
- errors: maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]) })];
9117
+ errors: maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]),
9118
+ // Also remove once we stop supporting ArcGIS Servers below version 10.5
9119
+ layers: layers })];
9022
9120
  }
9023
9121
  });
9024
9122
  }); };
@@ -9029,6 +9127,10 @@
9029
9127
  case 0: return [4 /*yield*/, getItem(itemId, options)];
9030
9128
  case 1:
9031
9129
  item = _a.sent();
9130
+ // The Hub Application expects the item url of proxied CSVs to point to the
9131
+ // proxying feature service. Stabbing it on here maintains that consistency
9132
+ // and also helps us fetch and calculate the correct reference layer
9133
+ item.url = getProxyUrl(item, options) || item.url;
9032
9134
  enrichmentsToFetch = (options === null || options === void 0 ? void 0 : options.enrichments) || getContentEnrichments(item);
9033
9135
  return [4 /*yield*/, fetchItemEnrichments(item, enrichmentsToFetch, options)];
9034
9136
  case 2: