devextreme-schematics 1.12.0 → 1.12.2

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 (34) hide show
  1. package/README.md +15 -14
  2. package/package.json +2 -2
  3. package/src/add-app-template/schema.json +1 -1
  4. package/src/add-layout/files/src/app/app-navigation.ts +3 -1
  5. package/src/add-layout/index.js +33 -5
  6. package/src/add-layout/index.js.map +1 -1
  7. package/src/add-layout/index.ts +42 -6
  8. package/src/add-layout/index_spec.js +1 -1
  9. package/src/add-layout/index_spec.ts +1 -1
  10. package/src/add-sample-views/index_spec.js +2 -1
  11. package/src/add-sample-views/index_spec.js.map +1 -1
  12. package/src/add-sample-views/index_spec.ts +3 -1
  13. package/src/add-view/index_spec.js +2 -1
  14. package/src/add-view/index_spec.js.map +1 -1
  15. package/src/add-view/index_spec.ts +3 -1
  16. package/src/install/schema.json +1 -1
  17. package/src/migrate-config-components/README.md +14 -27
  18. package/src/migrate-config-components/index.d.ts +3 -3
  19. package/src/migrate-config-components/index.js +25 -34
  20. package/src/migrate-config-components/index.js.map +1 -1
  21. package/src/migrate-config-components/index.ts +33 -36
  22. package/src/migrate-config-components/schema.json +4 -3
  23. package/src/migrate-config-components/template-migrator.js +19 -35
  24. package/src/migrate-config-components/template-migrator.js.map +1 -1
  25. package/src/migrate-config-components/template-migrator.ts +19 -32
  26. package/src/utility/change.js +4 -2
  27. package/src/utility/change.js.map +1 -1
  28. package/src/utility/change.ts +7 -2
  29. package/src/utility/latest-versions.js +2 -2
  30. package/src/utility/latest-versions.ts +2 -2
  31. package/src/utility/typescript-resolver.d.ts +12 -0
  32. package/src/utility/typescript-resolver.js +153 -0
  33. package/src/utility/typescript-resolver.js.map +1 -0
  34. package/src/utility/typescript-resolver.ts +144 -0
@@ -4,45 +4,15 @@ import { applyHostAwareTemplateMigrations, applyInlineComponentTemplateMigration
4
4
  import mapping from './mappings/deprecated-config-map.json';
5
5
 
6
6
  export interface Options {
7
- include?: string[];
8
- dry?: boolean;
9
- scriptInclude?: string[];
7
+ include?: string | string[];
8
+ dry?: boolean | string;
9
+ scriptInclude?: string | string[];
10
10
  }
11
11
 
12
12
  export function migrateConfigComponents(options: Options = {}): Rule {
13
- // Accept --include as array or comma-separated string
14
- let include: string[] = ['**/*.html'];
15
- const rawInclude = options.include;
16
- if (Array.isArray(rawInclude) && rawInclude.length) {
17
- include = rawInclude;
18
- } else if (typeof rawInclude === 'string' && rawInclude) {
19
- let str = (rawInclude as string).trim();
20
- if (str.startsWith('[') && str.endsWith(']')) {
21
- str = str.slice(1, -1);
22
- }
23
- include = str.split(',').map((s: string) => s.trim()).filter((s: string) => !!s);
24
- }
25
-
26
- // Coerce string 'true'/'false' to boolean for dry option
27
- let dryFlag: boolean = false;
28
- if (typeof options.dry === 'string') {
29
- dryFlag = options.dry === 'true';
30
- } else {
31
- dryFlag = !!options.dry;
32
- }
33
-
34
- // Accept --script-include as array or comma-separated string
35
- let scriptGlobs: string[] = ['**/*.ts', '**/*.js'];
36
- const rawScriptInclude = options.scriptInclude;
37
- if (Array.isArray(rawScriptInclude) && rawScriptInclude.length) {
38
- scriptGlobs = rawScriptInclude;
39
- } else if (typeof rawScriptInclude === 'string' && rawScriptInclude) {
40
- let str = (rawScriptInclude as string).trim();
41
- if (str.startsWith('[') && str.endsWith(']')) {
42
- str = str.slice(1, -1);
43
- }
44
- scriptGlobs = str.split(',').map((s: string) => s.trim()).filter((s: string) => !!s);
45
- }
13
+ const include = normalizeGlobOption(options.include, ['**/*.html']);
14
+ const dryFlag = normalizeBoolean(options.dry);
15
+ const scriptGlobs = normalizeGlobOption(options.scriptInclude, ['**/*.ts', '**/*.js']);
46
16
 
47
17
  return async (tree: Tree, ctx: SchematicContext): Promise<void> => {
48
18
  ctx.logger.info(`[config-migrator] Starting…`);
@@ -78,3 +48,30 @@ function componentToSelectorGuess(componentName: string): string {
78
48
  const core = componentName.replace(/Component$/, '').replace(/^Dx/, 'dx-');
79
49
  return core.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
80
50
  }
51
+
52
+ function normalizeGlobOption(
53
+ value: Options['include'] | Options['scriptInclude'],
54
+ fallback: string[]
55
+ ): string[] {
56
+ if (Array.isArray(value)) {
57
+ return value.filter(Boolean);
58
+ }
59
+ if (typeof value === 'string' && value.trim()) {
60
+ const trimmed = value.trim();
61
+ const inner = trimmed.startsWith('[') && trimmed.endsWith(']')
62
+ ? trimmed.slice(1, -1)
63
+ : trimmed;
64
+ return inner
65
+ .split(',')
66
+ .map(segment => segment.trim())
67
+ .filter(Boolean);
68
+ }
69
+ return fallback.slice();
70
+ }
71
+
72
+ function normalizeBoolean(value: Options['dry']): boolean {
73
+ if (typeof value === 'string') {
74
+ return value.toLowerCase() === 'true';
75
+ }
76
+ return !!value;
77
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/schema",
3
3
  "$id": "SchematicsDevextremeMigrateConfigComponents",
4
- "title": "Migrate to the latest DevExtreme configuration components.",
4
+ "title": "Migrates DevExtreme Angular applications to named configuration components.",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "include": {
@@ -16,13 +16,14 @@
16
16
  { "type": "array", "items": { "type": "string" } },
17
17
  { "type": "string" }
18
18
  ],
19
- "description": "Glob(s) of TS/JS files to scan for inline templates (default: ['**/*.ts','**/*.js']; set empty ('' or []) to disable)"
19
+ "description": "Glob(s) of TS/JS files to scan for inline templates (default: ['**/*.ts','**/*.js']). To disable, set to '' or []."
20
20
  },
21
21
  "dry": {
22
22
  "oneOf": [
23
23
  { "type": "boolean", "default": false },
24
24
  { "type": "string", "enum": ["true", "false"], "default": "false" }
25
- ]
25
+ ],
26
+ "description": "Run in dry mode to preview changes."
26
27
  }
27
28
  }
28
29
  }
@@ -34,39 +34,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
34
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
- var _a;
38
37
  Object.defineProperty(exports, "__esModule", { value: true });
39
38
  exports.transformTemplate = exports.applyInlineComponentTemplateMigrations = exports.applyHostAwareTemplateMigrations = void 0;
40
39
  const parse5 = __importStar(require("parse5"));
41
- const path = __importStar(require("path"));
42
40
  const picomatch_1 = __importDefault(require("picomatch"));
41
+ const typescript_resolver_1 = require("../utility/typescript-resolver");
43
42
  // Dynamically require TypeScript if available; skip inline template migration if not.
44
- let ts = null;
45
- const tsResolutionErrors = [];
46
- const tsResolutionPaths = [
47
- __dirname,
48
- process.cwd(),
49
- path.dirname(((_a = require.main) === null || _a === void 0 ? void 0 : _a.filename) || ''),
50
- ];
51
- for (const p of tsResolutionPaths) {
52
- try {
53
- // tslint:disable-next-line:no-var-requires
54
- ts = require(require.resolve('typescript', { paths: [p] }));
55
- break;
56
- }
57
- catch (err) {
58
- tsResolutionErrors.push(`Failed to import TypeScript from ${p}: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
59
- }
60
- }
61
- if (!ts) {
62
- try {
63
- // tslint:disable-next-line:no-var-requires
64
- ts = require('typescript');
65
- }
66
- catch (err) {
67
- tsResolutionErrors.push(`Failed to import TypeScript: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
68
- }
69
- }
43
+ // Uses a 3-level fallback: project search -> global search -> temporary install
44
+ const tsResolution = (0, typescript_resolver_1.resolveTypeScript)();
45
+ const ts = tsResolution.ts;
46
+ const tsResolutionErrors = tsResolution.errors;
70
47
  // Transform external HTML template files matched by includeGlobs.
71
48
  function applyHostAwareTemplateMigrations(tree, runner, exec) {
72
49
  return __awaiter(this, void 0, void 0, function* () {
@@ -105,13 +82,20 @@ function applyInlineComponentTemplateMigrations(tree, runner, exec, scriptGlobs)
105
82
  return;
106
83
  }
107
84
  if (!ts) {
108
- exec.logger.warn('[config-migrator] Failed to import TypeScript. Skipping inline template migration.\n' +
109
- 'Resolution attempts and errors:\n' +
110
- tsResolutionErrors.map(e => ' - ' + e).join('\n') + '\n' +
111
- 'To resolve this issue, perform one of the following steps:\n' +
112
- ' 1. Install the "typescript" package in your project root: `npm install typescript --save-dev`\n' +
113
- ' 2. Install the "typescript" package globally on your machine: `npm install -g typescript`\n' +
114
- 'Refer to the README for further troubleshooting information.');
85
+ const errorDetails = tsResolutionErrors.length
86
+ ? `Resolution attempts:\n${tsResolutionErrors.map(e => ' - ' + e).join('\n')}\n`
87
+ : '';
88
+ exec.logger.warn('[config-migrator] Skipping inline template migration.\n' +
89
+ errorDetails +
90
+ 'Failed to import TypeScript from the following locations:\n' +
91
+ ' 1. Project node_modules\n' +
92
+ ' 2. Global node_modules\n' +
93
+ ' 3. Temporary installation (npm cache)\n\n' +
94
+ 'To resolve this issue, install TypeScript manually.\n\n' +
95
+ 'Project installation:\n' +
96
+ ' npm install typescript --save-dev\n\n' +
97
+ 'Global installation:\n' +
98
+ ' npm install -g typescript\n\n');
115
99
  return;
116
100
  }
117
101
  const matcher = (0, picomatch_1.default)(scriptGlobs);
@@ -1 +1 @@
1
- {"version":3,"file":"template-migrator.js","sourceRoot":"","sources":["template-migrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-migrator.js","sourceRoot":"","sources":["template-migrator.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,13 @@
1
1
  import { Tree } from '@angular-devkit/schematics';
2
2
  import * as parse5 from 'parse5';
3
- import * as path from 'path';
4
3
  import picomatch from 'picomatch';
4
+ import { resolveTypeScript } from '../utility/typescript-resolver';
5
5
 
6
6
  // Dynamically require TypeScript if available; skip inline template migration if not.
7
- let ts: any = null;
8
- const tsResolutionErrors: string[] = [];
9
- const tsResolutionPaths = [
10
- __dirname,
11
- process.cwd(),
12
- path.dirname(require.main?.filename || ''),
13
- ];
14
- for (const p of tsResolutionPaths) {
15
- try {
16
- // tslint:disable-next-line:no-var-requires
17
- ts = require(require.resolve('typescript', { paths: [p] }));
18
- break;
19
- } catch (err) {
20
- tsResolutionErrors.push(`Failed to import TypeScript from ${p}: ${err?.message || err}`);
21
- }
22
- }
23
- if (!ts) {
24
- try {
25
- // tslint:disable-next-line:no-var-requires
26
- ts = require('typescript');
27
- } catch (err) {
28
- tsResolutionErrors.push(`Failed to import TypeScript: ${err?.message || err}`);
29
- }
30
- }
7
+ // Uses a 3-level fallback: project search -> global search -> temporary install
8
+ const tsResolution = resolveTypeScript();
9
+ const ts: any = tsResolution.ts;
10
+ const tsResolutionErrors: string[] = tsResolution.errors;
31
11
 
32
12
  // Minimal parse5 types for our usage
33
13
  interface P5Node { [k: string]: any; }
@@ -97,14 +77,21 @@ export async function applyInlineComponentTemplateMigrations(
97
77
  return;
98
78
  }
99
79
  if (!ts) {
80
+ const errorDetails = tsResolutionErrors.length
81
+ ? `Resolution attempts:\n${tsResolutionErrors.map(e => ' - ' + e).join('\n')}\n`
82
+ : '';
100
83
  exec.logger.warn(
101
- '[config-migrator] Failed to import TypeScript. Skipping inline template migration.\n' +
102
- 'Resolution attempts and errors:\n' +
103
- tsResolutionErrors.map(e => ' - ' + e).join('\n') + '\n' +
104
- 'To resolve this issue, perform one of the following steps:\n' +
105
- ' 1. Install the "typescript" package in your project root: `npm install typescript --save-dev`\n' +
106
- ' 2. Install the "typescript" package globally on your machine: `npm install -g typescript`\n' +
107
- 'Refer to the README for further troubleshooting information.'
84
+ '[config-migrator] Skipping inline template migration.\n' +
85
+ errorDetails +
86
+ 'Failed to import TypeScript from the following locations:\n' +
87
+ ' 1. Project node_modules\n' +
88
+ ' 2. Global node_modules\n' +
89
+ ' 3. Temporary installation (npm cache)\n\n' +
90
+ 'To resolve this issue, install TypeScript manually.\n\n' +
91
+ 'Project installation:\n' +
92
+ ' npm install typescript --save-dev\n\n' +
93
+ 'Global installation:\n' +
94
+ ' npm install -g typescript\n\n'
108
95
  );
109
96
  return;
110
97
  }
@@ -21,12 +21,14 @@ function insertItemToArray(host, filePath, node, item, options = { location: 'st
21
21
  }
22
22
  const nodeContent = node.getText();
23
23
  const nodePosition = node.getStart();
24
- const leftBracketPosition = nodePosition + nodeContent.indexOf('[');
24
+ const leftBracketPosition = nodePosition + nodeContent.indexOf('[', nodeContent.lastIndexOf('=') || 0);
25
25
  const rightBracketPosition = nodePosition + nodeContent.lastIndexOf(']');
26
26
  let itemPosition = leftBracketPosition + 1;
27
27
  let fileRecorder = host.beginUpdate(filePath);
28
28
  item = newLine + item;
29
- const isNodeEmpty = !/\[[\s\S]*\S+[\s\S]*\]/m.test(nodeContent);
29
+ const isNodeEmpty = !(nodeContent.includes('=')
30
+ ? /=\s*\[[\s\S]*\S+[\s\S]*\]/m
31
+ : /\[[\s\S]*\S+[\s\S]*\]/m).test(nodeContent);
30
32
  if (isNodeEmpty) {
31
33
  const formattedArray = `[${newLine}]`;
32
34
  fileRecorder.remove(leftBracketPosition, rightBracketPosition - leftBracketPosition + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"change.js","sourceRoot":"","sources":["change.ts"],"names":[],"mappings":";;;AAOA,MAAM,OAAO,GAAG;CACf,CAAC;AAEF,SAAgB,YAAY,CAAC,IAAU,EAAE,OAAiB,EAAE,QAAgB;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAoB,EAAE,EAAE;QACvC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACd,CAAC;AAVD,oCAUC;AAED,gCAAgC;AAChC,2CAA2C;AAC3C,SAAgB,iBAAiB,CAC/B,IAAU,EACV,QAAgB,EAChB,IAAU,EACV,IAAY,EACZ,UAAyC,EAAE,QAAQ,EAAE,OAAO,EAAE;IAE9D,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,YAAY,GAAG,mBAAmB,GAAG,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAEtB,MAAM,WAAW,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,WAAW,EAAE;QACf,MAAM,cAAc,GAAG,IAAI,OAAO,GAAG,CAAC;QACtC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC;QACzF,YAAY,CAAC,UAAU,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC3C;SAAM;QACL,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC9B,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;SACnB;KACF;IAED,YAAY,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,IAAI,CAAC;AACd,CAAC;AAzCD,8CAyCC"}
1
+ {"version":3,"file":"change.js","sourceRoot":"","sources":["change.ts"],"names":[],"mappings":";;;AAOA,MAAM,OAAO,GAAG;CACf,CAAC;AAEF,SAAgB,YAAY,CAAC,IAAU,EAAE,OAAiB,EAAE,QAAgB;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAoB,EAAE,EAAE;QACvC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACd,CAAC;AAVD,oCAUC;AAED,gCAAgC;AAChC,2CAA2C;AAC3C,SAAgB,iBAAiB,CAC/B,IAAU,EACV,QAAgB,EAChB,IAAU,EACV,IAAY,EACZ,UAAyC,EAAE,QAAQ,EAAE,OAAO,EAAE;IAE9D,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,YAAY,GAAG,mBAAmB,GAAG,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAEtB,MAAM,WAAW,GAAG,CAAC,CACnB,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,wBAAwB,CAC3B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEtB,IAAI,WAAW,EAAE;QACf,MAAM,cAAc,GAAG,IAAI,OAAO,GAAG,CAAC;QACtC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC;QACzF,YAAY,CAAC,UAAU,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC3C;SAAM;QACL,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC9B,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;SACnB;KACF;IAED,YAAY,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,IAAI,CAAC;AACd,CAAC;AA9CD,8CA8CC"}
@@ -36,14 +36,19 @@ export function insertItemToArray(
36
36
 
37
37
  const nodeContent = node.getText();
38
38
  const nodePosition = node.getStart();
39
- const leftBracketPosition = nodePosition + nodeContent.indexOf('[');
39
+ const leftBracketPosition = nodePosition + nodeContent.indexOf('[', nodeContent.lastIndexOf('=') || 0);
40
40
  const rightBracketPosition = nodePosition + nodeContent.lastIndexOf(']');
41
41
  let itemPosition = leftBracketPosition + 1;
42
42
  let fileRecorder = host.beginUpdate(filePath);
43
43
 
44
44
  item = newLine + item;
45
45
 
46
- const isNodeEmpty = !/\[[\s\S]*\S+[\s\S]*\]/m.test(nodeContent);
46
+ const isNodeEmpty = !(
47
+ nodeContent.includes('=')
48
+ ? /=\s*\[[\s\S]*\S+[\s\S]*\]/m
49
+ : /\[[\s\S]*\S+[\s\S]*\]/m
50
+ ).test(nodeContent);
51
+
47
52
  if (isNodeEmpty) {
48
53
  const formattedArray = `[${newLine}]`;
49
54
  fileRecorder.remove(leftBracketPosition, rightBracketPosition - leftBracketPosition + 1);
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.latestVersions = void 0;
4
4
  // TODO: implement
5
5
  exports.latestVersions = {
6
- 'devextreme': '25.1.6',
7
- 'devextreme-angular': '25.1.6',
6
+ 'devextreme': '25.1.7',
7
+ 'devextreme-angular': '25.1.7',
8
8
  'devextreme-cli': 'latest',
9
9
  'sass-embedded': '1.66.0'
10
10
  };
@@ -1,7 +1,7 @@
1
1
  // TODO: implement
2
2
  export const latestVersions = {
3
- 'devextreme': '25.1.6',
4
- 'devextreme-angular': '25.1.6',
3
+ 'devextreme': '25.1.7',
4
+ 'devextreme-angular': '25.1.7',
5
5
  'devextreme-cli': 'latest',
6
6
  'sass-embedded': '1.66.0'
7
7
  };
@@ -0,0 +1,12 @@
1
+ export interface TypeScriptResolutionResult {
2
+ ts: any | null;
3
+ resolutionMethod: 'project' | 'global' | 'temporary' | null;
4
+ errors: string[];
5
+ }
6
+ /**
7
+ * Resolves TypeScript with a 3-level fallback strategy:
8
+ * 1. Project search - look in the user's project node_modules
9
+ * 2. Global search - look in global node_modules
10
+ * 3. Temporary install - use npx to temporarily install typescript
11
+ */
12
+ export declare function resolveTypeScript(): TypeScriptResolutionResult;
@@ -0,0 +1,153 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.resolveTypeScript = void 0;
27
+ const child_process_1 = require("child_process");
28
+ const path = __importStar(require("path"));
29
+ const fs = __importStar(require("fs"));
30
+ /**
31
+ * Resolves TypeScript with a 3-level fallback strategy:
32
+ * 1. Project search - look in the user's project node_modules
33
+ * 2. Global search - look in global node_modules
34
+ * 3. Temporary install - use npx to temporarily install typescript
35
+ */
36
+ function resolveTypeScript() {
37
+ const errors = [];
38
+ try {
39
+ const projectTs = tryResolveFromProject();
40
+ if (projectTs) {
41
+ return {
42
+ ts: projectTs,
43
+ resolutionMethod: 'project',
44
+ errors: []
45
+ };
46
+ }
47
+ }
48
+ catch (err) {
49
+ errors.push(`Failed to import TypeScript from project: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
50
+ }
51
+ try {
52
+ const globalTs = tryResolveFromGlobal();
53
+ if (globalTs) {
54
+ return {
55
+ ts: globalTs,
56
+ resolutionMethod: 'global',
57
+ errors: []
58
+ };
59
+ }
60
+ }
61
+ catch (err) {
62
+ errors.push(`Failed to import TypeScript from global node_modules: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
63
+ }
64
+ try {
65
+ const tempTs = tryResolveViaTemporaryInstall();
66
+ if (tempTs) {
67
+ return {
68
+ ts: tempTs,
69
+ resolutionMethod: 'temporary',
70
+ errors: []
71
+ };
72
+ }
73
+ }
74
+ catch (err) {
75
+ errors.push(`Failed to import TypeScript from temporary installation (npm cache): ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
76
+ }
77
+ return {
78
+ ts: null,
79
+ resolutionMethod: null,
80
+ errors
81
+ };
82
+ }
83
+ exports.resolveTypeScript = resolveTypeScript;
84
+ function tryResolveFromProject() {
85
+ var _a;
86
+ const searchPaths = [
87
+ process.cwd(),
88
+ path.dirname(((_a = require.main) === null || _a === void 0 ? void 0 : _a.filename) || ''),
89
+ ];
90
+ for (const searchPath of searchPaths) {
91
+ try {
92
+ const tsPath = require.resolve('typescript', { paths: [searchPath] });
93
+ // tslint:disable-next-line:no-var-requires
94
+ return require(tsPath);
95
+ }
96
+ catch (_b) {
97
+ // Continue to next path
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ function tryResolveFromGlobal() {
103
+ try {
104
+ const globalPath = (0, child_process_1.execSync)('npm root -g', { encoding: 'utf8' }).trim();
105
+ const typescriptPath = path.join(globalPath, 'typescript');
106
+ if (fs.existsSync(typescriptPath)) {
107
+ // tslint:disable-next-line:no-var-requires
108
+ return require(typescriptPath);
109
+ }
110
+ }
111
+ catch (_a) {
112
+ // Fall through
113
+ }
114
+ return null;
115
+ }
116
+ function tryResolveViaTemporaryInstall() {
117
+ try {
118
+ const tmpDir = path.join(require('os').tmpdir(), 'devextreme-schematics-ts-' + Date.now());
119
+ fs.mkdirSync(tmpDir, { recursive: true });
120
+ const packageJson = {
121
+ name: 'temp-typescript-resolver',
122
+ version: '1.0.0',
123
+ dependencies: {
124
+ typescript: 'latest'
125
+ }
126
+ };
127
+ fs.writeFileSync(path.join(tmpDir, 'package.json'), JSON.stringify(packageJson, null, 2));
128
+ (0, child_process_1.execSync)('npm install --silent --no-progress', {
129
+ cwd: tmpDir,
130
+ stdio: 'ignore',
131
+ timeout: 30000
132
+ });
133
+ const typescriptPath = path.join(tmpDir, 'node_modules', 'typescript');
134
+ if (fs.existsSync(typescriptPath)) {
135
+ // tslint:disable-next-line:no-var-requires
136
+ const ts = require(typescriptPath);
137
+ setTimeout(() => {
138
+ try {
139
+ fs.rmSync(tmpDir, { recursive: true, force: true });
140
+ }
141
+ catch (_a) {
142
+ // Ignore cleanup errors
143
+ }
144
+ }, 5000);
145
+ return ts;
146
+ }
147
+ }
148
+ catch (_a) {
149
+ // Fall through
150
+ }
151
+ return null;
152
+ }
153
+ //# sourceMappingURL=typescript-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-resolver.js","sourceRoot":"","sources":["typescript-resolver.ts"],"names":[],"mappings":"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"}