@webiny/api-record-locking 0.0.0-unstable.b9b64acb6d → 0.0.0-unstable.d0f34a8194

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 (187) hide show
  1. package/RecordLockingAppFeature.d.ts +11 -0
  2. package/RecordLockingAppFeature.js +20 -0
  3. package/RecordLockingAppFeature.js.map +1 -0
  4. package/domain/LockRecord.js +63 -70
  5. package/domain/LockRecord.js.map +1 -1
  6. package/domain/RecordLockingModel.js +27 -23
  7. package/domain/RecordLockingModel.js.map +1 -1
  8. package/domain/abstractions.d.ts +9 -3
  9. package/domain/abstractions.js +3 -7
  10. package/domain/abstractions.js.map +1 -1
  11. package/domain/calculateExpiresOn.js +5 -6
  12. package/domain/calculateExpiresOn.js.map +1 -1
  13. package/domain/errors.js +71 -81
  14. package/domain/errors.js.map +1 -1
  15. package/domain/index.js +0 -2
  16. package/domain/types.js +6 -9
  17. package/domain/types.js.map +1 -1
  18. package/features/GetLockRecord/GetLockRecordRepository.d.ts +4 -3
  19. package/features/GetLockRecord/GetLockRecordRepository.js +33 -25
  20. package/features/GetLockRecord/GetLockRecordRepository.js.map +1 -1
  21. package/features/GetLockRecord/GetLockRecordUseCase.js +13 -10
  22. package/features/GetLockRecord/GetLockRecordUseCase.js.map +1 -1
  23. package/features/GetLockRecord/abstractions.js +3 -14
  24. package/features/GetLockRecord/abstractions.js.map +1 -1
  25. package/features/GetLockRecord/feature.d.ts +4 -1
  26. package/features/GetLockRecord/feature.js +7 -6
  27. package/features/GetLockRecord/feature.js.map +1 -1
  28. package/features/GetLockRecord/index.js +0 -2
  29. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +1 -1
  30. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +20 -29
  31. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +1 -1
  32. package/features/GetLockedEntryLockRecord/abstractions.js +2 -10
  33. package/features/GetLockedEntryLockRecord/abstractions.js.map +1 -1
  34. package/features/GetLockedEntryLockRecord/feature.d.ts +4 -1
  35. package/features/GetLockedEntryLockRecord/feature.js +6 -5
  36. package/features/GetLockedEntryLockRecord/feature.js.map +1 -1
  37. package/features/GetLockedEntryLockRecord/index.js +0 -2
  38. package/features/IsEntryLocked/IsEntryLockedUseCase.d.ts +1 -1
  39. package/features/IsEntryLocked/IsEntryLockedUseCase.js +23 -29
  40. package/features/IsEntryLocked/IsEntryLockedUseCase.js.map +1 -1
  41. package/features/IsEntryLocked/abstractions.js +2 -9
  42. package/features/IsEntryLocked/abstractions.js.map +1 -1
  43. package/features/IsEntryLocked/feature.d.ts +4 -1
  44. package/features/IsEntryLocked/feature.js +6 -5
  45. package/features/IsEntryLocked/feature.js.map +1 -1
  46. package/features/IsEntryLocked/index.js +0 -2
  47. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +4 -4
  48. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js +28 -34
  49. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +1 -1
  50. package/features/KickOutCurrentUser/abstractions.js +2 -6
  51. package/features/KickOutCurrentUser/abstractions.js.map +1 -1
  52. package/features/KickOutCurrentUser/feature.d.ts +4 -1
  53. package/features/KickOutCurrentUser/feature.js +6 -5
  54. package/features/KickOutCurrentUser/feature.js.map +1 -1
  55. package/features/KickOutCurrentUser/index.js +0 -2
  56. package/features/ListAllLockRecords/ListAllLockRecordsRepository.d.ts +5 -3
  57. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js +39 -32
  58. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js.map +1 -1
  59. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js +13 -10
  60. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js.map +1 -1
  61. package/features/ListAllLockRecords/abstractions.js +3 -14
  62. package/features/ListAllLockRecords/abstractions.js.map +1 -1
  63. package/features/ListAllLockRecords/feature.d.ts +4 -1
  64. package/features/ListAllLockRecords/feature.js +7 -6
  65. package/features/ListAllLockRecords/feature.js.map +1 -1
  66. package/features/ListAllLockRecords/index.js +0 -2
  67. package/features/ListLockRecords/ListLockRecordsRepository.d.ts +6 -3
  68. package/features/ListLockRecords/ListLockRecordsRepository.js +39 -32
  69. package/features/ListLockRecords/ListLockRecordsRepository.js.map +1 -1
  70. package/features/ListLockRecords/ListLockRecordsUseCase.d.ts +1 -1
  71. package/features/ListLockRecords/ListLockRecordsUseCase.js +27 -24
  72. package/features/ListLockRecords/ListLockRecordsUseCase.js.map +1 -1
  73. package/features/ListLockRecords/abstractions.js +3 -14
  74. package/features/ListLockRecords/abstractions.js.map +1 -1
  75. package/features/ListLockRecords/feature.d.ts +4 -1
  76. package/features/ListLockRecords/feature.js +7 -6
  77. package/features/ListLockRecords/feature.js.map +1 -1
  78. package/features/ListLockRecords/index.js +0 -2
  79. package/features/LockEntry/LockEntryEventsDecorator.d.ts +1 -1
  80. package/features/LockEntry/LockEntryEventsDecorator.js +32 -32
  81. package/features/LockEntry/LockEntryEventsDecorator.js.map +1 -1
  82. package/features/LockEntry/LockEntryRepository.d.ts +4 -3
  83. package/features/LockEntry/LockEntryRepository.js +35 -31
  84. package/features/LockEntry/LockEntryRepository.js.map +1 -1
  85. package/features/LockEntry/LockEntryUseCase.js +21 -26
  86. package/features/LockEntry/LockEntryUseCase.js.map +1 -1
  87. package/features/LockEntry/abstractions.js +3 -14
  88. package/features/LockEntry/abstractions.js.map +1 -1
  89. package/features/LockEntry/events.d.ts +8 -8
  90. package/features/LockEntry/events.js +26 -34
  91. package/features/LockEntry/events.js.map +1 -1
  92. package/features/LockEntry/feature.d.ts +4 -1
  93. package/features/LockEntry/feature.js +8 -7
  94. package/features/LockEntry/feature.js.map +1 -1
  95. package/features/LockEntry/index.js +0 -2
  96. package/features/RecordLockingFeature.d.ts +4 -6
  97. package/features/RecordLockingFeature.js +21 -22
  98. package/features/RecordLockingFeature.js.map +1 -1
  99. package/features/RecordLockingModelProvider.d.ts +18 -0
  100. package/features/RecordLockingModelProvider.js +22 -0
  101. package/features/RecordLockingModelProvider.js.map +1 -0
  102. package/features/UnlockEntry/UnlockEntryEventsDecorator.d.ts +1 -1
  103. package/features/UnlockEntry/UnlockEntryEventsDecorator.js +33 -33
  104. package/features/UnlockEntry/UnlockEntryEventsDecorator.js.map +1 -1
  105. package/features/UnlockEntry/UnlockEntryRepository.d.ts +3 -3
  106. package/features/UnlockEntry/UnlockEntryRepository.js +31 -28
  107. package/features/UnlockEntry/UnlockEntryRepository.js.map +1 -1
  108. package/features/UnlockEntry/UnlockEntryUseCase.d.ts +1 -1
  109. package/features/UnlockEntry/UnlockEntryUseCase.js +54 -70
  110. package/features/UnlockEntry/UnlockEntryUseCase.js.map +1 -1
  111. package/features/UnlockEntry/abstractions.js +3 -14
  112. package/features/UnlockEntry/abstractions.js.map +1 -1
  113. package/features/UnlockEntry/events.d.ts +8 -8
  114. package/features/UnlockEntry/events.js +26 -34
  115. package/features/UnlockEntry/events.js.map +1 -1
  116. package/features/UnlockEntry/feature.d.ts +4 -1
  117. package/features/UnlockEntry/feature.js +8 -7
  118. package/features/UnlockEntry/feature.js.map +1 -1
  119. package/features/UnlockEntry/hasFullAccessPermission.d.ts +1 -1
  120. package/features/UnlockEntry/hasFullAccessPermission.js +6 -7
  121. package/features/UnlockEntry/hasFullAccessPermission.js.map +1 -1
  122. package/features/UnlockEntry/index.js +0 -2
  123. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.d.ts +1 -1
  124. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js +32 -32
  125. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js.map +1 -1
  126. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.d.ts +4 -4
  127. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js +34 -32
  128. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js.map +1 -1
  129. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.d.ts +1 -1
  130. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js +63 -80
  131. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js.map +1 -1
  132. package/features/UnlockEntryRequest/abstractions.js +3 -14
  133. package/features/UnlockEntryRequest/abstractions.js.map +1 -1
  134. package/features/UnlockEntryRequest/events.d.ts +8 -8
  135. package/features/UnlockEntryRequest/events.js +26 -34
  136. package/features/UnlockEntryRequest/events.js.map +1 -1
  137. package/features/UnlockEntryRequest/feature.d.ts +4 -1
  138. package/features/UnlockEntryRequest/feature.js +8 -7
  139. package/features/UnlockEntryRequest/feature.js.map +1 -1
  140. package/features/UnlockEntryRequest/index.js +0 -2
  141. package/features/UpdateEntryLock/UpdateEntryLockRepository.d.ts +5 -4
  142. package/features/UpdateEntryLock/UpdateEntryLockRepository.js +48 -50
  143. package/features/UpdateEntryLock/UpdateEntryLockRepository.js.map +1 -1
  144. package/features/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +1 -1
  145. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js +41 -52
  146. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js.map +1 -1
  147. package/features/UpdateEntryLock/abstractions.js +3 -14
  148. package/features/UpdateEntryLock/abstractions.js.map +1 -1
  149. package/features/UpdateEntryLock/feature.d.ts +4 -1
  150. package/features/UpdateEntryLock/feature.js +7 -6
  151. package/features/UpdateEntryLock/feature.js.map +1 -1
  152. package/features/UpdateEntryLock/index.js +0 -2
  153. package/graphql/RecordLockingGraphQLSchema.d.ts +25 -0
  154. package/graphql/RecordLockingGraphQLSchema.js +390 -0
  155. package/graphql/RecordLockingGraphQLSchema.js.map +1 -0
  156. package/graphql/checkPermissions.d.ts +3 -3
  157. package/graphql/checkPermissions.js +4 -10
  158. package/graphql/checkPermissions.js.map +1 -1
  159. package/graphql/resolve.d.ts +1 -1
  160. package/graphql/resolve.js +16 -18
  161. package/graphql/resolve.js.map +1 -1
  162. package/index.d.ts +2 -9
  163. package/index.js +1 -62
  164. package/package.json +27 -22
  165. package/types.js +6 -9
  166. package/types.js.map +1 -1
  167. package/utils/convertWhereCondition.js +20 -32
  168. package/utils/convertWhereCondition.js.map +1 -1
  169. package/utils/getTimeout.js +8 -15
  170. package/utils/getTimeout.js.map +1 -1
  171. package/utils/lockRecordDatabaseId.js +6 -11
  172. package/utils/lockRecordDatabaseId.js.map +1 -1
  173. package/domain/index.js.map +0 -1
  174. package/features/GetLockRecord/index.js.map +0 -1
  175. package/features/GetLockedEntryLockRecord/index.js.map +0 -1
  176. package/features/IsEntryLocked/index.js.map +0 -1
  177. package/features/KickOutCurrentUser/index.js.map +0 -1
  178. package/features/ListAllLockRecords/index.js.map +0 -1
  179. package/features/ListLockRecords/index.js.map +0 -1
  180. package/features/LockEntry/index.js.map +0 -1
  181. package/features/UnlockEntry/index.js.map +0 -1
  182. package/features/UnlockEntryRequest/index.js.map +0 -1
  183. package/features/UpdateEntryLock/index.js.map +0 -1
  184. package/graphql/schema.d.ts +0 -11
  185. package/graphql/schema.js +0 -318
  186. package/graphql/schema.js.map +0 -1
  187. package/index.js.map +0 -1
@@ -1,43 +1,45 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { UnlockEntryRequestRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { UnlockEntryRequestRepository } from "./abstractions.js";
3
3
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
4
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
5
- import { RecordLockingModel } from "../../domain/abstractions.js";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
+ import { RecordLockingModelProvider } from "../../domain/abstractions.js";
6
6
  import { UnlockEntryRequestError } from "../../domain/errors.js";
7
7
  import { createLockRecordDatabaseId } from "../../utils/lockRecordDatabaseId.js";
8
8
  import { createIdentifier } from "@webiny/utils";
9
9
  class UnlockEntryRequestRepositoryImpl {
10
- constructor(updateEntry, identityContext, model) {
11
- this.updateEntry = updateEntry;
12
- this.identityContext = identityContext;
13
- this.model = model;
14
- }
15
- async update(record) {
16
- try {
17
- const entryId = createLockRecordDatabaseId(record.id);
18
- const id = createIdentifier({
19
- id: entryId,
20
- version: 1
21
- });
22
- const recordValues = record.toObject();
23
- const result = await this.identityContext.withoutAuthorization(async () => {
24
- return await this.updateEntry.execute(this.model, id, {
25
- ...recordValues,
26
- values: recordValues
27
- });
28
- });
29
- if (result.isFail()) {
30
- return Result.fail(new UnlockEntryRequestError(result.error));
31
- }
32
- return Result.ok(record);
33
- } catch (error) {
34
- return Result.fail(new UnlockEntryRequestError(error));
10
+ constructor(updateEntry, identityContext, modelProvider){
11
+ this.updateEntry = updateEntry;
12
+ this.identityContext = identityContext;
13
+ this.modelProvider = modelProvider;
14
+ }
15
+ async update(record) {
16
+ try {
17
+ const model = await this.modelProvider.get();
18
+ const entryId = createLockRecordDatabaseId(record.id);
19
+ const id = createIdentifier({
20
+ id: entryId,
21
+ version: 1
22
+ });
23
+ const recordValues = record.toObject();
24
+ const result = await this.identityContext.withoutAuthorization(async ()=>await this.updateEntry.execute(model, id, {
25
+ ...recordValues,
26
+ values: recordValues
27
+ }));
28
+ if (result.isFail()) return Result.fail(new UnlockEntryRequestError(result.error));
29
+ return Result.ok(record);
30
+ } catch (error) {
31
+ return Result.fail(new UnlockEntryRequestError(error));
32
+ }
35
33
  }
36
- }
37
34
  }
38
- export const UnlockEntryRequestRepository = RepositoryAbstraction.createImplementation({
39
- implementation: UnlockEntryRequestRepositoryImpl,
40
- dependencies: [UpdateEntryUseCase, IdentityContext, RecordLockingModel]
35
+ const UnlockEntryRequestRepository_UnlockEntryRequestRepository = UnlockEntryRequestRepository.createImplementation({
36
+ implementation: UnlockEntryRequestRepositoryImpl,
37
+ dependencies: [
38
+ UpdateEntryUseCase,
39
+ IdentityContext,
40
+ RecordLockingModelProvider
41
+ ]
41
42
  });
43
+ export { UnlockEntryRequestRepository_UnlockEntryRequestRepository as UnlockEntryRequestRepository };
42
44
 
43
45
  //# sourceMappingURL=UnlockEntryRequestRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","UnlockEntryRequestRepository","RepositoryAbstraction","UpdateEntryUseCase","IdentityContext","RecordLockingModel","UnlockEntryRequestError","createLockRecordDatabaseId","createIdentifier","UnlockEntryRequestRepositoryImpl","constructor","updateEntry","identityContext","model","update","record","entryId","id","version","recordValues","toObject","result","withoutAuthorization","execute","values","isFail","fail","error","ok","createImplementation","implementation","dependencies"],"sources":["UnlockEntryRequestRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UnlockEntryRequestRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { RecordLockingModel } from \"~/domain/abstractions.js\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { UnlockEntryRequestError } from \"~/domain/errors.js\";\nimport { createLockRecordDatabaseId } from \"~/utils/lockRecordDatabaseId.js\";\nimport { createIdentifier } from \"@webiny/utils\";\n\nclass UnlockEntryRequestRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private identityContext: IdentityContext.Interface,\n private model: CmsModel\n ) {}\n\n async update(record: ILockRecord): Promise<Result<ILockRecord, RepositoryAbstraction.Error>> {\n try {\n const entryId = createLockRecordDatabaseId(record.id);\n const id = createIdentifier({\n id: entryId,\n version: 1\n });\n\n const recordValues = record.toObject();\n const result = await this.identityContext.withoutAuthorization(async () => {\n return await this.updateEntry.execute(this.model, id, {\n ...recordValues,\n values: recordValues\n });\n });\n\n if (result.isFail()) {\n return Result.fail(new UnlockEntryRequestError(result.error));\n }\n\n return Result.ok(record);\n } catch (error) {\n return Result.fail(new UnlockEntryRequestError(error as Error));\n }\n }\n}\n\nexport const UnlockEntryRequestRepository = RepositoryAbstraction.createImplementation({\n implementation: UnlockEntryRequestRepositoryImpl,\n dependencies: [UpdateEntryUseCase, IdentityContext, RecordLockingModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,4BAA4B,IAAIC,qBAAqB;AAC9D,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,kBAAkB;AAG3B,SAASC,uBAAuB;AAChC,SAASC,0BAA0B;AACnC,SAASC,gBAAgB,QAAQ,eAAe;AAEhD,MAAMC,gCAAgC,CAA4C;EAC9EC,WAAWA,CACCC,WAAyC,EACzCC,eAA0C,EAC1CC,KAAe,EACzB;IAAA,KAHUF,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,KAAe,GAAfA,KAAe;EACxB;EAEH,MAAMC,MAAMA,CAACC,MAAmB,EAA6D;IACzF,IAAI;MACA,MAAMC,OAAO,GAAGT,0BAA0B,CAACQ,MAAM,CAACE,EAAE,CAAC;MACrD,MAAMA,EAAE,GAAGT,gBAAgB,CAAC;QACxBS,EAAE,EAAED,OAAO;QACXE,OAAO,EAAE;MACb,CAAC,CAAC;MAEF,MAAMC,YAAY,GAAGJ,MAAM,CAACK,QAAQ,CAAC,CAAC;MACtC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACT,eAAe,CAACU,oBAAoB,CAAC,YAAY;QACvE,OAAO,MAAM,IAAI,CAACX,WAAW,CAACY,OAAO,CAAC,IAAI,CAACV,KAAK,EAAEI,EAAE,EAAE;UAClD,GAAGE,YAAY;UACfK,MAAM,EAAEL;QACZ,CAAC,CAAC;MACN,CAAC,CAAC;MAEF,IAAIE,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;QACjB,OAAOzB,MAAM,CAAC0B,IAAI,CAAC,IAAIpB,uBAAuB,CAACe,MAAM,CAACM,KAAK,CAAC,CAAC;MACjE;MAEA,OAAO3B,MAAM,CAAC4B,EAAE,CAACb,MAAM,CAAC;IAC5B,CAAC,CAAC,OAAOY,KAAK,EAAE;MACZ,OAAO3B,MAAM,CAAC0B,IAAI,CAAC,IAAIpB,uBAAuB,CAACqB,KAAc,CAAC,CAAC;IACnE;EACJ;AACJ;AAEA,OAAO,MAAM1B,4BAA4B,GAAGC,qBAAqB,CAAC2B,oBAAoB,CAAC;EACnFC,cAAc,EAAErB,gCAAgC;EAChDsB,YAAY,EAAE,CAAC5B,kBAAkB,EAAEC,eAAe,EAAEC,kBAAkB;AAC1E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/UnlockEntryRequest/UnlockEntryRequestRepository.js","sources":["../../../src/features/UnlockEntryRequest/UnlockEntryRequestRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UnlockEntryRequestRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { RecordLockingModelProvider } from \"~/domain/abstractions.js\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport { UnlockEntryRequestError } from \"~/domain/errors.js\";\nimport { createLockRecordDatabaseId } from \"~/utils/lockRecordDatabaseId.js\";\nimport { createIdentifier } from \"@webiny/utils\";\n\nclass UnlockEntryRequestRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private identityContext: IdentityContext.Interface,\n private modelProvider: RecordLockingModelProvider.Interface\n ) {}\n\n async update(record: ILockRecord): Promise<Result<ILockRecord, RepositoryAbstraction.Error>> {\n try {\n const model = await this.modelProvider.get();\n\n const entryId = createLockRecordDatabaseId(record.id);\n const id = createIdentifier({\n id: entryId,\n version: 1\n });\n\n const recordValues = record.toObject();\n const result = await this.identityContext.withoutAuthorization(async () => {\n return await this.updateEntry.execute(model, id, {\n ...recordValues,\n values: recordValues\n });\n });\n\n if (result.isFail()) {\n return Result.fail(new UnlockEntryRequestError(result.error));\n }\n\n return Result.ok(record);\n } catch (error) {\n return Result.fail(new UnlockEntryRequestError(error as Error));\n }\n }\n}\n\nexport const UnlockEntryRequestRepository = RepositoryAbstraction.createImplementation({\n implementation: UnlockEntryRequestRepositoryImpl,\n dependencies: [UpdateEntryUseCase, IdentityContext, RecordLockingModelProvider]\n});\n"],"names":["UnlockEntryRequestRepositoryImpl","updateEntry","identityContext","modelProvider","record","model","entryId","createLockRecordDatabaseId","id","createIdentifier","recordValues","result","Result","UnlockEntryRequestError","error","UnlockEntryRequestRepository","RepositoryAbstraction","UpdateEntryUseCase","IdentityContext","RecordLockingModelProvider"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACYC,WAAyC,EACzCC,eAA0C,EAC1CC,aAAmD,CAC7D;aAHUF,WAAW,GAAXA;aACAC,eAAe,GAAfA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,OAAOC,MAAmB,EAA6D;QACzF,IAAI;YACA,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;YAE1C,MAAMC,UAAUC,2BAA2BH,OAAO,EAAE;YACpD,MAAMI,KAAKC,iBAAiB;gBACxB,IAAIH;gBACJ,SAAS;YACb;YAEA,MAAMI,eAAeN,OAAO,QAAQ;YACpC,MAAMO,SAAS,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,UACpD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACN,OAAOG,IAAI;oBAC7C,GAAGE,YAAY;oBACf,QAAQA;gBACZ;YAGJ,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,wBAAwBF,OAAO,KAAK;YAG/D,OAAOC,OAAO,EAAE,CAACR;QACrB,EAAE,OAAOU,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,wBAAwBC;QACnD;IACJ;AACJ;AAEO,MAAMC,4DAA+BC,6BAAAA,oBAA0C,CAAC;IACnF,gBAAgBhB;IAChB,cAAc;QAACiB;QAAoBC;QAAiBC;KAA2B;AACnF"}
@@ -1,7 +1,7 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { UnlockEntryRequestUseCase as UseCaseAbstraction, UnlockEntryRequestRepository, UnlockEntryRequestInput } from "./abstractions.js";
3
3
  import { GetLockRecordUseCase } from "../GetLockRecord/abstractions.js";
4
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
5
  import type { ILockRecord } from "../../domain/LockRecord.js";
6
6
  declare class UnlockEntryRequestUseCaseImpl implements UseCaseAbstraction.Interface {
7
7
  private getLockRecord;
@@ -1,92 +1,75 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { UnlockEntryRequestUseCase as UseCaseAbstraction, UnlockEntryRequestRepository } from "./abstractions.js";
2
+ import { UnlockEntryRequestRepository, UnlockEntryRequestUseCase } from "./abstractions.js";
3
3
  import { GetLockRecordUseCase } from "../GetLockRecord/abstractions.js";
4
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
5
- import { EntryNotLockedError, UnlockRequestAlreadySentError, LockRecordNotFoundError, LockRecordPersistenceError } from "../../domain/errors.js";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
+ import { EntryNotLockedError, LockRecordNotFoundError, LockRecordPersistenceError, UnlockRequestAlreadySentError } from "../../domain/errors.js";
6
6
  import { RecordLockingLockRecordActionType } from "../../domain/types.js";
7
7
  class UnlockEntryRequestUseCaseImpl {
8
- constructor(getLockRecord, repository, identityContext) {
9
- this.getLockRecord = getLockRecord;
10
- this.repository = repository;
11
- this.identityContext = identityContext;
12
- }
13
- async execute(input) {
14
- // Get the lock record
15
- const recordResult = await this.getLockRecord.execute(input);
16
-
17
- // If not found, it means entry is not locked
18
- if (recordResult.isFail()) {
19
- if (recordResult.error instanceof LockRecordNotFoundError) {
20
- const error = new EntryNotLockedError({
21
- id: input.id,
22
- type: input.type
23
- });
24
- return Result.fail(error);
25
- }
26
- // Other errors
27
- return Result.fail(new LockRecordPersistenceError(recordResult.error));
28
- }
29
- const record = recordResult.value;
30
-
31
- // If expired, entry is not locked
32
- if (record.isExpired()) {
33
- const error = new EntryNotLockedError({
34
- id: input.id,
35
- type: input.type
36
- });
37
- return Result.fail(error);
8
+ constructor(getLockRecord, repository, identityContext){
9
+ this.getLockRecord = getLockRecord;
10
+ this.repository = repository;
11
+ this.identityContext = identityContext;
38
12
  }
39
-
40
- // Check if unlock request already exists
41
- const unlockRequested = record.getUnlockRequested();
42
- if (unlockRequested) {
43
- const currentIdentity = this.identityContext.getIdentity();
44
-
45
- // If a different user already requested unlock, deny
46
- if (unlockRequested.createdBy.id !== currentIdentity.id) {
47
- const error = new UnlockRequestAlreadySentError({
48
- id: input.id,
49
- type: input.type,
50
- identityId: unlockRequested.createdBy.id
13
+ async execute(input) {
14
+ const recordResult = await this.getLockRecord.execute(input);
15
+ if (recordResult.isFail()) {
16
+ if (recordResult.error instanceof LockRecordNotFoundError) {
17
+ const error = new EntryNotLockedError({
18
+ id: input.id,
19
+ type: input.type
20
+ });
21
+ return Result.fail(error);
22
+ }
23
+ return Result.fail(new LockRecordPersistenceError(recordResult.error));
24
+ }
25
+ const record = recordResult.value;
26
+ if (record.isExpired()) {
27
+ const error = new EntryNotLockedError({
28
+ id: input.id,
29
+ type: input.type
30
+ });
31
+ return Result.fail(error);
32
+ }
33
+ const unlockRequested = record.getUnlockRequested();
34
+ if (unlockRequested) {
35
+ const currentIdentity = this.identityContext.getIdentity();
36
+ if (unlockRequested.createdBy.id !== currentIdentity.id) {
37
+ const error = new UnlockRequestAlreadySentError({
38
+ id: input.id,
39
+ type: input.type,
40
+ identityId: unlockRequested.createdBy.id
41
+ });
42
+ return Result.fail(error);
43
+ }
44
+ const approved = record.getUnlockApproved();
45
+ const denied = record.getUnlockDenied();
46
+ if (approved || denied) return Result.ok(record);
47
+ const error = new UnlockRequestAlreadySentError({
48
+ id: input.id,
49
+ type: input.type,
50
+ identityId: unlockRequested.createdBy.id
51
+ });
52
+ return Result.fail(error);
53
+ }
54
+ const identity = this.identityContext.getIdentity();
55
+ record.addAction({
56
+ type: RecordLockingLockRecordActionType.requested,
57
+ createdOn: new Date(),
58
+ createdBy: identity
51
59
  });
52
- return Result.fail(error);
53
- }
54
-
55
- // If same user but already approved or denied, return the record
56
- const approved = record.getUnlockApproved();
57
- const denied = record.getUnlockDenied();
58
- if (approved || denied) {
60
+ const updateResult = await this.repository.update(record);
61
+ if (updateResult.isFail()) return Result.fail(updateResult.error);
59
62
  return Result.ok(record);
60
- }
61
-
62
- // If same user and pending, treat as duplicate
63
- const error = new UnlockRequestAlreadySentError({
64
- id: input.id,
65
- type: input.type,
66
- identityId: unlockRequested.createdBy.id
67
- });
68
- return Result.fail(error);
69
- }
70
-
71
- // Add unlock request action
72
- const identity = this.identityContext.getIdentity();
73
- record.addAction({
74
- type: RecordLockingLockRecordActionType.requested,
75
- createdOn: new Date(),
76
- createdBy: identity
77
- });
78
-
79
- // Update the record
80
- const updateResult = await this.repository.update(record);
81
- if (updateResult.isFail()) {
82
- return Result.fail(updateResult.error);
83
63
  }
84
- return Result.ok(record);
85
- }
86
64
  }
87
- export const UnlockEntryRequestUseCase = UseCaseAbstraction.createImplementation({
88
- implementation: UnlockEntryRequestUseCaseImpl,
89
- dependencies: [GetLockRecordUseCase, UnlockEntryRequestRepository, IdentityContext]
65
+ const UnlockEntryRequestUseCase_UnlockEntryRequestUseCase = UnlockEntryRequestUseCase.createImplementation({
66
+ implementation: UnlockEntryRequestUseCaseImpl,
67
+ dependencies: [
68
+ GetLockRecordUseCase,
69
+ UnlockEntryRequestRepository,
70
+ IdentityContext
71
+ ]
90
72
  });
73
+ export { UnlockEntryRequestUseCase_UnlockEntryRequestUseCase as UnlockEntryRequestUseCase };
91
74
 
92
75
  //# sourceMappingURL=UnlockEntryRequestUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","UnlockEntryRequestUseCase","UseCaseAbstraction","UnlockEntryRequestRepository","GetLockRecordUseCase","IdentityContext","EntryNotLockedError","UnlockRequestAlreadySentError","LockRecordNotFoundError","LockRecordPersistenceError","RecordLockingLockRecordActionType","UnlockEntryRequestUseCaseImpl","constructor","getLockRecord","repository","identityContext","execute","input","recordResult","isFail","error","id","type","fail","record","value","isExpired","unlockRequested","getUnlockRequested","currentIdentity","getIdentity","createdBy","identityId","approved","getUnlockApproved","denied","getUnlockDenied","ok","identity","addAction","requested","createdOn","Date","updateResult","update","createImplementation","implementation","dependencies"],"sources":["UnlockEntryRequestUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UnlockEntryRequestUseCase as UseCaseAbstraction,\n UnlockEntryRequestRepository,\n UnlockEntryRequestInput\n} from \"./abstractions.js\";\nimport { GetLockRecordUseCase } from \"../GetLockRecord/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport {\n EntryNotLockedError,\n UnlockRequestAlreadySentError,\n LockRecordNotFoundError,\n LockRecordPersistenceError\n} from \"~/domain/errors.js\";\nimport { RecordLockingLockRecordActionType } from \"~/domain/types.js\";\n\nclass UnlockEntryRequestUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private getLockRecord: GetLockRecordUseCase.Interface,\n private repository: UnlockEntryRequestRepository.Interface,\n private identityContext: IdentityContext.Interface\n ) {}\n\n async execute(\n input: UnlockEntryRequestInput\n ): Promise<Result<ILockRecord, UseCaseAbstraction.Error>> {\n // Get the lock record\n const recordResult = await this.getLockRecord.execute(input);\n\n // If not found, it means entry is not locked\n if (recordResult.isFail()) {\n if (recordResult.error instanceof LockRecordNotFoundError) {\n const error = new EntryNotLockedError({ id: input.id, type: input.type });\n return Result.fail(error);\n }\n // Other errors\n return Result.fail(new LockRecordPersistenceError(recordResult.error));\n }\n\n const record = recordResult.value;\n\n // If expired, entry is not locked\n if (record.isExpired()) {\n const error = new EntryNotLockedError({ id: input.id, type: input.type });\n return Result.fail(error);\n }\n\n // Check if unlock request already exists\n const unlockRequested = record.getUnlockRequested();\n if (unlockRequested) {\n const currentIdentity = this.identityContext.getIdentity();\n\n // If a different user already requested unlock, deny\n if (unlockRequested.createdBy.id !== currentIdentity.id) {\n const error = new UnlockRequestAlreadySentError({\n id: input.id,\n type: input.type,\n identityId: unlockRequested.createdBy.id\n });\n return Result.fail(error);\n }\n\n // If same user but already approved or denied, return the record\n const approved = record.getUnlockApproved();\n const denied = record.getUnlockDenied();\n if (approved || denied) {\n return Result.ok(record);\n }\n\n // If same user and pending, treat as duplicate\n const error = new UnlockRequestAlreadySentError({\n id: input.id,\n type: input.type,\n identityId: unlockRequested.createdBy.id\n });\n return Result.fail(error);\n }\n\n // Add unlock request action\n const identity = this.identityContext.getIdentity();\n record.addAction({\n type: RecordLockingLockRecordActionType.requested,\n createdOn: new Date(),\n createdBy: identity\n });\n\n // Update the record\n const updateResult = await this.repository.update(record);\n\n if (updateResult.isFail()) {\n return Result.fail(updateResult.error);\n }\n\n return Result.ok(record);\n }\n}\n\nexport const UnlockEntryRequestUseCase = UseCaseAbstraction.createImplementation({\n implementation: UnlockEntryRequestUseCaseImpl,\n dependencies: [GetLockRecordUseCase, UnlockEntryRequestRepository, IdentityContext]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAGhC,SAASC,oBAAoB;AAC7B,SAASC,eAAe,QAAQ,2CAA2C;AAE3E,SACIC,mBAAmB,EACnBC,6BAA6B,EAC7BC,uBAAuB,EACvBC,0BAA0B;AAE9B,SAASC,iCAAiC;AAE1C,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CACCC,aAA6C,EAC7CC,UAAkD,EAClDC,eAA0C,EACpD;IAAA,KAHUF,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,UAAkD,GAAlDA,UAAkD;IAAA,KAClDC,eAA0C,GAA1CA,eAA0C;EACnD;EAEH,MAAMC,OAAOA,CACTC,KAA8B,EACwB;IACtD;IACA,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACL,aAAa,CAACG,OAAO,CAACC,KAAK,CAAC;;IAE5D;IACA,IAAIC,YAAY,CAACC,MAAM,CAAC,CAAC,EAAE;MACvB,IAAID,YAAY,CAACE,KAAK,YAAYZ,uBAAuB,EAAE;QACvD,MAAMY,KAAK,GAAG,IAAId,mBAAmB,CAAC;UAAEe,EAAE,EAAEJ,KAAK,CAACI,EAAE;UAAEC,IAAI,EAAEL,KAAK,CAACK;QAAK,CAAC,CAAC;QACzE,OAAOtB,MAAM,CAACuB,IAAI,CAACH,KAAK,CAAC;MAC7B;MACA;MACA,OAAOpB,MAAM,CAACuB,IAAI,CAAC,IAAId,0BAA0B,CAACS,YAAY,CAACE,KAAK,CAAC,CAAC;IAC1E;IAEA,MAAMI,MAAM,GAAGN,YAAY,CAACO,KAAK;;IAEjC;IACA,IAAID,MAAM,CAACE,SAAS,CAAC,CAAC,EAAE;MACpB,MAAMN,KAAK,GAAG,IAAId,mBAAmB,CAAC;QAAEe,EAAE,EAAEJ,KAAK,CAACI,EAAE;QAAEC,IAAI,EAAEL,KAAK,CAACK;MAAK,CAAC,CAAC;MACzE,OAAOtB,MAAM,CAACuB,IAAI,CAACH,KAAK,CAAC;IAC7B;;IAEA;IACA,MAAMO,eAAe,GAAGH,MAAM,CAACI,kBAAkB,CAAC,CAAC;IACnD,IAAID,eAAe,EAAE;MACjB,MAAME,eAAe,GAAG,IAAI,CAACd,eAAe,CAACe,WAAW,CAAC,CAAC;;MAE1D;MACA,IAAIH,eAAe,CAACI,SAAS,CAACV,EAAE,KAAKQ,eAAe,CAACR,EAAE,EAAE;QACrD,MAAMD,KAAK,GAAG,IAAIb,6BAA6B,CAAC;UAC5Cc,EAAE,EAAEJ,KAAK,CAACI,EAAE;UACZC,IAAI,EAAEL,KAAK,CAACK,IAAI;UAChBU,UAAU,EAAEL,eAAe,CAACI,SAAS,CAACV;QAC1C,CAAC,CAAC;QACF,OAAOrB,MAAM,CAACuB,IAAI,CAACH,KAAK,CAAC;MAC7B;;MAEA;MACA,MAAMa,QAAQ,GAAGT,MAAM,CAACU,iBAAiB,CAAC,CAAC;MAC3C,MAAMC,MAAM,GAAGX,MAAM,CAACY,eAAe,CAAC,CAAC;MACvC,IAAIH,QAAQ,IAAIE,MAAM,EAAE;QACpB,OAAOnC,MAAM,CAACqC,EAAE,CAACb,MAAM,CAAC;MAC5B;;MAEA;MACA,MAAMJ,KAAK,GAAG,IAAIb,6BAA6B,CAAC;QAC5Cc,EAAE,EAAEJ,KAAK,CAACI,EAAE;QACZC,IAAI,EAAEL,KAAK,CAACK,IAAI;QAChBU,UAAU,EAAEL,eAAe,CAACI,SAAS,CAACV;MAC1C,CAAC,CAAC;MACF,OAAOrB,MAAM,CAACuB,IAAI,CAACH,KAAK,CAAC;IAC7B;;IAEA;IACA,MAAMkB,QAAQ,GAAG,IAAI,CAACvB,eAAe,CAACe,WAAW,CAAC,CAAC;IACnDN,MAAM,CAACe,SAAS,CAAC;MACbjB,IAAI,EAAEZ,iCAAiC,CAAC8B,SAAS;MACjDC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MACrBX,SAAS,EAAEO;IACf,CAAC,CAAC;;IAEF;IACA,MAAMK,YAAY,GAAG,MAAM,IAAI,CAAC7B,UAAU,CAAC8B,MAAM,CAACpB,MAAM,CAAC;IAEzD,IAAImB,YAAY,CAACxB,MAAM,CAAC,CAAC,EAAE;MACvB,OAAOnB,MAAM,CAACuB,IAAI,CAACoB,YAAY,CAACvB,KAAK,CAAC;IAC1C;IAEA,OAAOpB,MAAM,CAACqC,EAAE,CAACb,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMvB,yBAAyB,GAAGC,kBAAkB,CAAC2C,oBAAoB,CAAC;EAC7EC,cAAc,EAAEnC,6BAA6B;EAC7CoC,YAAY,EAAE,CAAC3C,oBAAoB,EAAED,4BAA4B,EAAEE,eAAe;AACtF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/UnlockEntryRequest/UnlockEntryRequestUseCase.js","sources":["../../../src/features/UnlockEntryRequest/UnlockEntryRequestUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UnlockEntryRequestUseCase as UseCaseAbstraction,\n UnlockEntryRequestRepository,\n UnlockEntryRequestInput\n} from \"./abstractions.js\";\nimport { GetLockRecordUseCase } from \"../GetLockRecord/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport {\n EntryNotLockedError,\n UnlockRequestAlreadySentError,\n LockRecordNotFoundError,\n LockRecordPersistenceError\n} from \"~/domain/errors.js\";\nimport { RecordLockingLockRecordActionType } from \"~/domain/types.js\";\n\nclass UnlockEntryRequestUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private getLockRecord: GetLockRecordUseCase.Interface,\n private repository: UnlockEntryRequestRepository.Interface,\n private identityContext: IdentityContext.Interface\n ) {}\n\n async execute(\n input: UnlockEntryRequestInput\n ): Promise<Result<ILockRecord, UseCaseAbstraction.Error>> {\n // Get the lock record\n const recordResult = await this.getLockRecord.execute(input);\n\n // If not found, it means entry is not locked\n if (recordResult.isFail()) {\n if (recordResult.error instanceof LockRecordNotFoundError) {\n const error = new EntryNotLockedError({ id: input.id, type: input.type });\n return Result.fail(error);\n }\n // Other errors\n return Result.fail(new LockRecordPersistenceError(recordResult.error));\n }\n\n const record = recordResult.value;\n\n // If expired, entry is not locked\n if (record.isExpired()) {\n const error = new EntryNotLockedError({ id: input.id, type: input.type });\n return Result.fail(error);\n }\n\n // Check if unlock request already exists\n const unlockRequested = record.getUnlockRequested();\n if (unlockRequested) {\n const currentIdentity = this.identityContext.getIdentity();\n\n // If a different user already requested unlock, deny\n if (unlockRequested.createdBy.id !== currentIdentity.id) {\n const error = new UnlockRequestAlreadySentError({\n id: input.id,\n type: input.type,\n identityId: unlockRequested.createdBy.id\n });\n return Result.fail(error);\n }\n\n // If same user but already approved or denied, return the record\n const approved = record.getUnlockApproved();\n const denied = record.getUnlockDenied();\n if (approved || denied) {\n return Result.ok(record);\n }\n\n // If same user and pending, treat as duplicate\n const error = new UnlockRequestAlreadySentError({\n id: input.id,\n type: input.type,\n identityId: unlockRequested.createdBy.id\n });\n return Result.fail(error);\n }\n\n // Add unlock request action\n const identity = this.identityContext.getIdentity();\n record.addAction({\n type: RecordLockingLockRecordActionType.requested,\n createdOn: new Date(),\n createdBy: identity\n });\n\n // Update the record\n const updateResult = await this.repository.update(record);\n\n if (updateResult.isFail()) {\n return Result.fail(updateResult.error);\n }\n\n return Result.ok(record);\n }\n}\n\nexport const UnlockEntryRequestUseCase = UseCaseAbstraction.createImplementation({\n implementation: UnlockEntryRequestUseCaseImpl,\n dependencies: [GetLockRecordUseCase, UnlockEntryRequestRepository, IdentityContext]\n});\n"],"names":["UnlockEntryRequestUseCaseImpl","getLockRecord","repository","identityContext","input","recordResult","LockRecordNotFoundError","error","EntryNotLockedError","Result","LockRecordPersistenceError","record","unlockRequested","currentIdentity","UnlockRequestAlreadySentError","approved","denied","identity","RecordLockingLockRecordActionType","Date","updateResult","UnlockEntryRequestUseCase","UseCaseAbstraction","GetLockRecordUseCase","UnlockEntryRequestRepository","IdentityContext"],"mappings":";;;;;;AAiBA,MAAMA;IACF,YACYC,aAA6C,EAC7CC,UAAkD,EAClDC,eAA0C,CACpD;aAHUF,aAAa,GAAbA;aACAC,UAAU,GAAVA;aACAC,eAAe,GAAfA;IACT;IAEH,MAAM,QACFC,KAA8B,EACwB;QAEtD,MAAMC,eAAe,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAACD;QAGtD,IAAIC,aAAa,MAAM,IAAI;YACvB,IAAIA,aAAa,KAAK,YAAYC,yBAAyB;gBACvD,MAAMC,QAAQ,IAAIC,oBAAoB;oBAAE,IAAIJ,MAAM,EAAE;oBAAE,MAAMA,MAAM,IAAI;gBAAC;gBACvE,OAAOK,OAAO,IAAI,CAACF;YACvB;YAEA,OAAOE,OAAO,IAAI,CAAC,IAAIC,2BAA2BL,aAAa,KAAK;QACxE;QAEA,MAAMM,SAASN,aAAa,KAAK;QAGjC,IAAIM,OAAO,SAAS,IAAI;YACpB,MAAMJ,QAAQ,IAAIC,oBAAoB;gBAAE,IAAIJ,MAAM,EAAE;gBAAE,MAAMA,MAAM,IAAI;YAAC;YACvE,OAAOK,OAAO,IAAI,CAACF;QACvB;QAGA,MAAMK,kBAAkBD,OAAO,kBAAkB;QACjD,IAAIC,iBAAiB;YACjB,MAAMC,kBAAkB,IAAI,CAAC,eAAe,CAAC,WAAW;YAGxD,IAAID,gBAAgB,SAAS,CAAC,EAAE,KAAKC,gBAAgB,EAAE,EAAE;gBACrD,MAAMN,QAAQ,IAAIO,8BAA8B;oBAC5C,IAAIV,MAAM,EAAE;oBACZ,MAAMA,MAAM,IAAI;oBAChB,YAAYQ,gBAAgB,SAAS,CAAC,EAAE;gBAC5C;gBACA,OAAOH,OAAO,IAAI,CAACF;YACvB;YAGA,MAAMQ,WAAWJ,OAAO,iBAAiB;YACzC,MAAMK,SAASL,OAAO,eAAe;YACrC,IAAII,YAAYC,QACZ,OAAOP,OAAO,EAAE,CAACE;YAIrB,MAAMJ,QAAQ,IAAIO,8BAA8B;gBAC5C,IAAIV,MAAM,EAAE;gBACZ,MAAMA,MAAM,IAAI;gBAChB,YAAYQ,gBAAgB,SAAS,CAAC,EAAE;YAC5C;YACA,OAAOH,OAAO,IAAI,CAACF;QACvB;QAGA,MAAMU,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QACjDN,OAAO,SAAS,CAAC;YACb,MAAMO,kCAAkC,SAAS;YACjD,WAAW,IAAIC;YACf,WAAWF;QACf;QAGA,MAAMG,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAACT;QAElD,IAAIS,aAAa,MAAM,IACnB,OAAOX,OAAO,IAAI,CAACW,aAAa,KAAK;QAGzC,OAAOX,OAAO,EAAE,CAACE;IACrB;AACJ;AAEO,MAAMU,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBtB;IAChB,cAAc;QAACuB;QAAsBC;QAA8BC;KAAgB;AACvF"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Input type
4
-
5
- /**
6
- * UnlockEntryRequest Use Case - Adds unlock request to lock record
7
- */
8
-
9
- export const UnlockEntryRequestUseCase = createAbstraction("UnlockEntryRequestUseCase");
10
-
11
- /**
12
- * UnlockEntryRequestRepository - Updates lock record with unlock request
13
- */
14
-
15
- export const UnlockEntryRequestRepository = createAbstraction("UnlockEntryRequestRepository");
2
+ const UnlockEntryRequestUseCase = createAbstraction("UnlockEntryRequestUseCase");
3
+ const UnlockEntryRequestRepository = createAbstraction("UnlockEntryRequestRepository");
4
+ export { UnlockEntryRequestRepository, UnlockEntryRequestUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UnlockEntryRequestUseCase","UnlockEntryRequestRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordEntryType } from \"~/domain/types.js\";\nimport type {\n EntryNotLockedError,\n UnlockRequestAlreadySentError,\n UnlockEntryRequestError,\n LockRecordPersistenceError\n} from \"~/domain/errors.js\";\n\n// Input type\nexport interface UnlockEntryRequestInput {\n id: string;\n type: LockRecordEntryType;\n}\n\n/**\n * UnlockEntryRequest Use Case - Adds unlock request to lock record\n */\nexport interface IUnlockEntryRequestUseCase {\n execute(input: UnlockEntryRequestInput): Promise<Result<ILockRecord, UseCaseError>>;\n}\n\nexport interface IUnlockEntryRequestUseCaseErrors {\n notLocked: EntryNotLockedError;\n alreadySent: UnlockRequestAlreadySentError;\n persistence: LockRecordPersistenceError;\n requestError: UnlockEntryRequestError;\n}\n\ntype UseCaseError = IUnlockEntryRequestUseCaseErrors[keyof IUnlockEntryRequestUseCaseErrors];\n\nexport const UnlockEntryRequestUseCase = createAbstraction<IUnlockEntryRequestUseCase>(\n \"UnlockEntryRequestUseCase\"\n);\n\nexport namespace UnlockEntryRequestUseCase {\n export type Interface = IUnlockEntryRequestUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * UnlockEntryRequestRepository - Updates lock record with unlock request\n */\nexport interface IUnlockEntryRequestRepository {\n update(record: ILockRecord): Promise<Result<ILockRecord, RepositoryError>>;\n}\n\nexport interface IUnlockEntryRequestRepositoryErrors {\n persistence: UnlockEntryRequestError;\n}\n\ntype RepositoryError =\n IUnlockEntryRequestRepositoryErrors[keyof IUnlockEntryRequestRepositoryErrors];\n\nexport const UnlockEntryRequestRepository = createAbstraction<IUnlockEntryRequestRepository>(\n \"UnlockEntryRequestRepository\"\n);\n\nexport namespace UnlockEntryRequestRepository {\n export type Interface = IUnlockEntryRequestRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAMA;AACA;AACA;;AAcA,OAAO,MAAMC,yBAAyB,GAAGD,iBAAiB,CACtD,2BACJ,CAAC;;AAOD;AACA;AACA;;AAYA,OAAO,MAAME,4BAA4B,GAAGF,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/UnlockEntryRequest/abstractions.js","sources":["../../../src/features/UnlockEntryRequest/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordEntryType } from \"~/domain/types.js\";\nimport type {\n EntryNotLockedError,\n UnlockRequestAlreadySentError,\n UnlockEntryRequestError,\n LockRecordPersistenceError\n} from \"~/domain/errors.js\";\n\n// Input type\nexport interface UnlockEntryRequestInput {\n id: string;\n type: LockRecordEntryType;\n}\n\n/**\n * UnlockEntryRequest Use Case - Adds unlock request to lock record\n */\nexport interface IUnlockEntryRequestUseCase {\n execute(input: UnlockEntryRequestInput): Promise<Result<ILockRecord, UseCaseError>>;\n}\n\nexport interface IUnlockEntryRequestUseCaseErrors {\n notLocked: EntryNotLockedError;\n alreadySent: UnlockRequestAlreadySentError;\n persistence: LockRecordPersistenceError;\n requestError: UnlockEntryRequestError;\n}\n\ntype UseCaseError = IUnlockEntryRequestUseCaseErrors[keyof IUnlockEntryRequestUseCaseErrors];\n\nexport const UnlockEntryRequestUseCase = createAbstraction<IUnlockEntryRequestUseCase>(\n \"UnlockEntryRequestUseCase\"\n);\n\nexport namespace UnlockEntryRequestUseCase {\n export type Interface = IUnlockEntryRequestUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * UnlockEntryRequestRepository - Updates lock record with unlock request\n */\nexport interface IUnlockEntryRequestRepository {\n update(record: ILockRecord): Promise<Result<ILockRecord, RepositoryError>>;\n}\n\nexport interface IUnlockEntryRequestRepositoryErrors {\n persistence: UnlockEntryRequestError;\n}\n\ntype RepositoryError =\n IUnlockEntryRequestRepositoryErrors[keyof IUnlockEntryRequestRepositoryErrors];\n\nexport const UnlockEntryRequestRepository = createAbstraction<IUnlockEntryRequestRepository>(\n \"UnlockEntryRequestRepository\"\n);\n\nexport namespace UnlockEntryRequestRepository {\n export type Interface = IUnlockEntryRequestRepository;\n export type Error = RepositoryError;\n}\n"],"names":["UnlockEntryRequestUseCase","createAbstraction","UnlockEntryRequestRepository"],"mappings":";AAiCO,MAAMA,4BAA4BC,kBACrC;AAsBG,MAAMC,+BAA+BD,kBACxC"}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { ILockRecord } from "../../domain/LockRecord.js";
4
4
  import type { LockRecordEntryType } from "../../domain/types.js";
5
5
  export interface EntryBeforeUnlockRequestPayload {
@@ -10,8 +10,8 @@ export declare class EntryBeforeUnlockRequestEvent extends DomainEvent<EntryBefo
10
10
  eventType: "RecordLocking/Entry/BeforeUnlockRequest";
11
11
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<EntryBeforeUnlockRequestEvent>>;
12
12
  }
13
- export declare const EntryBeforeUnlockRequestHandler: import("@webiny/di").Abstraction<IEventHandler<EntryBeforeUnlockRequestEvent>>;
14
- export declare namespace EntryBeforeUnlockRequestHandler {
13
+ export declare const EntryBeforeUnlockRequestEventHandler: import("@webiny/di").Abstraction<IEventHandler<EntryBeforeUnlockRequestEvent>>;
14
+ export declare namespace EntryBeforeUnlockRequestEventHandler {
15
15
  type Interface = IEventHandler<EntryBeforeUnlockRequestEvent>;
16
16
  type Event = EntryBeforeUnlockRequestEvent;
17
17
  }
@@ -24,8 +24,8 @@ export declare class EntryAfterUnlockRequestEvent extends DomainEvent<EntryAfter
24
24
  eventType: "RecordLocking/Entry/AfterUnlockRequest";
25
25
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<EntryAfterUnlockRequestEvent>>;
26
26
  }
27
- export declare const EntryAfterUnlockRequestHandler: import("@webiny/di").Abstraction<IEventHandler<EntryAfterUnlockRequestEvent>>;
28
- export declare namespace EntryAfterUnlockRequestHandler {
27
+ export declare const EntryAfterUnlockRequestEventHandler: import("@webiny/di").Abstraction<IEventHandler<EntryAfterUnlockRequestEvent>>;
28
+ export declare namespace EntryAfterUnlockRequestEventHandler {
29
29
  type Interface = IEventHandler<EntryAfterUnlockRequestEvent>;
30
30
  type Event = EntryAfterUnlockRequestEvent;
31
31
  }
@@ -38,8 +38,8 @@ export declare class EntryUnlockRequestErrorEvent extends DomainEvent<EntryUnloc
38
38
  eventType: "RecordLocking/Entry/UnlockRequestError";
39
39
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<EntryUnlockRequestErrorEvent>>;
40
40
  }
41
- export declare const EntryUnlockRequestErrorHandler: import("@webiny/di").Abstraction<IEventHandler<EntryUnlockRequestErrorEvent>>;
42
- export declare namespace EntryUnlockRequestErrorHandler {
41
+ export declare const EntryUnlockRequestErrorEventHandler: import("@webiny/di").Abstraction<IEventHandler<EntryUnlockRequestErrorEvent>>;
42
+ export declare namespace EntryUnlockRequestErrorEventHandler {
43
43
  type Interface = IEventHandler<EntryUnlockRequestErrorEvent>;
44
44
  type Event = EntryUnlockRequestErrorEvent;
45
45
  }
@@ -1,40 +1,32 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
-
4
- // ============================================================================
5
- // EntryBeforeUnlockRequest Event
6
- // ============================================================================
7
-
8
- export class EntryBeforeUnlockRequestEvent extends DomainEvent {
9
- eventType = "RecordLocking/Entry/BeforeUnlockRequest";
10
- getHandlerAbstraction() {
11
- return EntryBeforeUnlockRequestHandler;
12
- }
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ class EntryBeforeUnlockRequestEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return EntryBeforeUnlockRequestEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "RecordLocking/Entry/BeforeUnlockRequest";
9
+ }
13
10
  }
14
- export const EntryBeforeUnlockRequestHandler = createAbstraction("EntryBeforeUnlockRequestHandler");
15
-
16
- // ============================================================================
17
- // EntryAfterUnlockRequest Event
18
- // ============================================================================
19
-
20
- export class EntryAfterUnlockRequestEvent extends DomainEvent {
21
- eventType = "RecordLocking/Entry/AfterUnlockRequest";
22
- getHandlerAbstraction() {
23
- return EntryAfterUnlockRequestHandler;
24
- }
11
+ const EntryBeforeUnlockRequestEventHandler = createAbstraction("EntryBeforeUnlockRequestEventHandler");
12
+ class EntryAfterUnlockRequestEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return EntryAfterUnlockRequestEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "RecordLocking/Entry/AfterUnlockRequest";
18
+ }
25
19
  }
26
- export const EntryAfterUnlockRequestHandler = createAbstraction("EntryAfterUnlockRequestHandler");
27
-
28
- // ============================================================================
29
- // EntryUnlockRequestError Event
30
- // ============================================================================
31
-
32
- export class EntryUnlockRequestErrorEvent extends DomainEvent {
33
- eventType = "RecordLocking/Entry/UnlockRequestError";
34
- getHandlerAbstraction() {
35
- return EntryUnlockRequestErrorHandler;
36
- }
20
+ const EntryAfterUnlockRequestEventHandler = createAbstraction("EntryAfterUnlockRequestEventHandler");
21
+ class EntryUnlockRequestErrorEvent extends DomainEvent {
22
+ getHandlerAbstraction() {
23
+ return EntryUnlockRequestErrorEventHandler;
24
+ }
25
+ constructor(...args){
26
+ super(...args), this.eventType = "RecordLocking/Entry/UnlockRequestError";
27
+ }
37
28
  }
38
- export const EntryUnlockRequestErrorHandler = createAbstraction("EntryUnlockRequestErrorHandler");
29
+ const EntryUnlockRequestErrorEventHandler = createAbstraction("EntryUnlockRequestErrorEventHandler");
30
+ export { EntryAfterUnlockRequestEvent, EntryAfterUnlockRequestEventHandler, EntryBeforeUnlockRequestEvent, EntryBeforeUnlockRequestEventHandler, EntryUnlockRequestErrorEvent, EntryUnlockRequestErrorEventHandler };
39
31
 
40
32
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","EntryBeforeUnlockRequestEvent","eventType","getHandlerAbstraction","EntryBeforeUnlockRequestHandler","EntryAfterUnlockRequestEvent","EntryAfterUnlockRequestHandler","EntryUnlockRequestErrorEvent","EntryUnlockRequestErrorHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordEntryType } from \"~/domain/types.js\";\n\n// ============================================================================\n// EntryBeforeUnlockRequest Event\n// ============================================================================\n\nexport interface EntryBeforeUnlockRequestPayload {\n id: string;\n type: LockRecordEntryType;\n}\n\nexport class EntryBeforeUnlockRequestEvent extends DomainEvent<EntryBeforeUnlockRequestPayload> {\n eventType = \"RecordLocking/Entry/BeforeUnlockRequest\" as const;\n\n getHandlerAbstraction() {\n return EntryBeforeUnlockRequestHandler;\n }\n}\n\nexport const EntryBeforeUnlockRequestHandler = createAbstraction<\n IEventHandler<EntryBeforeUnlockRequestEvent>\n>(\"EntryBeforeUnlockRequestHandler\");\n\nexport namespace EntryBeforeUnlockRequestHandler {\n export type Interface = IEventHandler<EntryBeforeUnlockRequestEvent>;\n export type Event = EntryBeforeUnlockRequestEvent;\n}\n\n// ============================================================================\n// EntryAfterUnlockRequest Event\n// ============================================================================\n\nexport interface EntryAfterUnlockRequestPayload {\n id: string;\n type: LockRecordEntryType;\n record: ILockRecord;\n}\n\nexport class EntryAfterUnlockRequestEvent extends DomainEvent<EntryAfterUnlockRequestPayload> {\n eventType = \"RecordLocking/Entry/AfterUnlockRequest\" as const;\n\n getHandlerAbstraction() {\n return EntryAfterUnlockRequestHandler;\n }\n}\n\nexport const EntryAfterUnlockRequestHandler = createAbstraction<\n IEventHandler<EntryAfterUnlockRequestEvent>\n>(\"EntryAfterUnlockRequestHandler\");\n\nexport namespace EntryAfterUnlockRequestHandler {\n export type Interface = IEventHandler<EntryAfterUnlockRequestEvent>;\n export type Event = EntryAfterUnlockRequestEvent;\n}\n\n// ============================================================================\n// EntryUnlockRequestError Event\n// ============================================================================\n\nexport interface EntryUnlockRequestErrorPayload {\n id: string;\n type: LockRecordEntryType;\n error: Error;\n}\n\nexport class EntryUnlockRequestErrorEvent extends DomainEvent<EntryUnlockRequestErrorPayload> {\n eventType = \"RecordLocking/Entry/UnlockRequestError\" as const;\n\n getHandlerAbstraction() {\n return EntryUnlockRequestErrorHandler;\n }\n}\n\nexport const EntryUnlockRequestErrorHandler = createAbstraction<\n IEventHandler<EntryUnlockRequestErrorEvent>\n>(\"EntryUnlockRequestErrorHandler\");\n\nexport namespace EntryUnlockRequestErrorHandler {\n export type Interface = IEventHandler<EntryUnlockRequestErrorEvent>;\n export type Event = EntryUnlockRequestErrorEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;;AAKtE;AACA;AACA;;AAOA,OAAO,MAAMC,6BAA6B,SAASD,WAAW,CAAkC;EAC5FE,SAAS,GAAG,yCAAyC;EAErDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,+BAA+B;EAC1C;AACJ;AAEA,OAAO,MAAMA,+BAA+B,GAAGL,iBAAiB,CAE9D,iCAAiC,CAAC;;AAOpC;AACA;AACA;;AAQA,OAAO,MAAMM,4BAA4B,SAASL,WAAW,CAAiC;EAC1FE,SAAS,GAAG,wCAAwC;EAEpDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,8BAA8B;EACzC;AACJ;AAEA,OAAO,MAAMA,8BAA8B,GAAGP,iBAAiB,CAE7D,gCAAgC,CAAC;;AAOnC;AACA;AACA;;AAQA,OAAO,MAAMQ,4BAA4B,SAASP,WAAW,CAAiC;EAC1FE,SAAS,GAAG,wCAAwC;EAEpDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOK,8BAA8B;EACzC;AACJ;AAEA,OAAO,MAAMA,8BAA8B,GAAGT,iBAAiB,CAE7D,gCAAgC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/UnlockEntryRequest/events.js","sources":["../../../src/features/UnlockEntryRequest/events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordEntryType } from \"~/domain/types.js\";\n\n// ============================================================================\n// EntryBeforeUnlockRequest Event\n// ============================================================================\n\nexport interface EntryBeforeUnlockRequestPayload {\n id: string;\n type: LockRecordEntryType;\n}\n\nexport class EntryBeforeUnlockRequestEvent extends DomainEvent<EntryBeforeUnlockRequestPayload> {\n eventType = \"RecordLocking/Entry/BeforeUnlockRequest\" as const;\n\n getHandlerAbstraction() {\n return EntryBeforeUnlockRequestEventHandler;\n }\n}\n\nexport const EntryBeforeUnlockRequestEventHandler = createAbstraction<\n IEventHandler<EntryBeforeUnlockRequestEvent>\n>(\"EntryBeforeUnlockRequestEventHandler\");\n\nexport namespace EntryBeforeUnlockRequestEventHandler {\n export type Interface = IEventHandler<EntryBeforeUnlockRequestEvent>;\n export type Event = EntryBeforeUnlockRequestEvent;\n}\n\n// ============================================================================\n// EntryAfterUnlockRequest Event\n// ============================================================================\n\nexport interface EntryAfterUnlockRequestPayload {\n id: string;\n type: LockRecordEntryType;\n record: ILockRecord;\n}\n\nexport class EntryAfterUnlockRequestEvent extends DomainEvent<EntryAfterUnlockRequestPayload> {\n eventType = \"RecordLocking/Entry/AfterUnlockRequest\" as const;\n\n getHandlerAbstraction() {\n return EntryAfterUnlockRequestEventHandler;\n }\n}\n\nexport const EntryAfterUnlockRequestEventHandler = createAbstraction<\n IEventHandler<EntryAfterUnlockRequestEvent>\n>(\"EntryAfterUnlockRequestEventHandler\");\n\nexport namespace EntryAfterUnlockRequestEventHandler {\n export type Interface = IEventHandler<EntryAfterUnlockRequestEvent>;\n export type Event = EntryAfterUnlockRequestEvent;\n}\n\n// ============================================================================\n// EntryUnlockRequestError Event\n// ============================================================================\n\nexport interface EntryUnlockRequestErrorPayload {\n id: string;\n type: LockRecordEntryType;\n error: Error;\n}\n\nexport class EntryUnlockRequestErrorEvent extends DomainEvent<EntryUnlockRequestErrorPayload> {\n eventType = \"RecordLocking/Entry/UnlockRequestError\" as const;\n\n getHandlerAbstraction() {\n return EntryUnlockRequestErrorEventHandler;\n }\n}\n\nexport const EntryUnlockRequestErrorEventHandler = createAbstraction<\n IEventHandler<EntryUnlockRequestErrorEvent>\n>(\"EntryUnlockRequestErrorEventHandler\");\n\nexport namespace EntryUnlockRequestErrorEventHandler {\n export type Interface = IEventHandler<EntryUnlockRequestErrorEvent>;\n export type Event = EntryUnlockRequestErrorEvent;\n}\n"],"names":["EntryBeforeUnlockRequestEvent","DomainEvent","EntryBeforeUnlockRequestEventHandler","createAbstraction","EntryAfterUnlockRequestEvent","EntryAfterUnlockRequestEventHandler","EntryUnlockRequestErrorEvent","EntryUnlockRequestErrorEventHandler"],"mappings":";;AAeO,MAAMA,sCAAsCC;IAG/C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,uCAAuCC,kBAElD;AAiBK,MAAMC,qCAAqCH;IAG9C,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,sCAAsCF,kBAEjD;AAiBK,MAAMG,qCAAqCL;IAG9C,wBAAwB;QACpB,OAAOM;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,sCAAsCJ,kBAEjD"}
@@ -1 +1,4 @@
1
- export declare const UnlockEntryRequestFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const UnlockEntryRequestFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -2,13 +2,14 @@ import { createFeature } from "@webiny/feature/api";
2
2
  import { UnlockEntryRequestUseCase } from "./UnlockEntryRequestUseCase.js";
3
3
  import { UnlockEntryRequestRepository } from "./UnlockEntryRequestRepository.js";
4
4
  import { UnlockEntryRequestEventsDecorator } from "./UnlockEntryRequestEventsDecorator.js";
5
- export const UnlockEntryRequestFeature = createFeature({
6
- name: "UnlockEntryRequest",
7
- register(container) {
8
- container.register(UnlockEntryRequestUseCase);
9
- container.register(UnlockEntryRequestRepository).inSingletonScope();
10
- container.registerDecorator(UnlockEntryRequestEventsDecorator);
11
- }
5
+ const UnlockEntryRequestFeature = createFeature({
6
+ name: "UnlockEntryRequest",
7
+ register (container) {
8
+ container.register(UnlockEntryRequestUseCase);
9
+ container.register(UnlockEntryRequestRepository).inSingletonScope();
10
+ container.registerDecorator(UnlockEntryRequestEventsDecorator);
11
+ }
12
12
  });
13
+ export { UnlockEntryRequestFeature };
13
14
 
14
15
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","UnlockEntryRequestUseCase","UnlockEntryRequestRepository","UnlockEntryRequestEventsDecorator","UnlockEntryRequestFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UnlockEntryRequestUseCase } from \"./UnlockEntryRequestUseCase.js\";\nimport { UnlockEntryRequestRepository } from \"./UnlockEntryRequestRepository.js\";\nimport { UnlockEntryRequestEventsDecorator } from \"./UnlockEntryRequestEventsDecorator.js\";\n\nexport const UnlockEntryRequestFeature = createFeature({\n name: \"UnlockEntryRequest\",\n register(container) {\n container.register(UnlockEntryRequestUseCase);\n container.register(UnlockEntryRequestRepository).inSingletonScope();\n container.registerDecorator(UnlockEntryRequestEventsDecorator);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAClC,SAASC,4BAA4B;AACrC,SAASC,iCAAiC;AAE1C,OAAO,MAAMC,yBAAyB,GAAGJ,aAAa,CAAC;EACnDK,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACL,yBAAyB,CAAC;IAC7CM,SAAS,CAACD,QAAQ,CAACJ,4BAA4B,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACnED,SAAS,CAACE,iBAAiB,CAACN,iCAAiC,CAAC;EAClE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/UnlockEntryRequest/feature.js","sources":["../../../src/features/UnlockEntryRequest/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UnlockEntryRequestUseCase } from \"./UnlockEntryRequestUseCase.js\";\nimport { UnlockEntryRequestRepository } from \"./UnlockEntryRequestRepository.js\";\nimport { UnlockEntryRequestEventsDecorator } from \"./UnlockEntryRequestEventsDecorator.js\";\n\nexport const UnlockEntryRequestFeature = createFeature({\n name: \"UnlockEntryRequest\",\n register(container) {\n container.register(UnlockEntryRequestUseCase);\n container.register(UnlockEntryRequestRepository).inSingletonScope();\n container.registerDecorator(UnlockEntryRequestEventsDecorator);\n }\n});\n"],"names":["UnlockEntryRequestFeature","createFeature","container","UnlockEntryRequestUseCase","UnlockEntryRequestRepository","UnlockEntryRequestEventsDecorator"],"mappings":";;;;AAKO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,8BAA8B,gBAAgB;QACjEF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
@@ -1,5 +1,3 @@
1
1
  export * from "./abstractions.js";
2
2
  export * from "./events.js";
3
3
  export * from "./feature.js";
4
-
5
- //# sourceMappingURL=index.js.map
@@ -1,17 +1,18 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
2
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
3
3
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
4
  import { Result } from "@webiny/feature/api";
5
5
  import { UpdateEntryLockRepository as RepositoryAbstraction } from "./abstractions.js";
6
- import { RecordLockingConfig, RecordLockingModel } from "../../domain/abstractions.js";
6
+ import { RecordLockingConfig } from "../../domain/abstractions.js";
7
+ import { RecordLockingModelProvider } from "../../domain/abstractions.js";
7
8
  import type { ILockRecord } from "../../domain/LockRecord.js";
8
9
  declare class UpdateEntryLockRepositoryImpl implements RepositoryAbstraction.Interface {
9
- private model;
10
+ private modelProvider;
10
11
  private config;
11
12
  private identityContext;
12
13
  private updateEntry;
13
14
  private getEntryById;
14
- constructor(model: RecordLockingModel.Interface, config: RecordLockingConfig.Interface, identityContext: IdentityContext.Interface, updateEntry: UpdateEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface);
15
+ constructor(modelProvider: RecordLockingModelProvider.Interface, config: RecordLockingConfig.Interface, identityContext: IdentityContext.Interface, updateEntry: UpdateEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface);
15
16
  update(lockRecordId: string, updateOwner: boolean): Promise<Result<ILockRecord, RepositoryAbstraction.Error>>;
16
17
  }
17
18
  export declare const UpdateEntryLockRepository: typeof UpdateEntryLockRepositoryImpl & {