@magda/typescript-common 6.0.0-alpha.0 → 6.0.0-alpha.11

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.
@@ -9,11 +9,9 @@ export default class BaseApiClient {
9
9
  apiKey;
10
10
  userId;
11
11
  constructor(options) {
12
- this.baseApiUrl = options.baseApiUrl
13
- ? options.baseApiUrl
14
- : "http://localhost:6103/v0";
12
+ this.baseApiUrl = options.baseApiUrl;
15
13
  if (!this.baseApiUrl) {
16
- throw new Error("IndexerApiClient: baseApiUrl cannot be empty!");
14
+ throw new Error("baseApiUrl cannot be empty!");
17
15
  }
18
16
  this.baseApiUri = urijs(this.baseApiUrl);
19
17
  this.apiKey = options.apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApiClient.js","sourceRoot":"","sources":["../src/BaseApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAmB7C,MAAM,CAAC,OAAO,OAAgB,aAAa;IACvB,QAAQ,CAAmC;IAEjD,UAAU,CAAS;IACZ,UAAU,CAAQ;IACzB,SAAS,CAAS;IACZ,QAAQ,CAAS;IACvB,MAAM,CAAS;IACT,MAAM,CAAS;IAE/B,YAAY,OAA4B;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAChC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,0BAA0B,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACL,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAES,SAAS,CACf,OAAuC,EACvC,UAAkB,EAClB,WAAmB;QAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC;QACnB,CAAC;aAAM,CAAC;YACH,OAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;YAC3C,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC;IAES,aAAa,CAAC,MAAoB;QACxC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACT,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,oBAAoB,EACpB,IAAI,CAAC,QAAQ,CAChB,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,iBAAiB,EACjB,IAAI,CAAC,MAAM,CACd,CAAC;gBACF,OAAO;oBACH,GAAG,MAAM;oBACT,OAAO;iBACV,CAAC;YACN,KAAK,UAAU;gBACX,OAAO;oBACH,GAAG,MAAM;oBACT,OAAO,EAAE,IAAI,CAAC,SAAS,CACnB,MAAM,CAAC,OAAO,EACd,iBAAiB,EACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CACxC;iBACJ,CAAC;YACN,KAAK,QAAQ;gBACT,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"BaseApiClient.js","sourceRoot":"","sources":["../src/BaseApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAmB7C,MAAM,CAAC,OAAO,OAAgB,aAAa;IACvB,QAAQ,CAAmC;IAEjD,UAAU,CAAS;IACZ,UAAU,CAAQ;IACzB,SAAS,CAAS;IACZ,QAAQ,CAAS;IACvB,MAAM,CAAS;IACT,MAAM,CAAS;IAE/B,YAAY,OAA4B;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACL,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAES,SAAS,CACf,OAAuC,EACvC,UAAkB,EAClB,WAAmB;QAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC;QACnB,CAAC;aAAM,CAAC;YACH,OAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;YAC3C,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC;IAES,aAAa,CAAC,MAAoB;QACxC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACT,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,oBAAoB,EACpB,IAAI,CAAC,QAAQ,CAChB,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,iBAAiB,EACjB,IAAI,CAAC,MAAM,CACd,CAAC;gBACF,OAAO;oBACH,GAAG,MAAM;oBACT,OAAO;iBACV,CAAC;YACN,KAAK,UAAU;gBACX,OAAO;oBACH,GAAG,MAAM;oBACT,OAAO,EAAE,IAAI,CAAC,SAAS,CACnB,MAAM,CAAC,OAAO,EACd,iBAAiB,EACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CACxC;iBACJ,CAAC;YACN,KAAK,QAAQ;gBACT,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,16 @@
1
+ import BaseApiClient, { BaseApiClientConfig } from "./BaseApiClient.js";
2
+ export interface EmbeddingResult {
3
+ data: {
4
+ embedding: number[];
5
+ }[];
6
+ }
7
+ export interface EmbeddingApiClientConfig extends BaseApiClientConfig {
8
+ taskSize?: number;
9
+ }
10
+ export default class EmbeddingApiClient extends BaseApiClient {
11
+ taskSize: number;
12
+ constructor(options: EmbeddingApiClientConfig);
13
+ testConnection(): Promise<boolean>;
14
+ get(text: string): Promise<number[]>;
15
+ get(textList: string[]): Promise<number[][]>;
16
+ }
@@ -0,0 +1,49 @@
1
+ import BaseApiClient from "./BaseApiClient.js";
2
+ import fetchRequest from "./fetchRequest.js";
3
+ import ServerError from "./ServerError.js";
4
+ export default class EmbeddingApiClient extends BaseApiClient {
5
+ taskSize = 10;
6
+ constructor(options) {
7
+ options.baseApiUrl = options.baseApiUrl || "http://localhost:3000";
8
+ super(options);
9
+ this.taskSize = options.taskSize || 10;
10
+ this.testConnection();
11
+ }
12
+ async testConnection() {
13
+ try {
14
+ await this.get("test");
15
+ return true;
16
+ }
17
+ catch (err) {
18
+ throw new Error(`Failed to connect to embedding API: ${this.getBaseApiUri().toString()}, error: ${err}`);
19
+ }
20
+ }
21
+ async get(input) {
22
+ const url = this.getBaseApiUri()
23
+ .segmentCoded("v1")
24
+ .segmentCoded("embeddings")
25
+ .toString();
26
+ try {
27
+ if (Array.isArray(input)) {
28
+ const result = [];
29
+ for (let i = 0; i < input.length; i += this.taskSize) {
30
+ const chunk = input.slice(i, i + this.taskSize);
31
+ const res = await fetchRequest("post", url, { input: chunk }, "application/json", false, this.addAuthHeader());
32
+ result.push(...res.data.map((d) => d.embedding));
33
+ }
34
+ return result;
35
+ }
36
+ else {
37
+ const res = await fetchRequest("post", url, { input }, "application/json", false, this.addAuthHeader());
38
+ return res.data[0].embedding;
39
+ }
40
+ }
41
+ catch (e) {
42
+ if (e instanceof ServerError) {
43
+ throw new Error(`Embedding API error: ${e.statusCode}: ${e.message}`);
44
+ }
45
+ throw new Error(`Embedding API request failed: ${e instanceof Error ? e.message : String(e)}`);
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=EmbeddingApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingApiClient.js","sourceRoot":"","sources":["../src/EmbeddingApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,aAAsC,MAAM,oBAAoB,CAAC;AACxE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAY3C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,aAAa;IAClD,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,OAAiC;QACzC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,uBAAuB,CAAC;QACnE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACX,uCAAuC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,EAAE,CAC1F,CAAC;QACN,CAAC;IACL,CAAC;IAID,KAAK,CAAC,GAAG,CAAC,KAAwB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;aAC3B,YAAY,CAAC,IAAI,CAAC;aAClB,YAAY,CAAC,YAAY,CAAC;aAC1B,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAe,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,GAAG,GAAG,MAAM,YAAY,CAC1B,MAAM,EACN,GAAG,EACH,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB,kBAAkB,EAClB,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,YAAY,CAC1B,MAAM,EACN,GAAG,EACH,EAAE,KAAK,EAAE,EACT,kBAAkB,EAClB,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;gBACF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACX,wBAAwB,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,OAAO,EAAE,CACvD,CAAC;YACN,CAAC;YACD,MAAM,IAAI,KAAK,CACX,iCACI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAC7C,EAAE,CACL,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
@@ -2,6 +2,7 @@ import fetchRequest from "./fetchRequest.js";
2
2
  import BaseApiClient from "./BaseApiClient.js";
3
3
  export default class IndexerApiClient extends BaseApiClient {
4
4
  constructor(options) {
5
+ options.baseApiUrl = options.baseApiUrl || "http://localhost:6103/v0";
5
6
  super(options);
6
7
  }
7
8
  async indexDataset(datasetId) {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerApiClient.js","sourceRoot":"","sources":["../src/IndexerApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,aAAsC,MAAM,oBAAoB,CAAC;AAcxE,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IACvD,YAAY,OAA4B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAChC,OAAO,MAAM,YAAY,CACrB,KAAK,EACL,IAAI,CAAC,aAAa,EAAE;aACf,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,OAAO,MAAM,YAAY,CACrB,QAAQ,EACR,IAAI,CAAC,aAAa,EAAE;aACf,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"IndexerApiClient.js","sourceRoot":"","sources":["../src/IndexerApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,aAAsC,MAAM,oBAAoB,CAAC;AAcxE,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IACvD,YAAY,OAA4B;QACpC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,0BAA0B,CAAC;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAChC,OAAO,MAAM,YAAY,CACrB,KAAK,EACL,IAAI,CAAC,aAAa,EAAE;aACf,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,OAAO,MAAM,YAAY,CACrB,QAAQ,EACR,IAAI,CAAC,aAAa,EAAE;aACf,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,23 @@
1
+ import { DeleteByQuery_Request } from "@opensearch-project/opensearch/api/_core/deleteByQuery.js";
2
+ import { TransportRequestOptions } from "@opensearch-project/opensearch/lib/Transport.js";
3
+ export interface OpensearchConfig {
4
+ url?: string;
5
+ }
6
+ export default class OpensearchApiClient {
7
+ private client;
8
+ constructor(config: OpensearchConfig);
9
+ static getOpensearchApiClient(openSearchConfig: OpensearchConfig): Promise<OpensearchApiClient>;
10
+ ping(): Promise<void>;
11
+ createIndex(indexDefinition: {
12
+ indexName: string;
13
+ settings?: any;
14
+ mappings?: any;
15
+ }): Promise<void>;
16
+ deleteIndex(indexName: string): Promise<void>;
17
+ indexExists(indexName: string): Promise<boolean>;
18
+ indexDocument(indexName: string, document: any): Promise<void>;
19
+ bulkIndexDocument(indexName: string, documents: any[]): Promise<void>;
20
+ deleteDocument(indexName: string, documentId: string): Promise<void>;
21
+ deleteByQuery(params: DeleteByQuery_Request, options?: TransportRequestOptions): Promise<import("@opensearch-project/opensearch/api/_core/deleteByQuery.js").DeleteByQuery_Response>;
22
+ search(indexName: string, searchBody: Record<string, unknown>): Promise<import("@opensearch-project/opensearch/api/index.js").Search_Response>;
23
+ }
@@ -0,0 +1,93 @@
1
+ import { Client } from "@opensearch-project/opensearch";
2
+ export default class OpensearchApiClient {
3
+ client;
4
+ constructor(config) {
5
+ this.client = new Client({
6
+ node: config.url
7
+ });
8
+ }
9
+ static async getOpensearchApiClient(openSearchConfig) {
10
+ const config = {
11
+ url: "http://localhost:9200",
12
+ ...openSearchConfig
13
+ };
14
+ const instance = new OpensearchApiClient(config);
15
+ try {
16
+ await instance.client.ping();
17
+ console.log(`Successfully connected to OpenSearch: ${config.url}`);
18
+ }
19
+ catch (err) {
20
+ throw new Error(`Failed to connect to OpenSearch: ${config.url}, error: ${err}`);
21
+ }
22
+ return instance;
23
+ }
24
+ async ping() {
25
+ await this.client.ping();
26
+ }
27
+ async createIndex(indexDefinition) {
28
+ await this.client.indices.create({
29
+ index: indexDefinition.indexName,
30
+ body: {
31
+ mappings: indexDefinition.mappings,
32
+ settings: indexDefinition.settings
33
+ }
34
+ });
35
+ console.log(`Index created successfully: ${indexDefinition.indexName}`);
36
+ }
37
+ async deleteIndex(indexName) {
38
+ await this.client.indices.delete({
39
+ index: indexName,
40
+ ignore_unavailable: true
41
+ });
42
+ console.log(`Index deleted successfully: ${indexName}`);
43
+ }
44
+ async indexExists(indexName) {
45
+ const { body: exists } = await this.client.indices.exists({
46
+ index: indexName
47
+ });
48
+ return exists;
49
+ }
50
+ async indexDocument(indexName, document) {
51
+ await this.client.index({
52
+ index: indexName,
53
+ body: document
54
+ });
55
+ console.log(`Document indexed successfully: ${document}`);
56
+ }
57
+ async bulkIndexDocument(indexName, documents) {
58
+ await this.client.helpers
59
+ .bulk({
60
+ datasource: documents,
61
+ onDocument(_) {
62
+ return { index: { _index: indexName } };
63
+ }
64
+ })
65
+ .then((result) => {
66
+ console.log(`Successfully indexed ${result.successful} documents.`);
67
+ if (result.failed > 0) {
68
+ console.warn(`Failed to index ${result.failed} documents.`);
69
+ }
70
+ });
71
+ }
72
+ async deleteDocument(indexName, documentId) {
73
+ await this.client.delete({
74
+ index: indexName,
75
+ id: documentId
76
+ });
77
+ console.log(`Document deleted successfully: ${documentId}`);
78
+ }
79
+ async deleteByQuery(params, options) {
80
+ const response = await this.client.deleteByQuery({
81
+ ...params,
82
+ ...options
83
+ });
84
+ return response;
85
+ }
86
+ async search(indexName, searchBody) {
87
+ return this.client.search({
88
+ index: indexName,
89
+ body: searchBody
90
+ });
91
+ }
92
+ }
93
+ //# sourceMappingURL=OpensearchApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpensearchApiClient.js","sourceRoot":"","sources":["../src/OpensearchApiClient.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@ declare const mockUserDataStore: {
7
7
  getRecordByIndex(idx: number): User;
8
8
  createRecord(user: User): any;
9
9
  countRecord: () => number;
10
+ deleteUser: (userId: string) => void;
10
11
  };
11
12
  export default mockUserDataStore;
@@ -45,6 +45,14 @@ const mockUserDataStore = {
45
45
  },
46
46
  countRecord: function () {
47
47
  return runtimeUserDataStore.length;
48
+ },
49
+ deleteUser: function (userId) {
50
+ const index = runtimeUserDataStore.findIndex((record) => {
51
+ return record.id == userId;
52
+ });
53
+ if (index > -1) {
54
+ runtimeUserDataStore.splice(index, 1);
55
+ }
48
56
  }
49
57
  };
50
58
  mockUserDataStore.reset();
@@ -1 +1 @@
1
- {"version":3,"file":"mockUserDataStore.js","sourceRoot":"","sources":["../../src/test/mockUserDataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAGpC,MAAM,YAAY,GAAG;IACjB;QACI,EAAE,EAAE,sCAAsC;QAC1C,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,GAAG;KAChB;IACD;QACI,EAAE,EAAE,sCAAsC;QAC1C,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,UAAU;KACvB;CACJ,CAAC;AAEF,IAAI,oBAA4B,CAAC;AAEjC,MAAM,iBAAiB,GAAG;IACtB,KAAK,EAAE;QACH,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,EAAE;QACL,OAAO,oBAAoB,CAAC;IAChC,CAAC;IACD,4BAA4B,CAAC,MAAc,EAAE,QAAgB;QACzD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,iBAAiB,CAAC,MAAc;QAC5B,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB,CAAC,GAAW;QACxB,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,YAAY,CAAC,IAAU;QACnB,MAAM,SAAS,GAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACjD,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,WAAW,EAAE;QACT,OAAO,oBAAoB,CAAC,MAAM,CAAC;IACvC,CAAC;CACJ,CAAC;AAEF,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAE1B,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"mockUserDataStore.js","sourceRoot":"","sources":["../../src/test/mockUserDataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAGpC,MAAM,YAAY,GAAG;IACjB;QACI,EAAE,EAAE,sCAAsC;QAC1C,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,GAAG;KAChB;IACD;QACI,EAAE,EAAE,sCAAsC;QAC1C,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,UAAU;KACvB;CACJ,CAAC;AAEF,IAAI,oBAA4B,CAAC;AAEjC,MAAM,iBAAiB,GAAG;IACtB,KAAK,EAAE;QACH,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,EAAE;QACL,OAAO,oBAAoB,CAAC;IAChC,CAAC;IACD,4BAA4B,CAAC,MAAc,EAAE,QAAgB;QACzD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,iBAAiB,CAAC,MAAc;QAC5B,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB,CAAC,GAAW;QACxB,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,YAAY,CAAC,IAAU;QACnB,MAAM,SAAS,GAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACjD,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,WAAW,EAAE;QACT,OAAO,oBAAoB,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,UAAU,EAAE,UAAU,MAAc;QAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACpD,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACb,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAE1B,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function treeKill(pid: number, signal?: string | number): Promise<void>;
2
+ export default treeKill;
@@ -0,0 +1,15 @@
1
+ import treeKillSync from "@magda/tree-kill";
2
+ async function treeKill(pid, signal = "SIGTERM") {
3
+ return new Promise((resolve, reject) => {
4
+ treeKillSync(pid, signal, (error) => {
5
+ if (error) {
6
+ reject(error);
7
+ }
8
+ else {
9
+ resolve();
10
+ }
11
+ });
12
+ });
13
+ }
14
+ export default treeKill;
15
+ //# sourceMappingURL=treeKill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeKill.js","sourceRoot":"","sources":["../src/treeKill.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,KAAK,UAAU,QAAQ,CACnB,GAAW,EACX,SAA0B,SAAS;IAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,eAAe,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@magda/typescript-common",
3
3
  "description": "Common TypeScript code shared between components.",
4
- "version": "6.0.0-alpha.0",
4
+ "version": "6.0.0-alpha.11",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "exports": {
@@ -23,8 +23,8 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@magda/esm-utils": "^1.0.1",
26
- "@magda/registry-aspects": "^6.0.0-alpha.0",
27
- "@magda/scripts": "^6.0.0-alpha.0",
26
+ "@magda/registry-aspects": "^6.0.0-alpha.11",
27
+ "@magda/scripts": "^6.0.0-alpha.11",
28
28
  "@types/chai": "^4.3.11",
29
29
  "@types/chai-as-promised": "^7.1.0",
30
30
  "@types/cross-spawn": "^6.0.1",
@@ -56,7 +56,9 @@
56
56
  },
57
57
  "dependencies": {
58
58
  "@magda/esm-utils": "^1.0.1",
59
+ "@magda/tree-kill": "^1.2.3",
59
60
  "@magda/tsmonad": "^0.9.0",
61
+ "@opensearch-project/opensearch": "^3.5.1",
60
62
  "@types/resolve": "^1.14.0",
61
63
  "caller-path": "^4.0.0",
62
64
  "cross-fetch": "^4.0.0",