@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,19 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { SqlGetGroup } from "./SqlGetGroup.js";
3
+ import { SqlListGroups } from "./SqlListGroups.js";
4
+ import { SqlCreateGroup } from "./SqlCreateGroup.js";
5
+ import { SqlUpdateGroup } from "./SqlUpdateGroup.js";
6
+ import { SqlDeleteGroup } from "./SqlDeleteGroup.js";
7
+ const SqlGroupStorageOpsFeature = createFeature({
8
+ name: "cms.sql.groupStorageOps",
9
+ register: (container)=>{
10
+ container.register(SqlGetGroup);
11
+ container.register(SqlListGroups);
12
+ container.register(SqlCreateGroup);
13
+ container.register(SqlUpdateGroup);
14
+ container.register(SqlDeleteGroup);
15
+ }
16
+ });
17
+ export { SqlGroupStorageOpsFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/group/feature.js","sources":["../../../src/operations/group/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { SqlGetGroup } from \"./SqlGetGroup.js\";\nimport { SqlListGroups } from \"./SqlListGroups.js\";\nimport { SqlCreateGroup } from \"./SqlCreateGroup.js\";\nimport { SqlUpdateGroup } from \"./SqlUpdateGroup.js\";\nimport { SqlDeleteGroup } from \"./SqlDeleteGroup.js\";\n\nexport const SqlGroupStorageOpsFeature = createFeature({\n name: \"cms.sql.groupStorageOps\",\n register: container => {\n container.register(SqlGetGroup);\n container.register(SqlListGroups);\n container.register(SqlCreateGroup);\n container.register(SqlUpdateGroup);\n container.register(SqlDeleteGroup);\n }\n});\n"],"names":["SqlGroupStorageOpsFeature","createFeature","container","SqlGetGroup","SqlListGroups","SqlCreateGroup","SqlUpdateGroup","SqlDeleteGroup"],"mappings":";;;;;;AAOO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;IACvB;AACJ"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModelStorageOperationsCreateParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { CreateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/CreateModelStorageOperation.js";
3
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
4
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ declare class SqlCreateModelImpl implements CreateModelStorageOperation.Interface {
7
+ private knex;
8
+ private modelSchemaManager;
9
+ private tableName;
10
+ constructor(knex: KnexClient.Interface, tableNameResolver: TableNameResolver.Interface, modelSchemaManager: ModelSchemaManager.Interface);
11
+ execute(params: CmsModelStorageOperationsCreateParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel>;
12
+ }
13
+ export declare const SqlCreateModel: typeof SqlCreateModelImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/CreateModelStorageOperation.js").ICreateModelStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,30 @@
1
+ import { CreateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/CreateModelStorageOperation.js";
2
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
3
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
4
+ import { modelToRow } from "./mappers.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ class SqlCreateModelImpl {
7
+ constructor(knex, tableNameResolver, modelSchemaManager){
8
+ this.knex = knex;
9
+ this.modelSchemaManager = modelSchemaManager;
10
+ this.tableName = tableNameResolver.resolve("models");
11
+ }
12
+ async execute(params) {
13
+ const model = params.model;
14
+ const row = modelToRow(model);
15
+ await this.modelSchemaManager.ensure(this.tableName);
16
+ await this.knex.client(this.tableName).insert(row);
17
+ return model;
18
+ }
19
+ }
20
+ const SqlCreateModel = CreateModelStorageOperation.createImplementation({
21
+ implementation: SqlCreateModelImpl,
22
+ dependencies: [
23
+ KnexClient,
24
+ TableNameResolver,
25
+ ModelSchemaManager
26
+ ]
27
+ });
28
+ export { SqlCreateModel };
29
+
30
+ //# sourceMappingURL=SqlCreateModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/SqlCreateModel.js","sources":["../../../src/operations/model/SqlCreateModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsCreateParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IModelRow } from \"./types.js\";\nimport { CreateModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/CreateModelStorageOperation.js\";\nimport { TableNameResolver } from \"~/features/tableNameResolver/abstractions.js\";\nimport { ModelSchemaManager } from \"~/features/modelSchemaManager/abstractions.js\";\nimport { modelToRow } from \"./mappers.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\n\nclass SqlCreateModelImpl implements CreateModelStorageOperation.Interface {\n private tableName: string;\n\n constructor(\n private knex: KnexClient.Interface,\n tableNameResolver: TableNameResolver.Interface,\n private modelSchemaManager: ModelSchemaManager.Interface\n ) {\n this.tableName = tableNameResolver.resolve(\"models\");\n }\n\n async execute(params: CmsModelStorageOperationsCreateParams) {\n const model = params.model;\n const row = modelToRow(model);\n\n await this.modelSchemaManager.ensure(this.tableName);\n await this.knex.client<IModelRow>(this.tableName).insert(row);\n\n return model;\n }\n}\n\nexport const SqlCreateModel = CreateModelStorageOperation.createImplementation({\n implementation: SqlCreateModelImpl,\n dependencies: [KnexClient, TableNameResolver, ModelSchemaManager]\n});\n"],"names":["SqlCreateModelImpl","knex","tableNameResolver","modelSchemaManager","params","model","row","modelToRow","SqlCreateModel","CreateModelStorageOperation","KnexClient","TableNameResolver","ModelSchemaManager"],"mappings":";;;;;AAQA,MAAMA;IAGF,YACYC,IAA0B,EAClCC,iBAA8C,EACtCC,kBAAgD,CAC1D;aAHUF,IAAI,GAAJA;aAEAE,kBAAkB,GAAlBA;QAER,IAAI,CAAC,SAAS,GAAGD,kBAAkB,OAAO,CAAC;IAC/C;IAEA,MAAM,QAAQE,MAA6C,EAAE;QACzD,MAAMC,QAAQD,OAAO,KAAK;QAC1B,MAAME,MAAMC,WAAWF;QAEvB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAY,IAAI,CAAC,SAAS,EAAE,MAAM,CAACC;QAEzD,OAAOD;IACX;AACJ;AAEO,MAAMG,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBT;IAChB,cAAc;QAACU;QAAYC;QAAmBC;KAAmB;AACrE"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModelStorageOperationsDeleteParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { DeleteModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js";
3
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
4
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ declare class SqlDeleteModelImpl implements DeleteModelStorageOperation.Interface {
7
+ private knex;
8
+ private modelSchemaManager;
9
+ private tableName;
10
+ constructor(knex: KnexClient.Interface, tableNameResolver: TableNameResolver.Interface, modelSchemaManager: ModelSchemaManager.Interface);
11
+ execute(params: CmsModelStorageOperationsDeleteParams): Promise<void>;
12
+ }
13
+ export declare const SqlDeleteModel: typeof SqlDeleteModelImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js").IDeleteModelStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,26 @@
1
+ import { DeleteModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js";
2
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
3
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
4
+ import { KnexClient } from "@webiny/api-core-sql";
5
+ class SqlDeleteModelImpl {
6
+ constructor(knex, tableNameResolver, modelSchemaManager){
7
+ this.knex = knex;
8
+ this.modelSchemaManager = modelSchemaManager;
9
+ this.tableName = tableNameResolver.resolve("models");
10
+ }
11
+ async execute(params) {
12
+ await this.modelSchemaManager.ensure(this.tableName);
13
+ await this.knex.client(this.tableName).where("tenant", params.model.tenant).andWhere("modelId", params.model.modelId).delete();
14
+ }
15
+ }
16
+ const SqlDeleteModel = DeleteModelStorageOperation.createImplementation({
17
+ implementation: SqlDeleteModelImpl,
18
+ dependencies: [
19
+ KnexClient,
20
+ TableNameResolver,
21
+ ModelSchemaManager
22
+ ]
23
+ });
24
+ export { SqlDeleteModel };
25
+
26
+ //# sourceMappingURL=SqlDeleteModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/SqlDeleteModel.js","sources":["../../../src/operations/model/SqlDeleteModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsDeleteParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IModelRow } from \"./types.js\";\nimport { DeleteModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js\";\nimport { TableNameResolver } from \"~/features/tableNameResolver/abstractions.js\";\nimport { ModelSchemaManager } from \"~/features/modelSchemaManager/abstractions.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\n\nclass SqlDeleteModelImpl implements DeleteModelStorageOperation.Interface {\n private tableName: string;\n\n constructor(\n private knex: KnexClient.Interface,\n tableNameResolver: TableNameResolver.Interface,\n private modelSchemaManager: ModelSchemaManager.Interface\n ) {\n this.tableName = tableNameResolver.resolve(\"models\");\n }\n\n async execute(params: CmsModelStorageOperationsDeleteParams) {\n await this.modelSchemaManager.ensure(this.tableName);\n await this.knex\n .client<IModelRow>(this.tableName)\n .where(\"tenant\", params.model.tenant)\n .andWhere(\"modelId\", params.model.modelId)\n .delete();\n }\n}\n\nexport const SqlDeleteModel = DeleteModelStorageOperation.createImplementation({\n implementation: SqlDeleteModelImpl,\n dependencies: [KnexClient, TableNameResolver, ModelSchemaManager]\n});\n"],"names":["SqlDeleteModelImpl","knex","tableNameResolver","modelSchemaManager","params","SqlDeleteModel","DeleteModelStorageOperation","KnexClient","TableNameResolver","ModelSchemaManager"],"mappings":";;;;AAOA,MAAMA;IAGF,YACYC,IAA0B,EAClCC,iBAA8C,EACtCC,kBAAgD,CAC1D;aAHUF,IAAI,GAAJA;aAEAE,kBAAkB,GAAlBA;QAER,IAAI,CAAC,SAAS,GAAGD,kBAAkB,OAAO,CAAC;IAC/C;IAEA,MAAM,QAAQE,MAA6C,EAAE;QACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;QACnD,MAAM,IAAI,CAAC,IAAI,CACV,MAAM,CAAY,IAAI,CAAC,SAAS,EAChC,KAAK,CAAC,UAAUA,OAAO,KAAK,CAAC,MAAM,EACnC,QAAQ,CAAC,WAAWA,OAAO,KAAK,CAAC,OAAO,EACxC,MAAM;IACf;AACJ;AAEO,MAAMC,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBN;IAChB,cAAc;QAACO;QAAYC;QAAmBC;KAAmB;AACrE"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModelStorageOperationsGetParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js";
3
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
4
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ declare class SqlGetModelImpl implements GetModelStorageOperation.Interface {
7
+ private knex;
8
+ private modelSchemaManager;
9
+ private tableName;
10
+ constructor(knex: KnexClient.Interface, tableNameResolver: TableNameResolver.Interface, modelSchemaManager: ModelSchemaManager.Interface);
11
+ execute(params: CmsModelStorageOperationsGetParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel | null>;
12
+ }
13
+ export declare const SqlGetModel: typeof SqlGetModelImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js").IGetModelStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,29 @@
1
+ import { GetModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js";
2
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
3
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
4
+ import { rowToModel } from "./mappers.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ class SqlGetModelImpl {
7
+ constructor(knex, tableNameResolver, modelSchemaManager){
8
+ this.knex = knex;
9
+ this.modelSchemaManager = modelSchemaManager;
10
+ this.tableName = tableNameResolver.resolve("models");
11
+ }
12
+ async execute(params) {
13
+ await this.modelSchemaManager.ensure(this.tableName);
14
+ const row = await this.knex.client(this.tableName).where("modelId", params.modelId).where("tenant", params.tenant).first();
15
+ if (!row) return null;
16
+ return rowToModel(row);
17
+ }
18
+ }
19
+ const SqlGetModel = GetModelStorageOperation.createImplementation({
20
+ implementation: SqlGetModelImpl,
21
+ dependencies: [
22
+ KnexClient,
23
+ TableNameResolver,
24
+ ModelSchemaManager
25
+ ]
26
+ });
27
+ export { SqlGetModel };
28
+
29
+ //# sourceMappingURL=SqlGetModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/SqlGetModel.js","sources":["../../../src/operations/model/SqlGetModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsGetParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IModelRow } from \"./types.js\";\nimport { GetModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js\";\nimport { TableNameResolver } from \"~/features/tableNameResolver/abstractions.js\";\nimport { ModelSchemaManager } from \"~/features/modelSchemaManager/abstractions.js\";\nimport { rowToModel } from \"./mappers.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\n\nclass SqlGetModelImpl implements GetModelStorageOperation.Interface {\n private tableName: string;\n\n constructor(\n private knex: KnexClient.Interface,\n tableNameResolver: TableNameResolver.Interface,\n private modelSchemaManager: ModelSchemaManager.Interface\n ) {\n this.tableName = tableNameResolver.resolve(\"models\");\n }\n\n async execute(params: CmsModelStorageOperationsGetParams) {\n await this.modelSchemaManager.ensure(this.tableName);\n\n const row = await this.knex\n .client<IModelRow>(this.tableName)\n .where(\"modelId\", params.modelId)\n .where(\"tenant\", params.tenant)\n .first();\n\n if (!row) {\n return null;\n }\n\n return rowToModel(row);\n }\n}\n\nexport const SqlGetModel = GetModelStorageOperation.createImplementation({\n implementation: SqlGetModelImpl,\n dependencies: [KnexClient, TableNameResolver, ModelSchemaManager]\n});\n"],"names":["SqlGetModelImpl","knex","tableNameResolver","modelSchemaManager","params","row","rowToModel","SqlGetModel","GetModelStorageOperation","KnexClient","TableNameResolver","ModelSchemaManager"],"mappings":";;;;;AAQA,MAAMA;IAGF,YACYC,IAA0B,EAClCC,iBAA8C,EACtCC,kBAAgD,CAC1D;aAHUF,IAAI,GAAJA;aAEAE,kBAAkB,GAAlBA;QAER,IAAI,CAAC,SAAS,GAAGD,kBAAkB,OAAO,CAAC;IAC/C;IAEA,MAAM,QAAQE,MAA0C,EAAE;QACtD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;QAEnD,MAAMC,MAAM,MAAM,IAAI,CAAC,IAAI,CACtB,MAAM,CAAY,IAAI,CAAC,SAAS,EAChC,KAAK,CAAC,WAAWD,OAAO,OAAO,EAC/B,KAAK,CAAC,UAAUA,OAAO,MAAM,EAC7B,KAAK;QAEV,IAAI,CAACC,KACD,OAAO;QAGX,OAAOC,WAAWD;IACtB;AACJ;AAEO,MAAME,cAAcC,yBAAyB,oBAAoB,CAAC;IACrE,gBAAgBR;IAChB,cAAc;QAACS;QAAYC;QAAmBC;KAAmB;AACrE"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModelStorageOperationsListParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { ListModelsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js";
3
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
4
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ declare class SqlListModelsImpl implements ListModelsStorageOperation.Interface {
7
+ private knex;
8
+ private modelSchemaManager;
9
+ private tableName;
10
+ constructor(knex: KnexClient.Interface, tableNameResolver: TableNameResolver.Interface, modelSchemaManager: ModelSchemaManager.Interface);
11
+ execute(params: CmsModelStorageOperationsListParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel[]>;
12
+ }
13
+ export declare const SqlListModels: typeof SqlListModelsImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js").IListModelsStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,31 @@
1
+ import { ListModelsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js";
2
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
3
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
4
+ import { rowToModel } from "./mappers.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ class SqlListModelsImpl {
7
+ constructor(knex, tableNameResolver, modelSchemaManager){
8
+ this.knex = knex;
9
+ this.modelSchemaManager = modelSchemaManager;
10
+ this.tableName = tableNameResolver.resolve("models");
11
+ }
12
+ async execute(params) {
13
+ await this.modelSchemaManager.ensure(this.tableName);
14
+ const { where } = params;
15
+ const qb = this.knex.client(this.tableName).where("tenant", where.tenant);
16
+ qb.orderBy("modelId", "asc");
17
+ const rows = await qb.select();
18
+ return rows.map(rowToModel);
19
+ }
20
+ }
21
+ const SqlListModels = ListModelsStorageOperation.createImplementation({
22
+ implementation: SqlListModelsImpl,
23
+ dependencies: [
24
+ KnexClient,
25
+ TableNameResolver,
26
+ ModelSchemaManager
27
+ ]
28
+ });
29
+ export { SqlListModels };
30
+
31
+ //# sourceMappingURL=SqlListModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/SqlListModels.js","sources":["../../../src/operations/model/SqlListModels.ts"],"sourcesContent":["import type { CmsModelStorageOperationsListParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IModelRow } from \"./types.js\";\nimport { ListModelsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js\";\nimport { TableNameResolver } from \"~/features/tableNameResolver/abstractions.js\";\nimport { ModelSchemaManager } from \"~/features/modelSchemaManager/abstractions.js\";\nimport { rowToModel } from \"./mappers.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\n\nclass SqlListModelsImpl implements ListModelsStorageOperation.Interface {\n private tableName: string;\n\n constructor(\n private knex: KnexClient.Interface,\n tableNameResolver: TableNameResolver.Interface,\n private modelSchemaManager: ModelSchemaManager.Interface\n ) {\n this.tableName = tableNameResolver.resolve(\"models\");\n }\n\n async execute(params: CmsModelStorageOperationsListParams) {\n await this.modelSchemaManager.ensure(this.tableName);\n\n const { where } = params;\n const qb = this.knex.client<IModelRow>(this.tableName).where(\"tenant\", where.tenant);\n\n qb.orderBy(\"modelId\", \"asc\");\n\n const rows = await qb.select<IModelRow[]>();\n\n return rows.map(rowToModel);\n }\n}\n\nexport const SqlListModels = ListModelsStorageOperation.createImplementation({\n implementation: SqlListModelsImpl,\n dependencies: [KnexClient, TableNameResolver, ModelSchemaManager]\n});\n"],"names":["SqlListModelsImpl","knex","tableNameResolver","modelSchemaManager","params","where","qb","rows","rowToModel","SqlListModels","ListModelsStorageOperation","KnexClient","TableNameResolver","ModelSchemaManager"],"mappings":";;;;;AAQA,MAAMA;IAGF,YACYC,IAA0B,EAClCC,iBAA8C,EACtCC,kBAAgD,CAC1D;aAHUF,IAAI,GAAJA;aAEAE,kBAAkB,GAAlBA;QAER,IAAI,CAAC,SAAS,GAAGD,kBAAkB,OAAO,CAAC;IAC/C;IAEA,MAAM,QAAQE,MAA2C,EAAE;QACvD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;QAEnD,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAY,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,UAAUD,MAAM,MAAM;QAEnFC,GAAG,OAAO,CAAC,WAAW;QAEtB,MAAMC,OAAO,MAAMD,GAAG,MAAM;QAE5B,OAAOC,KAAK,GAAG,CAACC;IACpB;AACJ;AAEO,MAAMC,gBAAgBC,2BAA2B,oBAAoB,CAAC;IACzE,gBAAgBV;IAChB,cAAc;QAACW;QAAYC;QAAmBC;KAAmB;AACrE"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModelStorageOperationsUpdateParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { UpdateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js";
3
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
4
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ declare class SqlUpdateModelImpl implements UpdateModelStorageOperation.Interface {
7
+ private knex;
8
+ private modelSchemaManager;
9
+ private tableName;
10
+ constructor(knex: KnexClient.Interface, tableNameResolver: TableNameResolver.Interface, modelSchemaManager: ModelSchemaManager.Interface);
11
+ execute(params: CmsModelStorageOperationsUpdateParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel>;
12
+ }
13
+ export declare const SqlUpdateModel: typeof SqlUpdateModelImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js").IUpdateModelStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,30 @@
1
+ import { UpdateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js";
2
+ import { TableNameResolver } from "../../features/tableNameResolver/abstractions.js";
3
+ import { ModelSchemaManager } from "../../features/modelSchemaManager/abstractions.js";
4
+ import { modelToRow } from "./mappers.js";
5
+ import { KnexClient } from "@webiny/api-core-sql";
6
+ class SqlUpdateModelImpl {
7
+ constructor(knex, tableNameResolver, modelSchemaManager){
8
+ this.knex = knex;
9
+ this.modelSchemaManager = modelSchemaManager;
10
+ this.tableName = tableNameResolver.resolve("models");
11
+ }
12
+ async execute(params) {
13
+ const model = params.model;
14
+ const row = modelToRow(model);
15
+ await this.modelSchemaManager.ensure(this.tableName);
16
+ await this.knex.client(this.tableName).where("tenant", model.tenant).andWhere("modelId", model.modelId).update(row);
17
+ return model;
18
+ }
19
+ }
20
+ const SqlUpdateModel = UpdateModelStorageOperation.createImplementation({
21
+ implementation: SqlUpdateModelImpl,
22
+ dependencies: [
23
+ KnexClient,
24
+ TableNameResolver,
25
+ ModelSchemaManager
26
+ ]
27
+ });
28
+ export { SqlUpdateModel };
29
+
30
+ //# sourceMappingURL=SqlUpdateModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/SqlUpdateModel.js","sources":["../../../src/operations/model/SqlUpdateModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsUpdateParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IModelRow } from \"./types.js\";\nimport { UpdateModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js\";\nimport { TableNameResolver } from \"~/features/tableNameResolver/abstractions.js\";\nimport { ModelSchemaManager } from \"~/features/modelSchemaManager/abstractions.js\";\nimport { modelToRow } from \"./mappers.js\";\nimport { KnexClient } from \"@webiny/api-core-sql\";\n\nclass SqlUpdateModelImpl implements UpdateModelStorageOperation.Interface {\n private tableName: string;\n\n constructor(\n private knex: KnexClient.Interface,\n tableNameResolver: TableNameResolver.Interface,\n private modelSchemaManager: ModelSchemaManager.Interface\n ) {\n this.tableName = tableNameResolver.resolve(\"models\");\n }\n\n async execute(params: CmsModelStorageOperationsUpdateParams) {\n const model = params.model;\n const row = modelToRow(model);\n\n await this.modelSchemaManager.ensure(this.tableName);\n await this.knex\n .client<IModelRow>(this.tableName)\n .where(\"tenant\", model.tenant)\n .andWhere(\"modelId\", model.modelId)\n .update(row);\n\n return model;\n }\n}\n\nexport const SqlUpdateModel = UpdateModelStorageOperation.createImplementation({\n implementation: SqlUpdateModelImpl,\n dependencies: [KnexClient, TableNameResolver, ModelSchemaManager]\n});\n"],"names":["SqlUpdateModelImpl","knex","tableNameResolver","modelSchemaManager","params","model","row","modelToRow","SqlUpdateModel","UpdateModelStorageOperation","KnexClient","TableNameResolver","ModelSchemaManager"],"mappings":";;;;;AAQA,MAAMA;IAGF,YACYC,IAA0B,EAClCC,iBAA8C,EACtCC,kBAAgD,CAC1D;aAHUF,IAAI,GAAJA;aAEAE,kBAAkB,GAAlBA;QAER,IAAI,CAAC,SAAS,GAAGD,kBAAkB,OAAO,CAAC;IAC/C;IAEA,MAAM,QAAQE,MAA6C,EAAE;QACzD,MAAMC,QAAQD,OAAO,KAAK;QAC1B,MAAME,MAAMC,WAAWF;QAEvB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;QACnD,MAAM,IAAI,CAAC,IAAI,CACV,MAAM,CAAY,IAAI,CAAC,SAAS,EAChC,KAAK,CAAC,UAAUA,MAAM,MAAM,EAC5B,QAAQ,CAAC,WAAWA,MAAM,OAAO,EACjC,MAAM,CAACC;QAEZ,OAAOD;IACX;AACJ;AAEO,MAAMG,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBT;IAChB,cAAc;QAACU;QAAYC;QAAmBC;KAAmB;AACrE"}
@@ -0,0 +1,4 @@
1
+ export declare const SqlModelStorageOpsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { SqlGetModel } from "./SqlGetModel.js";
3
+ import { SqlListModels } from "./SqlListModels.js";
4
+ import { SqlCreateModel } from "./SqlCreateModel.js";
5
+ import { SqlUpdateModel } from "./SqlUpdateModel.js";
6
+ import { SqlDeleteModel } from "./SqlDeleteModel.js";
7
+ const SqlModelStorageOpsFeature = createFeature({
8
+ name: "cms.sql.modelStorageOps",
9
+ register: (container)=>{
10
+ container.register(SqlGetModel);
11
+ container.register(SqlListModels);
12
+ container.register(SqlCreateModel);
13
+ container.register(SqlUpdateModel);
14
+ container.register(SqlDeleteModel);
15
+ }
16
+ });
17
+ export { SqlModelStorageOpsFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/feature.js","sources":["../../../src/operations/model/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { SqlGetModel } from \"./SqlGetModel.js\";\nimport { SqlListModels } from \"./SqlListModels.js\";\nimport { SqlCreateModel } from \"./SqlCreateModel.js\";\nimport { SqlUpdateModel } from \"./SqlUpdateModel.js\";\nimport { SqlDeleteModel } from \"./SqlDeleteModel.js\";\n\nexport const SqlModelStorageOpsFeature = createFeature({\n name: \"cms.sql.modelStorageOps\",\n register: container => {\n container.register(SqlGetModel);\n container.register(SqlListModels);\n container.register(SqlCreateModel);\n container.register(SqlUpdateModel);\n container.register(SqlDeleteModel);\n }\n});\n"],"names":["SqlModelStorageOpsFeature","createFeature","container","SqlGetModel","SqlListModels","SqlCreateModel","SqlUpdateModel","SqlDeleteModel"],"mappings":";;;;;;AAOO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;IACvB;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-sql",
3
- "version": "0.0.0-unstable.b6d7105cee",
3
+ "version": "0.0.0-unstable.e9333b3f0b",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -22,22 +22,25 @@
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.b6d7105cee",
26
- "@webiny/api-headless-cms": "0.0.0-unstable.b6d7105cee",
27
- "@webiny/api-headless-cms-storage": "0.0.0-unstable.b6d7105cee",
28
- "@webiny/db-utils": "0.0.0-unstable.b6d7105cee",
29
- "@webiny/feature": "0.0.0-unstable.b6d7105cee",
30
- "@webiny/handler": "0.0.0-unstable.b6d7105cee",
31
- "@webiny/plugins": "0.0.0-unstable.b6d7105cee",
32
- "@webiny/utils": "0.0.0-unstable.b6d7105cee",
25
+ "@webiny/api-core-sql": "0.0.0-unstable.e9333b3f0b",
26
+ "@webiny/api-headless-cms": "0.0.0-unstable.e9333b3f0b",
27
+ "@webiny/api-headless-cms-storage": "0.0.0-unstable.e9333b3f0b",
28
+ "@webiny/db-utils": "0.0.0-unstable.e9333b3f0b",
29
+ "@webiny/feature": "0.0.0-unstable.e9333b3f0b",
30
+ "@webiny/handler": "0.0.0-unstable.e9333b3f0b",
31
+ "@webiny/utils": "0.0.0-unstable.e9333b3f0b",
33
32
  "knex": "3.3.0"
34
33
  },
35
34
  "devDependencies": {
36
- "@webiny/build-tools": "0.0.0-unstable.b6d7105cee",
37
- "@webiny/project-utils": "0.0.0-unstable.b6d7105cee",
38
- "better-sqlite3": "13.0.1",
35
+ "@electric-sql/pglite": "0.5.5",
36
+ "@electric-sql/pglite-socket": "0.2.8",
37
+ "@webiny/api-core": "0.0.0-unstable.e9333b3f0b",
38
+ "@webiny/build-tools": "0.0.0-unstable.e9333b3f0b",
39
+ "@webiny/di": "1.1.0",
40
+ "better-sqlite3": "13.0.3",
41
+ "pg": "8.23.0",
39
42
  "typescript": "7.0.2",
40
- "vitest": "4.1.10"
43
+ "vitest": "4.1.11"
41
44
  },
42
45
  "publishConfig": {
43
46
  "access": "public"
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Per-request half of the SQL CMS storage: the storage operations. Register it in the request (child)
3
+ * container, after `HeadlessCmsSqlFeature` is in the root.
4
+ *
5
+ * - @webiny/di applies a decorator only if it sits in the same container as the registration it
6
+ * decorates, or in one of that container's parents. Extensions register their decorators in the
7
+ * request container, so with the storage operations in the root, an extension decorator on one of
8
+ * them (e.g. `ListModelsStorageOperation`) would be skipped without an error. Registering them
9
+ * here puts the decorator and its target in the same container.
10
+ * - The filter registries are mutable; a root instance would collect every request's registrations.
11
+ */
12
+ export declare const HeadlessCmsSqlRequestFeature: {
13
+ name: string;
14
+ register(container: import("@webiny/di").Container): void;
15
+ };
@@ -0,0 +1,17 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { FilterRegistriesFeature } from "@webiny/api-headless-cms-storage";
3
+ import { SqlGroupStorageOpsFeature } from "./operations/group/feature.js";
4
+ import { SqlModelStorageOpsFeature } from "./operations/model/feature.js";
5
+ import { SqlEntryStorageOpsFeature } from "./operations/entry/feature.js";
6
+ const HeadlessCmsSqlRequestFeature = createFeature({
7
+ name: "cms.storageOperations.sql.request",
8
+ register: (container)=>{
9
+ FilterRegistriesFeature.register(container);
10
+ SqlGroupStorageOpsFeature.register(container);
11
+ SqlModelStorageOpsFeature.register(container);
12
+ SqlEntryStorageOpsFeature.register(container);
13
+ }
14
+ });
15
+ export { HeadlessCmsSqlRequestFeature };
16
+
17
+ //# sourceMappingURL=requestFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestFeature.js","sources":["../src/requestFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { FilterRegistriesFeature } from \"@webiny/api-headless-cms-storage\";\nimport { SqlGroupStorageOpsFeature } from \"~/operations/group/feature.js\";\nimport { SqlModelStorageOpsFeature } from \"~/operations/model/feature.js\";\nimport { SqlEntryStorageOpsFeature } from \"~/operations/entry/feature.js\";\n\n/**\n * Per-request half of the SQL CMS storage: the storage operations. Register it in the request (child)\n * container, after `HeadlessCmsSqlFeature` is in the root.\n *\n * - @webiny/di applies a decorator only if it sits in the same container as the registration it\n * decorates, or in one of that container's parents. Extensions register their decorators in the\n * request container, so with the storage operations in the root, an extension decorator on one of\n * them (e.g. `ListModelsStorageOperation`) would be skipped without an error. Registering them\n * here puts the decorator and its target in the same container.\n * - The filter registries are mutable; a root instance would collect every request's registrations.\n */\nexport const HeadlessCmsSqlRequestFeature = createFeature({\n name: \"cms.storageOperations.sql.request\",\n register: container => {\n FilterRegistriesFeature.register(container);\n\n SqlGroupStorageOpsFeature.register(container);\n SqlModelStorageOpsFeature.register(container);\n SqlEntryStorageOpsFeature.register(container);\n }\n});\n"],"names":["HeadlessCmsSqlRequestFeature","createFeature","container","FilterRegistriesFeature","SqlGroupStorageOpsFeature","SqlModelStorageOpsFeature","SqlEntryStorageOpsFeature"],"mappings":";;;;;AAiBO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAAUC,CAAAA;QACNC,wBAAwB,QAAQ,CAACD;QAEjCE,0BAA0B,QAAQ,CAACF;QACnCG,0BAA0B,QAAQ,CAACH;QACnCI,0BAA0B,QAAQ,CAACJ;IACvC;AACJ"}
@@ -1,13 +0,0 @@
1
- import type { CmsEntryStorageOperations } from "@webiny/api-headless-cms/types/index.js";
2
- import type { PluginsContainer } from "@webiny/plugins";
3
- import type { CmsContext } from "../../types.js";
4
- import type { EntryTableManager } from "../../features/entryTableManager/abstractions.js";
5
- import { KnexClient } from "@webiny/api-core-sql";
6
- interface CreateEntriesStorageOperationsParams {
7
- knex: KnexClient.Interface;
8
- entryTableManager: EntryTableManager.Interface;
9
- container: CmsContext["container"];
10
- plugins: PluginsContainer;
11
- }
12
- export declare const createEntriesStorageOperations: (params: CreateEntriesStorageOperationsParams) => CmsEntryStorageOperations;
13
- export {};