@haku-sci/utils 1.6.0 → 1.7.0

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.
@@ -2,6 +2,7 @@ import { INestMicroservice } from '@nestjs/common';
2
2
  export declare class MicroserviceService {
3
3
  private static serviceAddress;
4
4
  private static getServiceURI;
5
+ private static detectCloudProvider;
5
6
  private static registerService;
6
7
  private static getServerAddress;
7
8
  private static startMainMicroService;
@@ -8,6 +8,11 @@ const net = require("net");
8
8
  const axios_1 = require("axios");
9
9
  const rxjs_1 = require("rxjs");
10
10
  const utils = require("../utils");
11
+ const cloudChecks = [
12
+ { name: 'AWS', url: 'http://169.254.169.254/latest/meta-data/' },
13
+ { name: 'Azure', url: 'http://169.254.169.254/metadata/instance?api-version=2021-02-01', headers: { 'Metadata': 'true' } },
14
+ { name: 'GCP', url: 'http://metadata.google.internal/computeMetadata/v1/', headers: { 'Metadata-Flavor': 'Google' } },
15
+ ];
11
16
  class MicroserviceService {
12
17
  static async getServiceURI(serviceName) {
13
18
  const response = await axios_1.default.get(`${process.env["CONSUL_URL"]}/v1/catalog/service/${serviceName}`);
@@ -25,11 +30,23 @@ class MicroserviceService {
25
30
  throw new common_1.NotFoundException(`Service ${serviceName} not found in Consul catalog`);
26
31
  }
27
32
  }
33
+ static async detectCloudProvider() {
34
+ for (const { name, url, headers } of cloudChecks) {
35
+ try {
36
+ await axios_1.default.get(url, { headers, timeout: 1000 });
37
+ return name;
38
+ }
39
+ catch {
40
+ continue;
41
+ }
42
+ }
43
+ return false;
44
+ }
28
45
  static async registerService() {
29
- const projectName = await utils.projectName();
46
+ const microServiceName = await utils.microServiceName();
30
47
  const serviceData = {
31
- ID: projectName,
32
- Name: projectName,
48
+ ID: microServiceName,
49
+ Name: microServiceName,
33
50
  Address: this.serviceAddress.address,
34
51
  Port: this.serviceAddress.port,
35
52
  Check: {
@@ -43,9 +60,9 @@ class MicroserviceService {
43
60
  console.log(`Service registered with Consul on ${this.serviceAddress.address}:${this.serviceAddress.port}`);
44
61
  }
45
62
  static async getServerAddress() {
46
- if (process.env.AWS_REGION)
63
+ if (await this.detectCloudProvider())
47
64
  return {
48
- address: `haku-sci-${await utils.projectName()}-${process.env.BRANCH}.${process.env.AWS_REGION}.elasticbeanstalk.com`,
65
+ address: `haku-sci-${await utils.microServiceName()}-${process.env.BRANCH}.${process.env.AWS_REGION}.elasticbeanstalk.com`,
49
66
  port: 3000
50
67
  };
51
68
  const server = net.createServer();
@@ -68,7 +85,7 @@ class MicroserviceService {
68
85
  return app;
69
86
  }
70
87
  static async startRabbitMQMicroService(appModule) {
71
- const queue = await utils.projectName();
88
+ const queue = await utils.microServiceName();
72
89
  const app = await core_1.NestFactory.createMicroservice(appModule, {
73
90
  transport: microservices_1.Transport.RMQ,
74
91
  options: {
@@ -1 +1 @@
1
- {"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AACtE,uCAA2C;AAC3C,yDAAwG;AACxG,2BAA2B;AAC3B,iCAA0B;AAC1B,+BAAqC;AACrC,kCAAiC;AAEjC,MAAa,mBAAmB;IAEtB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAmB;QACpD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QACnG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAElC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,0BAAiB,CAAC,WAAW,WAAW,8BAA8B,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;YACpC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;YAC9B,KAAK,EAAE;gBACL,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;gBACjE,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,8BAA8B,EAAE,IAAI;aACrC;SACF,CAAC;QAEF,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9G,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;YACxB,OAAM;gBACJ,OAAO,EAAC,YAAY,MAAM,KAAK,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,uBAAuB;gBACpH,IAAI,EAAC,IAAI;aACS,CAAA;QAEtB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAqB,CAAC;QACpD,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;QAC9B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS;QACnD,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,kBAAkB,CAAsB,SAAS,EAC7E;YACE,SAAS,EAAE,yBAAS,CAAC,GAAG;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;aAC/B;SACF,CACF,CAAC;QACF,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,SAAS;QACtD,MAAM,KAAK,GAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,kBAAkB,CAAsB,SAAS,EAAE;YAC/E,SAAS,EAAE,yBAAS,CAAC,GAAG;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;gBAChC,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI;iBACd;gBACD,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS;QAC1C,IAAI,CAAC,cAAc,GAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAGlD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC,CAAC;YAC7B,MAAM,eAAe,GAAC,OAAO,CAAE,oBAAoB,CAAC,CAAC;YACrD,eAAe,CAAC,yBAAyB,EAAE,CAAA;QAC7C,CAAC;QAGD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;YAC1B,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAGlD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,IAAI,CAAC,eAAe,EAAE,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,OAAQ;QAC3D,MAAM,MAAM,GAAgB,kCAAkB,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,yBAAS,CAAC,GAAG;YACxB,OAAO,EAAE,MAAM,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/E,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAtHD,kDAsHC"}
1
+ {"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';
2
+ export declare class RabbitMqService {
3
+ static instance: RabbitMqService;
4
+ waitAckownledge: Record<string, {
5
+ count: number;
6
+ responses: Record<string, any>;
7
+ resolve: (data: Record<string, any>) => void;
8
+ reject: (error: any) => void;
9
+ }>;
10
+ amqpConnection: AmqpConnection;
11
+ microServiceName: string;
12
+ ackAttached: boolean;
13
+ static get(): Promise<RabbitMqService>;
14
+ private constructor();
15
+ private init;
16
+ private get ackQueueName();
17
+ dispatchMessage(messagePattern: string, userId: string, id: string, payload?: Record<string, any>, requireAck?: boolean): Promise<Record<string, any>>;
18
+ private handleAckResponse;
19
+ sendAck(message: any): void;
20
+ }
21
+ export declare function HakuSubscribe(options: {
22
+ routingKey: string;
23
+ }): MethodDecorator;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RabbitMqService = void 0;
4
+ exports.HakuSubscribe = HakuSubscribe;
5
+ const nestjs_rabbitmq_1 = require("@golevelup/nestjs-rabbitmq");
6
+ const rabbitMQutils = require("./constants");
7
+ const utils = require("../utils");
8
+ const axios_1 = require("axios");
9
+ const rabbitMqApiAuth = {
10
+ username: process.env.RABBITMQ_USERNAME,
11
+ password: process.env.RABBITMQ_PASSWORD,
12
+ };
13
+ class RabbitMqService {
14
+ static async get() {
15
+ if (!this.instance) {
16
+ this.instance = new RabbitMqService();
17
+ await this.instance.init();
18
+ }
19
+ return this.instance;
20
+ }
21
+ constructor() {
22
+ this.waitAckownledge = {};
23
+ this.ackAttached = false;
24
+ }
25
+ async init() {
26
+ this.microServiceName = await utils.microServiceName();
27
+ this.amqpConnection = new nestjs_rabbitmq_1.AmqpConnection({
28
+ exchanges: [
29
+ {
30
+ name: rabbitMQutils.HAKU_SCI_EXCHANGE,
31
+ type: 'topic',
32
+ }
33
+ ],
34
+ uri: process.env.RABBITMQ_URL,
35
+ });
36
+ await this.amqpConnection.init();
37
+ }
38
+ get ackQueueName() {
39
+ return `${this.microServiceName}_${rabbitMQutils.ACK_QUEUE}`;
40
+ }
41
+ async dispatchMessage(messagePattern, userId, id, payload = {}, requireAck = false) {
42
+ const options = { headers: { userId: userId, id: id }, correlationId: null };
43
+ let p;
44
+ if (requireAck) {
45
+ if (!this.ackAttached) {
46
+ this.ackAttached = true;
47
+ await this.amqpConnection.channel.assertQueue(this.ackQueueName, { durable: true });
48
+ this.amqpConnection.channel.consume(this.ackQueueName, async (message) => {
49
+ const ackMessage = JSON.parse(message.content.toString());
50
+ this.handleAckResponse(ackMessage);
51
+ this.amqpConnection.channel.ack(message);
52
+ });
53
+ }
54
+ options.headers["replyTo"] = this.ackQueueName;
55
+ options.correlationId = Date.now().toString();
56
+ const response = await axios_1.default.get(`${process.env.RABBITMQ_API_URL}/bindings`, { auth: rabbitMqApiAuth });
57
+ let countExpectedAcknowledged = response.data.filter((binding) => binding.source === rabbitMQutils.HAKU_SCI_EXCHANGE && binding.routing_key === messagePattern).length;
58
+ p = new Promise((resolve, reject) => {
59
+ this.waitAckownledge[options.correlationId] = { count: countExpectedAcknowledged, responses: {}, resolve, reject };
60
+ });
61
+ }
62
+ await this.amqpConnection.publish(rabbitMQutils.HAKU_SCI_EXCHANGE, messagePattern, payload, options);
63
+ return p || Promise.resolve({});
64
+ }
65
+ handleAckResponse(ackMessage) {
66
+ const { correlationId, microServiceName, response, error } = ackMessage;
67
+ if (!this.waitAckownledge[correlationId])
68
+ return;
69
+ if (error) {
70
+ this.waitAckownledge[correlationId].reject(error);
71
+ delete this.waitAckownledge[correlationId];
72
+ }
73
+ this.waitAckownledge[correlationId].responses[microServiceName] = response;
74
+ this.waitAckownledge[correlationId].count--;
75
+ if (this.waitAckownledge[correlationId].count === 0) {
76
+ this.waitAckownledge[correlationId].resolve(this.waitAckownledge[correlationId].responses);
77
+ delete this.waitAckownledge[correlationId];
78
+ }
79
+ }
80
+ sendAck(message) {
81
+ this.amqpConnection.publish('', message.properties.headers.replyTo, message);
82
+ }
83
+ }
84
+ exports.RabbitMqService = RabbitMqService;
85
+ function HakuSubscribe(options) {
86
+ return function (target, key, descriptor) {
87
+ const originalMethod = descriptor.value;
88
+ descriptor.value = async function (...args) {
89
+ const message = args[1];
90
+ try {
91
+ message.response = await originalMethod.apply(this, args);
92
+ message.properties.headers["microService"] = await utils.microServiceName();
93
+ }
94
+ catch (error) {
95
+ message.properties.headers["error"] = error;
96
+ }
97
+ finally {
98
+ if (message.properties.headers.replyTo) {
99
+ try {
100
+ await RabbitMqService.get().then((rabbitMqService) => {
101
+ rabbitMqService.sendAck(message);
102
+ });
103
+ }
104
+ catch (e) {
105
+ console.log(e);
106
+ }
107
+ }
108
+ ;
109
+ }
110
+ };
111
+ utils.microServiceName().then((microServiceName) => {
112
+ (0, nestjs_rabbitmq_1.RabbitSubscribe)({
113
+ routingKey: options.routingKey,
114
+ exchange: rabbitMQutils.HAKU_SCI_EXCHANGE,
115
+ queue: microServiceName,
116
+ })(target, key, descriptor);
117
+ });
118
+ };
119
+ }
120
+ //# sourceMappingURL=_rabbit-mq.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_rabbit-mq.service.js","sourceRoot":"","sources":["../../src/rabbit-mq/_rabbit-mq.service.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ class RabbitMqService {
23
23
  this.ackAttached = false;
24
24
  }
25
25
  async init() {
26
- this.projectName = await utils.projectName();
26
+ this.projectName = await utils.microServiceName();
27
27
  this.amqpConnection = new nestjs_rabbitmq_1.AmqpConnection({
28
28
  exchanges: [
29
29
  {
@@ -104,7 +104,7 @@ function HakuSubscribe(options) {
104
104
  ;
105
105
  }
106
106
  };
107
- utils.projectName().then((projectName) => {
107
+ utils.microServiceName().then((projectName) => {
108
108
  (0, nestjs_rabbitmq_1.RabbitSubscribe)({
109
109
  routingKey: options.routingKey,
110
110
  exchange: rabbitMQutils.HAKU_SCI_EXCHANGE,
@@ -1 +1 @@
1
- {"version":3,"file":"rabbit-mq.service.js","sourceRoot":"","sources":["../../src/rabbit-mq/rabbit-mq.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rabbit-mq.service.js","sourceRoot":"","sources":["../../src/rabbit-mq/rabbit-mq.service.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export declare function executeFunction<F extends (...args: any[]) => any>(parent: any, funcName: string, params: Record<string, any>): ReturnType<F>;
2
- export declare function projectName(): Promise<string>;
2
+ export declare function getSortedParameters(func: Function, params: Record<string, any>): string[];
3
+ export declare function microServiceName(): Promise<string>;
3
4
  export declare function withWatchdog<T>(promise: Promise<T>, timeoutMs: number): Promise<T>;
package/dist/utils.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeFunction = executeFunction;
4
- exports.projectName = projectName;
4
+ exports.getSortedParameters = getSortedParameters;
5
+ exports.microServiceName = microServiceName;
5
6
  exports.withWatchdog = withWatchdog;
6
7
  const promises_1 = require("fs/promises");
7
8
  const path = require("path");
@@ -9,9 +10,11 @@ const common_1 = require("@nestjs/common");
9
10
  function executeFunction(parent, funcName, params) {
10
11
  const func = parent[funcName];
11
12
  const boundFunc = func.bind(parent);
13
+ return boundFunc(...getSortedParameters(func, params));
14
+ }
15
+ function getSortedParameters(func, params) {
12
16
  const paramNames = getFunctionParameterNames(func);
13
- const args = paramNames.map(name => params[name]);
14
- return boundFunc(...args);
17
+ return paramNames.map(name => params[name]);
15
18
  }
16
19
  function getFunctionParameterNames(func) {
17
20
  const fnStr = func.toString();
@@ -24,7 +27,7 @@ function getFunctionParameterNames(func) {
24
27
  .map(param => param.trim())
25
28
  .filter(param => param);
26
29
  }
27
- async function projectName() {
30
+ async function microServiceName() {
28
31
  if (!this.msName) {
29
32
  var data = await (0, promises_1.readFile)(path.join(process.cwd(), 'package.json'));
30
33
  const { name } = JSON.parse(data.toString());
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAIA,0CAgBC;AAeD,kCAYC;AAED,oCAgBC;AAjED,0CAAuC;AACvC,6BAA6B;AAC7B,2CAA2D;AAE3D,SAAgB,eAAe,CAC7B,MAAW,EACX,QAAgB,EAChB,MAA2B;IAE3B,MAAM,IAAI,GAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAGpC,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAGnD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAGlD,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAc;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,IAAI,GAAG,MAAM,IAAA,mBAAQ,EACvB,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,CACf,CACF,CAAA;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAI,OAAmB,EAAE,SAAiB;IACpE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,sBAAa,CAAC,iBAAiB,EAAC,mBAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1E,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,OAAO;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAIA,0CAUC;AAED,kDAGC;AAeD,4CAYC;AAED,oCAgBC;AAhED,0CAAuC;AACvC,6BAA6B;AAC7B,2CAA2D;AAE3D,SAAgB,eAAe,CAC7B,MAAW,EACX,QAAgB,EAChB,MAA2B;IAE3B,MAAM,IAAI,GAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAGpC,OAAO,SAAS,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAc,EAAC,MAA0B;IAC3E,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAc;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,IAAI,GAAG,MAAM,IAAA,mBAAQ,EACvB,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,CACf,CACF,CAAA;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAI,OAAmB,EAAE,SAAiB;IACpE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,sBAAa,CAAC,iBAAiB,EAAC,mBAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1E,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,OAAO;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haku-sci/utils",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "utils from haku-sci. Library only",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",