@fedify/fedify 1.6.0-dev.778 → 1.6.0-dev.790
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/CHANGES.md +17 -0
- package/CONTRIBUTING.md +7 -0
- package/README.md +1 -1
- package/SPONSORS.md +1 -1
- package/esm/deno.js +3 -1
- package/esm/deps/jsr.io/@std/crypto/1.0.4/timing_safe_equal.js +55 -0
- package/esm/federation/middleware.js +26 -1
- package/esm/federation/send.js +6 -7
- package/esm/runtime/docloader.js +4 -16
- package/esm/sig/http.js +528 -9
- package/esm/sig/key.js +4 -1
- package/esm/testing/fixtures/remote.domain/users/bob +20 -0
- package/esm/vocab/vocab.js +308 -176
- package/package.json +2 -1
- package/types/deno.d.ts +2 -0
- package/types/deps/jsr.io/@std/crypto/1.0.4/timing_safe_equal.d.ts +34 -0
- package/types/deps/jsr.io/@std/crypto/1.0.4/timing_safe_equal.d.ts.map +1 -0
- package/types/federation/middleware.d.ts +21 -3
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/federation/send.d.ts +6 -0
- package/types/federation/send.d.ts.map +1 -1
- package/types/runtime/docloader.d.ts +17 -1
- package/types/runtime/docloader.d.ts.map +1 -1
- package/types/sig/http.d.ts +128 -0
- package/types/sig/http.d.ts.map +1 -1
- package/types/sig/key.d.ts.map +1 -1
- package/types/sig/mod.d.ts +1 -1
- package/types/sig/mod.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/bytes/1.0.5/copy.js +0 -50
- package/esm/deps/jsr.io/@std/bytes/1.0.5/ends_with.js +0 -36
- package/esm/deps/jsr.io/@std/bytes/1.0.5/equals.js +0 -82
- package/esm/deps/jsr.io/@std/bytes/1.0.5/includes_needle.js +0 -42
- package/esm/deps/jsr.io/@std/bytes/1.0.5/index_of_needle.js +0 -68
- package/esm/deps/jsr.io/@std/bytes/1.0.5/last_index_of_needle.js +0 -65
- package/esm/deps/jsr.io/@std/bytes/1.0.5/mod.js +0 -34
- package/esm/deps/jsr.io/@std/bytes/1.0.5/repeat.js +0 -43
- package/esm/deps/jsr.io/@std/bytes/1.0.5/starts_with.js +0 -34
- package/types/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts +0 -41
- package/types/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/ends_with.d.ts +0 -24
- package/types/deps/jsr.io/@std/bytes/1.0.5/ends_with.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/equals.d.ts +0 -22
- package/types/deps/jsr.io/@std/bytes/1.0.5/equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/includes_needle.d.ts +0 -38
- package/types/deps/jsr.io/@std/bytes/1.0.5/includes_needle.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/index_of_needle.d.ts +0 -45
- package/types/deps/jsr.io/@std/bytes/1.0.5/index_of_needle.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/last_index_of_needle.d.ts +0 -42
- package/types/deps/jsr.io/@std/bytes/1.0.5/last_index_of_needle.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/mod.d.ts +0 -33
- package/types/deps/jsr.io/@std/bytes/1.0.5/mod.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/repeat.d.ts +0 -33
- package/types/deps/jsr.io/@std/bytes/1.0.5/repeat.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/bytes/1.0.5/starts_with.d.ts +0 -24
- package/types/deps/jsr.io/@std/bytes/1.0.5/starts_with.d.ts.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fedify/fedify",
|
3
|
-
"version": "1.6.0-dev.
|
3
|
+
"version": "1.6.0-dev.790+3f8325df",
|
4
4
|
"description": "An ActivityPub server framework",
|
5
5
|
"keywords": [
|
6
6
|
"ActivityPub",
|
@@ -105,6 +105,7 @@
|
|
105
105
|
"jsonld": "^8.3.2",
|
106
106
|
"multicodec": "^3.2.1",
|
107
107
|
"pkijs": "^3.2.4",
|
108
|
+
"structured-field-values": "^2.0.4",
|
108
109
|
"uri-template-router": "^0.0.17",
|
109
110
|
"url-template": "^3.1.1",
|
110
111
|
"@deno/shim-deno": "~0.18.0",
|
package/types/deno.d.ts
CHANGED
@@ -29,6 +29,7 @@ declare namespace _default {
|
|
29
29
|
"@std/async": string;
|
30
30
|
"@std/bytes": string;
|
31
31
|
"@std/collections": string;
|
32
|
+
"@std/crypto": string;
|
32
33
|
"@std/encoding": string;
|
33
34
|
"@std/http": string;
|
34
35
|
"@std/testing": string;
|
@@ -42,6 +43,7 @@ declare namespace _default {
|
|
42
43
|
mock_fetch: string;
|
43
44
|
multicodec: string;
|
44
45
|
pkijs: string;
|
46
|
+
"structured-field-values": string;
|
45
47
|
"uri-template-router": string;
|
46
48
|
"url-template": string;
|
47
49
|
};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* When checking the values of cryptographic hashes are equal, default
|
3
|
+
* comparisons can be susceptible to timing based attacks, where attacker is
|
4
|
+
* able to find out information about the host system by repeatedly checking
|
5
|
+
* response times to equality comparisons of values.
|
6
|
+
*
|
7
|
+
* It is likely some form of timing safe equality will make its way to the
|
8
|
+
* WebCrypto standard (see:
|
9
|
+
* {@link https://github.com/w3c/webcrypto/issues/270 | w3c/webcrypto#270}), but until
|
10
|
+
* that time, `timingSafeEqual()` is provided:
|
11
|
+
*
|
12
|
+
* @example Usage
|
13
|
+
* ```ts
|
14
|
+
* import { timingSafeEqual } from "@std/crypto/timing-safe-equal";
|
15
|
+
* import { assert } from "@std/assert";
|
16
|
+
*
|
17
|
+
* const a = await crypto.subtle.digest(
|
18
|
+
* "SHA-384",
|
19
|
+
* new TextEncoder().encode("hello world"),
|
20
|
+
* );
|
21
|
+
* const b = await crypto.subtle.digest(
|
22
|
+
* "SHA-384",
|
23
|
+
* new TextEncoder().encode("hello world"),
|
24
|
+
* );
|
25
|
+
*
|
26
|
+
* assert(timingSafeEqual(a, b));
|
27
|
+
* ```
|
28
|
+
*
|
29
|
+
* @param a The first value to compare.
|
30
|
+
* @param b The second value to compare.
|
31
|
+
* @returns `true` if the values are equal, otherwise `false`.
|
32
|
+
*/
|
33
|
+
export declare function timingSafeEqual(a: ArrayBufferView | ArrayBufferLike | DataView, b: ArrayBufferView | ArrayBufferLike | DataView): boolean;
|
34
|
+
//# sourceMappingURL=timing_safe_equal.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"timing_safe_equal.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/crypto/1.0.4/timing_safe_equal.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,QAAQ,EAC/C,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,QAAQ,GAC9C,OAAO,CAWT"}
|
@@ -4,6 +4,7 @@ import type { ActivityTransformer } from "../compat/types.js";
|
|
4
4
|
import { type GetNodeInfoOptions } from "../nodeinfo/client.js";
|
5
5
|
import type { JsonValue, NodeInfo } from "../nodeinfo/types.js";
|
6
6
|
import { type AuthenticatedDocumentLoaderFactory, type DocumentLoader, type DocumentLoaderFactory, type GetUserAgentOptions } from "../runtime/docloader.js";
|
7
|
+
import { type HttpMessageSignaturesSpec, type HttpMessageSignaturesSpecDeterminer } from "../sig/http.js";
|
7
8
|
import type { Recipient } from "../vocab/actor.js";
|
8
9
|
import { type LookupObjectOptions, type TraverseCollectionOptions } from "../vocab/lookup.js";
|
9
10
|
import { Activity, type Collection, type Link, type Object } from "../vocab/vocab.js";
|
@@ -54,20 +55,29 @@ export interface FederationQueueOptions {
|
|
54
55
|
export interface FederationKvPrefixes {
|
55
56
|
/**
|
56
57
|
* The key prefix used for storing whether activities have already been
|
57
|
-
* processed or not.
|
58
|
+
* processed or not.
|
59
|
+
* @default `["_fedify", "activityIdempotence"]`
|
58
60
|
*/
|
59
61
|
activityIdempotence: KvKey;
|
60
62
|
/**
|
61
63
|
* The key prefix used for storing remote JSON-LD documents.
|
62
|
-
* `["_fedify", "remoteDocument"]`
|
64
|
+
* @default `["_fedify", "remoteDocument"]`
|
63
65
|
*/
|
64
66
|
remoteDocument: KvKey;
|
65
67
|
/**
|
66
68
|
* The key prefix used for caching public keys.
|
67
|
-
* `["_fedify", "publicKey"]`
|
69
|
+
* @default `["_fedify", "publicKey"]`
|
68
70
|
* @since 0.12.0
|
69
71
|
*/
|
70
72
|
publicKey: KvKey;
|
73
|
+
/**
|
74
|
+
* The key prefix used for caching HTTP Message Signatures specs.
|
75
|
+
* The cached spec is used to reduce the number of requests to make signed
|
76
|
+
* requests ("double-knocking" technique).
|
77
|
+
* @default `["_fedify", "httpMessageSignaturesSpec"]`
|
78
|
+
* @since 1.6.0
|
79
|
+
*/
|
80
|
+
httpMessageSignaturesSpec: KvKey;
|
71
81
|
}
|
72
82
|
/**
|
73
83
|
* Options for {@link CreateFederationOptions.origin} when it is not a string.
|
@@ -240,5 +250,13 @@ interface SendActivityInternalOptions<TContextData> {
|
|
240
250
|
collectionSync?: string;
|
241
251
|
context: Context<TContextData>;
|
242
252
|
}
|
253
|
+
export declare class KvSpecDeterminer implements HttpMessageSignaturesSpecDeterminer {
|
254
|
+
kv: KvStore;
|
255
|
+
prefix: KvKey;
|
256
|
+
defaultSpec: HttpMessageSignaturesSpec;
|
257
|
+
constructor(kv: KvStore, prefix: KvKey, defaultSpec?: HttpMessageSignaturesSpec);
|
258
|
+
determineSpec(origin: string): Promise<HttpMessageSignaturesSpec>;
|
259
|
+
rememberSpec(origin: string, spec: HttpMessageSignaturesSpec): Promise<void>;
|
260
|
+
}
|
243
261
|
export {};
|
244
262
|
//# sourceMappingURL=middleware.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAGL,KAAK,IAAI,EAIT,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAI1B,KAAK,mBAAmB,EAEzB,MAAM,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { type TracerProvider } from "@opentelemetry/api";
|
3
|
+
import { type HttpMessageSignaturesSpecDeterminer } from "../sig/http.js";
|
3
4
|
import type { Recipient } from "../vocab/actor.js";
|
4
5
|
/**
|
5
6
|
* Parameters for {@link extractInboxes}.
|
@@ -84,6 +85,11 @@ export interface SendActivityParameters {
|
|
84
85
|
* Additional headers to include in the request.
|
85
86
|
*/
|
86
87
|
headers?: Headers;
|
88
|
+
/**
|
89
|
+
* The spec determiner to use for signing requests with double-knocking.
|
90
|
+
* @since 1.6.0
|
91
|
+
*/
|
92
|
+
specDeterminer?: HttpMessageSignaturesSpecDeterminer;
|
87
93
|
/**
|
88
94
|
* The tracer provider for tracing the request.
|
89
95
|
* If omitted, the global tracer provider is used.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/federation/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/federation/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAAE,wBAAwB,GAC3E,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CA0BjE;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,IAAI,EAAE,aAAa,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,mCAAmC,CAAC;IAErD;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
|
+
import type { TracerProvider } from "@opentelemetry/api";
|
2
3
|
import type { KvKey, KvStore } from "../federation/kv.js";
|
4
|
+
import { type HttpMessageSignaturesSpecDeterminer } from "../sig/http.js";
|
3
5
|
/**
|
4
6
|
* A remote JSON-LD document and its context fetched by
|
5
7
|
* a {@link DocumentLoader}.
|
@@ -134,6 +136,20 @@ export declare function fetchDocumentLoader(url: string, allowPrivateAddress?: b
|
|
134
136
|
* @since 1.3.0
|
135
137
|
*/
|
136
138
|
export interface GetAuthenticatedDocumentLoaderOptions extends DocumentLoaderFactoryOptions {
|
139
|
+
/**
|
140
|
+
* An optional spec determiner for HTTP Message Signatures.
|
141
|
+
* It determines the spec to use for signing requests.
|
142
|
+
* It is used for double-knocking
|
143
|
+
* (see <https://swicg.github.io/activitypub-http-signature/#how-to-upgrade-supported-versions>).
|
144
|
+
* @since 1.6.0
|
145
|
+
*/
|
146
|
+
specDeterminer?: HttpMessageSignaturesSpecDeterminer;
|
147
|
+
/**
|
148
|
+
* The OpenTelemetry tracer provider. If omitted, the global tracer provider
|
149
|
+
* is used.
|
150
|
+
* @since 1.6.0
|
151
|
+
*/
|
152
|
+
tracerProvider?: TracerProvider;
|
137
153
|
}
|
138
154
|
/**
|
139
155
|
* Gets an authenticated {@link DocumentLoader} for the given identity.
|
@@ -149,7 +165,7 @@ export interface GetAuthenticatedDocumentLoaderOptions extends DocumentLoaderFac
|
|
149
165
|
export declare function getAuthenticatedDocumentLoader(identity: {
|
150
166
|
keyId: URL;
|
151
167
|
privateKey: dntShim.CryptoKey;
|
152
|
-
}, { allowPrivateAddress, userAgent }?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
|
168
|
+
}, { allowPrivateAddress, userAgent, specDeterminer, tracerProvider }?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
|
153
169
|
/**
|
154
170
|
* The parameters for {@link kvCache} function.
|
155
171
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"docloader.d.ts","sourceRoot":"","sources":["../../src/runtime/docloader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"docloader.d.ts","sourceRoot":"","sources":["../../src/runtime/docloader.ts"],"names":[],"mappings":"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"}
|
package/types/sig/http.d.ts
CHANGED
@@ -3,11 +3,38 @@ import { type TracerProvider } from "@opentelemetry/api";
|
|
3
3
|
import type { DocumentLoader } from "../runtime/docloader.js";
|
4
4
|
import { CryptographicKey } from "../vocab/vocab.js";
|
5
5
|
import { type KeyCache } from "./key.js";
|
6
|
+
/**
|
7
|
+
* The standard to use for signing and verifying HTTP signatures.
|
8
|
+
* @since 1.6.0
|
9
|
+
*/
|
10
|
+
export type HttpMessageSignaturesSpec =
|
11
|
+
/**
|
12
|
+
* The Signing HTTP Messages (draft-cavage-http-signatures-12) specification,
|
13
|
+
* which is widely adopted and used in the fediverse (as of May 2025).
|
14
|
+
*/
|
15
|
+
"draft-cavage-http-signatures-12"
|
16
|
+
/**
|
17
|
+
* The HTTP Message Signatures (RFC 9421) specification, which is the
|
18
|
+
* finalized standard but not widely adopted yet (as of May 2025).
|
19
|
+
*/
|
20
|
+
| "rfc9421";
|
6
21
|
/**
|
7
22
|
* Options for {@link signRequest}.
|
8
23
|
* @since 1.3.0
|
9
24
|
*/
|
10
25
|
export interface SignRequestOptions {
|
26
|
+
/**
|
27
|
+
* The HTTP message signatures specification to use for signing.
|
28
|
+
* @default `"draft-cavage-http-signatures-12"`
|
29
|
+
* @since 1.6.0
|
30
|
+
*/
|
31
|
+
spec?: HttpMessageSignaturesSpec;
|
32
|
+
/**
|
33
|
+
* The current time. If not specified, the current time is used. This is
|
34
|
+
* useful for testing.
|
35
|
+
* @since 1.6.0
|
36
|
+
*/
|
37
|
+
currentTime?: dntShim.Temporal.Instant;
|
11
38
|
/**
|
12
39
|
* The OpenTelemetry tracer provider. If omitted, the global tracer provider
|
13
40
|
* is used.
|
@@ -24,6 +51,46 @@ export interface SignRequestOptions {
|
|
24
51
|
* @throws {TypeError} If the private key is invalid or unsupported.
|
25
52
|
*/
|
26
53
|
export declare function signRequest(request: Request, privateKey: dntShim.CryptoKey, keyId: URL, options?: SignRequestOptions): Promise<Request>;
|
54
|
+
export interface Rfc9421SignatureParameters {
|
55
|
+
algorithm: string;
|
56
|
+
keyId: URL;
|
57
|
+
created: number;
|
58
|
+
}
|
59
|
+
export declare function formatRfc9421SignatureParameters(params: Rfc9421SignatureParameters): string;
|
60
|
+
/**
|
61
|
+
* Creates a signature base for a request according to RFC 9421.
|
62
|
+
* @param request The request to create a signature base for.
|
63
|
+
* @param components The components to include in the signature base.
|
64
|
+
* @param parameters The signature parameters to include in the signature base.
|
65
|
+
* @returns The signature base as a string.
|
66
|
+
*/
|
67
|
+
export declare function createRfc9421SignatureBase(request: Request, components: string[], parameters: string): string;
|
68
|
+
/**
|
69
|
+
* Formats a signature using rfc9421 format.
|
70
|
+
* @param signature The raw signature bytes.
|
71
|
+
* @param components The components that were signed.
|
72
|
+
* @param parameters The signature parameters.
|
73
|
+
* @returns The formatted signature string.
|
74
|
+
*/
|
75
|
+
export declare function formatRfc9421Signature(signature: ArrayBuffer | Uint8Array, components: string[], parameters: string): [string, string];
|
76
|
+
/**
|
77
|
+
* Parse RFC 9421 Signature-Input header.
|
78
|
+
* @param signatureInput The Signature-Input header value.
|
79
|
+
* @returns Parsed signature input parameters.
|
80
|
+
*/
|
81
|
+
export declare function parseRfc9421SignatureInput(signatureInput: string): Record<string, {
|
82
|
+
keyId: string;
|
83
|
+
alg?: string;
|
84
|
+
created: number;
|
85
|
+
components: string[];
|
86
|
+
parameters: string;
|
87
|
+
}>;
|
88
|
+
/**
|
89
|
+
* Parse RFC 9421 Signature header.
|
90
|
+
* @param signature The Signature header value.
|
91
|
+
* @returns Parsed signature values.
|
92
|
+
*/
|
93
|
+
export declare function parseRfc9421Signature(signature: string): Record<string, Uint8Array>;
|
27
94
|
/**
|
28
95
|
* Options for {@link verifyRequest}.
|
29
96
|
*/
|
@@ -54,6 +121,12 @@ export interface VerifyRequestOptions {
|
|
54
121
|
* @since 0.12.0
|
55
122
|
*/
|
56
123
|
keyCache?: KeyCache;
|
124
|
+
/**
|
125
|
+
* The HTTP message signatures specification to use for verifying.
|
126
|
+
* @default `"draft-cavage-http-signatures-12"`
|
127
|
+
* @since 1.6.0
|
128
|
+
*/
|
129
|
+
spec?: HttpMessageSignaturesSpec;
|
57
130
|
/**
|
58
131
|
* The OpenTelemetry tracer provider. If omitted, the global tracer provider
|
59
132
|
* is used.
|
@@ -75,4 +148,59 @@ export interface VerifyRequestOptions {
|
|
75
148
|
* could not be verified.
|
76
149
|
*/
|
77
150
|
export declare function verifyRequest(request: Request, options?: VerifyRequestOptions): Promise<CryptographicKey | null>;
|
151
|
+
/**
|
152
|
+
* A spec determiner for HTTP Message Signatures.
|
153
|
+
* It determines the spec to use for signing requests.
|
154
|
+
* It is used for double-knocking
|
155
|
+
* (see <https://swicg.github.io/activitypub-http-signature/#how-to-upgrade-supported-versions>).
|
156
|
+
* @since 1.6.0
|
157
|
+
*/
|
158
|
+
export interface HttpMessageSignaturesSpecDeterminer {
|
159
|
+
/**
|
160
|
+
* Determines the spec to use for signing requests.
|
161
|
+
* @param origin The origin of the URL to make the request to.
|
162
|
+
* @returns The spec to use for signing requests.
|
163
|
+
*/
|
164
|
+
determineSpec(origin: string): HttpMessageSignaturesSpec | Promise<HttpMessageSignaturesSpec>;
|
165
|
+
/**
|
166
|
+
* Remembers the successfully used spec for the given origin.
|
167
|
+
* @param origin The origin of the URL that was requested.
|
168
|
+
* @param spec The spec to remember.
|
169
|
+
*/
|
170
|
+
rememberSpec(origin: string, spec: HttpMessageSignaturesSpec): void | Promise<void>;
|
171
|
+
}
|
172
|
+
/**
|
173
|
+
* The options for double-knock requests.
|
174
|
+
* @since 1.6.0
|
175
|
+
*/
|
176
|
+
export interface DoubleKnockOptions {
|
177
|
+
/**
|
178
|
+
* The spec determiner to use for signing requests with double-knocking.
|
179
|
+
*/
|
180
|
+
specDeterminer?: HttpMessageSignaturesSpecDeterminer;
|
181
|
+
/**
|
182
|
+
* The logging function to use for logging the request.
|
183
|
+
* @param request The request to log.
|
184
|
+
*/
|
185
|
+
log?: (request: Request) => void;
|
186
|
+
/**
|
187
|
+
* The OpenTelemetry tracer provider. If omitted, the global tracer provider
|
188
|
+
* is used.
|
189
|
+
*/
|
190
|
+
tracerProvider?: TracerProvider;
|
191
|
+
}
|
192
|
+
/**
|
193
|
+
* Performs a double-knock request to the given URL. For the details of
|
194
|
+
* double-knocking, see
|
195
|
+
* <https://swicg.github.io/activitypub-http-signature/#how-to-upgrade-supported-versions>.
|
196
|
+
* @param request The request to send.
|
197
|
+
* @param identity The identity to use for signing the request.
|
198
|
+
* @param options The options for double-knock requests.
|
199
|
+
* @returns The response to the request.
|
200
|
+
* @since 1.6.0
|
201
|
+
*/
|
202
|
+
export declare function doubleKnock(request: Request, identity: {
|
203
|
+
keyId: URL;
|
204
|
+
privateKey: dntShim.CryptoKey;
|
205
|
+
}, options?: DoubleKnockOptions): Promise<Response>;
|
78
206
|
//# sourceMappingURL=http.d.ts.map
|
package/types/sig/http.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/sig/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/sig/http.ts"],"names":[],"mappings":"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"}
|
package/types/sig/key.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/sig/key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,KAAK,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAC1B,IAAI,CA2BN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAC1C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CA2BhC;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/sig/key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,KAAK,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAC1B,IAAI,CA2BN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAC1C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CA2BhC;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAKnF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,CAAC,UAAU,EACvB,IAAI,EAAE,QAAQ,GAAG,SAAS,GACzB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAuB5B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,gBAAgB,GAAG,QAAQ;IACnE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG;QAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,gBAAgB,GAAG,QAAQ,EAC5D,KAAK,EAAE,GAAG,GAAG,MAAM,EAEnB,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IACjC,UAAU,CACR,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QACP,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,aAAa,CAAC,EAAE,cAAc,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KACjC,GACA,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,EACD,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CA+B5B;AAsID;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IACH,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE"}
|
package/types/sig/mod.d.ts
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
*
|
4
4
|
* @module
|
5
5
|
*/
|
6
|
-
export { signRequest, type SignRequestOptions, verifyRequest, type VerifyRequestOptions, } from "./http.js";
|
6
|
+
export { type HttpMessageSignaturesSpec, type HttpMessageSignaturesSpecDeterminer, signRequest, type SignRequestOptions, verifyRequest, type VerifyRequestOptions, } from "./http.js";
|
7
7
|
export { exportJwk, fetchKey, type FetchKeyOptions, type FetchKeyResult, generateCryptoKeyPair, importJwk, type KeyCache, } from "./key.js";
|
8
8
|
export { attachSignature, createSignature, type CreateSignatureOptions, detachSignature, signJsonLd, type SignJsonLdOptions, verifyJsonLd, type VerifyJsonLdOptions, verifySignature, type VerifySignatureOptions, } from "./ld.js";
|
9
9
|
export { doesActorOwnKey, type DoesActorOwnKeyOptions, getKeyOwner, type GetKeyOwnerOptions, } from "./owner.js";
|
package/types/sig/mod.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/sig/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,qBAAqB,EACrB,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,eAAe,EACf,KAAK,sBAAsB,EAC3B,eAAe,EACf,UAAU,EACV,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,mBAAmB,EACxB,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC"}
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/sig/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,WAAW,EACX,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,qBAAqB,EACrB,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,eAAe,EACf,KAAK,sBAAsB,EAC3B,eAAe,EACf,UAAU,EACV,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,mBAAmB,EACxB,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC"}
|