@webiny/api-headless-cms-utils-os 0.0.0-unstable.0d717d18dd → 6.6.0-alpha.1

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 (31) hide show
  1. package/configurations.d.ts +8 -9
  2. package/configurations.js +15 -22
  3. package/configurations.js.map +1 -1
  4. package/exports/api/cms/opensearch.d.ts +1 -0
  5. package/exports/api/cms/opensearch.js +1 -0
  6. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +1 -1
  7. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +1 -1
  8. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -1
  9. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js +3 -4
  10. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js.map +1 -1
  11. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js +3 -4
  12. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js.map +1 -1
  13. package/features/CmsEntryOpenSearchUtilsFeature.js +2 -0
  14. package/features/CmsEntryOpenSearchUtilsFeature.js.map +1 -1
  15. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.d.ts +8 -0
  16. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.js +17 -0
  17. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.js.map +1 -0
  18. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.d.ts +12 -0
  19. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.js +35 -0
  20. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.js.map +1 -0
  21. package/features/CmsModelOpenSearchIndex/feature.d.ts +4 -0
  22. package/features/CmsModelOpenSearchIndex/feature.js +13 -0
  23. package/features/CmsModelOpenSearchIndex/feature.js.map +1 -0
  24. package/features/CmsModelOpenSearchIndex/index.d.ts +3 -0
  25. package/features/CmsModelOpenSearchIndex/index.js +3 -0
  26. package/package.json +6 -6
  27. package/testing/createTestModelIndexName.d.ts +3 -0
  28. package/testing/createTestModelIndexName.js +11 -0
  29. package/testing/createTestModelIndexName.js.map +1 -0
  30. package/testing/index.d.ts +1 -0
  31. package/testing/index.js +1 -0
@@ -1,10 +1,9 @@
1
1
  import type { StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- export declare const configurations: {
3
- es(params: {
4
- model: Pick<StorageCmsModel, "tenant" | "modelId">;
5
- }): {
6
- index: string;
7
- settings: import("@opensearch-project/opensearch/api/index.js").Indices_Create_RequestBody;
8
- shared: boolean;
9
- };
10
- };
2
+ import type { CmsModelOpenSearchIndexProvider, ICmsModelOpenSearchIndexProviderResult } from "./features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
3
+ export interface CmsElasticsearchParams {
4
+ model: StorageCmsModel;
5
+ }
6
+ export interface Configurations {
7
+ es: (params: CmsElasticsearchParams) => Promise<ICmsModelOpenSearchIndexProviderResult>;
8
+ }
9
+ export declare const createConfigurations: (provider: CmsModelOpenSearchIndexProvider.Interface) => Configurations;
package/configurations.js CHANGED
@@ -1,24 +1,17 @@
1
- import error from "@webiny/error";
2
- import { getBaseConfiguration, getOpenSearchIndexPrefix, isSharedOpenSearchIndex } from "@webiny/api-opensearch";
3
- const configurations = {
4
- es (params) {
5
- const { model } = params;
6
- const { tenant } = model;
7
- if (!tenant) throw new error('Missing "tenant" parameter when trying to create Elasticsearch index name.', "TENANT_ERROR");
8
- const shared = isSharedOpenSearchIndex();
9
- const index = [
10
- shared ? "root" : tenant,
11
- "headless-cms",
12
- model.modelId
13
- ].join("-").toLowerCase();
14
- const prefix = getOpenSearchIndexPrefix();
15
- return {
16
- index: prefix ? prefix + index : index,
17
- settings: getBaseConfiguration(),
18
- shared
19
- };
20
- }
21
- };
22
- export { configurations };
1
+ import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
2
+ const createConfigurations = (provider)=>({
3
+ async es ({ model }) {
4
+ const result = await provider.execute({
5
+ model
6
+ });
7
+ const prefix = getOpenSearchIndexPrefix();
8
+ if (!prefix) return result;
9
+ return {
10
+ ...result,
11
+ index: prefix + result.index
12
+ };
13
+ }
14
+ });
15
+ export { createConfigurations };
23
16
 
24
17
  //# sourceMappingURL=configurations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configurations.js","sources":["../src/configurations.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n getBaseConfiguration,\n getOpenSearchIndexPrefix,\n isSharedOpenSearchIndex\n} from \"@webiny/api-opensearch\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const configurations = {\n es(params: { model: Pick<StorageCmsModel, \"tenant\" | \"modelId\"> }) {\n const { model } = params;\n const { tenant } = model;\n\n if (!tenant) {\n throw new WebinyError(\n `Missing \"tenant\" parameter when trying to create Elasticsearch index name.`,\n \"TENANT_ERROR\"\n );\n }\n\n const shared = isSharedOpenSearchIndex();\n const index = [shared ? \"root\" : tenant, \"headless-cms\", model.modelId]\n .join(\"-\")\n .toLowerCase();\n\n const prefix = getOpenSearchIndexPrefix();\n\n return {\n index: prefix ? prefix + index : index,\n settings: getBaseConfiguration(),\n shared\n };\n }\n};\n"],"names":["configurations","params","model","tenant","WebinyError","shared","isSharedOpenSearchIndex","index","prefix","getOpenSearchIndexPrefix","getBaseConfiguration"],"mappings":";;AAQO,MAAMA,iBAAiB;IAC1B,IAAGC,MAA8D;QAC7D,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAM,EAAEE,MAAM,EAAE,GAAGD;QAEnB,IAAI,CAACC,QACD,MAAM,IAAIC,MACN,8EACA;QAIR,MAAMC,SAASC;QACf,MAAMC,QAAQ;YAACF,SAAS,SAASF;YAAQ;YAAgBD,MAAM,OAAO;SAAC,CAClE,IAAI,CAAC,KACL,WAAW;QAEhB,MAAMM,SAASC;QAEf,OAAO;YACH,OAAOD,SAASA,SAASD,QAAQA;YACjC,UAAUG;YACVL;QACJ;IACJ;AACJ"}
1
+ {"version":3,"file":"configurations.js","sources":["../src/configurations.ts"],"sourcesContent":["import { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type {\n CmsModelOpenSearchIndexProvider,\n ICmsModelOpenSearchIndexProviderResult\n} from \"./features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\n\nexport interface CmsElasticsearchParams {\n model: StorageCmsModel;\n}\n\nexport interface Configurations {\n es: (params: CmsElasticsearchParams) => Promise<ICmsModelOpenSearchIndexProviderResult>;\n}\n\nexport const createConfigurations = (\n provider: CmsModelOpenSearchIndexProvider.Interface\n): Configurations => ({\n async es({ model }) {\n const result = await provider.execute({ model });\n\n const prefix = getOpenSearchIndexPrefix();\n\n if (!prefix) {\n return result;\n }\n return {\n ...result,\n index: prefix + result.index\n };\n }\n});\n"],"names":["createConfigurations","provider","model","result","prefix","getOpenSearchIndexPrefix"],"mappings":";AAeO,MAAMA,uBAAuB,CAChCC,WACkB;QAClB,MAAM,IAAG,EAAEC,KAAK,EAAE;YACd,MAAMC,SAAS,MAAMF,SAAS,OAAO,CAAC;gBAAEC;YAAM;YAE9C,MAAME,SAASC;YAEf,IAAI,CAACD,QACD,OAAOD;YAEX,OAAO;gBACH,GAAGA,MAAM;gBACT,OAAOC,SAASD,OAAO,KAAK;YAChC;QACJ;IACJ"}
@@ -1,3 +1,4 @@
1
+ export { CmsModelOpenSearchIndexProvider, CmsModelOpenSearchIndex } from "../../../features/CmsModelOpenSearchIndex/index.js";
1
2
  export { CmsEntryOpenSearchUtilsFeature } from "../../../features/CmsEntryOpenSearchUtilsFeature.js";
2
3
  export { CmsEntryOpenSearchFieldIndexRegistry, CmsEntryOpenSearchFieldIndex } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
3
4
  export { CmsEntryOpenSearchFilterRegistry, CmsEntryOpenSearchFilter } from "../../../features/CmsEntryOpenSearchFilter/index.js";
@@ -1,3 +1,4 @@
1
+ export { CmsModelOpenSearchIndex, CmsModelOpenSearchIndexProvider } from "../../../features/CmsModelOpenSearchIndex/index.js";
1
2
  export { CmsEntryOpenSearchUtilsFeature } from "../../../features/CmsEntryOpenSearchUtilsFeature.js";
2
3
  export { CmsEntryOpenSearchFieldIndex, CmsEntryOpenSearchFieldIndexRegistry } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
3
4
  export { CmsEntryOpenSearchFilter, CmsEntryOpenSearchFilterRegistry } from "../../../features/CmsEntryOpenSearchFilter/index.js";
@@ -3,7 +3,7 @@ import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js
3
3
  declare class BaseOpenSearchIndexImpl implements CmsEntryOpenSearchIndex.Interface {
4
4
  readonly body: OpenSearchIndexRequestBody;
5
5
  constructor();
6
- canUse(_: CmsEntryOpenSearchIndex.CanUseParams): boolean;
6
+ canUse(): boolean;
7
7
  }
8
8
  export declare const BaseOpenSearchIndex: typeof BaseOpenSearchIndexImpl & {
9
9
  __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICmsEntryOpenSearchIndex>;
@@ -4,7 +4,7 @@ class BaseOpenSearchIndexImpl {
4
4
  constructor(){
5
5
  this.body = getBaseConfiguration();
6
6
  }
7
- canUse(_) {
7
+ canUse() {
8
8
  return true;
9
9
  }
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js","sources":["../../../src/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.ts"],"sourcesContent":["import { getBaseConfiguration } from \"@webiny/api-opensearch\";\nimport { CmsEntryOpenSearchIndex } from \"./abstractions.js\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\n\nclass BaseOpenSearchIndexImpl implements CmsEntryOpenSearchIndex.Interface {\n public readonly body: OpenSearchIndexRequestBody;\n\n public constructor() {\n this.body = getBaseConfiguration();\n }\n public canUse(_: CmsEntryOpenSearchIndex.CanUseParams): boolean {\n return true;\n }\n}\n\nexport const BaseOpenSearchIndex = CmsEntryOpenSearchIndex.createImplementation({\n implementation: BaseOpenSearchIndexImpl,\n dependencies: []\n});\n"],"names":["BaseOpenSearchIndexImpl","getBaseConfiguration","_","BaseOpenSearchIndex","CmsEntryOpenSearchIndex"],"mappings":";;AAIA,MAAMA;IAGF,aAAqB;QACjB,IAAI,CAAC,IAAI,GAAGC;IAChB;IACO,OAAOC,CAAuC,EAAW;QAC5D,OAAO;IACX;AACJ;AAEO,MAAMC,sBAAsBC,wBAAwB,oBAAoB,CAAC;IAC5E,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js","sources":["../../../src/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.ts"],"sourcesContent":["import { getBaseConfiguration } from \"@webiny/api-opensearch\";\nimport { CmsEntryOpenSearchIndex } from \"./abstractions.js\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\n\nclass BaseOpenSearchIndexImpl implements CmsEntryOpenSearchIndex.Interface {\n public readonly body: OpenSearchIndexRequestBody;\n\n public constructor() {\n this.body = getBaseConfiguration();\n }\n public canUse(): boolean {\n return true;\n }\n}\n\nexport const BaseOpenSearchIndex = CmsEntryOpenSearchIndex.createImplementation({\n implementation: BaseOpenSearchIndexImpl,\n dependencies: []\n});\n"],"names":["BaseOpenSearchIndexImpl","getBaseConfiguration","BaseOpenSearchIndex","CmsEntryOpenSearchIndex"],"mappings":";;AAIA,MAAMA;IAGF,aAAqB;QACjB,IAAI,CAAC,IAAI,GAAGC;IAChB;IACO,SAAkB;QACrB,OAAO;IACX;AACJ;AAEO,MAAMC,sBAAsBC,wBAAwB,oBAAoB,CAAC;IAC5E,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -2,7 +2,7 @@ import error from "@webiny/error";
2
2
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
3
3
  import { CmsModelOpenSearchIndexProvider } from "../CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
4
4
  import { CmsEntryOpenSearchIndexCreate } from "./abstractions.js";
5
- import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
5
+ import { createConfigurations } from "../../configurations.js";
6
6
  class CmsEntryOpenSearchIndexCreateImpl {
7
7
  constructor(openSearchClient, indexProvider){
8
8
  this.openSearchClient = openSearchClient;
@@ -11,11 +11,10 @@ class CmsEntryOpenSearchIndexCreateImpl {
11
11
  async execute(params) {
12
12
  const { model } = params;
13
13
  const client = this.openSearchClient.use();
14
- const { index: rawIndex, settings } = await this.indexProvider.execute({
14
+ const configurations = createConfigurations(this.indexProvider);
15
+ const { index, settings } = await configurations.es({
15
16
  model
16
17
  });
17
- const prefix = getOpenSearchIndexPrefix();
18
- const index = prefix ? prefix + rawIndex : rawIndex;
19
18
  try {
20
19
  const response = await client.indices.exists({
21
20
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js","sources":["../../../src/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"~/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { CmsEntryOpenSearchIndexCreate as CmsEntryOpenSearchIndexCreateAbstraction } from \"./abstractions.js\";\nimport { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\n\nclass CmsEntryOpenSearchIndexCreateImpl\n implements CmsEntryOpenSearchIndexCreateAbstraction.Interface\n{\n public constructor(\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexProvider: CmsModelOpenSearchIndexProvider.Interface\n ) {}\n\n public async execute(params: CmsEntryOpenSearchIndexCreateAbstraction.Params): Promise<void> {\n const { model } = params;\n const client = this.openSearchClient.use();\n\n const { index: rawIndex, settings } = await this.indexProvider.execute({ model });\n const prefix = getOpenSearchIndexPrefix();\n const index = prefix ? prefix + rawIndex : rawIndex;\n\n try {\n const response = await client.indices.exists({\n index,\n ignore_unavailable: false,\n allow_no_indices: true,\n include_defaults: true,\n flat_settings: false,\n local: false\n });\n if (response.body) {\n console.log(\n `Elasticsearch index \"${index}\" for the CMS model \"${model.name}\" already exists.`\n );\n return;\n }\n } catch {\n console.error(`Could not determine if the index \"${index}\" exists.`);\n }\n\n try {\n await client.indices.create({\n index,\n body: {\n ...settings\n }\n });\n } catch (ex) {\n console.error(\n `Could not create Elasticsearch index \"${index}\" for the CMS model \"${model.name}\".`\n );\n console.error(ex);\n throw new WebinyError(\n ex.message || \"Could not create OpenSearch index for the CMS entry.\",\n ex.code || \"CREATE_OPENSEARCH_INDEX_ERROR\",\n {\n error: {\n ...ex,\n message: ex.message,\n code: ex.code,\n data: ex.data\n },\n tenant: model.tenant,\n index,\n body: settings\n }\n );\n }\n }\n}\n\nexport const CmsEntryOpenSearchIndexCreate =\n CmsEntryOpenSearchIndexCreateAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchIndexCreateImpl,\n dependencies: [OpenSearchClient, CmsModelOpenSearchIndexProvider]\n });\n"],"names":["CmsEntryOpenSearchIndexCreateImpl","openSearchClient","indexProvider","params","model","client","rawIndex","settings","prefix","getOpenSearchIndexPrefix","index","response","console","ex","WebinyError","CmsEntryOpenSearchIndexCreate","CmsEntryOpenSearchIndexCreateAbstraction","OpenSearchClient","CmsModelOpenSearchIndexProvider"],"mappings":";;;;;AAMA,MAAMA;IAGF,YACqBC,gBAA4C,EAC5CC,aAAwD,CAC3E;aAFmBD,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;IAClB;IAEH,MAAa,QAAQC,MAAuD,EAAiB;QACzF,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAM,EAAE,OAAOC,QAAQ,EAAEC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAEH;QAAM;QAC/E,MAAMI,SAASC;QACf,MAAMC,QAAQF,SAASA,SAASF,WAAWA;QAE3C,IAAI;YACA,MAAMK,WAAW,MAAMN,OAAO,OAAO,CAAC,MAAM,CAAC;gBACzCK;gBACA,oBAAoB;gBACpB,kBAAkB;gBAClB,kBAAkB;gBAClB,eAAe;gBACf,OAAO;YACX;YACA,IAAIC,SAAS,IAAI,EAAE,YACfC,QAAQ,GAAG,CACP,CAAC,qBAAqB,EAAEF,MAAM,qBAAqB,EAAEN,MAAM,IAAI,CAAC,iBAAiB,CAAC;QAI9F,EAAE,OAAM;YACJQ,QAAQ,KAAK,CAAC,CAAC,kCAAkC,EAAEF,MAAM,SAAS,CAAC;QACvE;QAEA,IAAI;YACA,MAAML,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBK;gBACA,MAAM;oBACF,GAAGH,QAAQ;gBACf;YACJ;QACJ,EAAE,OAAOM,IAAI;YACTD,QAAQ,KAAK,CACT,CAAC,sCAAsC,EAAEF,MAAM,qBAAqB,EAAEN,MAAM,IAAI,CAAC,EAAE,CAAC;YAExFQ,QAAQ,KAAK,CAACC;YACd,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,wDACdA,GAAG,IAAI,IAAI,iCACX;gBACI,OAAO;oBACH,GAAGA,EAAE;oBACL,SAASA,GAAG,OAAO;oBACnB,MAAMA,GAAG,IAAI;oBACb,MAAMA,GAAG,IAAI;gBACjB;gBACA,QAAQT,MAAM,MAAM;gBACpBM;gBACA,MAAMH;YACV;QAER;IACJ;AACJ;AAEO,MAAMQ,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBhB;IAChB,cAAc;QAACiB;QAAkBC;KAAgC;AACrE"}
1
+ {"version":3,"file":"features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js","sources":["../../../src/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"~/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { CmsEntryOpenSearchIndexCreate as CmsEntryOpenSearchIndexCreateAbstraction } from \"./abstractions.js\";\nimport { createConfigurations } from \"~/configurations.js\";\n\nclass CmsEntryOpenSearchIndexCreateImpl\n implements CmsEntryOpenSearchIndexCreateAbstraction.Interface\n{\n public constructor(\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexProvider: CmsModelOpenSearchIndexProvider.Interface\n ) {}\n\n public async execute(params: CmsEntryOpenSearchIndexCreateAbstraction.Params): Promise<void> {\n const { model } = params;\n const client = this.openSearchClient.use();\n\n const configurations = createConfigurations(this.indexProvider);\n const { index, settings } = await configurations.es({ model });\n\n try {\n const response = await client.indices.exists({\n index,\n ignore_unavailable: false,\n allow_no_indices: true,\n include_defaults: true,\n flat_settings: false,\n local: false\n });\n if (response.body) {\n console.log(\n `Elasticsearch index \"${index}\" for the CMS model \"${model.name}\" already exists.`\n );\n return;\n }\n } catch {\n console.error(`Could not determine if the index \"${index}\" exists.`);\n }\n\n try {\n await client.indices.create({\n index,\n body: {\n ...settings\n }\n });\n } catch (ex) {\n console.error(\n `Could not create Elasticsearch index \"${index}\" for the CMS model \"${model.name}\".`\n );\n console.error(ex);\n throw new WebinyError(\n ex.message || \"Could not create OpenSearch index for the CMS entry.\",\n ex.code || \"CREATE_OPENSEARCH_INDEX_ERROR\",\n {\n error: {\n ...ex,\n message: ex.message,\n code: ex.code,\n data: ex.data\n },\n tenant: model.tenant,\n index,\n body: settings\n }\n );\n }\n }\n}\n\nexport const CmsEntryOpenSearchIndexCreate =\n CmsEntryOpenSearchIndexCreateAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchIndexCreateImpl,\n dependencies: [OpenSearchClient, CmsModelOpenSearchIndexProvider]\n });\n"],"names":["CmsEntryOpenSearchIndexCreateImpl","openSearchClient","indexProvider","params","model","client","configurations","createConfigurations","index","settings","response","console","ex","WebinyError","CmsEntryOpenSearchIndexCreate","CmsEntryOpenSearchIndexCreateAbstraction","OpenSearchClient","CmsModelOpenSearchIndexProvider"],"mappings":";;;;;AAMA,MAAMA;IAGF,YACqBC,gBAA4C,EAC5CC,aAAwD,CAC3E;aAFmBD,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;IAClB;IAEH,MAAa,QAAQC,MAAuD,EAAiB;QACzF,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAMC,iBAAiBC,qBAAqB,IAAI,CAAC,aAAa;QAC9D,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAG,MAAMH,eAAe,EAAE,CAAC;YAAEF;QAAM;QAE5D,IAAI;YACA,MAAMM,WAAW,MAAML,OAAO,OAAO,CAAC,MAAM,CAAC;gBACzCG;gBACA,oBAAoB;gBACpB,kBAAkB;gBAClB,kBAAkB;gBAClB,eAAe;gBACf,OAAO;YACX;YACA,IAAIE,SAAS,IAAI,EAAE,YACfC,QAAQ,GAAG,CACP,CAAC,qBAAqB,EAAEH,MAAM,qBAAqB,EAAEJ,MAAM,IAAI,CAAC,iBAAiB,CAAC;QAI9F,EAAE,OAAM;YACJO,QAAQ,KAAK,CAAC,CAAC,kCAAkC,EAAEH,MAAM,SAAS,CAAC;QACvE;QAEA,IAAI;YACA,MAAMH,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBG;gBACA,MAAM;oBACF,GAAGC,QAAQ;gBACf;YACJ;QACJ,EAAE,OAAOG,IAAI;YACTD,QAAQ,KAAK,CACT,CAAC,sCAAsC,EAAEH,MAAM,qBAAqB,EAAEJ,MAAM,IAAI,CAAC,EAAE,CAAC;YAExFO,QAAQ,KAAK,CAACC;YACd,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,wDACdA,GAAG,IAAI,IAAI,iCACX;gBACI,OAAO;oBACH,GAAGA,EAAE;oBACL,SAASA,GAAG,OAAO;oBACnB,MAAMA,GAAG,IAAI;oBACb,MAAMA,GAAG,IAAI;gBACjB;gBACA,QAAQR,MAAM,MAAM;gBACpBI;gBACA,MAAMC;YACV;QAER;IACJ;AACJ;AAEO,MAAMK,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBf;IAChB,cAAc;QAACgB;QAAkBC;KAAgC;AACrE"}
@@ -1,7 +1,7 @@
1
1
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
2
2
  import { CmsModelOpenSearchIndexProvider } from "../CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
3
3
  import { CmsEntryOpenSearchIndexDelete } from "./abstractions.js";
4
- import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
4
+ import { createConfigurations } from "../../configurations.js";
5
5
  class CmsEntryOpenSearchIndexDeleteImpl {
6
6
  constructor(openSearchClient, indexProvider){
7
7
  this.openSearchClient = openSearchClient;
@@ -9,12 +9,11 @@ class CmsEntryOpenSearchIndexDeleteImpl {
9
9
  }
10
10
  async execute(params) {
11
11
  const { model } = params;
12
- const { index: rawIndex, shared } = await this.indexProvider.execute({
12
+ const configurations = createConfigurations(this.indexProvider);
13
+ const { index, shared } = await configurations.es({
13
14
  model
14
15
  });
15
16
  if (shared) return;
16
- const prefix = getOpenSearchIndexPrefix();
17
- const index = prefix ? prefix + rawIndex : rawIndex;
18
17
  const client = this.openSearchClient.use();
19
18
  const { body: exists } = await client.indices.exists({
20
19
  index
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js","sources":["../../../src/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.ts"],"sourcesContent":["import { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"~/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { CmsEntryOpenSearchIndexDelete as CmsEntryOpenSearchIndexDeleteAbstraction } from \"./abstractions.js\";\nimport { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\n\nclass CmsEntryOpenSearchIndexDeleteImpl\n implements CmsEntryOpenSearchIndexDeleteAbstraction.Interface\n{\n public constructor(\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexProvider: CmsModelOpenSearchIndexProvider.Interface\n ) {}\n\n public async execute(params: CmsEntryOpenSearchIndexDeleteAbstraction.Params): Promise<void> {\n const { model } = params;\n\n const { index: rawIndex, shared } = await this.indexProvider.execute({ model });\n if (shared) {\n return;\n }\n\n const prefix = getOpenSearchIndexPrefix();\n const index = prefix ? prefix + rawIndex : rawIndex;\n const client = this.openSearchClient.use();\n\n const { body: exists } = await client.indices.exists({ index });\n if (!exists) {\n return;\n }\n\n try {\n await client.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n console.log(`Could not delete Elasticsearch index \"${index}\". Please do it manually.`);\n console.log(ex.message);\n }\n }\n}\n\nexport const CmsEntryOpenSearchIndexDelete =\n CmsEntryOpenSearchIndexDeleteAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchIndexDeleteImpl,\n dependencies: [OpenSearchClient, CmsModelOpenSearchIndexProvider]\n });\n"],"names":["CmsEntryOpenSearchIndexDeleteImpl","openSearchClient","indexProvider","params","model","rawIndex","shared","prefix","getOpenSearchIndexPrefix","index","client","exists","ex","console","CmsEntryOpenSearchIndexDelete","CmsEntryOpenSearchIndexDeleteAbstraction","OpenSearchClient","CmsModelOpenSearchIndexProvider"],"mappings":";;;;AAKA,MAAMA;IAGF,YACqBC,gBAA4C,EAC5CC,aAAwD,CAC3E;aAFmBD,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;IAClB;IAEH,MAAa,QAAQC,MAAuD,EAAiB;QACzF,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAElB,MAAM,EAAE,OAAOE,QAAQ,EAAEC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAEF;QAAM;QAC7E,IAAIE,QACA;QAGJ,MAAMC,SAASC;QACf,MAAMC,QAAQF,SAASA,SAASF,WAAWA;QAC3C,MAAMK,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAM,EAAE,MAAMC,MAAM,EAAE,GAAG,MAAMD,OAAO,OAAO,CAAC,MAAM,CAAC;YAAED;QAAM;QAC7D,IAAI,CAACE,QACD;QAGJ,IAAI;YACA,MAAMD,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBD;gBACA,oBAAoB;YACxB;QACJ,EAAE,OAAOG,IAAI;YACTC,QAAQ,GAAG,CAAC,CAAC,sCAAsC,EAAEJ,MAAM,yBAAyB,CAAC;YACrFI,QAAQ,GAAG,CAACD,GAAG,OAAO;QAC1B;IACJ;AACJ;AAEO,MAAME,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBf;IAChB,cAAc;QAACgB;QAAkBC;KAAgC;AACrE"}
1
+ {"version":3,"file":"features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js","sources":["../../../src/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.ts"],"sourcesContent":["import { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"~/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { CmsEntryOpenSearchIndexDelete as CmsEntryOpenSearchIndexDeleteAbstraction } from \"./abstractions.js\";\nimport { createConfigurations } from \"~/configurations.js\";\n\nclass CmsEntryOpenSearchIndexDeleteImpl\n implements CmsEntryOpenSearchIndexDeleteAbstraction.Interface\n{\n public constructor(\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexProvider: CmsModelOpenSearchIndexProvider.Interface\n ) {}\n\n public async execute(params: CmsEntryOpenSearchIndexDeleteAbstraction.Params): Promise<void> {\n const { model } = params;\n\n const configurations = createConfigurations(this.indexProvider);\n const { index, shared } = await configurations.es({ model });\n if (shared) {\n return;\n }\n const client = this.openSearchClient.use();\n\n const { body: exists } = await client.indices.exists({ index });\n if (!exists) {\n return;\n }\n\n try {\n await client.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n console.log(`Could not delete Elasticsearch index \"${index}\". Please do it manually.`);\n console.log(ex.message);\n }\n }\n}\n\nexport const CmsEntryOpenSearchIndexDelete =\n CmsEntryOpenSearchIndexDeleteAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchIndexDeleteImpl,\n dependencies: [OpenSearchClient, CmsModelOpenSearchIndexProvider]\n });\n"],"names":["CmsEntryOpenSearchIndexDeleteImpl","openSearchClient","indexProvider","params","model","configurations","createConfigurations","index","shared","client","exists","ex","console","CmsEntryOpenSearchIndexDelete","CmsEntryOpenSearchIndexDeleteAbstraction","OpenSearchClient","CmsModelOpenSearchIndexProvider"],"mappings":";;;;AAKA,MAAMA;IAGF,YACqBC,gBAA4C,EAC5CC,aAAwD,CAC3E;aAFmBD,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;IAClB;IAEH,MAAa,QAAQC,MAAuD,EAAiB;QACzF,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAElB,MAAME,iBAAiBC,qBAAqB,IAAI,CAAC,aAAa;QAC9D,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAG,MAAMH,eAAe,EAAE,CAAC;YAAED;QAAM;QAC1D,IAAII,QACA;QAEJ,MAAMC,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAM,EAAE,MAAMC,MAAM,EAAE,GAAG,MAAMD,OAAO,OAAO,CAAC,MAAM,CAAC;YAAEF;QAAM;QAC7D,IAAI,CAACG,QACD;QAGJ,IAAI;YACA,MAAMD,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBF;gBACA,oBAAoB;YACxB;QACJ,EAAE,OAAOI,IAAI;YACTC,QAAQ,GAAG,CAAC,CAAC,sCAAsC,EAAEL,MAAM,yBAAyB,CAAC;YACrFK,QAAQ,GAAG,CAACD,GAAG,OAAO;QAC1B;IACJ;AACJ;AAEO,MAAME,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBd;IAChB,cAAc;QAACe;QAAkBC;KAAgC;AACrE"}
@@ -13,9 +13,11 @@ import { CmsEntryOpenSearchValueSearchFeature } from "./CmsEntryOpenSearchValueS
13
13
  import { ModelAfterCreateHandler } from "./CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js";
14
14
  import { ModelAfterCreateFromHandler } from "./CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js";
15
15
  import { ModelAfterDeleteHandler } from "./CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js";
16
+ import { CmsModelOpenSearchIndexFeature } from "./CmsModelOpenSearchIndex/index.js";
16
17
  const CmsEntryOpenSearchUtilsFeature = createFeature({
17
18
  name: "Cms/Entry/OpenSearch/UtilsFeature",
18
19
  register: (container)=>{
20
+ CmsModelOpenSearchIndexFeature.register(container);
19
21
  CmsEntryOpenSearchFieldIndexFeature.register(container);
20
22
  CmsEntryOpenSearchFilterFeature.register(container);
21
23
  CmsEntryOpenSearchIndexFeature.register(container);
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchUtilsFeature.js","sources":["../../src/features/CmsEntryOpenSearchUtilsFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CmsEntryOpenSearchFieldIndexFeature } from \"./CmsEntryOpenSearchFieldIndex/feature.js\";\nimport { CmsEntryOpenSearchFilterFeature } from \"./CmsEntryOpenSearchFilter/feature.js\";\nimport { CmsEntryOpenSearchIndexFeature } from \"./CmsEntryOpenSearchIndex/feature.js\";\nimport { CmsEntryOpenSearchIndexCreateFeature } from \"./CmsEntryOpenSearchIndexCreate/feature.js\";\nimport { CmsEntryOpenSearchIndexDeleteFeature } from \"./CmsEntryOpenSearchIndexDelete/feature.js\";\nimport { CmsEntryOpenSearchFieldPathFactoryFeature } from \"./CmsEntryOpenSearchFieldPathFactory/feature.js\";\nimport { CmsEntryOpenSearchValueTransformerFeature } from \"./CmsEntryOpenSearchValueTransformer/feature.js\";\nimport { CmsEntryOpenSearchOperatorListFeature } from \"./CmsEntryOpenSearchOperatorList/feature.js\";\nimport { CmsEntryOpenSearchExecFilteringFeature } from \"./CmsEntryOpenSearchExecFiltering/feature.js\";\nimport { CmsEntryOpenSearchBodyBuilderFeature } from \"./CmsEntryOpenSearchBodyBuilder/feature.js\";\nimport { CmsEntryOpenSearchValueSearchFeature } from \"./CmsEntryOpenSearchValueSearch/feature.js\";\nimport { ModelAfterCreateHandler } from \"./CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js\";\nimport { ModelAfterCreateFromHandler } from \"./CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js\";\nimport { ModelAfterDeleteHandler } from \"./CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js\";\n\nexport const CmsEntryOpenSearchUtilsFeature = createFeature({\n name: \"Cms/Entry/OpenSearch/UtilsFeature\",\n register: container => {\n CmsEntryOpenSearchFieldIndexFeature.register(container);\n CmsEntryOpenSearchFilterFeature.register(container);\n CmsEntryOpenSearchIndexFeature.register(container);\n CmsEntryOpenSearchIndexCreateFeature.register(container);\n CmsEntryOpenSearchIndexDeleteFeature.register(container);\n CmsEntryOpenSearchFieldPathFactoryFeature.register(container);\n CmsEntryOpenSearchValueTransformerFeature.register(container);\n CmsEntryOpenSearchOperatorListFeature.register(container);\n CmsEntryOpenSearchExecFilteringFeature.register(container);\n CmsEntryOpenSearchBodyBuilderFeature.register(container);\n CmsEntryOpenSearchValueSearchFeature.register(container);\n\n // Model lifecycle event handlers for OpenSearch index management\n container.register(ModelAfterCreateHandler);\n container.register(ModelAfterCreateFromHandler);\n container.register(ModelAfterDeleteHandler);\n }\n});\n"],"names":["CmsEntryOpenSearchUtilsFeature","createFeature","container","CmsEntryOpenSearchFieldIndexFeature","CmsEntryOpenSearchFilterFeature","CmsEntryOpenSearchIndexFeature","CmsEntryOpenSearchIndexCreateFeature","CmsEntryOpenSearchIndexDeleteFeature","CmsEntryOpenSearchFieldPathFactoryFeature","CmsEntryOpenSearchValueTransformerFeature","CmsEntryOpenSearchOperatorListFeature","CmsEntryOpenSearchExecFilteringFeature","CmsEntryOpenSearchBodyBuilderFeature","CmsEntryOpenSearchValueSearchFeature","ModelAfterCreateHandler","ModelAfterCreateFromHandler","ModelAfterDeleteHandler"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,iCAAiCC,cAAc;IACxD,MAAM;IACN,UAAUC,CAAAA;QACNC,oCAAoC,QAAQ,CAACD;QAC7CE,gCAAgC,QAAQ,CAACF;QACzCG,+BAA+B,QAAQ,CAACH;QACxCI,qCAAqC,QAAQ,CAACJ;QAC9CK,qCAAqC,QAAQ,CAACL;QAC9CM,0CAA0C,QAAQ,CAACN;QACnDO,0CAA0C,QAAQ,CAACP;QACnDQ,sCAAsC,QAAQ,CAACR;QAC/CS,uCAAuC,QAAQ,CAACT;QAChDU,qCAAqC,QAAQ,CAACV;QAC9CW,qCAAqC,QAAQ,CAACX;QAG9CA,UAAU,QAAQ,CAACY;QACnBZ,UAAU,QAAQ,CAACa;QACnBb,UAAU,QAAQ,CAACc;IACvB;AACJ"}
1
+ {"version":3,"file":"features/CmsEntryOpenSearchUtilsFeature.js","sources":["../../src/features/CmsEntryOpenSearchUtilsFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CmsEntryOpenSearchFieldIndexFeature } from \"./CmsEntryOpenSearchFieldIndex/feature.js\";\nimport { CmsEntryOpenSearchFilterFeature } from \"./CmsEntryOpenSearchFilter/feature.js\";\nimport { CmsEntryOpenSearchIndexFeature } from \"./CmsEntryOpenSearchIndex/feature.js\";\nimport { CmsEntryOpenSearchIndexCreateFeature } from \"./CmsEntryOpenSearchIndexCreate/feature.js\";\nimport { CmsEntryOpenSearchIndexDeleteFeature } from \"./CmsEntryOpenSearchIndexDelete/feature.js\";\nimport { CmsEntryOpenSearchFieldPathFactoryFeature } from \"./CmsEntryOpenSearchFieldPathFactory/feature.js\";\nimport { CmsEntryOpenSearchValueTransformerFeature } from \"./CmsEntryOpenSearchValueTransformer/feature.js\";\nimport { CmsEntryOpenSearchOperatorListFeature } from \"./CmsEntryOpenSearchOperatorList/feature.js\";\nimport { CmsEntryOpenSearchExecFilteringFeature } from \"./CmsEntryOpenSearchExecFiltering/feature.js\";\nimport { CmsEntryOpenSearchBodyBuilderFeature } from \"./CmsEntryOpenSearchBodyBuilder/feature.js\";\nimport { CmsEntryOpenSearchValueSearchFeature } from \"./CmsEntryOpenSearchValueSearch/feature.js\";\nimport { ModelAfterCreateHandler } from \"./CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js\";\nimport { ModelAfterCreateFromHandler } from \"./CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js\";\nimport { ModelAfterDeleteHandler } from \"./CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js\";\nimport { CmsModelOpenSearchIndexFeature } from \"./CmsModelOpenSearchIndex/index.js\";\n\nexport const CmsEntryOpenSearchUtilsFeature = createFeature({\n name: \"Cms/Entry/OpenSearch/UtilsFeature\",\n register: container => {\n CmsModelOpenSearchIndexFeature.register(container);\n CmsEntryOpenSearchFieldIndexFeature.register(container);\n CmsEntryOpenSearchFilterFeature.register(container);\n CmsEntryOpenSearchIndexFeature.register(container);\n CmsEntryOpenSearchIndexCreateFeature.register(container);\n CmsEntryOpenSearchIndexDeleteFeature.register(container);\n CmsEntryOpenSearchFieldPathFactoryFeature.register(container);\n CmsEntryOpenSearchValueTransformerFeature.register(container);\n CmsEntryOpenSearchOperatorListFeature.register(container);\n CmsEntryOpenSearchExecFilteringFeature.register(container);\n CmsEntryOpenSearchBodyBuilderFeature.register(container);\n CmsEntryOpenSearchValueSearchFeature.register(container);\n\n // Model lifecycle event handlers for OpenSearch index management\n container.register(ModelAfterCreateHandler);\n container.register(ModelAfterCreateFromHandler);\n container.register(ModelAfterDeleteHandler);\n }\n});\n"],"names":["CmsEntryOpenSearchUtilsFeature","createFeature","container","CmsModelOpenSearchIndexFeature","CmsEntryOpenSearchFieldIndexFeature","CmsEntryOpenSearchFilterFeature","CmsEntryOpenSearchIndexFeature","CmsEntryOpenSearchIndexCreateFeature","CmsEntryOpenSearchIndexDeleteFeature","CmsEntryOpenSearchFieldPathFactoryFeature","CmsEntryOpenSearchValueTransformerFeature","CmsEntryOpenSearchOperatorListFeature","CmsEntryOpenSearchExecFilteringFeature","CmsEntryOpenSearchBodyBuilderFeature","CmsEntryOpenSearchValueSearchFeature","ModelAfterCreateHandler","ModelAfterCreateFromHandler","ModelAfterDeleteHandler"],"mappings":";;;;;;;;;;;;;;;;AAiBO,MAAMA,iCAAiCC,cAAc;IACxD,MAAM;IACN,UAAUC,CAAAA;QACNC,+BAA+B,QAAQ,CAACD;QACxCE,oCAAoC,QAAQ,CAACF;QAC7CG,gCAAgC,QAAQ,CAACH;QACzCI,+BAA+B,QAAQ,CAACJ;QACxCK,qCAAqC,QAAQ,CAACL;QAC9CM,qCAAqC,QAAQ,CAACN;QAC9CO,0CAA0C,QAAQ,CAACP;QACnDQ,0CAA0C,QAAQ,CAACR;QACnDS,sCAAsC,QAAQ,CAACT;QAC/CU,uCAAuC,QAAQ,CAACV;QAChDW,qCAAqC,QAAQ,CAACX;QAC9CY,qCAAqC,QAAQ,CAACZ;QAG9CA,UAAU,QAAQ,CAACa;QACnBb,UAAU,QAAQ,CAACc;QACnBd,UAAU,QAAQ,CAACe;IACvB;AACJ"}
@@ -0,0 +1,8 @@
1
+ import { CmsModelOpenSearchIndex } from "./abstractions.js";
2
+ declare class DefaultCmsModelOpenSearchIndexImpl implements CmsModelOpenSearchIndex.Interface {
3
+ execute(): Promise<CmsModelOpenSearchIndex.Result>;
4
+ }
5
+ export declare const DefaultCmsModelOpenSearchIndex: typeof DefaultCmsModelOpenSearchIndexImpl & {
6
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICmsModelOpenSearchIndex>;
7
+ };
8
+ export {};
@@ -0,0 +1,17 @@
1
+ import { getBaseConfiguration, isSharedOpenSearchIndex } from "@webiny/api-opensearch";
2
+ import { CmsModelOpenSearchIndex } from "./abstractions.js";
3
+ class DefaultCmsModelOpenSearchIndexImpl {
4
+ async execute() {
5
+ return {
6
+ settings: getBaseConfiguration(),
7
+ shared: isSharedOpenSearchIndex()
8
+ };
9
+ }
10
+ }
11
+ const DefaultCmsModelOpenSearchIndex = CmsModelOpenSearchIndex.createImplementation({
12
+ implementation: DefaultCmsModelOpenSearchIndexImpl,
13
+ dependencies: []
14
+ });
15
+ export { DefaultCmsModelOpenSearchIndex };
16
+
17
+ //# sourceMappingURL=DefaultCmsModelOpenSearchIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.js","sources":["../../../src/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.ts"],"sourcesContent":["import { getBaseConfiguration, isSharedOpenSearchIndex } from \"@webiny/api-opensearch\";\nimport { CmsModelOpenSearchIndex } from \"./abstractions.js\";\n\nclass DefaultCmsModelOpenSearchIndexImpl implements CmsModelOpenSearchIndex.Interface {\n public async execute(): Promise<CmsModelOpenSearchIndex.Result> {\n return {\n settings: getBaseConfiguration(),\n shared: isSharedOpenSearchIndex()\n };\n }\n}\n\nexport const DefaultCmsModelOpenSearchIndex = CmsModelOpenSearchIndex.createImplementation({\n implementation: DefaultCmsModelOpenSearchIndexImpl,\n dependencies: []\n});\n"],"names":["DefaultCmsModelOpenSearchIndexImpl","getBaseConfiguration","isSharedOpenSearchIndex","DefaultCmsModelOpenSearchIndex","CmsModelOpenSearchIndex"],"mappings":";;AAGA,MAAMA;IACF,MAAa,UAAmD;QAC5D,OAAO;YACH,UAAUC;YACV,QAAQC;QACZ;IACJ;AACJ;AAEO,MAAMC,iCAAiCC,wBAAwB,oBAAoB,CAAC;IACvF,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,12 @@
1
+ import { CmsModelOpenSearchIndexProvider, type ICmsModelOpenSearchIndexProviderResult } from "./CmsModelOpenSearchIndexProvider.js";
2
+ import { CmsModelOpenSearchIndex } from "./abstractions.js";
3
+ declare class CmsModelOpenSearchIndexProviderImpl implements CmsModelOpenSearchIndexProvider.Interface {
4
+ private readonly indexConfig;
5
+ private readonly cache;
6
+ constructor(indexConfig: CmsModelOpenSearchIndex.Interface);
7
+ execute(params: CmsModelOpenSearchIndex.Params): Promise<ICmsModelOpenSearchIndexProviderResult>;
8
+ }
9
+ export declare const DefaultCmsModelOpenSearchIndexProvider: typeof CmsModelOpenSearchIndexProviderImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./CmsModelOpenSearchIndexProvider.js").ICmsModelOpenSearchIndexProvider>;
11
+ };
12
+ export {};
@@ -0,0 +1,35 @@
1
+ import { CmsModelOpenSearchIndexProvider } from "./CmsModelOpenSearchIndexProvider.js";
2
+ import { CmsModelOpenSearchIndex } from "./abstractions.js";
3
+ class CmsModelOpenSearchIndexProviderImpl {
4
+ constructor(indexConfig){
5
+ this.indexConfig = indexConfig;
6
+ this.cache = new Map();
7
+ }
8
+ async execute(params) {
9
+ const key = `${params.model.tenant}:${params.model.modelId}`;
10
+ const cached = this.cache.get(key);
11
+ if (cached) return cached;
12
+ const { shared, settings } = await this.indexConfig.execute(params);
13
+ const index = [
14
+ shared ? "root" : params.model.tenant,
15
+ "headless-cms",
16
+ params.model.modelId
17
+ ].join("-").toLowerCase();
18
+ const result = {
19
+ index,
20
+ settings,
21
+ shared
22
+ };
23
+ this.cache.set(key, result);
24
+ return result;
25
+ }
26
+ }
27
+ const DefaultCmsModelOpenSearchIndexProvider = CmsModelOpenSearchIndexProvider.createImplementation({
28
+ implementation: CmsModelOpenSearchIndexProviderImpl,
29
+ dependencies: [
30
+ CmsModelOpenSearchIndex
31
+ ]
32
+ });
33
+ export { DefaultCmsModelOpenSearchIndexProvider };
34
+
35
+ //# sourceMappingURL=DefaultCmsModelOpenSearchIndexProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.js","sources":["../../../src/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.ts"],"sourcesContent":["import {\n CmsModelOpenSearchIndexProvider,\n type ICmsModelOpenSearchIndexProviderResult\n} from \"./CmsModelOpenSearchIndexProvider.js\";\nimport { CmsModelOpenSearchIndex } from \"./abstractions.js\";\n\nclass CmsModelOpenSearchIndexProviderImpl implements CmsModelOpenSearchIndexProvider.Interface {\n private readonly cache = new Map<string, ICmsModelOpenSearchIndexProviderResult>();\n\n public constructor(private readonly indexConfig: CmsModelOpenSearchIndex.Interface) {}\n\n public async execute(\n params: CmsModelOpenSearchIndex.Params\n ): Promise<ICmsModelOpenSearchIndexProviderResult> {\n const key = `${params.model.tenant}:${params.model.modelId}`;\n const cached = this.cache.get(key);\n if (cached) {\n return cached;\n }\n\n const { shared, settings } = await this.indexConfig.execute(params);\n\n const index = [shared ? \"root\" : params.model.tenant, \"headless-cms\", params.model.modelId]\n .join(\"-\")\n .toLowerCase();\n\n const result: ICmsModelOpenSearchIndexProviderResult = { index, settings, shared };\n this.cache.set(key, result);\n return result;\n }\n}\n\nexport const DefaultCmsModelOpenSearchIndexProvider =\n CmsModelOpenSearchIndexProvider.createImplementation({\n implementation: CmsModelOpenSearchIndexProviderImpl,\n dependencies: [CmsModelOpenSearchIndex]\n });\n"],"names":["CmsModelOpenSearchIndexProviderImpl","indexConfig","Map","params","key","cached","shared","settings","index","result","DefaultCmsModelOpenSearchIndexProvider","CmsModelOpenSearchIndexProvider","CmsModelOpenSearchIndex"],"mappings":";;AAMA,MAAMA;IAGF,YAAoCC,WAA8C,CAAE;aAAhDA,WAAW,GAAXA;aAFnB,KAAK,GAAG,IAAIC;IAEwD;IAErF,MAAa,QACTC,MAAsC,EACS;QAC/C,MAAMC,MAAM,GAAGD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAEA,OAAO,KAAK,CAAC,OAAO,EAAE;QAC5D,MAAME,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAACD;QAC9B,IAAIC,QACA,OAAOA;QAGX,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ;QAE5D,MAAMK,QAAQ;YAACF,SAAS,SAASH,OAAO,KAAK,CAAC,MAAM;YAAE;YAAgBA,OAAO,KAAK,CAAC,OAAO;SAAC,CACtF,IAAI,CAAC,KACL,WAAW;QAEhB,MAAMM,SAAiD;YAAED;YAAOD;YAAUD;QAAO;QACjF,IAAI,CAAC,KAAK,CAAC,GAAG,CAACF,KAAKK;QACpB,OAAOA;IACX;AACJ;AAEO,MAAMC,yCACTC,gCAAgC,oBAAoB,CAAC;IACjD,gBAAgBX;IAChB,cAAc;QAACY;KAAwB;AAC3C"}
@@ -0,0 +1,4 @@
1
+ export declare const CmsModelOpenSearchIndexFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { DefaultCmsModelOpenSearchIndex } from "./DefaultCmsModelOpenSearchIndex.js";
3
+ import { DefaultCmsModelOpenSearchIndexProvider } from "./DefaultCmsModelOpenSearchIndexProvider.js";
4
+ const CmsModelOpenSearchIndexFeature = createFeature({
5
+ name: "Cms/Model/OpenSearch/IndexFeature",
6
+ register: (container)=>{
7
+ container.register(DefaultCmsModelOpenSearchIndex);
8
+ container.register(DefaultCmsModelOpenSearchIndexProvider).inSingletonScope();
9
+ }
10
+ });
11
+ export { CmsModelOpenSearchIndexFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsModelOpenSearchIndex/feature.js","sources":["../../../src/features/CmsModelOpenSearchIndex/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { DefaultCmsModelOpenSearchIndex } from \"./DefaultCmsModelOpenSearchIndex.js\";\nimport { DefaultCmsModelOpenSearchIndexProvider } from \"./DefaultCmsModelOpenSearchIndexProvider.js\";\n\nexport const CmsModelOpenSearchIndexFeature = createFeature({\n name: \"Cms/Model/OpenSearch/IndexFeature\",\n register: container => {\n container.register(DefaultCmsModelOpenSearchIndex);\n container.register(DefaultCmsModelOpenSearchIndexProvider).inSingletonScope();\n }\n});\n"],"names":["CmsModelOpenSearchIndexFeature","createFeature","container","DefaultCmsModelOpenSearchIndex","DefaultCmsModelOpenSearchIndexProvider"],"mappings":";;;AAIO,MAAMA,iCAAiCC,cAAc;IACxD,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wCAAwC,gBAAgB;IAC/E;AACJ"}
@@ -2,3 +2,6 @@ export { CmsModelOpenSearchIndex } from "./abstractions.js";
2
2
  export type { ICmsModelOpenSearchIndex, ICmsModelOpenSearchIndexParams, ICmsModelOpenSearchIndexResult } from "./abstractions.js";
3
3
  export { CmsModelOpenSearchIndexProvider } from "./CmsModelOpenSearchIndexProvider.js";
4
4
  export type { ICmsModelOpenSearchIndexProvider, ICmsModelOpenSearchIndexProviderResult } from "./CmsModelOpenSearchIndexProvider.js";
5
+ export { DefaultCmsModelOpenSearchIndex } from "./DefaultCmsModelOpenSearchIndex.js";
6
+ export { DefaultCmsModelOpenSearchIndexProvider } from "./DefaultCmsModelOpenSearchIndexProvider.js";
7
+ export { CmsModelOpenSearchIndexFeature } from "./feature.js";
@@ -1,2 +1,5 @@
1
1
  export { CmsModelOpenSearchIndex } from "./abstractions.js";
2
2
  export { CmsModelOpenSearchIndexProvider } from "./CmsModelOpenSearchIndexProvider.js";
3
+ export { DefaultCmsModelOpenSearchIndex } from "./DefaultCmsModelOpenSearchIndex.js";
4
+ export { DefaultCmsModelOpenSearchIndexProvider } from "./DefaultCmsModelOpenSearchIndexProvider.js";
5
+ export { CmsModelOpenSearchIndexFeature } from "./feature.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-utils-os",
3
- "version": "0.0.0-unstable.0d717d18dd",
3
+ "version": "6.6.0-alpha.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -15,13 +15,13 @@
15
15
  "license": "MIT",
16
16
  "author": "Webiny Ltd.",
17
17
  "dependencies": {
18
- "@webiny/api-headless-cms": "0.0.0-unstable.0d717d18dd",
19
- "@webiny/api-opensearch": "0.0.0-unstable.0d717d18dd",
20
- "@webiny/error": "0.0.0-unstable.0d717d18dd",
21
- "@webiny/feature": "0.0.0-unstable.0d717d18dd"
18
+ "@webiny/api-headless-cms": "6.6.0-alpha.1",
19
+ "@webiny/api-opensearch": "6.6.0-alpha.1",
20
+ "@webiny/error": "6.6.0-alpha.1",
21
+ "@webiny/feature": "6.6.0-alpha.1"
22
22
  },
23
23
  "devDependencies": {
24
- "@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
24
+ "@webiny/build-tools": "6.6.0-alpha.1",
25
25
  "typescript": "7.0.2"
26
26
  },
27
27
  "publishConfig": {
@@ -0,0 +1,3 @@
1
+ import type { Container } from "@webiny/feature/api/index.js";
2
+ import type { CmsModelOpenSearchIndex } from "../features/CmsModelOpenSearchIndex/abstractions.js";
3
+ export declare const createTestModelIndexName: (container: Container, params: CmsModelOpenSearchIndex.Params) => Promise<string>;
@@ -0,0 +1,11 @@
1
+ import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
2
+ import { CmsModelOpenSearchIndexProvider } from "../features/CmsModelOpenSearchIndex/index.js";
3
+ const createTestModelIndexName = async (container, params)=>{
4
+ const provider = container.resolve(CmsModelOpenSearchIndexProvider);
5
+ const result = await provider.execute(params);
6
+ const prefix = getOpenSearchIndexPrefix();
7
+ return prefix ? prefix + result.index : result.index;
8
+ };
9
+ export { createTestModelIndexName };
10
+
11
+ //# sourceMappingURL=createTestModelIndexName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing/createTestModelIndexName.js","sources":["../../src/testing/createTestModelIndexName.ts"],"sourcesContent":["import { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\nimport type { Container } from \"@webiny/feature/api/index.js\";\nimport type { CmsModelOpenSearchIndex } from \"../features/CmsModelOpenSearchIndex/abstractions.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"../features/CmsModelOpenSearchIndex/index.js\";\n\nexport const createTestModelIndexName = async (\n container: Container,\n params: CmsModelOpenSearchIndex.Params\n): Promise<string> => {\n const provider = container.resolve(CmsModelOpenSearchIndexProvider);\n const result = await provider.execute(params);\n const prefix = getOpenSearchIndexPrefix();\n return prefix ? prefix + result.index : result.index;\n};\n"],"names":["createTestModelIndexName","container","params","provider","CmsModelOpenSearchIndexProvider","result","prefix","getOpenSearchIndexPrefix"],"mappings":";;AAKO,MAAMA,2BAA2B,OACpCC,WACAC;IAEA,MAAMC,WAAWF,UAAU,OAAO,CAACG;IACnC,MAAMC,SAAS,MAAMF,SAAS,OAAO,CAACD;IACtC,MAAMI,SAASC;IACf,OAAOD,SAASA,SAASD,OAAO,KAAK,GAAGA,OAAO,KAAK;AACxD"}
@@ -0,0 +1 @@
1
+ export { createTestModelIndexName } from "./createTestModelIndexName.js";
@@ -0,0 +1 @@
1
+ export { createTestModelIndexName } from "./createTestModelIndexName.js";