@esri/arcgis-rest-portal 4.6.2 → 4.8.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 (154) hide show
  1. package/dist/bundled/portal.esm.js +47 -12
  2. package/dist/bundled/portal.esm.js.map +1 -1
  3. package/dist/bundled/portal.esm.min.js +4 -4
  4. package/dist/bundled/portal.esm.min.js.map +1 -1
  5. package/dist/bundled/portal.umd.js +3048 -3014
  6. package/dist/bundled/portal.umd.js.map +1 -1
  7. package/dist/bundled/portal.umd.min.js +4 -4
  8. package/dist/bundled/portal.umd.min.js.map +1 -1
  9. package/dist/cjs/groups/add-users.js +1 -2
  10. package/dist/cjs/groups/add-users.js.map +1 -1
  11. package/dist/cjs/groups/create.js +1 -2
  12. package/dist/cjs/groups/create.js.map +1 -1
  13. package/dist/cjs/groups/get.js +5 -6
  14. package/dist/cjs/groups/get.js.map +1 -1
  15. package/dist/cjs/groups/invite-users.js +1 -2
  16. package/dist/cjs/groups/invite-users.js.map +1 -1
  17. package/dist/cjs/groups/join.js +2 -3
  18. package/dist/cjs/groups/join.js.map +1 -1
  19. package/dist/cjs/groups/notification.js +1 -2
  20. package/dist/cjs/groups/notification.js.map +1 -1
  21. package/dist/cjs/groups/protect.js +2 -3
  22. package/dist/cjs/groups/protect.js.map +1 -1
  23. package/dist/cjs/groups/remove-users.js +1 -2
  24. package/dist/cjs/groups/remove-users.js.map +1 -1
  25. package/dist/cjs/groups/remove.js +1 -2
  26. package/dist/cjs/groups/remove.js.map +1 -1
  27. package/dist/cjs/groups/search.js +2 -3
  28. package/dist/cjs/groups/search.js.map +1 -1
  29. package/dist/cjs/groups/update-user-membership.js +1 -2
  30. package/dist/cjs/groups/update-user-membership.js.map +1 -1
  31. package/dist/cjs/groups/update.js +1 -2
  32. package/dist/cjs/groups/update.js.map +1 -1
  33. package/dist/cjs/index.js +50 -50
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/items/add.js +3 -4
  36. package/dist/cjs/items/add.js.map +1 -1
  37. package/dist/cjs/items/create.js +3 -4
  38. package/dist/cjs/items/create.js.map +1 -1
  39. package/dist/cjs/items/export.js.map +1 -1
  40. package/dist/cjs/items/get.js +22 -15
  41. package/dist/cjs/items/get.js.map +1 -1
  42. package/dist/cjs/items/helpers.js +24 -4
  43. package/dist/cjs/items/helpers.js.map +1 -1
  44. package/dist/cjs/items/protect.js +2 -3
  45. package/dist/cjs/items/protect.js.map +1 -1
  46. package/dist/cjs/items/reassign.js +1 -2
  47. package/dist/cjs/items/reassign.js.map +1 -1
  48. package/dist/cjs/items/remove.js +5 -6
  49. package/dist/cjs/items/remove.js.map +1 -1
  50. package/dist/cjs/items/search.js +1 -2
  51. package/dist/cjs/items/search.js.map +1 -1
  52. package/dist/cjs/items/update.js +14 -5
  53. package/dist/cjs/items/update.js.map +1 -1
  54. package/dist/cjs/items/upload.js +3 -4
  55. package/dist/cjs/items/upload.js.map +1 -1
  56. package/dist/cjs/orgs/notification.js +1 -2
  57. package/dist/cjs/orgs/notification.js.map +1 -1
  58. package/dist/cjs/services/get-unique-service-name.js +1 -3
  59. package/dist/cjs/services/get-unique-service-name.js.map +1 -1
  60. package/dist/cjs/services/is-service-name-available.js +1 -3
  61. package/dist/cjs/services/is-service-name-available.js.map +1 -1
  62. package/dist/cjs/sharing/access.js +1 -2
  63. package/dist/cjs/sharing/access.js.map +1 -1
  64. package/dist/cjs/sharing/helpers.js +4 -5
  65. package/dist/cjs/sharing/helpers.js.map +1 -1
  66. package/dist/cjs/sharing/is-item-shared-with-group.js +1 -2
  67. package/dist/cjs/sharing/is-item-shared-with-group.js.map +1 -1
  68. package/dist/cjs/sharing/share-item-with-group.js +2 -3
  69. package/dist/cjs/sharing/share-item-with-group.js.map +1 -1
  70. package/dist/cjs/sharing/unshare-item-with-group.js +1 -2
  71. package/dist/cjs/sharing/unshare-item-with-group.js.map +1 -1
  72. package/dist/cjs/users/get-user-properties.js +1 -2
  73. package/dist/cjs/users/get-user-properties.js.map +1 -1
  74. package/dist/cjs/users/get-user-tags.js +2 -3
  75. package/dist/cjs/users/get-user-tags.js.map +1 -1
  76. package/dist/cjs/users/get-user-url.js +1 -2
  77. package/dist/cjs/users/get-user-url.js.map +1 -1
  78. package/dist/cjs/users/get-user.js +2 -3
  79. package/dist/cjs/users/get-user.js.map +1 -1
  80. package/dist/cjs/users/invitation.js +4 -5
  81. package/dist/cjs/users/invitation.js.map +1 -1
  82. package/dist/cjs/users/notification.js +2 -3
  83. package/dist/cjs/users/notification.js.map +1 -1
  84. package/dist/cjs/users/search-users.js +2 -3
  85. package/dist/cjs/users/search-users.js.map +1 -1
  86. package/dist/cjs/users/set-user-properties.js +1 -2
  87. package/dist/cjs/users/set-user-properties.js.map +1 -1
  88. package/dist/cjs/users/update.js +1 -2
  89. package/dist/cjs/users/update.js.map +1 -1
  90. package/dist/cjs/util/SearchQueryBuilder.js.map +1 -1
  91. package/dist/cjs/util/array.js +1 -2
  92. package/dist/cjs/util/array.js.map +1 -1
  93. package/dist/cjs/util/determine-username.js +1 -2
  94. package/dist/cjs/util/determine-username.js.map +1 -1
  95. package/dist/cjs/util/generic-search.js +1 -2
  96. package/dist/cjs/util/generic-search.js.map +1 -1
  97. package/dist/cjs/util/get-portal-settings.js +1 -2
  98. package/dist/cjs/util/get-portal-settings.js.map +1 -1
  99. package/dist/cjs/util/get-portal-url.js +1 -2
  100. package/dist/cjs/util/get-portal-url.js.map +1 -1
  101. package/dist/cjs/util/get-portal.js +2 -3
  102. package/dist/cjs/util/get-portal.js.map +1 -1
  103. package/dist/cjs/util/get-subscription-info.js +1 -2
  104. package/dist/cjs/util/get-subscription-info.js.map +1 -1
  105. package/dist/cjs/util/scrub-control-chars.js +1 -2
  106. package/dist/cjs/util/scrub-control-chars.js.map +1 -1
  107. package/dist/esm/groups/add-users.js.map +1 -1
  108. package/dist/esm/groups/get.js.map +1 -1
  109. package/dist/esm/groups/invite-users.js.map +1 -1
  110. package/dist/esm/groups/notification.d.ts +1 -1
  111. package/dist/esm/groups/update-user-membership.js.map +1 -1
  112. package/dist/esm/items/content.d.ts +1 -1
  113. package/dist/esm/items/create.js.map +1 -1
  114. package/dist/esm/items/export.d.ts +1 -2
  115. package/dist/esm/items/export.js.map +1 -1
  116. package/dist/esm/items/get.d.ts +0 -2
  117. package/dist/esm/items/get.js +12 -5
  118. package/dist/esm/items/get.js.map +1 -1
  119. package/dist/esm/items/helpers.d.ts +12 -2
  120. package/dist/esm/items/helpers.js +20 -0
  121. package/dist/esm/items/helpers.js.map +1 -1
  122. package/dist/esm/items/reassign.d.ts +2 -3
  123. package/dist/esm/items/reassign.js.map +1 -1
  124. package/dist/esm/items/remove.js.map +1 -1
  125. package/dist/esm/items/update.js +11 -1
  126. package/dist/esm/items/update.js.map +1 -1
  127. package/dist/esm/items/upload.js.map +1 -1
  128. package/dist/esm/orgs/notification.js.map +1 -1
  129. package/dist/esm/services/get-unique-service-name.d.ts +0 -1
  130. package/dist/esm/services/get-unique-service-name.js +0 -1
  131. package/dist/esm/services/get-unique-service-name.js.map +1 -1
  132. package/dist/esm/services/is-service-name-available.d.ts +0 -1
  133. package/dist/esm/services/is-service-name-available.js +0 -1
  134. package/dist/esm/services/is-service-name-available.js.map +1 -1
  135. package/dist/esm/sharing/access.js.map +1 -1
  136. package/dist/esm/sharing/is-item-shared-with-group.js.map +1 -1
  137. package/dist/esm/sharing/share-item-with-group.d.ts +1 -2
  138. package/dist/esm/sharing/share-item-with-group.js.map +1 -1
  139. package/dist/esm/sharing/unshare-item-with-group.js.map +1 -1
  140. package/dist/esm/users/get-user-properties.js.map +1 -1
  141. package/dist/esm/users/get-user-tags.d.ts +1 -1
  142. package/dist/esm/users/get-user-tags.js +1 -1
  143. package/dist/esm/users/get-user-tags.js.map +1 -1
  144. package/dist/esm/users/get-user.d.ts +1 -1
  145. package/dist/esm/users/get-user.js +1 -1
  146. package/dist/esm/users/get-user.js.map +1 -1
  147. package/dist/esm/users/set-user-properties.js.map +1 -1
  148. package/dist/esm/util/SearchQueryBuilder.js.map +1 -1
  149. package/dist/esm/util/array.js.map +1 -1
  150. package/dist/esm/util/determine-username.d.ts +1 -2
  151. package/dist/esm/util/determine-username.js.map +1 -1
  152. package/dist/esm/util/generic-search.js.map +1 -1
  153. package/dist/esm/util/get-portal-url.js.map +1 -1
  154. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  /* @preserve
2
- * @esri/arcgis-rest-portal - v4.6.1 - Apache-2.0
3
- * Copyright (c) 2017-2025 Esri, Inc.
4
- * Wed Aug 13 2025 20:30:31 GMT+0000 (Coordinated Universal Time)
2
+ * @esri/arcgis-rest-portal - v4.8.0 - Apache-2.0
3
+ * Copyright (c) 2017-2026 Esri, Inc.
4
+ * Fri Jan 16 2026 01:29:18 GMT+0000 (Coordinated Universal Time)
5
5
  */
6
6
  import { cleanUrl, request, appendCustomParams, warn } from '@esri/arcgis-rest-request';
7
7
 
@@ -69,6 +69,26 @@ function isBBox(extent) {
69
69
  function bboxToString(extent) {
70
70
  return extent.join(",");
71
71
  }
72
+ /**
73
+ * Returns the full thumbnail URL for an item.
74
+ *
75
+ * @param item - The item to decorate
76
+ * @param portal - The portal URL
77
+ * @param token - Optional token to append if the item is private
78
+ * @returns The item with decorated thumbnail
79
+ */
80
+ function decorateThumbnail(item, portal, token) {
81
+ if (!item)
82
+ return item;
83
+ let thumbnailUrl = null;
84
+ if (typeof item.thumbnail === "string") {
85
+ thumbnailUrl = `${portal}/content/items/${item.id}/info/${item.thumbnail}`;
86
+ if (thumbnailUrl && item.access !== "public" && token) {
87
+ thumbnailUrl += `?${token}`;
88
+ }
89
+ }
90
+ return Object.assign(Object.assign({}, item), (thumbnailUrl ? { thumbnailUrl } : {}));
91
+ }
72
92
 
73
93
  /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
74
94
  * Apache-2.0 */
@@ -105,6 +125,16 @@ function updateItem(requestOptions) {
105
125
  if (requestOptions.params.extent && isBBox(requestOptions.params.extent)) {
106
126
  requestOptions.params.extent = bboxToString(requestOptions.params.extent);
107
127
  }
128
+ const portal = getPortalUrl(requestOptions);
129
+ const decoratedThumbnail = decorateThumbnail(Object.assign(Object.assign({}, requestOptions.item), { access: requestOptions.item.access }), portal);
130
+ const paramsThumbnailUrl = requestOptions.params.thumbnailUrl;
131
+ if (typeof decoratedThumbnail.thumbnailUrl === "string" &&
132
+ typeof paramsThumbnailUrl === "string") {
133
+ if (decoratedThumbnail.thumbnailUrl.split("?")[0] ===
134
+ paramsThumbnailUrl.split("?")[0]) {
135
+ delete requestOptions.params.thumbnailUrl;
136
+ }
137
+ }
108
138
  return request(url, requestOptions);
109
139
  });
110
140
  }
@@ -497,7 +527,17 @@ function getItem(id, requestOptions) {
497
527
  const url = getItemBaseUrl(id, requestOptions);
498
528
  // default to a GET request
499
529
  const options = Object.assign({ httpMethod: "GET" }, requestOptions);
500
- return request(url, options);
530
+ return request(url, options).then(async (item) => {
531
+ const portal = (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.portal) || getPortalUrl(requestOptions);
532
+ let token;
533
+ // if authentication is provided and it’s an authentication manager and the item is not public then request a token for secure access
534
+ if ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.authentication) &&
535
+ typeof requestOptions.authentication !== "string" &&
536
+ item.access !== "public") {
537
+ token = await requestOptions.authentication.getToken(url);
538
+ }
539
+ return decorateThumbnail(item, portal, token);
540
+ });
501
541
  }
502
542
  /**
503
543
  * Get the fully qualified base URL to the REST end point for an item.
@@ -537,7 +577,6 @@ function getItemData(id, requestOptions) {
537
577
  /* if the item doesn't include data, the response will be empty
538
578
  and the internal call to response.json() will fail */
539
579
  const emptyResponseErr = RegExp(/The string did not match the expected pattern|(Unexpected end of (JSON input|data at line 1 column 1))/i);
540
- /* istanbul ignore else */
541
580
  if (emptyResponseErr.test(err.message)) {
542
581
  return;
543
582
  }
@@ -650,7 +689,6 @@ function getItemGroups(id, requestOptions) {
650
689
  * .then(response)
651
690
  * ```
652
691
  *
653
- * @param id - The Id of the item to get status for.
654
692
  * @param requestOptions - Options for the request
655
693
  * @returns A Promise to get the item status.
656
694
  */
@@ -674,7 +712,6 @@ function getItemStatus(requestOptions) {
674
712
  * .then(response)
675
713
  * ```
676
714
  *
677
- * @param id - The Id of the item to get part list.
678
715
  * @param requestOptions - Options for the request
679
716
  * @returns A Promise to get the item part list.
680
717
  */
@@ -2129,7 +2166,7 @@ async function determineUsername(requestOptions) {
2129
2166
  /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2130
2167
  * Apache-2.0 */
2131
2168
  /**
2132
- * Get information about a user. This method has proven so generically useful that you can also call {@linkcode ArcGISIdentityManager.getUser}.
2169
+ * Get information about a user. This method has proven so generically useful that you can also call {@linkcode @esri/arcgis-rest-request!ArcGISIdentityManager.getUser}.
2133
2170
  *
2134
2171
  * ```js
2135
2172
  * import { getUser } from '@esri/arcgis-rest-portal';
@@ -2174,7 +2211,7 @@ async function getUser(requestOptions) {
2174
2211
  * .then(response)
2175
2212
  * ```
2176
2213
  *
2177
- * @param IGetUserOptions - options to pass through in the request
2214
+ * @param requestOptions - options to pass through in the request
2178
2215
  * @returns A Promise that will resolve with the user tag array
2179
2216
  */
2180
2217
  async function getUserTags(requestOptions) {
@@ -2863,7 +2900,6 @@ async function unshareFromGroup(requestOptions) {
2863
2900
  /**
2864
2901
  * Determine if a specific service name is available in the current user's organization
2865
2902
  *
2866
- * @export
2867
2903
  * @param {string} name
2868
2904
  * @param {ArcGISIdentityManager} session
2869
2905
  * @return {*} {Promise<IServiceNameAvailable>}
@@ -2886,7 +2922,6 @@ function isServiceNameAvailable(name, type, session) {
2886
2922
  * Given a starting name, return a service name that is unique within
2887
2923
  * the current users organization
2888
2924
  *
2889
- * @export
2890
2925
  * @param {string} name
2891
2926
  * @param {ArcGISIdentityManager} session
2892
2927
  * @param {number} step
@@ -2970,5 +3005,5 @@ function getPortalSettings(id, requestOptions) {
2970
3005
  return request(url, options);
2971
3006
  }
2972
3007
 
2973
- export { SearchQueryBuilder, acceptInvitation, addGroupUsers, addItemData, addItemPart, addItemRelationship, addItemResource, bboxToString, cancelItemUpload, commitItemUpload, createFolder, createGroup, createGroupNotification, createItem, createItemInFolder, createOrgNotification, declineInvitation, determineOwner, determineUsername, ensureMembership, exportItem, getGroup, getGroupCategorySchema, getGroupContent, getGroupUsers, getItem, getItemBaseUrl, getItemData, getItemGroups, getItemInfo, getItemMetadata, getItemParts, getItemResource, getItemResources, getItemStatus, getPortal, getPortalSettings, getPortalUrl, getRelatedItems, getSelf, getSharingUrl, getUniqueServiceName, getUser, getUserContent, getUserInvitation, getUserInvitations, getUserMembership, getUserNotifications, getUserProperties, getUserTags, getUserUrl, inviteGroupUsers, isBBox, isItemOwner, isItemSharedWithGroup, isOrgAdmin, isServiceNameAvailable, joinGroup, leaveGroup, moveItem, protectGroup, protectItem, reassignItem, removeFolder, removeGroup, removeGroupUsers, removeItem, removeItemRelationship, removeItemResource, removeItemThumbnail, removeNotification, scrubControlChars, searchCommunityUsers, searchGroupContent, searchGroupUsers, searchGroups, searchItems, searchUsers, setItemAccess, setUserProperties, shareItemWithGroup, unprotectGroup, unprotectItem, unshareItemWithGroup, updateGroup, updateItem, updateItemInfo, updateItemResource, updateUser, updateUserMemberships };
3008
+ export { SearchQueryBuilder, acceptInvitation, addGroupUsers, addItemData, addItemPart, addItemRelationship, addItemResource, bboxToString, cancelItemUpload, commitItemUpload, createFolder, createGroup, createGroupNotification, createItem, createItemInFolder, createOrgNotification, declineInvitation, decorateThumbnail, determineOwner, determineUsername, ensureMembership, exportItem, getGroup, getGroupCategorySchema, getGroupContent, getGroupUsers, getItem, getItemBaseUrl, getItemData, getItemGroups, getItemInfo, getItemMetadata, getItemParts, getItemResource, getItemResources, getItemStatus, getPortal, getPortalSettings, getPortalUrl, getRelatedItems, getSelf, getSharingUrl, getUniqueServiceName, getUser, getUserContent, getUserInvitation, getUserInvitations, getUserMembership, getUserNotifications, getUserProperties, getUserTags, getUserUrl, inviteGroupUsers, isBBox, isItemOwner, isItemSharedWithGroup, isOrgAdmin, isServiceNameAvailable, joinGroup, leaveGroup, moveItem, protectGroup, protectItem, reassignItem, removeFolder, removeGroup, removeGroupUsers, removeItem, removeItemRelationship, removeItemResource, removeItemThumbnail, removeNotification, scrubControlChars, searchCommunityUsers, searchGroupContent, searchGroupUsers, searchGroups, searchItems, searchUsers, setItemAccess, setUserProperties, shareItemWithGroup, unprotectGroup, unprotectItem, unshareItemWithGroup, updateGroup, updateItem, updateItemInfo, updateItemResource, updateUser, updateUserMemberships };
2974
3009
  //# sourceMappingURL=portal.esm.js.map