@arcgis/codemod 5.2.0-next.90 → 5.2.0-next.93

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 (33) hide show
  1. package/dist/{actions-ACvjOtUF.js → actions-Dk0H5GL7.js} +1 -1
  2. package/dist/cli-BG_bddFb.js +269 -0
  3. package/dist/cli.js +1 -1
  4. package/dist/{codemod-CJvMRUCq.js → codemod-BL-hF1sl.js} +3 -3
  5. package/dist/codemod-BsJsUWX-.js +240 -0
  6. package/dist/{codemod-BSrbZ8nr.js → codemod-CE3IeY9A.js} +3 -3
  7. package/dist/{codemod-BNhkoGgL.js → codemod-Ct065XZR.js} +4 -4
  8. package/dist/codemod-D0WPk--E.js +311 -0
  9. package/dist/{codemod-3QuC4SaX.js → codemod-DVCFvVWI.js} +3 -3
  10. package/dist/{useProjectInstance-5uuenLkM.js → useProjectInstance-JISA7BBD.js} +13 -16
  11. package/package.json +4 -4
  12. package/dist/actions-CKBQcIhe.js +0 -354
  13. package/dist/actions-CakrAPrI.js +0 -354
  14. package/dist/actions-CtxXjpuZ.js +0 -354
  15. package/dist/cli-3BztOTDV.js +0 -266
  16. package/dist/cli-BIg5ZLTm.js +0 -266
  17. package/dist/cli-BJ6P_2T-.js +0 -266
  18. package/dist/cli-CJfbqFa-.js +0 -266
  19. package/dist/codemod-8GvQmmZV.js +0 -140
  20. package/dist/codemod-BD9n1ra2.js +0 -74
  21. package/dist/codemod-BWZBr6IZ.js +0 -140
  22. package/dist/codemod-Bz1NfItD.js +0 -436
  23. package/dist/codemod-CRHygcg2.js +0 -74
  24. package/dist/codemod-CXiJ129U.js +0 -436
  25. package/dist/codemod-CzsItZhZ.js +0 -74
  26. package/dist/codemod-DOOtgv8R.js +0 -436
  27. package/dist/codemod-Dc4LGHgd.js +0 -6080
  28. package/dist/codemod-UDMxoQjk.js +0 -6080
  29. package/dist/codemod-Xx_q11AP.js +0 -6080
  30. package/dist/codemod-urnOPYsG.js +0 -140
  31. package/dist/useProjectInstance-CGaAin_6.js +0 -50
  32. package/dist/useProjectInstance-DiZc_C2o.js +0 -50
  33. package/dist/useProjectInstance-DixfNjtt.js +0 -50
@@ -1,354 +0,0 @@
1
- import { path as T } from "@arcgis/node-toolkit/path";
2
- import { SyntaxKind as g } from "ts-morph";
3
- import { g as x } from "./cli-BIg5ZLTm.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,266 +0,0 @@
1
- import { log as h } from "@arcgis/toolkit/log";
2
- import { Command as K } from "@commander-js/extra-typings";
3
- import { statSync as U } from "node:fs";
4
- import { getCwd as F, path as e, toPosixPathSeparators as J } from "@arcgis/node-toolkit/path";
5
- import "ts-morph";
6
- import a from "typescript";
7
- import { existsAsync as B, asyncFindPath as W } from "@arcgis/node-toolkit/file";
8
- import { asyncRetrievePackageJson as M } from "@arcgis/node-toolkit/packageJson";
9
- import { glob as T } from "tinyglobby";
10
- import { gitIgnoreFileToGlobs as $ } from "@arcgis/node-toolkit/glob";
11
- import { identity as L } from "@arcgis/toolkit/function";
12
- import { styleText as S } from "node:util";
13
- const q = (t, o, n) => {
14
- const r = t[o];
15
- return r ? typeof r == "function" ? r() : Promise.resolve(r) : new Promise((c, i) => {
16
- (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." : ""))));
17
- });
18
- }, ye = {
19
- allowImportingTsExtensions: !0,
20
- allowJs: !0,
21
- allowArbitraryExtensions: !0,
22
- allowSyntheticDefaultImports: !0,
23
- checkJs: !0,
24
- experimentalDecorators: !0,
25
- forceConsistentCasingInFileNames: !1,
26
- isolatedModules: !1,
27
- isolatedDeclarations: !1,
28
- jsx: a.JsxEmit.Preserve,
29
- lib: ["lib.esnext.d.ts", "lib.dom.d.ts"],
30
- module: a.ModuleKind.ESNext,
31
- moduleResolution: a.ModuleResolutionKind.Bundler,
32
- moduleDetection: a.ModuleDetectionKind.Auto,
33
- strict: !1,
34
- target: a.ScriptTarget.ESNext,
35
- resolveJsonModule: !0,
36
- esModuleInterop: !0
37
- }, j = {
38
- codemod: void 0,
39
- codemodName: void 0,
40
- projectsData: void 0,
41
- project: void 0
42
- };
43
- async function z() {
44
- const { ignorePatterns: t, globRoot: o } = await H(), n = await Q(o);
45
- return t.push(...n), { ignorePatterns: t, globRoot: o };
46
- }
47
- async function H() {
48
- const t = [];
49
- let o, n = F(), r = e.dirname(n);
50
- do {
51
- o = r;
52
- const c = e.join(o, ".gitignore");
53
- if (await B(c)) {
54
- n = e.dirname(c);
55
- const w = e.relative(n, F()).split("/"), y = $(c);
56
- for (const f of y) {
57
- const m = (f.startsWith("!") ? f.slice(1) : f).split("*")[0].split("/");
58
- let p = !0;
59
- for (let g = 0; g < m.length; g++)
60
- if (w[g] !== m[g] && m[g] !== "") {
61
- p = !1;
62
- break;
63
- }
64
- p && (f.startsWith("!") || t.push(f));
65
- }
66
- }
67
- r = e.dirname(o);
68
- } while (r !== o);
69
- return { ignorePatterns: t, globRoot: n };
70
- }
71
- async function Q(t) {
72
- return (await T("**/.gitignore", {
73
- cwd: F(),
74
- // Gitignore files are unlikely to be symbolic links
75
- followSymbolicLinks: !1,
76
- // Don't look for ignore files in these places for speed:
77
- ignore: [
78
- // Hardcoded ignores in TypeScript
79
- "**/node_modules/**",
80
- "**/bower_components/**",
81
- "**/jspm_packages/**",
82
- // Default build output folder in bundlers
83
- "**/dist/**"
84
- ],
85
- // Not applicable for our glob pattern
86
- expandDirectories: !1
87
- })).flatMap((n) => {
88
- const r = e.relative(t, e.dirname(n)), c = $(n), i = [];
89
- for (const w of c)
90
- w.startsWith("!") || i.push(e.join(r, w));
91
- return i;
92
- });
93
- }
94
- const V = ["js", "jsx", "mjs", "cjs"], X = ["ts", "tsx", "mts", "cts"], Y = ["json"], Z = `**/*.{${[...V, ...X, ...Y].join(",")}}`;
95
- async function ee() {
96
- const t = await z(), o = e.join(process.cwd(), Z), n = await T(o, {
97
- cwd: t.globRoot,
98
- ignore: t.ignorePatterns,
99
- // The files we are looking for are unlikely to be symbolic links
100
- followSymbolicLinks: !1,
101
- // Not applicable for our glob pattern
102
- expandDirectories: !1
103
- // Files and folders starting with . are excluded (matches TypeScript's
104
- // default behavior). If any tsconfig.json explicitly includes such files,
105
- // they will still be codemodded.
106
- });
107
- let r = e.relative(t.globRoot, process.cwd());
108
- r !== "" && (r += "/");
109
- const c = e.join(e.resolve(t.globRoot), "/"), i = c.length + r.length, w = [], y = [], f = /* @__PURE__ */ new Set();
110
- for (const s of n) {
111
- const l = c + s;
112
- if (s.endsWith(".json")) {
113
- const d = e.basename(s);
114
- d === "package.json" ? w.push(l) : (d.startsWith("tsconfig.") || d.startsWith("jsconfig.")) && y.push(l);
115
- } else {
116
- const d = s.slice(r.length);
117
- f.add(d);
118
- }
119
- }
120
- let v = await W("tsconfig.json", e.dirname(process.cwd()));
121
- v !== void 0 && (v = J(v), y.push(v)), y.sort((s, l) => {
122
- const d = l.split("/").length - s.split("/").length;
123
- if (d !== 0)
124
- return d;
125
- const b = e.basename(s), u = e.basename(l);
126
- 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);
127
- });
128
- let m = await W("package.json");
129
- m !== void 0 && (m = J(m));
130
- const p = [], g = /* @__PURE__ */ new Set();
131
- if (await Promise.all(
132
- y.map(async (s) => {
133
- const l = e.relative(process.cwd(), s), d = a.readConfigFile(s, a.sys.readFile);
134
- if (d.error !== void 0) {
135
- h(
136
- "error",
137
- l,
138
- a.formatDiagnosticsWithColorAndContext([d.error], {
139
- getCanonicalFileName: L,
140
- getCurrentDirectory: a.sys.getCurrentDirectory,
141
- getNewLine: () => a.sys.newLine
142
- })
143
- );
144
- return;
145
- }
146
- const b = e.basename(l), u = a.parseJsonConfigFileContent(
147
- d.config,
148
- a.sys,
149
- e.dirname(s),
150
- void 0,
151
- b
152
- ), A = 18003;
153
- u.errors.filter((P) => P.code !== A).length > 0 && h(
154
- "warn",
155
- l,
156
- a.formatDiagnosticsWithColorAndContext(u.errors, {
157
- getCanonicalFileName: L,
158
- getCurrentDirectory: a.sys.getCurrentDirectory,
159
- getNewLine: () => a.sys.newLine
160
- })
161
- );
162
- const I = s === v, G = l === b, N = u.fileNames.filter((P) => {
163
- const D = P.slice(i);
164
- return f.delete(D) ? (g.add(D), !0) : g.has(D) || D.endsWith(".json") || P.includes("node_modules") ? !1 : !I;
165
- });
166
- if (N.length === 0)
167
- return;
168
- y.length === 1 && (I || G) && f.clear();
169
- const k = e.dirname(s);
170
- let C = k, x = m;
171
- do {
172
- const P = e.join(C, "package.json");
173
- if (w.includes(P)) {
174
- x = P;
175
- break;
176
- }
177
- } while (C !== t.globRoot && (C = e.dirname(C)));
178
- const E = x === void 0 ? void 0 : { filePath: x, contents: await M(e.dirname(x)) }, O = {
179
- typeScriptConfig: {
180
- filePath: s,
181
- compilerOptions: u.options
182
- },
183
- packageJson: E,
184
- logName: S("blue", E?.contents?.name ?? k),
185
- cwd: k,
186
- filePaths: N
187
- };
188
- p.push(O);
189
- })
190
- ), f.size > 0) {
191
- const s = m === void 0 ? void 0 : {
192
- filePath: m,
193
- contents: await M(e.dirname(m))
194
- };
195
- p.push({
196
- typeScriptConfig: void 0,
197
- packageJson: s,
198
- cwd: process.cwd(),
199
- logName: S("blue", s?.contents?.name ?? process.cwd()),
200
- filePaths: Array.from(f).map((l) => e.join(process.cwd(), l))
201
- });
202
- }
203
- return p.sort((s, l) => s.cwd.localeCompare(l.cwd)), j.projectsData = p, p;
204
- }
205
- let _ = !1;
206
- function te() {
207
- _ || (_ = !0, process.exitCode !== void 0 && process.exitCode !== 0 ? h(
208
- "warn",
209
- j.codemodName,
210
- "One or more exceptions occurred during the codemod run. Please review the output above."
211
- ) : h(
212
- "info",
213
- j.codemodName,
214
- `${S("green", "Codemod completed successfully.")} Recommended next steps:
215
- - Review the codemod changes.
216
- - If your project uses ESLint, run ESLint autofix on the changed files.
217
- - If your project uses Prettier, run Prettier on the changed files.
218
- - If your project uses TypeScript, run type checking to ensure there are no type errors.`
219
- ));
220
- }
221
- async function oe(t, o) {
222
- j.codemod = t, j.codemodName = o;
223
- const n = await ee();
224
- if (n.length === 0) {
225
- h("error", o, `Failed to find any .js or .ts files in ${process.cwd()} to run the codemod on.`), process.exitCode = 1;
226
- return;
227
- }
228
- await t.run(n), te();
229
- }
230
- const R = new K();
231
- R.name("@arcgis/codemod").description("Codemod for migrating or refactoring usages of ArcGIS Maps SDK for JavaScript");
232
- R.command("run").description("Run a single codemod").argument("<codemodName>", "Name of the transform").argument("[path]", "Directory to transform", process.cwd()).action(ne);
233
- async function ne(t, o) {
234
- const n = U(o, { throwIfNoEntry: !1 });
235
- if (n === void 0) {
236
- h("error", "@arcgis/codemod", `Failed to find the target path: ${o}`), process.exitCode = 1;
237
- return;
238
- }
239
- const r = n.isFile();
240
- process.chdir(r ? e.dirname(o) : o);
241
- let c;
242
- try {
243
- c = await q(/* @__PURE__ */ Object.assign({ "./codemods/api-extractor-strict-mode/codemod.ts": () => import("./codemod-Bz1NfItD.js"), "./codemods/node-toolkit/codemod.ts": () => import("./codemod-8GvQmmZV.js"), "./codemods/refactor-out-esri-namespace/codemod.ts": () => import("./codemod-Xx_q11AP.js"), "./codemods/toolkit-5.2-renames/codemod.ts": () => import("./codemod-CzsItZhZ.js") }), `./codemods/${t}/codemod.ts`, 4);
244
- } catch (i) {
245
- if (
246
- // direct Node execution
247
- 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
248
- String(i).includes("Unknown variable dynamic import:")
249
- ) {
250
- h("error", "@arcgis/codemod", `Can't find codemod by name "${t}".`), process.exitCode = 1;
251
- return;
252
- } else
253
- throw i;
254
- }
255
- if (typeof c.codemod != "object" || c.codemod === null) {
256
- h("error", "@arcgis/codemod", `Can't find codemod by name "${t}".`), process.exitCode = 1;
257
- return;
258
- }
259
- await oe(c.codemod, S("blue", t));
260
- }
261
- R.parse();
262
- export {
263
- ye as d,
264
- j as g,
265
- te as p
266
- };