@dittowords/cli 3.8.0 → 3.10.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 +27 -2
- package/bin/ditto.js +41 -0
- package/bin/ditto.js.map +1 -1
- package/bin/http/importComponents.js +56 -0
- package/bin/http/importComponents.js.map +1 -0
- package/bin/importComponents.js +14 -0
- package/bin/importComponents.js.map +1 -0
- 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 +18 -8
- package/bin/pull.js.map +1 -1
- package/lib/ditto.ts +44 -1
- package/lib/http/importComponents.ts +71 -0
- package/lib/importComponents.ts +24 -0
- package/lib/pull.ts +29 -9
- package/lib/types.ts +1 -1
- package/package.json +2 -1
- package/.idea/cli.iml +0 -13
- package/.idea/codeStyles/Project.xml +0 -65
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/.idea/workspace.xml +0 -180
package/README.md
CHANGED
|
@@ -90,9 +90,26 @@ For more details on files generated by this command, see [Output Files](#output-
|
|
|
90
90
|
|
|
91
91
|
**Action:** List component folders in your workspace. More information about component folders can be found here: https://www.dittowords.com/docs/component-folders.
|
|
92
92
|
|
|
93
|
+
### Import components
|
|
94
|
+
|
|
95
|
+
**Usage:** `ditto-cli import-components <file_path>`
|
|
96
|
+
|
|
97
|
+
**Action:** Import components via a file. Please see https://www.dittowords.com/docs/importing-string-files for more information.
|
|
98
|
+
When [importing CSV files](https://www.dittowords.com/docs/importing-csv-files), the follow parameters are applicable:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
-t, --text [value] Text column index (Required)
|
|
102
|
+
-n, --component-name [value] Name column indexes (comma separated) (Required)
|
|
103
|
+
-no, --notes [value] Notes column index
|
|
104
|
+
-t, --tags [value] Tags column index
|
|
105
|
+
-s, --status [value] Status column index
|
|
106
|
+
-c, --component-id [value] Component ID column index
|
|
107
|
+
-h, --help display help for command
|
|
108
|
+
```
|
|
109
|
+
|
|
93
110
|
## Configuration
|
|
94
111
|
|
|
95
|
-
The `config.yml` file is the source of truth for a given directory about how the CLI should fetch and store data from Ditto. It includes information about which Ditto projects the CLI should pull text from, whether or not the component library should be included, in what format the text should be stored, and more.
|
|
112
|
+
The `config.yml` file is the source of truth for a given directory about how the CLI should fetch and store data from Ditto. It includes information about which Ditto projects the CLI should pull text from, whether or not the component library should be included, in what format(s) the text should be stored, and more.
|
|
96
113
|
|
|
97
114
|
This file is edited by the `project add` / `project remove` commands, but most options are currently only supported through manual edits.
|
|
98
115
|
|
|
@@ -177,6 +194,14 @@ Defaults to `flat` if not specified.
|
|
|
177
194
|
format: flat
|
|
178
195
|
```
|
|
179
196
|
|
|
197
|
+
Also accepts a list of values:
|
|
198
|
+
|
|
199
|
+
```yml
|
|
200
|
+
format:
|
|
201
|
+
- ios-strings
|
|
202
|
+
- ios-stringsdict
|
|
203
|
+
```
|
|
204
|
+
|
|
180
205
|
#### Status
|
|
181
206
|
|
|
182
207
|
If defined, data pulled will be restricted to text items or components that have the specified status. Accepted values:
|
|
@@ -255,7 +280,7 @@ All files created will adhere to the following template:
|
|
|
255
280
|
|
|
256
281
|
To help with keeping cross-platform behavior consistent, file names will be fully lowercase, have whitespace replaced with hyphens, and have non-word characters (with the exception of `-` and `_`) removed.
|
|
257
282
|
|
|
258
|
-
If the configured format
|
|
283
|
+
If the configured format(s) result(s) in JSON files being generated, an `index.js` "driver file" is also created to simplify the process of integrating Ditto into web apps:
|
|
259
284
|
|
|
260
285
|
```js
|
|
261
286
|
module.exports = {
|
package/bin/ditto.js
CHANGED
|
@@ -18,6 +18,7 @@ const remove_project_1 = __importDefault(require("./remove-project"));
|
|
|
18
18
|
const replace_1 = require("./replace");
|
|
19
19
|
const generate_suggestions_1 = require("./generate-suggestions");
|
|
20
20
|
const processMetaOption_1 = __importDefault(require("./utils/processMetaOption"));
|
|
21
|
+
const importComponents_1 = require("./importComponents");
|
|
21
22
|
const component_folders_1 = require("./component-folders");
|
|
22
23
|
function getVersion() {
|
|
23
24
|
const packageJsonPath = path_1.default.join(__dirname, "..", "package.json");
|
|
@@ -75,6 +76,30 @@ const COMMANDS = [
|
|
|
75
76
|
},
|
|
76
77
|
},
|
|
77
78
|
},
|
|
79
|
+
{
|
|
80
|
+
name: "import-components",
|
|
81
|
+
description: "Import components via a file. For more information please see: https://www.dittowords.com/docs/importing-string-files.",
|
|
82
|
+
flags: {
|
|
83
|
+
"-t, --text [value]": {
|
|
84
|
+
description: "Text column index (.csv format only)",
|
|
85
|
+
},
|
|
86
|
+
"-n, --component-name [value]": {
|
|
87
|
+
description: "Name column indexes (comma separated) (.csv format only)",
|
|
88
|
+
},
|
|
89
|
+
"-no, --notes [value]": {
|
|
90
|
+
description: "Notes column index (.csv format only)",
|
|
91
|
+
},
|
|
92
|
+
"-t, --tags [value]": {
|
|
93
|
+
description: "Tags column index (.csv format only)",
|
|
94
|
+
},
|
|
95
|
+
"-s, --status [value]": {
|
|
96
|
+
description: "Status column index (.csv format only)",
|
|
97
|
+
},
|
|
98
|
+
"-c, --component-id [value]": {
|
|
99
|
+
description: "Component ID column index (.csv format only)",
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
78
103
|
];
|
|
79
104
|
const setupCommands = () => {
|
|
80
105
|
commander_1.program.name("ditto-cli");
|
|
@@ -158,6 +183,22 @@ const executeCommand = async (command, options) => {
|
|
|
158
183
|
...(options?.lineNumbers ? { lineNumbers: options.lineNumbers } : {}),
|
|
159
184
|
});
|
|
160
185
|
}
|
|
186
|
+
case "import-components": {
|
|
187
|
+
if (options.args.length === 0) {
|
|
188
|
+
console.info("Please provide a file path.");
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
return (0, importComponents_1.importComponents)(options.args[0], {
|
|
192
|
+
csvColumnMapping: {
|
|
193
|
+
name: options.componentName,
|
|
194
|
+
text: options.text,
|
|
195
|
+
notes: options.notes,
|
|
196
|
+
tags: options.tags,
|
|
197
|
+
status: options.status,
|
|
198
|
+
componentId: options.componentId,
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
161
202
|
default: {
|
|
162
203
|
(0, quit_1.quit)("Exiting Ditto CLI...");
|
|
163
204
|
return;
|
package/bin/ditto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ditto.js","sourceRoot":"","sources":["../lib/ditto.ts"],"names":[],"mappings":";;;;;;AACA,0DAA0D;AAC1D,yCAAoC;AACpC,wDAAwD;AACxD,4BAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AAExB,sCAAuD;AACvD,iCAA8B;AAC9B,uCAAoC;AACpC,gEAAuC;AACvC,sEAA6C;AAC7C,uCAAoC;AACpC,iEAA6D;AAE7D,kFAA0D;AAC1D,2DAA2D;AAE3D,SAAS,UAAU;IACjB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAwB,CAAC;IAC1E,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ditto.js","sourceRoot":"","sources":["../lib/ditto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
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.importComponents = void 0;
|
|
7
|
+
const api_1 = require("../api");
|
|
8
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
async function importComponents(path, options) {
|
|
11
|
+
const api = (0, api_1.createApiClient)();
|
|
12
|
+
const form = new form_data_1.default();
|
|
13
|
+
form.append("import", fs_1.default.createReadStream(path));
|
|
14
|
+
const requestOptions = {
|
|
15
|
+
method: "POST",
|
|
16
|
+
url: "/v1/components/file",
|
|
17
|
+
params: {
|
|
18
|
+
...(options.csvColumnMapping?.name
|
|
19
|
+
? { name: `[${options.csvColumnMapping.name}]` }
|
|
20
|
+
: {}),
|
|
21
|
+
...(options.csvColumnMapping?.text
|
|
22
|
+
? { text: options.csvColumnMapping.text }
|
|
23
|
+
: {}),
|
|
24
|
+
...(options.csvColumnMapping?.notes
|
|
25
|
+
? { notes: options.csvColumnMapping.notes }
|
|
26
|
+
: {}),
|
|
27
|
+
...(options.csvColumnMapping?.status
|
|
28
|
+
? { status: options.csvColumnMapping.status }
|
|
29
|
+
: {}),
|
|
30
|
+
...(options.csvColumnMapping?.tags
|
|
31
|
+
? { tags: options.csvColumnMapping.tags }
|
|
32
|
+
: {}),
|
|
33
|
+
...(options.csvColumnMapping?.componentId
|
|
34
|
+
? { componentId: options.csvColumnMapping.componentId }
|
|
35
|
+
: {}),
|
|
36
|
+
},
|
|
37
|
+
headers: {
|
|
38
|
+
"content-type": "multipart/form-data",
|
|
39
|
+
},
|
|
40
|
+
data: form,
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
const { data } = await api(requestOptions);
|
|
44
|
+
return data;
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.error("Failed to import file.");
|
|
48
|
+
console.error(e.response?.data?.message || e.message);
|
|
49
|
+
return {
|
|
50
|
+
componentsInserted: 0,
|
|
51
|
+
firstImportedId: "null",
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.importComponents = importComponents;
|
|
56
|
+
//# sourceMappingURL=importComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importComponents.js","sourceRoot":"","sources":["../../lib/http/importComponents.ts"],"names":[],"mappings":";;;;;;AAAA,gCAAyC;AACzC,0DAAiC;AACjC,4CAAoB;AAgBb,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,OAEC;IAED,MAAM,GAAG,GAAG,IAAA,qBAAe,GAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG;QACrB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE;YACN,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK;gBACjC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM;gBAClC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC7C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW;gBACvC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;SACR;QACD,OAAO,EAAE;YACP,cAAc,EAAE,qBAAqB;SACtC;QACD,IAAI,EAAE,IAAI;KACX,CAAC;IAEF,IAAI;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO;YACL,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,MAAM;SACxB,CAAC;KACH;AACH,CAAC;AApDD,4CAoDC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.importComponents = void 0;
|
|
4
|
+
const importComponents_1 = require("./http/importComponents");
|
|
5
|
+
async function importComponents(filePath, options) {
|
|
6
|
+
if (filePath.endsWith(".csv") &&
|
|
7
|
+
(!options.csvColumnMapping?.name || !options.csvColumnMapping?.text)) {
|
|
8
|
+
throw new Error(".csv files require the --component-name and --text flags.");
|
|
9
|
+
}
|
|
10
|
+
const importResult = await (0, importComponents_1.importComponents)(filePath, options);
|
|
11
|
+
console.log(JSON.stringify(importResult));
|
|
12
|
+
}
|
|
13
|
+
exports.importComponents = importComponents;
|
|
14
|
+
//# sourceMappingURL=importComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importComponents.js","sourceRoot":"","sources":["../lib/importComponents.ts"],"names":[],"mappings":";;;AAAA,8DAGiC;AAEjC,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,OAEC;IAED,IACE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,EACpE;QACA,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;KACH;IACD,MAAM,YAAY,GAAG,MAAM,IAAA,mCAAoB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC;AAEQ,4CAAgB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 project_1 = require("./init/project");
|
|
7
|
+
const projectsToText_1 = __importDefault(require("./utils/projectsToText"));
|
|
8
|
+
const getSelectedProjects_1 = require("./utils/getSelectedProjects");
|
|
9
|
+
const output_1 = __importDefault(require("./output"));
|
|
10
|
+
const quit_1 = require("./utils/quit");
|
|
11
|
+
const addProject = async () => {
|
|
12
|
+
const projects = (0, getSelectedProjects_1.getSelectedProjects)();
|
|
13
|
+
const usingComponents = (0, getSelectedProjects_1.getIsUsingComponents)();
|
|
14
|
+
try {
|
|
15
|
+
if (usingComponents) {
|
|
16
|
+
if (projects.length) {
|
|
17
|
+
console.log(`\nYou're currently syncing text from the ${output_1.default.info("Component Library")} and from the following projects: ${(0, projectsToText_1.default)(projects)}`);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log(`\nYou're currently only syncing text from the ${output_1.default.info("Component Library")}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (projects.length) {
|
|
24
|
+
console.log(`\nYou're currently set up to sync text from the following projects: ${(0, projectsToText_1.default)(projects)}`);
|
|
25
|
+
}
|
|
26
|
+
await (0, project_1.collectAndSaveSource)({
|
|
27
|
+
components: false,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.log(`\nSorry, there was an error adding a project to your workspace: `, error);
|
|
32
|
+
(0, quit_1.quit)("Project selection was not updated.");
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.default = addProject;
|
|
36
|
+
//# sourceMappingURL=add-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../lib/add-project.ts"],"names":[],"mappings":";;;;;AAAA,4CAAsD;AACtD,4EAAoD;AACpD,qEAGqC;AACrC,sDAA8B;AAC9B,uCAAoC;AAEpC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IAC5B,MAAM,QAAQ,GAAG,IAAA,yCAAmB,GAAE,CAAC;IACvC,MAAM,eAAe,GAAG,IAAA,0CAAoB,GAAE,CAAC;IAE/C,IAAI;QACF,IAAI,eAAe,EAAE;YACnB,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,OAAO,CAAC,GAAG,CACT,4CAA4C,gBAAM,CAAC,IAAI,CACrD,mBAAmB,CACpB,qCAAqC,IAAA,wBAAc,EAAC,QAAQ,CAAC,EAAE,CACjE,CAAC;aACH;iBAAM;gBACL,OAAO,CAAC,GAAG,CACT,iDAAiD,gBAAM,CAAC,IAAI,CAC1D,mBAAmB,CACpB,EAAE,CACJ,CAAC;aACH;SACF;aAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO,CAAC,GAAG,CACT,uEAAuE,IAAA,wBAAc,EACnF,QAAQ,CACT,EAAE,CACJ,CAAC;SACH;QACD,MAAM,IAAA,8BAAoB,EAAC;YACzB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CACT,kEAAkE,EAClE,KAAK,CACN,CAAC;QACF,IAAA,WAAI,EAAC,oCAAoC,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
package/bin/lib/api.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
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.create = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const config_1 = __importDefault(require("./config"));
|
|
9
|
+
const consts_1 = __importDefault(require("./consts"));
|
|
10
|
+
const create = (token) => {
|
|
11
|
+
return axios_1.default.create({
|
|
12
|
+
baseURL: consts_1.default.API_HOST,
|
|
13
|
+
headers: {
|
|
14
|
+
Authorization: `token ${token}`,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
exports.create = create;
|
|
19
|
+
exports.default = (0, exports.create)(config_1.default.getToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST));
|
|
20
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,sDAA8B;AAC9B,sDAA8B;AAEvB,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;IACvC,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,gBAAM,CAAC,QAAQ;QACxB,OAAO,EAAE;YACP,aAAa,EAAE,SAAS,KAAK,EAAE;SAChC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,MAAM,UAOjB;AAEF,kBAAe,IAAA,cAAM,EAAC,gBAAM,CAAC,QAAQ,CAAC,gBAAM,CAAC,WAAW,EAAE,gBAAM,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,202 @@
|
|
|
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.DEFAULT_CONFIG = exports.DEFAULT_CONFIG_JSON = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const url_1 = __importDefault(require("url"));
|
|
10
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
11
|
+
const consts_1 = __importDefault(require("./consts"));
|
|
12
|
+
exports.DEFAULT_CONFIG_JSON = {
|
|
13
|
+
sources: {
|
|
14
|
+
components: { enabled: true },
|
|
15
|
+
},
|
|
16
|
+
variants: true,
|
|
17
|
+
format: "flat",
|
|
18
|
+
};
|
|
19
|
+
exports.DEFAULT_CONFIG = js_yaml_1.default.dump(exports.DEFAULT_CONFIG_JSON);
|
|
20
|
+
function createFileIfMissing(filename, defaultContents) {
|
|
21
|
+
const dir = path_1.default.dirname(filename);
|
|
22
|
+
// create the directory if it doesn't already exist
|
|
23
|
+
if (!fs_1.default.existsSync(dir))
|
|
24
|
+
fs_1.default.mkdirSync(dir);
|
|
25
|
+
// create the file if it doesn't already exist
|
|
26
|
+
if (!fs_1.default.existsSync(filename)) {
|
|
27
|
+
// create the file, writing the `defaultContents` if provided
|
|
28
|
+
fs_1.default.writeFileSync(filename, defaultContents || "", "utf-8");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function jsonIsConfigYAML(json) {
|
|
32
|
+
return typeof json === "object";
|
|
33
|
+
}
|
|
34
|
+
function jsonIsGlobalYAML(json) {
|
|
35
|
+
return (!!json &&
|
|
36
|
+
typeof json === "object" &&
|
|
37
|
+
Object.values(json).every((arr) => arr.every &&
|
|
38
|
+
arr.every((val) => typeof val === "object" && Object.keys(val).includes("token"))));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read data from a project config file
|
|
42
|
+
* @param {string} file defaults to `PROJECT_CONFIG_FILE` defined in `constants.js`
|
|
43
|
+
* @param {*} defaultData defaults to `{}`
|
|
44
|
+
* @returns { ConfigYAML }
|
|
45
|
+
*/
|
|
46
|
+
function readProjectConfigData(file = consts_1.default.PROJECT_CONFIG_FILE, defaultData = {}) {
|
|
47
|
+
createFileIfMissing(file, exports.DEFAULT_CONFIG);
|
|
48
|
+
const fileContents = fs_1.default.readFileSync(file, "utf8");
|
|
49
|
+
const yamlData = js_yaml_1.default.load(fileContents);
|
|
50
|
+
if (jsonIsConfigYAML(yamlData)) {
|
|
51
|
+
return yamlData;
|
|
52
|
+
}
|
|
53
|
+
return defaultData;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Read data from a global config file
|
|
57
|
+
* @param {string} file defaults to `CONFIG_FILE` defined in `constants.js`
|
|
58
|
+
* @param {*} defaultData defaults to `{}`
|
|
59
|
+
* @returns { Record<string, { token: string }[]> }
|
|
60
|
+
*/
|
|
61
|
+
function readGlobalConfigData(file = consts_1.default.CONFIG_FILE, defaultData = {}) {
|
|
62
|
+
createFileIfMissing(file);
|
|
63
|
+
const fileContents = fs_1.default.readFileSync(file, "utf8");
|
|
64
|
+
const yamlData = js_yaml_1.default.load(fileContents);
|
|
65
|
+
if (jsonIsGlobalYAML(yamlData)) {
|
|
66
|
+
return yamlData;
|
|
67
|
+
}
|
|
68
|
+
return defaultData;
|
|
69
|
+
}
|
|
70
|
+
function writeProjectConfigData(file, data) {
|
|
71
|
+
createFileIfMissing(file, exports.DEFAULT_CONFIG);
|
|
72
|
+
const existingData = readProjectConfigData(file);
|
|
73
|
+
const configData = {
|
|
74
|
+
...existingData,
|
|
75
|
+
...data,
|
|
76
|
+
sources: {
|
|
77
|
+
...existingData.sources,
|
|
78
|
+
...data.sources,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
const yamlStr = js_yaml_1.default.dump(configData);
|
|
82
|
+
fs_1.default.writeFileSync(file, yamlStr, "utf8");
|
|
83
|
+
}
|
|
84
|
+
function writeGlobalConfigData(file, data) {
|
|
85
|
+
createFileIfMissing(file);
|
|
86
|
+
const existingData = readGlobalConfigData(file);
|
|
87
|
+
const yamlStr = js_yaml_1.default.dump({ ...existingData, ...data });
|
|
88
|
+
fs_1.default.writeFileSync(file, yamlStr, "utf8");
|
|
89
|
+
}
|
|
90
|
+
function justTheHost(host) {
|
|
91
|
+
if (!host.includes("://"))
|
|
92
|
+
return host;
|
|
93
|
+
return url_1.default.parse(host).hostname || "";
|
|
94
|
+
}
|
|
95
|
+
function deleteToken(file, host) {
|
|
96
|
+
const data = readGlobalConfigData(file);
|
|
97
|
+
const hostParsed = justTheHost(host);
|
|
98
|
+
data[hostParsed] = [];
|
|
99
|
+
data[hostParsed][0] = { token: "" };
|
|
100
|
+
writeGlobalConfigData(file, data);
|
|
101
|
+
}
|
|
102
|
+
function saveToken(file, host, token) {
|
|
103
|
+
const data = readGlobalConfigData(file);
|
|
104
|
+
const hostParsed = justTheHost(host);
|
|
105
|
+
data[hostParsed] = []; // only allow one token per host
|
|
106
|
+
data[hostParsed][0] = { token };
|
|
107
|
+
writeGlobalConfigData(file, data);
|
|
108
|
+
}
|
|
109
|
+
function getTokenFromEnv() {
|
|
110
|
+
return process.env.DITTO_API_KEY;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
*
|
|
114
|
+
* @param {string} file
|
|
115
|
+
* @param {string} host
|
|
116
|
+
* @returns {Token}
|
|
117
|
+
*/
|
|
118
|
+
function getToken(file, host) {
|
|
119
|
+
const tokenFromEnv = getTokenFromEnv();
|
|
120
|
+
if (tokenFromEnv) {
|
|
121
|
+
return tokenFromEnv;
|
|
122
|
+
}
|
|
123
|
+
const data = readGlobalConfigData(file);
|
|
124
|
+
const hostEntry = data[justTheHost(host)];
|
|
125
|
+
if (!hostEntry)
|
|
126
|
+
return undefined;
|
|
127
|
+
const { length } = hostEntry;
|
|
128
|
+
return hostEntry[length - 1].token;
|
|
129
|
+
}
|
|
130
|
+
const IS_DUPLICATE = /-(\d+$)/;
|
|
131
|
+
function dedupeProjectName(projectNames, projectName) {
|
|
132
|
+
let dedupedName = projectName;
|
|
133
|
+
if (projectNames.has(dedupedName)) {
|
|
134
|
+
while (projectNames.has(dedupedName)) {
|
|
135
|
+
const [_, numberStr] = dedupedName.match(IS_DUPLICATE) || [];
|
|
136
|
+
if (numberStr && !isNaN(parseInt(numberStr))) {
|
|
137
|
+
dedupedName = `${dedupedName.replace(IS_DUPLICATE, "")}-${parseInt(numberStr) + 1}`;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
dedupedName = `${dedupedName}-1`;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return dedupedName;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reads from the config file, filters out
|
|
148
|
+
* invalid projects, dedupes those remaining, and returns:
|
|
149
|
+
* - whether or not the data required to `pull` is present
|
|
150
|
+
* - whether or not the component library should be fetched
|
|
151
|
+
* - an array of valid, deduped projects
|
|
152
|
+
* - the `variants` and `format` config options
|
|
153
|
+
*/
|
|
154
|
+
function parseSourceInformation(file) {
|
|
155
|
+
const { sources, variants, format, status, richText, projects: projectsRoot, components: componentsRoot, } = readProjectConfigData(file);
|
|
156
|
+
const projects = sources?.projects || [];
|
|
157
|
+
const projectNames = new Set();
|
|
158
|
+
const validProjects = [];
|
|
159
|
+
let hasComponentLibraryInProjects = false;
|
|
160
|
+
(projects || []).forEach((project) => {
|
|
161
|
+
const isValid = project.id && project.name;
|
|
162
|
+
if (!isValid) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (project.id === "ditto_component_library") {
|
|
166
|
+
hasComponentLibraryInProjects = true;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
project.fileName = dedupeProjectName(projectNames, project.name);
|
|
170
|
+
projectNames.add(project.fileName);
|
|
171
|
+
validProjects.push(project);
|
|
172
|
+
});
|
|
173
|
+
const shouldFetchComponentLibrary = Boolean(sources?.components?.enabled);
|
|
174
|
+
const hasSourceData = !!validProjects.length || shouldFetchComponentLibrary;
|
|
175
|
+
return {
|
|
176
|
+
hasSourceData,
|
|
177
|
+
validProjects,
|
|
178
|
+
shouldFetchComponentLibrary,
|
|
179
|
+
variants: variants || false,
|
|
180
|
+
format,
|
|
181
|
+
status,
|
|
182
|
+
richText,
|
|
183
|
+
hasTopLevelProjectsField: !!projectsRoot,
|
|
184
|
+
hasTopLevelComponentsField: !!componentsRoot,
|
|
185
|
+
hasComponentLibraryInProjects,
|
|
186
|
+
componentFolders: sources?.components?.folders || null,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
exports.default = {
|
|
190
|
+
createFileIfMissing,
|
|
191
|
+
readProjectConfigData,
|
|
192
|
+
readGlobalConfigData,
|
|
193
|
+
writeGlobalConfigData,
|
|
194
|
+
writeProjectConfigData,
|
|
195
|
+
justTheHost,
|
|
196
|
+
saveToken,
|
|
197
|
+
deleteToken,
|
|
198
|
+
getToken,
|
|
199
|
+
getTokenFromEnv,
|
|
200
|
+
parseSourceInformation,
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.TEXT_FILE = exports.TEXT_DIR = exports.PROJECT_CONFIG_FILE = exports.CONFIG_FILE = exports.API_HOST = void 0;
|
|
7
|
+
const os_1 = require("os");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
exports.API_HOST = process.env.DITTO_API_HOST || "https://api.dittowords.com";
|
|
10
|
+
exports.CONFIG_FILE = process.env.DITTO_CONFIG_FILE || path_1.default.join((0, os_1.homedir)(), ".config", "ditto");
|
|
11
|
+
exports.PROJECT_CONFIG_FILE = path_1.default.normalize(path_1.default.join("ditto", "config.yml"));
|
|
12
|
+
exports.TEXT_DIR = process.env.DITTO_TEXT_DIR || "ditto";
|
|
13
|
+
exports.TEXT_FILE = path_1.default.normalize(path_1.default.join(exports.TEXT_DIR, "text.json"));
|
|
14
|
+
exports.default = {
|
|
15
|
+
API_HOST: exports.API_HOST,
|
|
16
|
+
CONFIG_FILE: exports.CONFIG_FILE,
|
|
17
|
+
PROJECT_CONFIG_FILE: exports.PROJECT_CONFIG_FILE,
|
|
18
|
+
TEXT_DIR: exports.TEXT_DIR,
|
|
19
|
+
TEXT_FILE: exports.TEXT_FILE,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA6B;AAC7B,gDAAwB;AAEX,QAAA,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4BAA4B,CAAC;AAChD,QAAA,WAAW,GACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,cAAI,CAAC,IAAI,CAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,QAAA,mBAAmB,GAAG,cAAI,CAAC,SAAS,CAC/C,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CACjC,CAAC;AACW,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC;AACjD,QAAA,SAAS,GAAG,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1E,kBAAe;IACb,QAAQ,EAAR,gBAAQ;IACR,WAAW,EAAX,mBAAW;IACX,mBAAmB,EAAnB,2BAAmB;IACnB,QAAQ,EAAR,gBAAQ;IACR,SAAS,EAAT,iBAAS;CACV,CAAC"}
|
package/bin/lib/ditto.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
// This is the main entry point for the ditto-cli command.
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
// to use V8's code cache to speed up instantiation time
|
|
10
|
+
require("v8-compile-cache");
|
|
11
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
12
|
+
const init_1 = require("./init/init");
|
|
13
|
+
const pull_1 = require("./pull");
|
|
14
|
+
const quit_1 = require("./utils/quit");
|
|
15
|
+
const add_project_1 = __importDefault(require("./add-project"));
|
|
16
|
+
const remove_project_1 = __importDefault(require("./remove-project"));
|
|
17
|
+
const replace_1 = require("./replace");
|
|
18
|
+
const generate_suggestions_1 = require("./generate-suggestions");
|
|
19
|
+
const processMetaOption_1 = __importDefault(require("./utils/processMetaOption"));
|
|
20
|
+
const VERSION = package_json_1.default.version;
|
|
21
|
+
const COMMANDS = [
|
|
22
|
+
{
|
|
23
|
+
name: "pull",
|
|
24
|
+
description: "Sync copy from Ditto into the current working directory",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "project",
|
|
28
|
+
description: "Add a Ditto project to sync copy from",
|
|
29
|
+
commands: [
|
|
30
|
+
{
|
|
31
|
+
name: "add",
|
|
32
|
+
description: "Add a Ditto project to sync copy from",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "remove",
|
|
36
|
+
description: "Stop syncing copy from a Ditto project",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "generate-suggestions",
|
|
42
|
+
description: "Find text that can be potentially replaced with Ditto text",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "replace",
|
|
46
|
+
description: "Find and replace Ditto text with code",
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
const setupCommands = () => {
|
|
50
|
+
commander_1.program.name("ditto-cli");
|
|
51
|
+
COMMANDS.forEach((commandConfig) => {
|
|
52
|
+
const cmd = commander_1.program
|
|
53
|
+
.command(commandConfig.name)
|
|
54
|
+
.description(commandConfig.description)
|
|
55
|
+
.action((str, options) => executeCommand(commandConfig.name, options));
|
|
56
|
+
if ("commands" in commandConfig) {
|
|
57
|
+
commandConfig.commands.forEach((nestedCommand) => {
|
|
58
|
+
cmd
|
|
59
|
+
.command(nestedCommand.name)
|
|
60
|
+
.description(nestedCommand.description)
|
|
61
|
+
.action((str, options) => executeCommand(`${commandConfig.name} ${nestedCommand.name}`, options));
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
const setupOptions = () => {
|
|
67
|
+
commander_1.program.option("-m, --meta <data...>", "Include arbitrary data in requests to the Ditto API. Ex: -m githubActionRequest:true trigger:manual");
|
|
68
|
+
commander_1.program.version(VERSION, "-v, --version", "Output the current version");
|
|
69
|
+
};
|
|
70
|
+
const executeCommand = async (command, options) => {
|
|
71
|
+
const needsInitialization = (0, init_1.needsTokenOrSource)();
|
|
72
|
+
if (needsInitialization) {
|
|
73
|
+
try {
|
|
74
|
+
await (0, init_1.init)();
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
(0, quit_1.quit)("Exiting Ditto CLI...");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const { meta } = commander_1.program.opts();
|
|
82
|
+
switch (command) {
|
|
83
|
+
case "none":
|
|
84
|
+
case "pull": {
|
|
85
|
+
return (0, pull_1.pull)({ meta: (0, processMetaOption_1.default)(meta) });
|
|
86
|
+
}
|
|
87
|
+
case "project":
|
|
88
|
+
case "project add": {
|
|
89
|
+
// initialization already includes the selection of a source,
|
|
90
|
+
// so if `project add` is called during initialization, don't
|
|
91
|
+
// prompt the user to select a source again
|
|
92
|
+
if (needsInitialization)
|
|
93
|
+
return;
|
|
94
|
+
return (0, add_project_1.default)();
|
|
95
|
+
}
|
|
96
|
+
case "project remove": {
|
|
97
|
+
return (0, remove_project_1.default)();
|
|
98
|
+
}
|
|
99
|
+
case "generate-suggestions": {
|
|
100
|
+
return (0, generate_suggestions_1.generateSuggestions)();
|
|
101
|
+
}
|
|
102
|
+
case "replace": {
|
|
103
|
+
return (0, replace_1.replace)(options);
|
|
104
|
+
}
|
|
105
|
+
default: {
|
|
106
|
+
(0, quit_1.quit)("Exiting Ditto CLI...");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const main = async () => {
|
|
112
|
+
setupCommands();
|
|
113
|
+
setupOptions();
|
|
114
|
+
if (process.argv.length <= 2 && process.argv[1].includes("ditto-cli")) {
|
|
115
|
+
await executeCommand("none", []);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
commander_1.program.parse(process.argv);
|
|
119
|
+
};
|
|
120
|
+
main();
|
|
121
|
+
//# sourceMappingURL=ditto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ditto.js","sourceRoot":"","sources":["../../lib/ditto.ts"],"names":[],"mappings":"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"}
|