@velarscript/web 0.12.0 → 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.
Files changed (67) hide show
  1. package/README.md +2 -2
  2. package/dist/analyzer.d.ts +164 -23
  3. package/dist/analyzer.d.ts.map +1 -1
  4. package/dist/analyzer.js +1254 -133
  5. package/dist/analyzer.js.map +1 -1
  6. package/dist/ast.d.ts +11 -0
  7. package/dist/ast.d.ts.map +1 -1
  8. package/dist/ast.js +22 -0
  9. package/dist/ast.js.map +1 -1
  10. package/dist/compiler.d.ts.map +1 -1
  11. package/dist/compiler.js +69 -44
  12. package/dist/compiler.js.map +1 -1
  13. package/dist/css-string.d.ts +32 -0
  14. package/dist/css-string.d.ts.map +1 -0
  15. package/dist/css-string.js +66 -0
  16. package/dist/css-string.js.map +1 -0
  17. package/dist/css-tokens.d.ts +16 -0
  18. package/dist/css-tokens.d.ts.map +1 -1
  19. package/dist/css-tokens.js +84 -0
  20. package/dist/css-tokens.js.map +1 -1
  21. package/dist/elements.d.ts +55 -0
  22. package/dist/elements.d.ts.map +1 -1
  23. package/dist/elements.js +152 -0
  24. package/dist/elements.js.map +1 -1
  25. package/dist/emitter.d.ts +10 -0
  26. package/dist/emitter.d.ts.map +1 -1
  27. package/dist/emitter.js +588 -159
  28. package/dist/emitter.js.map +1 -1
  29. package/dist/keyframes.d.ts +17 -0
  30. package/dist/keyframes.d.ts.map +1 -1
  31. package/dist/keyframes.js +28 -9
  32. package/dist/keyframes.js.map +1 -1
  33. package/dist/lexer.d.ts +21 -7
  34. package/dist/lexer.d.ts.map +1 -1
  35. package/dist/lexer.js +32 -12
  36. package/dist/lexer.js.map +1 -1
  37. package/dist/look-static.d.ts.map +1 -1
  38. package/dist/look-static.js +120 -20
  39. package/dist/look-static.js.map +1 -1
  40. package/dist/look.d.ts +15 -0
  41. package/dist/look.d.ts.map +1 -1
  42. package/dist/look.js +7 -2
  43. package/dist/look.js.map +1 -1
  44. package/dist/parser.d.ts.map +1 -1
  45. package/dist/parser.js +15 -20
  46. package/dist/parser.js.map +1 -1
  47. package/dist/runtime-foundation.d.ts.map +1 -1
  48. package/dist/runtime-foundation.js +321 -70
  49. package/dist/runtime-foundation.js.map +1 -1
  50. package/dist/runtime.d.ts.map +1 -1
  51. package/dist/runtime.js +320 -179
  52. package/dist/runtime.js.map +1 -1
  53. package/dist/stable-order.d.ts +16 -0
  54. package/dist/stable-order.d.ts.map +1 -0
  55. package/dist/stable-order.js +18 -0
  56. package/dist/stable-order.js.map +1 -0
  57. package/dist/types.d.ts +0 -1
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/types.js +0 -16
  60. package/dist/types.js.map +1 -1
  61. package/dist/websocket-runtime.d.ts.map +1 -1
  62. package/dist/websocket-runtime.js +9 -5
  63. package/dist/websocket-runtime.js.map +1 -1
  64. package/dist/worker-runtime.d.ts.map +1 -1
  65. package/dist/worker-runtime.js +9 -7
  66. package/dist/worker-runtime.js.map +1 -1
  67. 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. The existing `velar/realtime` text
80
- surface remains available unchanged.
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
@@ -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: retired `const x = computed(...)` sites, their reads, and every other `computed` reference. */
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. The subject
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
- * The two refusals are separate because their causes are: a reader that was
132
- * not called has one correct spelling to name, and a frozen value has none.
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 is retired in favour of
156
- * `cached(...)`, and `const x = computed(() => E)` is retired in favour of the
157
- * declaration. The declaration is recorded before the core walks the module so
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 `computed` global this pass owns. */
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 retired site, and a mechanical rewrite only
166
- * where the compile can prove the rewrite. Where the accessor is used as a
167
- * value the choice between `computed x = E` and `cached(...)` turns on whether
168
- * the caller wants the cache, which is the author's decision so that site
169
- * gets the message and no edit.
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}