@betty-blocks/cli 26.0.0-beta.1 → 26.0.0-beta.11
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/build/bb-blocks-new.js +28 -0
- package/build/bb-blocks-new.js.map +1 -0
- package/build/bb-blocks-publish.js +112 -0
- package/build/bb-blocks-publish.js.map +1 -0
- package/build/bb-blocks-release.js +32 -0
- package/build/bb-blocks-release.js.map +1 -0
- package/build/bb-blocks.js +19 -0
- package/build/bb-blocks.js.map +1 -0
- package/build/bb-bundle-init.js +47 -0
- package/build/bb-bundle-init.js.map +1 -0
- package/build/bb-bundle.js +22 -0
- package/build/bb-bundle.js.map +1 -0
- package/build/bb-components-build.js +449 -0
- package/build/bb-components-build.js.map +1 -0
- package/build/bb-components-create.js +55 -0
- package/build/bb-components-create.js.map +1 -0
- package/build/bb-components-generate.js +182 -0
- package/build/bb-components-generate.js.map +1 -0
- package/build/bb-components-publish-bundle.js +64 -0
- package/build/bb-components-publish-bundle.js.map +1 -0
- package/build/bb-components-publish.js +71 -0
- package/build/bb-components-publish.js.map +1 -0
- package/build/bb-components-serve.js +40 -0
- package/build/bb-components-serve.js.map +1 -0
- package/build/bb-components.js +30 -0
- package/build/bb-components.js.map +1 -0
- package/build/bb-functions-build.js +58 -0
- package/build/bb-functions-build.js.map +1 -0
- package/build/bb-functions-bump.js +78 -0
- package/build/bb-functions-bump.js.map +1 -0
- package/build/bb-functions-init.js +58 -0
- package/build/bb-functions-init.js.map +1 -0
- package/build/bb-functions-login.js +31 -0
- package/build/bb-functions-login.js.map +1 -0
- package/build/bb-functions-logout.js +15 -0
- package/build/bb-functions-logout.js.map +1 -0
- package/build/bb-functions-new.js +27 -0
- package/build/bb-functions-new.js.map +1 -0
- package/build/bb-functions-publish.js +61 -0
- package/build/bb-functions-publish.js.map +1 -0
- package/build/bb-functions-validate.js +44 -0
- package/build/bb-functions-validate.js.map +1 -0
- package/build/bb-functions.js +35 -0
- package/build/bb-functions.js.map +1 -0
- package/build/bb.js +31 -0
- package/build/bb.js.map +1 -0
- package/build/blocks/blockDefinitions.js +66 -0
- package/build/blocks/blockDefinitions.js.map +1 -0
- package/build/blocks/publishBlocks.js +70 -0
- package/build/blocks/publishBlocks.js.map +1 -0
- package/build/blocks/releaseBlocks.js +94 -0
- package/build/blocks/releaseBlocks.js.map +1 -0
- package/build/components/comments.js +81 -0
- package/build/components/comments.js.map +1 -0
- package/build/components/compatibility.js +62 -0
- package/build/components/compatibility.js.map +1 -0
- package/build/components/transformers/index.js +42 -0
- package/build/components/transformers/index.js.map +1 -0
- package/build/components-build/index.js +19 -0
- package/build/components-build/index.js.map +1 -0
- package/build/components-build/reportDiagnostics.js +21 -0
- package/build/components-build/reportDiagnostics.js.map +1 -0
- package/build/components-build/styles.js +144 -0
- package/build/components-build/styles.js.map +1 -0
- package/build/functions/acquireAppFunctionsProject.js +19 -0
- package/build/functions/acquireAppFunctionsProject.js.map +1 -0
- package/build/functions/acquireCustomFunctionsProject.js +20 -0
- package/build/functions/acquireCustomFunctionsProject.js.map +1 -0
- package/build/functions/bb-components-functions.js +58 -0
- package/build/functions/bb-components-functions.js.map +1 -0
- package/build/functions/config.js +193 -0
- package/build/functions/config.js.map +1 -0
- package/build/functions/functionDefinitions.js +189 -0
- package/build/functions/functionDefinitions.js.map +1 -0
- package/build/functions/icons.js +48 -0
- package/build/functions/icons.js.map +1 -0
- package/build/functions/publishAppFunctions.js +108 -0
- package/build/functions/publishAppFunctions.js.map +1 -0
- package/build/functions/publishCustomFunctions.js +111 -0
- package/build/functions/publishCustomFunctions.js.map +1 -0
- package/build/functions/publishFunctions.js +113 -0
- package/build/functions/publishFunctions.js.map +1 -0
- package/build/functions/utils.js +24 -0
- package/build/functions/utils.js.map +1 -0
- package/build/functions/validations.js +125 -0
- package/build/functions/validations.js.map +1 -0
- package/build/functions/versions.js +54 -0
- package/build/functions/versions.js.map +1 -0
- package/build/interactions/compatibility.js +121 -0
- package/build/interactions/compatibility.js.map +1 -0
- package/build/interactions/diagnostics.js +26 -0
- package/build/interactions/diagnostics.js.map +1 -0
- package/build/types.js +42 -0
- package/build/types.js.map +1 -0
- package/build/utils/arguments.js +11 -0
- package/build/utils/arguments.js.map +1 -0
- package/build/utils/checkPackageVersion.js +23 -0
- package/build/utils/checkPackageVersion.js.map +1 -0
- package/build/utils/checkUpdateAvailable.js +81 -0
- package/build/utils/checkUpdateAvailable.js.map +1 -0
- package/build/utils/fusionAuth.js +132 -0
- package/build/utils/fusionAuth.js.map +1 -0
- package/build/utils/hash.js +8 -0
- package/build/utils/hash.js.map +1 -0
- package/build/utils/ide.js +167 -0
- package/build/utils/ide.js.map +1 -0
- package/build/utils/login.js +132 -0
- package/build/utils/login.js.map +1 -0
- package/build/utils/pick.js +20 -0
- package/build/utils/pick.js.map +1 -0
- package/build/utils/readFilesByType.js +37 -0
- package/build/utils/readFilesByType.js.map +1 -0
- package/build/utils/rootDir.js +9 -0
- package/build/utils/rootDir.js.map +1 -0
- package/build/utils/serveComponentSet.js +66 -0
- package/build/utils/serveComponentSet.js.map +1 -0
- package/build/utils/transpile.js +30 -0
- package/build/utils/transpile.js.map +1 -0
- package/build/utils/uploadBlob.js +70 -0
- package/build/utils/uploadBlob.js.map +1 -0
- package/build/utils/validation.js +83 -0
- package/build/utils/validation.js.map +1 -0
- package/build/validations/component.js +61 -0
- package/build/validations/component.js.map +1 -0
- package/build/validations/constants.js +211 -0
- package/build/validations/constants.js.map +1 -0
- package/build/validations/function-block-validations/index.js +87 -0
- package/build/validations/function-block-validations/index.js.map +1 -0
- package/build/validations/interaction.js +27 -0
- package/build/validations/interaction.js.map +1 -0
- package/build/validations/prefab/action.js +105 -0
- package/build/validations/prefab/action.js.map +1 -0
- package/build/validations/prefab/component.js +295 -0
- package/build/validations/prefab/component.js.map +1 -0
- package/build/validations/prefab/componentOption.js +153 -0
- package/build/validations/prefab/componentOption.js.map +1 -0
- package/build/validations/prefab/interaction.js +44 -0
- package/build/validations/prefab/interaction.js.map +1 -0
- package/build/validations/prefab/linkedOption.js +45 -0
- package/build/validations/prefab/linkedOption.js.map +1 -0
- package/build/validations/prefab/linkedPartial.js +36 -0
- package/build/validations/prefab/linkedPartial.js.map +1 -0
- package/build/validations/prefab/variable.js +42 -0
- package/build/validations/prefab/variable.js.map +1 -0
- package/build/validations/prefab.js +71 -0
- package/build/validations/prefab.js.map +1 -0
- package/build/validations/styles.js +109 -0
- package/build/validations/styles.js.map +1 -0
- package/package.json +15 -15
- package/build/src/bb-blocks-new.js +0 -6790
- package/build/src/bb-blocks-publish.js +0 -32642
- package/build/src/bb-blocks-release.js +0 -15529
- package/build/src/bb-blocks.js +0 -2149
- package/build/src/bb-bundle-init.js +0 -6036
- package/build/src/bb-bundle.js +0 -2636
- package/build/src/bb-components-build.js +0 -240486
- package/build/src/bb-components-create.js +0 -6047
- package/build/src/bb-components-generate.js +0 -6175
- package/build/src/bb-components-publish-bundle.js +0 -43348
- package/build/src/bb-components-publish.js +0 -43355
- package/build/src/bb-components-serve.js +0 -15328
- package/build/src/bb-components.js +0 -2157
- package/build/src/bb-functions-build.js +0 -4285
- package/build/src/bb-functions-bump.js +0 -14583
- package/build/src/bb-functions-init.js +0 -4750
- package/build/src/bb-functions-login.js +0 -15441
- package/build/src/bb-functions-logout.js +0 -15435
- package/build/src/bb-functions-new.js +0 -9145
- package/build/src/bb-functions-publish.js +0 -86694
- package/build/src/bb-functions-validate.js +0 -22161
- package/build/src/bb-functions.js +0 -2159
- package/build/src/bb.js +0 -2741
- package/src/bb.ts +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,kDAAiD;AACjD,gDAAwB;AAEjB,MAAM,aAAa,GAAG,CAC3B,YAA2B,EACF,EAAE;IAC3B,IAAI,OAAiC,CAAC;IAEtC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAW,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1C,uCACK,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,kBAAE,CAAC,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAW,CAAC,CAAC,IACjE;YACJ,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAxBW,QAAA,aAAa,iBAwBxB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateSchema = exports.logValidationResult = exports.functionValidator = exports.FunctionValidator = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const jsonschema_1 = require("jsonschema");
|
|
18
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const functionDefinitions_1 = require("./functionDefinitions");
|
|
21
|
+
const fetchRemoteSchema = (schemaUrl, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
const res = yield (0, node_fetch_1.default)(schemaUrl, { agent: config.agent });
|
|
23
|
+
const json = yield res.json();
|
|
24
|
+
return json;
|
|
25
|
+
});
|
|
26
|
+
const importNextSchema = (validator, schemaId, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const schemaJSON = yield fetchRemoteSchema(schemaId, config);
|
|
28
|
+
validator.addSchema(schemaJSON, schemaId);
|
|
29
|
+
const nextSchemaId = validator.unresolvedRefs.shift();
|
|
30
|
+
if (!nextSchemaId) {
|
|
31
|
+
return validator;
|
|
32
|
+
}
|
|
33
|
+
return importNextSchema(validator, nextSchemaId, config);
|
|
34
|
+
});
|
|
35
|
+
const importSchema = (validator, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
const functionSchemaUrl = config.schemaUrl + config.functionSchemaPath;
|
|
37
|
+
return importNextSchema(validator, functionSchemaUrl, config);
|
|
38
|
+
});
|
|
39
|
+
const functionValidator = (config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
const validator = new jsonschema_1.Validator();
|
|
41
|
+
return importSchema(validator, config);
|
|
42
|
+
});
|
|
43
|
+
exports.functionValidator = functionValidator;
|
|
44
|
+
const validateFunctionDefinition = (validator, definition) => {
|
|
45
|
+
const functionSchemaId = Object.keys(validator.schemas).find((k) => k.match(/function\.json$/));
|
|
46
|
+
if (!functionSchemaId) {
|
|
47
|
+
throw new Error(`Cannot find Function schema Id, ${functionSchemaId}`);
|
|
48
|
+
}
|
|
49
|
+
const functionSchema = validator.schemas[functionSchemaId];
|
|
50
|
+
return validator.validate(definition, functionSchema);
|
|
51
|
+
};
|
|
52
|
+
const forceVersion = ({ path: functionPath }, functionsDir) => {
|
|
53
|
+
if (!(0, functionDefinitions_1.isFunctionVersion)(path_1.default.dirname(functionPath), functionsDir)) {
|
|
54
|
+
throw new Error(`${path_1.default.dirname(functionPath)} does not apply as a valid version directory`);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const validateSchema = (functionJson, validator) => {
|
|
58
|
+
const { name, version, path: definitionPath, schema, } = functionJson;
|
|
59
|
+
const { errors } = validateFunctionDefinition(validator, schema);
|
|
60
|
+
const status = errors.length ? 'error' : 'ok';
|
|
61
|
+
return {
|
|
62
|
+
errors,
|
|
63
|
+
functionName: `${name}-${version}`,
|
|
64
|
+
path: definitionPath,
|
|
65
|
+
status,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
exports.validateSchema = validateSchema;
|
|
69
|
+
class FunctionValidator {
|
|
70
|
+
constructor(config, functionsDir) {
|
|
71
|
+
this.config = config;
|
|
72
|
+
this.schemaValidator = new jsonschema_1.Validator();
|
|
73
|
+
this.functionsDir = functionsDir;
|
|
74
|
+
}
|
|
75
|
+
initSchema() {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield importSchema(this.schemaValidator, this.config);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
validateFunction(definition) {
|
|
81
|
+
const functionPath = definition.path;
|
|
82
|
+
const functionName = functionPath;
|
|
83
|
+
try {
|
|
84
|
+
forceVersion(definition, this.functionsDir);
|
|
85
|
+
return validateSchema(definition, this.schemaValidator);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
89
|
+
return {
|
|
90
|
+
errors: [new Error(message)],
|
|
91
|
+
functionName,
|
|
92
|
+
path: functionPath,
|
|
93
|
+
status: 'error',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
validateFunctions(functionName, blockFunctions) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const definitions = (0, functionDefinitions_1.functionDefinitions)(this.functionsDir, true);
|
|
100
|
+
const functions = blockFunctions !== null && blockFunctions !== void 0 ? blockFunctions : definitions;
|
|
101
|
+
const validations = [];
|
|
102
|
+
functions.forEach((definition) => {
|
|
103
|
+
const preleadingPath = path_1.default.join(this.functionsDir, functionName !== null && functionName !== void 0 ? functionName : '', path_1.default.sep);
|
|
104
|
+
if (definition.path.indexOf(preleadingPath) === 0) {
|
|
105
|
+
validations.push(this.validateFunction(definition));
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
return Promise.all(validations);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.FunctionValidator = FunctionValidator;
|
|
113
|
+
const logValidationResult = ({ path: functionPath, status, functionName, errors, }) => {
|
|
114
|
+
if (status === 'ok') {
|
|
115
|
+
const mark = chalk_1.default.green(`✔`);
|
|
116
|
+
console.log(`${mark} Validate: ${functionName}`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const msg = chalk_1.default.red(`${errors}`);
|
|
120
|
+
const mark = chalk_1.default.red(`✖`);
|
|
121
|
+
console.log(`${mark} Validate: ${functionName !== null && functionName !== void 0 ? functionName : functionPath}\n\t${msg}`);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
exports.logValidationResult = logValidationResult;
|
|
125
|
+
//# sourceMappingURL=validations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/functions/validations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.migrate = void 0;
|
|
7
|
+
const case_1 = require("case");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const functionDefinitions_1 = require("./functionDefinitions");
|
|
12
|
+
const check = chalk_1.default.green(`✔`);
|
|
13
|
+
const cross = chalk_1.default.red(`✖`);
|
|
14
|
+
const migrate = (functionsPath, verbose = false) => {
|
|
15
|
+
const log = (msg) => {
|
|
16
|
+
if (verbose) {
|
|
17
|
+
console.log(msg);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
log('Checking for unversioned functions ...');
|
|
21
|
+
(0, functionDefinitions_1.functionDirs)(functionsPath, true).forEach((functionPath) => {
|
|
22
|
+
const definition = (0, functionDefinitions_1.functionDefinition)(functionPath, functionsPath);
|
|
23
|
+
const { name } = definition;
|
|
24
|
+
let { version } = definition;
|
|
25
|
+
let postfix = (0, case_1.kebab)(name);
|
|
26
|
+
if ((0, functionDefinitions_1.isFunctionVersion)(functionPath, functionsPath)) {
|
|
27
|
+
postfix = `-${version}`;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
version = '1.0';
|
|
31
|
+
postfix = ` => ${path_1.default.join(name, version)}`;
|
|
32
|
+
try {
|
|
33
|
+
delete definition.schema.name;
|
|
34
|
+
fs_extra_1.default.writeJSONSync((0, functionDefinitions_1.functionDefinitionPath)(functionPath), definition.schema, {
|
|
35
|
+
spaces: 2,
|
|
36
|
+
});
|
|
37
|
+
const tmpDir = '.tmp';
|
|
38
|
+
const tempDir = path_1.default.join(tmpDir, `${(0, case_1.kebab)(name)}-${version}`);
|
|
39
|
+
const targetDir = path_1.default.join(functionsPath, (0, case_1.kebab)(name));
|
|
40
|
+
fs_extra_1.default.ensureDirSync(tmpDir);
|
|
41
|
+
fs_extra_1.default.renameSync(functionPath, tempDir);
|
|
42
|
+
fs_extra_1.default.mkdirSync(targetDir);
|
|
43
|
+
fs_extra_1.default.moveSync(tempDir, path_1.default.join(targetDir, version));
|
|
44
|
+
}
|
|
45
|
+
catch (_a) {
|
|
46
|
+
log(`${cross} Failed to version: ${name}`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
log(`${check} Version: ${name}${postfix}`);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
exports.migrate = migrate;
|
|
54
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/functions/versions.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA6B;AAC7B,kDAA0B;AAC1B,wDAA0B;AAC1B,gDAAwB;AAExB,+DAK+B;AAE/B,MAAM,KAAK,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,KAAK,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7B,MAAM,OAAO,GAAG,CAAC,aAAqB,EAAE,OAAO,GAAG,KAAK,EAAQ,EAAE;IAC/D,MAAM,GAAG,GAAG,CAAC,GAAW,EAAQ,EAAE;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAE9C,IAAA,kCAAY,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAA,wCAAkB,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAE5B,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAA,uCAAiB,EAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,CAAC;YAChB,OAAO,GAAG,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAE5C,IAAI,CAAC;gBACH,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBAE9B,kBAAE,CAAC,aAAa,CACd,IAAA,4CAAsB,EAAC,YAAY,CAAC,EACpC,UAAU,CAAC,MAAM,EACjB;oBACE,MAAM,EAAE,CAAC;iBACV,CACF,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,CAAC;gBACtB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAA,YAAK,EAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;gBAC/D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,CAAC;gBAExD,kBAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzB,kBAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACrC,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxB,kBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC;YAAC,WAAM,CAAC;gBACP,GAAG,CAAC,GAAG,KAAK,uBAAuB,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;QACH,CAAC;QAED,GAAG,CAAC,GAAG,KAAK,aAAa,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEO,0BAAO"}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const case_1 = __importDefault(require("case"));
|
|
40
|
+
const path_1 = __importDefault(require("path"));
|
|
41
|
+
const ts = __importStar(require("typescript"));
|
|
42
|
+
const allowedTypes = [
|
|
43
|
+
'Event',
|
|
44
|
+
'Locale',
|
|
45
|
+
'Page',
|
|
46
|
+
'PageVariable',
|
|
47
|
+
'PageVariableId',
|
|
48
|
+
'boolean',
|
|
49
|
+
'number',
|
|
50
|
+
'string',
|
|
51
|
+
'unknown',
|
|
52
|
+
'void',
|
|
53
|
+
];
|
|
54
|
+
exports.default = (filename) => {
|
|
55
|
+
if (!filename)
|
|
56
|
+
throw new Error(`unable to determine interaction name from ${filename}`);
|
|
57
|
+
const program = ts.createProgram([filename], {});
|
|
58
|
+
const typeChecker = program.getTypeChecker();
|
|
59
|
+
const sourceFile = program.getSourceFile(filename);
|
|
60
|
+
if (!sourceFile)
|
|
61
|
+
throw new Error('no source file');
|
|
62
|
+
const interactionName = case_1.default.camel(path_1.default.basename(filename).replace(/.ts/, ''));
|
|
63
|
+
const interaction = {};
|
|
64
|
+
// Loop through the root AST nodes of the file
|
|
65
|
+
ts.forEachChild(sourceFile, (node) => {
|
|
66
|
+
if (ts.isFunctionDeclaration(node)) {
|
|
67
|
+
// name
|
|
68
|
+
const functionName = node.name ? node.name.text : '';
|
|
69
|
+
if (functionName !== interactionName) {
|
|
70
|
+
throw new RangeError('file contains multiple statements');
|
|
71
|
+
}
|
|
72
|
+
interaction.name = functionName;
|
|
73
|
+
interaction.parameters = {};
|
|
74
|
+
// return type
|
|
75
|
+
const typeNode = node.type;
|
|
76
|
+
if (!typeNode) {
|
|
77
|
+
throw new Error(`You forgot to declare a type for ${interactionName}`);
|
|
78
|
+
}
|
|
79
|
+
const returnType = typeChecker.typeToString(typeChecker.getTypeFromTypeNode(typeNode));
|
|
80
|
+
interaction.type = case_1.default.pascal(returnType);
|
|
81
|
+
if (node.parameters.length > 1) {
|
|
82
|
+
throw new Error(`Only one parameter is allowed for ${interactionName}`);
|
|
83
|
+
}
|
|
84
|
+
const [firstParameter] = node.parameters;
|
|
85
|
+
if (firstParameter) {
|
|
86
|
+
if (!firstParameter.type) {
|
|
87
|
+
throw new Error(`You forgot to add a type to the parameter "${firstParameter.name.getText()}" for ${interactionName}`);
|
|
88
|
+
}
|
|
89
|
+
const t = typeChecker.getTypeFromTypeNode(firstParameter.type);
|
|
90
|
+
const parameters = JSON.parse(typeChecker
|
|
91
|
+
.typeToString(t)
|
|
92
|
+
.replace(/;(?!.*;)/g, '')
|
|
93
|
+
.replace(/;/g, ',')
|
|
94
|
+
.replace(/(\w+)/g, '"$1"'));
|
|
95
|
+
Object.entries(parameters).forEach(([paramName, paramType]) => {
|
|
96
|
+
if (!allowedTypes.includes(paramType)) {
|
|
97
|
+
throw new TypeError(`unsupported type for: ${paramName}`);
|
|
98
|
+
}
|
|
99
|
+
parameters[paramName] = case_1.default.pascal(paramType);
|
|
100
|
+
});
|
|
101
|
+
interaction.parameters = parameters;
|
|
102
|
+
}
|
|
103
|
+
// function body
|
|
104
|
+
const functionBody = node.getText(sourceFile);
|
|
105
|
+
if (!functionBody) {
|
|
106
|
+
throw new Error(`You forgot to add code to your interaction for ${interactionName}`);
|
|
107
|
+
}
|
|
108
|
+
interaction.function = ts.transpileModule(node.getText(), {}).outputText;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
if (!interaction.function) {
|
|
112
|
+
throw new RangeError(`
|
|
113
|
+
expected expression of the kind
|
|
114
|
+
function ${interactionName}({ event, argument }: { event: Event, argument: ArgumentType }): ReturnType {
|
|
115
|
+
// body
|
|
116
|
+
}
|
|
117
|
+
`);
|
|
118
|
+
}
|
|
119
|
+
return interaction;
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/interactions/compatibility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;AACxB,+CAAiC;AAIjC,MAAM,YAAY,GAAG;IACnB,OAAO;IACP,QAAQ;IACR,MAAM;IACN,cAAc;IACd,gBAAgB;IAChB,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;CACP,CAAC;AAEF,kBAAe,CAAC,QAAgB,EAAe,EAAE;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,EAAE,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,cAAI,CAAC,KAAK,CAChC,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3C,CAAC;IAEF,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,8CAA8C;IAC9C,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO;YACP,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;gBACrC,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;YAC5D,CAAC;YAED,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;YAChC,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;YAE5B,cAAc;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,eAAe,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CACzC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAC1C,CAAC;YAEF,WAAW,CAAC,IAAI,GAAG,cAAI,CAAC,MAAM,CAAC,UAAU,CAA0B,CAAC;YAEpE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAEzC,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CACb,8CAA8C,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CACtG,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAE/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,WAAW;qBACR,YAAY,CAAC,CAAC,CAAC;qBACf,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;qBACxB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;qBAClB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CACH,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;oBAC5D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtC,MAAM,IAAI,SAAS,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,UAAU,CAAC,SAAS,CAAC,GAAG,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;gBAEH,WAAW,CAAC,UAAU,GAAG,UAGxB,CAAC;YACJ,CAAC;YAED,gBAAgB;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,kDAAkD,eAAe,EAAE,CACpE,CAAC;YACJ,CAAC;YAED,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC;;iBAER,eAAe;;;KAG3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAA0B,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const typescript_1 = require("typescript");
|
|
4
|
+
const reportDiagnostics = (diagnostics) => {
|
|
5
|
+
diagnostics.forEach((diagnostic) => {
|
|
6
|
+
var _a;
|
|
7
|
+
let message = 'Error';
|
|
8
|
+
if (diagnostic.file) {
|
|
9
|
+
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition((_a = diagnostic.start) !== null && _a !== void 0 ? _a : 0);
|
|
10
|
+
message += ` ${diagnostic.file.fileName} (${line + 1},${character + 1})`;
|
|
11
|
+
}
|
|
12
|
+
message += `: ${(0, typescript_1.flattenDiagnosticMessageText)(diagnostic.messageText, '\n')}`;
|
|
13
|
+
console.error(`\u001b[31m${message}\u001b[0m`);
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
exports.default = (filePath) => {
|
|
17
|
+
const config = (0, typescript_1.getDefaultCompilerOptions)();
|
|
18
|
+
config.strict = true;
|
|
19
|
+
const program = (0, typescript_1.createProgram)([filePath], config);
|
|
20
|
+
const diagnostics = [...(0, typescript_1.getPreEmitDiagnostics)(program)];
|
|
21
|
+
if (diagnostics.length > 0) {
|
|
22
|
+
reportDiagnostics(diagnostics);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/interactions/diagnostics.ts"],"names":[],"mappings":";;AAAA,2CAMoB;AAEpB,MAAM,iBAAiB,GAAG,CAAC,WAAyB,EAAQ,EAAE;IAC5D,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;;QACjC,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CACvE,MAAA,UAAU,CAAC,KAAK,mCAAI,CAAC,CACtB,CAAC;YACF,OAAO,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,KAAK,IAAA,yCAA4B,EAC1C,UAAU,CAAC,WAAW,EACtB,IAAI,CACL,EAAE,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,CAAC,QAAgB,EAAQ,EAAE;IACxC,MAAM,MAAM,GAAG,IAAA,sCAAyB,GAAE,CAAC;IAE3C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAErB,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAA,kCAAqB,EAAC,OAAO,CAAC,CAAC,CAAC;IAExD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
package/build/types.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InteractionType = exports.InteractionOptionTypeToDo = exports.InteractionOptionType = exports.AllowedStateKeys = void 0;
|
|
4
|
+
var AllowedStateKeys;
|
|
5
|
+
(function (AllowedStateKeys) {
|
|
6
|
+
AllowedStateKeys["SELECTED"] = "selected";
|
|
7
|
+
AllowedStateKeys["HOVER"] = "hover";
|
|
8
|
+
AllowedStateKeys["FOCUS"] = "focus";
|
|
9
|
+
AllowedStateKeys["DISABLED"] = "disabled";
|
|
10
|
+
AllowedStateKeys["VALID"] = "valid";
|
|
11
|
+
AllowedStateKeys["INVALID"] = "invalid";
|
|
12
|
+
AllowedStateKeys["READONLY"] = "readOnly";
|
|
13
|
+
})(AllowedStateKeys || (exports.AllowedStateKeys = AllowedStateKeys = {}));
|
|
14
|
+
var InteractionOptionType;
|
|
15
|
+
(function (InteractionOptionType) {
|
|
16
|
+
InteractionOptionType["Boolean"] = "Boolean";
|
|
17
|
+
InteractionOptionType["Number"] = "Number";
|
|
18
|
+
InteractionOptionType["String"] = "String";
|
|
19
|
+
InteractionOptionType["Event"] = "Event";
|
|
20
|
+
InteractionOptionType["Void"] = "Void";
|
|
21
|
+
InteractionOptionType["Page"] = "Page";
|
|
22
|
+
InteractionOptionType["Locale"] = "Locale";
|
|
23
|
+
InteractionOptionType["Unknown"] = "Unknown";
|
|
24
|
+
})(InteractionOptionType || (exports.InteractionOptionType = InteractionOptionType = {}));
|
|
25
|
+
// TODO: Add support
|
|
26
|
+
var InteractionOptionTypeToDo;
|
|
27
|
+
(function (InteractionOptionTypeToDo) {
|
|
28
|
+
InteractionOptionTypeToDo["Color"] = "Color";
|
|
29
|
+
InteractionOptionTypeToDo["Endpoint"] = "Endpoint";
|
|
30
|
+
InteractionOptionTypeToDo["Filter"] = "Filter";
|
|
31
|
+
InteractionOptionTypeToDo["Font"] = "Font";
|
|
32
|
+
InteractionOptionTypeToDo["Properties"] = "Properties";
|
|
33
|
+
InteractionOptionTypeToDo["Property"] = "Property";
|
|
34
|
+
InteractionOptionTypeToDo["Size"] = "Size";
|
|
35
|
+
InteractionOptionTypeToDo["Unit"] = "Unit";
|
|
36
|
+
})(InteractionOptionTypeToDo || (exports.InteractionOptionTypeToDo = InteractionOptionTypeToDo = {}));
|
|
37
|
+
var InteractionType;
|
|
38
|
+
(function (InteractionType) {
|
|
39
|
+
InteractionType["Custom"] = "Custom";
|
|
40
|
+
InteractionType["Global"] = "Global";
|
|
41
|
+
})(InteractionType || (exports.InteractionType = InteractionType = {}));
|
|
42
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAiFA,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,yCAAqB,CAAA;IACrB,mCAAe,CAAA;IACf,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACvB,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B;AAuND,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,sCAAa,CAAA;IACb,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;AACrB,CAAC,EATW,qBAAqB,qCAArB,qBAAqB,QAShC;AAED,oBAAoB;AACpB,IAAY,yBASX;AATD,WAAY,yBAAyB;IACnC,4CAAe,CAAA;IACf,kDAAqB,CAAA;IACrB,8CAAiB,CAAA;IACjB,0CAAa,CAAA;IACb,sDAAyB,CAAA;IACzB,kDAAqB,CAAA;IACrB,0CAAa,CAAA;IACb,0CAAa,CAAA;AACf,CAAC,EATW,yBAAyB,yCAAzB,yBAAyB,QASpC;AA+BD,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parsePort = exports.parseDir = void 0;
|
|
4
|
+
const parseDir = (args) => args.length === 0 ? '.' : args[0];
|
|
5
|
+
exports.parseDir = parseDir;
|
|
6
|
+
const parsePort = (portRaw, defaultPort) => {
|
|
7
|
+
const port = parseInt(portRaw, 10);
|
|
8
|
+
return Number.isNaN(port) ? defaultPort : port;
|
|
9
|
+
};
|
|
10
|
+
exports.parsePort = parsePort;
|
|
11
|
+
//# sourceMappingURL=arguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../src/utils/arguments.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAU,EAAE,CACjD,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AADvB,QAAA,QAAQ,YACe;AAE7B,MAAM,SAAS,GAAG,CACvB,OAA2B,EAC3B,WAAmB,EACX,EAAE;IACV,MAAM,IAAI,GAAW,QAAQ,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC;IAErD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC,CAAC;AAPW,QAAA,SAAS,aAOpB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.checkPackageVersion = void 0;
|
|
13
|
+
const child_process_1 = require("child_process");
|
|
14
|
+
const util_1 = require("util");
|
|
15
|
+
const execPromise = (0, util_1.promisify)(child_process_1.exec);
|
|
16
|
+
const checkPackageVersion = (name) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
const { stderr: error } = yield execPromise(`npm view ${name} version`);
|
|
18
|
+
if (error) {
|
|
19
|
+
throw new Error(error);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
exports.checkPackageVersion = checkPackageVersion;
|
|
23
|
+
//# sourceMappingURL=checkPackageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkPackageVersion.js","sourceRoot":"","sources":["../../src/utils/checkPackageVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAE7B,MAAM,mBAAmB,GAAG,CAAO,IAAY,EAAiB,EAAE;IACvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC;IACxE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC,CAAA,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.checkUpdateAvailableCLI = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const child_process_1 = require("child_process");
|
|
18
|
+
const fs_extra_1 = require("fs-extra");
|
|
19
|
+
const os_1 = require("os");
|
|
20
|
+
const semver_1 = require("semver");
|
|
21
|
+
const util_1 = require("util");
|
|
22
|
+
// eslint-disable-next-line
|
|
23
|
+
const { version: versionCLI, name: nameCLI } = require('../../package.json');
|
|
24
|
+
const execPromise = (0, util_1.promisify)(child_process_1.exec);
|
|
25
|
+
const TEMP_FOLDER = `${(0, os_1.tmpdir)()}/bettyblocks`;
|
|
26
|
+
const logUpdateAvailable = (localVersion, remoteVersion, name) => {
|
|
27
|
+
if ((0, semver_1.lt)(localVersion, remoteVersion)) {
|
|
28
|
+
console.log(`${name} update available from ${chalk_1.default.greenBright(localVersion)} to ${chalk_1.default.greenBright(remoteVersion)}`);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const getRemoteVersionCLI = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
const { stdout: output, stderr: error } = yield execPromise(`npm show @betty-blocks/cli version`);
|
|
33
|
+
const remoteVersionCLI = output.toString().trim();
|
|
34
|
+
if (error) {
|
|
35
|
+
throw new Error(error);
|
|
36
|
+
}
|
|
37
|
+
return remoteVersionCLI;
|
|
38
|
+
});
|
|
39
|
+
const writeToFile = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
const remoteVersionCLI = yield getRemoteVersionCLI();
|
|
41
|
+
yield (0, fs_extra_1.writeJson)(`${TEMP_FOLDER}/versions.json`, {
|
|
42
|
+
timestamp: Date.now(),
|
|
43
|
+
versions: {
|
|
44
|
+
remoteVersionCLI,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
const readFile = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
const folderExist = yield (0, fs_extra_1.pathExists)(TEMP_FOLDER);
|
|
50
|
+
let remoteVersion;
|
|
51
|
+
if (!folderExist) {
|
|
52
|
+
yield (0, fs_extra_1.mkdir)(TEMP_FOLDER);
|
|
53
|
+
}
|
|
54
|
+
const fileExist = yield (0, fs_extra_1.pathExists)(`${TEMP_FOLDER}/versions.json`);
|
|
55
|
+
if (fileExist) {
|
|
56
|
+
const { versions, timestamp } = (yield (0, fs_extra_1.readJson)(`${TEMP_FOLDER}/versions.json`));
|
|
57
|
+
if (timestamp + 86400000 < Date.now()) {
|
|
58
|
+
console.log('Checking for new versions..');
|
|
59
|
+
yield writeToFile();
|
|
60
|
+
remoteVersion = yield readFile();
|
|
61
|
+
console.log('Done');
|
|
62
|
+
}
|
|
63
|
+
remoteVersion = versions;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
yield writeToFile();
|
|
67
|
+
remoteVersion = yield readFile();
|
|
68
|
+
}
|
|
69
|
+
return remoteVersion;
|
|
70
|
+
});
|
|
71
|
+
const checkUpdateAvailableCLI = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
+
try {
|
|
73
|
+
const { remoteVersionCLI } = yield readFile();
|
|
74
|
+
logUpdateAvailable(versionCLI, remoteVersionCLI, nameCLI);
|
|
75
|
+
}
|
|
76
|
+
catch (_a) {
|
|
77
|
+
console.error('Unable to check for a new version');
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
exports.checkUpdateAvailableCLI = checkUpdateAvailableCLI;
|
|
81
|
+
//# sourceMappingURL=checkUpdateAvailable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkUpdateAvailable.js","sourceRoot":"","sources":["../../src/utils/checkUpdateAvailable.ts"],"names":[],"mappings":"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"}
|