@stoneforge/quarry 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -0
- package/README.md +160 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/quarry-api.d.ts +268 -0
- package/dist/api/quarry-api.d.ts.map +1 -0
- package/dist/api/quarry-api.js +3905 -0
- package/dist/api/quarry-api.js.map +1 -0
- package/dist/api/types.d.ts +1359 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +204 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bin/sf.d.ts +3 -0
- package/dist/bin/sf.d.ts.map +1 -0
- package/dist/bin/sf.js +9 -0
- package/dist/bin/sf.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +11 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +465 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/alias.d.ts +8 -0
- package/dist/cli/commands/alias.d.ts.map +1 -0
- package/dist/cli/commands/alias.js +70 -0
- package/dist/cli/commands/alias.js.map +1 -0
- package/dist/cli/commands/channel.d.ts +13 -0
- package/dist/cli/commands/channel.d.ts.map +1 -0
- package/dist/cli/commands/channel.js +680 -0
- package/dist/cli/commands/channel.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +8 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +87 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +242 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/crud.d.ts +64 -0
- package/dist/cli/commands/crud.d.ts.map +1 -0
- package/dist/cli/commands/crud.js +805 -0
- package/dist/cli/commands/crud.js.map +1 -0
- package/dist/cli/commands/dep.d.ts +16 -0
- package/dist/cli/commands/dep.d.ts.map +1 -0
- package/dist/cli/commands/dep.js +499 -0
- package/dist/cli/commands/dep.js.map +1 -0
- package/dist/cli/commands/document.d.ts +12 -0
- package/dist/cli/commands/document.d.ts.map +1 -0
- package/dist/cli/commands/document.js +1039 -0
- package/dist/cli/commands/document.js.map +1 -0
- package/dist/cli/commands/embeddings.d.ts +12 -0
- package/dist/cli/commands/embeddings.d.ts.map +1 -0
- package/dist/cli/commands/embeddings.js +273 -0
- package/dist/cli/commands/embeddings.js.map +1 -0
- package/dist/cli/commands/entity.d.ts +16 -0
- package/dist/cli/commands/entity.d.ts.map +1 -0
- package/dist/cli/commands/entity.js +522 -0
- package/dist/cli/commands/entity.js.map +1 -0
- package/dist/cli/commands/gc.d.ts +10 -0
- package/dist/cli/commands/gc.d.ts.map +1 -0
- package/dist/cli/commands/gc.js +257 -0
- package/dist/cli/commands/gc.js.map +1 -0
- package/dist/cli/commands/help.d.ts +11 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +169 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/history.d.ts +9 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +160 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/identity.d.ts +18 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +698 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts +20 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -0
- package/dist/cli/commands/inbox.js +493 -0
- package/dist/cli/commands/inbox.js.map +1 -0
- package/dist/cli/commands/init.d.ts +20 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +144 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +9 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +200 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/library.d.ts +12 -0
- package/dist/cli/commands/library.d.ts.map +1 -0
- package/dist/cli/commands/library.js +665 -0
- package/dist/cli/commands/library.js.map +1 -0
- package/dist/cli/commands/message.d.ts +11 -0
- package/dist/cli/commands/message.d.ts.map +1 -0
- package/dist/cli/commands/message.js +608 -0
- package/dist/cli/commands/message.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +17 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +698 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/playbook.d.ts +12 -0
- package/dist/cli/commands/playbook.d.ts.map +1 -0
- package/dist/cli/commands/playbook.js +730 -0
- package/dist/cli/commands/playbook.js.map +1 -0
- package/dist/cli/commands/reset.d.ts +12 -0
- package/dist/cli/commands/reset.d.ts.map +1 -0
- package/dist/cli/commands/reset.js +306 -0
- package/dist/cli/commands/reset.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +11 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +106 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +8 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +82 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +14 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +370 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/task.d.ts +25 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +1153 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/team.d.ts +13 -0
- package/dist/cli/commands/team.d.ts.map +1 -0
- package/dist/cli/commands/team.js +471 -0
- package/dist/cli/commands/team.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +16 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +753 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/completion.d.ts +28 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +295 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/db.d.ts +38 -0
- package/dist/cli/db.d.ts.map +1 -0
- package/dist/cli/db.js +90 -0
- package/dist/cli/db.js.map +1 -0
- package/dist/cli/formatter.d.ts +87 -0
- package/dist/cli/formatter.d.ts.map +1 -0
- package/dist/cli/formatter.js +464 -0
- package/dist/cli/formatter.js.map +1 -0
- package/dist/cli/index.d.ts +33 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parser.d.ts +45 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +256 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/plugin-loader.d.ts +39 -0
- package/dist/cli/plugin-loader.d.ts.map +1 -0
- package/dist/cli/plugin-loader.js +165 -0
- package/dist/cli/plugin-loader.js.map +1 -0
- package/dist/cli/plugin-registry.d.ts +50 -0
- package/dist/cli/plugin-registry.d.ts.map +1 -0
- package/dist/cli/plugin-registry.js +206 -0
- package/dist/cli/plugin-registry.js.map +1 -0
- package/dist/cli/plugin-types.d.ts +106 -0
- package/dist/cli/plugin-types.d.ts.map +1 -0
- package/dist/cli/plugin-types.js +103 -0
- package/dist/cli/plugin-types.js.map +1 -0
- package/dist/cli/runner.d.ts +35 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +340 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/suggest.d.ts +15 -0
- package/dist/cli/suggest.d.ts.map +1 -0
- package/dist/cli/suggest.js +49 -0
- package/dist/cli/suggest.js.map +1 -0
- package/dist/cli/types.d.ts +138 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +63 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/config/config.d.ts +86 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +348 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/defaults.d.ts +66 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +114 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/duration.d.ts +75 -0
- package/dist/config/duration.d.ts.map +1 -0
- package/dist/config/duration.js +190 -0
- package/dist/config/duration.js.map +1 -0
- package/dist/config/env.d.ts +67 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +207 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/file.d.ts +97 -0
- package/dist/config/file.d.ts.map +1 -0
- package/dist/config/file.js +365 -0
- package/dist/config/file.js.map +1 -0
- package/dist/config/index.d.ts +35 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge.d.ts +53 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +257 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +72 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +55 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +251 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/http/index.d.ts +8 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +12 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/sync-handlers.d.ts +162 -0
- package/dist/http/sync-handlers.d.ts.map +1 -0
- package/dist/http/sync-handlers.js +271 -0
- package/dist/http/sync-handlers.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +34 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +3329 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/static.d.ts +18 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +71 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/ws/broadcaster.d.ts +8 -0
- package/dist/server/ws/broadcaster.d.ts.map +1 -0
- package/dist/server/ws/broadcaster.js +7 -0
- package/dist/server/ws/broadcaster.js.map +1 -0
- package/dist/server/ws/handler.d.ts +55 -0
- package/dist/server/ws/handler.d.ts.map +1 -0
- package/dist/server/ws/handler.js +160 -0
- package/dist/server/ws/handler.js.map +1 -0
- package/dist/services/blocked-cache.d.ts +297 -0
- package/dist/services/blocked-cache.d.ts.map +1 -0
- package/dist/services/blocked-cache.js +755 -0
- package/dist/services/blocked-cache.js.map +1 -0
- package/dist/services/dependency.d.ts +205 -0
- package/dist/services/dependency.d.ts.map +1 -0
- package/dist/services/dependency.js +566 -0
- package/dist/services/dependency.js.map +1 -0
- package/dist/services/embeddings/fusion.d.ts +33 -0
- package/dist/services/embeddings/fusion.d.ts.map +1 -0
- package/dist/services/embeddings/fusion.js +34 -0
- package/dist/services/embeddings/fusion.js.map +1 -0
- package/dist/services/embeddings/index.d.ts +12 -0
- package/dist/services/embeddings/index.d.ts.map +1 -0
- package/dist/services/embeddings/index.js +10 -0
- package/dist/services/embeddings/index.js.map +1 -0
- package/dist/services/embeddings/local-provider.d.ts +31 -0
- package/dist/services/embeddings/local-provider.d.ts.map +1 -0
- package/dist/services/embeddings/local-provider.js +80 -0
- package/dist/services/embeddings/local-provider.js.map +1 -0
- package/dist/services/embeddings/service.d.ts +76 -0
- package/dist/services/embeddings/service.d.ts.map +1 -0
- package/dist/services/embeddings/service.js +153 -0
- package/dist/services/embeddings/service.js.map +1 -0
- package/dist/services/embeddings/types.d.ts +70 -0
- package/dist/services/embeddings/types.d.ts.map +1 -0
- package/dist/services/embeddings/types.js +8 -0
- package/dist/services/embeddings/types.js.map +1 -0
- package/dist/services/id-length-cache.d.ts +156 -0
- package/dist/services/id-length-cache.d.ts.map +1 -0
- package/dist/services/id-length-cache.js +197 -0
- package/dist/services/id-length-cache.js.map +1 -0
- package/dist/services/inbox.d.ts +147 -0
- package/dist/services/inbox.d.ts.map +1 -0
- package/dist/services/inbox.js +428 -0
- package/dist/services/inbox.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/priority-service.d.ts +145 -0
- package/dist/services/priority-service.d.ts.map +1 -0
- package/dist/services/priority-service.js +272 -0
- package/dist/services/priority-service.js.map +1 -0
- package/dist/services/search-utils.d.ts +47 -0
- package/dist/services/search-utils.d.ts.map +1 -0
- package/dist/services/search-utils.js +83 -0
- package/dist/services/search-utils.js.map +1 -0
- package/dist/sync/hash.d.ts +48 -0
- package/dist/sync/hash.d.ts.map +1 -0
- package/dist/sync/hash.js +136 -0
- package/dist/sync/hash.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +16 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/merge.d.ts +80 -0
- package/dist/sync/merge.d.ts.map +1 -0
- package/dist/sync/merge.js +310 -0
- package/dist/sync/merge.js.map +1 -0
- package/dist/sync/serialization.d.ts +132 -0
- package/dist/sync/serialization.d.ts.map +1 -0
- package/dist/sync/serialization.js +306 -0
- package/dist/sync/serialization.js.map +1 -0
- package/dist/sync/service.d.ts +102 -0
- package/dist/sync/service.d.ts.map +1 -0
- package/dist/sync/service.js +493 -0
- package/dist/sync/service.js.map +1 -0
- package/dist/sync/types.d.ts +275 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +76 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/systems/identity.d.ts +479 -0
- package/dist/systems/identity.d.ts.map +1 -0
- package/dist/systems/identity.js +817 -0
- package/dist/systems/identity.js.map +1 -0
- package/dist/systems/index.d.ts +8 -0
- package/dist/systems/index.d.ts.map +1 -0
- package/dist/systems/index.js +29 -0
- package/dist/systems/index.js.map +1 -0
- package/package.json +121 -0
- package/web/assets/charts-vendor-D1YcbGux.js +55 -0
- package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
- package/web/assets/editor-vendor-BxraAWts.js +279 -0
- package/web/assets/index-B77vv208.js +341 -0
- package/web/assets/index-CF_XnVLh.css +1 -0
- package/web/assets/router-vendor-BCKpRBrB.js +41 -0
- package/web/assets/ui-vendor-DUahGnbT.js +45 -0
- package/web/assets/utils-vendor-CfYKiENT.js +813 -0
- package/web/favicon.ico +0 -0
- package/web/index.html +23 -0
- package/web/logo.png +0 -0
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity System - Authentication and Signature Verification
|
|
3
|
+
*
|
|
4
|
+
* The identity system manages entity authentication and verification, supporting
|
|
5
|
+
* both soft (name-based) and cryptographic (key-based) identity models.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Identity mode configuration (soft, cryptographic, hybrid)
|
|
9
|
+
* - Ed25519 signature generation and verification
|
|
10
|
+
* - Signed request validation with time tolerance
|
|
11
|
+
* - Actor context management
|
|
12
|
+
*/
|
|
13
|
+
import { Timestamp } from '@stoneforge/core';
|
|
14
|
+
/**
|
|
15
|
+
* Identity mode determines the level of verification required
|
|
16
|
+
*/
|
|
17
|
+
export declare const IdentityMode: {
|
|
18
|
+
/** Name-based identity without verification (default) */
|
|
19
|
+
readonly SOFT: "soft";
|
|
20
|
+
/** Key-based identity with signature verification */
|
|
21
|
+
readonly CRYPTOGRAPHIC: "cryptographic";
|
|
22
|
+
/** Mixed mode - accepts both verified and unverified actors */
|
|
23
|
+
readonly HYBRID: "hybrid";
|
|
24
|
+
};
|
|
25
|
+
export type IdentityMode = (typeof IdentityMode)[keyof typeof IdentityMode];
|
|
26
|
+
/**
|
|
27
|
+
* Base64-encoded Ed25519 signature (88 characters for 64 bytes)
|
|
28
|
+
*/
|
|
29
|
+
declare const SignatureBrand: unique symbol;
|
|
30
|
+
export type Signature = string & {
|
|
31
|
+
readonly [SignatureBrand]: typeof SignatureBrand;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Base64-encoded Ed25519 public key (44 characters for 32 bytes)
|
|
35
|
+
*/
|
|
36
|
+
declare const PublicKeyBrand: unique symbol;
|
|
37
|
+
export type PublicKey = string & {
|
|
38
|
+
readonly [PublicKeyBrand]: typeof PublicKeyBrand;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Signed request fields included in cryptographic requests
|
|
42
|
+
*/
|
|
43
|
+
export interface SignedRequestFields {
|
|
44
|
+
/** Base64 Ed25519 signature */
|
|
45
|
+
readonly signature: Signature;
|
|
46
|
+
/** Timestamp when the request was signed (ISO 8601) */
|
|
47
|
+
readonly signedAt: Timestamp;
|
|
48
|
+
/** Entity name making the request */
|
|
49
|
+
readonly actor: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Input for signing a request
|
|
53
|
+
*/
|
|
54
|
+
export interface SigningInput {
|
|
55
|
+
/** Entity name making the request */
|
|
56
|
+
actor: string;
|
|
57
|
+
/** Hash of the request body (SHA256, hex encoded) */
|
|
58
|
+
requestHash: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Signed data format: actor|signedAt|requestHash
|
|
62
|
+
*/
|
|
63
|
+
export interface SignedData {
|
|
64
|
+
readonly actor: string;
|
|
65
|
+
readonly signedAt: Timestamp;
|
|
66
|
+
readonly requestHash: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Result of signature verification
|
|
70
|
+
*/
|
|
71
|
+
export declare const VerificationStatus: {
|
|
72
|
+
/** Signature is valid */
|
|
73
|
+
readonly VALID: "valid";
|
|
74
|
+
/** Signature is invalid or doesn't match */
|
|
75
|
+
readonly INVALID: "invalid";
|
|
76
|
+
/** Signature has expired (outside time tolerance) */
|
|
77
|
+
readonly EXPIRED: "expired";
|
|
78
|
+
/** Entity not found for verification */
|
|
79
|
+
readonly ACTOR_NOT_FOUND: "actor_not_found";
|
|
80
|
+
/** Entity has no public key */
|
|
81
|
+
readonly NO_PUBLIC_KEY: "no_public_key";
|
|
82
|
+
/** Signature was not provided */
|
|
83
|
+
readonly NOT_SIGNED: "not_signed";
|
|
84
|
+
};
|
|
85
|
+
export type VerificationStatus = (typeof VerificationStatus)[keyof typeof VerificationStatus];
|
|
86
|
+
/**
|
|
87
|
+
* Full verification result with details
|
|
88
|
+
*/
|
|
89
|
+
export interface VerificationResult {
|
|
90
|
+
/** Overall verification status */
|
|
91
|
+
readonly status: VerificationStatus;
|
|
92
|
+
/** Whether the request should be allowed */
|
|
93
|
+
readonly allowed: boolean;
|
|
94
|
+
/** Actor name if verified */
|
|
95
|
+
readonly actor?: string;
|
|
96
|
+
/** Error message if verification failed */
|
|
97
|
+
readonly error?: string;
|
|
98
|
+
/** Additional details about the verification */
|
|
99
|
+
readonly details?: {
|
|
100
|
+
/** How old the signature is in milliseconds */
|
|
101
|
+
signatureAgeMs?: number;
|
|
102
|
+
/** Whether the entity was found */
|
|
103
|
+
entityFound?: boolean;
|
|
104
|
+
/** Whether the entity has a public key */
|
|
105
|
+
hasPublicKey?: boolean;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Identity system configuration
|
|
110
|
+
*/
|
|
111
|
+
export interface IdentityConfig {
|
|
112
|
+
/** Identity verification mode */
|
|
113
|
+
mode: IdentityMode;
|
|
114
|
+
/** Time tolerance for signature expiry in milliseconds (default: 5 minutes) */
|
|
115
|
+
timeTolerance: number;
|
|
116
|
+
/** Whether to allow unregistered actors in soft mode */
|
|
117
|
+
allowUnregisteredActors: boolean;
|
|
118
|
+
}
|
|
119
|
+
/** Default time tolerance: 5 minutes in milliseconds */
|
|
120
|
+
export declare const DEFAULT_TIME_TOLERANCE: number;
|
|
121
|
+
/**
|
|
122
|
+
* Default identity configuration
|
|
123
|
+
*/
|
|
124
|
+
export declare const DEFAULT_IDENTITY_CONFIG: IdentityConfig;
|
|
125
|
+
/**
|
|
126
|
+
* Validates an identity mode value
|
|
127
|
+
*/
|
|
128
|
+
export declare function isValidIdentityMode(value: unknown): value is IdentityMode;
|
|
129
|
+
/**
|
|
130
|
+
* Validates identity mode and throws if invalid
|
|
131
|
+
*/
|
|
132
|
+
export declare function validateIdentityMode(value: unknown): IdentityMode;
|
|
133
|
+
/**
|
|
134
|
+
* Validates a base64-encoded Ed25519 public key format
|
|
135
|
+
*/
|
|
136
|
+
export declare function isValidPublicKey(value: unknown): value is PublicKey;
|
|
137
|
+
/**
|
|
138
|
+
* Validates a public key and throws if invalid format
|
|
139
|
+
*/
|
|
140
|
+
export declare function validatePublicKey(value: unknown): PublicKey;
|
|
141
|
+
/**
|
|
142
|
+
* Validates a base64-encoded Ed25519 signature format
|
|
143
|
+
*/
|
|
144
|
+
export declare function isValidSignature(value: unknown): value is Signature;
|
|
145
|
+
/**
|
|
146
|
+
* Validates a signature and throws if invalid format
|
|
147
|
+
*/
|
|
148
|
+
export declare function validateSignature(value: unknown): Signature;
|
|
149
|
+
/**
|
|
150
|
+
* Validates a request hash (SHA256 hex)
|
|
151
|
+
*/
|
|
152
|
+
export declare function isValidRequestHash(value: unknown): value is string;
|
|
153
|
+
/**
|
|
154
|
+
* Validates a request hash and throws if invalid
|
|
155
|
+
*/
|
|
156
|
+
export declare function validateRequestHash(value: unknown): string;
|
|
157
|
+
/**
|
|
158
|
+
* Validates time tolerance value
|
|
159
|
+
*/
|
|
160
|
+
export declare function isValidTimeTolerance(value: unknown): value is number;
|
|
161
|
+
/**
|
|
162
|
+
* Validates time tolerance and throws if invalid
|
|
163
|
+
*/
|
|
164
|
+
export declare function validateTimeTolerance(value: unknown): number;
|
|
165
|
+
/**
|
|
166
|
+
* Type guard for SignedRequestFields
|
|
167
|
+
*/
|
|
168
|
+
export declare function isSignedRequestFields(value: unknown): value is SignedRequestFields;
|
|
169
|
+
/**
|
|
170
|
+
* Validates SignedRequestFields and throws detailed errors
|
|
171
|
+
*/
|
|
172
|
+
export declare function validateSignedRequestFields(value: unknown): SignedRequestFields;
|
|
173
|
+
/**
|
|
174
|
+
* Type guard for VerificationResult
|
|
175
|
+
*/
|
|
176
|
+
export declare function isVerificationResult(value: unknown): value is VerificationResult;
|
|
177
|
+
/**
|
|
178
|
+
* Type guard for IdentityConfig
|
|
179
|
+
*/
|
|
180
|
+
export declare function isIdentityConfig(value: unknown): value is IdentityConfig;
|
|
181
|
+
/**
|
|
182
|
+
* Validates IdentityConfig and throws detailed errors
|
|
183
|
+
*/
|
|
184
|
+
export declare function validateIdentityConfig(value: unknown): IdentityConfig;
|
|
185
|
+
/**
|
|
186
|
+
* Constructs the signed data string from components
|
|
187
|
+
* Format: actor|signedAt|requestHash
|
|
188
|
+
*/
|
|
189
|
+
export declare function constructSignedData(data: SignedData): string;
|
|
190
|
+
/**
|
|
191
|
+
* Parses a signed data string into components
|
|
192
|
+
* Format: actor|signedAt|requestHash
|
|
193
|
+
*/
|
|
194
|
+
export declare function parseSignedData(signedDataString: string): SignedData;
|
|
195
|
+
/**
|
|
196
|
+
* Checks if a signature timestamp is within the allowed time tolerance
|
|
197
|
+
*
|
|
198
|
+
* @param signedAt - The timestamp when the request was signed
|
|
199
|
+
* @param tolerance - Time tolerance in milliseconds (default: 5 minutes)
|
|
200
|
+
* @param now - Current timestamp for testing (defaults to now)
|
|
201
|
+
* @returns Object with validity and age information
|
|
202
|
+
*/
|
|
203
|
+
export declare function checkTimeTolerance(signedAt: Timestamp, tolerance?: number, now?: Date): {
|
|
204
|
+
valid: boolean;
|
|
205
|
+
ageMs: number;
|
|
206
|
+
expiredBy?: number;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Checks time tolerance and throws if expired
|
|
210
|
+
*/
|
|
211
|
+
export declare function validateTimeTolerance2(signedAt: Timestamp, tolerance?: number, now?: Date): void;
|
|
212
|
+
/**
|
|
213
|
+
* Creates a successful verification result
|
|
214
|
+
*/
|
|
215
|
+
export declare function verificationSuccess(actor: string, ageMs?: number): VerificationResult;
|
|
216
|
+
/**
|
|
217
|
+
* Creates a failed verification result
|
|
218
|
+
*/
|
|
219
|
+
export declare function verificationFailure(status: VerificationStatus, error: string, details?: VerificationResult['details']): VerificationResult;
|
|
220
|
+
/**
|
|
221
|
+
* Creates a "not signed" result (may be allowed in soft/hybrid mode)
|
|
222
|
+
*/
|
|
223
|
+
export declare function verificationNotSigned(allowed: boolean, actor?: string): VerificationResult;
|
|
224
|
+
/**
|
|
225
|
+
* Verifies an Ed25519 signature using Bun's native crypto
|
|
226
|
+
*
|
|
227
|
+
* @param publicKey - Base64-encoded Ed25519 public key
|
|
228
|
+
* @param signature - Base64-encoded Ed25519 signature
|
|
229
|
+
* @param data - The data that was signed (as string or Uint8Array)
|
|
230
|
+
* @returns true if signature is valid, false otherwise
|
|
231
|
+
*/
|
|
232
|
+
export declare function verifyEd25519Signature(publicKey: PublicKey, signature: Signature, data: string | Uint8Array): Promise<boolean>;
|
|
233
|
+
/**
|
|
234
|
+
* Signs data using Ed25519 (for testing purposes)
|
|
235
|
+
* In production, signing should be done by the entity externally
|
|
236
|
+
*
|
|
237
|
+
* @param privateKey - Base64-encoded Ed25519 private key in PKCS8 format
|
|
238
|
+
* @param data - The data to sign
|
|
239
|
+
* @returns Base64-encoded signature
|
|
240
|
+
*/
|
|
241
|
+
export declare function signEd25519(privateKey: string, data: string | Uint8Array): Promise<Signature>;
|
|
242
|
+
/**
|
|
243
|
+
* Generates a new Ed25519 keypair (for testing purposes)
|
|
244
|
+
*
|
|
245
|
+
* @returns Object with base64-encoded public and private keys (PKCS8 format for private)
|
|
246
|
+
*/
|
|
247
|
+
export declare function generateEd25519Keypair(): Promise<{
|
|
248
|
+
publicKey: PublicKey;
|
|
249
|
+
privateKey: string;
|
|
250
|
+
}>;
|
|
251
|
+
/**
|
|
252
|
+
* Entity lookup function type for verification
|
|
253
|
+
*/
|
|
254
|
+
export type EntityLookup = (actor: string) => Promise<{
|
|
255
|
+
publicKey?: string;
|
|
256
|
+
} | null>;
|
|
257
|
+
/**
|
|
258
|
+
* Full verification options
|
|
259
|
+
*/
|
|
260
|
+
export interface VerifySignatureOptions {
|
|
261
|
+
/** The signed request fields */
|
|
262
|
+
signedRequest: SignedRequestFields;
|
|
263
|
+
/** The hash of the request body */
|
|
264
|
+
requestHash: string;
|
|
265
|
+
/** Function to look up entity by name */
|
|
266
|
+
lookupEntity: EntityLookup;
|
|
267
|
+
/** Identity configuration */
|
|
268
|
+
config?: Partial<IdentityConfig>;
|
|
269
|
+
/** Current time for testing */
|
|
270
|
+
now?: Date;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Performs full signature verification pipeline
|
|
274
|
+
*
|
|
275
|
+
* 1. Validates signature format
|
|
276
|
+
* 2. Looks up entity's public key
|
|
277
|
+
* 3. Constructs signed data
|
|
278
|
+
* 4. Checks time tolerance
|
|
279
|
+
* 5. Verifies signature cryptographically
|
|
280
|
+
*/
|
|
281
|
+
export declare function verifySignature(options: VerifySignatureOptions): Promise<VerificationResult>;
|
|
282
|
+
/**
|
|
283
|
+
* Determines if a request should be allowed based on identity mode
|
|
284
|
+
*/
|
|
285
|
+
export declare function shouldAllowRequest(mode: IdentityMode, verificationResult: VerificationResult): boolean;
|
|
286
|
+
/**
|
|
287
|
+
* Creates a SHA256 hash of the request body for signing
|
|
288
|
+
*/
|
|
289
|
+
export declare function hashRequestBody(body: string | object): Promise<string>;
|
|
290
|
+
/**
|
|
291
|
+
* Creates a signed request from signing input
|
|
292
|
+
*/
|
|
293
|
+
export declare function createSignedRequest(input: SigningInput, privateKey: string, signedAt?: Timestamp): Promise<SignedRequestFields>;
|
|
294
|
+
/**
|
|
295
|
+
* Merges partial config with defaults
|
|
296
|
+
*/
|
|
297
|
+
export declare function createIdentityConfig(partial?: Partial<IdentityConfig>): IdentityConfig;
|
|
298
|
+
/**
|
|
299
|
+
* Sources from which actor identity can be determined
|
|
300
|
+
*/
|
|
301
|
+
export declare const ActorSource: {
|
|
302
|
+
/** Explicitly provided in the operation */
|
|
303
|
+
readonly EXPLICIT: "explicit";
|
|
304
|
+
/** From CLI --actor flag */
|
|
305
|
+
readonly CLI_FLAG: "cli_flag";
|
|
306
|
+
/** From configuration file */
|
|
307
|
+
readonly CONFIG: "config";
|
|
308
|
+
/** From element's createdBy field (fallback) */
|
|
309
|
+
readonly ELEMENT: "element";
|
|
310
|
+
/** System-generated operations */
|
|
311
|
+
readonly SYSTEM: "system";
|
|
312
|
+
};
|
|
313
|
+
export type ActorSource = (typeof ActorSource)[keyof typeof ActorSource];
|
|
314
|
+
/**
|
|
315
|
+
* Actor context for tracking who is performing an operation
|
|
316
|
+
*/
|
|
317
|
+
export interface ActorContext {
|
|
318
|
+
/** The actor's entity ID or name */
|
|
319
|
+
readonly actor: string;
|
|
320
|
+
/** Where the actor identity came from */
|
|
321
|
+
readonly source: ActorSource;
|
|
322
|
+
/** Whether the actor has been verified (always false in soft mode) */
|
|
323
|
+
readonly verified: boolean;
|
|
324
|
+
/** Optional entity ID if the actor was looked up and exists */
|
|
325
|
+
readonly entityId?: string;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Options for resolving actor context
|
|
329
|
+
*/
|
|
330
|
+
export interface ActorResolutionOptions {
|
|
331
|
+
/** Explicitly provided actor (highest priority) */
|
|
332
|
+
explicitActor?: string;
|
|
333
|
+
/** Actor from CLI flag */
|
|
334
|
+
cliActor?: string;
|
|
335
|
+
/** Actor from configuration */
|
|
336
|
+
configActor?: string;
|
|
337
|
+
/** Fallback actor from element's createdBy (lowest priority) */
|
|
338
|
+
elementCreatedBy?: string;
|
|
339
|
+
/** Identity configuration */
|
|
340
|
+
config?: Partial<IdentityConfig>;
|
|
341
|
+
/** Function to look up entity by name */
|
|
342
|
+
lookupEntity?: EntityLookup;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Result of actor validation
|
|
346
|
+
*/
|
|
347
|
+
export interface ActorValidationResult {
|
|
348
|
+
/** Whether the actor is valid */
|
|
349
|
+
valid: boolean;
|
|
350
|
+
/** The resolved actor context if valid */
|
|
351
|
+
context?: ActorContext;
|
|
352
|
+
/** Error message if invalid */
|
|
353
|
+
error?: string;
|
|
354
|
+
/** Whether the actor entity exists (only checked in soft mode with lookupEntity) */
|
|
355
|
+
entityExists?: boolean;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Resolves actor context from multiple sources
|
|
359
|
+
*
|
|
360
|
+
* Priority order (highest to lowest):
|
|
361
|
+
* 1. Explicit actor (provided in operation)
|
|
362
|
+
* 2. CLI actor (--actor flag)
|
|
363
|
+
* 3. Config actor (default actor in config)
|
|
364
|
+
* 4. Element's createdBy (fallback for updates/deletes)
|
|
365
|
+
*
|
|
366
|
+
* @param options - Resolution options with actor sources
|
|
367
|
+
* @returns The resolved actor context
|
|
368
|
+
* @throws ValidationError if no actor can be resolved
|
|
369
|
+
*/
|
|
370
|
+
export declare function resolveActor(options: ActorResolutionOptions): ActorContext;
|
|
371
|
+
/**
|
|
372
|
+
* Validates an actor in soft identity mode
|
|
373
|
+
*
|
|
374
|
+
* In soft mode:
|
|
375
|
+
* - Accepts any non-empty string as actor
|
|
376
|
+
* - Optionally checks if entity exists (if lookupEntity provided and allowUnregisteredActors is false)
|
|
377
|
+
* - Always returns verified: false
|
|
378
|
+
*
|
|
379
|
+
* @param actor - The actor name/ID to validate
|
|
380
|
+
* @param options - Validation options
|
|
381
|
+
* @returns Validation result with context if valid
|
|
382
|
+
*/
|
|
383
|
+
export declare function validateSoftActor(actor: string, options?: {
|
|
384
|
+
lookupEntity?: EntityLookup;
|
|
385
|
+
config?: Partial<IdentityConfig>;
|
|
386
|
+
}): Promise<ActorValidationResult>;
|
|
387
|
+
/**
|
|
388
|
+
* Type guard for ActorContext
|
|
389
|
+
*/
|
|
390
|
+
export declare function isActorContext(value: unknown): value is ActorContext;
|
|
391
|
+
/**
|
|
392
|
+
* Creates an actor context for system operations
|
|
393
|
+
*/
|
|
394
|
+
export declare function createSystemActorContext(): ActorContext;
|
|
395
|
+
/**
|
|
396
|
+
* Creates an actor context from an explicit actor string
|
|
397
|
+
*/
|
|
398
|
+
export declare function createActorContext(actor: string, source?: ActorSource): ActorContext;
|
|
399
|
+
/**
|
|
400
|
+
* Middleware context for request verification
|
|
401
|
+
*/
|
|
402
|
+
export interface MiddlewareContext {
|
|
403
|
+
/** The actor making the request (if authenticated) */
|
|
404
|
+
actor?: string;
|
|
405
|
+
/** Whether the request was verified cryptographically */
|
|
406
|
+
verified: boolean;
|
|
407
|
+
/** The verification result (if verification was attempted) */
|
|
408
|
+
verificationResult?: VerificationResult;
|
|
409
|
+
/** The identity mode used */
|
|
410
|
+
mode: IdentityMode;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Request object that may contain signed fields
|
|
414
|
+
*/
|
|
415
|
+
export interface SignableRequest {
|
|
416
|
+
/** Optional signed request fields for cryptographic verification */
|
|
417
|
+
signedRequest?: SignedRequestFields;
|
|
418
|
+
/** The request body (used to compute hash for verification) */
|
|
419
|
+
body?: string | object;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Middleware result
|
|
423
|
+
*/
|
|
424
|
+
export interface MiddlewareResult {
|
|
425
|
+
/** Whether the request is allowed to proceed */
|
|
426
|
+
allowed: boolean;
|
|
427
|
+
/** The middleware context with authentication info */
|
|
428
|
+
context: MiddlewareContext;
|
|
429
|
+
/** Error message if not allowed */
|
|
430
|
+
error?: string;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Options for verification middleware
|
|
434
|
+
*/
|
|
435
|
+
export interface VerificationMiddlewareOptions {
|
|
436
|
+
/** Identity configuration */
|
|
437
|
+
config?: Partial<IdentityConfig>;
|
|
438
|
+
/** Function to look up entity by actor name */
|
|
439
|
+
lookupEntity: EntityLookup;
|
|
440
|
+
/** Current time (for testing) */
|
|
441
|
+
now?: Date;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Creates a verification middleware function
|
|
445
|
+
*
|
|
446
|
+
* The middleware:
|
|
447
|
+
* 1. Checks identity mode from config
|
|
448
|
+
* 2. In soft mode: allows all requests, extracts actor if provided
|
|
449
|
+
* 3. In cryptographic mode: requires valid signature
|
|
450
|
+
* 4. In hybrid mode: allows unsigned or validly signed requests
|
|
451
|
+
*
|
|
452
|
+
* @param options - Middleware options
|
|
453
|
+
* @returns A middleware function that verifies requests
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```typescript
|
|
457
|
+
* const middleware = createVerificationMiddleware({
|
|
458
|
+
* lookupEntity: (actor) => api.lookupEntityByName(actor),
|
|
459
|
+
* config: { mode: IdentityMode.CRYPTOGRAPHIC }
|
|
460
|
+
* });
|
|
461
|
+
*
|
|
462
|
+
* const result = await middleware(request);
|
|
463
|
+
* if (!result.allowed) {
|
|
464
|
+
* throw new Error(result.error);
|
|
465
|
+
* }
|
|
466
|
+
* // Use result.context.actor for the verified actor
|
|
467
|
+
* ```
|
|
468
|
+
*/
|
|
469
|
+
export declare function createVerificationMiddleware(options: VerificationMiddlewareOptions): (request: SignableRequest) => Promise<MiddlewareResult>;
|
|
470
|
+
/**
|
|
471
|
+
* Creates middleware context for an unsigned request in soft mode
|
|
472
|
+
*/
|
|
473
|
+
export declare function createSoftModeContext(actor?: string): MiddlewareContext;
|
|
474
|
+
/**
|
|
475
|
+
* Creates middleware context for a verified request
|
|
476
|
+
*/
|
|
477
|
+
export declare function createVerifiedContext(actor: string, verificationResult: VerificationResult): MiddlewareContext;
|
|
478
|
+
export {};
|
|
479
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/systems/identity.ts"],"names":[],"mappings":"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"}
|