@velarscript/cli 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 (140) hide show
  1. package/README.md +4 -12
  2. package/dist/browser-process-owner.d.ts +23 -0
  3. package/dist/browser-process-owner.d.ts.map +1 -1
  4. package/dist/browser-process-owner.js +46 -2
  5. package/dist/browser-process-owner.js.map +1 -1
  6. package/dist/browser-test-runner.d.ts.map +1 -1
  7. package/dist/browser-test-runner.js +110 -14
  8. package/dist/browser-test-runner.js.map +1 -1
  9. package/dist/cli.js +131 -68
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +28 -4
  13. package/dist/config.js.map +1 -1
  14. package/dist/dev-server.d.ts +18 -0
  15. package/dist/dev-server.d.ts.map +1 -1
  16. package/dist/dev-server.js +168 -8
  17. package/dist/dev-server.js.map +1 -1
  18. package/dist/extension-metadata.d.ts +6 -0
  19. package/dist/extension-metadata.d.ts.map +1 -1
  20. package/dist/extension-metadata.js +70 -4
  21. package/dist/extension-metadata.js.map +1 -1
  22. package/dist/format-guard.d.ts +20 -0
  23. package/dist/format-guard.d.ts.map +1 -0
  24. package/dist/format-guard.js +13 -0
  25. package/dist/format-guard.js.map +1 -0
  26. package/dist/framework-host.d.ts.map +1 -1
  27. package/dist/framework-host.js +15 -2
  28. package/dist/framework-host.js.map +1 -1
  29. package/dist/language-server-bundle-entry.js +0 -2
  30. package/dist/language-server-bundle-entry.js.map +1 -1
  31. package/dist/language-server-tool.d.ts.map +1 -1
  32. package/dist/language-server-tool.js +0 -2
  33. package/dist/language-server-tool.js.map +1 -1
  34. package/dist/language-server.d.ts +1 -1
  35. package/dist/language-server.d.ts.map +1 -1
  36. package/dist/language-server.js +87 -293
  37. package/dist/language-server.js.map +1 -1
  38. package/dist/local-request-guard.d.ts +18 -0
  39. package/dist/local-request-guard.d.ts.map +1 -0
  40. package/dist/local-request-guard.js +75 -0
  41. package/dist/local-request-guard.js.map +1 -0
  42. package/dist/mechanical-fixer.d.ts.map +1 -1
  43. package/dist/mechanical-fixer.js +116 -2
  44. package/dist/mechanical-fixer.js.map +1 -1
  45. package/dist/module-assets.d.ts +23 -0
  46. package/dist/module-assets.d.ts.map +1 -1
  47. package/dist/module-assets.js +216 -14
  48. package/dist/module-assets.js.map +1 -1
  49. package/dist/node-application.d.ts +7 -2
  50. package/dist/node-application.d.ts.map +1 -1
  51. package/dist/node-application.js +44 -14
  52. package/dist/node-application.js.map +1 -1
  53. package/dist/node-runtime-dependencies.d.ts +2 -0
  54. package/dist/node-runtime-dependencies.d.ts.map +1 -0
  55. package/dist/node-runtime-dependencies.js +24 -0
  56. package/dist/node-runtime-dependencies.js.map +1 -0
  57. package/dist/npm.d.ts +29 -0
  58. package/dist/npm.d.ts.map +1 -1
  59. package/dist/npm.js +39 -2
  60. package/dist/npm.js.map +1 -1
  61. package/dist/ownership-graph.d.ts.map +1 -1
  62. package/dist/ownership-graph.js +155 -38
  63. package/dist/ownership-graph.js.map +1 -1
  64. package/dist/package-manager.d.ts.map +1 -1
  65. package/dist/package-manager.js +4 -1
  66. package/dist/package-manager.js.map +1 -1
  67. package/dist/preview-server.d.ts.map +1 -1
  68. package/dist/preview-server.js +12 -4
  69. package/dist/preview-server.js.map +1 -1
  70. package/dist/production-build.d.ts.map +1 -1
  71. package/dist/production-build.js +24 -6
  72. package/dist/production-build.js.map +1 -1
  73. package/dist/production-verifier.js +3 -0
  74. package/dist/production-verifier.js.map +1 -1
  75. package/dist/project-check.d.ts +14 -1
  76. package/dist/project-check.d.ts.map +1 -1
  77. package/dist/project-check.js +17 -4
  78. package/dist/project-check.js.map +1 -1
  79. package/dist/project-format.d.ts +9 -0
  80. package/dist/project-format.d.ts.map +1 -1
  81. package/dist/project-format.js +13 -0
  82. package/dist/project-format.js.map +1 -1
  83. package/dist/project-semantic.d.ts.map +1 -1
  84. package/dist/project-semantic.js +15 -4
  85. package/dist/project-semantic.js.map +1 -1
  86. package/dist/project.d.ts +25 -0
  87. package/dist/project.d.ts.map +1 -1
  88. package/dist/project.js +341 -42
  89. package/dist/project.js.map +1 -1
  90. package/dist/reproduction.d.ts +18 -0
  91. package/dist/reproduction.d.ts.map +1 -1
  92. package/dist/reproduction.js +47 -6
  93. package/dist/reproduction.js.map +1 -1
  94. package/dist/stable-order.d.ts +17 -0
  95. package/dist/stable-order.d.ts.map +1 -0
  96. package/dist/stable-order.js +19 -0
  97. package/dist/stable-order.js.map +1 -0
  98. package/dist/standard-modules.d.ts +2 -2
  99. package/dist/standard-modules.d.ts.map +1 -1
  100. package/dist/standard-modules.js +2 -2
  101. package/dist/standard-modules.js.map +1 -1
  102. package/dist/static-deployment.d.ts.map +1 -1
  103. package/dist/static-deployment.js +27 -0
  104. package/dist/static-deployment.js.map +1 -1
  105. package/dist/test-runner.d.ts.map +1 -1
  106. package/dist/test-runner.js +196 -100
  107. package/dist/test-runner.js.map +1 -1
  108. package/dist/test-worker.d.ts +64 -0
  109. package/dist/test-worker.d.ts.map +1 -0
  110. package/dist/test-worker.js +161 -0
  111. package/dist/test-worker.js.map +1 -0
  112. package/dist/typescript-declarations.d.ts +1 -1
  113. package/dist/typescript-declarations.d.ts.map +1 -1
  114. package/dist/typescript-declarations.js +233 -21
  115. package/dist/typescript-declarations.js.map +1 -1
  116. package/dist/unowned-errors.d.ts +15 -2
  117. package/dist/unowned-errors.d.ts.map +1 -1
  118. package/dist/unowned-errors.js +13 -2
  119. package/dist/unowned-errors.js.map +1 -1
  120. package/dist/version.d.ts +1 -1
  121. package/dist/version.js +1 -1
  122. package/dist/workspace-index.d.ts.map +1 -1
  123. package/dist/workspace-index.js +42 -17
  124. package/dist/workspace-index.js.map +1 -1
  125. package/package.json +7 -8
  126. package/skill/ai-skill-node.md +91 -12
  127. package/skill/ai-skill-web.md +51 -1
  128. package/skill/ai-skill.md +36 -13
  129. package/dist/official-script-language-service.d.ts +0 -2
  130. package/dist/official-script-language-service.d.ts.map +0 -1
  131. package/dist/official-script-language-service.js +0 -10
  132. package/dist/official-script-language-service.js.map +0 -1
  133. package/dist/official-tool-assets.d.ts +0 -3
  134. package/dist/official-tool-assets.d.ts.map +0 -1
  135. package/dist/official-tool-assets.js +0 -60
  136. package/dist/official-tool-assets.js.map +0 -1
  137. package/dist/script-language-service.d.ts +0 -82
  138. package/dist/script-language-service.d.ts.map +0 -1
  139. package/dist/script-language-service.js +0 -18
  140. package/dist/script-language-service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-index.js","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-index.js","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velarscript/cli",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "The VelarScript command-line compiler, dev server, test runner, and language server.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -30,13 +30,12 @@
30
30
  "velar": "./dist/cli.js"
31
31
  },
32
32
  "dependencies": {
33
- "@velarscript/compiler": "0.12.0",
34
- "@velarscript/core": "0.12.0",
35
- "@velarscript/desktop": "0.12.0",
36
- "@velarscript/node": "0.12.0",
37
- "@velarscript/script-analysis": "0.10.5",
38
- "@velarscript/web": "0.12.0",
39
- "create-velar": "0.12.0",
33
+ "@velarscript/compiler": "0.13.0",
34
+ "@velarscript/core": "0.13.0",
35
+ "@velarscript/desktop": "0.13.0",
36
+ "@velarscript/node": "0.13.0",
37
+ "@velarscript/web": "0.13.0",
38
+ "create-velar": "0.13.0",
40
39
  "esbuild": "^0.28.1",
41
40
  "playwright": "^1.58.2"
42
41
  }
@@ -6,7 +6,8 @@ capabilities, or application configuration.
6
6
 
7
7
  ## Ownership and application entry
8
8
 
9
- A Node service activates the extension and names one exported `ServeApp`:
9
+ A Node service activates the extension and names one exported `ServeApp` or
10
+ one typed WebSocket startup function:
10
11
 
11
12
  ```json
12
13
  {
@@ -34,6 +35,28 @@ import {app as routes} from "./app.vel"
34
35
  export const app = routes
35
36
  ```
36
37
 
38
+ For one shared HTTP/WebSocket application port, `node.app` may instead name
39
+ exactly this function shape:
40
+
41
+ ```velar fragment
42
+ import {app as routes} from "./app.vel"
43
+ import {listen} from "velar/websocket"
44
+
45
+ export async def start(host: string, port: number, maxBodyBytes: number):
46
+ return await listen({
47
+ host,
48
+ port,
49
+ http: routes,
50
+ path: "/api/events",
51
+ origins: ["https://app.example.com"],
52
+ maxBodyBytes,
53
+ })
54
+ ```
55
+
56
+ Set `node.app` to `"start"`. The exact result is
57
+ `Promise<WebSocketServer>`; `dev`, `serve`, and the production launcher pass
58
+ the same three configured values.
59
+
37
60
  Use `velar dev` while editing, `velar serve` for checked production runtime
38
61
  behavior, and `velar build` for a standalone Node output directory. A direct
39
62
  `serve(app, port=0)` call is still correct in integration tests or an embedded
@@ -41,7 +64,7 @@ server.
41
64
 
42
65
  `@name` keeps its one language-wide role: it qualifies a compiler-owned name
43
66
  in the current context. In a `server` block, the available names are `@get`,
44
- `@post`, `@put`, `@patch`, and `@delete`. They are not decorators,
67
+ `@post`, `@put`, `@patch`, `@delete`, and `@notFound`. They are not decorators,
45
68
  functions, imports, annotations, first-class values, or user extension points.
46
69
 
47
70
  ## Routes and checked inputs
@@ -65,6 +88,7 @@ export server articles:
65
88
 
66
89
  @post(p"/articles", input: CreateArticle):
67
90
  return created({id: 1, title: input.title})
91
+
68
92
  ```
69
93
 
70
94
  The path is written once. A capture such as `{id:number}` declares `id`
@@ -82,6 +106,18 @@ request, including `queryAll` and cooperative `cancellation`. Ambiguous bodies,
82
106
  duplicate declarations, conflicting path shapes, and unsupported path types are
83
107
  compile errors.
84
108
 
109
+ `@notFound()` is the one application fallback for a path that matches no
110
+ route. It may omit its parameter or accept one explicitly typed `Request`.
111
+ Returning Data keeps status 404; return an explicit response such as
112
+ `json(value, status=410)` to choose another final status. A matched route's
113
+ `HttpError` and framework 405 responses do not enter this fallback. Declare at
114
+ most one on the final application; an app that owns `@notFound` cannot be moved
115
+ under a non-root `prefix`, because a global fallback has no unambiguous prefix
116
+ scope. Compose prefixed route tables first, then declare the fallback on the
117
+ outer `server`. A catch-all route such as `staticFiles("/", ...)` is a matched
118
+ route and therefore owns its own file fallback instead of entering
119
+ `@notFound`.
120
+
85
121
  Use ordinary values for the cases that need more than inference:
86
122
 
87
123
  ```velar
@@ -131,7 +167,7 @@ closed. Do not build a controller or container layer around it.
131
167
  Compose route tables as values:
132
168
 
133
169
  ```velar fragment
134
- import {RouteDocumentation, docs, lifecycle, middleware, prefix, staticFiles, use} from "velar/serve"
170
+ import {Request, RouteDocumentation, docs, lifecycle, middleware, prefix, staticFiles, use} from "velar/serve"
135
171
 
136
172
  const service = lifecycle(
137
173
  prefix("/api", articles),
@@ -154,7 +190,8 @@ const routeDocs: Map<string, RouteDocumentation> = Map([["GET /api/articles/{id:
154
190
 
155
191
  export server app:
156
192
  ...docs(hardened, title="Article API", version="1.0.0", routes=routeDocs)
157
- ...staticFiles("/", root="public", fallback="index.html")
193
+ ...staticFiles("/assets", root="public")
194
+ @notFound(request: Request) => {error: "route_not_found", path: request.path}
158
195
  ```
159
196
 
160
197
  `prefix` changes a literal route prefix; `bodyLimit` narrows one route
@@ -164,6 +201,23 @@ and explicit error recovery. A timeout response does not pretend downstream
164
201
  work was cancelled: its request resources remain alive until that work really
165
202
  ends, and the runtime caps unfinished timed-out tasks.
166
203
 
204
+ Overlapping routes are refused by two referees. At compile time the analyzer
205
+ follows the path-preserving combinators: `use`, `bodyLimit`, `docs`, and
206
+ `lifecycle` carry their app argument’s routes through unchanged, and `prefix`
207
+ translates them when its path is a string literal. So
208
+ `...prefix("/api", routes)` is checked against the composing server’s own
209
+ routes at the translated addresses, and the diagnostic names that address and
210
+ the server the route was composed in from. A module-level `const` alias of a
211
+ server resolves, and so does a `let` the module never reassigns. A spread the
212
+ analyzer cannot resolve, such as an imported server, a computed prefix path, or
213
+ an app handed back by a function, is deliberately let through; a false conflict
214
+ here would block a correct program. The final route table exists only at
215
+ assembly, so the runtime judges it there: an overlapping table refuses to build,
216
+ and the failure names both routes, where each one came from, and the method and
217
+ path shape they share. Both referees read one definition of that shape, and a
218
+ program the compiler rejected never reaches assembly, so nothing is reported
219
+ twice.
220
+
167
221
  `lifecycle` owns paired startup and shutdown hooks. Successful startups unwind
168
222
  in reverse order; a failed startup does not run its paired shutdown.
169
223
  `background(response, task)` keeps request-scoped resources valid until the
@@ -198,9 +252,13 @@ total stream are bounded. SSE accepts text or checked
198
252
  root-contained, streamed reads with validators and one byte range.
199
253
 
200
254
  `velar/websocket.listen({http: app, ...})` serves a `ServeApp` and WebSocket
201
- upgrades on one native server and owns the application lifecycle. Connections
202
- are pull-based. Always consume `next()`, handle backpressure, and stop the
203
- server.
255
+ upgrades on one native server and owns the application lifecycle. Set
256
+ `maxBodyBytes` to the supplied application value. `origins` contains exact
257
+ canonical HTTP/HTTPS origins. The default rejects any upgrade carrying
258
+ `Origin`; no-Origin non-browser clients remain allowed. Use `["*"]` only for an
259
+ intentional unrestricted policy. A rejected browser origin receives 403 before
260
+ it consumes connection-queue capacity. Connections are pull-based. Always
261
+ consume `next()`, handle backpressure, and stop the server.
204
262
 
205
263
  ## Tests
206
264
 
@@ -276,11 +334,32 @@ read-modify-write sequence atomic.
276
334
 
277
335
  Use `velar/fs`, `velar/path`, `velar/process`, `velar/env`,
278
336
  `velar/terminal`, `velar/http`, `velar/worker`, and `velar/websocket` instead of
279
- ambient Node globals. Databases are ordinary external source packages: use the
280
- engine-neutral `@velarscript/database` model contract and install an adapter
281
- such as `@velarscript/sqlite`. Third-party packages cross a checked `extern
282
- module` adapter first; keep `import js unsafe` at one narrow validation
283
- boundary.
337
+ ambient Node globals. Database contracts, drivers, codecs, and other
338
+ application integrations are project-owned modules or dependencies. Declare
339
+ third-party boundaries with checked `extern module`; keep `import js unsafe`
340
+ at one narrow validation boundary.
341
+
342
+ An HTTP response has no `ok` field on any target: `response()` throws
343
+ `HttpResponseError` for every non-2xx status before the value exists, so every
344
+ response the code can hold already succeeded. Wrap the call in `try:` /
345
+ `catch failure:`, narrow with `if failure is HttpResponseError:` —
346
+ `HttpResponseError` is imported from `velar/http` — and read `failure.status`
347
+ there.
348
+
349
+ Wire-shaped values arrive as `unknown`, not as a checked shape. An
350
+ `HttpError`’s `body`, the payload of a response whose declared type is
351
+ `ServeResponse`, the path items of an `openapi(...)` document, the error handed
352
+ to a `middleware.errors` handler, and a test response’s parsed body are all
353
+ `unknown`: validate one with `Type.parse`, or narrow it, before touching a
354
+ member. A middleware reaches no payload at all: `await next()` answers the whole
355
+ `ServeResponse` union, whose three variants share no payload field and no
356
+ discriminant, so `status` and `headers` are the members it can read.
357
+ `request.parse(Report)` is unchanged and stays the checked way in. Constructing
358
+ responses is unchanged too; `json` and `created` accept any payload and hand
359
+ back a response whose payload keeps the type it was given, and that payload
360
+ turns into a read-only `unknown` once the value is widened to `ServeResponse`,
361
+ which is what lets a response carrying a concrete payload still be a
362
+ `ServeResponse`.
284
363
 
285
364
  Run `velar format --check`, `velar check`, `velar test`, and
286
365
  `velar build`. The complete runnable spelling lives in
@@ -64,6 +64,22 @@ A resource loads once at mount. Refetching after an input changes is an
64
64
  explicit `watch` plus detached `async resource.reload()`. Actions do not queue;
65
65
  disable or otherwise guard a trigger when concurrent calls are unwanted.
66
66
 
67
+ A watch subject is a reactive name — a `state`, a `computed`, a prop, or a
68
+ resource field — or a read path out of one, such as `items[0].done`. An operator
69
+ or a call there is refused; declare the value with `computed` and watch that
70
+ name. A subject that is not reactive is refused as well: `watch total:` over a
71
+ plain `const` is a body that can never run. `computed` is the only spelling for
72
+ a reactive derived value. A `const` inside a component is not a second one: its
73
+ initializer is evaluated once at construction and never recomputes, and no
74
+ diagnostic marks it.
75
+
76
+ A watch may write state and declares nothing to do so. Within a flush, watches
77
+ run in the order they were written: source order in one module, mount order
78
+ across instances of one component, module initialization order across modules.
79
+ Two watches that write one `state` both take effect, in that order. Put a value
80
+ that must be correct before anything reads it in a `computed`, which settles
81
+ before any DOM is written and never depends on watch order.
82
+
67
83
  `@mounted:` runs after insertion and may await. `@cleanup:` runs before removal
68
84
  and is synchronous. A component may still declare ordinary methods named
69
85
  `mounted` or `cleanup` because compiler-owned names occupy a separate namespace.
@@ -72,7 +88,35 @@ Events use `on:click={handler}`. Writable form paths use `bind:value`,
72
88
  `bind:checked`, or `bind:group`; do not read `event.target`. A JSX tag body is
73
89
  received only through an explicitly declared `children: WebNode` prop.
74
90
  Conditional rendering is an expression, and repeated children need stable
75
- `key` values.
91
+ `key` values. Reuse asks two questions: the key must match, and the row it names
92
+ must still be the same value. `items = items.map(item => { ...item, done: true })`
93
+ rebuilds every row, so the keyed list recognises none of them and destroys and
94
+ rebuilds all of its children — an input being typed into loses focus. Change the
95
+ field in place, `items[index].done = true`. The compiler raises advisory **A4**
96
+ where the rewritten list is the one a keyed position renders; `// velar-allow
97
+ A4: <reason>` suppresses it where a `map` is the only spelling, which a
98
+ `readonly` list or one API response makes it.
99
+
100
+ A native element rejects every attribute name beginning with `on` other than
101
+ the `on:` directive itself. `onclick`, `onClick`, and `ONCLICK` are one
102
+ attribute to the browser, and the browser compiles that attribute's value as
103
+ script in the application's origin, which VelarScript reserves for
104
+ `unsafe:html`. The prefix is reserved by name rather than by a roster of
105
+ handler names, so the next handler spelling the platform adds is closed in
106
+ advance. A component prop may still be named `onSave`; the reservation belongs
107
+ to the native element.
108
+
109
+ `host` marks the element that receives what an invocation attaches to a
110
+ component — `class`, `look`, `look:*`, and `style:*`. `class:*` is a native
111
+ element directive and is not among them; an invocation that writes it is
112
+ reported as an unknown prop. A component whose root is a single native element
113
+ or a single component needs no marker. A nested component's `host` names that
114
+ component's host and never the enclosing one's, wherever the nested component
115
+ sits: buried inside one of the enclosing component's elements, or standing
116
+ directly among its roots. An enclosing component forwards to a nested
117
+ component's host only when it marks no native element of its own, so a
118
+ component whose roots are two nested components must mark a native element of
119
+ its own to say which one receives the invocation.
76
120
 
77
121
  Props are live reactive inputs. Their data is mutable unless the author writes
78
122
  an explicit `readonly` view.
@@ -102,6 +146,12 @@ or a typed `look:color={...}` binding. Checked motion is a module-level
102
146
  animation string. Unsupported styling uses explicit `import css unsafe
103
147
  "./file.css" before look` or `after look`.
104
148
 
149
+ A `look` written on a component invocation composes after the look the
150
+ component applies to its own host, per property and per condition: declare a
151
+ property unconditionally to override the component's outright, and declare it
152
+ under a condition to refine that condition alone and leave the component's
153
+ other values standing.
154
+
105
155
  ## Storage and tests
106
156
 
107
157
  `velar/storage` stores JSON and validates on read. A generic type spelling is
package/skill/ai-skill.md CHANGED
@@ -23,7 +23,13 @@ one round.
23
23
  The working loop:
24
24
 
25
25
  1. Write ordinary code the way a fluent JS/Python author would.
26
- 2. Run `velar check`. Do exactly what each diagnostic says.
26
+ 2. Run `velar check`. Do exactly what each diagnostic says. It reports
27
+ **advisories** as well — a second channel for a spelling Vel accepts with a
28
+ meaning other than the one your JS/Python reflex intended. An advisory never
29
+ fails the check, and leaving one unresolved means the work is not done:
30
+ either write the spelling it names, or put `// velar-allow <CODE>: <reason>`
31
+ on that line saying why the code is right as written. A suppression with no
32
+ reason, and one that no longer applies, are both compile errors.
27
33
  3. Run `velar fix` to apply every rewrite the diagnostics already named
28
34
  (retired spellings with one successor, line-ending semicolons, and the rest
29
35
  of that family); it never rewrites anything that needs a decision, so what
@@ -53,7 +59,8 @@ These names need no import and cannot be shadowed: `const Text = 1` is rejected.
53
59
  protects these names. Capabilities stay explicit imports. Durations use `ms` or
54
60
  `s`, so write `await Promise.sleep(250ms)`, not a bare number.
55
61
 
56
- Use checked binary, random, task, and official adapter APIs. A direct
62
+ Use checked binary, random, and task APIs. Project-specific codecs, storage,
63
+ and algorithms come from project-owned modules or dependencies. A direct
57
64
  `for index in range(...):` is a native counter; range as a value is a List. Use `UInt16Buffer` for 16-bit numeric state,
58
65
  `UInt8Buffer` for compact data, and bounded `UInt32Builder`/`Float32Builder` values for variable-size numeric output.
59
66
 
@@ -90,19 +97,28 @@ module; the body may `await` directly and needs no `export`. A file that declare
90
97
 
91
98
  ## The traps your reflexes will hit
92
99
 
93
- Everything in this table was hit by real models writing Vel blind. All but
94
- the first two rows produce a teaching diagnostic, so `velar check` will catch
95
- them; the first two are the **silent traps** in the list read them twice.
100
+ Everything in this table was hit by real models writing Vel blind. Most rows
101
+ produce a teaching diagnostic, so `velar check` will catch them; the rows
102
+ marked **A1**, **A2**, **A3**, **A5**, and **A6** are answered by an advisory
103
+ instead, which reports without failing the check. Two rows are still silent —
104
+ nothing is reported at all and the program runs with the other meaning:
105
+ `a // b` where the divisor is a name rather than arithmetic, and a collection
106
+ `==` between two bindings, since only a collection literal written inside the
107
+ comparison is reported. Read those twice. The `Type.parse` row is silent as
108
+ well, but it is a guarantee rather than a trap.
96
109
 
97
110
  | Your reflex | Write instead |
98
111
  | --- | --- |
99
- | `"${value}"` or `` `${value}` `` template interpolation | `f"{value}"` or `` f`{value}` ``. Only the `f` prefix interpolates, in either delimiter; `${...}` is legal literal text in every string — including a backtick one — so nothing warns you. |
100
- | `a // b` floor division | `//` starts a comment, so the rest of the line disappears and `const c = a // b` silently binds `a`. Write `(a / b).floor()`. |
112
+ | `"${value}"` or `` `${value}` `` template interpolation (**A5**), `f"${value}"` (**A6**) | `f"{value}"` or `` f`{value}` ``. Only the `f` prefix interpolates, in either delimiter, and a `$` in front of the brace keeps it literal even under that prefix. `${...}` stays legal text in every string — including a backtick one — so nothing fails: the advisory reports and the build continues. Suppress it with `// velar-allow A5: <reason>` where the characters are what you meant, as they are when the string is JavaScript source; under the `f` prefix the code is `A6`, and naming the one that did not fire is a compile error. A raw `r"..."` never raises A5, since asking for literal text is what the prefix says; `rf` still raises A6. |
113
+ | `a // b` floor division (**A1**) | `//` starts a comment, so the rest of the line disappears and `const c = a // b` silently binds `a`. Write `(a / b).floor()`. The advisory reaches only a comment body made of digits and arithmetic — `a // 2` reports, `a // b` does not, because a body carrying letters is an ordinary comment. |
114
+ | `for i, v in nums:` (**A2**) | `for v, i in nums:` — the two-slot `for` gives `value, index`, like JS `forEach((v, i) => …)` and unlike Python's `enumerate`. |
115
+ | `-7 % 3` expecting `2` (**A3**) | Vel's `%` is JavaScript's, so it is `-1`. Python's non-negative modulo is `((a % b) + b) % b`. |
101
116
  | `# comment` | `// comment` (`///` documents the following declaration). |
102
117
  | `function f(...)`, `fn f(...)` | `def f(...) -> Result:` |
103
118
  | `interface X:`, `record X:`, `struct X:` | `type X:` — one keyword for record shapes and aliases. |
104
119
  | `items.length` | `items.size` (also on strings, Sets, Maps). |
105
120
  | `items.push(x)` | `items.append(x)`. There is no `splice`/`shift`/`unshift`/mutating `sort`; use `insert`, `pop`, `remove`, `extend`, and the copying `sorted()`/`reversed()`. |
121
+ | `{retry: 1, timeoutMs: 30}` where the type declares `timeout` | A record literal written at an annotated position is closed: an undeclared key is reported, and the nearest declared field named when one is near enough — `Type 'Options' has no field 'timeoutMs'; did you mean 'timeout'?`, against a bare `Type 'Options' has no field 'extra'` when no declared name is close. The annotation may sit on the binding, the parameter, the result, or the collection the literal is written into. A value that is not a literal stays structurally open, so passing a record that happens to carry more is unaffected. |
106
122
  | `const items = []`, `const tags = Set()` | An empty collection takes its type where it is written: `const items: List<string> = []`. A later `append`/`add`/`set` never types the declaration. A contextual position supplies it too, so `take(Set())` and `return Map()` need no annotation. |
107
123
  | `if value:` truthiness | Conditions accept only `bool`/`bool?`. Test presence explicitly: `if value != null:`. |
108
124
  | `value is null` | `value == null` / `value != null` — `is` tests runtime types, `null` is a value. |
@@ -117,6 +133,7 @@ them; the first two are the **silent traps** in the list — read them twice.
117
133
  | `"""triple-quoted"""` for a block of text | A layout string: a double quote followed immediately by a newline opens it; a quote back at the opening line's indentation closes it. Backtick strings are real, but always single-line. |
118
134
  | Escaping `\"` through a JSON, HTML, or selector string | Use backticks: `` `{"name":"Nova"}` `` is the same `string` value, with `"` as ordinary text. Prefixes are orthogonal (`` f` ``, `` r` ``, `` rf` ``), and `velar format` picks the delimiter for you (`"` by default, backticks when the text contains `"`), so write whichever is convenient. |
119
135
  | `007`, `.5` | Write `7`, `0.5`. Explicit `0xFF`, `0b1010`, and `0o17` integers are supported; legacy leading-zero octal is not. Group long digits with `_` — `1_000_000`. `Infinity` and `NaN` are not literals: write `1 / 0` and `0 / 0`. |
136
+ | Pasting a wide id or an exact bit pattern as a number literal | An integer literal `number` cannot hold exactly is refused rather than rounded: `9007199254740993` and `0x20000000000001` both report instead of becoming `9007199254740992`. Carry an identifier that wide as a `string`. Only a literal written as an integer is tested — a fraction or exponent spelling keeps the ordinary nearest-value reading. |
120
137
  | `a == b == c` | Equality never chains: `a == b and b == c`. Ordered chains work but must point one way — `0 < index <= size` is fine, `a < b > c` is not. An `in` or `is` test inside a comparison needs parentheses. |
121
138
  | A line that is only a value — `x == 5`, `items[0]`, `"a note"` | A statement must do something: call, assign, `await`, or `async`. A computed-and-discarded value is a compile error, and a bare string is not a docstring — use `//`. |
122
139
  | A block comment that starts or ends beside code on a multi-line span | `/* */` exists and nests — commenting out a region that already holds a comment works — but a multi-line one takes whole lines: only `/*` on its opening line, only `*/` on its closing line. Within a single line it can sit anywhere: `call(/* why */ value)`. |
@@ -128,12 +145,15 @@ them; the first two are the **silent traps** in the list — read them twice.
128
145
  | `map[key]` reads | `map.get(key)` returns `T?`. On Lists, `[index]` throws on a bug; `.get(index)` returns `null` when absence is an expected answer. |
129
146
  | `[...text]` or `list(text)` for characters | `text.split("")` — the empty separator splits per Unicode code point. |
130
147
  | `x !== x` or `Number.isNaN(x)` | Number predicates are members: `x.isNaN()`, `x.isFinite()`, `x.isInteger()`. `NaN == NaN` is `true` — equality is SameValueZero. |
148
+ | `Math.min(a, b)` or `values.sorted()` where a NaN may be present | A NaN may be held and tested, and one policy governs the rest: `Math.min`, `Math.max`, `Math.clamp`, `sorted()`, `sorted(by=)`, `min()`, `max()`, `sum()`, and the ordering a `Comparable`-bounded type parameter performs all raise instead of answering. The bare `<`, `<=`, `>`, and `>=` on a plain `number` are the one exception and keep IEEE behavior, so every comparison against a NaN is `false` and `if a < b:` reports nothing. Drop it first — `values.filter(v => not v.isNaN())`. |
131
149
  | `text.trim().size == 0` blank test | `text.isBlank()` — `true` for empty or whitespace-only text. |
132
150
  | `while true:` plus a `pop()` null check to drain a List | `pop(index=-1)` returns `T` and throws `IndexError` when empty or out of range, so drain with `while items.size > 0:`. |
133
151
  | `1 == "1"`, `user == "a"`, `A.member == B.member`, `raw == Kind.member` | `==`/`!=` require the operand types to intersect. Compare enums with `Kind.parse(raw) == Kind.member` when the text must name a member — `parse` throws otherwise — or `str(Kind.member) == raw` when unknown values must be ignored, as on an open wire protocol. `value == null` on an optional is always fine. |
134
152
  | `[1, 2] == [1, 2]` content comparison | Collection `==` is identity; `equals(a, b)` compares data deeply (Lists ordered, Sets/Maps by members, SameValueZero leaves) with no import. |
135
153
  | Iterating or spreading an enum object | `Status.values()` returns the members in declaration order as a fresh `List<Status>`. |
136
154
  | `sorted()`, `min()`, or `sorted(by=)` over enums | Only `number`, `string`, and single-category unions are ordered. Give the order explicitly with `sorted(by=row => row.rank)` or a string-backed enum (`low = "1-low"`). |
155
+ | Writing through the value you handed to `Type.parse` | `parse` returns a copy, so "validated" means "and it stays valid" rather than "it was correct at that instant": neither side's later writes reach the other. Positions the type leaves opaque — an `unknown` field, a class instance — stay shared. |
156
+ | `export const client = thing`, where `thing` came out of `unsafe js` | This compiles, and what it publishes is an `unknown`: the JavaScript boundary hands back `unknown`, so a consuming module that never writes `unsafe` is stopped at its own first read — `Cannot access 'name' on unknown without validation`. Nothing leaks, but nothing is usable either. Validate into a declared type in this module and export that, so the shape is named once instead of at every consumer. `any` is not a type source can write at any position — the word names the boundary, and the boundary answers `unknown`. |
137
157
 
138
158
  The long tail is deliberately not in this table: the diagnostic will name
139
159
  the current spelling when you hit it.
@@ -471,12 +491,15 @@ the Vel side observes it — no recompute, no re-render, no refreshed flow fact
471
491
  until some unrelated Vel assignment invalidates. Have the package **return** the
472
492
  data and assign the result on the Vel side.
473
493
 
474
- 2. **Quick raw access** — `import js unsafe` admits the value as `any`.
475
- Operations on an `any` are raw JavaScript with no runtime check anywhere: it
476
- is assignable to every type without validation, and an `any` holding
477
- `undefined` even answers `false` to `== null`. The import statement is the
478
- only correctness boundary validate with `Type.parse` there, before the
479
- value touches typed code.
494
+ 2. **A boundary with no contract to write** — `import js unsafe` admits the
495
+ value as `unknown`, so it needs no `extern module` block. It skips the
496
+ declaration, not the checking: a member read, a call, an `await`, an
497
+ f-string or `str()`, and an assignment to a typed binding are each refused
498
+ by name while the value is still unvalidated. `print`, `Json.stringify`,
499
+ `== null`, and passing it on as `unknown` are the operations an unvalidated
500
+ boundary value still answers. Validate at the import — `Type.parse` a
501
+ declared shape, or narrow with `value is string` — before the value touches
502
+ typed code.
480
503
  3. **A suspected compiler defect blocking you** — run `velar repro` (below),
481
504
  then take the final exit: `velar build` output is readable, source-mapped
482
505
  JavaScript that runs without the toolchain.
@@ -1,2 +0,0 @@
1
- export declare function installOfficialScriptLanguageService(): void;
2
- //# sourceMappingURL=official-script-language-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"official-script-language-service.d.ts","sourceRoot":"","sources":["../src/official-script-language-service.ts"],"names":[],"mappings":"AAGA,wBAAgB,oCAAoC,IAAI,IAAI,CAM3D"}
@@ -1,10 +0,0 @@
1
- import { ScriptDocument, ScriptLanguage } from "@velarscript/script-analysis";
2
- import { registerScriptLanguageService } from "./script-language-service.js";
3
- export function installOfficialScriptLanguageService() {
4
- registerScriptLanguageService({
5
- create(language, text) {
6
- return new ScriptDocument(language === "typescript" ? ScriptLanguage.typescript : ScriptLanguage.javascript, text);
7
- },
8
- });
9
- }
10
- //# sourceMappingURL=official-script-language-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"official-script-language-service.js","sourceRoot":"","sources":["../src/official-script-language-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,MAAM,UAAU,oCAAoC;IAClD,6BAA6B,CAAC;QAC5B,MAAM,CAAC,QAAQ,EAAE,IAAI;YACnB,OAAO,IAAI,cAAc,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Plugin } from "esbuild";
2
- export declare function officialToolModulesPlugin(): Promise<Plugin>;
3
- //# sourceMappingURL=official-tool-assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"official-tool-assets.d.ts","sourceRoot":"","sources":["../src/official-tool-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAyBtC,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CA+BjE"}
@@ -1,60 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { findPackageJSON } from "node:module";
3
- import { dirname, isAbsolute, relative, resolve } from "node:path";
4
- import { formatDiagnostic } from "@velarscript/compiler";
5
- import { compileProject } from "./project.js";
6
- import { standardModuleSource } from "./standard-modules.js";
7
- async function sourcePackage(name) {
8
- const manifestPath = findPackageJSON(name, import.meta.url);
9
- if (!manifestPath)
10
- throw new Error(`Official tool dependency '${name}' is not installed`);
11
- const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
12
- const declared = manifest.velar?.entry;
13
- if (typeof declared !== "string" || declared.length === 0 || isAbsolute(declared)) {
14
- throw new Error(`Official tool dependency '${name}' has no valid velar.entry`);
15
- }
16
- const root = dirname(manifestPath);
17
- const entry = resolve(root, declared);
18
- const inside = relative(root, entry);
19
- if (inside === "" || inside === ".." || inside.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`) || isAbsolute(inside)) {
20
- throw new Error(`Official tool dependency '${name}' has a velar.entry outside its package root`);
21
- }
22
- return { root, entry };
23
- }
24
- export async function officialToolModulesPlugin() {
25
- const scriptAnalysis = await sourcePackage("@velarscript/script-analysis");
26
- const project = await compileProject(scriptAnalysis.entry, new Map(), {
27
- sourceRoot: dirname(scriptAnalysis.entry),
28
- projectRoot: scriptAnalysis.root,
29
- });
30
- const failures = [
31
- ...project.failures.map((failure) => `${failure.path}: ${failure.message}`),
32
- ...project.modules.flatMap((module) => module.result.diagnostics
33
- .map((diagnostic) => formatDiagnostic(module.result.source, diagnostic))),
34
- ];
35
- if (failures.length > 0)
36
- throw new Error(`Cannot compile official script-analysis package:\n${failures.join("\n\n")}`);
37
- const textBufferEntry = project.velarPackages.find((package_) => package_.name === "@velarscript/text-buffer")?.entryPath;
38
- const modules = new Map([
39
- ["@velarscript/script-analysis", project.modules.find((module) => module.inputPath === scriptAnalysis.entry)?.result.code],
40
- ["@velarscript/text-buffer", project.modules.find((module) => module.inputPath === textBufferEntry)?.result.code],
41
- ]);
42
- for (const [source, code] of modules)
43
- if (!code)
44
- throw new Error(`Official tool package '${source}' did not emit JavaScript`);
45
- return {
46
- name: "velar-official-tool-modules",
47
- setup(build) {
48
- build.onResolve({ filter: /^velar\// }, (args) => ({ path: args.path, namespace: "velar-standard-module" }));
49
- build.onLoad({ filter: /.*/, namespace: "velar-standard-module" }, (args) => {
50
- const contents = standardModuleSource(args.path);
51
- if (contents === null)
52
- throw new Error(`Official tool requested unknown standard module '${args.path}'`);
53
- return { contents, loader: "js" };
54
- });
55
- build.onResolve({ filter: /^@velarscript\/(?:script-analysis|text-buffer)$/ }, (args) => ({ path: args.path, namespace: "velar-tool-package" }));
56
- build.onLoad({ filter: /.*/, namespace: "velar-tool-package" }, (args) => ({ contents: modules.get(args.path), loader: "js" }));
57
- },
58
- };
59
- }
60
- //# sourceMappingURL=official-tool-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"official-tool-assets.js","sourceRoot":"","sources":["../src/official-tool-assets.ts"],"names":[],"mappings":"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"}