@webiny/api-headless-cms-pg-os 0.0.0-unstable.0d717d18dd

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 (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/features/HeadlessCmsPgOsFeature.d.ts +9 -0
  4. package/features/HeadlessCmsPgOsFeature.js +40 -0
  5. package/features/HeadlessCmsPgOsFeature.js.map +1 -0
  6. package/features/SyncWriter/BuildSyncRecord.d.ts +22 -0
  7. package/features/SyncWriter/BuildSyncRecord.js +56 -0
  8. package/features/SyncWriter/BuildSyncRecord.js.map +1 -0
  9. package/features/SyncWriter/RemoveEntry.d.ts +11 -0
  10. package/features/SyncWriter/RemoveEntry.js +23 -0
  11. package/features/SyncWriter/RemoveEntry.js.map +1 -0
  12. package/features/SyncWriter/RemoveLatest.d.ts +11 -0
  13. package/features/SyncWriter/RemoveLatest.js +19 -0
  14. package/features/SyncWriter/RemoveLatest.js.map +1 -0
  15. package/features/SyncWriter/RemovePublished.d.ts +11 -0
  16. package/features/SyncWriter/RemovePublished.js +19 -0
  17. package/features/SyncWriter/RemovePublished.js.map +1 -0
  18. package/features/SyncWriter/SyncHelpers.d.ts +26 -0
  19. package/features/SyncWriter/SyncHelpers.js +70 -0
  20. package/features/SyncWriter/SyncHelpers.js.map +1 -0
  21. package/features/SyncWriter/SyncRowQuery.d.ts +22 -0
  22. package/features/SyncWriter/SyncRowQuery.js +22 -0
  23. package/features/SyncWriter/SyncRowQuery.js.map +1 -0
  24. package/features/SyncWriter/WriteEntry.d.ts +14 -0
  25. package/features/SyncWriter/WriteEntry.js +32 -0
  26. package/features/SyncWriter/WriteEntry.js.map +1 -0
  27. package/features/SyncWriter/WriteLatest.d.ts +14 -0
  28. package/features/SyncWriter/WriteLatest.js +26 -0
  29. package/features/SyncWriter/WriteLatest.js.map +1 -0
  30. package/features/SyncWriter/WritePublished.d.ts +14 -0
  31. package/features/SyncWriter/WritePublished.js +26 -0
  32. package/features/SyncWriter/WritePublished.js.map +1 -0
  33. package/features/SyncWriter/abstractions/BuildSyncRecord.d.ts +18 -0
  34. package/features/SyncWriter/abstractions/BuildSyncRecord.js +5 -0
  35. package/features/SyncWriter/abstractions/BuildSyncRecord.js.map +1 -0
  36. package/features/SyncWriter/abstractions/RemoveEntry.d.ts +13 -0
  37. package/features/SyncWriter/abstractions/RemoveEntry.js +5 -0
  38. package/features/SyncWriter/abstractions/RemoveEntry.js.map +1 -0
  39. package/features/SyncWriter/abstractions/RemoveLatest.d.ts +13 -0
  40. package/features/SyncWriter/abstractions/RemoveLatest.js +5 -0
  41. package/features/SyncWriter/abstractions/RemoveLatest.js.map +1 -0
  42. package/features/SyncWriter/abstractions/RemovePublished.d.ts +13 -0
  43. package/features/SyncWriter/abstractions/RemovePublished.js +5 -0
  44. package/features/SyncWriter/abstractions/RemovePublished.js.map +1 -0
  45. package/features/SyncWriter/abstractions/SyncHelpers.d.ts +10 -0
  46. package/features/SyncWriter/abstractions/SyncHelpers.js +5 -0
  47. package/features/SyncWriter/abstractions/SyncHelpers.js.map +1 -0
  48. package/features/SyncWriter/abstractions/SyncRowQuery.d.ts +9 -0
  49. package/features/SyncWriter/abstractions/SyncRowQuery.js +5 -0
  50. package/features/SyncWriter/abstractions/SyncRowQuery.js.map +1 -0
  51. package/features/SyncWriter/abstractions/WriteEntry.d.ts +14 -0
  52. package/features/SyncWriter/abstractions/WriteEntry.js +5 -0
  53. package/features/SyncWriter/abstractions/WriteEntry.js.map +1 -0
  54. package/features/SyncWriter/abstractions/WriteLatest.d.ts +14 -0
  55. package/features/SyncWriter/abstractions/WriteLatest.js +5 -0
  56. package/features/SyncWriter/abstractions/WriteLatest.js.map +1 -0
  57. package/features/SyncWriter/abstractions/WritePublished.d.ts +14 -0
  58. package/features/SyncWriter/abstractions/WritePublished.js +5 -0
  59. package/features/SyncWriter/abstractions/WritePublished.js.map +1 -0
  60. package/features/SyncWriter/feature.d.ts +4 -0
  61. package/features/SyncWriter/feature.js +27 -0
  62. package/features/SyncWriter/feature.js.map +1 -0
  63. package/features/SyncWriter/index.d.ts +9 -0
  64. package/features/SyncWriter/index.js +9 -0
  65. package/features/syncEventHandler/SyncEventHandler.d.ts +15 -0
  66. package/features/syncEventHandler/SyncEventHandler.js +49 -0
  67. package/features/syncEventHandler/SyncEventHandler.js.map +1 -0
  68. package/features/syncEventHandler/abstractions.d.ts +12 -0
  69. package/features/syncEventHandler/abstractions.js +5 -0
  70. package/features/syncEventHandler/abstractions.js.map +1 -0
  71. package/features/syncEventHandler/feature.d.ts +4 -0
  72. package/features/syncEventHandler/feature.js +11 -0
  73. package/features/syncEventHandler/feature.js.map +1 -0
  74. package/features/syncTableManager/SyncTableManager.d.ts +19 -0
  75. package/features/syncTableManager/SyncTableManager.js +61 -0
  76. package/features/syncTableManager/SyncTableManager.js.map +1 -0
  77. package/features/syncTableManager/abstractions.d.ts +9 -0
  78. package/features/syncTableManager/abstractions.js +5 -0
  79. package/features/syncTableManager/abstractions.js.map +1 -0
  80. package/features/syncTableManager/feature.d.ts +4 -0
  81. package/features/syncTableManager/feature.js +11 -0
  82. package/features/syncTableManager/feature.js.map +1 -0
  83. package/index.d.ts +1 -0
  84. package/index.js +1 -0
  85. package/operations/entry/EntrySearchOperations.d.ts +15 -0
  86. package/operations/entry/EntrySearchOperations.js +35 -0
  87. package/operations/entry/EntrySearchOperations.js.map +1 -0
  88. package/operations/entry/PgOsCreateEntry.d.ts +15 -0
  89. package/operations/entry/PgOsCreateEntry.js +27 -0
  90. package/operations/entry/PgOsCreateEntry.js.map +1 -0
  91. package/operations/entry/PgOsCreateEntryRevisionFrom.d.ts +15 -0
  92. package/operations/entry/PgOsCreateEntryRevisionFrom.js +27 -0
  93. package/operations/entry/PgOsCreateEntryRevisionFrom.js.map +1 -0
  94. package/operations/entry/PgOsDeleteEntry.d.ts +17 -0
  95. package/operations/entry/PgOsDeleteEntry.js +33 -0
  96. package/operations/entry/PgOsDeleteEntry.js.map +1 -0
  97. package/operations/entry/PgOsDeleteEntryRevision.d.ts +21 -0
  98. package/operations/entry/PgOsDeleteEntryRevision.js +48 -0
  99. package/operations/entry/PgOsDeleteEntryRevision.js.map +1 -0
  100. package/operations/entry/PgOsDeleteMultipleEntries.d.ts +17 -0
  101. package/operations/entry/PgOsDeleteMultipleEntries.js +36 -0
  102. package/operations/entry/PgOsDeleteMultipleEntries.js.map +1 -0
  103. package/operations/entry/PgOsGetEntry.d.ts +12 -0
  104. package/operations/entry/PgOsGetEntry.js +19 -0
  105. package/operations/entry/PgOsGetEntry.js.map +1 -0
  106. package/operations/entry/PgOsGetUniqueFieldValues.d.ts +12 -0
  107. package/operations/entry/PgOsGetUniqueFieldValues.js +19 -0
  108. package/operations/entry/PgOsGetUniqueFieldValues.js.map +1 -0
  109. package/operations/entry/PgOsListEntries.d.ts +12 -0
  110. package/operations/entry/PgOsListEntries.js +19 -0
  111. package/operations/entry/PgOsListEntries.js.map +1 -0
  112. package/operations/entry/PgOsMoveEntry.d.ts +15 -0
  113. package/operations/entry/PgOsMoveEntry.js +26 -0
  114. package/operations/entry/PgOsMoveEntry.js.map +1 -0
  115. package/operations/entry/PgOsMoveToBin.d.ts +15 -0
  116. package/operations/entry/PgOsMoveToBin.js +26 -0
  117. package/operations/entry/PgOsMoveToBin.js.map +1 -0
  118. package/operations/entry/PgOsPublishEntry.d.ts +17 -0
  119. package/operations/entry/PgOsPublishEntry.js +34 -0
  120. package/operations/entry/PgOsPublishEntry.js.map +1 -0
  121. package/operations/entry/PgOsRestoreFromBin.d.ts +15 -0
  122. package/operations/entry/PgOsRestoreFromBin.js +27 -0
  123. package/operations/entry/PgOsRestoreFromBin.js.map +1 -0
  124. package/operations/entry/PgOsUnpublishEntry.d.ts +19 -0
  125. package/operations/entry/PgOsUnpublishEntry.js +41 -0
  126. package/operations/entry/PgOsUnpublishEntry.js.map +1 -0
  127. package/operations/entry/PgOsUpdateEntry.d.ts +15 -0
  128. package/operations/entry/PgOsUpdateEntry.js +27 -0
  129. package/operations/entry/PgOsUpdateEntry.js.map +1 -0
  130. package/operations/entry/abstractions/EntrySearchOperations.d.ts +10 -0
  131. package/operations/entry/abstractions/EntrySearchOperations.js +5 -0
  132. package/operations/entry/abstractions/EntrySearchOperations.js.map +1 -0
  133. package/operations/entry/feature.d.ts +4 -0
  134. package/operations/entry/feature.js +55 -0
  135. package/operations/entry/feature.js.map +1 -0
  136. package/operations/entry/search/get.d.ts +3 -0
  137. package/operations/entry/search/get.js +14 -0
  138. package/operations/entry/search/get.js.map +1 -0
  139. package/operations/entry/search/getUniqueFieldValues.d.ts +3 -0
  140. package/operations/entry/search/getUniqueFieldValues.js +55 -0
  141. package/operations/entry/search/getUniqueFieldValues.js.map +1 -0
  142. package/operations/entry/search/list.d.ts +3 -0
  143. package/operations/entry/search/list.js +59 -0
  144. package/operations/entry/search/list.js.map +1 -0
  145. package/operations/entry/search/types.d.ts +19 -0
  146. package/operations/entry/search/types.js +0 -0
  147. package/package.json +73 -0
  148. package/testing/createReindexEvents.d.ts +3 -0
  149. package/testing/createReindexEvents.js +14 -0
  150. package/testing/createReindexEvents.js.map +1 -0
  151. package/testing/index.d.ts +2 -0
  152. package/testing/index.js +2 -0
  153. package/testing/simulatePgStream.d.ts +19 -0
  154. package/testing/simulatePgStream.js +51 -0
  155. package/testing/simulatePgStream.js.map +1 -0
  156. package/types.d.ts +17 -0
  157. package/types.js +0 -0
@@ -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,55 @@
1
+ import _webiny_error from "@webiny/error";
2
+ import { shouldIgnoreEsResponseError } from "@webiny/api-headless-cms-utils-os/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js";
3
+ import { configurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
4
+ const createGetUniqueFieldValuesOperation = (deps)=>async (model, uniqueFieldValuesParams)=>{
5
+ const { where, fieldId } = uniqueFieldValuesParams;
6
+ const { index } = configurations.es({
7
+ model
8
+ });
9
+ const field = model.fields.find((f)=>f.fieldId === fieldId);
10
+ if (!field) return [];
11
+ const initialBody = deps.bodyBuilder.build({
12
+ model,
13
+ params: {
14
+ limit: 1,
15
+ where
16
+ }
17
+ });
18
+ const body = {
19
+ ...initialBody,
20
+ size: 0,
21
+ aggregations: {
22
+ getUniqueFieldValues: {
23
+ terms: {
24
+ field: `values.${field.storageId}.keyword`,
25
+ size: 1000000
26
+ }
27
+ }
28
+ }
29
+ };
30
+ let response;
31
+ try {
32
+ response = await deps.elasticsearch.search({
33
+ index,
34
+ body
35
+ });
36
+ } catch (error) {
37
+ if (shouldIgnoreEsResponseError(error)) return [];
38
+ throw new _webiny_error(error.message, error.code || "OPENSEARCH_ERROR", {
39
+ error,
40
+ index,
41
+ model,
42
+ body
43
+ });
44
+ }
45
+ const aggregations = response.body.aggregations || {};
46
+ const agg = aggregations["getUniqueFieldValues"];
47
+ const buckets = agg && "buckets" in agg && Array.isArray(agg.buckets) ? agg.buckets : [];
48
+ return buckets.map((bucket)=>({
49
+ value: bucket.key,
50
+ count: bucket.doc_count
51
+ }));
52
+ };
53
+ export { createGetUniqueFieldValuesOperation };
54
+
55
+ //# 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 { configurations } 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 { index } = 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","index","configurations","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,MAAM,EAAEG,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;YAAEL;QAAM;QAE5C,MAAMM,QAAQN,MAAM,MAAM,CAAC,IAAI,CAACO,CAAAA,IAAKA,EAAE,OAAO,KAAKJ;QACnD,IAAI,CAACG,OACD,OAAO,EAAE;QAGb,MAAME,cAAcT,KAAK,WAAW,CAAC,KAAK,CAAC;YACvCC;YACA,QAAQ;gBAAE,OAAO;gBAAGE;YAAM;QAC9B;QAEA,MAAMO,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,MAAMX,KAAK,aAAa,CAAC,MAAM,CAAC;gBAAEK;gBAAOK;YAAK;QAC7D,EAAE,OAAOE,OAAO;YACZ,IAAIC,4BAA4BD,QAC5B,OAAO,EAAE;YAEb,MAAM,IAAIE,cAAYF,MAAM,OAAO,EAAEA,MAAM,IAAI,IAAI,oBAAoB;gBACnEA;gBACAP;gBACAJ;gBACAS;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,3 @@
1
+ import type { CmsEntryValues, CmsModel, CmsEntryStorageOperationsListParams, CmsEntryStorageOperationsListResponse, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { SearchOperationDeps } from "./types.js";
3
+ export declare const createListOperation: (deps: SearchOperationDeps) => <T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, listParams: CmsEntryStorageOperationsListParams) => Promise<CmsEntryStorageOperationsListResponse<CmsEntry<T>>>;
@@ -0,0 +1,59 @@
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 { configurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
6
+ const createListOperation = (deps)=>async (initialModel, listParams)=>{
7
+ const model = deps.getStorageOperationsModel(initialModel);
8
+ const limit = createLimit(listParams.limit);
9
+ const { index } = configurations.es({
10
+ model
11
+ });
12
+ const body = deps.bodyBuilder.build({
13
+ model,
14
+ params: {
15
+ ...listParams,
16
+ limit,
17
+ after: decodeCursor(listParams.after)
18
+ }
19
+ });
20
+ let response;
21
+ try {
22
+ response = await deps.elasticsearch.search({
23
+ index,
24
+ body
25
+ });
26
+ } catch (error) {
27
+ if (shouldIgnoreEsResponseError(error)) return {
28
+ hasMoreItems: false,
29
+ totalCount: 0,
30
+ cursor: null,
31
+ items: []
32
+ };
33
+ throw new _webiny_error(error.message, error.code || "OPENSEARCH_ERROR", {
34
+ error,
35
+ index,
36
+ body,
37
+ model
38
+ });
39
+ }
40
+ const { hits, total } = response.body.hits;
41
+ const items = extractEntriesFromIndex({
42
+ fieldRegistry: deps.fieldRegistry,
43
+ fieldIndexRegistry: deps.fieldIndexRegistry,
44
+ model,
45
+ entries: hits.map((item)=>item._source)
46
+ });
47
+ const hasMoreItems = items.length > limit;
48
+ if (hasMoreItems) items.pop();
49
+ const cursor = items.length > 0 ? encodeCursor(hits[items.length - 1].sort) || null : null;
50
+ return {
51
+ hasMoreItems,
52
+ totalCount: getTotalCount(total),
53
+ cursor,
54
+ items
55
+ };
56
+ };
57
+ export { createListOperation };
58
+
59
+ //# 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 { configurations } 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\";\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 { index } = 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 try {\n response = await deps.elasticsearch.search({ index, body });\n } catch (error) {\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 // @ts-expect-error - `sort` is present on the hit, but narrowed away by `_source: false` typing.\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","index","configurations","body","decodeCursor","response","error","shouldIgnoreEsResponseError","WebinyError","hits","total","items","extractEntriesFromIndex","item","hasMoreItems","cursor","encodeCursor","getTotalCount"],"mappings":";;;;;AAqBO,MAAMA,sBAAsB,CAACC,OACzB,OACHC,cACAC;QAEA,MAAMC,QAAQH,KAAK,yBAAyB,CAAIC;QAChD,MAAMG,QAAQC,YAAYH,WAAW,KAAK;QAE1C,MAAM,EAAEI,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;YAAEJ;QAAM;QAE5C,MAAMK,OAAOR,KAAK,WAAW,CAAC,KAAK,CAAC;YAChCG;YACA,QAAQ;gBACJ,GAAGD,UAAU;gBACbE;gBACA,OAAOK,aAAaP,WAAW,KAAK;YACxC;QACJ;QAEA,IAAIQ;QACJ,IAAI;YACAA,WAAW,MAAMV,KAAK,aAAa,CAAC,MAAM,CAAC;gBAAEM;gBAAOE;YAAK;QAC7D,EAAE,OAAOG,OAAO;YACZ,IAAIC,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;gBACAL;gBACAE;gBACAL;YACJ;QACJ;QAEA,MAAM,EAAEW,IAAI,EAAEC,KAAK,EAAE,GAAGL,SAAS,IAAI,CAAC,IAAI;QAE1C,MAAMM,QAAQC,wBAA2B;YACrC,eAAejB,KAAK,aAAa;YACjC,oBAAoBA,KAAK,kBAAkB;YAC3CG;YACA,SAASW,KAAK,GAAG,CAACI,CAAAA,OAAQA,KAAK,OAAO;QAC1C;QAEA,MAAMC,eAAeH,MAAM,MAAM,GAAGZ;QACpC,IAAIe,cACAH,MAAM,GAAG;QAIb,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,19 @@
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
+ export type GetStorageOperationsModel = <T extends CmsEntryValues = CmsEntryValues>(model: CmsModel) => StorageOperationsCmsModel<T>;
6
+ export interface OpenSearchBodyBuilderBuildParams {
7
+ model: CmsModel;
8
+ params: Record<string, any>;
9
+ }
10
+ export interface OpenSearchBodyBuilder {
11
+ build(params: OpenSearchBodyBuilderBuildParams): Record<string, any>;
12
+ }
13
+ export interface SearchOperationDeps {
14
+ elasticsearch: OpenSearchClient;
15
+ bodyBuilder: OpenSearchBodyBuilder;
16
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
17
+ fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;
18
+ getStorageOperationsModel: GetStorageOperationsModel;
19
+ }
File without changes
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@webiny/api-headless-cms-pg-os",
3
+ "version": "0.0.0-unstable.0d717d18dd",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
9
+ "keywords": [
10
+ "@webiny/api-headless-cms",
11
+ "storage-operations",
12
+ "postgresql",
13
+ "opensearch",
14
+ "pg-os",
15
+ "cms:pg-os"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/webiny/webiny-js.git",
20
+ "directory": "packages/api-headless-cms-pg-os"
21
+ },
22
+ "description": "PostgreSQL + OpenSearch storage operations for Headless CMS API.",
23
+ "license": "MIT",
24
+ "author": "Webiny Ltd.",
25
+ "dependencies": {
26
+ "@webiny/api": "0.0.0-unstable.0d717d18dd",
27
+ "@webiny/api-core-sql": "0.0.0-unstable.0d717d18dd",
28
+ "@webiny/api-headless-cms": "0.0.0-unstable.0d717d18dd",
29
+ "@webiny/api-headless-cms-sql": "0.0.0-unstable.0d717d18dd",
30
+ "@webiny/api-headless-cms-storage": "0.0.0-unstable.0d717d18dd",
31
+ "@webiny/api-headless-cms-utils-os": "0.0.0-unstable.0d717d18dd",
32
+ "@webiny/api-opensearch": "0.0.0-unstable.0d717d18dd",
33
+ "@webiny/api-sync-to-opensearch": "0.0.0-unstable.0d717d18dd",
34
+ "@webiny/db-utils": "0.0.0-unstable.0d717d18dd",
35
+ "@webiny/error": "0.0.0-unstable.0d717d18dd",
36
+ "@webiny/feature": "0.0.0-unstable.0d717d18dd",
37
+ "@webiny/handler": "0.0.0-unstable.0d717d18dd",
38
+ "@webiny/plugins": "0.0.0-unstable.0d717d18dd",
39
+ "@webiny/utils": "0.0.0-unstable.0d717d18dd",
40
+ "knex": "3.3.0"
41
+ },
42
+ "devDependencies": {
43
+ "@electric-sql/pglite": "0.5.4",
44
+ "@electric-sql/pglite-socket": "0.2.7",
45
+ "@webiny/api-sync-pg-to-opensearch": "0.0.0-unstable.0d717d18dd",
46
+ "@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
47
+ "@webiny/di": "1.0.2",
48
+ "@webiny/project-utils": "0.0.0-unstable.0d717d18dd",
49
+ "@webiny/stdlib": "0.0.15",
50
+ "typescript": "7.0.2",
51
+ "vitest": "4.1.10"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "adio": {
57
+ "ignore": {
58
+ "dependencies": [
59
+ "@webiny/api-headless-cms-storage",
60
+ "@webiny/api-headless-cms-utils-os",
61
+ "@webiny/api-opensearch",
62
+ "@webiny/db-utils",
63
+ "@webiny/error",
64
+ "@webiny/handler",
65
+ "@webiny/plugins",
66
+ "@webiny/utils"
67
+ ]
68
+ }
69
+ },
70
+ "webiny": {
71
+ "publishFrom": "dist"
72
+ }
73
+ }
@@ -0,0 +1,3 @@
1
+ import type { Knex } from "knex";
2
+ import type { SyncEvent } from "../types.js";
3
+ export declare const createReindexEvents: (knex: Knex, tableName: string) => Promise<SyncEvent[]>;
@@ -0,0 +1,14 @@
1
+ const createReindexEvents = async (knex, tableName)=>{
2
+ const rows = await knex(tableName).select("*");
3
+ return rows.map((row)=>({
4
+ type: "INSERT",
5
+ id: row.id,
6
+ entryId: row.entryId,
7
+ tenant: row.tenant,
8
+ index: row.index,
9
+ data: row.data
10
+ }));
11
+ };
12
+ export { createReindexEvents };
13
+
14
+ //# sourceMappingURL=createReindexEvents.js.map