@dittowords/cli 3.10.1 → 4.0.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/README.md +125 -36
- package/bin/add-project.js +101 -33
- package/bin/add-project.js.map +1 -1
- package/bin/api.js +49 -15
- package/bin/api.js.map +1 -1
- package/bin/component-folders.js +56 -7
- package/bin/component-folders.js.map +1 -1
- package/bin/config.js +206 -170
- package/bin/config.js.map +1 -1
- package/bin/config.test.js +92 -0
- package/bin/config.test.js.map +1 -0
- package/bin/consts.js +64 -18
- package/bin/consts.js.map +1 -1
- package/bin/ditto.js +250 -200
- package/bin/ditto.js.map +1 -1
- package/bin/generate-suggestions.js +155 -78
- package/bin/generate-suggestions.js.map +1 -1
- package/bin/generate-suggestions.test.js +189 -0
- package/bin/generate-suggestions.test.js.map +1 -0
- package/bin/http/fetchComponentFolders.js +60 -8
- package/bin/http/fetchComponentFolders.js.map +1 -1
- package/bin/http/fetchComponents.js +65 -18
- package/bin/http/fetchComponents.js.map +1 -1
- package/bin/http/fetchVariants.js +74 -14
- package/bin/http/fetchVariants.js.map +1 -1
- package/bin/http/importComponents.js +100 -49
- package/bin/http/importComponents.js.map +1 -1
- package/bin/importComponents.js +61 -10
- package/bin/importComponents.js.map +1 -1
- package/bin/init/init.js +120 -44
- package/bin/init/init.js.map +1 -1
- package/bin/init/project.js +160 -83
- package/bin/init/project.js.map +1 -1
- package/bin/init/project.test.js +49 -0
- package/bin/init/project.test.js.map +1 -0
- package/bin/init/token.js +134 -74
- package/bin/init/token.js.map +1 -1
- package/bin/init/token.test.js +69 -0
- package/bin/init/token.test.js.map +1 -0
- package/bin/output.js +72 -30
- package/bin/output.js.map +1 -1
- package/bin/pull.js +424 -213
- package/bin/pull.js.map +1 -1
- package/bin/pull.test.js +410 -0
- package/bin/pull.test.js.map +1 -0
- package/bin/remove-project.js +91 -27
- package/bin/remove-project.js.map +1 -1
- package/bin/replace.js +140 -100
- package/bin/replace.js.map +1 -1
- package/bin/replace.test.js +155 -0
- package/bin/replace.test.js.map +1 -0
- package/bin/sentry-test.js.map +1 -0
- package/bin/types.js +20 -2
- package/bin/types.js.map +1 -1
- package/bin/utils/cleanFileName.js +32 -8
- package/bin/utils/cleanFileName.js.map +1 -1
- package/bin/utils/createSentryContext.js +43 -0
- package/bin/utils/createSentryContext.js.map +1 -0
- package/bin/utils/generateJsDriver.js +114 -51
- package/bin/utils/generateJsDriver.js.map +1 -1
- package/bin/utils/getSelectedProjects.js +58 -52
- package/bin/utils/getSelectedProjects.js.map +1 -1
- package/bin/utils/processMetaOption.js +36 -11
- package/bin/utils/processMetaOption.js.map +1 -1
- package/bin/utils/processMetaOption.test.js +45 -0
- package/bin/utils/processMetaOption.test.js.map +1 -0
- package/bin/utils/projectsToText.js +52 -19
- package/bin/utils/projectsToText.js.map +1 -1
- package/bin/utils/promptForProject.js +89 -36
- package/bin/utils/promptForProject.js.map +1 -1
- package/bin/utils/quit.js +36 -7
- package/bin/utils/quit.js.map +1 -1
- package/bin/utils/sourcesToText.js +51 -19
- package/bin/utils/sourcesToText.js.map +1 -1
- package/etsc.config.js +13 -0
- package/lib/config.ts +27 -8
- package/lib/ditto.ts +6 -0
- package/lib/init/project.ts +3 -3
- package/lib/pull.ts +190 -52
- package/lib/types.ts +24 -7
- package/lib/utils/createSentryContext.ts +20 -0
- package/lib/utils/generateJsDriver.ts +40 -6
- package/lib/utils/quit.ts +2 -3
- package/package.json +10 -6
- package/tsconfig.json +4 -1
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../lib/init/project.ts"],"names":[],"mappings":"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"}
|
package/bin/lib/init/token.js
DELETED
|
@@ -1,91 +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.collectAndSaveToken = exports.needsToken = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const enquirer_1 = require("enquirer");
|
|
10
|
-
const api_1 = require("../api");
|
|
11
|
-
const consts_1 = __importDefault(require("../consts"));
|
|
12
|
-
const output_1 = __importDefault(require("../output"));
|
|
13
|
-
const config_1 = __importDefault(require("../config"));
|
|
14
|
-
const quit_1 = require("../utils/quit");
|
|
15
|
-
const needsToken = (configFile, host = consts_1.default.API_HOST) => {
|
|
16
|
-
if (config_1.default.getTokenFromEnv()) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
const file = configFile || consts_1.default.CONFIG_FILE;
|
|
20
|
-
if (!fs_1.default.existsSync(file))
|
|
21
|
-
return true;
|
|
22
|
-
const configData = config_1.default.readGlobalConfigData(file);
|
|
23
|
-
if (!configData[config_1.default.justTheHost(host)] ||
|
|
24
|
-
configData[config_1.default.justTheHost(host)][0].token === "")
|
|
25
|
-
return true;
|
|
26
|
-
return false;
|
|
27
|
-
};
|
|
28
|
-
exports.needsToken = needsToken;
|
|
29
|
-
// Returns true if valid, otherwise an error message.
|
|
30
|
-
async function checkToken(token) {
|
|
31
|
-
const axios = (0, api_1.create)(token);
|
|
32
|
-
const endpoint = "/token-check";
|
|
33
|
-
let resOrError;
|
|
34
|
-
try {
|
|
35
|
-
resOrError = await axios.get(endpoint).catch((error) => {
|
|
36
|
-
if (error.code === "ENOTFOUND") {
|
|
37
|
-
return output_1.default.errorText(`Can't connect to API: ${output_1.default.url(error.hostname)}`);
|
|
38
|
-
}
|
|
39
|
-
if (error.response.status === 401 || error.response.status === 404) {
|
|
40
|
-
return output_1.default.errorText("This API key isn't valid. Please try another.");
|
|
41
|
-
}
|
|
42
|
-
return output_1.default.warnText("We're having trouble reaching the Ditto API.");
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
output_1.default.errorText(e);
|
|
47
|
-
output_1.default.errorText("Sorry! We're having trouble reaching the Ditto API.");
|
|
48
|
-
}
|
|
49
|
-
if (typeof resOrError === "string") {
|
|
50
|
-
return resOrError;
|
|
51
|
-
}
|
|
52
|
-
if (resOrError?.status === 200) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
return output_1.default.errorText("This API key isn't valid. Please try another.");
|
|
56
|
-
}
|
|
57
|
-
async function collectToken(message) {
|
|
58
|
-
const blue = output_1.default.info;
|
|
59
|
-
const apiUrl = output_1.default.url("https://app.dittowords.com/account/user");
|
|
60
|
-
const breadcrumbs = `${blue("User")}`;
|
|
61
|
-
const tokenDescription = message ||
|
|
62
|
-
`To get started, you'll need your Ditto API key. You can find this at: ${apiUrl} > ${breadcrumbs} under "${chalk_1.default.bold("API Keys")}".`;
|
|
63
|
-
console.log(tokenDescription);
|
|
64
|
-
const response = await (0, enquirer_1.prompt)({
|
|
65
|
-
type: "input",
|
|
66
|
-
name: "token",
|
|
67
|
-
message: "What is your API key?",
|
|
68
|
-
validate: (token) => checkToken(token),
|
|
69
|
-
});
|
|
70
|
-
return response.token;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
*
|
|
74
|
-
* @param {string | null} message
|
|
75
|
-
* @returns
|
|
76
|
-
*/
|
|
77
|
-
const collectAndSaveToken = async (message = null) => {
|
|
78
|
-
try {
|
|
79
|
-
const token = await collectToken(message);
|
|
80
|
-
console.log(`Thanks for authenticating. We'll save the key to: ${output_1.default.info(consts_1.default.CONFIG_FILE)}`);
|
|
81
|
-
output_1.default.nl();
|
|
82
|
-
config_1.default.saveToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST, token);
|
|
83
|
-
return token;
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
(0, quit_1.quit)("API token was not saved");
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
exports.collectAndSaveToken = collectAndSaveToken;
|
|
90
|
-
exports.default = { needsToken: exports.needsToken, collectAndSaveToken: exports.collectAndSaveToken };
|
|
91
|
-
//# sourceMappingURL=token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../lib/init/token.ts"],"names":[],"mappings":"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"}
|
package/bin/lib/output.js
DELETED
|
@@ -1,34 +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.nl = exports.write = exports.subtle = exports.url = exports.success = exports.info = exports.warnText = exports.errorText = void 0;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const errorText = (msg) => chalk_1.default.magenta(msg);
|
|
9
|
-
exports.errorText = errorText;
|
|
10
|
-
const warnText = (msg) => chalk_1.default.yellow(msg);
|
|
11
|
-
exports.warnText = warnText;
|
|
12
|
-
const info = (msg) => chalk_1.default.blueBright(msg);
|
|
13
|
-
exports.info = info;
|
|
14
|
-
const success = (msg) => chalk_1.default.green(msg);
|
|
15
|
-
exports.success = success;
|
|
16
|
-
const url = (msg) => chalk_1.default.blueBright.underline(msg);
|
|
17
|
-
exports.url = url;
|
|
18
|
-
const subtle = (msg) => chalk_1.default.grey(msg);
|
|
19
|
-
exports.subtle = subtle;
|
|
20
|
-
const write = (msg) => chalk_1.default.white(msg);
|
|
21
|
-
exports.write = write;
|
|
22
|
-
const nl = () => console.log("\n");
|
|
23
|
-
exports.nl = nl;
|
|
24
|
-
exports.default = {
|
|
25
|
-
errorText: exports.errorText,
|
|
26
|
-
warnText: exports.warnText,
|
|
27
|
-
info: exports.info,
|
|
28
|
-
success: exports.success,
|
|
29
|
-
url: exports.url,
|
|
30
|
-
subtle: exports.subtle,
|
|
31
|
-
write: exports.write,
|
|
32
|
-
nl: exports.nl,
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=output.js.map
|
package/bin/lib/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../lib/output.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAEnB,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAAhD,QAAA,SAAS,aAAuC;AACtD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAA9C,QAAA,QAAQ,YAAsC;AACpD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAA9C,QAAA,IAAI,QAA0C;AACpD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAA5C,QAAA,OAAO,WAAqC;AAClD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAAvD,QAAA,GAAG,OAAoD;AAC7D,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAA1C,QAAA,MAAM,UAAoC;AAChD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAA1C,QAAA,KAAK,SAAqC;AAChD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAA7B,QAAA,EAAE,MAA2B;AAE1C,kBAAe;IACb,SAAS,EAAT,iBAAS;IACT,QAAQ,EAAR,gBAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,OAAO,EAAP,eAAO;IACP,GAAG,EAAH,WAAG;IACH,MAAM,EAAN,cAAM;IACN,KAAK,EAAL,aAAK;IACL,EAAE,EAAF,UAAE;CACH,CAAC"}
|
package/bin/lib/pull.js
DELETED
|
@@ -1,264 +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.pull = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const api_1 = __importDefault(require("./api"));
|
|
11
|
-
const config_1 = __importDefault(require("./config"));
|
|
12
|
-
const consts_1 = __importDefault(require("./consts"));
|
|
13
|
-
const output_1 = __importDefault(require("./output"));
|
|
14
|
-
const token_1 = require("./init/token");
|
|
15
|
-
const sourcesToText_1 = __importDefault(require("./utils/sourcesToText"));
|
|
16
|
-
const generateJsDriver_1 = require("./utils/generateJsDriver");
|
|
17
|
-
const cleanFileName_1 = require("./utils/cleanFileName");
|
|
18
|
-
const fetchVariants_1 = require("./http/fetchVariants");
|
|
19
|
-
const SUPPORTED_FORMATS = [
|
|
20
|
-
"flat",
|
|
21
|
-
"structured",
|
|
22
|
-
"android",
|
|
23
|
-
"ios-strings",
|
|
24
|
-
];
|
|
25
|
-
const JSON_FORMATS = ["flat", "structured"];
|
|
26
|
-
const FORMAT_EXTENSIONS = {
|
|
27
|
-
flat: ".json",
|
|
28
|
-
structured: ".json",
|
|
29
|
-
android: ".xml",
|
|
30
|
-
"ios-strings": ".strings",
|
|
31
|
-
};
|
|
32
|
-
const getFormatDataIsValid = {
|
|
33
|
-
flat: (data) => data !== "{}",
|
|
34
|
-
structured: (data) => data !== "{}",
|
|
35
|
-
android: (data) => data.includes("<string"),
|
|
36
|
-
"ios-strings": (data) => !!data,
|
|
37
|
-
};
|
|
38
|
-
const getFormat = (formatFromSource) => {
|
|
39
|
-
const f = formatFromSource;
|
|
40
|
-
if (f && SUPPORTED_FORMATS.includes(f)) {
|
|
41
|
-
return f;
|
|
42
|
-
}
|
|
43
|
-
return "flat";
|
|
44
|
-
};
|
|
45
|
-
const getFormatExtension = (format) => {
|
|
46
|
-
return FORMAT_EXTENSIONS[format];
|
|
47
|
-
};
|
|
48
|
-
const DEFAULT_FORMAT_KEYS = ["projects", "exported_at"];
|
|
49
|
-
const hasVariantData = (data) => {
|
|
50
|
-
const hasTopLevelKeys = Object.keys(data).filter((key) => !DEFAULT_FORMAT_KEYS.includes(key))
|
|
51
|
-
.length > 0;
|
|
52
|
-
const hasProjectKeys = data.projects && Object.keys(data.projects).length > 0;
|
|
53
|
-
return hasTopLevelKeys || hasProjectKeys;
|
|
54
|
-
};
|
|
55
|
-
async function askForAnotherToken() {
|
|
56
|
-
config_1.default.deleteToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST);
|
|
57
|
-
const message = "Looks like the API key you have saved no longer works. Please enter another one.";
|
|
58
|
-
await (0, token_1.collectAndSaveToken)(message);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* For a given variant:
|
|
62
|
-
* - if format is unspecified, fetch data for all projects from `/projects` and
|
|
63
|
-
* save in `{variantApiId}.json`
|
|
64
|
-
* - if format is `flat` or `structured`, fetch data for each project from `/project/:project_id` and
|
|
65
|
-
* save in `{projectName}-${variantApiId}.json`
|
|
66
|
-
*/
|
|
67
|
-
async function downloadAndSaveVariant(variantApiId, projects, format, status, richText, token) {
|
|
68
|
-
const params = { variant: variantApiId };
|
|
69
|
-
if (format)
|
|
70
|
-
params.format = format;
|
|
71
|
-
if (status)
|
|
72
|
-
params.status = status;
|
|
73
|
-
if (richText)
|
|
74
|
-
params.includeRichText = richText.toString();
|
|
75
|
-
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
76
|
-
const { data } = await api_1.default.get(`/projects/${id}`, {
|
|
77
|
-
params,
|
|
78
|
-
headers: { Authorization: `token ${token}` },
|
|
79
|
-
});
|
|
80
|
-
if (!hasVariantData(data)) {
|
|
81
|
-
return "";
|
|
82
|
-
}
|
|
83
|
-
const extension = getFormatExtension(format);
|
|
84
|
-
const filename = (0, cleanFileName_1.cleanFileName)(fileName + ("__" + (variantApiId || "base")) + extension);
|
|
85
|
-
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
86
|
-
let dataString = data;
|
|
87
|
-
if (extension === ".json") {
|
|
88
|
-
dataString = JSON.stringify(data, null, 2);
|
|
89
|
-
}
|
|
90
|
-
const dataIsValid = getFormatDataIsValid[format];
|
|
91
|
-
if (!dataIsValid(dataString)) {
|
|
92
|
-
return "";
|
|
93
|
-
}
|
|
94
|
-
fs_1.default.writeFileSync(filepath, dataString);
|
|
95
|
-
return getSavedMessage(filename);
|
|
96
|
-
}));
|
|
97
|
-
return savedMessages.join("");
|
|
98
|
-
}
|
|
99
|
-
async function downloadAndSaveVariants(variants, projects, format, status, richText, token) {
|
|
100
|
-
const messages = await Promise.all([
|
|
101
|
-
downloadAndSaveVariant(null, projects, format, status, richText, token),
|
|
102
|
-
...variants.map(({ apiID }) => downloadAndSaveVariant(apiID, projects, format, status, richText, token)),
|
|
103
|
-
]);
|
|
104
|
-
return messages.join("");
|
|
105
|
-
}
|
|
106
|
-
async function downloadAndSaveBase(projects, format, status, richText, token, options) {
|
|
107
|
-
const params = { ...options?.meta };
|
|
108
|
-
if (format)
|
|
109
|
-
params.format = format;
|
|
110
|
-
if (status)
|
|
111
|
-
params.status = status;
|
|
112
|
-
if (richText)
|
|
113
|
-
params.includeRichText = richText.toString();
|
|
114
|
-
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
115
|
-
const { data } = await api_1.default.get(`/projects/${id}`, {
|
|
116
|
-
params,
|
|
117
|
-
headers: { Authorization: `token ${token}` },
|
|
118
|
-
});
|
|
119
|
-
const extension = getFormatExtension(format);
|
|
120
|
-
const filename = (0, cleanFileName_1.cleanFileName)(`${fileName}__base${extension}`);
|
|
121
|
-
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
122
|
-
let dataString = data;
|
|
123
|
-
if (extension === ".json") {
|
|
124
|
-
dataString = JSON.stringify(data, null, 2);
|
|
125
|
-
}
|
|
126
|
-
const dataIsValid = getFormatDataIsValid[format];
|
|
127
|
-
if (!dataIsValid(dataString)) {
|
|
128
|
-
return "";
|
|
129
|
-
}
|
|
130
|
-
fs_1.default.writeFileSync(filepath, dataString);
|
|
131
|
-
return getSavedMessage(filename);
|
|
132
|
-
}));
|
|
133
|
-
return savedMessages.join("");
|
|
134
|
-
}
|
|
135
|
-
function getSavedMessage(file) {
|
|
136
|
-
return `Successfully saved to ${output_1.default.info(file)}\n`;
|
|
137
|
-
}
|
|
138
|
-
function cleanOutputFiles() {
|
|
139
|
-
if (!fs_1.default.existsSync(consts_1.default.TEXT_DIR)) {
|
|
140
|
-
fs_1.default.mkdirSync(consts_1.default.TEXT_DIR);
|
|
141
|
-
}
|
|
142
|
-
const fileNames = fs_1.default.readdirSync(consts_1.default.TEXT_DIR);
|
|
143
|
-
fileNames.forEach((fileName) => {
|
|
144
|
-
if (/\.js(on)?|\.xml|\.strings$/.test(fileName)) {
|
|
145
|
-
fs_1.default.unlinkSync(path_1.default.resolve(consts_1.default.TEXT_DIR, fileName));
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return "Cleaning old output files..\n";
|
|
149
|
-
}
|
|
150
|
-
async function downloadAndSave(source, token, options) {
|
|
151
|
-
const { validProjects, format: formatFromSource, shouldFetchComponentLibrary, status, richText, componentFolders, } = source;
|
|
152
|
-
const format = getFormat(formatFromSource);
|
|
153
|
-
let msg = "";
|
|
154
|
-
const spinner = (0, ora_1.default)(msg);
|
|
155
|
-
spinner.start();
|
|
156
|
-
const variants = await (0, fetchVariants_1.fetchVariants)(source);
|
|
157
|
-
try {
|
|
158
|
-
msg += cleanOutputFiles();
|
|
159
|
-
msg += `\nFetching the latest text from ${(0, sourcesToText_1.default)(validProjects, shouldFetchComponentLibrary)}\n`;
|
|
160
|
-
const meta = options ? options.meta : {};
|
|
161
|
-
if (shouldFetchComponentLibrary) {
|
|
162
|
-
// Always include a variant with an apiID of undefined to ensure that we
|
|
163
|
-
// fetch the base text for the component library.
|
|
164
|
-
const componentVariants = [{ apiID: undefined }, ...(variants || [])];
|
|
165
|
-
const params = new URLSearchParams();
|
|
166
|
-
if (options?.meta)
|
|
167
|
-
Object.entries(options.meta).forEach(([k, v]) => params.append(k, v));
|
|
168
|
-
if (format)
|
|
169
|
-
params.append("format", format);
|
|
170
|
-
if (status)
|
|
171
|
-
params.append("status", status);
|
|
172
|
-
if (richText)
|
|
173
|
-
params.append("includeRichText", richText.toString());
|
|
174
|
-
if (componentFolders) {
|
|
175
|
-
componentFolders.forEach(({ id }) => params.append("folder_id[]", id));
|
|
176
|
-
}
|
|
177
|
-
const messages = await Promise.all(componentVariants.map(async ({ apiID: variantApiId }) => {
|
|
178
|
-
const p = new URLSearchParams(params);
|
|
179
|
-
if (variantApiId)
|
|
180
|
-
p.append("variant", variantApiId);
|
|
181
|
-
const { data } = await api_1.default.get(`/components`, { params: p });
|
|
182
|
-
const nameExt = getFormatExtension(format);
|
|
183
|
-
const nameBase = "ditto-component-library";
|
|
184
|
-
const namePostfix = `__${variantApiId || "base"}`;
|
|
185
|
-
const fileName = (0, cleanFileName_1.cleanFileName)(`${nameBase}${namePostfix}${nameExt}`);
|
|
186
|
-
const filePath = path_1.default.join(consts_1.default.TEXT_DIR, fileName);
|
|
187
|
-
let dataString = data;
|
|
188
|
-
if (nameExt === ".json") {
|
|
189
|
-
dataString = JSON.stringify(data, null, 2);
|
|
190
|
-
}
|
|
191
|
-
const dataIsValid = getFormatDataIsValid[format];
|
|
192
|
-
if (!dataIsValid(dataString)) {
|
|
193
|
-
return "";
|
|
194
|
-
}
|
|
195
|
-
await new Promise((r) => fs_1.default.writeFile(filePath, dataString, r));
|
|
196
|
-
return getSavedMessage(fileName);
|
|
197
|
-
}));
|
|
198
|
-
msg += messages.join("");
|
|
199
|
-
}
|
|
200
|
-
if (validProjects.length) {
|
|
201
|
-
msg += variants
|
|
202
|
-
? await downloadAndSaveVariants(variants, validProjects, format, status, richText, token)
|
|
203
|
-
: await downloadAndSaveBase(validProjects, format, status, richText, token, {
|
|
204
|
-
meta,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
const sources = [...validProjects];
|
|
208
|
-
if (shouldFetchComponentLibrary) {
|
|
209
|
-
sources.push({
|
|
210
|
-
id: "ditto_component_library",
|
|
211
|
-
name: "Ditto Component Library",
|
|
212
|
-
fileName: "ditto-component-library",
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
if (JSON_FORMATS.includes(format))
|
|
216
|
-
msg += (0, generateJsDriver_1.generateJsDriver)(sources);
|
|
217
|
-
msg += `\n${output_1.default.success("Done")}!`;
|
|
218
|
-
spinner.stop();
|
|
219
|
-
return console.log(msg);
|
|
220
|
-
}
|
|
221
|
-
catch (e) {
|
|
222
|
-
console.error(e);
|
|
223
|
-
spinner.stop();
|
|
224
|
-
let error = e.message;
|
|
225
|
-
if (e.response && e.response.status === 404) {
|
|
226
|
-
await askForAnotherToken();
|
|
227
|
-
(0, exports.pull)();
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
|
-
if (e.response && e.response.status === 401) {
|
|
231
|
-
error = "You don't have access to the selected projects";
|
|
232
|
-
msg = `${output_1.default.errorText(error)}.\nChoose others using the ${output_1.default.info("project")} command, or update your API key.`;
|
|
233
|
-
return console.log(msg);
|
|
234
|
-
}
|
|
235
|
-
if (e.response && e.response.status === 403) {
|
|
236
|
-
error =
|
|
237
|
-
"One or more of the requested projects don't have Developer Mode enabled";
|
|
238
|
-
msg = `${output_1.default.errorText(error)}.\nPlease choose different projects using the ${output_1.default.info("project")} command, or turn on Developer Mode for all selected projects. Learn more here: ${output_1.default.subtle("https://www.dittowords.com/docs/ditto-developer-mode")}.`;
|
|
239
|
-
return console.log(msg);
|
|
240
|
-
}
|
|
241
|
-
if (e.response && e.response.status === 400) {
|
|
242
|
-
error = "projects not found";
|
|
243
|
-
}
|
|
244
|
-
msg = `We hit an error fetching text from the projects: ${output_1.default.errorText(error)}.\nChoose others using the ${output_1.default.info("project")} command.`;
|
|
245
|
-
return console.log(msg);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
const pull = (options) => {
|
|
249
|
-
const meta = options ? options.meta : {};
|
|
250
|
-
const token = config_1.default.getToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST);
|
|
251
|
-
const sourceInformation = config_1.default.parseSourceInformation();
|
|
252
|
-
return downloadAndSave(sourceInformation, token, { meta });
|
|
253
|
-
};
|
|
254
|
-
exports.pull = pull;
|
|
255
|
-
exports.default = {
|
|
256
|
-
pull: exports.pull,
|
|
257
|
-
_testing: {
|
|
258
|
-
cleanOutputFiles,
|
|
259
|
-
downloadAndSaveVariant,
|
|
260
|
-
downloadAndSaveVariants,
|
|
261
|
-
downloadAndSaveBase,
|
|
262
|
-
},
|
|
263
|
-
};
|
|
264
|
-
//# sourceMappingURL=pull.js.map
|
package/bin/lib/pull.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../lib/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +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 config_1 = __importDefault(require("./config"));
|
|
7
|
-
const consts_1 = __importDefault(require("./consts"));
|
|
8
|
-
const output_1 = __importDefault(require("./output"));
|
|
9
|
-
const getSelectedProjects_1 = require("./utils/getSelectedProjects");
|
|
10
|
-
const promptForProject_1 = __importDefault(require("./utils/promptForProject"));
|
|
11
|
-
async function removeProject() {
|
|
12
|
-
const projects = (0, getSelectedProjects_1.getSelectedProjects)();
|
|
13
|
-
const isUsingComponents = (0, getSelectedProjects_1.getIsUsingComponents)();
|
|
14
|
-
if (!projects.length && !isUsingComponents) {
|
|
15
|
-
console.log("\n" +
|
|
16
|
-
"No projects found in your current configuration.\n" +
|
|
17
|
-
`Try adding one with: ${output_1.default.info("ditto-cli project add")}\n`);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const projectToRemove = await (0, promptForProject_1.default)({
|
|
21
|
-
projects,
|
|
22
|
-
message: "Select a project to remove",
|
|
23
|
-
});
|
|
24
|
-
if (!projectToRemove)
|
|
25
|
-
return;
|
|
26
|
-
config_1.default.writeProjectConfigData(consts_1.default.PROJECT_CONFIG_FILE, {
|
|
27
|
-
components: isUsingComponents && projectToRemove.id !== "components",
|
|
28
|
-
projects: projects.filter(({ id }) => id !== projectToRemove.id),
|
|
29
|
-
});
|
|
30
|
-
console.log(`\n${output_1.default.info(projectToRemove.name)} has been removed from your selected projects. ` +
|
|
31
|
-
`\nWe saved your updated configuration to: ${output_1.default.info(consts_1.default.PROJECT_CONFIG_FILE)}` +
|
|
32
|
-
"\n");
|
|
33
|
-
}
|
|
34
|
-
exports.default = removeProject;
|
|
35
|
-
//# sourceMappingURL=remove-project.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove-project.js","sourceRoot":"","sources":["../../lib/remove-project.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,sDAA8B;AAC9B,sDAA8B;AAC9B,qEAGqC;AACrC,gFAAwD;AAExD,KAAK,UAAU,aAAa;IAC1B,MAAM,QAAQ,GAAG,IAAA,yCAAmB,GAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,IAAA,0CAAoB,GAAE,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE;QAC1C,OAAO,CAAC,GAAG,CACT,IAAI;YACF,oDAAoD;YACpD,wBAAwB,gBAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CACnE,CAAC;QACF,OAAO;KACR;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,0BAAgB,EAAC;QAC7C,QAAQ;QACR,OAAO,EAAE,4BAA4B;KACtC,CAAC,CAAC;IACH,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,gBAAM,CAAC,sBAAsB,CAAC,gBAAM,CAAC,mBAAmB,EAAE;QACxD,UAAU,EAAE,iBAAiB,IAAI,eAAe,CAAC,EAAE,KAAK,YAAY;QACpE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,KAAK,gBAAM,CAAC,IAAI,CACd,eAAe,CAAC,IAAI,CACrB,iDAAiD;QAChD,6CAA6C,gBAAM,CAAC,IAAI,CACtD,gBAAM,CAAC,mBAAmB,CAC3B,EAAE;QACH,IAAI,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0B;AAC1B,0CAAsC;AACtC,+DAAuC;AACvC,gDAAkC;AAClC,sCAA+C;AAE/C,KAAK,UAAU,oBAAoB,CACjC,QAAgB,EAChB,WAA0D;IAE1D,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,IAAI,EAAE;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;KAC/B,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI;YACV,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;YAElD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC/B,MAAM,WAAW,GAAG,sBAAsB,CACxC,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,YAAY,CACb,CAAC;gBACF,MAAM,KAAK,GAAiC,EAAE,CAAC;gBAE/C,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACjC,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,EAAE;wBAC3D,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACrD,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAChC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,EAC9B,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAC7B,CAAC;wBACF,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC/D,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;wBACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACxB;yBAAM;wBACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;qBACnC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;aACjC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,oCAAoC;IACpC,gBAAgB;IAChB,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,IAAA,uBAAgB,EAAC,GAAG,EAAE,IAAI,EAAE;QAC5D,6EAA6E;QAC7E,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAkD+B,oDAAoB;AAhDpD,SAAS,sBAAsB,CAAC,GAAW,EAAE,SAAiB;IAC5D,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,OAAO,CAAC,OAAiB;IAChC,IAAI,QAAgB,CAAC;IACrB,IAAI,YAAoB,CAAC;IACzB,IAAI,WAAmB,CAAC;IAExB,IAAI;QACF,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QAClC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;QAC1C,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;KACzC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,CACX,iFAAiF,CAClF,CAAC;QACF,OAAO;KACR;IAED,oBAAoB,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC;AAyBQ,0BAAO;AAvBhB,SAAS,YAAY,CAAC,OAAiB;IAKrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,4GAA4G;IAC5G,MAAM,eAAe,GACnB,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,kBAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;IAE7D,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,4BAA4B,CAAC,CAAC;KAC1D;IAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAEiB,oCAAY"}
|
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"}
|