@velarscript/web 0.12.1 → 0.13.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 +2 -2
- package/dist/analyzer.d.ts +164 -23
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +1254 -133
- package/dist/analyzer.js.map +1 -1
- package/dist/ast.d.ts +11 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/ast.js +22 -0
- package/dist/ast.js.map +1 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +69 -44
- package/dist/compiler.js.map +1 -1
- package/dist/css-string.d.ts +32 -0
- package/dist/css-string.d.ts.map +1 -0
- package/dist/css-string.js +66 -0
- package/dist/css-string.js.map +1 -0
- package/dist/css-tokens.d.ts +16 -0
- package/dist/css-tokens.d.ts.map +1 -1
- package/dist/css-tokens.js +84 -0
- package/dist/css-tokens.js.map +1 -1
- package/dist/elements.d.ts +55 -0
- package/dist/elements.d.ts.map +1 -1
- package/dist/elements.js +152 -0
- package/dist/elements.js.map +1 -1
- package/dist/emitter.d.ts +10 -0
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +588 -159
- package/dist/emitter.js.map +1 -1
- package/dist/keyframes.d.ts +17 -0
- package/dist/keyframes.d.ts.map +1 -1
- package/dist/keyframes.js +28 -9
- package/dist/keyframes.js.map +1 -1
- package/dist/lexer.d.ts +21 -7
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +32 -12
- package/dist/lexer.js.map +1 -1
- package/dist/look-static.d.ts.map +1 -1
- package/dist/look-static.js +120 -20
- package/dist/look-static.js.map +1 -1
- package/dist/look.d.ts +15 -0
- package/dist/look.d.ts.map +1 -1
- package/dist/look.js +7 -2
- package/dist/look.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +15 -20
- package/dist/parser.js.map +1 -1
- package/dist/runtime-foundation.d.ts.map +1 -1
- package/dist/runtime-foundation.js +321 -70
- package/dist/runtime-foundation.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +320 -179
- package/dist/runtime.js.map +1 -1
- package/dist/stable-order.d.ts +16 -0
- package/dist/stable-order.d.ts.map +1 -0
- package/dist/stable-order.js +18 -0
- package/dist/stable-order.js.map +1 -0
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -16
- package/dist/types.js.map +1 -1
- package/dist/websocket-runtime.d.ts.map +1 -1
- package/dist/websocket-runtime.js +9 -5
- package/dist/websocket-runtime.js.map +1 -1
- package/dist/worker-runtime.d.ts.map +1 -1
- package/dist/worker-runtime.js +9 -7
- package/dist/worker-runtime.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -76,8 +76,8 @@ contract crosses WebSocket and Worker boundaries. Worker source entries come
|
|
|
76
76
|
from the project manifest, so application source does not construct bundle URLs.
|
|
77
77
|
Requests and responses are checked with runtime `Type` values; pools, call
|
|
78
78
|
queues, message queues, transfers, cancellation, timeout, and crash convergence
|
|
79
|
-
are bounded by the shared Core contracts.
|
|
80
|
-
|
|
79
|
+
are bounded by the shared Core contracts. `velar/realtime` keeps
|
|
80
|
+
`eventStream`; the WebSocket client is `velar/websocket.connect`.
|
|
81
81
|
|
|
82
82
|
The package also owns Look, the checked visual language integrated with VelarScript
|
|
83
83
|
values and JSX. `look:` values, ordinary functions, imports/exports, named
|
package/dist/analyzer.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
8
8
|
private cleanupDepth;
|
|
9
9
|
/** D51 (audit 12): a component `watch` body runs on a change and ends, exactly as a module `watch` body does. */
|
|
10
10
|
private watchBodyDepth;
|
|
11
|
+
/** D89 A4: the binding identity of every list a keyed `.map(...)` interpolation renders. */
|
|
12
|
+
private readonly keyedListSources;
|
|
13
|
+
/** D89 A4: every `list = list.map(item => {…})` rewrite of this module, in source order. */
|
|
14
|
+
private readonly keyedListRebuilds;
|
|
11
15
|
private synchronousReactiveDepth;
|
|
12
16
|
private jsxDepth;
|
|
13
17
|
private readonly resources;
|
|
@@ -22,6 +26,7 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
22
26
|
private readonly honoredJsxKeys;
|
|
23
27
|
private readonly reportedJsxKeys;
|
|
24
28
|
private lookBuilderNames;
|
|
29
|
+
private lookDeclarations;
|
|
25
30
|
private lookLiteralDepth;
|
|
26
31
|
/**
|
|
27
32
|
* D71 rule 182: the declaration spans of every `computed` binding in scope.
|
|
@@ -33,7 +38,7 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
33
38
|
private readonly importedComputedNames;
|
|
34
39
|
/** The resolved spans of those imports, so a local shadow of the name is not one. */
|
|
35
40
|
private readonly importedComputedSpans;
|
|
36
|
-
/** D71 migration state:
|
|
41
|
+
/** D71 migration state: `const x = computed(...)` sites, their reads, and every other reference to the name. */
|
|
37
42
|
private readonly retiredAccessorDeclarations;
|
|
38
43
|
private readonly retiredAccessorReads;
|
|
39
44
|
private readonly retiredComputedReferences;
|
|
@@ -112,6 +117,27 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
112
117
|
protected inferExtensionExpression(expression: Expression, _contextualType: ValueType): ValueType | undefined;
|
|
113
118
|
protected inferExpression(expression: Expression, contextualType?: ValueType): ValueType;
|
|
114
119
|
private writableStateName;
|
|
120
|
+
/**
|
|
121
|
+
* The audit's seventh root cause: a `def` that declares reactive state and
|
|
122
|
+
* answers `WebNode` is a component wearing a function's clothes, and calling
|
|
123
|
+
* it bypasses exactly what the charter already refuses `View(...)` for. Two
|
|
124
|
+
* things follow from the call, both reproduced: every call runs the `state`
|
|
125
|
+
* declaration again, so the value resets on every re-render; and the
|
|
126
|
+
* observers the returned markup registers bind to whatever scope the call
|
|
127
|
+
* site was building — at module scope the global one, which is never
|
|
128
|
+
* destroyed, so they are never cleaned up.
|
|
129
|
+
*
|
|
130
|
+
* Only DECLARATION is refused. A `def -> WebNode` that merely reads state or a
|
|
131
|
+
* prop is a legitimate markup helper — examples/app has two — and a `def`
|
|
132
|
+
* nested inside a component binds its observers to that component's scope, so
|
|
133
|
+
* nothing about reading is defective.
|
|
134
|
+
*
|
|
135
|
+
* What answers "this `def` returns markup" is the sink, not one spelling of
|
|
136
|
+
* it: `-> WebNode?` and `-> List<WebNode>` are the shapes markup travels in,
|
|
137
|
+
* and a `def` may carry no return type at all — all three reached the same
|
|
138
|
+
* defect with the same body while only the bare annotation was read.
|
|
139
|
+
*/
|
|
140
|
+
private rejectStatefulWebNodeFunction;
|
|
115
141
|
/**
|
|
116
142
|
* D71 rule 182: a declared derived value is read bare, exactly like state.
|
|
117
143
|
* Calling one is the habit the retired `computed(...)` accessor taught, and it
|
|
@@ -123,15 +149,42 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
123
149
|
/**
|
|
124
150
|
* D69 rule 178: a `watch` body that can never run is a block of statements
|
|
125
151
|
* the compile silently drops — the same defect a bare `5` is already rejected
|
|
126
|
-
* for (VEL4030), reached from a position the rule could not see.
|
|
127
|
-
* is refused only where the compile can *prove* nothing behind it moves, so a
|
|
128
|
-
* call whose reactivity lives inside another module is left alone: a rule that
|
|
129
|
-
* rejected those would be worse than the hole it closes.
|
|
152
|
+
* for (VEL4030), reached from a position the rule could not see.
|
|
130
153
|
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
154
|
+
* D90 R15(a) adds the third refusal and fixes the order the three are asked
|
|
155
|
+
* in. A frozen subject is answered before the shape rule so that one shape
|
|
156
|
+
* never draws two messages: a subject built only from frozen parts has no
|
|
157
|
+
* reactive source at all, and telling its author to declare a `computed`
|
|
158
|
+
* would only buy him a dead one. What survives both is either a path — the
|
|
159
|
+
* name of a reactive binding, or a member/index read out of one — or a
|
|
160
|
+
* computation, and a computation has a spelling of its own.
|
|
161
|
+
*
|
|
162
|
+
* The three refusals are separate because their causes are: a reader that was
|
|
163
|
+
* not called names a value that never moves, a frozen value has no reactive
|
|
164
|
+
* source behind it at all, and a computed subject has one but hides which.
|
|
133
165
|
*/
|
|
134
166
|
private rejectFrozenWatchSubject;
|
|
167
|
+
/**
|
|
168
|
+
* D89 A4: records `list = list.map(item => {…})`, React's immutable update,
|
|
169
|
+
* where the callback builds a new record rather than changing a field.
|
|
170
|
+
*
|
|
171
|
+
* D90 R2 stands — `__velarKeyed` compares identity and that does not move,
|
|
172
|
+
* and the framework does not accommodate the idiom. This channel is not the
|
|
173
|
+
* framework taking responsibility; it is the compiler telling the author that
|
|
174
|
+
* the row he is typing into is about to be destroyed. Nothing is reported
|
|
175
|
+
* yet: the advisory is owed only if the rewritten list is what a keyed list
|
|
176
|
+
* renders, and the render usually sits below the update.
|
|
177
|
+
*/
|
|
178
|
+
private recordKeyedListRebuild;
|
|
179
|
+
/**
|
|
180
|
+
* D89 A4: raises the advisory for the rewrites whose list a keyed position
|
|
181
|
+
* really renders. The advisory channel cannot reach `this.diagnostics`, so
|
|
182
|
+
* nothing here fails a build, changes an emitted byte, or moves a semantic
|
|
183
|
+
* rule; `// velar-allow A4: <reason>` suppresses it where `map` plus a record
|
|
184
|
+
* literal is the only spelling, which a `readonly` list or one API response
|
|
185
|
+
* makes it.
|
|
186
|
+
*/
|
|
187
|
+
private adviseKeyedListRebuilds;
|
|
135
188
|
/** A value that is read by calling it and takes no arguments to do so. */
|
|
136
189
|
private zeroArgumentReader;
|
|
137
190
|
/**
|
|
@@ -152,29 +205,24 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
152
205
|
*/
|
|
153
206
|
private rejectComputedAssignment;
|
|
154
207
|
/**
|
|
155
|
-
* D71 rule 183: `computed(...)` the function
|
|
156
|
-
*
|
|
157
|
-
* declaration. The declaration is recorded before the core walks the module
|
|
158
|
-
* its reads can be matched against it — the rewrite that removes the call
|
|
208
|
+
* D71 rule 183: `computed(...)` the function — the shape Vue and the signals
|
|
209
|
+
* libraries teach — is not how a derived value is written here; the `computed`
|
|
210
|
+
* declaration is. The declaration is recorded before the core walks the module
|
|
211
|
+
* so its reads can be matched against it — the rewrite that removes the call
|
|
159
212
|
* parentheses is only offered when every read is a plain `x()`.
|
|
160
213
|
*/
|
|
161
214
|
private recordRetiredAccessorDeclaration;
|
|
162
|
-
/** Returns true when the name is the retired
|
|
215
|
+
/** Returns true when the name is one of the retired accessor globals this pass owns. */
|
|
163
216
|
private recordRetiredAccessorRead;
|
|
164
217
|
/**
|
|
165
|
-
* D71 migration: one message per
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
218
|
+
* D71 migration: one message per site, and a mechanical rewrite only where
|
|
219
|
+
* the compile can prove the rewrite. Where the
|
|
220
|
+
* accessor is used as a value there is no second spelling left to offer, so
|
|
221
|
+
* that site is told to declare the value and write an ordinary `def` where a
|
|
222
|
+
* callable is what the caller wants — and it gets no edit, because moving a
|
|
223
|
+
* reader out of a value position is the author's decision.
|
|
170
224
|
*/
|
|
171
225
|
private reportRetiredComputedFunction;
|
|
172
|
-
/**
|
|
173
|
-
* D71 rule 183 keeps the export-boundary contract the retired spelling had:
|
|
174
|
-
* an exported cached reader has no inferable public type, so the annotation
|
|
175
|
-
* is required at the boundary rather than discovered by the importer.
|
|
176
|
-
*/
|
|
177
|
-
private reportExportedCachedContract;
|
|
178
226
|
protected extensionFieldsOf(name: string): ReadonlyMap<string, ValueType> | null;
|
|
179
227
|
protected inferExtensionCall(callee: import("@velarscript/compiler/extension").ExtensionValueType, arguments_: readonly Expression[], argumentNames: readonly (string | null)[] | undefined, callSpan: Span): ValueType | undefined;
|
|
180
228
|
protected validateExtensionTypeSyntax(syntax: import("@velarscript/compiler/extension").TypeSyntax, validate: (syntax: import("@velarscript/compiler/extension").TypeSyntax) => boolean, resolve: (reference: TypeReference) => ValueType): boolean | undefined;
|
|
@@ -240,7 +288,23 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
240
288
|
* property no longer co-reports a `stringType` fallback assignment error.
|
|
241
289
|
*/
|
|
242
290
|
private analyzeLookValue;
|
|
291
|
+
/**
|
|
292
|
+
* `subject` names the position in the message. It is the property itself
|
|
293
|
+
* everywhere except the `transition(...)` builder, whose first argument takes
|
|
294
|
+
* `transitionProperty`'s vocabulary but is not written as that property — a
|
|
295
|
+
* refusal that named the longhand there would name a spelling the author
|
|
296
|
+
* never wrote.
|
|
297
|
+
*/
|
|
243
298
|
private validateLookStringVocabulary;
|
|
299
|
+
/**
|
|
300
|
+
* D65 rule 168 closed the closed sets against misspelled literals, and D65
|
|
301
|
+
* item 3 makes a `const` string a first-class design token — so the two have
|
|
302
|
+
* to agree. A name or a record field that folds to a bare CSS keyword is
|
|
303
|
+
* checked exactly as the literal spelling of it is; anything that folds to
|
|
304
|
+
* composed CSS text (a builder result, a unit, a gradient) is not a keyword
|
|
305
|
+
* and is left to the type and to the builder's own checks.
|
|
306
|
+
*/
|
|
307
|
+
private foldedLookKeyword;
|
|
244
308
|
/**
|
|
245
309
|
* LOK-D3: a bare number on a length property reaches CSS as a declaration the
|
|
246
310
|
* browser discards. The union already rejects it; this diagnostic replaces the
|
|
@@ -250,6 +314,23 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
250
314
|
private inferLookCondition;
|
|
251
315
|
private checkViewportThreshold;
|
|
252
316
|
private inferJsx;
|
|
317
|
+
/**
|
|
318
|
+
* WEB-S3: `srcdoc` builds a whole document out of a string, and that document
|
|
319
|
+
* inherits this page's origin — so it is a second raw-HTML boundary next to
|
|
320
|
+
* the one the charter names (`unsafe:html`), reachable with no marker at all.
|
|
321
|
+
* The marker this one gets is `sandbox`, because sandbox is what actually
|
|
322
|
+
* takes the origin away; requiring it makes the boundary visible where it is
|
|
323
|
+
* crossed. `allow-scripts allow-same-origin` together hands the origin back,
|
|
324
|
+
* so the pair is refused by name rather than accepted as a sandbox.
|
|
325
|
+
*/
|
|
326
|
+
private reportIframeSrcdocSandbox;
|
|
327
|
+
/**
|
|
328
|
+
* WEB-S2: the analyzer already refuses an anchor that opens a window without
|
|
329
|
+
* 'noopener', so a URL attribute whose value is a script scheme cannot be the
|
|
330
|
+
* one URL question it declines to ask. A written-down URL is answered here; a
|
|
331
|
+
* value that arrives at run time is answered by the runtime attribute check.
|
|
332
|
+
*/
|
|
333
|
+
private reportUrlAttributeScheme;
|
|
253
334
|
private checkKeyedInterpolation;
|
|
254
335
|
private reportIneffectiveJsxKeys;
|
|
255
336
|
private analyzeComponentElement;
|
|
@@ -260,8 +341,43 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
260
341
|
* `List<unknown>` (LOK-I3, LOK-I6).
|
|
261
342
|
*/
|
|
262
343
|
private analyzeJsxLookAttribute;
|
|
344
|
+
/**
|
|
345
|
+
* Composition is how a Look overrides another one: `...baseLook` puts the two
|
|
346
|
+
* in an order the reader can see, and everything after it wins. Two looks
|
|
347
|
+
* placed side by side on one element state no order at all, so a property both
|
|
348
|
+
* of them set has no answer the source gives — the winner used to fall out of
|
|
349
|
+
* whichever rule the stylesheet happened to carry last. The shape is refused
|
|
350
|
+
* rather than ordered by fiat, and the refusal names the spelling that states
|
|
351
|
+
* the order the author meant.
|
|
352
|
+
*/
|
|
353
|
+
private reportIndependentLookCollisions;
|
|
263
354
|
private analyzeComponentRef;
|
|
264
355
|
private analyzeNativeJsxAttribute;
|
|
356
|
+
/**
|
|
357
|
+
* D90 coherence-3: DOM attribute names and ARIA are documented as checked
|
|
358
|
+
* surfaces, and nothing checked them — `className="panel"` compiled clean and
|
|
359
|
+
* emitted a dead attribute, while the sibling React reflex `onClick=` on the
|
|
360
|
+
* same element was already refused. So a model got a clean bill of health on
|
|
361
|
+
* exactly the half of its React habit that silently breaks the page.
|
|
362
|
+
*
|
|
363
|
+
* The rule diagnoses names that are KNOWN wrong, never names that are merely
|
|
364
|
+
* unknown. HTML lets a document carry attributes no roster can enumerate, so
|
|
365
|
+
* `foo="bar"`, `data-*`, and a framework's own prefixes stay legal; a false
|
|
366
|
+
* positive there would block a correct program, which is worse than the
|
|
367
|
+
* silence it replaces. Three closed rosters answer three closed questions:
|
|
368
|
+
* the React / JavaScript-property spellings, the ARIA attribute names (ARIA,
|
|
369
|
+
* unlike HTML, admits no custom names), and the ARIA and role vocabularies.
|
|
370
|
+
*
|
|
371
|
+
* D61 bounds the value half. It ruled that an `aria-*` attribute given a
|
|
372
|
+
* `bool` renders the literal text "true"/"false", and explicitly rejected
|
|
373
|
+
* making the author write `aria-pressed={x ? "true" : "false"}` as ceremony.
|
|
374
|
+
* So a token vocabulary is read only against a string literal; an expression
|
|
375
|
+
* value is a runtime question and is never touched here.
|
|
376
|
+
*
|
|
377
|
+
* Returns true when it reported, so the caller does not stack a value-shape
|
|
378
|
+
* message on an attribute whose name is already answered.
|
|
379
|
+
*/
|
|
380
|
+
private reportNativeAttributeSpelling;
|
|
265
381
|
/**
|
|
266
382
|
* GRM-A4: an event handler runs for effect and returns null. The hole this
|
|
267
383
|
* closes is `on:click={() => {}}`: after a fat arrow, braces build a record,
|
|
@@ -296,6 +412,31 @@ export declare class VelarWebAnalyzer extends Analyzer {
|
|
|
296
412
|
private isJsxRenderable;
|
|
297
413
|
private isJsxAttributeValue;
|
|
298
414
|
private isOptionalString;
|
|
415
|
+
/**
|
|
416
|
+
* The elements of a `<Router routes={...}>` list literal, one at a time.
|
|
417
|
+
*
|
|
418
|
+
* A route written as `route("/a", Panel)` is checked at that call; the record
|
|
419
|
+
* that call returns — `{path: "/a", component: Panel}` — is a legal spelling
|
|
420
|
+
* of the same value, reaches the same runtime position, and until now was
|
|
421
|
+
* checked by nothing: `{path: "no-leading-slash", component: 5}` compiled
|
|
422
|
+
* clean and handed `5` to the Router as a component. Closing the sink rather
|
|
423
|
+
* than the spelling means asking the same questions wherever a route arrives,
|
|
424
|
+
* so this reports exactly what `route(...)` reports, word for word.
|
|
425
|
+
*
|
|
426
|
+
* The runtime is already the second referee (D90 R19): `routerTable`
|
|
427
|
+
* validates every path and refuses a component that is not callable. Nothing
|
|
428
|
+
* here changes which programs run — it moves a refusal the author would have
|
|
429
|
+
* met at mount to the place the source shows the mistake.
|
|
430
|
+
*
|
|
431
|
+
* The `any` component slot is skipped here rather than inside
|
|
432
|
+
* `checkWebRouteComponent`, which is why that method carries no `any` arm:
|
|
433
|
+
* this loop and the Router `fallback` attribute are its only two callers, and
|
|
434
|
+
* both filter first. An `any` reaches this slot for real — `web.lazy` answers
|
|
435
|
+
* `anyType` from each of its error paths — and it arrives with the author's
|
|
436
|
+
* real message already reported, so a second "received any" would be a
|
|
437
|
+
* cascade. The `route(...)` twin skips it for the same reason.
|
|
438
|
+
*/
|
|
439
|
+
private checkWebRouteRecords;
|
|
299
440
|
private checkWebRouteComponent;
|
|
300
441
|
private analyzeInlineVisualAttribute;
|
|
301
442
|
}
|
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,EAAwB,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACzF,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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"}
|