@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.
Files changed (72) hide show
  1. package/README.md +27 -2
  2. package/bin/ditto.js +41 -0
  3. package/bin/ditto.js.map +1 -1
  4. package/bin/http/importComponents.js +56 -0
  5. package/bin/http/importComponents.js.map +1 -0
  6. package/bin/importComponents.js +14 -0
  7. package/bin/importComponents.js.map +1 -0
  8. package/bin/lib/add-project.js +36 -0
  9. package/bin/lib/add-project.js.map +1 -0
  10. package/bin/lib/api.js +20 -0
  11. package/bin/lib/api.js.map +1 -0
  12. package/bin/lib/config.js +202 -0
  13. package/bin/lib/config.js.map +1 -0
  14. package/bin/lib/consts.js +21 -0
  15. package/bin/lib/consts.js.map +1 -0
  16. package/bin/lib/ditto.js +121 -0
  17. package/bin/lib/ditto.js.map +1 -0
  18. package/bin/lib/generate-suggestions.js +71 -0
  19. package/bin/lib/generate-suggestions.js.map +1 -0
  20. package/bin/lib/http/fetchComponents.js +13 -0
  21. package/bin/lib/http/fetchComponents.js.map +1 -0
  22. package/bin/lib/http/fetchVariants.js +26 -0
  23. package/bin/lib/http/fetchVariants.js.map +1 -0
  24. package/bin/lib/init/init.js +50 -0
  25. package/bin/lib/init/init.js.map +1 -0
  26. package/bin/lib/init/project.js +108 -0
  27. package/bin/lib/init/project.js.map +1 -0
  28. package/bin/lib/init/token.js +91 -0
  29. package/bin/lib/init/token.js.map +1 -0
  30. package/bin/lib/output.js +34 -0
  31. package/bin/lib/output.js.map +1 -0
  32. package/bin/lib/pull.js +264 -0
  33. package/bin/lib/pull.js.map +1 -0
  34. package/bin/lib/remove-project.js +35 -0
  35. package/bin/lib/remove-project.js.map +1 -0
  36. package/bin/lib/replace.js +107 -0
  37. package/bin/lib/replace.js.map +1 -0
  38. package/bin/lib/types.js +3 -0
  39. package/bin/lib/types.js.map +1 -0
  40. package/bin/lib/utils/cleanFileName.js +11 -0
  41. package/bin/lib/utils/cleanFileName.js.map +1 -0
  42. package/bin/lib/utils/generateJsDriver.js +56 -0
  43. package/bin/lib/utils/generateJsDriver.js.map +1 -0
  44. package/bin/lib/utils/getSelectedProjects.js +61 -0
  45. package/bin/lib/utils/getSelectedProjects.js.map +1 -0
  46. package/bin/lib/utils/processMetaOption.js +15 -0
  47. package/bin/lib/utils/processMetaOption.js.map +1 -0
  48. package/bin/lib/utils/projectsToText.js +25 -0
  49. package/bin/lib/utils/projectsToText.js.map +1 -0
  50. package/bin/lib/utils/promptForProject.js +43 -0
  51. package/bin/lib/utils/promptForProject.js.map +1 -0
  52. package/bin/lib/utils/quit.js +10 -0
  53. package/bin/lib/utils/quit.js.map +1 -0
  54. package/bin/lib/utils/sourcesToText.js +25 -0
  55. package/bin/lib/utils/sourcesToText.js.map +1 -0
  56. package/bin/package.json +76 -0
  57. package/bin/pull.js +18 -8
  58. package/bin/pull.js.map +1 -1
  59. package/lib/ditto.ts +44 -1
  60. package/lib/http/importComponents.ts +71 -0
  61. package/lib/importComponents.ts +24 -0
  62. package/lib/pull.ts +29 -9
  63. package/lib/types.ts +1 -1
  64. package/package.json +2 -1
  65. package/.idea/cli.iml +0 -13
  66. package/.idea/codeStyles/Project.xml +0 -65
  67. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  68. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  69. package/.idea/modules.xml +0 -8
  70. package/.idea/prettier.xml +0 -6
  71. package/.idea/vcs.xml +0 -6
  72. 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 results in JSON files being generated, an `index.js` "driver file" is also created to simplify the process of integrating Ditto into web apps:
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":"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"}
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"}
@@ -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":";;;;;;AACA,0DAA0D;AAC1D,yCAAoC;AACpC,wDAAwD;AACxD,4BAA0B;AAE1B,mEAA0C;AAE1C,sCAAuD;AACvD,iCAA8B;AAC9B,uCAAoC;AACpC,gEAAuC;AACvC,sEAA6C;AAC7C,uCAAoC;AACpC,iEAA6D;AAE7D,kFAA0D;AAE1D,MAAM,OAAO,GAAG,sBAAW,CAAC,OAAO,CAAC;AAUpC,MAAM,QAAQ,GAAG;IACf;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,yDAAyD;KACvE;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,uCAAuC;aACrD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,4DAA4D;KAC1E;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uCAAuC;KACrD;CACO,CAAC;AAEX,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,mBAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1B,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,mBAAO;aAChB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;aAC3B,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;aACtC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAEzE,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;gBAC/C,GAAG;qBACA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;qBAC3B,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;qBACtC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CACvB,cAAc,CACZ,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE,EAC7C,OAAO,CACR,CACF,CAAC;YACN,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,mBAAO,CAAC,MAAM,CACZ,sBAAsB,EACtB,qGAAqG,CACtG,CAAC;IACF,mBAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAyB,EACzB,OAAiB,EACF,EAAE;IACjB,MAAM,mBAAmB,GAAG,IAAA,yBAAkB,GAAE,CAAC;IACjD,IAAI,mBAAmB,EAAE;QACvB,IAAI;YACF,MAAM,IAAA,WAAI,GAAE,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACd,IAAA,WAAI,EAAC,sBAAsB,CAAC,CAAC;YAC7B,OAAO;SACR;KACF;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,EAAE;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,IAAA,WAAI,EAAC,EAAE,IAAI,EAAE,IAAA,2BAAiB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChD;QACD,KAAK,SAAS,CAAC;QACf,KAAK,aAAa,CAAC,CAAC;YAClB,6DAA6D;YAC7D,6DAA6D;YAC7D,2CAA2C;YAC3C,IAAI,mBAAmB;gBAAE,OAAO;YAEhC,OAAO,IAAA,qBAAU,GAAE,CAAC;SACrB;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,OAAO,IAAA,wBAAa,GAAE,CAAC;SACxB;QACD,KAAK,sBAAsB,CAAC,CAAC;YAC3B,OAAO,IAAA,0CAAmB,GAAE,CAAC;SAC9B;QACD,KAAK,SAAS,CAAC,CAAC;YACd,OAAO,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;SACzB;QACD,OAAO,CAAC,CAAC;YACP,IAAA,WAAI,EAAC,sBAAsB,CAAC,CAAC;YAC7B,OAAO;SACR;KACF;AACH,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IAEf,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrE,MAAM,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO;KACR;IAED,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}