@public-ui/kolibri-cli 1.7.0 → 1.7.2-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -8
- package/dist/migrate/index.js +58 -24
- package/dist/migrate/runner/task-runner.js +3 -1
- package/dist/migrate/runner/tasks/common/LabelExpertSlot.js +19 -6
- package/dist/migrate/runner/tasks/common/VsCodeSettingsReconfigureTask.js +4 -1
- package/dist/migrate/runner/tasks/v1/assets.js +23 -16
- package/dist/migrate/shares/reuse.js +2 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -56,14 +56,17 @@ Actually the following migrations are available:
|
|
|
56
56
|
- Slots renaming (`content`) ✓
|
|
57
57
|
- Slots removal (`footer`, `header`) ✓
|
|
58
58
|
- Logic refactoring (no one yet)
|
|
59
|
-
- Expert-Slot refactoring
|
|
59
|
+
- Expert-Slot refactoring
|
|
60
60
|
- Move `innerText` to property ✓
|
|
61
|
-
- Property type change (remove `_label={false}`)
|
|
62
|
-
- Set `_label=""` to activate the expert slot
|
|
61
|
+
- Property type change (remove `_label={false}`) ✓
|
|
62
|
+
- Set `_label=""` to activate the expert slot ([#5396](https://github.com/public-ui/kolibri/issues/5396)) ✓
|
|
63
63
|
- `.vscode/settings.json` add IntelliSense for HTML ✓
|
|
64
64
|
- `.gitignore` exclude `.kolibri.migrate.json` ✓
|
|
65
65
|
- `.tsconfig` add `@public-ui/components` to `types` array ✓
|
|
66
66
|
- Format modified files (`prettier@^3`) ✓
|
|
67
|
+
- Copy and integrate new assets ✓
|
|
68
|
+
- Handles `_icon-align` with a refactoring tasks ([#5397](https://github.com/public-ui/kolibri/issues/5397)) ⏰
|
|
69
|
+
- Detection of `_iconOnly` in TSX is not stable ([#5404](https://github.com/public-ui/kolibri/issues/5404)) ⏰
|
|
67
70
|
|
|
68
71
|
#### How does it work?
|
|
69
72
|
|
|
@@ -106,6 +109,17 @@ You can configure the migration with the `.kolibri.config.json` file in your pro
|
|
|
106
109
|
{
|
|
107
110
|
"migrate": {
|
|
108
111
|
"tasks": {
|
|
112
|
+
".gitignore-add-rule-.kolibri.migrate.json": true,
|
|
113
|
+
"vscode-settings-reconfigure-html.customData": true,
|
|
114
|
+
"tsconfig-reconfigure-compilerOptions.types": true,
|
|
115
|
+
"remove--cpy-cli,rimraf": true,
|
|
116
|
+
"add--cpy-cli,rimraf": true,
|
|
117
|
+
"package.json-reconfigure-scripts.postinstall": true,
|
|
118
|
+
"merge-html-codicon-in-index.html": true,
|
|
119
|
+
"remove-public/assets/codicons": true,
|
|
120
|
+
"exec-npx cpy \"node_modules/@public-ui/components/assets/**/*\" \"public/assets\" --dot": true,
|
|
121
|
+
".npmrc-add-rule-save-exact=true": true,
|
|
122
|
+
"kol-abbr-rename-property-_align-to-_tooltip-align": true,
|
|
109
123
|
"kol-abbr-rename-property-_title-to-_label": true,
|
|
110
124
|
"kol-accordion-rename-property-_heading-to-_label": true,
|
|
111
125
|
"kol-badge-rename-property-_icon-only-to-_hide-label": true,
|
|
@@ -117,38 +131,99 @@ You can configure the migration with the `.kolibri.config.json` file in your pro
|
|
|
117
131
|
"kol-button-link-rename-property-_icon-only-to-_hide-label": true,
|
|
118
132
|
"kol-button-remove-property-_aria-current": true,
|
|
119
133
|
"kol-button-remove-property-_aria-label": true,
|
|
134
|
+
"kol-button-remove-property-_icon-align": true,
|
|
120
135
|
"kol-button-rename-property-_icon-only-to-_hide-label": true,
|
|
136
|
+
"kol-button-rename-property-_icon-to-_icons": true,
|
|
121
137
|
"kol-card-rename-property-_heading-to-_label": true,
|
|
122
138
|
"kol-card-rename-property-_headline-to-_label": true,
|
|
123
139
|
"kol-details-rename-property-_summary-to-_label": true,
|
|
124
140
|
"kol-icon-remove-property-_part": true,
|
|
125
141
|
"kol-icon-rename-property-_aria-label-to-_label": true,
|
|
142
|
+
"kol-icon-rename-property-_icon-to-_icons": true,
|
|
143
|
+
"kol-input-checkbox-rename-property-_icon-to-_icons": true,
|
|
126
144
|
"kol-checkbox-rename-property-_type-to-_variant": true,
|
|
145
|
+
"kol-color-rename-property-_icon-to-_icons": true,
|
|
127
146
|
"kol-color-rename-property-_list-to-_suggestions": true,
|
|
147
|
+
"kol-input-date-rename-property-_icon-to-_icons": true,
|
|
128
148
|
"kol-date-rename-property-_list-to-_suggestions": true,
|
|
149
|
+
"kol-input-email-rename-property-_icon-to-_icons": true,
|
|
129
150
|
"kol-input-email-rename-property-_list-to-_suggestions": true,
|
|
151
|
+
"kol-input-file-rename-property-_icon-to-_icons": true,
|
|
152
|
+
"kol-input-number-rename-property-_icon-to-_icons": true,
|
|
130
153
|
"kol-input-number-rename-property-_list-to-_suggestions": true,
|
|
154
|
+
"kol-input-password-rename-property-_icon-to-_icons": true,
|
|
131
155
|
"kol-input-radio-rename-property-_list-to-_options": true,
|
|
156
|
+
"kol-input-range-rename-property-_icon-to-_icons": true,
|
|
132
157
|
"kol-input-range-rename-property-_list-to-_suggestions": true,
|
|
158
|
+
"kol-input-rename-property-_icon-to-_icons": true,
|
|
159
|
+
"kol-input-text-rename-property-_icon-to-_icons": true,
|
|
133
160
|
"kol-input-text-rename-property-_list-to-_suggestions": true,
|
|
134
|
-
"kol-link-
|
|
161
|
+
"kol-link-button-remove-property-_aria-control": true,
|
|
162
|
+
"kol-link-button-remove-property-_aria-expanded": true,
|
|
163
|
+
"kol-link-button-remove-property-_aria-label": true,
|
|
164
|
+
"kol-link-button-remove-property-_aria-selected": true,
|
|
165
|
+
"kol-link-button-remove-property-_disabled": true,
|
|
166
|
+
"kol-link-button-rename-property-_aria-current-to-_listen-aria-current": true,
|
|
167
|
+
"kol-link-button-rename-property-_icon-only-to-_hide-label": true,
|
|
168
|
+
"kol-link-group-rename-property-_heading-to-_label": true,
|
|
169
|
+
"kol-link-group-remove-property-_heading": true,
|
|
135
170
|
"kol-link-group-remove-property-_ordered": true,
|
|
171
|
+
"kol-link-group-rename-property-_aria-label-to-_label": true,
|
|
172
|
+
"kol-link-remove-property-_aria-control": true,
|
|
173
|
+
"kol-link-remove-property-_aria-expanded": true,
|
|
174
|
+
"kol-link-remove-property-_aria-label": true,
|
|
175
|
+
"kol-link-remove-property-_aria-selected": true,
|
|
176
|
+
"kol-link-remove-property-_disabled": true,
|
|
177
|
+
"kol-link-remove-property-_icon-align": true,
|
|
178
|
+
"kol-link-remove-property-_selector": true,
|
|
179
|
+
"kol-link-remove-property-_stealth": true,
|
|
180
|
+
"kol-link-remove-property-_use-case": true,
|
|
181
|
+
"kol-link-rename-property-_aria-current-to-_listen-aria-current": true,
|
|
182
|
+
"kol-link-rename-property-_icon-only-to-_hide-label": true,
|
|
183
|
+
"kol-logo-rename-property-_abbr-to-_org": true,
|
|
184
|
+
"kol-modal-rename-property-_aria-label-to-_label": true,
|
|
185
|
+
"kol-nav-remove-property-_variant": true,
|
|
136
186
|
"kol-nav-rename-property-_aria-label-to-_label": true,
|
|
137
187
|
"kol-nav-rename-property-_compact-to-_hide-label": true,
|
|
138
|
-
"kol-nav-remove-property-_has-compact-button": true,
|
|
139
188
|
"kol-pagination-rename-property-_count-to-_total": true,
|
|
189
|
+
"kol-pagination-rename-property-_total-to-_max": true,
|
|
140
190
|
"kol-progress-rename-property-_type-to-_variant": true,
|
|
141
191
|
"kol-quote-rename-property-_caption-to-_label": true,
|
|
142
|
-
"kol-select-rename-property-_height-to-_rows":
|
|
143
|
-
"kol-select-rename-property-
|
|
192
|
+
"kol-select-rename-property-_height-to-_rows": true,
|
|
193
|
+
"kol-select-rename-property-_icon-to-_icons": true,
|
|
194
|
+
"kol-select-rename-property-_list-to-_options": true,
|
|
144
195
|
"kol-skip-nav-rename-property-_aria-label-to-_label": true,
|
|
145
196
|
"kol-span-rename-property-_icon-only-to-_hide-label": true,
|
|
197
|
+
"kol-span-rename-property-_icon-to-_icons": true,
|
|
146
198
|
"kol-split-button-remove-property-_aria-label": true,
|
|
199
|
+
"kol-split-button-rename-property-_show-dropdown-to-_show": true,
|
|
147
200
|
"kol-table-rename-property-_caption-to-_label": true,
|
|
148
201
|
"kol-tabs-rename-property-_aria-label-to-_label": true,
|
|
202
|
+
"kol-tabs-rename-property-_icon-to-_icons": true,
|
|
149
203
|
"kol-tabs-rename-property-_tab-align-to-_align": true,
|
|
204
|
+
"kol-toast-remove-property-_show-duration": true,
|
|
150
205
|
"kol-toast-rename-property-_heading-to-_label": true,
|
|
151
|
-
"kol-version-rename-property-_version-to-_label": true
|
|
206
|
+
"kol-version-rename-property-_version-to-_label": true,
|
|
207
|
+
"kol-heading-move-innerText-to-property-_label": true,
|
|
208
|
+
"kol-input-checkbox-move-innerText-to-property-_label": true,
|
|
209
|
+
"kol-input-color-move-innerText-to-property-_label": true,
|
|
210
|
+
"kol-input-date-move-innerText-to-property-_label": true,
|
|
211
|
+
"kol-input-email-move-innerText-to-property-_label": true,
|
|
212
|
+
"kol-input-file-move-innerText-to-property-_label": true,
|
|
213
|
+
"kol-input-number-move-innerText-to-property-_label": true,
|
|
214
|
+
"kol-input-password-move-innerText-to-property-_label": true,
|
|
215
|
+
"kol-input-radio-move-innerText-to-property-_label": true,
|
|
216
|
+
"kol-input-range-move-innerText-to-property-_label": true,
|
|
217
|
+
"kol-input-text-move-innerText-to-property-_label": true,
|
|
218
|
+
"kol-link-move-innerText-to-property-_label": true,
|
|
219
|
+
"kol-select-move-innerText-to-property-_label": true,
|
|
220
|
+
"kol-textarea-move-innerText-to-property-_label": true,
|
|
221
|
+
"kol-accordion-mark-removed-slot-header": true,
|
|
222
|
+
"kol-card-mark-removed-slot-footer": true,
|
|
223
|
+
"kol-card-mark-removed-slot-header": true,
|
|
224
|
+
"kol-accordion-rename-slot-content-to-": true,
|
|
225
|
+
"kol-card-rename-slot-content-to-": true,
|
|
226
|
+
"refactor-property-label-replace-false": true
|
|
152
227
|
}
|
|
153
228
|
}
|
|
154
229
|
}
|
|
@@ -173,3 +248,13 @@ You have always the possibility of a dry run. Because before the migration will
|
|
|
173
248
|
After the migration you can check the result with `git status` and `git diff`.
|
|
174
249
|
|
|
175
250
|
Is anything wrong, you can reset the migration with `git reset --hard HEAD~1` or by discarding the affected files.
|
|
251
|
+
|
|
252
|
+
## Changelog
|
|
253
|
+
|
|
254
|
+
### 1.7.1
|
|
255
|
+
|
|
256
|
+
- Fix version handling by adding the absolut min version 1.4.2
|
|
257
|
+
- Add post message feature for more details
|
|
258
|
+
- Add `${` support by `_label` migration
|
|
259
|
+
- Activate Expert-Slot refactoring for `_label` migration
|
|
260
|
+
- Prevents `@public-ui/kolibri-cli` from being changed by the update process
|
package/dist/migrate/index.js
CHANGED
|
@@ -68,40 +68,57 @@ Source folder to migrate: ${baseDir}
|
|
|
68
68
|
runner.registerTasks(test_1.testTasks);
|
|
69
69
|
}
|
|
70
70
|
let version = versionOfPublicUiComponents;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a replacer function for the package.json file.
|
|
73
|
+
* @param {string} version Version to set
|
|
74
|
+
* @returns {string} The replacer function
|
|
75
|
+
*/
|
|
76
|
+
function createVersionReplacer(version) {
|
|
77
|
+
return (...args) => {
|
|
78
|
+
if (args[1] === '@public-ui/kolibri-cli') {
|
|
79
|
+
return `"${args[1]}": "${args[2]}"`;
|
|
80
|
+
}
|
|
81
|
+
return `"${args[1]}": "${version}"`;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Sets the version of the @public-ui/* packages in the package.json file.
|
|
86
|
+
* @param {string} version Version to set
|
|
87
|
+
* @param {function} cb Callback function
|
|
88
|
+
*/
|
|
89
|
+
function setVersionOfPublicUiPackages(version, cb) {
|
|
90
|
+
let packageJson = (0, reuse_1.getContentOfProjectPkgJson)();
|
|
91
|
+
packageJson = packageJson.replace(/"(@public-ui\/[^"]+)":\s*"(.*)"/g, createVersionReplacer(version));
|
|
92
|
+
fs_1.default.writeFileSync(path_1.default.resolve(process.cwd(), 'package.json'), packageJson);
|
|
93
|
+
runner.setProjectVersion(version);
|
|
94
|
+
console.log(`- Update @public-ui/* to version ${version}`);
|
|
95
|
+
(0, child_process_1.exec)((0, reuse_1.getPackageManagerCommand)('install'), (err) => {
|
|
96
|
+
if (err) {
|
|
97
|
+
console.error(`exec error: ${err.message}`);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
cb();
|
|
101
|
+
});
|
|
102
|
+
}
|
|
71
103
|
/**
|
|
72
104
|
* Runs the task runner in a loop until all tasks are completed.
|
|
73
105
|
*/
|
|
74
106
|
function runLoop() {
|
|
75
107
|
runner.run();
|
|
76
108
|
if (version !== runner.getPendingMinVersion()) {
|
|
109
|
+
// Tasks
|
|
77
110
|
version = runner.getPendingMinVersion();
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
(
|
|
84
|
-
if (err) {
|
|
85
|
-
console.error(`exec error: ${err.message}`);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
runLoop();
|
|
89
|
-
});
|
|
111
|
+
setVersionOfPublicUiPackages(version, runLoop);
|
|
112
|
+
}
|
|
113
|
+
else if (semver_1.default.lt(version, versionOfPublicUiKoliBriCli)) {
|
|
114
|
+
// CLI
|
|
115
|
+
version = versionOfPublicUiKoliBriCli;
|
|
116
|
+
setVersionOfPublicUiPackages(version, finish);
|
|
90
117
|
}
|
|
91
118
|
else if (semver_1.default.lt(version, versionOfPublicUiComponents)) {
|
|
119
|
+
// Components
|
|
92
120
|
version = versionOfPublicUiComponents;
|
|
93
|
-
|
|
94
|
-
packageJson = packageJson.replace(/"(@public-ui\/[^"]+)":\s*".*"/g, `"$1": "${version}"`);
|
|
95
|
-
fs_1.default.writeFileSync(path_1.default.resolve(process.cwd(), 'package.json'), packageJson);
|
|
96
|
-
runner.setProjectVersion(version);
|
|
97
|
-
console.log(`- Update @public-ui/* to version ${version}`);
|
|
98
|
-
(0, child_process_1.exec)((0, reuse_1.getPackageManagerCommand)('install'), (err) => {
|
|
99
|
-
if (err) {
|
|
100
|
-
console.error(`exec error: ${err.message}`);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
finish();
|
|
104
|
-
});
|
|
121
|
+
setVersionOfPublicUiPackages(version, finish);
|
|
105
122
|
}
|
|
106
123
|
else {
|
|
107
124
|
finish();
|
|
@@ -136,6 +153,23 @@ We try to format the modified files with prettier...`);
|
|
|
136
153
|
}
|
|
137
154
|
console.log(chalk_1.default.cyan(`
|
|
138
155
|
${chalk_1.default.bold.bgCyan(`The migration is complete.`)} Please check the modified files and commit them if necessary.`));
|
|
156
|
+
if (reuse_1.POST_MESSAGES.size > 0) {
|
|
157
|
+
console.log(`
|
|
158
|
+
${chalk_1.default.bold.bgYellow(`Additional information:`)}`);
|
|
159
|
+
reuse_1.POST_MESSAGES.forEach((message) => {
|
|
160
|
+
switch (message.type) {
|
|
161
|
+
case 'error':
|
|
162
|
+
console.log(chalk_1.default.red(`- ${message.message}`));
|
|
163
|
+
break;
|
|
164
|
+
case 'warn':
|
|
165
|
+
console.log(chalk_1.default.yellow(`- ${message.message}`));
|
|
166
|
+
break;
|
|
167
|
+
default:
|
|
168
|
+
console.log(chalk_1.default.blue(`- ${message.message}`));
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
139
173
|
console.log(chalk_1.default.magenta(`
|
|
140
174
|
Despite the best possible preparation of migration steps, we will certainly not be able to fully migrate every individual source code in the project. After running the migration tool, please see where you may still need to help yourself and feel free to provide feedback on what we can improve.
|
|
141
175
|
|
|
@@ -9,6 +9,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const semver_1 = __importDefault(require("semver"));
|
|
11
11
|
const reuse_1 = require("../shares/reuse");
|
|
12
|
+
const MIN_VERSION_OF_PUBLIC_UI = '1.4.2';
|
|
12
13
|
class TaskRunner {
|
|
13
14
|
constructor(baseDir, cliVersion, projectVersion, config) {
|
|
14
15
|
this.tasks = new Map();
|
|
@@ -111,6 +112,7 @@ class TaskRunner {
|
|
|
111
112
|
});
|
|
112
113
|
}
|
|
113
114
|
getPendingMinVersion() {
|
|
115
|
+
var _a;
|
|
114
116
|
let version = this.cliVersion;
|
|
115
117
|
this.tasks.forEach((task) => {
|
|
116
118
|
var _a, _b;
|
|
@@ -121,7 +123,7 @@ class TaskRunner {
|
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
125
|
});
|
|
124
|
-
return version;
|
|
126
|
+
return (_a = semver_1.default.maxSatisfying([version], `>=${MIN_VERSION_OF_PUBLIC_UI}`)) !== null && _a !== void 0 ? _a : MIN_VERSION_OF_PUBLIC_UI;
|
|
125
127
|
}
|
|
126
128
|
getStatus(outline = false) {
|
|
127
129
|
let done = 0;
|
|
@@ -26,8 +26,10 @@ class LabelExpertSlot extends abstract_task_1.AbstractTask {
|
|
|
26
26
|
// https://regex101.com/r/WkEKxu/1
|
|
27
27
|
this.componentRegExp = new RegExp(`(<${tagCapitalCase}[^>]*)>([^<]+(\\n\\s*)*)(<\\/${tagCapitalCase}>)`, 'g');
|
|
28
28
|
this.customElementRegExp = new RegExp(`(<${tag}[^>]*)>([^<]+(\\n\\s*)*)(<\\/${tag}>)`, 'g');
|
|
29
|
-
this.componentRegExp = new RegExp(
|
|
30
|
-
this.customElementRegExp = new RegExp(
|
|
29
|
+
this.componentRegExp = new RegExp(`<(${tagCapitalCase}[^>]*)>([^<>]+)(<\\/${tagCapitalCase}>)`, 'g');
|
|
30
|
+
this.customElementRegExp = new RegExp(`<(${tag}[^>]*)>([^<>]+)(<\\/${tag}>)`, 'g');
|
|
31
|
+
this.componentNoLabelPropRegExp = new RegExp(`<${tagCapitalCase}[^>]*>`, 'g');
|
|
32
|
+
this.customElementNoLabelPropRegExp = new RegExp(`<${tag}[^>]*>`, 'g');
|
|
31
33
|
}
|
|
32
34
|
static getInstance(tag, property, versionRange, dependentTasks = [], options = {}) {
|
|
33
35
|
const identifier = `${tag}-move-innerText-to-property-${property}`;
|
|
@@ -40,14 +42,25 @@ class LabelExpertSlot extends abstract_task_1.AbstractTask {
|
|
|
40
42
|
this.transpileComponentFileDelete(baseDir);
|
|
41
43
|
this.transpileCustomElementFileDelete(baseDir);
|
|
42
44
|
}
|
|
45
|
+
addMissingEmptyLabelToActivateExpertSlot(substring) {
|
|
46
|
+
if (!substring.endsWith('=>') && !substring.includes(`_label`)) {
|
|
47
|
+
return substring.replace(/(\/?>)/, ` _label=""$1`);
|
|
48
|
+
}
|
|
49
|
+
return substring;
|
|
50
|
+
}
|
|
43
51
|
transpileComponentFileDelete(baseDir) {
|
|
44
52
|
(0, reuse_1.filterFilesByExt)(baseDir, types_1.COMPONENT_FILE_EXTENSIONS).forEach((file) => {
|
|
45
53
|
const content = fs_1.default.readFileSync(file, 'utf8');
|
|
46
54
|
const newContent = content
|
|
47
55
|
// Replacements
|
|
48
56
|
.replace(this.componentRegExp, removeLineBreaksAndSpaces)
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
.replace(this.componentRegExp, (...args) => {
|
|
58
|
+
if (typeof args[2] === 'string' && args[2].includes('{')) {
|
|
59
|
+
args[2] = args[2].replace(/\{/g, '${');
|
|
60
|
+
}
|
|
61
|
+
return `<${args[1]} ${this.propertyInCamelCase}={\`${args[2]}\`} />`;
|
|
62
|
+
})
|
|
63
|
+
.replace(this.componentNoLabelPropRegExp, this.addMissingEmptyLabelToActivateExpertSlot.bind(this));
|
|
51
64
|
if (content !== newContent) {
|
|
52
65
|
reuse_1.MODIFIED_FILES.add(file);
|
|
53
66
|
fs_1.default.writeFileSync(file, newContent);
|
|
@@ -60,8 +73,8 @@ class LabelExpertSlot extends abstract_task_1.AbstractTask {
|
|
|
60
73
|
const newContent = content
|
|
61
74
|
// Replacements
|
|
62
75
|
.replace(this.customElementRegExp, removeLineBreaksAndSpaces)
|
|
63
|
-
|
|
64
|
-
.replace(this.
|
|
76
|
+
.replace(this.customElementRegExp, `<$1 ${this.property}="$2"></$1>`)
|
|
77
|
+
.replace(this.componentNoLabelPropRegExp, this.addMissingEmptyLabelToActivateExpertSlot.bind(this));
|
|
65
78
|
if (content !== newContent) {
|
|
66
79
|
reuse_1.MODIFIED_FILES.add(file);
|
|
67
80
|
fs_1.default.writeFileSync(file, newContent);
|
|
@@ -40,7 +40,10 @@ class VsCodeSettingsReconfigureTask extends abstract_task_1.AbstractTask {
|
|
|
40
40
|
reuse_1.MODIFIED_FILES.add(settingsPath);
|
|
41
41
|
}
|
|
42
42
|
catch (e) {
|
|
43
|
-
|
|
43
|
+
reuse_1.POST_MESSAGES.add({
|
|
44
|
+
message: `Your .vscode/settings.json file is not valid JSON.`,
|
|
45
|
+
type: 'warn',
|
|
46
|
+
});
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
else {
|
|
@@ -10,23 +10,30 @@ const RemoveTask_1 = require("../common/RemoveTask");
|
|
|
10
10
|
const getAssetTasks = (baseDir) => {
|
|
11
11
|
const assetTasks = [];
|
|
12
12
|
const indexHtml = (0, reuse_1.findIndexHtml)(baseDir);
|
|
13
|
+
const removeDeps = HandleDependencyTask_1.HandleDependencyTask.getInstance('remove', {}, {
|
|
14
|
+
'cpy-cli': '5.0.0',
|
|
15
|
+
rimraf: '3.0.2',
|
|
16
|
+
}, '^1');
|
|
17
|
+
const installDeps = HandleDependencyTask_1.HandleDependencyTask.getInstance('add', {}, {
|
|
18
|
+
'cpy-cli': '5.0.0',
|
|
19
|
+
rimraf: '3.0.2',
|
|
20
|
+
}, '^1', [removeDeps]);
|
|
21
|
+
const addScript = JsonTask_1.JsonTask.getInstance('scripts.postinstall', {
|
|
22
|
+
scripts: {
|
|
23
|
+
postinstall: `cpy "node_modules/@public-ui/components/assets/**/*" "${indexHtml}/assets" --dot`,
|
|
24
|
+
},
|
|
25
|
+
}, '^1', [installDeps]);
|
|
26
|
+
const removeTask = RemoveTask_1.RemoveTask.getInstance('public/assets/codicons', '^1', [addScript]);
|
|
27
|
+
const execTask = ExecTask_1.ExecTask.getInstance(`npx cpy "node_modules/@public-ui/components/assets/**/*" "${indexHtml}/assets" --dot`, '^1', [removeTask]);
|
|
13
28
|
if (indexHtml) {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
const addScript = JsonTask_1.JsonTask.getInstance('scripts.postinstall', {
|
|
23
|
-
scripts: {
|
|
24
|
-
postinstall: `cpy "node_modules/@public-ui/components/assets/**/*" "${indexHtml}/assets" --dot`,
|
|
25
|
-
},
|
|
26
|
-
}, '^1', [installDeps]);
|
|
27
|
-
const htmlTask = MergeHtmlTask_1.MergeHtmlTask.getInstance('codicon', (0, reuse_1.resolveIndexHtmlPath)([indexHtml]), 'index.html', '<link rel="stylesheet" href="assets/codicons/codicon.css" />', '^1', [addScript]);
|
|
28
|
-
const removeTask = RemoveTask_1.RemoveTask.getInstance('public/assets/codicons', '^1', [htmlTask]);
|
|
29
|
-
const execTask = ExecTask_1.ExecTask.getInstance(`npx cpy "node_modules/@public-ui/components/assets/**/*" "${indexHtml}/assets" --dot`, '^1', [removeTask]);
|
|
29
|
+
const htmlTask = MergeHtmlTask_1.MergeHtmlTask.getInstance('codicon', (0, reuse_1.resolveIndexHtmlPath)([indexHtml]), 'index.html', '<link rel="stylesheet" href="assets/codicons/codicon.css" />', '^1', [execTask]);
|
|
30
|
+
assetTasks.push(htmlTask);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
reuse_1.POST_MESSAGES.add({
|
|
34
|
+
message: `We could not find your index.html file. Please integrate the assets manually to your project.`,
|
|
35
|
+
type: 'warn',
|
|
36
|
+
});
|
|
30
37
|
assetTasks.push(execTask);
|
|
31
38
|
}
|
|
32
39
|
return assetTasks;
|
|
@@ -3,7 +3,7 @@ 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.findIndexHtml = exports.resolveIndexHtmlPath = exports.getVersionOfPublicUiKoliBriCli = exports.getVersionOfPublicUiComponents = exports.getContentOfProjectPkgJson = exports.getRemoveMode = exports.setRemoveMode = exports.MODIFIED_FILES = exports.kebabToCamelCase = exports.kebabToCapitalCase = exports.isPropertyKebabCaseRegExp = exports.isTagKebabCaseRegExp = exports.isKebabCaseRegExp = exports.getPackageManagerCommand = exports.filterFilesByExt = exports.logAndCreateError = void 0;
|
|
6
|
+
exports.POST_MESSAGES = exports.findIndexHtml = exports.resolveIndexHtmlPath = exports.getVersionOfPublicUiKoliBriCli = exports.getVersionOfPublicUiComponents = exports.getContentOfProjectPkgJson = exports.getRemoveMode = exports.setRemoveMode = exports.MODIFIED_FILES = exports.kebabToCamelCase = exports.kebabToCapitalCase = exports.isPropertyKebabCaseRegExp = exports.isTagKebabCaseRegExp = exports.isKebabCaseRegExp = exports.getPackageManagerCommand = exports.filterFilesByExt = exports.logAndCreateError = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
@@ -182,3 +182,4 @@ const findIndexHtml = (baseDir) => {
|
|
|
182
182
|
return INDEX_HTML_LOCATIONS.find(existsIndexHtml);
|
|
183
183
|
};
|
|
184
184
|
exports.findIndexHtml = findIndexHtml;
|
|
185
|
+
exports.POST_MESSAGES = new Set();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@public-ui/kolibri-cli",
|
|
3
|
-
"version": "1.7.0",
|
|
3
|
+
"version": "1.7.2-rc.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"homepage": "https://public-ui.github.io",
|
|
6
6
|
"repository": "https://github.com/public-ui/kolibri",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"semver": "7.5.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@public-ui/components": "1.7.0",
|
|
30
|
+
"@public-ui/components": "1.7.2-rc.0",
|
|
31
31
|
"@types/gradient-string": "1.1.3",
|
|
32
|
-
"@types/node": "20.
|
|
32
|
+
"@types/node": "20.8.0",
|
|
33
33
|
"@typescript-eslint/eslint-plugin": "6.7.3",
|
|
34
34
|
"@typescript-eslint/parser": "6.7.3",
|
|
35
35
|
"cpy-cli": "5.0.0",
|