@esri/hub-common 9.17.1 → 9.18.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 (62) hide show
  1. package/dist/es2017/Hub.js +6 -10
  2. package/dist/es2017/Hub.js.map +1 -1
  3. package/dist/es2017/core/types/IHubItemEntityManager.js +1 -0
  4. package/dist/es2017/core/types/IHubItemEntityManager.js.map +1 -0
  5. package/dist/es2017/items/index.js +1 -0
  6. package/dist/es2017/items/index.js.map +1 -1
  7. package/dist/es2017/items/setItemThumbnail.js +31 -0
  8. package/dist/es2017/items/setItemThumbnail.js.map +1 -0
  9. package/dist/es2017/items/slugs.js +39 -15
  10. package/dist/es2017/items/slugs.js.map +1 -1
  11. package/dist/es2017/models/index.js +13 -0
  12. package/dist/es2017/models/index.js.map +1 -1
  13. package/dist/es2017/projects/HubProjectManager.js +40 -4
  14. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  15. package/dist/es2017/projects/HubProjects.js +91 -18
  16. package/dist/es2017/projects/HubProjects.js.map +1 -1
  17. package/dist/esm/Hub.js +6 -10
  18. package/dist/esm/Hub.js.map +1 -1
  19. package/dist/esm/core/types/IHubItemEntityManager.js +1 -0
  20. package/dist/esm/core/types/IHubItemEntityManager.js.map +1 -0
  21. package/dist/esm/items/index.js +1 -0
  22. package/dist/esm/items/index.js.map +1 -1
  23. package/dist/esm/items/setItemThumbnail.js +46 -0
  24. package/dist/esm/items/setItemThumbnail.js.map +1 -0
  25. package/dist/esm/items/slugs.js +39 -15
  26. package/dist/esm/items/slugs.js.map +1 -1
  27. package/dist/esm/models/index.js +23 -1
  28. package/dist/esm/models/index.js.map +1 -1
  29. package/dist/esm/projects/HubProjectManager.js +58 -4
  30. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  31. package/dist/esm/projects/HubProjects.js +100 -21
  32. package/dist/esm/projects/HubProjects.js.map +1 -1
  33. package/dist/node/Hub.js +6 -10
  34. package/dist/node/Hub.js.map +1 -1
  35. package/dist/node/core/types/IHubItemEntityManager.js +3 -0
  36. package/dist/node/core/types/IHubItemEntityManager.js.map +1 -0
  37. package/dist/node/items/index.js +1 -0
  38. package/dist/node/items/index.js.map +1 -1
  39. package/dist/node/items/setItemThumbnail.js +35 -0
  40. package/dist/node/items/setItemThumbnail.js.map +1 -0
  41. package/dist/node/items/slugs.js +42 -17
  42. package/dist/node/items/slugs.js.map +1 -1
  43. package/dist/node/models/index.js +15 -1
  44. package/dist/node/models/index.js.map +1 -1
  45. package/dist/node/projects/HubProjectManager.js +38 -2
  46. package/dist/node/projects/HubProjectManager.js.map +1 -1
  47. package/dist/node/projects/HubProjects.js +91 -17
  48. package/dist/node/projects/HubProjects.js.map +1 -1
  49. package/dist/types/Hub.d.ts +7 -11
  50. package/dist/types/core/types/IHubEntityManager.d.ts +16 -0
  51. package/dist/types/core/types/IHubItemEntityManager.d.ts +15 -0
  52. package/dist/types/items/index.d.ts +1 -0
  53. package/dist/types/items/setItemThumbnail.d.ts +9 -0
  54. package/dist/types/items/slugs.d.ts +20 -1
  55. package/dist/types/models/index.d.ts +8 -0
  56. package/dist/types/projects/HubProjectManager.d.ts +21 -3
  57. package/dist/types/projects/HubProjects.d.ts +3 -1
  58. package/dist/umd/common.umd.js +267 -47
  59. package/dist/umd/common.umd.js.map +1 -1
  60. package/dist/umd/common.umd.min.js +1 -1
  61. package/dist/umd/common.umd.min.js.map +1 -1
  62. package/package.json +1 -1
@@ -12,21 +12,19 @@ import { HubProjectManager } from "./projects/HubProjectManager";
12
12
  *
13
13
  * myHub.context.currentUser //=> {username: "casey", ...} as IUser
14
14
  *
15
- * const projectStore = await myHub.getProjectStore();
16
- *
17
- * const pavingProject = await projectStore.create({name: "12th Street Paving"});
15
+ * const pavingProject = await myHub.projects.create({name: "12th Street Paving"});
18
16
  * pavingProject.summary = "This is the 2024 planned paving of 12th Street, between 8th and 11th Ave";
19
- * await projectStore.update(pavingProject);
17
+ * await myHub.projects.update(pavingProject);
20
18
  * ```
21
19
  *
22
- * This is a convenience class. Hub Stores can be created
20
+ * This is a convenience class. Hub Managers can be created
23
21
  * directly, or the underlying functions can be imported an used
24
22
  * as need for scenarios where these class structures introduce
25
23
  * unwanted complexity
26
24
  */
27
25
  export class Hub {
28
26
  /**
29
- * Private so we can employ a factory function should we need
27
+ * Private so we can employ a factory function to do
30
28
  * async work during creation
31
29
  * @param contextManager
32
30
  */
@@ -34,9 +32,7 @@ export class Hub {
34
32
  this._contextManager = contextManager;
35
33
  }
36
34
  /**
37
- * Factory function to construct a new HubProjectStore instance.
38
- *
39
- * Note: Used so that we could do async actions in the ctor.
35
+ * Factory function to construct a new Hub instance.
40
36
  * @param contextManager
41
37
  * @returns
42
38
  */
@@ -57,7 +53,7 @@ export class Hub {
57
53
  return this._contextManager.context;
58
54
  }
59
55
  /**
60
- * Create a Project Store connected to the current Hub
56
+ * HubProjectManager for the current Hub
61
57
  * @returns
62
58
  */
63
59
  get projects() {
@@ -1 +1 @@
1
- {"version":3,"file":"Hub.js","sourceRoot":"","sources":["../../src/Hub.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAWjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,GAAG;IAYd;;;;OAIG;IACH,YAAoB,cAAoC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAoB;QACtC,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACxC;aAAM;YACL,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;IACH,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACrE;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"Hub.js","sourceRoot":"","sources":["../../src/Hub.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAWjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,GAAG;IAYd;;;;OAIG;IACH,YAAoB,cAAoC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAoB;QACtC,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACxC;aAAM;YACL,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;IACH,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACrE;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubItemEntityManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubItemEntityManager.js","sourceRoot":"","sources":["../../../../src/core/types/IHubItemEntityManager.ts"],"names":[],"mappings":""}
@@ -15,4 +15,5 @@ export * from "./fetch-all-pages";
15
15
  export * from "./get-structured-license";
16
16
  export * from "./slugs";
17
17
  export * from "./normalize-solution-template-item";
18
+ export * from "./setItemThumbnail";
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { updateItem } from "@esri/arcgis-rest-portal";
2
+ import { HubError } from "..";
3
+ /**
4
+ * Upload a file to be used as the thumbnail for an item
5
+ * @param id
6
+ * @param file
7
+ * @param filename
8
+ * @param requestOptions
9
+ */
10
+ export async function setItemThumbnail(id, file, filename, requestOptions) {
11
+ const opts = Object.assign({ item: {
12
+ id,
13
+ }, params: {
14
+ thumbnail: file,
15
+ }, filename }, requestOptions);
16
+ try {
17
+ const response = await updateItem(opts);
18
+ if (!response.success) {
19
+ throw new HubError("Set Project Thumbnail", "Unknown error setting thumbnail.");
20
+ }
21
+ }
22
+ catch (err) {
23
+ if (err instanceof Error) {
24
+ throw new HubError("Set Project Thumbnail", err.message, err);
25
+ }
26
+ else {
27
+ throw new HubError("Set Project Thumbnail", "Unknown error setting thumbnail.");
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=setItemThumbnail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setItemThumbnail.js","sourceRoot":"","sources":["../../../src/items/setItemThumbnail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,IAAS,EACT,QAAgB,EAChB,cAAmC;IAEnC,MAAM,IAAI,mBACR,IAAI,EAAE;YACJ,EAAE;SACH,EACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;SAChB,EACD,QAAQ,IACL,cAAc,CAClB,CAAC;IACF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC/D;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;AACH,CAAC"}
@@ -40,19 +40,43 @@ export function setSlugKeyword(typeKeywords, slug) {
40
40
  * @returns
41
41
  */
42
42
  export function getItemBySlug(slug, requestOptions) {
43
+ return findItemsBySlug({ slug }, requestOptions).then((results) => {
44
+ if (results.length) {
45
+ return results[0];
46
+ }
47
+ else {
48
+ return null;
49
+ }
50
+ });
51
+ }
52
+ /**
53
+ * Find items by slug typeKeywords.
54
+ *
55
+ * Optional exclude parameter accepts the id of an item we expect to
56
+ * have this particular slug. This is used during update calls
57
+ * where we don't know if the slug specifically has been updated, but we
58
+ * don't want a false-postive from the item we are updating
59
+ *
60
+ * @param slug
61
+ * @param requestOptions
62
+ * @returns
63
+ */
64
+ export function findItemsBySlug(slugInfo, requestOptions) {
43
65
  const opts = {
44
66
  q: "",
45
- filter: `typekeywords:"slug|${slug}"`,
67
+ filter: `typekeywords:"slug|${slugInfo.slug}"`,
46
68
  authentication: requestOptions.authentication,
47
69
  };
70
+ // We need to check for other items w/ a slug during
71
+ // the update calls. For those scenarios we are interested
72
+ // in any _other_ items which may have a specific slug
73
+ // but not one specific item
74
+ if (slugInfo.exclude) {
75
+ opts.q = `NOT id:${slugInfo.exclude}`;
76
+ }
48
77
  return searchItems(opts)
49
78
  .then((response) => {
50
- if (response.results.length) {
51
- return response.results[0];
52
- }
53
- else {
54
- return null;
55
- }
79
+ return response.results;
56
80
  })
57
81
  .catch((e) => {
58
82
  throw Error(`Error in getItemBySlug ${e}`);
@@ -70,19 +94,19 @@ export function getItemBySlug(slug, requestOptions) {
70
94
  * @param step
71
95
  * @returns
72
96
  */
73
- export function getUniqueSlug(slug, requestOptions, step = 0) {
74
- let combined = slug;
97
+ export function getUniqueSlug(slugInfo, requestOptions, step = 0) {
98
+ let combinedSlug = slugInfo.slug;
75
99
  if (step) {
76
- combined = `${slug}-${step}`;
100
+ combinedSlug = `${slugInfo.slug}-${step}`;
77
101
  }
78
- return getItemBySlug(combined, requestOptions)
79
- .then((result) => {
80
- if (result) {
102
+ return findItemsBySlug({ slug: combinedSlug, exclude: slugInfo.existingId }, requestOptions)
103
+ .then((results) => {
104
+ if (results.length) {
81
105
  step++;
82
- return getUniqueSlug(slug, requestOptions, step);
106
+ return getUniqueSlug(slugInfo, requestOptions, step);
83
107
  }
84
108
  else {
85
- return combined;
109
+ return combinedSlug;
86
110
  }
87
111
  })
88
112
  .catch((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/items/slugs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,+CAA+C;AAC/C,2FAA2F;AAE3F;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,YAAsB,EAAE,IAAY;IACjE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,cAA+B;IAE/B,MAAM,IAAI,GAAG;QACX,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,sBAAsB,IAAI,GAAG;QACrC,cAAc,EAAE,cAAc,CAAC,cAAc;KAC9C,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC5B;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,cAA+B,EAC/B,OAAe,CAAC;IAEhB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,EAAE;QACR,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;KAC9B;IACD,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC;SAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,MAAM,EAAE;YACV,IAAI,EAAE,CAAC;YACP,OAAO,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/items/slugs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,+CAA+C;AAC/C,2FAA2F;AAE3F;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,YAAsB,EAAE,IAAY;IACjE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,cAA+B;IAE/B,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChE,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,QAGC,EACD,cAA+B;IAE/B,MAAM,IAAI,GAAG;QACX,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,sBAAsB,QAAQ,CAAC,IAAI,GAAG;QAC9C,cAAc,EAAE,cAAc,CAAC,cAAc;KAC9C,CAAC;IACF,oDAAoD;IACpD,0DAA0D;IAC1D,sDAAsD;IACtD,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,OAAO,EAAE;QACpB,IAAI,CAAC,CAAC,GAAG,UAAU,QAAQ,CAAC,OAAO,EAAE,CAAC;KACvC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,QAGC,EACD,cAA+B,EAC/B,OAAe,CAAC;IAEhB,IAAI,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;IACjC,IAAI,IAAI,EAAE;QACR,YAAY,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;KAC3C;IACD,OAAO,eAAe,CACpB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,EACpD,cAAc,CACf;SACE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,EAAE,CAAC;YACP,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;SACtD;aAAM;YACL,OAAO,YAAY,CAAC;SACrB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -95,4 +95,17 @@ export function updateModel(model, requestOptions) {
95
95
  return clone;
96
96
  });
97
97
  }
98
+ /**
99
+ * Given an Item, fetch the data json and return an IModel
100
+ * @param item
101
+ * @param requestOptions
102
+ * @returns
103
+ */
104
+ export async function fetchModelFromItem(item, requestOptions) {
105
+ const data = await getItemData(item.id, requestOptions);
106
+ return {
107
+ item,
108
+ data,
109
+ };
110
+ }
98
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { createProject, updateProject, destroyProject, getProject, } from "./HubProjects";
1
+ import { createProject, updateProject, destroyProject, fetchProject, searchProjects, } from "./HubProjects";
2
2
  // Node has issues if this is not directly imported
3
3
  import { ArcGISContextManager } from "../ArcGISContextManager";
4
- import { HubError } from "..";
4
+ import { HubError, } from "..";
5
+ import { setItemThumbnail as updateItemThumbnail } from "../items/setItemThumbnail";
5
6
  /**
6
7
  * Centralized functions used to manage IHubProject instances
7
8
  *
@@ -93,6 +94,14 @@ export class HubProjectManager {
93
94
  throw new HubError("Destroy Project", "Destroying Hub Projects requires authentication.");
94
95
  }
95
96
  }
97
+ // DEPRECATED IN FAVOR OF .fetch()
98
+ // TODO: REMOVE AT NEXT MAJOR
99
+ /* istanbul ignore next */
100
+ async get(identifier, requestOptions) {
101
+ // tslint:disable-next-line
102
+ console.warn(`HubProjectManager.get is deprecated and will be removed. Use .fetch() instead.`);
103
+ return this.fetch(identifier, requestOptions);
104
+ }
96
105
  /**
97
106
  * Fetch a Project via id or it's slug
98
107
  *
@@ -105,11 +114,38 @@ export class HubProjectManager {
105
114
  */
106
115
  async fetch(identifier, requestOptions) {
107
116
  if (requestOptions || this.context.requestOptions) {
108
- return getProject(identifier, requestOptions || this.context.requestOptions);
117
+ return fetchProject(identifier, requestOptions || this.context.requestOptions);
109
118
  }
110
119
  else {
111
- throw new HubError("Get Project", "Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.");
120
+ throw new HubError("Fetch Project", "Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.");
121
+ }
122
+ }
123
+ /**
124
+ * Search for Projects
125
+ *
126
+ * @param filter
127
+ * @param options
128
+ */
129
+ async search(filter, options) {
130
+ // if we were not passed auth, and we have a session, use it
131
+ if (!options.authentication && this.context.session) {
132
+ options.authentication = this.context.session;
112
133
  }
134
+ return searchProjects(filter, options);
135
+ }
136
+ /**
137
+ * Set the thumbnail for the Project
138
+ * @param id
139
+ * @param file
140
+ * @param filename
141
+ * @param requestOptions
142
+ * @returns
143
+ */
144
+ async updateThumbnail(project, file, filename, requestOptions) {
145
+ const ro = requestOptions || this.context.userRequestOptions;
146
+ await updateItemThumbnail(project.id, file, filename, ro);
147
+ // get the item so we have updated props and timestamps
148
+ return this.fetch(project.id, requestOptions);
113
149
  }
114
150
  }
115
151
  //# sourceMappingURL=HubProjectManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HubProjectManager.js","sourceRoot":"","sources":["../../../src/projects/HubProjectManager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,mDAAmD;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAkB,MAAM,IAAI,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAgB5B;;;;OAIG;IACH,YAAoB,gBAAuD;QACzE,IAAI,gBAAgB,YAAY,oBAAoB,EAAE;YACpD,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SAClC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CACT,gBAAuD;QAEvD,OAAO,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,OAA6B,EAC7B,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,0BAA0B;YAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;aAChD;YACD,OAAO,aAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,OAAoB,EACpB,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,aAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,EAAU,EACV,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,cAAc,CACnB,EAAE,EACF,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,iBAAiB,EACjB,kDAAkD,CACnD,CAAC;SACH;IACH,CAAC;IACD;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,cAAgC;QAEhC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACjD,OAAO,UAAU,CACf,UAAU,EACV,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAC9C,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,4GAA4G,CAC7G,CAAC;SACH;IACH,CAAC;CAgBF"}
1
+ {"version":3,"file":"HubProjectManager.js","sourceRoot":"","sources":["../../../src/projects/HubProjectManager.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  // Note - we separate these imports so we can cleanly spy on things in tests
2
- import { createModel, getModel, getModelBySlug, updateModel } from "../models";
2
+ import { createModel, fetchModelFromItem, getModel, getModelBySlug, updateModel, } from "../models";
3
3
  import { constructSlug, getUniqueSlug, setSlugKeyword } from "../items/slugs";
4
- import { isGuid, cloneObject, } from "..";
5
- import { removeItem } from "@esri/arcgis-rest-portal";
4
+ import { isGuid, cloneObject, expandContentFilter, serializeContentFilterForPortal, getNextFunction, mergeContentFilter, getItemThumbnailUrl, } from "..";
5
+ import { removeItem, searchItems, } from "@esri/arcgis-rest-portal";
6
6
  import { PropertyMapper } from "../core/helpers/PropertyMapper";
7
7
  export const HUB_PROJECT_ITEM_TYPE = "Web Mapping Application";
8
8
  /**
@@ -12,6 +12,7 @@ const DEFAULT_PROJECT = {
12
12
  name: "No title provided",
13
13
  tags: [],
14
14
  typeKeywords: ["IHubProject", "HubProject"],
15
+ status: "inactive",
15
16
  };
16
17
  /**
17
18
  * Default values for a new HubProject Model
@@ -23,7 +24,7 @@ const DEFAULT_PROJECT_MODEL = {
23
24
  description: "No Description Provided",
24
25
  snippet: "",
25
26
  tags: [],
26
- typeKeywords: [],
27
+ typeKeywords: ["Hub Project"],
27
28
  properties: {
28
29
  slug: "",
29
30
  },
@@ -31,7 +32,6 @@ const DEFAULT_PROJECT_MODEL = {
31
32
  data: {
32
33
  display: "about",
33
34
  timeline: {},
34
- org: {},
35
35
  status: "inactive",
36
36
  contacts: [],
37
37
  schemaVersion: 1,
@@ -108,7 +108,7 @@ export async function createProject(partialProject, requestOptions) {
108
108
  project.slug = constructSlug(project.name, project.orgUrlKey);
109
109
  }
110
110
  // Ensure slug is unique
111
- project.slug = await getUniqueSlug(project.slug, requestOptions);
111
+ project.slug = await getUniqueSlug({ slug: project.slug }, requestOptions);
112
112
  // add slug to keywords
113
113
  project.typeKeywords = setSlugKeyword(project.typeKeywords, project.slug);
114
114
  // Map project object onto a default project Model
@@ -128,10 +128,8 @@ export async function createProject(partialProject, requestOptions) {
128
128
  * @param requestOptions
129
129
  */
130
130
  export async function updateProject(project, requestOptions) {
131
- // verify that the slug is unique
132
- // TODO: if the slug has not changed, we don't want to do this because
133
- // the existing item will cause this to increment
134
- project.slug = await getUniqueSlug(project.slug, requestOptions);
131
+ // verify that the slug is unique, excluding the current project
132
+ project.slug = await getUniqueSlug({ slug: project.slug, existingId: project.id }, requestOptions);
135
133
  // get the backing item & data
136
134
  const model = await getModel(project.id, requestOptions);
137
135
  // create the PropertyMapper
@@ -153,7 +151,7 @@ export async function updateProject(project, requestOptions) {
153
151
  * @param identifier item id or slug
154
152
  * @param requestOptions
155
153
  */
156
- export function getProject(identifier, requestOptions) {
154
+ export function fetchProject(identifier, requestOptions) {
157
155
  let getPrms;
158
156
  if (isGuid(identifier)) {
159
157
  // get item by id
@@ -161,12 +159,20 @@ export function getProject(identifier, requestOptions) {
161
159
  }
162
160
  else {
163
161
  // search for item using filter=typekeywords:slug|identifier
162
+ // although we could leverage searchProjects with an appropriate filter
163
+ // getModelBySlug is a generalized function that works for any type
164
164
  getPrms = getModelBySlug(identifier, requestOptions);
165
165
  }
166
166
  return getPrms.then((model) => {
167
167
  // transform the model into a HubProject
168
168
  const mapper = new PropertyMapper(getProjectPropertyMap());
169
169
  const project = mapper.modelToObject(model, {});
170
+ let token;
171
+ if (requestOptions.authentication) {
172
+ const us = requestOptions.authentication;
173
+ token = us.token;
174
+ }
175
+ project.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
170
176
  return project;
171
177
  });
172
178
  }
@@ -184,11 +190,78 @@ export async function destroyProject(id, requestOptions) {
184
190
  // i.e. delegate to searchContent or just do an item search
185
191
  // and convert to IHubProject objects.
186
192
  //
187
- // export async function searchProjects(
188
- // filter: Filter<"content">,
189
- // opts: IHubSearchOptions
190
- // ): Promise<ISearchResponse<IHubProject>> {
191
- // return _searchContent(filter, opts).then((results) => {
192
- // })
193
- // }
193
+ export async function searchProjects(filter, options) {
194
+ var _a;
195
+ // Scope to Hub Projects
196
+ const scopingFilter = {
197
+ filterType: "content",
198
+ typekeywords: {
199
+ exact: ["HubProject"],
200
+ },
201
+ };
202
+ // merge filters
203
+ const projectFilter = mergeContentFilter([scopingFilter, filter]);
204
+ // expand filter so we can serialize to either api
205
+ const expanded = expandContentFilter(projectFilter);
206
+ const so = serializeContentFilterForPortal(expanded);
207
+ // Aggregations
208
+ if ((_a = options.aggregations) === null || _a === void 0 ? void 0 : _a.length) {
209
+ so.countFields = options.aggregations.join(",");
210
+ so.countSize = 200;
211
+ }
212
+ // copy over various options
213
+ if (options.num) {
214
+ so.num = options.num;
215
+ }
216
+ if (options.sortField) {
217
+ so.sortField = options.sortField;
218
+ }
219
+ if (options.sortOrder) {
220
+ so.sortOrder = options.sortOrder;
221
+ }
222
+ if (options.site) {
223
+ so.site = cloneObject(options.site);
224
+ }
225
+ if (options.authentication) {
226
+ so.authentication = options.authentication;
227
+ }
228
+ return searchPortalProjects(so);
229
+ }
230
+ /**
231
+ * Internal fn that takes
232
+ * @param searchOptions
233
+ * @returns
234
+ */
235
+ async function searchPortalProjects(searchOptions) {
236
+ const response = await searchItems(searchOptions);
237
+ const hasNext = response.nextStart > -1;
238
+ // TODO: Change to leveraging the enrichment pipelines
239
+ // Convert the item's into models
240
+ const modelPromises = response.results.map((itm) => {
241
+ return fetchModelFromItem(itm, {
242
+ authentication: searchOptions.authentication,
243
+ });
244
+ });
245
+ const models = await Promise.all(modelPromises);
246
+ // create a mapper to convert the model int
247
+ const mapper = new PropertyMapper(getProjectPropertyMap());
248
+ let token;
249
+ if (searchOptions.authentication) {
250
+ const us = searchOptions.authentication;
251
+ token = us.token;
252
+ }
253
+ // map over the results, converting them into IHubProject pojos
254
+ const projects = models.map((m) => {
255
+ const prj = mapper.modelToObject(m, {});
256
+ prj.thumbnailUrl = getItemThumbnailUrl(m.item, { authentication: searchOptions.authentication }, token);
257
+ return prj;
258
+ });
259
+ return {
260
+ total: response.total,
261
+ results: projects,
262
+ facets: [],
263
+ hasNext,
264
+ next: getNextFunction(searchOptions, response.nextStart, response.total, searchPortalProjects),
265
+ };
266
+ }
194
267
  //# sourceMappingURL=HubProjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAEL,MAAM,EACN,WAAW,EAKX,mBAAmB,EACnB,+BAA+B,EAC/B,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,IAAI,CAAC;AACZ,OAAO,EAGL,UAAU,EACV,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAgB,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAG9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D;;GAEG;AACH,MAAM,eAAe,GAAyB;IAC5C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;IAC3C,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;SACT;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,CAAC;KACjB;CACmB,CAAC;AAEvB;;;;;;;GAOG;AACH,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG;QAChB,SAAS;QACT,SAAS;QACT,aAAa;QACb,QAAQ;QACR,IAAI;QACJ,UAAU;QACV,OAAO;QACP,SAAS;QACT,MAAM;QACN,cAAc;QACd,KAAK;QACL,MAAM;KACP,CAAC;IACF,MAAM,SAAS,GAAG;QAChB,UAAU;QACV,SAAS;QACT,UAAU;QACV,aAAa;QACb,QAAQ;QACR,UAAU;QACV,QAAQ;KACT,CAAC;IACF,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,kBAAkB;IAClB,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,2BAA2B;KACtC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,cAAoC,EACpC,cAAmC;IAEnC,kCAAkC;IAClC,2CAA2C;IAC3C,MAAM,OAAO,mCAAQ,eAAe,GAAK,cAAc,CAAE,CAAC;IAE1D,uDAAuD;IACvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACjB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC/D;IACD,yBAAyB;IACzB,OAAO,CAAC,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IAC3E,uBAAuB;IACvB,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,kDAAkD;IAClD,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,qBAAqB,EAAE,CACxB,CAAC;IACF,wEAAwE;IACxE,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9E,kBAAkB;IAClB,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACjD,wCAAwC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,gBAAgB;IAChB,OAAO,UAAyB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAoB,EACpB,cAAmC;IAEnC,gEAAgE;IAChE,OAAO,CAAC,IAAI,GAAG,MAAM,aAAa,CAChC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAC9C,cAAc,CACf,CAAC;IACF,8BAA8B;IAC9B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACzD,4BAA4B;IAC5B,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,qBAAqB,EAAE,CACxB,CAAC;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,sDAAsD;IACtD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3D,0BAA0B;IAC1B,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnE,qEAAqE;IACrE,uCAAuC;IACvC,OAAO,cAA6B,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,cAA+B;IAE/B,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;QACtB,iBAAiB;QACjB,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAChD;SAAM;QACL,4DAA4D;QAC5D,uEAAuE;QACvE,mEAAmE;QACnE,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KACtD;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,qBAAqB,EAAE,CACxB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAgB,CAAC;QAC/D,IAAI,KAAa,CAAC;QAClB,IAAI,cAAc,CAAC,cAAc,EAAE;YACjC,MAAM,EAAE,GAAgB,cAAc,CAAC,cAA6B,CAAC;YACrE,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;SAClB;QAED,OAAO,CAAC,YAAY,GAAG,mBAAmB,CACxC,KAAK,CAAC,IAAI,EACV,cAAc,EACd,KAAK,CACN,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAU,EACV,cAAmC;IAEnC,MAAM,EAAE,GAAG,gCAAK,cAAc,GAAK,EAAE,EAAE,EAAE,CAAsB,CAAC;IAChE,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO;AACT,CAAC;AAED,gDAAgD;AAChD,2DAA2D;AAC3D,sCAAsC;AACtC,EAAE;AACF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAyB,EACzB,OAA0B;;IAE1B,wBAAwB;IACxB,MAAM,aAAa,GAAsB;QACvC,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,YAAY,CAAC;SACtB;KACF,CAAC;IACF,gBAAgB;IAChB,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IACrD,eAAe;IACf,UAAI,OAAO,CAAC,YAAY,0CAAE,MAAM,EAAE;QAChC,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC;KACpB;IACD,4BAA4B;IAC5B,IAAI,OAAO,CAAC,GAAG,EAAE;QACf,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;KACtB;IACD,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAClC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAClC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC;IACD,IAAI,OAAO,CAAC,cAAc,EAAE;QAC1B,EAAE,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;KAC5C;IACD,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CACjC,aAA6B;IAE7B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,OAAO,GAAY,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACjD,sDAAsD;IAEtD,iCAAiC;IACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjD,OAAO,kBAAkB,CAAC,GAAG,EAAE;YAC7B,cAAc,EAAE,aAAa,CAAC,cAAc;SAC7C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChD,2CAA2C;IAC3C,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,qBAAqB,EAAE,CACxB,CAAC;IAEF,IAAI,KAAa,CAAC;IAClB,IAAI,aAAa,CAAC,cAAc,EAAE;QAChC,MAAM,EAAE,GAAgB,aAAa,CAAC,cAA6B,CAAC;QACpE,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;KAClB;IAED,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAgB,CAAC;QACvD,GAAG,CAAC,YAAY,GAAG,mBAAmB,CACpC,CAAC,CAAC,IAAI,EACN,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,EAAE,EAChD,KAAK,CACN,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,CAA6B,CAAC;IAE/B,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,EAAE;QACV,OAAO;QACP,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,KAAK,EACd,oBAAoB,CACrB;KACF,CAAC;AACJ,CAAC"}
package/dist/esm/Hub.js CHANGED
@@ -13,21 +13,19 @@ import { HubProjectManager } from "./projects/HubProjectManager";
13
13
  *
14
14
  * myHub.context.currentUser //=> {username: "casey", ...} as IUser
15
15
  *
16
- * const projectStore = await myHub.getProjectStore();
17
- *
18
- * const pavingProject = await projectStore.create({name: "12th Street Paving"});
16
+ * const pavingProject = await myHub.projects.create({name: "12th Street Paving"});
19
17
  * pavingProject.summary = "This is the 2024 planned paving of 12th Street, between 8th and 11th Ave";
20
- * await projectStore.update(pavingProject);
18
+ * await myHub.projects.update(pavingProject);
21
19
  * ```
22
20
  *
23
- * This is a convenience class. Hub Stores can be created
21
+ * This is a convenience class. Hub Managers can be created
24
22
  * directly, or the underlying functions can be imported an used
25
23
  * as need for scenarios where these class structures introduce
26
24
  * unwanted complexity
27
25
  */
28
26
  var Hub = /** @class */ (function () {
29
27
  /**
30
- * Private so we can employ a factory function should we need
28
+ * Private so we can employ a factory function to do
31
29
  * async work during creation
32
30
  * @param contextManager
33
31
  */
@@ -35,9 +33,7 @@ var Hub = /** @class */ (function () {
35
33
  this._contextManager = contextManager;
36
34
  }
37
35
  /**
38
- * Factory function to construct a new HubProjectStore instance.
39
- *
40
- * Note: Used so that we could do async actions in the ctor.
36
+ * Factory function to construct a new Hub instance.
41
37
  * @param contextManager
42
38
  * @returns
43
39
  */
@@ -71,7 +67,7 @@ var Hub = /** @class */ (function () {
71
67
  });
72
68
  Object.defineProperty(Hub.prototype, "projects", {
73
69
  /**
74
- * Create a Project Store connected to the current Hub
70
+ * HubProjectManager for the current Hub
75
71
  * @returns
76
72
  */
77
73
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"Hub.js","sourceRoot":"","sources":["../../src/Hub.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAWjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IAYE;;;;OAIG;IACH,aAAoB,cAAoC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACU,UAAM,GAAnB,UAAoB,OAAoB;;;;;;6BAClC,OAAO,CAAC,cAAc,EAAtB,wBAAsB;wBACxB,sBAAO,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC;;wBAEjC,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;wBAC9B,qBAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAA;;wBAA7C,GAAG,GAAG,SAAuC;wBACnD,sBAAO,IAAI,GAAG,CAAC,GAAG,CAAC,EAAC;;;;KAEvB;IAKD,sBAAW,wBAAO;QAHlB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QACtC,CAAC;;;OAAA;IAMD,sBAAI,yBAAQ;QAJZ;;;WAGG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACrE;YAED,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IACH,UAAC;AAAD,CAAC,AAxDD,IAwDC"}
1
+ {"version":3,"file":"Hub.js","sourceRoot":"","sources":["../../src/Hub.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAWjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;IAYE;;;;OAIG;IACH,aAAoB,cAAoC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACU,UAAM,GAAnB,UAAoB,OAAoB;;;;;;6BAClC,OAAO,CAAC,cAAc,EAAtB,wBAAsB;wBACxB,sBAAO,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC;;wBAEjC,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;wBAC9B,qBAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAA;;wBAA7C,GAAG,GAAG,SAAuC;wBACnD,sBAAO,IAAI,GAAG,CAAC,GAAG,CAAC,EAAC;;;;KAEvB;IAKD,sBAAW,wBAAO;QAHlB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QACtC,CAAC;;;OAAA;IAMD,sBAAI,yBAAQ;QAJZ;;;WAGG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACrE;YAED,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IACH,UAAC;AAAD,CAAC,AAtDD,IAsDC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubItemEntityManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubItemEntityManager.js","sourceRoot":"","sources":["../../../../src/core/types/IHubItemEntityManager.ts"],"names":[],"mappings":""}
@@ -15,4 +15,5 @@ export * from "./fetch-all-pages";
15
15
  export * from "./get-structured-license";
16
16
  export * from "./slugs";
17
17
  export * from "./normalize-solution-template-item";
18
+ export * from "./setItemThumbnail";
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { updateItem } from "@esri/arcgis-rest-portal";
3
+ import { HubError } from "..";
4
+ /**
5
+ * Upload a file to be used as the thumbnail for an item
6
+ * @param id
7
+ * @param file
8
+ * @param filename
9
+ * @param requestOptions
10
+ */
11
+ export function setItemThumbnail(id, file, filename, requestOptions) {
12
+ return __awaiter(this, void 0, void 0, function () {
13
+ var opts, response, err_1;
14
+ return __generator(this, function (_a) {
15
+ switch (_a.label) {
16
+ case 0:
17
+ opts = __assign({ item: {
18
+ id: id,
19
+ }, params: {
20
+ thumbnail: file,
21
+ }, filename: filename }, requestOptions);
22
+ _a.label = 1;
23
+ case 1:
24
+ _a.trys.push([1, 3, , 4]);
25
+ return [4 /*yield*/, updateItem(opts)];
26
+ case 2:
27
+ response = _a.sent();
28
+ if (!response.success) {
29
+ throw new HubError("Set Project Thumbnail", "Unknown error setting thumbnail.");
30
+ }
31
+ return [3 /*break*/, 4];
32
+ case 3:
33
+ err_1 = _a.sent();
34
+ if (err_1 instanceof Error) {
35
+ throw new HubError("Set Project Thumbnail", err_1.message, err_1);
36
+ }
37
+ else {
38
+ throw new HubError("Set Project Thumbnail", "Unknown error setting thumbnail.");
39
+ }
40
+ return [3 /*break*/, 4];
41
+ case 4: return [2 /*return*/];
42
+ }
43
+ });
44
+ });
45
+ }
46
+ //# sourceMappingURL=setItemThumbnail.js.map