@etohq/framework 1.3.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/LICENSE +21 -0
- 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 +6 -3
- 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 +7 -6
- package/dist/http/middlewares/error-handler.js.map +1 -1
- package/dist/http/types.d.ts +49 -19
- 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 +64 -57
- 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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Etohq
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAKtC,qBAAa,aAAa;;IA8BxB,IAAI,MAAM,IAAI,YAAY,CAOzB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;;IAID;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAQnD;;;;OAIG;IACH,SAAS,CAAC,eAAe,CACvB,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GACpD,YAAY,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;IAkDxC;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAC9B,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GACpD,YAAY,CAAC,eAAe,CAAC;IA+BhC;;OAEG;IACH,UAAU,CAAC,EACT,aAAkB,EAClB,OAAO,GACR,EAAE;QACD,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QACpC,OAAO,EAAE,MAAM,CAAA;KAChB,GAAG,YAAY;CAmBjB"}
|
package/dist/config/config.js
CHANGED
|
@@ -58,19 +58,26 @@ class ConfigManager {
|
|
|
58
58
|
* @protected
|
|
59
59
|
*/
|
|
60
60
|
buildHttpConfig(projectConfig) {
|
|
61
|
-
const http = (projectConfig
|
|
61
|
+
const http = (projectConfig?.http ??
|
|
62
62
|
{});
|
|
63
63
|
http.jwtExpiresIn = http?.jwtExpiresIn ?? "1d";
|
|
64
64
|
http.authCors = http.authCors ?? "";
|
|
65
65
|
http.storeCors = http.storeCors ?? "";
|
|
66
66
|
http.adminCors = http.adminCors ?? "";
|
|
67
|
+
http.jwtOptions ??= {};
|
|
68
|
+
http.jwtOptions.expiresIn = http.jwtExpiresIn;
|
|
67
69
|
http.jwtSecret = http?.jwtSecret ?? process.env.JWT_SECRET;
|
|
70
|
+
http.jwtPublicKey = http?.jwtPublicKey ?? process.env.JWT_PUBLIC_KEY;
|
|
71
|
+
if (http?.jwtPublicKey &&
|
|
72
|
+
((http.jwtVerifyOptions && !http.jwtVerifyOptions.algorithms?.length) ||
|
|
73
|
+
(http.jwtOptions && !http.jwtOptions.algorithm))) {
|
|
74
|
+
this.rejectErrors(`JWT public key is provided but no algorithm is set in the 'jwtVerifyOptions' or 'jwtOptions' if 'jwtVerifyOptions' is not provided. It means that the algorithm will be inferred from the public key which can lead to missmatch and invalid algorithm errors.`);
|
|
75
|
+
}
|
|
68
76
|
if (!http.jwtSecret) {
|
|
69
77
|
this.rejectErrors(`http.jwtSecret not found.${__classPrivateFieldGet(this, _ConfigManager_instances, "a", _ConfigManager_isProduction_get) ? "" : "Using default 'supersecret'."}`);
|
|
70
78
|
http.jwtSecret = "supersecret";
|
|
71
79
|
}
|
|
72
|
-
http.cookieSecret =
|
|
73
|
-
process.env.COOKIE_SECRET);
|
|
80
|
+
http.cookieSecret = projectConfig.http?.cookieSecret ?? process.env.COOKIE_SECRET;
|
|
74
81
|
if (!http.cookieSecret) {
|
|
75
82
|
this.rejectErrors(`http.cookieSecret not found.${__classPrivateFieldGet(this, _ConfigManager_instances, "a", _ConfigManager_isProduction_get) ? "" : " Using default 'supersecret'."}`);
|
|
76
83
|
http.cookieSecret = "supersecret";
|
|
@@ -114,7 +121,7 @@ class ConfigManager {
|
|
|
114
121
|
const normalizedProjectConfig = this.normalizeProjectConfig(projectConfig.projectConfig ?? {});
|
|
115
122
|
__classPrivateFieldSet(this, _ConfigManager_config, {
|
|
116
123
|
projectConfig: normalizedProjectConfig,
|
|
117
|
-
|
|
124
|
+
inputModules: projectConfig.inputModules ?? {},
|
|
118
125
|
modules: projectConfig.modules ?? {},
|
|
119
126
|
featureFlags: projectConfig.featureFlags ?? {},
|
|
120
127
|
plugins: projectConfig.plugins ?? [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wCAAkD;AAClD,sCAAkC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wCAAkD;AAClD,sCAAkC;AAGlC,MAAa,aAAa;IA8BxB,IAAI,MAAM;QACR,IAAI,CAAC,uBAAA,IAAI,6BAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CACf,wHAAwH,CACzH,CAAA;QACH,CAAC;QACD,OAAO,uBAAA,IAAI,6BAAQ,CAAA;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,uBAAA,IAAI,8BAAS,CAAA;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,uBAAA,IAAI,iEAAc,CAAA;IAC3B,CAAC;IAED;;QA9CA;;;WAGG;QACH,yCAAgB;QAmBhB;;;WAGG;QACH,wCAAsB;IAmBP,CAAC;IAEhB;;;;OAIG;IACO,YAAY,CAAC,KAAa;QAClC,IAAI,uBAAA,IAAI,iEAAc,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED;;;;OAIG;IACO,eAAe,CACvB,aAAqD;QAErD,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI;YAC/B,EAAE,CAA0C,CAAA;QAE9C,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA;QAErC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAA;QAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QAEpE,IACE,IAAI,EAAE,YAAY;YAClB,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC;gBACnE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAClD,CAAC;YACD,IAAI,CAAC,YAAY,CACf,gQAAgQ,CACjQ,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CACf,4BACE,uBAAA,IAAI,iEAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,8BAC5B,EAAE,CACH,CAAA;YAED,IAAI,CAAC,SAAS,GAAG,aAAa,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;QAEjF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CACf,+BACE,uBAAA,IAAI,iEAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,+BAC5B,EAAE,CACH,CAAA;YAED,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;QACnC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACO,sBAAsB,CAC9B,aAAqD;QAErD,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAC3B,aAAa,CACmB,CAAA;QAElC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;QACxE,CAAC;QAED,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAEvD,IAAI,UAAU,GAAG,YAAY,EAAE,UAAW,CAAA;QAE1C,IAAI,CAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,uBAAA,IAAI,gEAAa,CAAA;YAC7B,IAAI,IAAA,iBAAS,EAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBAClD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9B,UAAU,GAAG,GAAG,CAAA;gBAClB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,QAAQ,CAAA;YACvB,CAAC;QACH,CAAC;QAED,OAAO;YACL,GAAG,YAAY;YACf,UAAU;SACX,CAAA;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EACT,aAAa,GAAG,EAAE,EAClB,OAAO,GAIR;QACC,uBAAA,IAAI,0BAAY,OAAO,MAAA,CAAA;QAEvB,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CACzD,aAAa,CAAC,aAAa,IAAI,EAAE,CAClC,CAAA;QAED,uBAAA,IAAI,yBAAW;YACb,aAAa,EAAE,uBAAuB;YACtC,YAAY,EACV,aAAa,CAAC,YAAY,IAAK,EAAiC;YAClE,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE;YACpC,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,EAAE;YAC9C,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE;YACpC,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE;SACzD,MAAA,CAAA;QAED,OAAO,uBAAA,IAAI,6BAAQ,CAAA;IACrB,CAAC;CACF;AAzLD,sCAyLC;;IA7KG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;AACpE,CAAC;IAOC,OAAO,OAAO,CAAC,GAAG;SACf,eAA8D,CAAA;AACnE,CAAC"}
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConfigModule } from "./types";
|
|
2
2
|
import { ConfigManager } from "./config";
|
|
3
|
-
import {
|
|
3
|
+
import { InputConfig, ModulesDefinitionInput } from "@etohq/types";
|
|
4
4
|
export declare const configManager: ConfigManager;
|
|
5
5
|
/**
|
|
6
6
|
* Loads the config file and returns the config module after validating and normalizing the configurations.
|
|
@@ -9,8 +9,5 @@ export declare const configManager: ConfigManager;
|
|
|
9
9
|
* @param configFileName The name of the config file to search for in the entry directory
|
|
10
10
|
* @param inlineConfig An optional configuration object to use directly instead of loading from a file
|
|
11
11
|
*/
|
|
12
|
-
export declare function configLoader<TKey extends string = string>(entryDirectory: string, configFileName: string,
|
|
13
|
-
modulesDefinition: DefaultModulesDefinition<TKey>;
|
|
14
|
-
modules: InputConfigModules<TKey>;
|
|
15
|
-
}): Promise<ConfigModule<TKey>>;
|
|
12
|
+
export declare function configLoader<TKey extends string = string>(entryDirectory: string, configFileName: string, modulesDefinitionInput: ModulesDefinitionInput<TKey>, inlineConfig?: InputConfig<TKey>): Promise<ConfigModule<TKey>>;
|
|
16
13
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAQtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EACL,WAAW,EACX,sBAAsB,EACvB,MAAM,cAAc,CAAA;AAWrB,eAAO,MAAM,aAAa,eAAsB,CAAA;AAOhD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC7D,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,sBAAsB,CAAC,IAAI,CAAC,EACpD,YAAY,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA+C7B"}
|
package/dist/config/loader.js
CHANGED
|
@@ -7,6 +7,7 @@ const logger_1 = require("../logger");
|
|
|
7
7
|
const config_1 = require("./config");
|
|
8
8
|
const container_1 = require("../container");
|
|
9
9
|
const awilix_1 = require("awilix");
|
|
10
|
+
const modules_sdk_1 = require("@etohq/modules-sdk");
|
|
10
11
|
const handleConfigError = (error) => {
|
|
11
12
|
logger_1.logger.error(`Error in loading config: ${error.message}`);
|
|
12
13
|
if (error.stack) {
|
|
@@ -23,7 +24,8 @@ container_1.container.register(utils_1.ContainerRegistrationKeys.CONFIG_MODULE,
|
|
|
23
24
|
* @param configFileName The name of the config file to search for in the entry directory
|
|
24
25
|
* @param inlineConfig An optional configuration object to use directly instead of loading from a file
|
|
25
26
|
*/
|
|
26
|
-
async function configLoader(entryDirectory, configFileName,
|
|
27
|
+
async function configLoader(entryDirectory, configFileName, modulesDefinitionInput, inlineConfig) {
|
|
28
|
+
const defaultModulesDefinition = (0, modules_sdk_1.generateModulesDefinition)(...modulesDefinitionInput);
|
|
27
29
|
const fileConfigResult = await (0, utils_1.getConfigFile)(entryDirectory, configFileName);
|
|
28
30
|
let finalConfig;
|
|
29
31
|
if (fileConfigResult.error && !inlineConfig) {
|
|
@@ -31,23 +33,22 @@ async function configLoader(entryDirectory, configFileName, inlineConfig, module
|
|
|
31
33
|
handleConfigError(fileConfigResult.error);
|
|
32
34
|
}
|
|
33
35
|
if (inlineConfig) {
|
|
34
|
-
//
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
36
|
+
// Ensure fileConfig is always defined as an object
|
|
37
|
+
const safeFileConfig = fileConfigResult.configModule ?? {};
|
|
38
|
+
// set modules to inputModules before deepmerge, ps: file return inputModules from definConfig.
|
|
39
|
+
if (inlineConfig.modules) {
|
|
40
|
+
inlineConfig["inputModules"] = inlineConfig.modules;
|
|
41
|
+
}
|
|
42
|
+
// Deep merge: later (inlineConfig) wins
|
|
43
|
+
finalConfig = (0, utils_1.deepMerge)(safeFileConfig, inlineConfig);
|
|
40
44
|
}
|
|
41
45
|
else {
|
|
42
46
|
// Use only file config if inline is not provided
|
|
43
47
|
finalConfig = fileConfigResult.configModule;
|
|
44
48
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// merge default with config module.
|
|
49
|
-
finalConfig["modules"] = (0, utils_1.resolveModules)(defaultModules, finalConfig.modules);
|
|
50
|
-
}
|
|
49
|
+
finalConfig["modulesDefinition"] = defaultModulesDefinition;
|
|
50
|
+
// // merge default with config module.
|
|
51
|
+
finalConfig["modules"] = (0, utils_1.resolveModules)(modulesDefinitionInput, finalConfig.inputModules);
|
|
51
52
|
// todo we can move merge up here.... since all dependency is here....
|
|
52
53
|
return exports.configManager.loadConfig({
|
|
53
54
|
projectConfig: finalConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":";;;AAuCA,oCAoDC;AA1FD,wCAKqB;AACrB,sCAAkC;AAClC,qCAAwC;AACxC,4CAAwC;AACxC,mCAAmC;AAKnC,oDAA8D;AAE9D,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAQ,EAAE;IAC/C,eAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACzD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,eAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA;AAEY,QAAA,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAA;AAEhD,qBAAS,CAAC,QAAQ,CAChB,iCAAyB,CAAC,aAAa,EACvC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,qBAAa,CAAC,MAAM,CAAC,CACvC,CAAA;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAChC,cAAsB,EACtB,cAAsB,EACtB,sBAAoD,EACpD,YAAgC;IAGhC,MAAM,wBAAwB,GAAG,IAAA,uCAAyB,EACxD,GAAG,sBAAsB,CAC1B,CAAA;IAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,qBAAa,EAC1C,cAAc,EACd,cAAc,CACf,CAAA;IAED,IAAI,WAA+B,CAAA;IAEnC,IAAI,gBAAgB,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,gEAAgE;QAChE,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,mDAAmD;QACnD,MAAM,cAAc,GAClB,gBAAgB,CAAC,YAAY,IAAK,EAAyB,CAAA;QAE7D,+FAA+F;QAC/F,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,OAAO,CAAA;QACrD,CAAC;QAED,wCAAwC;QACxC,WAAW,GAAG,IAAA,iBAAS,EAAC,cAAc,EAAE,YAAY,CAAuB,CAAA;IAC7E,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,WAAW,GAAG,gBAAgB,CAAC,YAAa,CAAA;IAC9C,CAAC;IAED,WAAW,CAAC,mBAAmB,CAAC,GAAG,wBAAwB,CAAA;IAE3D,uCAAuC;IACvC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAA,sBAAc,EACrC,sBAAsB,EACtB,WAAW,CAAC,YAAY,CACzB,CAAA;IACD,sEAAsE;IACtE,OAAO,qBAAa,CAAC,UAAU,CAAC;QAC9B,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,cAAc;KACxB,CAAuB,CAAA;AAC1B,CAAC"}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APICallMeta } from
|
|
1
|
+
import { APICallMeta } from '@etohq/types';
|
|
2
2
|
import { EtoRequestContext, EtoStoreRequestContext, EtoSession } from "../http";
|
|
3
3
|
export declare function reqContext(req: APICallMeta): EtoRequestContext;
|
|
4
4
|
export declare function storeReqContext(req: APICallMeta): EtoStoreRequestContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAEL,iBAAiB,EACjB,sBAAsB,EAEtB,UAAU,EACX,MAAM,SAAS,CAAA;AAEhB,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CA8B9D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,sBAAsB,CAWxE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAQxD"}
|
package/dist/context/index.js
CHANGED
|
@@ -9,7 +9,10 @@ function reqContext(req) {
|
|
|
9
9
|
const requestContext = req.middlewareData?.requestContext;
|
|
10
10
|
const listConfig = req.middlewareData?.listConfig ?? {};
|
|
11
11
|
const retrieveConfig = req.middlewareData?.retrieveConfig ?? {};
|
|
12
|
-
const queryConfig = req.middlewareData?.queryConfig ?? {
|
|
12
|
+
const queryConfig = req.middlewareData?.queryConfig ?? {
|
|
13
|
+
fields: [],
|
|
14
|
+
pagination: { skip: 0, take: 100 }
|
|
15
|
+
};
|
|
13
16
|
const allowedProperties = req.middlewareData?.allowedProperties ?? [];
|
|
14
17
|
const filterableFields = req.middlewareData?.filterableFields ?? {};
|
|
15
18
|
const errors = req.middlewareData?.errors ?? [];
|
|
@@ -40,11 +43,11 @@ function storeReqContext(req) {
|
|
|
40
43
|
};
|
|
41
44
|
}
|
|
42
45
|
function authContext(req) {
|
|
46
|
+
const data = reqContext(req);
|
|
43
47
|
const authContext = req.middlewareData?.authContext;
|
|
44
|
-
const scope = req.middlewareData?.scope;
|
|
45
48
|
return {
|
|
49
|
+
...data,
|
|
46
50
|
authContext,
|
|
47
|
-
scope,
|
|
48
51
|
};
|
|
49
52
|
}
|
|
50
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":";;AAUA,gCA8BC;AAED,0CAWC;AAED,kCAQC;AArDD,SAAgB,UAAU,CAAC,GAAgB;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,EAAE,KAAqB,CAAA;IACvD,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,SAAmB,CAAA;IACzD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE,cAE1C,CAAA;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,EAAE,UAAU,IAAI,EAAE,CAAA;IACvD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE,cAAc,IAAI,EAAE,CAAA;IAC/D,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,WAAW,IAAI;QACrD,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;KACnC,CAAA;IACD,MAAM,iBAAiB,GAAG,GAAG,CAAC,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAA;IACrE,MAAM,gBAAgB,GAAG,GAAG,CAAC,cAAc,EAAE,gBAAgB,IAAI,EAAE,CAAA;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAA;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAA;IAE/C,OAAO;QACL,GAAG;QACH,KAAK;QACL,MAAM,EAAE,gEAAgE;QACxE,SAAS;QACT,cAAc;QACd,UAAU;QACV,cAAc;QACd,WAAW;QACX,iBAAiB;QACjB,gBAAgB;QAChB,MAAM;KACP,CAAA;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,GAAgB;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAA0B,CAAA;IACvE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc;QACnD,EAAE,qBAA8C,CAAA;IAElD,OAAO;QACL,GAAG,IAAI;QACP,WAAW;QACX,qBAAqB;KACtB,CAAA;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,GAAgB;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,WAA0B,CAAA;IAElE,OAAO;QACL,GAAG,IAAI;QACP,WAAW;KACZ,CAAA;AACH,CAAC"}
|
|
@@ -2,5 +2,5 @@ import { ModulesSdkUtils } from "@etohq/utils";
|
|
|
2
2
|
/**
|
|
3
3
|
* Initialize a knex connection that can then be shared to any resources if needed
|
|
4
4
|
*/
|
|
5
|
-
export declare function pgConnectionLoader(): ReturnType<typeof ModulesSdkUtils.createPgConnection
|
|
5
|
+
export declare function pgConnectionLoader(): Promise<ReturnType<typeof ModulesSdkUtils.createPgConnection>>;
|
|
6
6
|
//# sourceMappingURL=pg-connection-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-connection-loader.d.ts","sourceRoot":"","sources":["../../src/database/pg-connection-loader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"pg-connection-loader.d.ts","sourceRoot":"","sources":["../../src/database/pg-connection-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAGhB,MAAM,cAAc,CAAA;AAMrB;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CACjD,UAAU,CAAC,OAAO,eAAe,CAAC,kBAAkB,CAAC,CACtD,CAoEA"}
|
|
@@ -3,23 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.pgConnectionLoader = pgConnectionLoader;
|
|
4
4
|
const utils_1 = require("@etohq/utils");
|
|
5
5
|
const awilix_1 = require("awilix");
|
|
6
|
-
const container_1 = require("../container");
|
|
7
6
|
const config_1 = require("../config");
|
|
7
|
+
const container_1 = require("../container");
|
|
8
|
+
const logger_1 = require("../logger");
|
|
8
9
|
/**
|
|
9
10
|
* Initialize a knex connection that can then be shared to any resources if needed
|
|
10
11
|
*/
|
|
11
|
-
function pgConnectionLoader() {
|
|
12
|
+
async function pgConnectionLoader() {
|
|
12
13
|
if (container_1.container.hasRegistration(utils_1.ContainerRegistrationKeys.PG_CONNECTION)) {
|
|
13
14
|
return container_1.container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
14
15
|
}
|
|
15
16
|
const configModule = config_1.configManager.config;
|
|
16
17
|
// Share a knex connection to be consumed by the shared modules
|
|
17
18
|
const connectionString = configModule.projectConfig.databaseUrl;
|
|
18
|
-
const driverOptions =
|
|
19
|
+
const driverOptions = {
|
|
20
|
+
...(configModule.projectConfig.databaseDriverOptions || {}),
|
|
21
|
+
};
|
|
19
22
|
const schema = configModule.projectConfig.databaseSchema || "public";
|
|
20
23
|
const idleTimeoutMillis = driverOptions.pool?.idleTimeoutMillis ?? undefined; // prevent null to be passed
|
|
21
24
|
const poolMin = driverOptions.pool?.min ?? 2;
|
|
22
25
|
const poolMax = driverOptions.pool?.max;
|
|
26
|
+
const reapIntervalMillis = driverOptions.pool?.reapIntervalMillis ?? undefined;
|
|
27
|
+
const createRetryIntervalMillis = driverOptions.pool?.createRetryIntervalMillis ?? undefined;
|
|
23
28
|
delete driverOptions.pool;
|
|
24
29
|
const pgConnection = utils_1.ModulesSdkUtils.createPgConnection({
|
|
25
30
|
clientUrl: connectionString,
|
|
@@ -29,6 +34,23 @@ function pgConnectionLoader() {
|
|
|
29
34
|
min: poolMin,
|
|
30
35
|
max: poolMax,
|
|
31
36
|
idleTimeoutMillis,
|
|
37
|
+
reapIntervalMillis,
|
|
38
|
+
createRetryIntervalMillis,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
const maxRetries = process.env.__ETO_DB_CONNECTION_MAX_RETRIES
|
|
42
|
+
? parseInt(process.env.__ETO_DB_CONNECTION_MAX_RETRIES)
|
|
43
|
+
: 5;
|
|
44
|
+
const retryDelay = process.env.__ETO_DB_CONNECTION_RETRY_DELAY
|
|
45
|
+
? parseInt(process.env.__ETO_DB_CONNECTION_RETRY_DELAY)
|
|
46
|
+
: 1000;
|
|
47
|
+
await (0, utils_1.retryExecution)(async () => {
|
|
48
|
+
await pgConnection.raw("SELECT 1");
|
|
49
|
+
}, {
|
|
50
|
+
maxRetries,
|
|
51
|
+
retryDelay,
|
|
52
|
+
onRetry: (error) => {
|
|
53
|
+
logger_1.logger.warn(`Pg connection failed to connect to the database. Retrying...\n${(0, utils_1.stringifyCircular)(error)}`);
|
|
32
54
|
},
|
|
33
55
|
});
|
|
34
56
|
container_1.container.register(utils_1.ContainerRegistrationKeys.PG_CONNECTION, (0, awilix_1.asValue)(pgConnection));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-connection-loader.js","sourceRoot":"","sources":["../../src/database/pg-connection-loader.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pg-connection-loader.js","sourceRoot":"","sources":["../../src/database/pg-connection-loader.ts"],"names":[],"mappings":";;AAcA,gDAsEC;AApFD,wCAKqB;AACrB,mCAAgC;AAChC,sCAAyC;AACzC,4CAAwC;AACxC,sCAAkC;AAElC;;GAEG;AACI,KAAK,UAAU,kBAAkB;IAGtC,IAAI,qBAAS,CAAC,eAAe,CAAC,iCAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QACvE,OAAO,qBAAS,CAAC,OAAO,CACtB,iCAAyB,CAAC,aAAa,CAC4B,CAAA;IACvE,CAAC;IAED,MAAM,YAAY,GAAG,sBAAa,CAAC,MAAM,CAAA;IAEzC,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,WAAW,CAAA;IAC/D,MAAM,aAAa,GAAQ;QACzB,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,IAAI,EAAE,CAAC;KAC5D,CAAA;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,cAAc,IAAI,QAAQ,CAAA;IACpE,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,EAAE,iBAAiB,IAAI,SAAS,CAAA,CAAC,4BAA4B;IACzG,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAA;IACvC,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,EAAE,kBAAkB,IAAI,SAAS,CAAA;IAC9E,MAAM,yBAAyB,GAC7B,aAAa,CAAC,IAAI,EAAE,yBAAyB,IAAI,SAAS,CAAA;IAE5D,OAAO,aAAa,CAAC,IAAI,CAAA;IAEzB,MAAM,YAAY,GAAG,uBAAe,CAAC,kBAAkB,CAAC;QACtD,SAAS,EAAE,gBAAgB;QAC3B,MAAM;QACN,aAAa;QACb,IAAI,EAAE;YACJ,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO;YACZ,iBAAiB;YACjB,kBAAkB;YAClB,yBAAyB;SAC1B;KACF,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAC5D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;QACvD,CAAC,CAAC,CAAC,CAAA;IAEL,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAC5D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;QACvD,CAAC,CAAC,IAAI,CAAA;IAER,MAAM,IAAA,sBAAc,EAClB,KAAK,IAAI,EAAE;QACT,MAAM,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC,EACD;QACE,UAAU;QACV,UAAU;QACV,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,eAAM,CAAC,IAAI,CACT,iEAAiE,IAAA,yBAAiB,EAChF,KAAK,CACN,EAAE,CACJ,CAAA;QACH,CAAC;KACF,CACF,CAAA;IAED,qBAAS,CAAC,QAAQ,CAChB,iCAAyB,CAAC,aAAa,EACvC,IAAA,gBAAO,EAAC,YAAY,CAAC,CACtB,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC"}
|
package/dist/eto-app-loader.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EtoAppOutput, RegisterModuleJoinerConfig } from "@etohq/modules-sdk";
|
|
2
|
-
import { CommonTypes, DefaultModulesDefinition, ILinkMigrationsPlanner, InternalModuleDeclaration, ModuleServiceInitializeOptions } from "@etohq/types";
|
|
2
|
+
import { CommonTypes, DefaultModulesDefinition, ILinkMigrationsPlanner, InternalModuleDeclaration, ModuleServiceInitializeOptions, ModulesSdkTypes } from "@etohq/types";
|
|
3
3
|
import type { Knex } from "@mikro-orm/knex";
|
|
4
4
|
import { EtoContainer } from "./container";
|
|
5
5
|
export declare class EtoAppLoader<TKey extends string = string> {
|
|
@@ -11,7 +11,7 @@ export declare class EtoAppLoader<TKey extends string = string> {
|
|
|
11
11
|
customLinksModules?: RegisterModuleJoinerConfig | RegisterModuleJoinerConfig[];
|
|
12
12
|
});
|
|
13
13
|
protected mergeDefaultModules(modulesConfig: CommonTypes.ConfigModule["modules"]): {
|
|
14
|
-
[x: string]: boolean | Partial<InternalModuleDeclaration |
|
|
14
|
+
[x: string]: boolean | Partial<InternalModuleDeclaration | ModulesSdkTypes.ExternalModuleDeclaration>;
|
|
15
15
|
};
|
|
16
16
|
protected prepareSharedResourcesAndDeps(): {
|
|
17
17
|
sharedResourcesConfig: ModuleServiceInitializeOptions;
|
|
@@ -28,12 +28,11 @@ export declare class EtoAppLoader<TKey extends string = string> {
|
|
|
28
28
|
* @param action
|
|
29
29
|
*/
|
|
30
30
|
runModulesMigrations({ moduleNames, action, }?: {
|
|
31
|
-
moduleNames?:
|
|
32
|
-
action: "run";
|
|
33
|
-
} | {
|
|
34
|
-
moduleNames: string[];
|
|
35
|
-
action: "revert" | "generate";
|
|
31
|
+
moduleNames?: string[];
|
|
32
|
+
action: "run" | "revert" | "generate";
|
|
36
33
|
}): Promise<void>;
|
|
34
|
+
private filterModulesByServiceDatabase;
|
|
35
|
+
private isSameDatabase;
|
|
37
36
|
/**
|
|
38
37
|
* Return an instance of the link module migration planner.
|
|
39
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eto-app-loader.d.ts","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,WAAW,EAEX,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EAGzB,8BAA8B,
|
|
1
|
+
{"version":3,"file":"eto-app-loader.d.ts","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,WAAW,EAEX,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EAGzB,8BAA8B,EAC9B,eAAe,EAChB,MAAM,cAAc,CAAA;AASrB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAG3C,OAAO,EACL,YAAY,EAGb,MAAM,aAAa,CAAA;AAGpB,qBAAa,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;;gBA6BxC,EACV,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,kBAAkB,GACnB,EAAE;QACD,iBAAiB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAA;QACjD,UAAU,EAAE,GAAG,CAAA;QACf,SAAS,CAAC,EAAE,YAAY,CAAA;QACxB,kBAAkB,CAAC,EACf,0BAA0B,GAC1B,0BAA0B,EAAE,CAAA;KACjC;IAQD,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC;;;IAsEpD,SAAS,CAAC,6BAA6B;;;;;;;IAiCvC;;;;;;OAMG;IACG,oBAAoB,CACxB,EACE,WAAW,EACX,MAAc,GACf,GAAE;QACD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;QACtB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAA;KAGtC,GACA,OAAO,CAAC,IAAI,CAAC;IAoChB,OAAO,CAAC,8BAA8B;IA6CtC,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAgBjE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAevC;;;OAGG;IACG,IAAI,CAAC,MAAM;;KAAgC,GAAG,OAAO,CAAC,YAAY,CAAC;CAyE1E"}
|
package/dist/eto-app-loader.js
CHANGED
|
@@ -18,6 +18,7 @@ const utils_1 = require("@etohq/utils");
|
|
|
18
18
|
const awilix_1 = require("awilix");
|
|
19
19
|
const config_1 = require("./config");
|
|
20
20
|
const container_1 = require("./container");
|
|
21
|
+
const logger_1 = require("./logger");
|
|
21
22
|
class EtoAppLoader {
|
|
22
23
|
// TODO: Adjust all loaders to accept an optional container such that in test env it is possible if needed to provide a specific container otherwise use the main container
|
|
23
24
|
// Maybe also adjust the different places to resolve the config from the container instead of the configManager for the same reason
|
|
@@ -96,7 +97,7 @@ class EtoAppLoader {
|
|
|
96
97
|
// defaultModuleDeclaration: { scope: 'internal', resolve: [Object] },
|
|
97
98
|
// isRequired: true
|
|
98
99
|
// }
|
|
99
|
-
// }
|
|
100
|
+
// }
|
|
100
101
|
// todo normalize
|
|
101
102
|
// console.log(value, "from ETOAPPLOADER")
|
|
102
103
|
}
|
|
@@ -107,11 +108,18 @@ class EtoAppLoader {
|
|
|
107
108
|
[utils_1.ContainerRegistrationKeys.PG_CONNECTION]: __classPrivateFieldGet(this, _EtoAppLoader_container, "f").resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION),
|
|
108
109
|
[utils_1.ContainerRegistrationKeys.LOGGER]: __classPrivateFieldGet(this, _EtoAppLoader_container, "f").resolve(utils_1.ContainerRegistrationKeys.LOGGER),
|
|
109
110
|
};
|
|
111
|
+
const driverOptions = {
|
|
112
|
+
...(config_1.configManager.config.projectConfig.databaseDriverOptions ?? {}),
|
|
113
|
+
};
|
|
114
|
+
const pool = driverOptions.pool ?? {};
|
|
115
|
+
delete driverOptions.pool;
|
|
110
116
|
const sharedResourcesConfig = {
|
|
111
117
|
database: {
|
|
112
|
-
clientUrl: injectedDependencies[utils_1.ContainerRegistrationKeys.PG_CONNECTION]?.client
|
|
118
|
+
clientUrl: injectedDependencies[utils_1.ContainerRegistrationKeys.PG_CONNECTION]?.client
|
|
119
|
+
?.config?.connection?.connectionString ??
|
|
113
120
|
config_1.configManager.config.projectConfig.databaseUrl,
|
|
114
121
|
driverOptions: config_1.configManager.config.projectConfig.databaseDriverOptions,
|
|
122
|
+
pool: pool,
|
|
115
123
|
debug: config_1.configManager.config.projectConfig.databaseLogging ?? false,
|
|
116
124
|
schema: config_1.configManager.config.projectConfig.databaseSchema,
|
|
117
125
|
database: config_1.configManager.config.projectConfig.databaseName,
|
|
@@ -131,12 +139,18 @@ class EtoAppLoader {
|
|
|
131
139
|
}) {
|
|
132
140
|
const configModules = this.mergeDefaultModules(config_1.configManager.config.modules);
|
|
133
141
|
const { sharedResourcesConfig, injectedDependencies } = this.prepareSharedResourcesAndDeps();
|
|
142
|
+
const isServiceMode = !!config_1.configManager.config.projectConfig?.serviceMigrationsPath;
|
|
143
|
+
// Filter modules by main database if ServerMode is enabled
|
|
144
|
+
const filteredModules = isServiceMode
|
|
145
|
+
? this.filterModulesByServiceDatabase(configModules, sharedResourcesConfig)
|
|
146
|
+
: configModules;
|
|
134
147
|
const migrationOptions = {
|
|
135
|
-
modulesConfig:
|
|
148
|
+
modulesConfig: filteredModules,
|
|
136
149
|
sharedContainer: __classPrivateFieldGet(this, _EtoAppLoader_container, "f"),
|
|
137
150
|
linkModules: __classPrivateFieldGet(this, _EtoAppLoader_customLinksModules, "f"),
|
|
138
151
|
sharedResourcesConfig,
|
|
139
152
|
injectedDependencies,
|
|
153
|
+
migrationOnly: true,
|
|
140
154
|
};
|
|
141
155
|
if (action === "revert") {
|
|
142
156
|
await (0, modules_sdk_1.EtoAppMigrateDown)(moduleNames, migrationOptions);
|
|
@@ -145,8 +159,44 @@ class EtoAppLoader {
|
|
|
145
159
|
await (0, modules_sdk_1.EtoAppMigrateUp)(migrationOptions);
|
|
146
160
|
}
|
|
147
161
|
else {
|
|
148
|
-
await (0, modules_sdk_1.EtoAppMigrateGenerate)(
|
|
162
|
+
await (0, modules_sdk_1.EtoAppMigrateGenerate)(Object.keys(filteredModules), migrationOptions);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
filterModulesByServiceDatabase(configModules, sharedConfig) {
|
|
166
|
+
if (!sharedConfig.database.clientUrl) {
|
|
167
|
+
logger_1.logger.debug("no project databaseUrl found, no modules is prepared for service migration");
|
|
168
|
+
return {};
|
|
169
|
+
}
|
|
170
|
+
const filteredModules = {};
|
|
171
|
+
if (!configModules) {
|
|
172
|
+
return filteredModules;
|
|
173
|
+
}
|
|
174
|
+
for (const [moduleKey, moduleConfig] of Object.entries(configModules)) {
|
|
175
|
+
if (moduleConfig) {
|
|
176
|
+
if (typeof moduleConfig === "object" &&
|
|
177
|
+
"options" in moduleConfig) {
|
|
178
|
+
const moduleOptions = moduleConfig.options;
|
|
179
|
+
if (!moduleOptions ||
|
|
180
|
+
this.isSameDatabase(moduleOptions, sharedConfig)) {
|
|
181
|
+
filteredModules[moduleKey] = moduleConfig;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// If there are no options, or it's not an object (i.e. 'true'), include it.
|
|
186
|
+
filteredModules[moduleKey] = moduleConfig;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
console.log("before and after - before ", configModules, "after", filteredModules);
|
|
191
|
+
return filteredModules;
|
|
192
|
+
}
|
|
193
|
+
isSameDatabase(db1, db2) {
|
|
194
|
+
if (db1?.database?.clientUrl && db2?.database?.clientUrl) {
|
|
195
|
+
return db1.database?.clientUrl === db2?.database?.clientUrl;
|
|
149
196
|
}
|
|
197
|
+
return (db1?.database?.host === db2?.database?.host &&
|
|
198
|
+
db1?.database?.port === db2?.database?.port &&
|
|
199
|
+
db1?.database === db2?.database);
|
|
150
200
|
}
|
|
151
201
|
/**
|
|
152
202
|
* Return an instance of the link module migration planner.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eto-app-loader.js","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAQ2B;
|
|
1
|
+
{"version":3,"file":"eto-app-loader.js","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/eto.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { ConfigModule,
|
|
1
|
+
import { ConfigModule, InputConfig, LoadedModule, ModulesDefinitionInput } from "@etohq/types";
|
|
2
2
|
import { GraphQLSchema } from "@etohq/utils";
|
|
3
3
|
import { EtoContainer } from "./container";
|
|
4
4
|
export interface EtoConfig<TKey extends string = string> {
|
|
5
5
|
directory: string;
|
|
6
6
|
inlineConfig?: ConfigModule<TKey>;
|
|
7
7
|
}
|
|
8
|
-
export interface Eto {
|
|
8
|
+
export interface Eto<TKey extends string = string> {
|
|
9
9
|
directory: string;
|
|
10
10
|
container: EtoContainer;
|
|
11
11
|
modules: Record<string, LoadedModule | LoadedModule[]>;
|
|
12
12
|
shutdown: () => Promise<void>;
|
|
13
13
|
gqlSchema?: GraphQLSchema;
|
|
14
|
+
inputConfig: InputConfig<TKey>;
|
|
15
|
+
modulesDefinitionInput: ModulesDefinitionInput<TKey>;
|
|
16
|
+
linkModule: any;
|
|
17
|
+
isExecMode: boolean;
|
|
14
18
|
}
|
|
15
|
-
export type EtoLoader<TKey extends string> =
|
|
16
|
-
loadEto: (inlineConfig?: ConfigModule<TKey>) => Promise<Eto>;
|
|
17
|
-
modulesDefinition: DefaultModulesDefinition<TKey>;
|
|
18
|
-
defaultModules: InputConfigModules<TKey>;
|
|
19
|
-
};
|
|
19
|
+
export type EtoLoader<TKey extends string> = (inlineConfig: InputConfig<TKey>) => Promise<Eto>;
|
|
20
20
|
export interface EtoOptions<TKey extends string = string> {
|
|
21
21
|
loader: EtoLoader<TKey>;
|
|
22
22
|
generateTypes?: boolean;
|
package/dist/eto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eto.d.ts","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"eto.d.ts","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,sBAAsB,EACvB,MAAM,cAAc,CAAA;AACrB,OAAO,EAIL,aAAa,EACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC,CAAA;IACtD,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,sBAAsB,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACpD,UAAU,EAAE,GAAG,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI,CAC3C,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,KAC5B,OAAO,CAAC,GAAG,CAAC,CAAA;AAEjB,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACtD,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CACvC;AAED,qBAAa,UAAU,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,YAAY,CAA2B;gBAEnC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;IAMrC,OAAO,CAAC,YAAY;IAgFP,KAAK,CAChB,YAAY,GAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAM,GAC5C,OAAO,CAAC,GAAG,CAAC;YA8BD,uBAAuB;IAwBrC,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,yBAAyB;CAOlC;AAED,eAAe,GAAG,CAAA"}
|
package/dist/eto.js
CHANGED
|
@@ -75,27 +75,18 @@ class EtoBuilder {
|
|
|
75
75
|
const featureFlags = {
|
|
76
76
|
...config.featureFlags,
|
|
77
77
|
};
|
|
78
|
-
const moduleMap = (0, utils_1.createModuleMap)(this._loaders.defaultModules);
|
|
79
|
-
const reversedModuleMap = (0, utils_1.createReversedModuleMap)(moduleMap);
|
|
80
78
|
return {
|
|
81
79
|
projectConfig,
|
|
82
80
|
featureFlags,
|
|
83
81
|
plugins: config.plugins || [],
|
|
84
82
|
admin,
|
|
85
|
-
|
|
86
|
-
? (0, utils_1.transformModules)({
|
|
87
|
-
modules: config.modules,
|
|
88
|
-
moduleMap,
|
|
89
|
-
reversedModuleMap,
|
|
90
|
-
})
|
|
91
|
-
: undefined,
|
|
92
|
-
modulesDefinition: this._loaders.modulesDefinition
|
|
83
|
+
inputModules: config.modules,
|
|
93
84
|
};
|
|
94
85
|
}
|
|
95
86
|
async build(inlineConfig = {}) {
|
|
96
|
-
const setupEto = async (loader, shouldGenerateTypes,
|
|
87
|
+
const setupEto = async (loader, shouldGenerateTypes, inputConfig) => {
|
|
97
88
|
try {
|
|
98
|
-
const loaded = await loader
|
|
89
|
+
const loaded = await loader(inputConfig);
|
|
99
90
|
if (shouldGenerateTypes) {
|
|
100
91
|
await this.generateTypeDefinitions(loaded, loaded.directory);
|
|
101
92
|
}
|
|
@@ -108,7 +99,7 @@ class EtoBuilder {
|
|
|
108
99
|
process.exit(1);
|
|
109
100
|
}
|
|
110
101
|
};
|
|
111
|
-
return setupEto(this._loaders, this._generateTypes,
|
|
102
|
+
return setupEto(this._loaders, this._generateTypes, this.defineConfig(inlineConfig));
|
|
112
103
|
}
|
|
113
104
|
async generateTypeDefinitions(eto, baseDir) {
|
|
114
105
|
const typesDirectory = path_1.default.join(baseDir, ".eto/types");
|
package/dist/eto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eto.js","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;
|
|
1
|
+
{"version":3,"file":"eto.js","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-default-filters.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"apply-default-filters.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIlE,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,cAAc,EAAE,OAAO,IAET,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,qDAgCjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-default-filters.js","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"apply-default-filters.js","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":";;AAKA,kDAmCC;AAxCD,wCAAkD;AAElD,2CAA0C;AAG1C,SAAgB,mBAAmB,CACjC,cAAuB;IAEvB,OAAO,KAAK,EAAE,GAAyB,EAAE,IAAuB,EAAE,EAAE;QAClE,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAEnE,MAAM,MAAM,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,WAA0B,CAAC,CAAA;YACzD,IAAI,YAAY,GAAG,WAAW,CAAA;YAE9B,0FAA0F;YAC1F,iEAAiE;YACjE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;gBACtC,yFAAyF;gBACzF,iGAAiG;gBACjG,kGAAkG;gBAClG,wDAAwD;gBACxD,YAAY,GAAG,WAAW,CACxB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAA;YACH,CAAC;YAED,8FAA8F;YAC9F,IAAI,IAAA,gBAAQ,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG;oBAClC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC1C,GAAG,YAAY;iBAChB,CAAA;YACH,CAAC;iBAAM,IAAI,IAAA,iBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,YAAY,CAAA;YAClD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAA;AACH,CAAC"}
|