@suveren/gateway 0.8.0 → 0.8.2
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/content/integrations/deploy-github.json +13 -6
- package/dist/mcp-server/http.mjs +327 -59
- package/dist/ui/assets/{index-BFnSVa9N.js → index-76gJM-3o.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/node_modules/hono/dist/cjs/client/client.js +4 -4
- package/node_modules/hono/dist/cjs/hono-base.js +7 -6
- package/node_modules/hono/dist/cjs/jsx/base.js +18 -1
- package/node_modules/hono/dist/cjs/jsx/components.js +25 -26
- package/node_modules/hono/dist/cjs/jsx/context.js +5 -5
- package/node_modules/hono/dist/cjs/jsx/dom/server.js +5 -1
- package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +2 -2
- package/node_modules/hono/dist/cjs/jsx/streaming.js +4 -5
- package/node_modules/hono/dist/client/client.js +4 -4
- package/node_modules/hono/dist/hono-base.js +7 -6
- package/node_modules/hono/dist/jsx/base.js +15 -1
- package/node_modules/hono/dist/jsx/components.js +26 -27
- package/node_modules/hono/dist/jsx/context.js +6 -6
- package/node_modules/hono/dist/jsx/dom/server.js +5 -1
- package/node_modules/hono/dist/jsx/intrinsic-element/components.js +3 -3
- package/node_modules/hono/dist/jsx/streaming.js +5 -6
- package/node_modules/hono/dist/types/context.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/base.d.ts +3 -0
- package/node_modules/hono/package.json +2 -2
- package/node_modules/jose/dist/types/index.d.ts +1 -2
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -11
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +13 -16
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -11
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +16 -19
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +10 -16
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +18 -21
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -1
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +4 -6
- package/node_modules/jose/dist/types/jwks/local.d.ts +5 -4
- package/node_modules/jose/dist/types/jwks/remote.d.ts +20 -21
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +4 -4
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +8 -11
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -5
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +8 -11
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +10 -14
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +11 -17
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +14 -11
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +24 -22
- package/node_modules/jose/dist/types/jwt/sign.d.ts +3 -7
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -6
- package/node_modules/jose/dist/types/jwt/verify.d.ts +13 -6
- package/node_modules/jose/dist/types/key/export.d.ts +6 -6
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +9 -14
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +10 -10
- package/node_modules/jose/dist/types/key/import.d.ts +19 -18
- package/node_modules/jose/dist/types/types.d.ts +152 -247
- package/node_modules/jose/dist/types/util/base64url.d.ts +7 -7
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +6 -1
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -3
- package/node_modules/jose/dist/types/util/errors.d.ts +29 -40
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +1 -2
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +9 -26
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +3 -3
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +11 -30
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +6 -6
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +33 -57
- package/node_modules/jose/dist/webapi/jwk/embedded.js +3 -4
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +3 -6
- package/node_modules/jose/dist/webapi/jwks/local.js +16 -10
- package/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +2 -4
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +2 -2
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +8 -15
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +4 -14
- package/node_modules/jose/dist/webapi/jws/general/sign.js +4 -11
- package/node_modules/jose/dist/webapi/jws/general/verify.js +5 -7
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +2 -3
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +11 -25
- package/node_modules/jose/dist/webapi/jwt/sign.js +1 -1
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +1 -2
- package/node_modules/jose/dist/webapi/jwt/verify.js +4 -4
- package/node_modules/jose/dist/webapi/key/export.js +12 -16
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +4 -13
- package/node_modules/jose/dist/webapi/key/generate_secret.js +1 -1
- package/node_modules/jose/dist/webapi/key/import.js +5 -9
- package/node_modules/jose/dist/webapi/lib/asn1.js +2 -4
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +35 -0
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +21 -29
- package/node_modules/jose/dist/webapi/lib/deflate.js +9 -19
- package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +0 -4
- package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +21 -54
- package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +26 -59
- package/node_modules/jose/dist/webapi/lib/jws_sign.js +29 -43
- package/node_modules/jose/dist/webapi/lib/jws_verify.js +37 -45
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
- package/node_modules/jose/dist/webapi/lib/key.js +119 -59
- package/node_modules/jose/dist/webapi/lib/key_management.js +45 -80
- package/node_modules/jose/dist/webapi/lib/{options.js → validate.js} +64 -3
- package/node_modules/jose/dist/webapi/util/base64url.js +5 -19
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
- package/node_modules/jose/package.json +1 -1
- package/package.json +1 -1
- package/profiles/deploy/0.10.profile.json +178 -0
- package/profiles/index.json +1 -0
- package/node_modules/jose/dist/webapi/lib/base64.js +0 -20
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -27
- package/node_modules/jose/dist/webapi/lib/helpers.js +0 -45
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -12
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -19
- package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +0 -19
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -10
- package/node_modules/jose/dist/webapi/lib/key_options.js +0 -8
- package/node_modules/jose/dist/webapi/lib/signing.js +0 -22
- package/node_modules/jose/dist/webapi/lib/type_checks.js +0 -30
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/jsx/streaming.ts
|
|
2
2
|
import { raw } from "../helper/html/index.js";
|
|
3
3
|
import { HtmlEscapedCallbackPhase, resolveCallback } from "../utils/html.js";
|
|
4
|
-
import { JSXNode } from "./base.js";
|
|
4
|
+
import { isUntrustedObject, JSXNode, renderChildren, renderUntrustedObject } from "./base.js";
|
|
5
5
|
import { childrenToString } from "./components.js";
|
|
6
6
|
import { DOM_RENDERER, DOM_STASH } from "./constants.js";
|
|
7
7
|
import { captureRenderContext, createContext, useContext } from "./context.js";
|
|
@@ -9,6 +9,7 @@ import { Suspense as SuspenseDomRenderer } from "./dom/components.js";
|
|
|
9
9
|
import { buildDataStack } from "./dom/render.js";
|
|
10
10
|
var StreamingContext = createContext(null);
|
|
11
11
|
var suspenseCounter = 0;
|
|
12
|
+
var serializeBoundaryChild = (child) => typeof child === "string" || Array.isArray(child) ? renderChildren([child]) : child == null || typeof child === "boolean" ? "" : isUntrustedObject(child) ? renderUntrustedObject(child) : child.toString();
|
|
12
13
|
var Suspense = async ({
|
|
13
14
|
children,
|
|
14
15
|
fallback
|
|
@@ -25,9 +26,7 @@ var Suspense = async ({
|
|
|
25
26
|
try {
|
|
26
27
|
stackNode[DOM_STASH][0] = 0;
|
|
27
28
|
buildDataStack.push([[], stackNode]);
|
|
28
|
-
resArray = children.map(
|
|
29
|
-
(c) => c == null || typeof c === "boolean" ? "" : c.toString()
|
|
30
|
-
);
|
|
29
|
+
resArray = children.map(serializeBoundaryChild);
|
|
31
30
|
} catch (e) {
|
|
32
31
|
if (e instanceof Promise) {
|
|
33
32
|
const resume = captureRenderContext();
|
|
@@ -48,7 +47,7 @@ var Suspense = async ({
|
|
|
48
47
|
}
|
|
49
48
|
if (resArray.some((res) => res instanceof Promise)) {
|
|
50
49
|
const index = suspenseCounter++;
|
|
51
|
-
const fallbackStr = await fallback.toString();
|
|
50
|
+
const fallbackStr = await (typeof fallback === "string" || Array.isArray(fallback) ? renderChildren([fallback]) : isUntrustedObject(fallback) ? renderUntrustedObject(fallback) : fallback.toString());
|
|
52
51
|
return raw(`<template id="H:${index}"></template>${fallbackStr}<!--/$-->`, [
|
|
53
52
|
...fallbackStr.callbacks || [],
|
|
54
53
|
({ phase, buffer, context }) => {
|
|
@@ -61,7 +60,7 @@ var Suspense = async ({
|
|
|
61
60
|
if (buffer) {
|
|
62
61
|
buffer[0] = buffer[0].replace(
|
|
63
62
|
new RegExp(`<template id="H:${index}"></template>.*?<!--/\\$-->`),
|
|
64
|
-
content
|
|
63
|
+
() => content
|
|
65
64
|
);
|
|
66
65
|
}
|
|
67
66
|
let html = buffer ? "" : `<template data-hono-target="H:${index}">${content}</template><script${nonce ? ` nonce="${nonce}"` : ""}>
|
|
@@ -347,7 +347,7 @@ export declare class Context<E extends Env = any, P extends string = any, I exte
|
|
|
347
347
|
* ```
|
|
348
348
|
*/
|
|
349
349
|
set: Set<IsAny<E> extends true ? {
|
|
350
|
-
Variables: ContextVariableMap & Record<
|
|
350
|
+
Variables: ContextVariableMap & Record<PropertyKey, any>;
|
|
351
351
|
} : E>;
|
|
352
352
|
/**
|
|
353
353
|
* `.get()` can use the value specified by the key.
|
|
@@ -363,7 +363,7 @@ export declare class Context<E extends Env = any, P extends string = any, I exte
|
|
|
363
363
|
* ```
|
|
364
364
|
*/
|
|
365
365
|
get: Get<IsAny<E> extends true ? {
|
|
366
|
-
Variables: ContextVariableMap & Record<
|
|
366
|
+
Variables: ContextVariableMap & Record<PropertyKey, any>;
|
|
367
367
|
} : E>;
|
|
368
368
|
/**
|
|
369
369
|
* `.var` can access the value of a variable.
|
|
@@ -26,6 +26,9 @@ export declare namespace JSX {
|
|
|
26
26
|
export declare const getNameSpaceContext: () => Context<string> | undefined;
|
|
27
27
|
export declare const booleanAttributes: string[];
|
|
28
28
|
export type Child = string | Promise<string> | number | JSXNode | null | undefined | boolean | Child[];
|
|
29
|
+
export declare const renderChildren: (children: Child[]) => HtmlEscapedString | Promise<HtmlEscapedString>;
|
|
30
|
+
export declare const isUntrustedObject: (value: unknown) => boolean;
|
|
31
|
+
export declare const renderUntrustedObject: (value: unknown) => HtmlEscapedString | Promise<HtmlEscapedString>;
|
|
29
32
|
export declare class JSXNode implements HtmlEscaped {
|
|
30
33
|
tag: string | Function;
|
|
31
34
|
props: Props;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hono",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.7",
|
|
4
4
|
"description": "Web framework built on Web Standards",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
"@typescript/native-preview": "7.0.0-dev.20260210.1",
|
|
683
683
|
"@vitest/coverage-v8": "^4.1.7",
|
|
684
684
|
"bun-types": "^1.2.20",
|
|
685
|
-
"editorconfig-checker": "6.
|
|
685
|
+
"editorconfig-checker": "6.2.0",
|
|
686
686
|
"esbuild": "^0.27.1",
|
|
687
687
|
"eslint": "^9.39.3",
|
|
688
688
|
"jsdom": "22.1.0",
|
|
@@ -48,8 +48,7 @@ import * as base64url from './util/base64url.js';
|
|
|
48
48
|
export { base64url };
|
|
49
49
|
export type { AnyJWK, CompactDecryptResult, CompactJWEHeaderParameters, CompactJWSHeaderParameters, CompactVerifyResult, CritOption, CryptoKey, DecryptOptions, EncryptOptions, FlattenedDecryptResult, FlattenedJWE, FlattenedJWS, FlattenedJWSInput, FlattenedVerifyResult, GeneralDecryptResult, GeneralJWE, GeneralJWS, GeneralJWSInput, GeneralVerifyResult, GetKeyFunction, JoseHeaderParameters, JSONWebKeySet, JWEContentEncryptionAlgorithm, JWEHeaderParameters, JWEKeyManagementAlgorithm, JWEKeyManagementHeaderParameters, JWK_AKP_Private, JWK_AKP_Public, JWK_EC_Private, JWK_EC_Public, JWK_oct, JWK_OKP_Private, JWK_OKP_Public, JWK_RSA_Private, JWK_RSA_Public, JWK, JWKKeyType, JWKParameters, JWSAlgorithm, JWSHeaderParameters, JWTClaimVerificationOptions, JWTDecryptResult, JWTHeaderParameters, JWTPayload, JWTVerifyResult, KeyInput, KeyObject, ProduceJWT, ResolvedKey, SignOptions, VerifyOptions, } from './types.d.ts';
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
52
|
-
* to `"WebCryptoAPI"`
|
|
51
|
+
* Identified the loaded runtime-specific build in prior releases; now always `"WebCryptoAPI"`.
|
|
53
52
|
*
|
|
54
53
|
* @deprecated Remove any runtime branching on this value; it is always `"WebCryptoAPI"`.
|
|
55
54
|
*/
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
import type * as t from '../../types.d.ts';
|
|
2
|
-
/**
|
|
2
|
+
/** Resolves a key for Compact JWE decryption from unverified headers and token data. */
|
|
3
3
|
export interface CompactDecryptGetKey<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array> extends t.GetKeyFunction<t.CompactJWEHeaderParameters, t.FlattenedJWE, KeyType | t.KeyObject | t.JWK> {
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
6
|
* Decrypts a Compact JWE.
|
|
7
7
|
*
|
|
8
|
-
* @param key Private
|
|
8
|
+
* @param key Private key or shared secret. See
|
|
9
9
|
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
10
10
|
*/
|
|
11
11
|
export declare function compactDecrypt(jwe: string | Uint8Array, key: t.KeyInput, options?: t.DecryptOptions): Promise<t.CompactDecryptResult>;
|
|
12
12
|
/**
|
|
13
|
-
* Decrypts a Compact JWE
|
|
14
|
-
* {@link t.ResolvedKey.key resolved key}.
|
|
13
|
+
* Decrypts a Compact JWE with a dynamically resolved key, included in the result.
|
|
15
14
|
*
|
|
16
|
-
* @param getKey
|
|
17
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
15
|
+
* @param getKey Resolves a private key or shared secret from unverified token data.
|
|
18
16
|
*/
|
|
19
17
|
export declare function compactDecrypt<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array>(jwe: string | Uint8Array, getKey: CompactDecryptGetKey<KeyType>, options?: t.DecryptOptions): Promise<t.CompactDecryptResult & t.ResolvedKey<KeyType>>;
|
|
20
18
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* function was used.
|
|
19
|
+
* Decrypts a Compact JWE with a key or key resolver. The result includes `key` only when a resolver
|
|
20
|
+
* is used.
|
|
24
21
|
*
|
|
25
|
-
* @param key Private
|
|
26
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
22
|
+
* @param key Private key or shared secret, or a function resolving one.
|
|
27
23
|
*/
|
|
28
24
|
export declare function compactDecrypt(jwe: string | Uint8Array, key: t.KeyInput | CompactDecryptGetKey, options?: t.DecryptOptions): Promise<t.CompactDecryptResult & Partial<t.ResolvedKey>>;
|
|
@@ -3,40 +3,37 @@ import type * as t from '../../types.d.ts';
|
|
|
3
3
|
export declare class CompactEncrypt {
|
|
4
4
|
#private;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Creates a Compact JWE encryptor.
|
|
7
7
|
*
|
|
8
8
|
* @param plaintext Binary representation of the plaintext to encrypt.
|
|
9
9
|
*/
|
|
10
10
|
constructor(plaintext: Uint8Array);
|
|
11
11
|
/**
|
|
12
|
-
* Sets a content encryption key
|
|
13
|
-
*
|
|
12
|
+
* Sets a content encryption key instead of generating a random one for the JWE "enc" algorithm.
|
|
13
|
+
* May only be called once.
|
|
14
14
|
*
|
|
15
|
-
* @deprecated
|
|
16
|
-
* validation purposes.
|
|
15
|
+
* @deprecated Use only for testing and vector validation.
|
|
17
16
|
*/
|
|
18
17
|
setContentEncryptionKey(cek: Uint8Array): this;
|
|
19
18
|
/**
|
|
20
|
-
* Sets the
|
|
21
|
-
*
|
|
19
|
+
* Sets the content encryption IV instead of generating a random one for the JWE "enc" algorithm.
|
|
20
|
+
* May only be called once.
|
|
22
21
|
*
|
|
23
|
-
* @deprecated
|
|
24
|
-
* validation purposes.
|
|
22
|
+
* @deprecated Use only for testing and vector validation.
|
|
25
23
|
*/
|
|
26
24
|
setInitializationVector(iv: Uint8Array): this;
|
|
27
|
-
/** Sets the JWE Protected Header
|
|
25
|
+
/** Sets the JWE Protected Header. May only be called once. */
|
|
28
26
|
setProtectedHeader(protectedHeader: t.CompactJWEHeaderParameters): this;
|
|
29
27
|
/**
|
|
30
|
-
* Sets
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* appropriate JOSE Header.
|
|
28
|
+
* Sets key management inputs such as ECDH-ES "apu"/"apv" or PBES2 "p2c". Use this method instead
|
|
29
|
+
* of header setters; the resulting parameters are added to the JOSE header. May only be called
|
|
30
|
+
* once.
|
|
34
31
|
*/
|
|
35
32
|
setKeyManagementParameters(parameters: t.JWEKeyManagementHeaderParameters): this;
|
|
36
33
|
/**
|
|
37
|
-
* Encrypts
|
|
34
|
+
* Encrypts the plaintext as a Compact JWE.
|
|
38
35
|
*
|
|
39
|
-
* @param key Public
|
|
36
|
+
* @param key Public key or shared secret. See
|
|
40
37
|
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
41
38
|
*/
|
|
42
39
|
encrypt(key: t.KeyInput, options?: t.EncryptOptions): Promise<string>;
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
import type * as t from '../../types.d.ts';
|
|
2
|
-
/**
|
|
2
|
+
/** Resolves a key for Flattened JWE decryption from unverified headers and token data. */
|
|
3
3
|
export interface FlattenedDecryptGetKey<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array> extends t.GetKeyFunction<t.JWEHeaderParameters | undefined, t.FlattenedJWE, KeyType | t.KeyObject | t.JWK> {
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
6
|
* Decrypts a Flattened JWE.
|
|
7
7
|
*
|
|
8
|
-
* @param key Private
|
|
8
|
+
* @param key Private key or shared secret. See
|
|
9
9
|
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
10
10
|
*/
|
|
11
11
|
export declare function flattenedDecrypt(jwe: t.FlattenedJWE, key: t.KeyInput, options?: t.DecryptOptions): Promise<t.FlattenedDecryptResult>;
|
|
12
12
|
/**
|
|
13
|
-
* Decrypts a Flattened JWE
|
|
14
|
-
* {@link t.ResolvedKey.key resolved key}.
|
|
13
|
+
* Decrypts a Flattened JWE with a dynamically resolved key, included in the result.
|
|
15
14
|
*
|
|
16
|
-
* @param getKey
|
|
17
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
15
|
+
* @param getKey Resolves a private key or shared secret from unverified token data.
|
|
18
16
|
*/
|
|
19
17
|
export declare function flattenedDecrypt<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array>(jwe: t.FlattenedJWE, getKey: FlattenedDecryptGetKey<KeyType>, options?: t.DecryptOptions): Promise<t.FlattenedDecryptResult & t.ResolvedKey<KeyType>>;
|
|
20
18
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* function was used.
|
|
19
|
+
* Decrypts a Flattened JWE with a key or key resolver. The result includes `key` only when a
|
|
20
|
+
* resolver is used.
|
|
24
21
|
*
|
|
25
|
-
* @param key Private
|
|
26
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
22
|
+
* @param key Private key or shared secret, or a function resolving one.
|
|
27
23
|
*/
|
|
28
24
|
export declare function flattenedDecrypt(jwe: t.FlattenedJWE, key: t.KeyInput | FlattenedDecryptGetKey, options?: t.DecryptOptions): Promise<t.FlattenedDecryptResult & Partial<t.ResolvedKey>>;
|
|
@@ -3,46 +3,43 @@ import type * as t from '../../types.d.ts';
|
|
|
3
3
|
export declare class FlattenedEncrypt {
|
|
4
4
|
#private;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Creates a Flattened JWE encryptor.
|
|
7
7
|
*
|
|
8
8
|
* @param plaintext Binary representation of the plaintext to encrypt.
|
|
9
9
|
*/
|
|
10
10
|
constructor(plaintext: Uint8Array);
|
|
11
11
|
/**
|
|
12
|
-
* Sets
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* appropriate JOSE Header.
|
|
12
|
+
* Sets key management inputs such as ECDH-ES "apu"/"apv" or PBES2 "p2c". Use this method instead
|
|
13
|
+
* of header setters; the resulting parameters are added to the JOSE header. May only be called
|
|
14
|
+
* once.
|
|
16
15
|
*/
|
|
17
16
|
setKeyManagementParameters(parameters: t.JWEKeyManagementHeaderParameters): this;
|
|
18
|
-
/** Sets the JWE Protected Header
|
|
17
|
+
/** Sets the JWE Protected Header. May only be called once. */
|
|
19
18
|
setProtectedHeader(protectedHeader: t.JWEHeaderParameters): this;
|
|
20
|
-
/** Sets the JWE Shared Unprotected Header
|
|
19
|
+
/** Sets the JWE Shared Unprotected Header. May only be called once. */
|
|
21
20
|
setSharedUnprotectedHeader(sharedUnprotectedHeader: t.JWEHeaderParameters): this;
|
|
22
|
-
/** Sets the JWE Per-Recipient Unprotected Header
|
|
21
|
+
/** Sets the JWE Per-Recipient Unprotected Header. May only be called once. */
|
|
23
22
|
setUnprotectedHeader(unprotectedHeader: t.JWEHeaderParameters): this;
|
|
24
|
-
/** Sets
|
|
23
|
+
/** Sets additional data to authenticate without encrypting it. */
|
|
25
24
|
setAdditionalAuthenticatedData(aad: Uint8Array): this;
|
|
26
25
|
/**
|
|
27
|
-
* Sets a content encryption key
|
|
28
|
-
*
|
|
26
|
+
* Sets a content encryption key instead of generating a random one for the JWE "enc" algorithm.
|
|
27
|
+
* May only be called once.
|
|
29
28
|
*
|
|
30
|
-
* @deprecated
|
|
31
|
-
* validation purposes.
|
|
29
|
+
* @deprecated Use only for testing and vector validation.
|
|
32
30
|
*/
|
|
33
31
|
setContentEncryptionKey(cek: Uint8Array): this;
|
|
34
32
|
/**
|
|
35
|
-
* Sets the
|
|
36
|
-
*
|
|
33
|
+
* Sets the content encryption IV instead of generating a random one for the JWE "enc" algorithm.
|
|
34
|
+
* May only be called once.
|
|
37
35
|
*
|
|
38
|
-
* @deprecated
|
|
39
|
-
* validation purposes.
|
|
36
|
+
* @deprecated Use only for testing and vector validation.
|
|
40
37
|
*/
|
|
41
38
|
setInitializationVector(iv: Uint8Array): this;
|
|
42
39
|
/**
|
|
43
|
-
* Encrypts
|
|
40
|
+
* Encrypts the plaintext as a Flattened JWE.
|
|
44
41
|
*
|
|
45
|
-
* @param key Public
|
|
42
|
+
* @param key Public key or shared secret. See
|
|
46
43
|
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
47
44
|
*/
|
|
48
45
|
encrypt(key: t.KeyInput, options?: t.EncryptOptions): Promise<t.FlattenedJWE>;
|
|
@@ -1,34 +1,28 @@
|
|
|
1
1
|
import type * as t from '../../types.d.ts';
|
|
2
|
-
/**
|
|
2
|
+
/** Resolves a key for General JWE decryption from unverified headers and token data. */
|
|
3
3
|
export interface GeneralDecryptGetKey<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array> extends t.GetKeyFunction<t.JWEHeaderParameters | undefined, t.FlattenedJWE, KeyType | t.KeyObject | t.JWK> {
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
6
|
* Decrypts a General JWE.
|
|
7
7
|
*
|
|
8
|
-
* > Note:
|
|
9
|
-
* >
|
|
10
|
-
* > the
|
|
11
|
-
* > in the General JWE are not validated, and their headers are not included in the returned result.
|
|
12
|
-
* > Recipients of a General JWE should only rely on the returned (decrypted) data.
|
|
8
|
+
* > Note: Returns plaintext and headers from the first recipient that decrypts successfully. Other
|
|
9
|
+
* > recipients may be inspected to enforce serialization rules, but their headers are not included in
|
|
10
|
+
* > the result. Rely only on the returned data.
|
|
13
11
|
*
|
|
14
|
-
* @param key Private
|
|
12
|
+
* @param key Private key or shared secret. See
|
|
15
13
|
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
16
14
|
*/
|
|
17
15
|
export declare function generalDecrypt(jwe: t.GeneralJWE, key: t.KeyInput, options?: t.DecryptOptions): Promise<t.GeneralDecryptResult>;
|
|
18
16
|
/**
|
|
19
|
-
* Decrypts a General JWE
|
|
20
|
-
* {@link t.ResolvedKey.key resolved key}.
|
|
17
|
+
* Decrypts a General JWE with a dynamically resolved key, included in the result.
|
|
21
18
|
*
|
|
22
|
-
* @param getKey
|
|
23
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
19
|
+
* @param getKey Resolves a private key or shared secret from unverified token data.
|
|
24
20
|
*/
|
|
25
21
|
export declare function generalDecrypt<KeyType extends t.CryptoKey | Uint8Array = t.CryptoKey | Uint8Array>(jwe: t.GeneralJWE, getKey: GeneralDecryptGetKey<KeyType>, options?: t.DecryptOptions): Promise<t.GeneralDecryptResult & t.ResolvedKey<KeyType>>;
|
|
26
22
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* function was used.
|
|
23
|
+
* Decrypts a General JWE with a key or key resolver. The result includes `key` only when a resolver
|
|
24
|
+
* is used.
|
|
30
25
|
*
|
|
31
|
-
* @param key Private
|
|
32
|
-
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
26
|
+
* @param key Private key or shared secret, or a function resolving one.
|
|
33
27
|
*/
|
|
34
28
|
export declare function generalDecrypt(jwe: t.GeneralJWE, key: t.KeyInput | GeneralDecryptGetKey, options?: t.DecryptOptions): Promise<t.GeneralDecryptResult & Partial<t.ResolvedKey>>;
|
|
@@ -1,54 +1,51 @@
|
|
|
1
1
|
import type * as t from '../../types.d.ts';
|
|
2
2
|
/** Configures an individual recipient in a General JWE. */
|
|
3
3
|
export interface Recipient {
|
|
4
|
-
/** Sets the JWE Per-Recipient Unprotected Header
|
|
4
|
+
/** Sets the JWE Per-Recipient Unprotected Header. May only be called once. */
|
|
5
5
|
setUnprotectedHeader(unprotectedHeader: t.JWEHeaderParameters): Recipient;
|
|
6
6
|
/**
|
|
7
|
-
* Sets
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* appropriate JOSE Header.
|
|
7
|
+
* Sets key management inputs such as ECDH-ES "apu"/"apv" or PBES2 "p2c". Use this method instead
|
|
8
|
+
* of header setters; the resulting parameters are added to the JOSE header. May only be called
|
|
9
|
+
* once.
|
|
11
10
|
*/
|
|
12
11
|
setKeyManagementParameters(parameters: t.JWEKeyManagementHeaderParameters): Recipient;
|
|
13
12
|
/**
|
|
14
|
-
*
|
|
15
|
-
* {@link GeneralEncrypt} instance.
|
|
13
|
+
* Adds another recipient to the enclosing {@link GeneralEncrypt} and returns its configuration.
|
|
16
14
|
*
|
|
17
|
-
* @param key Public
|
|
18
|
-
*
|
|
15
|
+
* @param key Public key or shared secret. See
|
|
16
|
+
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
19
17
|
*/
|
|
20
18
|
addRecipient(key: t.KeyInput, options?: t.CritOption): Recipient;
|
|
21
19
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* {@link addRecipient}.
|
|
20
|
+
* Encrypts for all recipients on the enclosing {@link GeneralEncrypt}, using their configured
|
|
21
|
+
* keys.
|
|
25
22
|
*/
|
|
26
23
|
encrypt(): Promise<t.GeneralJWE>;
|
|
27
|
-
/** Returns the enclosing {@link GeneralEncrypt} instance */
|
|
24
|
+
/** Returns the enclosing {@link GeneralEncrypt} instance. */
|
|
28
25
|
done(): GeneralEncrypt;
|
|
29
26
|
}
|
|
30
27
|
/** Builds and encrypts General JWE objects. */
|
|
31
28
|
export declare class GeneralEncrypt {
|
|
32
29
|
#private;
|
|
33
30
|
/**
|
|
34
|
-
*
|
|
31
|
+
* Creates a General JWE encryptor.
|
|
35
32
|
*
|
|
36
33
|
* @param plaintext Binary representation of the plaintext to encrypt.
|
|
37
34
|
*/
|
|
38
35
|
constructor(plaintext: Uint8Array);
|
|
39
36
|
/**
|
|
40
|
-
* Adds
|
|
37
|
+
* Adds a recipient and returns its configuration.
|
|
41
38
|
*
|
|
42
|
-
* @param key Public
|
|
43
|
-
*
|
|
39
|
+
* @param key Public key or shared secret. See
|
|
40
|
+
* {@link https://github.com/panva/jose/issues/210#jwe-alg Algorithm Key Requirements}.
|
|
44
41
|
*/
|
|
45
42
|
addRecipient(key: t.KeyInput, options?: t.CritOption): Recipient;
|
|
46
|
-
/** Sets the JWE Protected Header
|
|
43
|
+
/** Sets the JWE Protected Header. May only be called once. */
|
|
47
44
|
setProtectedHeader(protectedHeader: t.JWEHeaderParameters): this;
|
|
48
|
-
/** Sets the JWE Shared Unprotected Header
|
|
45
|
+
/** Sets the JWE Shared Unprotected Header. May only be called once. */
|
|
49
46
|
setSharedUnprotectedHeader(sharedUnprotectedHeader: t.JWEHeaderParameters): this;
|
|
50
|
-
/** Sets
|
|
47
|
+
/** Sets additional data to authenticate without encrypting it. */
|
|
51
48
|
setAdditionalAuthenticatedData(aad: Uint8Array): this;
|
|
52
|
-
/** Encrypts
|
|
49
|
+
/** Encrypts the plaintext as a General JWE. */
|
|
53
50
|
encrypt(): Promise<t.GeneralJWE>;
|
|
54
51
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type * as t from '../types.d.ts';
|
|
2
2
|
/**
|
|
3
|
-
* Resolves a verification key from an embedded "jwk" (JSON Web Key) Header Parameter.
|
|
3
|
+
* Resolves a verification key from an embedded "jwk" (JSON Web Key) Header Parameter. This key
|
|
4
|
+
* resolver opts JWS and JWT verification into trusting a public key supplied by the token. Use the
|
|
5
|
+
* verification function's `algorithms` option to restrict accepted algorithms.
|
|
4
6
|
*
|
|
5
7
|
* @param token The consumed JWS token.
|
|
6
8
|
* @returns The public key from the JWS "jwk" (JSON Web Key) Header Parameter.
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type * as t from '../types.d.ts';
|
|
2
2
|
/**
|
|
3
|
-
* Calculates a base64url-encoded
|
|
3
|
+
* Calculates a base64url-encoded JWK Thumbprint. CryptoKey inputs must be extractable.
|
|
4
4
|
*
|
|
5
5
|
* @param key Key to calculate the thumbprint for.
|
|
6
|
-
* @param digestAlgorithm Digest
|
|
7
|
-
* "sha256".
|
|
6
|
+
* @param digestAlgorithm Digest algorithm. Defaults to "sha256".
|
|
8
7
|
*/
|
|
9
8
|
export declare function calculateJwkThumbprint(key: t.JWK | t.CryptoKey | t.KeyObject, digestAlgorithm?: 'sha256' | 'sha384' | 'sha512'): Promise<string>;
|
|
10
9
|
/**
|
|
11
|
-
* Calculates a
|
|
10
|
+
* Calculates a JWK Thumbprint URI. CryptoKey inputs must be extractable.
|
|
12
11
|
*
|
|
13
12
|
* @param key Key to calculate the thumbprint for.
|
|
14
|
-
* @param digestAlgorithm Digest
|
|
15
|
-
* "sha256".
|
|
13
|
+
* @param digestAlgorithm Digest algorithm. Defaults to "sha256".
|
|
16
14
|
*/
|
|
17
15
|
export declare function calculateJwkThumbprintUri(key: t.CryptoKey | t.KeyObject | t.JWK, digestAlgorithm?: 'sha256' | 'sha384' | 'sha512'): Promise<string>;
|
|
@@ -2,14 +2,15 @@ import type * as t from '../types.d.ts';
|
|
|
2
2
|
/** A key resolver created by {@link createLocalJWKSet}. */
|
|
3
3
|
export interface LocalJWKSet {
|
|
4
4
|
(protectedHeader?: t.JWSHeaderParameters, token?: t.FlattenedJWSInput): Promise<t.CryptoKey>;
|
|
5
|
-
/** Returns a structured clone of the JSON Web Key Set
|
|
5
|
+
/** Returns a structured clone of the original JSON Web Key Set. */
|
|
6
6
|
jwks: () => t.JSONWebKeySet;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
* Creates a resolver for a locally available JSON Web Key Set.
|
|
9
|
+
* Creates a resolver for a locally available JSON Web Key Set. Selection uses the header's "alg"
|
|
10
|
+
* (Algorithm) and "kid" (Key ID), and respects the JWK's "use" (Public Key Use) and "key_ops" (Key
|
|
11
|
+
* Operations). Exactly one key must match.
|
|
10
12
|
*
|
|
11
|
-
* > Note:
|
|
12
|
-
* > for public encryption keys.
|
|
13
|
+
* > Note: Only public signature verification keys are supported, not public encryption keys.
|
|
13
14
|
*
|
|
14
15
|
* @param jwks JSON Web Key Set formatted object.
|
|
15
16
|
*/
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import type * as t from '../types.d.ts';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Configures a custom fetch implementation for remote JWKS retrieval.
|
|
4
4
|
*
|
|
5
|
-
* > Note:
|
|
6
|
-
* >
|
|
5
|
+
* > Note: Fetch-like libraries may have incompatible TypeScript signatures even when they accept the
|
|
6
|
+
* > supplied arguments at runtime.
|
|
7
7
|
*/
|
|
8
8
|
export declare const customFetch: unique symbol;
|
|
9
|
-
/**
|
|
9
|
+
/** Custom fetch function. Must return HTTP 200 with a JSON JWKS. See {@link customFetch}. */
|
|
10
10
|
export type FetchImplementation = (
|
|
11
|
-
/** URL
|
|
11
|
+
/** JWKS URL, passed as the fetch resource. */
|
|
12
12
|
url: string,
|
|
13
|
-
/** Options
|
|
13
|
+
/** Options passed to fetch. */
|
|
14
14
|
options: {
|
|
15
|
-
/** HTTP Headers */
|
|
16
15
|
headers: Headers;
|
|
17
|
-
/** The {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods request method} */
|
|
18
16
|
method: 'GET';
|
|
19
17
|
/** See {@link !Request.redirect} */
|
|
20
18
|
redirect: 'manual';
|
|
@@ -23,9 +21,8 @@ options: {
|
|
|
23
21
|
/**
|
|
24
22
|
* Symbol used to configure an externally persisted remote JWKS cache.
|
|
25
23
|
*
|
|
26
|
-
* > Warning:
|
|
27
|
-
* >
|
|
28
|
-
* > code.
|
|
24
|
+
* > Warning: Only trusted application code must be allowed to write this cache; its keys are trusted for
|
|
25
|
+
* > signature verification.
|
|
29
26
|
*/
|
|
30
27
|
export declare const jwksCache: unique symbol;
|
|
31
28
|
/** Remote JWKS resolver options. */
|
|
@@ -36,13 +33,13 @@ export interface RemoteJWKSetOptions {
|
|
|
36
33
|
*/
|
|
37
34
|
timeoutDuration?: number;
|
|
38
35
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
36
|
+
* Time in milliseconds after a successful fetch before a missing key can trigger another fetch.
|
|
37
|
+
* Must not be `NaN`. Defaults to 30000 (30 seconds).
|
|
41
38
|
*/
|
|
42
39
|
cooldownDuration?: number;
|
|
43
40
|
/**
|
|
44
|
-
* Maximum
|
|
45
|
-
*
|
|
41
|
+
* Maximum age of cached keys in milliseconds. Defaults to 600000 (10 minutes); `Infinity`
|
|
42
|
+
* disables expiry. Must not be `NaN`.
|
|
46
43
|
*/
|
|
47
44
|
cacheMaxAge?: number | typeof Infinity;
|
|
48
45
|
/** Headers to be sent with the HTTP request. */
|
|
@@ -56,7 +53,7 @@ export interface RemoteJWKSetOptions {
|
|
|
56
53
|
export interface ExportedJWKSCache {
|
|
57
54
|
/** Current cached JSON Web Key Set */
|
|
58
55
|
jwks: t.JSONWebKeySet;
|
|
59
|
-
/** Last
|
|
56
|
+
/** Last successful fetch, in milliseconds since Unix epoch. */
|
|
60
57
|
uat: number;
|
|
61
58
|
}
|
|
62
59
|
/** Values accepted by the {@link jwksCache} option. */
|
|
@@ -79,16 +76,18 @@ export interface RemoteJWKSet {
|
|
|
79
76
|
*/
|
|
80
77
|
reload: () => Promise<void>;
|
|
81
78
|
/**
|
|
82
|
-
*
|
|
83
|
-
* {@link jwksCache}
|
|
79
|
+
* Returns a structured clone of the cached JSON Web Key Set, or `undefined` before keys have been
|
|
80
|
+
* fetched or seeded via {@link jwksCache}.
|
|
84
81
|
*/
|
|
85
82
|
jwks: () => t.JSONWebKeySet | undefined;
|
|
86
83
|
}
|
|
87
84
|
/**
|
|
88
|
-
* Creates a resolver for a JSON Web Key Set available at an HTTP(S) URL.
|
|
85
|
+
* Creates a resolver for a JSON Web Key Set available at an HTTP(S) URL. Fetches the JSON Web Key
|
|
86
|
+
* Set when the cache is missing or stale. An unmatched key triggers another fetch only when
|
|
87
|
+
* `cooldownDuration` has elapsed since the last successful fetch. Selection uses the header's "alg"
|
|
88
|
+
* and "kid" and respects the JWK's "use" and "key_ops". Exactly one key must match.
|
|
89
89
|
*
|
|
90
|
-
* > Note:
|
|
91
|
-
* > for public encryption keys.
|
|
90
|
+
* > Note: Only public signature verification keys are supported, not public encryption keys.
|
|
92
91
|
*
|
|
93
92
|
* @param url URL to fetch the JSON Web Key Set from.
|
|
94
93
|
*/
|
|
@@ -3,17 +3,17 @@ import type * as t from '../../types.d.ts';
|
|
|
3
3
|
export declare class CompactSign {
|
|
4
4
|
#private;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Creates a Compact JWS signer.
|
|
7
7
|
*
|
|
8
8
|
* @param payload Binary representation of the payload to sign.
|
|
9
9
|
*/
|
|
10
10
|
constructor(payload: Uint8Array);
|
|
11
|
-
/** Sets the JWS Protected Header
|
|
11
|
+
/** Sets the JWS Protected Header. May only be called once. */
|
|
12
12
|
setProtectedHeader(protectedHeader: t.CompactJWSHeaderParameters): this;
|
|
13
13
|
/**
|
|
14
|
-
* Signs
|
|
14
|
+
* Signs the payload as a Compact JWS.
|
|
15
15
|
*
|
|
16
|
-
* @param key Private
|
|
16
|
+
* @param key Private key or shared secret. See
|
|
17
17
|
* {@link https://github.com/panva/jose/issues/210#jws-alg Algorithm Key Requirements}.
|
|
18
18
|
*/
|
|
19
19
|
sign(key: t.KeyInput, options?: t.SignOptions): Promise<string>;
|