@dittowords/cli 3.2.2-alpha → 3.3.0
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/bin/ditto.js +31 -15
- package/bin/ditto.js.map +1 -1
- package/bin/generate-suggestions.js +19 -10
- package/bin/generate-suggestions.js.map +1 -1
- package/bin/http/fetchComponents.js.map +1 -1
- package/bin/replace.js +9 -3
- package/bin/replace.js.map +1 -1
- package/lib/ditto.ts +48 -13
- package/lib/generate-suggestions.test.ts +25 -24
- package/lib/generate-suggestions.ts +41 -24
- package/lib/http/fetchComponents.ts +12 -1
- package/lib/replace.test.ts +22 -3
- package/lib/replace.ts +15 -3
- package/package.json +1 -1
- package/testfiles/test1.jsx +18 -0
- package/testfiles/test2.jsx +9 -0
- package/bin/lib/add-project.js +0 -36
- package/bin/lib/add-project.js.map +0 -1
- package/bin/lib/api.js +0 -20
- package/bin/lib/api.js.map +0 -1
- package/bin/lib/config.js +0 -202
- package/bin/lib/config.js.map +0 -1
- package/bin/lib/consts.js +0 -21
- package/bin/lib/consts.js.map +0 -1
- package/bin/lib/ditto.js +0 -121
- package/bin/lib/ditto.js.map +0 -1
- package/bin/lib/generate-suggestions.js +0 -71
- package/bin/lib/generate-suggestions.js.map +0 -1
- package/bin/lib/http/fetchComponents.js +0 -13
- package/bin/lib/http/fetchComponents.js.map +0 -1
- package/bin/lib/http/fetchVariants.js +0 -26
- package/bin/lib/http/fetchVariants.js.map +0 -1
- package/bin/lib/init/init.js +0 -50
- package/bin/lib/init/init.js.map +0 -1
- package/bin/lib/init/project.js +0 -108
- package/bin/lib/init/project.js.map +0 -1
- package/bin/lib/init/token.js +0 -91
- package/bin/lib/init/token.js.map +0 -1
- package/bin/lib/output.js +0 -34
- package/bin/lib/output.js.map +0 -1
- package/bin/lib/pull.js +0 -264
- package/bin/lib/pull.js.map +0 -1
- package/bin/lib/remove-project.js +0 -35
- package/bin/lib/remove-project.js.map +0 -1
- package/bin/lib/replace.js +0 -107
- package/bin/lib/replace.js.map +0 -1
- package/bin/lib/types.js +0 -3
- package/bin/lib/types.js.map +0 -1
- package/bin/lib/utils/cleanFileName.js +0 -11
- package/bin/lib/utils/cleanFileName.js.map +0 -1
- package/bin/lib/utils/generateJsDriver.js +0 -56
- package/bin/lib/utils/generateJsDriver.js.map +0 -1
- package/bin/lib/utils/getSelectedProjects.js +0 -61
- package/bin/lib/utils/getSelectedProjects.js.map +0 -1
- package/bin/lib/utils/processMetaOption.js +0 -15
- package/bin/lib/utils/processMetaOption.js.map +0 -1
- package/bin/lib/utils/projectsToText.js +0 -25
- package/bin/lib/utils/projectsToText.js.map +0 -1
- package/bin/lib/utils/promptForProject.js +0 -43
- package/bin/lib/utils/promptForProject.js.map +0 -1
- package/bin/lib/utils/quit.js +0 -10
- package/bin/lib/utils/quit.js.map +0 -1
- package/bin/lib/utils/sourcesToText.js +0 -25
- package/bin/lib/utils/sourcesToText.js.map +0 -1
- package/bin/package.json +0 -76
package/bin/lib/replace.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.replaceJSXTextInFile = exports.parseOptions = exports.replace = void 0;
|
|
30
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
31
|
-
const parser_1 = require("@babel/parser");
|
|
32
|
-
const traverse_1 = __importDefault(require("@babel/traverse"));
|
|
33
|
-
const t = __importStar(require("@babel/types"));
|
|
34
|
-
const core_1 = require("@babel/core");
|
|
35
|
-
async function replaceJSXTextInFile(filePath, replacement) {
|
|
36
|
-
const code = await fs_extra_1.default.readFile(filePath, "utf-8");
|
|
37
|
-
const ast = (0, parser_1.parse)(code, {
|
|
38
|
-
sourceType: "module",
|
|
39
|
-
plugins: ["jsx", "typescript"],
|
|
40
|
-
});
|
|
41
|
-
(0, traverse_1.default)(ast, {
|
|
42
|
-
JSXText(path) {
|
|
43
|
-
const { searchString, replaceWith } = replacement;
|
|
44
|
-
const regex = new RegExp(searchString, "gi");
|
|
45
|
-
if (regex.test(path.node.value)) {
|
|
46
|
-
const splitValues = splitByCaseInsensitive(path.node.value, searchString);
|
|
47
|
-
const nodes = [];
|
|
48
|
-
splitValues.forEach((splitValue) => {
|
|
49
|
-
if (splitValue.toLowerCase() === searchString.toLowerCase()) {
|
|
50
|
-
const identifier = t.jsxIdentifier("DittoComponent");
|
|
51
|
-
const componentId = t.jsxAttribute(t.jsxIdentifier("componentId"), t.stringLiteral(replaceWith));
|
|
52
|
-
const o = t.jsxOpeningElement(identifier, [componentId], true);
|
|
53
|
-
const jsxElement = t.jsxElement(o, undefined, [], true);
|
|
54
|
-
nodes.push(jsxElement);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
nodes.push(t.jsxText(splitValue));
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
path.replaceWithMultiple(nodes);
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
// transfromFromAst types are wrong?
|
|
65
|
-
/* @ts-ignore */
|
|
66
|
-
const { code: transformedCode } = (0, core_1.transformFromAst)(ast, code, {
|
|
67
|
-
// Don't let this codebase's Babel config affect the code we're transforming.
|
|
68
|
-
configFile: false,
|
|
69
|
-
});
|
|
70
|
-
fs_extra_1.default.writeFile(filePath, transformedCode);
|
|
71
|
-
}
|
|
72
|
-
exports.replaceJSXTextInFile = replaceJSXTextInFile;
|
|
73
|
-
function splitByCaseInsensitive(str, delimiter) {
|
|
74
|
-
return str.split(new RegExp(`(${delimiter})`, "gi")).filter((s) => s !== "");
|
|
75
|
-
}
|
|
76
|
-
function replace(options) {
|
|
77
|
-
let filePath;
|
|
78
|
-
let searchString;
|
|
79
|
-
let replaceWith;
|
|
80
|
-
try {
|
|
81
|
-
const parsedOptions = parseOptions(options);
|
|
82
|
-
filePath = parsedOptions.filePath;
|
|
83
|
-
searchString = parsedOptions.searchString;
|
|
84
|
-
replaceWith = parsedOptions.replaceWith;
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
console.error(e);
|
|
88
|
-
console.error("Usage for replace: ditto-cli replace <file path> <search string> <replace with>");
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
replaceJSXTextInFile(filePath, { searchString, replaceWith });
|
|
92
|
-
}
|
|
93
|
-
exports.replace = replace;
|
|
94
|
-
function parseOptions(options) {
|
|
95
|
-
if (options.length !== 3) {
|
|
96
|
-
throw new Error("The options array must contain <file path> <search string> <replace with>.");
|
|
97
|
-
}
|
|
98
|
-
const filePath = options[0];
|
|
99
|
-
// Check if the file path exists and points to a regular file (not a directory or other file system object).
|
|
100
|
-
const isFilePathValid = fs_extra_1.default.existsSync(filePath) && fs_extra_1.default.lstatSync(filePath).isFile();
|
|
101
|
-
if (!isFilePathValid) {
|
|
102
|
-
throw new Error(`${filePath} is not a valid file path.`);
|
|
103
|
-
}
|
|
104
|
-
return { filePath, searchString: options[1], replaceWith: options[2] };
|
|
105
|
-
}
|
|
106
|
-
exports.parseOptions = parseOptions;
|
|
107
|
-
//# sourceMappingURL=replace.js.map
|
package/bin/lib/replace.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../../lib/replace.ts"],"names":[],"mappings":"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"}
|
package/bin/lib/types.js
DELETED
package/bin/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cleanFileName = void 0;
|
|
4
|
-
function cleanFileName(fileName) {
|
|
5
|
-
return fileName
|
|
6
|
-
.replace(/\s{1,}/g, "-")
|
|
7
|
-
.replace(/[^a-zA-Z0-9-_.]/g, "")
|
|
8
|
-
.toLowerCase();
|
|
9
|
-
}
|
|
10
|
-
exports.cleanFileName = cleanFileName;
|
|
11
|
-
//# sourceMappingURL=cleanFileName.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanFileName.js","sourceRoot":"","sources":["../../../lib/utils/cleanFileName.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ;SACZ,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,WAAW,EAAE,CAAC;AACnB,CAAC;AALD,sCAKC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
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.generateJsDriver = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const consts_1 = __importDefault(require("../consts"));
|
|
10
|
-
const output_1 = __importDefault(require("../output"));
|
|
11
|
-
const cleanFileName_1 = require("./cleanFileName");
|
|
12
|
-
// compatability with legacy method of specifying project ids
|
|
13
|
-
// that is still used by the default format
|
|
14
|
-
const stringifySourceId = (projectId) => projectId === "ditto_component_library" ? projectId : `project_${projectId}`;
|
|
15
|
-
/**
|
|
16
|
-
* Generates an index.js file that can be consumed
|
|
17
|
-
* by an SDK - this is a big DX improvement because
|
|
18
|
-
* it provides a single entry point to get all data
|
|
19
|
-
* (including variants) instead of having to import
|
|
20
|
-
* each generated file individually.
|
|
21
|
-
*
|
|
22
|
-
* The generated file will have a unified format
|
|
23
|
-
* independent of the CLI configuration used to fetch
|
|
24
|
-
* data from Ditto.
|
|
25
|
-
*/
|
|
26
|
-
// TODO: support ESM
|
|
27
|
-
function generateJsDriver(sources) {
|
|
28
|
-
const fileNames = fs_1.default
|
|
29
|
-
.readdirSync(consts_1.default.TEXT_DIR)
|
|
30
|
-
.filter((fileName) => /\.json$/.test(fileName));
|
|
31
|
-
const sourceIdsByName = sources.reduce((agg, source) => {
|
|
32
|
-
if (source.fileName) {
|
|
33
|
-
return { ...agg, [(0, cleanFileName_1.cleanFileName)(source.fileName)]: source.id };
|
|
34
|
-
}
|
|
35
|
-
return agg;
|
|
36
|
-
}, {});
|
|
37
|
-
const data = fileNames.reduce((obj, fileName) => {
|
|
38
|
-
const [sourceId, rest] = fileName.split("__");
|
|
39
|
-
const [variantApiId] = rest.split(".");
|
|
40
|
-
const projectId = sourceIdsByName[sourceId];
|
|
41
|
-
const projectIdStr = stringifySourceId(projectId);
|
|
42
|
-
if (!obj[projectIdStr]) {
|
|
43
|
-
obj[projectIdStr] = {};
|
|
44
|
-
}
|
|
45
|
-
obj[projectIdStr][variantApiId] = `require('./${fileName}')`;
|
|
46
|
-
return obj;
|
|
47
|
-
}, {});
|
|
48
|
-
let dataString = `module.exports = ${JSON.stringify(data, null, 2)}`
|
|
49
|
-
// remove quotes around require statements
|
|
50
|
-
.replace(/"require\((.*)\)"/g, "require($1)");
|
|
51
|
-
const filePath = path_1.default.resolve(consts_1.default.TEXT_DIR, "index.js");
|
|
52
|
-
fs_1.default.writeFileSync(filePath, dataString, { encoding: "utf8" });
|
|
53
|
-
return `Generated .js SDK driver at ${output_1.default.info(filePath)}`;
|
|
54
|
-
}
|
|
55
|
-
exports.generateJsDriver = generateJsDriver;
|
|
56
|
-
//# sourceMappingURL=generateJsDriver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateJsDriver.js","sourceRoot":"","sources":["../../../lib/utils/generateJsDriver.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,uDAA+B;AAC/B,uDAA+B;AAE/B,mDAAgD;AAEhD,6DAA6D;AAC7D,2CAA2C;AAC3C,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAC9C,SAAS,KAAK,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAE/E;;;;;;;;;;GAUG;AAEH,oBAAoB;AACpB,SAAgB,gBAAgB,CAAC,OAAiB;IAChD,MAAM,SAAS,GAAG,YAAE;SACjB,WAAW,CAAC,gBAAM,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,MAAM,eAAe,GAA2B,OAAO,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACd,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAA,6BAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;SAChE;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAC3B,CAAC,GAA2C,EAAE,QAAQ,EAAE,EAAE;QACxD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,GAAG,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,cAAc,QAAQ,IAAI,CAAC;QAC7D,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,UAAU,GAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAClE,0CAA0C;SACzC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7D,OAAO,+BAA+B,gBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChE,CAAC;AA1CD,4CA0CC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getIsUsingComponents = exports.getSelectedProjects = void 0;
|
|
30
|
-
const js_yaml_1 = __importStar(require("js-yaml"));
|
|
31
|
-
const consts_1 = require("../consts");
|
|
32
|
-
const config_1 = __importDefault(require("../config"));
|
|
33
|
-
function jsonIsConfigYAML(json) {
|
|
34
|
-
return typeof json === "object";
|
|
35
|
-
}
|
|
36
|
-
function yamlToJson(_yaml) {
|
|
37
|
-
try {
|
|
38
|
-
let configYaml = js_yaml_1.default.load(_yaml);
|
|
39
|
-
if (!jsonIsConfigYAML(configYaml)) {
|
|
40
|
-
return {};
|
|
41
|
-
}
|
|
42
|
-
return configYaml;
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
if (e instanceof js_yaml_1.YAMLException) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
throw e;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Returns an array containing all valid projects ({ id, name })
|
|
55
|
-
* currently contained in the project config file.
|
|
56
|
-
*/
|
|
57
|
-
const getSelectedProjects = (configFile = consts_1.PROJECT_CONFIG_FILE) => config_1.default.parseSourceInformation(configFile).validProjects;
|
|
58
|
-
exports.getSelectedProjects = getSelectedProjects;
|
|
59
|
-
const getIsUsingComponents = (configFile = consts_1.PROJECT_CONFIG_FILE) => config_1.default.parseSourceInformation(configFile).shouldFetchComponentLibrary;
|
|
60
|
-
exports.getIsUsingComponents = getIsUsingComponents;
|
|
61
|
-
//# sourceMappingURL=getSelectedProjects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectedProjects.js","sourceRoot":"","sources":["../../../lib/utils/getSelectedProjects.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAA8C;AAE9C,sCAAgD;AAEhD,uDAAwD;AAExD,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI;QACF,IAAI,UAAU,GAAG,iBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,UAAU,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,uBAAa,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,4BAAmB,EAAE,EAAE,CACtE,gBAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;AAD7C,QAAA,mBAAmB,uBAC0B;AAEnD,MAAM,oBAAoB,GAAG,CAAC,UAAU,GAAG,4BAAmB,EAAE,EAAE,CACvE,gBAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,2BAA2B,CAAC;AAD3D,QAAA,oBAAoB,wBACuC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const processMetaOption = (inputArr) => {
|
|
4
|
-
const res = {};
|
|
5
|
-
if (!Array.isArray(inputArr)) {
|
|
6
|
-
return res;
|
|
7
|
-
}
|
|
8
|
-
inputArr.forEach((element) => {
|
|
9
|
-
const [key, value] = element.split(":");
|
|
10
|
-
res[key] = value;
|
|
11
|
-
});
|
|
12
|
-
return res;
|
|
13
|
-
};
|
|
14
|
-
exports.default = processMetaOption;
|
|
15
|
-
//# sourceMappingURL=processMetaOption.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processMetaOption.js","sourceRoot":"","sources":["../../../lib/utils/processMetaOption.ts"],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAG,CAAC,QAAyB,EAAE,EAAE;IACtD,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,GAAG,CAAC;KACZ;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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.getSourceUrl = void 0;
|
|
7
|
-
const output_1 = __importDefault(require("../output"));
|
|
8
|
-
const getSourceUrl = (sourceId) => {
|
|
9
|
-
let base = "https://app.dittowords.com";
|
|
10
|
-
if (sourceId === "ditto_component_library") {
|
|
11
|
-
return `${base}/components`;
|
|
12
|
-
}
|
|
13
|
-
return `${base}/doc/${sourceId}`;
|
|
14
|
-
};
|
|
15
|
-
exports.getSourceUrl = getSourceUrl;
|
|
16
|
-
const projectsToText = (projects) => {
|
|
17
|
-
return ((projects || []).reduce((outputString, { name, id }) => outputString +
|
|
18
|
-
("\n" +
|
|
19
|
-
"- " +
|
|
20
|
-
output_1.default.info(name) +
|
|
21
|
-
" " +
|
|
22
|
-
output_1.default.subtle((0, exports.getSourceUrl)(id))), "") + "\n");
|
|
23
|
-
};
|
|
24
|
-
exports.default = projectsToText;
|
|
25
|
-
//# sourceMappingURL=projectsToText.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projectsToText.js","sourceRoot":"","sources":["../../../lib/utils/projectsToText.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAGxB,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,IAAI,IAAI,GAAG,4BAA4B,CAAC;IAExC,IAAI,QAAQ,KAAK,yBAAyB,EAAE;QAC1C,OAAO,GAAG,IAAI,aAAa,CAAC;KAC7B;IAED,OAAO,GAAG,IAAI,QAAQ,QAAQ,EAAE,CAAC;AACnC,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB;AAEF,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE;IAC7C,OAAO,CACL,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CACrB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAC7B,YAAY;QACZ,CAAC,IAAI;YACH,IAAI;YACJ,gBAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,GAAG;YACH,gBAAM,CAAC,MAAM,CAAC,IAAA,oBAAY,EAAC,EAAE,CAAC,CAAC,CAAC,EACpC,EAAE,CACH,GAAG,IAAI,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
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
|
-
const { AutoComplete } = require("enquirer");
|
|
7
|
-
const output_1 = __importDefault(require("../output"));
|
|
8
|
-
const projectsToText_1 = require("./projectsToText");
|
|
9
|
-
function formatProjectChoice(project) {
|
|
10
|
-
return (project.name + " " + output_1.default.subtle(project.url || (0, projectsToText_1.getSourceUrl)(project.id)));
|
|
11
|
-
}
|
|
12
|
-
function parseResponse(response) {
|
|
13
|
-
if (!response) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const [, name, id] = response.split(/^(.*)\s.*http.*\/(\w+).*$/);
|
|
17
|
-
if (id === "all") {
|
|
18
|
-
return { name, id: "ditto_component_library" };
|
|
19
|
-
}
|
|
20
|
-
return { name, id };
|
|
21
|
-
}
|
|
22
|
-
const promptForProject = async ({ message, projects, limit = 10, }) => {
|
|
23
|
-
output_1.default.nl();
|
|
24
|
-
const choices = projects.map(formatProjectChoice);
|
|
25
|
-
const prompt = new AutoComplete({
|
|
26
|
-
name: "project",
|
|
27
|
-
message,
|
|
28
|
-
limit,
|
|
29
|
-
choices,
|
|
30
|
-
});
|
|
31
|
-
let response;
|
|
32
|
-
try {
|
|
33
|
-
response = await prompt.run();
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
// this catch handles the case where someone presses
|
|
37
|
-
// Ctrl + C to kill the AutoComplete process
|
|
38
|
-
response = null;
|
|
39
|
-
}
|
|
40
|
-
return parseResponse(response);
|
|
41
|
-
};
|
|
42
|
-
exports.default = promptForProject;
|
|
43
|
-
//# sourceMappingURL=promptForProject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promptForProject.js","sourceRoot":"","sources":["../../../lib/utils/promptForProject.ts"],"names":[],"mappings":";;;;;AAAA,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7C,uDAA+B;AAE/B,qDAAgD;AAEhD,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,CACL,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAA,6BAAY,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEjE,IAAI,EAAE,KAAK,KAAK,EAAE;QAChB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC;KAChD;IAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAQD,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAC9B,OAAO,EACP,QAAQ,EACR,KAAK,GAAG,EAAE,GACU,EAAE,EAAE;IACxB,gBAAM,CAAC,EAAE,EAAE,CAAC;IAEZ,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,IAAI,EAAE,SAAS;QACf,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC;IAEb,IAAI;QACF,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;KAC/B;IAAC,OAAO,CAAC,EAAE;QACV,oDAAoD;QACpD,4CAA4C;QAC5C,QAAQ,GAAG,IAAI,CAAC;KACjB;IAED,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
package/bin/lib/utils/quit.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.quit = void 0;
|
|
4
|
-
function quit(message, exitCode = 2) {
|
|
5
|
-
console.log(`\n${message}\n`);
|
|
6
|
-
process.exitCode = exitCode;
|
|
7
|
-
process.exit();
|
|
8
|
-
}
|
|
9
|
-
exports.quit = quit;
|
|
10
|
-
//# sourceMappingURL=quit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quit.js","sourceRoot":"","sources":["../../../lib/utils/quit.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAC,OAAe,EAAE,QAAQ,GAAG,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAJD,oBAIC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
const output_1 = __importDefault(require("../output"));
|
|
7
|
-
const projectsToText_1 = __importDefault(require("./projectsToText"));
|
|
8
|
-
const sourcesToText = (projects, componentLibrary) => {
|
|
9
|
-
let message = "";
|
|
10
|
-
if (componentLibrary) {
|
|
11
|
-
message += `the ${output_1.default.info("Ditto Component Library")}`;
|
|
12
|
-
if ((projects || []).length) {
|
|
13
|
-
message += " and ";
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
message += "..";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if ((projects || []).length) {
|
|
20
|
-
message += `the following projects: ${(0, projectsToText_1.default)(projects)}\n`;
|
|
21
|
-
}
|
|
22
|
-
return message;
|
|
23
|
-
};
|
|
24
|
-
exports.default = sourcesToText;
|
|
25
|
-
//# sourceMappingURL=sourcesToText.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sourcesToText.js","sourceRoot":"","sources":["../../../lib/utils/sourcesToText.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,sEAA8C;AAG9C,MAAM,aAAa,GAAG,CAAC,QAAmB,EAAE,gBAAyB,EAAE,EAAE;IACvE,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,gBAAgB,EAAE;QACpB,OAAO,IAAI,OAAO,gBAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAE3D,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAC3B,OAAO,IAAI,OAAO,CAAC;SACpB;aAAM;YACL,OAAO,IAAI,IAAI,CAAC;SACjB;KACF;IAED,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAC3B,OAAO,IAAI,2BAA2B,IAAA,wBAAc,EAAC,QAAQ,CAAC,IAAI,CAAC;KACpE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
package/bin/package.json
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@dittowords/cli",
|
|
3
|
-
"version": "3.2.1-alpha",
|
|
4
|
-
"description": "Command Line Interface for Ditto (dittowords.com).",
|
|
5
|
-
"main": "bin/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"prepublish": "tsc",
|
|
8
|
-
"prepare": "husky install",
|
|
9
|
-
"start": "tsc && node bin/ditto.js",
|
|
10
|
-
"sync": "tsc && node bin/ditto.js pull",
|
|
11
|
-
"dev": "tsc --watch"
|
|
12
|
-
},
|
|
13
|
-
"repository": {
|
|
14
|
-
"type": "git",
|
|
15
|
-
"url": "git+https://github.com/dittowords/cli.git"
|
|
16
|
-
},
|
|
17
|
-
"bugs": {
|
|
18
|
-
"url": "https://github.com/dittowords/cli/issues"
|
|
19
|
-
},
|
|
20
|
-
"author": "Ditto Tech Inc.",
|
|
21
|
-
"license": "MIT",
|
|
22
|
-
"keywords": [
|
|
23
|
-
"ditto",
|
|
24
|
-
"dittowords",
|
|
25
|
-
"copy",
|
|
26
|
-
"microcopy",
|
|
27
|
-
"product",
|
|
28
|
-
"cli",
|
|
29
|
-
"api"
|
|
30
|
-
],
|
|
31
|
-
"types": "bin/ditto.d.ts",
|
|
32
|
-
"bin": {
|
|
33
|
-
"ditto-cli": "bin/ditto.js"
|
|
34
|
-
},
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"@babel/preset-env": "^7.20.2",
|
|
37
|
-
"@babel/preset-typescript": "^7.18.6",
|
|
38
|
-
"@tsconfig/node16": "^1.0.3",
|
|
39
|
-
"@types/jest": "^26.0.9",
|
|
40
|
-
"@types/js-yaml": "^4.0.5",
|
|
41
|
-
"@types/node": "^18.0.0",
|
|
42
|
-
"babel-jest": "^29.3.1",
|
|
43
|
-
"eslint": "^8.27.0",
|
|
44
|
-
"eslint-config-airbnb-base": "^14.2.0",
|
|
45
|
-
"husky": "^7.0.4",
|
|
46
|
-
"jest": "^29.3.1",
|
|
47
|
-
"lint-staged": "^11.2.4",
|
|
48
|
-
"prettier": "2.4.1",
|
|
49
|
-
"rewire": "^6.0.0",
|
|
50
|
-
"source-map": "^0.7.3",
|
|
51
|
-
"tempy": "^0.6.0",
|
|
52
|
-
"typescript": "^4.7.4"
|
|
53
|
-
},
|
|
54
|
-
"dependencies": {
|
|
55
|
-
"@babel/core": "^7.11.4",
|
|
56
|
-
"@babel/parser": "^7.21.4",
|
|
57
|
-
"@babel/traverse": "^7.21.4",
|
|
58
|
-
"@babel/types": "^7.21.4",
|
|
59
|
-
"@types/babel-traverse": "^6.25.7",
|
|
60
|
-
"@types/fs-extra": "^11.0.1",
|
|
61
|
-
"axios": "^0.27.2",
|
|
62
|
-
"boxen": "^5.1.2",
|
|
63
|
-
"chalk": "^4.1.0",
|
|
64
|
-
"commander": "^6.1.0",
|
|
65
|
-
"enquirer": "^2.3.6",
|
|
66
|
-
"faker": "^5.1.0",
|
|
67
|
-
"fs-extra": "^11.1.1",
|
|
68
|
-
"glob": "^9.3.4",
|
|
69
|
-
"js-yaml": "^4.1.0",
|
|
70
|
-
"ora": "^5.0.0",
|
|
71
|
-
"v8-compile-cache": "^2.1.1"
|
|
72
|
-
},
|
|
73
|
-
"lint-staged": {
|
|
74
|
-
"src/**/*.{js,jsx,ts,tsx,css,json}": "prettier --write"
|
|
75
|
-
}
|
|
76
|
-
}
|