@marsx-dev/launcher 0.0.1-4.1
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 +201 -0
- package/README.md +5 -0
- package/dist/cli/fix-folders.d.ts +2 -0
- package/dist/cli/fix-folders.d.ts.map +1 -0
- package/dist/cli/fix-folders.js +51 -0
- package/dist/cli/index.d.ts +4 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +49 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +132 -0
- package/dist/cli/migrate.d.ts +2 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +35 -0
- package/dist/cli/start.d.ts +3 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +40 -0
- package/dist/configuration.d.ts +30 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/configuration.js +115 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/launcher.d.ts +2 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +40 -0
- package/dist/loader.d.ts +4 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +65 -0
- package/dist/utils/compile.d.ts +13 -0
- package/dist/utils/compile.d.ts.map +1 -0
- package/dist/utils/compile.js +55 -0
- package/dist/utils/fileUtils.d.ts +12 -0
- package/dist/utils/fileUtils.d.ts.map +1 -0
- package/dist/utils/fileUtils.js +42 -0
- package/dist/utils/sfc.d.ts +55 -0
- package/dist/utils/sfc.d.ts.map +1 -0
- package/dist/utils/sfc.js +128 -0
- package/dist/utils/textUtils.d.ts +17 -0
- package/dist/utils/textUtils.d.ts.map +1 -0
- package/dist/utils/textUtils.js +101 -0
- package/dist/utils/v3.d.ts +12 -0
- package/dist/utils/v3.d.ts.map +1 -0
- package/dist/utils/v3.js +98 -0
- package/jsx-runtime/jsx-runtime.js +16 -0
- package/jsx-runtime/package.json +5 -0
- package/package.json +80 -0
- package/src/cli/fix-folders.ts +57 -0
- package/src/cli/index.ts +46 -0
- package/src/cli/init.ts +146 -0
- package/src/cli/migrate.ts +30 -0
- package/src/cli/start.ts +34 -0
- package/src/configuration.ts +124 -0
- package/src/index.ts +6 -0
- package/src/launcher.ts +39 -0
- package/src/loader.ts +68 -0
- package/src/utils/compile.ts +68 -0
- package/src/utils/fileUtils.ts +54 -0
- package/src/utils/sfc.ts +155 -0
- package/src/utils/textUtils.ts +82 -0
- package/src/utils/v3.ts +104 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.CustomEnvironmentVariables = exports.config = exports.ConfigError = void 0;
|
|
26
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
27
|
+
process.env['SUPPRESS_NO_CONFIG_WARNING'] = 'true';
|
|
28
|
+
const config_1 = __importDefault(require("config"));
|
|
29
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
30
|
+
const path_1 = __importDefault(require("path"));
|
|
31
|
+
const yup = __importStar(require("yup"));
|
|
32
|
+
const yup_1 = require("yup");
|
|
33
|
+
class ConfigError extends Error {
|
|
34
|
+
}
|
|
35
|
+
exports.ConfigError = ConfigError;
|
|
36
|
+
const ImportProjectSchema = yup.object({
|
|
37
|
+
name: yup.string().required(),
|
|
38
|
+
url: yup.string().url().required(),
|
|
39
|
+
api_key: yup.string().required(),
|
|
40
|
+
git_commit_ish: yup.string().optional(),
|
|
41
|
+
});
|
|
42
|
+
const ConfigSchema = yup.object().shape({
|
|
43
|
+
production: yup.boolean().required(),
|
|
44
|
+
port: yup.number().required().positive().integer(),
|
|
45
|
+
blocksDir: yup
|
|
46
|
+
.string()
|
|
47
|
+
.required()
|
|
48
|
+
.transform(v => path_1.default.resolve(v)),
|
|
49
|
+
cacheDir: yup
|
|
50
|
+
.string()
|
|
51
|
+
.required()
|
|
52
|
+
.transform(v => path_1.default.resolve(v)),
|
|
53
|
+
mongoConn: yup.string().required(),
|
|
54
|
+
mongoDbName: yup.string().required(),
|
|
55
|
+
azureStorageConnection: yup.string().required(),
|
|
56
|
+
azureStorageAccountName: yup.string().required(),
|
|
57
|
+
azureStorageUrl: yup.string().required(),
|
|
58
|
+
secret: yup.string().required(),
|
|
59
|
+
webFilesTable: yup.string().required(),
|
|
60
|
+
webRecentFilesTable: yup.string().required(),
|
|
61
|
+
webFilesBlob: yup.string().required(),
|
|
62
|
+
importProjects: yup.array().of(ImportProjectSchema).required(),
|
|
63
|
+
});
|
|
64
|
+
function ErrorThrowingConfig(errorMessage) {
|
|
65
|
+
return new Proxy({}, {
|
|
66
|
+
get() {
|
|
67
|
+
throw new ConfigError(errorMessage);
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function validateConfig() {
|
|
72
|
+
if (config_1.default.util.getConfigSources().length === 0) {
|
|
73
|
+
return ErrorThrowingConfig('Config file not found, ensure you have "config/default.json" file.');
|
|
74
|
+
}
|
|
75
|
+
const configObject = { ...getConfigFromEnv(), ...config_1.default.util.toObject() };
|
|
76
|
+
try {
|
|
77
|
+
return ConfigSchema.validateSync(configObject, { abortEarly: false, stripUnknown: false });
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
if (e instanceof yup_1.ValidationError) {
|
|
81
|
+
return ErrorThrowingConfig(e.errors.join('\n'));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw e;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function getConfigFromEnv() {
|
|
89
|
+
let envConfigObject = {};
|
|
90
|
+
try {
|
|
91
|
+
envConfigObject = ConfigSchema.cast(process.env, { stripUnknown: true });
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
console.log(chalk_1.default.yellow('\nENV variables were ignored due to an error during casting ENV variables into Schema, ' + 'please cleanup ENV or fix the error'));
|
|
95
|
+
console.error(err);
|
|
96
|
+
console.log('\n');
|
|
97
|
+
}
|
|
98
|
+
return envConfigObject;
|
|
99
|
+
}
|
|
100
|
+
exports.config = validateConfig();
|
|
101
|
+
function getEnvVarMapping() {
|
|
102
|
+
const result = {};
|
|
103
|
+
for (const [name, field] of Object.entries(ConfigSchema.fields)) {
|
|
104
|
+
const envVar = `MARSX_${lodash_1.default.snakeCase(name).toUpperCase()}`;
|
|
105
|
+
if ('type' in field && (field.type === 'object' || field.type === 'array')) {
|
|
106
|
+
result[name] = { __name: envVar, __format: 'json' };
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
result[name] = envVar;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
exports.CustomEnvironmentVariables = getEnvVarMapping();
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEI7QUFFMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNuRCxvREFBa0M7QUFDbEMsb0RBQXVCO0FBQ3ZCLGdEQUF3QjtBQUN4Qix5Q0FBMkI7QUFDM0IsNkJBQXNDO0FBMEJ0QyxNQUFhLFdBQVksU0FBUSxLQUFLO0NBQUc7QUFBekMsa0NBQXlDO0FBRXpDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxjQUFjLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUM7QUFFSCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ3RDLFVBQVUsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2xELFNBQVMsRUFBRSxHQUFHO1NBQ1gsTUFBTSxFQUFFO1NBQ1IsUUFBUSxFQUFFO1NBQ1YsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { config, ImportProjectConfig, Config } from './configuration';
|
|
2
|
+
export { compileSfcSource, transpileTypescript } from './utils/compile';
|
|
3
|
+
export { parseSFC, serializeSfc, parseSfcPath, serializeSfcPath, SfcBlock, SfcPath, SfcSource } from './utils/sfc';
|
|
4
|
+
export { convertSfcToV3, convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
|
5
|
+
export * as textUtils from './utils/textUtils';
|
|
6
|
+
export * as fileUtils from './utils/fileUtils';
|
|
7
|
+
//# 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,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.fileUtils = exports.textUtils = exports.convertV3ToSfc = exports.convertSfcToV3 = exports.serializeSfcPath = exports.parseSfcPath = exports.serializeSfc = exports.parseSFC = exports.transpileTypescript = exports.compileSfcSource = exports.config = void 0;
|
|
23
|
+
var configuration_1 = require("./configuration");
|
|
24
|
+
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return configuration_1.config; } });
|
|
25
|
+
var compile_1 = require("./utils/compile");
|
|
26
|
+
Object.defineProperty(exports, "compileSfcSource", { enumerable: true, get: function () { return compile_1.compileSfcSource; } });
|
|
27
|
+
Object.defineProperty(exports, "transpileTypescript", { enumerable: true, get: function () { return compile_1.transpileTypescript; } });
|
|
28
|
+
var sfc_1 = require("./utils/sfc");
|
|
29
|
+
Object.defineProperty(exports, "parseSFC", { enumerable: true, get: function () { return sfc_1.parseSFC; } });
|
|
30
|
+
Object.defineProperty(exports, "serializeSfc", { enumerable: true, get: function () { return sfc_1.serializeSfc; } });
|
|
31
|
+
Object.defineProperty(exports, "parseSfcPath", { enumerable: true, get: function () { return sfc_1.parseSfcPath; } });
|
|
32
|
+
Object.defineProperty(exports, "serializeSfcPath", { enumerable: true, get: function () { return sfc_1.serializeSfcPath; } });
|
|
33
|
+
var v3_1 = require("./utils/v3");
|
|
34
|
+
Object.defineProperty(exports, "convertSfcToV3", { enumerable: true, get: function () { return v3_1.convertSfcToV3; } });
|
|
35
|
+
Object.defineProperty(exports, "convertV3ToSfc", { enumerable: true, get: function () { return v3_1.convertV3ToSfc; } });
|
|
36
|
+
exports.textUtils = __importStar(require("./utils/textUtils"));
|
|
37
|
+
exports.fileUtils = __importStar(require("./utils/fileUtils"));
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFzRTtBQUE3RCx1R0FBQSxNQUFNLE9BQUE7QUFDZiwyQ0FBd0U7QUFBL0QsMkdBQUEsZ0JBQWdCLE9BQUE7QUFBRSw4R0FBQSxtQkFBbUIsT0FBQTtBQUM5QyxtQ0FBbUg7QUFBMUcsK0ZBQUEsUUFBUSxPQUFBO0FBQUUsbUdBQUEsWUFBWSxPQUFBO0FBQUUsbUdBQUEsWUFBWSxPQUFBO0FBQUUsdUdBQUEsZ0JBQWdCLE9BQUE7QUFDL0QsaUNBQTBFO0FBQWpFLG9HQUFBLGNBQWMsT0FBQTtBQUFFLG9HQUFBLGNBQWMsT0FBQTtBQUN2QywrREFBK0M7QUFDL0MsK0RBQStDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAmBA,wBAAsB,YAAY,CAAC,eAAe,SAAW,iBAmB5D"}
|
package/dist/launcher.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.launchBooter = void 0;
|
|
4
|
+
const configuration_1 = require("./configuration");
|
|
5
|
+
const loader_1 = require("./loader");
|
|
6
|
+
const compile_1 = require("./utils/compile");
|
|
7
|
+
const sfc_1 = require("./utils/sfc");
|
|
8
|
+
const fileUtils_1 = require("./utils/fileUtils");
|
|
9
|
+
const textUtils_1 = require("./utils/textUtils");
|
|
10
|
+
const v3_1 = require("./utils/v3");
|
|
11
|
+
const LAUNCHER_UTILS = {
|
|
12
|
+
config: configuration_1.config,
|
|
13
|
+
parseSFC: sfc_1.parseSFC,
|
|
14
|
+
serializeSfc: sfc_1.serializeSfc,
|
|
15
|
+
convertV3ToSfc: v3_1.convertV3ToSfc,
|
|
16
|
+
convertSfcToV3: v3_1.convertSfcToV3,
|
|
17
|
+
transpileTypescript: compile_1.transpileTypescript,
|
|
18
|
+
compileSfcSource: compile_1.compileSfcSource,
|
|
19
|
+
writeFileMakeDir: fileUtils_1.writeFileMakeDir,
|
|
20
|
+
};
|
|
21
|
+
async function launchBooter(booterBlockName = 'Booter') {
|
|
22
|
+
const allBlocks = await (0, loader_1.loadAllBlocks)();
|
|
23
|
+
const booterBlocks = allBlocks.filter(b => b.path.name === booterBlockName);
|
|
24
|
+
if (booterBlocks.length === 0)
|
|
25
|
+
throw new Error(`Booter block ${booterBlockName} not found. Ensure you have it locally or it is imported.`);
|
|
26
|
+
// Take last because order of imports matter and local blocks always override imported.
|
|
27
|
+
const booterBlock = booterBlocks[booterBlocks.length - 1];
|
|
28
|
+
(0, textUtils_1.assert)(booterBlock);
|
|
29
|
+
const compiledBooterPath = await (0, compile_1.compileSfcSource)(booterBlock, 'BlockFunction');
|
|
30
|
+
try {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
32
|
+
await require(compiledBooterPath).default(allBlocks, LAUNCHER_UTILS);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
console.error('Booter failed with:', e);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.launchBooter = launchBooter;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGF1bmNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXlDO0FBQ3pDLHFDQUF5QztBQUN6Qyw2Q0FBd0U7QUFDeEUscUNBQXFEO0FBQ3JELGlEQUFxRDtBQUNyRCxpREFBMkM7QUFDM0MsbUNBQTREO0FBRTVELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE1BQU0sRUFBTixzQkFBTTtJQUNOLFFBQVEsRUFBUixjQUFRO0lBQ1IsWUFBWSxFQUFaLGtCQUFZO0lBQ1osY0FBYyxFQUFkLG1CQUFjO0lBQ2QsY0FBYyxFQUFkLG1CQUFjO0lBQ2QsbUJBQW1CLEVBQW5CLDZCQUFtQjtJQUNuQixnQkFBZ0IsRUFBaEIsMEJBQWdCO0lBQ2hCLGdCQUFnQixFQUFoQiw0QkFBZ0I7Q0FDakIsQ0FBQztBQUVLLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBZSxHQUFHLFFBQVE7SUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLHNCQUFhLEdBQUUsQ0FBQztJQUV4QyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLENBQUM7SUFDNUUsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsZUFBZSwyREFBMkQsQ0FBQyxDQUFDO0lBRTlHLHVGQUF1RjtJQUN2RixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxJQUFBLGtCQUFNLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFFcEIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ2hGLElBQUk7UUFDRiw4REFBOEQ7UUFDOUQsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQ3RFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDO0FBbkJELG9DQW1CQyJ9
|
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;AAmDjD,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,uBAGrD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIzD"}
|
package/dist/loader.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadAllBlocks = exports.readBlockFiles = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const json_stable_stringify_1 = __importDefault(require("json-stable-stringify"));
|
|
11
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const configuration_1 = require("./configuration");
|
|
14
|
+
const sfc_1 = require("./utils/sfc");
|
|
15
|
+
const fileUtils_1 = require("./utils/fileUtils");
|
|
16
|
+
const v3_1 = require("./utils/v3");
|
|
17
|
+
async function downloadFromExternal(externalImport) {
|
|
18
|
+
const params = { api_key: externalImport.api_key, git_commit_ish: externalImport.git_commit_ish || '' };
|
|
19
|
+
const url = lodash_1.default.trimEnd(externalImport.url, '/');
|
|
20
|
+
console.log(`Downloading blocks from ${url}`);
|
|
21
|
+
try {
|
|
22
|
+
const v4Resp = await axios_1.default.get(`${url}/api/GetExportedAppBlocksV4`, { params });
|
|
23
|
+
return v4Resp.data;
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
console.log(`${url} does not support V4, fallback to V3`);
|
|
27
|
+
}
|
|
28
|
+
const v3Resp = await axios_1.default.get(`${url}/api/GetExportedAppBlocks`, { params });
|
|
29
|
+
return { commit: '', hash: '', blocks: v3Resp.data.map(b => (0, v3_1.convertV3ToSfc)(b)) };
|
|
30
|
+
}
|
|
31
|
+
async function loadCachedOrDownload(externalImport) {
|
|
32
|
+
const hash = crypto_1.default.createHash('md5').update((0, json_stable_stringify_1.default)(externalImport)).digest('hex');
|
|
33
|
+
const cacheFileName = `${externalImport.name}_${externalImport.git_commit_ish}_${hash}.json`.replace(/[^\w.]+/g, '_');
|
|
34
|
+
const cacheFilePath = path_1.default.join(configuration_1.config.cacheDir, 'imports', cacheFileName);
|
|
35
|
+
if (await (0, fileUtils_1.isFile)(cacheFilePath)) {
|
|
36
|
+
const content = await fs_1.promises.readFile(cacheFilePath);
|
|
37
|
+
console.log(`Loading cached blocks from ${externalImport.url}`);
|
|
38
|
+
return JSON.parse(content.toString('utf-8'));
|
|
39
|
+
}
|
|
40
|
+
const { blocks } = await downloadFromExternal(externalImport);
|
|
41
|
+
console.log(`Downloaded ${blocks.length} blocks from ${externalImport.url}`);
|
|
42
|
+
await (0, fileUtils_1.writeFileMakeDir)(cacheFilePath, JSON.stringify(blocks, null, 2), 'utf-8');
|
|
43
|
+
return blocks;
|
|
44
|
+
}
|
|
45
|
+
async function downloadAll(externalImports) {
|
|
46
|
+
const responses = await Promise.all(externalImports.map(loadCachedOrDownload));
|
|
47
|
+
return lodash_1.default.flatten(responses);
|
|
48
|
+
}
|
|
49
|
+
async function readBlockFile(blocksDir, filePath) {
|
|
50
|
+
const content = await fs_1.promises.readFile(filePath);
|
|
51
|
+
const relPath = path_1.default.relative(blocksDir, filePath);
|
|
52
|
+
return (0, sfc_1.parseSFC)(relPath, content);
|
|
53
|
+
}
|
|
54
|
+
async function readBlockFiles(blocksDir) {
|
|
55
|
+
const files = await (0, fileUtils_1.listFilesRecursive)(blocksDir);
|
|
56
|
+
return await Promise.all(files.filter(f => !path_1.default.basename(f).startsWith('.')).map(f => readBlockFile(blocksDir, f)));
|
|
57
|
+
}
|
|
58
|
+
exports.readBlockFiles = readBlockFiles;
|
|
59
|
+
async function loadAllBlocks() {
|
|
60
|
+
const externalBlocks = await downloadAll(configuration_1.config.importProjects);
|
|
61
|
+
const localBlocks = await readBlockFiles(configuration_1.config.blocksDir);
|
|
62
|
+
return [...externalBlocks, ...localBlocks];
|
|
63
|
+
}
|
|
64
|
+
exports.loadAllBlocks = loadAllBlocks;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDJCQUFvQztBQUNwQyxrRkFBOEM7QUFDOUMsb0RBQXVCO0FBQ3ZCLGdEQUF3QjtBQUN4QixtREFBOEQ7QUFDOUQscUNBQWlEO0FBQ2pELGlEQUFpRjtBQUNqRixtQ0FBMEQ7QUFJMUQsS0FBSyxVQUFVLG9CQUFvQixDQUFDLGNBQW1DO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7SUFFeEcsTUFBTSxHQUFHLEdBQUcsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQWEsR0FBRyxHQUFHLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDcEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLHNDQUFzQyxDQUFDLENBQUM7S0FDM0Q7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQWlCLEdBQUcsR0FBRywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxH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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { SfcBlock } from './sfc';
|
|
3
|
+
export declare function transpileTypescript(sourceCode: string, options?: {
|
|
4
|
+
sourceRoot?: string;
|
|
5
|
+
originalFilePath?: string;
|
|
6
|
+
compiledFilePath?: string;
|
|
7
|
+
lineOffset?: number | undefined;
|
|
8
|
+
compilerOptions?: ts.CompilerOptions;
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function compileSfcSource(sfcBlock: SfcBlock, sourceId: string, options?: {
|
|
11
|
+
compileOptions?: ts.CompilerOptions;
|
|
12
|
+
}): Promise<string>;
|
|
13
|
+
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/utils/compile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjC,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;IAChC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;CACtC,GACA,MAAM,CAyBR;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,EAAE,CAAC,eAAe,CAAA;CAAE,GAChD,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.compileSfcSource = exports.transpileTypescript = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const configuration_1 = require("../configuration");
|
|
10
|
+
const fileUtils_1 = require("./fileUtils");
|
|
11
|
+
const textUtils_1 = require("./textUtils");
|
|
12
|
+
function genSourceMapComment(sourceMap) {
|
|
13
|
+
return `\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(JSON.stringify(sourceMap)).toString('base64')}`;
|
|
14
|
+
}
|
|
15
|
+
function transpileTypescript(sourceCode, options) {
|
|
16
|
+
const compiledFilePath = options?.compiledFilePath || '<UNKNOWN>.js';
|
|
17
|
+
const originalFilePath = options?.originalFilePath || '<UNKNOWN>.ts';
|
|
18
|
+
if (options?.lineOffset) {
|
|
19
|
+
sourceCode = '\n'.repeat(options.lineOffset) + sourceCode;
|
|
20
|
+
}
|
|
21
|
+
const transpiled = typescript_1.default.transpileModule(sourceCode, {
|
|
22
|
+
compilerOptions: {
|
|
23
|
+
module: typescript_1.default.ModuleKind.CommonJS,
|
|
24
|
+
target: typescript_1.default.ScriptTarget.Latest,
|
|
25
|
+
esModuleInterop: true,
|
|
26
|
+
sourceMap: true,
|
|
27
|
+
...options?.compilerOptions,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
(0, textUtils_1.assert)(transpiled.sourceMapText);
|
|
31
|
+
const sourceMap = JSON.parse(transpiled.sourceMapText);
|
|
32
|
+
sourceMap.sourceRoot = options?.sourceRoot || '';
|
|
33
|
+
sourceMap.file = compiledFilePath;
|
|
34
|
+
sourceMap.sources = [originalFilePath];
|
|
35
|
+
const sourceMapComment = genSourceMapComment(sourceMap);
|
|
36
|
+
return transpiled.outputText.replace(/\n\/\/# sourceMappingURL=.+/, '') + sourceMapComment;
|
|
37
|
+
}
|
|
38
|
+
exports.transpileTypescript = transpileTypescript;
|
|
39
|
+
async function compileSfcSource(sfcBlock, sourceId, options) {
|
|
40
|
+
const sourceCode = sfcBlock.sources[sourceId];
|
|
41
|
+
if (!sourceCode)
|
|
42
|
+
throw new Error(`Source code block ${sourceId} not found in ${sfcBlock.path.filePath}`);
|
|
43
|
+
const compiledFilePath = path_1.default.join(configuration_1.config.cacheDir, 'compiled', `${sfcBlock.path.filePath}.${sourceId}.js`);
|
|
44
|
+
const originalFilePath = path_1.default.join(configuration_1.config.blocksDir, sfcBlock.path.filePath);
|
|
45
|
+
const code = transpileTypescript(sourceCode.source, {
|
|
46
|
+
compiledFilePath,
|
|
47
|
+
originalFilePath,
|
|
48
|
+
lineOffset: sourceCode.lineOffset,
|
|
49
|
+
...options,
|
|
50
|
+
});
|
|
51
|
+
await (0, fileUtils_1.writeFileMakeDir)(compiledFilePath, code, 'utf-8');
|
|
52
|
+
return compiledFilePath;
|
|
53
|
+
}
|
|
54
|
+
exports.compileSfcSource = compileSfcSource;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGdEQUF3QjtBQUN4Qiw0REFBNEI7QUFDNUIsb0RBQTBDO0FBRTFDLDJDQUErQztBQUMvQywyQ0FBcUM7QUFFckMsU0FBUyxtQkFBbUIsQ0FBQyxTQUEyQjtJQUN0RCxPQUFPLHVEQUF1RCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1SCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQ2pDLFVBQWtCLEVBQ2xCLE9BTUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxjQUFjLENBQUM7SUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksY0FBYyxDQUFDO0lBRXJFLElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN2QixVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDO0tBQzNEO0lBRUQsTUFBTSxVQUFVLEdBQUcsb0JBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFO1FBQ2hELGVBQWUsRUFBRTtZQUNmLE1BQU0sRUFBRSxvQkFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1lBQzlCLE1BQU0sRUFBRSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQzlCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsR0FBRyxPQUFPLEVBQUUsZUFBZTtTQUM1QjtLQUNGLENBQUMsQ0FBQztJQUNILElBQUEsa0JBQU0sRUFBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFakMsTUFBTSxTQUFTLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLFNBQVMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDakQsU0FBUyxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztJQUNsQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2QyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7QUFDN0YsQ0FBQztBQWxDRCxrREFrQ0M7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFFBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLE9BQWlEO0lBRWpELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLGlCQUFpQixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFekcsTUFBTSxnQkFBZ0IsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUM7SUFDNUcsTUFBTSxnQkFBZ0IsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFNLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUNsRCxnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtRQUNqQyxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7SUFFSCxNQUFNLElBQUEsNEJBQWdCLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQW5CRCw0Q0FtQkMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
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 listFilesRecursive(dir: string): Promise<string[]>;
|
|
6
|
+
export declare function isFile(filePath: string): Promise<boolean>;
|
|
7
|
+
export declare function isDirectory(dirPath: string): Promise<boolean>;
|
|
8
|
+
export declare function writeFileMakeDir(filePath: string, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView> | Stream, options?: (ObjectEncodingOptions & {
|
|
9
|
+
mode?: Mode | undefined;
|
|
10
|
+
flag?: OpenMode | undefined;
|
|
11
|
+
} & Abortable) | BufferEncoding | null): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=fileUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/fileUtils.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,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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.writeFileMakeDir = exports.isDirectory = exports.isFile = exports.listFilesRecursive = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
async function listFilesRecursive(dir) {
|
|
11
|
+
const entries = await fs_1.promises.readdir(dir);
|
|
12
|
+
const files = await Promise.all(entries.map(async (entry) => {
|
|
13
|
+
const entryPath = path_1.default.resolve(dir, entry);
|
|
14
|
+
return (await fs_1.promises.stat(entryPath)).isDirectory() ? listFilesRecursive(entryPath) : [entryPath];
|
|
15
|
+
}));
|
|
16
|
+
return lodash_1.default.flatten(files);
|
|
17
|
+
}
|
|
18
|
+
exports.listFilesRecursive = listFilesRecursive;
|
|
19
|
+
async function isFile(filePath) {
|
|
20
|
+
try {
|
|
21
|
+
return (await fs_1.promises.stat(filePath)).isFile();
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.isFile = isFile;
|
|
28
|
+
async function isDirectory(dirPath) {
|
|
29
|
+
try {
|
|
30
|
+
return (await fs_1.promises.stat(dirPath)).isDirectory();
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.isDirectory = isDirectory;
|
|
37
|
+
async function writeFileMakeDir(filePath, data, options) {
|
|
38
|
+
await fs_1.promises.mkdir(path_1.default.dirname(filePath), { recursive: true });
|
|
39
|
+
await fs_1.promises.writeFile(filePath, data, options);
|
|
40
|
+
}
|
|
41
|
+
exports.writeFileMakeDir = writeFileMakeDir;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZpbGVVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBb0M7QUFDcEMsb0RBQXVCO0FBSXZCLGdEQUF3QjtBQUVqQixLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBVztJQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQXFCLEVBQUU7UUFDN0MsTUFBTSxTQUFTLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLE1BQU0sYUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxnQkFBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBVkQsZ0RBVUM7QUFFTSxLQUFLLFVBQVUsTUFBTSxDQUFDLFFBQWdCO0lBQzNDLElBQUk7UUFDRixPQUFPLENBQUMsTUFBTSxhQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDM0M7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBTkQsd0JBTUM7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFDLE9BQWU7SUFDL0MsSUFBSTtRQUNGLE9BQU8sQ0FBQyxNQUFNLGFBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMvQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFORCxrQ0FNQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsUUFBZ0IsRUFDaEIsSUFLVSxFQUNWLE9BTVE7SUFFUixNQUFNLGFBQUUsQ0FBQyxLQUFLLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFsQkQsNENBa0JDIn0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const METADATA_SECTION_ID = "metadata";
|
|
3
|
+
export declare const MARS_SFC_EXT = "mars";
|
|
4
|
+
export declare type SfcPath = {
|
|
5
|
+
folder: string;
|
|
6
|
+
name: string;
|
|
7
|
+
blockTypeName: string;
|
|
8
|
+
ext: string;
|
|
9
|
+
filePath: string;
|
|
10
|
+
};
|
|
11
|
+
export declare type SfcSource = {
|
|
12
|
+
source: string;
|
|
13
|
+
lang: keyof typeof LANG_TAG_MAP | string | undefined;
|
|
14
|
+
props?: Record<string, string | undefined>;
|
|
15
|
+
lineOffset?: number;
|
|
16
|
+
};
|
|
17
|
+
export declare type SfcBlock = {
|
|
18
|
+
path: SfcPath;
|
|
19
|
+
} & ({
|
|
20
|
+
metadata: Record<string, unknown>;
|
|
21
|
+
jsons: Record<string, unknown>;
|
|
22
|
+
sources: Record<string, SfcSource>;
|
|
23
|
+
rawContent: null;
|
|
24
|
+
} | {
|
|
25
|
+
metadata: EmptyObject;
|
|
26
|
+
jsons: EmptyObject;
|
|
27
|
+
sources: EmptyObject;
|
|
28
|
+
rawContent: Buffer;
|
|
29
|
+
});
|
|
30
|
+
export declare function parseSfcPath(filePath: string): SfcPath;
|
|
31
|
+
export declare function serializeSfcPath(identity: SfcPath): string;
|
|
32
|
+
declare type EmptyObject = {
|
|
33
|
+
[K in string]: never;
|
|
34
|
+
};
|
|
35
|
+
declare const LANG_TAG_MAP: {
|
|
36
|
+
html: string;
|
|
37
|
+
pug: string;
|
|
38
|
+
js: string;
|
|
39
|
+
jsx: string;
|
|
40
|
+
ts: string;
|
|
41
|
+
tsx: string;
|
|
42
|
+
css: string;
|
|
43
|
+
scss: string;
|
|
44
|
+
less: string;
|
|
45
|
+
sass: string;
|
|
46
|
+
stylus: string;
|
|
47
|
+
text: string;
|
|
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":";AAMA,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,YAAY,SAAS,CAAC;AAInC,oBAAY,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,OAAO,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,CACvC;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;AAEF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAiBtD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,aAAK,WAAW,GAAG;KAChB,CAAC,IAAI,MAAM,GAAG,KAAK;CACrB,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;CAajB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAoDpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA2BnF"}
|