@arcgis/codemod 5.2.0-next.8 → 5.2.0-next.9

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.
@@ -0,0 +1,354 @@
1
+ import { path as T } from "@arcgis/components-build-utils";
2
+ import { SyntaxKind as g } from "ts-morph";
3
+ import { g as x } from "./cli-DPzs7oKq.js";
4
+ import { ModuleResolutionKind as D } from "typescript";
5
+ import { capitalize as S } from "@arcgis/toolkit/string";
6
+ import { log as q } from "@arcgis/toolkit/log";
7
+ function w(e) {
8
+ const n = e.typeScriptConfig?.compilerOptions?.moduleResolution ?? D.Bundler;
9
+ return n >= D.Node16 && n <= D.NodeNext;
10
+ }
11
+ function b(e) {
12
+ return C(e.getFilePath());
13
+ }
14
+ function C(e) {
15
+ return T.relative(process.cwd(), e);
16
+ }
17
+ function J(e, n) {
18
+ const o = {};
19
+ K(e);
20
+ const { specifiers: l, names: u, lastImportIndex: a } = A(e), d = [], t = {};
21
+ let c = w(x.project.projectData);
22
+ for (const [i, m] of Object.entries(n)) {
23
+ let s = l.get(i) ?? (i.startsWith(".") ? l.get(
24
+ T.relative(e.getDirectoryPath(), T.resolve(x.project.projectData.cwd, i))
25
+ ) : void 0);
26
+ if (s === void 0) {
27
+ const f = l.get(`${i}.js`);
28
+ f !== void 0 && (c = !0, s === void 0 ? s = f : s = [...s, ...f]);
29
+ }
30
+ for (const [f, y] of Object.entries(m)) {
31
+ const N = Array.isArray(y) ? y : [y];
32
+ for (const I of N)
33
+ I.do === "deprecate" ? P(f, i, o, s) : I.do === "add" ? E(i, f, I, s, d, t, u) : I.do === "rename" && W(i, f, I, s, d, t, u);
34
+ }
35
+ }
36
+ const p = Object.entries(t);
37
+ let r = a;
38
+ for (let i = 0; i < p.length; i += 1) {
39
+ const [m, s] = p[i], f = m.startsWith(".") ? M(
40
+ T.relative(e.getDirectoryPath(), T.resolve(x.project.projectData.cwd, m))
41
+ ) : m, y = c && f.startsWith("@arcgis/core") ? `${f}.js` : f, N = s.afterDeclaration === void 0 ? r : s.afterDeclaration.getChildIndex() + 1;
42
+ if (s.named.length > 0) {
43
+ let I = !0;
44
+ for (let v = 0; v < s.named.length; v += 1)
45
+ I &&= s.named[v].isTypeOnly;
46
+ e.insertImportDeclaration(N, {
47
+ isTypeOnly: I,
48
+ moduleSpecifier: y,
49
+ namedImports: s.named.map((v) => ({
50
+ name: v.name,
51
+ alias: v.alias,
52
+ isTypeOnly: v.isTypeOnly && !I
53
+ }))
54
+ }), r += 1;
55
+ }
56
+ s.default !== void 0 && (e.insertImportDeclaration(N, {
57
+ isTypeOnly: s.default.isTypeOnly,
58
+ moduleSpecifier: y,
59
+ defaultImport: s.default.name
60
+ }), r += 1), s["*"] !== void 0 && (e.insertImportDeclaration(N, {
61
+ isTypeOnly: s["*"].isTypeOnly,
62
+ moduleSpecifier: y,
63
+ namespaceImport: s["*"].name
64
+ }), r += 1);
65
+ }
66
+ if (Object.keys(o).length > 0) {
67
+ const i = Object.entries(o).map(([m, s]) => `${s.join(", ")} from ${m}`).join("; ");
68
+ q("warn", b(e), `Deprecated API usages found: ${i}`);
69
+ }
70
+ return d;
71
+ }
72
+ function K(e) {
73
+ const n = e.getChildSyntaxList()?.getFirstChild();
74
+ if (j === n)
75
+ return;
76
+ j = n, h.clear();
77
+ const o = /* @__PURE__ */ new Set();
78
+ l(e);
79
+ function l(u) {
80
+ for (const a of u.getStatements())
81
+ if (a.isKind(g.ImportDeclaration)) {
82
+ const d = a.getDefaultImport(), t = a.getNamespaceImport(), c = a.getNamedImports();
83
+ d && o.add(d.getText()), t && o.add(t.getText());
84
+ for (const p of c)
85
+ o.add(p.getAliasNode()?.getText() ?? p.getName());
86
+ } else a.isKind(g.ImportEqualsDeclaration) ? o.add(a.getName()) : a.isKind(g.ModuleDeclaration) ? l(a) : u.forEachDescendant((d) => {
87
+ if (!d.isKind(g.Identifier))
88
+ return;
89
+ const t = d.getParent();
90
+ if (t.isKind(g.QualifiedName) && t.getLeft() !== d || t.isKind(g.PropertyAccessExpression) && t.getExpression() !== d || (t.isKind(g.PropertyDeclaration) || t.isKind(g.PropertySignature) || t.isKind(g.PropertyAssignment)) && t.getNameNode() === d)
91
+ return;
92
+ const c = d.getText();
93
+ o.has(c) || h.add(d.getText());
94
+ });
95
+ }
96
+ }
97
+ function A(e) {
98
+ const n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), l = e.getStatements();
99
+ let u;
100
+ for (let d = 0; d < l.length; d += 1) {
101
+ const t = l[d];
102
+ if (!t.isKind(g.ImportDeclaration)) {
103
+ const f = t.getName?.();
104
+ f !== void 0 && o.add(f);
105
+ continue;
106
+ }
107
+ u = t;
108
+ const c = t.getModuleSpecifierValue(), p = n.get(c);
109
+ p === void 0 ? n.set(c, [t]) : p.push(t);
110
+ const r = t.getImportClause();
111
+ if (r === void 0)
112
+ continue;
113
+ const i = r.getDefaultImport()?.getText();
114
+ i !== void 0 && o.add(i);
115
+ const m = r.getNamedBindings();
116
+ if (m !== void 0)
117
+ if (m.isKind(g.NamedImports))
118
+ for (const s of m.getElements()) {
119
+ const f = s.getName();
120
+ o.add(f);
121
+ }
122
+ else {
123
+ const s = m.getName();
124
+ o.add(s);
125
+ }
126
+ }
127
+ const a = u === void 0 ? 0 : u.getChildIndex() + 1;
128
+ return { specifiers: n, names: o, lastImportIndex: a };
129
+ }
130
+ function P(e, n, o, l) {
131
+ if (l !== void 0) {
132
+ if (e === "default")
133
+ for (const u of l) {
134
+ const a = u.getDefaultImport();
135
+ if (a !== void 0) {
136
+ o[n] ??= [], o[n].push(a.getText());
137
+ return;
138
+ }
139
+ }
140
+ else if (e === "*")
141
+ for (const u of l) {
142
+ const a = u.getNamespaceImport();
143
+ if (a !== void 0) {
144
+ o[n] ??= [], o[n].push(a.getText());
145
+ return;
146
+ }
147
+ }
148
+ else
149
+ for (const u of l)
150
+ for (const a of u.getNamedImports())
151
+ if (a.getName() === e) {
152
+ o[n] ??= [], o[n].push(a.getName());
153
+ return;
154
+ }
155
+ }
156
+ }
157
+ function E(e, n, o, l, u, a, d) {
158
+ const t = n === "default";
159
+ if (t || n === "*") {
160
+ if (l !== void 0)
161
+ for (const p of l) {
162
+ const r = t ? p.getDefaultImport() : p.getNamespaceImport();
163
+ if (r !== void 0) {
164
+ o.isTypeOnly !== !0 && p.isTypeOnly() && p.setIsTypeOnly(!1), u.push({
165
+ specifier: e,
166
+ requestedName: n,
167
+ actualName: r.getText()
168
+ });
169
+ return;
170
+ }
171
+ }
172
+ const c = O(o.preferredAlias, void 0, e, d);
173
+ u.push({ specifier: e, requestedName: n, actualName: c }), a[e] ??= {
174
+ afterDeclaration: void 0,
175
+ named: [],
176
+ default: void 0,
177
+ "*": void 0
178
+ }, a[e].afterDeclaration ??= l?.[0], a[e][n] = {
179
+ name: c,
180
+ isTypeOnly: o.isTypeOnly === !0
181
+ };
182
+ } else {
183
+ let c, p;
184
+ if (l !== void 0) {
185
+ let m = !1;
186
+ for (const s of l)
187
+ if (s.getNamespaceImport() === void 0) {
188
+ p ??= s, c ??= s.isTypeOnly() && s.getDefaultImport() === void 0 ? s : void 0;
189
+ for (const f of s.getNamedImports())
190
+ if (f.getNameNode().getText() === n) {
191
+ if (m = !0, o.isTypeOnly !== !0) {
192
+ if (f.isTypeOnly())
193
+ f.setIsTypeOnly(!1);
194
+ else if (s.isTypeOnly()) {
195
+ for (const y of s.getNamedImports())
196
+ y !== f && y.setIsTypeOnly(!0);
197
+ s.setIsTypeOnly(!1);
198
+ }
199
+ }
200
+ u.push({
201
+ specifier: e,
202
+ requestedName: n,
203
+ actualName: f.getAliasNode()?.getText() ?? n
204
+ });
205
+ break;
206
+ }
207
+ }
208
+ if (m)
209
+ return;
210
+ }
211
+ const r = O(
212
+ o.preferAlias === !0 ? o.preferredAlias : n,
213
+ o.preferAlias === !0 ? n : o.preferredAlias,
214
+ e,
215
+ d
216
+ ), i = n === r ? void 0 : r;
217
+ if (o.isTypeOnly && c !== void 0)
218
+ c.addNamedImport({
219
+ name: n,
220
+ alias: i
221
+ });
222
+ else if (p !== void 0 && (!o.isTypeOnly || p.getDefaultImport() === void 0)) {
223
+ if (p.isTypeOnly() && !o.isTypeOnly) {
224
+ p.setIsTypeOnly(!1);
225
+ for (const m of p.getNamedImports())
226
+ m.setIsTypeOnly(!0);
227
+ }
228
+ p.addNamedImport({
229
+ name: n,
230
+ alias: i,
231
+ isTypeOnly: o.isTypeOnly && !p.isTypeOnly()
232
+ });
233
+ } else
234
+ a[e] ??= {
235
+ afterDeclaration: void 0,
236
+ named: [],
237
+ default: void 0,
238
+ "*": void 0
239
+ }, a[e].afterDeclaration ??= l?.[0], a[e].named.push({
240
+ name: n,
241
+ alias: i,
242
+ isTypeOnly: o.isTypeOnly === !0
243
+ });
244
+ u.push({ specifier: e, requestedName: n, actualName: r });
245
+ }
246
+ }
247
+ function W(e, n, o, l, u, a, d) {
248
+ if (l === void 0)
249
+ return;
250
+ const t = o.name ?? n, c = o.specifier ?? e, p = n === "default";
251
+ if (p || n === "*") {
252
+ for (const r of l) {
253
+ const i = p ? r.getDefaultImport() : r.getNamespaceImport();
254
+ if (i === void 0)
255
+ continue;
256
+ if (o.isTypeOnly === !1 && r.isTypeOnly()) {
257
+ r.setIsTypeOnly(!1);
258
+ for (const s of r.getNamedImports())
259
+ s.setIsTypeOnly(!0);
260
+ }
261
+ let m = t;
262
+ if (t !== n) {
263
+ const s = O(t, n, e, d);
264
+ t === s ? i.rename(t) : m = i.getText();
265
+ } else
266
+ m = i.getText();
267
+ e !== c && (r.getNamedImports().length === 0 ? r.setModuleSpecifier(c) : (p ? r.removeDefaultImport() : r.removeNamespaceImport(), a[c] ??= {
268
+ afterDeclaration: void 0,
269
+ named: [],
270
+ default: void 0,
271
+ "*": void 0
272
+ }, a[c].afterDeclaration ??= r, a[c][n] = {
273
+ name: m,
274
+ isTypeOnly: r.isTypeOnly()
275
+ })), u.push({
276
+ specifier: c,
277
+ requestedName: n,
278
+ actualName: m
279
+ });
280
+ break;
281
+ }
282
+ return;
283
+ }
284
+ for (const r of l)
285
+ for (const i of r.getNamedImports()) {
286
+ if (i.getNameNode().getText() !== n)
287
+ continue;
288
+ if (o.isTypeOnly === !1) {
289
+ if (i.isTypeOnly())
290
+ i.setIsTypeOnly(!1);
291
+ else if (r.isTypeOnly()) {
292
+ r.setIsTypeOnly(!1);
293
+ for (const f of r.getNamedImports())
294
+ f !== i && f.setIsTypeOnly(!0);
295
+ }
296
+ }
297
+ let m = t;
298
+ const s = i.getAliasNode();
299
+ if (t !== n)
300
+ if (s === void 0) {
301
+ const f = O(t, n, e, d);
302
+ t === f ? i.getNameNode().asKind(g.Identifier)?.rename(t) : (i.setAlias(n), i.getNameNode().replaceWithText(t), m = n);
303
+ } else
304
+ i.getNameNode().replaceWithText(t), m = s.getText();
305
+ if (c !== e) {
306
+ const y = (w(x.project.projectData) || r.getModuleSpecifierValue().endsWith(".js")) && c.startsWith("@arcgis/core") ? `${c}.js` : c;
307
+ r.getNamedImports().length === 1 && r.getDefaultImport() === void 0 ? r.setModuleSpecifier(y) : (a[y] ??= {
308
+ afterDeclaration: void 0,
309
+ named: [],
310
+ default: void 0,
311
+ "*": void 0
312
+ }, a[y].afterDeclaration ??= l?.[0], a[y].named.push({
313
+ name: t,
314
+ alias: t === m ? void 0 : m,
315
+ isTypeOnly: i.isTypeOnly()
316
+ }), i.remove());
317
+ }
318
+ u.push({
319
+ specifier: c,
320
+ requestedName: t,
321
+ actualName: s?.getText() ?? m
322
+ });
323
+ return;
324
+ }
325
+ }
326
+ function O(e, n, o, l) {
327
+ if (e !== void 0) {
328
+ if (!l.has(e) && !h.has(e))
329
+ return l.add(e), e;
330
+ if (n !== void 0)
331
+ return O(n, void 0, o, l);
332
+ }
333
+ o.startsWith("@arcgis/core") && (o = `arcgisCore${o.slice(12)}`);
334
+ const u = o.split("/");
335
+ let a = e ?? "";
336
+ for (let d = u.length - 1; d >= 0; d--) {
337
+ const t = u[d].replaceAll($, "");
338
+ if (t !== a && (a = t + S(a), !l.has(a) && !h.has(a)))
339
+ return l.add(a), a;
340
+ }
341
+ for (let d = 2; ; d++) {
342
+ const t = a + d;
343
+ if (!l.has(t) && !h.has(t))
344
+ return l.add(t), t;
345
+ }
346
+ }
347
+ const $ = /[^a-zA-Z0-9$_]/gu, M = (e) => e.startsWith(".") ? e : `./${e}`, h = /* @__PURE__ */ new Set();
348
+ let j;
349
+ export {
350
+ b as a,
351
+ C as f,
352
+ J as p,
353
+ K as u
354
+ };
@@ -1,16 +1,16 @@
1
1
  import { log as h } from "@arcgis/toolkit/log";
2
- import { Command as $ } from "@commander-js/extra-typings";
3
- import { statSync as K } from "node:fs";
4
- import { getCwd as I, path as e, existsAsync as U, gitIgnoreFileToGlobs as L, asyncFindPath as E, toPosixPathSeparators as N, asyncRetrievePackageJson as J } from "@arcgis/components-build-utils";
2
+ import { Command as K } from "@commander-js/extra-typings";
3
+ import { statSync as U } from "node:fs";
4
+ import { getCwd as E, path as e, existsAsync as B, gitIgnoreFileToGlobs as T, asyncFindPath as J, toPosixPathSeparators as W, asyncRetrievePackageJson as M } from "@arcgis/components-build-utils";
5
5
  import "ts-morph";
6
- import i from "typescript";
7
- import { glob as _ } from "tinyglobby";
8
- import { identity as W } from "@arcgis/toolkit/function";
9
- import { styleText as B } from "node:util";
6
+ import a from "typescript";
7
+ import { glob as $ } from "tinyglobby";
8
+ import { identity as L } from "@arcgis/toolkit/function";
9
+ import { styleText as S } from "node:util";
10
10
  const q = (t, o, n) => {
11
11
  const r = t[o];
12
- return r ? typeof r == "function" ? r() : Promise.resolve(r) : new Promise((a, c) => {
13
- (typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(c.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + o + (o.split("/").length !== n ? ". Note that variables only represent file names one level deep." : ""))));
12
+ return r ? typeof r == "function" ? r() : Promise.resolve(r) : new Promise((c, i) => {
13
+ (typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(i.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + o + (o.split("/").length !== n ? ". Note that variables only represent file names one level deep." : ""))));
14
14
  });
15
15
  }, ge = {
16
16
  allowImportingTsExtensions: !0,
@@ -22,13 +22,13 @@ const q = (t, o, n) => {
22
22
  forceConsistentCasingInFileNames: !1,
23
23
  isolatedModules: !1,
24
24
  isolatedDeclarations: !1,
25
- jsx: i.JsxEmit.Preserve,
25
+ jsx: a.JsxEmit.Preserve,
26
26
  lib: ["lib.esnext.d.ts", "lib.dom.d.ts"],
27
- module: i.ModuleKind.ESNext,
28
- moduleResolution: i.ModuleResolutionKind.Bundler,
29
- moduleDetection: i.ModuleDetectionKind.Auto,
27
+ module: a.ModuleKind.ESNext,
28
+ moduleResolution: a.ModuleResolutionKind.Bundler,
29
+ moduleDetection: a.ModuleDetectionKind.Auto,
30
30
  strict: !1,
31
- target: i.ScriptTarget.ESNext,
31
+ target: a.ScriptTarget.ESNext,
32
32
  resolveJsonModule: !0,
33
33
  esModuleInterop: !0
34
34
  }, j = {
@@ -43,13 +43,13 @@ async function z() {
43
43
  }
44
44
  async function H() {
45
45
  const t = [];
46
- let o, n = I(), r = e.dirname(n);
46
+ let o, n = E(), r = e.dirname(n);
47
47
  do {
48
48
  o = r;
49
- const a = e.join(o, ".gitignore");
50
- if (await U(a)) {
51
- n = e.dirname(a);
52
- const w = e.relative(n, I()).split("/"), y = L(a);
49
+ const c = e.join(o, ".gitignore");
50
+ if (await B(c)) {
51
+ n = e.dirname(c);
52
+ const w = e.relative(n, E()).split("/"), y = T(c);
53
53
  for (const f of y) {
54
54
  const m = (f.startsWith("!") ? f.slice(1) : f).split("*")[0].split("/");
55
55
  let p = !0;
@@ -66,7 +66,7 @@ async function H() {
66
66
  return { ignorePatterns: t, globRoot: n };
67
67
  }
68
68
  async function Q(t) {
69
- return (await _("**/.gitignore", {
69
+ return (await $("**/.gitignore", {
70
70
  // Gitignore files are unlikely to be symbolic links
71
71
  followSymbolicLinks: !1,
72
72
  // Don't look for ignore files in these places for speed:
@@ -81,15 +81,15 @@ async function Q(t) {
81
81
  // Not applicable for our glob pattern
82
82
  expandDirectories: !1
83
83
  })).flatMap((n) => {
84
- const r = e.relative(t, e.dirname(n)), a = L(n), c = [];
85
- for (const w of a)
86
- w.startsWith("!") || c.push(e.join(r, w));
87
- return c;
84
+ const r = e.relative(t, e.dirname(n)), c = T(n), i = [];
85
+ for (const w of c)
86
+ w.startsWith("!") || i.push(e.join(r, w));
87
+ return i;
88
88
  });
89
89
  }
90
90
  const V = ["js", "jsx", "mjs", "cjs"], X = ["ts", "tsx", "mts", "cts"], Y = ["json"], Z = `**/*.{${[...V, ...X, ...Y].join(",")}}`;
91
91
  async function ee() {
92
- const t = await z(), o = e.join(process.cwd(), Z), n = await _(o, {
92
+ const t = await z(), o = e.join(process.cwd(), Z), n = await $(o, {
93
93
  cwd: t.globRoot,
94
94
  ignore: t.ignorePatterns,
95
95
  // The files we are looking for are unlikely to be symbolic links
@@ -102,9 +102,9 @@ async function ee() {
102
102
  });
103
103
  let r = e.relative(t.globRoot, process.cwd());
104
104
  r !== "" && (r += "/");
105
- const a = e.join(e.resolve(t.globRoot), "/"), c = a.length + r.length, w = [], y = [], f = /* @__PURE__ */ new Set();
105
+ const c = e.join(e.resolve(t.globRoot), "/"), i = c.length + r.length, w = [], y = [], f = /* @__PURE__ */ new Set();
106
106
  for (const s of n) {
107
- const l = a + s;
107
+ const l = c + s;
108
108
  if (s.endsWith(".json")) {
109
109
  const d = e.basename(s);
110
110
  d === "package.json" ? w.push(l) : (d.startsWith("tsconfig.") || d.startsWith("jsconfig.")) && y.push(l);
@@ -113,57 +113,57 @@ async function ee() {
113
113
  f.add(d);
114
114
  }
115
115
  }
116
- let v = await E("tsconfig.json", e.dirname(process.cwd()));
117
- v !== void 0 && (v = N(v), y.push(v)), y.sort((s, l) => {
116
+ let v = await J("tsconfig.json", e.dirname(process.cwd()));
117
+ v !== void 0 && (v = W(v), y.push(v)), y.sort((s, l) => {
118
118
  const d = l.split("/").length - s.split("/").length;
119
119
  if (d !== 0)
120
120
  return d;
121
121
  const b = e.basename(s), u = e.basename(l);
122
122
  return b === u ? 0 : b.endsWith("tsconfig.json") ? -1 : u.endsWith("tsconfig.json") ? 1 : b.endsWith("tsconfig.build.json") ? -1 : u.endsWith("tsconfig.build.json") ? 1 : b.localeCompare(u);
123
123
  });
124
- let m = await E("package.json");
125
- m !== void 0 && (m = N(m));
124
+ let m = await J("package.json");
125
+ m !== void 0 && (m = W(m));
126
126
  const p = [], g = /* @__PURE__ */ new Set();
127
- return await Promise.all(
127
+ if (await Promise.all(
128
128
  y.map(async (s) => {
129
- const l = e.relative(process.cwd(), s), d = i.readConfigFile(s, i.sys.readFile);
129
+ const l = e.relative(process.cwd(), s), d = a.readConfigFile(s, a.sys.readFile);
130
130
  if (d.error !== void 0) {
131
131
  h(
132
132
  "error",
133
133
  l,
134
- i.formatDiagnosticsWithColorAndContext([d.error], {
135
- getCanonicalFileName: W,
136
- getCurrentDirectory: i.sys.getCurrentDirectory,
137
- getNewLine: () => i.sys.newLine
134
+ a.formatDiagnosticsWithColorAndContext([d.error], {
135
+ getCanonicalFileName: L,
136
+ getCurrentDirectory: a.sys.getCurrentDirectory,
137
+ getNewLine: () => a.sys.newLine
138
138
  })
139
139
  );
140
140
  return;
141
141
  }
142
- const b = e.basename(l), u = i.parseJsonConfigFileContent(
142
+ const b = e.basename(l), u = a.parseJsonConfigFileContent(
143
143
  d.config,
144
- i.sys,
144
+ a.sys,
145
145
  e.dirname(s),
146
146
  void 0,
147
147
  b
148
- ), T = 18003;
149
- u.errors.filter((P) => P.code !== T).length > 0 && h(
148
+ ), A = 18003;
149
+ u.errors.filter((P) => P.code !== A).length > 0 && h(
150
150
  "warn",
151
151
  l,
152
- i.formatDiagnosticsWithColorAndContext(u.errors, {
153
- getCanonicalFileName: W,
154
- getCurrentDirectory: i.sys.getCurrentDirectory,
155
- getNewLine: () => i.sys.newLine
152
+ a.formatDiagnosticsWithColorAndContext(u.errors, {
153
+ getCanonicalFileName: L,
154
+ getCurrentDirectory: a.sys.getCurrentDirectory,
155
+ getNewLine: () => a.sys.newLine
156
156
  })
157
157
  );
158
- const F = s === v, A = l === b, k = u.fileNames.filter((P) => {
159
- const D = P.slice(c);
160
- return f.delete(D) ? (g.add(D), !0) : g.has(D) || D.endsWith(".json") || P.includes("node_modules") ? !1 : !F;
158
+ const R = s === v, G = l === b, I = u.fileNames.filter((P) => {
159
+ const D = P.slice(i);
160
+ return f.delete(D) ? (g.add(D), !0) : g.has(D) || D.endsWith(".json") || P.includes("node_modules") ? !1 : !R;
161
161
  });
162
- if (k.length === 0)
162
+ if (I.length === 0)
163
163
  return;
164
- y.length === 1 && (F || A) && f.clear();
165
- const R = e.dirname(s);
166
- let C = R, x = m;
164
+ y.length === 1 && (R || G) && f.clear();
165
+ const F = e.dirname(s);
166
+ let C = F, x = m;
167
167
  do {
168
168
  const P = e.join(C, "package.json");
169
169
  if (w.includes(P)) {
@@ -171,37 +171,43 @@ async function ee() {
171
171
  break;
172
172
  }
173
173
  } while (C !== t.globRoot && (C = e.dirname(C)));
174
- const G = x === void 0 ? void 0 : { filePath: x, contents: await J(e.dirname(x)) }, O = {
174
+ const N = x === void 0 ? void 0 : { filePath: x, contents: await M(e.dirname(x)) }, O = {
175
175
  typeScriptConfig: {
176
176
  filePath: s,
177
177
  compilerOptions: u.options
178
178
  },
179
- packageJson: G,
180
- cwd: R,
181
- filePaths: k
179
+ packageJson: N,
180
+ logName: S("blue", N?.contents?.name ?? F),
181
+ cwd: F,
182
+ filePaths: I
182
183
  };
183
184
  p.push(O);
184
185
  })
185
- ), f.size > 0 && p.push({
186
- typeScriptConfig: void 0,
187
- packageJson: m === void 0 ? void 0 : {
186
+ ), f.size > 0) {
187
+ const s = m === void 0 ? void 0 : {
188
188
  filePath: m,
189
- contents: await J(e.dirname(m))
190
- },
191
- cwd: process.cwd(),
192
- filePaths: Array.from(f).map((s) => e.join(process.cwd(), s))
193
- }), p.sort((s, l) => s.cwd.localeCompare(l.cwd)), j.projectsData = p, p;
189
+ contents: await M(e.dirname(m))
190
+ };
191
+ p.push({
192
+ typeScriptConfig: void 0,
193
+ packageJson: s,
194
+ cwd: process.cwd(),
195
+ logName: S("blue", s?.contents?.name ?? process.cwd()),
196
+ filePaths: Array.from(f).map((l) => e.join(process.cwd(), l))
197
+ });
198
+ }
199
+ return p.sort((s, l) => s.cwd.localeCompare(l.cwd)), j.projectsData = p, p;
194
200
  }
195
- let M = !1;
201
+ let _ = !1;
196
202
  function te() {
197
- M || (M = !0, process.exitCode !== void 0 && process.exitCode !== 0 ? h(
203
+ _ || (_ = !0, process.exitCode !== void 0 && process.exitCode !== 0 ? h(
198
204
  "warn",
199
205
  j.codemodName,
200
206
  "One or more exceptions occurred during the codemod run. Please review the output above."
201
207
  ) : h(
202
208
  "info",
203
209
  j.codemodName,
204
- `${B("green", "Codemod completed successfully.")} Recommended next steps:
210
+ `${S("green", "Codemod completed successfully.")} Recommended next steps:
205
211
  - Review the codemod changes.
206
212
  - If your project uses ESLint, run ESLint autofix on the changed files.
207
213
  - If your project uses Prettier, run Prettier on the changed files.
@@ -217,38 +223,38 @@ async function oe(t, o) {
217
223
  }
218
224
  await t.run(n), te();
219
225
  }
220
- const S = new $();
221
- S.name("@arcgis/codemod").description("Codemod for migrating or refactoring usages of ArcGIS Maps SDK for JavaScript");
222
- S.command("run").description("Run a single codemod").argument("<codemodName>", "Name of the transform").argument("[path]", "Directory to transform", process.cwd()).action(ne);
226
+ const k = new K();
227
+ k.name("@arcgis/codemod").description("Codemod for migrating or refactoring usages of ArcGIS Maps SDK for JavaScript");
228
+ k.command("run").description("Run a single codemod").argument("<codemodName>", "Name of the transform").argument("[path]", "Directory to transform", process.cwd()).action(ne);
223
229
  async function ne(t, o) {
224
- const n = K(o, { throwIfNoEntry: !1 });
230
+ const n = U(o, { throwIfNoEntry: !1 });
225
231
  if (n === void 0) {
226
232
  h("error", "@arcgis/codemod", `Failed to find the target path: ${o}`), process.exitCode = 1;
227
233
  return;
228
234
  }
229
235
  const r = n.isFile();
230
236
  process.chdir(r ? e.dirname(o) : o);
231
- let a;
237
+ let c;
232
238
  try {
233
- a = await q(/* @__PURE__ */ Object.assign({ "./codemods/arcgis-toolkit/codemod.ts": () => import("./codemod-wiEaN6_r.js"), "./codemods/refactor-out-esri-namespace/codemod.ts": () => import("./codemod-ul_pPsIY.js") }), `./codemods/${t}/codemod.ts`, 4);
234
- } catch (c) {
239
+ c = await q(/* @__PURE__ */ Object.assign({ "./codemods/api-extractor-strict-mode/codemod.ts": () => import("./codemod-AVvtg1JZ.js"), "./codemods/arcgis-toolkit/codemod.ts": () => import("./codemod-Cv6_nCqP.js"), "./codemods/refactor-out-esri-namespace/codemod.ts": () => import("./codemod-mhjHtX3y.js") }), `./codemods/${t}/codemod.ts`, 4);
240
+ } catch (i) {
235
241
  if (
236
242
  // direct Node execution
237
- typeof c == "object" && c !== null && "code" in c && c.code === "ERR_MODULE_NOT_FOUND" || // Vite build execution
238
- String(c).includes("Unknown variable dynamic import:")
243
+ typeof i == "object" && i !== null && "code" in i && i.code === "ERR_MODULE_NOT_FOUND" && "url" in i && typeof i.url == "string" && i.url.endsWith(`${e.sep}${t}${e.sep}codemod.ts`) || // Vite build execution
244
+ String(i).includes("Unknown variable dynamic import:")
239
245
  ) {
240
246
  h("error", "@arcgis/codemod", `Can't find codemod by name "${t}".`), process.exitCode = 1;
241
247
  return;
242
248
  } else
243
- throw c;
249
+ throw i;
244
250
  }
245
- if (typeof a.codemod != "object" || a.codemod === null) {
251
+ if (typeof c.codemod != "object" || c.codemod === null) {
246
252
  h("error", "@arcgis/codemod", `Can't find codemod by name "${t}".`), process.exitCode = 1;
247
253
  return;
248
254
  }
249
- await oe(a.codemod, t);
255
+ await oe(c.codemod, S("blue", t));
250
256
  }
251
- S.parse();
257
+ k.parse();
252
258
  export {
253
259
  ge as d,
254
260
  j as g,
package/dist/cli.js CHANGED
@@ -1,5 +1,6 @@
1
- import "./cli-mQ3ZNyiH.js";
1
+ import "./cli-DPzs7oKq.js";
2
2
  import "@arcgis/toolkit/log";
3
3
  import "@commander-js/extra-typings";
4
4
  import "node:fs";
5
5
  import "@arcgis/components-build-utils";
6
+ import "node:util";