@webiny/api-headless-cms-es-tasks 0.0.0-unstable.ac6ebf63c6 → 0.0.0-unstable.b6d7105cee

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 (47) hide show
  1. package/index.js +7 -9
  2. package/index.js.map +1 -1
  3. package/package.json +25 -22
  4. package/tasks/MockDataCreator/MockDataCreator.d.ts +4 -2
  5. package/tasks/MockDataCreator/MockDataCreator.js +65 -90
  6. package/tasks/MockDataCreator/MockDataCreator.js.map +1 -1
  7. package/tasks/MockDataCreator/mockData.js +1332 -1186
  8. package/tasks/MockDataCreator/mockData.js.map +1 -1
  9. package/tasks/MockDataCreator/types.js +0 -3
  10. package/tasks/MockDataCreatorTask.d.ts +5 -2
  11. package/tasks/MockDataCreatorTask.js +25 -20
  12. package/tasks/MockDataCreatorTask.js.map +1 -1
  13. package/tasks/MockDataManager/MockDataManager.d.ts +6 -2
  14. package/tasks/MockDataManager/MockDataManager.js +77 -91
  15. package/tasks/MockDataManager/MockDataManager.js.map +1 -1
  16. package/tasks/MockDataManager/calculateAmounts.js +26 -51
  17. package/tasks/MockDataManager/calculateAmounts.js.map +1 -1
  18. package/tasks/MockDataManager/calculateSeconds.js +8 -11
  19. package/tasks/MockDataManager/calculateSeconds.js.map +1 -1
  20. package/tasks/MockDataManager/constants.js +2 -1
  21. package/tasks/MockDataManager/constants.js.map +1 -1
  22. package/tasks/MockDataManager/createModelAndGroup.js +25 -33
  23. package/tasks/MockDataManager/createModelAndGroup.js.map +1 -1
  24. package/tasks/MockDataManager/group.js +11 -12
  25. package/tasks/MockDataManager/group.js.map +1 -1
  26. package/tasks/MockDataManager/model.js +6290 -4693
  27. package/tasks/MockDataManager/model.js.map +1 -1
  28. package/tasks/MockDataManager/types.js +0 -3
  29. package/tasks/MockDataManagerTask.d.ts +7 -2
  30. package/tasks/MockDataManagerTask.js +53 -43
  31. package/tasks/MockDataManagerTask.js.map +1 -1
  32. package/types.d.ts +2 -3
  33. package/types.js +0 -3
  34. package/utils/createIndex.d.ts +5 -5
  35. package/utils/createIndex.js +19 -27
  36. package/utils/createIndex.js.map +1 -1
  37. package/utils/disableIndexing.d.ts +5 -3
  38. package/utils/disableIndexing.js +22 -24
  39. package/utils/disableIndexing.js.map +1 -1
  40. package/utils/enableIndexing.d.ts +5 -3
  41. package/utils/enableIndexing.js +22 -24
  42. package/utils/enableIndexing.js.map +1 -1
  43. package/utils/index.js +0 -2
  44. package/tasks/MockDataCreator/types.js.map +0 -1
  45. package/tasks/MockDataManager/types.js.map +0 -1
  46. package/types.js.map +0 -1
  47. package/utils/index.js.map +0 -1
package/index.js CHANGED
@@ -1,12 +1,10 @@
1
1
  import { createContextPlugin } from "@webiny/api";
2
- import { MockDataCreatorTaskDefinition, MOCK_DATA_CREATOR_TASK_ID } from "./tasks/MockDataCreatorTask.js";
3
- import { MockDataManagerTaskDefinition, MOCK_DATA_MANAGER_TASK_ID } from "./tasks/MockDataManagerTask.js";
4
- export { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };
5
- export const createHeadlessCmsEsTasks = () => {
6
- return createContextPlugin(context => {
7
- context.container.register(MockDataCreatorTaskDefinition);
8
- context.container.register(MockDataManagerTaskDefinition);
9
- });
10
- };
2
+ import { MOCK_DATA_CREATOR_TASK_ID, MockDataCreatorTaskDefinition } from "./tasks/MockDataCreatorTask.js";
3
+ import { MOCK_DATA_MANAGER_TASK_ID, MockDataManagerTaskDefinition } from "./tasks/MockDataManagerTask.js";
4
+ const createHeadlessCmsEsTasks = ()=>createContextPlugin((context)=>{
5
+ context.container.register(MockDataCreatorTaskDefinition);
6
+ context.container.register(MockDataManagerTaskDefinition);
7
+ });
8
+ export { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID, createHeadlessCmsEsTasks };
11
9
 
12
10
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createContextPlugin","MockDataCreatorTaskDefinition","MOCK_DATA_CREATOR_TASK_ID","MockDataManagerTaskDefinition","MOCK_DATA_MANAGER_TASK_ID","createHeadlessCmsEsTasks","context","container","register"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport {\n MockDataCreatorTaskDefinition,\n MOCK_DATA_CREATOR_TASK_ID\n} from \"~/tasks/MockDataCreatorTask.js\";\nimport {\n MockDataManagerTaskDefinition,\n MOCK_DATA_MANAGER_TASK_ID\n} from \"~/tasks/MockDataManagerTask.js\";\n\nexport { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };\n\nexport const createHeadlessCmsEsTasks = () => {\n return createContextPlugin(context => {\n context.container.register(MockDataCreatorTaskDefinition);\n context.container.register(MockDataManagerTaskDefinition);\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SACIC,6BAA6B,EAC7BC,yBAAyB;AAE7B,SACIC,6BAA6B,EAC7BC,yBAAyB;AAG7B,SAASF,yBAAyB,EAAEE,yBAAyB;AAE7D,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,OAAOL,mBAAmB,CAACM,OAAO,IAAI;IAClCA,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACP,6BAA6B,CAAC;IACzDK,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACL,6BAA6B,CAAC;EAC7D,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport {\n MockDataCreatorTaskDefinition,\n MOCK_DATA_CREATOR_TASK_ID\n} from \"~/tasks/MockDataCreatorTask.js\";\nimport {\n MockDataManagerTaskDefinition,\n MOCK_DATA_MANAGER_TASK_ID\n} from \"~/tasks/MockDataManagerTask.js\";\n\nexport { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };\n\nexport const createHeadlessCmsEsTasks = () => {\n return createContextPlugin(context => {\n context.container.register(MockDataCreatorTaskDefinition);\n context.container.register(MockDataManagerTaskDefinition);\n });\n};\n"],"names":["createHeadlessCmsEsTasks","createContextPlugin","context","MockDataCreatorTaskDefinition","MockDataManagerTaskDefinition"],"mappings":";;;AAYO,MAAMA,2BAA2B,IAC7BC,oBAAoBC,CAAAA;QACvBA,QAAQ,SAAS,CAAC,QAAQ,CAACC;QAC3BD,QAAQ,SAAS,CAAC,QAAQ,CAACE;IAC/B"}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-es-tasks",
3
- "version": "0.0.0-unstable.ac6ebf63c6",
3
+ "version": "0.0.0-unstable.b6d7105cee",
4
4
  "type": "module",
5
- "main": "index.js",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
6
9
  "description": "Elasticsearch Background tasks for Webiny Headless CMS",
7
10
  "keywords": [
8
11
  "api-headless-cms-es-tasks:base"
@@ -14,29 +17,29 @@
14
17
  },
15
18
  "license": "MIT",
16
19
  "dependencies": {
17
- "@webiny/api-core": "0.0.0-unstable.ac6ebf63c6",
18
- "@webiny/api-elasticsearch": "0.0.0-unstable.ac6ebf63c6",
19
- "@webiny/api-headless-cms": "0.0.0-unstable.ac6ebf63c6",
20
- "@webiny/api-headless-cms-ddb-es": "0.0.0-unstable.ac6ebf63c6",
21
- "@webiny/handler": "0.0.0-unstable.ac6ebf63c6",
22
- "@webiny/handler-aws": "0.0.0-unstable.ac6ebf63c6",
23
- "@webiny/tasks": "0.0.0-unstable.ac6ebf63c6",
24
- "@webiny/utils": "0.0.0-unstable.ac6ebf63c6"
20
+ "@webiny/api-core": "0.0.0-unstable.b6d7105cee",
21
+ "@webiny/api-headless-cms": "0.0.0-unstable.b6d7105cee",
22
+ "@webiny/api-headless-cms-ddb-es": "0.0.0-unstable.b6d7105cee",
23
+ "@webiny/api-opensearch": "0.0.0-unstable.b6d7105cee",
24
+ "@webiny/background-tasks": "0.0.0-unstable.b6d7105cee",
25
+ "@webiny/handler": "0.0.0-unstable.b6d7105cee",
26
+ "@webiny/handler-aws": "0.0.0-unstable.b6d7105cee",
27
+ "@webiny/utils": "0.0.0-unstable.b6d7105cee"
25
28
  },
26
29
  "devDependencies": {
27
- "@faker-js/faker": "9.9.0",
28
- "@webiny/api": "0.0.0-unstable.ac6ebf63c6",
29
- "@webiny/build-tools": "0.0.0-unstable.ac6ebf63c6",
30
- "@webiny/handler-graphql": "0.0.0-unstable.ac6ebf63c6",
31
- "@webiny/plugins": "0.0.0-unstable.ac6ebf63c6",
32
- "@webiny/project-utils": "0.0.0-unstable.ac6ebf63c6",
33
- "@webiny/wcp": "0.0.0-unstable.ac6ebf63c6",
34
- "typescript": "5.9.3",
35
- "vitest": "3.2.4"
30
+ "@webiny/api": "0.0.0-unstable.b6d7105cee",
31
+ "@webiny/build-tools": "0.0.0-unstable.b6d7105cee",
32
+ "@webiny/handler-graphql": "0.0.0-unstable.b6d7105cee",
33
+ "@webiny/plugins": "0.0.0-unstable.b6d7105cee",
34
+ "@webiny/project-utils": "0.0.0-unstable.b6d7105cee",
35
+ "@webiny/wcp": "0.0.0-unstable.b6d7105cee",
36
+ "typescript": "7.0.2",
37
+ "vitest": "4.1.10"
36
38
  },
37
39
  "publishConfig": {
38
- "access": "public",
39
- "directory": "dist"
40
+ "access": "public"
40
41
  },
41
- "gitHead": "ac6ebf63c6de308703d41f2c1b375e03cd96b813"
42
+ "webiny": {
43
+ "publishFrom": "dist"
44
+ }
42
45
  }
@@ -1,8 +1,10 @@
1
1
  import type { IMockDataCreatorInput, IMockDataCreatorOutput } from "./types.js";
2
2
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
3
  import type { Context } from "../../types.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
5
  export declare class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {
5
- private context;
6
- constructor(context: Context);
6
+ private readonly context;
7
+ private readonly openSearchClient;
8
+ constructor(context: Context, openSearchClient: OpenSearchClient.Interface);
7
9
  execute(params: TaskDefinition.RunParams<I, O>): Promise<TaskDefinition.Result<I, O>>;
8
10
  }
@@ -1,102 +1,77 @@
1
1
  import { mockData } from "./mockData.js";
2
- import { createWaitUntilHealthy } from "@webiny/api-elasticsearch/utils/waitUntilHealthy/index.js";
3
- import { ElasticsearchCatClusterHealthStatus } from "@webiny/api-elasticsearch/operations/types.js";
2
+ import { createWaitUntilHealthy } from "@webiny/api-opensearch/utils/waitUntilHealthy/index.js";
3
+ import { OpenSearchCatClusterHealthStatus } from "@webiny/api-opensearch/operations/types.js";
4
4
  import { mdbid } from "@webiny/utils";
5
5
  import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
6
6
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
7
- export class MockDataCreator {
8
- constructor(context) {
9
- this.context = context;
10
- }
11
- async execute(params) {
12
- const {
13
- input,
14
- controller
15
- } = params;
16
- if (controller.runtime.isAborted()) {
17
- return controller.response.aborted();
18
- } else if (controller.runtime.isCloseToTimeout()) {
19
- return controller.response.continue({
20
- ...input
21
- });
7
+ class MockDataCreator {
8
+ constructor(context, openSearchClient){
9
+ this.context = context;
10
+ this.openSearchClient = openSearchClient;
22
11
  }
23
- const getModel = this.context.container.resolve(GetModelUseCase);
24
- const createEntry = this.context.container.resolve(CreateEntryUseCase);
25
- const modelResult = await getModel.execute("cars");
26
- if (modelResult.isFail()) {
27
- return controller.response.error(modelResult.error);
28
- }
29
- const model = modelResult.value;
30
- const healthCheck = createWaitUntilHealthy(this.context.elasticsearch, {
31
- waitingTimeStep: 20,
32
- maxWaitingTime: 150,
33
- maxProcessorPercent: 80,
34
- minClusterHealthStatus: ElasticsearchCatClusterHealthStatus.Yellow,
35
- maxRamPercent: 101
36
- });
37
- let createdAmount = input.createdAmount;
38
- for (; createdAmount < input.totalAmount; createdAmount++) {
39
- if (controller.runtime.isAborted()) {
40
- return controller.response.aborted();
41
- } else if (controller.runtime.isCloseToTimeout()) {
42
- return controller.response.continue({
43
- ...input,
44
- createdAmount
12
+ async execute(params) {
13
+ const { input, controller } = params;
14
+ if (controller.runtime.isAborted()) return controller.response.aborted();
15
+ if (controller.runtime.isCloseToTimeout()) return controller.response.continue({
16
+ ...input
17
+ });
18
+ const getModel = this.context.container.resolve(GetModelUseCase);
19
+ const createEntry = this.context.container.resolve(CreateEntryUseCase);
20
+ const modelResult = await getModel.execute("cars");
21
+ if (modelResult.isFail()) return controller.response.error(modelResult.error);
22
+ const model = modelResult.value;
23
+ const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {
24
+ waitingTimeStep: 20,
25
+ maxWaitingTime: 150,
26
+ maxProcessorPercent: 80,
27
+ minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,
28
+ maxRamPercent: 101
45
29
  });
46
- }
47
- if (createdAmount % 50 === 0) {
48
- try {
49
- await healthCheck.wait({
50
- async onUnhealthy({
51
- waitingTimeStep,
52
- startedAt,
53
- mustEndAt,
54
- runs,
55
- waitingReason
56
- }) {
57
- console.warn(`Cluster is unhealthy on run #${runs}.`, {
58
- startedAt,
59
- mustEndAt,
60
- waitingTimeStep,
61
- waitingReason
62
- });
63
- },
64
- async onTimeout({
65
- waitingTimeStep,
66
- startedAt,
67
- mustEndAt,
68
- runs,
69
- waitingReason
70
- }) {
71
- console.warn(`Cluster health check timed out on run #${runs}.`, {
72
- startedAt,
73
- mustEndAt,
74
- waitingTimeStep,
75
- waitingReason
76
- });
30
+ let createdAmount = input.createdAmount;
31
+ for(; createdAmount < input.totalAmount; createdAmount++){
32
+ if (controller.runtime.isAborted()) return controller.response.aborted();
33
+ if (controller.runtime.isCloseToTimeout()) return controller.response.continue({
34
+ ...input,
35
+ createdAmount
36
+ });
37
+ if (createdAmount % 50 === 0) try {
38
+ await healthCheck.wait({
39
+ async onUnhealthy ({ waitingTimeStep, startedAt, mustEndAt, runs, waitingReason }) {
40
+ console.warn(`Cluster is unhealthy on run #${runs}.`, {
41
+ startedAt,
42
+ mustEndAt,
43
+ waitingTimeStep,
44
+ waitingReason
45
+ });
46
+ },
47
+ async onTimeout ({ waitingTimeStep, startedAt, mustEndAt, runs, waitingReason }) {
48
+ console.warn(`Cluster health check timed out on run #${runs}.`, {
49
+ startedAt,
50
+ mustEndAt,
51
+ waitingTimeStep,
52
+ waitingReason
53
+ });
54
+ }
55
+ });
56
+ } catch {
57
+ return controller.response.continue({
58
+ ...input,
59
+ createdAmount
60
+ }, {
61
+ seconds: 30
62
+ });
77
63
  }
78
- });
79
- } catch {
80
- return controller.response.continue({
81
- ...input,
82
- createdAmount
83
- }, {
84
- seconds: 30
85
- });
64
+ const taskId = controller.state.getTask().id;
65
+ const createResult = await createEntry.execute(model, {
66
+ id: `${taskId}${mdbid()}`,
67
+ location: mockData.wbyAco_location,
68
+ values: mockData
69
+ });
70
+ if (createResult.isFail()) return controller.response.error(createResult.error);
86
71
  }
87
- }
88
- const taskId = controller.state.getTask().id;
89
- const createResult = await createEntry.execute(model, {
90
- id: `${taskId}${mdbid()}`,
91
- location: mockData.wbyAco_location,
92
- values: mockData
93
- });
94
- if (createResult.isFail()) {
95
- return controller.response.error(createResult.error);
96
- }
72
+ return params.controller.response.done(`Created ${input.totalAmount} records.`);
97
73
  }
98
- return params.controller.response.done(`Created ${input.totalAmount} records.`);
99
- }
100
74
  }
75
+ export { MockDataCreator };
101
76
 
102
77
  //# sourceMappingURL=MockDataCreator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mockData","createWaitUntilHealthy","ElasticsearchCatClusterHealthStatus","mdbid","GetModelUseCase","CreateEntryUseCase","MockDataCreator","constructor","context","execute","params","input","controller","runtime","isAborted","response","aborted","isCloseToTimeout","continue","getModel","container","resolve","createEntry","modelResult","isFail","error","model","value","healthCheck","elasticsearch","waitingTimeStep","maxWaitingTime","maxProcessorPercent","minClusterHealthStatus","Yellow","maxRamPercent","createdAmount","totalAmount","wait","onUnhealthy","startedAt","mustEndAt","runs","waitingReason","console","warn","onTimeout","seconds","taskId","state","getTask","id","createResult","location","wbyAco_location","values","done"],"sources":["MockDataCreator.ts"],"sourcesContent":["import type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types.js\";\nimport { mockData } from \"./mockData.js\";\nimport { createWaitUntilHealthy } from \"@webiny/api-elasticsearch/utils/waitUntilHealthy/index.js\";\nimport { ElasticsearchCatClusterHealthStatus } from \"@webiny/api-elasticsearch/operations/types.js\";\nimport { mdbid } from \"@webiny/utils\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context } from \"~/types.js\";\n\nexport class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {\n constructor(private context: Context) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input\n });\n }\n\n const getModel = this.context.container.resolve(GetModelUseCase);\n const createEntry = this.context.container.resolve(CreateEntryUseCase);\n\n const modelResult = await getModel.execute(\"cars\");\n if (modelResult.isFail()) {\n return controller.response.error(modelResult.error);\n }\n\n const model = modelResult.value;\n\n const healthCheck = createWaitUntilHealthy(this.context.elasticsearch, {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: ElasticsearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n createdAmount\n });\n }\n if (createdAmount % 50 === 0) {\n try {\n await healthCheck.wait({\n async onUnhealthy({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster is unhealthy on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n },\n async onTimeout({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster health check timed out on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n }\n });\n } catch {\n return controller.response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = controller.state.getTask().id;\n\n const createResult = await createEntry.execute(model, {\n id: `${taskId}${mdbid()}`,\n location: mockData.wbyAco_location,\n values: mockData\n });\n\n if (createResult.isFail()) {\n return controller.response.error(createResult.error);\n }\n }\n\n return params.controller.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataCreator/MockDataCreator.js","sources":["../../../src/tasks/MockDataCreator/MockDataCreator.ts"],"sourcesContent":["import type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types.js\";\nimport { mockData } from \"./mockData.js\";\nimport { createWaitUntilHealthy } from \"@webiny/api-opensearch/utils/waitUntilHealthy/index.js\";\nimport { OpenSearchCatClusterHealthStatus } from \"@webiny/api-opensearch/operations/types.js\";\nimport { mdbid } from \"@webiny/utils\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\n\nexport class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {\n constructor(\n private readonly context: Context,\n private readonly openSearchClient: OpenSearchClient.Interface\n ) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input\n });\n }\n\n const getModel = this.context.container.resolve(GetModelUseCase);\n const createEntry = this.context.container.resolve(CreateEntryUseCase);\n\n const modelResult = await getModel.execute(\"cars\");\n if (modelResult.isFail()) {\n return controller.response.error(modelResult.error);\n }\n\n const model = modelResult.value;\n\n const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n createdAmount\n });\n }\n if (createdAmount % 50 === 0) {\n try {\n await healthCheck.wait({\n async onUnhealthy({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster is unhealthy on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n },\n async onTimeout({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster health check timed out on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n }\n });\n } catch {\n return controller.response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = controller.state.getTask().id;\n\n const createResult = await createEntry.execute(model, {\n id: `${taskId}${mdbid()}`,\n location: mockData.wbyAco_location,\n values: mockData\n });\n\n if (createResult.isFail()) {\n return controller.response.error(createResult.error);\n }\n }\n\n return params.controller.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"names":["MockDataCreator","context","openSearchClient","params","input","controller","getModel","GetModelUseCase","createEntry","CreateEntryUseCase","modelResult","model","healthCheck","createWaitUntilHealthy","OpenSearchCatClusterHealthStatus","createdAmount","waitingTimeStep","startedAt","mustEndAt","runs","waitingReason","console","taskId","createResult","mdbid","mockData"],"mappings":";;;;;;AAWO,MAAMA;IACT,YACqBC,OAAgB,EAChBC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;IAClB;IAEH,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,IAAIE,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;QAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;YAChC,GAAGD,KAAK;QACZ;QAGJ,MAAME,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAChD,MAAMC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAEnD,MAAMC,cAAc,MAAMJ,SAAS,OAAO,CAAC;QAC3C,IAAII,YAAY,MAAM,IAClB,OAAOL,WAAW,QAAQ,CAAC,KAAK,CAACK,YAAY,KAAK;QAGtD,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,cAAcC,uBAAuB,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI;YACpE,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;YACrB,wBAAwBC,iCAAiC,MAAM;YAC/D,eAAe;QACnB;QAEA,IAAIC,gBAAgBX,MAAM,aAAa;QAEvC,MAAOW,gBAAgBX,MAAM,WAAW,EAAEW,gBAAiB;YACvD,IAAIV,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;gBAChC,GAAGD,KAAK;gBACRW;YACJ;YAEJ,IAAIA,gBAAgB,OAAO,GACvB,IAAI;gBACA,MAAMH,YAAY,IAAI,CAAC;oBACnB,MAAM,aAAY,EACdI,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,6BAA6B,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAClDF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;oBACA,MAAM,WAAU,EACZJ,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,uCAAuC,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAC5DF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;gBACJ;YACJ,EAAE,OAAM;gBACJ,OAAOf,WAAW,QAAQ,CAAC,QAAQ,CAC/B;oBACI,GAAGD,KAAK;oBACRW;gBACJ,GACA;oBACI,SAAS;gBACb;YAER;YAEJ,MAAMO,SAASjB,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;YAE5C,MAAMkB,eAAe,MAAMf,YAAY,OAAO,CAACG,OAAO;gBAClD,IAAI,GAAGW,SAASE,SAAS;gBACzB,UAAUC,SAAS,eAAe;gBAClC,QAAQA;YACZ;YAEA,IAAIF,aAAa,MAAM,IACnB,OAAOlB,WAAW,QAAQ,CAAC,KAAK,CAACkB,aAAa,KAAK;QAE3D;QAEA,OAAOpB,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAEC,MAAM,WAAW,CAAC,SAAS,CAAC;IAClF;AACJ"}