@marsx-dev/launcher 0.0.20 → 0.0.22
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/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +2 -1
- package/dist/configuration.d.ts +1 -0
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +15 -3
- package/package.json +2 -2
- package/src/cli/init.ts +1 -0
- package/src/configuration.ts +19 -2
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAyDA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAyDA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,iBAyFpD"}
|
package/dist/cli/init.js
CHANGED
|
@@ -95,6 +95,7 @@ async function initProject(projectName) {
|
|
|
95
95
|
webRecentFilesTable: 'webRecentFiles',
|
|
96
96
|
webFilesBlob: 'web-files',
|
|
97
97
|
secret: (await (0, crypto_1.randomBytes)(32)).toString('hex'),
|
|
98
|
+
resetKey: (await (0, crypto_1.randomBytes)(32)).toString('hex'),
|
|
98
99
|
importProjects: [
|
|
99
100
|
{
|
|
100
101
|
name: 'marsx-core',
|
|
@@ -129,4 +130,4 @@ async function initProject(projectName) {
|
|
|
129
130
|
console.log(` - Start local server: ${chalk_1.default.underline('npm run start')}`);
|
|
130
131
|
}
|
|
131
132
|
exports.initProject = initProject;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsaURBQTBDO0FBQzFDLG1DQUFxQztBQUNyQyxnREFBd0I7QUFDeEIsb0RBQXNFO0FBQ3RFLGtEQUFtRTtBQUNuRSxrREFBNEM7QUFDNUMsbUNBQW1DO0FBQ25DLDJCQUFvQztBQUVwQyxNQUFNLFlBQVksR0FBRztJQUNuQixrQkFBa0I7SUFDbEIsU0FBUztJQUNULGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxjQUFjO0lBQ2QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRztJQUNsQixxQkFBcUI7SUFDckIsU0FBUztJQUNULE9BQU87SUFDUCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFFBQVE7SUFDUixVQUFVO0lBQ1YsUUFBUTtJQUNSLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsWUFBWTtJQUNaLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLGtDQUFrQztJQUNsQyxRQUFRO0lBQ1IsV0FBVztJQUNYLGNBQWM7SUFDZCxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixZQUFZO0NBQ2IsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUU1RCxLQUFLLFVBQVUsV0FBVyxDQUFDLFdBQW1CO0lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFdBQVcsS0FBSyxXQUFXLENB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
|
package/dist/configuration.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAiHzC,eAAO,MAAM,MAAM,QAAmB,CAAC;AAevC,eAAO,MAAM,0BAA0B;YAZW,MAAM;cAAY,MAAM;EAYd,CAAC"}
|
package/dist/configuration.js
CHANGED
|
@@ -34,6 +34,7 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
34
34
|
const path_1 = __importDefault(require("path"));
|
|
35
35
|
const yup = __importStar(require("yup"));
|
|
36
36
|
const yup_1 = require("yup");
|
|
37
|
+
const defaultResetKey = 'reset-app-key-123';
|
|
37
38
|
class ConfigError extends Error {
|
|
38
39
|
}
|
|
39
40
|
exports.ConfigError = ConfigError;
|
|
@@ -63,6 +64,7 @@ const ConfigSchema = yup.object().shape({
|
|
|
63
64
|
webFilesTable: yup.string().required(),
|
|
64
65
|
webRecentFilesTable: yup.string().required(),
|
|
65
66
|
webFilesBlob: yup.string().required(),
|
|
67
|
+
resetKey: yup.string().required(),
|
|
66
68
|
importProjects: yup.array().of(ImportProjectSchema).required(),
|
|
67
69
|
});
|
|
68
70
|
function ErrorThrowingConfig(errorMessage) {
|
|
@@ -81,7 +83,14 @@ function validateConfig() {
|
|
|
81
83
|
if (keys.length) {
|
|
82
84
|
console.log(chalk_1.default.yellow(`ENV variables "${keys.join('", "')}" would be used over config file`));
|
|
83
85
|
}
|
|
84
|
-
const configObject = {
|
|
86
|
+
const configObject = {
|
|
87
|
+
resetKey: defaultResetKey,
|
|
88
|
+
...config_1.default.util.toObject(),
|
|
89
|
+
...envConfigObject,
|
|
90
|
+
};
|
|
91
|
+
if (configObject.resetKey === defaultResetKey) {
|
|
92
|
+
console.log(chalk_1.default.red(`resetKey ENV variable require to be updated from default value to prevent unauthorized app resets`));
|
|
93
|
+
}
|
|
85
94
|
try {
|
|
86
95
|
return ConfigSchema.validateSync(configObject, { abortEarly: false, stripUnknown: false });
|
|
87
96
|
}
|
|
@@ -109,7 +118,10 @@ function getKeyValues(prefix, omitPrefix = true) {
|
|
|
109
118
|
function getConfigFromEnv() {
|
|
110
119
|
let envConfigObject = {};
|
|
111
120
|
// cleanup
|
|
112
|
-
const env = {
|
|
121
|
+
const env = {
|
|
122
|
+
...process.env,
|
|
123
|
+
...getKeyValues('APPSETTINGS_'),
|
|
124
|
+
};
|
|
113
125
|
try {
|
|
114
126
|
envConfigObject = ConfigSchema.cast(env, { stripUnknown: true });
|
|
115
127
|
}
|
|
@@ -135,4 +147,4 @@ function getEnvVarMapping() {
|
|
|
135
147
|
return result;
|
|
136
148
|
}
|
|
137
149
|
exports.CustomEnvironmentVariables = getEnvVarMapping();
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDbkQsb0RBQWtDO0FBQ2xDLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIseUNBQTJCO0FBQzNCLDZCQUFzQztBQUV0QyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQTJCNUMsTUFBYSxXQUFZLFNBQVEsS0FBSztDQUFHO0FBQXpDLGtDQUF5QztBQUV6QyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztJQUN0QyxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNsRCxTQUFTLEVBQUUsR0FBRztTQUNYLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marsx-dev/launcher",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"description": "MarsX launcher",
|
|
5
5
|
"author": "MarsX team <team@marsx.dev>",
|
|
6
6
|
"homepage": "https://marsx.dev/",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"types": "./dist/index.d.ts",
|
|
32
32
|
"scripts": {
|
|
33
33
|
"validate": "npm run validate:prettier && npm run validate:lint && npm run validate:tsc",
|
|
34
|
-
"validate:prettier": "prettier --ignore-path=.gitignore --
|
|
34
|
+
"validate:prettier": "prettier --ignore-path=.gitignore --check \"**/*.+(js|ts|json)\"",
|
|
35
35
|
"validate:lint": "eslint --ignore-path=.gitignore --ext=.js,.ts .",
|
|
36
36
|
"validate:tsc": "tsc --noEmit",
|
|
37
37
|
"fix": "npm run fix:prettier && npm run fix:list",
|
package/src/cli/init.ts
CHANGED
|
@@ -101,6 +101,7 @@ export async function initProject(projectName: string) {
|
|
|
101
101
|
webRecentFilesTable: 'webRecentFiles',
|
|
102
102
|
webFilesBlob: 'web-files',
|
|
103
103
|
secret: (await randomBytes(32)).toString('hex'),
|
|
104
|
+
resetKey: (await randomBytes(32)).toString('hex'),
|
|
104
105
|
importProjects: [
|
|
105
106
|
{
|
|
106
107
|
name: 'marsx-core',
|
package/src/configuration.ts
CHANGED
|
@@ -7,6 +7,8 @@ import path from 'path';
|
|
|
7
7
|
import * as yup from 'yup';
|
|
8
8
|
import { ValidationError } from 'yup';
|
|
9
9
|
|
|
10
|
+
const defaultResetKey = 'reset-app-key-123';
|
|
11
|
+
|
|
10
12
|
export interface ImportProjectConfig {
|
|
11
13
|
name: string;
|
|
12
14
|
url: string;
|
|
@@ -27,6 +29,7 @@ export interface Config {
|
|
|
27
29
|
secret: string;
|
|
28
30
|
webFilesTable: string;
|
|
29
31
|
webRecentFilesTable: string;
|
|
32
|
+
resetKey: string;
|
|
30
33
|
webFilesBlob: string;
|
|
31
34
|
importProjects: ImportProjectConfig[];
|
|
32
35
|
}
|
|
@@ -60,6 +63,7 @@ const ConfigSchema = yup.object().shape({
|
|
|
60
63
|
webFilesTable: yup.string().required(),
|
|
61
64
|
webRecentFilesTable: yup.string().required(),
|
|
62
65
|
webFilesBlob: yup.string().required(),
|
|
66
|
+
resetKey: yup.string().required(),
|
|
63
67
|
importProjects: yup.array().of(ImportProjectSchema).required(),
|
|
64
68
|
});
|
|
65
69
|
|
|
@@ -82,7 +86,16 @@ function validateConfig(): Config {
|
|
|
82
86
|
console.log(chalk.yellow(`ENV variables "${keys.join('", "')}" would be used over config file`));
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
const configObject = {
|
|
89
|
+
const configObject = {
|
|
90
|
+
resetKey: defaultResetKey,
|
|
91
|
+
...configModule.util.toObject(),
|
|
92
|
+
...envConfigObject,
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
if (configObject.resetKey === defaultResetKey) {
|
|
96
|
+
console.log(chalk.red(`resetKey ENV variable require to be updated from default value to prevent unauthorized app resets`));
|
|
97
|
+
}
|
|
98
|
+
|
|
86
99
|
try {
|
|
87
100
|
return ConfigSchema.validateSync(configObject, { abortEarly: false, stripUnknown: false });
|
|
88
101
|
} catch (e) {
|
|
@@ -114,7 +127,11 @@ function getConfigFromEnv(): Partial<Config> {
|
|
|
114
127
|
let envConfigObject: Partial<Config> = {};
|
|
115
128
|
|
|
116
129
|
// cleanup
|
|
117
|
-
const env = {
|
|
130
|
+
const env = {
|
|
131
|
+
...process.env,
|
|
132
|
+
...getKeyValues('APPSETTINGS_'),
|
|
133
|
+
};
|
|
134
|
+
|
|
118
135
|
try {
|
|
119
136
|
envConfigObject = ConfigSchema.cast(env, { stripUnknown: true }) as Partial<Config>;
|
|
120
137
|
} catch (err) {
|