@velarscript/cli 0.15.0 → 0.16.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 (58) hide show
  1. package/README.md +9 -0
  2. package/dist/cli.js +193 -62
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config.d.ts +10 -0
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +21 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/javascript-output.d.ts +34 -0
  9. package/dist/javascript-output.d.ts.map +1 -0
  10. package/dist/javascript-output.js +44 -0
  11. package/dist/javascript-output.js.map +1 -0
  12. package/dist/library-artifact-build.d.ts +2 -1
  13. package/dist/library-artifact-build.d.ts.map +1 -1
  14. package/dist/library-artifact-build.js +21 -6
  15. package/dist/library-artifact-build.js.map +1 -1
  16. package/dist/node-application.js +2 -2
  17. package/dist/node-application.js.map +1 -1
  18. package/dist/production-build.d.ts +5 -2
  19. package/dist/production-build.d.ts.map +1 -1
  20. package/dist/production-build.js +18 -14
  21. package/dist/production-build.js.map +1 -1
  22. package/dist/production-verifier.d.ts.map +1 -1
  23. package/dist/production-verifier.js +4 -1
  24. package/dist/production-verifier.js.map +1 -1
  25. package/dist/project-check.d.ts +3 -1
  26. package/dist/project-check.d.ts.map +1 -1
  27. package/dist/project-check.js +3 -1
  28. package/dist/project-check.js.map +1 -1
  29. package/dist/project-format.d.ts +1 -1
  30. package/dist/project-format.d.ts.map +1 -1
  31. package/dist/project-format.js +1 -0
  32. package/dist/project-format.js.map +1 -1
  33. package/dist/project-semantic.d.ts.map +1 -1
  34. package/dist/project-semantic.js +6 -0
  35. package/dist/project-semantic.js.map +1 -1
  36. package/dist/project.d.ts +5 -0
  37. package/dist/project.d.ts.map +1 -1
  38. package/dist/project.js +1 -0
  39. package/dist/project.js.map +1 -1
  40. package/dist/resource-output.d.ts +2 -1
  41. package/dist/resource-output.d.ts.map +1 -1
  42. package/dist/resource-output.js +13 -2
  43. package/dist/resource-output.js.map +1 -1
  44. package/dist/standalone-build.d.ts +2 -1
  45. package/dist/standalone-build.d.ts.map +1 -1
  46. package/dist/standalone-build.js +11 -8
  47. package/dist/standalone-build.js.map +1 -1
  48. package/dist/test-output.d.ts +1 -1
  49. package/dist/test-output.d.ts.map +1 -1
  50. package/dist/test-output.js +10 -5
  51. package/dist/test-output.js.map +1 -1
  52. package/dist/version.d.ts +1 -1
  53. package/dist/version.js +1 -1
  54. package/package.json +8 -8
  55. package/skill/ai-skill-node.md +7 -6
  56. package/skill/ai-skill-server.md +3 -3
  57. package/skill/ai-skill-web.md +5 -4
  58. package/skill/ai-skill.md +7 -5
@@ -1,5 +1,6 @@
1
1
  import type { CompileResult } from "@velarscript/compiler";
2
2
  import type { ProjectResource } from "./project.ts";
3
+ import type { JavaScriptBuildMode } from "./javascript-output.ts";
3
4
  export interface StandaloneJavaScriptOutput {
4
5
  readonly code: string;
5
6
  readonly sourceMap: string;
@@ -12,5 +13,5 @@ export declare function needsStandaloneJavaScriptBundle(result: CompileResult):
12
13
  * builtins and the generated `velar/*` runtime remain owned by the host and by
13
14
  * writeNodeStandardModules respectively.
14
15
  */
15
- export declare function bundleStandaloneJavaScript(outputPath: string, result: CompileResult, resources?: readonly ProjectResource[]): Promise<StandaloneJavaScriptOutput>;
16
+ export declare function bundleStandaloneJavaScript(outputPath: string, result: CompileResult, resources?: readonly ProjectResource[], mode?: JavaScriptBuildMode, sourceMaps?: boolean): Promise<StandaloneJavaScriptOutput>;
16
17
  //# sourceMappingURL=standalone-build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-build.d.ts","sourceRoot":"","sources":["../src/standalone-build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAQ9E;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,GAAE,SAAS,eAAe,EAAO,GACzC,OAAO,CAAC,0BAA0B,CAAC,CAoErC"}
1
+ {"version":3,"file":"standalone-build.d.ts","sourceRoot":"","sources":["../src/standalone-build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAQ9E;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,GAAE,SAAS,eAAe,EAAO,EAC1C,IAAI,GAAE,mBAAkC,EACxC,UAAU,UAAQ,GACjB,OAAO,CAAC,0BAA0B,CAAC,CAwErC"}
@@ -17,7 +17,7 @@ export function needsStandaloneJavaScriptBundle(result) {
17
17
  * builtins and the generated `velar/*` runtime remain owned by the host and by
18
18
  * writeNodeStandardModules respectively.
19
19
  */
20
- export async function bundleStandaloneJavaScript(outputPath, result, resources = []) {
20
+ export async function bundleStandaloneJavaScript(outputPath, result, resources = [], mode = "production", sourceMaps = false) {
21
21
  const embeddedByPath = new Map(result.embeddedModules.map((module) => [
22
22
  resolve(dirname(result.source.path), module.specifier),
23
23
  module,
@@ -33,7 +33,7 @@ export async function bundleStandaloneJavaScript(outputPath, result, resources =
33
33
  const embedded = embeddedByPath.get(resolve(arguments_.path));
34
34
  if (!embedded)
35
35
  return { errors: [{ text: `Embedded JavaScript module '${arguments_.path}' was not compiled` }] };
36
- const sourceMap = embedded.sourceMap
36
+ const sourceMap = sourceMaps && embedded.sourceMap
37
37
  ? `\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(embedded.sourceMap).toString("base64")}\n`
38
38
  : "";
39
39
  return {
@@ -58,7 +58,7 @@ export async function bundleStandaloneJavaScript(outputPath, result, resources =
58
58
  });
59
59
  },
60
60
  };
61
- const sourceMap = result.sourceMap
61
+ const sourceMap = sourceMaps && result.sourceMap
62
62
  ? `\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(result.sourceMap).toString("base64")}\n`
63
63
  : "";
64
64
  const bundled = await build({
@@ -70,9 +70,11 @@ export async function bundleStandaloneJavaScript(outputPath, result, resources =
70
70
  outfile: outputPath,
71
71
  packages: "bundle",
72
72
  platform: "node",
73
+ minify: mode === "production",
74
+ keepNames: mode === "readable",
73
75
  plugins: [embeddedPlugin, resourcePlugin],
74
- sourcemap: "external",
75
- sourcesContent: true,
76
+ sourcemap: sourceMaps ? "external" : false,
77
+ sourcesContent: sourceMaps,
76
78
  stdin: {
77
79
  contents: `${result.code ?? ""}${sourceMap}`,
78
80
  loader: "js",
@@ -84,8 +86,9 @@ export async function bundleStandaloneJavaScript(outputPath, result, resources =
84
86
  });
85
87
  const output = bundled.outputFiles?.find((file) => resolve(file.path) === resolve(outputPath));
86
88
  const map = bundled.outputFiles?.find((file) => resolve(file.path) === resolve(`${outputPath}.map`));
87
- if (!output || !map)
88
- throw new Error("The standalone JavaScript bundler did not emit the program and its source map");
89
- return { code: output.text, sourceMap: map.text };
89
+ if (!output || sourceMaps && !map) {
90
+ throw new Error(`The standalone JavaScript bundler did not emit the program${sourceMaps ? " and its source map" : ""}`);
91
+ }
92
+ return { code: output.text, sourceMap: map?.text ?? "" };
90
93
  }
91
94
  //# sourceMappingURL=standalone-build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-build.js","sourceRoot":"","sources":["../src/standalone-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standalone-build.js","sourceRoot":"","sources":["../src/standalone-build.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,6 @@ export declare function portablePath(value: string): string;
15
15
  export declare function createCompiledSandbox(projectRoot: string, prefix: "test" | "run" | "dev" | "serve"): Promise<string>;
16
16
  /** Removes a compiled sandbox and prunes `.velar/` when it becomes empty. */
17
17
  export declare function removeCompiledSandbox(sandbox: string): Promise<void>;
18
- export declare function writeCompiledTestProject(project: ProjectResult, outputRoot: string): Promise<void>;
18
+ export declare function writeCompiledTestProject(project: ProjectResult, outputRoot: string, sourceMaps?: boolean): Promise<void>;
19
19
  export declare function compiledTestModulePath(project: ProjectResult, module: ProjectModule, outputRoot: string): string;
20
20
  //# sourceMappingURL=test-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-output.d.ts","sourceRoot":"","sources":["../src/test-output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAmBrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAc1H;AAaD,6EAA6E;AAC7E,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBxG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIhH"}
1
+ {"version":3,"file":"test-output.d.ts","sourceRoot":"","sources":["../src/test-output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAmBrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAc1H;AAaD,6EAA6E;AAC7E,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B3H;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIhH"}
@@ -69,7 +69,7 @@ export async function removeCompiledSandbox(sandbox) {
69
69
  // Another run is active or `.velar` holds other entries; leave it in place.
70
70
  }
71
71
  }
72
- export async function writeCompiledTestProject(project, outputRoot) {
72
+ export async function writeCompiledTestProject(project, outputRoot, sourceMaps = true) {
73
73
  await writeProjectResources(project, outputRoot, "sandbox");
74
74
  // A frozen package stays a bare ESM import and resolves to its installed
75
75
  // package.json#exports. Shadow manifests are only for compiled source
@@ -86,12 +86,17 @@ export async function writeCompiledTestProject(project, outputRoot) {
86
86
  for (const module of project.modules) {
87
87
  const output = compiledTestModulePath(project, module, outputRoot);
88
88
  await mkdir(dirname(output), { recursive: true });
89
- await writeFile(output, `${module.result.code ?? ""}//# sourceMappingURL=${basename(output)}.map\n`, "utf8");
90
- await writeFile(`${output}.map`, module.result.sourceMap ?? "", "utf8");
89
+ const code = sourceMaps
90
+ ? `${module.result.code ?? ""}//# sourceMappingURL=${basename(output)}.map\n`
91
+ : module.result.code ?? "";
92
+ await writeFile(output, code, "utf8");
93
+ if (sourceMaps)
94
+ await writeFile(`${output}.map`, module.result.sourceMap ?? "", "utf8");
91
95
  for (const embedded of module.result.embeddedModules) {
92
96
  const embeddedPath = embeddedModuleOutputPath(output, embedded.specifier);
93
- await writeFile(embeddedPath, embeddedModuleFileContents(embeddedPath, embedded), "utf8");
94
- await writeFile(`${embeddedPath}.map`, embedded.sourceMap, "utf8");
97
+ await writeFile(embeddedPath, sourceMaps ? embeddedModuleFileContents(embeddedPath, embedded) : embedded.code, "utf8");
98
+ if (sourceMaps)
99
+ await writeFile(`${embeddedPath}.map`, embedded.sourceMap, "utf8");
95
100
  }
96
101
  }
97
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test-output.js","sourceRoot":"","sources":["../src/test-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-output.js","sourceRoot":"","sources":["../src/test-output.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const VELAR_VERSION = "0.15.0";
1
+ export declare const VELAR_VERSION = "0.16.0";
2
2
  export { VELAR_STANDARD_API_VERSION } from "@velarscript/core";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
- export const VELAR_VERSION = "0.15.0";
1
+ export const VELAR_VERSION = "0.16.0";
2
2
  export { VELAR_STANDARD_API_VERSION } from "@velarscript/core";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velarscript/cli",
3
- "version": "0.15.0",
3
+ "version": "0.16.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,13 @@
30
30
  "velar": "./dist/cli.js"
31
31
  },
32
32
  "dependencies": {
33
- "@velarscript/compiler": "0.15.0",
34
- "@velarscript/core": "0.15.0",
35
- "@velarscript/desktop": "0.15.0",
36
- "@velarscript/node": "0.15.0",
37
- "@velarscript/server": "0.15.0",
38
- "@velarscript/web": "0.15.0",
39
- "create-velar": "0.15.0",
33
+ "@velarscript/compiler": "0.16.0",
34
+ "@velarscript/core": "0.16.0",
35
+ "@velarscript/desktop": "0.16.0",
36
+ "@velarscript/node": "0.16.0",
37
+ "@velarscript/server": "0.16.0",
38
+ "@velarscript/web": "0.16.0",
39
+ "create-velar": "0.16.0",
40
40
  "esbuild": "^0.28.1",
41
41
  "playwright": "^1.58.2"
42
42
  }
@@ -22,10 +22,10 @@ one exported zero-argument async startup function:
22
22
  "entry": "src/main.vel",
23
23
  "outDir": "dist",
24
24
  "publicDir": "public",
25
+ "build": {"mode": "production", "sourceMaps": false},
25
26
  "extensions": ["@velarscript/node"],
26
27
  "node": {
27
- "app": "start",
28
- "build": {"sourceMaps": false}
28
+ "app": "start"
29
29
  }
30
30
  }
31
31
  ```
@@ -66,10 +66,11 @@ application service, activate `@velarscript/server`; it provides the same
66
66
  `velar dev`, `velar serve`, and standalone `velar build` workflow without a
67
67
  second runtime configuration source.
68
68
 
69
- `@name` keeps its one language-wide role: it qualifies a compiler-owned name
70
- in the current context. In a `server` block, the available names are `@get`,
71
- `@post`, `@put`, `@patch`, `@delete`, and `@notFound`. They are not decorators,
72
- functions, imports, annotations, first-class values, or user extension points.
69
+ `@` remains the language-wide annotation introducer, and `@name` is a context
70
+ annotation with a compiler-owned compile-time role. In a `server` block, the
71
+ available annotations are `@get`, `@post`, `@put`, `@patch`, `@delete`, and
72
+ `@notFound`. They are not decorators, functions, imports, user-defined
73
+ annotations, first-class values, or user extension points.
73
74
 
74
75
  ## Routes and checked inputs
75
76
 
@@ -13,7 +13,7 @@ browser application activates `@velarscript/web`:
13
13
  ```json
14
14
  {
15
15
  "dependencies": {
16
- "@velarscript/server": "0.15.0"
16
+ "@velarscript/server": "0.16.0"
17
17
  }
18
18
  }
19
19
  ```
@@ -33,8 +33,8 @@ extensions. Without `@velarscript/server`, `velar/server` is unavailable and
33
33
  root application configuration is not loaded.
34
34
 
35
35
  The conventional entry export is `start`. A different exported binding may be
36
- selected with the optional `server.app` manifest field; `server.build.sourceMaps`
37
- is the only build setting. Host, port, request limits, database locations, and
36
+ selected with the optional `server.app` manifest field. Source maps belong to
37
+ the target-neutral top-level `build.sourceMaps` switch. Host, port, request limits, database locations, and
38
38
  other runtime settings never belong in `velar.json`.
39
39
 
40
40
  ## Convention-based application configuration
@@ -23,10 +23,11 @@ modules, and the `web` manifest key. Without that extension these are not Core
23
23
  syntax. Web visual builders are named imports from `velar/look`; there is no
24
24
  `Look.` namespace.
25
25
 
26
- `@name` keeps the same language-wide role: it qualifies a compiler-owned name
27
- in the current context. Components own `@mounted:` and `@cleanup:`; Look owns
28
- conditions such as `@hover` and `@before`. They are not decorators, calls, or
29
- values, and user code cannot declare new `@` names.
26
+ `@` remains the language-wide annotation introducer, and `@name` is a context
27
+ annotation with a compiler-owned compile-time role. Components own `@mounted:`
28
+ and `@cleanup:`; Look owns conditions such as `@hover` and `@before`. They are
29
+ not decorators, calls, or values, and user code cannot declare new context
30
+ annotations.
30
31
 
31
32
  The toolchain writes `dist/index.html`; do not author it. `web.title` and
32
33
  `web.icon` supply document metadata, `public/` is copied through, and other
package/skill/ai-skill.md CHANGED
@@ -69,7 +69,7 @@ and algorithms come from project-owned modules or dependencies. A direct
69
69
  A VelarScript project is a directory containing a `velar.json` manifest. Let
70
70
  the toolchain write it — `velar create my-lib --template library` scaffolds a
71
71
  Core library whose release keeps `.vel` source plus a frozen ABI-1 JavaScript
72
- artifact; `velar build-library` regenerates its JS, source map, portable type
72
+ artifact; `velar build-library` regenerates its JS, ABI-owned source map, portable type
73
73
  interface, and hash receipt. Later toolchains load that interface and JS before
74
74
  considering source fallback. Other templates select their own framework brief. Each writes
75
75
  `velar.json`, a `package.json` whose scripts are the gates, a `src/` tree, a
@@ -133,7 +133,7 @@ well, but it is a guarantee rather than a trap.
133
133
  | `value is null` | `value == null` / `value != null` — `is` tests runtime types, `null` is a value. |
134
134
  | `switch`, or an `if`/`else if` ladder over an enum | `match` with `case _:` as the only fallback. |
135
135
  | Renaming a binding away from `type`, `json`, `from`, `match`, or `as` | Don't. Declaration words are contextual: each declares only in its own shape, so `const {type, from} = event` is ordinary code. `enum` and `case` are the exceptions — `enum` is a real VelarScript keyword and `case` is reserved by JavaScript — so neither can be a binding name; both stay fine as record fields, member names, and `match` branches. |
136
- | Treating `@` as a decorator, call, value, or user extension point | `@` has one meaning: `@name` qualifies the name into the closed compiler-owned namespace of the current context. Core or the active syntax-owning compiler extension owns the vocabulary; source cannot declare, import, alias, pass, or construct an `@name`. The module entry `@main:` and class contracts `@dispose:` and `@iterate:` follow this one rule. |
136
+ | Treating `@` as a decorator, call, value, or user extension point | `@` is the annotation introducer and `@name` is a context annotation: it marks the following declaration or structural entry with a compiler-owned compile-time role selected by the current syntax context. The vocabulary is closed; source cannot declare, import, alias, pass, or construct a context annotation. `@main:`, `@dispose:`, and `@iterate:` follow this one rule. |
137
137
  | Two statements on one line | One statement per line; there are no semicolons. As in Python, an ordinary executable suite may keep its one non-block statement after the colon, as in `def stop(): return`, `if condition: action()`, or `case pattern: action()`. Multiple statements, nested blocks, and structural member or branch lists use indentation. Formatting preserves the author's single-line or indented choice. A line starting with `.` or `?.` continues the previous line, so method chains format normally. |
138
138
  | `count++` | `count += 1` |
139
139
  | `call(name: value)` named argument | `call(name=value)` |
@@ -152,6 +152,7 @@ well, but it is a guarantee rather than a trap.
152
152
  | Calling an async function and moving on | A dropped Promise is a compile error. `await task()` to wait; `async task()` to run it detached. |
153
153
  | `flag or name ?? fallback` | Parenthesize — `??` never shares an unparenthesized chain with `and`/`or`. |
154
154
  | `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. |
155
+ | Repeated `Map.get` + null check to build buckets | `map.getOrSet(key, fallback)` inserts only when absent and returns `V` directly. Use it for grouping and caches; collection-valued flow narrowing deliberately deep-checks each relied-on read. |
155
156
  | `[...text]` or `list(text)` for characters | `text.split("")` — the empty separator splits per Unicode code point. |
156
157
  | `x !== x` or `Number.isNaN(x)` | Number predicates are members: `x.isNaN()`, `x.isFinite()`, `x.isInteger()`. `NaN == NaN` is `true` — equality is SameValueZero. |
157
158
  | `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())`. |
@@ -275,7 +276,7 @@ class Session:
275
276
  const session = Session("session-1")
276
277
  ```
277
278
 
278
- `@name` qualifies a compiler-owned contextual name and can never collide with yours.
279
+ `@name` is a context annotation with a compiler-owned role and can never collide with yours.
279
280
  `@dispose:` is the release contract — never called directly — that
280
281
  `using name = expression` runs on every exit from the owning scope (block end,
281
282
  `return`, `break`, `continue`, throw), in reverse declaration order. A derived
@@ -532,8 +533,9 @@ data and assign the result on the Vel side.
532
533
  declared shape, or narrow with `value is string` — before the value touches
533
534
  typed code.
534
535
  3. **A suspected compiler defect blocking you** — run `velar repro` (below),
535
- then take the final exit: `velar build` output is readable, source-mapped
536
- JavaScript that runs without the toolchain.
536
+ then take the final exit: `velar build --mode readable --source-maps` emits structured,
537
+ source-mapped JavaScript that runs without the toolchain. Ordinary
538
+ `velar build` defaults to optimized production JavaScript.
537
539
 
538
540
  The full decision tree, including the honest limits of each hatch, is
539
541
  [docs/escape-hatches.md](https://github.com/VelarOS-AI/VelarScript/blob/main/docs/escape-hatches.md).