@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 +3 -5
- package/dist/ec2.js.map +1 -1
- package/dist/gitlab.d.ts +0 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lambda.js +1 -1
- package/dist/lambda.js.map +1 -1
- package/dist/mail.d.ts +1 -0
- package/dist/mail.js +24 -0
- package/dist/mail.js.map +1 -0
- package/dist/mongodb.d.ts +4 -104
- package/dist/s3.d.ts +1 -4
- package/dist/sns.js +1 -1
- package/dist/sns.js.map +1 -1
- package/dist/sqs.d.ts +1 -1
- package/dist/utils.d.ts +0 -1
- package/dist/utils.js +1 -11
- package/dist/utils.js.map +1 -1
- package/package.json +20 -19
- package/src/ec2.ts +9 -12
- package/src/index.ts +1 -0
- package/src/lambda.ts +1 -1
- package/src/mail.ts +22 -0
- package/src/sns.ts +1 -1
- package/src/utils.ts +0 -12
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.
|
|
11
|
-
|
|
12
|
-
|
|
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,
|
|
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
package/dist/index.d.ts
CHANGED
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)(
|
|
16
|
+
(0, log_1.info)('Lambda invoke', functionName, { params }, res);
|
|
17
17
|
return res;
|
|
18
18
|
}))
|
|
19
19
|
: (0, rxjs_1.of)(null);
|
package/dist/lambda.js.map
CHANGED
|
@@ -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,
|
|
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
|
package/dist/mail.js.map
ADDED
|
@@ -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;
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
32
|
-
"@aws-sdk/client-lambda": "^3.
|
|
33
|
-
"@aws-sdk/client-s3": "^3.
|
|
34
|
-
"@aws-sdk/client-
|
|
35
|
-
"@aws-sdk/client-
|
|
36
|
-
"@aws-sdk/
|
|
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.
|
|
40
|
-
"axios": "^1.
|
|
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.
|
|
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.
|
|
59
|
-
"@hestia-earth/eslint-config": "^0.1.
|
|
60
|
-
"@hestia-earth/json-schema": "^30.3
|
|
61
|
-
"@hestia-earth/schema": "^30.3
|
|
62
|
-
"@hestia-earth/utils": "^0.13.
|
|
63
|
-
"@types/aws-lambda": "^8.10.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
20
|
-
debug(
|
|
21
|
-
return
|
|
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
package/src/lambda.ts
CHANGED
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
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)
|