@etohq/framework 1.4.0 → 1.5.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.
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +11 -4
- package/dist/config/config.js.map +1 -1
- package/dist/config/loader.d.ts +2 -5
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +14 -13
- package/dist/config/loader.js.map +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/database/pg-connection-loader.d.ts +1 -1
- package/dist/database/pg-connection-loader.d.ts.map +1 -1
- package/dist/database/pg-connection-loader.js +25 -3
- package/dist/database/pg-connection-loader.js.map +1 -1
- package/dist/eto-app-loader.d.ts +6 -7
- package/dist/eto-app-loader.d.ts.map +1 -1
- package/dist/eto-app-loader.js +54 -4
- package/dist/eto-app-loader.js.map +1 -1
- package/dist/eto.d.ts +7 -7
- package/dist/eto.d.ts.map +1 -1
- package/dist/eto.js +4 -13
- package/dist/eto.js.map +1 -1
- package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-default-filters.js.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.js.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.d.ts +3 -1
- package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.js +19 -10
- package/dist/http/middlewares/authenticate-middleware.js.map +1 -1
- package/dist/http/middlewares/bodyparser.d.ts +2 -0
- package/dist/http/middlewares/bodyparser.d.ts.map +1 -0
- package/dist/http/middlewares/bodyparser.js +99 -0
- package/dist/http/middlewares/bodyparser.js.map +1 -0
- package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -1
- package/dist/http/middlewares/ensure-publishable-api-key.js +2 -2
- package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -1
- package/dist/http/middlewares/error-handler.d.ts.map +1 -1
- package/dist/http/middlewares/error-handler.js +1 -0
- package/dist/http/middlewares/error-handler.js.map +1 -1
- package/dist/http/types.d.ts +41 -10
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/utils/get-query-config.d.ts +5 -6
- package/dist/http/utils/get-query-config.d.ts.map +1 -1
- package/dist/http/utils/get-query-config.js +7 -5
- package/dist/http/utils/get-query-config.js.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.js +12 -14
- package/dist/http/utils/maybe-apply-link-filter.js.map +1 -1
- package/dist/http/utils/refetch-entities.d.ts +1 -1
- package/dist/http/utils/refetch-entities.d.ts.map +1 -1
- package/dist/http/utils/refetch-entities.js +2 -2
- package/dist/http/utils/refetch-entities.js.map +1 -1
- package/dist/http/utils/validate-query.d.ts.map +1 -1
- package/dist/http/utils/validate-query.js +2 -1
- package/dist/http/utils/validate-query.js.map +1 -1
- package/dist/http/utils/wrap-handler.d.ts +2 -0
- package/dist/http/utils/wrap-handler.d.ts.map +1 -0
- package/dist/http/utils/wrap-handler.js +40 -0
- package/dist/http/utils/wrap-handler.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/job-loader.d.ts +13 -16
- package/dist/jobs/job-loader.d.ts.map +1 -1
- package/dist/jobs/job-loader.js +18 -88
- package/dist/jobs/job-loader.js.map +1 -1
- package/dist/links/link-loader.js +1 -1
- package/dist/links/link-loader.js.map +1 -1
- package/dist/loader.d.ts +8 -12
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +40 -35
- package/dist/loader.js.map +1 -1
- package/dist/logger/index.d.ts +28 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +249 -3
- package/dist/logger/index.js.map +1 -1
- package/dist/migrations/index.d.ts +3 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +19 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migrator.d.ts +38 -0
- package/dist/migrations/migrator.d.ts.map +1 -0
- package/dist/migrations/migrator.js +130 -0
- package/dist/migrations/migrator.js.map +1 -0
- package/dist/migrations/run-migration-scripts.d.ts +17 -0
- package/dist/migrations/run-migration-scripts.d.ts.map +1 -0
- package/dist/migrations/run-migration-scripts.js +95 -0
- package/dist/migrations/run-migration-scripts.js.map +1 -0
- package/dist/mikro-orm-cli/bin.js +3 -3
- package/dist/mikro-orm-cli/bin.js.map +1 -1
- package/dist/subscribers/subscriber-loader.d.ts +5 -18
- package/dist/subscribers/subscriber-loader.d.ts.map +1 -1
- package/dist/subscribers/subscriber-loader.js +19 -95
- package/dist/subscribers/subscriber-loader.js.map +1 -1
- package/dist/types/container.d.ts +3 -2
- package/dist/types/container.d.ts.map +1 -1
- package/dist/utils/resource-loader.d.ts +26 -0
- package/dist/utils/resource-loader.d.ts.map +1 -0
- package/dist/utils/resource-loader.js +78 -0
- package/dist/utils/resource-loader.js.map +1 -0
- package/dist/workflows/workflow-loader.d.ts +4 -2
- package/dist/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/workflows/workflow-loader.js +8 -58
- package/dist/workflows/workflow-loader.js.map +1 -1
- package/package.json +25 -20
- package/dist/telemetry/index.d.ts +0 -50
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -81
- package/dist/telemetry/index.js.map +0 -1
package/dist/logger/index.js
CHANGED
|
@@ -3,7 +3,253 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.logger = void 0;
|
|
7
|
-
const
|
|
8
|
-
|
|
6
|
+
exports.logger = exports.Reporter = void 0;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
8
|
+
const ulid_1 = require("ulid");
|
|
9
|
+
const winston_1 = __importDefault(require("winston"));
|
|
10
|
+
const util_1 = require("util");
|
|
11
|
+
const stack_trace_1 = __importDefault(require("stack-trace"));
|
|
12
|
+
const LOG_LEVEL = process.env.LOG_LEVEL || "http";
|
|
13
|
+
const LOG_FILE = process.env.LOG_FILE || "";
|
|
14
|
+
const NODE_ENV = process.env.NODE_ENV || "development";
|
|
15
|
+
const IS_DEV = NODE_ENV.startsWith("dev");
|
|
16
|
+
let transports = [];
|
|
17
|
+
if (!IS_DEV) {
|
|
18
|
+
transports.push(new winston_1.default.transports.Console());
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
transports.push(new winston_1.default.transports.Console({
|
|
22
|
+
format: winston_1.default.format.combine(winston_1.default.format.cli({
|
|
23
|
+
levels: winston_1.default.config.npm.levels,
|
|
24
|
+
}), winston_1.default.format.splat()),
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
if (LOG_FILE) {
|
|
28
|
+
transports.push(new winston_1.default.transports.File({
|
|
29
|
+
filename: LOG_FILE,
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
const loggerInstance = winston_1.default.createLogger({
|
|
33
|
+
level: LOG_LEVEL,
|
|
34
|
+
levels: winston_1.default.config.npm.levels,
|
|
35
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({
|
|
36
|
+
format: "YYYY-MM-DD HH:mm:ss",
|
|
37
|
+
}), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat(), winston_1.default.format.json()),
|
|
38
|
+
transports,
|
|
39
|
+
});
|
|
40
|
+
class Reporter {
|
|
41
|
+
constructor({ logger, activityLogger }) {
|
|
42
|
+
this.shouldLog = (level) => {
|
|
43
|
+
const levelValue = this.loggerInstance_.levels[level];
|
|
44
|
+
const logLevel = this.loggerInstance_.levels[this.loggerInstance_.level];
|
|
45
|
+
return levelValue <= logLevel;
|
|
46
|
+
};
|
|
47
|
+
this.activities_ = {};
|
|
48
|
+
this.loggerInstance_ = logger;
|
|
49
|
+
this.ora_ = activityLogger;
|
|
50
|
+
}
|
|
51
|
+
panic(data) {
|
|
52
|
+
this.loggerInstance_.log({
|
|
53
|
+
level: "error",
|
|
54
|
+
message: data.message,
|
|
55
|
+
});
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
setLogLevel(level) {
|
|
59
|
+
this.loggerInstance_.level = level;
|
|
60
|
+
}
|
|
61
|
+
unsetLogLevel() {
|
|
62
|
+
this.loggerInstance_.level = LOG_LEVEL;
|
|
63
|
+
}
|
|
64
|
+
activity(message, config = {}) {
|
|
65
|
+
const id = (0, ulid_1.ulid)();
|
|
66
|
+
if (IS_DEV && this.shouldLog("info")) {
|
|
67
|
+
const activity = this.ora_(message).start();
|
|
68
|
+
this.activities_[id] = {
|
|
69
|
+
activity,
|
|
70
|
+
config,
|
|
71
|
+
start: Date.now(),
|
|
72
|
+
};
|
|
73
|
+
return id;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.activities_[id] = {
|
|
77
|
+
start: Date.now(),
|
|
78
|
+
config,
|
|
79
|
+
};
|
|
80
|
+
this.loggerInstance_.log({
|
|
81
|
+
activity_id: id,
|
|
82
|
+
level: "info",
|
|
83
|
+
config,
|
|
84
|
+
message,
|
|
85
|
+
});
|
|
86
|
+
return id;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
progress(activityId, message) {
|
|
90
|
+
const toLog = {
|
|
91
|
+
level: "info",
|
|
92
|
+
message,
|
|
93
|
+
};
|
|
94
|
+
if (this.activities_[activityId]) {
|
|
95
|
+
const activity = this.activities_[activityId];
|
|
96
|
+
if (activity.activity) {
|
|
97
|
+
activity.text = message;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
toLog["activity_id"] = activityId;
|
|
101
|
+
this.loggerInstance_.log(toLog);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.loggerInstance_.log(toLog);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
error(messageOrError, error) {
|
|
109
|
+
let message;
|
|
110
|
+
let errorAsObject;
|
|
111
|
+
if (messageOrError && typeof messageOrError === "object") {
|
|
112
|
+
errorAsObject = messageOrError;
|
|
113
|
+
message = messageOrError.message;
|
|
114
|
+
}
|
|
115
|
+
else if (error) {
|
|
116
|
+
message = messageOrError;
|
|
117
|
+
errorAsObject = error;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
message = messageOrError;
|
|
121
|
+
}
|
|
122
|
+
const toLog = {
|
|
123
|
+
level: "error",
|
|
124
|
+
message,
|
|
125
|
+
};
|
|
126
|
+
if (errorAsObject) {
|
|
127
|
+
toLog["message"] = errorAsObject.message;
|
|
128
|
+
toLog["stack"] = stack_trace_1.default.parse(errorAsObject);
|
|
129
|
+
if ("cause" in errorAsObject) {
|
|
130
|
+
toLog["cause"] = (0, util_1.inspect)(errorAsObject.cause);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (errorAsObject?.message && errorAsObject?.message !== message) {
|
|
134
|
+
this.loggerInstance_.log({ level: "error", message });
|
|
135
|
+
}
|
|
136
|
+
this.loggerInstance_.log(toLog);
|
|
137
|
+
if (errorAsObject && IS_DEV) {
|
|
138
|
+
console.error(errorAsObject);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
failure(activityId, message) {
|
|
142
|
+
const time = Date.now();
|
|
143
|
+
const toLog = {
|
|
144
|
+
level: "error",
|
|
145
|
+
message,
|
|
146
|
+
};
|
|
147
|
+
if (this.activities_[activityId]) {
|
|
148
|
+
const activity = this.activities_[activityId];
|
|
149
|
+
if (activity.activity) {
|
|
150
|
+
activity.activity.fail(`${message} – ${time - activity.start}`);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
toLog["duration"] = time - activity.start;
|
|
154
|
+
toLog["activity_id"] = activityId;
|
|
155
|
+
this.loggerInstance_.log(toLog);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.loggerInstance_.log(toLog);
|
|
160
|
+
}
|
|
161
|
+
if (this.activities_[activityId]) {
|
|
162
|
+
const activity = this.activities_[activityId];
|
|
163
|
+
return {
|
|
164
|
+
...activity,
|
|
165
|
+
duration: time - activity.start,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
success(activityId, message) {
|
|
171
|
+
const time = Date.now();
|
|
172
|
+
const toLog = {
|
|
173
|
+
level: "info",
|
|
174
|
+
message,
|
|
175
|
+
};
|
|
176
|
+
if (this.activities_[activityId]) {
|
|
177
|
+
const activity = this.activities_[activityId];
|
|
178
|
+
if (activity.activity) {
|
|
179
|
+
activity.activity.succeed(`${message} – ${time - activity.start}ms`);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
toLog["duration"] = time - activity.start;
|
|
183
|
+
toLog["activity_id"] = activityId;
|
|
184
|
+
this.loggerInstance_.log(toLog);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this.loggerInstance_.log(toLog);
|
|
189
|
+
}
|
|
190
|
+
if (this.activities_[activityId]) {
|
|
191
|
+
const activity = this.activities_[activityId];
|
|
192
|
+
return {
|
|
193
|
+
...activity,
|
|
194
|
+
duration: time - activity.start,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
silly(message) {
|
|
200
|
+
this.loggerInstance_.log({
|
|
201
|
+
level: "silly",
|
|
202
|
+
message,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
debug(message) {
|
|
206
|
+
this.loggerInstance_.log({
|
|
207
|
+
level: "debug",
|
|
208
|
+
message,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
verbose(message) {
|
|
212
|
+
this.loggerInstance_.log({
|
|
213
|
+
level: "vebose",
|
|
214
|
+
message,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
http(message) {
|
|
218
|
+
this.loggerInstance_.log({
|
|
219
|
+
level: "http",
|
|
220
|
+
message,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
info(message) {
|
|
224
|
+
this.loggerInstance_.log({
|
|
225
|
+
level: "info",
|
|
226
|
+
message,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
warn(message) {
|
|
230
|
+
this.loggerInstance_.warn({
|
|
231
|
+
level: "warn",
|
|
232
|
+
message,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
log(...args) {
|
|
236
|
+
if (args.length > 1) {
|
|
237
|
+
// @ts-ignore
|
|
238
|
+
this.loggerInstance_.log(...args);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
let message = args[0];
|
|
242
|
+
this.loggerInstance_.log({
|
|
243
|
+
level: "info",
|
|
244
|
+
message,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
exports.Reporter = Reporter;
|
|
250
|
+
const logger = new Reporter({
|
|
251
|
+
logger: loggerInstance,
|
|
252
|
+
activityLogger: ora_1.default,
|
|
253
|
+
});
|
|
254
|
+
exports.logger = logger;
|
|
9
255
|
//# sourceMappingURL=index.js.map
|
package/dist/logger/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./migrator"), exports);
|
|
18
|
+
__exportStar(require("./run-migration-scripts"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,0DAAuC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EtoContainer } from "@etohq/types";
|
|
2
|
+
import { Knex } from "@mikro-orm/knex";
|
|
3
|
+
export declare abstract class Migrator {
|
|
4
|
+
#private;
|
|
5
|
+
protected abstract migration_table_name: string;
|
|
6
|
+
protected container: EtoContainer;
|
|
7
|
+
protected pgConnection: Knex<any>;
|
|
8
|
+
constructor({ container }: {
|
|
9
|
+
container: EtoContainer;
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Util to track duration using hrtime
|
|
13
|
+
*/
|
|
14
|
+
protected trackDuration(): {
|
|
15
|
+
getSeconds(): string;
|
|
16
|
+
};
|
|
17
|
+
ensureDatabase(): Promise<void>;
|
|
18
|
+
ensureMigrationsTable(): Promise<void>;
|
|
19
|
+
getExecutedMigrations(): Promise<{
|
|
20
|
+
script_name: string;
|
|
21
|
+
}[]>;
|
|
22
|
+
insertMigration(records: Record<string, any>[]): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Load migration files from the given paths
|
|
25
|
+
*
|
|
26
|
+
* @param paths - The paths to load migration files from
|
|
27
|
+
* @param options - The options for loading migration files
|
|
28
|
+
* @param options.force - Whether to force loading migration files even if they have already been loaded
|
|
29
|
+
* @returns The loaded migration file paths
|
|
30
|
+
*/
|
|
31
|
+
loadMigrationFiles(paths: string[], { force }?: {
|
|
32
|
+
force?: boolean;
|
|
33
|
+
}): Promise<string[]>;
|
|
34
|
+
protected abstract createMigrationTable(): Promise<void>;
|
|
35
|
+
abstract run(...args: any[]): Promise<any>;
|
|
36
|
+
abstract getPendingMigrations(migrationPaths: string[]): Promise<string[]>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=migrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migrations/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAMtC,8BAAsB,QAAQ;;IAC5B,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IAE/C,SAAS,CAAC,SAAS,EAAE,YAAY,CAAA;IACjC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAIrB,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,YAAY,CAAA;KAAE;IAOtD;;OAEG;IACH,SAAS,CAAC,aAAa;;;IAUjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB/B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC,qBAAqB,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAY3D,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpE;;;;;;;OAOG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAqB,GAChD,OAAO,CAAC,MAAM,EAAE,CAAC;IAiCpB,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IACxD,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAC3E"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _Migrator_alreadyLoadedPaths;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Migrator = void 0;
|
|
10
|
+
const glob_1 = require("glob");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
const logger_1 = require("../logger");
|
|
13
|
+
const utils_1 = require("../utils");
|
|
14
|
+
class Migrator {
|
|
15
|
+
constructor({ container }) {
|
|
16
|
+
_Migrator_alreadyLoadedPaths.set(this, new Map());
|
|
17
|
+
this.container = container;
|
|
18
|
+
this.pgConnection = this.container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Util to track duration using hrtime
|
|
22
|
+
*/
|
|
23
|
+
trackDuration() {
|
|
24
|
+
const startTime = process.hrtime();
|
|
25
|
+
return {
|
|
26
|
+
getSeconds() {
|
|
27
|
+
const duration = process.hrtime(startTime);
|
|
28
|
+
return (duration[0] + duration[1] / 1e9).toFixed(2);
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async ensureDatabase() {
|
|
33
|
+
const pgConnection = this.container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
34
|
+
try {
|
|
35
|
+
await pgConnection.raw("SELECT 1 + 1;");
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (error.code === "3D000") {
|
|
39
|
+
logger_1.logger.error(`Cannot run migrations. ${error.message.replace("error: ", "")}`);
|
|
40
|
+
logger_1.logger.info(`Run command "db:create" to create the database`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger_1.logger.error(error);
|
|
44
|
+
}
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async ensureMigrationsTable() {
|
|
49
|
+
try {
|
|
50
|
+
// Check if table exists
|
|
51
|
+
const tableExists = await this.pgConnection.raw(`
|
|
52
|
+
SELECT EXISTS (
|
|
53
|
+
SELECT FROM information_schema.tables
|
|
54
|
+
WHERE table_schema = 'public'
|
|
55
|
+
AND table_name = '${this.migration_table_name}'
|
|
56
|
+
);
|
|
57
|
+
`);
|
|
58
|
+
if (!tableExists.rows[0].exists) {
|
|
59
|
+
logger_1.logger.info(`Creating migrations table '${this.migration_table_name}'...`);
|
|
60
|
+
await this.createMigrationTable();
|
|
61
|
+
logger_1.logger.info("Migrations table created successfully");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger_1.logger.error("Failed to ensure migrations table exists:", error);
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async getExecutedMigrations() {
|
|
70
|
+
try {
|
|
71
|
+
const result = await this.pgConnection.raw(`SELECT * FROM ${this.migration_table_name}`);
|
|
72
|
+
return result.rows;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
logger_1.logger.error("Failed to get executed migrations:", error);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async insertMigration(records) {
|
|
80
|
+
try {
|
|
81
|
+
const values = records.map((record) => Object.values(record));
|
|
82
|
+
const columns = Object.keys(records[0]);
|
|
83
|
+
await this.pgConnection.raw(`INSERT INTO ${this.migration_table_name} (${columns.join(", ")}) VALUES ${values
|
|
84
|
+
.map((itemValues) => `(${new Array(itemValues.length).fill("?").join(",")})`)
|
|
85
|
+
.join(",")}`, values.flat());
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
logger_1.logger.error(`Failed to update migration table '${this.migration_table_name}':`, error);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Load migration files from the given paths
|
|
94
|
+
*
|
|
95
|
+
* @param paths - The paths to load migration files from
|
|
96
|
+
* @param options - The options for loading migration files
|
|
97
|
+
* @param options.force - Whether to force loading migration files even if they have already been loaded
|
|
98
|
+
* @returns The loaded migration file paths
|
|
99
|
+
*/
|
|
100
|
+
async loadMigrationFiles(paths, { force } = { force: false }) {
|
|
101
|
+
const allScripts = [];
|
|
102
|
+
for (const basePath of paths) {
|
|
103
|
+
if (!force && __classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").has(basePath)) {
|
|
104
|
+
allScripts.push(...__classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").get(basePath));
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const scriptFiles = glob_1.glob.sync("*.{js,ts}", {
|
|
109
|
+
cwd: basePath,
|
|
110
|
+
ignore: ["**/index.{js,ts}", "**/*.d.ts"],
|
|
111
|
+
});
|
|
112
|
+
scriptFiles.sort((a, b) => a.localeCompare(b));
|
|
113
|
+
if (!scriptFiles?.length) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const filePaths = scriptFiles.map((script) => (0, path_1.join)(basePath, script));
|
|
117
|
+
__classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").set(basePath, filePaths);
|
|
118
|
+
allScripts.push(...filePaths);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
logger_1.logger.error(`Failed to load migration files from ${basePath}:`, error);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return allScripts;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.Migrator = Migrator;
|
|
129
|
+
_Migrator_alreadyLoadedPaths = new WeakMap();
|
|
130
|
+
//# sourceMappingURL=migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/migrations/migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EtoContainer } from "@etohq/types";
|
|
2
|
+
import { Migrator } from "./migrator";
|
|
3
|
+
export declare class MigrationScriptsMigrator extends Migrator {
|
|
4
|
+
#private;
|
|
5
|
+
protected migration_table_name: string;
|
|
6
|
+
constructor({ container }: {
|
|
7
|
+
container: EtoContainer;
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Run the migration scripts
|
|
11
|
+
* @param paths - The paths from which to load the scripts
|
|
12
|
+
*/
|
|
13
|
+
run(paths: string[]): Promise<void>;
|
|
14
|
+
getPendingMigrations(migrationPaths: string[]): Promise<string[]>;
|
|
15
|
+
protected createMigrationTable(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=run-migration-scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-migration-scripts.d.ts","sourceRoot":"","sources":["../../src/migrations/run-migration-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,qBAAa,wBAAyB,SAAQ,QAAQ;;IACpD,SAAS,CAAC,oBAAoB,SAAsB;gBAExC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,YAAY,CAAA;KAAE;IAItD;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DnC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cASvD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CA0BtD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _MigrationScriptsMigrator_instances, _MigrationScriptsMigrator_updateMigrationFinishedAt, _MigrationScriptsMigrator_deleteMigration;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MigrationScriptsMigrator = void 0;
|
|
10
|
+
const utils_1 = require("@etohq/utils");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
const logger_1 = require("../logger");
|
|
13
|
+
const migrator_1 = require("./migrator");
|
|
14
|
+
// we really dont need this i think. since encore takes over migration, hmm, i think this is different, this is for scripts, lets confirm later.
|
|
15
|
+
class MigrationScriptsMigrator extends migrator_1.Migrator {
|
|
16
|
+
constructor({ container }) {
|
|
17
|
+
super({ container });
|
|
18
|
+
_MigrationScriptsMigrator_instances.add(this);
|
|
19
|
+
this.migration_table_name = "script_migrations";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run the migration scripts
|
|
23
|
+
* @param paths - The paths from which to load the scripts
|
|
24
|
+
*/
|
|
25
|
+
async run(paths) {
|
|
26
|
+
const lockService = this.container.resolve(utils_1.Modules.LOCKING);
|
|
27
|
+
const lockKey = "migration-scripts-running";
|
|
28
|
+
await lockService.acquire(lockKey, {
|
|
29
|
+
expire: 60 * 60,
|
|
30
|
+
});
|
|
31
|
+
try {
|
|
32
|
+
const scriptPaths = await this.getPendingMigrations(paths);
|
|
33
|
+
for (const script of scriptPaths) {
|
|
34
|
+
const scriptFn = await (0, utils_1.dynamicImport)(script);
|
|
35
|
+
if (!scriptFn.default) {
|
|
36
|
+
throw new Error(`Failed to load migration script ${script}. No default export found.`);
|
|
37
|
+
}
|
|
38
|
+
const scriptName = (0, path_1.basename)(script);
|
|
39
|
+
const err = await this.insertMigration([
|
|
40
|
+
{ script_name: scriptName },
|
|
41
|
+
]).catch((e) => e);
|
|
42
|
+
/**
|
|
43
|
+
* In case another processes is running in parallel, the migration might
|
|
44
|
+
* have already been executed and therefore the insert will fail because of the
|
|
45
|
+
* unique constraint.
|
|
46
|
+
*/
|
|
47
|
+
if (err) {
|
|
48
|
+
if (err.constraint === "idx_script_name_unique") {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
53
|
+
logger_1.logger.info(`Running migration script ${script}`);
|
|
54
|
+
try {
|
|
55
|
+
const tracker = this.trackDuration();
|
|
56
|
+
await scriptFn.default({ container: this.container });
|
|
57
|
+
logger_1.logger.info(`Migration script ${script} completed (${tracker.getSeconds()}s)`);
|
|
58
|
+
await __classPrivateFieldGet(this, _MigrationScriptsMigrator_instances, "m", _MigrationScriptsMigrator_updateMigrationFinishedAt).call(this, scriptName);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
logger_1.logger.error(`Failed to run migration script ${script}:`, error);
|
|
62
|
+
await __classPrivateFieldGet(this, _MigrationScriptsMigrator_instances, "m", _MigrationScriptsMigrator_deleteMigration).call(this, scriptName);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
await lockService.release(lockKey);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async getPendingMigrations(migrationPaths) {
|
|
72
|
+
const executedMigrations = new Set((await this.getExecutedMigrations()).map((item) => item.script_name));
|
|
73
|
+
const all = await this.loadMigrationFiles(migrationPaths);
|
|
74
|
+
return all.filter((item) => !executedMigrations.has((0, path_1.basename)(item)));
|
|
75
|
+
}
|
|
76
|
+
async createMigrationTable() {
|
|
77
|
+
await this.pgConnection.raw(`
|
|
78
|
+
CREATE TABLE IF NOT EXISTS ${this.migration_table_name} (
|
|
79
|
+
id SERIAL PRIMARY KEY,
|
|
80
|
+
script_name VARCHAR(255) NOT NULL,
|
|
81
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
82
|
+
finished_at TIMESTAMP WITH TIME ZONE
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_script_name_unique ON ${this.migration_table_name} (script_name);
|
|
86
|
+
`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.MigrationScriptsMigrator = MigrationScriptsMigrator;
|
|
90
|
+
_MigrationScriptsMigrator_instances = new WeakSet(), _MigrationScriptsMigrator_updateMigrationFinishedAt = function _MigrationScriptsMigrator_updateMigrationFinishedAt(scriptName) {
|
|
91
|
+
return this.pgConnection.raw(`UPDATE ${this.migration_table_name} SET finished_at = NOW() WHERE script_name = ?`, [scriptName]);
|
|
92
|
+
}, _MigrationScriptsMigrator_deleteMigration = function _MigrationScriptsMigrator_deleteMigration(scriptName) {
|
|
93
|
+
return this.pgConnection.raw(`DELETE FROM ${this.migration_table_name} WHERE script_name = ?`, [scriptName]);
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=run-migration-scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-migration-scripts.js","sourceRoot":"","sources":["../../src/migrations/run-migration-scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
* small, we should be okay with managing this wrapper.
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const path_1 = require("path");
|
|
16
|
-
const core_1 = require("@mikro-orm/core");
|
|
17
15
|
const cli_1 = require("@mikro-orm/cli");
|
|
16
|
+
const core_1 = require("@mikro-orm/core");
|
|
17
|
+
const path_1 = require("path");
|
|
18
18
|
/**
|
|
19
19
|
* Monkey patching the TSNode registration of Mikro ORM to not use
|
|
20
20
|
* hardcoded module system with TypeScript.
|
|
21
21
|
*/
|
|
22
|
-
core_1.ConfigurationLoader.registerTsNode =
|
|
22
|
+
core_1.ConfigurationLoader.registerTsNode = function (configPath = "tsconfig.json") {
|
|
23
23
|
const tsConfigPath = (0, path_1.isAbsolute)(configPath)
|
|
24
24
|
? configPath
|
|
25
25
|
: (0, path_1.join)(process.cwd(), configPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/mikro-orm-cli/bin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAEH
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/mikro-orm-cli/bin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAEH,wCAA2D;AAC3D,0CAAqD;AACrD,+BAAuC;AAEvC;;;GAGG;AACH,0BAAmB,CAAC,cAAc,GAAG,UAAU,UAAU,GAAG,eAAe;IACzE,MAAM,YAAY,GAAG,IAAA,iBAAU,EAAC,UAAU,CAAC;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,OAAO,EAAE,YAAY;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC,MAAM,CAAA;IAET,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;YACjC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,OAAO,CAAC,mBAAmB,CAAC;KACzB,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;KAC3B,SAAS,CAAC,OAAO,CAAC;KAClB,WAAW,CAAC,KAAK,CAAC,CACpB;AAAA,CAAC,KAAK,IAAI,EAAE;IACX,MAAM,IAAI,GAAG,MAAM,qBAAe,CAAC,SAAS,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,eAAS,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;AACH,CAAC,CAAC,EAAE,CAAA"}
|