@esri/hub-common 9.7.3 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/es2017/content/_internal.js +64 -0
  2. package/dist/es2017/content/_internal.js.map +1 -0
  3. package/dist/es2017/{content.js → content/index.js} +32 -29
  4. package/dist/es2017/content/index.js.map +1 -0
  5. package/dist/es2017/extent.js +49 -16
  6. package/dist/es2017/extent.js.map +1 -1
  7. package/dist/es2017/objects/deep-set.js +1 -1
  8. package/dist/es2017/objects/deep-set.js.map +1 -1
  9. package/dist/es2017/sites/upgrade-site-schema.js +3 -0
  10. package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
  11. package/dist/esm/content/_internal.js +65 -0
  12. package/dist/esm/content/_internal.js.map +1 -0
  13. package/dist/esm/{content.js → content/index.js} +32 -29
  14. package/dist/esm/content/index.js.map +1 -0
  15. package/dist/esm/extent.js +44 -11
  16. package/dist/esm/extent.js.map +1 -1
  17. package/dist/esm/objects/deep-set.js +1 -1
  18. package/dist/esm/objects/deep-set.js.map +1 -1
  19. package/dist/esm/sites/upgrade-site-schema.js +3 -0
  20. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  21. package/dist/node/content/_internal.js +67 -0
  22. package/dist/node/content/_internal.js.map +1 -0
  23. package/dist/node/{content.js → content/index.js} +33 -30
  24. package/dist/node/content/index.js.map +1 -0
  25. package/dist/node/extent.js +50 -17
  26. package/dist/node/extent.js.map +1 -1
  27. package/dist/node/objects/deep-set.js +1 -1
  28. package/dist/node/objects/deep-set.js.map +1 -1
  29. package/dist/node/sites/upgrade-site-schema.js +3 -0
  30. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  31. package/dist/types/content/_internal.d.ts +91 -0
  32. package/dist/types/{content.d.ts → content/index.d.ts} +15 -4
  33. package/dist/types/extent.d.ts +11 -4
  34. package/dist/types/types.d.ts +4 -1
  35. package/dist/umd/common.umd.js +125 -34
  36. package/dist/umd/common.umd.js.map +1 -1
  37. package/dist/umd/common.umd.min.js +1 -1
  38. package/dist/umd/common.umd.min.js.map +1 -1
  39. package/package.json +2 -2
  40. package/dist/es2017/content.js.map +0 -1
  41. package/dist/esm/content.js.map +0 -1
  42. package/dist/node/content.js.map +0 -1
@@ -0,0 +1,64 @@
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 { bBoxToPolygon, isBBox } from "../extent";
12
+ /**
13
+ * Create a new content with updated boundary properties
14
+ * @param content original content
15
+ * @param boundary boundary provenance
16
+ * @returns
17
+ */
18
+ export const setContentBoundary = (content, boundary) => {
19
+ // update content's item and boundary
20
+ const properties = Object.assign(Object.assign({}, (content.item.properties || {})), { boundary });
21
+ const item = Object.assign(Object.assign({}, content.item), { properties });
22
+ const updated = Object.assign(Object.assign({}, content), { item });
23
+ return Object.assign(Object.assign({}, updated), { boundary: getContentBoundary(updated) });
24
+ };
25
+ /**
26
+ * Create a new content with updated extent and derived properties like boundary
27
+ * @param content original content
28
+ * @param extent new extent
29
+ * @returns a new content with the updated extent and boundary
30
+ */
31
+ export const setContentExtent = (content, extent) => {
32
+ // update content's item and extent
33
+ const item = Object.assign(Object.assign({}, content.item), { extent });
34
+ const updated = Object.assign(Object.assign({}, content), { item, extent });
35
+ // derive boundary from content properties
36
+ const boundary = getContentBoundary(updated);
37
+ return Object.assign(Object.assign({}, updated), { boundary });
38
+ };
39
+ const getContentBoundary = (content) => {
40
+ var _a;
41
+ const item = content.item;
42
+ const extent = item.extent;
43
+ const isValidItemExtent = isBBox(extent);
44
+ // user specified provenance is stored in item.properties
45
+ const provenance = ((_a = item.properties) === null || _a === void 0 ? void 0 : _a.boundary) ||
46
+ // but we default to item if the item has an extent
47
+ (isValidItemExtent ? "item" : undefined);
48
+ let geometry;
49
+ switch (provenance) {
50
+ case "item":
51
+ geometry = isValidItemExtent ? bBoxToPolygon(extent) : null;
52
+ break;
53
+ case "none":
54
+ geometry = null;
55
+ break;
56
+ // TODO: handle other provenances
57
+ }
58
+ // TODO: derive and return center
59
+ return {
60
+ provenance,
61
+ geometry,
62
+ };
63
+ };
64
+ //# sourceMappingURL=_internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_internal.js","sourceRoot":"","sources":["../../../src/content/_internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAoB,EACpB,QAA6B,EAC7B,EAAE;IACF,qCAAqC;IACrC,MAAM,UAAU,mCAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,KAAE,QAAQ,GAAE,CAAC;IACpE,MAAM,IAAI,mCAAQ,OAAO,CAAC,IAAI,KAAE,UAAU,GAAE,CAAC;IAC7C,MAAM,OAAO,mCAAQ,OAAO,KAAE,IAAI,GAAE,CAAC;IACrC,uCAAY,OAAO,KAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAG;AAC/D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAoB,EACpB,MAAY,EACC,EAAE;IACf,mCAAmC;IACnC,MAAM,IAAI,mCAAQ,OAAO,CAAC,IAAI,KAAE,MAAM,GAAE,CAAC;IACzC,MAAM,OAAO,mCAAQ,OAAO,KAAE,IAAI,EAAE,MAAM,GAAE,CAAC;IAC7C,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,uCAAY,OAAO,KAAE,QAAQ,IAAG;AAClC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAiB,EAAE;;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,yDAAyD;IACzD,MAAM,UAAU,GACd,OAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ;QACzB,mDAAmD;QACnD,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC;IACb,QAAQ,UAAU,EAAE;QAClB,KAAK,MAAM;YACT,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM;QACR,KAAK,MAAM;YACT,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,iCAAiC;KAClC;IACD,iCAAiC;IACjC,OAAO;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
- import { collections } from "./collections";
2
- import { categories as allCategories, isDownloadable } from "./categories";
3
- import { createExtent, isExtentCoordinateArray } from "./extent";
4
- import { includes, isGuid } from "./utils";
5
- import { getProp } from "./objects";
6
- import { getStructuredLicense } from "./items/get-structured-license";
7
- import { getServiceTypeFromUrl } from "./urls";
1
+ import { collections } from "../collections";
2
+ import { categories as allCategories, isDownloadable } from "../categories";
3
+ import { isBBox } from "../extent";
4
+ import { includes, isGuid } from "../utils";
5
+ import { getProp } from "../objects";
6
+ import { getStructuredLicense } from "../items/get-structured-license";
7
+ import { getServiceTypeFromUrl } from "../urls";
8
+ import { setContentExtent } from "./_internal";
8
9
  function collectionToFamily(collection) {
9
10
  const overrides = {
10
11
  other: "content",
@@ -12,13 +13,6 @@ function collectionToFamily(collection) {
12
13
  };
13
14
  return overrides[collection] || collection;
14
15
  }
15
- function itemExtentToBoundary(extent) {
16
- return (extent &&
17
- extent.length && {
18
- // TODO: center?
19
- geometry: createExtent(extent[0][0], extent[0][1], extent[1][0], extent[1][1]),
20
- });
21
- }
22
16
  const cache = {};
23
17
  // TODO: remove this at next breaking version
24
18
  /**
@@ -411,7 +405,6 @@ export function itemToContent(item) {
411
405
  metrics: properties && properties.metrics,
412
406
  isDownloadable: isDownloadable(item),
413
407
  // default boundary from item.extent
414
- boundary: itemExtentToBoundary(item.extent),
415
408
  license: { name: "Custom License", description: item.accessInformation },
416
409
  // dates and sources we will enrich these later...
417
410
  createdDate,
@@ -422,7 +415,7 @@ export function itemToContent(item) {
422
415
  updatedDateSource: "item.modified",
423
416
  structuredLicense: getStructuredLicense(item.licenseInfo),
424
417
  });
425
- return setContentType(content, item.type);
418
+ return setContentExtent(setContentType(content, item.type), item.extent);
426
419
  }
427
420
  /**
428
421
  * Convert a Hub API dataset resource to Hub Content
@@ -465,9 +458,7 @@ export function datasetToContent(dataset) {
465
458
  content.errors = errors;
466
459
  // common enrichments
467
460
  content.boundary = boundary;
468
- if (!isExtentCoordinateArray(item.extent) &&
469
- extent &&
470
- isExtentCoordinateArray(extent.coordinates)) {
461
+ if (!isBBox(item.extent) && extent && isBBox(extent.coordinates)) {
471
462
  // we fall back to the extent derived by the API
472
463
  // which prefers layer or service extents and ultimately
473
464
  // falls back to the org's extent
@@ -613,7 +604,7 @@ export function datasetToItem(dataset) {
613
604
  };
614
605
  }
615
606
  /**
616
- * retunrs a new content that has the specified type and
607
+ * returns a new content that has the specified type and
617
608
  * and updated related properties like normalizedType, family, etc
618
609
  * @param content orignal content
619
610
  * @param type new type
@@ -621,8 +612,9 @@ export function datasetToItem(dataset) {
621
612
  */
622
613
  export const setContentType = (content, type) => {
623
614
  // get family and normalized type based on new type
624
- const family = getFamily(type);
625
615
  const normalizedType = normalizeItemType(Object.assign(Object.assign({}, content.item), { type }));
616
+ const family = getFamily(normalizedType);
617
+ // TODO: don't we need to update content.item.type too?
626
618
  const updated = Object.assign(Object.assign({}, content), { type, family, normalizedType });
627
619
  // update the relative URL to the content
628
620
  // which is based on type and family
@@ -631,7 +623,7 @@ export const setContentType = (content, type) => {
631
623
  });
632
624
  };
633
625
  /**
634
- * retunrs a new content that has the specified hubId and updated identifier
626
+ * returns a new content that has the specified hubId and updated identifier
635
627
  * @param content orignal content
636
628
  * @param hubId new hubId
637
629
  * @returns new content
@@ -648,19 +640,30 @@ export const setContentHubId = (content, hubId) => {
648
640
  });
649
641
  };
650
642
  /**
651
- * append the absolute URL to the content on the site
652
- * also updates the relative URL in case the
643
+ * Calculates the relative and absolute urls for a given content on a specific site
644
+ *
653
645
  * @param content
654
646
  * @param siteModel
655
- * @returns
647
+ * @returns relative and absolute urls
656
648
  */
657
- export const setContentSiteUrls = (content, siteModel) => {
658
- // recompute relative URL using a site specific identifier
649
+ export const getContentSiteUrls = (content, siteModel) => {
650
+ // compute relative URL using a site specific identifier
659
651
  const siteIdentifier = getContentIdentifier(content, siteModel);
660
652
  const relative = getContentRelativeUrl(content, siteIdentifier);
661
653
  // get the absolute URL to this content on the site
662
654
  const siteUrl = getProp(siteModel, "item.url").replace(/\/$/, "");
663
- const site = `${siteUrl}${relative}`;
655
+ const absolute = `${siteUrl}${relative}`;
656
+ return { relative, absolute };
657
+ };
658
+ /**
659
+ * append the absolute URL to the content on the site
660
+ * also updates the relative URL in case the
661
+ * @param content
662
+ * @param siteModel
663
+ * @returns
664
+ */
665
+ export const setContentSiteUrls = (content, siteModel) => {
666
+ const { relative, absolute: site } = getContentSiteUrls(content, siteModel);
664
667
  // append the updated URLs to a new content
665
668
  return appendContentUrls(content, {
666
669
  relative,
@@ -730,4 +733,4 @@ const getSolutionUrl = (content) => {
730
733
  // instead of hardcoding the types here.
731
734
  // TODO: should this be based on normalizedType instead?
732
735
  const isPageContent = (content) => includes(["Hub Page", "Site Page"], content.type);
733
- //# sourceMappingURL=content.js.map
736
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content/index.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ export function createExtent(xmin, ymin, xmax, ymax, wkid = 4326) {
8
8
  ymax,
9
9
  // type: 'extent',
10
10
  spatialReference: {
11
- wkid
12
- }
11
+ wkid,
12
+ },
13
13
  };
14
14
  }
15
15
  /**
@@ -17,7 +17,10 @@ export function createExtent(xmin, ymin, xmax, ymax, wkid = 4326) {
17
17
  * @param envelope extent
18
18
  */
19
19
  export function extentToBBox(envelope) {
20
- return [[envelope.xmin, envelope.ymin], [envelope.xmax, envelope.ymax]];
20
+ return [
21
+ [envelope.xmin, envelope.ymin],
22
+ [envelope.xmax, envelope.ymax],
23
+ ];
21
24
  }
22
25
  export const GLOBAL_EXTENT = {
23
26
  xmin: -180,
@@ -25,8 +28,8 @@ export const GLOBAL_EXTENT = {
25
28
  xmax: 180,
26
29
  ymax: 90,
27
30
  spatialReference: {
28
- wkid: 4326
29
- }
31
+ wkid: 4326,
32
+ },
30
33
  };
31
34
  /**
32
35
  * Gets the geographic extent for an org
@@ -47,7 +50,7 @@ export function getGeographicOrgExtent(hubRequestOptions) {
47
50
  // geometry params...
48
51
  const geometryParam = {
49
52
  geometryType: "esriGeometryEnvelope",
50
- geometries: [orgExtent]
53
+ geometries: [orgExtent],
51
54
  };
52
55
  const options = {
53
56
  httpMethod: "POST",
@@ -57,15 +60,15 @@ export function getGeographicOrgExtent(hubRequestOptions) {
57
60
  transformation: "",
58
61
  inSR: orgExtent.spatialReference.wkid,
59
62
  outSR: 4326,
60
- f: "json"
61
- }
63
+ f: "json",
64
+ },
62
65
  };
63
66
  // add in auth if it's passed
64
67
  if (hubRequestOptions.authentication) {
65
68
  options.authentication = hubRequestOptions.authentication;
66
69
  }
67
70
  return request(url, options)
68
- .then(response => {
71
+ .then((response) => {
69
72
  const geom = response.geometries[0];
70
73
  return {
71
74
  xmin: geom.xmin,
@@ -73,11 +76,11 @@ export function getGeographicOrgExtent(hubRequestOptions) {
73
76
  xmax: geom.xmax,
74
77
  ymax: geom.ymax,
75
78
  spatialReference: {
76
- wkid: 4326
77
- }
79
+ wkid: 4326,
80
+ },
78
81
  };
79
82
  })
80
- .catch(ex => {
83
+ .catch((ex) => {
81
84
  return GLOBAL_EXTENT;
82
85
  });
83
86
  }
@@ -86,15 +89,26 @@ export function getGeographicOrgExtent(hubRequestOptions) {
86
89
  * @param {IHubRequestOptions} hubRequestOptions
87
90
  */
88
91
  export function getOrgExtentAsBBox(hubRequestOptions) {
89
- return getGeographicOrgExtent(hubRequestOptions).then(extent => extentToBBox(extent));
92
+ return getGeographicOrgExtent(hubRequestOptions).then((extent) => extentToBBox(extent));
90
93
  }
91
- export function isExtentCoordinateArray(extent) {
94
+ /**
95
+ * checks if the extent is a valid BBox (2 element array of coordinate pair arrays)
96
+ * @param extent
97
+ * @returns
98
+ */
99
+ export const isBBox = (extent) => {
92
100
  return (Array.isArray(extent) &&
93
101
  Array.isArray(extent[0]) &&
94
102
  Array.isArray(extent[1]));
103
+ };
104
+ export function isExtentCoordinateArray(extent) {
105
+ /* tslint:disable no-console */
106
+ console.warn("DEPRECATED: use isBBox() instead");
107
+ /* tslint:enable no-console */
108
+ return isBBox(extent);
95
109
  }
96
110
  function isExtentJSON(extent) {
97
- return ["xmin", "ymin", "xmax", "ymax"].every(key => typeof extent[key] === "number");
111
+ return ["xmin", "ymin", "xmax", "ymax"].every((key) => typeof extent[key] === "number");
98
112
  }
99
113
  /**
100
114
  * Check if the given extent is in a known format
@@ -103,6 +117,25 @@ function isExtentJSON(extent) {
103
117
  */
104
118
  export function isValidExtent(extent) {
105
119
  return (!!extent &&
106
- [isExtentCoordinateArray, isExtentJSON].some(test => test(extent)));
120
+ [isExtentCoordinateArray, isExtentJSON].some((test) => test(extent)));
107
121
  }
122
+ export const bBoxToPolygon = (bBox) => {
123
+ const [[xmin, ymin], [xmax, ymax]] = bBox;
124
+ const rings = [
125
+ [
126
+ [xmin, ymin],
127
+ [xmax, ymin],
128
+ [xmax, ymax],
129
+ [xmin, ymax],
130
+ [xmin, ymin],
131
+ ],
132
+ ];
133
+ const wkid = 4326;
134
+ return {
135
+ rings,
136
+ spatialReference: {
137
+ wkid,
138
+ },
139
+ };
140
+ };
108
141
  //# sourceMappingURL=extent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extent.js","sourceRoot":"","sources":["../../src/extent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extent.js","sourceRoot":"","sources":["../../src/extent.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export function deepSet(target, path, value = {}) {
10
10
  let worker = target;
11
11
  const lastIdx = parts.length - 1;
12
12
  parts.forEach((p, idx) => {
13
- if (!worker.hasOwnProperty(p) || worker[p] === null) {
13
+ if (!worker.hasOwnProperty(p) || worker[p] == null) {
14
14
  if (idx === lastIdx) {
15
15
  worker[p] = value;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deep-set.js","sourceRoot":"","sources":["../../../src/objects/deep-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,MAA2B,EAC3B,IAAY,EACZ,QAAa,EAAE;IAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACnD,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACnB;iBAAM;gBACL,yBAAyB;gBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aAChB;SACF;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9D,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACnB;SACF;QACD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"deep-set.js","sourceRoot":"","sources":["../../../src/objects/deep-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,MAA2B,EAC3B,IAAY,EACZ,QAAa,EAAE;IAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAClD,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACnB;iBAAM;gBACL,yBAAyB;gBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aAChB;SACF;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9D,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACnB;SACF;QACD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -22,6 +22,9 @@ export function upgradeSiteSchema(model) {
22
22
  model = _purgeNonGuidsFromCatalog(model);
23
23
  model = _ensureTelemetry(model);
24
24
  model = _migrateFeedConfig(model);
25
+ // WARNING - If you are writing a site schema migration,
26
+ // you probably need to apply it to site drafts as well!
27
+ // See https://github.com/Esri/hub.js/issues/498 for more details.
25
28
  return model;
26
29
  }
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-site-schema.js","sourceRoot":"","sources":["../../../src/sites/upgrade-site-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,KAAK,mBAAmB,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,sCAAsC;QACtC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,GAAG,gBAAgB,CAAS,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;KACd;AACH,CAAC"}
1
+ {"version":3,"file":"upgrade-site-schema.js","sourceRoot":"","sources":["../../../src/sites/upgrade-site-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,KAAK,mBAAmB,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,sCAAsC;QACtC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,GAAG,gBAAgB,CAAS,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,wDAAwD;QACxD,wDAAwD;QACxD,kEAAkE;QAClE,OAAO,KAAK,CAAC;KACd;AACH,CAAC"}
@@ -0,0 +1,65 @@
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 { __assign } from "tslib";
12
+ import { bBoxToPolygon, isBBox } from "../extent";
13
+ /**
14
+ * Create a new content with updated boundary properties
15
+ * @param content original content
16
+ * @param boundary boundary provenance
17
+ * @returns
18
+ */
19
+ export var setContentBoundary = function (content, boundary) {
20
+ // update content's item and boundary
21
+ var properties = __assign(__assign({}, (content.item.properties || {})), { boundary: boundary });
22
+ var item = __assign(__assign({}, content.item), { properties: properties });
23
+ var updated = __assign(__assign({}, content), { item: item });
24
+ return __assign(__assign({}, updated), { boundary: getContentBoundary(updated) });
25
+ };
26
+ /**
27
+ * Create a new content with updated extent and derived properties like boundary
28
+ * @param content original content
29
+ * @param extent new extent
30
+ * @returns a new content with the updated extent and boundary
31
+ */
32
+ export var setContentExtent = function (content, extent) {
33
+ // update content's item and extent
34
+ var item = __assign(__assign({}, content.item), { extent: extent });
35
+ var updated = __assign(__assign({}, content), { item: item, extent: extent });
36
+ // derive boundary from content properties
37
+ var boundary = getContentBoundary(updated);
38
+ return __assign(__assign({}, updated), { boundary: boundary });
39
+ };
40
+ var getContentBoundary = function (content) {
41
+ var _a;
42
+ var item = content.item;
43
+ var extent = item.extent;
44
+ var isValidItemExtent = isBBox(extent);
45
+ // user specified provenance is stored in item.properties
46
+ var provenance = ((_a = item.properties) === null || _a === void 0 ? void 0 : _a.boundary) ||
47
+ // but we default to item if the item has an extent
48
+ (isValidItemExtent ? "item" : undefined);
49
+ var geometry;
50
+ switch (provenance) {
51
+ case "item":
52
+ geometry = isValidItemExtent ? bBoxToPolygon(extent) : null;
53
+ break;
54
+ case "none":
55
+ geometry = null;
56
+ break;
57
+ // TODO: handle other provenances
58
+ }
59
+ // TODO: derive and return center
60
+ return {
61
+ provenance: provenance,
62
+ geometry: geometry,
63
+ };
64
+ };
65
+ //# sourceMappingURL=_internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_internal.js","sourceRoot":"","sources":["../../../src/content/_internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;AAQH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAChC,OAAoB,EACpB,QAA6B;IAE7B,qCAAqC;IACrC,IAAM,UAAU,yBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,KAAE,QAAQ,UAAA,GAAE,CAAC;IACpE,IAAM,IAAI,yBAAQ,OAAO,CAAC,IAAI,KAAE,UAAU,YAAA,GAAE,CAAC;IAC7C,IAAM,OAAO,yBAAQ,OAAO,KAAE,IAAI,MAAA,GAAE,CAAC;IACrC,6BAAY,OAAO,KAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAG;AAC/D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAC9B,OAAoB,EACpB,MAAY;IAEZ,mCAAmC;IACnC,IAAM,IAAI,yBAAQ,OAAO,CAAC,IAAI,KAAE,MAAM,QAAA,GAAE,CAAC;IACzC,IAAM,OAAO,yBAAQ,OAAO,KAAE,IAAI,MAAA,EAAE,MAAM,QAAA,GAAE,CAAC;IAC7C,0CAA0C;IAC1C,IAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,6BAAY,OAAO,KAAE,QAAQ,UAAA,IAAG;AAClC,CAAC,CAAC;AAEF,IAAM,kBAAkB,GAAG,UAAC,OAAoB;;IAC9C,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,yDAAyD;IACzD,IAAM,UAAU,GACd,OAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ;QACzB,mDAAmD;QACnD,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC;IACb,QAAQ,UAAU,EAAE;QAClB,KAAK,MAAM;YACT,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM;QACR,KAAK,MAAM;YACT,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,iCAAiC;KAClC;IACD,iCAAiC;IACjC,OAAO;QACL,UAAU,YAAA;QACV,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { __assign, __spreadArrays } from "tslib";
2
- import { collections } from "./collections";
3
- import { categories as allCategories, isDownloadable } from "./categories";
4
- import { createExtent, isExtentCoordinateArray } from "./extent";
5
- import { includes, isGuid } from "./utils";
6
- import { getProp } from "./objects";
7
- import { getStructuredLicense } from "./items/get-structured-license";
8
- import { getServiceTypeFromUrl } from "./urls";
2
+ import { collections } from "../collections";
3
+ import { categories as allCategories, isDownloadable } from "../categories";
4
+ import { isBBox } from "../extent";
5
+ import { includes, isGuid } from "../utils";
6
+ import { getProp } from "../objects";
7
+ import { getStructuredLicense } from "../items/get-structured-license";
8
+ import { getServiceTypeFromUrl } from "../urls";
9
+ import { setContentExtent } from "./_internal";
9
10
  function collectionToFamily(collection) {
10
11
  var overrides = {
11
12
  other: "content",
@@ -13,13 +14,6 @@ function collectionToFamily(collection) {
13
14
  };
14
15
  return overrides[collection] || collection;
15
16
  }
16
- function itemExtentToBoundary(extent) {
17
- return (extent &&
18
- extent.length && {
19
- // TODO: center?
20
- geometry: createExtent(extent[0][0], extent[0][1], extent[1][0], extent[1][1]),
21
- });
22
- }
23
17
  var cache = {};
24
18
  // TODO: remove this at next breaking version
25
19
  /**
@@ -419,7 +413,6 @@ export function itemToContent(item) {
419
413
  metrics: properties && properties.metrics,
420
414
  isDownloadable: isDownloadable(item),
421
415
  // default boundary from item.extent
422
- boundary: itemExtentToBoundary(item.extent),
423
416
  license: { name: "Custom License", description: item.accessInformation },
424
417
  // dates and sources we will enrich these later...
425
418
  createdDate: createdDate,
@@ -430,7 +423,7 @@ export function itemToContent(item) {
430
423
  updatedDateSource: "item.modified",
431
424
  structuredLicense: getStructuredLicense(item.licenseInfo),
432
425
  });
433
- return setContentType(content, item.type);
426
+ return setContentExtent(setContentType(content, item.type), item.extent);
434
427
  }
435
428
  /**
436
429
  * Convert a Hub API dataset resource to Hub Content
@@ -473,9 +466,7 @@ export function datasetToContent(dataset) {
473
466
  content.errors = errors;
474
467
  // common enrichments
475
468
  content.boundary = boundary;
476
- if (!isExtentCoordinateArray(item.extent) &&
477
- extent &&
478
- isExtentCoordinateArray(extent.coordinates)) {
469
+ if (!isBBox(item.extent) && extent && isBBox(extent.coordinates)) {
479
470
  // we fall back to the extent derived by the API
480
471
  // which prefers layer or service extents and ultimately
481
472
  // falls back to the org's extent
@@ -621,7 +612,7 @@ export function datasetToItem(dataset) {
621
612
  };
622
613
  }
623
614
  /**
624
- * retunrs a new content that has the specified type and
615
+ * returns a new content that has the specified type and
625
616
  * and updated related properties like normalizedType, family, etc
626
617
  * @param content orignal content
627
618
  * @param type new type
@@ -629,8 +620,9 @@ export function datasetToItem(dataset) {
629
620
  */
630
621
  export var setContentType = function (content, type) {
631
622
  // get family and normalized type based on new type
632
- var family = getFamily(type);
633
623
  var normalizedType = normalizeItemType(__assign(__assign({}, content.item), { type: type }));
624
+ var family = getFamily(normalizedType);
625
+ // TODO: don't we need to update content.item.type too?
634
626
  var updated = __assign(__assign({}, content), { type: type, family: family, normalizedType: normalizedType });
635
627
  // update the relative URL to the content
636
628
  // which is based on type and family
@@ -639,7 +631,7 @@ export var setContentType = function (content, type) {
639
631
  });
640
632
  };
641
633
  /**
642
- * retunrs a new content that has the specified hubId and updated identifier
634
+ * returns a new content that has the specified hubId and updated identifier
643
635
  * @param content orignal content
644
636
  * @param hubId new hubId
645
637
  * @returns new content
@@ -656,19 +648,30 @@ export var setContentHubId = function (content, hubId) {
656
648
  });
657
649
  };
658
650
  /**
659
- * append the absolute URL to the content on the site
660
- * also updates the relative URL in case the
651
+ * Calculates the relative and absolute urls for a given content on a specific site
652
+ *
661
653
  * @param content
662
654
  * @param siteModel
663
- * @returns
655
+ * @returns relative and absolute urls
664
656
  */
665
- export var setContentSiteUrls = function (content, siteModel) {
666
- // recompute relative URL using a site specific identifier
657
+ export var getContentSiteUrls = function (content, siteModel) {
658
+ // compute relative URL using a site specific identifier
667
659
  var siteIdentifier = getContentIdentifier(content, siteModel);
668
660
  var relative = getContentRelativeUrl(content, siteIdentifier);
669
661
  // get the absolute URL to this content on the site
670
662
  var siteUrl = getProp(siteModel, "item.url").replace(/\/$/, "");
671
- var site = "" + siteUrl + relative;
663
+ var absolute = "" + siteUrl + relative;
664
+ return { relative: relative, absolute: absolute };
665
+ };
666
+ /**
667
+ * append the absolute URL to the content on the site
668
+ * also updates the relative URL in case the
669
+ * @param content
670
+ * @param siteModel
671
+ * @returns
672
+ */
673
+ export var setContentSiteUrls = function (content, siteModel) {
674
+ var _a = getContentSiteUrls(content, siteModel), relative = _a.relative, site = _a.absolute;
672
675
  // append the updated URLs to a new content
673
676
  return appendContentUrls(content, {
674
677
  relative: relative,
@@ -740,4 +743,4 @@ var getSolutionUrl = function (content) {
740
743
  var isPageContent = function (content) {
741
744
  return includes(["Hub Page", "Site Page"], content.type);
742
745
  };
743
- //# sourceMappingURL=content.js.map
746
+ //# sourceMappingURL=index.js.map