@webiny/api-headless-cms-pg-os 0.0.0-unstable.0156a4c312

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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/debuggerNamespaces.d.ts +12 -0
  4. package/debuggerNamespaces.js +0 -0
  5. package/features/HeadlessCmsPgOsFeature.d.ts +9 -0
  6. package/features/HeadlessCmsPgOsFeature.js +40 -0
  7. package/features/HeadlessCmsPgOsFeature.js.map +1 -0
  8. package/features/SyncWriter/BuildSyncRecord.d.ts +24 -0
  9. package/features/SyncWriter/BuildSyncRecord.js +60 -0
  10. package/features/SyncWriter/BuildSyncRecord.js.map +1 -0
  11. package/features/SyncWriter/RemoveEntry.d.ts +11 -0
  12. package/features/SyncWriter/RemoveEntry.js +23 -0
  13. package/features/SyncWriter/RemoveEntry.js.map +1 -0
  14. package/features/SyncWriter/RemoveLatest.d.ts +11 -0
  15. package/features/SyncWriter/RemoveLatest.js +19 -0
  16. package/features/SyncWriter/RemoveLatest.js.map +1 -0
  17. package/features/SyncWriter/RemovePublished.d.ts +11 -0
  18. package/features/SyncWriter/RemovePublished.js +19 -0
  19. package/features/SyncWriter/RemovePublished.js.map +1 -0
  20. package/features/SyncWriter/SyncHelpers.d.ts +26 -0
  21. package/features/SyncWriter/SyncHelpers.js +70 -0
  22. package/features/SyncWriter/SyncHelpers.js.map +1 -0
  23. package/features/SyncWriter/SyncRowQuery.d.ts +22 -0
  24. package/features/SyncWriter/SyncRowQuery.js +22 -0
  25. package/features/SyncWriter/SyncRowQuery.js.map +1 -0
  26. package/features/SyncWriter/WriteEntry.d.ts +14 -0
  27. package/features/SyncWriter/WriteEntry.js +35 -0
  28. package/features/SyncWriter/WriteEntry.js.map +1 -0
  29. package/features/SyncWriter/WriteLatest.d.ts +14 -0
  30. package/features/SyncWriter/WriteLatest.js +29 -0
  31. package/features/SyncWriter/WriteLatest.js.map +1 -0
  32. package/features/SyncWriter/WritePublished.d.ts +14 -0
  33. package/features/SyncWriter/WritePublished.js +29 -0
  34. package/features/SyncWriter/WritePublished.js.map +1 -0
  35. package/features/SyncWriter/abstractions/BuildSyncRecord.d.ts +18 -0
  36. package/features/SyncWriter/abstractions/BuildSyncRecord.js +5 -0
  37. package/features/SyncWriter/abstractions/BuildSyncRecord.js.map +1 -0
  38. package/features/SyncWriter/abstractions/RemoveEntry.d.ts +13 -0
  39. package/features/SyncWriter/abstractions/RemoveEntry.js +5 -0
  40. package/features/SyncWriter/abstractions/RemoveEntry.js.map +1 -0
  41. package/features/SyncWriter/abstractions/RemoveLatest.d.ts +13 -0
  42. package/features/SyncWriter/abstractions/RemoveLatest.js +5 -0
  43. package/features/SyncWriter/abstractions/RemoveLatest.js.map +1 -0
  44. package/features/SyncWriter/abstractions/RemovePublished.d.ts +13 -0
  45. package/features/SyncWriter/abstractions/RemovePublished.js +5 -0
  46. package/features/SyncWriter/abstractions/RemovePublished.js.map +1 -0
  47. package/features/SyncWriter/abstractions/SyncHelpers.d.ts +10 -0
  48. package/features/SyncWriter/abstractions/SyncHelpers.js +5 -0
  49. package/features/SyncWriter/abstractions/SyncHelpers.js.map +1 -0
  50. package/features/SyncWriter/abstractions/SyncRowQuery.d.ts +9 -0
  51. package/features/SyncWriter/abstractions/SyncRowQuery.js +5 -0
  52. package/features/SyncWriter/abstractions/SyncRowQuery.js.map +1 -0
  53. package/features/SyncWriter/abstractions/WriteEntry.d.ts +14 -0
  54. package/features/SyncWriter/abstractions/WriteEntry.js +5 -0
  55. package/features/SyncWriter/abstractions/WriteEntry.js.map +1 -0
  56. package/features/SyncWriter/abstractions/WriteLatest.d.ts +14 -0
  57. package/features/SyncWriter/abstractions/WriteLatest.js +5 -0
  58. package/features/SyncWriter/abstractions/WriteLatest.js.map +1 -0
  59. package/features/SyncWriter/abstractions/WritePublished.d.ts +14 -0
  60. package/features/SyncWriter/abstractions/WritePublished.js +5 -0
  61. package/features/SyncWriter/abstractions/WritePublished.js.map +1 -0
  62. package/features/SyncWriter/feature.d.ts +4 -0
  63. package/features/SyncWriter/feature.js +27 -0
  64. package/features/SyncWriter/feature.js.map +1 -0
  65. package/features/SyncWriter/index.d.ts +9 -0
  66. package/features/SyncWriter/index.js +9 -0
  67. package/features/syncEventHandler/SyncEventHandler.d.ts +15 -0
  68. package/features/syncEventHandler/SyncEventHandler.js +49 -0
  69. package/features/syncEventHandler/SyncEventHandler.js.map +1 -0
  70. package/features/syncEventHandler/abstractions.d.ts +12 -0
  71. package/features/syncEventHandler/abstractions.js +5 -0
  72. package/features/syncEventHandler/abstractions.js.map +1 -0
  73. package/features/syncEventHandler/feature.d.ts +4 -0
  74. package/features/syncEventHandler/feature.js +11 -0
  75. package/features/syncEventHandler/feature.js.map +1 -0
  76. package/features/syncTableManager/SyncTableManager.d.ts +19 -0
  77. package/features/syncTableManager/SyncTableManager.js +62 -0
  78. package/features/syncTableManager/SyncTableManager.js.map +1 -0
  79. package/features/syncTableManager/abstractions.d.ts +9 -0
  80. package/features/syncTableManager/abstractions.js +5 -0
  81. package/features/syncTableManager/abstractions.js.map +1 -0
  82. package/features/syncTableManager/feature.d.ts +4 -0
  83. package/features/syncTableManager/feature.js +11 -0
  84. package/features/syncTableManager/feature.js.map +1 -0
  85. package/index.d.ts +1 -0
  86. package/index.js +1 -0
  87. package/operations/entry/EntrySearchOperations.d.ts +17 -0
  88. package/operations/entry/EntrySearchOperations.js +41 -0
  89. package/operations/entry/EntrySearchOperations.js.map +1 -0
  90. package/operations/entry/PgOsCreateEntry.d.ts +15 -0
  91. package/operations/entry/PgOsCreateEntry.js +27 -0
  92. package/operations/entry/PgOsCreateEntry.js.map +1 -0
  93. package/operations/entry/PgOsCreateEntryRevisionFrom.d.ts +15 -0
  94. package/operations/entry/PgOsCreateEntryRevisionFrom.js +27 -0
  95. package/operations/entry/PgOsCreateEntryRevisionFrom.js.map +1 -0
  96. package/operations/entry/PgOsDeleteEntry.d.ts +17 -0
  97. package/operations/entry/PgOsDeleteEntry.js +33 -0
  98. package/operations/entry/PgOsDeleteEntry.js.map +1 -0
  99. package/operations/entry/PgOsDeleteEntryRevision.d.ts +21 -0
  100. package/operations/entry/PgOsDeleteEntryRevision.js +48 -0
  101. package/operations/entry/PgOsDeleteEntryRevision.js.map +1 -0
  102. package/operations/entry/PgOsDeleteMultipleEntries.d.ts +17 -0
  103. package/operations/entry/PgOsDeleteMultipleEntries.js +36 -0
  104. package/operations/entry/PgOsDeleteMultipleEntries.js.map +1 -0
  105. package/operations/entry/PgOsGetEntry.d.ts +12 -0
  106. package/operations/entry/PgOsGetEntry.js +19 -0
  107. package/operations/entry/PgOsGetEntry.js.map +1 -0
  108. package/operations/entry/PgOsGetUniqueFieldValues.d.ts +12 -0
  109. package/operations/entry/PgOsGetUniqueFieldValues.js +19 -0
  110. package/operations/entry/PgOsGetUniqueFieldValues.js.map +1 -0
  111. package/operations/entry/PgOsListEntries.d.ts +12 -0
  112. package/operations/entry/PgOsListEntries.js +19 -0
  113. package/operations/entry/PgOsListEntries.js.map +1 -0
  114. package/operations/entry/PgOsMoveEntry.d.ts +15 -0
  115. package/operations/entry/PgOsMoveEntry.js +26 -0
  116. package/operations/entry/PgOsMoveEntry.js.map +1 -0
  117. package/operations/entry/PgOsMoveToBin.d.ts +15 -0
  118. package/operations/entry/PgOsMoveToBin.js +26 -0
  119. package/operations/entry/PgOsMoveToBin.js.map +1 -0
  120. package/operations/entry/PgOsPublishEntry.d.ts +17 -0
  121. package/operations/entry/PgOsPublishEntry.js +34 -0
  122. package/operations/entry/PgOsPublishEntry.js.map +1 -0
  123. package/operations/entry/PgOsRestoreFromBin.d.ts +15 -0
  124. package/operations/entry/PgOsRestoreFromBin.js +27 -0
  125. package/operations/entry/PgOsRestoreFromBin.js.map +1 -0
  126. package/operations/entry/PgOsUnpublishEntry.d.ts +19 -0
  127. package/operations/entry/PgOsUnpublishEntry.js +41 -0
  128. package/operations/entry/PgOsUnpublishEntry.js.map +1 -0
  129. package/operations/entry/PgOsUpdateEntry.d.ts +15 -0
  130. package/operations/entry/PgOsUpdateEntry.js +27 -0
  131. package/operations/entry/PgOsUpdateEntry.js.map +1 -0
  132. package/operations/entry/abstractions/EntrySearchOperations.d.ts +10 -0
  133. package/operations/entry/abstractions/EntrySearchOperations.js +5 -0
  134. package/operations/entry/abstractions/EntrySearchOperations.js.map +1 -0
  135. package/operations/entry/feature.d.ts +4 -0
  136. package/operations/entry/feature.js +55 -0
  137. package/operations/entry/feature.js.map +1 -0
  138. package/operations/entry/search/get.d.ts +3 -0
  139. package/operations/entry/search/get.js +14 -0
  140. package/operations/entry/search/get.js.map +1 -0
  141. package/operations/entry/search/getUniqueFieldValues.d.ts +3 -0
  142. package/operations/entry/search/getUniqueFieldValues.js +56 -0
  143. package/operations/entry/search/getUniqueFieldValues.js.map +1 -0
  144. package/operations/entry/search/list.d.ts +4 -0
  145. package/operations/entry/search/list.js +75 -0
  146. package/operations/entry/search/list.js.map +1 -0
  147. package/operations/entry/search/types.d.ts +23 -0
  148. package/operations/entry/search/types.js +0 -0
  149. package/package.json +73 -0
  150. package/testing/createReindexEvents.d.ts +3 -0
  151. package/testing/createReindexEvents.js +14 -0
  152. package/testing/createReindexEvents.js.map +1 -0
  153. package/testing/index.d.ts +2 -0
  154. package/testing/index.js +2 -0
  155. package/testing/simulatePgStream.d.ts +19 -0
  156. package/testing/simulatePgStream.js +52 -0
  157. package/testing/simulatePgStream.js.map +1 -0
  158. package/types.d.ts +17 -0
  159. package/types.js +0 -0
@@ -0,0 +1,26 @@
1
+ import { MoveToBinStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js";
2
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
3
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ class PgOsMoveToBinImpl {
5
+ constructor(syncHelpers, storageModelProvider, inner){
6
+ this.syncHelpers = syncHelpers;
7
+ this.storageModelProvider = storageModelProvider;
8
+ this.inner = inner;
9
+ }
10
+ async execute(model, params) {
11
+ await this.syncHelpers.ensureSyncTable();
12
+ await this.inner.execute(model, params);
13
+ const storageModel = this.storageModelProvider.getModel(model);
14
+ await this.syncHelpers.resyncLatestAndPublishedFromPg(model, storageModel, params.entry.id);
15
+ }
16
+ }
17
+ const PgOsMoveToBin = MoveToBinStorageOperation.createDecorator({
18
+ decorator: PgOsMoveToBinImpl,
19
+ dependencies: [
20
+ SyncHelpers,
21
+ CmsStorageModelProvider
22
+ ]
23
+ });
24
+ export { PgOsMoveToBin };
25
+
26
+ //# sourceMappingURL=PgOsMoveToBin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/PgOsMoveToBin.js","sources":["../../../src/operations/entry/PgOsMoveToBin.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryStorageOperationsMoveToBinParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { MoveToBinStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js\";\nimport { SyncHelpers } from \"~/features/SyncWriter/abstractions/SyncHelpers.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nclass PgOsMoveToBinImpl implements MoveToBinStorageOperation.Interface {\n constructor(\n private syncHelpers: SyncHelpers.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private inner: MoveToBinStorageOperation.Interface\n ) {}\n\n async execute(model: CmsModel, params: CmsEntryStorageOperationsMoveToBinParams) {\n await this.syncHelpers.ensureSyncTable();\n await this.inner.execute(model, params);\n const storageModel = this.storageModelProvider.getModel(model);\n await this.syncHelpers.resyncLatestAndPublishedFromPg(model, storageModel, params.entry.id);\n }\n}\n\nexport const PgOsMoveToBin = MoveToBinStorageOperation.createDecorator({\n decorator: PgOsMoveToBinImpl,\n dependencies: [SyncHelpers, CmsStorageModelProvider]\n});\n"],"names":["PgOsMoveToBinImpl","syncHelpers","storageModelProvider","inner","model","params","storageModel","PgOsMoveToBin","MoveToBinStorageOperation","SyncHelpers","CmsStorageModelProvider"],"mappings":";;;AAQA,MAAMA;IACF,YACYC,WAAkC,EAClCC,oBAAuD,EACvDC,KAA0C,CACpD;aAHUF,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,KAAe,EAAEC,MAAgD,EAAE;QAC7E,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACD,OAAOC;QAChC,MAAMC,eAAe,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACF;QACxD,MAAM,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAACA,OAAOE,cAAcD,OAAO,KAAK,CAAC,EAAE;IAC9F;AACJ;AAEO,MAAME,gBAAgBC,0BAA0B,eAAe,CAAC;IACnE,WAAWR;IACX,cAAc;QAACS;QAAaC;KAAwB;AACxD"}
@@ -0,0 +1,17 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsPublishParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { PublishEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js";
3
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
4
+ import { WriteEntry } from "../../features/SyncWriter/abstractions/WriteEntry.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ declare class PgOsPublishEntryImpl implements PublishEntryStorageOperation.Interface {
7
+ private syncHelpers;
8
+ private writeEntry;
9
+ private storageModelProvider;
10
+ private inner;
11
+ constructor(syncHelpers: SyncHelpers.Interface, writeEntry: WriteEntry.Interface, storageModelProvider: CmsStorageModelProvider.Interface, inner: PublishEntryStorageOperation.Interface);
12
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsPublishParams<T>): Promise<import("@webiny/api-headless-cms/types/types").CmsEntry<T>>;
13
+ }
14
+ export declare const PgOsPublishEntry: typeof PgOsPublishEntryImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js").IPublishEntryStorageOperation>;
16
+ };
17
+ export {};
@@ -0,0 +1,34 @@
1
+ import { PublishEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js";
2
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
3
+ import { WriteEntry } from "../../features/SyncWriter/abstractions/WriteEntry.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ class PgOsPublishEntryImpl {
6
+ constructor(syncHelpers, writeEntry, storageModelProvider, inner){
7
+ this.syncHelpers = syncHelpers;
8
+ this.writeEntry = writeEntry;
9
+ this.storageModelProvider = storageModelProvider;
10
+ this.inner = inner;
11
+ }
12
+ async execute(model, params) {
13
+ await this.syncHelpers.ensureSyncTable();
14
+ const result = await this.inner.execute(model, params);
15
+ const storageModel = this.storageModelProvider.getModel(model);
16
+ await this.writeEntry.execute({
17
+ model: storageModel,
18
+ entry: params.entry,
19
+ storageEntry: params.storageEntry
20
+ });
21
+ return result;
22
+ }
23
+ }
24
+ const PgOsPublishEntry = PublishEntryStorageOperation.createDecorator({
25
+ decorator: PgOsPublishEntryImpl,
26
+ dependencies: [
27
+ SyncHelpers,
28
+ WriteEntry,
29
+ CmsStorageModelProvider
30
+ ]
31
+ });
32
+ export { PgOsPublishEntry };
33
+
34
+ //# sourceMappingURL=PgOsPublishEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/PgOsPublishEntry.js","sources":["../../../src/operations/entry/PgOsPublishEntry.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsPublishParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { PublishEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js\";\nimport { SyncHelpers } from \"~/features/SyncWriter/abstractions/SyncHelpers.js\";\nimport { WriteEntry } from \"~/features/SyncWriter/abstractions/WriteEntry.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nclass PgOsPublishEntryImpl implements PublishEntryStorageOperation.Interface {\n constructor(\n private syncHelpers: SyncHelpers.Interface,\n private writeEntry: WriteEntry.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private inner: PublishEntryStorageOperation.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsPublishParams<T>\n ) {\n await this.syncHelpers.ensureSyncTable();\n const result = await this.inner.execute(model, params);\n const storageModel = this.storageModelProvider.getModel<T>(model);\n await this.writeEntry.execute({\n model: storageModel,\n entry: params.entry,\n storageEntry: params.storageEntry\n });\n return result;\n }\n}\n\nexport const PgOsPublishEntry = PublishEntryStorageOperation.createDecorator({\n decorator: PgOsPublishEntryImpl,\n dependencies: [SyncHelpers, WriteEntry, CmsStorageModelProvider]\n});\n"],"names":["PgOsPublishEntryImpl","syncHelpers","writeEntry","storageModelProvider","inner","model","params","result","storageModel","PgOsPublishEntry","PublishEntryStorageOperation","SyncHelpers","WriteEntry","CmsStorageModelProvider"],"mappings":";;;;AAUA,MAAMA;IACF,YACYC,WAAkC,EAClCC,UAAgC,EAChCC,oBAAuD,EACvDC,KAA6C,CACvD;aAJUH,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,oBAAoB,GAApBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAAiD,EACnD;QACE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe;QACtC,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACF,OAAOC;QAC/C,MAAME,eAAe,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIH;QAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1B,OAAOG;YACP,OAAOF,OAAO,KAAK;YACnB,cAAcA,OAAO,YAAY;QACrC;QACA,OAAOC;IACX;AACJ;AAEO,MAAME,mBAAmBC,6BAA6B,eAAe,CAAC;IACzE,WAAWV;IACX,cAAc;QAACW;QAAaC;QAAYC;KAAwB;AACpE"}
@@ -0,0 +1,15 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsRestoreFromBinParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { RestoreFromBinStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js";
3
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ declare class PgOsRestoreFromBinImpl implements RestoreFromBinStorageOperation.Interface {
6
+ private syncHelpers;
7
+ private storageModelProvider;
8
+ private inner;
9
+ constructor(syncHelpers: SyncHelpers.Interface, storageModelProvider: CmsStorageModelProvider.Interface, inner: RestoreFromBinStorageOperation.Interface);
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsRestoreFromBinParams<T>): Promise<import("@webiny/api-headless-cms/types/types").CmsEntry<T>>;
11
+ }
12
+ export declare const PgOsRestoreFromBin: typeof PgOsRestoreFromBinImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js").IRestoreFromBinStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,27 @@
1
+ import { RestoreFromBinStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js";
2
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
3
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ class PgOsRestoreFromBinImpl {
5
+ constructor(syncHelpers, storageModelProvider, inner){
6
+ this.syncHelpers = syncHelpers;
7
+ this.storageModelProvider = storageModelProvider;
8
+ this.inner = inner;
9
+ }
10
+ async execute(model, params) {
11
+ await this.syncHelpers.ensureSyncTable();
12
+ const result = await this.inner.execute(model, params);
13
+ const storageModel = this.storageModelProvider.getModel(model);
14
+ await this.syncHelpers.resyncLatestAndPublishedFromPg(model, storageModel, params.entry.id);
15
+ return result;
16
+ }
17
+ }
18
+ const PgOsRestoreFromBin = RestoreFromBinStorageOperation.createDecorator({
19
+ decorator: PgOsRestoreFromBinImpl,
20
+ dependencies: [
21
+ SyncHelpers,
22
+ CmsStorageModelProvider
23
+ ]
24
+ });
25
+ export { PgOsRestoreFromBin };
26
+
27
+ //# sourceMappingURL=PgOsRestoreFromBin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/PgOsRestoreFromBin.js","sources":["../../../src/operations/entry/PgOsRestoreFromBin.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsRestoreFromBinParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { RestoreFromBinStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js\";\nimport { SyncHelpers } from \"~/features/SyncWriter/abstractions/SyncHelpers.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nclass PgOsRestoreFromBinImpl implements RestoreFromBinStorageOperation.Interface {\n constructor(\n private syncHelpers: SyncHelpers.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private inner: RestoreFromBinStorageOperation.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsRestoreFromBinParams<T>\n ) {\n await this.syncHelpers.ensureSyncTable();\n const result = await this.inner.execute(model, params);\n const storageModel = this.storageModelProvider.getModel<T>(model);\n await this.syncHelpers.resyncLatestAndPublishedFromPg(model, storageModel, params.entry.id);\n return result;\n }\n}\n\nexport const PgOsRestoreFromBin = RestoreFromBinStorageOperation.createDecorator({\n decorator: PgOsRestoreFromBinImpl,\n dependencies: [SyncHelpers, CmsStorageModelProvider]\n});\n"],"names":["PgOsRestoreFromBinImpl","syncHelpers","storageModelProvider","inner","model","params","result","storageModel","PgOsRestoreFromBin","RestoreFromBinStorageOperation","SyncHelpers","CmsStorageModelProvider"],"mappings":";;;AASA,MAAMA;IACF,YACYC,WAAkC,EAClCC,oBAAuD,EACvDC,KAA+C,CACzD;aAHUF,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAAwD,EAC1D;QACE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe;QACtC,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACF,OAAOC;QAC/C,MAAME,eAAe,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIH;QAC3D,MAAM,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAACA,OAAOG,cAAcF,OAAO,KAAK,CAAC,EAAE;QAC1F,OAAOC;IACX;AACJ;AAEO,MAAME,qBAAqBC,+BAA+B,eAAe,CAAC;IAC7E,WAAWT;IACX,cAAc;QAACU;QAAaC;KAAwB;AACxD"}
@@ -0,0 +1,19 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsUnpublishParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { UnpublishEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js";
3
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
4
+ import { WriteLatest } from "../../features/SyncWriter/abstractions/WriteLatest.js";
5
+ import { RemovePublished } from "../../features/SyncWriter/abstractions/RemovePublished.js";
6
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
7
+ declare class PgOsUnpublishEntryImpl implements UnpublishEntryStorageOperation.Interface {
8
+ private syncHelpers;
9
+ private writeLatest;
10
+ private removePublished;
11
+ private storageModelProvider;
12
+ private inner;
13
+ constructor(syncHelpers: SyncHelpers.Interface, writeLatest: WriteLatest.Interface, removePublished: RemovePublished.Interface, storageModelProvider: CmsStorageModelProvider.Interface, inner: UnpublishEntryStorageOperation.Interface);
14
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsUnpublishParams<T>): Promise<import("@webiny/api-headless-cms/types/types").CmsEntry<T>>;
15
+ }
16
+ export declare const PgOsUnpublishEntry: typeof PgOsUnpublishEntryImpl & {
17
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js").IUnpublishEntryStorageOperation>;
18
+ };
19
+ export {};
@@ -0,0 +1,41 @@
1
+ import { UnpublishEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js";
2
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
3
+ import { WriteLatest } from "../../features/SyncWriter/abstractions/WriteLatest.js";
4
+ import { RemovePublished } from "../../features/SyncWriter/abstractions/RemovePublished.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ class PgOsUnpublishEntryImpl {
7
+ constructor(syncHelpers, writeLatest, removePublished, storageModelProvider, inner){
8
+ this.syncHelpers = syncHelpers;
9
+ this.writeLatest = writeLatest;
10
+ this.removePublished = removePublished;
11
+ this.storageModelProvider = storageModelProvider;
12
+ this.inner = inner;
13
+ }
14
+ async execute(model, params) {
15
+ await this.syncHelpers.ensureSyncTable();
16
+ const result = await this.inner.execute(model, params);
17
+ const storageModel = this.storageModelProvider.getModel(model);
18
+ await this.writeLatest.execute({
19
+ model: storageModel,
20
+ entry: params.entry,
21
+ storageEntry: params.storageEntry
22
+ });
23
+ await this.removePublished.execute({
24
+ model: storageModel,
25
+ entryId: params.entry.entryId
26
+ });
27
+ return result;
28
+ }
29
+ }
30
+ const PgOsUnpublishEntry = UnpublishEntryStorageOperation.createDecorator({
31
+ decorator: PgOsUnpublishEntryImpl,
32
+ dependencies: [
33
+ SyncHelpers,
34
+ WriteLatest,
35
+ RemovePublished,
36
+ CmsStorageModelProvider
37
+ ]
38
+ });
39
+ export { PgOsUnpublishEntry };
40
+
41
+ //# sourceMappingURL=PgOsUnpublishEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/PgOsUnpublishEntry.js","sources":["../../../src/operations/entry/PgOsUnpublishEntry.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsUnpublishParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { UnpublishEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js\";\nimport { SyncHelpers } from \"~/features/SyncWriter/abstractions/SyncHelpers.js\";\nimport { WriteLatest } from \"~/features/SyncWriter/abstractions/WriteLatest.js\";\nimport { RemovePublished } from \"~/features/SyncWriter/abstractions/RemovePublished.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nclass PgOsUnpublishEntryImpl implements UnpublishEntryStorageOperation.Interface {\n constructor(\n private syncHelpers: SyncHelpers.Interface,\n private writeLatest: WriteLatest.Interface,\n private removePublished: RemovePublished.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private inner: UnpublishEntryStorageOperation.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsUnpublishParams<T>\n ) {\n await this.syncHelpers.ensureSyncTable();\n const result = await this.inner.execute(model, params);\n const storageModel = this.storageModelProvider.getModel<T>(model);\n await this.writeLatest.execute({\n model: storageModel,\n entry: params.entry,\n storageEntry: params.storageEntry\n });\n await this.removePublished.execute({\n model: storageModel,\n entryId: params.entry.entryId\n });\n return result;\n }\n}\n\nexport const PgOsUnpublishEntry = UnpublishEntryStorageOperation.createDecorator({\n decorator: PgOsUnpublishEntryImpl,\n dependencies: [SyncHelpers, WriteLatest, RemovePublished, CmsStorageModelProvider]\n});\n"],"names":["PgOsUnpublishEntryImpl","syncHelpers","writeLatest","removePublished","storageModelProvider","inner","model","params","result","storageModel","PgOsUnpublishEntry","UnpublishEntryStorageOperation","SyncHelpers","WriteLatest","RemovePublished","CmsStorageModelProvider"],"mappings":";;;;;AAWA,MAAMA;IACF,YACYC,WAAkC,EAClCC,WAAkC,EAClCC,eAA0C,EAC1CC,oBAAuD,EACvDC,KAA+C,CACzD;aALUJ,WAAW,GAAXA;aACAC,WAAW,GAAXA;aACAC,eAAe,GAAfA;aACAC,oBAAoB,GAApBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAAmD,EACrD;QACE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe;QACtC,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACF,OAAOC;QAC/C,MAAME,eAAe,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIH;QAC3D,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC3B,OAAOG;YACP,OAAOF,OAAO,KAAK;YACnB,cAAcA,OAAO,YAAY;QACrC;QACA,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC/B,OAAOE;YACP,SAASF,OAAO,KAAK,CAAC,OAAO;QACjC;QACA,OAAOC;IACX;AACJ;AAEO,MAAME,qBAAqBC,+BAA+B,eAAe,CAAC;IAC7E,WAAWX;IACX,cAAc;QAACY;QAAaC;QAAaC;QAAiBC;KAAwB;AACtF"}
@@ -0,0 +1,15 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsUpdateParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { UpdateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js";
3
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ declare class PgOsUpdateEntryImpl implements UpdateEntryStorageOperation.Interface {
6
+ private syncHelpers;
7
+ private storageModelProvider;
8
+ private inner;
9
+ constructor(syncHelpers: SyncHelpers.Interface, storageModelProvider: CmsStorageModelProvider.Interface, inner: UpdateEntryStorageOperation.Interface);
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsUpdateParams<T>): Promise<import("@webiny/api-headless-cms/types/types").CmsEntry<T>>;
11
+ }
12
+ export declare const PgOsUpdateEntry: typeof PgOsUpdateEntryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js").IUpdateEntryStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,27 @@
1
+ import { UpdateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js";
2
+ import { SyncHelpers } from "../../features/SyncWriter/abstractions/SyncHelpers.js";
3
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ class PgOsUpdateEntryImpl {
5
+ constructor(syncHelpers, storageModelProvider, inner){
6
+ this.syncHelpers = syncHelpers;
7
+ this.storageModelProvider = storageModelProvider;
8
+ this.inner = inner;
9
+ }
10
+ async execute(model, params) {
11
+ await this.syncHelpers.ensureSyncTable();
12
+ const result = await this.inner.execute(model, params);
13
+ const storageModel = this.storageModelProvider.getModel(model);
14
+ await this.syncHelpers.writeSyncForEntry(storageModel, params.entry, params.storageEntry);
15
+ return result;
16
+ }
17
+ }
18
+ const PgOsUpdateEntry = UpdateEntryStorageOperation.createDecorator({
19
+ decorator: PgOsUpdateEntryImpl,
20
+ dependencies: [
21
+ SyncHelpers,
22
+ CmsStorageModelProvider
23
+ ]
24
+ });
25
+ export { PgOsUpdateEntry };
26
+
27
+ //# sourceMappingURL=PgOsUpdateEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/PgOsUpdateEntry.js","sources":["../../../src/operations/entry/PgOsUpdateEntry.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { UpdateEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js\";\nimport { SyncHelpers } from \"~/features/SyncWriter/abstractions/SyncHelpers.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nclass PgOsUpdateEntryImpl implements UpdateEntryStorageOperation.Interface {\n constructor(\n private syncHelpers: SyncHelpers.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private inner: UpdateEntryStorageOperation.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsUpdateParams<T>\n ) {\n await this.syncHelpers.ensureSyncTable();\n const result = await this.inner.execute(model, params);\n const storageModel = this.storageModelProvider.getModel<T>(model);\n await this.syncHelpers.writeSyncForEntry(storageModel, params.entry, params.storageEntry);\n return result;\n }\n}\n\nexport const PgOsUpdateEntry = UpdateEntryStorageOperation.createDecorator({\n decorator: PgOsUpdateEntryImpl,\n dependencies: [SyncHelpers, CmsStorageModelProvider]\n});\n"],"names":["PgOsUpdateEntryImpl","syncHelpers","storageModelProvider","inner","model","params","result","storageModel","PgOsUpdateEntry","UpdateEntryStorageOperation","SyncHelpers","CmsStorageModelProvider"],"mappings":";;;AASA,MAAMA;IACF,YACYC,WAAkC,EAClCC,oBAAuD,EACvDC,KAA4C,CACtD;aAHUF,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAAgD,EAClD;QACE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe;QACtC,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACF,OAAOC;QAC/C,MAAME,eAAe,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIH;QAC3D,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAACG,cAAcF,OAAO,KAAK,EAAEA,OAAO,YAAY;QACxF,OAAOC;IACX;AACJ;AAEO,MAAME,kBAAkBC,4BAA4B,eAAe,CAAC;IACvE,WAAWT;IACX,cAAc;QAACU;QAAaC;KAAwB;AACxD"}
@@ -0,0 +1,10 @@
1
+ import type { CmsEntry, CmsEntryStorageOperationsGetParams, CmsEntryStorageOperationsGetUniqueFieldValuesParams, CmsEntryStorageOperationsListParams, CmsEntryStorageOperationsListResponse, CmsEntryUniqueValue, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ export interface IEntrySearchOperations {
3
+ get<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetParams): Promise<CmsEntry<T> | null>;
4
+ list<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsListParams): Promise<CmsEntryStorageOperationsListResponse<CmsEntry<T>>>;
5
+ getUniqueFieldValues(model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams): Promise<CmsEntryUniqueValue[]>;
6
+ }
7
+ export declare const EntrySearchOperations: import("@webiny/di").Abstraction<IEntrySearchOperations>;
8
+ export declare namespace EntrySearchOperations {
9
+ type Interface = IEntrySearchOperations;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api/index.js";
2
+ const EntrySearchOperations = createAbstraction("Cms/PgOs/EntrySearchOperations");
3
+ export { EntrySearchOperations };
4
+
5
+ //# sourceMappingURL=EntrySearchOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/abstractions/EntrySearchOperations.js","sources":["../../../../src/operations/entry/abstractions/EntrySearchOperations.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api/index.js\";\nimport type {\n CmsEntry,\n CmsEntryStorageOperationsGetParams,\n CmsEntryStorageOperationsGetUniqueFieldValuesParams,\n CmsEntryStorageOperationsListParams,\n CmsEntryStorageOperationsListResponse,\n CmsEntryUniqueValue,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IEntrySearchOperations {\n get<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetParams\n ): Promise<CmsEntry<T> | null>;\n list<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsListParams\n ): Promise<CmsEntryStorageOperationsListResponse<CmsEntry<T>>>;\n getUniqueFieldValues(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetUniqueFieldValuesParams\n ): Promise<CmsEntryUniqueValue[]>;\n}\n\nexport const EntrySearchOperations = createAbstraction<IEntrySearchOperations>(\n \"Cms/PgOs/EntrySearchOperations\"\n);\n\nexport namespace EntrySearchOperations {\n export type Interface = IEntrySearchOperations;\n}\n"],"names":["EntrySearchOperations","createAbstraction"],"mappings":";AA2BO,MAAMA,wBAAwBC,kBACjC"}
@@ -0,0 +1,4 @@
1
+ export declare const PgOsEntryStorageOpsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,55 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { EntrySearchOperations } from "./EntrySearchOperations.js";
3
+ import { PgOsCreateEntry } from "./PgOsCreateEntry.js";
4
+ import { PgOsCreateEntryRevisionFrom } from "./PgOsCreateEntryRevisionFrom.js";
5
+ import { PgOsUpdateEntry } from "./PgOsUpdateEntry.js";
6
+ import { PgOsPublishEntry } from "./PgOsPublishEntry.js";
7
+ import { PgOsUnpublishEntry } from "./PgOsUnpublishEntry.js";
8
+ import { PgOsMoveEntry } from "./PgOsMoveEntry.js";
9
+ import { PgOsMoveToBin } from "./PgOsMoveToBin.js";
10
+ import { PgOsRestoreFromBin } from "./PgOsRestoreFromBin.js";
11
+ import { PgOsDeleteEntry } from "./PgOsDeleteEntry.js";
12
+ import { PgOsDeleteEntryRevision } from "./PgOsDeleteEntryRevision.js";
13
+ import { PgOsDeleteMultipleEntries } from "./PgOsDeleteMultipleEntries.js";
14
+ import { PgOsGetEntry } from "./PgOsGetEntry.js";
15
+ import { PgOsListEntries } from "./PgOsListEntries.js";
16
+ import { PgOsGetUniqueFieldValues } from "./PgOsGetUniqueFieldValues.js";
17
+ import { SqlGetRevisions } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetRevisions.js";
18
+ import { SqlGetRevisionById } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetRevisionById.js";
19
+ import { SqlGetEntriesByIds } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetEntriesByIds.js";
20
+ import { SqlGetLatestEntriesByIds } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetLatestEntriesByIds.js";
21
+ import { SqlGetPublishedEntriesByIds } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetPublishedEntriesByIds.js";
22
+ import { SqlGetLatestRevisionByEntryId } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetLatestRevisionByEntryId.js";
23
+ import { SqlGetPublishedRevisionByEntryId } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetPublishedRevisionByEntryId.js";
24
+ import { SqlGetPreviousRevision } from "@webiny/api-headless-cms-sql/operations/entry/SqlGetPreviousRevision.js";
25
+ const PgOsEntryStorageOpsFeature = createFeature({
26
+ name: "cms.pgOs.entryStorageOps",
27
+ register: (container)=>{
28
+ container.registerDecorator(PgOsCreateEntry);
29
+ container.registerDecorator(PgOsCreateEntryRevisionFrom);
30
+ container.registerDecorator(PgOsUpdateEntry);
31
+ container.registerDecorator(PgOsPublishEntry);
32
+ container.registerDecorator(PgOsUnpublishEntry);
33
+ container.registerDecorator(PgOsMoveEntry);
34
+ container.registerDecorator(PgOsMoveToBin);
35
+ container.registerDecorator(PgOsRestoreFromBin);
36
+ container.registerDecorator(PgOsDeleteEntry);
37
+ container.registerDecorator(PgOsDeleteEntryRevision);
38
+ container.registerDecorator(PgOsDeleteMultipleEntries);
39
+ container.register(EntrySearchOperations);
40
+ container.register(PgOsGetEntry);
41
+ container.register(PgOsListEntries);
42
+ container.register(PgOsGetUniqueFieldValues);
43
+ container.register(SqlGetRevisions);
44
+ container.register(SqlGetRevisionById);
45
+ container.register(SqlGetEntriesByIds);
46
+ container.register(SqlGetLatestEntriesByIds);
47
+ container.register(SqlGetPublishedEntriesByIds);
48
+ container.register(SqlGetLatestRevisionByEntryId);
49
+ container.register(SqlGetPublishedRevisionByEntryId);
50
+ container.register(SqlGetPreviousRevision);
51
+ }
52
+ });
53
+ export { PgOsEntryStorageOpsFeature };
54
+
55
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/feature.js","sources":["../../../src/operations/entry/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { EntrySearchOperations } from \"./EntrySearchOperations.js\";\n\nimport { PgOsCreateEntry } from \"./PgOsCreateEntry.js\";\nimport { PgOsCreateEntryRevisionFrom } from \"./PgOsCreateEntryRevisionFrom.js\";\nimport { PgOsUpdateEntry } from \"./PgOsUpdateEntry.js\";\nimport { PgOsPublishEntry } from \"./PgOsPublishEntry.js\";\nimport { PgOsUnpublishEntry } from \"./PgOsUnpublishEntry.js\";\nimport { PgOsMoveEntry } from \"./PgOsMoveEntry.js\";\nimport { PgOsMoveToBin } from \"./PgOsMoveToBin.js\";\nimport { PgOsRestoreFromBin } from \"./PgOsRestoreFromBin.js\";\nimport { PgOsDeleteEntry } from \"./PgOsDeleteEntry.js\";\nimport { PgOsDeleteEntryRevision } from \"./PgOsDeleteEntryRevision.js\";\nimport { PgOsDeleteMultipleEntries } from \"./PgOsDeleteMultipleEntries.js\";\n\nimport { PgOsGetEntry } from \"./PgOsGetEntry.js\";\nimport { PgOsListEntries } from \"./PgOsListEntries.js\";\nimport { PgOsGetUniqueFieldValues } from \"./PgOsGetUniqueFieldValues.js\";\n\nimport { SqlGetRevisions } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetRevisions.js\";\nimport { SqlGetRevisionById } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetRevisionById.js\";\nimport { SqlGetEntriesByIds } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetEntriesByIds.js\";\nimport { SqlGetLatestEntriesByIds } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetLatestEntriesByIds.js\";\nimport { SqlGetPublishedEntriesByIds } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetPublishedEntriesByIds.js\";\nimport { SqlGetLatestRevisionByEntryId } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetLatestRevisionByEntryId.js\";\nimport { SqlGetPublishedRevisionByEntryId } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetPublishedRevisionByEntryId.js\";\nimport { SqlGetPreviousRevision } from \"@webiny/api-headless-cms-sql/operations/entry/SqlGetPreviousRevision.js\";\n\nexport const PgOsEntryStorageOpsFeature = createFeature({\n name: \"cms.pgOs.entryStorageOps\",\n register: container => {\n // Write ops (11) — decorators wrapping SQL per-method implementations with OpenSearch sync\n container.registerDecorator(PgOsCreateEntry);\n container.registerDecorator(PgOsCreateEntryRevisionFrom);\n container.registerDecorator(PgOsUpdateEntry);\n container.registerDecorator(PgOsPublishEntry);\n container.registerDecorator(PgOsUnpublishEntry);\n container.registerDecorator(PgOsMoveEntry);\n container.registerDecorator(PgOsMoveToBin);\n container.registerDecorator(PgOsRestoreFromBin);\n container.registerDecorator(PgOsDeleteEntry);\n container.registerDecorator(PgOsDeleteEntryRevision);\n container.registerDecorator(PgOsDeleteMultipleEntries);\n\n // EntrySearchOperations — OpenSearch-based search implementation\n container.register(EntrySearchOperations);\n\n // Search ops (3) — PG-OS specific (OpenSearch)\n container.register(PgOsGetEntry);\n container.register(PgOsListEntries);\n container.register(PgOsGetUniqueFieldValues);\n\n // SQL ops (8) — reuse SQL's per-method DI classes directly\n container.register(SqlGetRevisions);\n container.register(SqlGetRevisionById);\n container.register(SqlGetEntriesByIds);\n container.register(SqlGetLatestEntriesByIds);\n container.register(SqlGetPublishedEntriesByIds);\n container.register(SqlGetLatestRevisionByEntryId);\n container.register(SqlGetPublishedRevisionByEntryId);\n container.register(SqlGetPreviousRevision);\n }\n});\n"],"names":["PgOsEntryStorageOpsFeature","createFeature","container","PgOsCreateEntry","PgOsCreateEntryRevisionFrom","PgOsUpdateEntry","PgOsPublishEntry","PgOsUnpublishEntry","PgOsMoveEntry","PgOsMoveToBin","PgOsRestoreFromBin","PgOsDeleteEntry","PgOsDeleteEntryRevision","PgOsDeleteMultipleEntries","EntrySearchOperations","PgOsGetEntry","PgOsListEntries","PgOsGetUniqueFieldValues","SqlGetRevisions","SqlGetRevisionById","SqlGetEntriesByIds","SqlGetLatestEntriesByIds","SqlGetPublishedEntriesByIds","SqlGetLatestRevisionByEntryId","SqlGetPublishedRevisionByEntryId","SqlGetPreviousRevision"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAAUC,CAAAA;QAENA,UAAU,iBAAiB,CAACC;QAC5BD,UAAU,iBAAiB,CAACE;QAC5BF,UAAU,iBAAiB,CAACG;QAC5BH,UAAU,iBAAiB,CAACI;QAC5BJ,UAAU,iBAAiB,CAACK;QAC5BL,UAAU,iBAAiB,CAACM;QAC5BN,UAAU,iBAAiB,CAACO;QAC5BP,UAAU,iBAAiB,CAACQ;QAC5BR,UAAU,iBAAiB,CAACS;QAC5BT,UAAU,iBAAiB,CAACU;QAC5BV,UAAU,iBAAiB,CAACW;QAG5BX,UAAU,QAAQ,CAACY;QAGnBZ,UAAU,QAAQ,CAACa;QACnBb,UAAU,QAAQ,CAACc;QACnBd,UAAU,QAAQ,CAACe;QAGnBf,UAAU,QAAQ,CAACgB;QACnBhB,UAAU,QAAQ,CAACiB;QACnBjB,UAAU,QAAQ,CAACkB;QACnBlB,UAAU,QAAQ,CAACmB;QACnBnB,UAAU,QAAQ,CAACoB;QACnBpB,UAAU,QAAQ,CAACqB;QACnBrB,UAAU,QAAQ,CAACsB;QACnBtB,UAAU,QAAQ,CAACuB;IACvB;AACJ"}
@@ -0,0 +1,3 @@
1
+ import type { CmsEntry, CmsEntryValues, CmsModel, CmsEntryStorageOperationsGetParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { SearchOperationDeps } from "./types.js";
3
+ export declare const createGetOperation: (deps: SearchOperationDeps) => <T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, getParams: CmsEntryStorageOperationsGetParams) => Promise<CmsEntry<T> | null>;
@@ -0,0 +1,14 @@
1
+ import { createListOperation } from "./list.js";
2
+ const createGetOperation = (deps)=>{
3
+ const list = createListOperation(deps);
4
+ return async (initialModel, getParams)=>{
5
+ const { items } = await list(initialModel, {
6
+ ...getParams,
7
+ limit: 1
8
+ });
9
+ return items.shift() || null;
10
+ };
11
+ };
12
+ export { createGetOperation };
13
+
14
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/search/get.js","sources":["../../../../src/operations/entry/search/get.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsEntryStorageOperationsGetParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { SearchOperationDeps } from \"./types.js\";\nimport { createListOperation } from \"./list.js\";\n\nexport const createGetOperation = (deps: SearchOperationDeps) => {\n const list = createListOperation(deps);\n\n return async <T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n getParams: CmsEntryStorageOperationsGetParams\n ): Promise<CmsEntry<T> | null> => {\n const { items } = await list<T>(initialModel, { ...getParams, limit: 1 });\n return items.shift() || null;\n };\n};\n"],"names":["createGetOperation","deps","list","createListOperation","initialModel","getParams","items"],"mappings":";AASO,MAAMA,qBAAqB,CAACC;IAC/B,MAAMC,OAAOC,oBAAoBF;IAEjC,OAAO,OACHG,cACAC;QAEA,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMJ,KAAQE,cAAc;YAAE,GAAGC,SAAS;YAAE,OAAO;QAAE;QACvE,OAAOC,MAAM,KAAK,MAAM;IAC5B;AACJ"}
@@ -0,0 +1,3 @@
1
+ import type { SearchOperationDeps } from "./types.js";
2
+ import type { GetUniqueFieldValuesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js";
3
+ export declare const createGetUniqueFieldValuesOperation: (deps: SearchOperationDeps) => GetUniqueFieldValuesStorageOperation.Interface["execute"];
@@ -0,0 +1,56 @@
1
+ import _webiny_error from "@webiny/error";
2
+ import { shouldIgnoreEsResponseError } from "@webiny/api-headless-cms-utils-os/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js";
3
+ import { createConfigurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
4
+ const createGetUniqueFieldValuesOperation = (deps)=>async (model, uniqueFieldValuesParams)=>{
5
+ const { where, fieldId } = uniqueFieldValuesParams;
6
+ const configurations = createConfigurations(deps.indexProvider);
7
+ const { index } = await configurations.es({
8
+ model
9
+ });
10
+ const field = model.fields.find((f)=>f.fieldId === fieldId);
11
+ if (!field) return [];
12
+ const initialBody = deps.bodyBuilder.build({
13
+ model,
14
+ params: {
15
+ limit: 1,
16
+ where
17
+ }
18
+ });
19
+ const body = {
20
+ ...initialBody,
21
+ size: 0,
22
+ aggregations: {
23
+ getUniqueFieldValues: {
24
+ terms: {
25
+ field: `values.${field.storageId}.keyword`,
26
+ size: 1000000
27
+ }
28
+ }
29
+ }
30
+ };
31
+ let response;
32
+ try {
33
+ response = await deps.elasticsearch.search({
34
+ index,
35
+ body
36
+ });
37
+ } catch (error) {
38
+ if (shouldIgnoreEsResponseError(error)) return [];
39
+ throw new _webiny_error(error.message, error.code || "OPENSEARCH_ERROR", {
40
+ error,
41
+ index,
42
+ model,
43
+ body
44
+ });
45
+ }
46
+ const aggregations = response.body.aggregations || {};
47
+ const agg = aggregations["getUniqueFieldValues"];
48
+ const buckets = agg && "buckets" in agg && Array.isArray(agg.buckets) ? agg.buckets : [];
49
+ return buckets.map((bucket)=>({
50
+ value: bucket.key,
51
+ count: bucket.doc_count
52
+ }));
53
+ };
54
+ export { createGetUniqueFieldValuesOperation };
55
+
56
+ //# sourceMappingURL=getUniqueFieldValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/search/getUniqueFieldValues.js","sources":["../../../../src/operations/entry/search/getUniqueFieldValues.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { OpenSearchSearchResponse } from \"@webiny/api-opensearch\";\nimport { shouldIgnoreEsResponseError } from \"@webiny/api-headless-cms-utils-os/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js\";\nimport { createConfigurations } from \"@webiny/api-headless-cms-utils-os/configurations.js\";\nimport type { SearchOperationDeps } from \"./types.js\";\nimport type { GetUniqueFieldValuesStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js\";\n\nexport const createGetUniqueFieldValuesOperation = (\n deps: SearchOperationDeps\n): GetUniqueFieldValuesStorageOperation.Interface[\"execute\"] => {\n return async (model, uniqueFieldValuesParams) => {\n const { where, fieldId } = uniqueFieldValuesParams;\n const configurations = createConfigurations(deps.indexProvider);\n const { index } = await configurations.es({ model });\n\n const field = model.fields.find(f => f.fieldId === fieldId);\n if (!field) {\n return [];\n }\n\n const initialBody = deps.bodyBuilder.build({\n model,\n params: { limit: 1, where }\n });\n\n const body = {\n ...initialBody,\n size: 0,\n aggregations: {\n getUniqueFieldValues: {\n terms: {\n field: `values.${field.storageId}.keyword`,\n size: 1000000\n }\n }\n }\n };\n\n let response: OpenSearchSearchResponse;\n try {\n response = await deps.elasticsearch.search({ index, body });\n } catch (error) {\n if (shouldIgnoreEsResponseError(error)) {\n return [];\n }\n throw new WebinyError(error.message, error.code || \"OPENSEARCH_ERROR\", {\n error,\n index,\n model,\n body\n });\n }\n\n const aggregations = response.body.aggregations || {};\n const agg = aggregations[\"getUniqueFieldValues\"];\n const buckets = agg && \"buckets\" in agg && Array.isArray(agg.buckets) ? agg.buckets : [];\n return buckets.map((bucket: { key: string; doc_count: number }) => ({\n value: bucket.key,\n count: bucket.doc_count\n }));\n };\n};\n"],"names":["createGetUniqueFieldValuesOperation","deps","model","uniqueFieldValuesParams","where","fieldId","configurations","createConfigurations","index","field","f","initialBody","body","response","error","shouldIgnoreEsResponseError","WebinyError","aggregations","agg","buckets","Array","bucket"],"mappings":";;;AAOO,MAAMA,sCAAsC,CAC/CC,OAEO,OAAOC,OAAOC;QACjB,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAE,GAAGF;QAC3B,MAAMG,iBAAiBC,qBAAqBN,KAAK,aAAa;QAC9D,MAAM,EAAEO,KAAK,EAAE,GAAG,MAAMF,eAAe,EAAE,CAAC;YAAEJ;QAAM;QAElD,MAAMO,QAAQP,MAAM,MAAM,CAAC,IAAI,CAACQ,CAAAA,IAAKA,EAAE,OAAO,KAAKL;QACnD,IAAI,CAACI,OACD,OAAO,EAAE;QAGb,MAAME,cAAcV,KAAK,WAAW,CAAC,KAAK,CAAC;YACvCC;YACA,QAAQ;gBAAE,OAAO;gBAAGE;YAAM;QAC9B;QAEA,MAAMQ,OAAO;YACT,GAAGD,WAAW;YACd,MAAM;YACN,cAAc;gBACV,sBAAsB;oBAClB,OAAO;wBACH,OAAO,CAAC,OAAO,EAAEF,MAAM,SAAS,CAAC,QAAQ,CAAC;wBAC1C,MAAM;oBACV;gBACJ;YACJ;QACJ;QAEA,IAAII;QACJ,IAAI;YACAA,WAAW,MAAMZ,KAAK,aAAa,CAAC,MAAM,CAAC;gBAAEO;gBAAOI;YAAK;QAC7D,EAAE,OAAOE,OAAO;YACZ,IAAIC,4BAA4BD,QAC5B,OAAO,EAAE;YAEb,MAAM,IAAIE,cAAYF,MAAM,OAAO,EAAEA,MAAM,IAAI,IAAI,oBAAoB;gBACnEA;gBACAN;gBACAN;gBACAU;YACJ;QACJ;QAEA,MAAMK,eAAeJ,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC;QACpD,MAAMK,MAAMD,YAAY,CAAC,uBAAuB;QAChD,MAAME,UAAUD,OAAO,aAAaA,OAAOE,MAAM,OAAO,CAACF,IAAI,OAAO,IAAIA,IAAI,OAAO,GAAG,EAAE;QACxF,OAAOC,QAAQ,GAAG,CAAC,CAACE,SAAgD;gBAChE,OAAOA,OAAO,GAAG;gBACjB,OAAOA,OAAO,SAAS;YAC3B;IACJ"}
@@ -0,0 +1,4 @@
1
+ import type { CmsEntryValues, CmsModel, CmsEntryStorageOperationsListParams, CmsEntryStorageOperationsListResponse, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { SearchOperationDeps } from "./types.js";
3
+ import "~/debuggerNamespaces.js";
4
+ export declare const createListOperation: (deps: SearchOperationDeps) => <T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, listParams: CmsEntryStorageOperationsListParams) => Promise<CmsEntryStorageOperationsListResponse<CmsEntry<T>>>;
@@ -0,0 +1,75 @@
1
+ import _webiny_error from "@webiny/error";
2
+ import { createLimit, decodeCursor, encodeCursor, getTotalCount } from "@webiny/api-opensearch";
3
+ import { shouldIgnoreEsResponseError } from "@webiny/api-headless-cms-utils-os/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js";
4
+ import { extractEntriesFromIndex } from "@webiny/api-headless-cms-utils-os/helpers/entryIndexHelpers.js";
5
+ import { createConfigurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
6
+ import "../../../debuggerNamespaces.js";
7
+ const createListOperation = (deps)=>async (initialModel, listParams)=>{
8
+ const model = deps.getStorageOperationsModel(initialModel);
9
+ const limit = createLimit(listParams.limit);
10
+ const configurations = createConfigurations(deps.indexProvider);
11
+ const { index } = await configurations.es({
12
+ model
13
+ });
14
+ const body = deps.bodyBuilder.build({
15
+ model,
16
+ params: {
17
+ ...listParams,
18
+ limit,
19
+ after: decodeCursor(listParams.after)
20
+ }
21
+ });
22
+ let response;
23
+ const startedAt = Date.now();
24
+ try {
25
+ response = await deps.elasticsearch.search({
26
+ index,
27
+ body
28
+ });
29
+ deps.debuggerService.log("cms.os.list", ()=>({
30
+ index,
31
+ query: body,
32
+ body: response.body,
33
+ statusCode: response.statusCode,
34
+ tookMs: Date.now() - startedAt
35
+ }));
36
+ } catch (error) {
37
+ deps.debuggerService.log("cms.os.list", ()=>({
38
+ index,
39
+ query: body,
40
+ error,
41
+ tookMs: Date.now() - startedAt
42
+ }));
43
+ if (shouldIgnoreEsResponseError(error)) return {
44
+ hasMoreItems: false,
45
+ totalCount: 0,
46
+ cursor: null,
47
+ items: []
48
+ };
49
+ throw new _webiny_error(error.message, error.code || "OPENSEARCH_ERROR", {
50
+ error,
51
+ index,
52
+ body,
53
+ model
54
+ });
55
+ }
56
+ const { hits, total } = response.body.hits;
57
+ const items = extractEntriesFromIndex({
58
+ fieldRegistry: deps.fieldRegistry,
59
+ fieldIndexRegistry: deps.fieldIndexRegistry,
60
+ model,
61
+ entries: hits.map((item)=>item._source)
62
+ });
63
+ const hasMoreItems = items.length > limit;
64
+ if (hasMoreItems) items.pop();
65
+ const cursor = items.length > 0 ? encodeCursor(hits[items.length - 1].sort) || null : null;
66
+ return {
67
+ hasMoreItems,
68
+ totalCount: getTotalCount(total),
69
+ cursor,
70
+ items
71
+ };
72
+ };
73
+ export { createListOperation };
74
+
75
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/search/list.js","sources":["../../../../src/operations/entry/search/list.ts"],"sourcesContent":["import type {\n CmsEntryValues,\n CmsModel,\n CmsEntryStorageOperationsListParams,\n CmsEntryStorageOperationsListResponse,\n CmsEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport {\n createLimit,\n decodeCursor,\n encodeCursor,\n getTotalCount,\n type OpenSearchSearchResponse\n} from \"@webiny/api-opensearch\";\nimport { shouldIgnoreEsResponseError } from \"@webiny/api-headless-cms-utils-os/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js\";\nimport { extractEntriesFromIndex } from \"@webiny/api-headless-cms-utils-os/helpers/entryIndexHelpers.js\";\nimport { createConfigurations } from \"@webiny/api-headless-cms-utils-os/configurations.js\";\nimport type { CmsIndexEntry } from \"@webiny/api-headless-cms-utils-os/types.js\";\nimport type { SearchOperationDeps } from \"./types.js\";\nimport \"~/debuggerNamespaces.js\";\n\nexport const createListOperation = (deps: SearchOperationDeps) => {\n return async <T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n listParams: CmsEntryStorageOperationsListParams\n ): Promise<CmsEntryStorageOperationsListResponse<CmsEntry<T>>> => {\n const model = deps.getStorageOperationsModel<T>(initialModel);\n const limit = createLimit(listParams.limit);\n\n const configurations = createConfigurations(deps.indexProvider);\n const { index } = await configurations.es({ model });\n\n const body = deps.bodyBuilder.build({\n model,\n params: {\n ...listParams,\n limit,\n after: decodeCursor(listParams.after)\n }\n });\n\n let response: OpenSearchSearchResponse;\n const startedAt = Date.now();\n try {\n response = await deps.elasticsearch.search({ index, body });\n\n deps.debuggerService.log(\"cms.os.list\", () => ({\n index,\n query: body,\n /**\n * Only the response body and status. The full client response also carries\n * `meta.connection.url` (the cluster endpoint) plus request headers.\n */\n body: response.body,\n statusCode: response.statusCode,\n tookMs: Date.now() - startedAt\n }));\n } catch (error) {\n /**\n * Logged before the `index_not_found` check below, which swallows the error and returns\n * an empty result. That silent exit is exactly what is hard to see from the outside.\n */\n deps.debuggerService.log(\"cms.os.list\", () => ({\n index,\n query: body,\n error,\n tookMs: Date.now() - startedAt\n }));\n\n if (shouldIgnoreEsResponseError(error)) {\n return { hasMoreItems: false, totalCount: 0, cursor: null, items: [] };\n }\n throw new WebinyError(error.message, error.code || \"OPENSEARCH_ERROR\", {\n error,\n index,\n body,\n model\n });\n }\n\n const { hits, total } = response.body.hits;\n\n const items = extractEntriesFromIndex<T>({\n fieldRegistry: deps.fieldRegistry,\n fieldIndexRegistry: deps.fieldIndexRegistry,\n model,\n entries: hits.map(item => item._source as CmsIndexEntry<T>)\n });\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n items.pop();\n }\n\n const cursor = items.length > 0 ? encodeCursor(hits[items.length - 1].sort) || null : null;\n\n return {\n hasMoreItems,\n totalCount: getTotalCount(total),\n cursor,\n items\n };\n };\n};\n"],"names":["createListOperation","deps","initialModel","listParams","model","limit","createLimit","configurations","createConfigurations","index","body","decodeCursor","response","startedAt","Date","error","shouldIgnoreEsResponseError","WebinyError","hits","total","items","extractEntriesFromIndex","item","hasMoreItems","cursor","encodeCursor","getTotalCount"],"mappings":";;;;;;AAsBO,MAAMA,sBAAsB,CAACC,OACzB,OACHC,cACAC;QAEA,MAAMC,QAAQH,KAAK,yBAAyB,CAAIC;QAChD,MAAMG,QAAQC,YAAYH,WAAW,KAAK;QAE1C,MAAMI,iBAAiBC,qBAAqBP,KAAK,aAAa;QAC9D,MAAM,EAAEQ,KAAK,EAAE,GAAG,MAAMF,eAAe,EAAE,CAAC;YAAEH;QAAM;QAElD,MAAMM,OAAOT,KAAK,WAAW,CAAC,KAAK,CAAC;YAChCG;YACA,QAAQ;gBACJ,GAAGD,UAAU;gBACbE;gBACA,OAAOM,aAAaR,WAAW,KAAK;YACxC;QACJ;QAEA,IAAIS;QACJ,MAAMC,YAAYC,KAAK,GAAG;QAC1B,IAAI;YACAF,WAAW,MAAMX,KAAK,aAAa,CAAC,MAAM,CAAC;gBAAEQ;gBAAOC;YAAK;YAEzDT,KAAK,eAAe,CAAC,GAAG,CAAC,eAAe,IAAO;oBAC3CQ;oBACA,OAAOC;oBAKP,MAAME,SAAS,IAAI;oBACnB,YAAYA,SAAS,UAAU;oBAC/B,QAAQE,KAAK,GAAG,KAAKD;gBACzB;QACJ,EAAE,OAAOE,OAAO;YAKZd,KAAK,eAAe,CAAC,GAAG,CAAC,eAAe,IAAO;oBAC3CQ;oBACA,OAAOC;oBACPK;oBACA,QAAQD,KAAK,GAAG,KAAKD;gBACzB;YAEA,IAAIG,4BAA4BD,QAC5B,OAAO;gBAAE,cAAc;gBAAO,YAAY;gBAAG,QAAQ;gBAAM,OAAO,EAAE;YAAC;YAEzE,MAAM,IAAIE,cAAYF,MAAM,OAAO,EAAEA,MAAM,IAAI,IAAI,oBAAoB;gBACnEA;gBACAN;gBACAC;gBACAN;YACJ;QACJ;QAEA,MAAM,EAAEc,IAAI,EAAEC,KAAK,EAAE,GAAGP,SAAS,IAAI,CAAC,IAAI;QAE1C,MAAMQ,QAAQC,wBAA2B;YACrC,eAAepB,KAAK,aAAa;YACjC,oBAAoBA,KAAK,kBAAkB;YAC3CG;YACA,SAASc,KAAK,GAAG,CAACI,CAAAA,OAAQA,KAAK,OAAO;QAC1C;QAEA,MAAMC,eAAeH,MAAM,MAAM,GAAGf;QACpC,IAAIkB,cACAH,MAAM,GAAG;QAGb,MAAMI,SAASJ,MAAM,MAAM,GAAG,IAAIK,aAAaP,IAAI,CAACE,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,KAAK,OAAO;QAEtF,OAAO;YACHG;YACA,YAAYG,cAAcP;YAC1BK;YACAJ;QACJ;IACJ"}
@@ -0,0 +1,23 @@
1
+ import type { CmsEntryValues, CmsModel, StorageOperationsCmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { Client as OpenSearchClient } from "@webiny/api-opensearch";
3
+ import type { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
4
+ import type { CmsEntryOpenSearchFieldIndexRegistry } from "@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js";
5
+ import type { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-utils-os/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
6
+ import type { Debugger } from "@webiny/api-core/features/debugger/index.js";
7
+ export type GetStorageOperationsModel = <T extends CmsEntryValues = CmsEntryValues>(model: CmsModel) => StorageOperationsCmsModel<T>;
8
+ export interface OpenSearchBodyBuilderBuildParams {
9
+ model: CmsModel;
10
+ params: Record<string, any>;
11
+ }
12
+ export interface OpenSearchBodyBuilder {
13
+ build(params: OpenSearchBodyBuilderBuildParams): Record<string, any>;
14
+ }
15
+ export interface SearchOperationDeps {
16
+ elasticsearch: OpenSearchClient;
17
+ bodyBuilder: OpenSearchBodyBuilder;
18
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
19
+ fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;
20
+ getStorageOperationsModel: GetStorageOperationsModel;
21
+ indexProvider: CmsModelOpenSearchIndexProvider.Interface;
22
+ debuggerService: Debugger.Interface;
23
+ }
File without changes