@marsx-dev/launcher 0.0.3 → 0.0.4
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/index.d.ts +4 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +2 -1
- package/dist/cli/migrate.d.ts +2 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +1 -0
- package/dist/cli/start.d.ts +3 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +1 -0
- package/dist/configuration.d.ts +24 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/configuration.js +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -5
- package/dist/launcher.d.ts +2 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +1 -0
- package/dist/loader.d.ts +3 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +1 -0
- package/dist/utils/compile.d.ts +9 -0
- package/dist/utils/compile.d.ts.map +1 -0
- package/dist/utils/compile.js +1 -0
- package/dist/utils/sfc.d.ts +55 -0
- package/dist/utils/sfc.d.ts.map +1 -0
- package/dist/utils/sfc.js +1 -0
- package/dist/utils/utils.d.ts +16 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +1 -0
- package/dist/utils/v3.d.ts +12 -0
- package/dist/utils/v3.d.ts.map +1 -0
- package/dist/utils/v3.js +1 -0
- package/package.json +2 -1
- package/src/cli/index.ts +37 -0
- package/src/cli/init.ts +141 -0
- package/src/cli/migrate.ts +23 -0
- package/src/cli/start.ts +34 -0
- package/src/configuration.ts +53 -0
- package/src/index.ts +5 -0
- package/src/launcher.ts +38 -0
- package/src/loader.ts +65 -0
- package/src/utils/compile.ts +58 -0
- package/src/utils/sfc.ts +178 -0
- package/src/utils/utils.ts +72 -0
- package/src/utils/v3.ts +105 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAQA,qBAAa,QAAS,SAAQ,KAAK;CAAG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -38,3 +38,4 @@ async function main() {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
main();
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxrREFBMEI7QUFDMUIseUNBQW9DO0FBQ3BDLGlDQUFxQztBQUNyQyx1Q0FBMEM7QUFDMUMsbUNBQWdDO0FBRWhDLE1BQWEsUUFBUyxTQUFRLEtBQUs7Q0FBRztBQUF0Qyw0QkFBc0M7QUFFdEMsS0FBSyxVQUFVLElBQUk7SUFDakIsSUFBSTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFDO1FBRTlCLDhEQUE4RDtRQUM5RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0UsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBSyxDQUFDLENBQUM7UUFDOUYsT0FBTzthQUNKLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQzthQUM5QixXQUFXLENBQUMscUZBQXFGLENBQUM7YUFDbEcsTUFBTSxDQUFDLGtCQUFXLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBYSxDQUFDLENBQUM7UUFFL0YsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7S0FDNUI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLElBQUksQ0FBQyxZQUFZLFFBQVEsRUFBRTtZQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAkEA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,iBA0EpD"}
|
package/dist/cli/init.js
CHANGED
|
@@ -107,7 +107,7 @@ async function initProject(projectName) {
|
|
|
107
107
|
],
|
|
108
108
|
};
|
|
109
109
|
await (0, utils_1.writeFileMakeDir)(path_1.default.join(projectDir, 'config', 'default.json'), JSON.stringify(config, null, 2));
|
|
110
|
-
await (0, utils_1.writeFileMakeDir)(path_1.default.join(projectDir, '.gitignore'), 'node_modules\ndist');
|
|
110
|
+
await (0, utils_1.writeFileMakeDir)(path_1.default.join(projectDir, '.gitignore'), 'node_modules\ndist\n.cache\n');
|
|
111
111
|
await (0, utils_1.writeFileMakeDir)(path_1.default.join(projectDir, 'blocks', 'Booter.service.vue'), DEMO_BOOTER);
|
|
112
112
|
function run(...args) {
|
|
113
113
|
const cmd = args[0];
|
|
@@ -126,3 +126,4 @@ async function initProject(projectName) {
|
|
|
126
126
|
console.log(chalk_1.default.dim(`\nInside that directory, you can start MarsX with\n\n cd ${projectName}\n npm run start\n`));
|
|
127
127
|
}
|
|
128
128
|
exports.initProject = initProject;
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsaURBQTBDO0FBQzFDLG1DQUFxQztBQUNyQyxnREFBd0I7QUFFeEIsMENBQXVFO0FBQ3ZFLG1DQUFtQztBQUVuQyxNQUFNLFlBQVksR0FBRztJQUNuQixrQkFBa0I7SUFDbEIsU0FBUztJQUNULGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxjQUFjO0lBQ2QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRztJQUNsQixxQkFBcUI7SUFDckIsU0FBUztJQUNULE9BQU87SUFDUCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFFBQVE7SUFDUixVQUFVO0lBQ1YsUUFBUTtJQUNSLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsWUFBWTtJQUNaLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLGtDQUFrQztJQUNsQyxRQUFRO0lBQ1IsV0FBVztJQUNYLGNBQWM7SUFDZCxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixZQUFZO0NBQ2IsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFNLFdBQVcsR0FBRzs7Ozs7Ozs7O1VBU1YsQ0FBQztBQUVKLEtBQUssVUFBVSxXQUFXLENBQUMsV0FBbUI7SUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksV0FBVyxLQUFLLFdBQVcsQ0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,kBAclC"}
|
package/dist/cli/migrate.js
CHANGED
|
@@ -25,3 +25,4 @@ async function migrateV3ToV4() {
|
|
|
25
25
|
console.log(chalk_1.default.green('\nMigration complete successfully!'));
|
|
26
26
|
}
|
|
27
27
|
exports.migrateV3ToV4 = migrateV3ToV4;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvbWlncmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIscUNBQXNDO0FBQ3RDLGdEQUF3QjtBQUN4QixvREFBMEM7QUFDMUMsc0NBQTRDO0FBQzVDLDBDQUFrRDtBQUNsRCxvQ0FBMkQ7QUFFcEQsS0FBSyxVQUFVLGFBQWE7SUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxxQkFBVyxDQUFDLHNCQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxzQkFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBZSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsU0FBUyxDQUFDLE1BQU0sV0FBVyxDQUFDLENBQUM7SUFFdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUU7UUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBQSxrQkFBWSxFQUFDLElBQUEsbUJBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxjQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQzdDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBZEQsc0NBY0MifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,eAAO,MAAM,KAAK,qBA0BjB,CAAC"}
|
package/dist/cli/start.js
CHANGED
|
@@ -37,3 +37,4 @@ const start = async () => {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
exports.start = start;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3N0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtFQUEwQztBQUMxQyxvREFBMEM7QUFDMUMsMENBQTJDO0FBQzNDLDBDQUF3QztBQUUzQixRQUFBLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUU1QixNQUFNLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRTtJQUM5QixJQUFJLHNCQUFNLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixPQUFPLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4RCxNQUFNLElBQUEsdUJBQVksR0FBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0tBQ3JEO1NBQU07UUFDTCxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7WUFDMUIsSUFBQSxjQUFNLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLHVCQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsSCxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDbEIsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7Z0JBQy9DLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxHQUFHLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLElBQUksS0FBSyx5QkFBaUIsRUFBRTtvQkFDOUIsVUFBVSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDakM7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLGNBQWMsRUFBRSxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQyxDQUFDO0FBMUJXLFFBQUEsS0FBSyxTQTBCaEIifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ImportProjectConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
url: string;
|
|
4
|
+
api_key: string;
|
|
5
|
+
git_commit_ish?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare const config: {
|
|
8
|
+
production: boolean;
|
|
9
|
+
port: number;
|
|
10
|
+
blocksDir: string;
|
|
11
|
+
cacheDir: string;
|
|
12
|
+
mongoConn: string;
|
|
13
|
+
mongoDbName: string;
|
|
14
|
+
azureStorageConnection: string;
|
|
15
|
+
azureStorageAccountName: string;
|
|
16
|
+
azureStorageUrl: string;
|
|
17
|
+
secret: string;
|
|
18
|
+
webFilesTable: string;
|
|
19
|
+
webRecentFilesTable: string;
|
|
20
|
+
webFilesBlob: string;
|
|
21
|
+
importProjects: ImportProjectConfig[];
|
|
22
|
+
};
|
|
23
|
+
export declare type Configuration = typeof config;
|
|
24
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAKA,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;AAyCD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAAoB,CAAC;AACxC,oBAAY,aAAa,GAAG,OAAO,MAAM,CAAC"}
|
package/dist/configuration.js
CHANGED
|
@@ -42,3 +42,4 @@ function validatedConfig() {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
exports.config = validatedConfig();
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDbkQsb0RBQWtDO0FBQ2xDLGdEQUF3QjtBQUN4Qix5Q0FBdUM7QUFTdkMsTUFBTSxVQUFVLEdBQ2QsQ0FBSSxRQUFnQixFQUFFLEVBQUUsQ0FDeEIsQ0FBQyxVQUFrQixFQUFLLEVBQUU7SUFDeEIsTUFBTSxLQUFLLEdBQUcsZ0JBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsSUFBQSxjQUFNLEVBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDbEMsT0FBTyxLQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUosTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFTLFFBQVEsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBVSxTQUFTLENBQUMsQ0FBQztBQUNyRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQVMsUUFBUSxDQUFDLENBQUM7QUFFbEQsU0FBUyxlQUFlO0lBQ3RCLElBQUksZ0JBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JELE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBVyxFQUFFO1lBQzVCLEdBQUc7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7U0FDRixDQUFDLENBQUM7S0FDSjtJQUVELE9BQU87UUFDTCxVQUFVLEVBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUMxQixTQUFTLEVBQUUsY0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsUUFBUSxFQUFFLGNBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELFNBQVMsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ3BDLFdBQVcsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3hDLHNCQUFzQixFQUFFLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztRQUM5RCx1QkFBdUIsRUFBRSxZQUFZLENBQUMseUJBQXlCLENBQUM7UUFDaEUsZUFBZSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUNoRCxNQUFNLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM5QixhQUFhLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxtQkFBbUIsRUFBRSxZQUFZLENBQUMscUJBQXFCLENBQUM7UUFDeEQsWUFBWSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUM7UUFDMUMsY0FBYyxFQUFFLGdCQUFZLENBQUMsR0FBRyxDQUF3QixnQkFBZ0IsQ0FBQztLQUMxRSxDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFHLGVBQWUsRUFBRSxDQUFDIn0=
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { config, ImportProjectConfig, Configuration } from './configuration';
|
|
2
|
+
export { compileSfcSource, transpileTypescript } from './utils/compile';
|
|
3
|
+
export { parseSFC, serializeSfc, SfcBlock, SfcIdentity, SfcSource, parseSfcIdentity, serializeSfcIdentity } from './utils/sfc';
|
|
4
|
+
export * as utils from './utils/utils';
|
|
5
|
+
export { convertSfcToV3, convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,41 @@
|
|
|
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "
|
|
26
|
+
exports.convertV3ToSfc = exports.convertSfcToV3 = exports.utils = exports.serializeSfcIdentity = exports.parseSfcIdentity = exports.serializeSfc = exports.parseSFC = exports.transpileTypescript = exports.compileSfcSource = exports.config = void 0;
|
|
27
|
+
var configuration_1 = require("./configuration");
|
|
28
|
+
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return configuration_1.config; } });
|
|
29
|
+
var compile_1 = require("./utils/compile");
|
|
30
|
+
Object.defineProperty(exports, "compileSfcSource", { enumerable: true, get: function () { return compile_1.compileSfcSource; } });
|
|
31
|
+
Object.defineProperty(exports, "transpileTypescript", { enumerable: true, get: function () { return compile_1.transpileTypescript; } });
|
|
32
|
+
var sfc_1 = require("./utils/sfc");
|
|
33
|
+
Object.defineProperty(exports, "parseSFC", { enumerable: true, get: function () { return sfc_1.parseSFC; } });
|
|
34
|
+
Object.defineProperty(exports, "serializeSfc", { enumerable: true, get: function () { return sfc_1.serializeSfc; } });
|
|
35
|
+
Object.defineProperty(exports, "parseSfcIdentity", { enumerable: true, get: function () { return sfc_1.parseSfcIdentity; } });
|
|
36
|
+
Object.defineProperty(exports, "serializeSfcIdentity", { enumerable: true, get: function () { return sfc_1.serializeSfcIdentity; } });
|
|
37
|
+
exports.utils = __importStar(require("./utils/utils"));
|
|
38
|
+
var v3_1 = require("./utils/v3");
|
|
39
|
+
Object.defineProperty(exports, "convertSfcToV3", { enumerable: true, get: function () { return v3_1.convertSfcToV3; } });
|
|
40
|
+
Object.defineProperty(exports, "convertV3ToSfc", { enumerable: true, get: function () { return v3_1.convertV3ToSfc; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBNkU7QUFBcEUsdUdBQUEsTUFBTSxPQUFBO0FBQ2YsMkNBQXdFO0FBQS9ELDJHQUFBLGdCQUFnQixPQUFBO0FBQUUsOEdBQUEsbUJBQW1CLE9BQUE7QUFDOUMsbUNBQStIO0FBQXRILCtGQUFBLFFBQVEsT0FBQTtBQUFFLG1HQUFBLFlBQVksT0FBQTtBQUFvQyx1R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLDJHQUFBLG9CQUFvQixPQUFBO0FBQ3pHLHVEQUF1QztBQUN2QyxpQ0FBMEU7QUFBakUsb0dBQUEsY0FBYyxPQUFBO0FBQUUsb0dBQUEsY0FBYyxPQUFBIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAkBA,wBAAsB,YAAY,CAAC,eAAe,SAAW,iBAmB5D"}
|
package/dist/launcher.js
CHANGED
|
@@ -36,3 +36,4 @@ async function launchBooter(booterBlockName = 'Booter') {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
exports.launchBooter = launchBooter;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGF1bmNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXlDO0FBQ3pDLHFDQUF5QztBQUN6Qyw2Q0FBd0U7QUFDeEUscUNBQXFEO0FBQ3JELHlDQUF5RDtBQUN6RCxtQ0FBNEQ7QUFFNUQsTUFBTSxjQUFjLEdBQUc7SUFDckIsTUFBTSxFQUFOLHNCQUFNO0lBQ04sUUFBUSxFQUFSLGNBQVE7SUFDUixZQUFZLEVBQVosa0JBQVk7SUFDWixjQUFjLEVBQWQsbUJBQWM7SUFDZCxjQUFjLEVBQWQsbUJBQWM7SUFDZCxtQkFBbUIsRUFBbkIsNkJBQW1CO0lBQ25CLGdCQUFnQixFQUFoQiwwQkFBZ0I7SUFDaEIsZ0JBQWdCLEVBQWhCLHdCQUFnQjtDQUNqQixDQUFDO0FBRUssS0FBSyxVQUFVLFlBQVksQ0FBQyxlQUFlLEdBQUcsUUFBUTtJQUMzRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsc0JBQWEsR0FBRSxDQUFDO0lBRXhDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQztJQUNoRixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixlQUFlLDJEQUEyRCxDQUFDLENBQUM7SUFFOUcsdUZBQXVGO0lBQ3ZGLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELElBQUEsY0FBTSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFBLDBCQUFnQixFQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNoRixJQUFJO1FBQ0YsOERBQThEO1FBQzlELE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztLQUN0RTtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQztBQW5CRCxvQ0FtQkMifQ==
|
package/dist/loader.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqDjD,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIzD"}
|
package/dist/loader.js
CHANGED
|
@@ -60,3 +60,4 @@ async function loadAllBlocks() {
|
|
|
60
60
|
return [...externalBlocks, ...localBlocks];
|
|
61
61
|
}
|
|
62
62
|
exports.loadAllBlocks = loadAllBlocks;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDJCQUFvQztBQUNwQyxrRkFBOEM7QUFDOUMsb0RBQXVCO0FBQ3ZCLGdEQUF3QjtBQUN4QixtREFBOEQ7QUFDOUQscUNBQWlEO0FBQ2pELHlDQUE2RTtBQUM3RSxtQ0FBMEQ7QUFFMUQsS0FBSyxVQUFVLG9CQUFvQixDQUFDLGNBQW1DO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7SUFFeEcsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDN0QsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBYSxHQUFHLGNBQWMsQ0FBQyxHQUFHLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzRyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDcEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFpQixHQUFHLGNBQWMsQ0FBQyxHQUFHLDJCQUEyQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSxtQkFBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELEtBQUssVUFBVSxv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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SfcBlock } from './sfc';
|
|
2
|
+
export declare function transpileTypescript(sourceCode: string, options?: {
|
|
3
|
+
sourceRoot?: string;
|
|
4
|
+
originalFilePath?: string;
|
|
5
|
+
compiledFilePath?: string;
|
|
6
|
+
lineOffset?: number | undefined;
|
|
7
|
+
}): string;
|
|
8
|
+
export declare function compileSfcSource(sfcBlock: SfcBlock, sourceId: string): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/utils/compile.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjC,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,MAAM,CA0BR;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU5F"}
|
package/dist/utils/compile.js
CHANGED
|
@@ -47,3 +47,4 @@ async function compileSfcSource(sfcBlock, sourceId) {
|
|
|
47
47
|
return compiledFilePath;
|
|
48
48
|
}
|
|
49
49
|
exports.compileSfcSource = compileSfcSource;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGdEQUF3QjtBQUN4Qiw0REFBNEI7QUFDNUIsb0RBQTBDO0FBRTFDLG1DQUFtRDtBQUVuRCxTQUFTLG1CQUFtQixDQUFDLFNBQTJCO0lBQ3RELE9BQU8sdURBQXVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzVILENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsVUFBa0IsRUFDbEIsT0FLQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLGdCQUFnQixJQUFJLGNBQWMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxjQUFjLENBQUM7SUFFckUsSUFBSSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3ZCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUM7S0FDM0Q7SUFFRCxNQUFNLFVBQVUsR0FBRyxvQkFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUU7UUFDaEQsZUFBZSxFQUFFO1lBQ2YsTUFBTSxFQUFFLG9CQUFFLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDOUIsTUFBTSxFQUFFLG9CQUFFLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDOUIsZUFBZSxFQUFFLElBQUk7WUFDckIsU0FBUyxFQUFFLElBQUk7WUFDZix1QkFBdUI7WUFDdkIseUJBQXlCO1NBQzFCO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsSUFBQSxjQUFNLEVBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxTQUFTLENBQUMsVUFBVSxHQUFHLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ2pELFNBQVMsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7SUFDbEMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0FBQzdGLENBQUM7QUFsQ0Qsa0RBa0NDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0I7SUFDekUsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsVUFBVTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsaUJBQWlCLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUU3RyxNQUFNLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsc0JBQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQztJQUNoSCxNQUFNLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsc0JBQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBRS9ILE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBVkQsNENBVUMifQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const METADATA = "metadata";
|
|
3
|
+
export declare const SFC_EXT = "vue";
|
|
4
|
+
export declare type SfcIdentity = {
|
|
5
|
+
folder: string;
|
|
6
|
+
name: string;
|
|
7
|
+
blockTypeName: string;
|
|
8
|
+
ext: string;
|
|
9
|
+
fullName: string;
|
|
10
|
+
filePath: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function parseSfcIdentity(filePath: string): SfcIdentity;
|
|
13
|
+
export declare function serializeSfcIdentity(identity: SfcIdentity): string;
|
|
14
|
+
declare type EmptyObject = {
|
|
15
|
+
[K in string]: never;
|
|
16
|
+
};
|
|
17
|
+
declare const LANG_TAG_MAP: {
|
|
18
|
+
html: string;
|
|
19
|
+
pug: string;
|
|
20
|
+
js: string;
|
|
21
|
+
jsx: string;
|
|
22
|
+
ts: string;
|
|
23
|
+
tsx: string;
|
|
24
|
+
css: string;
|
|
25
|
+
scss: string;
|
|
26
|
+
less: string;
|
|
27
|
+
sass: string;
|
|
28
|
+
stylus: string;
|
|
29
|
+
text: string;
|
|
30
|
+
};
|
|
31
|
+
export declare type SfcSource = {
|
|
32
|
+
source: string;
|
|
33
|
+
lang: keyof typeof LANG_TAG_MAP | string | undefined;
|
|
34
|
+
lineOffset?: number;
|
|
35
|
+
};
|
|
36
|
+
export declare type SfcBlock = {
|
|
37
|
+
identity: SfcIdentity;
|
|
38
|
+
} & ({
|
|
39
|
+
metadata: Record<string, unknown>;
|
|
40
|
+
jsons: Record<string, unknown>;
|
|
41
|
+
sources: Record<string, SfcSource>;
|
|
42
|
+
rawContent: null;
|
|
43
|
+
} | {
|
|
44
|
+
metadata: EmptyObject;
|
|
45
|
+
jsons: EmptyObject;
|
|
46
|
+
sources: EmptyObject;
|
|
47
|
+
rawContent: Buffer;
|
|
48
|
+
});
|
|
49
|
+
export declare function parseSFC(filePath: string, content: Buffer): SfcBlock;
|
|
50
|
+
export declare function serializeSfc(block: SfcBlock): {
|
|
51
|
+
filePath: string;
|
|
52
|
+
content: Buffer;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=sfc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sfc.d.ts","sourceRoot":"","sources":["../../src/utils/sfc.ts"],"names":[],"mappings":";AAUA,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,OAAO,QAAQ,CAAC;AAG7B,oBAAY,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IAEZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAoB9D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAElE;AAED,aAAK,WAAW,GAAG;KAChB,CAAC,IAAI,MAAM,GAAG,KAAK;CACrB,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;CAajB,CAAC;AAEF,oBAAY,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,oBAAY,QAAQ,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,GAAG,CAC/C;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAC3H;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAC1F,CAAC;AAMF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAsEpE;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBnF"}
|
package/dist/utils/sfc.js
CHANGED
|
@@ -169,3 +169,4 @@ function serializeSfc(block) {
|
|
|
169
169
|
return { filePath, content: Buffer.from(content, 'utf-8') };
|
|
170
170
|
}
|
|
171
171
|
exports.serializeSfc = serializeSfc;
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NmYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtEQUFpRDtBQUVqRCxrRkFBOEM7QUFDOUMsa0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsd0RBQTZDO0FBQzdDLG1DQUEyRTtBQUU5RCxRQUFBLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDdEIsUUFBQSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQzdCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBWWhDLFNBQWdCLGdCQUFnQixDQUFDLFFBQWdCO0lBQy9DLGlKQUFpSjtJQUNqSixNQUFNLGNBQWMsR0FBRyxjQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsTUFBTSxNQUFNLEdBQUcsY0FBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6RixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNwRixPQUFPO1FBQ0wsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHO1FBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixhQUFhO1FBQ2IsR0FBRztRQUNILFFBQVE7UUFDUixRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFwQkQsNENBb0JDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsUUFBcUI7SUFDeEQsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUZELG9EQUVDO0FBTUQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsVUFBVTtJQUNmLEVBQUUsRUFBRSxRQUFRO0lBQ1osR0FBRyxFQUFFLFFBQVE7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUNaLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLE9BQU87SUFDWixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE9BQU87SUFDYixNQUFNLEVBQUUsT0FBTztJQUNmLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQVNGLFNBQVMsV0FBVyxDQUFDLElBQTZCLEVBQUUsSUFBWTtJQUM5RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxzQkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9ILENBQUM7QUFFRCxTQUFnQixRQUFRLENBQUMsUUFBZ0IsRUFBRSxPQUFlO0lBQ3hELE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLElBQUksUUFBUSxDQUFDLEdBQUcsS0FBSyxlQUFPLEVBQUU7UUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7S0FDaEY7SUFFRCxNQUFNLE1BQU0sR0FBb0MsRUFBRSxDQUFDO0lBRW5ELE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN2RCwrQ0FBK0M7UUFDL0MsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7UUFDdkIsMkJBQTJCO1FBQzNCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1FBQ3BCLFdBQVcsRUFBRSxHQUFHLEVBQUUsZ0JBQWtCO1FBQ3BDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQzdCLENBQUMsQ0FBQztJQUVILE1BQU0sS0FBSyxHQUFhO1FBQ3RCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7UUFDcEMsUUFBUSxFQUFFLEVBQUU7UUFDWixLQUFLLEVBQUUsRUFBRTtRQUNULE9BQU8sRUFBRSxFQUFFO1FBQ1gsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFbEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDMUIsSUFBSSxJQUFJLENBQUMsSUFBSSxvQkFBc0IsRUFBRTtZQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuRSxNQUFNLE9BQU8sR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksaUJBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUU5RSxJQUFJLE9BQU8sRUFBRTtnQkFDWCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUUxQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDL0YsT0FBTztpQkFDUjtnQkFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQzdHLE9BQU87aUJBQ1I7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFdkIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU0sRUFBRTtvQkFDdkIsSUFBSTt3QkFDRixNQUFNLFFBQVEsR0FBRyxlQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN0QyxJQUFJLFNBQVMsS0FBSyxnQkFBUSxFQUFFOzRCQUMxQixLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzt5QkFDM0I7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUM7eUJBQ25DO3FCQUNGO29CQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUNoRjtpQkFDRjtxQkFBTTtvQkFDTCxNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFnQixFQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoRSxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3ZDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO2lCQUN6RDthQUNGO1NBQ0Y7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsUUFBUSxnQkFBZ0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbEY7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUF0RUQsNEJBc0VDO0FBRUQsTUFBTSxvQkFBb0IsR0FBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFFakcsU0FBZ0IsWUFBWSxDQUFDLEtBQWU7SUFDMUMsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssZUFBTyxFQUFFO1FBQ2xDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsZUFBTyxHQUFHLENBQUMsQ0FBQztRQUNyRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7S0FDaEQ7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLGVBQU8sR0FBRyxDQUFDLENBQUM7SUFFdkcsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRWpCLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFVLEVBQUUsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDdkgsTUFBTSxPQUFPLEdBQUcsa0JBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUEsK0JBQVMsRUFBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUNyRixPQUFPLElBQUksYUFBYSxJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLE9BQU8sT0FBTyxhQUFhLENBQUM7S0FDekU7SUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksZ0JBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvRSxJQUFJLENBQUMsa0JBQWtCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUFFLFNBQVM7UUFDM0QsTUFBTSxHQUFHLEdBQUksWUFBdUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztRQUNwRixPQUFPLElBQUksSUFBSSxHQUFHLFFBQVEsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxXQUFXLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7S0FDaEk7SUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQzlELENBQUM7QUF2QkQsb0NBdUJDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Abortable } from 'node:events';
|
|
3
|
+
import { Mode, ObjectEncodingOptions, OpenMode } from 'node:fs';
|
|
4
|
+
import { Stream } from 'node:stream';
|
|
5
|
+
export declare function assert(value: unknown, message?: string): asserts value;
|
|
6
|
+
export declare function escapeCloseTag(str: string, tag: string): string;
|
|
7
|
+
export declare function unescapeCloseTag(str: string, tag: string): string;
|
|
8
|
+
export declare function escapeHtmlAttr(str: string): string;
|
|
9
|
+
export declare function listFilesRecursive(dir: string): Promise<string[]>;
|
|
10
|
+
export declare function isFile(filePath: string): Promise<boolean>;
|
|
11
|
+
export declare function isDirectory(dirPath: string): Promise<boolean>;
|
|
12
|
+
export declare function writeFileMakeDir(filePath: string, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView> | Stream, options?: (ObjectEncodingOptions & {
|
|
13
|
+
mode?: Mode | undefined;
|
|
14
|
+
flag?: OpenMode | undefined;
|
|
15
|
+
} & Abortable) | BufferEncoding | null): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAA0B,GAAG,OAAO,CAAC,KAAK,CAIvF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUvE;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM/D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMnE;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EACA,MAAM,GACN,MAAM,CAAC,eAAe,GACtB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GACzC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAC9C,MAAM,EACV,OAAO,CAAC,EACJ,CAAC,qBAAqB,GAAG;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B,GAAG,SAAS,CAAC,GACd,cAAc,GACd,IAAI,GACP,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -57,3 +57,4 @@ async function writeFileMakeDir(filePath, data, options) {
|
|
|
57
57
|
await fs_1.promises.writeFile(filePath, data, options);
|
|
58
58
|
}
|
|
59
59
|
exports.writeFileMakeDir = writeFileMakeDir;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkJBQW9DO0FBQ3BDLG9EQUF1QjtBQUl2QixnREFBd0I7QUFFeEIsU0FBZ0IsTUFBTSxDQUFDLEtBQWMsRUFBRSxPQUFPLEdBQUcsdUJBQXVCO0lBQ3RFLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFCO0FBQ0gsQ0FBQztBQUpELHdCQUlDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQ3JELE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsR0FBVztJQUN2RCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEdBQVc7SUFDeEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4RyxDQUFDO0FBRkQsd0NBRUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBVztJQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQXFCLEVBQUU7UUFDN0MsTUFBTSxTQUFTLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLE1BQU0sYUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxnQkFBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBVkQsZ0RBVUM7QUFFTSxLQUFLLFVBQVUsTUFBTSxDQUFDLFFBQWdCO0lBQzNDLElBQUk7UUFDRixPQUFPLENBQUMsTUFBTSxhQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDM0M7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBTkQsd0JBTUM7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFDLE9BQWU7SUFDL0MsSUFBSTtRQUNGLE9BQU8sQ0FBQyxNQUFNLGFBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMvQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFORCxrQ0FNQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsUUFBZ0IsRUFDaEIsSUFLVSxFQUNWLE9BTVE7SUFFUixNQUFNLGFBQUUsQ0FBQyxLQUFLLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFsQkQsNENBa0JDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SfcBlock } from './sfc';
|
|
2
|
+
export declare type V3MongoBlock = {
|
|
3
|
+
Folder: string;
|
|
4
|
+
Name: string;
|
|
5
|
+
Type: string;
|
|
6
|
+
app?: {
|
|
7
|
+
name: string;
|
|
8
|
+
};
|
|
9
|
+
} & Record<string, unknown>;
|
|
10
|
+
export declare function convertV3ToSfc(block: V3MongoBlock): SfcBlock;
|
|
11
|
+
export declare function convertSfcToV3(sfc: SfcBlock): V3MongoBlock;
|
|
12
|
+
//# sourceMappingURL=v3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3.d.ts","sourceRoot":"","sources":["../../src/utils/v3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,oBAAY,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA0C5B,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAuC5D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAc1D"}
|
package/dist/utils/v3.js
CHANGED
|
@@ -95,3 +95,4 @@ function convertSfcToV3(sfc) {
|
|
|
95
95
|
return block;
|
|
96
96
|
}
|
|
97
97
|
exports.convertSfcToV3 = convertSfcToV3;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsTUFBTSxhQUFhLEdBQTJCO0lBQzVDLFFBQVE7SUFDUixRQUFRLEVBQUUsTUFBTTtJQUNoQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxNQUFNO0lBQ2IsTUFBTSxFQUFFLE1BQU07SUFDZCxNQUFNLEVBQUUsTUFBTTtJQUNkLEtBQUssRUFBRSxNQUFNO0lBQ2IsVUFBVTtJQUNWLGFBQWEsRUFBRSxJQUFJO0lBQ25CLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLGFBQWEsRUFBRSxJQUFJO0lBQ25CLHVCQUF1QixFQUFFLElBQUk7SUFDN0IsR0FBRyxFQUFFLEtBQUs7SUFDVixhQUFhLEVBQUUsSUFBSTtJQUNuQixPQUFPLEVBQUUsS0FBSztJQUNkLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsTUFBTSxFQUFFLElBQUk7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxJQUFJO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQiw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsUUFBUTtJQUNoQixrQ0FBa0M7SUFDbEMsR0FBRyxFQUFFLFFBQVE7SUFDYixPQUFPLEVBQUUsUUFBUTtJQUNqQixXQUFXLEVBQUUsUUFBUTtJQUNyQixTQUFTLEVBQUUsUUFBUTtJQUNuQixTQUFTLEVBQUUsUUFBUTtJQUNuQixTQUFTLEVBQUUsUUFBUTtJQUNuQixTQUFTLEVBQUUsUUFBUTtJQUNuQixtREFBbUQ7Q0FDcEQsQ0FBQztBQUVGLFNBQWdCLGNBQWMsQ0FBQyxLQUFtQjtJQUNoRCxNQUFNLEdBQUcsR0FBYTtR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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.4",
|
|
4
4
|
"description": "MarsX launcher",
|
|
5
5
|
"author": "MarsX team <team@marsx.dev>",
|
|
6
6
|
"homepage": "https://marsx.dev/",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
21
|
"dist",
|
|
22
|
+
"src",
|
|
22
23
|
"LICENSE",
|
|
23
24
|
"README.md"
|
|
24
25
|
],
|
package/src/cli/index.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { initProject } from './init';
|
|
6
|
+
import { migrateV3ToV4 } from './migrate';
|
|
7
|
+
import { start } from './start';
|
|
8
|
+
|
|
9
|
+
export class CliError extends Error {}
|
|
10
|
+
|
|
11
|
+
async function main() {
|
|
12
|
+
try {
|
|
13
|
+
const program = new Command();
|
|
14
|
+
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
|
+
const version = require('../../package.json').version;
|
|
17
|
+
program.name('marsx').description('CLI for MarsX launcher').version(version);
|
|
18
|
+
|
|
19
|
+
program.command('start', { isDefault: true }).description('Start MarsX server').action(start);
|
|
20
|
+
program
|
|
21
|
+
.command('init <project_name>')
|
|
22
|
+
.description('Initialize a new MarsX project named <project_name> in a directory of the same name')
|
|
23
|
+
.action(initProject);
|
|
24
|
+
program.command('migrate').description('Migrate MarsX V3 project to V4').action(migrateV3ToV4);
|
|
25
|
+
|
|
26
|
+
await program.parseAsync();
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (e instanceof CliError) {
|
|
29
|
+
console.error(chalk.red(e.message));
|
|
30
|
+
} else {
|
|
31
|
+
console.error(chalk.red(e));
|
|
32
|
+
}
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
main();
|
package/src/cli/init.ts
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { spawnSync } from 'child_process';
|
|
3
|
+
import { randomBytes } from 'crypto';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { Configuration } from '../configuration';
|
|
6
|
+
import { assert, isDirectory, writeFileMakeDir } from '../utils/utils';
|
|
7
|
+
import { CliError } from './index';
|
|
8
|
+
|
|
9
|
+
const FASTIFY_DEPS = [
|
|
10
|
+
'@fastify/session',
|
|
11
|
+
'fastify',
|
|
12
|
+
'fastify-accepts',
|
|
13
|
+
'fastify-compress',
|
|
14
|
+
'fastify-cookie',
|
|
15
|
+
'fastify-cors',
|
|
16
|
+
'fastify-csrf',
|
|
17
|
+
'fastify-flash',
|
|
18
|
+
'fastify-formbody',
|
|
19
|
+
'fastify-helmet',
|
|
20
|
+
'fastify-multipart',
|
|
21
|
+
'fastify-request-context',
|
|
22
|
+
'fastify-static',
|
|
23
|
+
'fastify-websocket',
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
const COMMON_DEPS = [
|
|
27
|
+
'@marsx-dev/launcher',
|
|
28
|
+
'aws-sdk',
|
|
29
|
+
'axios',
|
|
30
|
+
'azure-storage',
|
|
31
|
+
'base-x',
|
|
32
|
+
'bcrypt',
|
|
33
|
+
'chokidar',
|
|
34
|
+
'lodash',
|
|
35
|
+
'mongodb4@npm:mongodb@4',
|
|
36
|
+
'mongodb3@npm:mongodb@3',
|
|
37
|
+
'typescript',
|
|
38
|
+
'uuid',
|
|
39
|
+
'xxhash',
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
const V3_DEPS = [
|
|
43
|
+
'babel-core',
|
|
44
|
+
'babel-plugin-transform-react-jsx',
|
|
45
|
+
'config',
|
|
46
|
+
'crypto-js',
|
|
47
|
+
'jsonwebtoken',
|
|
48
|
+
'mobile-detect',
|
|
49
|
+
'moment-timezone',
|
|
50
|
+
'route-pattern',
|
|
51
|
+
'route-sort',
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const DEFAULT_DEPS = [...FASTIFY_DEPS, ...COMMON_DEPS, ...V3_DEPS];
|
|
55
|
+
|
|
56
|
+
const DEMO_BOOTER = `<json id='metadata'>
|
|
57
|
+
{"version": 4, "restartOnChange": true}
|
|
58
|
+
</json>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<script id='BlockFunction' lang='tsx'>
|
|
62
|
+
export default async () => {
|
|
63
|
+
console.log('MarsX loaded!')
|
|
64
|
+
};
|
|
65
|
+
</script>`;
|
|
66
|
+
|
|
67
|
+
export async function initProject(projectName: string) {
|
|
68
|
+
if (!projectName.match(/^\w+$/) || projectName !== projectName.toLowerCase()) {
|
|
69
|
+
throw new CliError(
|
|
70
|
+
`Project name "${projectName}" may contain only lower case alphanumeric characters and underscores (eg. my_project_name)`,
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const projectDir = path.resolve(projectName);
|
|
75
|
+
|
|
76
|
+
if (await isDirectory(projectDir)) {
|
|
77
|
+
throw new CliError(`Project dir "${projectName}" already exist. Delete it or choose a different name.`);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
console.log(`Creating a new MarsX project in ${chalk.green(projectDir)}`);
|
|
81
|
+
|
|
82
|
+
const packageJson = {
|
|
83
|
+
name: projectName,
|
|
84
|
+
version: '0.0.0',
|
|
85
|
+
private: true,
|
|
86
|
+
scripts: {
|
|
87
|
+
start: 'marsx start',
|
|
88
|
+
},
|
|
89
|
+
dependencies: {},
|
|
90
|
+
};
|
|
91
|
+
const packageJsonStr = JSON.stringify(packageJson, null, 2);
|
|
92
|
+
await writeFileMakeDir(path.join(projectDir, 'package.json'), packageJsonStr);
|
|
93
|
+
|
|
94
|
+
const config: Configuration = {
|
|
95
|
+
production: false,
|
|
96
|
+
port: 3000,
|
|
97
|
+
blocksDir: 'blocks',
|
|
98
|
+
cacheDir: '.cache',
|
|
99
|
+
mongoConn: '<CONN_STR>',
|
|
100
|
+
mongoDbName: projectName,
|
|
101
|
+
azureStorageConnection: '<CONN_STR>',
|
|
102
|
+
azureStorageAccountName: projectName,
|
|
103
|
+
azureStorageUrl: `https://${projectName}.blob.core.windows.net`,
|
|
104
|
+
webFilesTable: 'webFiles',
|
|
105
|
+
webRecentFilesTable: 'webRecentFiles',
|
|
106
|
+
webFilesBlob: 'web-files',
|
|
107
|
+
secret: (await randomBytes(48)).toString('hex'),
|
|
108
|
+
importProjects: [
|
|
109
|
+
{
|
|
110
|
+
name: 'mars-ide',
|
|
111
|
+
url: 'https://ide.marscloud.dev',
|
|
112
|
+
api_key: '<API_KEY>',
|
|
113
|
+
git_commit_ish: 'main',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
await writeFileMakeDir(path.join(projectDir, 'config', 'default.json'), JSON.stringify(config, null, 2));
|
|
119
|
+
await writeFileMakeDir(path.join(projectDir, '.gitignore'), 'node_modules\ndist\n.cache\n');
|
|
120
|
+
|
|
121
|
+
await writeFileMakeDir(path.join(projectDir, 'blocks', 'Booter.service.vue'), DEMO_BOOTER);
|
|
122
|
+
|
|
123
|
+
function run(...args: string[]) {
|
|
124
|
+
const cmd = args[0];
|
|
125
|
+
assert(cmd);
|
|
126
|
+
spawnSync(cmd, args.slice(1), { cwd: projectDir, stdio: 'inherit' });
|
|
127
|
+
}
|
|
128
|
+
console.log('Installing dependencies. This might take a couple of minutes.');
|
|
129
|
+
run('npm', 'i', ...DEFAULT_DEPS);
|
|
130
|
+
|
|
131
|
+
run('git', 'init');
|
|
132
|
+
run('git', 'add', '.gitignore');
|
|
133
|
+
run('git', 'add', '-A');
|
|
134
|
+
run('git', 'commit', '-m', 'Initial commit');
|
|
135
|
+
console.log('Initialized git repository and created initial commit.');
|
|
136
|
+
|
|
137
|
+
console.log(chalk.yellow(`\nMake sure to update parameters in config/default.json`));
|
|
138
|
+
|
|
139
|
+
console.log(`${chalk.green('Success!')} Created ${projectName} at ${projectDir}`);
|
|
140
|
+
console.log(chalk.dim(`\nInside that directory, you can start MarsX with\n\n cd ${projectName}\n npm run start\n`));
|
|
141
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { MongoClient } from 'mongodb';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { config } from '../configuration';
|
|
5
|
+
import { serializeSfc } from '../utils/sfc';
|
|
6
|
+
import { writeFileMakeDir } from '../utils/utils';
|
|
7
|
+
import { convertV3ToSfc, V3MongoBlock } from '../utils/v3';
|
|
8
|
+
|
|
9
|
+
export async function migrateV3ToV4() {
|
|
10
|
+
console.log('Connecting to MongoDB...');
|
|
11
|
+
const mongoConn = await new MongoClient(config.mongoConn).connect();
|
|
12
|
+
const db = mongoConn.db(config.mongoDbName);
|
|
13
|
+
const allBlocks = await db.collection<V3MongoBlock>('blocks').find().toArray();
|
|
14
|
+
console.log(`Downloaded ${allBlocks.length} block(s)`);
|
|
15
|
+
|
|
16
|
+
for (const block of allBlocks) {
|
|
17
|
+
const serialized = serializeSfc(convertV3ToSfc(block));
|
|
18
|
+
await writeFileMakeDir(path.join(config.blocksDir, serialized.filePath), serialized.content);
|
|
19
|
+
console.log(`Saved ${serialized.filePath}`);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
console.log(chalk.green('\nMigration complete successfully!'));
|
|
23
|
+
}
|
package/src/cli/start.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import child_process from 'child_process';
|
|
2
|
+
import { config } from '../configuration';
|
|
3
|
+
import { launchBooter } from '../launcher';
|
|
4
|
+
import { assert } from '../utils/utils';
|
|
5
|
+
|
|
6
|
+
export const RESTART_EXIT_CODe = 9;
|
|
7
|
+
|
|
8
|
+
export const start = async () => {
|
|
9
|
+
if (config.production || process.env['MARSX_NO_SPAWN']) {
|
|
10
|
+
console.log(`MarsX process ${process.pid} starting...`);
|
|
11
|
+
await launchBooter();
|
|
12
|
+
console.log(`MarsX process ${process.pid} started`);
|
|
13
|
+
} else {
|
|
14
|
+
const spawnChildProc = () => {
|
|
15
|
+
assert(process.argv[0]);
|
|
16
|
+
const child = child_process.spawn(process.argv[0], ['--inspect', '--enable-source-maps', ...process.argv.slice(1)], {
|
|
17
|
+
cwd: process.cwd(),
|
|
18
|
+
env: { ...process.env, MARSX_NO_SPAWN: 'true' },
|
|
19
|
+
stdio: 'inherit',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
child.on('close', (code: number) => {
|
|
23
|
+
console.log(`MarsX process ${child.pid} terminated with ${code}`);
|
|
24
|
+
if (code === RESTART_EXIT_CODe) {
|
|
25
|
+
setTimeout(spawnChildProc, 100);
|
|
26
|
+
} else {
|
|
27
|
+
process.exit(code);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
spawnChildProc();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
process.env['SUPPRESS_NO_CONFIG_WARNING'] = 'true';
|
|
2
|
+
import configModule from 'config';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { assert } from './utils/utils';
|
|
5
|
+
|
|
6
|
+
export interface ImportProjectConfig {
|
|
7
|
+
name: string;
|
|
8
|
+
url: string;
|
|
9
|
+
api_key: string;
|
|
10
|
+
git_commit_ish?: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const ensureType =
|
|
14
|
+
<T>(typeName: string) =>
|
|
15
|
+
(configName: string): T => {
|
|
16
|
+
const value = configModule.get(configName);
|
|
17
|
+
assert(typeof value === typeName);
|
|
18
|
+
return value as T;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const ensureString = ensureType<string>('string');
|
|
22
|
+
const ensureBoolean = ensureType<boolean>('boolean');
|
|
23
|
+
const ensureNumber = ensureType<number>('number');
|
|
24
|
+
|
|
25
|
+
function validatedConfig() {
|
|
26
|
+
if (configModule.util.getConfigSources().length === 0) {
|
|
27
|
+
return new Proxy({} as never, {
|
|
28
|
+
get() {
|
|
29
|
+
throw new Error('Config file not found, ensure you have "config/default.json" file.');
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
production: ensureBoolean('production'),
|
|
36
|
+
port: ensureNumber('port'),
|
|
37
|
+
blocksDir: path.resolve(ensureString('blocksDir')),
|
|
38
|
+
cacheDir: path.resolve(ensureString('cacheDir')),
|
|
39
|
+
mongoConn: ensureString('mongoConn'),
|
|
40
|
+
mongoDbName: ensureString('mongoDbName'),
|
|
41
|
+
azureStorageConnection: ensureString('azureStorageConnection'),
|
|
42
|
+
azureStorageAccountName: ensureString('azureStorageAccountName'),
|
|
43
|
+
azureStorageUrl: ensureString('azureStorageUrl'),
|
|
44
|
+
secret: ensureString('secret'),
|
|
45
|
+
webFilesTable: ensureString('webFilesTable'),
|
|
46
|
+
webRecentFilesTable: ensureString('webRecentFilesTable'),
|
|
47
|
+
webFilesBlob: ensureString('webFilesBlob'),
|
|
48
|
+
importProjects: configModule.get<ImportProjectConfig[]>('importProjects'),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const config = validatedConfig();
|
|
53
|
+
export type Configuration = typeof config;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { config, ImportProjectConfig, Configuration } from './configuration';
|
|
2
|
+
export { compileSfcSource, transpileTypescript } from './utils/compile';
|
|
3
|
+
export { parseSFC, serializeSfc, SfcBlock, SfcIdentity, SfcSource, parseSfcIdentity, serializeSfcIdentity } from './utils/sfc';
|
|
4
|
+
export * as utils from './utils/utils';
|
|
5
|
+
export { convertSfcToV3, convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
package/src/launcher.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { config } from './configuration';
|
|
2
|
+
import { loadAllBlocks } from './loader';
|
|
3
|
+
import { compileSfcSource, transpileTypescript } from './utils/compile';
|
|
4
|
+
import { parseSFC, serializeSfc } from './utils/sfc';
|
|
5
|
+
import { assert, writeFileMakeDir } from './utils/utils';
|
|
6
|
+
import { convertSfcToV3, convertV3ToSfc } from './utils/v3';
|
|
7
|
+
|
|
8
|
+
const LAUNCHER_UTILS = {
|
|
9
|
+
config,
|
|
10
|
+
parseSFC,
|
|
11
|
+
serializeSfc,
|
|
12
|
+
convertV3ToSfc,
|
|
13
|
+
convertSfcToV3,
|
|
14
|
+
transpileTypescript,
|
|
15
|
+
compileSfcSource,
|
|
16
|
+
writeFileMakeDir,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export async function launchBooter(booterBlockName = 'Booter') {
|
|
20
|
+
const allBlocks = await loadAllBlocks();
|
|
21
|
+
|
|
22
|
+
const booterBlocks = allBlocks.filter(b => b.identity.name === booterBlockName);
|
|
23
|
+
if (booterBlocks.length === 0)
|
|
24
|
+
throw new Error(`Booter block ${booterBlockName} not found. Ensure you have it locally or it is imported.`);
|
|
25
|
+
|
|
26
|
+
// Take last because order of imports matter and local blocks always override imported.
|
|
27
|
+
const booterBlock = booterBlocks[booterBlocks.length - 1];
|
|
28
|
+
assert(booterBlock);
|
|
29
|
+
|
|
30
|
+
const compiledBooterPath = await compileSfcSource(booterBlock, 'BlockFunction');
|
|
31
|
+
try {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
33
|
+
await require(compiledBooterPath).default(allBlocks, LAUNCHER_UTILS);
|
|
34
|
+
} catch (e) {
|
|
35
|
+
console.error('Booter failed with:', e);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
package/src/loader.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import crypto from 'crypto';
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
|
+
import stringify from 'json-stable-stringify';
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { config, ImportProjectConfig } from './configuration';
|
|
8
|
+
import { parseSFC, SfcBlock } from './utils/sfc';
|
|
9
|
+
import { isFile, listFilesRecursive, writeFileMakeDir } from './utils/utils';
|
|
10
|
+
import { convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
|
11
|
+
|
|
12
|
+
async function downloadFromExternal(externalImport: ImportProjectConfig): Promise<SfcBlock[]> {
|
|
13
|
+
const params = { api_key: externalImport.api_key, git_commit_ish: externalImport.git_commit_ish || '' };
|
|
14
|
+
|
|
15
|
+
console.log(`Downloading blocks from ${externalImport.url}`);
|
|
16
|
+
try {
|
|
17
|
+
const v4Resp = await axios.get<SfcBlock[]>(`${externalImport.url}/api/GetExportedAppBlocksV4`, { params });
|
|
18
|
+
return v4Resp.data;
|
|
19
|
+
} catch (e) {
|
|
20
|
+
console.log(`${externalImport.url} does not support V4, fallback to V3`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const v3Resp = await axios.get<V3MongoBlock[]>(`${externalImport.url}/api/GetExportedAppBlocks`, { params });
|
|
24
|
+
return v3Resp.data.map(b => convertV3ToSfc(b));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async function loadCachedOrDownload(externalImport: ImportProjectConfig): Promise<SfcBlock[]> {
|
|
28
|
+
const hash = crypto.createHash('md5').update(stringify(externalImport)).digest('hex');
|
|
29
|
+
const cacheFileName = `${externalImport.name}_${externalImport.git_commit_ish}_${hash}.json`.replace(/[^\w.]+/g, '_');
|
|
30
|
+
const cacheFilePath = path.join(config.cacheDir, 'imports', cacheFileName);
|
|
31
|
+
|
|
32
|
+
if (await isFile(cacheFilePath)) {
|
|
33
|
+
const content = await fs.readFile(cacheFilePath);
|
|
34
|
+
console.log(`Loading cached blocks from ${externalImport.url}`);
|
|
35
|
+
return JSON.parse(content.toString('utf-8'));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const data = await downloadFromExternal(externalImport);
|
|
39
|
+
console.log(`Downloaded ${data.length} blocks from ${externalImport.url}`);
|
|
40
|
+
|
|
41
|
+
await writeFileMakeDir(cacheFilePath, JSON.stringify(data, null, 2), 'utf-8');
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function downloadAll(externalImports: ImportProjectConfig[]) {
|
|
46
|
+
const responses = await Promise.all(externalImports.map(loadCachedOrDownload));
|
|
47
|
+
return _.flatten(responses);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function readBlockFile(blocksDir: string, filePath: string): Promise<SfcBlock> {
|
|
51
|
+
const content = await fs.readFile(filePath);
|
|
52
|
+
const relPath = path.relative(blocksDir, filePath);
|
|
53
|
+
return parseSFC(relPath, content);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function readBlockFiles(blocksDir: string) {
|
|
57
|
+
const files = await listFilesRecursive(blocksDir);
|
|
58
|
+
return await Promise.all(files.filter(f => !path.basename(f).startsWith('.')).map(f => readBlockFile(blocksDir, f)));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function loadAllBlocks(): Promise<SfcBlock[]> {
|
|
62
|
+
const externalBlocks = await downloadAll(config.importProjects);
|
|
63
|
+
const localBlocks = await readBlockFiles(config.blocksDir);
|
|
64
|
+
return [...externalBlocks, ...localBlocks];
|
|
65
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SourceMapPayload } from 'module';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
import { config } from '../configuration';
|
|
5
|
+
import { SfcBlock } from './sfc';
|
|
6
|
+
import { assert, writeFileMakeDir } from './utils';
|
|
7
|
+
|
|
8
|
+
function genSourceMapComment(sourceMap: SourceMapPayload): string {
|
|
9
|
+
return `\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(JSON.stringify(sourceMap)).toString('base64')}`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function transpileTypescript(
|
|
13
|
+
sourceCode: string,
|
|
14
|
+
options?: {
|
|
15
|
+
sourceRoot?: string;
|
|
16
|
+
originalFilePath?: string;
|
|
17
|
+
compiledFilePath?: string;
|
|
18
|
+
lineOffset?: number | undefined;
|
|
19
|
+
},
|
|
20
|
+
): string {
|
|
21
|
+
const compiledFilePath = options?.compiledFilePath || '<UNKNOWN>.js';
|
|
22
|
+
const originalFilePath = options?.originalFilePath || '<UNKNOWN>.ts';
|
|
23
|
+
|
|
24
|
+
if (options?.lineOffset) {
|
|
25
|
+
sourceCode = '\n'.repeat(options.lineOffset) + sourceCode;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const transpiled = ts.transpileModule(sourceCode, {
|
|
29
|
+
compilerOptions: {
|
|
30
|
+
module: ts.ModuleKind.CommonJS,
|
|
31
|
+
target: ts.ScriptTarget.Latest,
|
|
32
|
+
esModuleInterop: true,
|
|
33
|
+
sourceMap: true,
|
|
34
|
+
// inlineSources: true,
|
|
35
|
+
// inlineSourceMap: true,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
assert(transpiled.sourceMapText);
|
|
39
|
+
|
|
40
|
+
const sourceMap: SourceMapPayload = JSON.parse(transpiled.sourceMapText);
|
|
41
|
+
sourceMap.sourceRoot = options?.sourceRoot || '';
|
|
42
|
+
sourceMap.file = compiledFilePath;
|
|
43
|
+
sourceMap.sources = [originalFilePath];
|
|
44
|
+
const sourceMapComment = genSourceMapComment(sourceMap);
|
|
45
|
+
return transpiled.outputText.replace(/\n\/\/# sourceMappingURL=.+/, '') + sourceMapComment;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export async function compileSfcSource(sfcBlock: SfcBlock, sourceId: string): Promise<string> {
|
|
49
|
+
const sourceCode = sfcBlock.sources[sourceId];
|
|
50
|
+
if (!sourceCode) throw new Error(`Source code block ${sourceId} not found in ${sfcBlock.identity.filePath}`);
|
|
51
|
+
|
|
52
|
+
const compiledFilePath = path.join(config.cacheDir, 'compiled', `${sfcBlock.identity.filePath}.${sourceId}.js`);
|
|
53
|
+
const originalFilePath = path.join(config.blocksDir, sfcBlock.identity.filePath);
|
|
54
|
+
const code = transpileTypescript(sourceCode.source, { compiledFilePath, originalFilePath, lineOffset: sourceCode.lineOffset });
|
|
55
|
+
|
|
56
|
+
await writeFileMakeDir(compiledFilePath, code, 'utf-8');
|
|
57
|
+
return compiledFilePath;
|
|
58
|
+
}
|
package/src/utils/sfc.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { CompilerError, TextModes } from '@vue/compiler-core';
|
|
2
|
+
import * as CompilerDOM from '@vue/compiler-dom';
|
|
3
|
+
import { NodeTypes } from '@vue/compiler-dom';
|
|
4
|
+
import stringify from 'json-stable-stringify';
|
|
5
|
+
import JSON5 from 'json5';
|
|
6
|
+
import _ from 'lodash';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import prettier, { Options } from 'prettier';
|
|
9
|
+
import { escapeCloseTag, escapeHtmlAttr, unescapeCloseTag } from './utils';
|
|
10
|
+
|
|
11
|
+
export const METADATA = 'metadata';
|
|
12
|
+
export const SFC_EXT = 'vue';
|
|
13
|
+
const SAVE_EMPTY_SOURCES = true;
|
|
14
|
+
|
|
15
|
+
export type SfcIdentity = {
|
|
16
|
+
folder: string;
|
|
17
|
+
name: string;
|
|
18
|
+
blockTypeName: string;
|
|
19
|
+
ext: string;
|
|
20
|
+
// Derived
|
|
21
|
+
fullName: string;
|
|
22
|
+
filePath: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export function parseSfcIdentity(filePath: string): SfcIdentity {
|
|
26
|
+
// Blog/BlogPost.page.vue => {id: "BlogPost.page", folder:"Blog", name: "BlogPost", blockTypeName: "page", ext: "vue", fullName: "Blog.BlogPost"}
|
|
27
|
+
const originalParsed = path.parse(filePath);
|
|
28
|
+
const withoutExt = originalParsed.name;
|
|
29
|
+
const ext = originalParsed.ext.slice(1);
|
|
30
|
+
|
|
31
|
+
const parsed = path.parse(withoutExt);
|
|
32
|
+
if (!parsed.name || !parsed.ext) throw new Error(`Invalid block file path: ${filePath}`);
|
|
33
|
+
const blockTypeName = parsed.ext.slice(1);
|
|
34
|
+
|
|
35
|
+
const namespace = originalParsed.dir.replace(/\//g, '.');
|
|
36
|
+
const fullName = namespace.length > 0 ? `${namespace}.${parsed.name}` : parsed.name;
|
|
37
|
+
return {
|
|
38
|
+
folder: originalParsed.dir,
|
|
39
|
+
name: parsed.name,
|
|
40
|
+
blockTypeName,
|
|
41
|
+
ext,
|
|
42
|
+
fullName,
|
|
43
|
+
filePath,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function serializeSfcIdentity(identity: SfcIdentity): string {
|
|
48
|
+
return path.join(identity.folder, `${identity.name}.${identity.blockTypeName}.${identity.ext}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
type EmptyObject = {
|
|
52
|
+
[K in string]: never;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const LANG_TAG_MAP = {
|
|
56
|
+
html: 'html',
|
|
57
|
+
pug: 'template',
|
|
58
|
+
js: 'script',
|
|
59
|
+
jsx: 'script',
|
|
60
|
+
ts: 'script',
|
|
61
|
+
tsx: 'script',
|
|
62
|
+
css: 'style',
|
|
63
|
+
scss: 'style',
|
|
64
|
+
less: 'style',
|
|
65
|
+
sass: 'style',
|
|
66
|
+
stylus: 'style',
|
|
67
|
+
text: 'text',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export type SfcSource = { source: string; lang: keyof typeof LANG_TAG_MAP | string | undefined; lineOffset?: number };
|
|
71
|
+
|
|
72
|
+
export type SfcBlock = { identity: SfcIdentity } & (
|
|
73
|
+
| { metadata: Record<string, unknown>; jsons: Record<string, unknown>; sources: Record<string, SfcSource>; rawContent: null }
|
|
74
|
+
| { metadata: EmptyObject; jsons: EmptyObject; sources: EmptyObject; rawContent: Buffer }
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
function getNodeAttr(node: CompilerDOM.ElementNode, attr: string) {
|
|
78
|
+
return node.props.map(p => (p.name == attr && p.type === NodeTypes.ATTRIBUTE ? p.value?.content : undefined)).find(p => !!p);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function parseSFC(filePath: string, content: Buffer): SfcBlock {
|
|
82
|
+
const identity = parseSfcIdentity(filePath);
|
|
83
|
+
if (identity.ext !== SFC_EXT) {
|
|
84
|
+
return { identity, metadata: {}, jsons: {}, sources: {}, rawContent: content };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const errors: (CompilerError | SyntaxError)[] = [];
|
|
88
|
+
|
|
89
|
+
const ast = CompilerDOM.parse(content.toString('utf-8'), {
|
|
90
|
+
// there are no components at SFC parsing level
|
|
91
|
+
isNativeTag: () => true,
|
|
92
|
+
// preserve all whitespaces
|
|
93
|
+
isPreTag: () => true,
|
|
94
|
+
getTextMode: () => TextModes.RAWTEXT,
|
|
95
|
+
onError: e => errors.push(e),
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const block: SfcBlock = {
|
|
99
|
+
identity: parseSfcIdentity(filePath),
|
|
100
|
+
metadata: {},
|
|
101
|
+
jsons: {},
|
|
102
|
+
sources: {},
|
|
103
|
+
rawContent: null,
|
|
104
|
+
};
|
|
105
|
+
const seenIds = new Set<string>();
|
|
106
|
+
|
|
107
|
+
ast.children.forEach(node => {
|
|
108
|
+
if (node.type === NodeTypes.ELEMENT) {
|
|
109
|
+
const child = node.children.length === 1 ? node.children[0] : null;
|
|
110
|
+
const content = child && child.type === NodeTypes.TEXT ? child.content : null;
|
|
111
|
+
|
|
112
|
+
if (content) {
|
|
113
|
+
const sectionId = getNodeAttr(node, 'id');
|
|
114
|
+
|
|
115
|
+
if (!sectionId) {
|
|
116
|
+
errors.push({ name: `missing-id`, message: `Id property is missing`, code: 0, loc: node.loc });
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (seenIds.has(sectionId)) {
|
|
120
|
+
errors.push({ name: `duplicate-id`, message: `Duplicate section id: ${sectionId}`, code: 0, loc: node.loc });
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
seenIds.add(sectionId);
|
|
124
|
+
|
|
125
|
+
if (node.tag === 'json') {
|
|
126
|
+
try {
|
|
127
|
+
const jsonData = JSON5.parse(content);
|
|
128
|
+
if (sectionId === METADATA) {
|
|
129
|
+
block.metadata = jsonData;
|
|
130
|
+
} else {
|
|
131
|
+
block.jsons[sectionId] = jsonData;
|
|
132
|
+
}
|
|
133
|
+
} catch (e) {
|
|
134
|
+
errors.push({ name: 'invalid-json', message: `${e}`, code: 0, loc: node.loc });
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
const source = unescapeCloseTag(content.slice(1, -1), node.tag);
|
|
138
|
+
const lang = getNodeAttr(node, 'lang');
|
|
139
|
+
const lineOffset = node.loc.start.line;
|
|
140
|
+
block.sources[sectionId] = { source, lang, lineOffset };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
if (errors.length) {
|
|
147
|
+
throw new Error(`Parsing SFC ${filePath} failed with ${JSON.stringify(errors)}`);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return block;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const PRETTIER_JSON_CONFIG: Options = { parser: 'json5', printWidth: 120, trailingComma: 'all' };
|
|
154
|
+
|
|
155
|
+
export function serializeSfc(block: SfcBlock): { filePath: string; content: Buffer } {
|
|
156
|
+
const filePath = serializeSfcIdentity(block.identity);
|
|
157
|
+
if (block.identity.ext !== SFC_EXT) {
|
|
158
|
+
if (block.rawContent === null) throw new Error(`SfcBlock must have rawContent if ext!="${SFC_EXT}"`);
|
|
159
|
+
return { filePath, content: block.rawContent };
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (block.rawContent !== null) throw new Error(`SfcBlock cannot have rawContent if ext=="${SFC_EXT}"`);
|
|
163
|
+
|
|
164
|
+
let content = '';
|
|
165
|
+
|
|
166
|
+
for (const [name, source] of [[METADATA, block.metadata] as const, ..._.sortBy(Object.entries(block.jsons), e => e[0])]) {
|
|
167
|
+
const jsonStr = prettier.format('(' + stringify(source) + ')', PRETTIER_JSON_CONFIG);
|
|
168
|
+
content += `<json id="${escapeHtmlAttr(name)}">\n${jsonStr}</json>\n\n`;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
for (const [name, source] of _.sortBy(Object.entries(block.sources), e => e[0])) {
|
|
172
|
+
if (!SAVE_EMPTY_SOURCES && !source.source.trim()) continue;
|
|
173
|
+
const tag = (LANG_TAG_MAP as Record<string, string>)[source.lang || ''] || 'script';
|
|
174
|
+
content += `<${tag} id="${escapeHtmlAttr(name)}" lang="${source.lang}">\n${escapeCloseTag(source.source, tag)}\n</${tag}>\n\n`;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return { filePath, content: Buffer.from(content, 'utf-8') };
|
|
178
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import { Abortable } from 'node:events';
|
|
4
|
+
import { Mode, ObjectEncodingOptions, OpenMode } from 'node:fs';
|
|
5
|
+
import { Stream } from 'node:stream';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
|
|
8
|
+
export function assert(value: unknown, message = 'value must be defined'): asserts value {
|
|
9
|
+
if (!value) {
|
|
10
|
+
throw new Error(message);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function escapeCloseTag(str: string, tag: string): string {
|
|
15
|
+
return str.replaceAll(`</${tag}>`, `</ ${tag}>`);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function unescapeCloseTag(str: string, tag: string): string {
|
|
19
|
+
return str.replaceAll(`</ ${tag}>`, `</${tag}>`);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function escapeHtmlAttr(str: string): string {
|
|
23
|
+
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export async function listFilesRecursive(dir: string): Promise<string[]> {
|
|
27
|
+
const entries = await fs.readdir(dir);
|
|
28
|
+
|
|
29
|
+
const files = await Promise.all(
|
|
30
|
+
entries.map(async (entry): Promise<string[]> => {
|
|
31
|
+
const entryPath = path.resolve(dir, entry);
|
|
32
|
+
return (await fs.stat(entryPath)).isDirectory() ? listFilesRecursive(entryPath) : [entryPath];
|
|
33
|
+
}),
|
|
34
|
+
);
|
|
35
|
+
return _.flatten(files);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function isFile(filePath: string): Promise<boolean> {
|
|
39
|
+
try {
|
|
40
|
+
return (await fs.stat(filePath)).isFile();
|
|
41
|
+
} catch (e) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function isDirectory(dirPath: string): Promise<boolean> {
|
|
47
|
+
try {
|
|
48
|
+
return (await fs.stat(dirPath)).isDirectory();
|
|
49
|
+
} catch (e) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export async function writeFileMakeDir(
|
|
55
|
+
filePath: string,
|
|
56
|
+
data:
|
|
57
|
+
| string
|
|
58
|
+
| NodeJS.ArrayBufferView
|
|
59
|
+
| Iterable<string | NodeJS.ArrayBufferView>
|
|
60
|
+
| AsyncIterable<string | NodeJS.ArrayBufferView>
|
|
61
|
+
| Stream,
|
|
62
|
+
options?:
|
|
63
|
+
| (ObjectEncodingOptions & {
|
|
64
|
+
mode?: Mode | undefined;
|
|
65
|
+
flag?: OpenMode | undefined;
|
|
66
|
+
} & Abortable)
|
|
67
|
+
| BufferEncoding
|
|
68
|
+
| null,
|
|
69
|
+
): Promise<void> {
|
|
70
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
71
|
+
await fs.writeFile(filePath, data, options);
|
|
72
|
+
}
|
package/src/utils/v3.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { SfcBlock } from './sfc';
|
|
2
|
+
|
|
3
|
+
export type V3MongoBlock = {
|
|
4
|
+
Folder: string;
|
|
5
|
+
Name: string;
|
|
6
|
+
Type: string;
|
|
7
|
+
app?: { name: string };
|
|
8
|
+
} & Record<string, unknown>;
|
|
9
|
+
|
|
10
|
+
const SFC_FIELD_MAP: Record<string, string> = {
|
|
11
|
+
// JSONs
|
|
12
|
+
DataArgs: 'json',
|
|
13
|
+
Page: 'json',
|
|
14
|
+
pages: 'json',
|
|
15
|
+
blocks: 'json',
|
|
16
|
+
Config: 'json',
|
|
17
|
+
langs: 'json',
|
|
18
|
+
// Scripts
|
|
19
|
+
BlockFunction: 'ts',
|
|
20
|
+
Html: 'html',
|
|
21
|
+
HTML: 'html',
|
|
22
|
+
Jsx: 'tsx',
|
|
23
|
+
JsxTranspiled: 'js',
|
|
24
|
+
JsxTranspiledTranspiled: 'js',
|
|
25
|
+
JSX: 'tsx',
|
|
26
|
+
JSXTranspiled: 'js',
|
|
27
|
+
DemoJsx: 'tsx',
|
|
28
|
+
DemoJsxTranspiled: 'js',
|
|
29
|
+
Script: 'ts',
|
|
30
|
+
Css: 'css',
|
|
31
|
+
TestCode: 'ts',
|
|
32
|
+
JestDefinition: 'ts',
|
|
33
|
+
DataForScriptFunction: 'ts',
|
|
34
|
+
// Ignore (part of file path)
|
|
35
|
+
// _id: 'DELETE',
|
|
36
|
+
Name: 'DELETE',
|
|
37
|
+
Type: 'DELETE',
|
|
38
|
+
Folder: 'DELETE',
|
|
39
|
+
// Ignore (will be tracked by git)
|
|
40
|
+
app: 'DELETE',
|
|
41
|
+
Created: 'DELETE',
|
|
42
|
+
LastChanged: 'DELETE',
|
|
43
|
+
createdAt: 'DELETE',
|
|
44
|
+
createdBy: 'DELETE',
|
|
45
|
+
updatedAt: 'DELETE',
|
|
46
|
+
updatedBy: 'DELETE',
|
|
47
|
+
// ... rest of the fields will be saved in metadata
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export function convertV3ToSfc(block: V3MongoBlock): SfcBlock {
|
|
51
|
+
const sfc: SfcBlock = {
|
|
52
|
+
identity: {
|
|
53
|
+
folder: block.Folder,
|
|
54
|
+
name: block.Name,
|
|
55
|
+
blockTypeName: block.Type,
|
|
56
|
+
ext: 'vue',
|
|
57
|
+
fullName: '',
|
|
58
|
+
filePath: '',
|
|
59
|
+
},
|
|
60
|
+
metadata: {},
|
|
61
|
+
jsons: {},
|
|
62
|
+
sources: {},
|
|
63
|
+
rawContent: null,
|
|
64
|
+
};
|
|
65
|
+
for (const [prop, value] of Object.entries(block)) {
|
|
66
|
+
const sfcLang = SFC_FIELD_MAP[prop] || 'METADATA';
|
|
67
|
+
|
|
68
|
+
switch (sfcLang) {
|
|
69
|
+
case 'json':
|
|
70
|
+
if (typeof value !== 'object' && !Array.isArray(value)) throw new Error(`Object or array is expected for ${prop} property`);
|
|
71
|
+
sfc.jsons[prop] = value;
|
|
72
|
+
break;
|
|
73
|
+
case 'DELETE':
|
|
74
|
+
break;
|
|
75
|
+
case 'METADATA':
|
|
76
|
+
sfc.metadata[prop] = value;
|
|
77
|
+
break;
|
|
78
|
+
default:
|
|
79
|
+
if (typeof value !== 'string') throw new Error(`String is expected for ${prop} property`);
|
|
80
|
+
sfc.sources[prop] = { source: value, lang: sfcLang };
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (block.app) {
|
|
86
|
+
sfc.metadata['app'] = { name: block.app.name };
|
|
87
|
+
}
|
|
88
|
+
return sfc;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function convertSfcToV3(sfc: SfcBlock): V3MongoBlock {
|
|
92
|
+
const block: V3MongoBlock = {
|
|
93
|
+
Name: sfc.identity.name,
|
|
94
|
+
Type: sfc.identity.blockTypeName,
|
|
95
|
+
Folder: sfc.identity.folder,
|
|
96
|
+
...sfc.metadata,
|
|
97
|
+
...sfc.jsons,
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
for (const [key, value] of Object.entries(sfc.sources)) {
|
|
101
|
+
block[key] = value.source;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return block;
|
|
105
|
+
}
|