@webiny/api-headless-cms-utils-os 6.6.0-alpha.0 → 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 (39) hide show
  1. package/configurations.d.ts +5 -15
  2. package/configurations.js +14 -28
  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.d.ts +3 -3
  10. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js +9 -22
  11. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js.map +1 -1
  12. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.d.ts +3 -1
  13. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js +10 -7
  14. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js.map +1 -1
  15. package/features/CmsEntryOpenSearchUtilsFeature.js +2 -0
  16. package/features/CmsEntryOpenSearchUtilsFeature.js.map +1 -1
  17. package/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.d.ts +15 -0
  18. package/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js +5 -0
  19. package/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js.map +1 -0
  20. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.d.ts +8 -0
  21. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.js +17 -0
  22. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndex.js.map +1 -0
  23. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.d.ts +12 -0
  24. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.js +35 -0
  25. package/features/CmsModelOpenSearchIndex/DefaultCmsModelOpenSearchIndexProvider.js.map +1 -0
  26. package/features/CmsModelOpenSearchIndex/abstractions.d.ts +20 -0
  27. package/features/CmsModelOpenSearchIndex/abstractions.js +5 -0
  28. package/features/CmsModelOpenSearchIndex/abstractions.js.map +1 -0
  29. package/features/CmsModelOpenSearchIndex/feature.d.ts +4 -0
  30. package/features/CmsModelOpenSearchIndex/feature.js +13 -0
  31. package/features/CmsModelOpenSearchIndex/feature.js.map +1 -0
  32. package/features/CmsModelOpenSearchIndex/index.d.ts +7 -0
  33. package/features/CmsModelOpenSearchIndex/index.js +5 -0
  34. package/package.json +6 -6
  35. package/testing/createTestModelIndexName.d.ts +3 -0
  36. package/testing/createTestModelIndexName.js +11 -0
  37. package/testing/createTestModelIndexName.js.map +1 -0
  38. package/testing/index.d.ts +1 -0
  39. package/testing/index.js +1 -0
@@ -1,19 +1,9 @@
1
- import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js";
3
- import type { CmsEntryOpenSearchIndex } from "./features/CmsEntryOpenSearchIndex/index.js";
4
- interface ConfigurationsElasticsearch {
5
- index: string;
6
- }
1
+ import type { StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsModelOpenSearchIndexProvider, ICmsModelOpenSearchIndexProviderResult } from "./features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
7
3
  export interface CmsElasticsearchParams {
8
- model: Pick<CmsModel, "tenant" | "modelId">;
9
- }
10
- export interface ConfigurationsIndexSettingsParams {
11
- indexConfigs: CmsEntryOpenSearchIndex.Interface[];
12
- model: Pick<CmsModel, "tenant" | "modelId" | "group">;
4
+ model: StorageCmsModel;
13
5
  }
14
6
  export interface Configurations {
15
- es: (params: CmsElasticsearchParams) => ConfigurationsElasticsearch;
16
- indexSettings: (params: ConfigurationsIndexSettingsParams) => Partial<OpenSearchIndexRequestBody>;
7
+ es: (params: CmsElasticsearchParams) => Promise<ICmsModelOpenSearchIndexProviderResult>;
17
8
  }
18
- export declare const configurations: Configurations;
19
- export {};
9
+ export declare const createConfigurations: (provider: CmsModelOpenSearchIndexProvider.Interface) => Configurations;
package/configurations.js CHANGED
@@ -1,31 +1,17 @@
1
- import error from "@webiny/error";
2
- import { getOpenSearchIndexPrefix, isSharedOpenSearchIndex } from "@webiny/api-opensearch";
3
- const configurations = {
4
- es ({ model }) {
5
- const { tenant } = model;
6
- if (!tenant) throw new error('Missing "tenant" parameter when trying to create Elasticsearch index name.', "TENANT_ERROR");
7
- const sharedIndex = isSharedOpenSearchIndex();
8
- const index = [
9
- sharedIndex ? "root" : tenant,
10
- "headless-cms",
11
- model.modelId
12
- ].join("-").toLowerCase();
13
- const prefix = getOpenSearchIndexPrefix();
14
- if (!prefix) return {
15
- index
16
- };
17
- return {
18
- index: prefix + index
19
- };
20
- },
21
- indexSettings: ({ indexConfigs, model })=>{
22
- const usable = indexConfigs.filter((c)=>c.canUse({
1
+ import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
2
+ const createConfigurations = (provider)=>({
3
+ async es ({ model }) {
4
+ const result = await provider.execute({
23
5
  model
24
- }));
25
- if (0 === usable.length) return {};
26
- return usable[usable.length - 1].body;
27
- }
28
- };
29
- export { configurations };
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 };
30
16
 
31
17
  //# sourceMappingURL=configurations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configurations.js","sources":["../src/configurations.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport {\n getOpenSearchIndexPrefix,\n isSharedOpenSearchIndex as isSharedElasticsearchIndex\n} from \"@webiny/api-opensearch\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\nimport type { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\n\ninterface ConfigurationsElasticsearch {\n index: string;\n}\n\nexport interface CmsElasticsearchParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\nexport interface ConfigurationsIndexSettingsParams {\n indexConfigs: CmsEntryOpenSearchIndex.Interface[];\n model: Pick<CmsModel, \"tenant\" | \"modelId\" | \"group\">;\n}\n\nexport interface Configurations {\n es: (params: CmsElasticsearchParams) => ConfigurationsElasticsearch;\n indexSettings: (\n params: ConfigurationsIndexSettingsParams\n ) => Partial<OpenSearchIndexRequestBody>;\n}\n\nexport const configurations: Configurations = {\n es({ model }) {\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 sharedIndex = isSharedElasticsearchIndex();\n const index = [sharedIndex ? \"root\" : tenant, \"headless-cms\", model.modelId]\n .join(\"-\")\n .toLowerCase();\n\n const prefix = getOpenSearchIndexPrefix();\n\n if (!prefix) {\n return {\n index\n };\n }\n return {\n index: prefix + index\n };\n },\n indexSettings: ({ indexConfigs, model }) => {\n const usable = indexConfigs.filter(c => c.canUse({ model }));\n if (usable.length === 0) {\n return {};\n }\n return usable[usable.length - 1].body;\n }\n};\n"],"names":["configurations","model","tenant","WebinyError","sharedIndex","isSharedElasticsearchIndex","index","prefix","getOpenSearchIndexPrefix","indexConfigs","usable","c"],"mappings":";;AA6BO,MAAMA,iBAAiC;IAC1C,IAAG,EAAEC,KAAK,EAAE;QACR,MAAM,EAAEC,MAAM,EAAE,GAAGD;QAEnB,IAAI,CAACC,QACD,MAAM,IAAIC,MACN,8EACA;QAIR,MAAMC,cAAcC;QACpB,MAAMC,QAAQ;YAACF,cAAc,SAASF;YAAQ;YAAgBD,MAAM,OAAO;SAAC,CACvE,IAAI,CAAC,KACL,WAAW;QAEhB,MAAMM,SAASC;QAEf,IAAI,CAACD,QACD,OAAO;YACHD;QACJ;QAEJ,OAAO;YACH,OAAOC,SAASD;QACpB;IACJ;IACA,eAAe,CAAC,EAAEG,YAAY,EAAER,KAAK,EAAE;QACnC,MAAMS,SAASD,aAAa,MAAM,CAACE,CAAAA,IAAKA,EAAE,MAAM,CAAC;gBAAEV;YAAM;QACzD,IAAIS,AAAkB,MAAlBA,OAAO,MAAM,EACb,OAAO,CAAC;QAEZ,OAAOA,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE,CAAC,IAAI;IACzC;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"}
@@ -1,10 +1,10 @@
1
1
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
2
- import { CmsEntryOpenSearchIndex } from "../../features/CmsEntryOpenSearchIndex/index.js";
2
+ import { CmsModelOpenSearchIndexProvider } from "../../features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
3
3
  import { CmsEntryOpenSearchIndexCreate as CmsEntryOpenSearchIndexCreateAbstraction } from "./abstractions.js";
4
4
  declare class CmsEntryOpenSearchIndexCreateImpl implements CmsEntryOpenSearchIndexCreateAbstraction.Interface {
5
5
  private readonly openSearchClient;
6
- private readonly indexConfigs;
7
- constructor(openSearchClient: OpenSearchClient.Interface, indexConfigs: CmsEntryOpenSearchIndex.Interface[]);
6
+ private readonly indexProvider;
7
+ constructor(openSearchClient: OpenSearchClient.Interface, indexProvider: CmsModelOpenSearchIndexProvider.Interface);
8
8
  execute(params: CmsEntryOpenSearchIndexCreateAbstraction.Params): Promise<void>;
9
9
  }
10
10
  export declare const CmsEntryOpenSearchIndexCreate: typeof CmsEntryOpenSearchIndexCreateImpl & {
@@ -1,28 +1,20 @@
1
1
  import error from "@webiny/error";
2
- import { configurations } from "../../configurations.js";
3
2
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
- import { CmsEntryOpenSearchIndex } from "../CmsEntryOpenSearchIndex/index.js";
3
+ import { CmsModelOpenSearchIndexProvider } from "../CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
5
4
  import { CmsEntryOpenSearchIndexCreate } from "./abstractions.js";
6
- const getLastUsable = (configs, model)=>{
7
- const usable = configs.filter((c)=>c.canUse({
8
- model
9
- }));
10
- if (0 === usable.length) throw new error("Could not find a single usable CmsEntryOpenSearchIndex.", "OPENSEARCH_INDEX_TEMPLATE_ERROR");
11
- return usable[usable.length - 1];
12
- };
5
+ import { createConfigurations } from "../../configurations.js";
13
6
  class CmsEntryOpenSearchIndexCreateImpl {
14
- constructor(openSearchClient, indexConfigs){
7
+ constructor(openSearchClient, indexProvider){
15
8
  this.openSearchClient = openSearchClient;
16
- this.indexConfigs = indexConfigs;
9
+ this.indexProvider = indexProvider;
17
10
  }
18
11
  async execute(params) {
19
12
  const { model } = params;
20
13
  const client = this.openSearchClient.use();
21
- const { index } = configurations.es({
14
+ const configurations = createConfigurations(this.indexProvider);
15
+ const { index, settings } = await configurations.es({
22
16
  model
23
17
  });
24
- const config = getLastUsable(this.indexConfigs, model);
25
- if (!config) throw new Error(`Could not find a usable CmsEntryOpenSearchIndex for the CMS model "${model.name}".`);
26
18
  try {
27
19
  const response = await client.indices.exists({
28
20
  index,
@@ -40,7 +32,7 @@ class CmsEntryOpenSearchIndexCreateImpl {
40
32
  await client.indices.create({
41
33
  index,
42
34
  body: {
43
- ...config.body
35
+ ...settings
44
36
  }
45
37
  });
46
38
  } catch (ex) {
@@ -55,7 +47,7 @@ class CmsEntryOpenSearchIndexCreateImpl {
55
47
  },
56
48
  tenant: model.tenant,
57
49
  index,
58
- body: config.body
50
+ body: settings
59
51
  });
60
52
  }
61
53
  }
@@ -64,12 +56,7 @@ const CmsEntryOpenSearchIndexCreate_CmsEntryOpenSearchIndexCreate = CmsEntryOpen
64
56
  implementation: CmsEntryOpenSearchIndexCreateImpl,
65
57
  dependencies: [
66
58
  OpenSearchClient,
67
- [
68
- CmsEntryOpenSearchIndex,
69
- {
70
- multiple: true
71
- }
72
- ]
59
+ CmsModelOpenSearchIndexProvider
73
60
  ]
74
61
  });
75
62
  export { CmsEntryOpenSearchIndexCreate_CmsEntryOpenSearchIndexCreate as CmsEntryOpenSearchIndexCreate };
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js","sources":["../../../src/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { configurations } from \"~/configurations.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\nimport { CmsEntryOpenSearchIndexCreate as CmsEntryOpenSearchIndexCreateAbstraction } from \"./abstractions.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\nconst getLastUsable = (\n configs: CmsEntryOpenSearchIndex.Interface[],\n model: CmsModel\n): CmsEntryOpenSearchIndex.Interface => {\n const usable = configs.filter(c => c.canUse({ model }));\n if (usable.length === 0) {\n throw new WebinyError(\n \"Could not find a single usable CmsEntryOpenSearchIndex.\",\n \"OPENSEARCH_INDEX_TEMPLATE_ERROR\"\n );\n }\n return usable[usable.length - 1];\n};\n\nclass CmsEntryOpenSearchIndexCreateImpl\n implements CmsEntryOpenSearchIndexCreateAbstraction.Interface\n{\n public constructor(\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexConfigs: CmsEntryOpenSearchIndex.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 } = configurations.es({ model });\n\n const config = getLastUsable(this.indexConfigs, model);\n if (!config) {\n throw new Error(\n `Could not find a usable CmsEntryOpenSearchIndex for the CMS model \"${model.name}\".`\n );\n }\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 ...config.body\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: config.body\n }\n );\n }\n }\n}\n\nexport const CmsEntryOpenSearchIndexCreate =\n CmsEntryOpenSearchIndexCreateAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchIndexCreateImpl,\n dependencies: [OpenSearchClient, [CmsEntryOpenSearchIndex, { multiple: true }]]\n });\n"],"names":["getLastUsable","configs","model","usable","c","WebinyError","CmsEntryOpenSearchIndexCreateImpl","openSearchClient","indexConfigs","params","client","index","configurations","config","Error","response","console","ex","CmsEntryOpenSearchIndexCreate","CmsEntryOpenSearchIndexCreateAbstraction","OpenSearchClient","CmsEntryOpenSearchIndex"],"mappings":";;;;;AAOA,MAAMA,gBAAgB,CAClBC,SACAC;IAEA,MAAMC,SAASF,QAAQ,MAAM,CAACG,CAAAA,IAAKA,EAAE,MAAM,CAAC;YAAEF;QAAM;IACpD,IAAIC,AAAkB,MAAlBA,OAAO,MAAM,EACb,MAAM,IAAIE,MACN,2DACA;IAGR,OAAOF,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE;AACpC;AAEA,MAAMG;IAGF,YACqBC,gBAA4C,EAC5CC,YAAiD,CACpE;aAFmBD,gBAAgB,GAAhBA;aACAC,YAAY,GAAZA;IAClB;IAEH,MAAa,QAAQC,MAAuD,EAAiB;QACzF,MAAM,EAAEP,KAAK,EAAE,GAAGO;QAClB,MAAMC,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAM,EAAEC,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;YAAEV;QAAM;QAE5C,MAAMW,SAASb,cAAc,IAAI,CAAC,YAAY,EAAEE;QAChD,IAAI,CAACW,QACD,MAAM,IAAIC,MACN,CAAC,mEAAmE,EAAEZ,MAAM,IAAI,CAAC,EAAE,CAAC;QAI5F,IAAI;YACA,MAAMa,WAAW,MAAML,OAAO,OAAO,CAAC,MAAM,CAAC;gBACzCC;gBACA,oBAAoB;gBACpB,kBAAkB;gBAClB,kBAAkB;gBAClB,eAAe;gBACf,OAAO;YACX;YACA,IAAII,SAAS,IAAI,EAAE,YACfC,QAAQ,GAAG,CACP,CAAC,qBAAqB,EAAEL,MAAM,qBAAqB,EAAET,MAAM,IAAI,CAAC,iBAAiB,CAAC;QAI9F,EAAE,OAAM;YACJc,QAAQ,KAAK,CAAC,CAAC,kCAAkC,EAAEL,MAAM,SAAS,CAAC;QACvE;QAEA,IAAI;YACA,MAAMD,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBC;gBACA,MAAM;oBACF,GAAGE,OAAO,IAAI;gBAClB;YACJ;QACJ,EAAE,OAAOI,IAAI;YACTD,QAAQ,KAAK,CACT,CAAC,sCAAsC,EAAEL,MAAM,qBAAqB,EAAET,MAAM,IAAI,CAAC,EAAE,CAAC;YAExFc,QAAQ,KAAK,CAACC;YACd,MAAM,IAAIZ,MACNY,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,QAAQf,MAAM,MAAM;gBACpBS;gBACA,MAAME,OAAO,IAAI;YACrB;QAER;IACJ;AACJ;AAEO,MAAMK,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBb;IAChB,cAAc;QAACc;QAAkB;YAACC;YAAyB;gBAAE,UAAU;YAAK;SAAE;KAAC;AACnF"}
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,8 +1,10 @@
1
1
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
2
+ import { CmsModelOpenSearchIndexProvider } from "../../features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
2
3
  import { CmsEntryOpenSearchIndexDelete as CmsEntryOpenSearchIndexDeleteAbstraction } from "./abstractions.js";
3
4
  declare class CmsEntryOpenSearchIndexDeleteImpl implements CmsEntryOpenSearchIndexDeleteAbstraction.Interface {
4
5
  private readonly openSearchClient;
5
- constructor(openSearchClient: OpenSearchClient.Interface);
6
+ private readonly indexProvider;
7
+ constructor(openSearchClient: OpenSearchClient.Interface, indexProvider: CmsModelOpenSearchIndexProvider.Interface);
6
8
  execute(params: CmsEntryOpenSearchIndexDeleteAbstraction.Params): Promise<void>;
7
9
  }
8
10
  export declare const CmsEntryOpenSearchIndexDelete: typeof CmsEntryOpenSearchIndexDeleteImpl & {
@@ -1,18 +1,20 @@
1
- import { configurations } from "../../configurations.js";
2
1
  import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
3
- import { isSharedOpenSearchIndex } from "@webiny/api-opensearch";
2
+ import { CmsModelOpenSearchIndexProvider } from "../CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
4
3
  import { CmsEntryOpenSearchIndexDelete } from "./abstractions.js";
4
+ import { createConfigurations } from "../../configurations.js";
5
5
  class CmsEntryOpenSearchIndexDeleteImpl {
6
- constructor(openSearchClient){
6
+ constructor(openSearchClient, indexProvider){
7
7
  this.openSearchClient = openSearchClient;
8
+ this.indexProvider = indexProvider;
8
9
  }
9
10
  async execute(params) {
10
- if (isSharedOpenSearchIndex()) return;
11
11
  const { model } = params;
12
- const client = this.openSearchClient.use();
13
- const { index } = configurations.es({
12
+ const configurations = createConfigurations(this.indexProvider);
13
+ const { index, shared } = await configurations.es({
14
14
  model
15
15
  });
16
+ if (shared) return;
17
+ const client = this.openSearchClient.use();
16
18
  const { body: exists } = await client.indices.exists({
17
19
  index
18
20
  });
@@ -31,7 +33,8 @@ class CmsEntryOpenSearchIndexDeleteImpl {
31
33
  const CmsEntryOpenSearchIndexDelete_CmsEntryOpenSearchIndexDelete = CmsEntryOpenSearchIndexDelete.createImplementation({
32
34
  implementation: CmsEntryOpenSearchIndexDeleteImpl,
33
35
  dependencies: [
34
- OpenSearchClient
36
+ OpenSearchClient,
37
+ CmsModelOpenSearchIndexProvider
35
38
  ]
36
39
  });
37
40
  export { CmsEntryOpenSearchIndexDelete_CmsEntryOpenSearchIndexDelete as CmsEntryOpenSearchIndexDelete };
@@ -1 +1 @@
1
- {"version":3,"file":"features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js","sources":["../../../src/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.ts"],"sourcesContent":["import { configurations } from \"~/configurations.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { isSharedOpenSearchIndex } from \"@webiny/api-opensearch\";\nimport { CmsEntryOpenSearchIndexDelete as CmsEntryOpenSearchIndexDeleteAbstraction } from \"./abstractions.js\";\n\nclass CmsEntryOpenSearchIndexDeleteImpl\n implements CmsEntryOpenSearchIndexDeleteAbstraction.Interface\n{\n public constructor(private readonly openSearchClient: OpenSearchClient.Interface) {}\n\n public async execute(params: CmsEntryOpenSearchIndexDeleteAbstraction.Params): Promise<void> {\n if (isSharedOpenSearchIndex()) {\n return;\n }\n\n const { model } = params;\n const client = this.openSearchClient.use();\n\n const { index } = configurations.es({ model });\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]\n });\n"],"names":["CmsEntryOpenSearchIndexDeleteImpl","openSearchClient","params","isSharedOpenSearchIndex","model","client","index","configurations","exists","ex","console","CmsEntryOpenSearchIndexDelete","CmsEntryOpenSearchIndexDeleteAbstraction","OpenSearchClient"],"mappings":";;;;AAKA,MAAMA;IAGF,YAAoCC,gBAA4C,CAAE;aAA9CA,gBAAgB,GAAhBA;IAA+C;IAEnF,MAAa,QAAQC,MAAuD,EAAiB;QACzF,IAAIC,2BACA;QAGJ,MAAM,EAAEC,KAAK,EAAE,GAAGF;QAClB,MAAMG,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG;QAExC,MAAM,EAAEC,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;YAAEH;QAAM;QAE5C,MAAM,EAAE,MAAMI,MAAM,EAAE,GAAG,MAAMH,OAAO,OAAO,CAAC,MAAM,CAAC;YAAEC;QAAM;QAC7D,IAAI,CAACE,QACD;QAGJ,IAAI;YACA,MAAMH,OAAO,OAAO,CAAC,MAAM,CAAC;gBACxBC;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,gBAAgBZ;IAChB,cAAc;QAACa;KAAiB;AACpC"}
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,15 @@
1
+ import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js";
2
+ import type { CmsModelOpenSearchIndex } from "./abstractions.js";
3
+ export interface ICmsModelOpenSearchIndexProviderResult {
4
+ index: string;
5
+ settings: OpenSearchIndexRequestBody;
6
+ shared: boolean;
7
+ }
8
+ export interface ICmsModelOpenSearchIndexProvider {
9
+ execute(params: CmsModelOpenSearchIndex.Params): Promise<ICmsModelOpenSearchIndexProviderResult>;
10
+ }
11
+ export declare const CmsModelOpenSearchIndexProvider: import("@webiny/di").Abstraction<ICmsModelOpenSearchIndexProvider>;
12
+ export declare namespace CmsModelOpenSearchIndexProvider {
13
+ type Interface = ICmsModelOpenSearchIndexProvider;
14
+ type Result = ICmsModelOpenSearchIndexProviderResult;
15
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api/index.js";
2
+ const CmsModelOpenSearchIndexProvider = createAbstraction("Cms/Model/OpenSearch/IndexProvider");
3
+ export { CmsModelOpenSearchIndexProvider };
4
+
5
+ //# sourceMappingURL=CmsModelOpenSearchIndexProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js","sources":["../../../src/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api/index.js\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\nimport type { CmsModelOpenSearchIndex } from \"./abstractions.js\";\n\nexport interface ICmsModelOpenSearchIndexProviderResult {\n index: string;\n settings: OpenSearchIndexRequestBody;\n shared: boolean;\n}\n\nexport interface ICmsModelOpenSearchIndexProvider {\n execute(\n params: CmsModelOpenSearchIndex.Params\n ): Promise<ICmsModelOpenSearchIndexProviderResult>;\n}\n\nexport const CmsModelOpenSearchIndexProvider = createAbstraction<ICmsModelOpenSearchIndexProvider>(\n \"Cms/Model/OpenSearch/IndexProvider\"\n);\n\nexport namespace CmsModelOpenSearchIndexProvider {\n export type Interface = ICmsModelOpenSearchIndexProvider;\n export type Result = ICmsModelOpenSearchIndexProviderResult;\n}\n"],"names":["CmsModelOpenSearchIndexProvider","createAbstraction"],"mappings":";AAgBO,MAAMA,kCAAkCC,kBAC3C"}
@@ -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,20 @@
1
+ import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js";
2
+ import { type StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ export { type StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ export interface ICmsModelOpenSearchIndexParams {
5
+ model: StorageCmsModel;
6
+ }
7
+ export interface ICmsModelOpenSearchIndexResult {
8
+ settings: OpenSearchIndexRequestBody;
9
+ shared: boolean;
10
+ }
11
+ export interface ICmsModelOpenSearchIndex {
12
+ execute(params: ICmsModelOpenSearchIndexParams): Promise<ICmsModelOpenSearchIndexResult>;
13
+ }
14
+ export declare const CmsModelOpenSearchIndex: import("@webiny/di").Abstraction<ICmsModelOpenSearchIndex>;
15
+ export declare namespace CmsModelOpenSearchIndex {
16
+ type Interface = ICmsModelOpenSearchIndex;
17
+ type Params = ICmsModelOpenSearchIndexParams;
18
+ type Result = ICmsModelOpenSearchIndexResult;
19
+ type Model = StorageCmsModel;
20
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api/index.js";
2
+ const CmsModelOpenSearchIndex = createAbstraction("Cms/Model/OpenSearch/Index");
3
+ export { CmsModelOpenSearchIndex };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsModelOpenSearchIndex/abstractions.js","sources":["../../../src/features/CmsModelOpenSearchIndex/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api/index.js\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\nimport { type StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nexport { type StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface ICmsModelOpenSearchIndexParams {\n model: StorageCmsModel;\n}\n\nexport interface ICmsModelOpenSearchIndexResult {\n settings: OpenSearchIndexRequestBody;\n shared: boolean;\n}\n\nexport interface ICmsModelOpenSearchIndex {\n execute(params: ICmsModelOpenSearchIndexParams): Promise<ICmsModelOpenSearchIndexResult>;\n}\n\nexport const CmsModelOpenSearchIndex = createAbstraction<ICmsModelOpenSearchIndex>(\n \"Cms/Model/OpenSearch/Index\"\n);\n\nexport namespace CmsModelOpenSearchIndex {\n export type Interface = ICmsModelOpenSearchIndex;\n export type Params = ICmsModelOpenSearchIndexParams;\n export type Result = ICmsModelOpenSearchIndexResult;\n export type Model = StorageCmsModel;\n}\n"],"names":["CmsModelOpenSearchIndex","createAbstraction"],"mappings":";AAkBO,MAAMA,0BAA0BC,kBACnC"}
@@ -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"}
@@ -0,0 +1,7 @@
1
+ export { CmsModelOpenSearchIndex } from "./abstractions.js";
2
+ export type { ICmsModelOpenSearchIndex, ICmsModelOpenSearchIndexParams, ICmsModelOpenSearchIndexResult } from "./abstractions.js";
3
+ export { CmsModelOpenSearchIndexProvider } from "./CmsModelOpenSearchIndexProvider.js";
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";
@@ -0,0 +1,5 @@
1
+ export { CmsModelOpenSearchIndex } from "./abstractions.js";
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": "6.6.0-alpha.0",
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": "6.6.0-alpha.0",
19
- "@webiny/api-opensearch": "6.6.0-alpha.0",
20
- "@webiny/error": "6.6.0-alpha.0",
21
- "@webiny/feature": "6.6.0-alpha.0"
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": "6.6.0-alpha.0",
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";