@outfoxx/sunday 2.0.0-beta.2 → 2.0.0-beta.4
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 +42 -0
- package/build/event-parser.d.ts +2 -0
- package/build/event-parser.js.map +1 -1
- package/build/fetch-event-source.d.ts +14 -5
- package/build/fetch-event-source.js +107 -44
- package/build/fetch-event-source.js.map +1 -1
- package/build/fetch-oauth-token-provider.d.ts +43 -0
- package/build/fetch-oauth-token-provider.js +193 -0
- package/build/fetch-oauth-token-provider.js.map +1 -0
- package/build/fetch-transport.d.ts +5 -0
- package/build/fetch-transport.js +45 -8
- package/build/fetch-transport.js.map +1 -1
- package/build/index.d.ts +7 -0
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/media-type-codecs/cbor-encoder.d.ts +2 -2
- package/build/media-type-codecs/cbor-encoder.js +2 -2
- package/build/media-type-codecs/cbor-encoder.js.map +1 -1
- package/build/media-type-codecs/json-encoder.d.ts +3 -3
- package/build/media-type-codecs/json-encoder.js +4 -4
- package/build/media-type-codecs/json-encoder.js.map +1 -1
- package/build/media-type-codecs/media-type-encoder.d.ts +3 -3
- package/build/media-type-codecs/media-type-encoder.js.map +1 -1
- package/build/media-type-codecs/www-form-url-encoder.d.ts +2 -2
- package/build/media-type-codecs/www-form-url-encoder.js +2 -2
- package/build/media-type-codecs/www-form-url-encoder.js.map +1 -1
- package/build/model-construction.d.ts +5 -0
- package/build/model-construction.js +40 -0
- package/build/model-construction.js.map +1 -0
- package/build/model-schema.d.ts +9 -0
- package/build/model-schema.js +131 -0
- package/build/model-schema.js.map +1 -0
- package/build/problem.js +2 -1
- package/build/problem.js.map +1 -1
- package/build/request-security.d.ts +16 -0
- package/build/request-security.js +167 -0
- package/build/request-security.js.map +1 -0
- package/build/schema-runtime.d.ts +8 -1
- package/build/schema-runtime.js +12 -3
- package/build/schema-runtime.js.map +1 -1
- package/build/security-binding.d.ts +22 -0
- package/build/security-binding.js +15 -0
- package/build/security-binding.js.map +1 -0
- package/build/token-manager.d.ts +33 -0
- package/build/token-manager.js +199 -0
- package/build/token-manager.js.map +1 -0
- package/build/token-provider.d.ts +44 -0
- package/build/token-provider.js +31 -0
- package/build/token-provider.js.map +1 -0
- package/build/transport.d.ts +3 -0
- package/build/unknown-variant.d.ts +12 -0
- package/build/unknown-variant.js +45 -0
- package/build/unknown-variant.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"www-form-url-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/www-form-url-encoder.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EACL,iBAAiB,EAAE,QAAQ,EAC3B,OAAO,EACP,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,MAAM,EACN,UAAU,EACV,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EAEnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"www-form-url-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/www-form-url-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SchemaLike } from './schema-runtime.js';
|
|
2
|
+
/** Constructs a model from fields already checked by its native Zod codec. */
|
|
3
|
+
export declare function constructValidatedModel<T, Args extends unknown[]>(type: new (...args: Args) => T, ...args: Args): T;
|
|
4
|
+
/** Checks initialized constructor storage through its canonical response-mode Zod schema. */
|
|
5
|
+
export declare function validateModelConstruction<T>(value: T, schema: SchemaLike<T>, type: object): void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { ArrayBufferEncoding, DateEncoding, NumericDateDecoding } from './schema-policy.js';
|
|
15
|
+
import { createSchemaRuntime } from './schema-runtime.js';
|
|
16
|
+
const runtime = createSchemaRuntime({
|
|
17
|
+
format: 'json',
|
|
18
|
+
dateEncoding: DateEncoding.ISO8601,
|
|
19
|
+
numericDateDecoding: NumericDateDecoding.DECIMAL_SECONDS_SINCE_EPOCH,
|
|
20
|
+
arrayBufferEncoding: ArrayBufferEncoding.BASE64,
|
|
21
|
+
});
|
|
22
|
+
// Only the exact constructor called by a synchronous codec may skip an already completed check.
|
|
23
|
+
let validatedConstructor;
|
|
24
|
+
/** Constructs a model from fields already checked by its native Zod codec. */
|
|
25
|
+
export function constructValidatedModel(type, ...args) {
|
|
26
|
+
const previous = validatedConstructor;
|
|
27
|
+
validatedConstructor = type;
|
|
28
|
+
try {
|
|
29
|
+
return new type(...args);
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
validatedConstructor = previous;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** Checks initialized constructor storage through its canonical response-mode Zod schema. */
|
|
36
|
+
export function validateModelConstruction(value, schema, type) {
|
|
37
|
+
if (validatedConstructor !== type)
|
|
38
|
+
runtime.resolveSchema(schema).encode(value);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=model-construction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-construction.js","sourceRoot":"","sources":["../src/model-construction.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAc,MAAM,qBAAqB,CAAC;AAEtE,MAAM,OAAO,GAAG,mBAAmB,CAAC;IAClC,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,YAAY,CAAC,OAAO;IAClC,mBAAmB,EAAE,mBAAmB,CAAC,2BAA2B;IACpE,mBAAmB,EAAE,mBAAmB,CAAC,MAAM;CAChD,CAAC,CAAC;AAEH,gGAAgG;AAChG,IAAI,oBAAwC,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CACrC,IAA8B,EAC9B,GAAG,IAAU;IAEb,MAAM,QAAQ,GAAG,oBAAoB,CAAC;IACtC,oBAAoB,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,CAAC;YACO,CAAC;QACP,oBAAoB,GAAG,QAAQ,CAAC;IAClC,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yBAAyB,CAAI,KAAQ,EAAE,MAAqB,EAAE,IAAY;IACxF,IAAI,oBAAoB,KAAK,IAAI;QAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SchemaDef, SchemaRuntime } from './schema-runtime.js';
|
|
3
|
+
/** Defines a generated synchronous model codec with native Zod cycle diagnostics in both directions. */
|
|
4
|
+
export declare function defineModelSchema<Output, Input = unknown>(build: (runtime: SchemaRuntime) => z.ZodType<Output, Input>, options?: {
|
|
5
|
+
id?: symbol;
|
|
6
|
+
debugName?: string;
|
|
7
|
+
}): SchemaDef<z.ZodType<Output, Input>>;
|
|
8
|
+
/** Applies common native schema assertions without replacing a reusable union's payload type. */
|
|
9
|
+
export declare function withModelConstraints<Output, Input>(payload: z.ZodType<Output, Input>, common: z.ZodType, discriminator?: string): z.ZodType<Output, Input>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { Instant, LocalDate, LocalDateTime, LocalTime, OffsetDateTime, ZonedDateTime } from '@js-joda/core';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { defineSchema } from './schema-runtime.js';
|
|
17
|
+
// Generated schemas and their transformations are synchronous. A root invocation owns the
|
|
18
|
+
// untyped-payload cycle check; nested schemas protect only their own recursive entry points.
|
|
19
|
+
let invocationDepth = 0;
|
|
20
|
+
/** Defines a generated synchronous model codec with native Zod cycle diagnostics in both directions. */
|
|
21
|
+
export function defineModelSchema(build, options) {
|
|
22
|
+
return defineSchema((runtime) => {
|
|
23
|
+
const schema = build(runtime);
|
|
24
|
+
const ancestors = new WeakSet();
|
|
25
|
+
function evaluate(value, context, direction) {
|
|
26
|
+
const object = typeof value === 'object' && value !== null ? value : undefined;
|
|
27
|
+
if (object && ancestors.has(object)) {
|
|
28
|
+
context.issues.push(cycleIssue([]));
|
|
29
|
+
return z.NEVER;
|
|
30
|
+
}
|
|
31
|
+
if (object)
|
|
32
|
+
ancestors.add(object);
|
|
33
|
+
const root = invocationDepth++ === 0;
|
|
34
|
+
try {
|
|
35
|
+
const result = direction === 'decode' ? schema.safeParse(value) : schema.safeEncode(value);
|
|
36
|
+
if (!result.success) {
|
|
37
|
+
context.issues.push(...result.error.issues.map(issue => ({ ...issue, input: undefined })));
|
|
38
|
+
return z.NEVER;
|
|
39
|
+
}
|
|
40
|
+
// Native object parsing has already removed non-participating fields. Inspecting its result
|
|
41
|
+
// also covers raw extension payloads without rejecting discarded input or invoking constructors.
|
|
42
|
+
const path = root ? cyclePath(result.data) : undefined;
|
|
43
|
+
if (path) {
|
|
44
|
+
context.issues.push(cycleIssue(path));
|
|
45
|
+
return z.NEVER;
|
|
46
|
+
}
|
|
47
|
+
return result.data;
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
invocationDepth--;
|
|
51
|
+
if (object)
|
|
52
|
+
ancestors.delete(object);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return z.codec(z.custom(), z.custom(), {
|
|
56
|
+
decode: (value, context) => evaluate(value, context, 'decode'),
|
|
57
|
+
encode: (value, context) => evaluate(value, context, 'encode'),
|
|
58
|
+
});
|
|
59
|
+
}, options);
|
|
60
|
+
}
|
|
61
|
+
/** Applies common native schema assertions without replacing a reusable union's payload type. */
|
|
62
|
+
export function withModelConstraints(payload, common, discriminator) {
|
|
63
|
+
function evaluate(value, context, direction) {
|
|
64
|
+
let fields = value;
|
|
65
|
+
if (direction === 'encode' && discriminator && typeof value === 'object' && value !== null && discriminator in value) {
|
|
66
|
+
const tag = value[discriminator];
|
|
67
|
+
if (typeof tag === 'object' && tag !== null && 'rawValue' in tag && typeof tag.rawValue === 'string') {
|
|
68
|
+
// Reused payload enums may have another nominal type; common tag rules inspect their wire value.
|
|
69
|
+
fields = { ...value, [discriminator]: tag.rawValue };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const constraints = direction === 'decode' ? common.safeParse(fields) : common.safeEncode(fields);
|
|
73
|
+
if (!constraints.success) {
|
|
74
|
+
context.issues.push(...constraints.error.issues.map(issue => ({ ...issue, input: undefined })));
|
|
75
|
+
return z.NEVER;
|
|
76
|
+
}
|
|
77
|
+
// Keep the selected payload's native conversion and identity. The common schema is assertion-only.
|
|
78
|
+
const result = direction === 'decode' ? payload.safeParse(value) : payload.safeEncode(value);
|
|
79
|
+
if (!result.success) {
|
|
80
|
+
context.issues.push(...result.error.issues.map(issue => ({ ...issue, input: undefined })));
|
|
81
|
+
return z.NEVER;
|
|
82
|
+
}
|
|
83
|
+
return result.data;
|
|
84
|
+
}
|
|
85
|
+
// A refinement attached directly to a union loses its issues during Zod's reverse union pass.
|
|
86
|
+
return z.codec(z.custom(), z.custom(), {
|
|
87
|
+
decode: (value, context) => evaluate(value, context, 'decode'),
|
|
88
|
+
encode: (value, context) => evaluate(value, context, 'encode'),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function cycleIssue(path) {
|
|
92
|
+
return { code: 'custom', input: undefined, message: 'Object cycles cannot be serialized', path, params: { reason: 'cycle' } };
|
|
93
|
+
}
|
|
94
|
+
function cyclePath(value) {
|
|
95
|
+
const ancestors = new WeakSet();
|
|
96
|
+
const pending = [{ value, path: [] }];
|
|
97
|
+
while (pending.length) {
|
|
98
|
+
const entry = pending.pop();
|
|
99
|
+
if (typeof entry.value !== 'object' || entry.value === null)
|
|
100
|
+
continue;
|
|
101
|
+
// Temporal codecs serialize these native values as scalars, not their cyclic zone-rule internals.
|
|
102
|
+
if (entry.value instanceof Instant || entry.value instanceof LocalDate ||
|
|
103
|
+
entry.value instanceof LocalDateTime || entry.value instanceof LocalTime ||
|
|
104
|
+
entry.value instanceof OffsetDateTime || entry.value instanceof ZonedDateTime)
|
|
105
|
+
continue;
|
|
106
|
+
if (entry.leave) {
|
|
107
|
+
ancestors.delete(entry.value);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (ancestors.has(entry.value))
|
|
111
|
+
return entry.path;
|
|
112
|
+
ancestors.add(entry.value);
|
|
113
|
+
pending.push({ ...entry, leave: true });
|
|
114
|
+
const children = modelChildren(entry.value);
|
|
115
|
+
for (let index = children.length - 1; index >= 0; index--) {
|
|
116
|
+
const [key, item] = children[index];
|
|
117
|
+
pending.push({ value: item, path: [...entry.path, key] });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
function modelChildren(value) {
|
|
123
|
+
if (Array.isArray(value))
|
|
124
|
+
return value.map((item, index) => [index, item]);
|
|
125
|
+
if (value instanceof Map)
|
|
126
|
+
return [...value].flatMap(([key, item], index) => [[`key:${index}`, key], [String(key), item]]);
|
|
127
|
+
if (value instanceof Set)
|
|
128
|
+
return [...value].map((item, index) => [index, item]);
|
|
129
|
+
return Object.entries(value);
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=model-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-schema.js","sourceRoot":"","sources":["../src/model-schema.ts"],"names":[],"mappings":"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"}
|
package/build/problem.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
import { constructValidatedModel } from './model-construction.js';
|
|
14
15
|
import { z } from 'zod';
|
|
15
16
|
import { ResponseExample } from './fetch.js';
|
|
16
17
|
import { defineSchema, } from './schema-runtime.js';
|
|
@@ -104,7 +105,7 @@ export class Problem extends Error {
|
|
|
104
105
|
}
|
|
105
106
|
export function createProblemCodec(problemType, wireSchema) {
|
|
106
107
|
return z.codec(wireSchema, z.instanceof(problemType), {
|
|
107
|
-
decode: (value) =>
|
|
108
|
+
decode: (value) => constructValidatedModel(problemType, value),
|
|
108
109
|
encode: (value) => ({
|
|
109
110
|
type: value.type?.toString() ?? Problem.BLANK_URL.toString(),
|
|
110
111
|
title: value.title,
|
package/build/problem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SecurityBinding } from './security-binding.js';
|
|
2
|
+
import { TokenLease, TokenManager } from './token-manager.js';
|
|
3
|
+
/** Per-request credentials, retained only for conditional invalidation and bounded recovery. */
|
|
4
|
+
export interface AuthorizedRequest {
|
|
5
|
+
readonly request: Request;
|
|
6
|
+
readonly bindings: readonly SecurityBinding[];
|
|
7
|
+
readonly leases: readonly TokenLease[];
|
|
8
|
+
}
|
|
9
|
+
/** Adds all credentials atomically after every provider succeeds. */
|
|
10
|
+
export declare function authorizeRequest(request: Request, bindings: readonly SecurityBinding[], manager: TokenManager | undefined, previous?: AuthorizedRequest): Promise<AuthorizedRequest>;
|
|
11
|
+
/** Requires a safe, replayable request and an explicit bearer invalid-token challenge. */
|
|
12
|
+
export declare function canRecoverAuthentication(request: AuthorizedRequest, response: Response): boolean;
|
|
13
|
+
/** Returns only bearer receipts rejected by an invalid-token challenge, preserving other conjuncts. */
|
|
14
|
+
export declare function rejectedBearerLeases(request: AuthorizedRequest): readonly TokenLease[];
|
|
15
|
+
/** Removes query credentials from responses before error translation or diagnostic rendering. */
|
|
16
|
+
export declare function redactSecurityResponse(response: Response, bindings: readonly SecurityBinding[]): Response;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { TokenProviderError } from './token-provider.js';
|
|
15
|
+
/** Adds all credentials atomically after every provider succeeds. */
|
|
16
|
+
export async function authorizeRequest(request, bindings, manager, previous) {
|
|
17
|
+
if (!manager)
|
|
18
|
+
throw new TokenProviderError();
|
|
19
|
+
const url = new URL(request.url);
|
|
20
|
+
const headers = new Headers(request.headers);
|
|
21
|
+
validateTransports(bindings, url, headers, !previous);
|
|
22
|
+
const leases = await Promise.all(bindings.map(binding => manager.credentials(binding, request.signal)));
|
|
23
|
+
request.signal.throwIfAborted();
|
|
24
|
+
bindings.forEach((binding, index) => applyCredential(binding, leases[index].tokens.accessToken, url, headers));
|
|
25
|
+
// Passing the body explicitly avoids Request's internal stream proxy, which can stall uploads in Bun.
|
|
26
|
+
// Manual redirects also protect custom API-key headers and cookies from crossing origins.
|
|
27
|
+
const authorized = url.toString() === request.url && request.redirect === 'manual' ? request :
|
|
28
|
+
new Request(url, {
|
|
29
|
+
method: request.method, headers, body: request.body, signal: request.signal,
|
|
30
|
+
cache: request.cache, credentials: request.credentials, integrity: request.integrity,
|
|
31
|
+
keepalive: request.keepalive, mode: request.mode, redirect: 'manual',
|
|
32
|
+
referrer: request.referrer, referrerPolicy: request.referrerPolicy,
|
|
33
|
+
...(request.body ? { duplex: 'half' } : {}),
|
|
34
|
+
});
|
|
35
|
+
for (const [name, value] of headers)
|
|
36
|
+
authorized.headers.set(name, value);
|
|
37
|
+
return { request: authorized, bindings, leases };
|
|
38
|
+
}
|
|
39
|
+
/** Requires a safe, replayable request and an explicit bearer invalid-token challenge. */
|
|
40
|
+
export function canRecoverAuthentication(request, response) {
|
|
41
|
+
return response.status === 401 && ['GET', 'HEAD', 'OPTIONS'].includes(request.request.method) &&
|
|
42
|
+
request.request.body === null && request.bindings.some(isBearerBinding) &&
|
|
43
|
+
hasInvalidBearerChallenge(response.headers.get('WWW-Authenticate') ?? '');
|
|
44
|
+
}
|
|
45
|
+
/** Returns only bearer receipts rejected by an invalid-token challenge, preserving other conjuncts. */
|
|
46
|
+
export function rejectedBearerLeases(request) {
|
|
47
|
+
return request.leases.filter((_, index) => isBearerBinding(request.bindings[index]));
|
|
48
|
+
}
|
|
49
|
+
function isBearerBinding(binding) {
|
|
50
|
+
return binding.transport.location === 'header' && binding.transport.name.toLowerCase() === 'authorization' &&
|
|
51
|
+
binding.transport.prefix?.toLowerCase() === 'bearer';
|
|
52
|
+
}
|
|
53
|
+
/** Removes query credentials from responses before error translation or diagnostic rendering. */
|
|
54
|
+
export function redactSecurityResponse(response, bindings) {
|
|
55
|
+
const queryNames = bindings.filter(binding => binding.transport.location === 'query').map(binding => binding.transport.name);
|
|
56
|
+
if (!queryNames.length || !response.url)
|
|
57
|
+
return response;
|
|
58
|
+
const url = new URL(response.url);
|
|
59
|
+
for (const name of queryNames)
|
|
60
|
+
if (url.searchParams.has(name))
|
|
61
|
+
replaceQueryCredential(url, name, '[redacted]');
|
|
62
|
+
const result = new Response(response.body, { status: response.status, statusText: response.statusText, headers: response.headers });
|
|
63
|
+
Object.defineProperty(result, 'url', { value: url.toString() });
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
function hasInvalidBearerChallenge(header) {
|
|
67
|
+
const parts = splitChallenges(header);
|
|
68
|
+
if (!parts)
|
|
69
|
+
return false;
|
|
70
|
+
let bearer = false;
|
|
71
|
+
for (let part of parts) {
|
|
72
|
+
const challenge = /^([a-z][a-z0-9_-]*)\s+(?!\s*=)(.*)$/i.exec(part);
|
|
73
|
+
if (challenge) {
|
|
74
|
+
bearer = challenge[1].toLowerCase() === 'bearer';
|
|
75
|
+
part = challenge[2];
|
|
76
|
+
}
|
|
77
|
+
else if (/^[a-z][a-z0-9_-]*$/i.test(part))
|
|
78
|
+
bearer = false;
|
|
79
|
+
const error = /^error\s*=\s*(?:"([^"]*)"|([^"\s]+))$/i.exec(part);
|
|
80
|
+
if (bearer && (error?.[1] ?? error?.[2]) === 'invalid_token')
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
function cookieEntries(headers) {
|
|
86
|
+
return (headers.get('Cookie') ?? '').split(';').flatMap(entry => {
|
|
87
|
+
const split = entry.indexOf('=');
|
|
88
|
+
return split < 0 ? [] : [[entry.slice(0, split).trim(), entry.slice(split + 1).trim()]];
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// URLSearchParams re-encodes unrelated values, which can invalidate application-signed query parameters.
|
|
92
|
+
function replaceQueryCredential(url, name, credential) {
|
|
93
|
+
const fields = (url.search ? url.search.slice(1).split('&') : []).filter(field => {
|
|
94
|
+
const key = field.split('=', 1)[0];
|
|
95
|
+
try {
|
|
96
|
+
return decodeURIComponent(key.replaceAll('+', ' ')) !== name;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
fields.push(`${encodeURIComponent(name)}=${encodeURIComponent(credential)}`);
|
|
103
|
+
url.search = fields.join('&');
|
|
104
|
+
}
|
|
105
|
+
function validateTransports(bindings, url, headers, checkExisting) {
|
|
106
|
+
const names = new Set();
|
|
107
|
+
for (const binding of bindings) {
|
|
108
|
+
const transport = binding.transport;
|
|
109
|
+
const name = `${transport.location}:${transport.location === 'header' ? transport.name.toLowerCase() : transport.name}`;
|
|
110
|
+
if (names.has(name))
|
|
111
|
+
throw new TokenProviderError();
|
|
112
|
+
names.add(name);
|
|
113
|
+
if (checkExisting && ((transport.location === 'header' && headers.has(transport.name)) ||
|
|
114
|
+
(transport.location === 'query' && url.searchParams.has(transport.name)) ||
|
|
115
|
+
(transport.location === 'cookie' && cookieEntries(headers).some(([name]) => name === transport.name))))
|
|
116
|
+
throw new TokenProviderError();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function applyCredential(binding, token, url, headers) {
|
|
120
|
+
const transport = binding.transport;
|
|
121
|
+
const credential = transport.prefix ? `${transport.prefix} ${token}` : token;
|
|
122
|
+
switch (transport.location) {
|
|
123
|
+
case 'header': {
|
|
124
|
+
if ([...credential].some(character => character.codePointAt(0) < 32 || character.codePointAt(0) === 127))
|
|
125
|
+
throw new TokenProviderError();
|
|
126
|
+
headers.set(transport.name, credential);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'query':
|
|
130
|
+
replaceQueryCredential(url, transport.name, credential);
|
|
131
|
+
break;
|
|
132
|
+
case 'cookie': {
|
|
133
|
+
const entries = cookieEntries(headers).filter(([name]) => name !== transport.name);
|
|
134
|
+
entries.push([transport.name, encodeURIComponent(credential)]);
|
|
135
|
+
headers.set('Cookie', entries.map(([name, value]) => `${name}=${value}`).join('; '));
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function splitChallenges(header) {
|
|
141
|
+
const parts = [];
|
|
142
|
+
let start = 0;
|
|
143
|
+
let quoted = false;
|
|
144
|
+
let escaped = false;
|
|
145
|
+
for (let index = 0; index < header.length; index++) {
|
|
146
|
+
const character = header[index];
|
|
147
|
+
if (escaped) {
|
|
148
|
+
escaped = false;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (quoted && character === '\\') {
|
|
152
|
+
escaped = true;
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (character === '"')
|
|
156
|
+
quoted = !quoted;
|
|
157
|
+
if (!quoted && character === ',') {
|
|
158
|
+
parts.push(header.slice(start, index).trim());
|
|
159
|
+
start = index + 1;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (quoted || escaped)
|
|
163
|
+
return undefined;
|
|
164
|
+
parts.push(header.slice(start).trim());
|
|
165
|
+
return parts;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=request-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-security.js","sourceRoot":"","sources":["../src/request-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,15 @@ export declare function defineSchema<S extends AnySchema>(builder: (runtime: Sch
|
|
|
29
29
|
id?: symbol;
|
|
30
30
|
debugName?: string;
|
|
31
31
|
}): SchemaDef<S>;
|
|
32
|
+
/** Payload direction, independent of whether this application is a client or server. */
|
|
33
|
+
export type ModelMode = 'request' | 'response';
|
|
34
|
+
/** Resolves the native Zod schema for a payload direction and wire policy. */
|
|
32
35
|
export interface SchemaRuntime {
|
|
33
36
|
readonly policy: SchemaPolicy;
|
|
37
|
+
readonly mode: ModelMode;
|
|
38
|
+
/** Reuses schema definitions in another direction without sharing direction-specific schemas. */
|
|
39
|
+
forMode(mode: ModelMode): SchemaRuntime;
|
|
34
40
|
resolveSchema<S extends SchemaLike>(ref: S): ResolvedSchema<S>;
|
|
35
41
|
}
|
|
36
|
-
|
|
42
|
+
/** Creates a response-mode runtime by default for standalone model codecs. */
|
|
43
|
+
export declare function createSchemaRuntime(policy: SchemaPolicy, mode?: ModelMode): SchemaRuntime;
|
package/build/schema-runtime.js
CHANGED
|
@@ -37,10 +37,18 @@ export function defineSchema(builder, options) {
|
|
|
37
37
|
}
|
|
38
38
|
class DefaultSchemaRuntime {
|
|
39
39
|
policy;
|
|
40
|
+
mode;
|
|
41
|
+
modes;
|
|
40
42
|
schemas = new Map();
|
|
41
43
|
resolving = new Set();
|
|
42
|
-
constructor(policy) {
|
|
44
|
+
constructor(policy, mode, modes = new Map()) {
|
|
43
45
|
this.policy = policy;
|
|
46
|
+
this.mode = mode;
|
|
47
|
+
this.modes = modes;
|
|
48
|
+
modes.set(mode, this);
|
|
49
|
+
}
|
|
50
|
+
forMode(mode) {
|
|
51
|
+
return this.modes.get(mode) ?? new DefaultSchemaRuntime(this.policy, mode, this.modes);
|
|
44
52
|
}
|
|
45
53
|
resolveSchema(ref) {
|
|
46
54
|
if (isSchema(ref)) {
|
|
@@ -71,7 +79,8 @@ class DefaultSchemaRuntime {
|
|
|
71
79
|
}
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
|
-
|
|
75
|
-
|
|
82
|
+
/** Creates a response-mode runtime by default for standalone model codecs. */
|
|
83
|
+
export function createSchemaRuntime(policy, mode = 'response') {
|
|
84
|
+
return new DefaultSchemaRuntime(policy, mode);
|
|
76
85
|
}
|
|
77
86
|
//# sourceMappingURL=schema-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-runtime.js","sourceRoot":"","sources":["../src/schema-runtime.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAOjC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,eAAe,CAAC,CAAC;AA+BpE,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CAAC,CAAC,KAAK;WACT,OAAO,KAAK,KAAK,QAAQ;WACzB,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,GAAG,GAAG,KAAqC,CAAC;IAClD,OAAO,CAAC,CAAC,KAAK;WACT,OAAO,KAAK,KAAK,QAAQ;WACzB,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI;WAC3B,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;WAC1B,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAsC,EACtC,OAA6C;IAE7C,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7C,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,CAAC,aAAa,CAAC,EAAE,IAAI;KACtB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-runtime.js","sourceRoot":"","sources":["../src/schema-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Acquisition endpoints selected by generation; deployment overrides never select another profile. */
|
|
2
|
+
export interface SecurityEndpoints {
|
|
3
|
+
readonly discoveryUrl?: string;
|
|
4
|
+
readonly authorizationUrl?: string;
|
|
5
|
+
readonly tokenUrl?: string;
|
|
6
|
+
readonly refreshUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
/** One logical scheme in the complete alternative selected for an operation. */
|
|
9
|
+
export interface SecurityBinding extends SecurityEndpoints {
|
|
10
|
+
readonly scheme: string;
|
|
11
|
+
readonly provider: string;
|
|
12
|
+
readonly profile?: string;
|
|
13
|
+
readonly flow: 'clientCredentials' | 'authorizationCode' | 'external' | 'static';
|
|
14
|
+
readonly scopes: readonly string[];
|
|
15
|
+
readonly audience?: string;
|
|
16
|
+
readonly resource?: string;
|
|
17
|
+
readonly transport: {
|
|
18
|
+
readonly location: 'header' | 'query' | 'cookie';
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly prefix?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=security-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-binding.js","sourceRoot":"","sources":["../src/security-binding.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC"}
|