@velarscript/web 0.23.3 → 0.24.0
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/README.md +7 -4
- package/dist/analyzer.d.ts +74 -5
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +360 -10
- package/dist/analyzer.js.map +1 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +26 -1
- package/dist/compiler.js.map +1 -1
- package/dist/emitter.d.ts +16 -0
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +163 -7
- package/dist/emitter.js.map +1 -1
- package/dist/lexer.js +72 -1
- package/dist/lexer.js.map +1 -1
- package/dist/look.d.ts +24 -0
- package/dist/look.d.ts.map +1 -1
- package/dist/look.js +153 -3
- package/dist/look.js.map +1 -1
- package/dist/runtime-foundation.d.ts.map +1 -1
- package/dist/runtime-foundation.js +32 -2
- package/dist/runtime-foundation.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +60 -1
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -92,7 +92,10 @@ The package also owns Look, the checked visual language integrated with VelarScr
|
|
|
92
92
|
values and JSX. `look:` values, ordinary functions, imports/exports, named
|
|
93
93
|
`velar/look` builders, unit-aware properties and arithmetic, bounded `if` conditions, `@state` hooks, and
|
|
94
94
|
`@target` blocks lower to extracted standard CSS with stable readable markers.
|
|
95
|
-
Native and component JSX accept universal `class` and `look` props
|
|
96
|
-
`style` directives
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
Native and component JSX accept universal `class` and `look` props, checked
|
|
96
|
+
`look:property` and `style:property` directives, and a raw `style` attribute is
|
|
97
|
+
rejected. A design system's CSS custom property is read by `token("--name")`,
|
|
98
|
+
which is legal in every Look property, so a token-driven visual layer stays
|
|
99
|
+
inside Look. Raw CSS is available through an explicit `import css unsafe`
|
|
100
|
+
declaration whose mandatory `before look` or `after look` placement defines
|
|
101
|
+
source order without inventing priority semantics.
|
package/dist/analyzer.d.ts
CHANGED
|
@@ -10,10 +10,14 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
10
10
|
private watchBodyDepth;
|
|
11
11
|
/** D89 A4: the binding identity of every list a keyed `.map(...)` interpolation renders. */
|
|
12
12
|
private readonly keyedListSources;
|
|
13
|
-
/** D89 A4: every
|
|
13
|
+
/** D89 A4: every row rebuild of this module — assigned or derived — in source order. */
|
|
14
14
|
private readonly keyedListRebuilds;
|
|
15
|
+
/** D89 A4: this module's `def` bodies by name, so a `computed` that calls one can be read through. */
|
|
16
|
+
private moduleFunctions;
|
|
15
17
|
private synchronousReactiveDepth;
|
|
16
18
|
private jsxDepth;
|
|
19
|
+
/** VEL5075: how many component bodies enclose the declaration being analyzed. */
|
|
20
|
+
private componentBodyDepth;
|
|
17
21
|
private readonly resources;
|
|
18
22
|
private readonly unsafeCssImports;
|
|
19
23
|
private readonly probedOperandTypes;
|
|
@@ -124,6 +128,32 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
124
128
|
protected inferExtensionExpression(expression: Expression, _contextualType: ValueType): ValueType | undefined;
|
|
125
129
|
protected inferExpression(expression: Expression, contextualType?: ValueType): ValueType;
|
|
126
130
|
private writableStateName;
|
|
131
|
+
/**
|
|
132
|
+
* P2b-5: a `def` that answers markup and answers it with a component element.
|
|
133
|
+
*
|
|
134
|
+
* Everything about the shape is legal one step out. A component element is a
|
|
135
|
+
* legal module-level expression — `const root = <App />` is the instantiation
|
|
136
|
+
* site D90 R4-b rules on, and `mount` takes exactly the instance it evaluates
|
|
137
|
+
* to. A `def` answering markup is a legal markup helper — dispatch over a
|
|
138
|
+
* closed vocabulary is what the P2b wave was writing. The defect is only
|
|
139
|
+
* where the two meet, and it is a representation split the type does not
|
|
140
|
+
* carry: a component element in a *child* position lowers to `__velarChild`,
|
|
141
|
+
* which owns a scope and answers a DOM node, while the same element standing
|
|
142
|
+
* alone lowers to `__velarInstantiate`, which answers an instance. Both are
|
|
143
|
+
* typed `WebNode`; only one is one. Returned from a helper and handed to a
|
|
144
|
+
* render, the instance reaches `__velarAppend` and takes the whole subtree
|
|
145
|
+
* down with "JSX can render only text, finite numbers, bool, enums, WebNode
|
|
146
|
+
* values, and Lists of those values" — the check-green, runtime-dead shape.
|
|
147
|
+
*
|
|
148
|
+
* The walk stops at every JSX element, which is exactly where the emitter
|
|
149
|
+
* stops: inside one, every position is a child position and every component
|
|
150
|
+
* element there is already correct — `return <div><Badge /></div>` and an
|
|
151
|
+
* interpolated `{cond ? <Badge /> : ...}` both work today and must keep
|
|
152
|
+
* working. Only a component element the returned markup *starts* with is the
|
|
153
|
+
* defect, including one reached through a `.map(...)` answering a row per
|
|
154
|
+
* item, which fails the same way for the same reason.
|
|
155
|
+
*/
|
|
156
|
+
private rejectUnownedComponentElement;
|
|
127
157
|
/**
|
|
128
158
|
* The audit's seventh root cause: a `def` that declares reactive state and
|
|
129
159
|
* answers `WebNode` is a component wearing a function's clothes, and calling
|
|
@@ -184,12 +214,33 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
184
214
|
*/
|
|
185
215
|
private recordKeyedListRebuild;
|
|
186
216
|
/**
|
|
187
|
-
* D89 A4
|
|
217
|
+
* D89 A4, the wider proven shape: the same churn written as a derived value.
|
|
218
|
+
* `computed rows = source.map(item => {…})` and `computed rows = build(...)`
|
|
219
|
+
* over a `for`/`append` builder both hand a keyed position a fresh record for
|
|
220
|
+
* every row on every recompute, which is exactly what the assignment shape
|
|
221
|
+
* does — the reconciliation wave compiled both and found only one of them
|
|
222
|
+
* named. It is one advisory with a wider proof, not a second code: the defect,
|
|
223
|
+
* the consequence, and the suppression are the same.
|
|
224
|
+
*
|
|
225
|
+
* A `const` in a component body is deliberately not here. It is constructed
|
|
226
|
+
* once, so its records never move, and advising it would be a guess rather
|
|
227
|
+
* than a proof.
|
|
228
|
+
*/
|
|
229
|
+
private recordDerivedKeyedListRebuild;
|
|
230
|
+
/**
|
|
231
|
+
* Whether a derived initializer constructs one fresh record per source
|
|
232
|
+
* element. Two spellings are proven and everything else is silent: a `map`
|
|
233
|
+
* whose callback answers a record literal — the same recognizer the
|
|
234
|
+
* assignment shape uses — and a call to a `def` this module declares whose
|
|
235
|
+
* whole answer is a list it filled with record literals.
|
|
236
|
+
*/
|
|
237
|
+
private rebuildsRecordsPerElement;
|
|
238
|
+
/**
|
|
239
|
+
* D89 A4: raises the advisory for the rebuilds whose list a keyed position
|
|
188
240
|
* really renders. The advisory channel cannot reach `this.diagnostics`, so
|
|
189
241
|
* nothing here fails a build, changes an emitted byte, or moves a semantic
|
|
190
|
-
* rule; `// velar-allow A4: <reason>` suppresses it where
|
|
191
|
-
*
|
|
192
|
-
* makes it.
|
|
242
|
+
* rule; `// velar-allow A4: <reason>` suppresses it where building the rows is
|
|
243
|
+
* the only spelling, which a `readonly` list or one API response makes it.
|
|
193
244
|
*/
|
|
194
245
|
private adviseKeyedListRebuilds;
|
|
195
246
|
/** A value that is read by calling it and takes no arguments to do so. */
|
|
@@ -306,6 +357,24 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
306
357
|
private checkAnimationKeyword;
|
|
307
358
|
private analyzeKeyframes;
|
|
308
359
|
private reportKeyframeSnapshotReads;
|
|
360
|
+
/**
|
|
361
|
+
* D104 rule 2 — the wider half of the promise VEL5039 already made. A
|
|
362
|
+
* repeated property name is refused because the second entry overwrites the
|
|
363
|
+
* first and Look has no source order to settle which is meant; a shorthand
|
|
364
|
+
* beside a longhand it writes is the same defect with two spellings, and it
|
|
365
|
+
* is the one that hid thirty-six dead declarations in a consumer's shell.
|
|
366
|
+
* Reports once against the entry that completes the pair.
|
|
367
|
+
*/
|
|
368
|
+
private reportLookShorthandOverlap;
|
|
369
|
+
/**
|
|
370
|
+
* The same rule where the properties are written as element directives. A
|
|
371
|
+
* `look:` directive lowers to exactly the rule a block entry does, so an
|
|
372
|
+
* element carrying `look:padding` and `look:paddingTop` has the pair in the
|
|
373
|
+
* same scope as surely as a block does. The `style:` directives are not
|
|
374
|
+
* checked here: they compose one inline style object, where the browser's own
|
|
375
|
+
* source order settles the pair.
|
|
376
|
+
*/
|
|
377
|
+
private reportLookDirectiveOverlap;
|
|
309
378
|
/**
|
|
310
379
|
* Records one entry in its lowered scope (condition signature plus target) so
|
|
311
380
|
* two sibling blocks with the same condition report the property they both
|
package/dist/analyzer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,UAAU,EAA2C,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClK,OAAO,EACL,QAAQ,EAgBR,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,UAAU,EAEf,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
|