@velarscript/cli 0.13.0 → 0.14.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.
@@ -6,23 +6,27 @@ import { writeFile } from "node:fs/promises";
6
6
  import { formatDiagnostic } from "@velarscript/compiler";
7
7
  import { compileProject } from "./project.js";
8
8
  import { hostErrorMessage } from "./host-error.js";
9
- import { writeWebSocketDependency } from "./node-runtime-dependencies.js";
9
+ import { writeServerConfigurationDependency, writeWebSocketDependency } from "./node-runtime-dependencies.js";
10
10
  import { prepareStandardModules } from "./test-runner.js";
11
11
  import { compiledTestModulePath, createCompiledSandbox, removeCompiledSandbox, writeCompiledTestProject, } from "./test-output.js";
12
12
  const NODE_EXTENSION_ID = "@velarscript/node";
13
- const SERVE_APP_IDENTITY = "velar/serve#type:ServeApp";
13
+ const SERVER_EXTENSION_ID = "@velarscript/server";
14
+ const SERVER_IDENTITY = "velar/serve#type:Server";
14
15
  const WEBSOCKET_SERVER_IDENTITY = "velar/websocket#type:WebSocketServer";
15
16
  const CHILD_SHUTDOWN_DEADLINE_MS = 35_000;
16
17
  const REBUILD_DEBOUNCE_MS = 50;
17
18
  export function nodeApplicationConfig(config) {
18
- if (!config.extensions.includes(NODE_EXTENSION_ID) || config.framework)
19
+ if (!config.compilerExtensions.some((extension) => extension.capabilities?.includes("node")) || config.framework)
19
20
  return null;
21
+ const server = config.extensionConfig.get(SERVER_EXTENSION_ID);
22
+ if (server && typeof server === "object")
23
+ return server;
20
24
  const value = config.extensionConfig.get(NODE_EXTENSION_ID);
21
25
  return value && typeof value === "object" ? value : null;
22
26
  }
23
- export async function runNodeApplication(config, overrides = {}) {
27
+ export async function runNodeApplication(config) {
24
28
  const node = requireNodeConfig(config);
25
- const prepared = await prepareNodeApplication(config, node, overrides, "serve", false);
29
+ const prepared = await prepareNodeApplication(config, node, "serve", false);
26
30
  if (!prepared)
27
31
  return 1;
28
32
  try {
@@ -33,7 +37,7 @@ export async function runNodeApplication(config, overrides = {}) {
33
37
  await removeCompiledSandbox(prepared.sandbox);
34
38
  }
35
39
  }
36
- export async function runNodeDevelopment(config, overrides = {}) {
40
+ export async function runNodeDevelopment(config) {
37
41
  const node = requireNodeConfig(config);
38
42
  let current = null;
39
43
  let timer = null;
@@ -51,7 +55,7 @@ export async function runNodeDevelopment(config, overrides = {}) {
51
55
  }
52
56
  rebuilding = true;
53
57
  try {
54
- const prepared = await prepareNodeApplication(config, node, overrides, "dev", true);
58
+ const prepared = await prepareNodeApplication(config, node, "dev", true);
55
59
  if (!prepared || closing) {
56
60
  if (prepared)
57
61
  await removeCompiledSandbox(prepared.sandbox);
@@ -134,7 +138,7 @@ export async function runNodeDevelopment(config, overrides = {}) {
134
138
  process.once("SIGTERM", onTerminate);
135
139
  });
136
140
  }
137
- async function prepareNodeApplication(config, node, overrides, prefix, development) {
141
+ async function prepareNodeApplication(config, node, prefix, development) {
138
142
  const project = await compileProject(config.entryPath, new Map(), {
139
143
  sourceRoot: dirname(config.entryPath),
140
144
  projectRoot: config.root,
@@ -167,10 +171,12 @@ async function prepareNodeApplication(config, node, overrides, prefix, developme
167
171
  await prepareStandardModules(sandbox, config);
168
172
  if (usesNodeWebSocket(project))
169
173
  await writeWebSocketDependency(join(sandbox, "node_modules"));
174
+ if (usesNodeServerConfiguration(project))
175
+ await writeServerConfigurationDependency(join(sandbox, "node_modules"));
170
176
  await writeCompiledTestProject(project, sandbox);
171
177
  const launcher = join(sandbox, ".velar-node-entry.mjs");
172
178
  const entryUrl = pathToFileURL(compiledTestModulePath(project, application.entry, sandbox)).href;
173
- await writeFile(launcher, nodeApplicationLauncherSource(entryUrl, node, overrides, development, application.kind), "utf8");
179
+ await writeFile(launcher, nodeApplicationLauncherSource(entryUrl, node, development, application.kind), "utf8");
174
180
  return { sandbox, launcher, projectRoot: project.projectRoot, compilation: project.stats };
175
181
  }
176
182
  catch (error) {
@@ -181,28 +187,24 @@ async function prepareNodeApplication(config, node, overrides, prefix, developme
181
187
  export function nodeApplicationEntry(project, config) {
182
188
  const entry = project.modules.find((module) => module.inputPath === project.entryPath);
183
189
  const exportType = entry?.result.moduleInterface.exports.get(config.app);
184
- if (entry && exportType && isServeAppType(exportType))
185
- return { entry, kind: "serve-app" };
190
+ if (entry && exportType && isServerFactoryType(exportType))
191
+ return { entry, kind: "server-factory" };
186
192
  if (entry && exportType && isWebSocketFactoryType(exportType))
187
193
  return { entry, kind: "websocket-factory" };
188
- throw new Error(`${project.entryPath}: Node application entry must export ServeApp '${config.app}' or an async WebSocket startup function (host: string, port: number, maxBodyBytes: number) (set node.app to choose another export)`);
194
+ throw new Error(`${project.entryPath}: Node application entry must export an async zero-argument '${config.app}' startup function returning Server or WebSocketServer (set server.app or node.app to choose another export)`);
189
195
  }
190
- export function nodeApplicationLauncherSource(entryUrl, config, overrides, development, kind) {
191
- const host = overrides.host ?? config.host;
192
- const port = overrides.port ?? config.port;
193
- const runtimeImport = kind === "serve-app"
194
- ? `import {ServeApp, serve} from "velar/serve";\n`
196
+ export function nodeApplicationLauncherSource(entryUrl, config, development, kind) {
197
+ const runtimeImport = kind === "server-factory"
198
+ ? `import {Server} from "velar/serve";\n`
195
199
  : `import {WebSocketServer} from "velar/websocket";\n`;
196
- const start = kind === "serve-app"
197
- ? `const app = ServeApp.parse(entry[${JSON.stringify(config.app)}]);\n`
198
- + `const server = await serve(app, ${port}, ${JSON.stringify(host)}, ${config.maxBodyBytes});\n`
199
- : `const start = entry[${JSON.stringify(config.app)}];\n`
200
- + `if (typeof start !== "function") throw new TypeError("Configured WebSocket application export is not callable");\n`
201
- + `const server = WebSocketServer.parse(await start(${JSON.stringify(host)}, ${port}, ${config.maxBodyBytes}));\n`;
200
+ const serverType = kind === "server-factory" ? "Server" : "WebSocketServer";
201
+ const start = `const start = entry[${JSON.stringify(config.app)}];\n`
202
+ + `if (typeof start !== "function") throw new TypeError("Configured Node application export is not callable");\n`
203
+ + `const server = ${serverType}.parse(await start());\n`;
202
204
  return runtimeImport
203
205
  + `import * as entry from ${JSON.stringify(entryUrl)};\n`
204
206
  + start
205
- + `process.stdout.write(${JSON.stringify(`VelarScript ${development ? "development" : "production"} server: http://${displayHost(host)}:`)} + server.port + "\\n");\n`
207
+ + `process.stdout.write(${JSON.stringify(`VelarScript ${development ? "development" : "production"} server listening on port `)} + server.port + "\\n");\n`
206
208
  + `let stopping = false;\n`
207
209
  + `const stop = async signal => { if (stopping) return; stopping = true; try { await server.stop(); } catch (error) { console.error(error); process.exitCode = 1; } if (signal === "SIGINT" && process.exitCode == null) process.exitCode = 130; if (signal === "SIGTERM" && process.exitCode == null) process.exitCode = 143; };\n`
208
210
  + `process.once("SIGINT", () => void stop("SIGINT"));\n`
@@ -265,29 +267,33 @@ async function stopRunningApplication(running) {
265
267
  function requireNodeConfig(config) {
266
268
  const node = nodeApplicationConfig(config);
267
269
  if (!node)
268
- throw new Error("the project does not activate the @velarscript/node application target");
270
+ throw new Error("the project does not activate a Node-capable application target such as @velarscript/server or @velarscript/node");
269
271
  return node;
270
272
  }
271
- function isServeAppType(type) {
272
- return type.kind === "named" && type.identity === SERVE_APP_IDENTITY;
273
+ function isServerFactoryType(type) {
274
+ return zeroArgumentServerFactory(type, SERVER_IDENTITY);
273
275
  }
274
276
  function isWebSocketFactoryType(type) {
277
+ return zeroArgumentServerFactory(type, WEBSOCKET_SERVER_IDENTITY);
278
+ }
279
+ function zeroArgumentServerFactory(type, resultIdentity) {
275
280
  return type.kind === "function"
276
281
  && type.typeParameterNames === undefined
277
282
  && type.rest === undefined
278
- && type.requiredParameters === 3
279
- && type.parameters.length === 3
280
- && type.parameters[0]?.kind === "string"
281
- && type.parameters[1]?.kind === "number"
282
- && type.parameters[2]?.kind === "number"
283
+ && type.requiredParameters === 0
284
+ && type.parameters.length === 0
283
285
  && type.result.kind === "promise"
284
286
  && type.result.value.kind === "named"
285
- && type.result.value.identity === WEBSOCKET_SERVER_IDENTITY;
287
+ && type.result.value.identity === resultIdentity;
286
288
  }
287
289
  function usesNodeWebSocket(project) {
288
290
  return project.modules.some((module) => module.result.dependencies.some((dependency) => dependency.source === "velar/websocket")
289
291
  || module.result.runtimeModules.includes("velar/websocket"));
290
292
  }
293
+ function usesNodeServerConfiguration(project) {
294
+ return project.modules.some((module) => module.result.dependencies.some((dependency) => dependency.source === "velar/server")
295
+ || module.result.runtimeModules.includes("velar/server"));
296
+ }
291
297
  function watchedProjectPath(config, input) {
292
298
  const path = input.replaceAll("\\", "/").replace(/^\.\//u, "");
293
299
  if (!path || path.split("/").some((segment) => segment === "node_modules" || segment === ".git" || segment === ".velar"))
@@ -296,11 +302,6 @@ function watchedProjectPath(config, input) {
296
302
  const fromOutput = relative(config.outDir, absolute);
297
303
  if (fromOutput === "" || (!fromOutput.startsWith("..") && !isAbsolute(fromOutput)))
298
304
  return false;
299
- return path.endsWith(".vel") || path.endsWith(".json");
300
- }
301
- function displayHost(host) {
302
- if (host === "0.0.0.0" || host === "::")
303
- return "127.0.0.1";
304
- return host.includes(":") ? `[${host}]` : host;
305
+ return path.endsWith(".vel") || path.endsWith(".json") || path.endsWith(".yml") || path.endsWith(".yaml");
305
306
  }
306
307
  //# sourceMappingURL=node-application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-application.js","sourceRoot":"","sources":["../src/node-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,cAAc,EAA0C,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AACzE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,mBAAmB,GAAG,EAAE,CAAC;AA2B/B,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC5D,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAwB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA0B,EAC1B,SAAS,GAA6B,EAAE;IAExC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvF,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1E,OAAO,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA0B,EAC1B,SAAS,GAA6B,EAAE;IAExC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,GAAkC,IAAI,CAAC;IAClD,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAqB,IAAI,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,OAAO,EAAgB,CAAC;IAElD,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO;QACT,CAAC;QACD,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACzB,IAAI,QAAQ;oBAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC;YACzB,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO,GAAG,OAAO,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjC,IAAI,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;oBAAE,OAAO;gBAC3D,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,IAAI,iCAAiC,CAAC,CAAC;YAC1K,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,IAAI,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;oBAAE,OAAO,GAAG,IAAI,CAAC;gBACnE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,QAAQ,CAAC,WAAW,CAAC,UAAU,OAAO,QAAQ,CAAC,WAAW,CAAC,eAAe,cAAc,QAAQ,CAAC,WAAW,CAAC,aAAa,YAAY,CAAC,CAAC;QAClM,CAAC;gBAAS,CAAC;YACT,UAAU,GAAG,KAAK,CAAC;YACnB,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,YAAY,GAAG,KAAK,CAAC;gBACrB,KAAK,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,OAAO,EAAE,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QACrE,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO;QAC/E,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;YACtC,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,OAAO,GAAG,OAAO,CAAC;YACxB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,OAAO;gBAAE,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACpC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,GAAS,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAS,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,MAA0B,EAC1B,IAAqB,EACrB,SAAmC,EACnC,MAAuB,EACvB,WAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE;QAChE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,UAAU,EAAE,MAAM,CAAC,kBAAkB;QACrC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG;QACb,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3E,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;KAC1I,CAAC;IACF,IAAI,WAAW,GAAkC,IAAI,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YAAC,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QAC1D,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,iBAAiB,CAAC,OAAO,CAAC;YAAE,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9F,MAAM,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,MAAM,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3H,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAsB,EAAE,MAAuB;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,KAAK,IAAI,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC3F,IAAI,KAAK,IAAI,UAAU,IAAI,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC3G,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,kDAAkD,MAAM,CAAC,GAAG,qIAAqI,CAAC,CAAC;AACzO,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAAgB,EAChB,MAAuB,EACvB,SAAmC,EACnC,WAAoB,EACpB,IAAyB;IAEzB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,KAAK,WAAW;QACxC,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,oDAAoD,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,KAAK,WAAW;QAChC,CAAC,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;cACnE,mCAAmC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,YAAY,MAAM;QAClG,CAAC,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;cACrD,oHAAoH;cACpH,oDAAoD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,YAAY,OAAO,CAAC;IACvH,OAAO,aAAa;UAChB,0BAA0B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK;UACvD,KAAK;UACL,wBAAwB,IAAI,CAAC,SAAS,CAAC,eAAe,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,mBAAmB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B;UACpK,yBAAyB;UACzB,kUAAkU;UAClU,sDAAsD;UACtD,wDAAwD,CAAC;AAC/D,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAiC,EAAE,UAAmB;IACtF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1G,GAAG,EAAE,QAAQ,CAAC,WAAW;QACzB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,OAAO,CAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QACzD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAA+B;IAClE,IAAI,aAAa,GAAyC,IAAI,CAAC;IAC/D,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,MAA4B,EAAQ,EAAE;QACrD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO;QACjF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC5F,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClC,IAAI,aAAa;YAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAA+B;IACnE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC1F,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC;YAAC,MAAM,OAAO,CAAC,MAAM,CAAC;QAAC,CAAC;gBACrB,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAClC,CAAC;IACD,MAAM,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA0B;IACnD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAe;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,CAAC;AACvE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAe;IAC7C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;WAC1B,IAAI,CAAC,kBAAkB,KAAK,SAAS;WACrC,IAAI,CAAC,IAAI,KAAK,SAAS;WACvB,IAAI,CAAC,kBAAkB,KAAK,CAAC;WAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;WAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;WACrC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;WACrC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;WACrC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;WAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;WAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,yBAAyB,CAAC;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAsB;IAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,iBAAiB,CAAC;WAC3H,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B,EAAE,KAAa;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACvI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjG,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"node-application.js","sourceRoot":"","sources":["../src/node-application.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare function writeWebSocketDependency(nodeModulesRoot: string): Promise<void>;
2
+ export declare function writeServerConfigurationDependency(nodeModulesRoot: string): Promise<void>;
2
3
  //# sourceMappingURL=node-runtime-dependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-runtime-dependencies.d.ts","sourceRoot":"","sources":["../src/node-runtime-dependencies.ts"],"names":[],"mappings":"AAQA,wBAAsB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcrF"}
1
+ {"version":3,"file":"node-runtime-dependencies.d.ts","sourceRoot":"","sources":["../src/node-runtime-dependencies.ts"],"names":[],"mappings":"AAUA,wBAAsB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF;AAED,wBAAsB,kCAAkC,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F"}
@@ -4,12 +4,20 @@ import { dirname, join } from "node:path";
4
4
  import { isHostErrorCode } from "./host-error.js";
5
5
  const WEBSOCKET_PACKAGE = "ws";
6
6
  const WEBSOCKET_VERSION = "8.21.1";
7
+ const YAML_PACKAGE = "yaml";
8
+ const YAML_VERSION = "2.9.0";
7
9
  export async function writeWebSocketDependency(nodeModulesRoot) {
8
- const target = join(nodeModulesRoot, WEBSOCKET_PACKAGE);
10
+ await writeRuntimeDependency(nodeModulesRoot, WEBSOCKET_PACKAGE, WEBSOCKET_VERSION);
11
+ }
12
+ export async function writeServerConfigurationDependency(nodeModulesRoot) {
13
+ await writeRuntimeDependency(nodeModulesRoot, YAML_PACKAGE, YAML_VERSION);
14
+ }
15
+ async function writeRuntimeDependency(nodeModulesRoot, packageName, version) {
16
+ const target = join(nodeModulesRoot, packageName);
9
17
  try {
10
18
  const manifest = JSON.parse(await readFile(join(target, "package.json"), "utf8"));
11
- if (manifest.name !== WEBSOCKET_PACKAGE || manifest.version !== WEBSOCKET_VERSION) {
12
- throw new Error(`Refusing to use incompatible WebSocket runtime package '${target}'`);
19
+ if (manifest.name !== packageName || manifest.version !== version) {
20
+ throw new Error(`Refusing to use incompatible Node runtime package '${target}'`);
13
21
  }
14
22
  return;
15
23
  }
@@ -18,7 +26,7 @@ export async function writeWebSocketDependency(nodeModulesRoot) {
18
26
  throw error;
19
27
  }
20
28
  const require = createRequire(import.meta.url);
21
- const source = dirname(require.resolve(`${WEBSOCKET_PACKAGE}/package.json`));
29
+ const source = dirname(require.resolve(`${packageName}/package.json`));
22
30
  await cp(source, target, { recursive: true, errorOnExist: true });
23
31
  }
24
32
  //# sourceMappingURL=node-runtime-dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-runtime-dependencies.js","sourceRoot":"","sources":["../src/node-runtime-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,eAAuB;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;QAC7G,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,IAAI,QAAQ,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,iBAAiB,eAAe,CAAC,CAAC,CAAC;IAC7E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"node-runtime-dependencies.js","sourceRoot":"","sources":["../src/node-runtime-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,eAAuB;IACpE,MAAM,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,eAAuB;IAC9E,MAAM,sBAAsB,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,eAAuB,EAAE,WAAmB,EAAE,OAAe;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;QAC7G,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"official-language-server-extensions.d.ts","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAaA,wBAAgB,uCAAuC,IAAI,IAAI,CAwC9D"}
1
+ {"version":3,"file":"official-language-server-extensions.d.ts","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAkBA,wBAAgB,uCAAuC,IAAI,IAAI,CAoD9D"}
@@ -4,6 +4,7 @@ import { velarCompilerExtension as desktopCompiler, velarProjectExtension as des
4
4
  import { velarFrameworkHost as desktopHost } from "@velarscript/desktop/host";
5
5
  import { VELAR_DESKTOP_API_VERSION } from "@velarscript/desktop";
6
6
  import { VELAR_NODE_API_VERSION, velarCompilerExtension as nodeCompiler, velarProjectExtension as nodeProject, } from "@velarscript/node/compiler";
7
+ import { VELAR_SERVER_API_VERSION, velarCompilerExtension as serverCompiler, velarProjectExtension as serverProject, } from "@velarscript/server/compiler";
7
8
  import { registerBundledExtension } from "./bundled-extension-registry.js";
8
9
  import { VELAR_VERSION } from "./version.js";
9
10
  export function installOfficialLanguageServerExtensions() {
@@ -19,6 +20,18 @@ export function installOfficialLanguageServerExtensions() {
19
20
  project: nodeProject,
20
21
  host: null,
21
22
  });
23
+ registerBundledExtension({
24
+ name: "@velarscript/server",
25
+ version: VELAR_VERSION,
26
+ kind: "application",
27
+ apiVersion: VELAR_SERVER_API_VERSION,
28
+ manifestKey: "server",
29
+ extends: Object.freeze({}),
30
+ composes: Object.freeze({ "@velarscript/node": VELAR_NODE_API_VERSION }),
31
+ compiler: serverCompiler,
32
+ project: serverProject,
33
+ host: null,
34
+ });
22
35
  registerBundledExtension({
23
36
  name: "@velarscript/web",
24
37
  version: VELAR_VERSION,
@@ -1 +1 @@
1
- {"version":3,"file":"official-language-server-extensions.js","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,WAAW,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9I,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnI,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,YAAY,EACtC,qBAAqB,IAAI,WAAW,GACrC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,uCAAuC;IACrD,wBAAwB,CAAC;QACvB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,yBAAyB;QACrC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,kBAAkB,EAAE,qBAAqB;YACzC,mBAAmB,EAAE,sBAAsB;SAC5C,CAAC;QACF,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"official-language-server-extensions.js","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,WAAW,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9I,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnI,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,YAAY,EACtC,qBAAqB,IAAI,WAAW,GACrC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,IAAI,cAAc,EACxC,qBAAqB,IAAI,aAAa,GACvC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,uCAAuC;IACrD,wBAAwB,CAAC;QACvB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,wBAAwB;QACpC,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,CAAC;QACtE,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,yBAAyB;QACrC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,kBAAkB,EAAE,qBAAqB;YACzC,mBAAmB,EAAE,sBAAsB;SAC5C,CAAC;QACF,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;AACL,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const VELAR_VERSION = "0.13.0";
1
+ export declare const VELAR_VERSION = "0.14.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.13.0";
1
+ export const VELAR_VERSION = "0.14.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.13.0",
3
+ "version": "0.14.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,12 +30,13 @@
30
30
  "velar": "./dist/cli.js"
31
31
  },
32
32
  "dependencies": {
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",
33
+ "@velarscript/compiler": "0.14.0",
34
+ "@velarscript/core": "0.14.0",
35
+ "@velarscript/desktop": "0.14.0",
36
+ "@velarscript/node": "0.14.0",
37
+ "@velarscript/server": "0.14.0",
38
+ "@velarscript/web": "0.14.0",
39
+ "create-velar": "0.14.0",
39
40
  "esbuild": "^0.28.1",
40
41
  "playwright": "^1.58.2"
41
42
  }
@@ -4,10 +4,17 @@ Load this after `velar skill core`. This brief contains only the Node owner’s
4
4
  contract. Core does not learn server declarations, path-pattern strings, Node
5
5
  capabilities, or application configuration.
6
6
 
7
- ## Ownership and application entry
7
+ ## Ownership and low-level application entry
8
8
 
9
- A Node service activates the extension and names one exported `ServeApp` or
10
- one typed WebSocket startup function:
9
+ `@velarscript/node` is a capability extension. It owns route syntax,
10
+ path-pattern strings, Node modules, HTTP/WebSocket transport, and low-level
11
+ server lifecycle; it does not own convention-based application configuration.
12
+ An ordinary service activates `@velarscript/server` and then loads
13
+ `velar skill server` for root `application.*`, application assembly, and
14
+ connection lifecycle.
15
+
16
+ A deliberately low-level Node application may activate Node directly and name
17
+ one exported zero-argument async startup function:
11
18
 
12
19
  ```json
13
20
  {
@@ -17,50 +24,47 @@ one typed WebSocket startup function:
17
24
  "publicDir": "public",
18
25
  "extensions": ["@velarscript/node"],
19
26
  "node": {
20
- "app": "app",
21
- "host": "127.0.0.1",
22
- "port": 3000,
23
- "maxBodyBytes": 16777216,
27
+ "app": "start",
24
28
  "build": {"sourceMaps": false}
25
29
  }
26
30
  }
27
31
  ```
28
32
 
29
- The entry exports application data; it does not need a manually named function
30
- or top-level `serve(...)` call:
33
+ The low-level entry owns its own startup arguments in code:
31
34
 
32
35
  ```velar fragment
33
- import {app as routes} from "./app.vel"
36
+ import {serve} from "velar/serve"
37
+ import {app} from "./app.vel"
34
38
 
35
- export const app = routes
39
+ export async def start():
40
+ return await serve(app, port=3000, host="127.0.0.1")
36
41
  ```
37
42
 
38
- For one shared HTTP/WebSocket application port, `node.app` may instead name
39
- exactly this function shape:
43
+ For one shared HTTP/WebSocket application port, the same exact zero-argument
44
+ shape returns `Promise<WebSocketServer>`:
40
45
 
41
46
  ```velar fragment
42
47
  import {app as routes} from "./app.vel"
43
48
  import {listen} from "velar/websocket"
44
49
 
45
- export async def start(host: string, port: number, maxBodyBytes: number):
50
+ export async def start():
46
51
  return await listen({
47
- host,
48
- port,
52
+ host: "127.0.0.1",
53
+ port: 3000,
49
54
  http: routes,
50
55
  path: "/api/events",
51
56
  origins: ["https://app.example.com"],
52
- maxBodyBytes,
57
+ maxBodyBytes: 16777216,
53
58
  })
54
59
  ```
55
60
 
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.
61
+ The exact result is `Promise<WebSocketServer>`. The launcher supplies no
62
+ host, port, or body-limit parameters.
59
63
 
60
- Use `velar dev` while editing, `velar serve` for checked production runtime
61
- behavior, and `velar build` for a standalone Node output directory. A direct
62
- `serve(app, port=0)` call is still correct in integration tests or an embedded
63
- server.
64
+ Use direct Node activation for tools, embedded adapters, and tests. For an
65
+ application service, activate `@velarscript/server`; it provides the same
66
+ `velar dev`, `velar serve`, and standalone `velar build` workflow without a
67
+ second runtime configuration source.
64
68
 
65
69
  `@name` keeps its one language-wide role: it qualifies a compiler-owned name
66
70
  in the current context. In a `server` block, the available names are `@get`,
@@ -0,0 +1,173 @@
1
+ # The VelarScript Server AI skill brief
2
+
3
+ Load this after `velar skill core` and `velar skill node`. This brief contains
4
+ only the convention-based Server application framework. Node still owns route
5
+ syntax, HTTP/WebSocket transport, filesystem, process, and the low-level
6
+ `velar/serve` runtime.
7
+
8
+ ## Activation and ownership
9
+
10
+ A service installs and explicitly activates `@velarscript/server`, just as a
11
+ browser application activates `@velarscript/web`:
12
+
13
+ ```json
14
+ {
15
+ "dependencies": {
16
+ "@velarscript/server": "0.14.0"
17
+ }
18
+ }
19
+ ```
20
+
21
+ ```json
22
+ {
23
+ "formatVersion": 2,
24
+ "entry": "src/main.vel",
25
+ "outDir": "dist",
26
+ "publicDir": "public",
27
+ "extensions": ["@velarscript/server"]
28
+ }
29
+ ```
30
+
31
+ The Server application extension composes the Node capability. Do not list both
32
+ extensions. Without `@velarscript/server`, `velar/server` is unavailable and
33
+ root application configuration is not loaded.
34
+
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
38
+ other runtime settings never belong in `velar.json`.
39
+
40
+ ## Convention-based application configuration
41
+
42
+ The only conventional configuration file is root `application.yml`.
43
+
44
+ YAML and JSON enter the same checked runtime-Type boundary. Files are bounded;
45
+ YAML is strict, rejects duplicate keys, and limits aliases. An explicit
46
+ `.yml`, `.yaml`, or `.json` path is the escape hatch for deployment-specific
47
+ configuration; other root filenames are never discovered by convention.
48
+
49
+ The framework-owned server section is:
50
+
51
+ ```yaml
52
+ server:
53
+ host: 127.0.0.1
54
+ port: 3000
55
+ maxBodyBytes: 16777216
56
+ ```
57
+
58
+ All three fields are optional. Their defaults are `127.0.0.1`, `3000`, and
59
+ 16 MiB. `application(app)` reads this section when the server starts:
60
+
61
+ ```velar
62
+ import {application} from "velar/server"
63
+
64
+ export server routes:
65
+ @get(p"/health") => {status: "ready"}
66
+
67
+ export const start = application(routes)
68
+ ```
69
+
70
+ `velar dev`, `velar serve`, and the standalone `velar build` output use the
71
+ same root configuration. CLI `--host` and Node `--port` overrides are not a
72
+ second configuration channel. A missing conventional file uses the server
73
+ defaults; when application-specific settings are required, load the full file
74
+ with `configuration(Type)`, which requires the file to exist.
75
+
76
+ ## Typed application settings
77
+
78
+ Declare the application-owned shape and load it through its Runtime Type:
79
+
80
+ ```velar
81
+ import {configuration} from "velar/server"
82
+
83
+ type ServerSettings:
84
+ host: string
85
+ port: number
86
+ maxBodyBytes: number
87
+
88
+ type DatabaseSettings:
89
+ path: string
90
+ busyTimeoutMilliseconds: number
91
+
92
+ type ApplicationSettings:
93
+ server: ServerSettings
94
+ database: DatabaseSettings
95
+
96
+ export const settings = await configuration(ApplicationSettings)
97
+ ```
98
+
99
+ `configuration(Type, path=null, maxBytes=65536)` returns
100
+ `Promise<Type>`. A non-null path must end in `.yml`, `.yaml`, or `.json`.
101
+ The framework parses syntax; the application Runtime Type owns field names and
102
+ types, and application validation still owns domain ranges and invariants.
103
+ Environment variables may form an explicit deployment override layer, but
104
+ secrets do not belong in application configuration.
105
+
106
+ ## Abstract database connection lifecycle
107
+
108
+ `database(connect, disconnect)` creates an eager application-scoped
109
+ `Provider<Connection>`. It establishes one typed connection during application
110
+ startup, injects that same value into routes, and disconnects it during
111
+ application shutdown after admitted work has drained:
112
+
113
+ ```velar
114
+ import {database} from "velar/server"
115
+ import {input} from "velar/serve"
116
+
117
+ type Connection:
118
+ name: string
119
+ close: () -> Promise<null>
120
+
121
+ const connection = database(
122
+ connect=async () => {name: "primary", close: async () => null},
123
+ disconnect=async value => await value.close(),
124
+ )
125
+
126
+ export server databaseRoutes:
127
+ @get(p"/database", value=input.dependency(connection)) => {name: value.name}
128
+ ```
129
+
130
+ The framework owns only this connect/inject/disconnect lifecycle. Concrete
131
+ drivers, pools, database models, schemas, queries, migrations, transactions,
132
+ dialect behavior, retry rules, and credentials remain independently installed
133
+ application dependencies. Do not add SQLite, PostgreSQL, an ORM, or model
134
+ syntax to `@velarscript/server` or `@velarscript/node`.
135
+
136
+ ## Custom shared HTTP/WebSocket startup
137
+
138
+ A service that needs one custom shared HTTP/WebSocket listener may load the same
139
+ typed configuration and export an exact zero-argument async startup function:
140
+
141
+ ```velar fragment
142
+ import {configuration} from "velar/server"
143
+ import {listen} from "velar/websocket"
144
+
145
+ type ServerSettings:
146
+ host: string
147
+ port: number
148
+ maxBodyBytes: number
149
+
150
+ type Settings:
151
+ server: ServerSettings
152
+
153
+ const settings = await configuration(Settings)
154
+
155
+ export async def start():
156
+ return await listen({
157
+ host: settings.server.host,
158
+ port: settings.server.port,
159
+ http: routes,
160
+ path: "/events",
161
+ origins: ["https://app.example.com"],
162
+ maxBodyBytes: settings.server.maxBodyBytes,
163
+ })
164
+ ```
165
+
166
+ The result must be exactly `Promise<WebSocketServer>`. The launcher supplies no
167
+ host, port, or body-limit arguments; the root application configuration remains
168
+ the single runtime authority.
169
+
170
+ Use direct `serve(app, port=0)` in tests or embedded low-level adapters. Use
171
+ `velar/server-test` only from `*.test.vel`. Route, provider, transport,
172
+ Origin-admission, resource-limit, and shutdown semantics are documented in the
173
+ Node brief because Node owns those primitives.