@tsrx/typescript-plugin 0.3.25
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/.build-hash +1 -0
- package/.build-hash-built +1 -0
- package/CHANGELOG.md +334 -0
- package/LICENSE +21 -0
- package/README.md +51 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +1 -0
- package/package.json +37 -0
- package/src/index.js +10 -0
- package/src/language.js +920 -0
- package/src/utils.js +57 -0
- package/tests/compiler-resolution.test.js +174 -0
- package/tests/fixtures/workspaces/both/package.json +9 -0
- package/tests/fixtures/workspaces/both-react/package.json +8 -0
- package/tests/fixtures/workspaces/react-only/package.json +8 -0
- package/tests/fixtures/workspaces/ripple-only/package.json +9 -0
- package/tests/plugin-integration.test.js +120 -0
- package/tests/workspace-fixtures.js +155 -0
- package/tsconfig.json +17 -0
- package/tsconfig.typecheck.json +8 -0
- package/tsdown.config.js +30 -0
package/.build-hash
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dbc166e19d220e3ae7fbadec50dbce93e1d20b669b21a0944138b87035d35882
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f4e769bce49fcaf3fc5290e59b3b2a68cb76d45f63548445666a93fb6e81024d
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# @tsrx/typescript-plugin
|
|
2
|
+
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
[[`316cba1`](https://github.com/Ripple-TS/ripple/commit/316cba18614e5ef59dce15e0de6e720eb922955f)]:
|
|
9
|
+
- @tsrx/ripple@0.0.8
|
|
10
|
+
|
|
11
|
+
## 1.0.0
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
[[`f82f95f`](https://github.com/Ripple-TS/ripple/commit/f82f95fcf99aa58be086c69a37ed0e5b170e1a76),
|
|
17
|
+
[`1856b0f`](https://github.com/Ripple-TS/ripple/commit/1856b0f2df681b501253ebb8d8314b84fceb822b)]:
|
|
18
|
+
- @tsrx/react@0.1.0
|
|
19
|
+
- @tsrx/ripple@0.0.7
|
|
20
|
+
|
|
21
|
+
## 0.3.25
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies
|
|
26
|
+
[[`0babf74`](https://github.com/Ripple-TS/ripple/commit/0babf745f0bdfe04a70d8f19730097007c4f1705)]:
|
|
27
|
+
- @tsrx/react@0.0.7
|
|
28
|
+
|
|
29
|
+
## 0.3.24
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Updated dependencies
|
|
34
|
+
[[`01b4ed6`](https://github.com/Ripple-TS/ripple/commit/01b4ed663f1deb9306ad401d02dbec0f5d27cdc5)]:
|
|
35
|
+
- @tsrx/react@0.0.6
|
|
36
|
+
|
|
37
|
+
## 0.3.23
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- Updated dependencies
|
|
42
|
+
[[`73ceaac`](https://github.com/Ripple-TS/ripple/commit/73ceaacd029fb634a62252abdda59ab5f2bec15d)]:
|
|
43
|
+
- @tsrx/ripple@0.0.6
|
|
44
|
+
- @tsrx/react@0.0.5
|
|
45
|
+
|
|
46
|
+
## 0.3.22
|
|
47
|
+
|
|
48
|
+
## 0.3.21
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- Updated dependencies
|
|
53
|
+
[[`34d64e5`](https://github.com/Ripple-TS/ripple/commit/34d64e5028aee91a22a1cd1d8490c1c64105a7cd),
|
|
54
|
+
[`34d64e5`](https://github.com/Ripple-TS/ripple/commit/34d64e5028aee91a22a1cd1d8490c1c64105a7cd)]:
|
|
55
|
+
- @tsrx/react@0.0.4
|
|
56
|
+
|
|
57
|
+
## 0.3.20
|
|
58
|
+
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- Updated dependencies
|
|
62
|
+
[[`1e34bbd`](https://github.com/Ripple-TS/ripple/commit/1e34bbd762bc931c34e562bf100aeb103aa45368)]:
|
|
63
|
+
- @tsrx/react@0.0.3
|
|
64
|
+
|
|
65
|
+
## 0.3.19
|
|
66
|
+
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- [#877](https://github.com/Ripple-TS/ripple/pull/877)
|
|
70
|
+
[`7610ef8`](https://github.com/Ripple-TS/ripple/commit/7610ef84847bb77cc83488a902ecb6f96594e113)
|
|
71
|
+
Thanks [@leonidaz](https://github.com/leonidaz)! - Convert the Ripple language
|
|
72
|
+
server, TypeScript plugin, and VS Code extension codebases from CommonJS source
|
|
73
|
+
files to ESM source files, while publishing built dist entrypoints instead of
|
|
74
|
+
source files.
|
|
75
|
+
|
|
76
|
+
This updates package metadata such as `type: module` and dist-based `main`
|
|
77
|
+
paths, replaces `require` and `module.exports` usage with `import` and `export`,
|
|
78
|
+
and adds tsdown bundling configs that emit CommonJS dist output plus a
|
|
79
|
+
dist/package.json that forces `type: commonjs`.
|
|
80
|
+
|
|
81
|
+
Development builds also include sourcemaps.
|
|
82
|
+
|
|
83
|
+
## 0.3.18
|
|
84
|
+
|
|
85
|
+
### Patch Changes
|
|
86
|
+
|
|
87
|
+
- Updated dependencies
|
|
88
|
+
[[`4cb69cc`](https://github.com/Ripple-TS/ripple/commit/4cb69cc780d48c26493e3144006caf4b11df8e1d)]:
|
|
89
|
+
- @tsrx/react@0.0.2
|
|
90
|
+
|
|
91
|
+
## 0.3.17
|
|
92
|
+
|
|
93
|
+
### Patch Changes
|
|
94
|
+
|
|
95
|
+
- Updated dependencies []:
|
|
96
|
+
- @tsrx/ripple@0.0.5
|
|
97
|
+
|
|
98
|
+
## 0.3.16
|
|
99
|
+
|
|
100
|
+
### Patch Changes
|
|
101
|
+
|
|
102
|
+
- Updated dependencies []:
|
|
103
|
+
- @tsrx/ripple@0.0.4
|
|
104
|
+
|
|
105
|
+
## 0.3.15
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- Updated dependencies
|
|
110
|
+
[[`a14097a`](https://github.com/Ripple-TS/ripple/commit/a14097a688ad85c236a6619cef527c78787ab367)]:
|
|
111
|
+
- @tsrx/ripple@0.0.3
|
|
112
|
+
|
|
113
|
+
## 0.3.14
|
|
114
|
+
|
|
115
|
+
### Patch Changes
|
|
116
|
+
|
|
117
|
+
- Updated dependencies
|
|
118
|
+
[[`228f1bb`](https://github.com/Ripple-TS/ripple/commit/228f1bb36cd3e8506c422ed0997164bf5a0b5fe2)]:
|
|
119
|
+
- @tsrx/ripple@0.0.2
|
|
120
|
+
|
|
121
|
+
## 0.3.13
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- [`6e11177`](https://github.com/Ripple-TS/ripple/commit/6e111778cae4e7d9876e51e293520f0859eb5890)
|
|
126
|
+
Thanks [@trueadm](https://github.com/trueadm)! - Add `.rsrx` support across
|
|
127
|
+
Ripple tooling and rename the repository's tracked `.ripple` modules to `.rsrx`.
|
|
128
|
+
- Updated dependencies
|
|
129
|
+
[[`4eb4d68`](https://github.com/Ripple-TS/ripple/commit/4eb4d6851573d771d65f1e85b1b442ad3cdc53d2),
|
|
130
|
+
[`48af856`](https://github.com/Ripple-TS/ripple/commit/48af85678d5e1b32bb1c5e3fbb2fb07498bc88a3),
|
|
131
|
+
[`6e11177`](https://github.com/Ripple-TS/ripple/commit/6e111778cae4e7d9876e51e293520f0859eb5890)]:
|
|
132
|
+
- ripple@0.3.13
|
|
133
|
+
|
|
134
|
+
## 0.3.12
|
|
135
|
+
|
|
136
|
+
### Patch Changes
|
|
137
|
+
|
|
138
|
+
- [#859](https://github.com/Ripple-TS/ripple/pull/859)
|
|
139
|
+
[`cdd31ba`](https://github.com/Ripple-TS/ripple/commit/cdd31ba4c07ce504b01d56533e19a6ba37879f5a)
|
|
140
|
+
Thanks [@trueadm](https://github.com/trueadm)! - Add first-phase `.tsrx` support
|
|
141
|
+
across the core Ripple tooling so Vite, Rollup, TypeScript, the language server,
|
|
142
|
+
Prettier, ESLint, and editor integrations accept both `.ripple` and `.tsrx`
|
|
143
|
+
files.
|
|
144
|
+
|
|
145
|
+
- Updated dependencies []:
|
|
146
|
+
- ripple@0.3.12
|
|
147
|
+
|
|
148
|
+
## 0.3.11
|
|
149
|
+
|
|
150
|
+
### Patch Changes
|
|
151
|
+
|
|
152
|
+
- Updated dependencies
|
|
153
|
+
[[`6792c70`](https://github.com/Ripple-TS/ripple/commit/6792c700db30ec0c25077bf8892753f18eddc5cc),
|
|
154
|
+
[`f2624a6`](https://github.com/Ripple-TS/ripple/commit/f2624a6596479480c47317ea3030863214a6e2b3),
|
|
155
|
+
[`13323dd`](https://github.com/Ripple-TS/ripple/commit/13323dddbcb68e1e8e373142884a7c54fbb76cd7)]:
|
|
156
|
+
- ripple@0.3.11
|
|
157
|
+
|
|
158
|
+
## 0.3.10
|
|
159
|
+
|
|
160
|
+
### Patch Changes
|
|
161
|
+
|
|
162
|
+
- Updated dependencies
|
|
163
|
+
[[`aef1253`](https://github.com/Ripple-TS/ripple/commit/aef1253dd79c067a8358172d502dc21d8a9a9085)]:
|
|
164
|
+
- ripple@0.3.10
|
|
165
|
+
|
|
166
|
+
## 0.3.9
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- Updated dependencies []:
|
|
171
|
+
- ripple@0.3.9
|
|
172
|
+
|
|
173
|
+
## 0.3.8
|
|
174
|
+
|
|
175
|
+
### Patch Changes
|
|
176
|
+
|
|
177
|
+
- Updated dependencies []:
|
|
178
|
+
- ripple@0.3.8
|
|
179
|
+
|
|
180
|
+
## 0.3.7
|
|
181
|
+
|
|
182
|
+
### Patch Changes
|
|
183
|
+
|
|
184
|
+
- Updated dependencies
|
|
185
|
+
[[`9ca9310`](https://github.com/Ripple-TS/ripple/commit/9ca9310550a800f4435821ed84b24bdd4f243117),
|
|
186
|
+
[`9ca9310`](https://github.com/Ripple-TS/ripple/commit/9ca9310550a800f4435821ed84b24bdd4f243117),
|
|
187
|
+
[`9ca9310`](https://github.com/Ripple-TS/ripple/commit/9ca9310550a800f4435821ed84b24bdd4f243117),
|
|
188
|
+
[`9ca9310`](https://github.com/Ripple-TS/ripple/commit/9ca9310550a800f4435821ed84b24bdd4f243117)]:
|
|
189
|
+
- ripple@0.3.7
|
|
190
|
+
|
|
191
|
+
## 0.3.6
|
|
192
|
+
|
|
193
|
+
### Patch Changes
|
|
194
|
+
|
|
195
|
+
- Updated dependencies []:
|
|
196
|
+
- ripple@0.3.6
|
|
197
|
+
|
|
198
|
+
## 0.3.5
|
|
199
|
+
|
|
200
|
+
### Patch Changes
|
|
201
|
+
|
|
202
|
+
- Updated dependencies
|
|
203
|
+
[[`218a72c`](https://github.com/Ripple-TS/ripple/commit/218a72c3e663910636eec1d065c58afe30813c84)]:
|
|
204
|
+
- ripple@0.3.5
|
|
205
|
+
|
|
206
|
+
## 0.3.4
|
|
207
|
+
|
|
208
|
+
### Patch Changes
|
|
209
|
+
|
|
210
|
+
- Updated dependencies
|
|
211
|
+
[[`92982cd`](https://github.com/Ripple-TS/ripple/commit/92982cd7b918d0afee9334c74765573b30c8a645),
|
|
212
|
+
[`747ae1f`](https://github.com/Ripple-TS/ripple/commit/747ae1fc7948e994eeb521f3ed78711c9dd3e802),
|
|
213
|
+
[`abe1caa`](https://github.com/Ripple-TS/ripple/commit/abe1caa6ab636722099a6ecd4cafbf117d208ec2),
|
|
214
|
+
[`046d0ba`](https://github.com/Ripple-TS/ripple/commit/046d0baf190d161c3b851799080d11eb4f95e094),
|
|
215
|
+
[`79a920e`](https://github.com/Ripple-TS/ripple/commit/79a920e30f0f35f2ec07ff8d52dc709f8bb74c77),
|
|
216
|
+
[`83807a4`](https://github.com/Ripple-TS/ripple/commit/83807a412603ff49c398f9365b011fd4b4a5f8bf)]:
|
|
217
|
+
- ripple@0.3.4
|
|
218
|
+
|
|
219
|
+
## 0.3.3
|
|
220
|
+
|
|
221
|
+
### Patch Changes
|
|
222
|
+
|
|
223
|
+
- Updated dependencies
|
|
224
|
+
[[`cd1073f`](https://github.com/Ripple-TS/ripple/commit/cd1073f7cc8085c8b200ada4faf77b2c35b10c6c)]:
|
|
225
|
+
- ripple@0.3.3
|
|
226
|
+
|
|
227
|
+
## 0.3.2
|
|
228
|
+
|
|
229
|
+
### Patch Changes
|
|
230
|
+
|
|
231
|
+
- Updated dependencies
|
|
232
|
+
[[`42524c9`](https://github.com/Ripple-TS/ripple/commit/42524c9551b1950d7f7a0336ce396fc312b6fe51)]:
|
|
233
|
+
- ripple@0.3.2
|
|
234
|
+
|
|
235
|
+
## 0.3.1
|
|
236
|
+
|
|
237
|
+
### Patch Changes
|
|
238
|
+
|
|
239
|
+
- Updated dependencies
|
|
240
|
+
[[`87c2078`](https://github.com/Ripple-TS/ripple/commit/87c20780f6f6f7339cf94b9a9d08e028533df0a2)]:
|
|
241
|
+
- ripple@0.3.1
|
|
242
|
+
|
|
243
|
+
## 0.3.0
|
|
244
|
+
|
|
245
|
+
### Minor Changes
|
|
246
|
+
|
|
247
|
+
- [#779](https://github.com/Ripple-TS/ripple/pull/779)
|
|
248
|
+
[`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)
|
|
249
|
+
Thanks [@leonidaz](https://github.com/leonidaz)! - Introduces #ripple namespace
|
|
250
|
+
for creating ripple reactive entities without imports, such as array, object,
|
|
251
|
+
map, set, date, url, urlSearchParams, mediaQuery. Adds track, untrack,
|
|
252
|
+
trackSplit, effect, context, server, style to the namespace. Deprecates #[] and
|
|
253
|
+
#{} in favor of #ripple[] and #ripple{}. Renames types and actual reactive
|
|
254
|
+
imports for TrackedX entities, such as TrackedArray, TrackedObject, etc. into
|
|
255
|
+
RippleArray, RippleObjec, etc.
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- Updated dependencies
|
|
260
|
+
[[`61271cb`](https://github.com/Ripple-TS/ripple/commit/61271cb1c4777f2ab9093c6c89a5ad771ec98b7d),
|
|
261
|
+
[`21dd402`](https://github.com/Ripple-TS/ripple/commit/21dd4029d7e027a0706cb133b09530a722feb73d),
|
|
262
|
+
[`c2dbefe`](https://github.com/Ripple-TS/ripple/commit/c2dbefe5645c0c4f6e0ff4dc00d9c4de81616667),
|
|
263
|
+
[`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)]:
|
|
264
|
+
- ripple@0.3.0
|
|
265
|
+
|
|
266
|
+
## 0.2.216
|
|
267
|
+
|
|
268
|
+
### Patch Changes
|
|
269
|
+
|
|
270
|
+
- [#764](https://github.com/Ripple-TS/ripple/pull/764)
|
|
271
|
+
[`95ea864`](https://github.com/Ripple-TS/ripple/commit/95ea8645b2cb27e2610a4ace4c8fb238c92d441a)
|
|
272
|
+
Thanks [@leonidaz](https://github.com/leonidaz)! - Fixes syntax color
|
|
273
|
+
highlighting for `pending`
|
|
274
|
+
|
|
275
|
+
- Updated dependencies
|
|
276
|
+
[[`9fb507d`](https://github.com/Ripple-TS/ripple/commit/9fb507d76af6fd6a5c636af1976d1e03d3e869ac),
|
|
277
|
+
[`e1de4bb`](https://github.com/Ripple-TS/ripple/commit/e1de4bb9df75342a693cda24d0999a423db05ec4),
|
|
278
|
+
[`95ea864`](https://github.com/Ripple-TS/ripple/commit/95ea8645b2cb27e2610a4ace4c8fb238c92d441a)]:
|
|
279
|
+
- ripple@0.2.216
|
|
280
|
+
|
|
281
|
+
## 0.2.215
|
|
282
|
+
|
|
283
|
+
### Patch Changes
|
|
284
|
+
|
|
285
|
+
- Updated dependencies
|
|
286
|
+
[[`a9ecda4`](https://github.com/Ripple-TS/ripple/commit/a9ecda4e3f29e3b934d9f5ee80d55c059ba36ebe),
|
|
287
|
+
[`6653c5c`](https://github.com/Ripple-TS/ripple/commit/6653c5cebfbd4dce129906a25686ef9c63dc592a),
|
|
288
|
+
[`307dcf3`](https://github.com/Ripple-TS/ripple/commit/307dcf30f27dae987a19a59508cc2593c839eda3)]:
|
|
289
|
+
- ripple@0.2.215
|
|
290
|
+
|
|
291
|
+
## 0.2.214
|
|
292
|
+
|
|
293
|
+
### Patch Changes
|
|
294
|
+
|
|
295
|
+
- Updated dependencies []:
|
|
296
|
+
- ripple@0.2.214
|
|
297
|
+
|
|
298
|
+
## 0.2.213
|
|
299
|
+
|
|
300
|
+
### Patch Changes
|
|
301
|
+
|
|
302
|
+
- Updated dependencies []:
|
|
303
|
+
- ripple@0.2.213
|
|
304
|
+
|
|
305
|
+
## 0.2.212
|
|
306
|
+
|
|
307
|
+
### Patch Changes
|
|
308
|
+
|
|
309
|
+
- Updated dependencies []:
|
|
310
|
+
- ripple@0.2.212
|
|
311
|
+
|
|
312
|
+
## 0.2.211
|
|
313
|
+
|
|
314
|
+
### Patch Changes
|
|
315
|
+
|
|
316
|
+
- Updated dependencies
|
|
317
|
+
[[`fa285f4`](https://github.com/Ripple-TS/ripple/commit/fa285f441ab8d748c3dfea6adb463e3ca6d614b5)]:
|
|
318
|
+
- ripple@0.2.211
|
|
319
|
+
|
|
320
|
+
## 0.2.210
|
|
321
|
+
|
|
322
|
+
### Patch Changes
|
|
323
|
+
|
|
324
|
+
- Updated dependencies []:
|
|
325
|
+
- ripple@0.2.210
|
|
326
|
+
|
|
327
|
+
## 0.2.209
|
|
328
|
+
|
|
329
|
+
### Patch Changes
|
|
330
|
+
|
|
331
|
+
- Updated dependencies
|
|
332
|
+
[[`96a5614`](https://github.com/Ripple-TS/ripple/commit/96a56141de8aa667a64bf53ad06f63292e38b1d9),
|
|
333
|
+
[`ae3aa98`](https://github.com/Ripple-TS/ripple/commit/ae3aa981515f81e62a699497e624dd0c2e3d2c91)]:
|
|
334
|
+
- ripple@0.2.209
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Dominic Gannaway
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# @tsrx/typescript-plugin
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@tsrx/typescript-plugin)
|
|
4
|
+
[](https://www.npmjs.com/package/@tsrx/typescript-plugin)
|
|
5
|
+
|
|
6
|
+
TypeScript plugin for Ripple that provides language support for Ripple component
|
|
7
|
+
files, with `.tsrx` as the default extension and continued `.tsrx` support.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
### VS Code
|
|
12
|
+
|
|
13
|
+
**If you're using VS Code with the Ripple extension, you don't need to configure
|
|
14
|
+
this plugin!** The Ripple language server handles everything automatically.
|
|
15
|
+
|
|
16
|
+
### Other Editors or Standalone Usage
|
|
17
|
+
|
|
18
|
+
For editors that don't use the Ripple language server (like WebStorm, Sublime
|
|
19
|
+
Text, or command-line `tsc`), add this plugin to your `tsconfig.json`:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"compilerOptions": {
|
|
24
|
+
"jsx": "preserve",
|
|
25
|
+
"jsxImportSource": "ripple",
|
|
26
|
+
"plugins": [
|
|
27
|
+
{
|
|
28
|
+
"name": "@tsrx/typescript-plugin"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## What it does
|
|
36
|
+
|
|
37
|
+
This plugin:
|
|
38
|
+
|
|
39
|
+
- Registers `.tsrx` and `.tsrx` files as recognized TypeScript languages
|
|
40
|
+
- Transforms Ripple syntax to TypeScript for type checking
|
|
41
|
+
- Integrates with Volar for virtual code generation and source mapping
|
|
42
|
+
|
|
43
|
+
## Architecture Note
|
|
44
|
+
|
|
45
|
+
This plugin uses Volar's TypeScript plugin system. When configured in
|
|
46
|
+
`tsconfig.json`, TypeScript's tsserver will load this plugin and create a language
|
|
47
|
+
service instance.
|
|
48
|
+
|
|
49
|
+
The Ripple VS Code extension uses a language server instead, which provides the
|
|
50
|
+
same functionality plus additional features like diagnostics and formatting. Both
|
|
51
|
+
can coexist (they create separate instances), but you only need one.
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require(`typescript`);let l=require(`fs`);l=c(l);let u=require(`path`);u=c(u);let d=require(`module`),f=require(`url`);var p=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.binarySearch=t;function t(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=Math.floor((n+r)/2),o=e[a];if(o<t)n=a+1;else if(o>t)r=a-1;else{n=a,r=a,i=a;break}}return{low:Math.max(Math.min(n,r,e.length-1),0),high:Math.min(Math.max(n,r,0),e.length-1),match:i}}})),m=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.translateOffset=n;let t=!1;function n(e,n,r,i,a=i,o=!1){if(!n.every((e,t)=>t===0||n[t-1]<=e)){for(let t=0;t<n.length;t++){let s=n[t],c=i[t];if(e>=s&&e<=s+c){let n=a[t],i=r[t],l,u=e-s;return l=o&&n>c&&u===c?n:Math.min(u,n),i+l}}t||(t=!0,console.warn(`fromOffsets should be sorted in ascending order`))}let s=0,c=n.length-1;for(;s<=c;){let t=Math.floor((s+c)/2),l=n[t],u=i[t];if(e>=l&&e<=l+u){let n=a[t],i=r[t],s,c=e-l;return s=o&&n>u&&c===u?n:Math.min(c,n),i+s}else e<l?c=t-1:s=t+1}}})),h=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SourceMap=void 0;let t=p(),n=m();e.SourceMap=class{constructor(e){this.mappings=e}toSourceRange(e,t,n,r){return this.findMatchingStartEnd(e,t,n,`generatedOffsets`,r)}toGeneratedRange(e,t,n,r){return this.findMatchingStartEnd(e,t,n,`sourceOffsets`,r)}toSourceLocation(e,t){return this.findMatchingOffsets(e,`generatedOffsets`,t)}toGeneratedLocation(e,t){return this.findMatchingOffsets(e,`sourceOffsets`,t)}*findMatchingOffsets(e,i,a,o=!1){let s=this.getMemoBasedOnRange(i);if(s.offsets.length===0)return;let{low:c,high:l}=(0,t.binarySearch)(s.offsets,e),u=new Set,d=i===`sourceOffsets`?`generatedOffsets`:`sourceOffsets`;for(let t=c;t<=l;t++)for(let c of s.mappings[t]){if(u.has(c)||(u.add(c),a&&!a(c.data)))continue;let t=(0,n.translateOffset)(e,c[i],c[d],r(c,i),r(c,d),o);t!==void 0&&(yield[t,c])}}*findMatchingStartEnd(e,t,i,a,o){let s=a===`sourceOffsets`?`generatedOffsets`:`sourceOffsets`,c=s===`sourceOffsets`,l=[],u=!1;for(let[i,d]of this.findMatchingOffsets(e,a)){if(o&&!o(d.data))continue;l.push([i,d]);let e=(0,n.translateOffset)(t,d[a],d[s],r(d,a),r(d,s),c);e!==void 0&&(u=!0,yield[i,e,d,d])}if(!u&&i){for(let[e,n]of l)for(let[r,i]of this.findMatchingOffsets(t,a,void 0,c))if(!(o&&!o(i.data)||r<e)){yield[e,r,n,i];break}}}getMemoBasedOnRange(e){return e===`sourceOffsets`?this.sourceCodeOffsetsMemo??=this.createMemo(`sourceOffsets`):this.generatedCodeOffsetsMemo??=this.createMemo(`generatedOffsets`)}createMemo(e){let n=new Set;for(let t of this.mappings)for(let i=0;i<t[e].length;i++)n.add(t[e][i]),n.add(t[e][i]+r(t,e)[i]);let i=[...n].sort((e,t)=>e-t),a=i.map(()=>new Set);for(let n of this.mappings)for(let o=0;o<n[e].length;o++){let s=(0,t.binarySearch)(i,n[e][o]).match,c=(0,t.binarySearch)(i,n[e][o]+r(n,e)[o]).match;for(let e=s;e<=c;e++)a[e].add(n)}return{offsets:i,mappings:a}}};function r(e,t){return t===`sourceOffsets`?e.lengths:e.generatedLengths??e.lengths}})),g=o((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),n(h(),e),n(m(),e)})),_=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isHoverEnabled=t,e.isInlayHintsEnabled=n,e.isCodeLensEnabled=r,e.isMonikerEnabled=i,e.isInlineValueEnabled=a,e.isSemanticTokensEnabled=o,e.isCallHierarchyEnabled=s,e.isTypeHierarchyEnabled=c,e.isRenameEnabled=l,e.isDefinitionEnabled=u,e.isTypeDefinitionEnabled=d,e.isReferencesEnabled=f,e.isImplementationEnabled=p,e.isHighlightEnabled=m,e.isSymbolsEnabled=h,e.isFoldingRangesEnabled=g,e.isSelectionRangesEnabled=_,e.isLinkedEditingEnabled=v,e.isColorEnabled=y,e.isDocumentLinkEnabled=b,e.isDiagnosticsEnabled=x,e.isCodeActionsEnabled=S,e.isFormattingEnabled=C,e.isCompletionEnabled=w,e.isAutoInsertEnabled=T,e.isSignatureHelpEnabled=E,e.shouldReportDiagnostics=D,e.resolveRenameNewName=O,e.resolveRenameEditText=k,e.findOverlapCodeRange=A;function t(e){return!!e.semantic}function n(e){return!!e.semantic}function r(e){return!!e.semantic}function i(e){return!!e.semantic}function a(e){return!!e.semantic}function o(e){return typeof e.semantic==`object`?e.semantic.shouldHighlight?.()??!0:!!e.semantic}function s(e){return!!e.navigation}function c(e){return!!e.navigation}function l(e){return typeof e.navigation==`object`?e.navigation.shouldRename?.()??!0:!!e.navigation}function u(e){return!!e.navigation}function d(e){return!!e.navigation}function f(e){return!!e.navigation}function p(e){return!!e.navigation}function m(e){return typeof e.navigation==`object`?e.navigation.shouldHighlight?.()??!0:!!e.navigation}function h(e){return!!e.structure}function g(e){return!!e.structure}function _(e){return!!e.structure}function v(e){return!!e.structure}function y(e){return!!e.structure}function b(e){return!!e.structure}function x(e){return!!e.verification}function S(e){return!!e.verification}function C(e){return!!e.format}function w(e){return!!e.completion}function T(e){return!!e.completion}function E(e){return!!e.completion}function D(e,t,n){return typeof e.verification==`object`?e.verification.shouldReport?.(t,n)??!0:!!e.verification}function O(e,t){return typeof t.navigation==`object`?t.navigation.resolveRenameNewName?.(e)??e:e}function k(e,t){return typeof t.navigation==`object`?t.navigation.resolveRenameEditText?.(e)??e:e}function A(e,t,n,r){let i,a;for(let[t,a]of n.toGeneratedLocation(e))if(r(a.data)){i=t;break}for(let[e,i]of n.toGeneratedLocation(t))if(r(i.data)){a=e;break}if(i===void 0||a===void 0){for(let o of n.mappings)if(r(o.data)){let n=o.sourceOffsets[0],r=j(e,t,n,o.sourceOffsets[o.sourceOffsets.length-1]+o.lengths[o.lengths.length-1]);if(r){let e=r.start-n+o.generatedOffsets[0],t=(o.generatedLengths??o.lengths)[o.generatedOffsets.length-1],s=Math.min(r.end-o.sourceOffsets[o.sourceOffsets.length-1],t),c=o.generatedOffsets[o.generatedOffsets.length-1]+s;i=i===void 0?e:Math.min(i,e),a=a===void 0?c:Math.max(a,c)}}}if(i!==void 0&&a!==void 0)return{start:i,end:a}}function j(e,t,n,r){let i=Math.max(e,n),a=Math.min(t,r);if(!(i>a))return{start:i,end:a}}})),v=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.LinkedCodeMap=void 0;let t=g();e.LinkedCodeMap=class extends t.SourceMap{*getLinkedOffsets(e){for(let t of this.toGeneratedLocation(e))yield t[0];for(let t of this.toSourceLocation(e))yield t[0]}}})),y=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0})})),b=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.FileMap=void 0,e.FileMap=class extends Map{constructor(e){super(),this.caseSensitive=e,this.originalFileNames=new Map}keys(){return this.originalFileNames.values()}get(e){return super.get(this.normalizeId(e))}has(e){return super.has(this.normalizeId(e))}set(e,t){return this.originalFileNames.set(this.normalizeId(e),e),super.set(this.normalizeId(e),t)}delete(e){return this.originalFileNames.delete(this.normalizeId(e)),super.delete(this.normalizeId(e))}clear(){return this.originalFileNames.clear(),super.clear()}normalizeId(e){return this.caseSensitive?e:e.toLowerCase()}}})),x=o((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.defaultMapperFactory=e.SourceMap=void 0,e.createLanguage=o,e.forEachEmbeddedCode=s;var r=g();Object.defineProperty(e,`SourceMap`,{enumerable:!0,get:function(){return r.SourceMap}}),n(_(),e),n(v(),e),n(y(),e),n(b(),e);let i=g(),a=v();e.defaultMapperFactory=e=>new i.SourceMap(e);function o(t,n,r,i){let o=new WeakMap,c=new WeakMap,l=new WeakMap,u={mapperFactory:e.defaultMapperFactory,plugins:t,scripts:{fromVirtualCode(e){return o.get(e)},get(e,t=!0,i=!1){r(e,t,i);let a=n.get(e);return a?.isAssociationDirty&&this.set(e,a.snapshot,a.languageId),n.get(e)},set(e,r,i,a=t){if(!i){for(let n of t)if(i=n.getLanguageId?.(e),i)break}if(!i){console.warn(`languageId not found for ${String(e)}`);return}let c=!1;for(let n of t)if(n.isAssociatedFileOnly?.(e,i)){c=!0;break}if(n.has(e)){let t=n.get(e);if(t.languageId!==i||t.associatedOnly!==c)return this.delete(e),d(t),this.set(e,r,i);if(c)t.snapshot!==r&&(t.snapshot=r,d(t));else if(t.isAssociationDirty||t.snapshot!==r){t.snapshot!==r&&(t.snapshot=r,d(t));let n=f(t);if(t.generated){let{updateVirtualCode:a,createVirtualCode:c}=t.generated.languagePlugin,l=a?a(e,t.generated.root,r,n):c?.(e,i,r,n);if(l){t.generated.root=l,t.generated.embeddedCodes.clear();for(let e of s(t.generated.root))o.set(e,t),t.generated.embeddedCodes.set(e.id,e);return t}else{this.delete(e);return}}}else return t}else{let t={id:e,languageId:i,snapshot:r,associatedIds:new Set,targetIds:new Set,associatedOnly:c};if(n.set(e,t),c)return t;for(let n of a){let a=n.createVirtualCode?.(e,i,r,f(t));if(a){t.generated={root:a,languagePlugin:n,embeddedCodes:new Map};for(let e of s(a))o.set(e,t),t.generated.embeddedCodes.set(e.id,e);break}}return t}},delete(e){let t=n.get(e);t&&(t.generated?.languagePlugin.disposeVirtualCode?.(e,t.generated.root),n.delete(e),d(t))}},maps:{get(e,t){let n=c.get(e.snapshot);if(n||c.set(e.snapshot,n=new WeakMap),!n.has(t.snapshot)){let r=e.associatedScriptMappings?.get(t.id)??e.mappings;n.set(t.snapshot,u.mapperFactory(r))}return n.get(t.snapshot)},*forEach(e){let t=o.get(e);if(yield[t,this.get(e,t)],e.associatedScriptMappings)for(let[t]of e.associatedScriptMappings){let r=n.get(t);r&&(yield[r,this.get(e,r)])}}},linkedCodeMaps:{get(e){let t=o.get(e),n=l.get(e.snapshot);return n?.[0]!==t.snapshot&&l.set(e.snapshot,n=[t.snapshot,e.linkedCodeMappings?new a.LinkedCodeMap(e.linkedCodeMappings):void 0]),n[1]}}};return u;function d(e){e.targetIds.forEach(e=>{let t=n.get(e);t&&(t.isAssociationDirty=!0,i?.(t.id))})}function f(e){for(let t of e.associatedIds)n.get(t)?.targetIds.delete(e.id);return e.associatedIds.clear(),e.isAssociationDirty=!1,{getAssociatedScript(t){r(t,!0,!0);let i=n.get(t);return i&&(i.targetIds.add(e.id),e.associatedIds.add(i.id)),i}}}}function*s(e){if(yield e,e.embeddedCodes)for(let t of e.embeddedCodes)yield*s(t)}})),S=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dedupeDocumentSpans=t;function t(e){return n(e,e=>[e.fileName,e.textSpan.start,e.textSpan.length].join(`:`))}function n(e,t){let n=new Map;for(let r of e.reverse())n.set(t(r),r);return[...n.values()]}})),C=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.getServiceScript=t,e.fixupImpliedNodeFormatForFile=n;function t(e,t){let n=e.scripts.get(t);if(n?.targetIds.size)for(let t of n.targetIds){let r=e.scripts.get(t);if(r?.generated){let e=r.generated.languagePlugin.typescript?.getServiceScript(r.generated.root);if(e)return[e,r,n]}}if(n?.associatedOnly)return[void 0,n,n];if(n?.generated){let e=n.generated.languagePlugin.typescript?.getServiceScript(n.generated.root);if(e)return[e,n,n]}return[void 0,void 0,void 0]}function n(e,t,n,r,i,a){if(n.impliedNodeFormat!==void 0||!t.some(e=>n.fileName.endsWith(e))||[`.d.ts`,`.ts`,`.tsx`,`.js`,`.jsx`].some(e=>n.fileName.endsWith(e)))return;let o=n.fileName+`.ts`,s=e.getImpliedNodeFormatForFileWorker?.(o,r,i,a)?.impliedNodeFormat;if(s!==void 0)return n.impliedNodeFormat=s,()=>n.impliedNodeFormat=void 0}})),w=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.transformCallHierarchyItem=a,e.transformDiagnostic=o,e.fillSourceFileText=s,e.transformFileTextChanges=c,e.transformDocumentSpan=l,e.transformSpan=u,e.transformTextChange=d,e.transformTextSpan=f,e.toSourceOffset=p,e.toSourceRanges=m,e.toSourceOffsets=h,e.toGeneratedRange=g,e.toGeneratedRanges=_,e.toGeneratedOffset=v,e.toGeneratedOffsets=y,e.getMappingOffset=b;let t=x(),n=C(),r=new WeakMap,i=new WeakSet;function a(e,t,n,r){let i=u(e,t.file,t.span,n,r),a=u(e,t.file,t.selectionSpan,n,r);return{...t,file:i?.fileName??t.file,span:i?.textSpan??{start:0,length:0},selectionSpan:a?.textSpan??{start:0,length:0}}}function o(e,i,a,c){if(!r.has(i)){r.set(i,void 0);let{relatedInformation:l}=i;if(l&&(i.relatedInformation=l.map(t=>o(e,t,a,c)).filter(e=>!!e)),i.file!==void 0&&i.start!==void 0&&i.length!==void 0){let[o]=(0,n.getServiceScript)(e,i.file.fileName);if(o){let[n,l]=f(void 0,e,o,{start:i.start,length:i.length},!0,e=>(0,t.shouldReportDiagnostics)(e,String(i.source),String(i.code)))??[],u=n?i.file.fileName===n?i.file:a?.getSourceFile(n):void 0;l&&u&&(c&&s(e,i.file),r.set(i,{...i,file:u,start:l.start,length:l.length}))}else r.set(i,i)}else r.set(i,i)}return r.get(i)}function s(e,t){if(i.has(t))return;i.add(t);let[r]=(0,n.getServiceScript)(e,t.fileName);if(r&&!r.preventLeadingOffset){let n=e.scripts.fromVirtualCode(r.code);t.text=n.snapshot.getText(0,n.snapshot.getLength())+t.text.substring(n.snapshot.getLength())}}function c(e,t,r,i){let a={},o=new Set;for(let s of t){let[t,c]=(0,n.getServiceScript)(e,s.fileName);if(c)s.textChanges.forEach(t=>{let{fileName:n,textSpan:o}=u(e,s.fileName,t.span,r,i)??{};n&&o&&(a[n]??(a[n]=[])).push({...t,span:o})});else{let e=a[s.fileName]??(a[s.fileName]=[]);s.textChanges.forEach(t=>{e.push(t)}),s.isNewFile&&o.add(s.fileName)}}let s=[];for(let e in a)s.push({fileName:e,isNewFile:o.has(e),textChanges:a[e]});return s}function l(e,t,n,r,i){let a=u(e,t.fileName,t.textSpan,n,r);if(!a&&i&&(a={fileName:t.fileName,textSpan:{start:0,length:0}}),!a)return;let o=u(e,t.fileName,t.contextSpan,n,r),s=u(e,t.originalFileName,t.originalTextSpan,n,r),c=u(e,t.originalFileName,t.originalContextSpan,n,r);return{...t,fileName:a.fileName,textSpan:a.textSpan,contextSpan:o?.textSpan,originalFileName:s?.fileName,originalTextSpan:s?.textSpan,originalContextSpan:c?.textSpan}}function u(e,t,r,i,a){if(!t||!r)return;let[o]=(0,n.getServiceScript)(e,t);if(o){let[t,n]=f(void 0,e,o,r,i,a)??[];if(n&&t)return{fileName:t,textSpan:n}}else return{fileName:t,textSpan:r}}function d(e,t,n,r,i,a){let[o,s]=f(e,t,n,r.span,i,a)??[];if(s&&o)return[o,{newText:r.newText,span:s}]}function f(e,t,n,r,i,a){let o=r.start,s=r.start+r.length;for(let[r,c,l]of m(e,t,n,o,s,i,a))return[r,{start:c,length:l-c}]}function p(e,t,n,r,i){for(let a of h(e,t,n,r,i))return a}function*m(e,t,n,r,i,a,o){if(e){let s=t.maps.get(n.code,e);for(let[c,l]of s.toSourceRange(r-b(t,n),i-b(t,n),a,o))yield[e.id,c,l]}else for(let[e,s]of t.maps.forEach(n.code))for(let[c,l]of s.toSourceRange(r-b(t,n),i-b(t,n),a,o))yield[e.id,c,l]}function*h(e,t,n,r,i){if(e){let a=t.maps.get(n.code,e);for(let[o,s]of a.toSourceLocation(r-b(t,n)))i(s.data)&&(yield[e.id,o])}else for(let[e,a]of t.maps.forEach(n.code))for(let[o,s]of a.toSourceLocation(r-b(t,n)))i(s.data)&&(yield[e.id,o])}function g(e,t,n,r,i,a){for(let o of _(e,t,n,r,i,a))return o}function*_(e,t,n,r,i,a){let o=e.maps.get(t.code,n);for(let[n,s]of o.toGeneratedRange(r,i,!0,a))yield[n+b(e,t),s+b(e,t)]}function v(e,t,n,r,i){for(let[a]of y(e,t,n,r,i))return a}function*y(e,t,n,r,i){let a=e.maps.get(t.code,n);for(let[n,o]of a.toGeneratedLocation(r))i(o.data)&&(yield[n+b(e,t),o])}function b(e,t){return t.preventLeadingOffset?0:e.scripts.fromVirtualCode(t.code).snapshot.getLength()}})),T=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createProxyLanguageService=o;let t=x(),n=S(),r=w(),i=C(),a=/\\/g;function o(e){let t=new Map,n;return{initialize(t){n=(n,r)=>{switch(r){case`getNavigationTree`:return s(t,n[r]);case`getOutliningSpans`:return c(t,n[r]);case`getFormattingEditsForDocument`:return l(t,n[r]);case`getFormattingEditsForRange`:return u(t,n[r]);case`getFormattingEditsAfterKeystroke`:return d(t,n[r]);case`getEditsForFileRename`:return f(t,n[r]);case`getLinkedEditingRangeAtPosition`:return p(t,n[r]);case`prepareCallHierarchy`:return m(t,n[r]);case`provideCallHierarchyIncomingCalls`:return h(t,n[r]);case`provideCallHierarchyOutgoingCalls`:return g(t,n[r]);case`organizeImports`:return _(t,n[r]);case`getQuickInfoAtPosition`:return v(t,n[r]);case`getSignatureHelpItems`:return y(t,n[r]);case`getDocumentHighlights`:return b(t,n[r]);case`getApplicableRefactors`:return T(t,n[r]);case`getEditsForRefactor`:return E(t,n[r]);case`getCombinedCodeFix`:return D(t,n[r]);case`getRenameInfo`:return O(t,n[r]);case`getCodeFixesAtPosition`:return k(t,n[r]);case`getEncodedSemanticClassifications`:return A(t,n[r]);case`getSyntacticDiagnostics`:return j(t,e,n[r]);case`getSemanticDiagnostics`:return M(t,e,n[r]);case`getSuggestionDiagnostics`:return N(t,e,n[r]);case`getDefinitionAndBoundSpan`:return P(t,n[r]);case`findReferences`:return F(t,n[r]);case`getDefinitionAtPosition`:return I(t,n[r]);case`getTypeDefinitionAtPosition`:return L(t,n[r]);case`getImplementationAtPosition`:return R(t,n[r]);case`findRenameLocations`:return z(t,n[r]);case`getReferencesAtPosition`:return B(t,n[r]);case`getCompletionsAtPosition`:return V(t,n[r]);case`getCompletionEntryDetails`:return H(t,n[r]);case`provideInlayHints`:return U(t,n[r]);case`getFileReferences`:return W(t,n[r]);case`getNavigateToItems`:return G(t,n[r])}}},proxy:new Proxy(e,{get(e,r,i){if(n){t.has(r)||t.set(r,n(e,r));let i=t.get(r);if(i)return i}return Reflect.get(e,r,i)},set(e,t,n,r){return Reflect.set(e,t,n,r)}})}}function s(e,t){return n=>{let r=n.replace(a,`/`),[o,s]=(0,i.getServiceScript)(e,r);if(o||s?.associatedOnly){let e=t(s.id);return e.childItems=void 0,e}else return t(r)}}function c(e,t){return n=>{let r=n.replace(a,`/`),[o,s]=(0,i.getServiceScript)(e,r);return o||s?.associatedOnly?[]:t(r)}}function l(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);return u?.associatedOnly?[]:l?e.maps.get(l.code,u).mappings.some(e=>(0,t.isFormattingEnabled)(e.data))?n(u.id,s).map(n=>(0,r.transformTextChange)(d,e,l,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e):[]:n(c,s)}}function u(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(f?.associatedOnly)return[];if(d){let i=(0,r.toGeneratedRange)(e,d,p,s,c,t.isFormattingEnabled);return i===void 0?[]:n(f.id,i[0],i[1],l).map(n=>(0,r.transformTextChange)(p,e,d,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e)}else return n(u,s,c,l)}}function d(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(f?.associatedOnly)return[];if(d){let i=(0,r.toGeneratedOffset)(e,d,p,s,t.isFormattingEnabled);return i===void 0?[]:n(f.id,i,c,l).map(n=>(0,r.transformTextChange)(p,e,d,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e)}else return n(u,s,c,l)}}function f(e,n){return(i,a,o,s)=>{let c=n(i,a,o,s);return(0,r.transformFileTextChanges)(e,c,!1,t.isRenameEnabled)}}function p(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);if(!u?.associatedOnly)if(l){let i=(0,r.toGeneratedOffset)(e,l,d,s,t.isLinkedEditingEnabled);if(i!==void 0){let a=n(u.id,i);if(a)return{ranges:a.ranges.map(n=>(0,r.transformTextSpan)(d,e,l,n,!1,t.isLinkedEditingEnabled)?.[1]).filter(e=>!!e),wordPattern:a.wordPattern}}}else return n(c,s)}}function m(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);if(!u?.associatedOnly)if(l){let i=(0,r.toGeneratedOffset)(e,l,d,s,t.isCallHierarchyEnabled);if(i!==void 0){let a=n(u.id,i);if(Array.isArray(a))return a.map(n=>(0,r.transformCallHierarchyItem)(e,n,!0,t.isCallHierarchyEnabled));if(a)return(0,r.transformCallHierarchyItem)(e,a,!0,t.isCallHierarchyEnabled)}}else return n(c,s)}}function h(e,n){return(o,s)=>{let c=[],l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isCallHierarchyEnabled);i!==void 0&&(c=n(d.id,i))}else c=n(l,s);return c.map(n=>({from:(0,r.transformCallHierarchyItem)(e,n.from,!0,t.isCallHierarchyEnabled),fromSpans:n.fromSpans.map(i=>(0,r.transformSpan)(e,n.from.file,i,!0,t.isCallHierarchyEnabled)?.textSpan).filter(e=>!!e)}))}}function g(e,n){return(o,s)=>{let c=[],l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isCallHierarchyEnabled);i!==void 0&&(c=n(d.id,i))}else c=n(l,s);return c.map(n=>({to:(0,r.transformCallHierarchyItem)(e,n.to,!0,t.isCallHierarchyEnabled),fromSpans:n.fromSpans.map(n=>u?(0,r.transformTextSpan)(f,e,u,n,!0,t.isCallHierarchyEnabled)?.[1]:n).filter(e=>!!e)}))}}function _(e,n){return(i,a,o)=>{let s=n(i,a,o);return(0,r.transformFileTextChanges)(e,s,!1,t.isCodeActionsEnabled)}}function v(e,n){return(o,s,...c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(!d?.associatedOnly)if(u){let i=[];for(let[a]of(0,r.toGeneratedOffsets)(e,u,f,s,t.isHoverEnabled)){let o=n(d.id,a,...c);if(o){let n=(0,r.transformTextSpan)(f,e,u,o.textSpan,!0,t.isHoverEnabled)?.[1];n&&i.push({...o,textSpan:n})}}if(i.length===1)return i[0];if(i.length>=2){let e={...i[0]};e.displayParts=e.displayParts?.slice(),e.documentation=e.documentation?.slice(),e.tags=e.tags?.slice();let t=new Set([q(i[0].displayParts)]),n=new Set([q(i[0].documentation)]),r=new Set;for(let e of i[0].tags??[])r.add(e.name+`__volar__`+q(e.text));for(let a=1;a<i.length;a++){let{displayParts:o,documentation:s,tags:c}=i[a];o?.length&&!t.has(q(o))&&(t.add(q(o)),e.displayParts??=[],e.displayParts.push({...o[0],text:`
|
|
2
|
+
|
|
3
|
+
`+o[0].text}),e.displayParts.push(...o.slice(1))),s?.length&&!n.has(q(s))&&(n.add(q(s)),e.documentation??=[],e.documentation.push({...s[0],text:`
|
|
4
|
+
|
|
5
|
+
`+s[0].text}),e.documentation.push(...s.slice(1)));for(let t of c??[])r.has(t.name+`__volar__`+q(t.text))||(r.add(t.name+`__volar__`+q(t.text)),e.tags??=[],e.tags.push(t))}return e}}else return n(l,s,...c)}}function y(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(!d?.associatedOnly)if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isSignatureHelpEnabled);if(i!==void 0){let a=n(d.id,i,c);if(a){let n=(0,r.transformTextSpan)(f,e,u,a.applicableSpan,!0,t.isSignatureHelpEnabled)?.[1];if(n)return{...a,applicableSpan:n}}}}else return n(l,s,c)}}function b(e,n){return(i,o,s)=>K(e,i.replace(a,`/`),o,t.isHighlightEnabled,(e,t)=>n(e,t,s),function*(e){for(let t of e)for(let e of t.highlightSpans)yield[e.fileName??t.fileName,e.textSpan.start]}).flat().map(n=>({...n,highlightSpans:n.highlightSpans.map(i=>{let{textSpan:a}=(0,r.transformSpan)(e,i.fileName??n.fileName,i.textSpan,!1,t.isHighlightEnabled)??{};if(a)return{...i,contextSpan:(0,r.transformSpan)(e,i.fileName??n.fileName,i.contextSpan,!1,t.isHighlightEnabled)?.textSpan,textSpan:a}}).filter(e=>!!e)}))}function T(e,n){return(o,s,c,l,u,d)=>{let f=o.replace(a,`/`),[p,m,h]=(0,i.getServiceScript)(e,f);if(m?.associatedOnly)return[];if(p){if(typeof s==`number`){let i=(0,r.toGeneratedOffset)(e,p,h,s,t.isCodeActionsEnabled);if(i!==void 0)return n(m.id,i,c,l,u,d)}else for(let[i,a]of(0,r.toGeneratedRanges)(e,p,h,s.pos,s.end,t.isCodeActionsEnabled))return n(m.id,{pos:i,end:a},c,l,u,d);return[]}else return n(f,s,c,l,u,d)}}function E(e,n){return(o,s,c,l,u,d,f)=>{let p,m=o.replace(a,`/`),[h,g,_]=(0,i.getServiceScript)(e,m);if(!g?.associatedOnly){if(h)if(typeof c==`number`){let i=(0,r.toGeneratedOffset)(e,h,_,c,t.isCodeActionsEnabled);i!==void 0&&(p=n(g.id,s,i,l,u,d,f))}else for(let[i,a]of(0,r.toGeneratedRanges)(e,h,_,c.pos,c.end,t.isCodeActionsEnabled))p=n(g.id,s,{pos:i,end:a},l,u,d,f);else p=n(m,s,c,l,u,d,f);if(p)return p.edits=(0,r.transformFileTextChanges)(e,p.edits,!1,t.isCodeActionsEnabled),p}}}function D(e,n){return(...i)=>{let a=n(...i);return a.changes=(0,r.transformFileTextChanges)(e,a.changes,!1,t.isCodeActionsEnabled),a}}function O(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return{canRename:!1,localizedErrorMessage:`Cannot rename`};if(u){let i;for(let[a]of(0,r.toGeneratedOffsets)(e,u,f,s,t.isRenameEnabled)){let o=n(d.id,a,c);if(o.canRename){let n=(0,r.transformTextSpan)(f,e,u,o.triggerSpan,!1,t.isRenameEnabled)?.[1];if(n)return o.triggerSpan=n,o}else i=o}return i||{canRename:!1,localizedErrorMessage:`Failed to get rename locations`}}else return n(l,s,c)}}function k(e,n){return(o,s,c,l,u,d)=>{let f=[],p=o.replace(a,`/`),[m,h,g]=(0,i.getServiceScript)(e,p);if(h?.associatedOnly)return[];if(m){let i=(0,r.toGeneratedRange)(e,m,g,s,c,t.isCodeActionsEnabled);i!==void 0&&(f=n(h.id,i[0],i[1],l,u,d))}else f=n(p,s,c,l,u,d);return f=f.map(n=>(n.changes=(0,r.transformFileTextChanges)(e,n.changes,!1,t.isCodeActionsEnabled),n)),f}}function A(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return{spans:[],endOfLineState:0};if(u){let i=e.maps.get(u.code,d),a=(0,t.findOverlapCodeRange)(s.start,s.start+s.length,i,t.isSemanticTokensEnabled);if(!a)return{spans:[],endOfLineState:0};let o=(0,r.getMappingOffset)(e,u),l=a.start+o,p=a.end+o,m=n(d.id,{start:l,length:p-l},c),h=[];for(let n=0;n<m.spans.length;n+=3)for(let[i,a,o]of(0,r.toSourceRanges)(f,e,u,m.spans[n],m.spans[n]+m.spans[n+1],!1,t.isSemanticTokensEnabled)){h.push(a,o-a,m.spans[n+2]);break}return m.spans=h,m}else return n(l,s,c)}}function j(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||e.scripts.get(t.file.fileName)===u)}}function M(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||!t.file||e.scripts.get(t.file.fileName)===u)}}function N(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||!t.file||e.scripts.get(t.file.fileName)===u)}}function P(e,i){return(o,s)=>{let c=o.replace(a,`/`),l=K(e,c,s,t.isDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e.definitions??[])yield[t.fileName,t.textSpan.start]}),u=l.map(n=>(0,r.transformSpan)(e,c,n.textSpan,!0,t.isDefinitionEnabled)?.textSpan).filter(e=>!!e)[0];if(!u)return;let d=l.map(n=>n.definitions?.map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isDefinitionEnabled,n.fileName!==c)).filter(e=>!!e)??[]).flat();return{textSpan:u,definitions:(0,n.dedupeDocumentSpans)(d)}}}function F(e,n){return(i,o)=>K(e,i.replace(a,`/`),o,t.isReferencesEnabled,(e,t)=>n(e,t),function*(e){for(let t of e)for(let e of t.references)yield[e.fileName,e.textSpan.start]}).flat().map(n=>({definition:(0,r.transformDocumentSpan)(e,n.definition,!0,t.isDefinitionEnabled,!0),references:n.references.map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e)}))}function I(e,i){return(o,s)=>{let c=o.replace(a,`/`),l=K(e,c,s,t.isDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isDefinitionEnabled,n.fileName!==c)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(l)}}function L(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isTypeDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isTypeDefinitionEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function R(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isImplementationEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isImplementationEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function z(e,i){return(o,s,c,l,u)=>{let d=K(e,o.replace(a,`/`),s,t.isRenameEnabled,(e,t)=>i(e,t,c,l,u),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!1,t.isRenameEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(d)}}function B(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isReferencesEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function V(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(!f?.associatedOnly)if(d){let i,a=[];for(let[o,u]of(0,r.toGeneratedOffsets)(e,d,p,s,t.isCompletionEnabled)){let s=typeof u.data.completion==`object`&&u.data.completion.isAdditional;if(!s&&i?.entries.length)continue;let m=n(f.id,o,c,l);if(m){typeof u.data.completion==`object`&&u.data.completion.onlyImport&&(m.entries=m.entries.filter(e=>!!e.sourceDisplay));for(let n of m.entries)n.replacementSpan=n.replacementSpan&&(0,r.transformTextSpan)(p,e,d,n.replacementSpan,!1,t.isCompletionEnabled)?.[1];m.optionalReplacementSpan=m.optionalReplacementSpan&&(0,r.transformTextSpan)(p,e,d,m.optionalReplacementSpan,!1,t.isCompletionEnabled)?.[1],s?a.push(m):i=m}}let o=a;if(i&&o.unshift(i),o.length)return{...o[0],entries:o.map(e=>e.entries).flat()}}else return n(u,s,c,l)}}function H(e,n){return(o,s,c,l,u,d,f)=>{let p,m=o.replace(a,`/`),[h,g,_]=(0,i.getServiceScript)(e,m);if(!g?.associatedOnly){if(h){let i=(0,r.toGeneratedOffset)(e,h,_,s,t.isCompletionEnabled);i!==void 0&&(p=n(g.id,i,c,l,u,d,f))}else return n(m,s,c,l,u,d,f);if(p?.codeActions)for(let n of p.codeActions)n.changes=(0,r.transformFileTextChanges)(e,n.changes,!1,t.isCompletionEnabled);return p}}}function U(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=e.maps.get(u.code,f),a=(0,t.findOverlapCodeRange)(s.start,s.start+s.length,i,t.isSemanticTokensEnabled);if(!a)return[];let o=(0,r.getMappingOffset)(e,u),l=a.start+o,p=a.end+o,m=n(d.id,{start:l,length:p-l},c),h=[];for(let n of m){let i=(0,r.toSourceOffset)(f,e,u,n.position,t.isInlayHintsEnabled);i!==void 0&&h.push({...n,position:i[1]})}return h}else return n(l,s,c)}}function W(e,i){return o=>{let s=i(o.replace(a,`/`)).map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(s)}}function G(e,i){return(...a)=>{let o=i(...a).map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(o)}}function K(e,t,n,a,o,s){let c=[],l=new Set,[u,d,f]=(0,i.getServiceScript)(e,t);if(u)for(let[t]of(0,r.toGeneratedOffsets)(e,u,f,n,a))p(d.id,t);else p(t,n);return c;function p(t,n){if(l.has(t+`:`+n))return;l.add(t+`:`+n);let a=o(t,n);if(a){c.push(a);for(let t of s(a)){l.add(t[0]+`:`+t[1]);let[n]=(0,i.getServiceScript)(e,t[0]);if(!n)continue;let a=e.linkedCodeMaps.get(n.code);if(!a)continue;let o=(0,r.getMappingOffset)(e,n);for(let e of a.getLinkedOffsets(t[1]-o))p(t[0],e+o)}}}}function q(e){return e?e.map(e=>e.text).join(``):``}})),E=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.resolveFileLanguageId=t;function t(e){switch(e.split(`.`).pop()){case`js`:return`javascript`;case`cjs`:return`javascript`;case`mjs`:return`javascript`;case`ts`:return`typescript`;case`cts`:return`typescript`;case`mts`:return`typescript`;case`jsx`:return`javascriptreact`;case`tsx`:return`typescriptreact`;case`json`:return`json`}}})),D=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createResolveModuleName=t;function t(e,t,n,r,i){let a=new Map,o={readFile:n.readFile.bind(n),directoryExists:n.directoryExists?.bind(n),realpath:n.realpath?.bind(n),getCurrentDirectory:n.getCurrentDirectory?.bind(n),getDirectories:n.getDirectories?.bind(n),useCaseSensitiveFileNames:typeof n.useCaseSensitiveFileNames==`function`?n.useCaseSensitiveFileNames.bind(n):n.useCaseSensitiveFileNames,fileExists(e){let t=n.fileExists(e);for(let{typescript:n}of r)if(n){if(!t)for(let{extension:t}of n.extraFileExtensions){if(!e.endsWith(`.d.${t}.ts`))continue;let n=e.slice(0,-`.d.${t}.ts`.length)+`.${t}`;if(s(n)){let t=i(n);if(t?.generated){let r=t.generated.languagePlugin.typescript?.getServiceScript(t.generated.root);if(r){let t=n+`.d.ts`;return(r.extension===`.js`||r.extension===`.jsx`)&&s(t)?a.set(e,{sourceFileName:t,extension:`.ts`}):a.set(e,{sourceFileName:n,extension:r.extension}),!0}}}}if(n.resolveHiddenExtensions&&e.endsWith(`.d.ts`))for(let{extension:t}of n.extraFileExtensions){let n=e.slice(0,-5)+`.${t}`;if(s(n)){let t=i(n);if(t?.generated){let r=t.generated.languagePlugin.typescript?.getServiceScript(t.generated.root);if(r)return a.set(e,{sourceFileName:n,extension:r.extension}),!0}}}}return t}};return(t,n,r,i,s,c)=>{let l=e.resolveModuleName(t,n,r,o,i,s,c);if(l.resolvedModule){let e=a.get(l.resolvedModule.resolvedFileName);e&&(l.resolvedModule.resolvedFileName=e.sourceFileName,l.resolvedModule.extension=e.extension)}return a.clear(),l};function s(e){return n.fileExists(e)?(t?.(e)??n.readFile(e)?.length??0)<4*1024*1024:!1}}})),O=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.decorateLanguageServiceHost=r,e.searchExternalFiles=i;let t=D(),n=C();function r(e,r,i){let a=r.plugins.map(e=>e.typescript?.extraFileExtensions.map(e=>`.`+e.extension)??[]).flat(),o=new Map,s=new Set,c=i.readDirectory?.bind(i),l=i.resolveModuleNameLiterals?.bind(i),u=i.resolveModuleNames?.bind(i),d=i.getScriptSnapshot.bind(i),f=i.getScriptKind?.bind(i);if(c&&(i.readDirectory=(e,t,n,r,i)=>{if(t)for(let e of a)t.includes(e)||(t=[...t,e]);return c(e,t,n,r,i)}),a.length){let o=(0,t.createResolveModuleName)(e,e.sys.getFileSize,i,r.plugins,e=>r.scripts.get(e)),s=i.getModuleResolutionCache?.();l&&(i.resolveModuleNameLiterals=(t,r,c,u,d,...f)=>{let p=(0,n.fixupImpliedNodeFormatForFile)(e,a,d,s?.getPackageJsonInfoCache(),i,u);try{return t.every(e=>!a.some(t=>e.text.endsWith(t)))?l(t,r,c,u,d,...f):t.map(t=>{let n=e.getModeForUsageLocation(d,t,u);return o(t.text,r,u,s,c,n)})}finally{p?.()}}),u&&(i.resolveModuleNames=(e,t,n,r,i,c)=>e.every(e=>!a.some(t=>e.endsWith(t)))?u(e,t,n,r,i,c):e.map(e=>o(e,t,i,s,r).resolvedModule))}i.getScriptSnapshot=e=>{let t=p(e,!0);return t?t.snapshot:d(e)},f&&(i.getScriptKind=e=>{let t=p(e,!1);return t?t.scriptKind:f(e)});function p(t,n){if(s.has(t))return;let a;try{a=i.getScriptVersion(t)}catch{s.add(t)}if(a===void 0)return;let c=o.get(t);if(!c||c[0]!==a){c=[a];let i=r.scripts.get(t,void 0,n);if(i?.generated){let t=i.generated.languagePlugin.typescript?.getServiceScript(i.generated.root);if(t)if(t.preventLeadingOffset)c[1]={extension:t.extension,scriptKind:t.scriptKind,snapshot:t.code.snapshot};else{let n=i.snapshot.getText(0,i.snapshot.getLength()).split(`
|
|
6
|
+
`).map(e=>` `.repeat(e.length)).join(`
|
|
7
|
+
`)+t.code.snapshot.getText(0,t.code.snapshot.getLength());c[1]={extension:t.extension,scriptKind:t.scriptKind,snapshot:e.ScriptSnapshot.fromString(n)}}i.generated.languagePlugin.typescript?.getExtraServiceScripts&&console.warn(`getExtraServiceScripts() is not available in TS plugin.`)}o.set(t,c)}return c[1]}}function i(e,t,n){if(t.projectKind!==e.server.ProjectKind.Configured)return[];let r=t.getProjectName(),i=e.readJsonConfigFile(r,t.readFile.bind(t)),a={useCaseSensitiveFileNames:t.useCaseSensitiveFileNames(),fileExists:t.fileExists.bind(t),readFile:t.readFile.bind(t),readDirectory:(...e)=>(e[1]=n,t.readDirectory(...e))};return e.parseJsonSourceFileConfigFileContent(i,a,t.getCurrentDirectory()).fileNames}})),k=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.makeGetExternalFiles=e.decoratedLanguageServiceHosts=e.decoratedLanguageServices=e.projectExternalFileExtensions=e.externalFiles=void 0,e.makeGetScriptInfoWithLargeFileFailsafe=i,e.createLanguageCommon=a,e.isHasAlreadyDecoratedLanguageService=s;let t=x(),n=E(),r=O();e.externalFiles=new WeakMap,e.projectExternalFileExtensions=new WeakMap,e.decoratedLanguageServices=new WeakSet,e.decoratedLanguageServiceHosts=new WeakSet;function i(e){return t=>{try{return e.project.getScriptInfo(t)}catch{}}}function a(e,a,o,s){let c=o.languageServiceHost.getScriptSnapshot.bind(o.languageServiceHost),l=i(o),u=(0,t.createLanguage)([...e.languagePlugins,{getLanguageId:n.resolveFileLanguageId}],new t.FileMap(a.sys.useCaseSensitiveFileNames),(e,t,n)=>{let r;n?r=c(e):(r=l(e)?.getSnapshot(),r||=(o.project.getScriptVersion(e),l(e)?.getSnapshot())),r?u.scripts.set(e,r):u.scripts.delete(e)},e=>{o.session.change({file:e,line:1,offset:1,endLine:1,endOffset:1,insertString:``})});s(u),(0,r.decorateLanguageServiceHost)(a,u,o.languageServiceHost),e.setup?.(u)}e.makeGetExternalFiles=t=>(n,i=0)=>{if(i>=1||!e.externalFiles.has(n)){let i=e.externalFiles.get(n),a=e.projectExternalFileExtensions.get(n),s=a?.length?(0,r.searchExternalFiles)(t,n,a):[];e.externalFiles.set(n,s),i&&!o(i,s)&&n.refreshDiagnostics()}return e.externalFiles.get(n)};function o(e,t){if(e.length!==t.length)return!1;let n=new Set(e);for(let e of t)if(!n.has(e))return!1;return!0}function s(t){return e.decoratedLanguageServices.has(t.languageService)||e.decoratedLanguageServiceHosts.has(t.languageServiceHost)?!0:(e.decoratedLanguageServices.add(t.languageService),e.decoratedLanguageServiceHosts.add(t.languageServiceHost),!1)}})),A=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createLanguageServicePlugin=r;let t=T(),n=k();function r(e){return r=>{let{typescript:i}=r;return{create(r){if(!(0,n.isHasAlreadyDecoratedLanguageService)(r)){let a=e(i,r),o=a.languagePlugins.map(e=>e.typescript?.extraFileExtensions.map(e=>`.`+e.extension)??[]).flat();n.projectExternalFileExtensions.set(r.project,o);let{proxy:s,initialize:c}=(0,t.createProxyLanguageService)(r.languageService);r.languageService=s,(0,n.createLanguageCommon)(a,i,r,c)}return r.languageService},getExternalFiles:(0,n.makeGetExternalFiles)(i)}}}}))(),j=x();const M=process.env.RIPPLE_DEBUG===`true`;function N(e){return{log(...t){M&&console.log(e,...t)},logError(...t){M&&console.error(e,...t)},logWarning(...t){M&&console.warn(e,...t)}}}const P=(0,d.createRequire)(require(`url`).pathToFileURL(__filename).href),F=u.default.dirname((0,f.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),{log:I,logWarning:L,logError:R}=N(`[Ripple Language]`),z=[`.tsrx`],B=[[`@tsrx/ripple`,[`node_modules`,`@tsrx`,`ripple`],[`.tsrx`],[`@tsrx/ripple`,`ripple`,`@ripple-ts/vite-plugin`,`@ripple-ts/compat-react`]],[`@tsrx/react`,[`node_modules`,`@tsrx`,`react`],[`.tsrx`],[`@tsrx/react`,`@tsrx/vite-plugin-react`]]];function V(e){return z.some(t=>e.endsWith(t))}function H(){return I(`Creating Ripple language plugin...`),{getLanguageId(e){let t=typeof e==`string`?e:e.fsPath.replace(/\\/g,`/`);if(V(t))return I(`Identified Ripple file:`,t),`ripple`},createVirtualCode(e,t,n){if(t===`ripple`){let t=J(e),r=Z(t);if(!r){R(`Ripple compiler not found for file: ${t}`);return}I(`Creating virtual code for:`,t);try{return new U(t,n,r)}catch(e){throw R(`Failed to create virtual code for:`,t,`:`,e),e}}},updateVirtualCode(e,t,n){if(t instanceof U)return I(`Updating existing virtual code for:`,t.fileName),t.update(n),t},typescript:{extraFileExtensions:z.map(e=>({extension:e.slice(1),isMixedContent:!1,scriptKind:7})),getServiceScript(e){for(let t of(0,j.forEachEmbeddedCode)(e))if(t.languageId===`ripple`)return{code:t,extension:`.tsx`,scriptKind:4}}}}}var U=class{id=`root`;languageId=`ripple`;codegenStacks=[];tsrx;generatedCode=``;embeddedCodes=[];mappings=[];fatalErrors=[];usageErrors=[];snapshot;sourceSnapshot;originalCode=``;diagnostics=[];#e=null;#t=null;constructor(e,t,n){if(I(`Initializing TSRXVirtualCode for:`,e),this.fileName=e,this.tsrx=n,this.snapshot=t,this.sourceSnapshot=t,this.originalCode=t.getText(0,t.getLength()),!n||typeof n.compile_to_volar_mappings!=`function`)throw R(`Invalid ripple compiler - missing compile_to_volar_mappings method`),Error(`Invalid ripple compiler`);this.update(t)}update(e){I(`Updating virtual code for:`,this.fileName);let t=e.getText(0,e.getLength()),n=e.getChangeRange(this.sourceSnapshot);this.sourceSnapshot=e,this.#e=null,this.#t=null,this.fatalErrors=[],this.usageErrors=[];let r,i=!1,a=-1;if(I(`changeRange:`,JSON.stringify(n)),n){let e=n.span.start,r=e+n.span.length,o=e+n.newLength,s=this.originalCode.substring(e,r),c=t.substring(e,o);if(I(`Change details:`),I(` Position:`,e,`-`,r,`(length:`,n.span.length,`)`),I(` Old text:`,JSON.stringify(s)),I(` New text:`,JSON.stringify(c),`(length:`,n.newLength,`)`),c.endsWith(`.`)){let e=o>1?t[o-2]:``;I(` Char before dot:`,JSON.stringify(e)),/[$#_\u200C\u200D\p{ID_Continue}\)\]\}]/u.test(e)&&(i=!0,a=o-1,I(`ChangeRange detected dot typed at position`,a))}}try{if(i&&a>=0){let e=t.substring(0,a)+t.substring(a+1);if(I(`Compiling without typed dot at position`,a),r=this.tsrx.compile_to_volar_mappings(e,this.fileName,{loose:!0}),I(`Compilation without dot successful`),r&&r.code&&r.mappings.length>0){let e=G(r,a);e===null?L(`Failed to restore typed dot into transpiled output`):I(`Inserted typed dot at generated position`,e)}}else I(`Compiling Ripple code...`),r=this.tsrx.compile_to_volar_mappings(t,this.fileName,{loose:!0}),I(`Compilation successful, generated code length:`,r?.code?.length||0)}catch(e){let t=e;R(`Ripple compilation failed for`,this.fileName,`:`,t),t.type=`fatal`,this.fatalErrors.push(t)}if(r&&r.code){this.originalCode=t,this.generatedCode=r.code,this.mappings=r.mappings??[],this.usageErrors=r.errors;let e=r.cssMappings;if(e.length>0?(I(`Creating`,e.length,`CSS embedded codes`),this.embeddedCodes=e.map((e,t)=>{let n=e.data?.customData?.content;return I(`CSS region ${t}: \
|
|
8
|
+
offset ${e.sourceOffsets[0]}-${e.sourceOffsets[0]+e.lengths[0]}, \
|
|
9
|
+
length ${e.lengths[0]}`),{id:e.data?.customData?.embeddedId,languageId:`css`,snapshot:{getText:(e,t)=>n.substring(e,t),getLength:()=>e.lengths[0],getChangeRange:()=>void 0},mappings:[e],embeddedCodes:[]}})):this.embeddedCodes=[],M){I(`CSS embedded codes:`,(this.embeddedCodes||[]).length),I(`Using transpiled code, mapping count:`,this.mappings.length),I(`Original code length:`,t.length),I(`Generated code length:`,this.generatedCode.length),I(`Last 100 chars of original:`,JSON.stringify(t.slice(-100))),I(`Last 200 chars of generated:`,JSON.stringify(this.generatedCode.slice(-200))),I(`Last few mappings:`);let e=Math.max(0,this.mappings.length-5);for(let t=e;t<this.mappings.length;t++){let e=this.mappings[t];I(` Mapping ${t}: source[${e.sourceOffsets[0]}:${e.sourceOffsets[0]+e.lengths[0]}] -> gen[${e.generatedOffsets[0]}:${e.generatedOffsets[0]+e.lengths[0]}], len=${e.lengths[0]}, completion=${e.data?.completion}`)}}this.snapshot={getText:(e,t)=>this.generatedCode.substring(e,t),getLength:()=>this.generatedCode.length,getChangeRange:()=>void 0}}else I(`Compilation failed, only display where the compilation error occurred.`),this.originalCode=t,this.generatedCode=t,this.mappings=[{sourceOffsets:[0],generatedOffsets:[0],lengths:[t.length],generatedLengths:[t.length],data:{verification:!0,customData:{}}}],this.embeddedCodes=W(t),this.snapshot={getText:(e,t)=>this.generatedCode.substring(e,t),getLength:()=>this.generatedCode.length,getChangeRange:()=>void 0}}#n(){if(!(this.#e||this.#t)){this.#e=new Map,this.#t=new Map;for(var e,t,n,r,i,a,o,s,c,l=0;l<this.mappings.length;l++)e=this.mappings[l],t=e.generatedOffsets[0],n=e.generatedLengths[0],r=t+n,i=`${t}-${r}`,this.#e.set(i,e),a=e.sourceOffsets[0],o=e.lengths[0],s=a+o,c=`${a}-${s}`,this.#t.set(c,e)}}findMappingByGeneratedRange(e,t){return this.#n(),this.#e.get(`${e}-${t}`)??null}findMappingBySourceRange(e,t){return this.#n(),this.#t.get(`${e}-${t}`)??null}};function W(e){let t=[],n=/<style\b[^>]*>([\s\S]*?)<\/style>/gi,r,i=0;for(;(r=n.exec(e))!==null;){let e=r[0],n=r[1],a=r.index+(e.indexOf(`>`)+1),o=n.length;I(`Extracted CSS region ${i}: offset ${a}, length ${o}`);let s={sourceOffsets:[a],generatedOffsets:[0],lengths:[o],generatedLengths:[o],data:{verification:!0,completion:!0,semantic:!0,navigation:!0,structure:!0,format:!1,customData:{content:n,embeddedId:`style_${i}`}}};t.push({id:`style_${i}`,languageId:`css`,snapshot:{getText:(e,t)=>n.substring(e,t),getLength:()=>o,getChangeRange:()=>void 0},mappings:[s],embeddedCodes:[]}),i++}return t.length>0&&I(`Extracted ${t.length} CSS embedded codes from style tags`),t}function G(e,t){let n=null;for(let r of e.mappings)if(r.sourceOffsets[0]+r.lengths[0]===t){n=r;break}if(!n)return null;let r=n.generatedLengths[0],i=n.generatedOffsets[0]+r;e.code=e.code.substring(0,i)+`.`+e.code.substring(i);let a={sourceOffsets:[t],generatedOffsets:[i],lengths:[1],generatedLengths:[1],data:{...n.data}},o=e.mappings.indexOf(n);e.mappings.splice(o+1,0,a);for(let r of e.mappings)r!==n&&r!==a&&r.generatedOffsets[0]>=i&&(r.generatedOffsets[0]+=1),r!==n&&r!==a&&r.sourceOffsets[0]>=t&&(r.sourceOffsets[0]+=1);return i}const K=new Map,q=new Map;function J(e){return typeof e==`string`?e:e.fsPath.replace(/\\/g,`/`)}function Y(e,t=l.default.existsSync){let n=e,r=[];for(;n;){if(q.has(n)){let e=q.get(n)??null;for(let t of r)q.set(t,e);return e}r.push(n);let e=u.default.join(n,`package.json`);if(t(e))try{let t=JSON.parse(l.default.readFileSync(e,`utf8`)),n=new Set([...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{}),...Object.keys(t.optionalDependencies??{})]),i={name:typeof t.name==`string`?t.name:null,dependencies:n};for(let e of r)q.set(e,i);return i}catch{for(let e of r)q.set(e,null);return null}let i=u.default.dirname(n);if(i===n)break;n=i}for(let e of r)q.set(e,null);return null}function X(e,t,n){if(!e)return!1;if(e.name===t||n.includes(e.name??``)||e.dependencies.has(t))return!0;for(let t of n)if(e.dependencies.has(t))return!0;return!1}function Z(e){let t=$(e);if(t)return P(t)}function Q(e,t=l.default.existsSync,n=K){let r=e.split(`/`),i=u.default.extname(e);for(let e=r.length-2;e>=0;e--){let a=r.slice(0,e+1).join(`/`),o=a+`\0`+i;if(!n.has(o)){let e=[];for(let[n,r,o,s]of B){if(!o.includes(i))continue;let c=[a,...r,`src`,`index.js`].join(`/`);t(c)&&e.push([n,c,s])}let r=null;if(e.length>0){let n=Y(a,t);r=e.find(([e,,t])=>X(n,e,t))?.[1]??e[0][1],I(`Found tsrx compiler at:`,r,`for extension:`,i)}n.set(o,r)}let s=n.get(o);if(s)return s}}function $(e){let t=u.default.extname(e),n=Y(u.default.dirname(e)),r=Q(e);if(r)return r;let i=`No supported tsrx compiler found in workspace for ${e}.`,a=F;for(;a;){let e=[];for(let[n,r,i,o]of B){if(!i.includes(t))continue;let s=u.default.join(a,...r),c=u.default.join(s,`src`,`index.js`);l.default.existsSync(c)&&e.push([n,c,o])}if(e.length>0){let t=e.find(([e,,t])=>X(n,e,t))?.[1]??e[0][1];return L(`${i} Using packaged version at ${t}`),t}let r=u.default.dirname(a);if(r===a)break;a=r}}var ee=(0,A.createLanguageServicePlugin)(()=>({languagePlugins:[H()]}));module.exports=ee;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|