@motionscript/code 0.1.0-alpha.0 → 0.1.0-alpha.5

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 (65) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/LICENSE +201 -201
  3. package/NOTICE +48 -0
  4. package/README.md +161 -77
  5. package/dist/browser/THIRD_PARTY_LICENSES.txt +431 -0
  6. package/dist/browser/index.js +7 -7
  7. package/dist/browser/index.js.map +3 -3
  8. package/dist/browser/manifest.json +85 -3
  9. package/dist/code-range.d.ts +7 -1
  10. package/dist/code-range.d.ts.map +1 -1
  11. package/dist/code-range.js +9 -1
  12. package/dist/code-range.js.map +1 -1
  13. package/dist/diff.d.ts +14 -0
  14. package/dist/diff.d.ts.map +1 -1
  15. package/dist/diff.js +134 -2
  16. package/dist/diff.js.map +1 -1
  17. package/dist/engine.d.ts +1 -1
  18. package/dist/engine.d.ts.map +1 -1
  19. package/dist/engine.js +1 -1
  20. package/dist/engine.js.map +1 -1
  21. package/dist/highlight.d.ts +10 -2
  22. package/dist/highlight.d.ts.map +1 -1
  23. package/dist/highlight.js +40 -6
  24. package/dist/highlight.js.map +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/layout.d.ts +1 -1
  27. package/dist/layout.d.ts.map +1 -1
  28. package/dist/layout.js.map +1 -1
  29. package/dist/measure-cache.d.ts +1 -1
  30. package/dist/measure-cache.d.ts.map +1 -1
  31. package/dist/measure-cache.js.map +1 -1
  32. package/dist/node.d.ts +62 -7
  33. package/dist/node.d.ts.map +1 -1
  34. package/dist/node.js +224 -42
  35. package/dist/node.js.map +1 -1
  36. package/dist/nodes.js.map +1 -1
  37. package/dist/render.d.ts +7 -2
  38. package/dist/render.d.ts.map +1 -1
  39. package/dist/render.js +60 -1
  40. package/dist/render.js.map +1 -1
  41. package/dist/style.d.ts +3 -3
  42. package/dist/style.d.ts.map +1 -1
  43. package/dist/style.js +10 -6
  44. package/dist/style.js.map +1 -1
  45. package/dist/tokens.d.ts.map +1 -1
  46. package/dist/tokens.js +5 -1
  47. package/dist/tokens.js.map +1 -1
  48. package/dist/transitions.d.ts +19 -1
  49. package/dist/transitions.d.ts.map +1 -1
  50. package/dist/transitions.js.map +1 -1
  51. package/package.json +7 -4
  52. package/registry.json +6 -6
  53. package/src/code-range.ts +165 -156
  54. package/src/diff.ts +351 -216
  55. package/src/engine.ts +21 -21
  56. package/src/highlight.ts +340 -291
  57. package/src/index.ts +3 -3
  58. package/src/layout.ts +157 -157
  59. package/src/measure-cache.ts +0 -0
  60. package/src/node.ts +1038 -834
  61. package/src/nodes.ts +18 -18
  62. package/src/render.ts +312 -247
  63. package/src/style.ts +255 -251
  64. package/src/tokens.ts +79 -75
  65. package/src/transitions.ts +204 -184
package/README.md CHANGED
@@ -1,77 +1,161 @@
1
- # @motionscript/code
2
-
3
- Animated, syntax-highlighted code blocks for [Motion Script](https://motionscript.dev).
4
- The `Code` node tokenizes source with [Shiki](https://shiki.style) and animates
5
- edits at the token level, so appending, inserting, removing, replacing, and
6
- highlighting code all morph smoothly instead of snapping.
7
-
8
- ```tsx
9
- import { createScene, createRef } from '@motionscript/core';
10
- import { Code, lines, word } from '@motionscript/code';
11
-
12
- export default createScene(function* (stage) {
13
- const code = createRef<Code>();
14
-
15
- stage.add(
16
- <Code
17
- ref={code}
18
- language="typescript"
19
- theme="github-dark"
20
- fontSize={28}
21
- code={`function greet(name) {\n return "hi";\n}`}
22
- />,
23
- );
24
-
25
- yield* code().append('\ngreet("world");', 0.6);
26
- yield* code().highlight(lines(2), 0.4);
27
- yield* code().replace(word(2, 10, 4), '`hi, ${name}`', 0.6);
28
- });
29
- ```
30
-
31
- ## What's in here
32
-
33
- - **`Code`** node, a hugging block of syntax-highlighted source. Set `code`,
34
- `language`, and `theme` to switch what is shown; tune `fontSize`,
35
- `fontFamily`, `lineHeight`, `letterSpacing`, `showLineNumbers`,
36
- `lineNumberGap`, and `padding` for layout.
37
- - **Token-level transitions**, generator methods you `yield*` from a scene:
38
- - `append(code, duration)` / `prepend(code, duration)`, fade in lines at the
39
- end or start.
40
- - `insert([line, col], code, duration)`, splice code into a line or grow new
41
- lines mid-document.
42
- - `remove(range, duration)`, collapse tokens (and whole lines) so surrounding
43
- text reflows.
44
- - `replace(range, next, duration)`, cross-fade old tokens out and new ones in.
45
- - `highlight(range, duration)` / `resetHighlight(duration)`, dim everything
46
- outside the range, then restore it.
47
- - **Range helpers**, `word(line, col, length)`, `lines(from, to)`, and
48
- `range(startLine, startCol, endLine, endCol)` build the `CodeRange` values the
49
- transitions take. `findFirstRange`, `findRangeAt`, and `findAllRanges` locate
50
- ranges by matching literal text.
51
- - **`initSyntaxHighlighter(themes, langs)`**, optional preloading of Shiki
52
- themes and languages so the first frame renders fully highlighted.
53
-
54
- Every token keeps a stable identity across edits, so concurrent animations at
55
- different positions do not clobber each other while one is mid-flight.
56
-
57
- This package builds on [`@motionscript/core`](../../core) (the scene graph and
58
- animation runtime) and renders through whatever backend draws the scene, such as
59
- [`@motionscript/browser`](../../browser).
60
-
61
- ## Usage
62
-
63
- ```bash
64
- npm install @motionscript/code
65
- ```
66
-
67
- See the [docs](https://motionscript.dev/docs) for the full feature set and API
68
- reference.
69
-
70
- ## Development
71
-
72
- From the monorepo root:
73
-
74
- ```bash
75
- pnpm --filter @motionscript/code build
76
- pnpm --filter @motionscript/code test
77
- ```
1
+ # @motionscript/code
2
+
3
+ Animated, syntax-highlighted code listings for [Motion Script](https://motionscript.dev).
4
+ The `Code` node highlights source with [Lezer](https://lezer.codemirror.net)
5
+ grammars and animates edits at the token level: each edit is diffed against the
6
+ listing it becomes, so tokens that survive travel to their new columns, removed
7
+ ones fade out and new ones fade in, rather than the listing snapping.
8
+
9
+ Hand `Code` to the engine through your project entry's `nodes`, and any
10
+ document that engine opens can name it as `code`:
11
+
12
+ ```ts
13
+ // src/project.ts
14
+ import { Code } from '@motionscript/code';
15
+
16
+ export const nodes = [Code];
17
+ ```
18
+
19
+ ```ts
20
+ import type { CompositionDocument } from '@motionscript/sdk';
21
+ import { lines } from '@motionscript/code';
22
+
23
+ export default {
24
+ kind: 'composition',
25
+ nodes: [
26
+ { id: 'listing', type: 'code', parentId: null, layerOrder: 0,
27
+ props: { code: 'function greet(name) {\n return "hi";\n}', language: 'typescript',
28
+ theme: 'github-dark', fontSize: 28 } },
29
+ ],
30
+ commands: [
31
+ { id: 'call', type: 'append', targetId: 'listing', at: 0, duration: 0.6,
32
+ args: { code: '\ngreet("world");' } },
33
+ { id: 'focus', type: 'highlight', targetId: 'listing', at: 0.8, duration: 0.4,
34
+ args: { target: lines(2) } },
35
+ ],
36
+ } satisfies CompositionDocument;
37
+ ```
38
+
39
+ ## What's in here
40
+
41
+ - **`Code`** node, a hugging block of highlighted source. Set `code`,
42
+ `language` and `theme` to choose what is shown; tune `fontSize`,
43
+ `fontFamily`, `lineHeight`, `letterSpacing`, `showLineNumbers`,
44
+ `lineNumberGap` and `padding` for layout.
45
+ - **Token-level commands**: `append`/`prepend` (lines at the end or start),
46
+ `insert` (at a `[line, col]` position), `remove`, `replace`,
47
+ `highlight`/`resetHighlight` (dim everything outside a range, then restore
48
+ it), and `highlightRows`/`resetRowHighlight` (a coloured band behind whole
49
+ lines, which slides onto the next rows it is given and follows its lines
50
+ through an edit). A `to` command on `code` diffs the whole listing the same way.
51
+ - **Range helpers**: `word(line, col, length)`, `lines(from, to)` and the
52
+ chainable `CodeRanges` build the ranges those commands take.
53
+ - **Themes**: `github-dark`, `github-light`, `vscode-dark`, `vscode-light`
54
+ and a default, plus `registerCodeTheme` for your own.
55
+ `initSyntaxHighlighter(themes, langs)` preloads grammars so the first frame
56
+ renders fully highlighted.
57
+
58
+ Every token keeps a stable identity across edits, so concurrent animations at
59
+ different positions do not clobber each other while one is mid-flight.
60
+
61
+ This package is written against [`@motionscript/sdk`](https://github.com/motionscript-dev/motionscript/tree/main/packages/sdk), which it
62
+ takes as a peer dependency, and renders through whatever backend draws the
63
+ scene, such as [`@motionscript/browser`](https://github.com/motionscript-dev/motionscript/tree/main/packages/browser).
64
+
65
+ ## Languages, themes and line endings
66
+
67
+ - **Languages**: `typescript` (`ts`), `tsx`, `javascript` (`js`), `jsx`, `python`
68
+ (`py`), `json`, `html`, `css`, `rust`, `go`, `java`, `cpp` (`c++`), `php`,
69
+ `markdown` (`md`), `xml` and `yaml` (`yml`). `shell` is an alias of
70
+ `javascript`, because no shell grammar is bundled. Names are case-insensitive.
71
+ - **An unknown language, a grammar whose import is rejected and an unknown theme
72
+ name** each fall back (plain text, plain text and the default theme) and log one
73
+ `[Code]` warning per name for the life of the process. `''`, `text` and
74
+ `plaintext` mean plain text on purpose and say nothing.
75
+ - **`language` and `theme` can be tweened or bound.** The listing is re-coloured
76
+ from the props on the next frame, keeping the token identities a highlight
77
+ already names.
78
+ - **`\r\n` and a lone `\r` are line breaks**, in `code` and in the text a command
79
+ brings in; the node's `code` reads back with `\n` after its first command.
80
+ - **Edits are diffed within a budget.** Lines are paired by the same text at the
81
+ ends of the listing and by lines that occur once on both sides, so an edit
82
+ to a long listing costs in proportion to what changed. Only a run of changed
83
+ lines between two such anchors is compared pairwise, up to
84
+ `LINE_ALIGN_CELLS` (40,000) line pairs per run and 160,000 per edit; beyond
85
+ that its lines leave and enter as whole rows instead of morphing into each
86
+ other.
87
+ - **A command on a node that is not in a tree** runs its duration and writes
88
+ nothing. A document cannot reach this, because the validator rejects a command
89
+ that starts before its target is present.
90
+
91
+ ## Ranges, queries and what a copy holds
92
+
93
+ - **Ranges are 1-indexed** in lines and columns. `endLine`/`endCol` may be
94
+ `Infinity` (to the end of the line or document); a range that went through
95
+ JSON holds `null` there and reads the same. Positions clamp, so no command
96
+ throws for a bad range, and a `CodeRanges` chain serialises as its array of
97
+ ranges.
98
+ - **`findAllRanges(text)`, `findRangeAt(text, index)` and `findFirstRange(text)`**
99
+ on a `Code` return the literal matches in its current source as ranges.
100
+ - **`remove` is the document key; the method is `erase`**, because `Node.remove`
101
+ already takes a child out of the tree.
102
+ - **A `Code` takes no children and has no `fill`, `stroke` or `shadow`**; a panel
103
+ behind it is a parent `Rect`. It also refuses the ambient text style
104
+ (`<DefaultTextStyle>`): its columns are measured against its own face, so an
105
+ inherited family or weight would shape glyphs the geometry never measured.
106
+ - **`diffStrategy` and `phaseStrategy`** (`CodeStrategies`) replace how an edit is
107
+ paired and how its out/move/in windows are timed. They are constructor options,
108
+ not props, so a document cannot set them.
109
+ - **Highlighter state is per process.** Loaded grammars, registered themes and
110
+ token ids are shared by every `Code` in it.
111
+ - **`ms add code` copies only `node.ts`** (`registry.json`). The highlighter,
112
+ diff, layout and drawing stay in this package behind `src/engine.ts`, which the
113
+ copy imports from `@motionscript/code`; the grammars are dynamic imports, so a
114
+ host's bundler must resolve `@lezer/*` from where the package is installed.
115
+
116
+ ## The monospaced face is yours to supply
117
+
118
+ `Code` measures and draws every token in its `fontFamily`, `Fira Mono` by
119
+ default, and lines its columns up on that face's advances. The package ships no
120
+ font file and names no URL: list a monospaced face under that family in the
121
+ engine's asset manifest, alongside the node itself.
122
+
123
+ ```ts
124
+ const engine = await createBrowserEngine({
125
+ wasmUrl,
126
+ nodes: [Code],
127
+ manifest: {
128
+ image: {}, video: {}, audio: {},
129
+ font: {
130
+ 'Fira Mono@400': {
131
+ fontFamily: 'Fira Mono', fontWeight: 400,
132
+ src: '/fonts/FiraMono-Regular.ttf', sizeBytes: 0,
133
+ },
134
+ },
135
+ },
136
+ });
137
+ ```
138
+
139
+ A family the manifest does not list is never loaded. The loader warns once, and
140
+ the listing draws no text, or shapes in whichever other face is registered. To
141
+ use another face, set `fontFamily` on the node and list that family instead.
142
+
143
+ ## Usage
144
+
145
+ ```bash
146
+ npm install @motionscript/code @motionscript/sdk
147
+ ```
148
+
149
+ Or copy the node's source into your project with `ms add code`
150
+ (see [`@motionscript/cli`](https://github.com/motionscript-dev/motionscript/tree/main/packages/cli)). See the
151
+ [docs](https://motionscript.dev/docs) for the full feature set and API
152
+ reference.
153
+
154
+ ## Development
155
+
156
+ From the monorepo root:
157
+
158
+ ```bash
159
+ pnpm --filter @motionscript/code build
160
+ pnpm --filter @motionscript/code test
161
+ ```
@@ -0,0 +1,431 @@
1
+ Third-party software bundled into @motionscript/code's browser build (dist/browser/).
2
+
3
+ @lezer/common 1.5.2
4
+ License: MIT
5
+
6
+ MIT License
7
+
8
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ------------------------------------------------------------------------------
29
+
30
+ @lezer/cpp 1.1.6
31
+ License: MIT
32
+
33
+ MIT License
34
+
35
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
36
+
37
+ Permission is hereby granted, free of charge, to any person obtaining a copy
38
+ of this software and associated documentation files (the "Software"), to deal
39
+ in the Software without restriction, including without limitation the rights
40
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
41
+ copies of the Software, and to permit persons to whom the Software is
42
+ furnished to do so, subject to the following conditions:
43
+
44
+ The above copyright notice and this permission notice shall be included in
45
+ all copies or substantial portions of the Software.
46
+
47
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
48
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
49
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
50
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
51
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
53
+ THE SOFTWARE.
54
+
55
+ ------------------------------------------------------------------------------
56
+
57
+ @lezer/css 1.3.3
58
+ License: MIT
59
+
60
+ MIT License
61
+
62
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
63
+
64
+ Permission is hereby granted, free of charge, to any person obtaining a copy
65
+ of this software and associated documentation files (the "Software"), to deal
66
+ in the Software without restriction, including without limitation the rights
67
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
68
+ copies of the Software, and to permit persons to whom the Software is
69
+ furnished to do so, subject to the following conditions:
70
+
71
+ The above copyright notice and this permission notice shall be included in
72
+ all copies or substantial portions of the Software.
73
+
74
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
80
+ THE SOFTWARE.
81
+
82
+ ------------------------------------------------------------------------------
83
+
84
+ @lezer/go 1.0.1
85
+ License: MIT
86
+
87
+ MIT License
88
+
89
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
90
+
91
+ Permission is hereby granted, free of charge, to any person obtaining a copy
92
+ of this software and associated documentation files (the "Software"), to deal
93
+ in the Software without restriction, including without limitation the rights
94
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
95
+ copies of the Software, and to permit persons to whom the Software is
96
+ furnished to do so, subject to the following conditions:
97
+
98
+ The above copyright notice and this permission notice shall be included in
99
+ all copies or substantial portions of the Software.
100
+
101
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
102
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
103
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
104
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
105
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
106
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
107
+ THE SOFTWARE.
108
+
109
+ ------------------------------------------------------------------------------
110
+
111
+ @lezer/highlight 1.2.3
112
+ License: MIT
113
+
114
+ MIT License
115
+
116
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
117
+
118
+ Permission is hereby granted, free of charge, to any person obtaining a copy
119
+ of this software and associated documentation files (the "Software"), to deal
120
+ in the Software without restriction, including without limitation the rights
121
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
122
+ copies of the Software, and to permit persons to whom the Software is
123
+ furnished to do so, subject to the following conditions:
124
+
125
+ The above copyright notice and this permission notice shall be included in
126
+ all copies or substantial portions of the Software.
127
+
128
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
129
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
130
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
131
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
132
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
133
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
134
+ THE SOFTWARE.
135
+
136
+ ------------------------------------------------------------------------------
137
+
138
+ @lezer/html 1.3.13
139
+ License: MIT
140
+
141
+ MIT License
142
+
143
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
144
+
145
+ Permission is hereby granted, free of charge, to any person obtaining a copy
146
+ of this software and associated documentation files (the "Software"), to deal
147
+ in the Software without restriction, including without limitation the rights
148
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
149
+ copies of the Software, and to permit persons to whom the Software is
150
+ furnished to do so, subject to the following conditions:
151
+
152
+ The above copyright notice and this permission notice shall be included in
153
+ all copies or substantial portions of the Software.
154
+
155
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
156
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
157
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
158
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
159
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
160
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
161
+ THE SOFTWARE.
162
+
163
+ ------------------------------------------------------------------------------
164
+
165
+ @lezer/java 1.1.3
166
+ License: MIT
167
+
168
+ MIT License
169
+
170
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
171
+
172
+ Permission is hereby granted, free of charge, to any person obtaining a copy
173
+ of this software and associated documentation files (the "Software"), to deal
174
+ in the Software without restriction, including without limitation the rights
175
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
176
+ copies of the Software, and to permit persons to whom the Software is
177
+ furnished to do so, subject to the following conditions:
178
+
179
+ The above copyright notice and this permission notice shall be included in
180
+ all copies or substantial portions of the Software.
181
+
182
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
183
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
184
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
185
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
186
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
187
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
188
+ THE SOFTWARE.
189
+
190
+ ------------------------------------------------------------------------------
191
+
192
+ @lezer/javascript 1.5.4
193
+ License: MIT
194
+
195
+ MIT License
196
+
197
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
198
+
199
+ Permission is hereby granted, free of charge, to any person obtaining a copy
200
+ of this software and associated documentation files (the "Software"), to deal
201
+ in the Software without restriction, including without limitation the rights
202
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
203
+ copies of the Software, and to permit persons to whom the Software is
204
+ furnished to do so, subject to the following conditions:
205
+
206
+ The above copyright notice and this permission notice shall be included in
207
+ all copies or substantial portions of the Software.
208
+
209
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
210
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
211
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
212
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
213
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
214
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
215
+ THE SOFTWARE.
216
+
217
+ ------------------------------------------------------------------------------
218
+
219
+ @lezer/json 1.0.3
220
+ License: MIT
221
+
222
+ MIT License
223
+
224
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin>, Arun Srinivasan <rulfzid@gmail.com>, and others
225
+
226
+ Permission is hereby granted, free of charge, to any person obtaining a copy
227
+ of this software and associated documentation files (the "Software"), to deal
228
+ in the Software without restriction, including without limitation the rights
229
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
230
+ copies of the Software, and to permit persons to whom the Software is
231
+ furnished to do so, subject to the following conditions:
232
+
233
+ The above copyright notice and this permission notice shall be included in
234
+ all copies or substantial portions of the Software.
235
+
236
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
237
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
238
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
239
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
240
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
241
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
242
+ THE SOFTWARE.
243
+
244
+ ------------------------------------------------------------------------------
245
+
246
+ @lezer/lr 1.4.10
247
+ License: MIT
248
+
249
+ MIT License
250
+
251
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
252
+
253
+ Permission is hereby granted, free of charge, to any person obtaining a copy
254
+ of this software and associated documentation files (the "Software"), to deal
255
+ in the Software without restriction, including without limitation the rights
256
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
257
+ copies of the Software, and to permit persons to whom the Software is
258
+ furnished to do so, subject to the following conditions:
259
+
260
+ The above copyright notice and this permission notice shall be included in
261
+ all copies or substantial portions of the Software.
262
+
263
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
264
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
265
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
266
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
267
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
268
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
269
+ THE SOFTWARE.
270
+
271
+ ------------------------------------------------------------------------------
272
+
273
+ @lezer/markdown 1.6.4
274
+ License: MIT
275
+
276
+ MIT License
277
+
278
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
279
+
280
+ Permission is hereby granted, free of charge, to any person obtaining a copy
281
+ of this software and associated documentation files (the "Software"), to deal
282
+ in the Software without restriction, including without limitation the rights
283
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
284
+ copies of the Software, and to permit persons to whom the Software is
285
+ furnished to do so, subject to the following conditions:
286
+
287
+ The above copyright notice and this permission notice shall be included in
288
+ all copies or substantial portions of the Software.
289
+
290
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
291
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
292
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
293
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
294
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
295
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
296
+ THE SOFTWARE.
297
+
298
+ ------------------------------------------------------------------------------
299
+
300
+ @lezer/php 1.0.5
301
+ License: MIT
302
+
303
+ MIT License
304
+
305
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
306
+
307
+ Permission is hereby granted, free of charge, to any person obtaining a copy
308
+ of this software and associated documentation files (the "Software"), to deal
309
+ in the Software without restriction, including without limitation the rights
310
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
311
+ copies of the Software, and to permit persons to whom the Software is
312
+ furnished to do so, subject to the following conditions:
313
+
314
+ The above copyright notice and this permission notice shall be included in
315
+ all copies or substantial portions of the Software.
316
+
317
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
318
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
319
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
320
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
321
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
322
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
323
+ THE SOFTWARE.
324
+
325
+ ------------------------------------------------------------------------------
326
+
327
+ @lezer/python 1.1.19
328
+ License: MIT
329
+
330
+ MIT License
331
+
332
+ Copyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
333
+
334
+ Permission is hereby granted, free of charge, to any person obtaining a copy
335
+ of this software and associated documentation files (the "Software"), to deal
336
+ in the Software without restriction, including without limitation the rights
337
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
338
+ copies of the Software, and to permit persons to whom the Software is
339
+ furnished to do so, subject to the following conditions:
340
+
341
+ The above copyright notice and this permission notice shall be included in
342
+ all copies or substantial portions of the Software.
343
+
344
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
345
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
346
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
347
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
348
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
349
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
350
+ THE SOFTWARE.
351
+
352
+ ------------------------------------------------------------------------------
353
+
354
+ @lezer/rust 1.0.2
355
+ License: MIT
356
+
357
+ MIT License
358
+
359
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
360
+
361
+ Permission is hereby granted, free of charge, to any person obtaining a copy
362
+ of this software and associated documentation files (the "Software"), to deal
363
+ in the Software without restriction, including without limitation the rights
364
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
365
+ copies of the Software, and to permit persons to whom the Software is
366
+ furnished to do so, subject to the following conditions:
367
+
368
+ The above copyright notice and this permission notice shall be included in
369
+ all copies or substantial portions of the Software.
370
+
371
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
372
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
373
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
374
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
375
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
376
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
377
+ THE SOFTWARE.
378
+
379
+ ------------------------------------------------------------------------------
380
+
381
+ @lezer/xml 1.0.6
382
+ License: MIT
383
+
384
+ MIT License
385
+
386
+ Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
387
+
388
+ Permission is hereby granted, free of charge, to any person obtaining a copy
389
+ of this software and associated documentation files (the "Software"), to deal
390
+ in the Software without restriction, including without limitation the rights
391
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
392
+ copies of the Software, and to permit persons to whom the Software is
393
+ furnished to do so, subject to the following conditions:
394
+
395
+ The above copyright notice and this permission notice shall be included in
396
+ all copies or substantial portions of the Software.
397
+
398
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
399
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
400
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
401
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
402
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
403
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
404
+ THE SOFTWARE.
405
+
406
+ ------------------------------------------------------------------------------
407
+
408
+ @lezer/yaml 1.0.4
409
+ License: MIT
410
+
411
+ MIT License
412
+
413
+ Copyright (C) 2024 by Marijn Haverbeke <marijnh@gmail.com> and others
414
+
415
+ Permission is hereby granted, free of charge, to any person obtaining a copy
416
+ of this software and associated documentation files (the "Software"), to deal
417
+ in the Software without restriction, including without limitation the rights
418
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
419
+ copies of the Software, and to permit persons to whom the Software is
420
+ furnished to do so, subject to the following conditions:
421
+
422
+ The above copyright notice and this permission notice shall be included in
423
+ all copies or substantial portions of the Software.
424
+
425
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
426
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
427
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
428
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
429
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
430
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
431
+ THE SOFTWARE.