@dittowords/cli 4.3.0 → 4.4.1

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 (85) hide show
  1. package/.github/actions/install-node-dependencies/action.yml +24 -0
  2. package/.github/workflows/required-checks.yml +24 -0
  3. package/.sentryclirc +3 -0
  4. package/__mocks__/fs.js +2 -0
  5. package/bin/__mocks__/api.js +48 -0
  6. package/bin/__mocks__/api.js.map +1 -0
  7. package/bin/config.test.js +4 -3
  8. package/bin/config.test.js.map +1 -1
  9. package/bin/consts.js +19 -29
  10. package/bin/consts.js.map +1 -1
  11. package/bin/ditto.js +12 -4
  12. package/bin/ditto.js.map +1 -1
  13. package/bin/generate-suggestions.js +68 -58
  14. package/bin/generate-suggestions.js.map +1 -1
  15. package/bin/generate-suggestions.test.js +24 -13
  16. package/bin/generate-suggestions.test.js.map +1 -1
  17. package/bin/http/__mocks__/fetchComponentFolders.js +71 -0
  18. package/bin/http/__mocks__/fetchComponentFolders.js.map +1 -0
  19. package/bin/http/__mocks__/fetchComponents.js +73 -0
  20. package/bin/http/__mocks__/fetchComponents.js.map +1 -0
  21. package/bin/http/__mocks__/fetchVariants.js +71 -0
  22. package/bin/http/__mocks__/fetchVariants.js.map +1 -0
  23. package/bin/http/fetchComponentFolders.js +4 -4
  24. package/bin/http/fetchComponentFolders.js.map +1 -1
  25. package/bin/http/fetchComponents.js +4 -4
  26. package/bin/http/fetchComponents.js.map +1 -1
  27. package/bin/http/fetchVariants.js +6 -3
  28. package/bin/http/fetchVariants.js.map +1 -1
  29. package/bin/http/http.test.js +159 -0
  30. package/bin/http/http.test.js.map +1 -0
  31. package/bin/http/importComponents.js +9 -2
  32. package/bin/http/importComponents.js.map +1 -1
  33. package/bin/init/project.test.js +5 -28
  34. package/bin/init/project.test.js.map +1 -1
  35. package/bin/init/token.js +72 -27
  36. package/bin/init/token.js.map +1 -1
  37. package/bin/init/token.test.js +87 -9
  38. package/bin/init/token.test.js.map +1 -1
  39. package/bin/pull-lib.test.js +379 -0
  40. package/bin/pull-lib.test.js.map +1 -0
  41. package/bin/pull.js +15 -4
  42. package/bin/pull.js.map +1 -1
  43. package/bin/pull.test.js +73 -290
  44. package/bin/pull.test.js.map +1 -1
  45. package/bin/replace.js +22 -6
  46. package/bin/replace.js.map +1 -1
  47. package/bin/replace.test.js +53 -11
  48. package/bin/replace.test.js.map +1 -1
  49. package/bin/utils/determineModuleType.js +6 -7
  50. package/bin/utils/determineModuleType.js.map +1 -1
  51. package/bin/utils/determineModuleType.test.js +60 -0
  52. package/bin/utils/determineModuleType.test.js.map +1 -0
  53. package/bin/utils/getSelectedProjects.js +5 -5
  54. package/bin/utils/getSelectedProjects.js.map +1 -1
  55. package/bin/utils/quit.js +3 -3
  56. package/bin/utils/quit.js.map +1 -1
  57. package/jest.config.ts +16 -0
  58. package/lib/__mocks__/api.ts +12 -0
  59. package/lib/config.test.ts +3 -1
  60. package/lib/consts.ts +19 -17
  61. package/lib/ditto.ts +9 -1
  62. package/lib/generate-suggestions.test.ts +23 -11
  63. package/lib/generate-suggestions.ts +89 -79
  64. package/lib/http/__mocks__/fetchComponentFolders.ts +23 -0
  65. package/lib/http/__mocks__/fetchComponents.ts +24 -0
  66. package/lib/http/__mocks__/fetchVariants.ts +21 -0
  67. package/lib/http/fetchComponentFolders.ts +6 -4
  68. package/lib/http/fetchComponents.ts +5 -3
  69. package/lib/http/fetchVariants.ts +15 -4
  70. package/lib/http/http.test.ts +122 -0
  71. package/lib/http/importComponents.ts +8 -0
  72. package/lib/init/project.test.ts +4 -27
  73. package/lib/init/token.test.ts +55 -7
  74. package/lib/init/token.ts +76 -27
  75. package/lib/pull-lib.test.ts +367 -0
  76. package/lib/pull.test.ts +63 -316
  77. package/lib/pull.ts +13 -2
  78. package/lib/replace.test.ts +46 -10
  79. package/lib/replace.ts +20 -3
  80. package/lib/utils/determineModuleType.test.ts +48 -0
  81. package/lib/utils/determineModuleType.ts +4 -6
  82. package/lib/utils/getSelectedProjects.ts +3 -3
  83. package/lib/utils/quit.ts +1 -1
  84. package/package.json +4 -3
  85. package/jest.config.js +0 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/generate-suggestions.test.ts"],"sourcesContent":["import fs from \"fs/promises\";\nimport path from \"path\";\nimport { findComponentsInJSXFiles } from \"./generate-suggestions\";\n\ndescribe(\"findTextInJSXFiles\", () => {\n async function createTempFile(filename: string, content: string) {\n const filePath = path.join(\".\", filename);\n await fs.writeFile(filePath, content);\n return filePath;\n }\n\n async function deleteTempFile(filename: string) {\n const filePath = path.join(\".\", filename);\n await fs.unlink(filePath);\n }\n\n it(\"should return an empty obj when no files are found\", async () => {\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n components: {},\n });\n\n expect(result).toEqual({});\n });\n\n it(\"should return an empty obj when searchString is not found in any file\", async () => {\n const file1 = await createTempFile(\"file1.jsx\", \"<div>No match</div>\");\n const file2 = await createTempFile(\"file2.tsx\", \"<div>No match</div>\");\n\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n components: {\n acomponent: {\n name: \"A Component\",\n text: \"A Component\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual({});\n\n await deleteTempFile(file1);\n await deleteTempFile(file2);\n });\n\n it(\"should return an array with correct occurrences when searchString is found\", async () => {\n const file1 = await createTempFile(\n \"file1.jsx\",\n `<div>Test searchString and another searchString</div>`\n );\n\n const expectedResult = {\n \"search-string\": {\n apiId: \"search-string\",\n folder: null,\n name: \"Search String\",\n occurrences: {\n [file1]: [\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n ],\n },\n status: \"NONE\",\n text: \"searchString\",\n },\n };\n\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual(expectedResult);\n\n await deleteTempFile(file1);\n });\n\n it(\"-f flag works\", async () => {\n const file1 = await createTempFile(\n \"file1.jsx\",\n `<div>Test searchString and another searchString</div>`\n );\n\n const expectedResult = {\n \"search-string\": {\n apiId: \"search-string\",\n folder: null,\n name: \"Search String\",\n occurrences: {\n [file1]: [\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n ],\n },\n status: \"NONE\",\n text: \"searchString\",\n },\n };\n\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n files: [\"file1.jsx\"],\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual(expectedResult);\n\n try {\n const result2 = await findComponentsInJSXFiles({\n directory: \".\",\n files: [\"file2.jsx\"],\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(false).toEqual(true);\n } catch {\n expect(true).toEqual(true);\n }\n\n await deleteTempFile(file1);\n });\n});\n"],"names":["path","fs"],"mappings":"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","debug_id":"c4359991-3262-5990-9114-03bc3f03990b"}
1
+ {"version":3,"sources":["../lib/generate-suggestions.test.ts"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { findComponentsInJSXFiles } from \"./generate-suggestions\";\n\njest.mock(\"fs\");\n\ndescribe(\"findTextInJSXFiles\", () => {\n async function createTempFile(filename: string, content: string) {\n const filePath = path.join(\"/\", filename);\n await new Promise((resolve, reject) => {\n try {\n fs.writeFile(filePath, content, () => resolve(null));\n } catch (e) {\n reject(e);\n }\n });\n return filePath;\n }\n\n async function deleteTempFile(filename: string) {\n const filePath = path.join(\"/\", filename);\n await new Promise((resolve, reject) => {\n try {\n fs.unlink(filePath, resolve);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n it(\"should return an empty obj when no files are found\", async () => {\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n components: {},\n });\n\n expect(result).toEqual({});\n });\n\n it(\"should return an empty obj when searchString is not found in any file\", async () => {\n const file1 = await createTempFile(\"file1.jsx\", \"<div>No match</div>\");\n const file2 = await createTempFile(\"file2.tsx\", \"<div>No match</div>\");\n\n const result = await findComponentsInJSXFiles({\n directory: \".\",\n components: {\n acomponent: {\n name: \"A Component\",\n text: \"A Component\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual({});\n\n await deleteTempFile(file1);\n await deleteTempFile(file2);\n });\n\n it(\"should return an array with correct occurrences when searchString is found\", async () => {\n const file1 = await createTempFile(\n \"file1.jsx\",\n `<div>Test searchString and another searchString</div>`\n );\n\n const expectedResult = {\n \"search-string\": {\n apiId: \"search-string\",\n folder: null,\n name: \"Search String\",\n occurrences: {\n [file1]: [\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n ],\n },\n status: \"NONE\",\n text: \"searchString\",\n },\n };\n\n const result = await findComponentsInJSXFiles({\n directory: \"/\",\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual(expectedResult);\n\n await deleteTempFile(file1);\n });\n\n it(\"-f flag works\", async () => {\n const file1 = await createTempFile(\n \"file1.jsx\",\n `<div>Test searchString and another searchString</div>`\n );\n\n const expectedResult = {\n \"search-string\": {\n apiId: \"search-string\",\n folder: null,\n name: \"Search String\",\n occurrences: {\n [file1]: [\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n {\n lineNumber: 1,\n preview: \"<div>Test searchString and another searchString</div>\",\n },\n ],\n },\n status: \"NONE\",\n text: \"searchString\",\n },\n };\n\n const result = await findComponentsInJSXFiles({\n files: [\"/file1.jsx\"],\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(result).toEqual(expectedResult);\n\n try {\n await findComponentsInJSXFiles({\n files: [\"/file2.jsx\"],\n components: {\n \"search-string\": {\n name: \"Search String\",\n text: \"searchString\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n\n expect(false).toEqual(true);\n } catch {\n expect(true).toEqual(true);\n }\n\n await deleteTempFile(file1);\n });\n});\n"],"names":["path","fs"],"mappings":"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","debug_id":"bd23df8e-2e66-5de9-8b6b-5a3ca81ea0a8"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5fd97f27-7cd5-5b60-98e1-52daff164017")}catch(e){}}();
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var __async = (__this, __arguments, generator) => {
22
+ return new Promise((resolve, reject) => {
23
+ var fulfilled = (value) => {
24
+ try {
25
+ step(generator.next(value));
26
+ } catch (e) {
27
+ reject(e);
28
+ }
29
+ };
30
+ var rejected = (value) => {
31
+ try {
32
+ step(generator.throw(value));
33
+ } catch (e) {
34
+ reject(e);
35
+ }
36
+ };
37
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
38
+ step((generator = generator.apply(__this, __arguments)).next());
39
+ });
40
+ };
41
+ var fetchComponentFolders_exports = {};
42
+ __export(fetchComponentFolders_exports, {
43
+ MOCK_COMPONENT_FOLDERS: () => MOCK_COMPONENT_FOLDERS,
44
+ MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA: () => MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA,
45
+ fetchComponentFolders: () => fetchComponentFolders
46
+ });
47
+ module.exports = __toCommonJS(fetchComponentFolders_exports);
48
+ const MOCK_COMPONENT_FOLDERS = {
49
+ example_folder: "Example Folder"
50
+ };
51
+ const MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA = {
52
+ example_folder: "Example Folder",
53
+ example_folder_sample: "Sample Example Folder"
54
+ };
55
+ function fetchComponentFolders() {
56
+ return __async(this, arguments, function* (_options = {}) {
57
+ if (_options.showSampleData) {
58
+ return MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA;
59
+ }
60
+ return MOCK_COMPONENT_FOLDERS;
61
+ });
62
+ }
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ MOCK_COMPONENT_FOLDERS,
66
+ MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA,
67
+ fetchComponentFolders
68
+ });
69
+ //# sourceMappingURL=fetchComponentFolders.js.map
70
+
71
+ //# debugId=5fd97f27-7cd5-5b60-98e1-52daff164017
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/http/__mocks__/fetchComponentFolders.ts"],"sourcesContent":["import type { FetchComponentFoldersResponse } from \"../fetchComponentFolders\";\n\nexport const MOCK_COMPONENT_FOLDERS: FetchComponentFoldersResponse = {\n example_folder: \"Example Folder\",\n};\n\nexport const MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA: FetchComponentFoldersResponse =\n {\n example_folder: \"Example Folder\",\n example_folder_sample: \"Sample Example Folder\",\n };\n\nexport async function fetchComponentFolders(\n _options: {\n showSampleData?: boolean;\n } = {}\n): Promise<FetchComponentFoldersResponse> {\n if (_options.showSampleData) {\n return MOCK_COMPONENT_FOLDERS_WITH_SAMPLE_DATA;\n }\n\n return MOCK_COMPONENT_FOLDERS;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,yBAAwD;AAAA,EACnE,gBAAgB;AAClB;AAEO,MAAM,0CACX;AAAA,EACE,gBAAgB;AAAA,EAChB,uBAAuB;AACzB;AAEF,SAAsB,wBAIoB;AAAA,6CAHxC,WAEI,CAAC,GACmC;AACxC,QAAI,SAAS,gBAAgB;AAC3B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA","debug_id":"5fd97f27-7cd5-5b60-98e1-52daff164017"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="01943792-5474-5ccf-99b8-aa0453b23d1e")}catch(e){}}();
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var __async = (__this, __arguments, generator) => {
22
+ return new Promise((resolve, reject) => {
23
+ var fulfilled = (value) => {
24
+ try {
25
+ step(generator.next(value));
26
+ } catch (e) {
27
+ reject(e);
28
+ }
29
+ };
30
+ var rejected = (value) => {
31
+ try {
32
+ step(generator.throw(value));
33
+ } catch (e) {
34
+ reject(e);
35
+ }
36
+ };
37
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
38
+ step((generator = generator.apply(__this, __arguments)).next());
39
+ });
40
+ };
41
+ var fetchComponents_exports = {};
42
+ __export(fetchComponents_exports, {
43
+ MOCK_COMPONENTS_RESPONSE: () => MOCK_COMPONENTS_RESPONSE,
44
+ fetchComponents: () => fetchComponents
45
+ });
46
+ module.exports = __toCommonJS(fetchComponents_exports);
47
+ const MOCK_COMPONENTS_RESPONSE = {
48
+ "component-1": {
49
+ name: "Example Component 1",
50
+ text: "This is example component text.",
51
+ status: "NONE",
52
+ folder: null
53
+ },
54
+ "component-2": {
55
+ name: "Example Component 2",
56
+ text: "This is example component text.",
57
+ status: "NONE",
58
+ folder: null
59
+ }
60
+ };
61
+ function fetchComponents() {
62
+ return __async(this, arguments, function* (_options = {}) {
63
+ return MOCK_COMPONENTS_RESPONSE;
64
+ });
65
+ }
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ MOCK_COMPONENTS_RESPONSE,
69
+ fetchComponents
70
+ });
71
+ //# sourceMappingURL=fetchComponents.js.map
72
+
73
+ //# debugId=01943792-5474-5ccf-99b8-aa0453b23d1e
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/http/__mocks__/fetchComponents.ts"],"sourcesContent":["import { FetchComponentResponse } from \"../fetchComponents\";\n\nexport const MOCK_COMPONENTS_RESPONSE: FetchComponentResponse = {\n \"component-1\": {\n name: \"Example Component 1\",\n text: \"This is example component text.\",\n status: \"NONE\",\n folder: null,\n },\n \"component-2\": {\n name: \"Example Component 2\",\n text: \"This is example component text.\",\n status: \"NONE\",\n folder: null,\n },\n};\n\nexport async function fetchComponents(\n _options: {\n componentFolder?: string;\n } = {}\n): Promise<FetchComponentResponse> {\n return MOCK_COMPONENTS_RESPONSE;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,2BAAmD;AAAA,EAC9D,eAAe;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,SAAsB,kBAIa;AAAA,6CAHjC,WAEI,CAAC,GAC4B;AACjC,WAAO;AAAA,EACT;AAAA","debug_id":"01943792-5474-5ccf-99b8-aa0453b23d1e"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f0d756af-f4df-5e4b-bbfd-ee26bddd4e29")}catch(e){}}();
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var __async = (__this, __arguments, generator) => {
22
+ return new Promise((resolve, reject) => {
23
+ var fulfilled = (value) => {
24
+ try {
25
+ step(generator.next(value));
26
+ } catch (e) {
27
+ reject(e);
28
+ }
29
+ };
30
+ var rejected = (value) => {
31
+ try {
32
+ step(generator.throw(value));
33
+ } catch (e) {
34
+ reject(e);
35
+ }
36
+ };
37
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
38
+ step((generator = generator.apply(__this, __arguments)).next());
39
+ });
40
+ };
41
+ var fetchVariants_exports = {};
42
+ __export(fetchVariants_exports, {
43
+ MOCK_VARIANTS_RESPONSE: () => MOCK_VARIANTS_RESPONSE,
44
+ fetchVariants: () => fetchVariants
45
+ });
46
+ module.exports = __toCommonJS(fetchVariants_exports);
47
+ const MOCK_VARIANTS_RESPONSE = [
48
+ {
49
+ name: "Example Variant 1",
50
+ description: "This is example variant 1.",
51
+ apiID: "example-variant-1"
52
+ },
53
+ {
54
+ name: "Example Variant 2",
55
+ description: "This is example variant 2.",
56
+ apiID: "example-variant-2"
57
+ }
58
+ ];
59
+ function fetchVariants(_0) {
60
+ return __async(this, arguments, function* (_source, _options = {}) {
61
+ return MOCK_VARIANTS_RESPONSE;
62
+ });
63
+ }
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ MOCK_VARIANTS_RESPONSE,
67
+ fetchVariants
68
+ });
69
+ //# sourceMappingURL=fetchVariants.js.map
70
+
71
+ //# debugId=f0d756af-f4df-5e4b-bbfd-ee26bddd4e29
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/http/__mocks__/fetchVariants.ts"],"sourcesContent":["import { IVariant } from \"../fetchVariants\";\n\nexport const MOCK_VARIANTS_RESPONSE: IVariant[] = [\n {\n name: \"Example Variant 1\",\n description: \"This is example variant 1.\",\n apiID: \"example-variant-1\",\n },\n {\n name: \"Example Variant 2\",\n description: \"This is example variant 2.\",\n apiID: \"example-variant-2\",\n },\n];\n\nexport async function fetchVariants(\n _source: any,\n _options: any = {}\n): Promise<IVariant[] | null> {\n return MOCK_VARIANTS_RESPONSE;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,yBAAqC;AAAA,EAChD;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AACF;AAEA,SAAsB,cACpB,IAE4B;AAAA,6CAF5B,SACA,WAAgB,CAAC,GACW;AAC5B,WAAO;AAAA,EACT;AAAA","debug_id":"f0d756af-f4df-5e4b-bbfd-ee26bddd4e29"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="743f28ba-d3af-5757-bf4d-577ec43326af")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0aa9cf0b-5655-5a3c-bcf3-cb230ed51085")}catch(e){}}();
3
3
 
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -44,8 +44,8 @@ __export(fetchComponentFolders_exports, {
44
44
  });
45
45
  module.exports = __toCommonJS(fetchComponentFolders_exports);
46
46
  var import_api = require("../api");
47
- function fetchComponentFolders(options) {
48
- return __async(this, null, function* () {
47
+ function fetchComponentFolders() {
48
+ return __async(this, arguments, function* (options = {}) {
49
49
  const api = (0, import_api.createApiClient)();
50
50
  let url = "/v1/component-folders";
51
51
  if (options.showSampleData === true) {
@@ -61,4 +61,4 @@ function fetchComponentFolders(options) {
61
61
  });
62
62
  //# sourceMappingURL=fetchComponentFolders.js.map
63
63
 
64
- //# debugId=743f28ba-d3af-5757-bf4d-577ec43326af
64
+ //# debugId=0aa9cf0b-5655-5a3c-bcf3-cb230ed51085
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/http/fetchComponentFolders.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\n\ninterface FetchComponentFoldersResponse {\n [id: string]: string;\n}\n\nexport async function fetchComponentFolders(options: {\n showSampleData?: boolean;\n}): Promise<FetchComponentFoldersResponse> {\n const api = createApiClient();\n\n let url = \"/v1/component-folders\";\n\n if (options.showSampleData === true) {\n url += \"?showSampleData=true\";\n }\n\n const { data } = await api.get<FetchComponentFoldersResponse>(url, {});\n\n return data;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAMhC,SAAsB,sBAAsB,SAED;AAAA;AACzC,UAAM,UAAM,4BAAgB;AAE5B,QAAI,MAAM;AAEV,QAAI,QAAQ,mBAAmB,MAAM;AACnC,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,IAAI,IAAmC,KAAK,CAAC,CAAC;AAErE,WAAO;AAAA,EACT;AAAA","debug_id":"743f28ba-d3af-5757-bf4d-577ec43326af"}
1
+ {"version":3,"sources":["../../lib/http/fetchComponentFolders.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\n\nexport interface FetchComponentFoldersResponse {\n [id: string]: string;\n}\n\nexport async function fetchComponentFolders(\n options: {\n showSampleData?: boolean;\n } = {}\n): Promise<FetchComponentFoldersResponse> {\n const api = createApiClient();\n\n let url = \"/v1/component-folders\";\n\n if (options.showSampleData === true) {\n url += \"?showSampleData=true\";\n }\n\n const { data } = await api.get<FetchComponentFoldersResponse>(url, {});\n\n return data;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAMhC,SAAsB,wBAIoB;AAAA,6CAHxC,UAEI,CAAC,GACmC;AACxC,UAAM,UAAM,4BAAgB;AAE5B,QAAI,MAAM;AAEV,QAAI,QAAQ,mBAAmB,MAAM;AACnC,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,IAAI,IAAmC,KAAK,CAAC,CAAC;AAErE,WAAO;AAAA,EACT;AAAA","debug_id":"0aa9cf0b-5655-5a3c-bcf3-cb230ed51085"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="18334cda-4915-5b0f-9ca7-67da352f382b")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e537006c-4c55-52f6-8e29-8b7943dec260")}catch(e){}}();
3
3
 
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -44,8 +44,8 @@ __export(fetchComponents_exports, {
44
44
  });
45
45
  module.exports = __toCommonJS(fetchComponents_exports);
46
46
  var import_api = require("../api");
47
- function fetchComponents(options) {
48
- return __async(this, null, function* () {
47
+ function fetchComponents() {
48
+ return __async(this, arguments, function* (options = {}) {
49
49
  const api = (0, import_api.createApiClient)();
50
50
  if (options.componentFolder) {
51
51
  try {
@@ -75,4 +75,4 @@ function fetchComponents(options) {
75
75
  });
76
76
  //# sourceMappingURL=fetchComponents.js.map
77
77
 
78
- //# debugId=18334cda-4915-5b0f-9ca7-67da352f382b
78
+ //# debugId=e537006c-4c55-52f6-8e29-8b7943dec260
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/http/fetchComponents.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\n\nexport interface FetchComponentResponseComponent {\n name: string;\n text: string;\n status: \"NONE\" | \"WIP\" | \"REVIEW\" | \"FINAL\";\n folder: \"string\" | null;\n}\n\nexport interface FetchComponentResponse {\n [compApiId: string]: FetchComponentResponseComponent;\n}\n\nexport async function fetchComponents(options: {\n componentFolder?: string;\n}): Promise<FetchComponentResponse> {\n const api = createApiClient();\n\n if (options.componentFolder) {\n try {\n const { data } = await api.get<FetchComponentResponse>(\n `/v1/component-folders/${options.componentFolder}/components`,\n {}\n );\n\n return data;\n } catch (e) {\n console.log(\n `Failed to get components for ${options.componentFolder}. Please verify the folder's API ID.`\n );\n return {};\n }\n } else {\n const { data } = await api.get<FetchComponentResponse>(\n \"/v1/components?format=structured\",\n {}\n );\n\n return data;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAahC,SAAsB,gBAAgB,SAEF;AAAA;AAClC,UAAM,UAAM,4BAAgB;AAE5B,QAAI,QAAQ,iBAAiB;AAC3B,UAAI;AACF,cAAM,EAAE,KAAK,IAAI,MAAM,IAAI;AAAA,UACzB,yBAAyB,QAAQ,eAAe;AAAA,UAChD,CAAC;AAAA,QACH;AAEA,eAAO;AAAA,MACT,SAAS,GAAG;AACV,gBAAQ;AAAA,UACN,gCAAgC,QAAQ,eAAe;AAAA,QACzD;AACA,eAAO,CAAC;AAAA,MACV;AAAA,IACF,OAAO;AACL,YAAM,EAAE,KAAK,IAAI,MAAM,IAAI;AAAA,QACzB;AAAA,QACA,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAAA","debug_id":"18334cda-4915-5b0f-9ca7-67da352f382b"}
1
+ {"version":3,"sources":["../../lib/http/fetchComponents.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\n\nexport interface FetchComponentResponseComponent {\n name: string;\n text: string;\n status: \"NONE\" | \"WIP\" | \"REVIEW\" | \"FINAL\";\n folder: \"string\" | null;\n}\n\nexport interface FetchComponentResponse {\n [compApiId: string]: FetchComponentResponseComponent;\n}\n\nexport async function fetchComponents(\n options: {\n componentFolder?: string;\n } = {}\n): Promise<FetchComponentResponse> {\n const api = createApiClient();\n\n if (options.componentFolder) {\n try {\n const { data } = await api.get<FetchComponentResponse>(\n `/v1/component-folders/${options.componentFolder}/components`,\n {}\n );\n\n return data;\n } catch (e) {\n console.log(\n `Failed to get components for ${options.componentFolder}. Please verify the folder's API ID.`\n );\n return {};\n }\n } else {\n const { data } = await api.get<FetchComponentResponse>(\n \"/v1/components?format=structured\",\n {}\n );\n\n return data;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAahC,SAAsB,kBAIa;AAAA,6CAHjC,UAEI,CAAC,GAC4B;AACjC,UAAM,UAAM,4BAAgB;AAE5B,QAAI,QAAQ,iBAAiB;AAC3B,UAAI;AACF,cAAM,EAAE,KAAK,IAAI,MAAM,IAAI;AAAA,UACzB,yBAAyB,QAAQ,eAAe;AAAA,UAChD,CAAC;AAAA,QACH;AAEA,eAAO;AAAA,MACT,SAAS,GAAG;AACV,gBAAQ;AAAA,UACN,gCAAgC,QAAQ,eAAe;AAAA,QACzD;AACA,eAAO,CAAC;AAAA,MACV;AAAA,IACF,OAAO;AACL,YAAM,EAAE,KAAK,IAAI,MAAM,IAAI;AAAA,QACzB;AAAA,QACA,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAAA","debug_id":"e537006c-4c55-52f6-8e29-8b7943dec260"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="866c8df7-6e86-5dbc-b01e-d7764199da24")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8dc9d4ee-028f-5bfc-8c49-3170423fbc1b")}catch(e){}}();
3
3
 
4
4
  var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
8
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
9
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -19,6 +21,7 @@ var __spreadValues = (a, b) => {
19
21
  }
20
22
  return a;
21
23
  };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
25
  var __export = (target, all) => {
23
26
  for (var name in all)
24
27
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -66,7 +69,7 @@ function fetchVariants(_0) {
66
69
  }
67
70
  const { shouldFetchComponentLibrary, validProjects } = source;
68
71
  const config = {
69
- params: __spreadValues({}, options == null ? void 0 : options.meta)
72
+ params: __spreadProps(__spreadValues({}, options == null ? void 0 : options.meta), { showSampleData: options.includeSampleData })
70
73
  };
71
74
  if (validProjects.length && !shouldFetchComponentLibrary) {
72
75
  config.params.projectIds = validProjects.map(({ id }) => id);
@@ -81,4 +84,4 @@ function fetchVariants(_0) {
81
84
  });
82
85
  //# sourceMappingURL=fetchVariants.js.map
83
86
 
84
- //# debugId=866c8df7-6e86-5dbc-b01e-d7764199da24
87
+ //# debugId=8dc9d4ee-028f-5bfc-8c49-3170423fbc1b
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/http/fetchVariants.ts"],"sourcesContent":["import { AxiosRequestConfig } from \"axios\";\nimport { createApiClient } from \"../api\";\nimport { PullOptions } from \"../pull\";\nimport { SourceInformation } from \"../types\";\n\nexport async function fetchVariants(\n source: SourceInformation,\n options: PullOptions = {}\n) {\n const api = createApiClient();\n if (!source.variants) {\n return null;\n }\n\n const { shouldFetchComponentLibrary, validProjects } = source;\n\n const config: AxiosRequestConfig = {\n params: { ...options?.meta },\n };\n\n // if we're not syncing from the component library, then we pass the project ids\n // to limit the list of returned variants to only those that are relevant for the\n // specified projects\n if (validProjects.length && !shouldFetchComponentLibrary) {\n config.params.projectIds = validProjects.map(({ id }) => id);\n }\n\n const { data } = await api.get<{ apiID: string }[]>(\"/v1/variants\", config);\n\n return data;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAgC;AAIhC,SAAsB,cACpB,IAEA;AAAA,6CAFA,QACA,UAAuB,CAAC,GACxB;AACA,UAAM,UAAM,4BAAgB;AAC5B,QAAI,CAAC,OAAO,UAAU;AACpB,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,6BAA6B,cAAc,IAAI;AAEvD,UAAM,SAA6B;AAAA,MACjC,QAAQ,mBAAK,mCAAS;AAAA,IACxB;AAKA,QAAI,cAAc,UAAU,CAAC,6BAA6B;AACxD,aAAO,OAAO,aAAa,cAAc,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,IAC7D;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,IAAI,IAAyB,gBAAgB,MAAM;AAE1E,WAAO;AAAA,EACT;AAAA","debug_id":"866c8df7-6e86-5dbc-b01e-d7764199da24"}
1
+ {"version":3,"sources":["../../lib/http/fetchVariants.ts"],"sourcesContent":["import { AxiosRequestConfig } from \"axios\";\nimport { createApiClient } from \"../api\";\nimport { PullOptions } from \"../pull\";\nimport { SourceInformation } from \"../types\";\n\nexport interface IVariant {\n name: string;\n description: string;\n apiID: string;\n}\n\ntype SourceArg = Pick<\n SourceInformation,\n \"shouldFetchComponentLibrary\" | \"validProjects\" | \"variants\"\n>;\n\nexport async function fetchVariants(\n source: SourceArg,\n options: PullOptions = {}\n): Promise<IVariant[] | null> {\n const api = createApiClient();\n if (!source.variants) {\n return null;\n }\n\n const { shouldFetchComponentLibrary, validProjects } = source;\n\n const config: AxiosRequestConfig = {\n params: { ...options?.meta, showSampleData: options.includeSampleData },\n };\n\n // if we're not syncing from the component library, then we pass the project ids\n // to limit the list of returned variants to only those that are relevant for the\n // specified projects\n if (validProjects.length && !shouldFetchComponentLibrary) {\n config.params.projectIds = validProjects.map(({ id }) => id);\n }\n\n const { data } = await api.get<IVariant[]>(\"/v1/variants\", config);\n\n return data;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAgC;AAehC,SAAsB,cACpB,IAE4B;AAAA,6CAF5B,QACA,UAAuB,CAAC,GACI;AAC5B,UAAM,UAAM,4BAAgB;AAC5B,QAAI,CAAC,OAAO,UAAU;AACpB,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,6BAA6B,cAAc,IAAI;AAEvD,UAAM,SAA6B;AAAA,MACjC,QAAQ,iCAAK,mCAAS,OAAd,EAAoB,gBAAgB,QAAQ,kBAAkB;AAAA,IACxE;AAKA,QAAI,cAAc,UAAU,CAAC,6BAA6B;AACxD,aAAO,OAAO,aAAa,cAAc,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,IAC7D;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,IAAI,IAAgB,gBAAgB,MAAM;AAEjE,WAAO;AAAA,EACT;AAAA","debug_id":"8dc9d4ee-028f-5bfc-8c49-3170423fbc1b"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7436b06b-ae24-5dc8-89ba-64b5580233ff")}catch(e){}}();
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
26
+ var __async = (__this, __arguments, generator) => {
27
+ return new Promise((resolve, reject) => {
28
+ var fulfilled = (value) => {
29
+ try {
30
+ step(generator.next(value));
31
+ } catch (e) {
32
+ reject(e);
33
+ }
34
+ };
35
+ var rejected = (value) => {
36
+ try {
37
+ step(generator.throw(value));
38
+ } catch (e) {
39
+ reject(e);
40
+ }
41
+ };
42
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
43
+ step((generator = generator.apply(__this, __arguments)).next());
44
+ });
45
+ };
46
+ var import_fetchComponentFolders = require("./fetchComponentFolders");
47
+ var import_fetchComponents = require("./fetchComponents");
48
+ var import_fetchVariants = require("./fetchVariants");
49
+ var import_importComponents = require("./importComponents");
50
+ var import_globals = require("@jest/globals");
51
+ var import_axios = __toESM(require("axios"));
52
+ var import_memfs = require("memfs");
53
+ import_globals.jest.mock("../api");
54
+ import_globals.jest.mock("fs");
55
+ const axiosMocked = import_globals.jest.mocked(import_axios.default);
56
+ describe("fetchComponentFolders", () => {
57
+ it("fetches component folders without error", () => __async(exports, null, function* () {
58
+ axiosMocked.get.mockResolvedValueOnce({
59
+ data: { "folder-id": "folder-name" }
60
+ });
61
+ const result = yield (0, import_fetchComponentFolders.fetchComponentFolders)();
62
+ expect(result["folder-id"]).toBe("folder-name");
63
+ }));
64
+ it("supports showSampleData option", () => __async(exports, null, function* () {
65
+ axiosMocked.get.mockResolvedValueOnce({
66
+ data: { "folder-id": "folder-name" }
67
+ });
68
+ const result = yield (0, import_fetchComponentFolders.fetchComponentFolders)({ showSampleData: true });
69
+ expect(result["folder-id"]).toBe("folder-name");
70
+ }));
71
+ });
72
+ describe("fetchComponents", () => {
73
+ it("fetches components without error", () => __async(exports, null, function* () {
74
+ axiosMocked.get.mockResolvedValueOnce({
75
+ data: {
76
+ "component-id": {
77
+ name: "component-name",
78
+ text: "component-text",
79
+ status: "NONE",
80
+ folder: null
81
+ }
82
+ }
83
+ });
84
+ const result = yield (0, import_fetchComponents.fetchComponents)();
85
+ expect(result["component-id"]).toBeDefined();
86
+ expect(result["component-id"].name).toBe("component-name");
87
+ expect(result["component-id"].text).toBe("component-text");
88
+ }));
89
+ });
90
+ describe("fetchVariants", () => {
91
+ it("fetches variants without error", () => __async(exports, null, function* () {
92
+ axiosMocked.get.mockResolvedValueOnce({
93
+ data: [
94
+ {
95
+ name: "variant-name",
96
+ description: "variant-description",
97
+ apiID: "variant-api-id"
98
+ }
99
+ ]
100
+ });
101
+ const result = yield (0, import_fetchVariants.fetchVariants)({
102
+ shouldFetchComponentLibrary: true,
103
+ validProjects: [],
104
+ variants: true
105
+ });
106
+ expect(result).toBeTruthy();
107
+ expect(result[0]).toBeDefined();
108
+ expect(result[0].name).toBe("variant-name");
109
+ expect(result[0].description).toBe("variant-description");
110
+ expect(result[0].apiID).toBe("variant-api-id");
111
+ }));
112
+ it("returns null if `variants` isn't in config", () => __async(exports, null, function* () {
113
+ const result = yield (0, import_fetchVariants.fetchVariants)({
114
+ shouldFetchComponentLibrary: true,
115
+ validProjects: [],
116
+ variants: false
117
+ });
118
+ expect(result).toBe(null);
119
+ }));
120
+ });
121
+ describe("importComponents", () => {
122
+ beforeEach(() => {
123
+ import_memfs.vol.reset();
124
+ });
125
+ it("imports components from existing file without error", () => __async(exports, null, function* () {
126
+ import_memfs.vol.fromJSON({
127
+ "/file.csv": "id,name,text\n1,one1,not empty\n2,two1,empty"
128
+ });
129
+ axiosMocked.mockResolvedValueOnce({
130
+ data: {
131
+ componentsInserted: 2,
132
+ firstImportedId: "1"
133
+ }
134
+ });
135
+ const result = yield (0, import_importComponents.importComponents)("/file.csv", {
136
+ csvColumnMapping: {
137
+ name: "name",
138
+ text: 2,
139
+ componentId: 0
140
+ }
141
+ });
142
+ expect(result.componentsInserted).toBe(2);
143
+ expect(result.firstImportedId).toBe("1");
144
+ }));
145
+ it("returns null firstImportedId if file doesn't exist", () => __async(exports, null, function* () {
146
+ const result = yield (0, import_importComponents.importComponents)("/file.csv", {
147
+ csvColumnMapping: {
148
+ name: "name",
149
+ text: 2,
150
+ componentId: 0
151
+ }
152
+ });
153
+ expect(result.componentsInserted).toBe(0);
154
+ expect(result.firstImportedId).toBe("null");
155
+ }));
156
+ });
157
+ //# sourceMappingURL=http.test.js.map
158
+
159
+ //# debugId=7436b06b-ae24-5dc8-89ba-64b5580233ff
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../lib/http/http.test.ts"],"sourcesContent":["import { fetchComponentFolders } from \"./fetchComponentFolders\";\nimport { fetchComponents } from \"./fetchComponents\";\nimport { fetchVariants } from \"./fetchVariants\";\nimport { importComponents } from \"./importComponents\";\nimport { jest } from \"@jest/globals\";\nimport axios from \"axios\";\nimport { vol } from \"memfs\";\n\njest.mock(\"../api\");\njest.mock(\"fs\");\n\nconst axiosMocked = jest.mocked(axios);\n\ndescribe(\"fetchComponentFolders\", () => {\n it(\"fetches component folders without error\", async () => {\n axiosMocked.get.mockResolvedValueOnce({\n data: { \"folder-id\": \"folder-name\" },\n });\n const result = await fetchComponentFolders();\n expect(result[\"folder-id\"]).toBe(\"folder-name\");\n });\n it(\"supports showSampleData option\", async () => {\n axiosMocked.get.mockResolvedValueOnce({\n data: { \"folder-id\": \"folder-name\" },\n });\n const result = await fetchComponentFolders({ showSampleData: true });\n expect(result[\"folder-id\"]).toBe(\"folder-name\");\n });\n});\n\ndescribe(\"fetchComponents\", () => {\n it(\"fetches components without error\", async () => {\n axiosMocked.get.mockResolvedValueOnce({\n data: {\n \"component-id\": {\n name: \"component-name\",\n text: \"component-text\",\n status: \"NONE\",\n folder: null,\n },\n },\n });\n const result = await fetchComponents();\n expect(result[\"component-id\"]).toBeDefined();\n expect(result[\"component-id\"].name).toBe(\"component-name\");\n expect(result[\"component-id\"].text).toBe(\"component-text\");\n });\n});\n\ndescribe(\"fetchVariants\", () => {\n it(\"fetches variants without error\", async () => {\n axiosMocked.get.mockResolvedValueOnce({\n data: [\n {\n name: \"variant-name\",\n description: \"variant-description\",\n apiID: \"variant-api-id\",\n },\n ],\n });\n const result = await fetchVariants({\n shouldFetchComponentLibrary: true,\n validProjects: [],\n variants: true,\n });\n expect(result).toBeTruthy();\n expect(result![0]).toBeDefined();\n expect(result![0].name).toBe(\"variant-name\");\n expect(result![0].description).toBe(\"variant-description\");\n expect(result![0].apiID).toBe(\"variant-api-id\");\n });\n it(\"returns null if `variants` isn't in config\", async () => {\n const result = await fetchVariants({\n shouldFetchComponentLibrary: true,\n validProjects: [],\n variants: false,\n });\n expect(result).toBe(null);\n });\n});\n\ndescribe(\"importComponents\", () => {\n beforeEach(() => {\n vol.reset();\n });\n it(\"imports components from existing file without error\", async () => {\n vol.fromJSON({\n \"/file.csv\": \"id,name,text\\n1,one1,not empty\\n2,two1,empty\",\n });\n\n axiosMocked.mockResolvedValueOnce({\n data: {\n componentsInserted: 2,\n firstImportedId: \"1\",\n },\n });\n\n const result = await importComponents(\"/file.csv\", {\n csvColumnMapping: {\n name: \"name\",\n text: 2,\n componentId: 0,\n },\n });\n\n expect(result.componentsInserted).toBe(2);\n expect(result.firstImportedId).toBe(\"1\");\n });\n\n it(\"returns null firstImportedId if file doesn't exist\", async () => {\n const result = await importComponents(\"/file.csv\", {\n csvColumnMapping: {\n name: \"name\",\n text: 2,\n componentId: 0,\n },\n });\n\n expect(result.componentsInserted).toBe(0);\n expect(result.firstImportedId).toBe(\"null\");\n });\n});\n"],"names":["axios"],"mappings":"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","debug_id":"7436b06b-ae24-5dc8-89ba-64b5580233ff"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ec7b95d4-d022-5a13-b768-78494577a7c4")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3f4cd1f2-8b06-52cf-a0d0-da365fac1649")}catch(e){}}();
3
3
 
4
4
  var __create = Object.create;
5
5
  var __defProp = Object.defineProperty;
@@ -74,6 +74,13 @@ function importComponents(path, options) {
74
74
  return __async(this, null, function* () {
75
75
  var _a, _b, _c, _d, _e, _f, _g, _h;
76
76
  const api = (0, import_api.createApiClient)();
77
+ if (!import_fs.default.existsSync(path)) {
78
+ console.error("Failed to import file: couldn't find file at path " + path);
79
+ return {
80
+ componentsInserted: 0,
81
+ firstImportedId: "null"
82
+ };
83
+ }
77
84
  const form = new import_form_data.default();
78
85
  form.append("import", import_fs.default.createReadStream(path));
79
86
  const requestOptions = {
@@ -104,4 +111,4 @@ function importComponents(path, options) {
104
111
  });
105
112
  //# sourceMappingURL=importComponents.js.map
106
113
 
107
- //# debugId=ec7b95d4-d022-5a13-b768-78494577a7c4
114
+ //# debugId=3f4cd1f2-8b06-52cf-a0d0-da365fac1649
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/http/importComponents.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\n\nexport interface ImportComponentResponse {\n componentsInserted: number;\n firstImportedId: string;\n}\n\nexport interface CsvColumnMapping {\n text: number;\n name: string;\n notes?: number;\n tags?: number;\n status?: number;\n componentId?: number;\n}\n\nexport async function importComponents(\n path: string,\n options: {\n csvColumnMapping?: CsvColumnMapping;\n }\n): Promise<ImportComponentResponse> {\n const api = createApiClient();\n\n const form = new FormData();\n form.append(\"import\", fs.createReadStream(path));\n\n const requestOptions = {\n method: \"POST\",\n url: \"/v1/components/file\",\n params: {\n ...(options.csvColumnMapping?.name\n ? { name: `[${options.csvColumnMapping.name}]` }\n : {}),\n ...(options.csvColumnMapping?.text\n ? { text: options.csvColumnMapping.text }\n : {}),\n ...(options.csvColumnMapping?.notes\n ? { notes: options.csvColumnMapping.notes }\n : {}),\n ...(options.csvColumnMapping?.status\n ? { status: options.csvColumnMapping.status }\n : {}),\n ...(options.csvColumnMapping?.tags\n ? { tags: options.csvColumnMapping.tags }\n : {}),\n ...(options.csvColumnMapping?.componentId\n ? { componentId: options.csvColumnMapping.componentId }\n : {}),\n },\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n data: form,\n };\n\n try {\n const { data } = await api(requestOptions);\n\n return data;\n } catch (e: any) {\n console.error(\"Failed to import file.\");\n console.error(e.response?.data?.message || e.message);\n return {\n componentsInserted: 0,\n firstImportedId: \"null\",\n };\n }\n}\n"],"names":["FormData","fs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAChC,uBAAqB;AACrB,gBAAe;AAgBf,SAAsB,iBACpB,MACA,SAGkC;AAAA;AAvBpC;AAwBE,UAAM,UAAM,4BAAgB;AAE5B,UAAM,OAAO,IAAI,iBAAAA,QAAS;AAC1B,SAAK,OAAO,UAAU,UAAAC,QAAG,iBAAiB,IAAI,CAAC;AAE/C,UAAM,iBAAiB;AAAA,MACrB,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ,gGACF,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,IAAI,QAAQ,iBAAiB,IAAI,IAAI,IAC7C,CAAC,MACD,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,QAAQ,iBAAiB,KAAK,IACtC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,SAC1B,EAAE,OAAO,QAAQ,iBAAiB,MAAM,IACxC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,UAC1B,EAAE,QAAQ,QAAQ,iBAAiB,OAAO,IAC1C,CAAC,MACD,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,QAAQ,iBAAiB,KAAK,IACtC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,eAC1B,EAAE,aAAa,QAAQ,iBAAiB,YAAY,IACpD,CAAC;AAAA,MAEP,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,IACR;AAEA,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,IAAI,cAAc;AAEzC,aAAO;AAAA,IACT,SAAS,GAAQ;AACf,cAAQ,MAAM,wBAAwB;AACtC,cAAQ,QAAM,aAAE,aAAF,mBAAY,SAAZ,mBAAkB,YAAW,EAAE,OAAO;AACpD,aAAO;AAAA,QACL,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA","debug_id":"ec7b95d4-d022-5a13-b768-78494577a7c4"}
1
+ {"version":3,"sources":["../../lib/http/importComponents.ts"],"sourcesContent":["import { createApiClient } from \"../api\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\n\nexport interface ImportComponentResponse {\n componentsInserted: number;\n firstImportedId: string;\n}\n\nexport interface CsvColumnMapping {\n text: number;\n name: string;\n notes?: number;\n tags?: number;\n status?: number;\n componentId?: number;\n}\n\nexport async function importComponents(\n path: string,\n options: {\n csvColumnMapping?: CsvColumnMapping;\n }\n): Promise<ImportComponentResponse> {\n const api = createApiClient();\n\n if (!fs.existsSync(path)) {\n console.error(\"Failed to import file: couldn't find file at path \" + path);\n return {\n componentsInserted: 0,\n firstImportedId: \"null\",\n };\n }\n\n const form = new FormData();\n form.append(\"import\", fs.createReadStream(path));\n\n const requestOptions = {\n method: \"POST\",\n url: \"/v1/components/file\",\n params: {\n ...(options.csvColumnMapping?.name\n ? { name: `[${options.csvColumnMapping.name}]` }\n : {}),\n ...(options.csvColumnMapping?.text\n ? { text: options.csvColumnMapping.text }\n : {}),\n ...(options.csvColumnMapping?.notes\n ? { notes: options.csvColumnMapping.notes }\n : {}),\n ...(options.csvColumnMapping?.status\n ? { status: options.csvColumnMapping.status }\n : {}),\n ...(options.csvColumnMapping?.tags\n ? { tags: options.csvColumnMapping.tags }\n : {}),\n ...(options.csvColumnMapping?.componentId\n ? { componentId: options.csvColumnMapping.componentId }\n : {}),\n },\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n data: form,\n };\n\n try {\n const { data } = await api(requestOptions);\n\n return data;\n } catch (e: any) {\n console.error(\"Failed to import file.\");\n console.error(e.response?.data?.message || e.message);\n return {\n componentsInserted: 0,\n firstImportedId: \"null\",\n };\n }\n}\n"],"names":["fs","FormData"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgC;AAChC,uBAAqB;AACrB,gBAAe;AAgBf,SAAsB,iBACpB,MACA,SAGkC;AAAA;AAvBpC;AAwBE,UAAM,UAAM,4BAAgB;AAE5B,QAAI,CAAC,UAAAA,QAAG,WAAW,IAAI,GAAG;AACxB,cAAQ,MAAM,uDAAuD,IAAI;AACzE,aAAO;AAAA,QACL,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,MACnB;AAAA,IACF;AAEA,UAAM,OAAO,IAAI,iBAAAC,QAAS;AAC1B,SAAK,OAAO,UAAU,UAAAD,QAAG,iBAAiB,IAAI,CAAC;AAE/C,UAAM,iBAAiB;AAAA,MACrB,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ,gGACF,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,IAAI,QAAQ,iBAAiB,IAAI,IAAI,IAC7C,CAAC,MACD,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,QAAQ,iBAAiB,KAAK,IACtC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,SAC1B,EAAE,OAAO,QAAQ,iBAAiB,MAAM,IACxC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,UAC1B,EAAE,QAAQ,QAAQ,iBAAiB,OAAO,IAC1C,CAAC,MACD,aAAQ,qBAAR,mBAA0B,QAC1B,EAAE,MAAM,QAAQ,iBAAiB,KAAK,IACtC,CAAC,MACD,aAAQ,qBAAR,mBAA0B,eAC1B,EAAE,aAAa,QAAQ,iBAAiB,YAAY,IACpD,CAAC;AAAA,MAEP,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,IACR;AAEA,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,IAAI,cAAc;AAEzC,aAAO;AAAA,IACT,SAAS,GAAQ;AACf,cAAQ,MAAM,wBAAwB;AACtC,cAAQ,QAAM,aAAE,aAAF,mBAAY,SAAZ,mBAAkB,YAAW,EAAE,OAAO;AACpD,aAAO;AAAA,QACL,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA","debug_id":"3f4cd1f2-8b06-52cf-a0d0-da365fac1649"}