@spartan-ng/cli 1.8.3-beta.2 → 1.9.0-beta.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.
- package/generators.json +10 -0
- package/package.json +1 -1
- package/src/generators/healthcheck/generator.js +2 -0
- package/src/generators/healthcheck/generator.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-input-otp-max-length-rename.js +2 -2
- package/src/generators/healthcheck/healthchecks/brn-input-otp-max-length-rename.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-input-otp.d.ts +2 -0
- package/src/generators/healthcheck/healthchecks/hlm-input-otp.js +48 -0
- package/src/generators/healthcheck/healthchecks/hlm-input-otp.js.map +1 -0
- package/src/generators/migrate-brn-input-otp-max-length/generator.js +1 -1
- package/src/generators/migrate-brn-input-otp-max-length/generator.js.map +1 -1
- package/src/generators/migrate-input-otp/compat.d.ts +2 -0
- package/src/generators/migrate-input-otp/compat.js +6 -0
- package/src/generators/migrate-input-otp/compat.js.map +1 -0
- package/src/generators/migrate-input-otp/generator.d.ts +4 -0
- package/src/generators/migrate-input-otp/generator.js +281 -0
- package/src/generators/migrate-input-otp/generator.js.map +1 -0
- package/src/generators/migrate-input-otp/schema.d.ts +3 -0
- package/src/generators/migrate-input-otp/schema.json +14 -0
- package/src/generators/migrate-input-otp/utils.d.ts +35 -0
- package/src/generators/migrate-input-otp/utils.js +265 -0
- package/src/generators/migrate-input-otp/utils.js.map +1 -0
- package/src/generators/ui/libs/avatar/files/lib/hlm-avatar-image.ts.template +1 -1
- package/src/generators/ui/libs/avatar/files/lib/hlm-avatar.ts.template +5 -14
- package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp.ts.template +50 -4
- package/src/generators/ui/supported-ui-libraries.json +46 -44
package/generators.json
CHANGED
|
@@ -75,6 +75,11 @@
|
|
|
75
75
|
"schema": "./src/generators/migrate-input-id/schema.json",
|
|
76
76
|
"description": "Migrate renamed Helm id inputs to inputId"
|
|
77
77
|
},
|
|
78
|
+
"migrate-input-otp": {
|
|
79
|
+
"factory": "./src/generators/migrate-input-otp/generator",
|
|
80
|
+
"schema": "./src/generators/migrate-input-otp/schema.json",
|
|
81
|
+
"description": "Migrate input-otp to the directive-based API"
|
|
82
|
+
},
|
|
78
83
|
"migrate-icon": {
|
|
79
84
|
"factory": "./src/generators/migrate-icon/generator",
|
|
80
85
|
"schema": "./src/generators/migrate-icon/schema.json",
|
|
@@ -207,6 +212,11 @@
|
|
|
207
212
|
"schema": "./src/generators/migrate-input-id/schema.json",
|
|
208
213
|
"description": "Migrate renamed Helm id inputs to inputId"
|
|
209
214
|
},
|
|
215
|
+
"migrate-input-otp": {
|
|
216
|
+
"factory": "./src/generators/migrate-input-otp/compat",
|
|
217
|
+
"schema": "./src/generators/migrate-input-otp/schema.json",
|
|
218
|
+
"description": "Migrate input-otp to the directive-based API"
|
|
219
|
+
},
|
|
210
220
|
"migrate-icon": {
|
|
211
221
|
"factory": "./src/generators/migrate-icon/compat",
|
|
212
222
|
"schema": "./src/generators/migrate-icon/schema.json",
|
package/package.json
CHANGED
|
@@ -27,6 +27,7 @@ const hlm_dialog_portal_1 = require("./healthchecks/hlm-dialog-portal");
|
|
|
27
27
|
const hlm_form_field_1 = require("./healthchecks/hlm-form-field");
|
|
28
28
|
const hlm_icon_1 = require("./healthchecks/hlm-icon");
|
|
29
29
|
const hlm_input_id_1 = require("./healthchecks/hlm-input-id");
|
|
30
|
+
const hlm_input_otp_1 = require("./healthchecks/hlm-input-otp");
|
|
30
31
|
const hlm_menu_1 = require("./healthchecks/hlm-menu");
|
|
31
32
|
const hlm_progress_1 = require("./healthchecks/hlm-progress");
|
|
32
33
|
const hlm_scroll_area_1 = require("./healthchecks/hlm-scroll-area");
|
|
@@ -71,6 +72,7 @@ async function healthcheckGenerator(tree, options) {
|
|
|
71
72
|
sonner_1.sonnerHealthcheck,
|
|
72
73
|
brn_select_1.brnSelectHealthcheck,
|
|
73
74
|
brn_input_otp_max_length_rename_1.brnInputOtpMaxLengthRename,
|
|
75
|
+
hlm_input_otp_1.inputOtpHealthcheck,
|
|
74
76
|
scaffold_integrity_1.scaffoldIntegrityHealthcheck,
|
|
75
77
|
];
|
|
76
78
|
const failedReports = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/healthcheck/generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/healthcheck/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ exports.brnInputOtpMaxLengthRename = {
|
|
|
16
16
|
if (!contents) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
// matches the legacy maxLength input on a brn-input-otp element ([maxLength] or maxLength=)
|
|
20
|
-
if (/<brn-input-otp\
|
|
19
|
+
// matches the legacy maxLength input on a brn-input-otp or hlm-input-otp element ([maxLength] or maxLength=)
|
|
20
|
+
if (/<(?:brn|hlm)-input-otp(?![\w-])[^>]*\bmaxLength\b/g.test(contents)) {
|
|
21
21
|
failure('brn-input-otp is using the renamed maxLength input.', healthchecks_1.HealthcheckSeverity.Error, true);
|
|
22
22
|
}
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brn-input-otp-max-length-rename.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/generators/healthcheck/healthchecks/brn-input-otp-max-length-rename.ts"],"names":[],"mappings":";;;;AAAA,uCAAkD;AAClD,yGAA2F;AAC3F,kDAAwE;AAE3D,QAAA,0BAA0B,GAAgB;IACtD,IAAI,EAAE,4BAA4B;IAClC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;QACzB,IAAA,6BAAoB,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"brn-input-otp-max-length-rename.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/generators/healthcheck/healthchecks/brn-input-otp-max-length-rename.ts"],"names":[],"mappings":";;;;AAAA,uCAAkD;AAClD,yGAA2F;AAC3F,kDAAwE;AAE3D,QAAA,0BAA0B,GAAgB;IACtD,IAAI,EAAE,4BAA4B;IAClC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;QACzB,IAAA,6BAAoB,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,6GAA6G;YAC7G,IAAI,oDAAoD,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzE,OAAO,CAAC,qDAAqD,EAAE,kCAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjG,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,IAAA,mBAA2B,EAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,EAAE,iEAAiE;CACzE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inputOtpHealthcheck = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const generator_1 = tslib_1.__importDefault(require("../../migrate-input-otp/generator"));
|
|
7
|
+
const utils_1 = require("../../migrate-input-otp/utils");
|
|
8
|
+
const healthchecks_1 = require("../healthchecks");
|
|
9
|
+
exports.inputOtpHealthcheck = {
|
|
10
|
+
name: 'Input OTP directives',
|
|
11
|
+
async detect(tree, failure) {
|
|
12
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, '/', (file) => {
|
|
13
|
+
if (!file.endsWith('.ts') && !file.endsWith('.html')) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const contents = tree.read(file, 'utf-8');
|
|
17
|
+
if (!contents) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
for (const element of (0, utils_1.findInputOtpElements)(contents)) {
|
|
21
|
+
const attrs = (0, utils_1.parseAttributes)(element.attrs);
|
|
22
|
+
if ((0, utils_1.hasContainerStyles)(attrs)) {
|
|
23
|
+
failure('The containerStyles input was removed. Move custom container styles to the host or input before migrating input-otp.', healthchecks_1.HealthcheckSeverity.Error, false);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if ((0, utils_1.hasHelmAttribute)(attrs)) {
|
|
27
|
+
failure('Legacy <brn-input-otp hlmInputOtp> usage found. Use <hlm-input-otp> instead.', healthchecks_1.HealthcheckSeverity.Error, true);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const { inputAttrs } = (0, utils_1.splitInputAttributes)(attrs);
|
|
31
|
+
if (inputAttrs.length > 0 || !(0, utils_1.hasInputOtpInputDirective)(element.inner)) {
|
|
32
|
+
failure('Brain <brn-input-otp> usage is missing <input brnInputOtpInput /> or still has input-specific attributes on the root.', healthchecks_1.HealthcheckSeverity.Error, true);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
for (const tag of (0, utils_1.findOpeningTags)(contents, 'hlm-input-otp')) {
|
|
36
|
+
if ((0, utils_1.hasContainerStyles)((0, utils_1.parseAttributes)(tag.attrs))) {
|
|
37
|
+
failure('The containerStyles input was removed. Move custom container styles to the host or input before migrating input-otp.', healthchecks_1.HealthcheckSeverity.Error, false);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
fix: async (tree) => {
|
|
43
|
+
await (0, generator_1.default)(tree, { skipFormat: true });
|
|
44
|
+
return true;
|
|
45
|
+
},
|
|
46
|
+
prompt: 'Would you like to migrate input-otp to the directive-based API?',
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=hlm-input-otp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hlm-input-otp.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/generators/healthcheck/healthchecks/hlm-input-otp.ts"],"names":[],"mappings":";;;;AAAA,uCAAkD;AAClD,0FAAgE;AAChE,yDAQuC;AACvC,kDAAwE;AAE3D,QAAA,mBAAmB,GAAgB;IAC/C,IAAI,EAAE,sBAAsB;IAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;QACzB,IAAA,6BAAoB,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,IAAA,4BAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAE7C,IAAI,IAAA,0BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,CACN,sHAAsH,EACtH,kCAAmB,CAAC,KAAK,EACzB,KAAK,CACL,CAAC;oBACF,SAAS;gBACV,CAAC;gBAED,IAAI,IAAA,wBAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CACN,8EAA8E,EAC9E,kCAAmB,CAAC,KAAK,EACzB,IAAI,CACJ,CAAC;oBACF,SAAS;gBACV,CAAC;gBAED,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;gBAEnD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAA,iCAAyB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxE,OAAO,CACN,uHAAuH,EACvH,kCAAmB,CAAC,KAAK,EACzB,IAAI,CACJ,CAAC;gBACH,CAAC;YACF,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,IAAA,uBAAe,EAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;gBAC9D,IAAI,IAAA,0BAAkB,EAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpD,OAAO,CACN,sHAAsH,EACtH,kCAAmB,CAAC,KAAK,EACzB,KAAK,CACL,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,IAAA,mBAAe,EAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,EAAE,iEAAiE;CACzE,CAAC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.migrateBrnInputOtpMaxLength = migrateBrnInputOtpMaxLength;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const visit_files_1 = require("../../utils/visit-files");
|
|
6
|
-
const inputOtpTagPattern = /<(brn-input-otp)
|
|
6
|
+
const inputOtpTagPattern = /<(?:brn|hlm)-input-otp(?![\w-])[^>]*>/g;
|
|
7
7
|
async function migrateBrnInputOtpMaxLength(tree, { skipFormat }) {
|
|
8
8
|
renameMaxLengthInput(tree);
|
|
9
9
|
if (!skipFormat) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/migrate-brn-input-otp-max-length/generator.ts"],"names":[],"mappings":";;AAMA,kEAMC;AAZD,uCAAoD;AACpD,yDAAqD;AAGrD,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/migrate-brn-input-otp-max-length/generator.ts"],"names":[],"mappings":";;AAMA,kEAMC;AAZD,uCAAoD;AACpD,yDAAqD;AAGrD,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AAE7D,KAAK,UAAU,2BAA2B,CAAC,IAAU,EAAE,EAAE,UAAU,EAA+B;IACxG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU;IACvC,IAAA,wBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO;QACR,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QAED,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW;IAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;AAC9G,CAAC;AAED,kBAAe,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devkit_1 = require("@nx/devkit");
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
exports.default = (0, devkit_1.convertNxGenerator)(generator_1.migrateInputOtpGenerator);
|
|
6
|
+
//# sourceMappingURL=compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/migrate-input-otp/compat.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAuD;AAEvD,kBAAe,IAAA,2BAAkB,EAAC,oCAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
import type { MigrateInputOtpGeneratorSchema } from './schema';
|
|
3
|
+
export declare function migrateInputOtpGenerator(tree: Tree, { skipFormat }: MigrateInputOtpGeneratorSchema): Promise<void>;
|
|
4
|
+
export default migrateInputOtpGenerator;
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateInputOtpGenerator = migrateInputOtpGenerator;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const INPUT_OTP_MODULE = '@spartan-ng/brain/input-otp';
|
|
8
|
+
async function migrateInputOtpGenerator(tree, { skipFormat }) {
|
|
9
|
+
migrateMarkup(tree);
|
|
10
|
+
if (!skipFormat) {
|
|
11
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function migrateMarkup(tree) {
|
|
15
|
+
const files = collectFiles(tree);
|
|
16
|
+
const templateOwners = mapTemplateOwners(files);
|
|
17
|
+
const updatedContents = new Map(files);
|
|
18
|
+
const componentsToUpdate = new Set();
|
|
19
|
+
for (const [filePath, content] of files) {
|
|
20
|
+
if (!content.includes('<brn-input-otp')) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const migrated = migrateInputOtpElements(content);
|
|
24
|
+
if (migrated.content !== content) {
|
|
25
|
+
updatedContents.set(filePath, migrated.content);
|
|
26
|
+
}
|
|
27
|
+
if (!migrated.hasBrainUsage) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const owner = filePath.endsWith('.html') ? templateOwners.get(normalizePath(filePath)) : filePath;
|
|
31
|
+
if (owner) {
|
|
32
|
+
componentsToUpdate.add(owner);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
devkit_1.logger.warn(`Could not find the component that owns ${filePath}. Add BrnInputOtpInput to its imports manually.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
for (const componentPath of componentsToUpdate) {
|
|
39
|
+
const content = updatedContents.get(componentPath) ?? tree.read(componentPath, 'utf-8');
|
|
40
|
+
if (!content) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const updatedComponent = hasImportsArray(content) ? ensureInputImport(content) : content;
|
|
44
|
+
if (updatedComponent !== content) {
|
|
45
|
+
updatedContents.set(componentPath, updatedComponent);
|
|
46
|
+
}
|
|
47
|
+
const componentClassName = getComponentClassName(updatedComponent);
|
|
48
|
+
if (!componentClassName) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const modulePath = findDeclaringModule(updatedContents, componentClassName);
|
|
52
|
+
if (!modulePath || modulePath === componentPath) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const moduleContent = updatedContents.get(modulePath) ?? tree.read(modulePath, 'utf-8');
|
|
56
|
+
if (!moduleContent) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const updatedModule = ensureInputImport(moduleContent);
|
|
60
|
+
if (updatedModule !== moduleContent) {
|
|
61
|
+
updatedContents.set(modulePath, updatedModule);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (const [filePath, content] of updatedContents) {
|
|
65
|
+
if (content !== files.get(filePath)) {
|
|
66
|
+
tree.write(filePath, content);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function migrateInputOtpElements(content) {
|
|
71
|
+
const replacements = [];
|
|
72
|
+
let hasBrainUsage = false;
|
|
73
|
+
for (const element of (0, utils_1.findInputOtpElements)(content)) {
|
|
74
|
+
const attrs = (0, utils_1.parseAttributes)(element.attrs);
|
|
75
|
+
// The old container wrapper was removed. Leave the element untouched and let the
|
|
76
|
+
// healthcheck explain how to move custom container styles.
|
|
77
|
+
if ((0, utils_1.hasContainerStyles)(attrs)) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if ((0, utils_1.hasHelmAttribute)(attrs)) {
|
|
81
|
+
const remaining = attrs.filter((attribute) => !(0, utils_1.isHelmAttribute)(attribute));
|
|
82
|
+
const attrsText = (0, utils_1.serializeAttributes)(remaining);
|
|
83
|
+
const text = element.selfClosing
|
|
84
|
+
? `<hlm-input-otp${attrsText} />`
|
|
85
|
+
: `<hlm-input-otp${attrsText}>${element.inner}</hlm-input-otp>`;
|
|
86
|
+
replacements.push({ start: element.start, end: element.end, text });
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
hasBrainUsage = true;
|
|
90
|
+
const { rootAttrs, inputAttrs } = (0, utils_1.splitInputAttributes)(attrs);
|
|
91
|
+
const rootAttrsText = (0, utils_1.serializeAttributes)(rootAttrs);
|
|
92
|
+
const inputAttrsText = (0, utils_1.serializeAttributes)(inputAttrs);
|
|
93
|
+
if (element.selfClosing) {
|
|
94
|
+
replacements.push({
|
|
95
|
+
start: element.start,
|
|
96
|
+
end: element.end,
|
|
97
|
+
text: `<brn-input-otp${rootAttrsText}><input brnInputOtpInput${inputAttrsText} /></brn-input-otp>`,
|
|
98
|
+
});
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
let inner = element.inner;
|
|
102
|
+
if ((0, utils_1.hasInputOtpInputDirective)(inner)) {
|
|
103
|
+
inner = (0, utils_1.addAttributesToExistingInput)(inner, inputAttrs);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
inner += `<input brnInputOtpInput${inputAttrsText} />`;
|
|
107
|
+
}
|
|
108
|
+
replacements.push({
|
|
109
|
+
start: element.start,
|
|
110
|
+
end: element.end,
|
|
111
|
+
text: `<brn-input-otp${rootAttrsText}>${inner}</brn-input-otp>`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
let migrated = content;
|
|
115
|
+
for (const replacement of replacements.sort((a, b) => b.start - a.start)) {
|
|
116
|
+
migrated = migrated.slice(0, replacement.start) + replacement.text + migrated.slice(replacement.end);
|
|
117
|
+
}
|
|
118
|
+
return { content: migrated, hasBrainUsage };
|
|
119
|
+
}
|
|
120
|
+
function collectFiles(tree) {
|
|
121
|
+
const files = new Map();
|
|
122
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, '.', (filePath) => {
|
|
123
|
+
if (!filePath.endsWith('.ts') && !filePath.endsWith('.html')) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const content = tree.read(filePath, 'utf-8');
|
|
127
|
+
if (!content) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (filePath.endsWith('.ts') || content.includes('<brn-input-otp')) {
|
|
131
|
+
files.set(filePath, content);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return files;
|
|
135
|
+
}
|
|
136
|
+
function mapTemplateOwners(files) {
|
|
137
|
+
const owners = new Map();
|
|
138
|
+
for (const [filePath, content] of files) {
|
|
139
|
+
if (!filePath.endsWith('.ts')) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
const templateUrl = /templateUrl\s*:\s*['"]([^'"]+)['"]/g;
|
|
143
|
+
let match;
|
|
144
|
+
while ((match = templateUrl.exec(content))) {
|
|
145
|
+
const templatePath = normalizePath((0, node_path_1.join)((0, node_path_1.dirname)(filePath), match[1]));
|
|
146
|
+
owners.set(templatePath, filePath);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return owners;
|
|
150
|
+
}
|
|
151
|
+
function hasImportsArray(content) {
|
|
152
|
+
return /imports\s*:\s*\[/.test(content);
|
|
153
|
+
}
|
|
154
|
+
function getComponentClassName(content) {
|
|
155
|
+
const componentIndex = content.indexOf('@Component');
|
|
156
|
+
if (componentIndex === -1) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const componentSource = content.slice(componentIndex);
|
|
160
|
+
const classMatch = componentSource.match(/(?:export\s+)?class\s+(\w+)/);
|
|
161
|
+
return classMatch?.[1] ?? null;
|
|
162
|
+
}
|
|
163
|
+
function findDeclaringModule(files, className) {
|
|
164
|
+
const classNamePattern = new RegExp(`\\b${escapeRegExp(className)}\\b`);
|
|
165
|
+
let fallbackModule = null;
|
|
166
|
+
for (const [filePath, content] of files) {
|
|
167
|
+
if (!filePath.endsWith('.ts') || !content.includes('@NgModule')) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const declarations = content.match(/declarations\s*:\s*\[([^\]]*)\]/);
|
|
171
|
+
if (declarations && classNamePattern.test(declarations[1])) {
|
|
172
|
+
return filePath;
|
|
173
|
+
}
|
|
174
|
+
if (classNamePattern.test(content)) {
|
|
175
|
+
fallbackModule ??= filePath;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return fallbackModule;
|
|
179
|
+
}
|
|
180
|
+
function ensureInputImport(content) {
|
|
181
|
+
const initialSpecifiers = getImportSpecifiers(content);
|
|
182
|
+
const importsTokenNames = initialSpecifiers
|
|
183
|
+
.filter((specifier) => specifier.original === 'BrnInputOtpImports')
|
|
184
|
+
.map((specifier) => specifier.local);
|
|
185
|
+
if (importsTokenNames.some((name) => hasImportsToken(content, name))) {
|
|
186
|
+
return content;
|
|
187
|
+
}
|
|
188
|
+
let updated = ensureNamedImport(content, 'BrnInputOtpInput');
|
|
189
|
+
const specifiers = getImportSpecifiers(updated);
|
|
190
|
+
const inputLocal = specifiers.find((specifier) => specifier.original === 'BrnInputOtpInput')?.local;
|
|
191
|
+
if (!inputLocal) {
|
|
192
|
+
return updated;
|
|
193
|
+
}
|
|
194
|
+
const namespace = getNamespaceAlias(updated);
|
|
195
|
+
const relevantNames = specifiers
|
|
196
|
+
.filter((specifier) => ['BrnInputOtp', 'BrnInputOtpSlot', 'BrnInputOtpImports'].includes(specifier.original))
|
|
197
|
+
.map((specifier) => specifier.local);
|
|
198
|
+
updated = updated.replace(/(imports\s*:\s*\[)([^\]]*)(\])/g, (match, start, body, end) => {
|
|
199
|
+
if (new RegExp(`\\b${escapeRegExp(inputLocal)}\\b`).test(body)) {
|
|
200
|
+
return match;
|
|
201
|
+
}
|
|
202
|
+
if (/\bBrnInputOtpImports\b/.test(body)) {
|
|
203
|
+
return match;
|
|
204
|
+
}
|
|
205
|
+
const isRelevant = relevantNames.some((name) => new RegExp(`\\b${escapeRegExp(name)}\\b`).test(body)) ||
|
|
206
|
+
(namespace !== null && body.includes(`${namespace}.`));
|
|
207
|
+
if (!isRelevant) {
|
|
208
|
+
return match;
|
|
209
|
+
}
|
|
210
|
+
const trimmed = body.trimEnd();
|
|
211
|
+
const separator = trimmed.endsWith(',') ? ' ' : ', ';
|
|
212
|
+
return `${start}${trimmed}${separator}${inputLocal ?? 'BrnInputOtpInput'}${end}`;
|
|
213
|
+
});
|
|
214
|
+
return updated;
|
|
215
|
+
}
|
|
216
|
+
function hasImportsToken(content, token) {
|
|
217
|
+
let found = false;
|
|
218
|
+
content.replace(/(imports\s*:\s*\[)([^\]]*)(\])/g, (match, _start, body) => {
|
|
219
|
+
if (new RegExp(`\\b${escapeRegExp(token)}\\b`).test(body)) {
|
|
220
|
+
found = true;
|
|
221
|
+
}
|
|
222
|
+
return match;
|
|
223
|
+
});
|
|
224
|
+
return found;
|
|
225
|
+
}
|
|
226
|
+
function ensureNamedImport(content, name) {
|
|
227
|
+
const namedImport = /import\s*\{([^}]*)\}\s*from\s*['"]@spartan-ng\/brain\/input-otp['"];/;
|
|
228
|
+
const match = content.match(namedImport);
|
|
229
|
+
if (match) {
|
|
230
|
+
const specifiers = match[1].trim();
|
|
231
|
+
const alreadyImported = specifiers.split(',').some((specifier) => {
|
|
232
|
+
const trimmed = specifier.trim();
|
|
233
|
+
if (!trimmed || trimmed.startsWith('type ')) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
return trimmed.split(/\s+as\s+/)[0].trim() === name;
|
|
237
|
+
});
|
|
238
|
+
if (alreadyImported) {
|
|
239
|
+
return content;
|
|
240
|
+
}
|
|
241
|
+
const separator = specifiers.length === 0 ? '' : specifiers.endsWith(',') ? ' ' : ', ';
|
|
242
|
+
return content.replace(namedImport, `import { ${specifiers}${separator}${name} } from '${INPUT_OTP_MODULE}';`);
|
|
243
|
+
}
|
|
244
|
+
if (content.includes(`'${INPUT_OTP_MODULE}'`) || content.includes(`"${INPUT_OTP_MODULE}"`)) {
|
|
245
|
+
return content.replace(/(import[^;]*from\s*['"]@spartan-ng\/brain\/input-otp['"];)/, `$1\nimport { ${name} } from '${INPUT_OTP_MODULE}';`);
|
|
246
|
+
}
|
|
247
|
+
const firstImport = content.match(/import[^;]*;\s*/);
|
|
248
|
+
if (firstImport) {
|
|
249
|
+
return content.replace(firstImport[0], `${firstImport[0]}import { ${name} } from '${INPUT_OTP_MODULE}';\n`);
|
|
250
|
+
}
|
|
251
|
+
return content;
|
|
252
|
+
}
|
|
253
|
+
function getImportSpecifiers(content) {
|
|
254
|
+
const match = content.match(/import\s*\{([^}]*)\}\s*from\s*['"]@spartan-ng\/brain\/input-otp['"];/);
|
|
255
|
+
if (!match) {
|
|
256
|
+
return [];
|
|
257
|
+
}
|
|
258
|
+
return match[1]
|
|
259
|
+
.split(',')
|
|
260
|
+
.map((specifier) => specifier.trim())
|
|
261
|
+
.filter((specifier) => specifier.length > 0 && !specifier.startsWith('type '))
|
|
262
|
+
.map((specifier) => {
|
|
263
|
+
const [original, local] = specifier.split(/\s+as\s+/);
|
|
264
|
+
return {
|
|
265
|
+
original: original.trim(),
|
|
266
|
+
local: (local ?? original).trim(),
|
|
267
|
+
};
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
function getNamespaceAlias(content) {
|
|
271
|
+
const match = content.match(/import\s+\*\s+as\s+(\w+)\s+from\s*['"]@spartan-ng\/brain\/input-otp['"];/);
|
|
272
|
+
return match?.[1] ?? null;
|
|
273
|
+
}
|
|
274
|
+
function normalizePath(filePath) {
|
|
275
|
+
return filePath.replace(/\\/g, '/');
|
|
276
|
+
}
|
|
277
|
+
function escapeRegExp(value) {
|
|
278
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
279
|
+
}
|
|
280
|
+
exports.default = migrateInputOtpGenerator;
|
|
281
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/migrate-input-otp/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "MigrateInputOtp",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"skipFormat": {
|
|
8
|
+
"type": "boolean",
|
|
9
|
+
"default": false,
|
|
10
|
+
"description": "Skip formatting files"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": []
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ParsedAttribute {
|
|
2
|
+
name: string;
|
|
3
|
+
raw: string;
|
|
4
|
+
value: string | null;
|
|
5
|
+
}
|
|
6
|
+
export interface OpeningTag {
|
|
7
|
+
start: number;
|
|
8
|
+
end: number;
|
|
9
|
+
attrs: string;
|
|
10
|
+
selfClosing: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface InputOtpElement {
|
|
13
|
+
start: number;
|
|
14
|
+
end: number;
|
|
15
|
+
openTagEnd: number;
|
|
16
|
+
closeTagStart: number | null;
|
|
17
|
+
attrs: string;
|
|
18
|
+
inner: string;
|
|
19
|
+
selfClosing: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function findInputOtpElements(content: string): InputOtpElement[];
|
|
22
|
+
export declare function findOpeningTags(content: string, tagName: string): OpeningTag[];
|
|
23
|
+
export declare function parseAttributes(attrs: string): ParsedAttribute[];
|
|
24
|
+
export declare function attributeName(attribute: ParsedAttribute): string;
|
|
25
|
+
export declare function serializeAttributes(attributes: ParsedAttribute[]): string;
|
|
26
|
+
export declare function isHelmAttribute(attribute: ParsedAttribute): boolean;
|
|
27
|
+
export declare function hasHelmAttribute(attributes: ParsedAttribute[]): boolean;
|
|
28
|
+
export declare function hasContainerStyles(attributes: ParsedAttribute[]): boolean;
|
|
29
|
+
export declare function splitInputAttributes(attributes: ParsedAttribute[]): {
|
|
30
|
+
rootAttrs: ParsedAttribute[];
|
|
31
|
+
inputAttrs: ParsedAttribute[];
|
|
32
|
+
};
|
|
33
|
+
export declare function renameAttribute(attribute: ParsedAttribute, from: string, to: string): ParsedAttribute;
|
|
34
|
+
export declare function addAttributesToExistingInput(content: string, inputAttrs: ParsedAttribute[]): string;
|
|
35
|
+
export declare function hasInputOtpInputDirective(content: string): boolean;
|