@velarscript/server 0.14.1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,5 +6,17 @@ root `application.yml` loading,
6
6
  application startup assembly, and typed application-scoped connection
7
7
  lifecycle.
8
8
 
9
+ `authenticate(credential, verify)` turns one checked `security` descriptor into
10
+ a request-scoped `Provider<Identity>`. The verifier must resolve to a typed
11
+ optional identity: `null` rejects the credential with the descriptor's opaque
12
+ 401 challenge, while a value is cached for the request and may be injected with
13
+ `input.dependency`. Verification failures that are not credential rejection
14
+ remain server failures rather than being mislabeled as 401 responses.
15
+
16
+ The framework owns this composition boundary, not an identity model. JWT/JWK,
17
+ OIDC, password hashing, signed sessions, and provider integrations remain
18
+ installed libraries. User records, tenants, roles, permissions, revocation, and
19
+ session persistence remain application policy.
20
+
9
21
  Concrete database drivers, models, migrations, and queries remain ordinary
10
22
  application dependencies.
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,gCAAgC,EACrC,KAAK,SAAS,EACf,MAAM,iCAAiC,CAAC;AAiBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gCAAgC,GAAG,SAAS,GAAG,SAAS,CAwBrG"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,gCAAgC,EACrC,KAAK,SAAS,EACf,MAAM,iCAAiC,CAAC;AAKzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gCAAgC,GAAG,SAAS,GAAG,SAAS,CAmDrG"}
package/dist/analyzer.js CHANGED
@@ -1,20 +1,39 @@
1
- import { nullType, numberType, optionalOf, stringType, unknownType, } from "@velarscript/compiler/extension";
1
+ import { describeType, nullType, nonOptional, numberType, optionalOf, stringType, unknownType, } from "@velarscript/compiler/extension";
2
+ import { isNodeRouteInputType, nodeProviderType, nodeRouteInputValue } from "@velarscript/node/compiler";
2
3
  const emptyInputsType = { kind: "object", fields: new Map() };
3
- function nodeProviderType(result) {
4
- return {
5
- kind: "extension",
6
- extensionId: "@velarscript/node",
7
- family: "serve-provider",
8
- role: "provider",
9
- properties: new Map(),
10
- requiredProperties: new Set(),
11
- arguments: [emptyInputsType, result],
12
- display: { kind: "named", name: "Provider" },
13
- };
14
- }
15
4
  export function inferServerIntrinsic(context) {
16
5
  const { intrinsic, argumentAt, callSpan, arity, inferAt, callbackAt, runtimeTypeAt, expandAliases } = context;
17
6
  switch (intrinsic.name) {
7
+ case "server.authenticate": {
8
+ arity(2, 2);
9
+ const descriptor = expandAliases(inferAt(0));
10
+ let credential = unknownType;
11
+ if (!isNodeRouteInputType(descriptor) || descriptor.role !== "security") {
12
+ context.typeError(`server.authenticate credential must be created by security, received ${describeType(descriptor)}`, argumentAt(0)?.span ?? callSpan);
13
+ }
14
+ else {
15
+ credential = nodeRouteInputValue(descriptor);
16
+ }
17
+ const verifier = callbackAt(1, [credential], unknownType);
18
+ const raw = verifier.kind === "function" || verifier.kind === "action" || verifier.kind === "intrinsic"
19
+ ? expandAliases(verifier.result)
20
+ : unknownType;
21
+ let identity = unknownType;
22
+ if (raw.kind !== "promise") {
23
+ context.typeError("server.authenticate verify must return a Promise<Identity?>", argumentAt(1)?.span ?? callSpan);
24
+ }
25
+ else {
26
+ const result = expandAliases(raw.value);
27
+ if (result.kind !== "optional") {
28
+ context.typeError(`server.authenticate verify must return an optional identity, received Promise<${describeType(result)}>`, argumentAt(1)?.span ?? callSpan);
29
+ }
30
+ else {
31
+ identity = nonOptional(result);
32
+ }
33
+ }
34
+ const inputs = { kind: "object", fields: new Map([["credential", credential]]) };
35
+ return nodeProviderType(inputs, identity);
36
+ }
18
37
  case "server.configuration": {
19
38
  arity(1, 3);
20
39
  const result = runtimeTypeAt(0);
@@ -34,7 +53,7 @@ export function inferServerIntrinsic(context) {
34
53
  if (raw.kind !== "promise")
35
54
  context.typeError("server.database connect must return a Promise", argumentAt(0)?.span ?? callSpan);
36
55
  callbackAt(1, [connection], { kind: "promise", value: nullType });
37
- return nodeProviderType(connection);
56
+ return nodeProviderType(emptyInputsType, connection);
38
57
  }
39
58
  default:
40
59
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,GAGZ,MAAM,iCAAiC,CAAC;AAEzC,MAAM,eAAe,GAAc,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAC,CAAC;AAEvE,SAAS,gBAAgB,CAAC,MAAiB;IACzC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mBAAmB;QAChC,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAyC;IAC5E,MAAM,EAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAC,GAAG,OAAO,CAAC;IAC5G,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,sBAAsB,EAAE,CAAC;YAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YACtD,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1C,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;QAC1C,CAAC;QACD,KAAK,iBAAiB,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW;gBACxG,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,WAAW,CAAC;YAChB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;YACpE,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,+CAA+C,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC,CAAC;YAChI,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;YAChE,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type CompilerExtension, type ModuleInterface } from "@velarscript/compiler";
2
- export declare const VELAR_SERVER_API_VERSION = "0.10";
2
+ export declare const VELAR_SERVER_API_VERSION = "0.11";
3
3
  export declare const serverModuleInterfaces: ReadonlyMap<string, ModuleInterface>;
4
4
  export declare const serverModuleSources: ReadonlyMap<string, string>;
5
5
  export declare const velarCompilerExtension: CompilerExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAgB/B,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAmE/C,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAA4B,CAAC;AAQrG,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAyB,CAAC;AAKtF,eAAO,MAAM,sBAAsB,EAAE,iBA+BnC,CAAC;AAEH,OAAO,EAAC,qBAAqB,EAAE,KAAK,iBAAiB,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAgB/B,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAoE/C,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAA4B,CAAC;AAQrG,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAyB,CAAC;AAKtF,eAAO,MAAM,sBAAsB,EAAE,iBA+BnC,CAAC;AAEH,OAAO,EAAC,qBAAqB,EAAE,KAAK,iBAAiB,EAAC,MAAM,qBAAqB,CAAC"}
package/dist/compiler.js CHANGED
@@ -3,7 +3,7 @@ import { VELAR_STRICT_JSON_RUNTIME, VELAR_TYPE_REGISTRY_RUNTIME, } from "@velars
3
3
  import { VELAR_NODE_API_VERSION, nodeModuleDependencies, nodeModuleInterfaces, nodeModuleSources, velarNodeCompilerExtension, } from "@velarscript/node/compiler";
4
4
  import { inferServerIntrinsic } from "./analyzer.js";
5
5
  import { VELAR_SERVER_RUNTIME } from "./runtime.js";
6
- export const VELAR_SERVER_API_VERSION = "0.10";
6
+ export const VELAR_SERVER_API_VERSION = "0.11";
7
7
  const unknownType = { kind: "unknown" };
8
8
  const stringType = { kind: "string" };
9
9
  const numberType = { kind: "number" };
@@ -47,6 +47,7 @@ function moduleInterface(exports) {
47
47
  }
48
48
  const serverModuleInterface = moduleInterface(new Map([
49
49
  ["application", functionType(["app", "path"], [serveAppType, { kind: "union", members: [stringType, { kind: "null" }] }], functionType([], [], promise(serverType)), 1)],
50
+ ["authenticate", intrinsic("server.authenticate", ["credential", "verify"], [unknownType, unknownType], providerType)],
50
51
  ["configuration", intrinsic("server.configuration", ["target", "path", "maxBytes"], [unknownType, { kind: "union", members: [stringType, { kind: "null" }] }, numberType], promise(unknownType), 1)],
51
52
  ["database", intrinsic("server.database", ["connect", "disconnect"], [unknownType, unknownType], providerType)],
52
53
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAkKpB,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAgLpB,CAAC"}
package/dist/runtime.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // configuration discovery, startup assembly, and connection lifetime.
4
4
  export const VELAR_SERVER_RUNTIME = String.raw `
5
5
  import { exists as __velarServerExists, readText as __velarServerReadText } from "velar/fs";
6
- import { ServeApp as __velarServerServeApp, provide as __velarServerProvide, serve as __velarServerServe } from "velar/serve";
6
+ import { ServeApp as __velarServerServeApp, __velarServeAuthenticationCredential as __velarServerAuthenticationCredential, __velarServeAuthenticationError as __velarServerAuthenticationError, provide as __velarServerProvide, serve as __velarServerServe } from "velar/serve";
7
7
  import { parseDocument as __velarServerParseYamlDocument } from "yaml";
8
8
 
9
9
  const __velarServerApply = Reflect.apply;
@@ -151,6 +151,20 @@ export function application(app, path = null) {
151
151
  };
152
152
  }
153
153
 
154
+ export function authenticate(credential, verify) {
155
+ if (typeof verify !== "function") throw new __velarServerTypeError("server.authenticate requires a verify function");
156
+ credential = __velarServerAuthenticationCredential(credential);
157
+ return __velarServerProvide(
158
+ {credential},
159
+ async values => {
160
+ const identity = await verify(values.credential);
161
+ if (identity === null) throw __velarServerAuthenticationError(credential);
162
+ if (identity === undefined) throw new __velarServerTypeError("server.authenticate verify must resolve to an identity or null");
163
+ return identity;
164
+ },
165
+ );
166
+ }
167
+
154
168
  export function database(connect, disconnect) {
155
169
  if (typeof connect !== "function" || typeof disconnect !== "function") {
156
170
  throw new __velarServerTypeError("server.database requires connect and disconnect functions");
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkK7C,CAAC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgL7C,CAAC,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velarscript/server",
3
- "version": "0.14.1",
3
+ "version": "0.14.3",
4
4
  "description": "The official convention-based VelarScript server application framework.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -27,7 +27,7 @@
27
27
  "velar": {
28
28
  "extension": {
29
29
  "kind": "application",
30
- "apiVersion": "0.10",
30
+ "apiVersion": "0.11",
31
31
  "manifestKey": "server",
32
32
  "composes": {
33
33
  "@velarscript/node": "0.10"
@@ -35,8 +35,8 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@velarscript/compiler": "0.14.1",
39
- "@velarscript/node": "0.14.1",
38
+ "@velarscript/compiler": "0.14.3",
39
+ "@velarscript/node": "0.14.3",
40
40
  "yaml": "^2.9.0"
41
41
  },
42
42
  "exports": {