@webiny/api-headless-cms-sql 0.0.0-unstable.0d717d18dd → 0.0.0-unstable.a4f3e4ea8b

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 (126) hide show
  1. package/features/entryTableManager/EntryTableManager.d.ts +0 -2
  2. package/features/entryTableManager/EntryTableManager.js +26 -39
  3. package/features/entryTableManager/EntryTableManager.js.map +1 -1
  4. package/index.d.ts +1 -4
  5. package/index.js +71 -24
  6. package/index.js.map +1 -1
  7. package/operations/entry/index.d.ts +13 -0
  8. package/operations/entry/index.js +373 -0
  9. package/operations/entry/index.js.map +1 -0
  10. package/operations/group/index.d.ts +5 -0
  11. package/operations/group/index.js +58 -0
  12. package/operations/group/index.js.map +1 -0
  13. package/operations/model/index.d.ts +5 -0
  14. package/operations/model/index.js +50 -0
  15. package/operations/model/index.js.map +1 -0
  16. package/package.json +12 -15
  17. package/types.d.ts +10 -0
  18. package/types.js +0 -0
  19. package/operations/entry/SqlCreateEntry.d.ts +0 -15
  20. package/operations/entry/SqlCreateEntry.js +0 -35
  21. package/operations/entry/SqlCreateEntry.js.map +0 -1
  22. package/operations/entry/SqlCreateEntryRevisionFrom.d.ts +0 -15
  23. package/operations/entry/SqlCreateEntryRevisionFrom.js +0 -55
  24. package/operations/entry/SqlCreateEntryRevisionFrom.js.map +0 -1
  25. package/operations/entry/SqlDeleteEntry.d.ts +0 -15
  26. package/operations/entry/SqlDeleteEntry.js +0 -29
  27. package/operations/entry/SqlDeleteEntry.js.map +0 -1
  28. package/operations/entry/SqlDeleteEntryRevision.d.ts +0 -15
  29. package/operations/entry/SqlDeleteEntryRevision.js +0 -39
  30. package/operations/entry/SqlDeleteEntryRevision.js.map +0 -1
  31. package/operations/entry/SqlDeleteMultipleEntries.d.ts +0 -15
  32. package/operations/entry/SqlDeleteMultipleEntries.js +0 -29
  33. package/operations/entry/SqlDeleteMultipleEntries.js.map +0 -1
  34. package/operations/entry/SqlGetEntriesByIds.d.ts +0 -15
  35. package/operations/entry/SqlGetEntriesByIds.js +0 -35
  36. package/operations/entry/SqlGetEntriesByIds.js.map +0 -1
  37. package/operations/entry/SqlGetEntry.d.ts +0 -25
  38. package/operations/entry/SqlGetEntry.js +0 -56
  39. package/operations/entry/SqlGetEntry.js.map +0 -1
  40. package/operations/entry/SqlGetLatestEntriesByIds.d.ts +0 -15
  41. package/operations/entry/SqlGetLatestEntriesByIds.js +0 -37
  42. package/operations/entry/SqlGetLatestEntriesByIds.js.map +0 -1
  43. package/operations/entry/SqlGetLatestRevisionByEntryId.d.ts +0 -15
  44. package/operations/entry/SqlGetLatestRevisionByEntryId.js +0 -32
  45. package/operations/entry/SqlGetLatestRevisionByEntryId.js.map +0 -1
  46. package/operations/entry/SqlGetPreviousRevision.d.ts +0 -15
  47. package/operations/entry/SqlGetPreviousRevision.js +0 -30
  48. package/operations/entry/SqlGetPreviousRevision.js.map +0 -1
  49. package/operations/entry/SqlGetPublishedEntriesByIds.d.ts +0 -15
  50. package/operations/entry/SqlGetPublishedEntriesByIds.js +0 -37
  51. package/operations/entry/SqlGetPublishedEntriesByIds.js.map +0 -1
  52. package/operations/entry/SqlGetPublishedRevisionByEntryId.d.ts +0 -15
  53. package/operations/entry/SqlGetPublishedRevisionByEntryId.js +0 -32
  54. package/operations/entry/SqlGetPublishedRevisionByEntryId.js.map +0 -1
  55. package/operations/entry/SqlGetRevisionById.d.ts +0 -15
  56. package/operations/entry/SqlGetRevisionById.js +0 -30
  57. package/operations/entry/SqlGetRevisionById.js.map +0 -1
  58. package/operations/entry/SqlGetRevisions.d.ts +0 -15
  59. package/operations/entry/SqlGetRevisions.js +0 -31
  60. package/operations/entry/SqlGetRevisions.js.map +0 -1
  61. package/operations/entry/SqlGetUniqueFieldValues.d.ts +0 -25
  62. package/operations/entry/SqlGetUniqueFieldValues.js +0 -58
  63. package/operations/entry/SqlGetUniqueFieldValues.js.map +0 -1
  64. package/operations/entry/SqlListEntries.d.ts +0 -25
  65. package/operations/entry/SqlListEntries.js +0 -52
  66. package/operations/entry/SqlListEntries.js.map +0 -1
  67. package/operations/entry/SqlMoveEntry.d.ts +0 -14
  68. package/operations/entry/SqlMoveEntry.js +0 -30
  69. package/operations/entry/SqlMoveEntry.js.map +0 -1
  70. package/operations/entry/SqlMoveToBin.d.ts +0 -14
  71. package/operations/entry/SqlMoveToBin.js +0 -35
  72. package/operations/entry/SqlMoveToBin.js.map +0 -1
  73. package/operations/entry/SqlPublishEntry.d.ts +0 -15
  74. package/operations/entry/SqlPublishEntry.js +0 -51
  75. package/operations/entry/SqlPublishEntry.js.map +0 -1
  76. package/operations/entry/SqlRestoreFromBin.d.ts +0 -14
  77. package/operations/entry/SqlRestoreFromBin.js +0 -36
  78. package/operations/entry/SqlRestoreFromBin.js.map +0 -1
  79. package/operations/entry/SqlUnpublishEntry.d.ts +0 -15
  80. package/operations/entry/SqlUnpublishEntry.js +0 -38
  81. package/operations/entry/SqlUnpublishEntry.js.map +0 -1
  82. package/operations/entry/SqlUpdateEntry.d.ts +0 -15
  83. package/operations/entry/SqlUpdateEntry.js +0 -36
  84. package/operations/entry/SqlUpdateEntry.js.map +0 -1
  85. package/operations/entry/feature.d.ts +0 -4
  86. package/operations/entry/feature.js +0 -53
  87. package/operations/entry/feature.js.map +0 -1
  88. package/operations/entry/queryHelpers.d.ts +0 -23
  89. package/operations/entry/queryHelpers.js +0 -105
  90. package/operations/entry/queryHelpers.js.map +0 -1
  91. package/operations/group/SqlCreateGroup.d.ts +0 -16
  92. package/operations/group/SqlCreateGroup.js +0 -28
  93. package/operations/group/SqlCreateGroup.js.map +0 -1
  94. package/operations/group/SqlDeleteGroup.d.ts +0 -16
  95. package/operations/group/SqlDeleteGroup.js +0 -26
  96. package/operations/group/SqlDeleteGroup.js.map +0 -1
  97. package/operations/group/SqlGetGroup.d.ts +0 -16
  98. package/operations/group/SqlGetGroup.js +0 -29
  99. package/operations/group/SqlGetGroup.js.map +0 -1
  100. package/operations/group/SqlListGroups.d.ts +0 -16
  101. package/operations/group/SqlListGroups.js +0 -43
  102. package/operations/group/SqlListGroups.js.map +0 -1
  103. package/operations/group/SqlUpdateGroup.d.ts +0 -16
  104. package/operations/group/SqlUpdateGroup.js +0 -28
  105. package/operations/group/SqlUpdateGroup.js.map +0 -1
  106. package/operations/group/feature.d.ts +0 -4
  107. package/operations/group/feature.js +0 -19
  108. package/operations/group/feature.js.map +0 -1
  109. package/operations/model/SqlCreateModel.d.ts +0 -16
  110. package/operations/model/SqlCreateModel.js +0 -30
  111. package/operations/model/SqlCreateModel.js.map +0 -1
  112. package/operations/model/SqlDeleteModel.d.ts +0 -16
  113. package/operations/model/SqlDeleteModel.js +0 -26
  114. package/operations/model/SqlDeleteModel.js.map +0 -1
  115. package/operations/model/SqlGetModel.d.ts +0 -16
  116. package/operations/model/SqlGetModel.js +0 -29
  117. package/operations/model/SqlGetModel.js.map +0 -1
  118. package/operations/model/SqlListModels.d.ts +0 -16
  119. package/operations/model/SqlListModels.js +0 -31
  120. package/operations/model/SqlListModels.js.map +0 -1
  121. package/operations/model/SqlUpdateModel.d.ts +0 -16
  122. package/operations/model/SqlUpdateModel.js +0 -30
  123. package/operations/model/SqlUpdateModel.js.map +0 -1
  124. package/operations/model/feature.d.ts +0 -4
  125. package/operations/model/feature.js +0 -19
  126. package/operations/model/feature.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-sql",
3
- "version": "0.0.0-unstable.0d717d18dd",
3
+ "version": "0.0.0-unstable.a4f3e4ea8b",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -22,23 +22,20 @@
22
22
  "description": "SQL storage operations for Headless CMS API.",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@webiny/api-core-sql": "0.0.0-unstable.0d717d18dd",
26
- "@webiny/api-headless-cms": "0.0.0-unstable.0d717d18dd",
27
- "@webiny/api-headless-cms-storage": "0.0.0-unstable.0d717d18dd",
28
- "@webiny/db-utils": "0.0.0-unstable.0d717d18dd",
29
- "@webiny/feature": "0.0.0-unstable.0d717d18dd",
30
- "@webiny/handler": "0.0.0-unstable.0d717d18dd",
31
- "@webiny/utils": "0.0.0-unstable.0d717d18dd",
25
+ "@webiny/api-core-sql": "0.0.0-unstable.a4f3e4ea8b",
26
+ "@webiny/api-headless-cms": "0.0.0-unstable.a4f3e4ea8b",
27
+ "@webiny/api-headless-cms-storage": "0.0.0-unstable.a4f3e4ea8b",
28
+ "@webiny/db-utils": "0.0.0-unstable.a4f3e4ea8b",
29
+ "@webiny/feature": "0.0.0-unstable.a4f3e4ea8b",
30
+ "@webiny/handler": "0.0.0-unstable.a4f3e4ea8b",
31
+ "@webiny/plugins": "0.0.0-unstable.a4f3e4ea8b",
32
+ "@webiny/utils": "0.0.0-unstable.a4f3e4ea8b",
32
33
  "knex": "3.3.0"
33
34
  },
34
35
  "devDependencies": {
35
- "@electric-sql/pglite": "0.5.4",
36
- "@electric-sql/pglite-socket": "0.2.7",
37
- "@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
38
- "@webiny/di": "1.0.2",
39
- "@webiny/project-utils": "0.0.0-unstable.0d717d18dd",
40
- "better-sqlite3": "13.0.2",
41
- "pg": "8.22.0",
36
+ "@webiny/build-tools": "0.0.0-unstable.a4f3e4ea8b",
37
+ "@webiny/project-utils": "0.0.0-unstable.a4f3e4ea8b",
38
+ "better-sqlite3": "13.0.1",
42
39
  "typescript": "7.0.2",
43
40
  "vitest": "4.1.10"
44
41
  },
package/types.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import type { PluginsContainer } from "@webiny/plugins/types.js";
2
+ import type { CmsContext, HeadlessCmsStorageOperations as BaseHeadlessCmsStorageOperations } from "@webiny/api-headless-cms/types/index.js";
3
+ export type { CmsContext };
4
+ export interface SqlStorageOperationsFactoryParams {
5
+ plugins: PluginsContainer;
6
+ container: CmsContext["container"];
7
+ }
8
+ export interface SqlStorageOperationsFactory {
9
+ (params: SqlStorageOperationsFactoryParams): BaseHeadlessCmsStorageOperations;
10
+ }
package/types.js ADDED
File without changes
@@ -1,15 +0,0 @@
1
- import type { CmsEntryStorageOperationsCreateParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import { CreateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.js";
3
- import { KnexClient } from "@webiny/api-core-sql";
4
- import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
- declare class SqlCreateEntryImpl implements CreateEntryStorageOperation.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: CmsEntryStorageOperationsCreateParams<T>): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T>>;
11
- }
12
- export declare const SqlCreateEntry: typeof SqlCreateEntryImpl & {
13
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.js").ICreateEntryStorageOperation>;
14
- };
15
- export {};
@@ -1,35 +0,0 @@
1
- import { CreateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.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 { createEntryQuery } from "./queryHelpers.js";
6
- class SqlCreateEntryImpl {
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 storageEntry = structuredClone(params.storageEntry);
17
- storageEntry.isLatest = true;
18
- storageEntry.isPublished = "published" === storageEntry.status;
19
- const row = entryToRow(storageEntry);
20
- await this.query().insert(row);
21
- delete storageEntry.isLatest;
22
- delete storageEntry.isPublished;
23
- return storageEntry;
24
- }
25
- }
26
- const SqlCreateEntry = CreateEntryStorageOperation.createImplementation({
27
- implementation: SqlCreateEntryImpl,
28
- dependencies: [
29
- KnexClient,
30
- EntryTableManager
31
- ]
32
- });
33
- export { SqlCreateEntry };
34
-
35
- //# sourceMappingURL=SqlCreateEntry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operations/entry/SqlCreateEntry.js","sources":["../../../src/operations/entry/SqlCreateEntry.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsCreateParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { CreateEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.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 { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlCreateEntryImpl implements CreateEntryStorageOperation.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: CmsEntryStorageOperationsCreateParams<T>\n ) {\n await this.entryTableManager.ensureTable();\n\n const storageEntry = structuredClone(params.storageEntry);\n storageEntry.isLatest = true;\n storageEntry.isPublished = storageEntry.status === \"published\";\n\n const row = entryToRow(storageEntry);\n await this.query().insert(row);\n\n delete storageEntry.isLatest;\n delete storageEntry.isPublished;\n return storageEntry;\n }\n}\n\nexport const SqlCreateEntry = CreateEntryStorageOperation.createImplementation({\n implementation: SqlCreateEntryImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlCreateEntryImpl","knexClient","entryTableManager","createEntryQuery","_model","params","storageEntry","structuredClone","row","entryToRow","SqlCreateEntry","CreateEntryStorageOperation","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,MAAgB,EAChBC,MAAgD,EAClD;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,eAAeC,gBAAgBF,OAAO,YAAY;QACxDC,aAAa,QAAQ,GAAG;QACxBA,aAAa,WAAW,GAAGA,AAAwB,gBAAxBA,aAAa,MAAM;QAE9C,MAAME,MAAMC,WAAWH;QACvB,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,CAACE;QAE1B,OAAOF,aAAa,QAAQ;QAC5B,OAAOA,aAAa,WAAW;QAC/B,OAAOA;IACX;AACJ;AAEO,MAAMI,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBX;IAChB,cAAc;QAACY;QAAYC;KAAkB;AACjD"}
@@ -1,15 +0,0 @@
1
- import type { CmsEntryStorageOperationsCreateRevisionFromParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import { CreateEntryRevisionFromStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js";
3
- import { KnexClient } from "@webiny/api-core-sql";
4
- import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
- declare class SqlCreateEntryRevisionFromImpl implements CreateEntryRevisionFromStorageOperation.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: CmsEntryStorageOperationsCreateRevisionFromParams<T>): Promise<import("@webiny/api-headless-cms/types/types.js").CmsEntry<T>>;
11
- }
12
- export declare const SqlCreateEntryRevisionFrom: typeof SqlCreateEntryRevisionFromImpl & {
13
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js").ICreateEntryRevisionFromStorageOperation>;
14
- };
15
- export {};
@@ -1,55 +0,0 @@
1
- import { CreateEntryRevisionFromStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.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 { createEntryQuery } from "./queryHelpers.js";
6
- class SqlCreateEntryRevisionFromImpl {
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 isPublished = "published" === params.entry.status;
17
- const oldLatestRows = await this.query().where("tenant", model.tenant).andWhere("entryId", params.entry.entryId).andWhere("isLatest", true);
18
- for (const row of oldLatestRows){
19
- const parsed = JSON.parse(row.data);
20
- parsed.isLatest = false;
21
- await this.query().where("id", row.id).update({
22
- isLatest: false,
23
- data: JSON.stringify(parsed)
24
- });
25
- }
26
- if (isPublished) {
27
- const oldPublishedRows = await this.query().where("tenant", model.tenant).andWhere("entryId", params.entry.entryId).andWhere("isPublished", true);
28
- for (const row of oldPublishedRows){
29
- const parsed = JSON.parse(row.data);
30
- parsed.isPublished = false;
31
- parsed.status = "unpublished";
32
- await this.query().where("id", row.id).update({
33
- isPublished: false,
34
- data: JSON.stringify(parsed)
35
- });
36
- }
37
- }
38
- const se = params.storageEntry;
39
- se.isLatest = true;
40
- se.isPublished = isPublished;
41
- const row = entryToRow(se);
42
- await this.query().insert(row);
43
- return params.entry;
44
- }
45
- }
46
- const SqlCreateEntryRevisionFrom = CreateEntryRevisionFromStorageOperation.createImplementation({
47
- implementation: SqlCreateEntryRevisionFromImpl,
48
- dependencies: [
49
- KnexClient,
50
- EntryTableManager
51
- ]
52
- });
53
- export { SqlCreateEntryRevisionFrom };
54
-
55
- //# sourceMappingURL=SqlCreateEntryRevisionFrom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operations/entry/SqlCreateEntryRevisionFrom.js","sources":["../../../src/operations/entry/SqlCreateEntryRevisionFrom.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsCreateRevisionFromParams,\n CmsEntryValues,\n CmsModel,\n CmsStorageEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { CreateEntryRevisionFromStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.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 { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlCreateEntryRevisionFromImpl implements CreateEntryRevisionFromStorageOperation.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: CmsEntryStorageOperationsCreateRevisionFromParams<T>\n ) {\n await this.entryTableManager.ensureTable();\n\n const isPublished = params.entry.status === \"published\";\n\n const oldLatestRows = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"entryId\", params.entry.entryId)\n .andWhere(\"isLatest\", true);\n\n for (const row of oldLatestRows) {\n const parsed = JSON.parse(row.data);\n parsed.isLatest = false;\n\n await this.query()\n .where(\"id\", row.id)\n .update({ isLatest: false, data: JSON.stringify(parsed) });\n }\n\n if (isPublished) {\n const oldPublishedRows = await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"entryId\", params.entry.entryId)\n .andWhere(\"isPublished\", true);\n\n for (const row of oldPublishedRows) {\n const parsed = JSON.parse(row.data);\n parsed.isPublished = false;\n parsed.status = \"unpublished\";\n\n await this.query()\n .where(\"id\", row.id)\n .update({ isPublished: false, data: JSON.stringify(parsed) });\n }\n }\n\n const se = params.storageEntry as CmsStorageEntry;\n se.isLatest = true;\n se.isPublished = isPublished;\n\n const row = entryToRow(se);\n await this.query().insert(row);\n\n return params.entry;\n }\n}\n\nexport const SqlCreateEntryRevisionFrom =\n CreateEntryRevisionFromStorageOperation.createImplementation({\n implementation: SqlCreateEntryRevisionFromImpl,\n dependencies: [KnexClient, EntryTableManager]\n });\n"],"names":["SqlCreateEntryRevisionFromImpl","knexClient","entryTableManager","createEntryQuery","model","params","isPublished","oldLatestRows","row","parsed","JSON","oldPublishedRows","se","entryToRow","SqlCreateEntryRevisionFrom","CreateEntryRevisionFromStorageOperation","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,MAA4D,EAC9D;QACE,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAMC,cAAcD,AAAwB,gBAAxBA,OAAO,KAAK,CAAC,MAAM;QAEvC,MAAME,gBAAgB,MAAM,IAAI,CAAC,KAAK,GACjC,KAAK,CAAC,UAAUH,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWC,OAAO,KAAK,CAAC,OAAO,EACxC,QAAQ,CAAC,YAAY;QAE1B,KAAK,MAAMG,OAAOD,cAAe;YAC7B,MAAME,SAASC,KAAK,KAAK,CAACF,IAAI,IAAI;YAClCC,OAAO,QAAQ,GAAG;YAElB,MAAM,IAAI,CAAC,KAAK,GACX,KAAK,CAAC,MAAMD,IAAI,EAAE,EAClB,MAAM,CAAC;gBAAE,UAAU;gBAAO,MAAME,KAAK,SAAS,CAACD;YAAQ;QAChE;QAEA,IAAIH,aAAa;YACb,MAAMK,mBAAmB,MAAM,IAAI,CAAC,KAAK,GACpC,KAAK,CAAC,UAAUP,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWC,OAAO,KAAK,CAAC,OAAO,EACxC,QAAQ,CAAC,eAAe;YAE7B,KAAK,MAAMG,OAAOG,iBAAkB;gBAChC,MAAMF,SAASC,KAAK,KAAK,CAACF,IAAI,IAAI;gBAClCC,OAAO,WAAW,GAAG;gBACrBA,OAAO,MAAM,GAAG;gBAEhB,MAAM,IAAI,CAAC,KAAK,GACX,KAAK,CAAC,MAAMD,IAAI,EAAE,EAClB,MAAM,CAAC;oBAAE,aAAa;oBAAO,MAAME,KAAK,SAAS,CAACD;gBAAQ;YACnE;QACJ;QAEA,MAAMG,KAAKP,OAAO,YAAY;QAC9BO,GAAG,QAAQ,GAAG;QACdA,GAAG,WAAW,GAAGN;QAEjB,MAAME,MAAMK,WAAWD;QACvB,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,CAACJ;QAE1B,OAAOH,OAAO,KAAK;IACvB;AACJ;AAEO,MAAMS,6BACTC,wCAAwC,oBAAoB,CAAC;IACzD,gBAAgBf;IAChB,cAAc;QAACgB;QAAYC;KAAkB;AACjD"}
@@ -1,15 +0,0 @@
1
- import type { CmsEntryStorageOperationsDeleteParams, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import { DeleteEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js";
3
- import { KnexClient } from "@webiny/api-core-sql";
4
- import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
- declare class SqlDeleteEntryImpl implements DeleteEntryStorageOperation.Interface {
6
- private readonly entryTableManager;
7
- private readonly knex;
8
- constructor(knexClient: KnexClient.Interface, entryTableManager: EntryTableManager.Interface);
9
- private query;
10
- execute(model: CmsModel, params: CmsEntryStorageOperationsDeleteParams): Promise<void>;
11
- }
12
- export declare const SqlDeleteEntry: typeof SqlDeleteEntryImpl & {
13
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js").IDeleteEntryStorageOperation>;
14
- };
15
- export {};
@@ -1,29 +0,0 @@
1
- import { DeleteEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.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 { createEntryQuery } from "./queryHelpers.js";
6
- class SqlDeleteEntryImpl {
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 { id: entryId } = parseIdentifier(params.entry.id);
17
- await this.query().where("tenant", model.tenant).andWhere("entryId", entryId).delete();
18
- }
19
- }
20
- const SqlDeleteEntry = DeleteEntryStorageOperation.createImplementation({
21
- implementation: SqlDeleteEntryImpl,
22
- dependencies: [
23
- KnexClient,
24
- EntryTableManager
25
- ]
26
- });
27
- export { SqlDeleteEntry };
28
-
29
- //# sourceMappingURL=SqlDeleteEntry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operations/entry/SqlDeleteEntry.js","sources":["../../../src/operations/entry/SqlDeleteEntry.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n CmsEntryStorageOperationsDeleteParams,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { DeleteEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.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 { createEntryQuery } from \"./queryHelpers.js\";\n\nclass SqlDeleteEntryImpl implements DeleteEntryStorageOperation.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(model: CmsModel, params: CmsEntryStorageOperationsDeleteParams) {\n await this.entryTableManager.ensureTable();\n\n const { id: entryId } = parseIdentifier(params.entry.id);\n\n await this.query().where(\"tenant\", model.tenant).andWhere(\"entryId\", entryId).delete();\n }\n}\n\nexport const SqlDeleteEntry = DeleteEntryStorageOperation.createImplementation({\n implementation: SqlDeleteEntryImpl,\n dependencies: [KnexClient, EntryTableManager]\n});\n"],"names":["SqlDeleteEntryImpl","knexClient","entryTableManager","createEntryQuery","model","params","entryId","parseIdentifier","SqlDeleteEntry","DeleteEntryStorageOperation","KnexClient","EntryTableManager"],"mappings":";;;;;AAYA,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,QAAQC,KAAe,EAAEC,MAA6C,EAAE;QAC1E,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAExC,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBF,OAAO,KAAK,CAAC,EAAE;QAEvD,MAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,UAAUD,MAAM,MAAM,EAAE,QAAQ,CAAC,WAAWE,SAAS,MAAM;IACxF;AACJ;AAEO,MAAME,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBT;IAChB,cAAc;QAACU;QAAYC;KAAkB;AACjD"}
@@ -1,15 +0,0 @@
1
- import type { CmsEntryStorageOperationsDeleteRevisionParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import { DeleteEntryRevisionStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js";
3
- import { KnexClient } from "@webiny/api-core-sql";
4
- import { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
- declare class SqlDeleteEntryRevisionImpl implements DeleteEntryRevisionStorageOperation.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: CmsEntryStorageOperationsDeleteRevisionParams<T>): Promise<void>;
11
- }
12
- export declare const SqlDeleteEntryRevision: typeof SqlDeleteEntryRevisionImpl & {
13
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js").IDeleteEntryRevisionStorageOperation>;
14
- };
15
- export {};
@@ -1,39 +0,0 @@
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 { createEntryQuery, patchAllEntryRevisions } from "./queryHelpers.js";
6
- class SqlDeleteEntryRevisionImpl {
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 wasPublished = "published" === params.storageEntry.status;
17
- await this.query().where("tenant", model.tenant).andWhere("id", params.storageEntry.id).delete();
18
- if (wasPublished) await patchAllEntryRevisions(this.knex, this.entryTableManager.getTableName(), params.storageEntry.entryId, model.tenant, (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.query().where("tenant", model.tenant).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
@@ -1 +0,0 @@
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 { createEntryQuery, 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 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: CmsEntryStorageOperationsDeleteRevisionParams<T>\n ) {\n await this.entryTableManager.ensureTable();\n\n const wasPublished = params.storageEntry.status === \"published\";\n\n await this.query()\n .where(\"tenant\", model.tenant)\n .andWhere(\"id\", params.storageEntry.id)\n .delete();\n\n if (wasPublished) {\n await patchAllEntryRevisions(\n this.knex,\n this.entryTableManager.getTableName(),\n params.storageEntry.entryId,\n model.tenant,\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.query()\n .where(\"tenant\", model.tenant)\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","createEntryQuery","model","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,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,eAAeD,AAA+B,gBAA/BA,OAAO,YAAY,CAAC,MAAM;QAE/C,MAAM,IAAI,CAAC,KAAK,GACX,KAAK,CAAC,UAAUD,MAAM,MAAM,EAC5B,QAAQ,CAAC,MAAMC,OAAO,YAAY,CAAC,EAAE,EACrC,MAAM;QAEX,IAAIC,cACA,MAAMC,uBACF,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,iBAAiB,CAAC,YAAY,IACnCF,OAAO,YAAY,CAAC,OAAO,EAC3BD,MAAM,MAAM,EACZI,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,KAAK,GACX,KAAK,CAAC,UAAUL,MAAM,MAAM,EAC5B,QAAQ,CAAC,MAAMC,OAAO,kBAAkB,CAAC,EAAE,EAC3C,MAAM,CAACM;QAChB;IACJ;AACJ;AAEO,MAAME,yBAAyBC,oCAAoC,oBAAoB,CAAC;IAC3F,gBAAgBd;IAChB,cAAc;QAACe;QAAYC;KAAkB;AACjD"}
@@ -1,15 +0,0 @@
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 query;
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 {};
@@ -1,29 +0,0 @@
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 { createEntryQuery } from "./queryHelpers.js";
6
- class SqlDeleteMultipleEntriesImpl {
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 entryIds = params.entries.map((id)=>parseIdentifier(id).id);
17
- await this.query().where("tenant", model.tenant).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
@@ -1 +0,0 @@
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 { createEntryQuery } 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 query(): Knex.QueryBuilder<IEntryRow> {\n return createEntryQuery(this.knex, this.entryTableManager.getTableName());\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.query().where(\"tenant\", model.tenant).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","createEntryQuery","model","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,QAAsC;QAC1C,OAAOE,iBAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;IAC1E;IAEA,MAAM,QAAQC,KAAe,EAAEC,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,KAAK,GAAG,KAAK,CAAC,UAAUH,MAAM,MAAM,EAAE,OAAO,CAAC,WAAWE,UAAU,MAAM;IACxF;AACJ;AAEO,MAAMG,2BAA2BC,sCAAsC,oBAAoB,CAAC;IAC/F,gBAAgBV;IAChB,cAAc;QAACW;QAAYC;KAAkB;AACjD"}
@@ -1,15 +0,0 @@
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 {};
@@ -1,35 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,25 +0,0 @@
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 {};
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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 {};
@@ -1,37 +0,0 @@
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
@@ -1 +0,0 @@
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"}