@webiny/api-elasticsearch-tasks 6.0.0-beta.0 → 6.0.0-rc.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 (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 +5 -5
  28. package/helpers/scan.js +5 -12
  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 +33 -34
  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 +5 -11
  39. package/settings/EnableIndexing.js.map +1 -1
  40. package/settings/IndexManager.d.ts +6 -3
  41. package/settings/IndexManager.js +21 -17
  42. package/settings/IndexManager.js.map +1 -1
  43. package/settings/IndexSettingsManager.d.ts +2 -2
  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 +17 -26
  53. package/tasks/Manager.js +10 -36
  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 -7
  59. package/tasks/createIndexes/CreateIndexesTaskRunner.js +23 -38
  60. package/tasks/createIndexes/CreateIndexesTaskRunner.js.map +1 -1
  61. package/tasks/createIndexes/OnBeforeTrigger.d.ts +10 -0
  62. package/tasks/createIndexes/OnBeforeTrigger.js +51 -0
  63. package/tasks/createIndexes/OnBeforeTrigger.js.map +1 -0
  64. package/tasks/createIndexes/createIndex.d.ts +5 -0
  65. package/tasks/createIndexes/createIndex.js +20 -0
  66. package/tasks/createIndexes/createIndex.js.map +1 -0
  67. package/tasks/createIndexes/index.d.ts +2 -3
  68. package/tasks/createIndexes/index.js +17 -44
  69. package/tasks/createIndexes/index.js.map +1 -1
  70. package/tasks/createIndexes/listIndexes.d.ts +4 -0
  71. package/tasks/createIndexes/listIndexes.js +20 -0
  72. package/tasks/createIndexes/listIndexes.js.map +1 -0
  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 +18 -0
  78. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js +45 -0
  79. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js.map +1 -0
  80. package/tasks/dataSynchronization/createFactories.d.ts +2 -0
  81. package/tasks/dataSynchronization/createFactories.js +10 -0
  82. package/tasks/dataSynchronization/createFactories.js.map +1 -0
  83. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.d.ts +10 -0
  84. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js +91 -0
  85. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js.map +1 -0
  86. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.d.ts +12 -0
  87. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js +70 -0
  88. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js.map +1 -0
  89. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.d.ts +10 -0
  90. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js +70 -0
  91. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js.map +1 -0
  92. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.d.ts +21 -0
  93. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js +3 -0
  94. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js.map +1 -0
  95. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.d.ts +17 -0
  96. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js +3 -0
  97. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js.map +1 -0
  98. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.d.ts +2 -0
  99. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js +6 -0
  100. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -0
  101. package/tasks/dataSynchronization/entities/getElasticsearchEntity.d.ts +10 -0
  102. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js +24 -0
  103. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js.map +1 -0
  104. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.d.ts +8 -0
  105. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js +12 -0
  106. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js.map +1 -0
  107. package/tasks/dataSynchronization/entities/getTable.d.ts +7 -0
  108. package/tasks/dataSynchronization/entities/getTable.js +22 -0
  109. package/tasks/dataSynchronization/entities/getTable.js.map +1 -0
  110. package/tasks/dataSynchronization/entities/index.d.ts +3 -0
  111. package/tasks/dataSynchronization/entities/index.js +5 -0
  112. package/tasks/dataSynchronization/entities/index.js.map +1 -0
  113. package/tasks/dataSynchronization/index.d.ts +3 -0
  114. package/tasks/dataSynchronization/index.js +28 -0
  115. package/tasks/dataSynchronization/index.js.map +1 -0
  116. package/tasks/dataSynchronization/types.d.ts +39 -0
  117. package/tasks/dataSynchronization/types.js +3 -0
  118. package/tasks/dataSynchronization/types.js.map +1 -0
  119. package/tasks/enableIndexing/EnableIndexingTaskRunner.d.ts +6 -6
  120. package/tasks/enableIndexing/EnableIndexingTaskRunner.js +5 -13
  121. package/tasks/enableIndexing/EnableIndexingTaskRunner.js.map +1 -1
  122. package/tasks/enableIndexing/index.d.ts +2 -3
  123. package/tasks/enableIndexing/index.js +40 -44
  124. package/tasks/enableIndexing/index.js.map +1 -1
  125. package/tasks/enableIndexing/types.js +1 -5
  126. package/tasks/index.d.ts +4 -3
  127. package/tasks/index.js +4 -38
  128. package/tasks/index.js.map +1 -1
  129. package/tasks/reindexing/ReindexingTaskRunner.d.ts +5 -6
  130. package/tasks/reindexing/ReindexingTaskRunner.js +23 -27
  131. package/tasks/reindexing/ReindexingTaskRunner.js.map +1 -1
  132. package/tasks/reindexing/index.d.ts +1 -1
  133. package/tasks/reindexing/index.js +1 -16
  134. package/tasks/reindexing/index.js.map +1 -1
  135. package/tasks/reindexing/reindexingTaskDefinition.d.ts +2 -2
  136. package/tasks/reindexing/reindexingTaskDefinition.js +43 -42
  137. package/tasks/reindexing/reindexingTaskDefinition.js.map +1 -1
  138. package/types.d.ts +22 -22
  139. package/types.js +1 -5
  140. package/types.js.map +1 -1
  141. package/definitions/entry.d.ts +0 -7
  142. package/definitions/entry.js +0 -36
  143. package/definitions/entry.js.map +0 -1
  144. package/definitions/index.d.ts +0 -2
  145. package/definitions/index.js +0 -29
  146. package/definitions/index.js.map +0 -1
  147. package/definitions/table.d.ts +0 -7
  148. package/definitions/table.js +0 -23
  149. package/definitions/table.js.map +0 -1
  150. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.d.ts +0 -23
  151. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js +0 -25
  152. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","createElasticsearchReindexingTask","params","createTaskDefinition","id","title","run","context","isCloseToTimeout","response","input","isAborted","store","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 { 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 }) => {\n const { Manager } = await import(\n /* webpackChunkName: \"ElasticsearchReindexingManager\" */\n \"../Manager\"\n );\n const { IndexManager } = await import(\n /* webpackChunkName: \"ElasticsearchReindexingSettings\" */ \"~/settings\"\n );\n const { ReindexingTaskRunner } = await import(\n /* webpackChunkName: \"ElasticsearchReindexingTaskRunner\" */ \"./ReindexingTaskRunner\"\n );\n\n const manager = new Manager({\n elasticsearchClient: params?.elasticsearchClient,\n documentClient: params?.documentClient,\n response,\n context,\n isAborted,\n isCloseToTimeout,\n store\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;IAAM,CAAC,KAAK;MAC7E,MAAM;QAAEC;MAAQ,CAAC,GAAG,MAAM,MAAM,EAC5B,oEAEJ,CAAC;MACD,MAAM;QAAEC;MAAa,CAAC,GAAG,MAAM,MAAM,EACjC,yEACJ,CAAC;MACD,MAAM;QAAEC;MAAqB,CAAC,GAAG,MAAM,MAAM,EACzC,mFACJ,CAAC;MAED,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAC;QACxBI,mBAAmB,EAAEf,MAAM,EAAEe,mBAAmB;QAChDC,cAAc,EAAEhB,MAAM,EAAEgB,cAAc;QACtCT,QAAQ;QACRF,OAAO;QACPI,SAAS;QACTH,gBAAgB;QAChBI;MACJ,CAAC,CAAC;MAEF,MAAMO,YAAY,GAAG,IAAIL,YAAY,CAACE,OAAO,CAACI,aAAa,EAAEV,KAAK,CAACW,QAAQ,IAAI,CAAC,CAAC,CAAC;MAClF,MAAMC,UAAU,GAAG,IAAIP,oBAAoB,CAACC,OAAO,EAAEG,YAAY,CAAC;MAElE,MAAMI,IAAI,GAAGb,KAAK,CAACa,IAAI,IAAIC,SAAS;MACpC,OAAOF,UAAU,CAACG,IAAI,CAACF,IAAI,EAAEb,KAAK,CAACgB,KAAK,IAAI,GAAG,CAAC;IACpD;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA1B,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 { ElasticsearchContext } from "@webiny/api-elasticsearch/types";
2
- import { Entity } from "@webiny/db-dynamodb/toolbox";
3
- import { Context as TasksContext } from "@webiny/tasks/types";
4
- import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
5
- import { Client } from "@webiny/api-elasticsearch";
6
- import { createTable } from "./definitions";
7
- import { ITaskResponse } from "@webiny/tasks/response/abstractions";
8
- import { ITaskManagerStore } from "@webiny/tasks/runner/abstractions";
9
- import { BatchWriteItem, BatchWriteResult } from "@webiny/db-dynamodb";
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";
10
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;
@@ -31,27 +32,26 @@ export interface IElasticsearchIndexingTaskValues {
31
32
  settings?: IElasticsearchIndexingTaskValuesSettings;
32
33
  }
33
34
  export interface AugmentedError extends Error {
34
- data?: Record<string, any>;
35
+ data?: GenericRecord;
35
36
  [key: string]: any;
36
37
  }
37
38
  export interface IDynamoDbElasticsearchRecord {
38
39
  PK: string;
39
40
  SK: string;
41
+ GSI_TENANT: string;
42
+ TYPE?: string;
40
43
  index: string;
41
44
  _et?: string;
42
45
  entity: string;
43
- data: Record<string, any>;
46
+ data: GenericRecord;
44
47
  modified: string;
45
48
  }
46
- export interface IManager {
49
+ export interface IManager<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
47
50
  readonly documentClient: DynamoDBDocument;
48
51
  readonly elasticsearch: Client;
49
- readonly context: Context;
50
- readonly table: ReturnType<typeof createTable>;
51
- readonly isCloseToTimeout: () => boolean;
52
- readonly isAborted: () => boolean;
53
- readonly response: ITaskResponse;
54
- readonly store: ITaskManagerStore<IElasticsearchIndexingTaskValues>;
55
- getEntity: (name: string) => Entity<any>;
56
- write: (items: BatchWriteItem[]) => Promise<BatchWriteResult>;
52
+ readonly table: ReturnType<typeof createElasticsearchTable>;
53
+ readonly controller: TaskController.Interface<I, O>;
54
+ readonly dbRegistry?: DbRegistry.Interface;
55
+ getEntity: (name: string) => IEntity;
56
+ read<T>(items: BatchReadItem[]): Promise<T[]>;
57
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
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { ElasticsearchContext } from \"@webiny/api-elasticsearch/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { Context as TasksContext } from \"@webiny/tasks/types\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Client } from \"@webiny/api-elasticsearch\";\nimport { createTable } from \"~/definitions\";\nimport { ITaskResponse } from \"@webiny/tasks/response/abstractions\";\nimport { ITaskManagerStore } from \"@webiny/tasks/runner/abstractions\";\nimport { BatchWriteItem, BatchWriteResult } from \"@webiny/db-dynamodb\";\n\nexport interface Context extends ElasticsearchContext, TasksContext {}\n\nexport interface IElasticsearchTaskConfig {\n documentClient?: DynamoDBDocument;\n elasticsearchClient?: Client;\n}\n\nexport interface IElasticsearchIndexingTaskValuesKeys {\n PK: string;\n SK: string;\n}\n\nexport interface IIndexSettingsValues {\n numberOfReplicas: number;\n refreshInterval: string;\n}\n\nexport interface IElasticsearchIndexingTaskValuesSettings {\n [key: string]: IIndexSettingsValues;\n}\n\nexport interface IElasticsearchIndexingTaskValues {\n matching?: string;\n limit?: number;\n keys?: IElasticsearchIndexingTaskValuesKeys;\n settings?: IElasticsearchIndexingTaskValuesSettings;\n}\n\nexport interface AugmentedError extends Error {\n data?: Record<string, any>;\n [key: string]: any;\n}\n\nexport interface IDynamoDbElasticsearchRecord {\n PK: string;\n SK: string;\n index: string;\n _et?: string;\n entity: string;\n data: Record<string, any>;\n modified: string;\n}\n\nexport interface IManager {\n readonly documentClient: DynamoDBDocument;\n readonly elasticsearch: Client;\n readonly context: Context;\n readonly table: ReturnType<typeof createTable>;\n readonly isCloseToTimeout: () => boolean;\n readonly isAborted: () => boolean;\n readonly response: ITaskResponse;\n readonly store: ITaskManagerStore<IElasticsearchIndexingTaskValues>;\n\n getEntity: (name: string) => Entity<any>;\n\n write: (items: BatchWriteItem[]) => Promise<BatchWriteResult>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ElasticsearchContext } from \"@webiny/api-elasticsearch/types.js\";\nimport type { Context as TasksContext } from \"@webiny/tasks/types.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { Client, createElasticsearchTable } from \"@webiny/api-elasticsearch\";\nimport type { BatchReadItem } from \"@webiny/db-dynamodb/utils/batch/batchRead.js\";\nimport type { IEntity } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { TaskController } from \"@webiny/api-core/features/task/TaskController/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { DbRegistry } from \"~/abstractions/DbRegistry.js\";\n\nexport interface Context extends ElasticsearchContext, TasksContext {}\n\nexport interface IElasticsearchTaskConfig {\n documentClient: DynamoDBDocument;\n elasticsearchClient: Client;\n}\n\nexport interface IElasticsearchIndexingTaskValuesKeys {\n PK: string;\n SK: string;\n}\n\nexport interface IIndexSettingsValues {\n numberOfReplicas: number;\n refreshInterval: string;\n}\n\nexport interface IElasticsearchIndexingTaskValuesSettings {\n [key: string]: IIndexSettingsValues;\n}\n\nexport interface IElasticsearchIndexingTaskValues {\n matching?: string;\n limit?: number;\n keys?: IElasticsearchIndexingTaskValuesKeys;\n settings?: IElasticsearchIndexingTaskValuesSettings;\n}\n\nexport interface AugmentedError extends Error {\n data?: GenericRecord;\n [key: string]: any;\n}\n\nexport interface IDynamoDbElasticsearchRecord {\n PK: string;\n SK: string;\n GSI_TENANT: string;\n TYPE?: string;\n index: string;\n _et?: string;\n entity: string;\n data: GenericRecord;\n modified: string;\n}\n\nexport interface IManager<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n readonly documentClient: DynamoDBDocument;\n readonly elasticsearch: Client;\n readonly table: ReturnType<typeof createElasticsearchTable>;\n readonly controller: TaskController.Interface<I, O>;\n readonly dbRegistry?: DbRegistry.Interface;\n getEntity: (name: string) => IEntity;\n read<T>(items: BatchReadItem[]): Promise<T[]>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- import { Entity, Table } from "@webiny/db-dynamodb/toolbox";
2
- interface Params {
3
- table: Table<string, string, string>;
4
- entityName: string;
5
- }
6
- export declare const createEntry: (params: Params) => Entity<any>;
7
- export {};
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createEntry = void 0;
7
- var _toolbox = require("@webiny/db-dynamodb/toolbox");
8
- const createEntry = params => {
9
- const {
10
- table,
11
- entityName
12
- } = params;
13
- return new _toolbox.Entity({
14
- name: entityName,
15
- table,
16
- attributes: {
17
- PK: {
18
- type: "string",
19
- partitionKey: true
20
- },
21
- SK: {
22
- type: "string",
23
- sortKey: true
24
- },
25
- index: {
26
- type: "string"
27
- },
28
- data: {
29
- type: "map"
30
- }
31
- }
32
- });
33
- };
34
- exports.createEntry = createEntry;
35
-
36
- //# sourceMappingURL=entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_toolbox","require","createEntry","params","table","entityName","Entity","name","attributes","PK","type","partitionKey","SK","sortKey","index","data","exports"],"sources":["entry.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\n\ninterface Params {\n table: Table<string, string, string>;\n entityName: string;\n}\n\nexport const createEntry = (params: Params): Entity<any> => {\n const { table, entityName } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n type: \"string\",\n partitionKey: true\n },\n SK: {\n type: \"string\",\n sortKey: true\n },\n index: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOO,MAAMC,WAAW,GAAIC,MAAc,IAAkB;EACxD,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGF,MAAM;EACpC,OAAO,IAAIG,eAAM,CAAC;IACdC,IAAI,EAAEF,UAAU;IAChBD,KAAK;IACLI,UAAU,EAAE;MACRC,EAAE,EAAE;QACAC,IAAI,EAAE,QAAQ;QACdC,YAAY,EAAE;MAClB,CAAC;MACDC,EAAE,EAAE;QACAF,IAAI,EAAE,QAAQ;QACdG,OAAO,EAAE;MACb,CAAC;MACDC,KAAK,EAAE;QACHJ,IAAI,EAAE;MACV,CAAC;MACDK,IAAI,EAAE;QACFL,IAAI,EAAE;MACV;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAd,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export { getDocumentClient } from "@webiny/aws-sdk/client-dynamodb";
2
- export * from "./table";
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- getDocumentClient: true
8
- };
9
- Object.defineProperty(exports, "getDocumentClient", {
10
- enumerable: true,
11
- get: function () {
12
- return _clientDynamodb.getDocumentClient;
13
- }
14
- });
15
- var _clientDynamodb = require("@webiny/aws-sdk/client-dynamodb");
16
- var _table = require("./table");
17
- Object.keys(_table).forEach(function (key) {
18
- if (key === "default" || key === "__esModule") return;
19
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
- if (key in exports && exports[key] === _table[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _table[key];
25
- }
26
- });
27
- });
28
-
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_clientDynamodb","require","_table","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export { getDocumentClient } from \"@webiny/aws-sdk/client-dynamodb\";\nexport * from \"./table\";\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
- import { Table } from "@webiny/db-dynamodb/toolbox";
3
- interface Params {
4
- documentClient: DynamoDBDocument;
5
- }
6
- export declare const createTable: ({ documentClient }: Params) => Table<string, string, string>;
7
- export {};
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createTable = void 0;
7
- var _toolbox = require("@webiny/db-dynamodb/toolbox");
8
- const createTable = ({
9
- documentClient
10
- }) => {
11
- const config = {
12
- name: process.env.DB_TABLE_ELASTICSEARCH,
13
- partitionKey: "PK",
14
- sortKey: "SK",
15
- DocumentClient: documentClient,
16
- autoExecute: true,
17
- autoParse: true
18
- };
19
- return new _toolbox.Table(config);
20
- };
21
- exports.createTable = createTable;
22
-
23
- //# sourceMappingURL=table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_toolbox","require","createTable","documentClient","config","name","process","env","DB_TABLE_ELASTICSEARCH","partitionKey","sortKey","DocumentClient","autoExecute","autoParse","Table","exports"],"sources":["table.ts"],"sourcesContent":["import { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Table, TableConstructor } from \"@webiny/db-dynamodb/toolbox\";\n\ninterface Params {\n documentClient: DynamoDBDocument;\n}\n\nexport const createTable = ({ documentClient }: Params): Table<string, string, string> => {\n const config: TableConstructor<string, string, string> = {\n name: process.env.DB_TABLE_ELASTICSEARCH as string,\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n autoExecute: true,\n autoParse: true\n };\n\n return new Table(config);\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAMO,MAAMC,WAAW,GAAGA,CAAC;EAAEC;AAAuB,CAAC,KAAoC;EACtF,MAAMC,MAAgD,GAAG;IACrDC,IAAI,EAAEC,OAAO,CAACC,GAAG,CAACC,sBAAgC;IAClDC,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAER,cAAc;IAC9BS,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE;EACf,CAAC;EAED,OAAO,IAAIC,cAAK,CAACV,MAAM,CAAC;AAC5B,CAAC;AAACW,OAAA,CAAAb,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- import { Context } from "@webiny/api/types";
3
- import { ElasticsearchIndexRequestBody } from "@webiny/api-elasticsearch/types";
4
- export interface CreateElasticsearchIndexTaskPluginIndex {
5
- index: string;
6
- settings?: Partial<ElasticsearchIndexRequestBody>;
7
- }
8
- export interface CreateElasticsearchIndexTaskPluginConfigParams<C extends Context> {
9
- context: C;
10
- tenant: string;
11
- locale: string;
12
- }
13
- export interface CreateElasticsearchIndexTaskPluginConfig<C extends Context> {
14
- name?: string;
15
- getIndexList(params: CreateElasticsearchIndexTaskPluginConfigParams<C>): Promise<CreateElasticsearchIndexTaskPluginIndex[]>;
16
- }
17
- export declare class CreateElasticsearchIndexTaskPlugin<C extends Context> extends Plugin {
18
- static readonly type: string;
19
- private readonly config;
20
- constructor(config: CreateElasticsearchIndexTaskPluginConfig<C>);
21
- getIndexList(params: CreateElasticsearchIndexTaskPluginConfigParams<C>): Promise<CreateElasticsearchIndexTaskPluginIndex[]>;
22
- }
23
- export declare const createElasticsearchIndexTaskPlugin: <C extends Context>(config: CreateElasticsearchIndexTaskPluginConfig<C>) => CreateElasticsearchIndexTaskPlugin<C>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createElasticsearchIndexTaskPlugin = exports.CreateElasticsearchIndexTaskPlugin = void 0;
7
- var _plugins = require("@webiny/plugins");
8
- class CreateElasticsearchIndexTaskPlugin extends _plugins.Plugin {
9
- static type = "elasticsearch.createElasticsearchIndexTaskPlugin";
10
- constructor(config) {
11
- super();
12
- this.name = config.name;
13
- this.config = config;
14
- }
15
- getIndexList(params) {
16
- return this.config.getIndexList(params);
17
- }
18
- }
19
- exports.CreateElasticsearchIndexTaskPlugin = CreateElasticsearchIndexTaskPlugin;
20
- const createElasticsearchIndexTaskPlugin = config => {
21
- return new CreateElasticsearchIndexTaskPlugin(config);
22
- };
23
- exports.createElasticsearchIndexTaskPlugin = createElasticsearchIndexTaskPlugin;
24
-
25
- //# sourceMappingURL=CreateElasticsearchIndexTaskPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_plugins","require","CreateElasticsearchIndexTaskPlugin","Plugin","type","constructor","config","name","getIndexList","params","exports","createElasticsearchIndexTaskPlugin"],"sources":["CreateElasticsearchIndexTaskPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { Context } from \"@webiny/api/types\";\nimport { ElasticsearchIndexRequestBody } from \"@webiny/api-elasticsearch/types\";\n\nexport interface CreateElasticsearchIndexTaskPluginIndex {\n index: string;\n settings?: Partial<ElasticsearchIndexRequestBody>;\n}\n\nexport interface CreateElasticsearchIndexTaskPluginConfigParams<C extends Context> {\n context: C;\n tenant: string;\n locale: string;\n}\n\nexport interface CreateElasticsearchIndexTaskPluginConfig<C extends Context> {\n name?: string;\n getIndexList(\n params: CreateElasticsearchIndexTaskPluginConfigParams<C>\n ): Promise<CreateElasticsearchIndexTaskPluginIndex[]>;\n}\n\nexport class CreateElasticsearchIndexTaskPlugin<C extends Context> extends Plugin {\n public static override readonly type: string =\n \"elasticsearch.createElasticsearchIndexTaskPlugin\";\n\n private readonly config: CreateElasticsearchIndexTaskPluginConfig<C>;\n\n public constructor(config: CreateElasticsearchIndexTaskPluginConfig<C>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public getIndexList(\n params: CreateElasticsearchIndexTaskPluginConfigParams<C>\n ): Promise<CreateElasticsearchIndexTaskPluginIndex[]> {\n return this.config.getIndexList(params);\n }\n}\n\nexport const createElasticsearchIndexTaskPlugin = <C extends Context>(\n config: CreateElasticsearchIndexTaskPluginConfig<C>\n) => {\n return new CreateElasticsearchIndexTaskPlugin<C>(config);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAsBO,MAAMC,kCAAkC,SAA4BC,eAAM,CAAC;EAC9E,OAAgCC,IAAI,GAChC,kDAAkD;EAI/CC,WAAWA,CAACC,MAAmD,EAAE;IACpE,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,IAAI,GAAGD,MAAM,CAACC,IAAI;IACvB,IAAI,CAACD,MAAM,GAAGA,MAAM;EACxB;EAEOE,YAAYA,CACfC,MAAyD,EACP;IAClD,OAAO,IAAI,CAACH,MAAM,CAACE,YAAY,CAACC,MAAM,CAAC;EAC3C;AACJ;AAACC,OAAA,CAAAR,kCAAA,GAAAA,kCAAA;AAEM,MAAMS,kCAAkC,GAC3CL,MAAmD,IAClD;EACD,OAAO,IAAIJ,kCAAkC,CAAII,MAAM,CAAC;AAC5D,CAAC;AAACI,OAAA,CAAAC,kCAAA,GAAAA,kCAAA","ignoreList":[]}