@webiny/api-record-locking 6.3.0-beta.4 → 6.4.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 (141) hide show
  1. package/domain/LockRecord.js +63 -70
  2. package/domain/LockRecord.js.map +1 -1
  3. package/domain/RecordLockingModel.js +26 -23
  4. package/domain/RecordLockingModel.js.map +1 -1
  5. package/domain/abstractions.js +3 -7
  6. package/domain/abstractions.js.map +1 -1
  7. package/domain/calculateExpiresOn.js +5 -6
  8. package/domain/calculateExpiresOn.js.map +1 -1
  9. package/domain/errors.js +71 -81
  10. package/domain/errors.js.map +1 -1
  11. package/domain/index.js +0 -2
  12. package/domain/types.js +6 -9
  13. package/domain/types.js.map +1 -1
  14. package/features/GetLockRecord/GetLockRecordRepository.js +27 -24
  15. package/features/GetLockRecord/GetLockRecordRepository.js.map +1 -1
  16. package/features/GetLockRecord/GetLockRecordUseCase.js +13 -10
  17. package/features/GetLockRecord/GetLockRecordUseCase.js.map +1 -1
  18. package/features/GetLockRecord/abstractions.js +3 -14
  19. package/features/GetLockRecord/abstractions.js.map +1 -1
  20. package/features/GetLockRecord/feature.js +7 -6
  21. package/features/GetLockRecord/feature.js.map +1 -1
  22. package/features/GetLockRecord/index.js +0 -2
  23. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +19 -28
  24. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +1 -1
  25. package/features/GetLockedEntryLockRecord/abstractions.js +2 -10
  26. package/features/GetLockedEntryLockRecord/abstractions.js.map +1 -1
  27. package/features/GetLockedEntryLockRecord/feature.js +6 -5
  28. package/features/GetLockedEntryLockRecord/feature.js.map +1 -1
  29. package/features/GetLockedEntryLockRecord/index.js +0 -2
  30. package/features/IsEntryLocked/IsEntryLockedUseCase.js +22 -28
  31. package/features/IsEntryLocked/IsEntryLockedUseCase.js.map +1 -1
  32. package/features/IsEntryLocked/abstractions.js +2 -9
  33. package/features/IsEntryLocked/abstractions.js.map +1 -1
  34. package/features/IsEntryLocked/feature.js +6 -5
  35. package/features/IsEntryLocked/feature.js.map +1 -1
  36. package/features/IsEntryLocked/index.js +0 -2
  37. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js +32 -32
  38. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +1 -1
  39. package/features/KickOutCurrentUser/abstractions.js +2 -6
  40. package/features/KickOutCurrentUser/abstractions.js.map +1 -1
  41. package/features/KickOutCurrentUser/feature.js +6 -5
  42. package/features/KickOutCurrentUser/feature.js.map +1 -1
  43. package/features/KickOutCurrentUser/index.js +0 -2
  44. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js +31 -31
  45. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js.map +1 -1
  46. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js +13 -10
  47. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js.map +1 -1
  48. package/features/ListAllLockRecords/abstractions.js +3 -14
  49. package/features/ListAllLockRecords/abstractions.js.map +1 -1
  50. package/features/ListAllLockRecords/feature.js +7 -6
  51. package/features/ListAllLockRecords/feature.js.map +1 -1
  52. package/features/ListAllLockRecords/index.js +0 -2
  53. package/features/ListLockRecords/ListLockRecordsRepository.js +31 -31
  54. package/features/ListLockRecords/ListLockRecordsRepository.js.map +1 -1
  55. package/features/ListLockRecords/ListLockRecordsUseCase.js +26 -23
  56. package/features/ListLockRecords/ListLockRecordsUseCase.js.map +1 -1
  57. package/features/ListLockRecords/abstractions.js +3 -14
  58. package/features/ListLockRecords/abstractions.js.map +1 -1
  59. package/features/ListLockRecords/feature.js +7 -6
  60. package/features/ListLockRecords/feature.js.map +1 -1
  61. package/features/ListLockRecords/index.js +0 -2
  62. package/features/LockEntry/LockEntryEventsDecorator.js +31 -31
  63. package/features/LockEntry/LockEntryEventsDecorator.js.map +1 -1
  64. package/features/LockEntry/LockEntryRepository.js +33 -30
  65. package/features/LockEntry/LockEntryRepository.js.map +1 -1
  66. package/features/LockEntry/LockEntryUseCase.js +21 -26
  67. package/features/LockEntry/LockEntryUseCase.js.map +1 -1
  68. package/features/LockEntry/abstractions.js +3 -14
  69. package/features/LockEntry/abstractions.js.map +1 -1
  70. package/features/LockEntry/events.js +25 -33
  71. package/features/LockEntry/events.js.map +1 -1
  72. package/features/LockEntry/feature.js +8 -7
  73. package/features/LockEntry/feature.js.map +1 -1
  74. package/features/LockEntry/index.js +0 -2
  75. package/features/RecordLockingFeature.js +19 -21
  76. package/features/RecordLockingFeature.js.map +1 -1
  77. package/features/UnlockEntry/UnlockEntryEventsDecorator.js +32 -32
  78. package/features/UnlockEntry/UnlockEntryEventsDecorator.js.map +1 -1
  79. package/features/UnlockEntry/UnlockEntryRepository.js +29 -27
  80. package/features/UnlockEntry/UnlockEntryRepository.js.map +1 -1
  81. package/features/UnlockEntry/UnlockEntryUseCase.js +53 -69
  82. package/features/UnlockEntry/UnlockEntryUseCase.js.map +1 -1
  83. package/features/UnlockEntry/abstractions.js +3 -14
  84. package/features/UnlockEntry/abstractions.js.map +1 -1
  85. package/features/UnlockEntry/events.js +25 -33
  86. package/features/UnlockEntry/events.js.map +1 -1
  87. package/features/UnlockEntry/feature.js +8 -7
  88. package/features/UnlockEntry/feature.js.map +1 -1
  89. package/features/UnlockEntry/hasFullAccessPermission.js +6 -7
  90. package/features/UnlockEntry/hasFullAccessPermission.js.map +1 -1
  91. package/features/UnlockEntry/index.js +0 -2
  92. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js +31 -31
  93. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js.map +1 -1
  94. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js +31 -30
  95. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js.map +1 -1
  96. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js +62 -79
  97. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js.map +1 -1
  98. package/features/UnlockEntryRequest/abstractions.js +3 -14
  99. package/features/UnlockEntryRequest/abstractions.js.map +1 -1
  100. package/features/UnlockEntryRequest/events.js +25 -33
  101. package/features/UnlockEntryRequest/events.js.map +1 -1
  102. package/features/UnlockEntryRequest/feature.js +8 -7
  103. package/features/UnlockEntryRequest/feature.js.map +1 -1
  104. package/features/UnlockEntryRequest/index.js +0 -2
  105. package/features/UpdateEntryLock/UpdateEntryLockRepository.js +45 -48
  106. package/features/UpdateEntryLock/UpdateEntryLockRepository.js.map +1 -1
  107. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js +40 -51
  108. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js.map +1 -1
  109. package/features/UpdateEntryLock/abstractions.js +3 -14
  110. package/features/UpdateEntryLock/abstractions.js.map +1 -1
  111. package/features/UpdateEntryLock/feature.js +7 -6
  112. package/features/UpdateEntryLock/feature.js.map +1 -1
  113. package/features/UpdateEntryLock/index.js +0 -2
  114. package/graphql/checkPermissions.js +5 -9
  115. package/graphql/checkPermissions.js.map +1 -1
  116. package/graphql/resolve.js +15 -17
  117. package/graphql/resolve.js.map +1 -1
  118. package/graphql/schema.js +147 -165
  119. package/graphql/schema.js.map +1 -1
  120. package/index.js +40 -49
  121. package/index.js.map +1 -1
  122. package/package.json +17 -17
  123. package/types.js +6 -9
  124. package/types.js.map +1 -1
  125. package/utils/convertWhereCondition.js +20 -32
  126. package/utils/convertWhereCondition.js.map +1 -1
  127. package/utils/getTimeout.js +8 -15
  128. package/utils/getTimeout.js.map +1 -1
  129. package/utils/lockRecordDatabaseId.js +6 -11
  130. package/utils/lockRecordDatabaseId.js.map +1 -1
  131. package/domain/index.js.map +0 -1
  132. package/features/GetLockRecord/index.js.map +0 -1
  133. package/features/GetLockedEntryLockRecord/index.js.map +0 -1
  134. package/features/IsEntryLocked/index.js.map +0 -1
  135. package/features/KickOutCurrentUser/index.js.map +0 -1
  136. package/features/ListAllLockRecords/index.js.map +0 -1
  137. package/features/ListLockRecords/index.js.map +0 -1
  138. package/features/LockEntry/index.js.map +0 -1
  139. package/features/UnlockEntry/index.js.map +0 -1
  140. package/features/UnlockEntryRequest/index.js.map +0 -1
  141. package/features/UpdateEntryLock/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","KickOutCurrentUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\n\n/**\n * KickOutCurrentUser Use Case - Sends websocket message to notify locked-out user\n */\nexport interface IKickOutCurrentUserUseCase {\n execute(record: ILockRecord): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IKickOutCurrentUserUseCaseErrors {\n // This use case swallows errors and logs them, so no errors are exposed\n}\n\ntype UseCaseError = IKickOutCurrentUserUseCaseErrors[keyof IKickOutCurrentUserUseCaseErrors];\n\nexport const KickOutCurrentUserUseCase = createAbstraction<IKickOutCurrentUserUseCase>(\n \"KickOutCurrentUserUseCase\"\n);\n\nexport namespace KickOutCurrentUserUseCase {\n export type Interface = IKickOutCurrentUserUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAIvD;AACA;AACA;;AAWA,OAAO,MAAMC,yBAAyB,GAAGD,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/KickOutCurrentUser/abstractions.js","sources":["../../../src/features/KickOutCurrentUser/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\n\n/**\n * KickOutCurrentUser Use Case - Sends websocket message to notify locked-out user\n */\nexport interface IKickOutCurrentUserUseCase {\n execute(record: ILockRecord): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IKickOutCurrentUserUseCaseErrors {\n // This use case swallows errors and logs them, so no errors are exposed\n}\n\ntype UseCaseError = IKickOutCurrentUserUseCaseErrors[keyof IKickOutCurrentUserUseCaseErrors];\n\nexport const KickOutCurrentUserUseCase = createAbstraction<IKickOutCurrentUserUseCase>(\n \"KickOutCurrentUserUseCase\"\n);\n\nexport namespace KickOutCurrentUserUseCase {\n export type Interface = IKickOutCurrentUserUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["KickOutCurrentUserUseCase","createAbstraction"],"mappings":";AAiBO,MAAMA,4BAA4BC,kBACrC"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { KickOutCurrentUserUseCase } from "./KickOutCurrentUserUseCase.js";
3
- export const KickOutCurrentUserFeature = createFeature({
4
- name: "KickOutCurrentUser",
5
- register(container) {
6
- container.register(KickOutCurrentUserUseCase);
7
- }
3
+ const KickOutCurrentUserFeature = createFeature({
4
+ name: "KickOutCurrentUser",
5
+ register (container) {
6
+ container.register(KickOutCurrentUserUseCase);
7
+ }
8
8
  });
9
+ export { KickOutCurrentUserFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","KickOutCurrentUserUseCase","KickOutCurrentUserFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { KickOutCurrentUserUseCase } from \"./KickOutCurrentUserUseCase.js\";\n\nexport const KickOutCurrentUserFeature = createFeature({\n name: \"KickOutCurrentUser\",\n register(container) {\n container.register(KickOutCurrentUserUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAElC,OAAO,MAAMC,yBAAyB,GAAGF,aAAa,CAAC;EACnDG,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,yBAAyB,CAAC;EACjD;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/KickOutCurrentUser/feature.js","sources":["../../../src/features/KickOutCurrentUser/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { KickOutCurrentUserUseCase } from \"./KickOutCurrentUserUseCase.js\";\n\nexport const KickOutCurrentUserFeature = createFeature({\n name: \"KickOutCurrentUser\",\n register(container) {\n container.register(KickOutCurrentUserUseCase);\n }\n});\n"],"names":["KickOutCurrentUserFeature","createFeature","container","KickOutCurrentUserUseCase"],"mappings":";;AAGO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,43 +1,43 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { ListAllLockRecordsRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { ListAllLockRecordsRepository } from "./abstractions.js";
3
3
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
4
4
  import { RecordLockingConfig, RecordLockingModel } from "../../domain/abstractions.js";
5
5
  import { LockRecordPersistenceError } from "../../domain/errors.js";
6
6
  import { convertWhereCondition } from "../../utils/convertWhereCondition.js";
7
7
  import { LockRecord } from "../../domain/LockRecord.js";
8
8
  class ListAllLockRecordsRepositoryImpl {
9
- constructor(config, listEntries, model) {
10
- this.config = config;
11
- this.listEntries = listEntries;
12
- this.model = model;
13
- }
14
- async execute(input) {
15
- try {
16
- const params = {
17
- ...input,
18
- where: convertWhereCondition(input?.where)
19
- };
20
- const result = await this.listEntries.execute(this.model, params);
21
- if (result.isFail()) {
22
- return Result.fail(new LockRecordPersistenceError(result.error));
23
- }
24
- const {
25
- entries,
26
- meta
27
- } = result.value;
28
- const items = entries.map(entry => new LockRecord(entry, this.config.timeout));
29
- return Result.ok({
30
- items,
31
- meta
32
- });
33
- } catch (error) {
34
- return Result.fail(new LockRecordPersistenceError(error));
9
+ constructor(config, listEntries, model){
10
+ this.config = config;
11
+ this.listEntries = listEntries;
12
+ this.model = model;
13
+ }
14
+ async execute(input) {
15
+ try {
16
+ const params = {
17
+ ...input,
18
+ where: convertWhereCondition(input?.where)
19
+ };
20
+ const result = await this.listEntries.execute(this.model, params);
21
+ if (result.isFail()) return Result.fail(new LockRecordPersistenceError(result.error));
22
+ const { entries, meta } = result.value;
23
+ const items = entries.map((entry)=>new LockRecord(entry, this.config.timeout));
24
+ return Result.ok({
25
+ items,
26
+ meta
27
+ });
28
+ } catch (error) {
29
+ return Result.fail(new LockRecordPersistenceError(error));
30
+ }
35
31
  }
36
- }
37
32
  }
38
- export const ListAllLockRecordsRepository = RepositoryAbstraction.createImplementation({
39
- implementation: ListAllLockRecordsRepositoryImpl,
40
- dependencies: [RecordLockingConfig, ListLatestEntriesUseCase, RecordLockingModel]
33
+ const ListAllLockRecordsRepository_ListAllLockRecordsRepository = ListAllLockRecordsRepository.createImplementation({
34
+ implementation: ListAllLockRecordsRepositoryImpl,
35
+ dependencies: [
36
+ RecordLockingConfig,
37
+ ListLatestEntriesUseCase,
38
+ RecordLockingModel
39
+ ]
41
40
  });
41
+ export { ListAllLockRecordsRepository_ListAllLockRecordsRepository as ListAllLockRecordsRepository };
42
42
 
43
43
  //# sourceMappingURL=ListAllLockRecordsRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListAllLockRecordsRepository","RepositoryAbstraction","ListLatestEntriesUseCase","RecordLockingConfig","RecordLockingModel","LockRecordPersistenceError","convertWhereCondition","LockRecord","ListAllLockRecordsRepositoryImpl","constructor","config","listEntries","model","execute","input","params","where","result","isFail","fail","error","entries","meta","value","items","map","entry","timeout","ok","createImplementation","implementation","dependencies"],"sources":["ListAllLockRecordsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListAllLockRecordsRepository as RepositoryAbstraction,\n ListAllLockRecordsInput,\n ListAllLockRecordsOutput\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { RecordLockingConfig, RecordLockingModel } from \"~/domain/abstractions.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport { convertWhereCondition } from \"~/utils/convertWhereCondition.js\";\nimport { LockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordValues } from \"~/domain/index.js\";\n\nclass ListAllLockRecordsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private config: RecordLockingConfig.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface,\n private model: CmsModel\n ) {}\n\n async execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, RepositoryAbstraction.Error>> {\n try {\n const params = {\n ...input,\n where: convertWhereCondition(input?.where)\n };\n\n const result = await this.listEntries.execute<LockRecordValues>(this.model, params);\n\n if (result.isFail()) {\n return Result.fail(new LockRecordPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n\n const items = entries.map(entry => new LockRecord(entry, this.config.timeout));\n\n return Result.ok({\n items,\n meta\n });\n } catch (error) {\n return Result.fail(new LockRecordPersistenceError(error as Error));\n }\n }\n}\n\nexport const ListAllLockRecordsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListAllLockRecordsRepositoryImpl,\n dependencies: [RecordLockingConfig, ListLatestEntriesUseCase, RecordLockingModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,4BAA4B,IAAIC,qBAAqB;AAIzD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,mBAAmB,EAAEC,kBAAkB;AAEhD,SAASC,0BAA0B;AACnC,SAASC,qBAAqB;AAC9B,SAASC,UAAU;AAGnB,MAAMC,gCAAgC,CAA4C;EAC9EC,WAAWA,CACCC,MAAqC,EACrCC,WAA+C,EAC/CC,KAAe,EACzB;IAAA,KAHUF,MAAqC,GAArCA,MAAqC;IAAA,KACrCC,WAA+C,GAA/CA,WAA+C;IAAA,KAC/CC,KAAe,GAAfA,KAAe;EACxB;EAEH,MAAMC,OAAOA,CACTC,KAA+B,EACuC;IACtE,IAAI;MACA,MAAMC,MAAM,GAAG;QACX,GAAGD,KAAK;QACRE,KAAK,EAAEV,qBAAqB,CAACQ,KAAK,EAAEE,KAAK;MAC7C,CAAC;MAED,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,WAAW,CAACE,OAAO,CAAmB,IAAI,CAACD,KAAK,EAAEG,MAAM,CAAC;MAEnF,IAAIE,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;QACjB,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,0BAA0B,CAACY,MAAM,CAACG,KAAK,CAAC,CAAC;MACpE;MAEA,MAAM;QAAEC,OAAO;QAAEC;MAAK,CAAC,GAAGL,MAAM,CAACM,KAAK;MAEtC,MAAMC,KAAK,GAAGH,OAAO,CAACI,GAAG,CAACC,KAAK,IAAI,IAAInB,UAAU,CAACmB,KAAK,EAAE,IAAI,CAAChB,MAAM,CAACiB,OAAO,CAAC,CAAC;MAE9E,OAAO5B,MAAM,CAAC6B,EAAE,CAAC;QACbJ,KAAK;QACLF;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOF,KAAK,EAAE;MACZ,OAAOrB,MAAM,CAACoB,IAAI,CAAC,IAAId,0BAA0B,CAACe,KAAc,CAAC,CAAC;IACtE;EACJ;AACJ;AAEA,OAAO,MAAMpB,4BAA4B,GAAGC,qBAAqB,CAAC4B,oBAAoB,CAAC;EACnFC,cAAc,EAAEtB,gCAAgC;EAChDuB,YAAY,EAAE,CAAC5B,mBAAmB,EAAED,wBAAwB,EAAEE,kBAAkB;AACpF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListAllLockRecords/ListAllLockRecordsRepository.js","sources":["../../../src/features/ListAllLockRecords/ListAllLockRecordsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListAllLockRecordsRepository as RepositoryAbstraction,\n ListAllLockRecordsInput,\n ListAllLockRecordsOutput\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { RecordLockingConfig, RecordLockingModel } from \"~/domain/abstractions.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport { convertWhereCondition } from \"~/utils/convertWhereCondition.js\";\nimport { LockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordValues } from \"~/domain/index.js\";\n\nclass ListAllLockRecordsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private config: RecordLockingConfig.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface,\n private model: CmsModel\n ) {}\n\n async execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, RepositoryAbstraction.Error>> {\n try {\n const params = {\n ...input,\n where: convertWhereCondition(input?.where)\n };\n\n const result = await this.listEntries.execute<LockRecordValues>(this.model, params);\n\n if (result.isFail()) {\n return Result.fail(new LockRecordPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n\n const items = entries.map(entry => new LockRecord(entry, this.config.timeout));\n\n return Result.ok({\n items,\n meta\n });\n } catch (error) {\n return Result.fail(new LockRecordPersistenceError(error as Error));\n }\n }\n}\n\nexport const ListAllLockRecordsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListAllLockRecordsRepositoryImpl,\n dependencies: [RecordLockingConfig, ListLatestEntriesUseCase, RecordLockingModel]\n});\n"],"names":["ListAllLockRecordsRepositoryImpl","config","listEntries","model","input","params","convertWhereCondition","result","Result","LockRecordPersistenceError","entries","meta","items","entry","LockRecord","error","ListAllLockRecordsRepository","RepositoryAbstraction","RecordLockingConfig","ListLatestEntriesUseCase","RecordLockingModel"],"mappings":";;;;;;;AAcA,MAAMA;IACF,YACYC,MAAqC,EACrCC,WAA+C,EAC/CC,KAAe,CACzB;aAHUF,MAAM,GAANA;aACAC,WAAW,GAAXA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QACFC,KAA+B,EACuC;QACtE,IAAI;YACA,MAAMC,SAAS;gBACX,GAAGD,KAAK;gBACR,OAAOE,sBAAsBF,OAAO;YACxC;YAEA,MAAMG,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmB,IAAI,CAAC,KAAK,EAAEF;YAE5E,IAAIE,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,2BAA2BF,OAAO,KAAK;YAGlE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,OAAO,KAAK;YAEtC,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAIC,WAAWD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO;YAE5E,OAAOL,OAAO,EAAE,CAAC;gBACbI;gBACAD;YACJ;QACJ,EAAE,OAAOI,OAAO;YACZ,OAAOP,OAAO,IAAI,CAAC,IAAIC,2BAA2BM;QACtD;IACJ;AACJ;AAEO,MAAMC,4DAA+BC,6BAAAA,oBAA0C,CAAC;IACnF,gBAAgBjB;IAChB,cAAc;QAACkB;QAAqBC;QAA0BC;KAAmB;AACrF"}
@@ -1,15 +1,18 @@
1
- import { ListAllLockRecordsUseCase as UseCaseAbstraction, ListAllLockRecordsRepository } from "./abstractions.js";
1
+ import { ListAllLockRecordsRepository, ListAllLockRecordsUseCase } from "./abstractions.js";
2
2
  class ListAllLockRecordsUseCaseImpl {
3
- constructor(repository) {
4
- this.repository = repository;
5
- }
6
- async execute(input) {
7
- return await this.repository.execute(input);
8
- }
3
+ constructor(repository){
4
+ this.repository = repository;
5
+ }
6
+ async execute(input) {
7
+ return await this.repository.execute(input);
8
+ }
9
9
  }
10
- export const ListAllLockRecordsUseCase = UseCaseAbstraction.createImplementation({
11
- implementation: ListAllLockRecordsUseCaseImpl,
12
- dependencies: [ListAllLockRecordsRepository]
10
+ const ListAllLockRecordsUseCase_ListAllLockRecordsUseCase = ListAllLockRecordsUseCase.createImplementation({
11
+ implementation: ListAllLockRecordsUseCaseImpl,
12
+ dependencies: [
13
+ ListAllLockRecordsRepository
14
+ ]
13
15
  });
16
+ export { ListAllLockRecordsUseCase_ListAllLockRecordsUseCase as ListAllLockRecordsUseCase };
14
17
 
15
18
  //# sourceMappingURL=ListAllLockRecordsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListAllLockRecordsUseCase","UseCaseAbstraction","ListAllLockRecordsRepository","ListAllLockRecordsUseCaseImpl","constructor","repository","execute","input","createImplementation","implementation","dependencies"],"sources":["ListAllLockRecordsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListAllLockRecordsUseCase as UseCaseAbstraction,\n ListAllLockRecordsRepository,\n ListAllLockRecordsInput,\n ListAllLockRecordsOutput\n} from \"./abstractions.js\";\n\nclass ListAllLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListAllLockRecordsRepository.Interface) {}\n\n async execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, UseCaseAbstraction.Error>> {\n return await this.repository.execute(input);\n }\n}\n\nexport const ListAllLockRecordsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListAllLockRecordsUseCaseImpl,\n dependencies: [ListAllLockRecordsRepository]\n});\n"],"mappings":"AACA,SACIA,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAKhC,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CAASC,UAAkD,EAAE;IAAA,KAApDA,UAAkD,GAAlDA,UAAkD;EAAG;EAEzE,MAAMC,OAAOA,CACTC,KAA+B,EACoC;IACnE,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;EAC/C;AACJ;AAEA,OAAO,MAAMP,yBAAyB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EAC7EC,cAAc,EAAEN,6BAA6B;EAC7CO,YAAY,EAAE,CAACR,4BAA4B;AAC/C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListAllLockRecords/ListAllLockRecordsUseCase.js","sources":["../../../src/features/ListAllLockRecords/ListAllLockRecordsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListAllLockRecordsUseCase as UseCaseAbstraction,\n ListAllLockRecordsRepository,\n ListAllLockRecordsInput,\n ListAllLockRecordsOutput\n} from \"./abstractions.js\";\n\nclass ListAllLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListAllLockRecordsRepository.Interface) {}\n\n async execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, UseCaseAbstraction.Error>> {\n return await this.repository.execute(input);\n }\n}\n\nexport const ListAllLockRecordsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListAllLockRecordsUseCaseImpl,\n dependencies: [ListAllLockRecordsRepository]\n});\n"],"names":["ListAllLockRecordsUseCaseImpl","repository","input","ListAllLockRecordsUseCase","UseCaseAbstraction","ListAllLockRecordsRepository"],"mappings":";AAQA,MAAMA;IACF,YAAoBC,UAAkD,CAAE;aAApDA,UAAU,GAAVA;IAAqD;IAEzE,MAAM,QACFC,KAA+B,EACoC;QACnE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACzC;AACJ;AAEO,MAAMC,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBJ;IAChB,cAAc;QAACK;KAA6B;AAChD"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Input/Output types
4
-
5
- /**
6
- * ListAllLockRecords Use Case - Lists all lock records without filtering
7
- */
8
-
9
- export const ListAllLockRecordsUseCase = createAbstraction("ListAllLockRecordsUseCase");
10
-
11
- /**
12
- * ListAllLockRecordsRepository - Fetches all lock records from storage
13
- */
14
-
15
- export const ListAllLockRecordsRepository = createAbstraction("ListAllLockRecordsRepository");
2
+ const ListAllLockRecordsUseCase = createAbstraction("ListAllLockRecordsUseCase");
3
+ const ListAllLockRecordsRepository = createAbstraction("ListAllLockRecordsRepository");
4
+ export { ListAllLockRecordsRepository, ListAllLockRecordsUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListAllLockRecordsUseCase","ListAllLockRecordsRepository"],"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 { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport type { CmsEntryListParams, CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\n// Input/Output types\nexport type ListAllLockRecordsInput = Pick<\n CmsEntryListParams,\n \"where\" | \"limit\" | \"sort\" | \"after\"\n>;\n\nexport interface ListAllLockRecordsOutput {\n items: ILockRecord[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListAllLockRecords Use Case - Lists all lock records without filtering\n */\nexport interface IListAllLockRecordsUseCase {\n execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, UseCaseError>>;\n}\n\nexport interface IListAllLockRecordsUseCaseErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype UseCaseError = IListAllLockRecordsUseCaseErrors[keyof IListAllLockRecordsUseCaseErrors];\n\nexport const ListAllLockRecordsUseCase = createAbstraction<IListAllLockRecordsUseCase>(\n \"ListAllLockRecordsUseCase\"\n);\n\nexport namespace ListAllLockRecordsUseCase {\n export type Interface = IListAllLockRecordsUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * ListAllLockRecordsRepository - Fetches all lock records from storage\n */\nexport interface IListAllLockRecordsRepository {\n execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, RepositoryError>>;\n}\n\nexport interface IListAllLockRecordsRepositoryErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype RepositoryError =\n IListAllLockRecordsRepositoryErrors[keyof IListAllLockRecordsRepositoryErrors];\n\nexport const ListAllLockRecordsRepository = createAbstraction<IListAllLockRecordsRepository>(\n \"ListAllLockRecordsRepository\"\n);\n\nexport namespace ListAllLockRecordsRepository {\n export type Interface = IListAllLockRecordsRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAMvD;;AAWA;AACA;AACA;;AAaA,OAAO,MAAMC,yBAAyB,GAAGD,iBAAiB,CACtD,2BACJ,CAAC;;AAOD;AACA;AACA;;AAcA,OAAO,MAAME,4BAA4B,GAAGF,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListAllLockRecords/abstractions.js","sources":["../../../src/features/ListAllLockRecords/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport type { CmsEntryListParams, CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\n// Input/Output types\nexport type ListAllLockRecordsInput = Pick<\n CmsEntryListParams,\n \"where\" | \"limit\" | \"sort\" | \"after\"\n>;\n\nexport interface ListAllLockRecordsOutput {\n items: ILockRecord[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListAllLockRecords Use Case - Lists all lock records without filtering\n */\nexport interface IListAllLockRecordsUseCase {\n execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, UseCaseError>>;\n}\n\nexport interface IListAllLockRecordsUseCaseErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype UseCaseError = IListAllLockRecordsUseCaseErrors[keyof IListAllLockRecordsUseCaseErrors];\n\nexport const ListAllLockRecordsUseCase = createAbstraction<IListAllLockRecordsUseCase>(\n \"ListAllLockRecordsUseCase\"\n);\n\nexport namespace ListAllLockRecordsUseCase {\n export type Interface = IListAllLockRecordsUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * ListAllLockRecordsRepository - Fetches all lock records from storage\n */\nexport interface IListAllLockRecordsRepository {\n execute(\n input?: ListAllLockRecordsInput\n ): Promise<Result<ListAllLockRecordsOutput, RepositoryError>>;\n}\n\nexport interface IListAllLockRecordsRepositoryErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype RepositoryError =\n IListAllLockRecordsRepositoryErrors[keyof IListAllLockRecordsRepositoryErrors];\n\nexport const ListAllLockRecordsRepository = createAbstraction<IListAllLockRecordsRepository>(\n \"ListAllLockRecordsRepository\"\n);\n\nexport namespace ListAllLockRecordsRepository {\n export type Interface = IListAllLockRecordsRepository;\n export type Error = RepositoryError;\n}\n"],"names":["ListAllLockRecordsUseCase","createAbstraction","ListAllLockRecordsRepository"],"mappings":";AAgCO,MAAMA,4BAA4BC,kBACrC;AAwBG,MAAMC,+BAA+BD,kBACxC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListAllLockRecordsUseCase } from "./ListAllLockRecordsUseCase.js";
3
3
  import { ListAllLockRecordsRepository } from "./ListAllLockRecordsRepository.js";
4
- export const ListAllLockRecordsFeature = createFeature({
5
- name: "ListAllLockRecords",
6
- register(container) {
7
- container.register(ListAllLockRecordsUseCase);
8
- container.register(ListAllLockRecordsRepository).inSingletonScope();
9
- }
4
+ const ListAllLockRecordsFeature = createFeature({
5
+ name: "ListAllLockRecords",
6
+ register (container) {
7
+ container.register(ListAllLockRecordsUseCase);
8
+ container.register(ListAllLockRecordsRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { ListAllLockRecordsFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListAllLockRecordsUseCase","ListAllLockRecordsRepository","ListAllLockRecordsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListAllLockRecordsUseCase } from \"./ListAllLockRecordsUseCase.js\";\nimport { ListAllLockRecordsRepository } from \"./ListAllLockRecordsRepository.js\";\n\nexport const ListAllLockRecordsFeature = createFeature({\n name: \"ListAllLockRecords\",\n register(container) {\n container.register(ListAllLockRecordsUseCase);\n container.register(ListAllLockRecordsRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAClC,SAASC,4BAA4B;AAErC,OAAO,MAAMC,yBAAyB,GAAGH,aAAa,CAAC;EACnDI,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,yBAAyB,CAAC;IAC7CK,SAAS,CAACD,QAAQ,CAACH,4BAA4B,CAAC,CAACK,gBAAgB,CAAC,CAAC;EACvE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListAllLockRecords/feature.js","sources":["../../../src/features/ListAllLockRecords/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListAllLockRecordsUseCase } from \"./ListAllLockRecordsUseCase.js\";\nimport { ListAllLockRecordsRepository } from \"./ListAllLockRecordsRepository.js\";\n\nexport const ListAllLockRecordsFeature = createFeature({\n name: \"ListAllLockRecords\",\n register(container) {\n container.register(ListAllLockRecordsUseCase);\n container.register(ListAllLockRecordsRepository).inSingletonScope();\n }\n});\n"],"names":["ListAllLockRecordsFeature","createFeature","container","ListAllLockRecordsUseCase","ListAllLockRecordsRepository"],"mappings":";;;AAIO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,8BAA8B,gBAAgB;IACrE;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export * from "./abstractions.js";
2
2
  export * from "./feature.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,43 +1,43 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
3
- import { ListLockRecordsRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { ListLockRecordsRepository } from "./abstractions.js";
4
4
  import { RecordLockingConfig, RecordLockingModel } from "../../domain/abstractions.js";
5
5
  import { LockRecord } from "../../domain/LockRecord.js";
6
6
  import { LockRecordPersistenceError } from "../../domain/errors.js";
7
7
  import { convertWhereCondition } from "../../utils/convertWhereCondition.js";
8
8
  class ListLockRecordsRepositoryImpl {
9
- constructor(model, config, listEntries) {
10
- this.model = model;
11
- this.config = config;
12
- this.listEntries = listEntries;
13
- }
14
- async execute(input) {
15
- try {
16
- const params = {
17
- ...input,
18
- where: convertWhereCondition(input?.where || {})
19
- };
20
- const result = await this.listEntries.execute(this.model, params);
21
- if (result.isFail()) {
22
- return Result.fail(new LockRecordPersistenceError(result.error));
23
- }
24
- const {
25
- entries,
26
- meta
27
- } = result.value;
28
- const items = entries.map(entry => new LockRecord(entry, this.config.timeout));
29
- return Result.ok({
30
- items,
31
- meta
32
- });
33
- } catch (error) {
34
- return Result.fail(new LockRecordPersistenceError(error));
9
+ constructor(model, config, listEntries){
10
+ this.model = model;
11
+ this.config = config;
12
+ this.listEntries = listEntries;
13
+ }
14
+ async execute(input) {
15
+ try {
16
+ const params = {
17
+ ...input,
18
+ where: convertWhereCondition(input?.where || {})
19
+ };
20
+ const result = await this.listEntries.execute(this.model, params);
21
+ if (result.isFail()) return Result.fail(new LockRecordPersistenceError(result.error));
22
+ const { entries, meta } = result.value;
23
+ const items = entries.map((entry)=>new LockRecord(entry, this.config.timeout));
24
+ return Result.ok({
25
+ items,
26
+ meta
27
+ });
28
+ } catch (error) {
29
+ return Result.fail(new LockRecordPersistenceError(error));
30
+ }
35
31
  }
36
- }
37
32
  }
38
- export const ListLockRecordsRepository = RepositoryAbstraction.createImplementation({
39
- implementation: ListLockRecordsRepositoryImpl,
40
- dependencies: [RecordLockingModel, RecordLockingConfig, ListLatestEntriesUseCase]
33
+ const ListLockRecordsRepository_ListLockRecordsRepository = ListLockRecordsRepository.createImplementation({
34
+ implementation: ListLockRecordsRepositoryImpl,
35
+ dependencies: [
36
+ RecordLockingModel,
37
+ RecordLockingConfig,
38
+ ListLatestEntriesUseCase
39
+ ]
41
40
  });
41
+ export { ListLockRecordsRepository_ListLockRecordsRepository as ListLockRecordsRepository };
42
42
 
43
43
  //# sourceMappingURL=ListLockRecordsRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListLatestEntriesUseCase","ListLockRecordsRepository","RepositoryAbstraction","RecordLockingConfig","RecordLockingModel","LockRecord","LockRecordPersistenceError","convertWhereCondition","ListLockRecordsRepositoryImpl","constructor","model","config","listEntries","execute","input","params","where","result","isFail","fail","error","entries","meta","value","items","map","entry","timeout","ok","createImplementation","implementation","dependencies"],"sources":["ListLockRecordsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport {\n ListLockRecordsRepository as RepositoryAbstraction,\n ListLockRecordsInput,\n ListLockRecordsOutput\n} from \"./abstractions.js\";\nimport { RecordLockingConfig, RecordLockingModel } from \"~/domain/abstractions.js\";\nimport { LockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordValues } from \"~/domain/types.js\";\nimport { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport { convertWhereCondition } from \"~/utils/convertWhereCondition.js\";\n\nclass ListLockRecordsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private model: RecordLockingModel.Interface,\n private config: RecordLockingConfig.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface\n ) {}\n\n async execute(\n input?: ListLockRecordsInput\n ): Promise<Result<ListLockRecordsOutput, RepositoryAbstraction.Error>> {\n try {\n const params = {\n ...input,\n where: convertWhereCondition(input?.where || {})\n };\n\n const result = await this.listEntries.execute<LockRecordValues>(this.model, params);\n\n if (result.isFail()) {\n return Result.fail(new LockRecordPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n\n const items = entries.map(entry => new LockRecord(entry, this.config.timeout));\n\n return Result.ok({\n items,\n meta\n });\n } catch (error) {\n return Result.fail(new LockRecordPersistenceError(error as Error));\n }\n }\n}\n\nexport const ListLockRecordsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListLockRecordsRepositoryImpl,\n dependencies: [RecordLockingModel, RecordLockingConfig, ListLatestEntriesUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SACIC,yBAAyB,IAAIC,qBAAqB;AAItD,SAASC,mBAAmB,EAAEC,kBAAkB;AAChD,SAASC,UAAU;AAEnB,SAASC,0BAA0B;AACnC,SAASC,qBAAqB;AAE9B,MAAMC,6BAA6B,CAA4C;EAC3EC,WAAWA,CACCC,KAAmC,EACnCC,MAAqC,EACrCC,WAA+C,EACzD;IAAA,KAHUF,KAAmC,GAAnCA,KAAmC;IAAA,KACnCC,MAAqC,GAArCA,MAAqC;IAAA,KACrCC,WAA+C,GAA/CA,WAA+C;EACxD;EAEH,MAAMC,OAAOA,CACTC,KAA4B,EACuC;IACnE,IAAI;MACA,MAAMC,MAAM,GAAG;QACX,GAAGD,KAAK;QACRE,KAAK,EAAET,qBAAqB,CAACO,KAAK,EAAEE,KAAK,IAAI,CAAC,CAAC;MACnD,CAAC;MAED,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,WAAW,CAACC,OAAO,CAAmB,IAAI,CAACH,KAAK,EAAEK,MAAM,CAAC;MAEnF,IAAIE,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;QACjB,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAIb,0BAA0B,CAACW,MAAM,CAACG,KAAK,CAAC,CAAC;MACpE;MAEA,MAAM;QAAEC,OAAO;QAAEC;MAAK,CAAC,GAAGL,MAAM,CAACM,KAAK;MAEtC,MAAMC,KAAK,GAAGH,OAAO,CAACI,GAAG,CAACC,KAAK,IAAI,IAAIrB,UAAU,CAACqB,KAAK,EAAE,IAAI,CAACf,MAAM,CAACgB,OAAO,CAAC,CAAC;MAE9E,OAAO5B,MAAM,CAAC6B,EAAE,CAAC;QACbJ,KAAK;QACLF;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOF,KAAK,EAAE;MACZ,OAAOrB,MAAM,CAACoB,IAAI,CAAC,IAAIb,0BAA0B,CAACc,KAAc,CAAC,CAAC;IACtE;EACJ;AACJ;AAEA,OAAO,MAAMnB,yBAAyB,GAAGC,qBAAqB,CAAC2B,oBAAoB,CAAC;EAChFC,cAAc,EAAEtB,6BAA6B;EAC7CuB,YAAY,EAAE,CAAC3B,kBAAkB,EAAED,mBAAmB,EAAEH,wBAAwB;AACpF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListLockRecords/ListLockRecordsRepository.js","sources":["../../../src/features/ListLockRecords/ListLockRecordsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport {\n ListLockRecordsRepository as RepositoryAbstraction,\n ListLockRecordsInput,\n ListLockRecordsOutput\n} from \"./abstractions.js\";\nimport { RecordLockingConfig, RecordLockingModel } from \"~/domain/abstractions.js\";\nimport { LockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordValues } from \"~/domain/types.js\";\nimport { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport { convertWhereCondition } from \"~/utils/convertWhereCondition.js\";\n\nclass ListLockRecordsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private model: RecordLockingModel.Interface,\n private config: RecordLockingConfig.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface\n ) {}\n\n async execute(\n input?: ListLockRecordsInput\n ): Promise<Result<ListLockRecordsOutput, RepositoryAbstraction.Error>> {\n try {\n const params = {\n ...input,\n where: convertWhereCondition(input?.where || {})\n };\n\n const result = await this.listEntries.execute<LockRecordValues>(this.model, params);\n\n if (result.isFail()) {\n return Result.fail(new LockRecordPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n\n const items = entries.map(entry => new LockRecord(entry, this.config.timeout));\n\n return Result.ok({\n items,\n meta\n });\n } catch (error) {\n return Result.fail(new LockRecordPersistenceError(error as Error));\n }\n }\n}\n\nexport const ListLockRecordsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListLockRecordsRepositoryImpl,\n dependencies: [RecordLockingModel, RecordLockingConfig, ListLatestEntriesUseCase]\n});\n"],"names":["ListLockRecordsRepositoryImpl","model","config","listEntries","input","params","convertWhereCondition","result","Result","LockRecordPersistenceError","entries","meta","items","entry","LockRecord","error","ListLockRecordsRepository","RepositoryAbstraction","RecordLockingModel","RecordLockingConfig","ListLatestEntriesUseCase"],"mappings":";;;;;;;AAaA,MAAMA;IACF,YACYC,KAAmC,EACnCC,MAAqC,EACrCC,WAA+C,CACzD;aAHUF,KAAK,GAALA;aACAC,MAAM,GAANA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QACFC,KAA4B,EACuC;QACnE,IAAI;YACA,MAAMC,SAAS;gBACX,GAAGD,KAAK;gBACR,OAAOE,sBAAsBF,OAAO,SAAS,CAAC;YAClD;YAEA,MAAMG,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmB,IAAI,CAAC,KAAK,EAAEF;YAE5E,IAAIE,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,2BAA2BF,OAAO,KAAK;YAGlE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,OAAO,KAAK;YAEtC,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAIC,WAAWD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO;YAE5E,OAAOL,OAAO,EAAE,CAAC;gBACbI;gBACAD;YACJ;QACJ,EAAE,OAAOI,OAAO;YACZ,OAAOP,OAAO,IAAI,CAAC,IAAIC,2BAA2BM;QACtD;IACJ;AACJ;AAEO,MAAMC,sDAA4BC,0BAAAA,oBAA0C,CAAC;IAChF,gBAAgBjB;IAChB,cAAc;QAACkB;QAAoBC;QAAqBC;KAAyB;AACrF"}
@@ -1,30 +1,33 @@
1
- import { ListLockRecordsRepository, ListLockRecordsUseCase as UseCaseAbstraction } from "./abstractions.js";
1
+ import { ListLockRecordsRepository, ListLockRecordsUseCase } from "./abstractions.js";
2
2
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
3
  import { RecordLockingConfig } from "../../domain/abstractions.js";
4
4
  class ListLockRecordsUseCaseImpl {
5
- constructor(repository, identityContext, config) {
6
- this.repository = repository;
7
- this.identityContext = identityContext;
8
- this.config = config;
9
- }
10
- async execute(input) {
11
- const identity = this.identityContext.getIdentity();
12
-
13
- // Filter out expired locks and exclude current user's locks
14
- const enhancedInput = {
15
- ...input,
16
- where: {
17
- ...input?.where,
18
- createdBy_not: identity.id,
19
- savedOn_gte: new Date(new Date().getTime() - this.config.timeout).toISOString()
20
- }
21
- };
22
- return await this.repository.execute(enhancedInput);
23
- }
5
+ constructor(repository, identityContext, config){
6
+ this.repository = repository;
7
+ this.identityContext = identityContext;
8
+ this.config = config;
9
+ }
10
+ async execute(input) {
11
+ const identity = this.identityContext.getIdentity();
12
+ const enhancedInput = {
13
+ ...input,
14
+ where: {
15
+ ...input?.where,
16
+ createdBy_not: identity.id,
17
+ savedOn_gte: new Date(new Date().getTime() - this.config.timeout).toISOString()
18
+ }
19
+ };
20
+ return await this.repository.execute(enhancedInput);
21
+ }
24
22
  }
25
- export const ListLockRecordsUseCase = UseCaseAbstraction.createImplementation({
26
- implementation: ListLockRecordsUseCaseImpl,
27
- dependencies: [ListLockRecordsRepository, IdentityContext, RecordLockingConfig]
23
+ const ListLockRecordsUseCase_ListLockRecordsUseCase = ListLockRecordsUseCase.createImplementation({
24
+ implementation: ListLockRecordsUseCaseImpl,
25
+ dependencies: [
26
+ ListLockRecordsRepository,
27
+ IdentityContext,
28
+ RecordLockingConfig
29
+ ]
28
30
  });
31
+ export { ListLockRecordsUseCase_ListLockRecordsUseCase as ListLockRecordsUseCase };
29
32
 
30
33
  //# sourceMappingURL=ListLockRecordsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListLockRecordsRepository","ListLockRecordsUseCase","UseCaseAbstraction","IdentityContext","RecordLockingConfig","ListLockRecordsUseCaseImpl","constructor","repository","identityContext","config","execute","input","identity","getIdentity","enhancedInput","where","createdBy_not","id","savedOn_gte","Date","getTime","timeout","toISOString","createImplementation","implementation","dependencies"],"sources":["ListLockRecordsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListLockRecordsInput,\n ListLockRecordsOutput,\n ListLockRecordsRepository,\n ListLockRecordsUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { RecordLockingConfig } from \"~/domain/abstractions.js\";\n\nclass ListLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private repository: ListLockRecordsRepository.Interface,\n private identityContext: IdentityContext.Interface,\n private config: RecordLockingConfig.Interface\n ) {}\n\n async execute(\n input?: ListLockRecordsInput\n ): Promise<Result<ListLockRecordsOutput, UseCaseAbstraction.Error>> {\n const identity = this.identityContext.getIdentity();\n\n // Filter out expired locks and exclude current user's locks\n const enhancedInput: ListLockRecordsInput = {\n ...input,\n where: {\n ...input?.where,\n createdBy_not: identity.id,\n savedOn_gte: new Date(new Date().getTime() - this.config.timeout).toISOString()\n }\n };\n\n return await this.repository.execute(enhancedInput);\n }\n}\n\nexport const ListLockRecordsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLockRecordsUseCaseImpl,\n dependencies: [ListLockRecordsRepository, IdentityContext, RecordLockingConfig]\n});\n"],"mappings":"AACA,SAGIA,yBAAyB,EACzBC,sBAAsB,IAAIC,kBAAkB;AAEhD,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,mBAAmB;AAE5B,MAAMC,0BAA0B,CAAyC;EACrEC,WAAWA,CACCC,UAA+C,EAC/CC,eAA0C,EAC1CC,MAAqC,EAC/C;IAAA,KAHUF,UAA+C,GAA/CA,UAA+C;IAAA,KAC/CC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,MAAqC,GAArCA,MAAqC;EAC9C;EAEH,MAAMC,OAAOA,CACTC,KAA4B,EACoC;IAChE,MAAMC,QAAQ,GAAG,IAAI,CAACJ,eAAe,CAACK,WAAW,CAAC,CAAC;;IAEnD;IACA,MAAMC,aAAmC,GAAG;MACxC,GAAGH,KAAK;MACRI,KAAK,EAAE;QACH,GAAGJ,KAAK,EAAEI,KAAK;QACfC,aAAa,EAAEJ,QAAQ,CAACK,EAAE;QAC1BC,WAAW,EAAE,IAAIC,IAAI,CAAC,IAAIA,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,CAACX,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC;MAClF;IACJ,CAAC;IAED,OAAO,MAAM,IAAI,CAACf,UAAU,CAACG,OAAO,CAACI,aAAa,CAAC;EACvD;AACJ;AAEA,OAAO,MAAMb,sBAAsB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EAC1EC,cAAc,EAAEnB,0BAA0B;EAC1CoB,YAAY,EAAE,CAACzB,yBAAyB,EAAEG,eAAe,EAAEC,mBAAmB;AAClF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListLockRecords/ListLockRecordsUseCase.js","sources":["../../../src/features/ListLockRecords/ListLockRecordsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListLockRecordsInput,\n ListLockRecordsOutput,\n ListLockRecordsRepository,\n ListLockRecordsUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { RecordLockingConfig } from \"~/domain/abstractions.js\";\n\nclass ListLockRecordsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private repository: ListLockRecordsRepository.Interface,\n private identityContext: IdentityContext.Interface,\n private config: RecordLockingConfig.Interface\n ) {}\n\n async execute(\n input?: ListLockRecordsInput\n ): Promise<Result<ListLockRecordsOutput, UseCaseAbstraction.Error>> {\n const identity = this.identityContext.getIdentity();\n\n // Filter out expired locks and exclude current user's locks\n const enhancedInput: ListLockRecordsInput = {\n ...input,\n where: {\n ...input?.where,\n createdBy_not: identity.id,\n savedOn_gte: new Date(new Date().getTime() - this.config.timeout).toISOString()\n }\n };\n\n return await this.repository.execute(enhancedInput);\n }\n}\n\nexport const ListLockRecordsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLockRecordsUseCaseImpl,\n dependencies: [ListLockRecordsRepository, IdentityContext, RecordLockingConfig]\n});\n"],"names":["ListLockRecordsUseCaseImpl","repository","identityContext","config","input","identity","enhancedInput","Date","ListLockRecordsUseCase","UseCaseAbstraction","ListLockRecordsRepository","IdentityContext","RecordLockingConfig"],"mappings":";;;AAUA,MAAMA;IACF,YACYC,UAA+C,EAC/CC,eAA0C,EAC1CC,MAAqC,CAC/C;aAHUF,UAAU,GAAVA;aACAC,eAAe,GAAfA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QACFC,KAA4B,EACoC;QAChE,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAGjD,MAAMC,gBAAsC;YACxC,GAAGF,KAAK;YACR,OAAO;gBACH,GAAGA,OAAO,KAAK;gBACf,eAAeC,SAAS,EAAE;gBAC1B,aAAa,IAAIE,KAAK,IAAIA,OAAO,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW;YACjF;QACJ;QAEA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;IACzC;AACJ;AAEO,MAAME,gDAAyBC,uBAAAA,oBAAuC,CAAC;IAC1E,gBAAgBT;IAChB,cAAc;QAACU;QAA2BC;QAAiBC;KAAoB;AACnF"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Input/Output types
4
-
5
- /**
6
- * ListLockRecords Use Case - Lists active lock records (filters out expired, excludes current user)
7
- */
8
-
9
- export const ListLockRecordsUseCase = createAbstraction("ListLockRecordsUseCase");
10
-
11
- /**
12
- * ListLockRecordsRepository - Fetches lock records from storage with filtering
13
- */
14
-
15
- export const ListLockRecordsRepository = createAbstraction("ListLockRecordsRepository");
2
+ const ListLockRecordsUseCase = createAbstraction("ListLockRecordsUseCase");
3
+ const ListLockRecordsRepository = createAbstraction("ListLockRecordsRepository");
4
+ export { ListLockRecordsRepository, ListLockRecordsUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListLockRecordsUseCase","ListLockRecordsRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport type { CmsEntryListParams, CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\nimport type {\n DateStringInterfaceGenerator,\n IdentityInterfaceGenerator,\n IdInterfaceGenerator\n} from \"@webiny/api\";\n\n// Input/Output types\nexport interface IListLockRecordsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdentityInterfaceGenerator<\"lockedBy\">,\n IdentityInterfaceGenerator<\"createdBy\">,\n DateStringInterfaceGenerator<\"lockedOn\">,\n DateStringInterfaceGenerator<\"updatedOn\">,\n DateStringInterfaceGenerator<\"savedOn\">,\n DateStringInterfaceGenerator<\"expiresOn\"> {}\n\nexport interface ListLockRecordsInput extends Pick<CmsEntryListParams, \"limit\" | \"sort\" | \"after\"> {\n where?: IListLockRecordsWhere;\n}\n\nexport interface ListLockRecordsOutput {\n items: ILockRecord[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListLockRecords Use Case - Lists active lock records (filters out expired, excludes current user)\n */\nexport interface IListLockRecordsUseCase {\n execute(input?: ListLockRecordsInput): Promise<Result<ListLockRecordsOutput, UseCaseError>>;\n}\n\nexport interface IListLockRecordsUseCaseErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype UseCaseError = IListLockRecordsUseCaseErrors[keyof IListLockRecordsUseCaseErrors];\n\nexport const ListLockRecordsUseCase =\n createAbstraction<IListLockRecordsUseCase>(\"ListLockRecordsUseCase\");\n\nexport namespace ListLockRecordsUseCase {\n export type Interface = IListLockRecordsUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * ListLockRecordsRepository - Fetches lock records from storage with filtering\n */\nexport interface IListLockRecordsRepository {\n execute(input?: ListLockRecordsInput): Promise<Result<ListLockRecordsOutput, RepositoryError>>;\n}\n\nexport interface IListLockRecordsRepositoryErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype RepositoryError = IListLockRecordsRepositoryErrors[keyof IListLockRecordsRepositoryErrors];\n\nexport const ListLockRecordsRepository = createAbstraction<IListLockRecordsRepository>(\n \"ListLockRecordsRepository\"\n);\n\nexport namespace ListLockRecordsRepository {\n export type Interface = IListLockRecordsRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAU/D;;AAoBA;AACA;AACA;;AAWA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAWA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListLockRecords/abstractions.js","sources":["../../../src/features/ListLockRecords/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { ILockRecord } from \"~/domain/LockRecord.js\";\nimport type { LockRecordPersistenceError } from \"~/domain/errors.js\";\nimport type { CmsEntryListParams, CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\nimport type {\n DateStringInterfaceGenerator,\n IdentityInterfaceGenerator,\n IdInterfaceGenerator\n} from \"@webiny/api\";\n\n// Input/Output types\nexport interface IListLockRecordsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdentityInterfaceGenerator<\"lockedBy\">,\n IdentityInterfaceGenerator<\"createdBy\">,\n DateStringInterfaceGenerator<\"lockedOn\">,\n DateStringInterfaceGenerator<\"updatedOn\">,\n DateStringInterfaceGenerator<\"savedOn\">,\n DateStringInterfaceGenerator<\"expiresOn\"> {}\n\nexport interface ListLockRecordsInput extends Pick<CmsEntryListParams, \"limit\" | \"sort\" | \"after\"> {\n where?: IListLockRecordsWhere;\n}\n\nexport interface ListLockRecordsOutput {\n items: ILockRecord[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListLockRecords Use Case - Lists active lock records (filters out expired, excludes current user)\n */\nexport interface IListLockRecordsUseCase {\n execute(input?: ListLockRecordsInput): Promise<Result<ListLockRecordsOutput, UseCaseError>>;\n}\n\nexport interface IListLockRecordsUseCaseErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype UseCaseError = IListLockRecordsUseCaseErrors[keyof IListLockRecordsUseCaseErrors];\n\nexport const ListLockRecordsUseCase =\n createAbstraction<IListLockRecordsUseCase>(\"ListLockRecordsUseCase\");\n\nexport namespace ListLockRecordsUseCase {\n export type Interface = IListLockRecordsUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * ListLockRecordsRepository - Fetches lock records from storage with filtering\n */\nexport interface IListLockRecordsRepository {\n execute(input?: ListLockRecordsInput): Promise<Result<ListLockRecordsOutput, RepositoryError>>;\n}\n\nexport interface IListLockRecordsRepositoryErrors {\n persistence: LockRecordPersistenceError;\n}\n\ntype RepositoryError = IListLockRecordsRepositoryErrors[keyof IListLockRecordsRepositoryErrors];\n\nexport const ListLockRecordsRepository = createAbstraction<IListLockRecordsRepository>(\n \"ListLockRecordsRepository\"\n);\n\nexport namespace ListLockRecordsRepository {\n export type Interface = IListLockRecordsRepository;\n export type Error = RepositoryError;\n}\n"],"names":["ListLockRecordsUseCase","createAbstraction","ListLockRecordsRepository"],"mappings":";AA2CO,MAAMA,yBACTC,kBAA2C;AAoBxC,MAAMC,4BAA4BD,kBACrC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListLockRecordsUseCase } from "./ListLockRecordsUseCase.js";
3
3
  import { ListLockRecordsRepository } from "./ListLockRecordsRepository.js";
4
- export const ListLockRecordsFeature = createFeature({
5
- name: "ListLockRecords",
6
- register(container) {
7
- container.register(ListLockRecordsUseCase);
8
- container.register(ListLockRecordsRepository).inSingletonScope();
9
- }
4
+ const ListLockRecordsFeature = createFeature({
5
+ name: "ListLockRecords",
6
+ register (container) {
7
+ container.register(ListLockRecordsUseCase);
8
+ container.register(ListLockRecordsRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { ListLockRecordsFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListLockRecordsUseCase","ListLockRecordsRepository","ListLockRecordsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListLockRecordsUseCase } from \"./ListLockRecordsUseCase.js\";\nimport { ListLockRecordsRepository } from \"./ListLockRecordsRepository.js\";\n\nexport const ListLockRecordsFeature = createFeature({\n name: \"ListLockRecords\",\n register(container) {\n container.register(ListLockRecordsUseCase);\n container.register(ListLockRecordsRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,OAAO,MAAMC,sBAAsB,GAAGH,aAAa,CAAC;EAChDI,IAAI,EAAE,iBAAiB;EACvBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,sBAAsB,CAAC;IAC1CK,SAAS,CAACD,QAAQ,CAACH,yBAAyB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EACpE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListLockRecords/feature.js","sources":["../../../src/features/ListLockRecords/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListLockRecordsUseCase } from \"./ListLockRecordsUseCase.js\";\nimport { ListLockRecordsRepository } from \"./ListLockRecordsRepository.js\";\n\nexport const ListLockRecordsFeature = createFeature({\n name: \"ListLockRecords\",\n register(container) {\n container.register(ListLockRecordsUseCase);\n container.register(ListLockRecordsRepository).inSingletonScope();\n }\n});\n"],"names":["ListLockRecordsFeature","createFeature","container","ListLockRecordsUseCase","ListLockRecordsRepository"],"mappings":";;;AAIO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,2BAA2B,gBAAgB;IAClE;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -2,39 +2,39 @@ import { LockEntryUseCase } from "./abstractions.js";
2
2
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { EntryAfterLockEvent, EntryBeforeLockEvent, EntryLockErrorEvent } from "./events.js";
4
4
  class LockEntryErrorDecoratorImpl {
5
- constructor(eventPublisher, decoratee) {
6
- this.eventPublisher = eventPublisher;
7
- this.decoratee = decoratee;
8
- }
9
- async execute(input) {
10
- // Publish before event
11
- await this.eventPublisher.publish(new EntryBeforeLockEvent({
12
- id: input.id,
13
- type: input.type
14
- }));
15
- const result = await this.decoratee.execute(input);
16
- if (result.isFail()) {
17
- const error = result.error;
18
- await this.eventPublisher.publish(new EntryLockErrorEvent({
19
- id: input.id,
20
- type: input.type,
21
- error
22
- }));
23
- return result;
5
+ constructor(eventPublisher, decoratee){
6
+ this.eventPublisher = eventPublisher;
7
+ this.decoratee = decoratee;
8
+ }
9
+ async execute(input) {
10
+ await this.eventPublisher.publish(new EntryBeforeLockEvent({
11
+ id: input.id,
12
+ type: input.type
13
+ }));
14
+ const result = await this.decoratee.execute(input);
15
+ if (result.isFail()) {
16
+ const error = result.error;
17
+ await this.eventPublisher.publish(new EntryLockErrorEvent({
18
+ id: input.id,
19
+ type: input.type,
20
+ error
21
+ }));
22
+ return result;
23
+ }
24
+ await this.eventPublisher.publish(new EntryAfterLockEvent({
25
+ id: input.id,
26
+ type: input.type,
27
+ record: result.value
28
+ }));
29
+ return result;
24
30
  }
25
-
26
- // Publish after event
27
- await this.eventPublisher.publish(new EntryAfterLockEvent({
28
- id: input.id,
29
- type: input.type,
30
- record: result.value
31
- }));
32
- return result;
33
- }
34
31
  }
35
- export const LockEntryEventsDecorator = LockEntryUseCase.createDecorator({
36
- decorator: LockEntryErrorDecoratorImpl,
37
- dependencies: [EventPublisher]
32
+ const LockEntryEventsDecorator = LockEntryUseCase.createDecorator({
33
+ decorator: LockEntryErrorDecoratorImpl,
34
+ dependencies: [
35
+ EventPublisher
36
+ ]
38
37
  });
38
+ export { LockEntryEventsDecorator };
39
39
 
40
40
  //# sourceMappingURL=LockEntryEventsDecorator.js.map