@arcgis/codemod 5.2.0-next.95 → 5.2.0-next.97

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,311 @@
1
+ var C = (t, s) => (s = Symbol[t]) ? s : /* @__PURE__ */ Symbol.for("Symbol." + t), D = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var T = (t, s, e) => {
5
+ if (s != null) {
6
+ typeof s != "object" && typeof s != "function" && D("Object expected");
7
+ var n, o;
8
+ e && (n = s[C("asyncDispose")]), n === void 0 && (n = s[C("dispose")], e && (o = n)), typeof n != "function" && D("Object not disposable"), o && (n = function() {
9
+ try {
10
+ o.call(this);
11
+ } catch (i) {
12
+ return Promise.reject(i);
13
+ }
14
+ }), t.push([e, n, s]);
15
+ } else e && t.push([e]);
16
+ return s;
17
+ }, P = (t, s, e) => {
18
+ var n = typeof SuppressedError == "function" ? SuppressedError : function(r, a, c, d) {
19
+ return d = Error(c), d.name = "SuppressedError", d.error = r, d.suppressed = a, d;
20
+ }, o = (r) => s = e ? new n(r, s, "An error was suppressed during disposal") : (e = !0, r), i = (r) => {
21
+ for (; r = t.pop(); )
22
+ try {
23
+ var a = r[1] && r[1].call(r[2]);
24
+ if (r[0]) return Promise.resolve(a).then(i, (c) => (o(c), i()));
25
+ } catch (c) {
26
+ o(c);
27
+ }
28
+ if (e) throw s;
29
+ };
30
+ return i();
31
+ };
32
+ import { c as N } from "./useProjectInstance-CThDoNOp.js";
33
+ import { g as B } from "./cli-B_5MhVD4.js";
34
+ import { SyntaxKind as f } from "ts-morph";
35
+ import { existsAsync as S } from "@arcgis/node-toolkit/file";
36
+ import { readFile as J, writeFile as K } from "node:fs/promises";
37
+ const ne = {
38
+ meta: {
39
+ needsTypeInformation: !1
40
+ },
41
+ async run() {
42
+ for (const o of B.projectsData) {
43
+ var t = [];
44
+ try {
45
+ const i = T(t, N(o));
46
+ for (const r of i.getCodemodFiles()) {
47
+ const a = r.getExtension();
48
+ if (a !== ".tsx" || !r.getFullText().includes("interface DeclareElements"))
49
+ continue;
50
+ const c = g(r);
51
+ if (c === void 0)
52
+ continue;
53
+ const d = j(c);
54
+ if (r.getFirstChildByKind(f.ModuleDeclaration) === void 0)
55
+ continue;
56
+ const $ = F(c);
57
+ $ !== void 0 && O(r, c, $, d);
58
+ const u = r.getFilePath().slice(0, -a.length + 1);
59
+ let l;
60
+ if (await S(`${u}css`) ? l = `${u}css` : await S(`${u}scss`) && (l = `${u}scss`), l === void 0)
61
+ continue;
62
+ const A = await J(l, "utf8"), p = w(A);
63
+ p !== void 0 && (p.properties.length > 0 && E(r, p.properties, d), await K(l, p.newCssText, "utf8"));
64
+ }
65
+ } catch (s) {
66
+ var e = s, n = !0;
67
+ } finally {
68
+ P(t, e, n);
69
+ }
70
+ }
71
+ }
72
+ };
73
+ function w(t) {
74
+ const s = [], e = L(t);
75
+ let n = t;
76
+ for (const o of e.toReversed()) {
77
+ const i = o.description.replaceAll(U, " ").trim(), r = i.endsWith("*") ? i.slice(0, -1).trim() : i, a = M(r);
78
+ s.unshift({
79
+ name: o.name,
80
+ deprecated: a.deprecated,
81
+ description: a.description
82
+ });
83
+ const c = o.index, d = c + o.text.length;
84
+ n = `${n.slice(0, c)}${n.slice(d)}`;
85
+ }
86
+ if (n = n.replaceAll(G, "").replaceAll(Q, ""), !(e.length === 0 && n === t))
87
+ return { newCssText: n, properties: s };
88
+ }
89
+ function L(t) {
90
+ const s = [];
91
+ for (const e of t.matchAll(q))
92
+ e.index !== void 0 && s.push({
93
+ index: e.index,
94
+ text: e[0],
95
+ name: e.groups.name,
96
+ description: e.groups.description
97
+ });
98
+ for (const e of t.matchAll(H))
99
+ e.index !== void 0 && s.push({
100
+ index: e.index,
101
+ text: e[0],
102
+ name: e.groups.name,
103
+ description: e.groups.description
104
+ });
105
+ return s.toSorted((e, n) => e.index - n.index);
106
+ }
107
+ function E(t, s, e) {
108
+ const n = t.getFirstChildByKindOrThrow(f.ModuleDeclaration);
109
+ t.insertText(
110
+ n.getEnd(),
111
+ `
112
+
113
+ ${y(s, e)}`
114
+ );
115
+ }
116
+ function W(t) {
117
+ return g(t) !== void 0;
118
+ }
119
+ function g(t) {
120
+ return t.getClasses().find((s) => s.hasExportKeyword() && s.getExtends() !== void 0);
121
+ }
122
+ function j(t) {
123
+ const s = t.getJsDocs()[0]?.getTags().map((e) => e.getTagName()) ?? [];
124
+ if (!s.includes("private")) {
125
+ if (s.includes("internal"))
126
+ return "internal";
127
+ if (s.includes("public"))
128
+ return "public";
129
+ }
130
+ }
131
+ function y(t, s) {
132
+ return [
133
+ 'declare module "@arcgis/lumina" {',
134
+ " interface DeclareCssProperties {",
135
+ ...t.map((n) => {
136
+ const o = [];
137
+ return n.description !== void 0 && o.push(` * ${n.description}`), s !== void 0 && o.push(` * @${s}`), n.deprecated !== void 0 && o.push(` * @deprecated ${n.deprecated}`), [
138
+ ...o.length > 0 ? [" /**", ...o, " */"] : [],
139
+ ` "${n.name}": "*";`
140
+ ].join(`
141
+ `);
142
+ }),
143
+ " }",
144
+ "}"
145
+ ].join(`
146
+ `);
147
+ }
148
+ function F(t) {
149
+ const s = t.getJsDocs()[0];
150
+ if (s === void 0)
151
+ return;
152
+ const e = {
153
+ slots: [],
154
+ cssParts: [],
155
+ cssStates: []
156
+ };
157
+ for (const i of s.getTags()) {
158
+ const r = i.getTagName();
159
+ if (r !== "slot" && r !== "csspart" && r !== "cssstate")
160
+ continue;
161
+ const a = I(z(r, i.getText()) ?? i.getCommentText());
162
+ i.remove(), r === "slot" ? e.slots.push(a) : r === "csspart" ? e.cssParts.push(a) : e.cssStates.push(a);
163
+ }
164
+ return e.slots.length > 0 || e.cssParts.length > 0 || e.cssStates.length > 0 ? (s.getTags().length === 0 && (s.getCommentText()?.trim() ?? "") === "" && s.remove(), e) : void 0;
165
+ }
166
+ function I(t) {
167
+ if (t === void 0)
168
+ return {
169
+ name: "",
170
+ deprecated: void 0,
171
+ description: void 0,
172
+ default: void 0
173
+ };
174
+ const s = t.indexOf(" - ");
175
+ if (s === -1)
176
+ return t.startsWith("- ") ? m({
177
+ name: "",
178
+ description: t.slice(2),
179
+ default: void 0
180
+ }) : m({
181
+ name: t,
182
+ description: void 0,
183
+ default: void 0
184
+ });
185
+ let e, n = t.slice(0, s);
186
+ if (n.startsWith("[") && n.endsWith("]")) {
187
+ const o = n.slice(1, -1), i = o.indexOf("=");
188
+ i === -1 ? n = o : (n = o.slice(0, i), e = o.slice(i + 1));
189
+ }
190
+ return m({
191
+ name: n,
192
+ description: t.slice(s + 3),
193
+ default: e
194
+ });
195
+ }
196
+ function z(t, s) {
197
+ const e = `@${t}`, n = s.trim();
198
+ if (!n.startsWith(e))
199
+ return;
200
+ const o = n.slice(e.length).split(/\r?\n/u).map((i) => i.replace(/^\s*\*\s?/u, "").trim()).filter((i) => i.length > 0).join(" ").trim();
201
+ return o.length > 0 ? o : void 0;
202
+ }
203
+ function m(t) {
204
+ const s = M(t.description);
205
+ return {
206
+ name: t.name.trim(),
207
+ description: s.description,
208
+ deprecated: s.deprecated,
209
+ default: t.default
210
+ };
211
+ }
212
+ function M(t) {
213
+ const s = t?.trim();
214
+ if (s?.startsWith("[Deprecated] ")) {
215
+ const e = s.slice(13).trim(), n = e.indexOf(". ");
216
+ return n !== -1 ? {
217
+ description: e.slice(n + 2).trim(),
218
+ deprecated: e.slice(0, n + 1).trim()
219
+ } : {
220
+ description: void 0,
221
+ deprecated: e
222
+ };
223
+ }
224
+ return {
225
+ description: s,
226
+ deprecated: void 0
227
+ };
228
+ }
229
+ function O(t, s, e, n) {
230
+ const o = s.getName();
231
+ if (o === void 0)
232
+ return;
233
+ let i = s;
234
+ const r = [];
235
+ if (e.cssStates.length > 0 && t.getInterface(`${o}CssStates`) === void 0 && r.push(R(o, e.cssStates, n)), e.cssParts.length > 0 && t.getTypeAlias(`${o}CssParts`) === void 0 && r.push(b(o, e.cssParts, n)), e.slots.length > 0 && t.getInterface(`${o}Slots`) === void 0 && r.push(V(o, e.slots, n)), r.length > 0) {
236
+ const v = t.getFirstChildByKindOrThrow(f.ModuleDeclaration);
237
+ t.insertText(v.getEnd(), `
238
+
239
+ ${r.join(`
240
+
241
+ `)}`), i = t.getClassOrThrow(o);
242
+ }
243
+ const a = i.getFirstChildByKindOrThrow(f.OpenBraceToken), c = [], d = i.getText();
244
+ e.cssStates.length > 0 && !d.includes('["@cssStates"]') && c.push(h("@cssStates", `${o}CssStates`, n)), e.slots.length > 0 && !d.includes('["@slots"]') && c.push(h("@slots", `${o}Slots`, n)), e.cssParts.length > 0 && !d.includes('["@cssParts"]') && c.push(h("@cssParts", `${o}CssParts`, n)), c.length > 0 && i.insertText(a.getEnd(), `
245
+
246
+ ${c.join(`
247
+
248
+ `)}
249
+ `);
250
+ }
251
+ function R(t, s, e) {
252
+ const n = s.filter((o) => o.name.length > 0).map((o) => x(o.name, "boolean", o, e));
253
+ return [
254
+ ...e !== void 0 ? [`/** @${e} */`] : [],
255
+ `interface ${t}CssStates {`,
256
+ ...n,
257
+ "}"
258
+ ].join(`
259
+ `);
260
+ }
261
+ function b(t, s, e) {
262
+ const n = s.filter((o) => o.name.length > 0).map((o) => x(o.name, "Node", o, e));
263
+ return [
264
+ ...e !== void 0 ? [`/** @${e} */`] : [],
265
+ `type ${t}CssParts = {`,
266
+ ...n,
267
+ "};"
268
+ ].join(`
269
+ `);
270
+ }
271
+ function V(t, s, e) {
272
+ const n = s.map((o) => x(o.name, "Node[]", o, e));
273
+ return [
274
+ ...e !== void 0 ? [`/** @${e} */`] : [],
275
+ `interface ${t}Slots {`,
276
+ ...n,
277
+ "}"
278
+ ].join(`
279
+ `);
280
+ }
281
+ function x(t, s, e, n) {
282
+ const o = t.length > 0 ? t : "", i = k(e, n), r = JSON.stringify(o);
283
+ return [...i, ` ${r}: ${s};`].join(`
284
+ `);
285
+ }
286
+ function k(t, s) {
287
+ const e = [];
288
+ if (t.description !== void 0 && e.push(...t.description.split(`
289
+ `).map((o) => ` * ${o}`)), s !== void 0 && e.push(` * @${s}`), t.default !== void 0 && e.push(` * @default ${t.default}`), t.deprecated !== void 0 && e.push(` * @deprecated ${t.deprecated}`), e.length === 0)
290
+ return [];
291
+ const n = [" /**", ...e];
292
+ return n.push(" */"), n;
293
+ }
294
+ function h(t, s, e) {
295
+ return e === void 0 ? ` override ["${t}"]!: ${s};` : ` /** @${e} */
296
+ override ["${t}"]!: ${s};`;
297
+ }
298
+ const q = /^\s*\*?\s*@prop\s+(?<name>--[\w-]+)(?:\s*:\s*|\s+-\s+)(?<description>[^@/]+?)(?=^\s*\*?\s*@|^\s*\*+\/)/gmu, H = /\/\*\*\s*@prop\s+(?<name>--[\w-]+)(?::\s*|\s+-\s+)(?<description>[^]*?)\s*\*\/\s*/gu, G = /\/\*\*\r?\n[\t ]*\* CSS Custom Properties\r?\n[\t ]*\*\r?\n[\t ]*\* These properties can be overridden using the component's tag as selector\.\r?\n(?:[\t ]*\*\s*\r?\n)*[\t ]*\*\/(?:[\t ]*\r?\n)*/gu, Q = /\/\*\*\s*(?:\r?\n\s*\*\s*)*\r?\n\s*\*\/\s*/gu, U = /\r?\n\s+\*? ?/gu, oe = {
299
+ parseStyleDocs: w,
300
+ addDeclareCssProperties: E,
301
+ hasExportedExtendedClass: W,
302
+ getExportedExtendedClass: g,
303
+ getVisibilityTag: j,
304
+ parseComponentExtrasTag: I,
305
+ collectAndRemoveComponentExtras: F,
306
+ addComponentExtrasTypesAndMembers: O
307
+ };
308
+ export {
309
+ ne as codemod,
310
+ oe as exportsForTests
311
+ };
@@ -0,0 +1,74 @@
1
+ var c = (t, e) => (e = Symbol[t]) ? e : /* @__PURE__ */ Symbol.for("Symbol." + t), d = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var g = (t, e, s) => {
5
+ if (e != null) {
6
+ typeof e != "object" && typeof e != "function" && d("Object expected");
7
+ var i, r;
8
+ s && (i = e[c("asyncDispose")]), i === void 0 && (i = e[c("dispose")], s && (r = i)), typeof i != "function" && d("Object not disposable"), r && (i = function() {
9
+ try {
10
+ r.call(this);
11
+ } catch (n) {
12
+ return Promise.reject(n);
13
+ }
14
+ }), t.push([s, i, e]);
15
+ } else s && t.push([s]);
16
+ return e;
17
+ }, f = (t, e, s) => {
18
+ var i = typeof SuppressedError == "function" ? SuppressedError : function(o, a, l, m) {
19
+ return m = Error(l), m.name = "SuppressedError", m.error = o, m.suppressed = a, m;
20
+ }, r = (o) => e = s ? new i(o, e, "An error was suppressed during disposal") : (s = !0, o), n = (o) => {
21
+ for (; o = t.pop(); )
22
+ try {
23
+ var a = o[1] && o[1].call(o[2]);
24
+ if (o[0]) return Promise.resolve(a).then(n, (l) => (r(l), n()));
25
+ } catch (l) {
26
+ r(l);
27
+ }
28
+ if (s) throw e;
29
+ };
30
+ return n();
31
+ };
32
+ import { p } from "./actions-DEXz_SJJ.js";
33
+ import { c as k } from "./useProjectInstance-CThDoNOp.js";
34
+ import { p as C } from "./cli-B_5MhVD4.js";
35
+ const j = {
36
+ meta: {
37
+ needsTypeInformation: !1
38
+ },
39
+ run(t) {
40
+ for (const n of t) {
41
+ var e = [];
42
+ try {
43
+ const o = g(e, k(n));
44
+ for (const a of o.getCodemodFiles())
45
+ p(a, {
46
+ "@arcgis/toolkit/intl": {
47
+ getElementLocale: { do: "rename", specifier: "@arcgis/toolkit/intl/dom" },
48
+ startLocaleObserver: { do: "rename", specifier: "@arcgis/toolkit/intl/dom" },
49
+ LocaleObserverResult: { do: "rename", specifier: "@arcgis/toolkit/intl/dom" }
50
+ },
51
+ "@arcgis/toolkit/dom": {
52
+ slotChangeHasContent: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
53
+ slotChangeGetTextContent: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
54
+ slotChangeHasTextContent: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
55
+ slotChangeHasAssignedNode: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
56
+ slotChangeGetAssignedNodes: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
57
+ slotChangeHasAssignedElement: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
58
+ slotChangeGetAssignedElements: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
59
+ getSlotAssignedElements: { do: "rename", specifier: "@arcgis/toolkit/dom/slots" },
60
+ resolveReferenceElement: { do: "rename", specifier: "@arcgis/toolkit/dom/referenceElement" }
61
+ }
62
+ });
63
+ } catch (s) {
64
+ var i = s, r = !0;
65
+ } finally {
66
+ f(e, i, r);
67
+ }
68
+ }
69
+ C();
70
+ }
71
+ };
72
+ export {
73
+ j as codemod
74
+ };