@esri/hub-common 11.23.1 → 12.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/dist/esm/ArcGISContext.js +24 -1
  2. package/dist/esm/ArcGISContext.js.map +1 -1
  3. package/dist/esm/ArcGISContextManager.js +48 -0
  4. package/dist/esm/ArcGISContextManager.js.map +1 -1
  5. package/dist/esm/content/compose.js +12 -0
  6. package/dist/esm/content/compose.js.map +1 -1
  7. package/dist/esm/core/HubItemEntity.js +39 -57
  8. package/dist/esm/core/HubItemEntity.js.map +1 -1
  9. package/dist/esm/core/_internal/PropertyMapper.js +10 -2
  10. package/dist/esm/core/_internal/PropertyMapper.js.map +1 -1
  11. package/dist/esm/core/_internal/getBasePropertyMap.js +1 -0
  12. package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -1
  13. package/dist/esm/core/behaviors/IWithPermissionBehavior.js +0 -68
  14. package/dist/esm/core/behaviors/IWithPermissionBehavior.js.map +1 -1
  15. package/dist/esm/core/fetchHubEntity.js +28 -0
  16. package/dist/esm/core/fetchHubEntity.js.map +1 -0
  17. package/dist/esm/core/getTypeFromEntity.js +26 -0
  18. package/dist/esm/core/getTypeFromEntity.js.map +1 -0
  19. package/dist/esm/core/index.js +2 -1
  20. package/dist/esm/core/index.js.map +1 -1
  21. package/dist/esm/core/types/HubEntity.js +1 -0
  22. package/dist/esm/core/types/HubEntity.js.map +1 -0
  23. package/dist/esm/core/types/HubEntityType.js +1 -0
  24. package/dist/esm/core/types/HubEntityType.js.map +1 -0
  25. package/dist/esm/core/types/ISystemStatus.js +21 -0
  26. package/dist/esm/core/types/ISystemStatus.js.map +1 -0
  27. package/dist/esm/core/types/index.js +3 -2
  28. package/dist/esm/core/types/index.js.map +1 -1
  29. package/dist/esm/index.js +1 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/initiatives/HubInitiative.js +0 -13
  32. package/dist/esm/initiatives/HubInitiative.js.map +1 -1
  33. package/dist/esm/permissions/HubPermissionPolicies.js +18 -0
  34. package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -0
  35. package/dist/esm/permissions/_internal/checkAuthentication.js +24 -0
  36. package/dist/esm/permissions/_internal/checkAuthentication.js.map +1 -0
  37. package/dist/esm/permissions/_internal/checkEdit.js +35 -0
  38. package/dist/esm/permissions/_internal/checkEdit.js.map +1 -0
  39. package/dist/esm/permissions/_internal/checkEntityPolicy.js +56 -0
  40. package/dist/esm/permissions/_internal/checkEntityPolicy.js.map +1 -0
  41. package/dist/esm/permissions/_internal/checkLicense.js +27 -0
  42. package/dist/esm/permissions/_internal/checkLicense.js.map +1 -0
  43. package/dist/esm/permissions/_internal/checkOwner.js +36 -0
  44. package/dist/esm/permissions/_internal/checkOwner.js.map +1 -0
  45. package/dist/esm/permissions/_internal/checkPrivileges.js +27 -0
  46. package/dist/esm/permissions/_internal/checkPrivileges.js.map +1 -0
  47. package/dist/esm/permissions/_internal/getPolicyResponseCode.js +29 -0
  48. package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -0
  49. package/dist/esm/permissions/checkPermission.js +88 -0
  50. package/dist/esm/permissions/checkPermission.js.map +1 -0
  51. package/dist/esm/permissions/index.js +5 -0
  52. package/dist/esm/permissions/index.js.map +1 -0
  53. package/dist/esm/permissions/types/HubLicense.js +1 -0
  54. package/dist/esm/permissions/types/HubLicense.js.map +1 -0
  55. package/dist/esm/permissions/types/IAccessResponse.js +1 -0
  56. package/dist/esm/permissions/types/IAccessResponse.js.map +1 -0
  57. package/dist/esm/permissions/types/IEntityPermissionPolicy.js +1 -0
  58. package/dist/esm/permissions/types/IEntityPermissionPolicy.js.map +1 -0
  59. package/dist/esm/permissions/types/IPermissionPolicy.js +1 -0
  60. package/dist/esm/permissions/types/IPermissionPolicy.js.map +1 -0
  61. package/dist/esm/permissions/types/IPolicyCheck.js +1 -0
  62. package/dist/esm/permissions/types/IPolicyCheck.js.map +1 -0
  63. package/dist/esm/permissions/types/Permission.js +24 -0
  64. package/dist/esm/permissions/types/Permission.js.map +1 -0
  65. package/dist/esm/permissions/types/PlatformPrivilege.js +5 -0
  66. package/dist/esm/permissions/types/PlatformPrivilege.js.map +1 -0
  67. package/dist/esm/permissions/types/PolicyResponse.js +4 -0
  68. package/dist/esm/permissions/types/PolicyResponse.js.map +1 -0
  69. package/dist/esm/permissions/types/index.js +9 -0
  70. package/dist/esm/permissions/types/index.js.map +1 -0
  71. package/dist/esm/permissions/utils.js +26 -0
  72. package/dist/esm/permissions/utils.js.map +1 -0
  73. package/dist/esm/projects/HubProject.js +5 -14
  74. package/dist/esm/projects/HubProject.js.map +1 -1
  75. package/dist/esm/projects/_internal/ProjectPermissionPolicies.js +35 -0
  76. package/dist/esm/projects/_internal/ProjectPermissionPolicies.js.map +1 -0
  77. package/dist/esm/projects/_internal.js +43 -0
  78. package/dist/esm/projects/_internal.js.map +1 -0
  79. package/dist/esm/projects/edit.js +115 -0
  80. package/dist/esm/projects/edit.js.map +1 -0
  81. package/dist/esm/projects/fetch.js +104 -0
  82. package/dist/esm/projects/fetch.js.map +1 -0
  83. package/dist/esm/projects/index.js +2 -1
  84. package/dist/esm/projects/index.js.map +1 -1
  85. package/dist/esm/search/Catalog.js.map +1 -1
  86. package/dist/esm/sites/HubSite.js +0 -13
  87. package/dist/esm/sites/HubSite.js.map +1 -1
  88. package/dist/esm/sites/_internal/SitesPermissionPolicies.js +34 -0
  89. package/dist/esm/sites/_internal/SitesPermissionPolicies.js.map +1 -0
  90. package/dist/esm/util.js +3 -1
  91. package/dist/esm/util.js.map +1 -1
  92. package/dist/node/ArcGISContext.js +28 -5
  93. package/dist/node/ArcGISContext.js.map +1 -1
  94. package/dist/node/ArcGISContextManager.js +48 -0
  95. package/dist/node/ArcGISContextManager.js.map +1 -1
  96. package/dist/node/content/compose.js +12 -0
  97. package/dist/node/content/compose.js.map +1 -1
  98. package/dist/node/core/HubItemEntity.js +38 -56
  99. package/dist/node/core/HubItemEntity.js.map +1 -1
  100. package/dist/node/core/_internal/PropertyMapper.js +9 -1
  101. package/dist/node/core/_internal/PropertyMapper.js.map +1 -1
  102. package/dist/node/core/_internal/getBasePropertyMap.js +1 -0
  103. package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
  104. package/dist/node/core/behaviors/IWithPermissionBehavior.js +0 -73
  105. package/dist/node/core/behaviors/IWithPermissionBehavior.js.map +1 -1
  106. package/dist/node/core/fetchHubEntity.js +32 -0
  107. package/dist/node/core/fetchHubEntity.js.map +1 -0
  108. package/dist/node/core/getTypeFromEntity.js +30 -0
  109. package/dist/node/core/getTypeFromEntity.js.map +1 -0
  110. package/dist/node/core/index.js +2 -1
  111. package/dist/node/core/index.js.map +1 -1
  112. package/dist/node/core/types/{IHubPermission.js → HubEntity.js} +1 -1
  113. package/dist/node/core/types/HubEntity.js.map +1 -0
  114. package/dist/node/core/types/HubEntityType.js +3 -0
  115. package/dist/node/core/types/HubEntityType.js.map +1 -0
  116. package/dist/node/core/types/ISystemStatus.js +25 -0
  117. package/dist/node/core/types/ISystemStatus.js.map +1 -0
  118. package/dist/node/core/types/index.js +3 -2
  119. package/dist/node/core/types/index.js.map +1 -1
  120. package/dist/node/index.js +1 -0
  121. package/dist/node/index.js.map +1 -1
  122. package/dist/node/initiatives/HubInitiative.js +0 -13
  123. package/dist/node/initiatives/HubInitiative.js.map +1 -1
  124. package/dist/node/permissions/HubPermissionPolicies.js +22 -0
  125. package/dist/node/permissions/HubPermissionPolicies.js.map +1 -0
  126. package/dist/node/permissions/_internal/checkAuthentication.js +28 -0
  127. package/dist/node/permissions/_internal/checkAuthentication.js.map +1 -0
  128. package/dist/node/permissions/_internal/checkEdit.js +39 -0
  129. package/dist/node/permissions/_internal/checkEdit.js.map +1 -0
  130. package/dist/node/permissions/_internal/checkEntityPolicy.js +60 -0
  131. package/dist/node/permissions/_internal/checkEntityPolicy.js.map +1 -0
  132. package/dist/node/permissions/_internal/checkLicense.js +31 -0
  133. package/dist/node/permissions/_internal/checkLicense.js.map +1 -0
  134. package/dist/node/permissions/_internal/checkOwner.js +40 -0
  135. package/dist/node/permissions/_internal/checkOwner.js.map +1 -0
  136. package/dist/node/permissions/_internal/checkPrivileges.js +31 -0
  137. package/dist/node/permissions/_internal/checkPrivileges.js.map +1 -0
  138. package/dist/node/permissions/_internal/getPolicyResponseCode.js +33 -0
  139. package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -0
  140. package/dist/node/permissions/checkPermission.js +92 -0
  141. package/dist/node/permissions/checkPermission.js.map +1 -0
  142. package/dist/node/permissions/index.js +8 -0
  143. package/dist/node/permissions/index.js.map +1 -0
  144. package/dist/node/permissions/types/HubLicense.js +3 -0
  145. package/dist/node/permissions/types/HubLicense.js.map +1 -0
  146. package/dist/node/permissions/types/IAccessResponse.js +3 -0
  147. package/dist/node/permissions/types/IAccessResponse.js.map +1 -0
  148. package/dist/node/permissions/types/IEntityPermissionPolicy.js +3 -0
  149. package/dist/node/permissions/types/IEntityPermissionPolicy.js.map +1 -0
  150. package/dist/node/permissions/types/IPermissionPolicy.js +3 -0
  151. package/dist/node/permissions/types/IPermissionPolicy.js.map +1 -0
  152. package/dist/node/permissions/types/IPolicyCheck.js +3 -0
  153. package/dist/node/permissions/types/IPolicyCheck.js.map +1 -0
  154. package/dist/node/permissions/types/Permission.js +28 -0
  155. package/dist/node/permissions/types/Permission.js.map +1 -0
  156. package/dist/node/permissions/types/PlatformPrivilege.js +7 -0
  157. package/dist/node/permissions/types/PlatformPrivilege.js.map +1 -0
  158. package/dist/node/permissions/types/PolicyResponse.js +6 -0
  159. package/dist/node/permissions/types/PolicyResponse.js.map +1 -0
  160. package/dist/node/permissions/types/index.js +12 -0
  161. package/dist/node/permissions/types/index.js.map +1 -0
  162. package/dist/node/permissions/utils.js +31 -0
  163. package/dist/node/permissions/utils.js.map +1 -0
  164. package/dist/node/projects/HubProject.js +10 -19
  165. package/dist/node/projects/HubProject.js.map +1 -1
  166. package/dist/node/projects/_internal/ProjectPermissionPolicies.js +38 -0
  167. package/dist/node/projects/_internal/ProjectPermissionPolicies.js.map +1 -0
  168. package/dist/node/projects/_internal.js +48 -0
  169. package/dist/node/projects/_internal.js.map +1 -0
  170. package/dist/node/projects/edit.js +122 -0
  171. package/dist/node/projects/edit.js.map +1 -0
  172. package/dist/node/projects/fetch.js +110 -0
  173. package/dist/node/projects/fetch.js.map +1 -0
  174. package/dist/node/projects/index.js +2 -1
  175. package/dist/node/projects/index.js.map +1 -1
  176. package/dist/node/search/Catalog.js.map +1 -1
  177. package/dist/node/sites/HubSite.js +0 -13
  178. package/dist/node/sites/HubSite.js.map +1 -1
  179. package/dist/node/sites/_internal/SitesPermissionPolicies.js +37 -0
  180. package/dist/node/sites/_internal/SitesPermissionPolicies.js.map +1 -0
  181. package/dist/node/util.js +3 -1
  182. package/dist/node/util.js.map +1 -1
  183. package/dist/types/ArcGISContext.d.ts +23 -1
  184. package/dist/types/ArcGISContextManager.d.ts +6 -1
  185. package/dist/types/content/_internal.d.ts +15 -5
  186. package/dist/types/core/HubItemEntity.d.ts +29 -4
  187. package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +23 -35
  188. package/dist/types/core/behaviors/IWithStoreBehavior.d.ts +10 -10
  189. package/dist/types/core/fetchHubEntity.d.ts +11 -0
  190. package/dist/types/core/getTypeFromEntity.d.ts +8 -0
  191. package/dist/types/core/index.d.ts +2 -1
  192. package/dist/types/core/traits/IWithPermissions.d.ts +3 -3
  193. package/dist/types/core/types/HubEntity.d.ts +5 -0
  194. package/dist/types/core/types/HubEntityType.d.ts +1 -0
  195. package/dist/types/core/types/IHubContent.d.ts +2 -1
  196. package/dist/types/core/types/IHubItemEntity.d.ts +19 -2
  197. package/dist/types/core/types/ISystemStatus.d.ts +22 -0
  198. package/dist/types/core/types/index.d.ts +3 -2
  199. package/dist/types/index.d.ts +1 -0
  200. package/dist/types/initiatives/HubInitiative.d.ts +1 -7
  201. package/dist/types/permissions/HubPermissionPolicies.d.ts +11 -0
  202. package/dist/types/permissions/_internal/checkAuthentication.d.ts +11 -0
  203. package/dist/types/permissions/_internal/checkEdit.d.ts +11 -0
  204. package/dist/types/permissions/_internal/checkEntityPolicy.d.ts +9 -0
  205. package/dist/types/permissions/_internal/checkLicense.d.ts +10 -0
  206. package/dist/types/permissions/_internal/checkOwner.d.ts +11 -0
  207. package/dist/types/permissions/_internal/checkPrivileges.d.ts +11 -0
  208. package/dist/types/permissions/_internal/getPolicyResponseCode.d.ts +7 -0
  209. package/dist/types/permissions/checkPermission.d.ts +11 -0
  210. package/dist/types/permissions/index.d.ts +4 -0
  211. package/dist/types/permissions/types/HubLicense.d.ts +4 -0
  212. package/dist/types/permissions/types/IAccessResponse.d.ts +29 -0
  213. package/dist/types/permissions/types/IEntityPermissionPolicy.d.ts +22 -0
  214. package/dist/types/permissions/types/IPermissionPolicy.d.ts +48 -0
  215. package/dist/types/permissions/types/IPolicyCheck.d.ts +25 -0
  216. package/dist/types/permissions/types/Permission.d.ts +17 -0
  217. package/dist/types/permissions/types/PlatformPrivilege.d.ts +5 -0
  218. package/dist/types/permissions/types/PolicyResponse.d.ts +4 -0
  219. package/dist/types/permissions/types/index.d.ts +8 -0
  220. package/dist/types/permissions/utils.d.ts +18 -0
  221. package/dist/types/projects/HubProject.d.ts +1 -7
  222. package/dist/types/projects/_internal/ProjectPermissionPolicies.d.ts +7 -0
  223. package/dist/types/projects/_internal.d.ts +20 -0
  224. package/dist/types/projects/{HubProjects.d.ts → edit.d.ts} +1 -29
  225. package/dist/types/projects/fetch.d.ts +30 -0
  226. package/dist/types/projects/index.d.ts +2 -1
  227. package/dist/types/sites/HubSite.d.ts +1 -7
  228. package/dist/types/sites/_internal/SitesPermissionPolicies.d.ts +6 -0
  229. package/package.json +1 -1
  230. package/dist/esm/core/PermissionManager.js +0 -60
  231. package/dist/esm/core/PermissionManager.js.map +0 -1
  232. package/dist/esm/core/types/IHubPermission.js +0 -1
  233. package/dist/esm/core/types/IHubPermission.js.map +0 -1
  234. package/dist/esm/projects/HubProjects.js +0 -248
  235. package/dist/esm/projects/HubProjects.js.map +0 -1
  236. package/dist/node/core/PermissionManager.js +0 -64
  237. package/dist/node/core/PermissionManager.js.map +0 -1
  238. package/dist/node/core/types/IHubPermission.js.map +0 -1
  239. package/dist/node/projects/HubProjects.js +0 -258
  240. package/dist/node/projects/HubProjects.js.map +0 -1
  241. package/dist/types/core/PermissionManager.d.ts +0 -43
  242. package/dist/types/core/types/IHubPermission.d.ts +0 -23
@@ -1,4 +1,4 @@
1
- import { IHubSite, IWithPermissionBehavior, IWithCatalogBehavior, PermissionManager, IWithStoreBehavior, IWithSharingBehavior } from "../core";
1
+ import { IHubSite, IWithPermissionBehavior, IWithCatalogBehavior, IWithStoreBehavior, IWithSharingBehavior } from "../core";
2
2
  import { Catalog } from "../search/Catalog";
3
3
  import { IArcGISContext } from "../ArcGISContext";
4
4
  import { HubItemEntity } from "../core/HubItemEntity";
@@ -9,7 +9,6 @@ import { IContainsResponse, IDeepCatalogInfo } from "../search";
9
9
  */
10
10
  export declare class HubSite extends HubItemEntity<IHubSite> implements IWithStoreBehavior<IHubSite>, IWithPermissionBehavior, IWithCatalogBehavior, IWithSharingBehavior {
11
11
  private _catalog;
12
- private _permissionManager;
13
12
  private _catalogCache;
14
13
  /**
15
14
  * Private constructor so we don't have `new` all over the place. Allows for
@@ -22,11 +21,6 @@ export declare class HubSite extends HubItemEntity<IHubSite> implements IWithSto
22
21
  * @returns
23
22
  */
24
23
  get catalog(): Catalog;
25
- /**
26
- * PermissionManager instance for this site. Note: Do not hold direct references to this object; always access it from the site.
27
- * @returns
28
- */
29
- get permissions(): PermissionManager;
30
24
  /**
31
25
  * Create an instance from an IHubSite object
32
26
  * @param json - JSON object to create a HubSite from
@@ -0,0 +1,6 @@
1
+ import { IPermissionPolicy } from "../../permissions/types";
2
+ /**
3
+ * Site permission policies
4
+ * @private
5
+ */
6
+ export declare const SitesPermissionPolicies: IPermissionPolicy[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/hub-common",
3
- "version": "11.23.1",
3
+ "version": "12.0.0-alpha.1",
4
4
  "description": "Common TypeScript types and utility functions for @esri/hub.js.",
5
5
  "main": "dist/node/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,60 +0,0 @@
1
- import { cloneObject, createId } from "../util";
2
- import { checkPermission, getPermissions, addPermission, removePermission, } from "./behaviors/IWithPermissionBehavior";
3
- /**
4
- * Permission Manager class that provides permission behavior for a given entity
5
- */
6
- export class PermissionManager {
7
- constructor(permissions, context) {
8
- this._permissions = permissions;
9
- this._context = context;
10
- }
11
- /**
12
- * Create a new PermissionManager instance from configuration and context
13
- * @param permissions
14
- * @param context
15
- * @returns
16
- */
17
- static fromJson(permissions, context) {
18
- return new PermissionManager(permissions, context);
19
- }
20
- /**
21
- * Check if the user has a specific permission in the context of an entity
22
- * @param permission
23
- */
24
- check(permission) {
25
- return checkPermission(permission, this._context.currentUser, this._permissions);
26
- }
27
- /**
28
- * Get all the permission definitions for the specific permission
29
- * @param key permission to check for
30
- */
31
- get(permission) {
32
- return getPermissions(permission, this._permissions);
33
- }
34
- /**
35
- * Set a permission for the given entity
36
- * @param permission
37
- */
38
- add(permission) {
39
- if (!permission.id) {
40
- permission.id = createId("p");
41
- }
42
- this._permissions = addPermission(permission, this._permissions);
43
- }
44
- /**
45
- * Remove a permission by targetId
46
- * @param permission
47
- * @param targetId
48
- */
49
- remove(permission, targetId) {
50
- this._permissions = removePermission(permission, targetId, this._permissions);
51
- }
52
- /**
53
- * Return the current permissions as a JSON object
54
- * @returns {IHubPermission[]}
55
- */
56
- toJson() {
57
- return cloneObject(this._permissions);
58
- }
59
- }
60
- //# sourceMappingURL=PermissionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../../src/core/PermissionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAG7C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAI5B,YAAoB,WAA6B,EAAE,OAAuB;QACxE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,WAA6B,EAC7B,OAAuB;QAEvB,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAyB;QAC7B,OAAO,eAAe,CACpB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAAyB;QAC3B,OAAO,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAA0B;QAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAClB,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAyB,EAAE,QAAgB;QAChD,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAClC,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IHubPermission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IHubPermission.js","sourceRoot":"","sources":["../../../../src/core/types/IHubPermission.ts"],"names":[],"mappings":""}
@@ -1,248 +0,0 @@
1
- // Note - we separate these imports so we can cleanly spy on things in tests
2
- import { createModel, fetchModelFromItem, getModel, updateModel, } from "../models";
3
- import { constructSlug, getItemBySlug, getUniqueSlug, setSlugKeyword, } from "../items/slugs";
4
- import { isGuid, cloneObject, getItemThumbnailUrl, unique, mapBy, getProp, getFamily, getItemHomeUrl, interpolate, } from "../index";
5
- import { removeItem, getItem, } from "@esri/arcgis-rest-portal";
6
- import { PropertyMapper } from "../core/_internal/PropertyMapper";
7
- import { parseInclude } from "../search/_internal/parseInclude";
8
- import { fetchItemEnrichments } from "../items/_enrichments";
9
- import { getHubRelativeUrl } from "../content/_internal";
10
- import { DEFAULT_PROJECT, DEFAULT_PROJECT_MODEL } from "./defaults";
11
- import { getBasePropertyMap } from "../core/_internal/getBasePropertyMap";
12
- import { HubProjectEditUiSchema, HubProjectCreateUiSchema, HubProjectSchema, } from "../core/schemas";
13
- import { filterSchemaToUiSchema } from "../core/schemas/internal";
14
- import { applyUiSchemaElementOptions } from "../core/schemas/internal/applyUiSchemaElementOptions";
15
- /**
16
- * Returns an Array of IPropertyMap objects
17
- * that define the projection of properties from a IModel to an IHubProject
18
- * @returns
19
- */
20
- function getPropertyMap() {
21
- const map = getBasePropertyMap();
22
- // Type specific mappings
23
- map.push({ objectKey: "status", modelKey: "data.status" });
24
- map.push({ objectKey: "catalog", modelKey: "data.catalog" });
25
- map.push({ objectKey: "permissions", modelKey: "data.permissions" });
26
- map.push({ objectKey: "contacts", modelKey: "data.contacts" });
27
- map.push({ objectKey: "timeline", modelKey: "data.timeline" });
28
- return map;
29
- }
30
- /**
31
- * @private
32
- * Create a new Hub Project item
33
- *
34
- * Minimal properties are name and org
35
- *
36
- * @param project
37
- * @param requestOptions
38
- */
39
- export async function createProject(partialProject, requestOptions) {
40
- // merge incoming with the default
41
- // this expansion solves the typing somehow
42
- const project = Object.assign(Object.assign({}, DEFAULT_PROJECT), partialProject);
43
- // Create a slug from the title if one is not passed in
44
- if (!project.slug) {
45
- project.slug = constructSlug(project.name, project.orgUrlKey);
46
- }
47
- // Ensure slug is unique
48
- project.slug = await getUniqueSlug({ slug: project.slug }, requestOptions);
49
- // add slug to keywords
50
- project.typeKeywords = setSlugKeyword(project.typeKeywords, project.slug);
51
- // Map project object onto a default project Model
52
- const mapper = new PropertyMapper(getPropertyMap());
53
- // create model from object, using the default model as a starting point
54
- let model = mapper.objectToModel(project, cloneObject(DEFAULT_PROJECT_MODEL));
55
- // create the item
56
- model = await createModel(model, requestOptions);
57
- // map the model back into a IHubProject
58
- let newProject = mapper.modelToObject(model, {});
59
- newProject = computeProps(model, newProject, requestOptions);
60
- // and return it
61
- return newProject;
62
- }
63
- /**
64
- * @private
65
- * Update a Hub Project
66
- * @param project
67
- * @param requestOptions
68
- */
69
- export async function updateProject(project, requestOptions) {
70
- // verify that the slug is unique, excluding the current project
71
- project.slug = await getUniqueSlug({ slug: project.slug, existingId: project.id }, requestOptions);
72
- // get the backing item & data
73
- const model = await getModel(project.id, requestOptions);
74
- // create the PropertyMapper
75
- const mapper = new PropertyMapper(getPropertyMap());
76
- // Note: Although we are fetching the model, and applying changes onto it,
77
- // we are not attempting to handle "concurrent edit" conflict resolution
78
- // but this is where we would apply that sort of logic
79
- const modelToUpdate = mapper.objectToModel(project, model);
80
- // update the backing item
81
- const updatedModel = await updateModel(modelToUpdate, requestOptions);
82
- // now map back into a project and return that
83
- let updatedProject = mapper.modelToObject(updatedModel, project);
84
- updatedProject = computeProps(model, updatedProject, requestOptions);
85
- // the casting is needed because modelToObject returns a `Partial<T>`
86
- // where as this function returns a `T`
87
- return updatedProject;
88
- }
89
- /**
90
- * @private
91
- * Get a Hub Project by id or slug
92
- * @param identifier item id or slug
93
- * @param requestOptions
94
- */
95
- export function fetchProject(identifier, requestOptions) {
96
- let getPrms;
97
- if (isGuid(identifier)) {
98
- // get item by id
99
- getPrms = getItem(identifier, requestOptions);
100
- }
101
- else {
102
- getPrms = getItemBySlug(identifier, requestOptions);
103
- }
104
- return getPrms.then((item) => {
105
- if (!item)
106
- return null;
107
- return convertItemToProject(item, requestOptions);
108
- });
109
- }
110
- /**
111
- * @private
112
- * Remove a Hub Project
113
- * @param id
114
- * @param requestOptions
115
- */
116
- export async function deleteProject(id, requestOptions) {
117
- const ro = Object.assign(Object.assign({}, requestOptions), { id });
118
- await removeItem(ro);
119
- return;
120
- }
121
- /**
122
- * @private
123
- * Convert an Hub Project Item into a Hub Project, fetching any additional
124
- * information that may be required
125
- * @param item
126
- * @param auth
127
- * @returns
128
- */
129
- export async function convertItemToProject(item, requestOptions) {
130
- const model = await fetchModelFromItem(item, requestOptions);
131
- // TODO: In the future we will handle the boundary fetching from resource
132
- const mapper = new PropertyMapper(getPropertyMap());
133
- const prj = mapper.modelToObject(model, {});
134
- return computeProps(model, prj, requestOptions);
135
- }
136
- /**
137
- * Given a model and a project, set various computed properties that can't be directly mapped
138
- * @param model
139
- * @param project
140
- * @param requestOptions
141
- * @returns
142
- */
143
- function computeProps(model, project, requestOptions) {
144
- let token;
145
- if (requestOptions.authentication) {
146
- const session = requestOptions.authentication;
147
- token = session.token;
148
- }
149
- // thumbnail url
150
- project.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
151
- // Handle Dates
152
- project.createdDate = new Date(model.item.created);
153
- project.createdDateSource = "item.created";
154
- project.updatedDate = new Date(model.item.modified);
155
- project.updatedDateSource = "item.modified";
156
- // cast b/c this takes a partial but returns a full project
157
- return project;
158
- }
159
- /**
160
- * @private
161
- * Fetch project specific enrichments
162
- * @param item
163
- * @param include
164
- * @param requestOptions
165
- * @returns
166
- */
167
- export async function enrichProjectSearchResult(item, include, requestOptions) {
168
- // Create the basic structure
169
- const result = {
170
- access: item.access,
171
- id: item.id,
172
- type: item.type,
173
- name: item.title,
174
- owner: item.owner,
175
- typeKeywords: item.typeKeywords,
176
- tags: item.tags,
177
- categories: item.categories,
178
- summary: item.snippet || item.description,
179
- createdDate: new Date(item.created),
180
- createdDateSource: "item.created",
181
- updatedDate: new Date(item.modified),
182
- updatedDateSource: "item.modified",
183
- family: getFamily(item.type),
184
- links: {
185
- self: "not-implemented",
186
- siteRelative: "not-implemented",
187
- thumbnail: "not-implemented",
188
- },
189
- };
190
- // default includes
191
- const DEFAULTS = [];
192
- // merge includes
193
- include = [...DEFAULTS, ...include].filter(unique);
194
- // Parse the includes into a valid set of enrichments
195
- const specs = include.map(parseInclude);
196
- // Extract out the low-level enrichments needed
197
- const enrichments = mapBy("enrichment", specs).filter(unique);
198
- // fetch the enrichments
199
- let enriched = {};
200
- if (enrichments.length) {
201
- // TODO: Look into caching for the requests in fetchItemEnrichments
202
- enriched = await fetchItemEnrichments(item, enrichments, requestOptions);
203
- }
204
- // map the enriched props onto the result
205
- specs.forEach((spec) => {
206
- result[spec.prop] = getProp(enriched, spec.path);
207
- });
208
- // Handle links
209
- // TODO: Link handling should be an enrichment
210
- result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);
211
- result.links.self = getItemHomeUrl(result.id, requestOptions);
212
- result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);
213
- return result;
214
- }
215
- /**
216
- * Get the editor config for for the HubProject entity.
217
- * @param i18nScope Translation scope to be interpolated into the schemas
218
- * @param type
219
- * @param options Optional hash of Element component options
220
- * @returns
221
- */
222
- export async function getHubProjectEditorConfig(i18nScope, type, options = []) {
223
- // schema is always the entire schema
224
- let schema = cloneObject(HubProjectSchema);
225
- // uiSchema is the complete (edit) schema, unless otherwise specified
226
- let uiSchema = cloneObject(HubProjectEditUiSchema);
227
- // by default we don't need to filter the schema b/c it's the entire schema
228
- let filterSchema = false;
229
- // if another schema is requested, we need to use that UI schema
230
- // and the subset the overall schema down to just the properties
231
- // used in the UI schema
232
- switch (type) {
233
- case "create":
234
- uiSchema = cloneObject(HubProjectCreateUiSchema);
235
- filterSchema = true;
236
- break;
237
- }
238
- if (filterSchema) {
239
- // filter out properties not used in the UI schema
240
- schema = filterSchemaToUiSchema(schema, uiSchema);
241
- }
242
- // interpolate the i18n scope into the uiSchema
243
- uiSchema = interpolate(uiSchema, { i18nScope });
244
- // apply the options
245
- uiSchema = applyUiSchemaElementOptions(uiSchema, options);
246
- return Promise.resolve({ schema, uiSchema });
247
- }
248
- //# sourceMappingURL=HubProjects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermissionManager = void 0;
4
- const util_1 = require("../util");
5
- const IWithPermissionBehavior_1 = require("./behaviors/IWithPermissionBehavior");
6
- /**
7
- * Permission Manager class that provides permission behavior for a given entity
8
- */
9
- class PermissionManager {
10
- constructor(permissions, context) {
11
- this._permissions = permissions;
12
- this._context = context;
13
- }
14
- /**
15
- * Create a new PermissionManager instance from configuration and context
16
- * @param permissions
17
- * @param context
18
- * @returns
19
- */
20
- static fromJson(permissions, context) {
21
- return new PermissionManager(permissions, context);
22
- }
23
- /**
24
- * Check if the user has a specific permission in the context of an entity
25
- * @param permission
26
- */
27
- check(permission) {
28
- return IWithPermissionBehavior_1.checkPermission(permission, this._context.currentUser, this._permissions);
29
- }
30
- /**
31
- * Get all the permission definitions for the specific permission
32
- * @param key permission to check for
33
- */
34
- get(permission) {
35
- return IWithPermissionBehavior_1.getPermissions(permission, this._permissions);
36
- }
37
- /**
38
- * Set a permission for the given entity
39
- * @param permission
40
- */
41
- add(permission) {
42
- if (!permission.id) {
43
- permission.id = util_1.createId("p");
44
- }
45
- this._permissions = IWithPermissionBehavior_1.addPermission(permission, this._permissions);
46
- }
47
- /**
48
- * Remove a permission by targetId
49
- * @param permission
50
- * @param targetId
51
- */
52
- remove(permission, targetId) {
53
- this._permissions = IWithPermissionBehavior_1.removePermission(permission, targetId, this._permissions);
54
- }
55
- /**
56
- * Return the current permissions as a JSON object
57
- * @returns {IHubPermission[]}
58
- */
59
- toJson() {
60
- return util_1.cloneObject(this._permissions);
61
- }
62
- }
63
- exports.PermissionManager = PermissionManager;
64
- //# sourceMappingURL=PermissionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../../src/core/PermissionManager.ts"],"names":[],"mappings":";;;AACA,kCAAgD;AAChD,iFAK6C;AAG7C;;GAEG;AACH,MAAa,iBAAiB;IAI5B,YAAoB,WAA6B,EAAE,OAAuB;QACxE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,WAA6B,EAC7B,OAAuB;QAEvB,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAyB;QAC7B,OAAO,yCAAe,CACpB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAAyB;QAC3B,OAAO,wCAAc,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAA0B;QAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAClB,UAAU,CAAC,EAAE,GAAG,eAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,YAAY,GAAG,uCAAa,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAyB,EAAE,QAAgB;QAChD,IAAI,CAAC,YAAY,GAAG,0CAAgB,CAClC,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,kBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF;AAzED,8CAyEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IHubPermission.js","sourceRoot":"","sources":["../../../../src/core/types/IHubPermission.ts"],"names":[],"mappings":""}