@webiny/app-record-locking 6.4.12-beta.4 → 6.5.0-beta.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 (251) hide show
  1. package/RecordLockingModule.d.ts +2 -0
  2. package/RecordLockingModule.js +74 -0
  3. package/RecordLockingModule.js.map +1 -0
  4. package/{components/SecurityPermissions.js → SecurityPermissions.js} +1 -1
  5. package/SecurityPermissions.js.map +1 -0
  6. package/features/acquireLock/AcquireLockGateway.d.ts +12 -0
  7. package/features/acquireLock/AcquireLockGateway.js +43 -0
  8. package/features/acquireLock/AcquireLockGateway.js.map +1 -0
  9. package/features/acquireLock/AcquireLockUseCase.d.ts +10 -0
  10. package/features/acquireLock/AcquireLockUseCase.js +18 -0
  11. package/features/acquireLock/AcquireLockUseCase.js.map +1 -0
  12. package/features/acquireLock/abstractions.d.ts +19 -0
  13. package/features/acquireLock/abstractions.js +6 -0
  14. package/features/acquireLock/abstractions.js.map +1 -0
  15. package/features/acquireLock/feature.d.ts +3 -0
  16. package/features/acquireLock/feature.js +19 -0
  17. package/features/acquireLock/feature.js.map +1 -0
  18. package/features/checkLockStatus/CheckLockStatusGateway.d.ts +12 -0
  19. package/features/checkLockStatus/CheckLockStatusGateway.js +43 -0
  20. package/features/checkLockStatus/CheckLockStatusGateway.js.map +1 -0
  21. package/features/checkLockStatus/CheckLockStatusUseCase.d.ts +10 -0
  22. package/features/checkLockStatus/CheckLockStatusUseCase.js +18 -0
  23. package/features/checkLockStatus/CheckLockStatusUseCase.js.map +1 -0
  24. package/features/checkLockStatus/abstractions.d.ts +19 -0
  25. package/features/checkLockStatus/abstractions.js +6 -0
  26. package/features/checkLockStatus/abstractions.js.map +1 -0
  27. package/features/checkLockStatus/feature.d.ts +3 -0
  28. package/features/checkLockStatus/feature.js +19 -0
  29. package/features/checkLockStatus/feature.js.map +1 -0
  30. package/features/feature.d.ts +1 -0
  31. package/features/feature.js +19 -0
  32. package/features/feature.js.map +1 -0
  33. package/features/forceUnlock/ForceUnlockGateway.d.ts +12 -0
  34. package/features/forceUnlock/ForceUnlockGateway.js +44 -0
  35. package/features/forceUnlock/ForceUnlockGateway.js.map +1 -0
  36. package/features/forceUnlock/ForceUnlockUseCase.d.ts +10 -0
  37. package/features/forceUnlock/ForceUnlockUseCase.js +18 -0
  38. package/features/forceUnlock/ForceUnlockUseCase.js.map +1 -0
  39. package/features/forceUnlock/abstractions.d.ts +19 -0
  40. package/features/forceUnlock/abstractions.js +6 -0
  41. package/features/forceUnlock/abstractions.js.map +1 -0
  42. package/features/forceUnlock/feature.d.ts +3 -0
  43. package/features/forceUnlock/feature.js +19 -0
  44. package/features/forceUnlock/feature.js.map +1 -0
  45. package/{domain/graphql/fields.js → features/graphqlFields.js} +1 -1
  46. package/features/graphqlFields.js.map +1 -0
  47. package/features/listLockRecords/ListLockRecordsGateway.d.ts +12 -0
  48. package/features/listLockRecords/ListLockRecordsGateway.js +48 -0
  49. package/features/listLockRecords/ListLockRecordsGateway.js.map +1 -0
  50. package/features/listLockRecords/ListLockRecordsUseCase.d.ts +10 -0
  51. package/features/listLockRecords/ListLockRecordsUseCase.js +18 -0
  52. package/features/listLockRecords/ListLockRecordsUseCase.js.map +1 -0
  53. package/features/listLockRecords/abstractions.d.ts +22 -0
  54. package/features/listLockRecords/abstractions.js +6 -0
  55. package/features/listLockRecords/abstractions.js.map +1 -0
  56. package/features/listLockRecords/feature.d.ts +3 -0
  57. package/features/listLockRecords/feature.js +19 -0
  58. package/features/listLockRecords/feature.js.map +1 -0
  59. package/features/permissions/abstractions.d.ts +1 -1
  60. package/features/permissions/abstractions.js +1 -1
  61. package/features/permissions/abstractions.js.map +1 -1
  62. package/features/permissions/feature.d.ts +1 -1
  63. package/features/permissions/feature.js +1 -1
  64. package/features/permissions/feature.js.map +1 -1
  65. package/features/releaseLock/ReleaseLockGateway.d.ts +12 -0
  66. package/features/releaseLock/ReleaseLockGateway.js +44 -0
  67. package/features/releaseLock/ReleaseLockGateway.js.map +1 -0
  68. package/features/releaseLock/ReleaseLockUseCase.d.ts +10 -0
  69. package/features/releaseLock/ReleaseLockUseCase.js +18 -0
  70. package/features/releaseLock/ReleaseLockUseCase.js.map +1 -0
  71. package/features/releaseLock/abstractions.d.ts +19 -0
  72. package/features/releaseLock/abstractions.js +6 -0
  73. package/features/releaseLock/abstractions.js.map +1 -0
  74. package/features/releaseLock/feature.d.ts +3 -0
  75. package/features/releaseLock/feature.js +19 -0
  76. package/features/releaseLock/feature.js.map +1 -0
  77. package/index.d.ts +0 -5
  78. package/index.js +12 -13
  79. package/index.js.map +1 -1
  80. package/package.json +13 -17
  81. package/permissions/permissionsSchema.js.map +1 -0
  82. package/presentation/entryLocking/ContentEntryFormPresenterDecorator.d.ts +23 -0
  83. package/presentation/entryLocking/ContentEntryFormPresenterDecorator.js +64 -0
  84. package/presentation/entryLocking/ContentEntryFormPresenterDecorator.js.map +1 -0
  85. package/presentation/entryLocking/RecordLockingPresenter.d.ts +32 -0
  86. package/presentation/entryLocking/RecordLockingPresenter.js +164 -0
  87. package/presentation/entryLocking/RecordLockingPresenter.js.map +1 -0
  88. package/presentation/entryLocking/SingleEntryContentDecorator.d.ts +2 -0
  89. package/presentation/entryLocking/SingleEntryContentDecorator.js +72 -0
  90. package/presentation/entryLocking/SingleEntryContentDecorator.js.map +1 -0
  91. package/presentation/entryLocking/SingleEntryPresenterDecorator.d.ts +15 -0
  92. package/presentation/entryLocking/SingleEntryPresenterDecorator.js +40 -0
  93. package/presentation/entryLocking/SingleEntryPresenterDecorator.js.map +1 -0
  94. package/presentation/entryLocking/abstractions.d.ts +26 -0
  95. package/presentation/entryLocking/abstractions.js +5 -0
  96. package/presentation/entryLocking/abstractions.js.map +1 -0
  97. package/presentation/entryLocking/components/ForceUnlockButton.d.ts +11 -0
  98. package/presentation/entryLocking/components/ForceUnlockButton.js +37 -0
  99. package/presentation/entryLocking/components/ForceUnlockButton.js.map +1 -0
  100. package/presentation/entryLocking/components/LockedEntryOverlay.d.ts +10 -0
  101. package/presentation/entryLocking/components/LockedEntryOverlay.js +52 -0
  102. package/presentation/entryLocking/components/LockedEntryOverlay.js.map +1 -0
  103. package/presentation/entryLocking/components/RecordLockingGuard.d.ts +12 -0
  104. package/presentation/entryLocking/components/RecordLockingGuard.js +74 -0
  105. package/presentation/entryLocking/components/RecordLockingGuard.js.map +1 -0
  106. package/presentation/entryLocking/feature.d.ts +3 -0
  107. package/presentation/entryLocking/feature.js +21 -0
  108. package/presentation/entryLocking/feature.js.map +1 -0
  109. package/presentation/listLocking/ContentEntriesPresenterDecorator.d.ts +24 -0
  110. package/presentation/listLocking/ContentEntriesPresenterDecorator.js +67 -0
  111. package/presentation/listLocking/ContentEntriesPresenterDecorator.js.map +1 -0
  112. package/presentation/listLocking/ListLockRecordsPresenter.d.ts +17 -0
  113. package/presentation/listLocking/ListLockRecordsPresenter.js +52 -0
  114. package/presentation/listLocking/ListLockRecordsPresenter.js.map +1 -0
  115. package/presentation/listLocking/abstractions.d.ts +16 -0
  116. package/presentation/listLocking/abstractions.js +5 -0
  117. package/presentation/listLocking/abstractions.js.map +1 -0
  118. package/presentation/listLocking/components/ListLockRecordsSync.d.ts +3 -0
  119. package/presentation/listLocking/components/ListLockRecordsSync.js +26 -0
  120. package/presentation/listLocking/components/ListLockRecordsSync.js.map +1 -0
  121. package/presentation/listLocking/components/LockIndicatorCell.d.ts +2 -0
  122. package/presentation/listLocking/components/LockIndicatorCell.js +39 -0
  123. package/presentation/listLocking/components/LockIndicatorCell.js.map +1 -0
  124. package/presentation/listLocking/feature.d.ts +3 -0
  125. package/presentation/listLocking/feature.js +19 -0
  126. package/presentation/listLocking/feature.js.map +1 -0
  127. package/types.d.ts +1 -62
  128. package/components/HeadlessCmsActionsAcoCell.d.ts +0 -2
  129. package/components/HeadlessCmsActionsAcoCell.js +0 -38
  130. package/components/HeadlessCmsActionsAcoCell.js.map +0 -1
  131. package/components/HeadlessCmsContentEntry/ContentEntryGuard.d.ts +0 -9
  132. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +0 -34
  133. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +0 -1
  134. package/components/HeadlessCmsContentEntry/ContentEntryLocker.d.ts +0 -18
  135. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +0 -80
  136. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +0 -1
  137. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.d.ts +0 -2
  138. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +0 -44
  139. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +0 -1
  140. package/components/HeadlessCmsContentEntry/index.d.ts +0 -1
  141. package/components/HeadlessCmsContentEntry/index.js +0 -1
  142. package/components/LockedRecord/LockedRecord.d.ts +0 -6
  143. package/components/LockedRecord/LockedRecord.js +0 -54
  144. package/components/LockedRecord/LockedRecord.js.map +0 -1
  145. package/components/LockedRecord/LockedRecordForceUnlock.d.ts +0 -9
  146. package/components/LockedRecord/LockedRecordForceUnlock.js +0 -57
  147. package/components/LockedRecord/LockedRecordForceUnlock.js.map +0 -1
  148. package/components/LockedRecord/index.d.ts +0 -1
  149. package/components/LockedRecord/index.js +0 -1
  150. package/components/RecordLockingProvider.d.ts +0 -7
  151. package/components/RecordLockingProvider.js +0 -111
  152. package/components/RecordLockingProvider.js.map +0 -1
  153. package/components/SecurityPermissions.js.map +0 -1
  154. package/components/decorators/UseContentEntriesListHookDecorator.d.ts +0 -1
  155. package/components/decorators/UseContentEntriesListHookDecorator.js +0 -23
  156. package/components/decorators/UseContentEntriesListHookDecorator.js.map +0 -1
  157. package/components/decorators/UseRecordsDecorator.d.ts +0 -8
  158. package/components/decorators/UseRecordsDecorator.js +0 -16
  159. package/components/decorators/UseRecordsDecorator.js.map +0 -1
  160. package/components/decorators/UseSaveEntryDecorator.d.ts +0 -1
  161. package/components/decorators/UseSaveEntryDecorator.js +0 -41
  162. package/components/decorators/UseSaveEntryDecorator.js.map +0 -1
  163. package/domain/RecordLocking.d.ts +0 -28
  164. package/domain/RecordLocking.js +0 -259
  165. package/domain/RecordLocking.js.map +0 -1
  166. package/domain/RecordLockingClient.d.ts +0 -12
  167. package/domain/RecordLockingClient.js +0 -20
  168. package/domain/RecordLockingClient.js.map +0 -1
  169. package/domain/RecordLockingGetLockRecord.d.ts +0 -11
  170. package/domain/RecordLockingGetLockRecord.js +0 -19
  171. package/domain/RecordLockingGetLockRecord.js.map +0 -1
  172. package/domain/RecordLockingGetLockedEntryLockRecord.d.ts +0 -11
  173. package/domain/RecordLockingGetLockedEntryLockRecord.js +0 -18
  174. package/domain/RecordLockingGetLockedEntryLockRecord.js.map +0 -1
  175. package/domain/RecordLockingIsEntryLocked.d.ts +0 -11
  176. package/domain/RecordLockingIsEntryLocked.js +0 -20
  177. package/domain/RecordLockingIsEntryLocked.js.map +0 -1
  178. package/domain/RecordLockingListLockRecords.d.ts +0 -12
  179. package/domain/RecordLockingListLockRecords.js +0 -25
  180. package/domain/RecordLockingListLockRecords.js.map +0 -1
  181. package/domain/RecordLockingLockEntry.d.ts +0 -11
  182. package/domain/RecordLockingLockEntry.js +0 -12
  183. package/domain/RecordLockingLockEntry.js.map +0 -1
  184. package/domain/RecordLockingUnlockEntry.d.ts +0 -11
  185. package/domain/RecordLockingUnlockEntry.js +0 -18
  186. package/domain/RecordLockingUnlockEntry.js.map +0 -1
  187. package/domain/RecordLockingUpdateEntryLock.d.ts +0 -11
  188. package/domain/RecordLockingUpdateEntryLock.js +0 -18
  189. package/domain/RecordLockingUpdateEntryLock.js.map +0 -1
  190. package/domain/abstractions/IRecordLocking.d.ts +0 -25
  191. package/domain/abstractions/IRecordLocking.js +0 -0
  192. package/domain/abstractions/IRecordLockingClient.d.ts +0 -6
  193. package/domain/abstractions/IRecordLockingClient.js +0 -0
  194. package/domain/abstractions/IRecordLockingGetLockRecord.d.ts +0 -12
  195. package/domain/abstractions/IRecordLockingGetLockRecord.js +0 -0
  196. package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.d.ts +0 -12
  197. package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js +0 -0
  198. package/domain/abstractions/IRecordLockingIsEntryLocked.d.ts +0 -8
  199. package/domain/abstractions/IRecordLockingIsEntryLocked.js +0 -0
  200. package/domain/abstractions/IRecordLockingListLockRecords.d.ts +0 -19
  201. package/domain/abstractions/IRecordLockingListLockRecords.js +0 -0
  202. package/domain/abstractions/IRecordLockingLockEntry.d.ts +0 -12
  203. package/domain/abstractions/IRecordLockingLockEntry.js +0 -0
  204. package/domain/abstractions/IRecordLockingUnlockEntry.d.ts +0 -13
  205. package/domain/abstractions/IRecordLockingUnlockEntry.js +0 -0
  206. package/domain/abstractions/IRecordLockingUpdateEntryLock.d.ts +0 -12
  207. package/domain/abstractions/IRecordLockingUpdateEntryLock.js +0 -0
  208. package/domain/graphql/fields.js.map +0 -1
  209. package/domain/graphql/getLockRecord.d.ts +0 -12
  210. package/domain/graphql/getLockRecord.js +0 -19
  211. package/domain/graphql/getLockRecord.js.map +0 -1
  212. package/domain/graphql/getLockedEntryLockRecord.d.ts +0 -12
  213. package/domain/graphql/getLockedEntryLockRecord.js +0 -19
  214. package/domain/graphql/getLockedEntryLockRecord.js.map +0 -1
  215. package/domain/graphql/isEntryLocked.d.ts +0 -12
  216. package/domain/graphql/isEntryLocked.js +0 -17
  217. package/domain/graphql/isEntryLocked.js.map +0 -1
  218. package/domain/graphql/listLockRecords.d.ts +0 -17
  219. package/domain/graphql/listLockRecords.js +0 -25
  220. package/domain/graphql/listLockRecords.js.map +0 -1
  221. package/domain/graphql/lockEntry.d.ts +0 -12
  222. package/domain/graphql/lockEntry.js +0 -19
  223. package/domain/graphql/lockEntry.js.map +0 -1
  224. package/domain/graphql/unlockEntry.d.ts +0 -12
  225. package/domain/graphql/unlockEntry.js +0 -19
  226. package/domain/graphql/unlockEntry.js.map +0 -1
  227. package/domain/graphql/updateEntryLock.d.ts +0 -12
  228. package/domain/graphql/updateEntryLock.js +0 -19
  229. package/domain/graphql/updateEntryLock.js.map +0 -1
  230. package/domain/permissionsSchema.js.map +0 -1
  231. package/domain/utils/createRecordLockingClient.d.ts +0 -3
  232. package/domain/utils/createRecordLockingClient.js +0 -11
  233. package/domain/utils/createRecordLockingClient.js.map +0 -1
  234. package/domain/utils/createRecordLockingError.d.ts +0 -6
  235. package/domain/utils/createRecordLockingError.js +0 -15
  236. package/domain/utils/createRecordLockingError.js.map +0 -1
  237. package/hooks/index.d.ts +0 -2
  238. package/hooks/index.js +0 -2
  239. package/hooks/usePermission.d.ts +0 -3
  240. package/hooks/usePermission.js +0 -19
  241. package/hooks/usePermission.js.map +0 -1
  242. package/hooks/useRecordLocking.d.ts +0 -2
  243. package/hooks/useRecordLocking.js +0 -11
  244. package/hooks/useRecordLocking.js.map +0 -1
  245. package/utils/createCacheKey.d.ts +0 -3
  246. package/utils/createCacheKey.js +0 -14
  247. package/utils/createCacheKey.js.map +0 -1
  248. /package/{components/SecurityPermissions.d.ts → SecurityPermissions.d.ts} +0 -0
  249. /package/{domain/graphql/fields.d.ts → features/graphqlFields.d.ts} +0 -0
  250. /package/{domain → permissions}/permissionsSchema.d.ts +0 -0
  251. /package/{domain → permissions}/permissionsSchema.js +0 -0
@@ -0,0 +1,3 @@
1
+ export declare const ForceUnlockFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IForceUnlockUseCase;
3
+ }, []>;
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { ForceUnlockUseCase } from "./abstractions.js";
3
+ import { ForceUnlockUseCase as external_ForceUnlockUseCase_js_ForceUnlockUseCase } from "./ForceUnlockUseCase.js";
4
+ import { ForceUnlockGateway } from "./ForceUnlockGateway.js";
5
+ const ForceUnlockFeature = createFeature({
6
+ name: "RecordLocking/ForceUnlock",
7
+ register (container) {
8
+ container.register(external_ForceUnlockUseCase_js_ForceUnlockUseCase);
9
+ container.register(ForceUnlockGateway).inSingletonScope();
10
+ },
11
+ resolve (container) {
12
+ return {
13
+ useCase: container.resolve(ForceUnlockUseCase)
14
+ };
15
+ }
16
+ });
17
+ export { ForceUnlockFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/forceUnlock/feature.js","sources":["../../../src/features/forceUnlock/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { ForceUnlockUseCase as UseCase } from \"./abstractions.js\";\nimport { ForceUnlockUseCase } from \"./ForceUnlockUseCase.js\";\nimport { ForceUnlockGateway } from \"./ForceUnlockGateway.js\";\n\nexport const ForceUnlockFeature = createFeature({\n name: \"RecordLocking/ForceUnlock\",\n register(container) {\n container.register(ForceUnlockUseCase);\n container.register(ForceUnlockGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCase)\n };\n }\n});\n"],"names":["ForceUnlockFeature","createFeature","container","ForceUnlockUseCase","ForceUnlockGateway","UseCase"],"mappings":";;;;AAKO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,oBAAoB,gBAAgB;IAC3D;IACA,SAAQF,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACG;QAC/B;IACJ;AACJ"}
@@ -28,4 +28,4 @@ const ERROR_FIELDS = `
28
28
  `;
29
29
  export { ERROR_FIELDS, LOCK_RECORD_FIELDS };
30
30
 
31
- //# sourceMappingURL=fields.js.map
31
+ //# sourceMappingURL=graphqlFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/graphqlFields.js","sources":["../../src/features/graphqlFields.ts"],"sourcesContent":["export const LOCK_RECORD_FIELDS = /* GraphQL */ `\n id\n lockedBy {\n id\n displayName\n type\n }\n lockedOn\n updatedOn\n expiresOn\n targetId\n type\n actions {\n type\n message\n createdBy {\n id\n displayName\n type\n }\n createdOn\n }\n`;\n\nexport const ERROR_FIELDS = /* GraphQL */ `\n message\n code\n data\n`;\n"],"names":["LOCK_RECORD_FIELDS","ERROR_FIELDS"],"mappings":"AAAO,MAAMA,qBAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;AAsBjD,CAAC;AAEM,MAAMC,eAA6B,CAAC;;;;AAI3C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
2
+ import { ListLockRecordsGateway as GatewayAbstraction, type IListLockRecordsParams } from "./abstractions.js";
3
+ import type { IRecordLockingLockRecord } from "../../types.js";
4
+ declare class ListLockRecordsGatewayImpl implements GatewayAbstraction.Interface {
5
+ private client;
6
+ constructor(client: MainGraphQLClient.Interface);
7
+ execute(params: IListLockRecordsParams): Promise<IRecordLockingLockRecord[]>;
8
+ }
9
+ export declare const ListLockRecordsGateway: typeof ListLockRecordsGatewayImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLockRecordsGateway>;
11
+ };
12
+ export {};
@@ -0,0 +1,48 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
2
+ import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "../graphqlFields.js";
3
+ import { ListLockRecordsGateway } from "./abstractions.js";
4
+ const LIST_LOCK_RECORDS_QUERY = `
5
+ query RecordLockingListLockedRecords(
6
+ $where: RecordLockingListWhereInput
7
+ $sort: [RecordLockingListSorter!]
8
+ $limit: Int
9
+ $after: String
10
+ ) {
11
+ recordLocking {
12
+ listLockRecords(where: $where, sort: $sort, limit: $limit, after: $after) {
13
+ data {
14
+ ${LOCK_RECORD_FIELDS}
15
+ }
16
+ error {
17
+ ${ERROR_FIELDS}
18
+ }
19
+ }
20
+ }
21
+ }
22
+ `;
23
+ class ListLockRecordsGatewayImpl {
24
+ constructor(client){
25
+ this.client = client;
26
+ }
27
+ async execute(params) {
28
+ const response = await this.client.execute({
29
+ query: LIST_LOCK_RECORDS_QUERY,
30
+ variables: {
31
+ where: params.where,
32
+ limit: params.limit ?? 100
33
+ }
34
+ });
35
+ const { data, error } = response.recordLocking.listLockRecords;
36
+ if (error) throw new Error(error.message);
37
+ return data || [];
38
+ }
39
+ }
40
+ const ListLockRecordsGateway_ListLockRecordsGateway = ListLockRecordsGateway.createImplementation({
41
+ implementation: ListLockRecordsGatewayImpl,
42
+ dependencies: [
43
+ MainGraphQLClient
44
+ ]
45
+ });
46
+ export { ListLockRecordsGateway_ListLockRecordsGateway as ListLockRecordsGateway };
47
+
48
+ //# sourceMappingURL=ListLockRecordsGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/listLockRecords/ListLockRecordsGateway.js","sources":["../../../src/features/listLockRecords/ListLockRecordsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/abstractions.js\";\nimport { LOCK_RECORD_FIELDS, ERROR_FIELDS } from \"~/features/graphqlFields.js\";\nimport {\n ListLockRecordsGateway as GatewayAbstraction,\n type IListLockRecordsParams\n} from \"./abstractions.js\";\nimport type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\ninterface ListLockRecordsResponse {\n recordLocking: {\n listLockRecords: {\n data: IRecordLockingLockRecord[] | null;\n error: IRecordLockingError | null;\n };\n };\n}\n\nconst LIST_LOCK_RECORDS_QUERY = /* GraphQL */ `\n query RecordLockingListLockedRecords(\n $where: RecordLockingListWhereInput\n $sort: [RecordLockingListSorter!]\n $limit: Int\n $after: String\n ) {\n recordLocking {\n listLockRecords(where: $where, sort: $sort, limit: $limit, after: $after) {\n data {\n ${LOCK_RECORD_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n\nclass ListLockRecordsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async execute(params: IListLockRecordsParams) {\n const response = await this.client.execute<ListLockRecordsResponse>({\n query: LIST_LOCK_RECORDS_QUERY,\n variables: {\n where: params.where,\n limit: params.limit ?? 100\n }\n });\n\n const { data, error } = response.recordLocking.listLockRecords;\n\n if (error) {\n throw new Error(error.message);\n }\n\n return data || [];\n }\n}\n\nexport const ListLockRecordsGateway = GatewayAbstraction.createImplementation({\n implementation: ListLockRecordsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["LIST_LOCK_RECORDS_QUERY","LOCK_RECORD_FIELDS","ERROR_FIELDS","ListLockRecordsGatewayImpl","client","params","response","data","error","Error","ListLockRecordsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;;AAiBA,MAAMA,0BAAwC,CAAC;;;;;;;;;;oBAU3B,EAAEC,mBAAmB;;;oBAGrB,EAAEC,aAAa;;;;;AAKnC,CAAC;AAED,MAAMC;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA8B,EAAE;QAC1C,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAChE,OAAON;YACP,WAAW;gBACP,OAAOK,OAAO,KAAK;gBACnB,OAAOA,OAAO,KAAK,IAAI;YAC3B;QACJ;QAEA,MAAM,EAAEE,IAAI,EAAEC,KAAK,EAAE,GAAGF,SAAS,aAAa,CAAC,eAAe;QAE9D,IAAIE,OACA,MAAM,IAAIC,MAAMD,MAAM,OAAO;QAGjC,OAAOD,QAAQ,EAAE;IACrB;AACJ;AAEO,MAAMG,gDAAyBC,uBAAAA,oBAAuC,CAAC;IAC1E,gBAAgBR;IAChB,cAAc;QAACS;KAAkB;AACrC"}
@@ -0,0 +1,10 @@
1
+ import { ListLockRecordsUseCase as UseCaseAbstraction, ListLockRecordsGateway, type IListLockRecordsParams } from "./abstractions.js";
2
+ declare class ListLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private gateway;
4
+ constructor(gateway: ListLockRecordsGateway.Interface);
5
+ execute(params: IListLockRecordsParams): Promise<import("../../types.js").IRecordLockingLockRecord[]>;
6
+ }
7
+ export declare const ListLockRecordsUseCase: typeof ListLockRecordsUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLockRecordsUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,18 @@
1
+ import { ListLockRecordsGateway, ListLockRecordsUseCase } from "./abstractions.js";
2
+ class ListLockRecordsUseCaseImpl {
3
+ constructor(gateway){
4
+ this.gateway = gateway;
5
+ }
6
+ async execute(params) {
7
+ return this.gateway.execute(params);
8
+ }
9
+ }
10
+ const ListLockRecordsUseCase_ListLockRecordsUseCase = ListLockRecordsUseCase.createImplementation({
11
+ implementation: ListLockRecordsUseCaseImpl,
12
+ dependencies: [
13
+ ListLockRecordsGateway
14
+ ]
15
+ });
16
+ export { ListLockRecordsUseCase_ListLockRecordsUseCase as ListLockRecordsUseCase };
17
+
18
+ //# sourceMappingURL=ListLockRecordsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/listLockRecords/ListLockRecordsUseCase.js","sources":["../../../src/features/listLockRecords/ListLockRecordsUseCase.ts"],"sourcesContent":["import {\n ListLockRecordsUseCase as UseCaseAbstraction,\n ListLockRecordsGateway,\n type IListLockRecordsParams\n} from \"./abstractions.js\";\n\nclass ListLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private gateway: ListLockRecordsGateway.Interface) {}\n\n async execute(params: IListLockRecordsParams) {\n return this.gateway.execute(params);\n }\n}\n\nexport const ListLockRecordsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLockRecordsUseCaseImpl,\n dependencies: [ListLockRecordsGateway]\n});\n"],"names":["ListLockRecordsUseCaseImpl","gateway","params","ListLockRecordsUseCase","UseCaseAbstraction","ListLockRecordsGateway"],"mappings":";AAMA,MAAMA;IACF,YAAoBC,OAAyC,CAAE;aAA3CA,OAAO,GAAPA;IAA4C;IAEhE,MAAM,QAAQC,MAA8B,EAAE;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAACA;IAChC;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAuC,CAAC;IAC1E,gBAAgBJ;IAChB,cAAc;QAACK;KAAuB;AAC1C"}
@@ -0,0 +1,22 @@
1
+ import type { IRecordLockingLockRecord } from "../../types.js";
2
+ export interface IListLockRecordsParams {
3
+ where?: {
4
+ id_in?: string[];
5
+ type?: string;
6
+ };
7
+ limit?: number;
8
+ }
9
+ export interface IListLockRecordsGateway {
10
+ execute(params: IListLockRecordsParams): Promise<IRecordLockingLockRecord[]>;
11
+ }
12
+ export declare const ListLockRecordsGateway: import("@webiny/di").Abstraction<IListLockRecordsGateway>;
13
+ export declare namespace ListLockRecordsGateway {
14
+ type Interface = IListLockRecordsGateway;
15
+ }
16
+ export interface IListLockRecordsUseCase {
17
+ execute(params: IListLockRecordsParams): Promise<IRecordLockingLockRecord[]>;
18
+ }
19
+ export declare const ListLockRecordsUseCase: import("@webiny/di").Abstraction<IListLockRecordsUseCase>;
20
+ export declare namespace ListLockRecordsUseCase {
21
+ type Interface = IListLockRecordsUseCase;
22
+ }
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const ListLockRecordsGateway = createAbstraction("ListLockRecordsGateway");
3
+ const ListLockRecordsUseCase = createAbstraction("ListLockRecordsUseCase");
4
+ export { ListLockRecordsGateway, ListLockRecordsUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/listLockRecords/abstractions.js","sources":["../../../src/features/listLockRecords/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IListLockRecordsParams {\n where?: {\n id_in?: string[];\n type?: string;\n };\n limit?: number;\n}\n\nexport interface IListLockRecordsGateway {\n execute(params: IListLockRecordsParams): Promise<IRecordLockingLockRecord[]>;\n}\n\nexport const ListLockRecordsGateway =\n createAbstraction<IListLockRecordsGateway>(\"ListLockRecordsGateway\");\n\nexport namespace ListLockRecordsGateway {\n export type Interface = IListLockRecordsGateway;\n}\n\nexport interface IListLockRecordsUseCase {\n execute(params: IListLockRecordsParams): Promise<IRecordLockingLockRecord[]>;\n}\n\nexport const ListLockRecordsUseCase =\n createAbstraction<IListLockRecordsUseCase>(\"ListLockRecordsUseCase\");\n\nexport namespace ListLockRecordsUseCase {\n export type Interface = IListLockRecordsUseCase;\n}\n"],"names":["ListLockRecordsGateway","createAbstraction","ListLockRecordsUseCase"],"mappings":";AAeO,MAAMA,yBACTC,kBAA2C;AAUxC,MAAMC,yBACTD,kBAA2C"}
@@ -0,0 +1,3 @@
1
+ export declare const ListLockRecordsFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IListLockRecordsUseCase;
3
+ }, []>;
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { ListLockRecordsUseCase } from "./abstractions.js";
3
+ import { ListLockRecordsUseCase as external_ListLockRecordsUseCase_js_ListLockRecordsUseCase } from "./ListLockRecordsUseCase.js";
4
+ import { ListLockRecordsGateway } from "./ListLockRecordsGateway.js";
5
+ const ListLockRecordsFeature = createFeature({
6
+ name: "RecordLocking/ListLockRecords",
7
+ register (container) {
8
+ container.register(external_ListLockRecordsUseCase_js_ListLockRecordsUseCase);
9
+ container.register(ListLockRecordsGateway).inSingletonScope();
10
+ },
11
+ resolve (container) {
12
+ return {
13
+ useCase: container.resolve(ListLockRecordsUseCase)
14
+ };
15
+ }
16
+ });
17
+ export { ListLockRecordsFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/listLockRecords/feature.js","sources":["../../../src/features/listLockRecords/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { ListLockRecordsUseCase as UseCase } from \"./abstractions.js\";\nimport { ListLockRecordsUseCase } from \"./ListLockRecordsUseCase.js\";\nimport { ListLockRecordsGateway } from \"./ListLockRecordsGateway.js\";\n\nexport const ListLockRecordsFeature = createFeature({\n name: \"RecordLocking/ListLockRecords\",\n register(container) {\n container.register(ListLockRecordsUseCase);\n container.register(ListLockRecordsGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCase)\n };\n }\n});\n"],"names":["ListLockRecordsFeature","createFeature","container","ListLockRecordsUseCase","ListLockRecordsGateway","UseCase"],"mappings":";;;;AAKO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wBAAwB,gBAAgB;IAC/D;IACA,SAAQF,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACG;QAC/B;IACJ;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import type { Permissions } from "@webiny/app-admin/exports/admin/security.js";
2
- import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
2
+ import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../permissions/permissionsSchema.js";
3
3
  export declare const RecordLockingPermissions: import("@webiny/di").Abstraction<{
4
4
  canAccess: (entityId: never) => boolean;
5
5
  canAction: (action: string, entityId: never) => boolean;
@@ -1,5 +1,5 @@
1
1
  import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
2
- import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
2
+ import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../permissions/permissionsSchema.js";
3
3
  const RecordLockingPermissions = createPermissionsAbstraction(RECORD_LOCKING_PERMISSIONS_SCHEMA);
4
4
  export { RecordLockingPermissions };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const RecordLockingPermissions = createPermissionsAbstraction(\n RECORD_LOCKING_PERMISSIONS_SCHEMA\n);\n\nexport namespace RecordLockingPermissions {\n export type Interface = Permissions<typeof RECORD_LOCKING_PERMISSIONS_SCHEMA>;\n}\n"],"names":["RecordLockingPermissions","createPermissionsAbstraction","RECORD_LOCKING_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,2BAA2BC,6BACpCC"}
1
+ {"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/permissions/permissionsSchema.js\";\n\nexport const RecordLockingPermissions = createPermissionsAbstraction(\n RECORD_LOCKING_PERMISSIONS_SCHEMA\n);\n\nexport namespace RecordLockingPermissions {\n export type Interface = Permissions<typeof RECORD_LOCKING_PERMISSIONS_SCHEMA>;\n}\n"],"names":["RecordLockingPermissions","createPermissionsAbstraction","RECORD_LOCKING_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,2BAA2BC,6BACpCC"}
@@ -1,4 +1,4 @@
1
- export declare const RecordLockingPermissionsFeature: import("@webiny/feature/admin/createFeature.js").FeatureDefinition<{
1
+ export declare const RecordLockingPermissionsFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
2
  permissions: {
3
3
  canAccess: (entityId: never) => boolean;
4
4
  canAction: (action: string, entityId: never) => boolean;
@@ -1,5 +1,5 @@
1
1
  import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
2
- import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
2
+ import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../permissions/permissionsSchema.js";
3
3
  import { RecordLockingPermissions } from "./abstractions.js";
4
4
  const RecordLockingPermissionsFeature = createPermissionsFeature(RECORD_LOCKING_PERMISSIONS_SCHEMA, RecordLockingPermissions);
5
5
  export { RecordLockingPermissionsFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { RecordLockingPermissions } from \"./abstractions.js\";\n\nexport const RecordLockingPermissionsFeature = createPermissionsFeature(\n RECORD_LOCKING_PERMISSIONS_SCHEMA,\n RecordLockingPermissions\n);\n"],"names":["RecordLockingPermissionsFeature","createPermissionsFeature","RECORD_LOCKING_PERMISSIONS_SCHEMA","RecordLockingPermissions"],"mappings":";;;AAIO,MAAMA,kCAAkCC,yBAC3CC,mCACAC"}
1
+ {"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/permissions/permissionsSchema.js\";\nimport { RecordLockingPermissions } from \"./abstractions.js\";\n\nexport const RecordLockingPermissionsFeature = createPermissionsFeature(\n RECORD_LOCKING_PERMISSIONS_SCHEMA,\n RecordLockingPermissions\n);\n"],"names":["RecordLockingPermissionsFeature","createPermissionsFeature","RECORD_LOCKING_PERMISSIONS_SCHEMA","RecordLockingPermissions"],"mappings":";;;AAIO,MAAMA,kCAAkCC,yBAC3CC,mCACAC"}
@@ -0,0 +1,12 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
2
+ import { ReleaseLockGateway as GatewayAbstraction, type IReleaseLockParams } from "./abstractions.js";
3
+ import type { IRecordLockingLockRecord } from "../../types.js";
4
+ declare class ReleaseLockGatewayImpl implements GatewayAbstraction.Interface {
5
+ private client;
6
+ constructor(client: MainGraphQLClient.Interface);
7
+ execute(params: IReleaseLockParams): Promise<IRecordLockingLockRecord>;
8
+ }
9
+ export declare const ReleaseLockGateway: typeof ReleaseLockGatewayImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IReleaseLockGateway>;
11
+ };
12
+ export {};
@@ -0,0 +1,44 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
2
+ import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "../graphqlFields.js";
3
+ import { ReleaseLockGateway } from "./abstractions.js";
4
+ const RELEASE_LOCK_MUTATION = `
5
+ mutation RecordLockingUnlockEntry($id: ID!, $type: String!, $force: Boolean) {
6
+ recordLocking {
7
+ unlockEntry(id: $id, type: $type, force: $force) {
8
+ data {
9
+ ${LOCK_RECORD_FIELDS}
10
+ }
11
+ error {
12
+ ${ERROR_FIELDS}
13
+ }
14
+ }
15
+ }
16
+ }
17
+ `;
18
+ class ReleaseLockGatewayImpl {
19
+ constructor(client){
20
+ this.client = client;
21
+ }
22
+ async execute(params) {
23
+ const response = await this.client.execute({
24
+ query: RELEASE_LOCK_MUTATION,
25
+ variables: {
26
+ id: params.id,
27
+ type: params.type,
28
+ force: false
29
+ }
30
+ });
31
+ const { data, error } = response.recordLocking.unlockEntry;
32
+ if (!data) throw new Error(error?.message || "Failed to release lock");
33
+ return data;
34
+ }
35
+ }
36
+ const ReleaseLockGateway_ReleaseLockGateway = ReleaseLockGateway.createImplementation({
37
+ implementation: ReleaseLockGatewayImpl,
38
+ dependencies: [
39
+ MainGraphQLClient
40
+ ]
41
+ });
42
+ export { ReleaseLockGateway_ReleaseLockGateway as ReleaseLockGateway };
43
+
44
+ //# sourceMappingURL=ReleaseLockGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/releaseLock/ReleaseLockGateway.js","sources":["../../../src/features/releaseLock/ReleaseLockGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/abstractions.js\";\nimport { LOCK_RECORD_FIELDS, ERROR_FIELDS } from \"~/features/graphqlFields.js\";\nimport {\n ReleaseLockGateway as GatewayAbstraction,\n type IReleaseLockParams\n} from \"./abstractions.js\";\nimport type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\ninterface ReleaseLockResponse {\n recordLocking: {\n unlockEntry: {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n };\n };\n}\n\nconst RELEASE_LOCK_MUTATION = /* GraphQL */ `\n mutation RecordLockingUnlockEntry($id: ID!, $type: String!, $force: Boolean) {\n recordLocking {\n unlockEntry(id: $id, type: $type, force: $force) {\n data {\n ${LOCK_RECORD_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n\nclass ReleaseLockGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async execute(params: IReleaseLockParams) {\n const response = await this.client.execute<ReleaseLockResponse>({\n query: RELEASE_LOCK_MUTATION,\n variables: { id: params.id, type: params.type, force: false }\n });\n\n const { data, error } = response.recordLocking.unlockEntry;\n\n if (!data) {\n throw new Error(error?.message || \"Failed to release lock\");\n }\n\n return data;\n }\n}\n\nexport const ReleaseLockGateway = GatewayAbstraction.createImplementation({\n implementation: ReleaseLockGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["RELEASE_LOCK_MUTATION","LOCK_RECORD_FIELDS","ERROR_FIELDS","ReleaseLockGatewayImpl","client","params","response","data","error","Error","ReleaseLockGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;;AAiBA,MAAMA,wBAAsC,CAAC;;;;;oBAKzB,EAAEC,mBAAmB;;;oBAGrB,EAAEC,aAAa;;;;;AAKnC,CAAC;AAED,MAAMC;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA0B,EAAE;QACtC,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC5D,OAAON;YACP,WAAW;gBAAE,IAAIK,OAAO,EAAE;gBAAE,MAAMA,OAAO,IAAI;gBAAE,OAAO;YAAM;QAChE;QAEA,MAAM,EAAEE,IAAI,EAAEC,KAAK,EAAE,GAAGF,SAAS,aAAa,CAAC,WAAW;QAE1D,IAAI,CAACC,MACD,MAAM,IAAIE,MAAMD,OAAO,WAAW;QAGtC,OAAOD;IACX;AACJ;AAEO,MAAMG,wCAAqBC,mBAAAA,oBAAuC,CAAC;IACtE,gBAAgBR;IAChB,cAAc;QAACS;KAAkB;AACrC"}
@@ -0,0 +1,10 @@
1
+ import { ReleaseLockUseCase as UseCaseAbstraction, ReleaseLockGateway, type IReleaseLockParams } from "./abstractions.js";
2
+ declare class ReleaseLockUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private gateway;
4
+ constructor(gateway: ReleaseLockGateway.Interface);
5
+ execute(params: IReleaseLockParams): Promise<import("../../types.js").IRecordLockingLockRecord>;
6
+ }
7
+ export declare const ReleaseLockUseCase: typeof ReleaseLockUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IReleaseLockUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,18 @@
1
+ import { ReleaseLockGateway, ReleaseLockUseCase } from "./abstractions.js";
2
+ class ReleaseLockUseCaseImpl {
3
+ constructor(gateway){
4
+ this.gateway = gateway;
5
+ }
6
+ async execute(params) {
7
+ return this.gateway.execute(params);
8
+ }
9
+ }
10
+ const ReleaseLockUseCase_ReleaseLockUseCase = ReleaseLockUseCase.createImplementation({
11
+ implementation: ReleaseLockUseCaseImpl,
12
+ dependencies: [
13
+ ReleaseLockGateway
14
+ ]
15
+ });
16
+ export { ReleaseLockUseCase_ReleaseLockUseCase as ReleaseLockUseCase };
17
+
18
+ //# sourceMappingURL=ReleaseLockUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/releaseLock/ReleaseLockUseCase.js","sources":["../../../src/features/releaseLock/ReleaseLockUseCase.ts"],"sourcesContent":["import {\n ReleaseLockUseCase as UseCaseAbstraction,\n ReleaseLockGateway,\n type IReleaseLockParams\n} from \"./abstractions.js\";\n\nclass ReleaseLockUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private gateway: ReleaseLockGateway.Interface) {}\n\n async execute(params: IReleaseLockParams) {\n return this.gateway.execute(params);\n }\n}\n\nexport const ReleaseLockUseCase = UseCaseAbstraction.createImplementation({\n implementation: ReleaseLockUseCaseImpl,\n dependencies: [ReleaseLockGateway]\n});\n"],"names":["ReleaseLockUseCaseImpl","gateway","params","ReleaseLockUseCase","UseCaseAbstraction","ReleaseLockGateway"],"mappings":";AAMA,MAAMA;IACF,YAAoBC,OAAqC,CAAE;aAAvCA,OAAO,GAAPA;IAAwC;IAE5D,MAAM,QAAQC,MAA0B,EAAE;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAACA;IAChC;AACJ;AAEO,MAAMC,wCAAqBC,mBAAAA,oBAAuC,CAAC;IACtE,gBAAgBJ;IAChB,cAAc;QAACK;KAAmB;AACtC"}
@@ -0,0 +1,19 @@
1
+ import type { IRecordLockingLockRecord } from "../../types.js";
2
+ export interface IReleaseLockParams {
3
+ id: string;
4
+ type: string;
5
+ }
6
+ export interface IReleaseLockGateway {
7
+ execute(params: IReleaseLockParams): Promise<IRecordLockingLockRecord>;
8
+ }
9
+ export declare const ReleaseLockGateway: import("@webiny/di").Abstraction<IReleaseLockGateway>;
10
+ export declare namespace ReleaseLockGateway {
11
+ type Interface = IReleaseLockGateway;
12
+ }
13
+ export interface IReleaseLockUseCase {
14
+ execute(params: IReleaseLockParams): Promise<IRecordLockingLockRecord>;
15
+ }
16
+ export declare const ReleaseLockUseCase: import("@webiny/di").Abstraction<IReleaseLockUseCase>;
17
+ export declare namespace ReleaseLockUseCase {
18
+ type Interface = IReleaseLockUseCase;
19
+ }
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const ReleaseLockGateway = createAbstraction("ReleaseLockGateway");
3
+ const ReleaseLockUseCase = createAbstraction("ReleaseLockUseCase");
4
+ export { ReleaseLockGateway, ReleaseLockUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/releaseLock/abstractions.js","sources":["../../../src/features/releaseLock/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IReleaseLockParams {\n id: string;\n type: string;\n}\n\nexport interface IReleaseLockGateway {\n execute(params: IReleaseLockParams): Promise<IRecordLockingLockRecord>;\n}\n\nexport const ReleaseLockGateway = createAbstraction<IReleaseLockGateway>(\"ReleaseLockGateway\");\n\nexport namespace ReleaseLockGateway {\n export type Interface = IReleaseLockGateway;\n}\n\nexport interface IReleaseLockUseCase {\n execute(params: IReleaseLockParams): Promise<IRecordLockingLockRecord>;\n}\n\nexport const ReleaseLockUseCase = createAbstraction<IReleaseLockUseCase>(\"ReleaseLockUseCase\");\n\nexport namespace ReleaseLockUseCase {\n export type Interface = IReleaseLockUseCase;\n}\n"],"names":["ReleaseLockGateway","createAbstraction","ReleaseLockUseCase"],"mappings":";AAYO,MAAMA,qBAAqBC,kBAAuC;AAUlE,MAAMC,qBAAqBD,kBAAuC"}
@@ -0,0 +1,3 @@
1
+ export declare const ReleaseLockFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IReleaseLockUseCase;
3
+ }, []>;
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { ReleaseLockUseCase } from "./abstractions.js";
3
+ import { ReleaseLockUseCase as external_ReleaseLockUseCase_js_ReleaseLockUseCase } from "./ReleaseLockUseCase.js";
4
+ import { ReleaseLockGateway } from "./ReleaseLockGateway.js";
5
+ const ReleaseLockFeature = createFeature({
6
+ name: "RecordLocking/ReleaseLock",
7
+ register (container) {
8
+ container.register(external_ReleaseLockUseCase_js_ReleaseLockUseCase);
9
+ container.register(ReleaseLockGateway).inSingletonScope();
10
+ },
11
+ resolve (container) {
12
+ return {
13
+ useCase: container.resolve(ReleaseLockUseCase)
14
+ };
15
+ }
16
+ });
17
+ export { ReleaseLockFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/releaseLock/feature.js","sources":["../../../src/features/releaseLock/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { ReleaseLockUseCase as UseCase } from \"./abstractions.js\";\nimport { ReleaseLockUseCase } from \"./ReleaseLockUseCase.js\";\nimport { ReleaseLockGateway } from \"./ReleaseLockGateway.js\";\n\nexport const ReleaseLockFeature = createFeature({\n name: \"RecordLocking/ReleaseLock\",\n register(container) {\n container.register(ReleaseLockUseCase);\n container.register(ReleaseLockGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCase)\n };\n }\n});\n"],"names":["ReleaseLockFeature","createFeature","container","ReleaseLockUseCase","ReleaseLockGateway","UseCase"],"mappings":";;;;AAKO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,oBAAoB,gBAAgB;IAC3D;IACA,SAAQF,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACG;QAC/B;IACJ;AACJ"}
package/index.d.ts CHANGED
@@ -1,7 +1,2 @@
1
1
  import React from "react";
2
- export * from "./components/RecordLockingProvider.js";
3
- export * from "./hooks/index.js";
4
- export interface RecordLockingProviderProps {
5
- children: React.ReactNode;
6
- }
7
2
  export declare const RecordLocking: () => React.JSX.Element | null;
package/index.js CHANGED
@@ -1,24 +1,23 @@
1
1
  import react from "react";
2
- import { Provider } from "@webiny/app";
3
2
  import { RegisterFeature, useWcp } from "@webiny/app-admin";
4
- import { RecordLockingProvider as RecordLockingProvider_js_RecordLockingProvider } from "./components/RecordLockingProvider.js";
5
- import { HeadlessCmsActionsAcoCell } from "./components/HeadlessCmsActionsAcoCell.js";
6
- import { HeadlessCmsContentEntry } from "./components/HeadlessCmsContentEntry/index.js";
7
- import { SecurityPermissions } from "./components/SecurityPermissions.js";
3
+ import { RecordLockingFeature } from "./features/feature.js";
8
4
  import { RecordLockingPermissionsFeature } from "./features/permissions/feature.js";
9
- export * from "./components/RecordLockingProvider.js";
10
- export * from "./hooks/index.js";
11
- const RecordLockingHoc = (Component)=>function({ children }) {
12
- return /*#__PURE__*/ react.createElement(Component, null, /*#__PURE__*/ react.createElement(RecordLockingProvider_js_RecordLockingProvider, null, children));
13
- };
5
+ import { RecordLockingPresenterFeature } from "./presentation/entryLocking/feature.js";
6
+ import { ListLockRecordsPresenterFeature } from "./presentation/listLocking/feature.js";
7
+ import { SecurityPermissions } from "./SecurityPermissions.js";
8
+ import { RecordLockingModule } from "./RecordLockingModule.js";
14
9
  const RecordLocking = ()=>{
15
10
  const wcp = useWcp();
16
11
  if (!wcp.canUseRecordLocking()) return null;
17
12
  return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
18
13
  feature: RecordLockingPermissionsFeature
19
- }), /*#__PURE__*/ react.createElement(SecurityPermissions, null), /*#__PURE__*/ react.createElement(Provider, {
20
- hoc: RecordLockingHoc
21
- }), /*#__PURE__*/ react.createElement(HeadlessCmsActionsAcoCell, null), /*#__PURE__*/ react.createElement(HeadlessCmsContentEntry, null));
14
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
15
+ feature: RecordLockingFeature
16
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
17
+ feature: RecordLockingPresenterFeature
18
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
19
+ feature: ListLockRecordsPresenterFeature
20
+ }), /*#__PURE__*/ react.createElement(SecurityPermissions, null), /*#__PURE__*/ react.createElement(RecordLockingModule, null));
22
21
  };
23
22
  export { RecordLocking };
24
23
 
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { RecordLockingProvider as RecordLockingProviderComponent } from \"~/components/RecordLockingProvider.js\";\nimport { HeadlessCmsActionsAcoCell } from \"~/components/HeadlessCmsActionsAcoCell.js\";\nimport { HeadlessCmsContentEntry } from \"~/components/HeadlessCmsContentEntry/index.js\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { SecurityPermissions } from \"~/components/SecurityPermissions.js\";\nimport { RecordLockingPermissionsFeature } from \"~/features/permissions/feature.js\";\n\nexport * from \"~/components/RecordLockingProvider.js\";\nexport * from \"~/hooks/index.js\";\n\nexport interface RecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nconst RecordLockingHoc = (Component: React.ComponentType<RecordLockingProviderProps>) => {\n return function RecordLockingProvider({ children }: RecordLockingProviderProps) {\n return (\n <Component>\n <RecordLockingProviderComponent>{children}</RecordLockingProviderComponent>\n </Component>\n );\n };\n};\n\nexport const RecordLocking = () => {\n const wcp = useWcp();\n\n if (!wcp.canUseRecordLocking()) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={RecordLockingPermissionsFeature} />\n <SecurityPermissions />\n <Provider hoc={RecordLockingHoc} />\n <HeadlessCmsActionsAcoCell />\n <HeadlessCmsContentEntry />\n </>\n );\n};\n"],"names":["RecordLockingHoc","Component","children","RecordLockingProviderComponent","RecordLocking","wcp","useWcp","RegisterFeature","RecordLockingPermissionsFeature","SecurityPermissions","Provider","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry"],"mappings":";;;;;;;;;;AAiBA,MAAMA,mBAAmB,CAACC,YACf,SAA+B,EAAEC,QAAQ,EAA8B;QAC1E,OAAO,WAAP,GACI,oBAACD,WAAAA,MAAAA,WAAAA,GACG,oBAACE,gDAA8BA,MAAED;IAG7C;AAGG,MAAME,gBAAgB;IACzB,MAAMC,MAAMC;IAEZ,IAAI,CAACD,IAAI,mBAAmB,IACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACE,iBAAeA;QAAC,SAASC;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACC,UAAQA;QAAC,KAAKV;sBACf,oBAACW,2BAAyBA,OAAAA,WAAAA,GAC1B,oBAACC,yBAAuBA;AAGpC"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { RecordLockingFeature } from \"~/features/feature.js\";\nimport { RecordLockingPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { RecordLockingPresenterFeature } from \"~/presentation/entryLocking/feature.js\";\nimport { ListLockRecordsPresenterFeature } from \"~/presentation/listLocking/feature.js\";\nimport { SecurityPermissions } from \"~/SecurityPermissions.js\";\nimport { RecordLockingModule } from \"~/RecordLockingModule.js\";\n\nexport const RecordLocking = () => {\n const wcp = useWcp();\n\n if (!wcp.canUseRecordLocking()) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={RecordLockingPermissionsFeature} />\n <RegisterFeature feature={RecordLockingFeature} />\n <RegisterFeature feature={RecordLockingPresenterFeature} />\n <RegisterFeature feature={ListLockRecordsPresenterFeature} />\n <SecurityPermissions />\n <RecordLockingModule />\n </>\n );\n};\n"],"names":["RecordLocking","wcp","useWcp","RegisterFeature","RecordLockingPermissionsFeature","RecordLockingFeature","RecordLockingPresenterFeature","ListLockRecordsPresenterFeature","SecurityPermissions","RecordLockingModule"],"mappings":";;;;;;;;AAUO,MAAMA,gBAAgB;IACzB,MAAMC,MAAMC;IAEZ,IAAI,CAACD,IAAI,mBAAmB,IACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACE,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACC,qBAAmBA;AAGhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-record-locking",
3
- "version": "6.4.12-beta.4",
3
+ "version": "6.5.0-beta.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -17,27 +17,23 @@
17
17
  ],
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@apollo/react-hooks": "3.1.5",
21
- "@webiny/admin-ui": "6.4.12-beta.4",
22
- "@webiny/app": "6.4.12-beta.4",
23
- "@webiny/app-aco": "6.4.12-beta.4",
24
- "@webiny/app-admin": "6.4.12-beta.4",
25
- "@webiny/app-headless-cms": "6.4.12-beta.4",
26
- "@webiny/app-websockets": "6.4.12-beta.4",
27
- "@webiny/error": "6.4.12-beta.4",
28
- "@webiny/icons": "6.4.12-beta.4",
29
- "@webiny/utils": "6.4.12-beta.4",
30
- "apollo-client": "2.6.10",
31
- "apollo-link": "1.2.14",
32
- "crypto-hash": "4.0.1",
33
- "graphql-tag": "2.12.7",
20
+ "@webiny/admin-ui": "6.5.0-beta.0",
21
+ "@webiny/app": "6.5.0-beta.0",
22
+ "@webiny/app-admin": "6.5.0-beta.0",
23
+ "@webiny/app-headless-cms": "6.5.0-beta.0",
24
+ "@webiny/app-websockets": "6.5.0-beta.0",
25
+ "@webiny/feature": "6.5.0-beta.0",
26
+ "@webiny/icons": "6.5.0-beta.0",
27
+ "@webiny/utils": "6.5.0-beta.0",
28
+ "mobx": "6.16.1",
29
+ "mobx-react-lite": "4.1.1",
34
30
  "react": "18.3.1",
35
31
  "react-dom": "18.3.1"
36
32
  },
37
33
  "devDependencies": {
38
- "@webiny/build-tools": "6.4.12-beta.4",
34
+ "@webiny/build-tools": "6.5.0-beta.0",
39
35
  "rimraf": "6.1.3",
40
- "typescript": "6.0.3"
36
+ "typescript": "7.0.2"
41
37
  },
42
38
  "publishConfig": {
43
39
  "access": "public"
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions/permissionsSchema.js","sources":["../../src/permissions/permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const RECORD_LOCKING_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"recordLocking\",\n fullAccess: { canForceUnlock: true }\n});\n"],"names":["RECORD_LOCKING_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,oCAAoCC,uBAAuB;IACpE,QAAQ;IACR,YAAY;QAAE,gBAAgB;IAAK;AACvC"}
@@ -0,0 +1,23 @@
1
+ import { type IContentEntryFormPresenter, type IContentEntryFormViewModel } from "@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js";
2
+ import { RecordLockingPresenter } from "./abstractions.js";
3
+ declare class ContentEntryFormPresenterWithLocking implements IContentEntryFormPresenter {
4
+ private lockingPresenter;
5
+ private original;
6
+ constructor(lockingPresenter: RecordLockingPresenter.Interface, original: IContentEntryFormPresenter);
7
+ get vm(): IContentEntryFormViewModel;
8
+ saveRevision(options?: {
9
+ skipValidation?: boolean;
10
+ }): Promise<boolean>;
11
+ publishRevision(): Promise<boolean>;
12
+ unpublishRevision(): Promise<boolean>;
13
+ deleteEntry(): Promise<boolean>;
14
+ loadRevision(id: string): Promise<void>;
15
+ setFolderId(folderId: string | null): void;
16
+ newEntry(initialValues?: Record<string, unknown>): void;
17
+ patchEntryMeta(...args: Parameters<IContentEntryFormPresenter["patchEntryMeta"]>): void;
18
+ reset(): void;
19
+ }
20
+ export declare const ContentEntryFormPresenterLockingDecorator: typeof ContentEntryFormPresenterWithLocking & {
21
+ __abstraction: import("@webiny/di").Abstraction<IContentEntryFormPresenter>;
22
+ };
23
+ export {};