@webiny/api-headless-cms-sql 0.0.0-unstable.b6d7105cee → 0.0.0-unstable.e9333b3f0b

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 (133) hide show
  1. package/features/entryTableManager/EntryTableManager.d.ts +2 -0
  2. package/features/entryTableManager/EntryTableManager.js +43 -26
  3. package/features/entryTableManager/EntryTableManager.js.map +1 -1
  4. package/features/groupSchemaManager/GroupSchemaManager.js +5 -1
  5. package/features/groupSchemaManager/GroupSchemaManager.js.map +1 -1
  6. package/features/modelSchemaManager/ModelSchemaManager.js +5 -1
  7. package/features/modelSchemaManager/ModelSchemaManager.js.map +1 -1
  8. package/index.d.ts +10 -2
  9. package/index.js +17 -71
  10. package/index.js.map +1 -1
  11. package/operations/entry/SqlCreateEntry.d.ts +15 -0
  12. package/operations/entry/SqlCreateEntry.js +35 -0
  13. package/operations/entry/SqlCreateEntry.js.map +1 -0
  14. package/operations/entry/SqlCreateEntryRevisionFrom.d.ts +16 -0
  15. package/operations/entry/SqlCreateEntryRevisionFrom.js +58 -0
  16. package/operations/entry/SqlCreateEntryRevisionFrom.js.map +1 -0
  17. package/operations/entry/SqlDeleteEntry.d.ts +15 -0
  18. package/operations/entry/SqlDeleteEntry.js +29 -0
  19. package/operations/entry/SqlDeleteEntry.js.map +1 -0
  20. package/operations/entry/SqlDeleteEntryRevision.d.ts +15 -0
  21. package/operations/entry/SqlDeleteEntryRevision.js +39 -0
  22. package/operations/entry/SqlDeleteEntryRevision.js.map +1 -0
  23. package/operations/entry/SqlDeleteMultipleEntries.d.ts +15 -0
  24. package/operations/entry/SqlDeleteMultipleEntries.js +29 -0
  25. package/operations/entry/SqlDeleteMultipleEntries.js.map +1 -0
  26. package/operations/entry/SqlGetEntriesByIds.d.ts +15 -0
  27. package/operations/entry/SqlGetEntriesByIds.js +35 -0
  28. package/operations/entry/SqlGetEntriesByIds.js.map +1 -0
  29. package/operations/entry/SqlGetEntry.d.ts +25 -0
  30. package/operations/entry/SqlGetEntry.js +56 -0
  31. package/operations/entry/SqlGetEntry.js.map +1 -0
  32. package/operations/entry/SqlGetLatestEntriesByIds.d.ts +15 -0
  33. package/operations/entry/SqlGetLatestEntriesByIds.js +37 -0
  34. package/operations/entry/SqlGetLatestEntriesByIds.js.map +1 -0
  35. package/operations/entry/SqlGetLatestRevisionByEntryId.d.ts +15 -0
  36. package/operations/entry/SqlGetLatestRevisionByEntryId.js +32 -0
  37. package/operations/entry/SqlGetLatestRevisionByEntryId.js.map +1 -0
  38. package/operations/entry/SqlGetPreviousRevision.d.ts +15 -0
  39. package/operations/entry/SqlGetPreviousRevision.js +30 -0
  40. package/operations/entry/SqlGetPreviousRevision.js.map +1 -0
  41. package/operations/entry/SqlGetPublishedEntriesByIds.d.ts +15 -0
  42. package/operations/entry/SqlGetPublishedEntriesByIds.js +37 -0
  43. package/operations/entry/SqlGetPublishedEntriesByIds.js.map +1 -0
  44. package/operations/entry/SqlGetPublishedRevisionByEntryId.d.ts +15 -0
  45. package/operations/entry/SqlGetPublishedRevisionByEntryId.js +32 -0
  46. package/operations/entry/SqlGetPublishedRevisionByEntryId.js.map +1 -0
  47. package/operations/entry/SqlGetRevisionById.d.ts +15 -0
  48. package/operations/entry/SqlGetRevisionById.js +30 -0
  49. package/operations/entry/SqlGetRevisionById.js.map +1 -0
  50. package/operations/entry/SqlGetRevisions.d.ts +15 -0
  51. package/operations/entry/SqlGetRevisions.js +31 -0
  52. package/operations/entry/SqlGetRevisions.js.map +1 -0
  53. package/operations/entry/SqlGetUniqueFieldValues.d.ts +25 -0
  54. package/operations/entry/SqlGetUniqueFieldValues.js +58 -0
  55. package/operations/entry/SqlGetUniqueFieldValues.js.map +1 -0
  56. package/operations/entry/SqlListEntries.d.ts +25 -0
  57. package/operations/entry/SqlListEntries.js +52 -0
  58. package/operations/entry/SqlListEntries.js.map +1 -0
  59. package/operations/entry/SqlMoveEntry.d.ts +14 -0
  60. package/operations/entry/SqlMoveEntry.js +30 -0
  61. package/operations/entry/SqlMoveEntry.js.map +1 -0
  62. package/operations/entry/SqlMoveToBin.d.ts +14 -0
  63. package/operations/entry/SqlMoveToBin.js +35 -0
  64. package/operations/entry/SqlMoveToBin.js.map +1 -0
  65. package/operations/entry/SqlPublishEntry.d.ts +15 -0
  66. package/operations/entry/SqlPublishEntry.js +51 -0
  67. package/operations/entry/SqlPublishEntry.js.map +1 -0
  68. package/operations/entry/SqlRestoreFromBin.d.ts +14 -0
  69. package/operations/entry/SqlRestoreFromBin.js +36 -0
  70. package/operations/entry/SqlRestoreFromBin.js.map +1 -0
  71. package/operations/entry/SqlUnpublishEntry.d.ts +15 -0
  72. package/operations/entry/SqlUnpublishEntry.js +38 -0
  73. package/operations/entry/SqlUnpublishEntry.js.map +1 -0
  74. package/operations/entry/SqlUpdateEntry.d.ts +15 -0
  75. package/operations/entry/SqlUpdateEntry.js +36 -0
  76. package/operations/entry/SqlUpdateEntry.js.map +1 -0
  77. package/operations/entry/feature.d.ts +4 -0
  78. package/operations/entry/feature.js +53 -0
  79. package/operations/entry/feature.js.map +1 -0
  80. package/operations/entry/queryHelpers.d.ts +28 -0
  81. package/operations/entry/queryHelpers.js +106 -0
  82. package/operations/entry/queryHelpers.js.map +1 -0
  83. package/operations/group/SqlCreateGroup.d.ts +16 -0
  84. package/operations/group/SqlCreateGroup.js +28 -0
  85. package/operations/group/SqlCreateGroup.js.map +1 -0
  86. package/operations/group/SqlDeleteGroup.d.ts +16 -0
  87. package/operations/group/SqlDeleteGroup.js +26 -0
  88. package/operations/group/SqlDeleteGroup.js.map +1 -0
  89. package/operations/group/SqlGetGroup.d.ts +16 -0
  90. package/operations/group/SqlGetGroup.js +29 -0
  91. package/operations/group/SqlGetGroup.js.map +1 -0
  92. package/operations/group/SqlListGroups.d.ts +16 -0
  93. package/operations/group/SqlListGroups.js +43 -0
  94. package/operations/group/SqlListGroups.js.map +1 -0
  95. package/operations/group/SqlUpdateGroup.d.ts +16 -0
  96. package/operations/group/SqlUpdateGroup.js +28 -0
  97. package/operations/group/SqlUpdateGroup.js.map +1 -0
  98. package/operations/group/feature.d.ts +4 -0
  99. package/operations/group/feature.js +19 -0
  100. package/operations/group/feature.js.map +1 -0
  101. package/operations/model/SqlCreateModel.d.ts +16 -0
  102. package/operations/model/SqlCreateModel.js +30 -0
  103. package/operations/model/SqlCreateModel.js.map +1 -0
  104. package/operations/model/SqlDeleteModel.d.ts +16 -0
  105. package/operations/model/SqlDeleteModel.js +26 -0
  106. package/operations/model/SqlDeleteModel.js.map +1 -0
  107. package/operations/model/SqlGetModel.d.ts +16 -0
  108. package/operations/model/SqlGetModel.js +29 -0
  109. package/operations/model/SqlGetModel.js.map +1 -0
  110. package/operations/model/SqlListModels.d.ts +16 -0
  111. package/operations/model/SqlListModels.js +31 -0
  112. package/operations/model/SqlListModels.js.map +1 -0
  113. package/operations/model/SqlUpdateModel.d.ts +16 -0
  114. package/operations/model/SqlUpdateModel.js +30 -0
  115. package/operations/model/SqlUpdateModel.js.map +1 -0
  116. package/operations/model/feature.d.ts +4 -0
  117. package/operations/model/feature.js +19 -0
  118. package/operations/model/feature.js.map +1 -0
  119. package/package.json +16 -13
  120. package/requestFeature.d.ts +15 -0
  121. package/requestFeature.js +17 -0
  122. package/requestFeature.js.map +1 -0
  123. package/operations/entry/index.d.ts +0 -13
  124. package/operations/entry/index.js +0 -362
  125. package/operations/entry/index.js.map +0 -1
  126. package/operations/group/index.d.ts +0 -5
  127. package/operations/group/index.js +0 -58
  128. package/operations/group/index.js.map +0 -1
  129. package/operations/model/index.d.ts +0 -5
  130. package/operations/model/index.js +0 -50
  131. package/operations/model/index.js.map +0 -1
  132. package/types.d.ts +0 -10
  133. package/types.js +0 -0
@@ -0,0 +1,39 @@
1
+ import { DeleteEntryRevisionStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { entryToRow } from "./mappers.js";
5
+ import { createModelEntryQuery, patchAllEntryRevisions } from "./queryHelpers.js";
6
+ class SqlDeleteEntryRevisionImpl {
7
+ constructor(knexClient, entryTableManager){
8
+ this.entryTableManager = entryTableManager;
9
+ this.knex = knexClient.client;
10
+ }
11
+ modelQuery(model) {
12
+ return createModelEntryQuery(this.knex, this.entryTableManager.getTableName(), model);
13
+ }
14
+ async execute(model, params) {
15
+ await this.entryTableManager.ensureTable();
16
+ const wasPublished = "published" === params.storageEntry.status;
17
+ await this.modelQuery(model).andWhere("id", params.storageEntry.id).delete();
18
+ if (wasPublished) await patchAllEntryRevisions(this.knex, this.entryTableManager.getTableName(), model, params.storageEntry.entryId, (parsed)=>{
19
+ parsed.live = null;
20
+ });
21
+ if (params.latestStorageEntry) {
22
+ const latestParsed = structuredClone(params.latestStorageEntry);
23
+ latestParsed.isLatest = true;
24
+ if (wasPublished) latestParsed.live = null;
25
+ const latestRow = entryToRow(latestParsed);
26
+ await this.modelQuery(model).andWhere("id", params.latestStorageEntry.id).update(latestRow);
27
+ }
28
+ }
29
+ }
30
+ const SqlDeleteEntryRevision = DeleteEntryRevisionStorageOperation.createImplementation({
31
+ implementation: SqlDeleteEntryRevisionImpl,
32
+ dependencies: [
33
+ KnexClient,
34
+ EntryTableManager
35
+ ]
36
+ });
37
+ export { SqlDeleteEntryRevision };
38
+
39
+ //# sourceMappingURL=SqlDeleteEntryRevision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlDeleteEntryRevision.js","sources":["../../../src/operations/entry/SqlDeleteEntryRevision.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsDeleteRevisionParams,\n CmsEntryValues,\n CmsModel,\n CmsStorageEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { DeleteEntryRevisionStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport type { IEntryRow } from \"./types.js\";\nimport { entryToRow } from \"./mappers.js\";\nimport { createModelEntryQuery, patchAllEntryRevisions } from \"./queryHelpers.js\";\n\nclass SqlDeleteEntryRevisionImpl implements DeleteEntryRevisionStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private modelQuery(model: CmsModel): Knex.QueryBuilder<IEntryRow> {\n return createModelEntryQuery(this.knex, this.entryTableManager.getTableName(), model);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsDeleteRevisionParams<T>\n ) {\n await this.entryTableManager.ensureTable();\n\n const wasPublished = params.storageEntry.status === \"published\";\n\n await this.modelQuery(model).andWhere(\"id\", params.storageEntry.id).delete();\n\n if (wasPublished) {\n await patchAllEntryRevisions(\n this.knex,\n this.entryTableManager.getTableName(),\n model,\n params.storageEntry.entryId,\n parsed => {\n parsed.live = null;\n }\n );\n }\n\n if (params.latestStorageEntry) {\n const latestParsed = structuredClone(params.latestStorageEntry);\n latestParsed.isLatest = true;\n\n if (wasPublished) {\n latestParsed.live = null;\n }\n\n const latestRow = entryToRow(latestParsed as CmsStorageEntry);\n\n await this.modelQuery(model)\n .andWhere(\"id\", params.latestStorageEntry.id)\n .update(latestRow);\n }\n }\n}\n\nexport const SqlDeleteEntryRevision = DeleteEntryRevisionStorageOperation.createImplementation({\n implementation: SqlDeleteEntryRevisionImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlDeleteEntryRevisionImpl","knexClient","entryTableManager","model","createModelEntryQuery","params","wasPublished","patchAllEntryRevisions","parsed","latestParsed","structuredClone","latestRow","entryToRow","SqlDeleteEntryRevision","DeleteEntryRevisionStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;AAcA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,WAAWE,KAAe,EAAgC;QAC9D,OAAOC,sBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAID;IACnF;IAEA,MAAM,QACFA,KAAe,EACfE,MAAwD,EAC1D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,eAAeD,AAA+B,gBAA/BA,OAAO,YAAY,CAAC,MAAM;QAE/C,MAAM,IAAI,CAAC,UAAU,CAACF,OAAO,QAAQ,CAAC,MAAME,OAAO,YAAY,CAAC,EAAE,EAAE,MAAM;QAE1E,IAAIC,cACA,MAAMC,uBACF,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,iBAAiB,CAAC,YAAY,IACnCJ,OACAE,OAAO,YAAY,CAAC,OAAO,EAC3BG,CAAAA;YACIA,OAAO,IAAI,GAAG;QAClB;QAIR,IAAIH,OAAO,kBAAkB,EAAE;YAC3B,MAAMI,eAAeC,gBAAgBL,OAAO,kBAAkB;YAC9DI,aAAa,QAAQ,GAAG;YAExB,IAAIH,cACAG,aAAa,IAAI,GAAG;YAGxB,MAAME,YAAYC,WAAWH;YAE7B,MAAM,IAAI,CAAC,UAAU,CAACN,OACjB,QAAQ,CAAC,MAAME,OAAO,kBAAkB,CAAC,EAAE,EAC3C,MAAM,CAACM;QAChB;IACJ;AACJ;AAEO,MAAME,yBAAyBC,oCAAoC,oBAAoB,CAAC;IAC3F,gBAAgBd;IAChB,cAAc;QAACe;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntryStorageOperationsDeleteEntriesParams, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { DeleteMultipleEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlDeleteMultipleEntriesImpl implements DeleteMultipleEntriesStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private modelQuery;
10
+ execute(model: CmsModel, params: CmsEntryStorageOperationsDeleteEntriesParams): Promise<void>;
11
+ }
12
+ export declare const SqlDeleteMultipleEntries: typeof SqlDeleteMultipleEntriesImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js").IDeleteMultipleEntriesStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,29 @@
1
+ import { DeleteMultipleEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { createModelEntryQuery } from "./queryHelpers.js";
6
+ class SqlDeleteMultipleEntriesImpl {
7
+ constructor(knexClient, entryTableManager){
8
+ this.entryTableManager = entryTableManager;
9
+ this.knex = knexClient.client;
10
+ }
11
+ modelQuery(model) {
12
+ return createModelEntryQuery(this.knex, this.entryTableManager.getTableName(), model);
13
+ }
14
+ async execute(model, params) {
15
+ await this.entryTableManager.ensureTable();
16
+ const entryIds = params.entries.map((id)=>parseIdentifier(id).id);
17
+ await this.modelQuery(model).whereIn("entryId", entryIds).delete();
18
+ }
19
+ }
20
+ const SqlDeleteMultipleEntries = DeleteMultipleEntriesStorageOperation.createImplementation({
21
+ implementation: SqlDeleteMultipleEntriesImpl,
22
+ dependencies: [
23
+ KnexClient,
24
+ EntryTableManager
25
+ ]
26
+ });
27
+ export { SqlDeleteMultipleEntries };
28
+
29
+ //# sourceMappingURL=SqlDeleteMultipleEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlDeleteMultipleEntries.js","sources":["../../../src/operations/entry/SqlDeleteMultipleEntries.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsDeleteEntriesParams,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { DeleteMultipleEntriesStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { IEntryRow } from \"./types.js\";\nimport { createModelEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlDeleteMultipleEntriesImpl implements DeleteMultipleEntriesStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private modelQuery(model: CmsModel): Knex.QueryBuilder<IEntryRow> {\n return createModelEntryQuery(this.knex, this.entryTableManager.getTableName(), model);\n }\n\n async execute(model: CmsModel, params: CmsEntryStorageOperationsDeleteEntriesParams) {\n await this.entryTableManager.ensureTable();\n\n const entryIds = params.entries.map(id => parseIdentifier(id).id);\n\n await this.modelQuery(model).whereIn(\"entryId\", entryIds).delete();\n }\n}\n\nexport const SqlDeleteMultipleEntries = DeleteMultipleEntriesStorageOperation.createImplementation({\n implementation: SqlDeleteMultipleEntriesImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlDeleteMultipleEntriesImpl","knexClient","entryTableManager","model","createModelEntryQuery","params","entryIds","id","parseIdentifier","SqlDeleteMultipleEntries","DeleteMultipleEntriesStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;AAYA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,WAAWE,KAAe,EAAgC;QAC9D,OAAOC,sBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAID;IACnF;IAEA,MAAM,QAAQA,KAAe,EAAEE,MAAoD,EAAE;QACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,WAAWD,OAAO,OAAO,CAAC,GAAG,CAACE,CAAAA,KAAMC,gBAAgBD,IAAI,EAAE;QAEhE,MAAM,IAAI,CAAC,UAAU,CAACJ,OAAO,OAAO,CAAC,WAAWG,UAAU,MAAM;IACpE;AACJ;AAEO,MAAMG,2BAA2BC,sCAAsC,oBAAoB,CAAC;IAC/F,gBAAgBV;IAChB,cAAc;QAACW;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntry, CmsEntryStorageOperationsGetByIdsParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetEntriesByIdsImpl implements GetEntriesByIdsStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetByIdsParams): Promise<CmsEntry<T>[]>;
11
+ }
12
+ export declare const SqlGetEntriesByIds: typeof SqlGetEntriesByIdsImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js").IGetEntriesByIdsStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,35 @@
1
+ import { GetEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { rowToEntry } from "./mappers.js";
5
+ import { createEntryQuery } from "./queryHelpers.js";
6
+ class SqlGetEntriesByIdsImpl {
7
+ constructor(knexClient, entryTableManager){
8
+ this.entryTableManager = entryTableManager;
9
+ this.knex = knexClient.client;
10
+ }
11
+ query() {
12
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
13
+ }
14
+ async execute(model, params) {
15
+ await this.entryTableManager.ensureTable();
16
+ const idList = params.ids;
17
+ const rows = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).whereIn("id", idList);
18
+ const entries = rows.map((row)=>rowToEntry(row));
19
+ const byId = new Map(entries.map((e)=>[
20
+ e.id,
21
+ e
22
+ ]));
23
+ return idList.map((id)=>byId.get(id)).filter(Boolean);
24
+ }
25
+ }
26
+ const SqlGetEntriesByIds = GetEntriesByIdsStorageOperation.createImplementation({
27
+ implementation: SqlGetEntriesByIdsImpl,
28
+ dependencies: [
29
+ KnexClient,
30
+ EntryTableManager
31
+ ]
32
+ });
33
+ export { SqlGetEntriesByIds };
34
+
35
+ //# sourceMappingURL=SqlGetEntriesByIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetEntriesByIds.js","sources":["../../../src/operations/entry/SqlGetEntriesByIds.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntry,\n CmsEntryStorageOperationsGetByIdsParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetEntriesByIdsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetEntriesByIdsImpl implements GetEntriesByIdsStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetByIdsParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const idList = params.ids as string[];\n\n const rows: IEntryRow[] = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .whereIn(\"id\", idList);\n\n const entries = rows.map(row => rowToEntry(row));\n const byId = new Map(entries.map(e => [e.id, e]));\n\n return idList.map(id => byId.get(id)).filter(Boolean) as CmsEntry<T>[];\n }\n}\n\nexport const SqlGetEntriesByIds = GetEntriesByIdsStorageOperation.createImplementation({\n implementation: SqlGetEntriesByIdsImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlGetEntriesByIdsImpl","knexClient","entryTableManager","createEntryQuery","model","params","idList","rows","entries","row","rowToEntry","byId","Map","e","id","Boolean","SqlGetEntriesByIds","GetEntriesByIdsStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;AAcA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAA+C,EACjD;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,SAASD,OAAO,GAAG;QAEzB,MAAME,OAAoB,MAAM,IAAI,CAAC,KAAK,GACrC,KAAK,CAAC,UAAUH,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,OAAO,CAAC,MAAME;QAEnB,MAAME,UAAUD,KAAK,GAAG,CAACE,CAAAA,MAAOC,WAAWD;QAC3C,MAAME,OAAO,IAAIC,IAAIJ,QAAQ,GAAG,CAACK,CAAAA,IAAK;gBAACA,EAAE,EAAE;gBAAEA;aAAE;QAE/C,OAAOP,OAAO,GAAG,CAACQ,CAAAA,KAAMH,KAAK,GAAG,CAACG,KAAK,MAAM,CAACC;IACjD;AACJ;AAEO,MAAMC,qBAAqBC,gCAAgC,oBAAoB,CAAC;IACnF,gBAAgBjB;IAChB,cAAc;QAACkB;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,25 @@
1
+ import type { CmsEntryStorageOperationsGetParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntryStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ import { StorageTransformRegistry } from "@webiny/api-headless-cms/exports/api/cms/storage.js";
6
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
7
+ import { ValueFilterRegistry } from "@webiny/db-utils";
8
+ import { FieldFilterPathRegistry, FieldFilterValueTransformRegistry, FieldFilterCreateRegistry, FieldSortingRegistry } from "@webiny/api-headless-cms-storage";
9
+ declare class SqlGetEntryImpl implements GetEntryStorageOperation.Interface {
10
+ private readonly entryTableManager;
11
+ private readonly storageTransformRegistry;
12
+ private readonly storageModelProvider;
13
+ private readonly pathRegistry;
14
+ private readonly transformRegistry;
15
+ private readonly filterCreateRegistry;
16
+ private readonly sortingRegistry;
17
+ private readonly valueFilterRegistry;
18
+ private readonly knex;
19
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface, storageTransformRegistry: StorageTransformRegistry.Interface, storageModelProvider: CmsStorageModelProvider.Interface, pathRegistry: FieldFilterPathRegistry.Interface, transformRegistry: FieldFilterValueTransformRegistry.Interface, filterCreateRegistry: FieldFilterCreateRegistry.Interface, sortingRegistry: FieldSortingRegistry.Interface, valueFilterRegistry: ValueFilterRegistry.Interface);
20
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T> | null>;
21
+ }
22
+ export declare const SqlGetEntry: typeof SqlGetEntryImpl & {
23
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntryStorageOperation.js").IGetEntryStorageOperation>;
24
+ };
25
+ export {};
@@ -0,0 +1,56 @@
1
+ import { GetEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntryStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { StorageTransformRegistry } from "@webiny/api-headless-cms/exports/api/cms/storage.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ import { ValueFilterRegistry } from "@webiny/db-utils";
7
+ import { FieldFilterCreateRegistry, FieldFilterPathRegistry, FieldFilterValueTransformRegistry, FieldSortingRegistry } from "@webiny/api-headless-cms-storage";
8
+ import { listEntries } from "./queryHelpers.js";
9
+ class SqlGetEntryImpl {
10
+ constructor(knexClient, entryTableManager, storageTransformRegistry, storageModelProvider, pathRegistry, transformRegistry, filterCreateRegistry, sortingRegistry, valueFilterRegistry){
11
+ this.entryTableManager = entryTableManager;
12
+ this.storageTransformRegistry = storageTransformRegistry;
13
+ this.storageModelProvider = storageModelProvider;
14
+ this.pathRegistry = pathRegistry;
15
+ this.transformRegistry = transformRegistry;
16
+ this.filterCreateRegistry = filterCreateRegistry;
17
+ this.sortingRegistry = sortingRegistry;
18
+ this.valueFilterRegistry = valueFilterRegistry;
19
+ this.knex = knexClient.client;
20
+ }
21
+ async execute(model, params) {
22
+ await this.entryTableManager.ensureTable();
23
+ const { items } = await listEntries({
24
+ knex: this.knex,
25
+ tableName: this.entryTableManager.getTableName(),
26
+ storageModelProvider: this.storageModelProvider,
27
+ storageTransformRegistry: this.storageTransformRegistry,
28
+ pathRegistry: this.pathRegistry,
29
+ transformRegistry: this.transformRegistry,
30
+ filterCreateRegistry: this.filterCreateRegistry,
31
+ sortingRegistry: this.sortingRegistry,
32
+ valueFilterRegistry: this.valueFilterRegistry
33
+ }, model, {
34
+ ...params,
35
+ limit: 1
36
+ });
37
+ return items.shift() || null;
38
+ }
39
+ }
40
+ const SqlGetEntry = GetEntryStorageOperation.createImplementation({
41
+ implementation: SqlGetEntryImpl,
42
+ dependencies: [
43
+ KnexClient,
44
+ EntryTableManager,
45
+ StorageTransformRegistry,
46
+ CmsStorageModelProvider,
47
+ FieldFilterPathRegistry,
48
+ FieldFilterValueTransformRegistry,
49
+ FieldFilterCreateRegistry,
50
+ FieldSortingRegistry,
51
+ ValueFilterRegistry
52
+ ]
53
+ });
54
+ export { SqlGetEntry };
55
+
56
+ //# sourceMappingURL=SqlGetEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetEntry.js","sources":["../../../src/operations/entry/SqlGetEntry.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsGetParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetEntryStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { StorageTransformRegistry } from \"@webiny/api-headless-cms/exports/api/cms/storage.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { ValueFilterRegistry } from \"@webiny/db-utils\";\nimport {\n FieldFilterPathRegistry,\n FieldFilterValueTransformRegistry,\n FieldFilterCreateRegistry,\n FieldSortingRegistry\n} from \"@webiny/api-headless-cms-storage\";\nimport { listEntries } from \"./queryHelpers.js\";\n\nclass SqlGetEntryImpl implements GetEntryStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface,\n private readonly storageTransformRegistry: StorageTransformRegistry.Interface,\n private readonly storageModelProvider: CmsStorageModelProvider.Interface,\n private readonly pathRegistry: FieldFilterPathRegistry.Interface,\n private readonly transformRegistry: FieldFilterValueTransformRegistry.Interface,\n private readonly filterCreateRegistry: FieldFilterCreateRegistry.Interface,\n private readonly sortingRegistry: FieldSortingRegistry.Interface,\n private readonly valueFilterRegistry: ValueFilterRegistry.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const { items } = await listEntries<T>(\n {\n knex: this.knex,\n tableName: this.entryTableManager.getTableName(),\n storageModelProvider: this.storageModelProvider,\n storageTransformRegistry: this.storageTransformRegistry,\n pathRegistry: this.pathRegistry,\n transformRegistry: this.transformRegistry,\n filterCreateRegistry: this.filterCreateRegistry,\n sortingRegistry: this.sortingRegistry,\n valueFilterRegistry: this.valueFilterRegistry\n },\n model,\n { ...params, limit: 1 }\n );\n\n return items.shift() || null;\n }\n}\n\nexport const SqlGetEntry = GetEntryStorageOperation.createImplementation({\n implementation: SqlGetEntryImpl,\n dependencies: [\n KnexClient,\n EntryTableManager,\n StorageTransformRegistry,\n CmsStorageModelProvider,\n FieldFilterPathRegistry,\n FieldFilterValueTransformRegistry,\n FieldFilterCreateRegistry,\n FieldSortingRegistry,\n ValueFilterRegistry\n ]\n});\n"],"names":["SqlGetEntryImpl","knexClient","entryTableManager","storageTransformRegistry","storageModelProvider","pathRegistry","transformRegistry","filterCreateRegistry","sortingRegistry","valueFilterRegistry","model","params","items","listEntries","SqlGetEntry","GetEntryStorageOperation","KnexClient","EntryTableManager","StorageTransformRegistry","CmsStorageModelProvider","FieldFilterPathRegistry","FieldFilterValueTransformRegistry","FieldFilterCreateRegistry","FieldSortingRegistry","ValueFilterRegistry"],"mappings":";;;;;;;;AAoBA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,EAC9CC,wBAA4D,EAC5DC,oBAAuD,EACvDC,YAA+C,EAC/CC,iBAA8D,EAC9DC,oBAAyD,EACzDC,eAA+C,EAC/CC,mBAAkD,CACrE;aARmBP,iBAAiB,GAAjBA;aACAC,wBAAwB,GAAxBA;aACAC,oBAAoB,GAApBA;aACAC,YAAY,GAAZA;aACAC,iBAAiB,GAAjBA;aACAC,oBAAoB,GAApBA;aACAC,eAAe,GAAfA;aACAC,mBAAmB,GAAnBA;QAEjB,IAAI,CAAC,IAAI,GAAGR,WAAW,MAAM;IACjC;IAEA,MAAM,QACFS,KAAe,EACfC,MAA0C,EAC5C;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMC,YACpB;YACI,MAAM,IAAI,CAAC,IAAI;YACf,WAAW,IAAI,CAAC,iBAAiB,CAAC,YAAY;YAC9C,sBAAsB,IAAI,CAAC,oBAAoB;YAC/C,0BAA0B,IAAI,CAAC,wBAAwB;YACvD,cAAc,IAAI,CAAC,YAAY;YAC/B,mBAAmB,IAAI,CAAC,iBAAiB;YACzC,sBAAsB,IAAI,CAAC,oBAAoB;YAC/C,iBAAiB,IAAI,CAAC,eAAe;YACrC,qBAAqB,IAAI,CAAC,mBAAmB;QACjD,GACAH,OACA;YAAE,GAAGC,MAAM;YAAE,OAAO;QAAE;QAG1B,OAAOC,MAAM,KAAK,MAAM;IAC5B;AACJ;AAEO,MAAME,cAAcC,yBAAyB,oBAAoB,CAAC;IACrE,gBAAgBf;IAChB,cAAc;QACVgB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntry, CmsEntryStorageOperationsGetLatestByIdsParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetLatestEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetLatestEntriesByIdsImpl implements GetLatestEntriesByIdsStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetLatestByIdsParams): Promise<CmsEntry<T>[]>;
11
+ }
12
+ export declare const SqlGetLatestEntriesByIds: typeof SqlGetLatestEntriesByIdsImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js").IGetLatestEntriesByIdsStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,37 @@
1
+ import { GetLatestEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { rowToEntry } from "./mappers.js";
6
+ import { createEntryQuery } from "./queryHelpers.js";
7
+ class SqlGetLatestEntriesByIdsImpl {
8
+ constructor(knexClient, entryTableManager){
9
+ this.entryTableManager = entryTableManager;
10
+ this.knex = knexClient.client;
11
+ }
12
+ query() {
13
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
14
+ }
15
+ async execute(model, params) {
16
+ await this.entryTableManager.ensureTable();
17
+ const idList = params.ids;
18
+ const entryIds = idList.map((id)=>parseIdentifier(id).id);
19
+ const rows = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).whereIn("entryId", entryIds).andWhere("isLatest", true);
20
+ const entries = rows.map((row)=>rowToEntry(row));
21
+ const byEntryId = new Map(entries.map((e)=>[
22
+ e.entryId,
23
+ e
24
+ ]));
25
+ return entryIds.map((eid)=>byEntryId.get(eid)).filter(Boolean);
26
+ }
27
+ }
28
+ const SqlGetLatestEntriesByIds = GetLatestEntriesByIdsStorageOperation.createImplementation({
29
+ implementation: SqlGetLatestEntriesByIdsImpl,
30
+ dependencies: [
31
+ KnexClient,
32
+ EntryTableManager
33
+ ]
34
+ });
35
+ export { SqlGetLatestEntriesByIds };
36
+
37
+ //# sourceMappingURL=SqlGetLatestEntriesByIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetLatestEntriesByIds.js","sources":["../../../src/operations/entry/SqlGetLatestEntriesByIds.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntry,\n CmsEntryStorageOperationsGetLatestByIdsParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetLatestEntriesByIdsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetLatestEntriesByIdsImpl implements GetLatestEntriesByIdsStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetLatestByIdsParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const idList = params.ids as string[];\n const entryIds = idList.map(id => parseIdentifier(id).id);\n\n const rows: IEntryRow[] = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .whereIn(\"entryId\", entryIds)\n .andWhere(\"isLatest\", true);\n\n const entries = rows.map(row => rowToEntry(row));\n const byEntryId = new Map(entries.map(e => [e.entryId, e]));\n\n return entryIds.map(eid => byEntryId.get(eid)).filter(Boolean) as CmsEntry<T>[];\n }\n}\n\nexport const SqlGetLatestEntriesByIds = GetLatestEntriesByIdsStorageOperation.createImplementation({\n implementation: SqlGetLatestEntriesByIdsImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlGetLatestEntriesByIdsImpl","knexClient","entryTableManager","createEntryQuery","model","params","idList","entryIds","id","parseIdentifier","rows","entries","row","rowToEntry","byEntryId","Map","e","eid","Boolean","SqlGetLatestEntriesByIds","GetLatestEntriesByIdsStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;;AAeA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAAqD,EACvD;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,SAASD,OAAO,GAAG;QACzB,MAAME,WAAWD,OAAO,GAAG,CAACE,CAAAA,KAAMC,gBAAgBD,IAAI,EAAE;QAExD,MAAME,OAAoB,MAAM,IAAI,CAAC,KAAK,GACrC,KAAK,CAAC,UAAUN,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,OAAO,CAAC,WAAWG,UACnB,QAAQ,CAAC,YAAY;QAE1B,MAAMI,UAAUD,KAAK,GAAG,CAACE,CAAAA,MAAOC,WAAWD;QAC3C,MAAME,YAAY,IAAIC,IAAIJ,QAAQ,GAAG,CAACK,CAAAA,IAAK;gBAACA,EAAE,OAAO;gBAAEA;aAAE;QAEzD,OAAOT,SAAS,GAAG,CAACU,CAAAA,MAAOH,UAAU,GAAG,CAACG,MAAM,MAAM,CAACC;IAC1D;AACJ;AAEO,MAAMC,2BAA2BC,sCAAsC,oBAAoB,CAAC;IAC/F,gBAAgBpB;IAChB,cAAc;QAACqB;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntryStorageOperationsGetLatestRevisionParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetLatestRevisionByEntryIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetLatestRevisionByEntryIdImpl implements GetLatestRevisionByEntryIdStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetLatestRevisionParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T> | null>;
11
+ }
12
+ export declare const SqlGetLatestRevisionByEntryId: typeof SqlGetLatestRevisionByEntryIdImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js").IGetLatestRevisionByEntryIdStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,32 @@
1
+ import { GetLatestRevisionByEntryIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { rowToEntry } from "./mappers.js";
6
+ import { createEntryQuery } from "./queryHelpers.js";
7
+ class SqlGetLatestRevisionByEntryIdImpl {
8
+ constructor(knexClient, entryTableManager){
9
+ this.entryTableManager = entryTableManager;
10
+ this.knex = knexClient.client;
11
+ }
12
+ query() {
13
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
14
+ }
15
+ async execute(model, params) {
16
+ await this.entryTableManager.ensureTable();
17
+ const { id: entryId } = parseIdentifier(params.id);
18
+ const row = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).where("entryId", entryId).andWhere("isLatest", true).first();
19
+ if (!row) return null;
20
+ return rowToEntry(row);
21
+ }
22
+ }
23
+ const SqlGetLatestRevisionByEntryId = GetLatestRevisionByEntryIdStorageOperation.createImplementation({
24
+ implementation: SqlGetLatestRevisionByEntryIdImpl,
25
+ dependencies: [
26
+ KnexClient,
27
+ EntryTableManager
28
+ ]
29
+ });
30
+ export { SqlGetLatestRevisionByEntryId };
31
+
32
+ //# sourceMappingURL=SqlGetLatestRevisionByEntryId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetLatestRevisionByEntryId.js","sources":["../../../src/operations/entry/SqlGetLatestRevisionByEntryId.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsGetLatestRevisionParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetLatestRevisionByEntryIdStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetLatestRevisionByEntryIdImpl\n implements GetLatestRevisionByEntryIdStorageOperation.Interface\n{\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetLatestRevisionParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const { id: entryId } = parseIdentifier(params.id);\n\n const row = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .where(\"entryId\", entryId)\n .andWhere(\"isLatest\", true)\n .first();\n\n if (!row) {\n return null;\n }\n\n return rowToEntry<T>(row);\n }\n}\n\nexport const SqlGetLatestRevisionByEntryId =\n GetLatestRevisionByEntryIdStorageOperation.createImplementation({\n implementation: SqlGetLatestRevisionByEntryIdImpl,\n dependencies: [KnexClient, EntryTableManager]\n });\n"],"names":["SqlGetLatestRevisionByEntryIdImpl","knexClient","entryTableManager","createEntryQuery","model","params","entryId","parseIdentifier","row","rowToEntry","SqlGetLatestRevisionByEntryId","GetLatestRevisionByEntryIdStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;;AAcA,MAAMA;IAKF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAAwD,EAC1D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBF,OAAO,EAAE;QAEjD,MAAMG,MAAM,MAAM,IAAI,CAAC,KAAK,GACvB,KAAK,CAAC,UAAUJ,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,KAAK,CAAC,WAAWE,SACjB,QAAQ,CAAC,YAAY,MACrB,KAAK;QAEV,IAAI,CAACE,KACD,OAAO;QAGX,OAAOC,WAAcD;IACzB;AACJ;AAEO,MAAME,gCACTC,2CAA2C,oBAAoB,CAAC;IAC5D,gBAAgBX;IAChB,cAAc;QAACY;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntryStorageOperationsGetPreviousRevisionParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetPreviousRevisionStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetPreviousRevisionImpl implements GetPreviousRevisionStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetPreviousRevisionParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T> | null>;
11
+ }
12
+ export declare const SqlGetPreviousRevision: typeof SqlGetPreviousRevisionImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js").IGetPreviousRevisionStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,30 @@
1
+ import { GetPreviousRevisionStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { rowToEntry } from "./mappers.js";
5
+ import { createEntryQuery } from "./queryHelpers.js";
6
+ class SqlGetPreviousRevisionImpl {
7
+ constructor(knexClient, entryTableManager){
8
+ this.entryTableManager = entryTableManager;
9
+ this.knex = knexClient.client;
10
+ }
11
+ query() {
12
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
13
+ }
14
+ async execute(model, params) {
15
+ await this.entryTableManager.ensureTable();
16
+ const row = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).where("entryId", params.entryId).andWhere("version", "<", params.version).orderBy("version", "desc").first();
17
+ if (!row) return null;
18
+ return rowToEntry(row);
19
+ }
20
+ }
21
+ const SqlGetPreviousRevision = GetPreviousRevisionStorageOperation.createImplementation({
22
+ implementation: SqlGetPreviousRevisionImpl,
23
+ dependencies: [
24
+ KnexClient,
25
+ EntryTableManager
26
+ ]
27
+ });
28
+ export { SqlGetPreviousRevision };
29
+
30
+ //# sourceMappingURL=SqlGetPreviousRevision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetPreviousRevision.js","sources":["../../../src/operations/entry/SqlGetPreviousRevision.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsGetPreviousRevisionParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetPreviousRevisionStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetPreviousRevisionImpl implements GetPreviousRevisionStorageOperation.Interface {\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetPreviousRevisionParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const row = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .where(\"entryId\", params.entryId)\n .andWhere(\"version\", \"<\", params.version)\n .orderBy(\"version\", \"desc\")\n .first();\n\n if (!row) {\n return null;\n }\n\n return rowToEntry<T>(row);\n }\n}\n\nexport const SqlGetPreviousRevision = GetPreviousRevisionStorageOperation.createImplementation({\n implementation: SqlGetPreviousRevisionImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlGetPreviousRevisionImpl","knexClient","entryTableManager","createEntryQuery","model","params","row","rowToEntry","SqlGetPreviousRevision","GetPreviousRevisionStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;AAaA,MAAMA;IAGF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAA0D,EAC5D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,MAAM,MAAM,IAAI,CAAC,KAAK,GACvB,KAAK,CAAC,UAAUF,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,KAAK,CAAC,WAAWC,OAAO,OAAO,EAC/B,QAAQ,CAAC,WAAW,KAAKA,OAAO,OAAO,EACvC,OAAO,CAAC,WAAW,QACnB,KAAK;QAEV,IAAI,CAACC,KACD,OAAO;QAGX,OAAOC,WAAcD;IACzB;AACJ;AAEO,MAAME,yBAAyBC,oCAAoC,oBAAoB,CAAC;IAC3F,gBAAgBT;IAChB,cAAc;QAACU;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntry, CmsEntryStorageOperationsGetPublishedByIdsParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetPublishedEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetPublishedEntriesByIdsImpl implements GetPublishedEntriesByIdsStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetPublishedByIdsParams): Promise<CmsEntry<T>[]>;
11
+ }
12
+ export declare const SqlGetPublishedEntriesByIds: typeof SqlGetPublishedEntriesByIdsImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js").IGetPublishedEntriesByIdsStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,37 @@
1
+ import { GetPublishedEntriesByIdsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { rowToEntry } from "./mappers.js";
6
+ import { createEntryQuery } from "./queryHelpers.js";
7
+ class SqlGetPublishedEntriesByIdsImpl {
8
+ constructor(knexClient, entryTableManager){
9
+ this.entryTableManager = entryTableManager;
10
+ this.knex = knexClient.client;
11
+ }
12
+ query() {
13
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
14
+ }
15
+ async execute(model, params) {
16
+ await this.entryTableManager.ensureTable();
17
+ const idList = params.ids;
18
+ const entryIds = idList.map((id)=>parseIdentifier(id).id);
19
+ const rows = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).whereIn("entryId", entryIds).andWhere("isPublished", true);
20
+ const entries = rows.map((row)=>rowToEntry(row));
21
+ const byEntryId = new Map(entries.map((e)=>[
22
+ e.entryId,
23
+ e
24
+ ]));
25
+ return entryIds.map((eid)=>byEntryId.get(eid)).filter(Boolean);
26
+ }
27
+ }
28
+ const SqlGetPublishedEntriesByIds = GetPublishedEntriesByIdsStorageOperation.createImplementation({
29
+ implementation: SqlGetPublishedEntriesByIdsImpl,
30
+ dependencies: [
31
+ KnexClient,
32
+ EntryTableManager
33
+ ]
34
+ });
35
+ export { SqlGetPublishedEntriesByIds };
36
+
37
+ //# sourceMappingURL=SqlGetPublishedEntriesByIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetPublishedEntriesByIds.js","sources":["../../../src/operations/entry/SqlGetPublishedEntriesByIds.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntry,\n CmsEntryStorageOperationsGetPublishedByIdsParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetPublishedEntriesByIdsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetPublishedEntriesByIdsImpl\n implements GetPublishedEntriesByIdsStorageOperation.Interface\n{\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetPublishedByIdsParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const idList = params.ids as string[];\n const entryIds = idList.map(id => parseIdentifier(id).id);\n\n const rows: IEntryRow[] = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .whereIn(\"entryId\", entryIds)\n .andWhere(\"isPublished\", true);\n\n const entries = rows.map(row => rowToEntry(row));\n const byEntryId = new Map(entries.map(e => [e.entryId, e]));\n\n return entryIds.map(eid => byEntryId.get(eid)).filter(Boolean) as CmsEntry<T>[];\n }\n}\n\nexport const SqlGetPublishedEntriesByIds =\n GetPublishedEntriesByIdsStorageOperation.createImplementation({\n implementation: SqlGetPublishedEntriesByIdsImpl,\n dependencies: [KnexClient, EntryTableManager]\n });\n"],"names":["SqlGetPublishedEntriesByIdsImpl","knexClient","entryTableManager","createEntryQuery","model","params","idList","entryIds","id","parseIdentifier","rows","entries","row","rowToEntry","byEntryId","Map","e","eid","Boolean","SqlGetPublishedEntriesByIds","GetPublishedEntriesByIdsStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;;AAeA,MAAMA;IAKF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAAwD,EAC1D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,SAASD,OAAO,GAAG;QACzB,MAAME,WAAWD,OAAO,GAAG,CAACE,CAAAA,KAAMC,gBAAgBD,IAAI,EAAE;QAExD,MAAME,OAAoB,MAAM,IAAI,CAAC,KAAK,GACrC,KAAK,CAAC,UAAUN,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,OAAO,CAAC,WAAWG,UACnB,QAAQ,CAAC,eAAe;QAE7B,MAAMI,UAAUD,KAAK,GAAG,CAACE,CAAAA,MAAOC,WAAWD;QAC3C,MAAME,YAAY,IAAIC,IAAIJ,QAAQ,GAAG,CAACK,CAAAA,IAAK;gBAACA,EAAE,OAAO;gBAAEA;aAAE;QAEzD,OAAOT,SAAS,GAAG,CAACU,CAAAA,MAAOH,UAAU,GAAG,CAACG,MAAM,MAAM,CAACC;IAC1D;AACJ;AAEO,MAAMC,8BACTC,yCAAyC,oBAAoB,CAAC;IAC1D,gBAAgBpB;IAChB,cAAc;QAACqB;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntryStorageOperationsGetPublishedRevisionParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetPublishedRevisionByEntryIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetPublishedRevisionByEntryIdImpl implements GetPublishedRevisionByEntryIdStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetPublishedRevisionParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T> | null>;
11
+ }
12
+ export declare const SqlGetPublishedRevisionByEntryId: typeof SqlGetPublishedRevisionByEntryIdImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js").IGetPublishedRevisionByEntryIdStorageOperation>;
14
+ };
15
+ export {};
@@ -0,0 +1,32 @@
1
+ import { GetPublishedRevisionByEntryIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js";
2
+ import { KnexClient } from "@webiny/api-core-sql";
3
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { rowToEntry } from "./mappers.js";
6
+ import { createEntryQuery } from "./queryHelpers.js";
7
+ class SqlGetPublishedRevisionByEntryIdImpl {
8
+ constructor(knexClient, entryTableManager){
9
+ this.entryTableManager = entryTableManager;
10
+ this.knex = knexClient.client;
11
+ }
12
+ query() {
13
+ return createEntryQuery(this.knex, this.entryTableManager.getTableName());
14
+ }
15
+ async execute(model, params) {
16
+ await this.entryTableManager.ensureTable();
17
+ const { id: entryId } = parseIdentifier(params.id);
18
+ const row = await this.query().where("tenant", model.tenant).andWhere("modelId", model.modelId).where("entryId", entryId).andWhere("isPublished", true).first();
19
+ if (!row) return null;
20
+ return rowToEntry(row);
21
+ }
22
+ }
23
+ const SqlGetPublishedRevisionByEntryId = GetPublishedRevisionByEntryIdStorageOperation.createImplementation({
24
+ implementation: SqlGetPublishedRevisionByEntryIdImpl,
25
+ dependencies: [
26
+ KnexClient,
27
+ EntryTableManager
28
+ ]
29
+ });
30
+ export { SqlGetPublishedRevisionByEntryId };
31
+
32
+ //# sourceMappingURL=SqlGetPublishedRevisionByEntryId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/SqlGetPublishedRevisionByEntryId.js","sources":["../../../src/operations/entry/SqlGetPublishedRevisionByEntryId.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsGetPublishedRevisionParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetPublishedRevisionByEntryIdStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\nimport { EntryTableManager } from \"~/features/entryTableManager/abstractions.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { IEntryRow } from \"./types.js\";\nimport { rowToEntry } from \"./mappers.js\";\nimport { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlGetPublishedRevisionByEntryIdImpl\n implements GetPublishedRevisionByEntryIdStorageOperation.Interface\n{\n private readonly knex: Knex;\n\n public constructor(\n knexClient: KnexClient.Interface,\n private readonly entryTableManager: EntryTableManager.Interface\n ) {\n this.knex = knexClient.client;\n }\n\n private query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryStorageOperationsGetPublishedRevisionParams\n ) {\n await this.entryTableManager.ensureTable();\n\n const { id: entryId } = parseIdentifier(params.id);\n\n const row = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .where(\"entryId\", entryId)\n .andWhere(\"isPublished\", true)\n .first();\n\n if (!row) {\n return null;\n }\n\n return rowToEntry<T>(row);\n }\n}\n\nexport const SqlGetPublishedRevisionByEntryId =\n GetPublishedRevisionByEntryIdStorageOperation.createImplementation({\n implementation: SqlGetPublishedRevisionByEntryIdImpl,\n dependencies: [KnexClient, EntryTableManager]\n });\n"],"names":["SqlGetPublishedRevisionByEntryIdImpl","knexClient","entryTableManager","createEntryQuery","model","params","entryId","parseIdentifier","row","rowToEntry","SqlGetPublishedRevisionByEntryId","GetPublishedRevisionByEntryIdStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;;AAcA,MAAMA;IAKF,YACIC,UAAgC,EACfC,iBAA8C,CACjE;aADmBA,iBAAiB,GAAjBA;QAEjB,IAAI,CAAC,IAAI,GAAGD,WAAW,MAAM;IACjC;IAEQ,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QACFC,KAAe,EACfC,MAA2D,EAC7D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBF,OAAO,EAAE;QAEjD,MAAMG,MAAM,MAAM,IAAI,CAAC,KAAK,GACvB,KAAK,CAAC,UAAUJ,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,KAAK,CAAC,WAAWE,SACjB,QAAQ,CAAC,eAAe,MACxB,KAAK;QAEV,IAAI,CAACE,KACD,OAAO;QAGX,OAAOC,WAAcD;IACzB;AACJ;AAEO,MAAME,mCACTC,8CAA8C,oBAAoB,CAAC;IAC/D,gBAAgBX;IAChB,cAAc;QAACY;QAAYC;KAAkB;AACjD"}
@@ -0,0 +1,15 @@
1
+ import type { CmsEntryStorageOperationsGetRevisionParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetRevisionByIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js";
3
+ import { KnexClient } from "@webiny/api-core-sql";
4
+ import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
+ declare class SqlGetRevisionByIdImpl implements GetRevisionByIdStorageOperation.Interface {
6
+ private readonly entryTableManager;
7
+ private readonly knex;
8
+ constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
+ private query;
10
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryStorageOperationsGetRevisionParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T> | null>;
11
+ }
12
+ export declare const SqlGetRevisionById: typeof SqlGetRevisionByIdImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js").IGetRevisionByIdStorageOperation>;
14
+ };
15
+ export {};