@dittowords/cli 3.4.2 → 3.6.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 +17 -14
- package/bin/api.js +5 -6
- package/bin/api.js.map +1 -1
- package/bin/http/fetchComponents.js +3 -5
- package/bin/http/fetchComponents.js.map +1 -1
- package/bin/http/fetchVariants.js +3 -5
- package/bin/http/fetchVariants.js.map +1 -1
- package/bin/init/project.js +3 -6
- package/bin/init/project.js.map +1 -1
- package/bin/init/token.js +1 -1
- package/bin/init/token.js.map +1 -1
- package/bin/lib/add-project.js +36 -0
- package/bin/lib/add-project.js.map +1 -0
- package/bin/lib/api.js +20 -0
- package/bin/lib/api.js.map +1 -0
- package/bin/lib/config.js +202 -0
- package/bin/lib/config.js.map +1 -0
- package/bin/lib/consts.js +21 -0
- package/bin/lib/consts.js.map +1 -0
- package/bin/lib/ditto.js +121 -0
- package/bin/lib/ditto.js.map +1 -0
- package/bin/lib/generate-suggestions.js +71 -0
- package/bin/lib/generate-suggestions.js.map +1 -0
- package/bin/lib/http/fetchComponents.js +13 -0
- package/bin/lib/http/fetchComponents.js.map +1 -0
- package/bin/lib/http/fetchVariants.js +26 -0
- package/bin/lib/http/fetchVariants.js.map +1 -0
- package/bin/lib/init/init.js +50 -0
- package/bin/lib/init/init.js.map +1 -0
- package/bin/lib/init/project.js +108 -0
- package/bin/lib/init/project.js.map +1 -0
- package/bin/lib/init/token.js +91 -0
- package/bin/lib/init/token.js.map +1 -0
- package/bin/lib/output.js +34 -0
- package/bin/lib/output.js.map +1 -0
- package/bin/lib/pull.js +264 -0
- package/bin/lib/pull.js.map +1 -0
- package/bin/lib/remove-project.js +35 -0
- package/bin/lib/remove-project.js.map +1 -0
- package/bin/lib/replace.js +107 -0
- package/bin/lib/replace.js.map +1 -0
- package/bin/lib/types.js +3 -0
- package/bin/lib/types.js.map +1 -0
- package/bin/lib/utils/cleanFileName.js +11 -0
- package/bin/lib/utils/cleanFileName.js.map +1 -0
- package/bin/lib/utils/generateJsDriver.js +56 -0
- package/bin/lib/utils/generateJsDriver.js.map +1 -0
- package/bin/lib/utils/getSelectedProjects.js +61 -0
- package/bin/lib/utils/getSelectedProjects.js.map +1 -0
- package/bin/lib/utils/processMetaOption.js +15 -0
- package/bin/lib/utils/processMetaOption.js.map +1 -0
- package/bin/lib/utils/projectsToText.js +25 -0
- package/bin/lib/utils/projectsToText.js.map +1 -0
- package/bin/lib/utils/promptForProject.js +43 -0
- package/bin/lib/utils/promptForProject.js.map +1 -0
- package/bin/lib/utils/quit.js +10 -0
- package/bin/lib/utils/quit.js.map +1 -0
- package/bin/lib/utils/sourcesToText.js +25 -0
- package/bin/lib/utils/sourcesToText.js.map +1 -0
- package/bin/package.json +76 -0
- package/bin/pull.js +11 -5
- package/bin/pull.js.map +1 -1
- package/lib/api.ts +5 -5
- package/lib/http/fetchComponents.ts +2 -1
- package/lib/http/fetchVariants.ts +2 -1
- package/lib/init/project.ts +3 -6
- package/lib/init/token.ts +2 -2
- package/lib/pull.test.ts +32 -7
- package/lib/pull.ts +13 -6
- package/lib/replace.test.ts +1 -0
- package/lib/types.ts +9 -1
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
}
|
package/bin/pull.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.pull = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const api_1 =
|
|
10
|
+
const api_1 = require("./api");
|
|
11
11
|
const config_1 = __importDefault(require("./config"));
|
|
12
12
|
const consts_1 = __importDefault(require("./consts"));
|
|
13
13
|
const output_1 = __importDefault(require("./output"));
|
|
@@ -21,17 +21,20 @@ const SUPPORTED_FORMATS = [
|
|
|
21
21
|
"structured",
|
|
22
22
|
"android",
|
|
23
23
|
"ios-strings",
|
|
24
|
+
"icu",
|
|
24
25
|
];
|
|
25
|
-
const JSON_FORMATS = ["flat", "structured"];
|
|
26
|
+
const JSON_FORMATS = ["flat", "structured", "icu"];
|
|
26
27
|
const FORMAT_EXTENSIONS = {
|
|
27
28
|
flat: ".json",
|
|
28
29
|
structured: ".json",
|
|
29
30
|
android: ".xml",
|
|
30
31
|
"ios-strings": ".strings",
|
|
32
|
+
icu: ".json",
|
|
31
33
|
};
|
|
32
34
|
const getFormatDataIsValid = {
|
|
33
35
|
flat: (data) => data !== "{}",
|
|
34
36
|
structured: (data) => data !== "{}",
|
|
37
|
+
icu: (data) => data !== "{}",
|
|
35
38
|
android: (data) => data.includes("<string"),
|
|
36
39
|
"ios-strings": (data) => !!data,
|
|
37
40
|
};
|
|
@@ -65,6 +68,7 @@ async function askForAnotherToken() {
|
|
|
65
68
|
* save in `{projectName}-${variantApiId}.json`
|
|
66
69
|
*/
|
|
67
70
|
async function downloadAndSaveVariant(variantApiId, projects, format, status, richText, token) {
|
|
71
|
+
const api = (0, api_1.createApiClient)();
|
|
68
72
|
const params = { variant: variantApiId };
|
|
69
73
|
if (format)
|
|
70
74
|
params.format = format;
|
|
@@ -73,7 +77,7 @@ async function downloadAndSaveVariant(variantApiId, projects, format, status, ri
|
|
|
73
77
|
if (richText)
|
|
74
78
|
params.includeRichText = richText.toString();
|
|
75
79
|
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
76
|
-
const { data } = await
|
|
80
|
+
const { data } = await api.get(`/projects/${id}`, {
|
|
77
81
|
params,
|
|
78
82
|
headers: { Authorization: `token ${token}` },
|
|
79
83
|
});
|
|
@@ -104,6 +108,7 @@ async function downloadAndSaveVariants(variants, projects, format, status, richT
|
|
|
104
108
|
return messages.join("");
|
|
105
109
|
}
|
|
106
110
|
async function downloadAndSaveBase(projects, format, status, richText, token, options) {
|
|
111
|
+
const api = (0, api_1.createApiClient)();
|
|
107
112
|
const params = { ...options?.meta };
|
|
108
113
|
if (format)
|
|
109
114
|
params.format = format;
|
|
@@ -112,7 +117,7 @@ async function downloadAndSaveBase(projects, format, status, richText, token, op
|
|
|
112
117
|
if (richText)
|
|
113
118
|
params.includeRichText = richText.toString();
|
|
114
119
|
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
115
|
-
const { data } = await
|
|
120
|
+
const { data } = await api.get(`/projects/${id}`, {
|
|
116
121
|
params,
|
|
117
122
|
headers: { Authorization: `token ${token}` },
|
|
118
123
|
});
|
|
@@ -148,6 +153,7 @@ function cleanOutputFiles() {
|
|
|
148
153
|
return "Cleaning old output files..\n";
|
|
149
154
|
}
|
|
150
155
|
async function downloadAndSave(source, token, options) {
|
|
156
|
+
const api = (0, api_1.createApiClient)();
|
|
151
157
|
const { validProjects, format: formatFromSource, shouldFetchComponentLibrary, status, richText, componentFolders, } = source;
|
|
152
158
|
const format = getFormat(formatFromSource);
|
|
153
159
|
let msg = "";
|
|
@@ -178,7 +184,7 @@ async function downloadAndSave(source, token, options) {
|
|
|
178
184
|
const p = new URLSearchParams(params);
|
|
179
185
|
if (variantApiId)
|
|
180
186
|
p.append("variant", variantApiId);
|
|
181
|
-
const { data } = await
|
|
187
|
+
const { data } = await api.get(`/components`, { params: p });
|
|
182
188
|
const nameExt = getFormatExtension(format);
|
|
183
189
|
const nameBase = "ditto-component-library";
|
|
184
190
|
const namePostfix = `__${variantApiId || "base"}`;
|
package/bin/pull.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../lib/pull.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,8CAAsB;AAEtB,gDAAwB;AACxB,sDAA8B;AAC9B,sDAA8B;AAC9B,sDAA8B;AAC9B,wCAAmD;AACnD,0EAAkD;AAClD,+DAA4D;AAC5D,yDAAsD;AAEtD,wDAAqD;AAIrD,MAAM,iBAAiB,GAAsB;IAC3C,MAAM;IACN,YAAY;IACZ,SAAS;IACT,aAAa;CACd,CAAC;AAEF,MAAM,YAAY,GAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE/D,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,UAAU;CAC1B,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI;IACrC,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI;IAC3C,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnD,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;CACxC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,gBAAoC,EAAmB,EAAE;IAC1E,MAAM,CAAC,GAAG,gBAA+C,CAAC;IAC1D,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtC,OAAO,CAAC,CAAC;KACV;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAuB,EAAE,EAAE;IACrD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACxD,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,EAAE;IACnC,MAAM,eAAe,GACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAClE,MAAM,GAAG,CAAC,CAAC;IAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE9E,OAAO,eAAe,IAAI,cAAc,CAAC;AAC3C,CAAC,CAAC;AAEF,KAAK,UAAU,kBAAkB;IAC/B,gBAAM,CAAC,WAAW,CAAC,gBAAM,CAAC,WAAW,EAAE,gBAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GACX,kFAAkF,CAAC;IACrF,MAAM,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CACnC,YAA2B,EAC3B,QAAmB,EACnB,MAAuB,EACvB,MAA0B,EAC1B,QAA6B,EAC7B,KAAa;IAEb,MAAM,MAAM,GAAkC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxE,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,QAAQ;QAAE,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAE3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAW,EAAE,EAAE;QAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE;YAChD,MAAM;YACN,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,KAAK,EAAE,EAAE;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAC5B,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,GAAG,SAAS,CACzD,CAAC;QACF,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SAC5C;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;QAED,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAA6B,EAC7B,QAAmB,EACnB,MAAuB,EACvB,MAA0B,EAC1B,QAA6B,EAC7B,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QACvE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE,CAC/C,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CACzE;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAmB,EACnB,MAAuB,EACvB,MAA0B,EAC1B,QAA8B,EAC9B,KAAa,EACb,OAAqB;IAErB,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,QAAQ;QAAE,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAE3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAW,EAAE,EAAE;QAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE;YAChD,MAAM;YACN,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,KAAK,EAAE,EAAE;SAC7C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,GAAG,QAAQ,SAAS,SAAS,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SAC5C;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;QAED,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,yBAAyB,gBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAM,CAAC,QAAQ,CAAC,EAAE;QACnC,YAAE,CAAC,SAAS,CAAC,gBAAM,CAAC,QAAQ,CAAC,CAAC;KAC/B;IAED,MAAM,SAAS,GAAG,YAAE,CAAC,WAAW,CAAC,gBAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,gBAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;SACxD;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAyB,EACzB,KAAa,EACb,OAAqB;IAErB,MAAM,EACJ,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,2BAA2B,EAC3B,MAAM,EACN,QAAQ,EACR,gBAAgB,GACjB,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAE3C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAC;IAE7C,IAAI;QACF,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC1B,GAAG,IAAI,mCAAmC,IAAA,uBAAa,EACrD,aAAa,EACb,2BAA2B,CAC5B,IAAI,CAAC;QAEN,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzC,IAAI,2BAA2B,EAAE;YAC/B,wEAAwE;YACxE,iDAAiD;YACjD,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,IAAI;gBACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpE,IAAI,gBAAgB,EAAE;gBACpB,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;aACxE;YAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;gBACtD,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,YAAY;oBAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAEpD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE7D,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,yBAAyB,CAAC;gBAC3C,MAAM,WAAW,GAAG,KAAK,YAAY,IAAI,MAAM,EAAE,CAAC;gBAElD,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,EAAE,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAEtD,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,IAAI,OAAO,KAAK,OAAO,EAAE;oBACvB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC5C;gBAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;oBAC5B,OAAO,EAAE,CAAC;iBACX;gBAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChE,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC,CAAC,CACH,CAAC;YAEF,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC1B;QAED,IAAI,aAAa,CAAC,MAAM,EAAE;YACxB,GAAG,IAAI,QAAQ;gBACb,CAAC,CAAC,MAAM,uBAAuB,CAC3B,QAAQ,EACR,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,CACN;gBACH,CAAC,CAAC,MAAM,mBAAmB,CACvB,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,EACL;oBACE,IAAI;iBACL,CACF,CAAC;SACP;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACnC,IAAI,2BAA2B,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,yBAAyB;aACpC,CAAC,CAAC;SACJ;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,GAAG,IAAI,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC;QAEpE,GAAG,IAAI,KAAK,gBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAEtC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3C,MAAM,kBAAkB,EAAE,CAAC;YAC3B,IAAA,YAAI,GAAE,CAAC;YACP,OAAO;SACR;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3C,KAAK,GAAG,gDAAgD,CAAC;YACzD,GAAG,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,8BAA8B,gBAAM,CAAC,IAAI,CACvE,SAAS,CACV,mCAAmC,CAAC;YACrC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3C,KAAK;gBACH,yEAAyE,CAAC;YAC5E,GAAG,GAAG,GAAG,gBAAM,CAAC,SAAS,CACvB,KAAK,CACN,iDAAiD,gBAAM,CAAC,IAAI,CAC3D,SAAS,CACV,mFAAmF,gBAAM,CAAC,MAAM,CAC/F,sDAAsD,CACvD,GAAG,CAAC;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3C,KAAK,GAAG,oBAAoB,CAAC;SAC9B;QACD,GAAG,GAAG,oDAAoD,gBAAM,CAAC,SAAS,CACxE,KAAK,CACN,8BAA8B,gBAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACzB;AACH,CAAC;AAMM,MAAM,IAAI,GAAG,CAAC,OAAqB,EAAE,EAAE;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,gBAAM,CAAC,QAAQ,CAAC,gBAAM,CAAC,WAAW,EAAE,gBAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,gBAAM,CAAC,sBAAsB,EAAE,CAAC;IAE1D,OAAO,eAAe,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AANW,QAAA,IAAI,QAMf;AAEF,kBAAe;IACb,IAAI,EAAJ,YAAI;IACJ,QAAQ,EAAE;QACR,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,mBAAmB;KACpB;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../lib/pull.ts"],"names":[],"mappings":"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"}
|
package/lib/api.ts
CHANGED
|
@@ -3,13 +3,13 @@ import axios from "axios";
|
|
|
3
3
|
import config from "./config";
|
|
4
4
|
import consts from "./consts";
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export function createApiClient(token?: string) {
|
|
7
7
|
return axios.create({
|
|
8
8
|
baseURL: consts.API_HOST,
|
|
9
9
|
headers: {
|
|
10
|
-
Authorization: `token ${
|
|
10
|
+
Authorization: `token ${
|
|
11
|
+
token || config.getToken(consts.CONFIG_FILE, consts.API_HOST)
|
|
12
|
+
}`,
|
|
11
13
|
},
|
|
12
14
|
});
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export default create(config.getToken(consts.CONFIG_FILE, consts.API_HOST));
|
|
15
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createApiClient } from "../api";
|
|
2
2
|
|
|
3
3
|
export interface FetchComponentResponseComponent {
|
|
4
4
|
name: string;
|
|
@@ -12,6 +12,7 @@ export interface FetchComponentResponse {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export async function fetchComponents(): Promise<FetchComponentResponse> {
|
|
15
|
+
const api = createApiClient();
|
|
15
16
|
const { data } = await api.get<{
|
|
16
17
|
[compApiId: string]: {
|
|
17
18
|
name: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosRequestConfig } from "axios";
|
|
2
|
-
import
|
|
2
|
+
import { createApiClient } from "../api";
|
|
3
3
|
import { PullOptions } from "../pull";
|
|
4
4
|
import { SourceInformation } from "../types";
|
|
5
5
|
|
|
@@ -7,6 +7,7 @@ export async function fetchVariants(
|
|
|
7
7
|
source: SourceInformation,
|
|
8
8
|
options: PullOptions = {}
|
|
9
9
|
) {
|
|
10
|
+
const api = createApiClient();
|
|
10
11
|
if (!source.variants) {
|
|
11
12
|
return null;
|
|
12
13
|
}
|
package/lib/init/project.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ora from "ora";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { createApiClient } from "../api";
|
|
4
4
|
import config from "../config";
|
|
5
5
|
import consts from "../consts";
|
|
6
6
|
import output from "../output";
|
|
@@ -38,16 +38,13 @@ async function askForAnotherToken() {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
async function listProjects(token: Token, projectsAlreadySelected: Project[]) {
|
|
41
|
+
const api = createApiClient();
|
|
41
42
|
const spinner = ora("Fetching sources in your workspace...");
|
|
42
43
|
spinner.start();
|
|
43
44
|
|
|
44
45
|
let response: AxiosResponse<{ id: string; name: string }[]>;
|
|
45
46
|
try {
|
|
46
|
-
response = await api.get("/project-names"
|
|
47
|
-
headers: {
|
|
48
|
-
Authorization: `token ${token}`,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
47
|
+
response = await api.get("/project-names");
|
|
51
48
|
} catch (e) {
|
|
52
49
|
spinner.stop();
|
|
53
50
|
throw e;
|
package/lib/init/token.ts
CHANGED
|
@@ -4,7 +4,7 @@ import chalk from "chalk";
|
|
|
4
4
|
|
|
5
5
|
import { prompt } from "enquirer";
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { createApiClient } from "../api";
|
|
8
8
|
import consts from "../consts";
|
|
9
9
|
import output from "../output";
|
|
10
10
|
import config from "../config";
|
|
@@ -28,7 +28,7 @@ export const needsToken = (configFile?: string, host = consts.API_HOST) => {
|
|
|
28
28
|
|
|
29
29
|
// Returns true if valid, otherwise an error message.
|
|
30
30
|
async function checkToken(token: string): Promise<any> {
|
|
31
|
-
const axios =
|
|
31
|
+
const axios = createApiClient(token);
|
|
32
32
|
const endpoint = "/token-check";
|
|
33
33
|
|
|
34
34
|
let resOrError;
|
package/lib/pull.test.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import
|
|
4
|
-
import config from "./config";
|
|
3
|
+
import { createApiClient } from "./api";
|
|
5
4
|
|
|
6
5
|
const testProjects = [
|
|
7
6
|
{
|
|
@@ -14,7 +13,12 @@ const testProjects = [
|
|
|
14
13
|
|
|
15
14
|
jest.mock("./api");
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
// TODO: all tests in this file currently failing because we're re-instantiating the api client
|
|
17
|
+
// everywhere and are unable to mock the return type separately for each instance of usage.
|
|
18
|
+
// We need to refactor to share one api client everywhere instead of always re-creating it.
|
|
19
|
+
const mockApi = createApiClient() as any as jest.Mocked<
|
|
20
|
+
ReturnType<typeof createApiClient>
|
|
21
|
+
>;
|
|
18
22
|
|
|
19
23
|
jest.mock("./consts", () => ({
|
|
20
24
|
TEXT_DIR: ".testing",
|
|
@@ -44,17 +48,18 @@ afterAll(() => {
|
|
|
44
48
|
});
|
|
45
49
|
|
|
46
50
|
describe("cleanOutputFiles", () => {
|
|
47
|
-
it("removes .js, .json, .xml,
|
|
51
|
+
it("removes .js, .json, .xml, .strings, .stringsdict files", () => {
|
|
48
52
|
cleanOutputDir();
|
|
49
53
|
|
|
50
54
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.json"), "test");
|
|
51
55
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.js"), "test");
|
|
52
56
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.xml"), "test");
|
|
53
57
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.strings"), "test");
|
|
58
|
+
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.stringsdict"), "test");
|
|
54
59
|
// this file shouldn't be deleted
|
|
55
60
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.txt"), "test");
|
|
56
61
|
|
|
57
|
-
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(
|
|
62
|
+
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(6);
|
|
58
63
|
|
|
59
64
|
cleanOutputFiles();
|
|
60
65
|
|
|
@@ -112,11 +117,15 @@ describe("downloadAndSaveBase", () => {
|
|
|
112
117
|
}
|
|
113
118
|
});
|
|
114
119
|
|
|
115
|
-
it("writes to text.json for default format", async () => {
|
|
120
|
+
it.only("writes to text.json for default format", async () => {
|
|
116
121
|
cleanOutputDir();
|
|
117
122
|
|
|
118
123
|
mockApi.get.mockResolvedValueOnce({ data: [] });
|
|
119
|
-
const output = await downloadAndSaveBase(
|
|
124
|
+
const output = await downloadAndSaveBase(
|
|
125
|
+
testProjects,
|
|
126
|
+
"" as any,
|
|
127
|
+
undefined
|
|
128
|
+
);
|
|
120
129
|
|
|
121
130
|
expect(/saved to.*text\.json/.test(output)).toEqual(true);
|
|
122
131
|
expect(output.match(/saved to/g)?.length).toEqual(1);
|
|
@@ -181,4 +190,20 @@ describe("downloadAndSaveBase", () => {
|
|
|
181
190
|
expect(output.match(/saved to/g)?.length).toEqual(2);
|
|
182
191
|
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(2);
|
|
183
192
|
});
|
|
193
|
+
|
|
194
|
+
it("writes .stringsdict files for ios-stringsdict", async () => {
|
|
195
|
+
cleanOutputDir();
|
|
196
|
+
|
|
197
|
+
mockApi.get.mockResolvedValue({ data: "hello" });
|
|
198
|
+
const output = await downloadAndSaveBase(
|
|
199
|
+
testProjects,
|
|
200
|
+
"ios-stringsdict",
|
|
201
|
+
undefined
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
expect(/saved to.*Project 1\.stringsdict/.test(output)).toEqual(true);
|
|
205
|
+
expect(/saved to.*Project 2\.stringsdict/.test(output)).toEqual(true);
|
|
206
|
+
expect(output.match(/saved to/g)?.length).toEqual(2);
|
|
207
|
+
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(2);
|
|
208
|
+
});
|
|
184
209
|
});
|
package/lib/pull.ts
CHANGED
|
@@ -3,7 +3,7 @@ import path from "path";
|
|
|
3
3
|
|
|
4
4
|
import ora from "ora";
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import { createApiClient } from "./api";
|
|
7
7
|
import config from "./config";
|
|
8
8
|
import consts from "./consts";
|
|
9
9
|
import output from "./output";
|
|
@@ -11,32 +11,36 @@ import { collectAndSaveToken } from "./init/token";
|
|
|
11
11
|
import sourcesToText from "./utils/sourcesToText";
|
|
12
12
|
import { generateJsDriver } from "./utils/generateJsDriver";
|
|
13
13
|
import { cleanFileName } from "./utils/cleanFileName";
|
|
14
|
-
import { SourceInformation, Token, Project } from "./types";
|
|
14
|
+
import { SourceInformation, Token, Project, SupportedFormat } from "./types";
|
|
15
15
|
import { fetchVariants } from "./http/fetchVariants";
|
|
16
16
|
|
|
17
|
-
type SupportedFormat = "flat" | "structured" | "android" | "ios-strings";
|
|
18
|
-
|
|
19
17
|
const SUPPORTED_FORMATS: SupportedFormat[] = [
|
|
20
18
|
"flat",
|
|
21
19
|
"structured",
|
|
22
20
|
"android",
|
|
23
21
|
"ios-strings",
|
|
22
|
+
"ios-stringsdict",
|
|
23
|
+
"icu",
|
|
24
24
|
];
|
|
25
25
|
|
|
26
|
-
const JSON_FORMATS: SupportedFormat[] = ["flat", "structured"];
|
|
26
|
+
const JSON_FORMATS: SupportedFormat[] = ["flat", "structured", "icu"];
|
|
27
27
|
|
|
28
28
|
const FORMAT_EXTENSIONS = {
|
|
29
29
|
flat: ".json",
|
|
30
30
|
structured: ".json",
|
|
31
31
|
android: ".xml",
|
|
32
32
|
"ios-strings": ".strings",
|
|
33
|
+
"ios-stringsdict": ".stringsdict",
|
|
34
|
+
icu: ".json",
|
|
33
35
|
};
|
|
34
36
|
|
|
35
37
|
const getFormatDataIsValid = {
|
|
36
38
|
flat: (data: string) => data !== "{}",
|
|
37
39
|
structured: (data: string) => data !== "{}",
|
|
40
|
+
icu: (data: string) => data !== "{}",
|
|
38
41
|
android: (data: string) => data.includes("<string"),
|
|
39
42
|
"ios-strings": (data: string) => !!data,
|
|
43
|
+
"ios-stringsdict": (data: string) => data.includes("<key>"),
|
|
40
44
|
};
|
|
41
45
|
|
|
42
46
|
const getFormat = (formatFromSource: string | undefined): SupportedFormat => {
|
|
@@ -85,6 +89,7 @@ async function downloadAndSaveVariant(
|
|
|
85
89
|
richText: boolean | undefined,
|
|
86
90
|
token?: Token
|
|
87
91
|
) {
|
|
92
|
+
const api = createApiClient();
|
|
88
93
|
const params: Record<string, string | null> = { variant: variantApiId };
|
|
89
94
|
if (format) params.format = format;
|
|
90
95
|
if (status) params.status = status;
|
|
@@ -152,6 +157,7 @@ async function downloadAndSaveBase(
|
|
|
152
157
|
token?: Token,
|
|
153
158
|
options?: PullOptions
|
|
154
159
|
) {
|
|
160
|
+
const api = createApiClient();
|
|
155
161
|
const params = { ...options?.meta };
|
|
156
162
|
if (format) params.format = format;
|
|
157
163
|
if (status) params.status = status;
|
|
@@ -197,7 +203,7 @@ function cleanOutputFiles() {
|
|
|
197
203
|
|
|
198
204
|
const fileNames = fs.readdirSync(consts.TEXT_DIR);
|
|
199
205
|
fileNames.forEach((fileName) => {
|
|
200
|
-
if (/\.js(on)?|\.xml|\.strings
|
|
206
|
+
if (/\.js(on)?|\.xml|\.strings(dict)?$/.test(fileName)) {
|
|
201
207
|
fs.unlinkSync(path.resolve(consts.TEXT_DIR, fileName));
|
|
202
208
|
}
|
|
203
209
|
});
|
|
@@ -210,6 +216,7 @@ async function downloadAndSave(
|
|
|
210
216
|
token?: Token,
|
|
211
217
|
options?: PullOptions
|
|
212
218
|
) {
|
|
219
|
+
const api = createApiClient();
|
|
213
220
|
const {
|
|
214
221
|
validProjects,
|
|
215
222
|
format: formatFromSource,
|
package/lib/replace.test.ts
CHANGED
package/lib/types.ts
CHANGED
|
@@ -12,6 +12,14 @@ interface ComponentFolder {
|
|
|
12
12
|
name: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
export type SupportedFormat =
|
|
16
|
+
| "flat"
|
|
17
|
+
| "structured"
|
|
18
|
+
| "android"
|
|
19
|
+
| "ios-strings"
|
|
20
|
+
| "ios-stringsdict"
|
|
21
|
+
| "icu";
|
|
22
|
+
|
|
15
23
|
export interface ConfigYAML {
|
|
16
24
|
sources?: {
|
|
17
25
|
components?: {
|
|
@@ -20,7 +28,7 @@ export interface ConfigYAML {
|
|
|
20
28
|
};
|
|
21
29
|
projects?: Project[];
|
|
22
30
|
};
|
|
23
|
-
format?:
|
|
31
|
+
format?: SupportedFormat;
|
|
24
32
|
status?: string;
|
|
25
33
|
variants?: boolean;
|
|
26
34
|
richText?: boolean;
|