@hestia-earth/pipeline-utils 0.16.2 → 0.16.5

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.
package/dist/ec2.js CHANGED
@@ -7,11 +7,9 @@ const log_1 = require("./log");
7
7
  const s3_1 = require("./s3");
8
8
  const defaultInstanceIds = (process.env.START_INSTANCE_ID || '').split(',');
9
9
  const startInstances = (functionName, instanceIds = defaultInstanceIds) => s3_1.isS3Mode
10
- ? (0, rxjs_1.from)(new client_ec2_1.EC2Client({}).send(new client_ec2_1.StartInstancesCommand({
11
- InstanceIds: instanceIds
12
- }))).pipe((0, rxjs_1.take)(1), (0, rxjs_1.map)(res => {
13
- (0, log_1.debug)(`EC2 start instances ${functionName}`, res);
14
- return res;
10
+ ? (0, rxjs_1.from)(new client_ec2_1.EC2Client({}).send(new client_ec2_1.DescribeInstancesCommand({ InstanceIds: instanceIds }))).pipe((0, rxjs_1.map)(res => (res.Reservations || []).flatMap(r => r.Instances || [])), (0, rxjs_1.mergeAll)(), (0, rxjs_1.filter)(instance => { var _a; return ((_a = instance.State) === null || _a === void 0 ? void 0 : _a.Name) === 'stopped'; }), (0, rxjs_1.take)(1), (0, rxjs_1.switchMap)(instance => {
11
+ (0, log_1.debug)('EC2 start instances', functionName, instance.InstanceId);
12
+ return new client_ec2_1.EC2Client({}).send(new client_ec2_1.StartInstancesCommand({ InstanceIds: [instance.InstanceId] }));
15
13
  }))
16
14
  : (0, rxjs_1.of)(null);
17
15
  exports.startInstances = startInstances;
package/dist/ec2.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ec2.js","sourceRoot":"","sources":["../src/ec2.ts"],"names":[],"mappings":";;;AAAA,oDAAuE;AACvE,+BAA2C;AAE3C,+BAA8B;AAC9B,6BAAgC;AAEhC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAErE,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,WAAW,GAAG,kBAAkB,EAAE,EAAE,CACvF,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EACF,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CACpB,IAAI,kCAAqB,CAAC;QACxB,WAAW,EAAE,WAAW;KACzB,CAAC,CACH,CACF,CAAC,IAAI,CACJ,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE;QACR,IAAA,WAAK,EAAC,uBAAuB,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAfF,QAAA,cAAc,kBAeZ"}
1
+ {"version":3,"file":"ec2.js","sourceRoot":"","sources":["../src/ec2.ts"],"names":[],"mappings":";;;AAAA,oDAAiG;AACjG,+BAAwE;AAExE,+BAA8B;AAC9B,6BAAgC;AAEhC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAErE,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,WAAW,GAAG,kBAAkB,EAAE,EAAE,CACvF,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,qCAAwB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3F,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EACpE,IAAA,eAAQ,GAAE,EACV,IAAA,aAAM,EAAC,QAAQ,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,EACtD,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,gBAAS,EAAC,QAAQ,CAAC,EAAE;QACnB,IAAA,WAAK,EAAC,qBAAqB,EAAE,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChE,OAAO,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,kCAAqB,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAZF,QAAA,cAAc,kBAYZ"}
package/dist/gitlab.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Readable } from 'stream';
3
2
  export interface IGitlabTreeFile {
4
3
  id?: string;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './ec2';
2
2
  export * from './lambda';
3
3
  export * from './log';
4
+ export * from './mail';
4
5
  export * from './mongodb';
5
6
  export * from './progress';
6
7
  export * from './s3';
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ec2"), exports);
18
18
  __exportStar(require("./lambda"), exports);
19
19
  __exportStar(require("./log"), exports);
20
+ __exportStar(require("./mail"), exports);
20
21
  __exportStar(require("./mongodb"), exports);
21
22
  __exportStar(require("./progress"), exports);
22
23
  __exportStar(require("./s3"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,wCAAsB;AACtB,4CAA0B;AAC1B,6CAA2B;AAC3B,uCAAqB;AACrB,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB;AACtB,0CAAwB;AACxB,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,wCAAsB;AACtB,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,uCAAqB;AACrB,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB;AACtB,0CAAwB;AACxB,sDAAoC"}
package/dist/lambda.js CHANGED
@@ -13,7 +13,7 @@ const invoke = (functionName, params) => s3_1.isS3Mode
13
13
  LogType: 'None',
14
14
  Payload: (0, util_utf8_node_1.fromUtf8)(JSON.stringify(params))
15
15
  }))).pipe((0, rxjs_1.take)(1), (0, rxjs_1.map)(res => {
16
- (0, log_1.info)(`invoke ${functionName}`, { params }, res);
16
+ (0, log_1.info)('Lambda invoke', functionName, { params }, res);
17
17
  return res;
18
18
  }))
19
19
  : (0, rxjs_1.of)(null);
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../src/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAAqE;AACrE,+BAA2C;AAC3C,4DAAmD;AAEnD,+BAA6B;AAC7B,6BAAgD;AAEzC,MAAM,MAAM,GAAG,CAAC,YAAoB,EAAE,MAA4C,EAAE,EAAE,CAC3F,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EACF,IAAI,4BAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CACvB,IAAI,6BAAa,CAAC;QAChB,YAAY,EAAE,YAAY;QAC1B,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,IAAA,yBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC1C,CAAC,CACH,CACF,CAAC,IAAI,CACJ,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE;QACR,IAAA,UAAI,EAAC,UAAU,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAlBF,QAAA,MAAM,UAkBJ"}
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../src/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAAqE;AACrE,+BAA2C;AAC3C,4DAAmD;AAEnD,+BAA6B;AAC7B,6BAAgD;AAEzC,MAAM,MAAM,GAAG,CAAC,YAAoB,EAAE,MAA4C,EAAE,EAAE,CAC3F,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EACF,IAAI,4BAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CACvB,IAAI,6BAAa,CAAC;QAChB,YAAY,EAAE,YAAY;QAC1B,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,IAAA,yBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC1C,CAAC,CACH,CACF,CAAC,IAAI,CACJ,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE;QACR,IAAA,UAAI,EAAC,eAAe,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAlBF,QAAA,MAAM,UAkBJ"}
package/dist/mail.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const sendTemplatedEmail: (template: string, emails: string[], data?: {}) => Promise<import("@aws-sdk/client-ses").SendTemplatedEmailCommandOutput>;
package/dist/mail.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendTemplatedEmail = void 0;
4
+ const client_ses_1 = require("@aws-sdk/client-ses");
5
+ const utils_1 = require("./utils");
6
+ const fromEmail = 'no-reply@hestia.earth';
7
+ const fromName = 'Hestia Earth Team';
8
+ const sendTemplatedEmail = async (template, emails, data = {}) => {
9
+ const params = {
10
+ Source: fromEmail,
11
+ Destination: {
12
+ ToAddresses: emails
13
+ },
14
+ Template: template,
15
+ TemplateData: JSON.stringify({
16
+ ...data,
17
+ baseUrl: utils_1.baseUrl,
18
+ fromName
19
+ })
20
+ };
21
+ return await new client_ses_1.SESClient({ region: 'us-east-1' }).send(new client_ses_1.SendTemplatedEmailCommand(params));
22
+ };
23
+ exports.sendTemplatedEmail = sendTemplatedEmail;
24
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../src/mail.ts"],"names":[],"mappings":";;;AAAA,oDAA2G;AAE3G,mCAAkC;AAElC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAE9B,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAE,MAAgB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IACxF,MAAM,MAAM,GAAmC;QAC7C,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE;YACX,WAAW,EAAE,MAAM;SACpB;QACD,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YAC3B,GAAG,IAAI;YACP,OAAO,EAAP,eAAO;YACP,QAAQ;SACT,CAAC;KACH,CAAC;IACF,OAAO,MAAM,IAAI,sBAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,sCAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;AAClG,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B"}
package/dist/mongodb.d.ts CHANGED
@@ -2,111 +2,17 @@ import { Db } from 'mongodb';
2
2
  import { Aggregation, File, User, FileStatus, Reconciliation, Setting, SettingKey, Migration, MigrationType } from '@hestia-earth/api';
3
3
  export declare const transaction: <T>(query: (db: Db) => Promise<T>, defaultValue?: T) => Promise<T>;
4
4
  export declare const idsQuery: (ids: string[]) => any;
5
- export declare const getAggregations: <U extends keyof Aggregation>(conditions: {
6
- folder?: any;
7
- filename?: any;
8
- filepath?: any;
9
- validatedAt?: any;
10
- status?: any;
11
- pipelineStatus?: any;
12
- readonly productId?: any;
13
- readonly countryId?: any;
14
- readonly startYear?: any;
15
- readonly endYear?: any;
16
- id?: any;
17
- createdAt?: any;
18
- updatedAt?: any;
19
- }, props: U[], limit?: number) => Promise<Pick<Aggregation, U>[]>;
5
+ export declare const getAggregations: <U extends keyof Aggregation>(conditions: { [key in keyof Partial<Aggregation>]: any; }, props: U[], limit?: number) => Promise<Pick<Aggregation, U>[]>;
20
6
  export declare const upsertAggregation: (filepath: string, data?: Partial<Aggregation>) => Promise<import("mongodb").UpdateWriteOpResult>;
21
7
  export declare const removeAggregations: (ids: string[]) => Promise<import("mongodb").DeleteWriteOpResultObject>;
22
8
  export declare const removeAggregationsByTerms: (termId: string | string[]) => Promise<import("mongodb").DeleteWriteOpResultObject>;
23
- export declare const getFiles: <U extends keyof File>(conditions: {
24
- filename?: any;
25
- filepath?: any;
26
- folder?: any;
27
- user?: any;
28
- assignedUsers?: any;
29
- authorizedUsers?: any;
30
- contentType?: any;
31
- archived?: any;
32
- status?: any;
33
- pipelineStatus?: any;
34
- userValidatedAt?: any;
35
- validatedAt?: any;
36
- schemaVersion?: any;
37
- schemaOutdated?: any;
38
- glossaryOutdated?: any;
39
- comments?: any;
40
- todos?: any;
41
- metadata?: any;
42
- isPrivate?: any;
43
- skipValidation?: any;
44
- study?: any;
45
- fromDraft?: any;
46
- readonly isOwner?: any;
47
- readonly isAuthorized?: any;
48
- readonly isAssignedToMe?: any;
49
- readonly isValidated?: any;
50
- readonly isDraft?: any;
51
- readonly originalPath?: any;
52
- readonly hestiaPath?: any;
53
- readonly progressPath?: any;
54
- readonly studyPath?: any;
55
- readonly dataPath?: any;
56
- readonly dataProgressPath?: any;
57
- readonly dataCsvPath?: any;
58
- readonly dataRecalculatedCsvPath?: any;
59
- readonly logPath?: any;
60
- readonly errorPath?: any;
61
- readonly sources?: any;
62
- readonly nbCycles?: any;
63
- readonly nbImpactAssessments?: any;
64
- readonly hestiaDataPath?: any;
65
- id?: any;
66
- createdAt?: any;
67
- updatedAt?: any;
68
- }, props: U[], limit?: number) => Promise<Pick<File, U>[]>;
9
+ export declare const getFiles: <U extends keyof File>(conditions: { [key in keyof Partial<File>]: any; }, props: U[], limit?: number) => Promise<Pick<File, U>[]>;
69
10
  export declare const getFile: (filepath: string) => Promise<Partial<File>>;
70
11
  export declare const updateFile: (filepath: string, data?: Partial<File>) => Promise<import("mongodb").UpdateWriteOpResult>;
71
12
  export declare const updateFiles: (ids: string[], data?: Partial<File>) => Promise<import("mongodb").UpdateWriteOpResult>;
72
13
  export declare const removeFile: (id: string) => Promise<import("mongodb").DeleteWriteOpResultObject>;
73
14
  export declare const countUserFiles: (userId: string, statuses?: FileStatus[]) => Promise<number>;
74
- export declare const getUsers: <U extends keyof User>(conditions: {
75
- email?: any;
76
- firstName?: any;
77
- lastName?: any;
78
- displayName?: any;
79
- password?: any;
80
- token?: any;
81
- role?: any;
82
- maxUploads?: any;
83
- maxApiCalls?: any;
84
- dataPrivate?: any;
85
- validFilesCount?: any;
86
- canCommitHestiaData?: any;
87
- permissions?: any;
88
- emailNotificationsSuccess?: any;
89
- emailNotificationsFailure?: any;
90
- emailNotificationsFeedback?: any;
91
- autoSubmitPrivateSubmissions?: any;
92
- confirmToken?: any;
93
- confirmedAt?: any;
94
- lastActiveAt?: any;
95
- scopusID?: any;
96
- googleID?: any;
97
- linkedInID?: any;
98
- orcid?: any;
99
- website?: any;
100
- city?: any;
101
- country?: any;
102
- primaryInstitution?: any;
103
- readonly admin?: any;
104
- readonly name?: any;
105
- readonly actorId?: any;
106
- id?: any;
107
- createdAt?: any;
108
- updatedAt?: any;
109
- }, props: U[], limit?: number) => Promise<Pick<User, U>[]>;
15
+ export declare const getUsers: <U extends keyof User>(conditions: { [key in keyof Partial<User>]: any; }, props: U[], limit?: number) => Promise<Pick<User, U>[]>;
110
16
  export declare const getUser: (userId: string) => Promise<Partial<User>>;
111
17
  export declare const getUserFromFilepath: (filepath?: string) => Promise<Partial<User>>;
112
18
  export declare const updateUser: (userId: string, data?: Partial<User>) => Promise<import("mongodb").UpdateWriteOpResult>;
@@ -123,13 +29,7 @@ export declare const updateReconciliation: ({ id, ...query }?: Partial<Reconcili
123
29
  export declare const updateReconciliations: (data: Partial<Reconciliation>[]) => Promise<import("mongodb").BulkWriteResult>;
124
30
  export declare const upsertReconciliation: (filter: Partial<Reconciliation>, data?: Partial<Reconciliation>) => Promise<import("mongodb").UpdateWriteOpResult>;
125
31
  export declare const removeReconciliations: (ids: string[]) => Promise<import("mongodb").DeleteWriteOpResultObject>;
126
- export declare const getMigrations: <U extends keyof Migration>(type: MigrationType, conditions: {
127
- filenames?: any;
128
- type?: any;
129
- id?: any;
130
- createdAt?: any;
131
- updatedAt?: any;
132
- }, props: U[], limit?: number) => Promise<Pick<Migration, U>[]>;
32
+ export declare const getMigrations: <U extends keyof Migration>(type: MigrationType, conditions: { [key in keyof Partial<Migration>]: any; }, props: U[], limit?: number) => Promise<Pick<Migration, U>[]>;
133
33
  export declare const addMigration: (type: MigrationType, filenames: string[]) => Promise<import("mongodb").InsertOneWriteOpResult<any>>;
134
34
  export declare const getSetting: (key: SettingKey) => Promise<Setting>;
135
35
  export declare const updateSetting: (key: SettingKey, data: Partial<Setting>) => Promise<import("mongodb").UpdateWriteOpResult>;
package/dist/s3.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
1
  import { S3Client, GetObjectCommandInput, PutObjectCommandInput, MetadataDirective, _Object, ObjectIdentifier, DeletedObject } from '@aws-sdk/client-s3';
5
2
  import { Observable } from 'rxjs';
6
3
  import { Readable } from 'stream';
@@ -26,7 +23,7 @@ export declare const copyObject: (fromParams: {
26
23
  key: string;
27
24
  }, metadata?: any, metadataDirective?: MetadataDirective) => Observable<import("@aws-sdk/client-s3").CopyObjectCommandOutput>;
28
25
  export declare const loadStream: (key: string, Bucket?: string) => Readable;
29
- export declare const loadFile: (key: string, Bucket?: string) => Observable<Buffer>;
26
+ export declare const loadFile: (key: string, Bucket?: string) => Observable<Buffer<ArrayBufferLike>>;
30
27
  export declare const streamJSONFile: <T>(key: string, Bucket?: string) => Observable<T>;
31
28
  export declare const loadTextFile: (key: string, Bucket?: string) => Observable<string>;
32
29
  export declare const loadJSONFile: <T>(key: string, Bucket?: string) => Observable<T>;
package/dist/sns.js CHANGED
@@ -28,7 +28,7 @@ const publishSnsMessage = (functionName, params, topicArn = process.env.SNS_TOPI
28
28
  return res;
29
29
  }), (0, rxjs_1.catchError)(err => {
30
30
  (0, log_1.error)(`SNS publish ${functionName}`, { params }, ', params byte size:', (0, utils_1.byteSize)(params), err);
31
- return (0, rxjs_1.throwError)(err);
31
+ return (0, rxjs_1.throwError)(() => err);
32
32
  }))
33
33
  : (0, rxjs_1.of)(null);
34
34
  exports.publishSnsMessage = publishSnsMessage;
package/dist/sns.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sns.js","sourceRoot":"","sources":["../src/sns.ts"],"names":[],"mappings":";;;AAAA,oDAAgE;AAChE,+BAAmE;AAEnE,+BAAoC;AACpC,6BAAgD;AAChD,mCAAmC;AAM5B,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,MAA4C,EAC5C,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAChC,SAAqB,EAAE,EACvB,EAAE,CACF,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EACF,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CACpB,IAAI,2BAAc,CAAC;QACjB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/B,iBAAiB,EAAE;YACjB,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,YAAY;aAC1B;YACD,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACjD,GAAG;gBACH;oBACE,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,KAAK;iBACnB;aACF,CAAC,CACH;SACF;KACF,CAAC,CACH,CACF,CAAC,IAAI,CACJ,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE;QACR,IAAA,UAAI,EAAC,eAAe,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,EACF,IAAA,iBAAU,EAAC,GAAG,CAAC,EAAE;QACf,IAAA,WAAK,EAAC,eAAe,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/F,OAAO,IAAA,iBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAxCF,QAAA,iBAAiB,qBAwCf"}
1
+ {"version":3,"file":"sns.js","sourceRoot":"","sources":["../src/sns.ts"],"names":[],"mappings":";;;AAAA,oDAAgE;AAChE,+BAAmE;AAEnE,+BAAoC;AACpC,6BAAgD;AAChD,mCAAmC;AAM5B,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,MAA4C,EAC5C,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAChC,SAAqB,EAAE,EACvB,EAAE,CACF,aAAQ;IACN,CAAC,CAAC,IAAA,WAAI,EACF,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CACpB,IAAI,2BAAc,CAAC;QACjB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/B,iBAAiB,EAAE;YACjB,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,YAAY;aAC1B;YACD,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACjD,GAAG;gBACH;oBACE,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,KAAK;iBACnB;aACF,CAAC,CACH;SACF;KACF,CAAC,CACH,CACF,CAAC,IAAI,CACJ,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,UAAG,EAAC,GAAG,CAAC,EAAE;QACR,IAAA,UAAI,EAAC,eAAe,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,EACF,IAAA,iBAAU,EAAC,GAAG,CAAC,EAAE;QACf,IAAA,WAAK,EAAC,eAAe,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/F,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH;IACH,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AAxCF,QAAA,iBAAiB,qBAwCf"}
package/dist/sqs.d.ts CHANGED
@@ -3,5 +3,5 @@ import { IFunctionParam } from './s3';
3
3
  type attributes = {
4
4
  [key: string]: string;
5
5
  };
6
- export declare const sendSqsMessage: (functionName: string, params: IFunctionParam | Record<string, any>, queueUrl?: string, extras?: attributes, requestParams?: Partial<Omit<SendMessageCommandInput, 'QueueUrl' | 'MessageBody' | 'MessageAttributes'>>) => import("rxjs").Observable<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
6
+ export declare const sendSqsMessage: (functionName: string, params: IFunctionParam | Record<string, any>, queueUrl?: string, extras?: attributes, requestParams?: Partial<Omit<SendMessageCommandInput, "QueueUrl" | "MessageBody" | "MessageAttributes">>) => import("rxjs").Observable<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
7
7
  export {};
package/dist/utils.d.ts CHANGED
@@ -20,7 +20,6 @@ export declare const returnError: (err: any) => {
20
20
  };
21
21
  body: string;
22
22
  };
23
- export declare const spliceAndProcess: <T, R>(docs: T[], func: (p: T[]) => Promise<R>, count?: number) => Promise<void | R>;
24
23
  export declare const isEmpty: (value: any, minKeys?: number) => boolean;
25
24
  export declare const refToSchemaType: (ref: any) => any;
26
25
  export declare const prependWithKey: (data: any, key: string) => {};
package/dist/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.byteSize = exports.stripBOM = exports.prependWithKey = exports.refToSchemaType = exports.isEmpty = exports.spliceAndProcess = exports.returnError = exports.returnResponse = exports.functionParamToSNSRecord = exports.functionParamToS3Record = exports.recordToFunctionParam = exports.baseUrl = void 0;
3
+ exports.byteSize = exports.stripBOM = exports.prependWithKey = exports.refToSchemaType = exports.isEmpty = exports.returnError = exports.returnResponse = exports.functionParamToSNSRecord = exports.functionParamToS3Record = exports.recordToFunctionParam = exports.baseUrl = void 0;
4
4
  const utils_1 = require("@hestia-earth/utils");
5
5
  const log_1 = require("./log");
6
6
  exports.baseUrl = process.env.DOMAIN || '';
@@ -53,16 +53,6 @@ const returnError = err => {
53
53
  return (0, exports.returnResponse)({ error: errorContent }, status || defaultErrorStatus);
54
54
  };
55
55
  exports.returnError = returnError;
56
- const spliceAndProcess = (docs, func, count = 1) => new Promise(resolve => {
57
- if (!docs.length) {
58
- return resolve();
59
- }
60
- const remaining = docs.splice(docs.length - count);
61
- void func(remaining)
62
- .then(() => (0, exports.spliceAndProcess)(docs, func, count))
63
- .then(resolve);
64
- });
65
- exports.spliceAndProcess = spliceAndProcess;
66
56
  const isEmpty = (value, minKeys = 1) => typeof value === 'object'
67
57
  ? Array.isArray(value)
68
58
  ? !value.length
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/pipeline-utils",
3
- "version": "0.16.2",
3
+ "version": "0.16.5",
4
4
  "description": "Utilities for running pipelines",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -28,23 +28,24 @@
28
28
  },
29
29
  "homepage": "https://gitlab.com/hestia-earth/hestia-pipeline-utils#readme",
30
30
  "dependencies": {
31
- "@aws-sdk/client-ec2": "^3.525.0",
32
- "@aws-sdk/client-lambda": "^3.525.0",
33
- "@aws-sdk/client-s3": "^3.525.0",
34
- "@aws-sdk/client-sns": "^3.525.0",
35
- "@aws-sdk/client-sqs": "^3.525.0",
36
- "@aws-sdk/lib-storage": "^3.525.0",
31
+ "@aws-sdk/client-ec2": "^3.962.0",
32
+ "@aws-sdk/client-lambda": "^3.962.0",
33
+ "@aws-sdk/client-s3": "^3.962.0",
34
+ "@aws-sdk/client-ses": "^3.962.0",
35
+ "@aws-sdk/client-sns": "^3.962.0",
36
+ "@aws-sdk/client-sqs": "^3.962.0",
37
+ "@aws-sdk/lib-storage": "^3.962.0",
37
38
  "@aws-sdk/util-utf8-node": "^3.259.0",
38
39
  "@elastic/elasticsearch": "7.13.0",
39
- "@slack/web-api": "^7.7.0",
40
- "axios": "^1.4.0",
40
+ "@slack/web-api": "^7.13.0",
41
+ "axios": "^1.13.2",
41
42
  "bson": "^4.7.2",
42
43
  "lodash.get": "^4.4.2",
43
44
  "lodash.omit": "^4.5.0",
44
45
  "lodash.pick": "^4.4.0",
45
46
  "memory-cache": "^0.2.0",
46
47
  "mongodb": "^3.7.4",
47
- "rxjs": "^7.8.1"
48
+ "rxjs": "^7.8.2"
48
49
  },
49
50
  "peerDependencies": {
50
51
  "@hestia-earth/api": ">=0.21.0",
@@ -55,12 +56,12 @@
55
56
  "devDependencies": {
56
57
  "@commitlint/cli": "^17.8.1",
57
58
  "@commitlint/config-conventional": "^17.8.1",
58
- "@hestia-earth/api": "^0.24.50",
59
- "@hestia-earth/eslint-config": "^0.1.0",
60
- "@hestia-earth/json-schema": "^30.3.2",
61
- "@hestia-earth/schema": "^30.3.2",
62
- "@hestia-earth/utils": "^0.13.9",
63
- "@types/aws-lambda": "^8.10.130",
59
+ "@hestia-earth/api": "^0.24.82",
60
+ "@hestia-earth/eslint-config": "^0.1.1",
61
+ "@hestia-earth/json-schema": "^30.7.3",
62
+ "@hestia-earth/schema": "^30.7.3",
63
+ "@hestia-earth/utils": "^0.13.30",
64
+ "@types/aws-lambda": "^8.10.159",
64
65
  "@types/jest": "^30.0.0",
65
66
  "@types/lodash.get": "^4.4.9",
66
67
  "@types/lodash.omit": "^4.5.9",
@@ -69,16 +70,16 @@
69
70
  "@types/node": "^22.19.3",
70
71
  "@typescript-eslint/eslint-plugin": "^5.62.0",
71
72
  "@typescript-eslint/parser": "^5.62.0",
72
- "dotenv": "^16.4.7",
73
+ "dotenv": "^16.6.1",
73
74
  "eslint": "^7.32.0",
74
75
  "eslint-plugin-jsdoc": "^30.7.13",
75
76
  "husky": "^4.3.8",
76
77
  "jest": "^30.2.0",
77
- "prettier": "^3.1.1",
78
+ "prettier": "^3.7.4",
78
79
  "standard-version": "^9.5.0",
79
80
  "ts-jest": "^29.4.6",
80
81
  "ts-node": "^10.9.2",
81
- "typescript": "^5.3.3"
82
+ "typescript": "^5.9.3"
82
83
  },
83
84
  "husky": {
84
85
  "hooks": {
package/src/ec2.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { EC2Client, StartInstancesCommand } from '@aws-sdk/client-ec2';
2
- import { from, of, take, map } from 'rxjs';
1
+ import { DescribeInstancesCommand, EC2Client, StartInstancesCommand } from '@aws-sdk/client-ec2';
2
+ import { from, of, take, map, filter, switchMap, mergeAll } from 'rxjs';
3
3
 
4
4
  import { debug } from './log';
5
5
  import { isS3Mode } from './s3';
@@ -8,17 +8,14 @@ const defaultInstanceIds = (process.env.START_INSTANCE_ID || '').split(',');
8
8
 
9
9
  export const startInstances = (functionName: string, instanceIds = defaultInstanceIds) =>
10
10
  isS3Mode
11
- ? from(
12
- new EC2Client({}).send(
13
- new StartInstancesCommand({
14
- InstanceIds: instanceIds
15
- })
16
- )
17
- ).pipe(
11
+ ? from(new EC2Client({}).send(new DescribeInstancesCommand({ InstanceIds: instanceIds }))).pipe(
12
+ map(res => (res.Reservations || []).flatMap(r => r.Instances || [])),
13
+ mergeAll(),
14
+ filter(instance => instance.State?.Name === 'stopped'),
18
15
  take(1),
19
- map(res => {
20
- debug(`EC2 start instances ${functionName}`, res);
21
- return res;
16
+ switchMap(instance => {
17
+ debug('EC2 start instances', functionName, instance.InstanceId);
18
+ return new EC2Client({}).send(new StartInstancesCommand({ InstanceIds: [instance.InstanceId] }));
22
19
  })
23
20
  )
24
21
  : of(null);
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './ec2';
2
2
  export * from './lambda';
3
3
  export * from './log';
4
+ export * from './mail';
4
5
  export * from './mongodb';
5
6
  export * from './progress';
6
7
  export * from './s3';
package/src/lambda.ts CHANGED
@@ -19,7 +19,7 @@ export const invoke = (functionName: string, params: IFunctionParam | Record<str
19
19
  ).pipe(
20
20
  take(1),
21
21
  map(res => {
22
- info(`invoke ${functionName}`, { params }, res);
22
+ info('Lambda invoke', functionName, { params }, res);
23
23
  return res;
24
24
  })
25
25
  )
package/src/mail.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { SESClient, SendTemplatedEmailCommand, SendTemplatedEmailCommandInput } from '@aws-sdk/client-ses';
2
+
3
+ import { baseUrl } from './utils';
4
+
5
+ const fromEmail = 'no-reply@hestia.earth';
6
+ const fromName = 'Hestia Earth Team';
7
+
8
+ export const sendTemplatedEmail = async (template: string, emails: string[], data = {}) => {
9
+ const params: SendTemplatedEmailCommandInput = {
10
+ Source: fromEmail,
11
+ Destination: {
12
+ ToAddresses: emails
13
+ },
14
+ Template: template,
15
+ TemplateData: JSON.stringify({
16
+ ...data,
17
+ baseUrl,
18
+ fromName
19
+ })
20
+ };
21
+ return await new SESClient({ region: 'us-east-1' }).send(new SendTemplatedEmailCommand(params));
22
+ };
package/src/sns.ts CHANGED
@@ -46,7 +46,7 @@ export const publishSnsMessage = (
46
46
  }),
47
47
  catchError(err => {
48
48
  error(`SNS publish ${functionName}`, { params }, ', params byte size:', byteSize(params), err);
49
- return throwError(err);
49
+ return throwError(() => err);
50
50
  })
51
51
  )
52
52
  : of(null);
package/src/utils.ts CHANGED
@@ -62,18 +62,6 @@ export const returnError = err => {
62
62
  return returnResponse({ error: errorContent }, status || defaultErrorStatus);
63
63
  };
64
64
 
65
- export const spliceAndProcess = <T, R>(docs: T[], func: (p: T[]) => Promise<R>, count = 1) =>
66
- new Promise<R | void>(resolve => {
67
- if (!docs.length) {
68
- return resolve();
69
- }
70
- const remaining = docs.splice(docs.length - count);
71
-
72
- void func(remaining)
73
- .then(() => spliceAndProcess(docs, func, count))
74
- .then(resolve);
75
- });
76
-
77
65
  export const isEmpty = (value: any, minKeys = 1) =>
78
66
  typeof value === 'object'
79
67
  ? Array.isArray(value)