@public-ui/kolibri-cli 1.7.0-rc.1 → 1.7.0-rc.11

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 (43) hide show
  1. package/README.md +41 -16
  2. package/dist/index.js +7 -5
  3. package/dist/migrate/index.js +16 -18
  4. package/dist/migrate/runner/abstract-task.js +2 -1
  5. package/dist/migrate/runner/task-runner.js +19 -8
  6. package/dist/migrate/runner/tasks/common/GenericRenamePropertyTask.js +9 -11
  7. package/dist/migrate/runner/tasks/common/GenericRenameSlotNameTask.js +44 -0
  8. package/dist/migrate/runner/tasks/common/GitIgnoreAddRuleTask.js +40 -0
  9. package/dist/migrate/runner/tasks/common/LabelExpertSlot.js +68 -0
  10. package/dist/migrate/runner/tasks/common/MarkRemovedSlotTask.js +17 -0
  11. package/dist/migrate/runner/tasks/common/RemovePropertyNameTask.js +8 -7
  12. package/dist/migrate/runner/tasks/common/RenamePropertyNameTask.js +1 -4
  13. package/dist/migrate/runner/tasks/common/RenameSlotNameTask.js +17 -0
  14. package/dist/migrate/runner/tasks/common/TsConfigReconfigureTask.js +48 -0
  15. package/dist/migrate/runner/tasks/common/VsCodeSettingsReconfigureTask.js +49 -0
  16. package/dist/migrate/runner/tasks/index.js +12 -16
  17. package/dist/migrate/runner/tasks/test/index.js +4 -10
  18. package/dist/migrate/runner/tasks/test/test-version-next-99.js +10 -0
  19. package/dist/migrate/runner/tasks/v1/index.js +29 -1
  20. package/dist/migrate/runner/tasks/v1/input-number.js +1 -1
  21. package/dist/migrate/runner/tasks/v1/link-group.js +3 -2
  22. package/dist/migrate/runner/tasks/v1/split-button.js +3 -1
  23. package/dist/migrate/runner/tasks/v1/toast.js +3 -1
  24. package/dist/migrate/shares/reuse.js +70 -10
  25. package/dist/migrate/types.js +4 -0
  26. package/dist/types.js +2 -1
  27. package/package.json +17 -14
  28. package/dist/migrate/runner/tasks/test/test-version-next-2.js +0 -10
  29. package/dist/migrate/runner/tasks/test/test-version-next-3.js +0 -10
  30. package/dist/migrate/runner/tasks/test-tasks.js +0 -12
  31. package/dist/migrate/runner/tasks/v1/abbr-property-renaming-title-to-label.js +0 -30
  32. package/dist/migrate/runner/tasks/v1/accordion-property-renaming-heading-to-label.js +0 -30
  33. package/dist/migrate/runner/tasks/v1/test-version-1.3.js +0 -17
  34. package/dist/migrate/runner/tasks/v1/test-version-current.js +0 -17
  35. package/dist/migrate/runner/tasks/v1/test-version-next-2.js +0 -17
  36. package/dist/migrate/runner/tasks/v1/test-version-next-3.js +0 -17
  37. package/dist/migrate/runner/tasks/v1/test-version-zero.js +0 -17
  38. package/dist/runner/abstract-task.js +0 -48
  39. package/dist/runner/task-runner.js +0 -28
  40. package/dist/runner/tasks/abbr-property-renaming-title-to-label.js +0 -27
  41. package/dist/runner/tasks/index.js +0 -6
  42. package/dist/runner/types.js +0 -4
  43. package/dist/shares/reuse.js +0 -48
@@ -0,0 +1,48 @@
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.TsConfigReconfigureTask = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const deepmerge_1 = __importDefault(require("deepmerge"));
10
+ const reuse_1 = require("../../../shares/reuse");
11
+ const abstract_task_1 = require("../../abstract-task");
12
+ class TsConfigReconfigureTask extends abstract_task_1.AbstractTask {
13
+ constructor(identifier, key, config, versionRange, dependentTasks = [], options = {}) {
14
+ super(identifier, `Reconfigure "${key}" in tsconfig.json of your project.`, [], versionRange, dependentTasks, options);
15
+ this.key = key;
16
+ this.config = config;
17
+ if (typeof key !== 'string') {
18
+ throw (0, reuse_1.logAndCreateError)(`Key of task "${this.identifier}" is not a string.`);
19
+ }
20
+ try {
21
+ JSON.stringify(config);
22
+ }
23
+ catch (_a) {
24
+ throw (0, reuse_1.logAndCreateError)(`Value of task "${this.identifier}" is not able to stringify (JSON).`);
25
+ }
26
+ }
27
+ static getInstance(key, value, versionRange, dependentTasks = [], options = {}) {
28
+ const identifier = `tsconfig-reconfigure-${key}`;
29
+ if (!this.instances.has(identifier)) {
30
+ this.instances.set(identifier, new TsConfigReconfigureTask(identifier, key, value, versionRange, dependentTasks, options));
31
+ }
32
+ return this.instances.get(identifier);
33
+ }
34
+ run() {
35
+ const configPath = path_1.default.join(process.cwd(), 'tsconfig.json');
36
+ if (fs_1.default.existsSync(configPath)) {
37
+ try {
38
+ const fileContent = (0, deepmerge_1.default)(JSON.parse(fs_1.default.readFileSync(configPath, 'utf8')), this.config);
39
+ fs_1.default.writeFileSync(configPath, JSON.stringify(fileContent, null, 2));
40
+ reuse_1.MODIFIED_FILES.add(configPath);
41
+ }
42
+ catch (e) {
43
+ // empty
44
+ }
45
+ }
46
+ }
47
+ }
48
+ exports.TsConfigReconfigureTask = TsConfigReconfigureTask;
@@ -0,0 +1,49 @@
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.VsCodeSettingsReconfigureTask = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const reuse_1 = require("../../../shares/reuse");
10
+ const abstract_task_1 = require("../../abstract-task");
11
+ class VsCodeSettingsReconfigureTask extends abstract_task_1.AbstractTask {
12
+ constructor(identifier, key, value, versionRange, dependentTasks = [], options = {}) {
13
+ super(identifier, `Reconfigure "${key}" in vscode settings of your project.`, [], versionRange, dependentTasks, options);
14
+ this.key = key;
15
+ this.value = value;
16
+ if (typeof key !== 'string') {
17
+ throw (0, reuse_1.logAndCreateError)(`Key of task "${this.identifier}" is not a string.`);
18
+ }
19
+ try {
20
+ JSON.stringify(value);
21
+ }
22
+ catch (_a) {
23
+ throw (0, reuse_1.logAndCreateError)(`Value of task "${this.identifier}" is not able to stringify (JSON).`);
24
+ }
25
+ }
26
+ static getInstance(key, value, versionRange, dependentTasks = [], options = {}) {
27
+ const identifier = `vscode-settings-reconfigure-${key}`;
28
+ if (!this.instances.has(identifier)) {
29
+ this.instances.set(identifier, new VsCodeSettingsReconfigureTask(identifier, key, value, versionRange, dependentTasks, options));
30
+ }
31
+ return this.instances.get(identifier);
32
+ }
33
+ run() {
34
+ const settingsPath = path_1.default.join(process.cwd(), '.vscode', 'settings.json');
35
+ if (fs_1.default.existsSync(settingsPath)) {
36
+ const fileContent = JSON.parse(fs_1.default.readFileSync(settingsPath, 'utf8'));
37
+ fileContent[this.key] = this.value;
38
+ fs_1.default.writeFileSync(settingsPath, JSON.stringify(fileContent, null, 2));
39
+ reuse_1.MODIFIED_FILES.add(settingsPath);
40
+ }
41
+ else {
42
+ fs_1.default.mkdirSync(path_1.default.dirname(settingsPath), { recursive: true });
43
+ fs_1.default.writeFileSync(settingsPath, JSON.stringify({
44
+ [this.key]: this.value,
45
+ }, null, 2));
46
+ }
47
+ }
48
+ }
49
+ exports.VsCodeSettingsReconfigureTask = VsCodeSettingsReconfigureTask;
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./test"), exports);
18
- __exportStar(require("./v1"), exports);
3
+ exports.commonTasks = void 0;
4
+ const GitIgnoreAddRuleTask_1 = require("./common/GitIgnoreAddRuleTask");
5
+ const TsConfigReconfigureTask_1 = require("./common/TsConfigReconfigureTask");
6
+ const VsCodeSettingsReconfigureTask_1 = require("./common/VsCodeSettingsReconfigureTask");
7
+ exports.commonTasks = [];
8
+ exports.commonTasks.push(GitIgnoreAddRuleTask_1.GitIgnoreAddRuleTask.getInstance('.kolibri.migrate.json', '*'));
9
+ exports.commonTasks.push(VsCodeSettingsReconfigureTask_1.VsCodeSettingsReconfigureTask.getInstance('html.customData', ['./node_modules/@public-ui/components/vscode-custom-data.json'], '*'));
10
+ exports.commonTasks.push(TsConfigReconfigureTask_1.TsConfigReconfigureTask.getInstance('compilerOptions.types', {
11
+ compilerOptions: {
12
+ types: ['@public-ui/components'],
13
+ },
14
+ }, '*'));
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.testTasks = void 0;
7
- const path_1 = __importDefault(require("path"));
8
4
  const reuse_1 = require("../../../shares/reuse");
9
5
  const test_version_1_3_1 = require("./test-version-1.3");
10
- const test_version_next_2_1 = require("./test-version-next-2");
11
- const test_version_next_3_1 = require("./test-version-next-3");
12
- const test_version_zero_1 = require("./test-version-zero");
13
6
  const test_version_current_1 = require("./test-version-current");
7
+ const test_version_next_99_1 = require("./test-version-next-99");
8
+ const test_version_zero_1 = require("./test-version-zero");
14
9
  exports.testTasks = [];
15
10
  exports.testTasks.push(test_version_zero_1.TestVersionZero.getInstance());
16
- exports.testTasks.push(test_version_next_2_1.TestVersionNext2.getInstance());
17
- exports.testTasks.push(test_version_next_3_1.TestVersionNext3.getInstance());
11
+ exports.testTasks.push(test_version_next_99_1.TestVersionNext99.getInstance());
18
12
  exports.testTasks.push(test_version_1_3_1.TestVersion13.getInstance());
19
- const versionOfPublicUiComponents = (0, reuse_1.readPackageJson)(path_1.default.resolve(process.cwd(), 'node_modules/@public-ui/components')).version;
13
+ const versionOfPublicUiComponents = (0, reuse_1.getVersionOfPublicUiComponents)();
20
14
  exports.testTasks.push(test_version_current_1.TestVersionCurrent.getInstance(versionOfPublicUiComponents));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestVersionNext99 = void 0;
4
+ const test_dummy_1 = require("./test-dummy");
5
+ class TestVersionNext99 extends test_dummy_1.TestDummy {
6
+ static getInstance() {
7
+ return super.getInstance('test-version-next-99', 'Test version next v99', [], '^99');
8
+ }
9
+ }
10
+ exports.TestVersionNext99 = TestVersionNext99;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.v1Tasks = void 0;
4
+ const LabelExpertSlot_1 = require("../common/LabelExpertSlot");
5
+ const MarkRemovedSlotTask_1 = require("../common/MarkRemovedSlotTask");
6
+ const RenameSlotNameTask_1 = require("../common/RenameSlotNameTask");
4
7
  const abbr_1 = require("./abbr");
5
8
  const accordion_1 = require("./accordion");
6
9
  const badge_1 = require("./badge");
@@ -81,10 +84,11 @@ exports.v1Tasks.push(link_1.LinkRemovePropertySelector);
81
84
  exports.v1Tasks.push(link_1.LinkRemovePropertyStealth);
82
85
  exports.v1Tasks.push(link_1.LinkRemovePropertyUseCase);
83
86
  exports.v1Tasks.push(logo_1.LogoRenamePropertyAbbrToOrg);
84
- exports.v1Tasks.push(modal_1.ModalRenamePropertyAriaLabelToLabel);
85
87
  exports.v1Tasks.push(link_group_1.LinkGroupRenamePropertyAriaLabelToLabel);
88
+ exports.v1Tasks.push(link_group_1.LinkGroupRenamePropertyHeadingToLabel);
86
89
  exports.v1Tasks.push(link_group_1.LinkGroupRemovePropertyHeading);
87
90
  exports.v1Tasks.push(link_group_1.LinkGroupRemovePropertyOrdered);
91
+ exports.v1Tasks.push(modal_1.ModalRenamePropertyAriaLabelToLabel);
88
92
  exports.v1Tasks.push(nav_1.NavRenamePropertyAriaLabelToLabel);
89
93
  exports.v1Tasks.push(nav_1.NavRenamePropertyCompactToHideLabel);
90
94
  exports.v1Tasks.push(nav_1.NavRemovePropertyHasCompactButton);
@@ -98,8 +102,32 @@ exports.v1Tasks.push(select_1.SelectRenamePropertyListToOptions);
98
102
  exports.v1Tasks.push(skip_nav_1.SkipNavButtonRenamePropertyAriaLabelToLabel);
99
103
  exports.v1Tasks.push(span_1.SpanRenamePropertyIconOnlyToHideLabel);
100
104
  exports.v1Tasks.push(split_button_1.SplitButtonRemovePropertyAriaLabel);
105
+ exports.v1Tasks.push(split_button_1.SplitButtonRenamePropertyShowDropdownToShow);
101
106
  exports.v1Tasks.push(table_1.TableRenamePropertyCaptionToLabel);
102
107
  exports.v1Tasks.push(tabs_1.TabsRenamePropertyAriaLabelToLabel);
103
108
  exports.v1Tasks.push(tabs_1.TabsRenamePropertyTabAlignToAlign);
109
+ exports.v1Tasks.push(toast_1.ToastRemovePropertyNameShowDuration);
104
110
  exports.v1Tasks.push(toast_1.ToastRenamePropertyHeadingToLabel);
105
111
  exports.v1Tasks.push(version_1.VersionRenamePropertyVersionToLabel);
112
+ exports.v1Tasks.push(LabelExpertSlot_1.LabelExpertSlot.getInstance('kol-heading', '_label', '^1'));
113
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-checkbox', '_label', '^1'));
114
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-color', '_label', '^1'));
115
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-date', '_label', '^1'));
116
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-email', '_label', '^1'));
117
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-file', '_label', '^1'));
118
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-number', '_label', '^1'));
119
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-password', '_label', '^1'));
120
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-radio', '_label', '^1'));
121
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-range', '_label', '^1'));
122
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-input-text', '_label', '^1'));
123
+ exports.v1Tasks.push(LabelExpertSlot_1.LabelExpertSlot.getInstance('kol-link', '_label', '^1'));
124
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-select', '_label', '^1'));
125
+ // v1Tasks.push(LabelExpertSlot.getInstance('kol-textarea', '_label', '^1'));
126
+ exports.v1Tasks.push(MarkRemovedSlotTask_1.MarkRemovedSlotTask.getInstance('kol-accordion', 'header', '^1'));
127
+ exports.v1Tasks.push(MarkRemovedSlotTask_1.MarkRemovedSlotTask.getInstance('kol-card', 'footer', '^1'));
128
+ exports.v1Tasks.push(MarkRemovedSlotTask_1.MarkRemovedSlotTask.getInstance('kol-card', 'header', '^1'));
129
+ exports.v1Tasks.push(RenameSlotNameTask_1.RenameSlotNameTask.getInstance('kol-accordion', 'content', '', '^1'));
130
+ exports.v1Tasks.push(RenameSlotNameTask_1.RenameSlotNameTask.getInstance('kol-card', 'content', '', '^1'));
131
+ // .gitignore
132
+ // .vscode/settings.json
133
+ // tsconfig.json
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InputNumberRenamePropertyListToSuggestions = void 0;
4
4
  const RenamePropertyNameTask_1 = require("../common/RenamePropertyNameTask");
5
5
  exports.InputNumberRenamePropertyListToSuggestions = RenamePropertyNameTask_1.RenamePropertyNameTask.getInstance('kol-input-number', '_list', '_suggestions', '^1');
6
- // export const InputNumberRemovePropertyType = RemovePropertyNameTask.getInstance('kol-input-number', '_type', '^1');
6
+ // @todo export const InputNumberRemovePropertyType = RemovePropertyNameTask.getInstance('kol-input-number', '_type', '^1');
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LinkGroupRemovePropertyOrdered = exports.LinkGroupRemovePropertyHeading = exports.LinkGroupRenamePropertyAriaLabelToLabel = void 0;
3
+ exports.LinkGroupRemovePropertyOrdered = exports.LinkGroupRemovePropertyHeading = exports.LinkGroupRenamePropertyHeadingToLabel = exports.LinkGroupRenamePropertyAriaLabelToLabel = void 0;
4
4
  const RemovePropertyNameTask_1 = require("../common/RemovePropertyNameTask");
5
5
  const RenamePropertyNameTask_1 = require("../common/RenamePropertyNameTask");
6
6
  exports.LinkGroupRenamePropertyAriaLabelToLabel = RenamePropertyNameTask_1.RenamePropertyNameTask.getInstance('kol-link-group', '_aria-label', '_label', '^1');
7
- exports.LinkGroupRemovePropertyHeading = RemovePropertyNameTask_1.RemovePropertyNameTask.getInstance('kol-link-group', '_heading', '^1');
7
+ exports.LinkGroupRenamePropertyHeadingToLabel = RenamePropertyNameTask_1.RenamePropertyNameTask.getInstance('kol-link-group', '_heading', '_label', '^1');
8
+ exports.LinkGroupRemovePropertyHeading = RemovePropertyNameTask_1.RemovePropertyNameTask.getInstance('kol-link-group', '_heading', '^1', [exports.LinkGroupRenamePropertyHeadingToLabel]);
8
9
  exports.LinkGroupRemovePropertyOrdered = RemovePropertyNameTask_1.RemovePropertyNameTask.getInstance('kol-link-group', '_ordered', '^1');
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SplitButtonRemovePropertyAriaLabel = void 0;
3
+ exports.SplitButtonRenamePropertyShowDropdownToShow = exports.SplitButtonRemovePropertyAriaLabel = void 0;
4
4
  const RemovePropertyNameTask_1 = require("../common/RemovePropertyNameTask");
5
+ const RenamePropertyNameTask_1 = require("../common/RenamePropertyNameTask");
5
6
  exports.SplitButtonRemovePropertyAriaLabel = RemovePropertyNameTask_1.RemovePropertyNameTask.getInstance('kol-split-button', '_aria-label', '^1');
7
+ exports.SplitButtonRenamePropertyShowDropdownToShow = RenamePropertyNameTask_1.RenamePropertyNameTask.getInstance('kol-split-button', '_show-dropdown', '_show', '^1');
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToastRenamePropertyHeadingToLabel = void 0;
3
+ exports.ToastRenamePropertyHeadingToLabel = exports.ToastRemovePropertyNameShowDuration = void 0;
4
+ const RemovePropertyNameTask_1 = require("../common/RemovePropertyNameTask");
4
5
  const RenamePropertyNameTask_1 = require("../common/RenamePropertyNameTask");
6
+ exports.ToastRemovePropertyNameShowDuration = RemovePropertyNameTask_1.RemovePropertyNameTask.getInstance('kol-toast', '_show-duration', '^1');
5
7
  exports.ToastRenamePropertyHeadingToLabel = RenamePropertyNameTask_1.RenamePropertyNameTask.getInstance('kol-toast', '_heading', '_label', '^1');
@@ -3,9 +3,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRemoveMode = exports.setRemoveMode = exports.MODIFIED_FILES = exports.kebabToCapitalCase = exports.isPropertyKebabCaseRegExp = exports.isTagKebabCaseRegExp = exports.getPackageManagerInstallCommand = exports.readPackageJson = exports.readPackageString = exports.filterFilesByExt = void 0;
6
+ exports.getVersionOfPublicUiKoliBriCli = exports.getVersionOfPublicUiComponents = exports.getContentOfProjectPkgJson = exports.getRemoveMode = exports.setRemoveMode = exports.MODIFIED_FILES = exports.kebabToCamelCase = exports.kebabToCapitalCase = exports.isPropertyKebabCaseRegExp = exports.isTagKebabCaseRegExp = exports.isKebabCaseRegExp = exports.getPackageManagerInstallCommand = exports.filterFilesByExt = exports.logAndCreateError = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const path_1 = __importDefault(require("path"));
10
+ /**
11
+ * This function is used to exit the process with an error message.
12
+ * @param {string} msg The error message
13
+ * @param {string} hint The hint message
14
+ * @returns {Error} The error object
15
+ */
16
+ function logAndCreateError(msg, hint) {
17
+ const hintText = hint
18
+ ? chalk_1.default.yellow(`
19
+ ℹ️ `, chalk_1.default.underline.bold(`Hinweis:`), hint, `
20
+ `)
21
+ : '';
22
+ console.log(chalk_1.default.red(chalk_1.default.underline.bold(`
23
+ Error:`), `${msg}
24
+ `), hintText, `
25
+ 👉 You can report this error to`, chalk_1.default.blue(`https://github.com/public-ui/kolibri/issues/new?title=CLI:+`), `
26
+ `);
27
+ // @todo process.exit(1); // makes `hint` undefined - ?!
28
+ return new Error();
29
+ }
30
+ exports.logAndCreateError = logAndCreateError;
9
31
  /**
10
32
  * Recursively searches for files with the specified extension in the specified directory.
11
33
  * @param {string} dir The directory to search in
@@ -36,11 +58,10 @@ exports.filterFilesByExt = filterFilesByExt;
36
58
  function readPackageString(offsetPath) {
37
59
  offsetPath = path_1.default.resolve(offsetPath, 'package.json');
38
60
  if (!fs_1.default.existsSync(offsetPath)) {
39
- throw new Error(`${offsetPath} not found`);
61
+ throw logAndCreateError(`The following "package.json" does not exists: ${offsetPath}`);
40
62
  }
41
63
  return fs_1.default.readFileSync(offsetPath, 'utf8');
42
64
  }
43
- exports.readPackageString = readPackageString;
44
65
  /**
45
66
  * This function is used to get the version of the package.json.
46
67
  * @param {string} offsetPath The offset path to the package.json
@@ -53,11 +74,10 @@ function readPackageJson(offsetPath) {
53
74
  json = JSON.parse(content);
54
75
  }
55
76
  catch (err) {
56
- throw new Error(`Error reading package.json: ${err.message}`);
77
+ throw logAndCreateError(`The following "package.json" content could not parse: ${content}`);
57
78
  }
58
79
  return json;
59
80
  }
60
- exports.readPackageJson = readPackageJson;
61
81
  /**
62
82
  * This function is used to get the package manager install command.
63
83
  * @param {string} baseDir The base directory to start searching for the package manager
@@ -72,27 +92,40 @@ function getPackageManagerInstallCommand(baseDir = process.cwd()) {
72
92
  return 'npm i';
73
93
  baseDir = path_1.default.resolve(baseDir, '..');
74
94
  if (baseDir === '/') {
75
- throw new Error('Package manager could not detected.');
95
+ throw logAndCreateError('Package manager could not detected.');
76
96
  }
77
97
  return getPackageManagerInstallCommand(baseDir);
78
98
  }
79
99
  exports.getPackageManagerInstallCommand = getPackageManagerInstallCommand;
100
+ exports.isKebabCaseRegExp = /^((data-removed-)?[a-z]+(-[a-z]+)*)?$/;
80
101
  exports.isTagKebabCaseRegExp = /^kol-[a-z]+(-[a-z]+)*$/;
81
102
  exports.isPropertyKebabCaseRegExp = /^(data-removed-)?_[a-z]+(-[a-z]+)*$/;
82
103
  /**
83
104
  * Converts a kebab case string to a capital case string.
84
- * @param {string} tag The kebab case string
105
+ * @param {string} str The kebab case string
85
106
  * @returns {string} The capital case string
86
107
  */
87
- function kebabToCapitalCase(tag) {
88
- return tag
108
+ function kebabToCapitalCase(str) {
109
+ return str
89
110
  .split('-') // Split on hyphen
90
111
  .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) // Capitalize each word
91
112
  .join(''); // Join without space
92
113
  }
93
114
  exports.kebabToCapitalCase = kebabToCapitalCase;
115
+ /**
116
+ * Converts a kebab case string to a camel case string.
117
+ * @param {string} str The kebab case string
118
+ * @returns {string} The camel case string
119
+ */
120
+ function kebabToCamelCase(str) {
121
+ return str
122
+ .split('-') // Split on hyphen
123
+ .map((word, index) => (index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())) // Capitalize each word
124
+ .join(''); // Join without space
125
+ }
126
+ exports.kebabToCamelCase = kebabToCamelCase;
94
127
  exports.MODIFIED_FILES = new Set();
95
- let REMOVE_MODE = 'comment';
128
+ let REMOVE_MODE = 'prefix';
96
129
  /**
97
130
  * Sets the remove mode.
98
131
  * @param {RemoveMode} mode The remove mode
@@ -109,3 +142,30 @@ function getRemoveMode() {
109
142
  return REMOVE_MODE;
110
143
  }
111
144
  exports.getRemoveMode = getRemoveMode;
145
+ const getContentOfProjectPkgJson = () => {
146
+ try {
147
+ return readPackageString(path_1.default.resolve(process.cwd()));
148
+ }
149
+ catch (err) {
150
+ throw logAndCreateError('Could not read content of project "package.json"!');
151
+ }
152
+ };
153
+ exports.getContentOfProjectPkgJson = getContentOfProjectPkgJson;
154
+ const getVersionOfPublicUiComponents = () => {
155
+ try {
156
+ return readPackageJson(path_1.default.resolve(process.cwd(), 'node_modules/@public-ui/components')).version;
157
+ }
158
+ catch (err) {
159
+ throw logAndCreateError('Could not get version of installed "@public-ui/components" package!', 'Check that you are in the root directory of your project and that the package "@public-ui/components" is installed.');
160
+ }
161
+ };
162
+ exports.getVersionOfPublicUiComponents = getVersionOfPublicUiComponents;
163
+ const getVersionOfPublicUiKoliBriCli = () => {
164
+ try {
165
+ return readPackageJson(path_1.default.resolve(__dirname, '..', '..', '..')).version;
166
+ }
167
+ catch (err) {
168
+ throw logAndCreateError('Could not get version of global installed "@public-ui/kolibri-cli" package!', 'Install the package with: npm i -g @public-ui/kolibri-cli');
169
+ }
170
+ };
171
+ exports.getVersionOfPublicUiKoliBriCli = getVersionOfPublicUiKoliBriCli;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REMOVE_MODE = void 0;
4
+ exports.REMOVE_MODE = ['delete', 'prefix'];
package/dist/types.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CUSTOM_ELEMENT_FILE_EXTENSIONS = exports.COMPONENT_FILE_EXTENSIONS = exports.FILE_EXTENSIONS = void 0;
3
+ exports.MARKUP_EXTENSIONS = exports.CUSTOM_ELEMENT_FILE_EXTENSIONS = exports.COMPONENT_FILE_EXTENSIONS = exports.FILE_EXTENSIONS = void 0;
4
4
  exports.FILE_EXTENSIONS = ['html', 'js', 'json', 'jsx', 'ts', 'tsx', 'vue'];
5
5
  exports.COMPONENT_FILE_EXTENSIONS = ['jsx', 'tsx', 'vue'];
6
6
  exports.CUSTOM_ELEMENT_FILE_EXTENSIONS = ['html', 'jsx', 'tsx', 'vue'];
7
+ exports.MARKUP_EXTENSIONS = exports.COMPONENT_FILE_EXTENSIONS.concat(exports.CUSTOM_ELEMENT_FILE_EXTENSIONS);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@public-ui/kolibri-cli",
3
- "version": "1.7.0-rc.1",
3
+ "version": "1.7.0-rc.11",
4
4
  "license": "EUPL-1.2",
5
5
  "homepage": "https://public-ui.github.io",
6
6
  "repository": "https://github.com/public-ui/kolibri",
@@ -18,42 +18,45 @@
18
18
  "description": "CLI for executing some helpful commands for KoliBri projects.",
19
19
  "scripts": {
20
20
  "reset": "pnpm i @public-ui/components@1.1.7",
21
- "depcheck": "depcheck --ignores=\"chalk,loglevel,@public-ui/components\" --ignore-bin-package --skip-missing",
21
+ "depcheck": "depcheck --ignores=\"@public-ui/components,loglevel,mocha\"",
22
22
  "format": "prettier -c src",
23
23
  "lint": "eslint src && tsc --noEmit",
24
24
  "prepack": "tsc",
25
- "start": "ts-node src/index.ts migrate --test-tasks test",
25
+ "start": "rimraf test && cpy \"../../samples/react/src/components\" test && ts-node src/index.ts migrate --ignore-uncommitted-changes --test-tasks test",
26
26
  "restart": "pnpm reset && pnpm start",
27
27
  "unused": "knip",
28
- "update": "ncu -t minor -u && ncu",
29
- "watch": "nodemon --ignore package.json src/index.ts migrate --test-tasks test"
28
+ "watch": "nodemon --ignore package.json src/index.ts migrate --ignore-uncommitted-changes --test-tasks test"
30
29
  },
30
+ "type": "commonjs",
31
31
  "dependencies": {
32
- "chalk": "5.3.0",
32
+ "chalk": "^4",
33
33
  "commander": "11.0.0",
34
+ "deepmerge": "4.3.1",
34
35
  "gradient-string": "2.0.2",
35
36
  "loglevel": "1.8.1",
36
37
  "prettier": "3.0.3",
37
38
  "semver": "7.5.4"
38
39
  },
39
40
  "devDependencies": {
40
- "@public-ui/components": "1.1.7",
41
+ "@public-ui/components": "1.6.2",
41
42
  "@types/gradient-string": "1.1.2",
42
- "@types/node": "20.5.9",
43
- "@typescript-eslint/eslint-plugin": "6.5.0",
44
- "@typescript-eslint/parser": "6.5.0",
45
- "depcheck": "1.4.5",
43
+ "@types/node": "20.6.1",
44
+ "@typescript-eslint/eslint-plugin": "6.7.0",
45
+ "@typescript-eslint/parser": "6.7.0",
46
+ "cpy-cli": "5.0.0",
47
+ "depcheck": "1.4.6",
48
+ "eslint": "8.49.0",
46
49
  "eslint-config-prettier": "9.0.0",
47
50
  "eslint-plugin-html": "7.1.0",
48
- "eslint-plugin-jsdoc": "46.5.1",
51
+ "eslint-plugin-jsdoc": "46.8.0",
49
52
  "eslint-plugin-json": "3.1.0",
50
53
  "eslint-plugin-jsx-a11y": "6.7.1",
51
54
  "eslint-plugin-no-loops": "0.3.0",
52
55
  "eslint-plugin-react": "7.33.2",
53
- "knip": "2.21.2",
56
+ "knip": "2.24.1",
54
57
  "mocha": "10.2.0",
55
58
  "nodemon": "3.0.1",
56
- "npm-check-updates": "16.13.2",
59
+ "rimraf": "3.0.2",
57
60
  "ts-node": "10.9.1",
58
61
  "typescript": "5.2.2"
59
62
  },
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestVersionNext2 = void 0;
4
- const test_dummy_1 = require("./test-dummy");
5
- class TestVersionNext2 extends test_dummy_1.TestDummy {
6
- static getInstance() {
7
- return super.getInstance('test-version-next-2', 'Test version next v2', [], '^2');
8
- }
9
- }
10
- exports.TestVersionNext2 = TestVersionNext2;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestVersionNext3 = void 0;
4
- const test_dummy_1 = require("./test-dummy");
5
- class TestVersionNext3 extends test_dummy_1.TestDummy {
6
- static getInstance() {
7
- return super.getInstance('test-version-next-3', 'Test version next v3', [], '^3');
8
- }
9
- }
10
- exports.TestVersionNext3 = TestVersionNext3;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.testTasks = void 0;
4
- const test_version_1_3_1 = require("./v1/test-version-1.3");
5
- const test_version_next_2_1 = require("./v1/test-version-next-2");
6
- const test_version_next_3_1 = require("./v1/test-version-next-3");
7
- const test_version_zero_1 = require("./v1/test-version-zero");
8
- exports.testTasks = [];
9
- exports.testTasks.push(test_version_zero_1.TestVersionZero.getInstance());
10
- exports.testTasks.push(test_version_next_2_1.TestVersionNext2.getInstance());
11
- exports.testTasks.push(test_version_next_3_1.TestVersionNext3.getInstance());
12
- exports.testTasks.push(test_version_1_3_1.TestVersion13.getInstance());
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbbrPropertyRenamingTitleToLabel = void 0;
4
- const reuse_1 = require("../../../shares/reuse");
5
- const types_1 = require("../../../../types");
6
- const abstract_task_1 = require("../../abstract-task");
7
- class AbbrPropertyRenamingTitleToLabel extends abstract_task_1.AbstractTask {
8
- constructor() {
9
- super('abbr-property-renaming-title-to-label', 'Renaming property `_title` to `_label`', types_1.COMPONENT_FILE_EXTENSIONS.concat(types_1.CUSTOM_ELEMENT_FILE_EXTENSIONS), '>=1 <2');
10
- }
11
- static getInstance() {
12
- if (!(this.instance instanceof AbbrPropertyRenamingTitleToLabel)) {
13
- this.instance = new AbbrPropertyRenamingTitleToLabel();
14
- }
15
- return this.instance;
16
- }
17
- run(baseDir) {
18
- this.transpileComponentFile(baseDir);
19
- this.transpileCustomElementFile(baseDir);
20
- }
21
- transpileComponentFile(baseDir) {
22
- const files = (0, reuse_1.filterFilesByExt)(baseDir, types_1.COMPONENT_FILE_EXTENSIONS);
23
- this.runDummy(files);
24
- }
25
- transpileCustomElementFile(baseDir) {
26
- const files = (0, reuse_1.filterFilesByExt)(baseDir, types_1.CUSTOM_ELEMENT_FILE_EXTENSIONS);
27
- this.runDummy(files);
28
- }
29
- }
30
- exports.AbbrPropertyRenamingTitleToLabel = AbbrPropertyRenamingTitleToLabel;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AccordionPropertyRenamingHeadingToLabel = void 0;
4
- const abstract_task_1 = require("../../abstract-task");
5
- const types_1 = require("../../../../types");
6
- const reuse_1 = require("../../../shares/reuse");
7
- class AccordionPropertyRenamingHeadingToLabel extends abstract_task_1.AbstractTask {
8
- constructor() {
9
- super('accordion-property-renaming-heading-to-label copy', 'Renaming property `_heading` to `_label`', types_1.COMPONENT_FILE_EXTENSIONS.concat(types_1.CUSTOM_ELEMENT_FILE_EXTENSIONS), '>=1 <2');
10
- }
11
- static getInstance() {
12
- if (!(this.instance instanceof AccordionPropertyRenamingHeadingToLabel)) {
13
- this.instance = new AccordionPropertyRenamingHeadingToLabel();
14
- }
15
- return this.instance;
16
- }
17
- run(baseDir) {
18
- this.transpileComponentFile(baseDir);
19
- this.transpileCustomElementFile(baseDir);
20
- }
21
- transpileComponentFile(baseDir) {
22
- const files = (0, reuse_1.filterFilesByExt)(baseDir, types_1.COMPONENT_FILE_EXTENSIONS);
23
- this.runDummy(files);
24
- }
25
- transpileCustomElementFile(baseDir) {
26
- const files = (0, reuse_1.filterFilesByExt)(baseDir, types_1.CUSTOM_ELEMENT_FILE_EXTENSIONS);
27
- this.runDummy(files);
28
- }
29
- }
30
- exports.AccordionPropertyRenamingHeadingToLabel = AccordionPropertyRenamingHeadingToLabel;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestVersion13 = void 0;
4
- const abstract_task_1 = require("../../abstract-task");
5
- class TestVersion13 extends abstract_task_1.AbstractTask {
6
- constructor() {
7
- super('test-version-1.3', 'Test version 1.3', [], '1.3');
8
- }
9
- static getInstance() {
10
- if (!(this.instance instanceof TestVersion13)) {
11
- this.instance = new TestVersion13();
12
- }
13
- return this.instance;
14
- }
15
- run() { }
16
- }
17
- exports.TestVersion13 = TestVersion13;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestVersionCurrent = void 0;
4
- const abstract_task_1 = require("../../abstract-task");
5
- class TestVersionCurrent extends abstract_task_1.AbstractTask {
6
- constructor(version) {
7
- super('test-version-current', 'Test version current', [], version);
8
- }
9
- static getInstance(version) {
10
- if (!(this.instance instanceof TestVersionCurrent)) {
11
- this.instance = new TestVersionCurrent(version);
12
- }
13
- return this.instance;
14
- }
15
- run() { }
16
- }
17
- exports.TestVersionCurrent = TestVersionCurrent;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestVersionNext2 = void 0;
4
- const abstract_task_1 = require("../../abstract-task");
5
- class TestVersionNext2 extends abstract_task_1.AbstractTask {
6
- constructor() {
7
- super('test-version-next-2', 'Test version next v2', [], '^2');
8
- }
9
- static getInstance() {
10
- if (!(this.instance instanceof TestVersionNext2)) {
11
- this.instance = new TestVersionNext2();
12
- }
13
- return this.instance;
14
- }
15
- run() { }
16
- }
17
- exports.TestVersionNext2 = TestVersionNext2;