@webiny/api-elasticsearch-tasks 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.f6dc066313

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 (152) hide show
  1. package/README.md +10 -9
  2. package/abstractions/DbRegistry.d.ts +11 -0
  3. package/abstractions/DbRegistry.js +4 -0
  4. package/abstractions/DbRegistry.js.map +1 -0
  5. package/abstractions/OpensearchTenantIndexFactory.d.ts +14 -0
  6. package/abstractions/OpensearchTenantIndexFactory.js +4 -0
  7. package/abstractions/OpensearchTenantIndexFactory.js.map +1 -0
  8. package/abstractions/SynchronizationContext.d.ts +6 -0
  9. package/abstractions/SynchronizationContext.js +4 -0
  10. package/abstractions/SynchronizationContext.js.map +1 -0
  11. package/errors/IndexSettingsGetError.d.ts +1 -1
  12. package/errors/IndexSettingsGetError.js +2 -10
  13. package/errors/IndexSettingsGetError.js.map +1 -1
  14. package/errors/IndexSettingsSetError.d.ts +1 -1
  15. package/errors/IndexSettingsSetError.js +2 -10
  16. package/errors/IndexSettingsSetError.js.map +1 -1
  17. package/errors/IndexingDisableError.js +1 -8
  18. package/errors/IndexingDisableError.js.map +1 -1
  19. package/errors/IndexingEnableError.js +1 -8
  20. package/errors/IndexingEnableError.js.map +1 -1
  21. package/errors/index.d.ts +4 -4
  22. package/errors/index.js +4 -49
  23. package/errors/index.js.map +1 -1
  24. package/helpers/getClients.d.ts +5 -0
  25. package/helpers/getClients.js +14 -0
  26. package/helpers/getClients.js.map +1 -0
  27. package/helpers/scan.d.ts +2 -2
  28. package/helpers/scan.js +3 -10
  29. package/helpers/scan.js.map +1 -1
  30. package/index.d.ts +5 -5
  31. package/index.js +14 -25
  32. package/index.js.map +1 -1
  33. package/package.json +26 -30
  34. package/settings/DisableIndexing.d.ts +2 -2
  35. package/settings/DisableIndexing.js +3 -10
  36. package/settings/DisableIndexing.js.map +1 -1
  37. package/settings/EnableIndexing.d.ts +2 -2
  38. package/settings/EnableIndexing.js +3 -10
  39. package/settings/EnableIndexing.js.map +1 -1
  40. package/settings/IndexManager.d.ts +2 -2
  41. package/settings/IndexManager.js +10 -17
  42. package/settings/IndexManager.js.map +1 -1
  43. package/settings/IndexSettingsManager.d.ts +1 -1
  44. package/settings/IndexSettingsManager.js +4 -11
  45. package/settings/IndexSettingsManager.js.map +1 -1
  46. package/settings/index.d.ts +1 -1
  47. package/settings/index.js +1 -16
  48. package/settings/index.js.map +1 -1
  49. package/settings/types.d.ts +1 -1
  50. package/settings/types.js +1 -5
  51. package/settings/types.js.map +1 -1
  52. package/tasks/Manager.d.ts +15 -25
  53. package/tasks/Manager.js +10 -31
  54. package/tasks/Manager.js.map +1 -1
  55. package/tasks/createIndexes/CreateIndexesTask.d.ts +23 -0
  56. package/tasks/createIndexes/CreateIndexesTask.js +53 -0
  57. package/tasks/createIndexes/CreateIndexesTask.js.map +1 -0
  58. package/tasks/createIndexes/CreateIndexesTaskRunner.d.ts +14 -8
  59. package/tasks/createIndexes/CreateIndexesTaskRunner.js +22 -29
  60. package/tasks/createIndexes/CreateIndexesTaskRunner.js.map +1 -1
  61. package/tasks/createIndexes/OnBeforeTrigger.d.ts +7 -9
  62. package/tasks/createIndexes/OnBeforeTrigger.js +11 -28
  63. package/tasks/createIndexes/OnBeforeTrigger.js.map +1 -1
  64. package/tasks/createIndexes/createIndex.d.ts +1 -1
  65. package/tasks/createIndexes/createIndex.js +2 -9
  66. package/tasks/createIndexes/createIndex.js.map +1 -1
  67. package/tasks/createIndexes/index.d.ts +2 -3
  68. package/tasks/createIndexes/index.js +17 -63
  69. package/tasks/createIndexes/index.js.map +1 -1
  70. package/tasks/createIndexes/listIndexes.d.ts +4 -12
  71. package/tasks/createIndexes/listIndexes.js +10 -43
  72. package/tasks/createIndexes/listIndexes.js.map +1 -1
  73. package/tasks/createIndexes/types.js +1 -5
  74. package/tasks/dataSynchronization/DataSynchronizationTask.d.ts +34 -0
  75. package/tasks/dataSynchronization/DataSynchronizationTask.js +69 -0
  76. package/tasks/dataSynchronization/DataSynchronizationTask.js.map +1 -0
  77. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.d.ts +6 -3
  78. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js +7 -17
  79. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js.map +1 -1
  80. package/tasks/dataSynchronization/createFactories.d.ts +1 -1
  81. package/tasks/dataSynchronization/createFactories.js +3 -10
  82. package/tasks/dataSynchronization/createFactories.js.map +1 -1
  83. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.d.ts +1 -1
  84. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js +5 -12
  85. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js.map +1 -1
  86. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.d.ts +8 -10
  87. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js +18 -24
  88. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js.map +1 -1
  89. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.d.ts +1 -1
  90. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js +6 -13
  91. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js.map +1 -1
  92. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.d.ts +1 -1
  93. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js +1 -5
  94. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js.map +1 -1
  95. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js +1 -5
  96. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js +1 -8
  97. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
  98. package/tasks/dataSynchronization/entities/getElasticsearchEntity.d.ts +7 -710
  99. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js +6 -28
  100. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js.map +1 -1
  101. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.d.ts +1 -4
  102. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js +2 -19
  103. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js.map +1 -1
  104. package/tasks/dataSynchronization/entities/getTable.d.ts +3 -3
  105. package/tasks/dataSynchronization/entities/getTable.js +3 -10
  106. package/tasks/dataSynchronization/entities/getTable.js.map +1 -1
  107. package/tasks/dataSynchronization/entities/index.d.ts +3 -3
  108. package/tasks/dataSynchronization/entities/index.js +3 -38
  109. package/tasks/dataSynchronization/entities/index.js.map +1 -1
  110. package/tasks/dataSynchronization/index.d.ts +3 -4
  111. package/tasks/dataSynchronization/index.js +22 -74
  112. package/tasks/dataSynchronization/index.js.map +1 -1
  113. package/tasks/dataSynchronization/types.d.ts +9 -8
  114. package/tasks/dataSynchronization/types.js +1 -5
  115. package/tasks/dataSynchronization/types.js.map +1 -1
  116. package/tasks/enableIndexing/EnableIndexingTaskRunner.d.ts +5 -6
  117. package/tasks/enableIndexing/EnableIndexingTaskRunner.js +5 -13
  118. package/tasks/enableIndexing/EnableIndexingTaskRunner.js.map +1 -1
  119. package/tasks/enableIndexing/index.d.ts +2 -3
  120. package/tasks/enableIndexing/index.js +40 -46
  121. package/tasks/enableIndexing/index.js.map +1 -1
  122. package/tasks/enableIndexing/types.js +1 -5
  123. package/tasks/index.d.ts +4 -4
  124. package/tasks/index.js +4 -49
  125. package/tasks/index.js.map +1 -1
  126. package/tasks/reindexing/ReindexingTaskRunner.d.ts +4 -5
  127. package/tasks/reindexing/ReindexingTaskRunner.js +18 -26
  128. package/tasks/reindexing/ReindexingTaskRunner.js.map +1 -1
  129. package/tasks/reindexing/index.d.ts +1 -1
  130. package/tasks/reindexing/index.js +1 -16
  131. package/tasks/reindexing/index.js.map +1 -1
  132. package/tasks/reindexing/reindexingTaskDefinition.d.ts +2 -2
  133. package/tasks/reindexing/reindexingTaskDefinition.js +43 -44
  134. package/tasks/reindexing/reindexingTaskDefinition.js.map +1 -1
  135. package/types.d.ts +18 -20
  136. package/types.js +1 -5
  137. package/types.js.map +1 -1
  138. package/definitions/entry.d.ts +0 -11
  139. package/definitions/entry.js +0 -43
  140. package/definitions/entry.js.map +0 -1
  141. package/definitions/index.d.ts +0 -2
  142. package/definitions/index.js +0 -29
  143. package/definitions/index.js.map +0 -1
  144. package/definitions/table.d.ts +0 -7
  145. package/definitions/table.js +0 -23
  146. package/definitions/table.js.map +0 -1
  147. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.d.ts +0 -23
  148. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js +0 -25
  149. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js.map +0 -1
  150. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.d.ts +0 -4
  151. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js +0 -13
  152. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js.map +0 -1
@@ -1,51 +1,45 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createEnableIndexingTask = void 0;
7
- var _tasks = require("@webiny/tasks");
8
- const createEnableIndexingTask = params => {
9
- return (0, _tasks.createTaskDefinition)({
10
- id: "elasticsearchEnableIndexing",
11
- title: "Enable Indexing on Elasticsearch Indexes",
12
- run: async ({
13
- response,
14
- context,
15
- isAborted,
16
- isCloseToTimeout,
17
- input,
18
- store,
19
- timer
20
- }) => {
21
- const {
22
- Manager
23
- } = await import(/* webpackChunkName: "Manager" */"../Manager");
24
- const {
25
- IndexManager
26
- } = await import(/* webpackChunkName: "IndexManager" */"../../settings");
27
- const {
28
- EnableIndexingTaskRunner
29
- } = await import(/* webpackChunkName: "EnableIndexingTaskRunner" */"./EnableIndexingTaskRunner");
30
- const manager = new Manager({
31
- elasticsearchClient: params?.elasticsearchClient,
32
- documentClient: params?.documentClient,
33
- response,
34
- context,
35
- isAborted,
36
- isCloseToTimeout,
37
- store,
38
- timer
39
- });
40
- const indexManager = new IndexManager(manager.elasticsearch, {}, {
41
- refreshInterval: input.refreshInterval,
42
- numberOfReplicas: input.numberOfReplicas
43
- });
44
- const enableIndexing = new EnableIndexingTaskRunner(manager, indexManager);
45
- return enableIndexing.exec(input.matching);
1
+ import { createContextPlugin } from "@webiny/api";
2
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ import { Manager } from "../Manager.js";
4
+ import { IndexManager } from "../../settings/index.js";
5
+ import { EnableIndexingTaskRunner } from "./EnableIndexingTaskRunner.js";
6
+ import { getClients } from "../../helpers/getClients.js";
7
+ class ElasticsearchEnableIndexingTask {
8
+ id = "elasticsearchEnableIndexing";
9
+ title = "Enable Indexing on Elasticsearch Indexes";
10
+ constructor(elasticsearchClient, documentClient) {
11
+ this.elasticsearchClient = elasticsearchClient;
12
+ this.documentClient = documentClient;
13
+ }
14
+ async run({
15
+ input,
16
+ controller
17
+ }) {
18
+ if (controller.runtime.isAborted()) {
19
+ return controller.response.aborted();
46
20
  }
21
+ const manager = new Manager({
22
+ elasticsearchClient: this.elasticsearchClient,
23
+ documentClient: this.documentClient,
24
+ controller
25
+ });
26
+ const indexManager = new IndexManager(manager.elasticsearch, {}, {
27
+ refreshInterval: input.refreshInterval,
28
+ numberOfReplicas: input.numberOfReplicas
29
+ });
30
+ const enableIndexing = new EnableIndexingTaskRunner(manager, indexManager);
31
+ return enableIndexing.exec(input.matching);
32
+ }
33
+ }
34
+ export const createEnableIndexingTask = params => {
35
+ return createContextPlugin(context => {
36
+ const clients = getClients(context, params);
37
+
38
+ // Register the task definition
39
+ context.container.registerFactory(TaskDefinition, () => {
40
+ return new ElasticsearchEnableIndexingTask(clients.elasticsearchClient, clients.documentClient);
41
+ });
47
42
  });
48
43
  };
49
- exports.createEnableIndexingTask = createEnableIndexingTask;
50
44
 
51
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","createEnableIndexingTask","params","createTaskDefinition","id","title","run","response","context","isAborted","isCloseToTimeout","input","store","timer","Manager","IndexManager","EnableIndexingTaskRunner","manager","elasticsearchClient","documentClient","indexManager","elasticsearch","refreshInterval","numberOfReplicas","enableIndexing","exec","matching","exports"],"sources":["index.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types\";\nimport type { IElasticsearchEnableIndexingTaskInput } from \"./types\";\n\nexport const createEnableIndexingTask = (params?: IElasticsearchTaskConfig) => {\n return createTaskDefinition<Context, IElasticsearchEnableIndexingTaskInput>({\n id: \"elasticsearchEnableIndexing\",\n title: \"Enable Indexing on Elasticsearch Indexes\",\n run: async ({ response, context, isAborted, isCloseToTimeout, input, store, timer }) => {\n const { Manager } = await import(\n /* webpackChunkName: \"Manager\" */\n \"../Manager\"\n );\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings\"\n );\n\n const { EnableIndexingTaskRunner } = await import(\n /* webpackChunkName: \"EnableIndexingTaskRunner\" */ \"./EnableIndexingTaskRunner\"\n );\n\n const manager = new Manager<IElasticsearchEnableIndexingTaskInput>({\n elasticsearchClient: params?.elasticsearchClient,\n documentClient: params?.documentClient,\n response,\n context,\n isAborted,\n isCloseToTimeout,\n store,\n timer\n });\n\n const indexManager = new IndexManager(\n manager.elasticsearch,\n {},\n {\n refreshInterval: input.refreshInterval,\n numberOfReplicas: input.numberOfReplicas\n }\n );\n\n const enableIndexing = new EnableIndexingTaskRunner(manager, indexManager);\n\n return enableIndexing.exec(input.matching);\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIO,MAAMC,wBAAwB,GAAIC,MAAiC,IAAK;EAC3E,OAAO,IAAAC,2BAAoB,EAAiD;IACxEC,EAAE,EAAE,6BAA6B;IACjCC,KAAK,EAAE,0CAA0C;IACjDC,GAAG,EAAE,MAAAA,CAAO;MAAEC,QAAQ;MAAEC,OAAO;MAAEC,SAAS;MAAEC,gBAAgB;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAM,CAAC,KAAK;MACpF,MAAM;QAAEC;MAAQ,CAAC,GAAG,MAAM,MAAM,CAC5B,6CAEJ,CAAC;MACD,MAAM;QAAEC;MAAa,CAAC,GAAG,MAAM,MAAM,CACjC,sDACJ,CAAC;MAED,MAAM;QAAEC;MAAyB,CAAC,GAAG,MAAM,MAAM,CAC7C,8EACJ,CAAC;MAED,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAwC;QAC/DI,mBAAmB,EAAEhB,MAAM,EAAEgB,mBAAmB;QAChDC,cAAc,EAAEjB,MAAM,EAAEiB,cAAc;QACtCZ,QAAQ;QACRC,OAAO;QACPC,SAAS;QACTC,gBAAgB;QAChBE,KAAK;QACLC;MACJ,CAAC,CAAC;MAEF,MAAMO,YAAY,GAAG,IAAIL,YAAY,CACjCE,OAAO,CAACI,aAAa,EACrB,CAAC,CAAC,EACF;QACIC,eAAe,EAAEX,KAAK,CAACW,eAAe;QACtCC,gBAAgB,EAAEZ,KAAK,CAACY;MAC5B,CACJ,CAAC;MAED,MAAMC,cAAc,GAAG,IAAIR,wBAAwB,CAACC,OAAO,EAAEG,YAAY,CAAC;MAE1E,OAAOI,cAAc,CAACC,IAAI,CAACd,KAAK,CAACe,QAAQ,CAAC;IAC9C;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA1B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createContextPlugin","TaskDefinition","Manager","IndexManager","EnableIndexingTaskRunner","getClients","ElasticsearchEnableIndexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","manager","indexManager","elasticsearch","refreshInterval","numberOfReplicas","enableIndexing","exec","matching","createEnableIndexingTask","params","context","clients","container","registerFactory"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types.js\";\nimport type { IElasticsearchEnableIndexingTaskInput } from \"./types.js\";\nimport { Manager } from \"../Manager.js\";\nimport { IndexManager } from \"~/settings/index.js\";\nimport { EnableIndexingTaskRunner } from \"./EnableIndexingTaskRunner.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchEnableIndexingTask\n implements TaskDefinition.Interface<IElasticsearchEnableIndexingTaskInput>\n{\n id = \"elasticsearchEnableIndexing\";\n title = \"Enable Indexing on Elasticsearch Indexes\";\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"]\n ) {}\n\n async run({\n input,\n controller\n }: TaskDefinition.RunParams<IElasticsearchEnableIndexingTaskInput>) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n const manager = new Manager<IElasticsearchEnableIndexingTaskInput>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(\n manager.elasticsearch,\n {},\n {\n refreshInterval: input.refreshInterval,\n numberOfReplicas: input.numberOfReplicas\n }\n );\n\n const enableIndexing = new EnableIndexingTaskRunner(manager, indexManager);\n\n return enableIndexing.exec(input.matching);\n }\n}\n\nexport const createEnableIndexingTask = (params?: Partial<IElasticsearchTaskConfig>) => {\n return createContextPlugin<Context>(context => {\n const clients = getClients(context, params);\n\n // Register the task definition\n context.container.registerFactory(TaskDefinition, () => {\n return new ElasticsearchEnableIndexingTask(\n clients.elasticsearchClient,\n clients.documentClient\n );\n });\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,cAAc,QAAQ,wDAAwD;AAGvF,SAASC,OAAO;AAChB,SAASC,YAAY;AACrB,SAASC,wBAAwB;AACjC,SAASC,UAAU;AAEnB,MAAMC,+BAA+B,CAErC;EACIC,EAAE,GAAG,6BAA6B;EAClCC,KAAK,GAAG,0CAA0C;EAElDC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EACpE;IAAA,KAFUD,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;EACnE;EAEH,MAAMC,GAAGA,CAAC;IACNC,KAAK;IACLC;EAC6D,CAAC,EAAE;IAChE,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;MAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;IACxC;IAEA,MAAMC,OAAO,GAAG,IAAIjB,OAAO,CAAwC;MAC/DQ,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCG;IACJ,CAAC,CAAC;IAEF,MAAMM,YAAY,GAAG,IAAIjB,YAAY,CACjCgB,OAAO,CAACE,aAAa,EACrB,CAAC,CAAC,EACF;MACIC,eAAe,EAAET,KAAK,CAACS,eAAe;MACtCC,gBAAgB,EAAEV,KAAK,CAACU;IAC5B,CACJ,CAAC;IAED,MAAMC,cAAc,GAAG,IAAIpB,wBAAwB,CAACe,OAAO,EAAEC,YAAY,CAAC;IAE1E,OAAOI,cAAc,CAACC,IAAI,CAACZ,KAAK,CAACa,QAAQ,CAAC;EAC9C;AACJ;AAEA,OAAO,MAAMC,wBAAwB,GAAIC,MAA0C,IAAK;EACpF,OAAO5B,mBAAmB,CAAU6B,OAAO,IAAI;IAC3C,MAAMC,OAAO,GAAGzB,UAAU,CAACwB,OAAO,EAAED,MAAM,CAAC;;IAE3C;IACAC,OAAO,CAACE,SAAS,CAACC,eAAe,CAAC/B,cAAc,EAAE,MAAM;MACpD,OAAO,IAAIK,+BAA+B,CACtCwB,OAAO,CAACpB,mBAAmB,EAC3BoB,OAAO,CAACnB,cACZ,CAAC;IACL,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,7 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
1
+ export {};
6
2
 
7
3
  //# sourceMappingURL=types.js.map
package/tasks/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./enableIndexing";
2
- export * from "./dataSynchronization";
3
- export * from "./reindexing";
4
- export * from "./createIndexes";
1
+ export * from "./enableIndexing/index.js";
2
+ export * from "./dataSynchronization/index.js";
3
+ export * from "./reindexing/index.js";
4
+ export * from "./createIndexes/index.js";
package/tasks/index.js CHANGED
@@ -1,51 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _enableIndexing = require("./enableIndexing");
7
- Object.keys(_enableIndexing).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _enableIndexing[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _enableIndexing[key];
14
- }
15
- });
16
- });
17
- var _dataSynchronization = require("./dataSynchronization");
18
- Object.keys(_dataSynchronization).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _dataSynchronization[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _dataSynchronization[key];
25
- }
26
- });
27
- });
28
- var _reindexing = require("./reindexing");
29
- Object.keys(_reindexing).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _reindexing[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _reindexing[key];
36
- }
37
- });
38
- });
39
- var _createIndexes = require("./createIndexes");
40
- Object.keys(_createIndexes).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _createIndexes[key]) return;
43
- Object.defineProperty(exports, key, {
44
- enumerable: true,
45
- get: function () {
46
- return _createIndexes[key];
47
- }
48
- });
49
- });
1
+ export * from "./enableIndexing/index.js";
2
+ export * from "./dataSynchronization/index.js";
3
+ export * from "./reindexing/index.js";
4
+ export * from "./createIndexes/index.js";
50
5
 
51
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_enableIndexing","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dataSynchronization","_reindexing","_createIndexes"],"sources":["index.ts"],"sourcesContent":["export * from \"./enableIndexing\";\nexport * from \"./dataSynchronization\";\nexport * from \"./reindexing\";\nexport * from \"./createIndexes\";\n"],"mappings":";;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,oBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,oBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,oBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,oBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,cAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,cAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,cAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,cAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./enableIndexing/index.js\";\nexport * from \"./dataSynchronization/index.js\";\nexport * from \"./reindexing/index.js\";\nexport * from \"./createIndexes/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA","ignoreList":[]}
@@ -1,16 +1,15 @@
1
- import type { IElasticsearchIndexingTaskValues, IElasticsearchIndexingTaskValuesKeys, IManager } from "../../types";
2
- import type { ITaskResponseResult } from "@webiny/tasks/response/abstractions";
3
- import type { IndexManager } from "../../settings";
1
+ import type { IElasticsearchIndexingTaskValues, IElasticsearchIndexingTaskValuesKeys, IManager } from "../../types.js";
2
+ import type { ITaskResult } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ import type { IndexManager } from "../../settings/index.js";
4
4
  export declare class ReindexingTaskRunner {
5
5
  private readonly manager;
6
6
  private keys?;
7
7
  private readonly indexManager;
8
- private readonly response;
9
8
  constructor(manager: IManager<IElasticsearchIndexingTaskValues>, indexManager: IndexManager);
10
9
  /**
11
10
  * When running the task, we always must check:
12
11
  * * if task is close to timeout
13
12
  * * if task was aborted
14
13
  */
15
- exec(keys: IElasticsearchIndexingTaskValuesKeys | undefined, limit: number): Promise<ITaskResponseResult>;
14
+ exec(keys: IElasticsearchIndexingTaskValuesKeys | undefined, limit: number): Promise<ITaskResult<IElasticsearchIndexingTaskValues>>;
16
15
  }
@@ -1,11 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReindexingTaskRunner = void 0;
7
- var _scan = require("../../helpers/scan");
8
- var _dbDynamodb = require("@webiny/db-dynamodb");
1
+ import { scan } from "../../helpers/scan.js";
2
+ import { createTableWriteBatch } from "@webiny/db-dynamodb";
9
3
  const getKeys = results => {
10
4
  if (results.lastEvaluatedKey?.PK && results.lastEvaluatedKey?.SK) {
11
5
  return {
@@ -15,10 +9,9 @@ const getKeys = results => {
15
9
  }
16
10
  return undefined;
17
11
  };
18
- class ReindexingTaskRunner {
12
+ export class ReindexingTaskRunner {
19
13
  constructor(manager, indexManager) {
20
14
  this.manager = manager;
21
- this.response = manager.response;
22
15
  this.indexManager = indexManager;
23
16
  }
24
17
 
@@ -30,19 +23,19 @@ class ReindexingTaskRunner {
30
23
  async exec(keys = undefined, limit) {
31
24
  this.keys = keys;
32
25
  const isIndexAllowed = index => {
33
- const input = this.manager.store.getInput();
26
+ const input = this.manager.controller.state.getInput();
34
27
  if (typeof input.matching !== "string" || !input.matching) {
35
28
  return true;
36
29
  }
37
30
  return index.includes(input.matching);
38
31
  };
39
32
  try {
40
- while (this.manager.isCloseToTimeout() === false) {
41
- if (this.manager.isAborted()) {
42
- return this.response.aborted();
33
+ while (this.manager.controller.runtime.isCloseToTimeout() === false) {
34
+ if (this.manager.controller.runtime.isAborted()) {
35
+ return this.manager.controller.response.aborted();
43
36
  }
44
- const results = await (0, _scan.scan)({
45
- table: this.manager.table,
37
+ const results = await scan({
38
+ table: this.manager.table.table,
46
39
  keys: this.keys,
47
40
  options: {
48
41
  limit
@@ -50,10 +43,10 @@ class ReindexingTaskRunner {
50
43
  });
51
44
  if (results.items.length === 0) {
52
45
  await this.indexManager.enableIndexing();
53
- return this.response.done("No more items to process.");
46
+ return this.manager.controller.response.done("No more items to process.");
54
47
  }
55
- const tableWriteBatch = (0, _dbDynamodb.createTableWriteBatch)({
56
- table: this.manager.table
48
+ const tableWriteBatch = createTableWriteBatch({
49
+ table: this.manager.table.table
57
50
  });
58
51
  for (const item of results.items) {
59
52
  /**
@@ -67,7 +60,7 @@ class ReindexingTaskRunner {
67
60
  }
68
61
  const exists = await this.indexManager.indexExists(item.index);
69
62
  if (!exists) {
70
- await this.manager.store.addInfoLog({
63
+ await this.manager.controller.logger.info({
71
64
  message: `Index "${item.index}" does not exist. Skipping the item.`
72
65
  });
73
66
  continue;
@@ -103,7 +96,7 @@ class ReindexingTaskRunner {
103
96
  * Also, we always want to store what was the last key we processed, just in case something breaks, so we can continue from this point.
104
97
  */
105
98
  this.keys = getKeys(results);
106
- await this.manager.store.updateInput({
99
+ await this.manager.controller.state.updateInput({
107
100
  settings: this.indexManager.settings,
108
101
  keys: this.keys
109
102
  });
@@ -112,10 +105,10 @@ class ReindexingTaskRunner {
112
105
  */
113
106
  if (!this.keys) {
114
107
  await this.indexManager.enableIndexing();
115
- return this.response.done("No more items to process - no last evaluated keys.");
108
+ return this.manager.controller.response.done("No more items to process - no last evaluated keys.");
116
109
  }
117
110
  }
118
- return this.response.continue({
111
+ return this.manager.controller.response.continue({
119
112
  keys: this.keys
120
113
  });
121
114
  } catch (ex) {
@@ -126,12 +119,11 @@ class ReindexingTaskRunner {
126
119
  await this.indexManager.enableIndexing();
127
120
  } catch (er) {
128
121
  er.data = ex;
129
- return this.response.error(er);
122
+ return this.manager.controller.response.error(er);
130
123
  }
131
- return this.response.error(ex);
124
+ return this.manager.controller.response.error(ex);
132
125
  }
133
126
  }
134
127
  }
135
- exports.ReindexingTaskRunner = ReindexingTaskRunner;
136
128
 
137
129
  //# sourceMappingURL=ReindexingTaskRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_scan","require","_dbDynamodb","getKeys","results","lastEvaluatedKey","PK","SK","undefined","ReindexingTaskRunner","constructor","manager","indexManager","response","exec","keys","limit","isIndexAllowed","index","input","store","getInput","matching","includes","isCloseToTimeout","isAborted","aborted","scan","table","options","items","length","enableIndexing","done","tableWriteBatch","createTableWriteBatch","item","exists","indexExists","addInfoLog","message","entityName","_et","entity","getEntity","disableIndexing","put","TYPE","modified","Date","toISOString","execute","updateInput","settings","continue","ex","er","data","error","exports"],"sources":["ReindexingTaskRunner.ts"],"sourcesContent":["import type {\n IDynamoDbElasticsearchRecord,\n IElasticsearchIndexingTaskValues,\n IElasticsearchIndexingTaskValuesKeys,\n IManager\n} from \"~/types\";\nimport type { ITaskResponse, ITaskResponseResult } from \"@webiny/tasks/response/abstractions\";\nimport { scan } from \"~/helpers/scan\";\nimport type { ScanResponse } from \"@webiny/db-dynamodb\";\nimport { createTableWriteBatch } from \"@webiny/db-dynamodb\";\nimport type { IndexManager } from \"~/settings\";\nimport type { IIndexManager } from \"~/settings/types\";\n\nconst getKeys = (results: ScanResponse): IElasticsearchIndexingTaskValuesKeys | undefined => {\n if (results.lastEvaluatedKey?.PK && results.lastEvaluatedKey?.SK) {\n return {\n PK: results.lastEvaluatedKey.PK as unknown as string,\n SK: results.lastEvaluatedKey.SK as unknown as string\n };\n }\n return undefined;\n};\n\nexport class ReindexingTaskRunner {\n private readonly manager: IManager<IElasticsearchIndexingTaskValues>;\n private keys?: IElasticsearchIndexingTaskValuesKeys;\n\n private readonly indexManager: IIndexManager;\n private readonly response: ITaskResponse;\n\n public constructor(\n manager: IManager<IElasticsearchIndexingTaskValues>,\n indexManager: IndexManager\n ) {\n this.manager = manager;\n this.response = manager.response;\n this.indexManager = indexManager;\n }\n\n /**\n * When running the task, we always must check:\n * * if task is close to timeout\n * * if task was aborted\n */\n public async exec(\n keys: IElasticsearchIndexingTaskValuesKeys | undefined = undefined,\n limit: number\n ): Promise<ITaskResponseResult> {\n this.keys = keys;\n\n const isIndexAllowed = (index: string): boolean => {\n const input = this.manager.store.getInput();\n if (typeof input.matching !== \"string\" || !input.matching) {\n return true;\n }\n return index.includes(input.matching);\n };\n\n try {\n while (this.manager.isCloseToTimeout() === false) {\n if (this.manager.isAborted()) {\n return this.response.aborted();\n }\n\n const results = await scan<IDynamoDbElasticsearchRecord>({\n table: this.manager.table,\n keys: this.keys,\n options: {\n limit\n }\n });\n if (results.items.length === 0) {\n await this.indexManager.enableIndexing();\n return this.response.done(\"No more items to process.\");\n }\n\n const tableWriteBatch = createTableWriteBatch({\n table: this.manager.table\n });\n\n for (const item of results.items) {\n /**\n * No index defined? Impossible but let's skip if really happens.\n */\n if (!item.index) {\n continue;\n }\n if (isIndexAllowed(item.index) === false) {\n continue;\n }\n const exists = await this.indexManager.indexExists(item.index);\n if (!exists) {\n await this.manager.store.addInfoLog({\n message: `Index \"${item.index}\" does not exist. Skipping the item.`\n });\n continue;\n }\n /**\n * Is there a possibility that entityName does not exist? What do we do at that point?\n */\n const entityName = item._et || item.entity;\n /**\n * Let's skip for now.\n */\n if (!entityName) {\n continue;\n }\n const entity = this.manager.getEntity(entityName);\n /**\n * Disable the indexing for the current index.\n * Method does nothing if indexing is already disabled.\n */\n await this.indexManager.disableIndexing(item.index);\n /**\n * Reindexing will be triggered by the `putBatch` method.\n */\n tableWriteBatch.put(entity.entity, {\n ...item,\n TYPE: item.TYPE || \"unknown\",\n modified: new Date().toISOString()\n });\n }\n await tableWriteBatch.execute();\n /**\n * We always store the index settings, so we can restore them later.\n * Also, we always want to store what was the last key we processed, just in case something breaks, so we can continue from this point.\n */\n this.keys = getKeys(results);\n await this.manager.store.updateInput({\n settings: this.indexManager.settings,\n keys: this.keys\n });\n /**\n * We want to make sure that, if there are no last evaluated keys, we enable indexing.\n */\n if (!this.keys) {\n await this.indexManager.enableIndexing();\n return this.response.done(\"No more items to process - no last evaluated keys.\");\n }\n }\n return this.response.continue({\n keys: this.keys\n });\n } catch (ex) {\n /**\n * We want to enable indexing if there was an error.\n */\n try {\n await this.indexManager.enableIndexing();\n } catch (er) {\n er.data = ex;\n return this.response.error(er);\n }\n return this.response.error(ex);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["scan","createTableWriteBatch","getKeys","results","lastEvaluatedKey","PK","SK","undefined","ReindexingTaskRunner","constructor","manager","indexManager","exec","keys","limit","isIndexAllowed","index","input","controller","state","getInput","matching","includes","runtime","isCloseToTimeout","isAborted","response","aborted","table","options","items","length","enableIndexing","done","tableWriteBatch","item","exists","indexExists","logger","info","message","entityName","_et","entity","getEntity","disableIndexing","put","TYPE","modified","Date","toISOString","execute","updateInput","settings","continue","ex","er","data","error"],"sources":["ReindexingTaskRunner.ts"],"sourcesContent":["import type {\n IDynamoDbElasticsearchRecord,\n IElasticsearchIndexingTaskValues,\n IElasticsearchIndexingTaskValuesKeys,\n IManager\n} from \"~/types.js\";\nimport type { ITaskResult } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { scan } from \"~/helpers/scan.js\";\nimport type { ScanResponse } from \"@webiny/db-dynamodb\";\nimport { createTableWriteBatch } from \"@webiny/db-dynamodb\";\nimport type { IndexManager } from \"~/settings/index.js\";\nimport type { IIndexManager } from \"~/settings/types.js\";\n\nconst getKeys = (results: ScanResponse): IElasticsearchIndexingTaskValuesKeys | undefined => {\n if (results.lastEvaluatedKey?.PK && results.lastEvaluatedKey?.SK) {\n return {\n PK: results.lastEvaluatedKey.PK as unknown as string,\n SK: results.lastEvaluatedKey.SK as unknown as string\n };\n }\n return undefined;\n};\n\nexport class ReindexingTaskRunner {\n private readonly manager: IManager<IElasticsearchIndexingTaskValues>;\n private keys?: IElasticsearchIndexingTaskValuesKeys;\n private readonly indexManager: IIndexManager;\n\n public constructor(\n manager: IManager<IElasticsearchIndexingTaskValues>,\n indexManager: IndexManager\n ) {\n this.manager = manager;\n this.indexManager = indexManager;\n }\n\n /**\n * When running the task, we always must check:\n * * if task is close to timeout\n * * if task was aborted\n */\n public async exec(\n keys: IElasticsearchIndexingTaskValuesKeys | undefined = undefined,\n limit: number\n ): Promise<ITaskResult<IElasticsearchIndexingTaskValues>> {\n this.keys = keys;\n\n const isIndexAllowed = (index: string): boolean => {\n const input = this.manager.controller.state.getInput();\n if (typeof input.matching !== \"string\" || !input.matching) {\n return true;\n }\n return index.includes(input.matching);\n };\n\n try {\n while (this.manager.controller.runtime.isCloseToTimeout() === false) {\n if (this.manager.controller.runtime.isAborted()) {\n return this.manager.controller.response.aborted();\n }\n\n const results = await scan<IDynamoDbElasticsearchRecord>({\n table: this.manager.table.table,\n keys: this.keys,\n options: {\n limit\n }\n });\n if (results.items.length === 0) {\n await this.indexManager.enableIndexing();\n return this.manager.controller.response.done(\"No more items to process.\");\n }\n\n const tableWriteBatch = createTableWriteBatch({\n table: this.manager.table.table\n });\n\n for (const item of results.items) {\n /**\n * No index defined? Impossible but let's skip if really happens.\n */\n if (!item.index) {\n continue;\n }\n if (isIndexAllowed(item.index) === false) {\n continue;\n }\n const exists = await this.indexManager.indexExists(item.index);\n if (!exists) {\n await this.manager.controller.logger.info({\n message: `Index \"${item.index}\" does not exist. Skipping the item.`\n });\n continue;\n }\n /**\n * Is there a possibility that entityName does not exist? What do we do at that point?\n */\n const entityName = item._et || item.entity;\n /**\n * Let's skip for now.\n */\n if (!entityName) {\n continue;\n }\n const entity = this.manager.getEntity(entityName);\n /**\n * Disable the indexing for the current index.\n * Method does nothing if indexing is already disabled.\n */\n await this.indexManager.disableIndexing(item.index);\n /**\n * Reindexing will be triggered by the `putBatch` method.\n */\n tableWriteBatch.put(entity.entity, {\n ...item,\n TYPE: item.TYPE || \"unknown\",\n modified: new Date().toISOString()\n });\n }\n await tableWriteBatch.execute();\n /**\n * We always store the index settings, so we can restore them later.\n * Also, we always want to store what was the last key we processed, just in case something breaks, so we can continue from this point.\n */\n this.keys = getKeys(results);\n await this.manager.controller.state.updateInput({\n settings: this.indexManager.settings,\n keys: this.keys\n });\n /**\n * We want to make sure that, if there are no last evaluated keys, we enable indexing.\n */\n if (!this.keys) {\n await this.indexManager.enableIndexing();\n return this.manager.controller.response.done(\n \"No more items to process - no last evaluated keys.\"\n );\n }\n }\n return this.manager.controller.response.continue({\n keys: this.keys\n });\n } catch (ex) {\n /**\n * We want to enable indexing if there was an error.\n */\n try {\n await this.indexManager.enableIndexing();\n } catch (er) {\n er.data = ex;\n return this.manager.controller.response.error(er);\n }\n return this.manager.controller.response.error(ex);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- export * from "./reindexingTaskDefinition";
1
+ export * from "./reindexingTaskDefinition.js";
@@ -1,18 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _reindexingTaskDefinition = require("./reindexingTaskDefinition");
7
- Object.keys(_reindexingTaskDefinition).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _reindexingTaskDefinition[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _reindexingTaskDefinition[key];
14
- }
15
- });
16
- });
1
+ export * from "./reindexingTaskDefinition.js";
17
2
 
18
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reindexingTaskDefinition","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./reindexingTaskDefinition\";\n"],"mappings":";;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,yBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,yBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,yBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./reindexingTaskDefinition.js\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import type { Context, IElasticsearchIndexingTaskValues, IElasticsearchTaskConfig } from "../../types";
2
- export declare const createElasticsearchReindexingTask: (params?: IElasticsearchTaskConfig) => import("@webiny/tasks").TaskDefinitionPlugin<Context, IElasticsearchIndexingTaskValues, import("@webiny/tasks").ITaskResponseDoneResultOutput>;
1
+ import type { Context, IElasticsearchTaskConfig } from "../../types.js";
2
+ export declare const createElasticsearchReindexingTask: (params?: Partial<IElasticsearchTaskConfig>) => import("@webiny/api").ContextPlugin<Context>;
@@ -1,49 +1,48 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createElasticsearchReindexingTask = void 0;
7
- var _tasks = require("@webiny/tasks");
8
- const createElasticsearchReindexingTask = params => {
9
- return (0, _tasks.createTaskDefinition)({
10
- id: "elasticsearchReindexing",
11
- title: "Elasticsearch reindexing",
12
- run: async ({
13
- context,
14
- isCloseToTimeout,
15
- response,
16
- input,
17
- isAborted,
18
- store,
19
- timer
20
- }) => {
21
- const {
22
- Manager
23
- } = await import(/* webpackChunkName: "Manager" */"../Manager");
24
- const {
25
- IndexManager
26
- } = await import(/* webpackChunkName: "IndexManager" */"../../settings");
27
- const {
28
- ReindexingTaskRunner
29
- } = await import(/* webpackChunkName: "ReindexingTaskRunner" */"./ReindexingTaskRunner");
30
- const manager = new Manager({
31
- elasticsearchClient: params?.elasticsearchClient,
32
- documentClient: params?.documentClient,
33
- response,
34
- context,
35
- isAborted,
36
- isCloseToTimeout,
37
- store,
38
- timer
39
- });
40
- const indexManager = new IndexManager(manager.elasticsearch, input.settings || {});
41
- const reindexing = new ReindexingTaskRunner(manager, indexManager);
42
- const keys = input.keys || undefined;
43
- return reindexing.exec(keys, input.limit || 100);
1
+ import { createContextPlugin } from "@webiny/api";
2
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ import { getClients } from "../../helpers/getClients.js";
4
+ class ElasticsearchReindexingTask {
5
+ id = "elasticsearchReindexing";
6
+ title = "Elasticsearch reindexing";
7
+ constructor(elasticsearchClient, documentClient) {
8
+ this.elasticsearchClient = elasticsearchClient;
9
+ this.documentClient = documentClient;
10
+ }
11
+ async run({
12
+ input,
13
+ controller
14
+ }) {
15
+ if (controller.runtime.isAborted()) {
16
+ return controller.response.aborted();
44
17
  }
18
+ const {
19
+ Manager
20
+ } = await import(/* webpackChunkName: "Manager" */"../Manager.js");
21
+ const {
22
+ IndexManager
23
+ } = await import(/* webpackChunkName: "IndexManager" */"../../settings/index.js");
24
+ const {
25
+ ReindexingTaskRunner
26
+ } = await import(/* webpackChunkName: "ReindexingTaskRunner" */"./ReindexingTaskRunner.js");
27
+ const manager = new Manager({
28
+ elasticsearchClient: this.elasticsearchClient,
29
+ documentClient: this.documentClient,
30
+ controller
31
+ });
32
+ const indexManager = new IndexManager(manager.elasticsearch, input.settings || {});
33
+ const reindexing = new ReindexingTaskRunner(manager, indexManager);
34
+ const keys = input.keys || undefined;
35
+ return await reindexing.exec(keys, input.limit || 100);
36
+ }
37
+ }
38
+ export const createElasticsearchReindexingTask = params => {
39
+ return createContextPlugin(context => {
40
+ const {
41
+ documentClient,
42
+ elasticsearchClient
43
+ } = getClients(context, params);
44
+ context.container.registerFactory(TaskDefinition, () => new ElasticsearchReindexingTask(elasticsearchClient, documentClient));
45
45
  });
46
46
  };
47
- exports.createElasticsearchReindexingTask = createElasticsearchReindexingTask;
48
47
 
49
48
  //# sourceMappingURL=reindexingTaskDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","createElasticsearchReindexingTask","params","createTaskDefinition","id","title","run","context","isCloseToTimeout","response","input","isAborted","store","timer","Manager","IndexManager","ReindexingTaskRunner","manager","elasticsearchClient","documentClient","indexManager","elasticsearch","settings","reindexing","keys","undefined","exec","limit","exports"],"sources":["reindexingTaskDefinition.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context, IElasticsearchIndexingTaskValues, IElasticsearchTaskConfig } from \"~/types\";\n\nexport const createElasticsearchReindexingTask = (params?: IElasticsearchTaskConfig) => {\n return createTaskDefinition<Context, IElasticsearchIndexingTaskValues>({\n id: \"elasticsearchReindexing\",\n title: \"Elasticsearch reindexing\",\n run: async ({ context, isCloseToTimeout, response, input, isAborted, store, timer }) => {\n const { Manager } = await import(\n /* webpackChunkName: \"Manager\" */\n \"../Manager\"\n );\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings\"\n );\n const { ReindexingTaskRunner } = await import(\n /* webpackChunkName: \"ReindexingTaskRunner\" */ \"./ReindexingTaskRunner\"\n );\n\n const manager = new Manager<IElasticsearchIndexingTaskValues>({\n elasticsearchClient: params?.elasticsearchClient,\n documentClient: params?.documentClient,\n response,\n context,\n isAborted,\n isCloseToTimeout,\n store,\n timer\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, input.settings || {});\n const reindexing = new ReindexingTaskRunner(manager, indexManager);\n\n const keys = input.keys || undefined;\n return reindexing.exec(keys, input.limit || 100);\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAMC,iCAAiC,GAAIC,MAAiC,IAAK;EACpF,OAAO,IAAAC,2BAAoB,EAA4C;IACnEC,EAAE,EAAE,yBAAyB;IAC7BC,KAAK,EAAE,0BAA0B;IACjCC,GAAG,EAAE,MAAAA,CAAO;MAAEC,OAAO;MAAEC,gBAAgB;MAAEC,QAAQ;MAAEC,KAAK;MAAEC,SAAS;MAAEC,KAAK;MAAEC;IAAM,CAAC,KAAK;MACpF,MAAM;QAAEC;MAAQ,CAAC,GAAG,MAAM,MAAM,CAC5B,6CAEJ,CAAC;MACD,MAAM;QAAEC;MAAa,CAAC,GAAG,MAAM,MAAM,CACjC,sDACJ,CAAC;MACD,MAAM;QAAEC;MAAqB,CAAC,GAAG,MAAM,MAAM,CACzC,sEACJ,CAAC;MAED,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAmC;QAC1DI,mBAAmB,EAAEhB,MAAM,EAAEgB,mBAAmB;QAChDC,cAAc,EAAEjB,MAAM,EAAEiB,cAAc;QACtCV,QAAQ;QACRF,OAAO;QACPI,SAAS;QACTH,gBAAgB;QAChBI,KAAK;QACLC;MACJ,CAAC,CAAC;MAEF,MAAMO,YAAY,GAAG,IAAIL,YAAY,CAACE,OAAO,CAACI,aAAa,EAAEX,KAAK,CAACY,QAAQ,IAAI,CAAC,CAAC,CAAC;MAClF,MAAMC,UAAU,GAAG,IAAIP,oBAAoB,CAACC,OAAO,EAAEG,YAAY,CAAC;MAElE,MAAMI,IAAI,GAAGd,KAAK,CAACc,IAAI,IAAIC,SAAS;MACpC,OAAOF,UAAU,CAACG,IAAI,CAACF,IAAI,EAAEd,KAAK,CAACiB,KAAK,IAAI,GAAG,CAAC;IACpD;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA3B,iCAAA,GAAAA,iCAAA","ignoreList":[]}
1
+ {"version":3,"names":["createContextPlugin","TaskDefinition","getClients","ElasticsearchReindexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","ReindexingTaskRunner","manager","indexManager","elasticsearch","settings","reindexing","keys","undefined","exec","limit","createElasticsearchReindexingTask","params","context","container","registerFactory"],"sources":["reindexingTaskDefinition.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type {\n Context,\n IElasticsearchIndexingTaskValues,\n IElasticsearchTaskConfig\n} from \"~/types.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchReindexingTask\n implements TaskDefinition.Interface<IElasticsearchIndexingTaskValues>\n{\n id = \"elasticsearchReindexing\";\n title = \"Elasticsearch reindexing\";\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"]\n ) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<IElasticsearchIndexingTaskValues>) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n const { Manager } = await import(\n /* webpackChunkName: \"Manager\" */\n \"../Manager.js\"\n );\n\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings/index.js\"\n );\n const { ReindexingTaskRunner } = await import(\n /* webpackChunkName: \"ReindexingTaskRunner\" */ \"./ReindexingTaskRunner.js\"\n );\n\n const manager = new Manager<IElasticsearchIndexingTaskValues>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, input.settings || {});\n const reindexing = new ReindexingTaskRunner(manager, indexManager);\n\n const keys = input.keys || undefined;\n return await reindexing.exec(keys, input.limit || 100);\n }\n}\n\nexport const createElasticsearchReindexingTask = (params?: Partial<IElasticsearchTaskConfig>) => {\n return createContextPlugin<Context>(context => {\n const { documentClient, elasticsearchClient } = getClients(context, params);\n\n context.container.registerFactory(\n TaskDefinition,\n () => new ElasticsearchReindexingTask(elasticsearchClient, documentClient)\n );\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,cAAc,QAAQ,wDAAwD;AAMvF,SAASC,UAAU;AAEnB,MAAMC,2BAA2B,CAEjC;EACIC,EAAE,GAAG,yBAAyB;EAC9BC,KAAK,GAAG,0BAA0B;EAElCC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EACpE;IAAA,KAFUD,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;EACnE;EAEH,MAAMC,GAAGA,CAAC;IAAEC,KAAK;IAAEC;EAAuE,CAAC,EAAE;IACzF,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;MAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;IACxC;IAEA,MAAM;MAAEC;IAAQ,CAAC,GAAG,MAAM,MAAM,CAC5B,gDAEJ,CAAC;IAED,MAAM;MAAEC;IAAa,CAAC,GAAG,MAAM,MAAM,CACjC,+DACJ,CAAC;IACD,MAAM;MAAEC;IAAqB,CAAC,GAAG,MAAM,MAAM,CACzC,yEACJ,CAAC;IAED,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAmC;MAC1DT,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCG;IACJ,CAAC,CAAC;IAEF,MAAMS,YAAY,GAAG,IAAIH,YAAY,CAACE,OAAO,CAACE,aAAa,EAAEX,KAAK,CAACY,QAAQ,IAAI,CAAC,CAAC,CAAC;IAClF,MAAMC,UAAU,GAAG,IAAIL,oBAAoB,CAACC,OAAO,EAAEC,YAAY,CAAC;IAElE,MAAMI,IAAI,GAAGd,KAAK,CAACc,IAAI,IAAIC,SAAS;IACpC,OAAO,MAAMF,UAAU,CAACG,IAAI,CAACF,IAAI,EAAEd,KAAK,CAACiB,KAAK,IAAI,GAAG,CAAC;EAC1D;AACJ;AAEA,OAAO,MAAMC,iCAAiC,GAAIC,MAA0C,IAAK;EAC7F,OAAO7B,mBAAmB,CAAU8B,OAAO,IAAI;IAC3C,MAAM;MAAEtB,cAAc;MAAED;IAAoB,CAAC,GAAGL,UAAU,CAAC4B,OAAO,EAAED,MAAM,CAAC;IAE3EC,OAAO,CAACC,SAAS,CAACC,eAAe,CAC7B/B,cAAc,EACd,MAAM,IAAIE,2BAA2B,CAACI,mBAAmB,EAAEC,cAAc,CAC7E,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
package/types.d.ts CHANGED
@@ -1,17 +1,18 @@
1
- import type { ElasticsearchContext } from "@webiny/api-elasticsearch/types";
2
- import type { Context as TasksContext, IIsCloseToTimeoutCallable, ITaskManagerStore, ITaskResponse, ITaskResponseDoneResultOutput } from "@webiny/tasks/types";
3
- import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
4
- import type { Client } from "@webiny/api-elasticsearch";
5
- import type { createTable } from "./definitions";
6
- import type { BatchReadItem, IEntity } from "@webiny/db-dynamodb";
7
- import type { ITimer } from "@webiny/handler-aws";
8
- import type { GenericRecord } from "@webiny/api/types";
9
- import type { Context as LoggerContext } from "@webiny/api-log/types";
10
- export interface Context extends ElasticsearchContext, TasksContext, LoggerContext {
1
+ import type { ElasticsearchContext } from "@webiny/api-elasticsearch/types.js";
2
+ import type { Context as TasksContext } from "@webiny/tasks/types.js";
3
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
4
+ import type { Client, createElasticsearchTable } from "@webiny/api-elasticsearch";
5
+ import type { BatchReadItem } from "@webiny/db-dynamodb/utils/batch/batchRead.js";
6
+ import type { IEntity } from "@webiny/db-dynamodb";
7
+ import type { GenericRecord } from "@webiny/api/types.js";
8
+ import { TaskController } from "@webiny/api-core/features/task/TaskController/index.js";
9
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
10
+ import { DbRegistry } from "./abstractions/DbRegistry.js";
11
+ export interface Context extends ElasticsearchContext, TasksContext {
11
12
  }
12
13
  export interface IElasticsearchTaskConfig {
13
- documentClient?: DynamoDBDocument;
14
- elasticsearchClient?: Client;
14
+ documentClient: DynamoDBDocument;
15
+ elasticsearchClient: Client;
15
16
  }
16
17
  export interface IElasticsearchIndexingTaskValuesKeys {
17
18
  PK: string;
@@ -37,6 +38,7 @@ export interface AugmentedError extends Error {
37
38
  export interface IDynamoDbElasticsearchRecord {
38
39
  PK: string;
39
40
  SK: string;
41
+ GSI_TENANT: string;
40
42
  TYPE?: string;
41
43
  index: string;
42
44
  _et?: string;
@@ -44,16 +46,12 @@ export interface IDynamoDbElasticsearchRecord {
44
46
  data: GenericRecord;
45
47
  modified: string;
46
48
  }
47
- export interface IManager<T, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
49
+ export interface IManager<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
48
50
  readonly documentClient: DynamoDBDocument;
49
51
  readonly elasticsearch: Client;
50
- readonly context: Context;
51
- readonly table: ReturnType<typeof createTable>;
52
- readonly isCloseToTimeout: IIsCloseToTimeoutCallable;
53
- readonly isAborted: () => boolean;
54
- readonly response: ITaskResponse<T, O>;
55
- readonly store: ITaskManagerStore<T>;
56
- readonly timer: ITimer;
52
+ readonly table: ReturnType<typeof createElasticsearchTable>;
53
+ readonly controller: TaskController.Interface<I, O>;
54
+ readonly dbRegistry?: DbRegistry.Interface;
57
55
  getEntity: (name: string) => IEntity;
58
56
  read<T>(items: BatchReadItem[]): Promise<T[]>;
59
57
  }
package/types.js CHANGED
@@ -1,7 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
1
+ export {};
6
2
 
7
3
  //# sourceMappingURL=types.js.map