@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.
Files changed (61) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +5 -0
  3. package/dist/cli/fix-folders.d.ts +2 -0
  4. package/dist/cli/fix-folders.d.ts.map +1 -0
  5. package/dist/cli/fix-folders.js +51 -0
  6. package/dist/cli/index.d.ts +4 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +49 -0
  9. package/dist/cli/init.d.ts +2 -0
  10. package/dist/cli/init.d.ts.map +1 -0
  11. package/dist/cli/init.js +132 -0
  12. package/dist/cli/migrate.d.ts +2 -0
  13. package/dist/cli/migrate.d.ts.map +1 -0
  14. package/dist/cli/migrate.js +35 -0
  15. package/dist/cli/start.d.ts +3 -0
  16. package/dist/cli/start.d.ts.map +1 -0
  17. package/dist/cli/start.js +40 -0
  18. package/dist/configuration.d.ts +30 -0
  19. package/dist/configuration.d.ts.map +1 -0
  20. package/dist/configuration.js +115 -0
  21. package/dist/index.d.ts +7 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +38 -0
  24. package/dist/launcher.d.ts +2 -0
  25. package/dist/launcher.d.ts.map +1 -0
  26. package/dist/launcher.js +40 -0
  27. package/dist/loader.d.ts +4 -0
  28. package/dist/loader.d.ts.map +1 -0
  29. package/dist/loader.js +65 -0
  30. package/dist/utils/compile.d.ts +13 -0
  31. package/dist/utils/compile.d.ts.map +1 -0
  32. package/dist/utils/compile.js +55 -0
  33. package/dist/utils/fileUtils.d.ts +12 -0
  34. package/dist/utils/fileUtils.d.ts.map +1 -0
  35. package/dist/utils/fileUtils.js +42 -0
  36. package/dist/utils/sfc.d.ts +55 -0
  37. package/dist/utils/sfc.d.ts.map +1 -0
  38. package/dist/utils/sfc.js +128 -0
  39. package/dist/utils/textUtils.d.ts +17 -0
  40. package/dist/utils/textUtils.d.ts.map +1 -0
  41. package/dist/utils/textUtils.js +101 -0
  42. package/dist/utils/v3.d.ts +12 -0
  43. package/dist/utils/v3.d.ts.map +1 -0
  44. package/dist/utils/v3.js +98 -0
  45. package/jsx-runtime/jsx-runtime.js +16 -0
  46. package/jsx-runtime/package.json +5 -0
  47. package/package.json +80 -0
  48. package/src/cli/fix-folders.ts +57 -0
  49. package/src/cli/index.ts +46 -0
  50. package/src/cli/init.ts +146 -0
  51. package/src/cli/migrate.ts +30 -0
  52. package/src/cli/start.ts +34 -0
  53. package/src/configuration.ts +124 -0
  54. package/src/index.ts +6 -0
  55. package/src/launcher.ts +39 -0
  56. package/src/loader.ts +68 -0
  57. package/src/utils/compile.ts +68 -0
  58. package/src/utils/fileUtils.ts +54 -0
  59. package/src/utils/sfc.ts +155 -0
  60. package/src/utils/textUtils.ts +82 -0
  61. 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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
@@ -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,2 @@
1
+ export declare function launchBooter(booterBlockName?: string): Promise<void>;
2
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAmBA,wBAAsB,YAAY,CAAC,eAAe,SAAW,iBAmB5D"}
@@ -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
@@ -0,0 +1,4 @@
1
+ import { SfcBlock } from './utils/sfc';
2
+ export declare function readBlockFiles(blocksDir: string): Promise<SfcBlock[]>;
3
+ export declare function loadAllBlocks(): Promise<SfcBlock[]>;
4
+ //# sourceMappingURL=loader.d.ts.map
@@ -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"}