@webiny/api-elasticsearch-tasks 0.0.0-unstable.06b2ede40f

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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -0
  3. package/definitions/entry.d.ts +11 -0
  4. package/definitions/entry.js +43 -0
  5. package/definitions/entry.js.map +1 -0
  6. package/definitions/index.d.ts +2 -0
  7. package/definitions/index.js +29 -0
  8. package/definitions/index.js.map +1 -0
  9. package/definitions/table.d.ts +7 -0
  10. package/definitions/table.js +23 -0
  11. package/definitions/table.js.map +1 -0
  12. package/errors/IndexSettingsGetError.d.ts +6 -0
  13. package/errors/IndexSettingsGetError.js +20 -0
  14. package/errors/IndexSettingsGetError.js.map +1 -0
  15. package/errors/IndexSettingsSetError.d.ts +6 -0
  16. package/errors/IndexSettingsSetError.js +20 -0
  17. package/errors/IndexSettingsSetError.js.map +1 -0
  18. package/errors/IndexingDisableError.d.ts +2 -0
  19. package/errors/IndexingDisableError.js +10 -0
  20. package/errors/IndexingDisableError.js.map +1 -0
  21. package/errors/IndexingEnableError.d.ts +2 -0
  22. package/errors/IndexingEnableError.js +10 -0
  23. package/errors/IndexingEnableError.js.map +1 -0
  24. package/errors/index.d.ts +4 -0
  25. package/errors/index.js +51 -0
  26. package/errors/index.js.map +1 -0
  27. package/helpers/scan.d.ts +10 -0
  28. package/helpers/scan.js +24 -0
  29. package/helpers/scan.js.map +1 -0
  30. package/index.d.ts +5 -0
  31. package/index.js +28 -0
  32. package/index.js.map +1 -0
  33. package/package.json +59 -0
  34. package/settings/DisableIndexing.d.ts +7 -0
  35. package/settings/DisableIndexing.js +27 -0
  36. package/settings/DisableIndexing.js.map +1 -0
  37. package/settings/EnableIndexing.d.ts +7 -0
  38. package/settings/EnableIndexing.js +27 -0
  39. package/settings/EnableIndexing.js.map +1 -0
  40. package/settings/IndexManager.d.ts +20 -0
  41. package/settings/IndexManager.js +100 -0
  42. package/settings/IndexManager.js.map +1 -0
  43. package/settings/IndexSettingsManager.d.ts +8 -0
  44. package/settings/IndexSettingsManager.js +44 -0
  45. package/settings/IndexSettingsManager.js.map +1 -0
  46. package/settings/index.d.ts +1 -0
  47. package/settings/index.js +18 -0
  48. package/settings/index.js.map +1 -0
  49. package/settings/types.d.ts +9 -0
  50. package/settings/types.js +7 -0
  51. package/settings/types.js.map +1 -0
  52. package/tasks/Manager.d.ts +33 -0
  53. package/tasks/Manager.js +51 -0
  54. package/tasks/Manager.js.map +1 -0
  55. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.d.ts +23 -0
  56. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js +25 -0
  57. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js.map +1 -0
  58. package/tasks/createIndexes/CreateIndexesTaskRunner.d.ts +10 -0
  59. package/tasks/createIndexes/CreateIndexesTaskRunner.js +77 -0
  60. package/tasks/createIndexes/CreateIndexesTaskRunner.js.map +1 -0
  61. package/tasks/createIndexes/OnBeforeTrigger.d.ts +12 -0
  62. package/tasks/createIndexes/OnBeforeTrigger.js +68 -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 +27 -0
  66. package/tasks/createIndexes/createIndex.js.map +1 -0
  67. package/tasks/createIndexes/index.d.ts +3 -0
  68. package/tasks/createIndexes/index.js +68 -0
  69. package/tasks/createIndexes/index.js.map +1 -0
  70. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.d.ts +4 -0
  71. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js +13 -0
  72. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js.map +1 -0
  73. package/tasks/createIndexes/listIndexes.d.ts +12 -0
  74. package/tasks/createIndexes/listIndexes.js +53 -0
  75. package/tasks/createIndexes/listIndexes.js.map +1 -0
  76. package/tasks/createIndexes/types.d.ts +4 -0
  77. package/tasks/createIndexes/types.js +7 -0
  78. package/tasks/createIndexes/types.js.map +1 -0
  79. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.d.ts +15 -0
  80. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js +55 -0
  81. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js.map +1 -0
  82. package/tasks/dataSynchronization/createFactories.d.ts +2 -0
  83. package/tasks/dataSynchronization/createFactories.js +17 -0
  84. package/tasks/dataSynchronization/createFactories.js.map +1 -0
  85. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.d.ts +10 -0
  86. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js +98 -0
  87. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js.map +1 -0
  88. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.d.ts +14 -0
  89. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js +76 -0
  90. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js.map +1 -0
  91. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.d.ts +10 -0
  92. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js +77 -0
  93. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js.map +1 -0
  94. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.d.ts +21 -0
  95. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js +7 -0
  96. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js.map +1 -0
  97. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.d.ts +17 -0
  98. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js +7 -0
  99. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js.map +1 -0
  100. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.d.ts +2 -0
  101. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js +13 -0
  102. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -0
  103. package/tasks/dataSynchronization/entities/getElasticsearchEntity.d.ts +713 -0
  104. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js +46 -0
  105. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js.map +1 -0
  106. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.d.ts +11 -0
  107. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js +29 -0
  108. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js.map +1 -0
  109. package/tasks/dataSynchronization/entities/getTable.d.ts +7 -0
  110. package/tasks/dataSynchronization/entities/getTable.js +29 -0
  111. package/tasks/dataSynchronization/entities/getTable.js.map +1 -0
  112. package/tasks/dataSynchronization/entities/index.d.ts +3 -0
  113. package/tasks/dataSynchronization/entities/index.js +40 -0
  114. package/tasks/dataSynchronization/entities/index.js.map +1 -0
  115. package/tasks/dataSynchronization/index.d.ts +4 -0
  116. package/tasks/dataSynchronization/index.js +80 -0
  117. package/tasks/dataSynchronization/index.js.map +1 -0
  118. package/tasks/dataSynchronization/types.d.ts +38 -0
  119. package/tasks/dataSynchronization/types.js +7 -0
  120. package/tasks/dataSynchronization/types.js.map +1 -0
  121. package/tasks/enableIndexing/EnableIndexingTaskRunner.d.ts +11 -0
  122. package/tasks/enableIndexing/EnableIndexingTaskRunner.js +49 -0
  123. package/tasks/enableIndexing/EnableIndexingTaskRunner.js.map +1 -0
  124. package/tasks/enableIndexing/index.d.ts +3 -0
  125. package/tasks/enableIndexing/index.js +51 -0
  126. package/tasks/enableIndexing/index.js.map +1 -0
  127. package/tasks/enableIndexing/types.d.ts +5 -0
  128. package/tasks/enableIndexing/types.js +7 -0
  129. package/tasks/enableIndexing/types.js.map +1 -0
  130. package/tasks/index.d.ts +4 -0
  131. package/tasks/index.js +51 -0
  132. package/tasks/index.js.map +1 -0
  133. package/tasks/reindexing/ReindexingTaskRunner.d.ts +16 -0
  134. package/tasks/reindexing/ReindexingTaskRunner.js +137 -0
  135. package/tasks/reindexing/ReindexingTaskRunner.js.map +1 -0
  136. package/tasks/reindexing/index.d.ts +1 -0
  137. package/tasks/reindexing/index.js +18 -0
  138. package/tasks/reindexing/index.js.map +1 -0
  139. package/tasks/reindexing/reindexingTaskDefinition.d.ts +2 -0
  140. package/tasks/reindexing/reindexingTaskDefinition.js +49 -0
  141. package/tasks/reindexing/reindexingTaskDefinition.js.map +1 -0
  142. package/types.d.ts +59 -0
  143. package/types.js +7 -0
  144. package/types.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ElasticsearchToDynamoDbSynchronization","constructor","params","manager","indexManager","synchronize","fetcher","run","input","lastIndex","elasticsearchToDynamoDb","index","cursor","indexes","fetchAllIndexes","next","findIndex","currentIndex","isAborted","response","aborted","isCloseToTimeout","continue","result","fetch","limit","syncResult","execute","done","items","undefined","finished","list","length","Error","exports"],"sources":["ElasticsearchToDynamoDbSynchronization.ts"],"sourcesContent":["import type {\n IDataSynchronizationInput,\n IDataSynchronizationManager,\n IElasticsearchSyncParams,\n ISynchronization,\n ISynchronizationRunResult\n} from \"../types\";\nimport type { IIndexManager } from \"~/settings/types\";\nimport type { NonEmptyArray } from \"@webiny/api/types\";\nimport type { IElasticsearchSynchronize } from \"./abstractions/ElasticsearchSynchronize\";\nimport type { IElasticsearchFetcher } from \"./abstractions/ElasticsearchFetcher\";\n\nexport class ElasticsearchToDynamoDbSynchronization implements ISynchronization {\n private readonly manager: IDataSynchronizationManager;\n private readonly indexManager: IIndexManager;\n private readonly synchronize: IElasticsearchSynchronize;\n private readonly fetcher: IElasticsearchFetcher;\n\n public constructor(params: IElasticsearchSyncParams) {\n this.manager = params.manager;\n this.indexManager = params.indexManager;\n this.synchronize = params.synchronize;\n this.fetcher = params.fetcher;\n }\n\n public async run(input: IDataSynchronizationInput): Promise<ISynchronizationRunResult> {\n const lastIndex = input.elasticsearchToDynamoDb?.index;\n let cursor = input.elasticsearchToDynamoDb?.cursor;\n const indexes = await this.fetchAllIndexes();\n\n let next = 0;\n if (lastIndex) {\n next = indexes.findIndex(index => index === lastIndex);\n }\n\n let currentIndex = indexes[next];\n\n while (currentIndex) {\n if (this.manager.isAborted()) {\n return this.manager.response.aborted();\n }\n /**\n * We will put 180 seconds because we are writing to the Elasticsearch/OpenSearch directly.\n * We want to leave enough time for possible retries.\n */\n //\n else if (this.manager.isCloseToTimeout(180)) {\n return this.manager.response.continue({\n ...input,\n elasticsearchToDynamoDb: {\n ...input.elasticsearchToDynamoDb,\n index: currentIndex,\n cursor\n }\n });\n }\n\n const result = await this.fetcher.fetch({\n index: currentIndex,\n cursor,\n limit: 100\n });\n\n const syncResult = await this.synchronize.execute({\n done: result.done,\n index: currentIndex,\n items: result.items\n });\n\n if (!syncResult.done && result.cursor) {\n cursor = result.cursor;\n continue;\n }\n cursor = undefined;\n\n const next = indexes.findIndex(index => index === currentIndex) + 1;\n currentIndex = indexes[next];\n }\n\n return this.manager.response.continue({\n ...input,\n elasticsearchToDynamoDb: {\n finished: true\n }\n });\n }\n\n private async fetchAllIndexes(): Promise<NonEmptyArray<string>> {\n const result = await this.indexManager.list();\n if (result.length > 0) {\n return result as NonEmptyArray<string>;\n }\n throw new Error(\"No Elasticsearch / OpenSearch indexes found.\");\n }\n}\n"],"mappings":";;;;;;AAYO,MAAMA,sCAAsC,CAA6B;EAMrEC,WAAWA,CAACC,MAAgC,EAAE;IACjD,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC7B,IAAI,CAACC,YAAY,GAAGF,MAAM,CAACE,YAAY;IACvC,IAAI,CAACC,WAAW,GAAGH,MAAM,CAACG,WAAW;IACrC,IAAI,CAACC,OAAO,GAAGJ,MAAM,CAACI,OAAO;EACjC;EAEA,MAAaC,GAAGA,CAACC,KAAgC,EAAsC;IACnF,MAAMC,SAAS,GAAGD,KAAK,CAACE,uBAAuB,EAAEC,KAAK;IACtD,IAAIC,MAAM,GAAGJ,KAAK,CAACE,uBAAuB,EAAEE,MAAM;IAClD,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,eAAe,CAAC,CAAC;IAE5C,IAAIC,IAAI,GAAG,CAAC;IACZ,IAAIN,SAAS,EAAE;MACXM,IAAI,GAAGF,OAAO,CAACG,SAAS,CAACL,KAAK,IAAIA,KAAK,KAAKF,SAAS,CAAC;IAC1D;IAEA,IAAIQ,YAAY,GAAGJ,OAAO,CAACE,IAAI,CAAC;IAEhC,OAAOE,YAAY,EAAE;MACjB,IAAI,IAAI,CAACd,OAAO,CAACe,SAAS,CAAC,CAAC,EAAE;QAC1B,OAAO,IAAI,CAACf,OAAO,CAACgB,QAAQ,CAACC,OAAO,CAAC,CAAC;MAC1C;MACA;AACZ;AACA;AACA;MACY;MAAA,KACK,IAAI,IAAI,CAACjB,OAAO,CAACkB,gBAAgB,CAAC,GAAG,CAAC,EAAE;QACzC,OAAO,IAAI,CAAClB,OAAO,CAACgB,QAAQ,CAACG,QAAQ,CAAC;UAClC,GAAGd,KAAK;UACRE,uBAAuB,EAAE;YACrB,GAAGF,KAAK,CAACE,uBAAuB;YAChCC,KAAK,EAAEM,YAAY;YACnBL;UACJ;QACJ,CAAC,CAAC;MACN;MAEA,MAAMW,MAAM,GAAG,MAAM,IAAI,CAACjB,OAAO,CAACkB,KAAK,CAAC;QACpCb,KAAK,EAAEM,YAAY;QACnBL,MAAM;QACNa,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACrB,WAAW,CAACsB,OAAO,CAAC;QAC9CC,IAAI,EAAEL,MAAM,CAACK,IAAI;QACjBjB,KAAK,EAAEM,YAAY;QACnBY,KAAK,EAAEN,MAAM,CAACM;MAClB,CAAC,CAAC;MAEF,IAAI,CAACH,UAAU,CAACE,IAAI,IAAIL,MAAM,CAACX,MAAM,EAAE;QACnCA,MAAM,GAAGW,MAAM,CAACX,MAAM;QACtB;MACJ;MACAA,MAAM,GAAGkB,SAAS;MAElB,MAAMf,IAAI,GAAGF,OAAO,CAACG,SAAS,CAACL,KAAK,IAAIA,KAAK,KAAKM,YAAY,CAAC,GAAG,CAAC;MACnEA,YAAY,GAAGJ,OAAO,CAACE,IAAI,CAAC;IAChC;IAEA,OAAO,IAAI,CAACZ,OAAO,CAACgB,QAAQ,CAACG,QAAQ,CAAC;MAClC,GAAGd,KAAK;MACRE,uBAAuB,EAAE;QACrBqB,QAAQ,EAAE;MACd;IACJ,CAAC,CAAC;EACN;EAEA,MAAcjB,eAAeA,CAAA,EAAmC;IAC5D,MAAMS,MAAM,GAAG,MAAM,IAAI,CAACnB,YAAY,CAAC4B,IAAI,CAAC,CAAC;IAC7C,IAAIT,MAAM,CAACU,MAAM,GAAG,CAAC,EAAE;MACnB,OAAOV,MAAM;IACjB;IACA,MAAM,IAAIW,KAAK,CAAC,8CAA8C,CAAC;EACnE;AACJ;AAACC,OAAA,CAAAnC,sCAAA,GAAAA,sCAAA","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import type { PrimitiveValue } from "@webiny/api-elasticsearch/types";
2
+ export interface IElasticsearchFetcherFetchResponseItem {
3
+ PK: string;
4
+ SK: string;
5
+ _id: string;
6
+ index: string;
7
+ }
8
+ export interface IElasticsearchFetcherFetchParams {
9
+ index: string;
10
+ cursor?: PrimitiveValue[];
11
+ limit: number;
12
+ }
13
+ export interface IElasticsearchFetcherFetchResponse {
14
+ done: boolean;
15
+ totalCount: number;
16
+ cursor?: PrimitiveValue[];
17
+ items: IElasticsearchFetcherFetchResponseItem[];
18
+ }
19
+ export interface IElasticsearchFetcher {
20
+ fetch(params: IElasticsearchFetcherFetchParams): Promise<IElasticsearchFetcherFetchResponse>;
21
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=ElasticsearchFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["ElasticsearchFetcher.ts"],"sourcesContent":["import type { PrimitiveValue } from \"@webiny/api-elasticsearch/types\";\n\nexport interface IElasticsearchFetcherFetchResponseItem {\n PK: string;\n SK: string;\n _id: string;\n index: string;\n}\n\nexport interface IElasticsearchFetcherFetchParams {\n index: string;\n cursor?: PrimitiveValue[];\n limit: number;\n}\n\nexport interface IElasticsearchFetcherFetchResponse {\n done: boolean;\n totalCount: number;\n cursor?: PrimitiveValue[];\n items: IElasticsearchFetcherFetchResponseItem[];\n}\n\nexport interface IElasticsearchFetcher {\n fetch(params: IElasticsearchFetcherFetchParams): Promise<IElasticsearchFetcherFetchResponse>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ export interface IElasticsearchSynchronizeExecuteParamsItem {
2
+ PK: string;
3
+ SK: string;
4
+ _id: string;
5
+ index: string;
6
+ }
7
+ export interface IElasticsearchSynchronizeExecuteParams {
8
+ done: boolean;
9
+ index: string;
10
+ items: IElasticsearchSynchronizeExecuteParamsItem[];
11
+ }
12
+ export interface IElasticsearchSynchronizeExecuteResponse {
13
+ done: boolean;
14
+ }
15
+ export interface IElasticsearchSynchronize {
16
+ execute(params: IElasticsearchSynchronizeExecuteParams): Promise<IElasticsearchSynchronizeExecuteResponse>;
17
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=ElasticsearchSynchronize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["ElasticsearchSynchronize.ts"],"sourcesContent":["export interface IElasticsearchSynchronizeExecuteParamsItem {\n PK: string;\n SK: string;\n _id: string;\n index: string;\n}\n\nexport interface IElasticsearchSynchronizeExecuteParams {\n done: boolean;\n index: string;\n items: IElasticsearchSynchronizeExecuteParamsItem[];\n}\n\nexport interface IElasticsearchSynchronizeExecuteResponse {\n done: boolean;\n}\nexport interface IElasticsearchSynchronize {\n execute(\n params: IElasticsearchSynchronizeExecuteParams\n ): Promise<IElasticsearchSynchronizeExecuteResponse>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type WebinyError from "@webiny/error";
2
+ export declare const shouldIgnoreEsResponseError: (error: WebinyError) => boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shouldIgnoreEsResponseError = void 0;
7
+ const IGNORED_ES_SEARCH_EXCEPTIONS = ["index_not_found_exception", "search_phase_execution_exception", "illegal_argument_exception"];
8
+ const shouldIgnoreEsResponseError = error => {
9
+ return IGNORED_ES_SEARCH_EXCEPTIONS.includes(error.message);
10
+ };
11
+ exports.shouldIgnoreEsResponseError = shouldIgnoreEsResponseError;
12
+
13
+ //# sourceMappingURL=shouldIgnoreEsResponseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IGNORED_ES_SEARCH_EXCEPTIONS","shouldIgnoreEsResponseError","error","includes","message","exports"],"sources":["shouldIgnoreEsResponseError.ts"],"sourcesContent":["import type WebinyError from \"@webiny/error\";\n\nconst IGNORED_ES_SEARCH_EXCEPTIONS = [\n \"index_not_found_exception\",\n \"search_phase_execution_exception\",\n \"illegal_argument_exception\"\n];\n\nexport const shouldIgnoreEsResponseError = (error: WebinyError) => {\n return IGNORED_ES_SEARCH_EXCEPTIONS.includes(error.message);\n};\n"],"mappings":";;;;;;AAEA,MAAMA,4BAA4B,GAAG,CACjC,2BAA2B,EAC3B,kCAAkC,EAClC,4BAA4B,CAC/B;AAEM,MAAMC,2BAA2B,GAAIC,KAAkB,IAAK;EAC/D,OAAOF,4BAA4B,CAACG,QAAQ,CAACD,KAAK,CAACE,OAAO,CAAC;AAC/D,CAAC;AAACC,OAAA,CAAAJ,2BAAA,GAAAA,2BAAA","ignoreList":[]}