@originals/sdk 1.8.2 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/package.json +5 -6
  2. package/src/adapters/FeeOracleMock.ts +0 -9
  3. package/src/adapters/index.ts +0 -5
  4. package/src/adapters/providers/OrdHttpProvider.ts +0 -126
  5. package/src/adapters/providers/OrdMockProvider.ts +0 -101
  6. package/src/adapters/types.ts +0 -66
  7. package/src/bitcoin/BitcoinManager.ts +0 -329
  8. package/src/bitcoin/BroadcastClient.ts +0 -54
  9. package/src/bitcoin/OrdinalsClient.ts +0 -120
  10. package/src/bitcoin/PSBTBuilder.ts +0 -106
  11. package/src/bitcoin/fee-calculation.ts +0 -38
  12. package/src/bitcoin/providers/OrdNodeProvider.ts +0 -92
  13. package/src/bitcoin/providers/OrdinalsProvider.ts +0 -56
  14. package/src/bitcoin/providers/types.ts +0 -59
  15. package/src/bitcoin/transactions/commit.ts +0 -465
  16. package/src/bitcoin/transactions/index.ts +0 -13
  17. package/src/bitcoin/transfer.ts +0 -43
  18. package/src/bitcoin/utxo-selection.ts +0 -322
  19. package/src/bitcoin/utxo.ts +0 -113
  20. package/src/cel/ExternalReferenceManager.ts +0 -87
  21. package/src/cel/OriginalsCel.ts +0 -460
  22. package/src/cel/algorithms/createEventLog.ts +0 -68
  23. package/src/cel/algorithms/deactivateEventLog.ts +0 -109
  24. package/src/cel/algorithms/index.ts +0 -11
  25. package/src/cel/algorithms/updateEventLog.ts +0 -99
  26. package/src/cel/algorithms/verifyEventLog.ts +0 -306
  27. package/src/cel/algorithms/witnessEvent.ts +0 -87
  28. package/src/cel/cli/create.ts +0 -330
  29. package/src/cel/cli/index.ts +0 -383
  30. package/src/cel/cli/inspect.ts +0 -549
  31. package/src/cel/cli/migrate.ts +0 -473
  32. package/src/cel/cli/verify.ts +0 -249
  33. package/src/cel/hash.ts +0 -71
  34. package/src/cel/index.ts +0 -16
  35. package/src/cel/layers/BtcoCelManager.ts +0 -408
  36. package/src/cel/layers/PeerCelManager.ts +0 -371
  37. package/src/cel/layers/WebVHCelManager.ts +0 -361
  38. package/src/cel/layers/index.ts +0 -27
  39. package/src/cel/serialization/cbor.ts +0 -189
  40. package/src/cel/serialization/index.ts +0 -10
  41. package/src/cel/serialization/json.ts +0 -209
  42. package/src/cel/types.ts +0 -160
  43. package/src/cel/witnesses/BitcoinWitness.ts +0 -184
  44. package/src/cel/witnesses/HttpWitness.ts +0 -241
  45. package/src/cel/witnesses/WitnessService.ts +0 -51
  46. package/src/cel/witnesses/index.ts +0 -11
  47. package/src/contexts/credentials-v1.json +0 -237
  48. package/src/contexts/credentials-v2-examples.json +0 -5
  49. package/src/contexts/credentials-v2.json +0 -340
  50. package/src/contexts/credentials.json +0 -237
  51. package/src/contexts/data-integrity-v2.json +0 -81
  52. package/src/contexts/dids.json +0 -58
  53. package/src/contexts/ed255192020.json +0 -93
  54. package/src/contexts/ordinals-plus.json +0 -23
  55. package/src/contexts/originals.json +0 -22
  56. package/src/core/OriginalsSDK.ts +0 -420
  57. package/src/crypto/Multikey.ts +0 -194
  58. package/src/crypto/Signer.ts +0 -262
  59. package/src/crypto/noble-init.ts +0 -138
  60. package/src/did/BtcoDidResolver.ts +0 -231
  61. package/src/did/DIDManager.ts +0 -705
  62. package/src/did/Ed25519Verifier.ts +0 -68
  63. package/src/did/KeyManager.ts +0 -239
  64. package/src/did/WebVHManager.ts +0 -499
  65. package/src/did/createBtcoDidDocument.ts +0 -60
  66. package/src/did/providers/OrdinalsClientProviderAdapter.ts +0 -68
  67. package/src/events/EventEmitter.ts +0 -222
  68. package/src/events/index.ts +0 -19
  69. package/src/events/types.ts +0 -331
  70. package/src/examples/basic-usage.ts +0 -78
  71. package/src/examples/create-module-original.ts +0 -435
  72. package/src/examples/full-lifecycle-flow.ts +0 -514
  73. package/src/examples/run.ts +0 -60
  74. package/src/index.ts +0 -204
  75. package/src/kinds/KindRegistry.ts +0 -320
  76. package/src/kinds/index.ts +0 -74
  77. package/src/kinds/types.ts +0 -470
  78. package/src/kinds/validators/AgentValidator.ts +0 -257
  79. package/src/kinds/validators/AppValidator.ts +0 -211
  80. package/src/kinds/validators/DatasetValidator.ts +0 -242
  81. package/src/kinds/validators/DocumentValidator.ts +0 -311
  82. package/src/kinds/validators/MediaValidator.ts +0 -269
  83. package/src/kinds/validators/ModuleValidator.ts +0 -225
  84. package/src/kinds/validators/base.ts +0 -276
  85. package/src/kinds/validators/index.ts +0 -12
  86. package/src/lifecycle/BatchOperations.ts +0 -381
  87. package/src/lifecycle/LifecycleManager.ts +0 -2156
  88. package/src/lifecycle/OriginalsAsset.ts +0 -524
  89. package/src/lifecycle/ProvenanceQuery.ts +0 -280
  90. package/src/lifecycle/ResourceVersioning.ts +0 -163
  91. package/src/migration/MigrationManager.ts +0 -587
  92. package/src/migration/audit/AuditLogger.ts +0 -176
  93. package/src/migration/checkpoint/CheckpointManager.ts +0 -112
  94. package/src/migration/checkpoint/CheckpointStorage.ts +0 -101
  95. package/src/migration/index.ts +0 -33
  96. package/src/migration/operations/BaseMigration.ts +0 -126
  97. package/src/migration/operations/PeerToBtcoMigration.ts +0 -105
  98. package/src/migration/operations/PeerToWebvhMigration.ts +0 -62
  99. package/src/migration/operations/WebvhToBtcoMigration.ts +0 -105
  100. package/src/migration/rollback/RollbackManager.ts +0 -170
  101. package/src/migration/state/StateMachine.ts +0 -92
  102. package/src/migration/state/StateTracker.ts +0 -156
  103. package/src/migration/types.ts +0 -356
  104. package/src/migration/validation/BitcoinValidator.ts +0 -107
  105. package/src/migration/validation/CredentialValidator.ts +0 -62
  106. package/src/migration/validation/DIDCompatibilityValidator.ts +0 -151
  107. package/src/migration/validation/LifecycleValidator.ts +0 -64
  108. package/src/migration/validation/StorageValidator.ts +0 -79
  109. package/src/migration/validation/ValidationPipeline.ts +0 -213
  110. package/src/resources/ResourceManager.ts +0 -655
  111. package/src/resources/index.ts +0 -21
  112. package/src/resources/types.ts +0 -202
  113. package/src/storage/LocalStorageAdapter.ts +0 -64
  114. package/src/storage/MemoryStorageAdapter.ts +0 -29
  115. package/src/storage/StorageAdapter.ts +0 -25
  116. package/src/storage/index.ts +0 -3
  117. package/src/types/bitcoin.ts +0 -98
  118. package/src/types/common.ts +0 -92
  119. package/src/types/credentials.ts +0 -89
  120. package/src/types/did.ts +0 -31
  121. package/src/types/external-shims.d.ts +0 -53
  122. package/src/types/index.ts +0 -7
  123. package/src/types/network.ts +0 -178
  124. package/src/utils/EventLogger.ts +0 -298
  125. package/src/utils/Logger.ts +0 -324
  126. package/src/utils/MetricsCollector.ts +0 -358
  127. package/src/utils/bitcoin-address.ts +0 -132
  128. package/src/utils/cbor.ts +0 -31
  129. package/src/utils/encoding.ts +0 -135
  130. package/src/utils/hash.ts +0 -12
  131. package/src/utils/retry.ts +0 -46
  132. package/src/utils/satoshi-validation.ts +0 -196
  133. package/src/utils/serialization.ts +0 -102
  134. package/src/utils/telemetry.ts +0 -44
  135. package/src/utils/validation.ts +0 -123
  136. package/src/vc/CredentialManager.ts +0 -955
  137. package/src/vc/Issuer.ts +0 -105
  138. package/src/vc/Verifier.ts +0 -54
  139. package/src/vc/cryptosuites/bbs.ts +0 -253
  140. package/src/vc/cryptosuites/bbsSimple.ts +0 -21
  141. package/src/vc/cryptosuites/eddsa.ts +0 -99
  142. package/src/vc/documentLoader.ts +0 -81
  143. package/src/vc/proofs/data-integrity.ts +0 -33
  144. package/src/vc/utils/jsonld.ts +0 -18
@@ -1,68 +0,0 @@
1
- import { verifyAsync } from '@noble/ed25519';
2
- import type { ExternalVerifier } from '../types/common.js';
3
-
4
- /**
5
- * Ed25519Verifier - A simple Ed25519 verifier for DID operations
6
- * Compatible with didwebvh-ts resolveDIDFromLog
7
- */
8
- export class Ed25519Verifier implements ExternalVerifier {
9
- private verificationMethodId?: string;
10
- private publicKey?: Uint8Array;
11
-
12
- constructor(verificationMethodId?: string, publicKey?: Uint8Array) {
13
- this.verificationMethodId = verificationMethodId;
14
- this.publicKey = publicKey;
15
- }
16
-
17
- /**
18
- * Verify a signature using Ed25519
19
- * @param signature - The signature bytes
20
- * @param message - The message bytes that were signed
21
- * @param publicKey - The public key bytes (can be different from constructor publicKey)
22
- * @returns True if the signature is valid
23
- */
24
- async verify(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): Promise<boolean> {
25
- try {
26
- // Ed25519 public keys must be exactly 32 bytes
27
- // Some keys may have a version byte prefix, so remove it if present
28
- let ed25519PublicKey = publicKey;
29
- if (publicKey.length === 33) {
30
- ed25519PublicKey = publicKey.slice(1);
31
- } else if (publicKey.length !== 32) {
32
- console.error(`[Ed25519Verifier] Invalid public key length: ${publicKey.length} (expected 32 bytes)`);
33
- return false;
34
- }
35
-
36
- // Correct parameter order: verifyAsync(signature, message, publicKey)
37
- return await verifyAsync(signature, message, ed25519PublicKey);
38
- } catch (error) {
39
- console.error('[Ed25519Verifier] Verification error:', error);
40
- return false;
41
- }
42
- }
43
-
44
- /**
45
- * Get the verification method ID associated with this verifier
46
- */
47
- getVerificationMethodId(): string | undefined {
48
- return this.verificationMethodId;
49
- }
50
-
51
- /**
52
- * Get the public key as Uint8Array
53
- */
54
- getPublicKey(): Uint8Array | undefined {
55
- return this.publicKey;
56
- }
57
-
58
- /**
59
- * Get the public key in multibase format (base64url with 'z' prefix)
60
- */
61
- getPublicKeyMultibase(): string | undefined {
62
- if (!this.publicKey) {
63
- return undefined;
64
- }
65
- return `z${Buffer.from(this.publicKey).toString('base64')}`;
66
- }
67
- }
68
-
@@ -1,239 +0,0 @@
1
- // Initialize noble crypto libraries first (idempotent - safe to import multiple times)
2
- import '../crypto/noble-init.js';
3
-
4
- import { DIDDocument, KeyPair, KeyType, KeyRecoveryCredential } from '../types';
5
- import * as secp256k1 from '@noble/secp256k1';
6
- import * as ed25519 from '@noble/ed25519';
7
- import { p256 } from '@noble/curves/p256';
8
- import { multikey, MultikeyType } from '../crypto/Multikey';
9
-
10
- function toMultikeyType(type: KeyType): MultikeyType {
11
- if (type === 'ES256K') return 'Secp256k1';
12
- if (type === 'Ed25519') return 'Ed25519';
13
- if (type === 'ES256') return 'P256';
14
- const _exhaustiveCheck: never = type;
15
- throw new Error(`Unsupported key type: ${String(_exhaustiveCheck)}`);
16
- }
17
-
18
- function fromMultikeyType(type: MultikeyType): KeyType {
19
- if (type === 'Secp256k1') return 'ES256K';
20
- if (type === 'Ed25519') return 'Ed25519';
21
- if (type === 'P256') return 'ES256';
22
- throw new Error('Unsupported key type');
23
- }
24
-
25
- export class KeyManager {
26
- constructor() {
27
- // Noble crypto libraries are initialized via noble-init.ts (imported at SDK entry point)
28
- // No initialization needed here
29
- }
30
- async generateKeyPair(type: KeyType): Promise<KeyPair> {
31
- if (type === 'ES256K') {
32
- const privateKeyBytes = secp256k1.utils.randomPrivateKey();
33
- const publicKeyBytes = secp256k1.getPublicKey(privateKeyBytes, true);
34
- return {
35
- privateKey: multikey.encodePrivateKey(privateKeyBytes, 'Secp256k1'),
36
- publicKey: multikey.encodePublicKey(publicKeyBytes, 'Secp256k1')
37
- };
38
- }
39
-
40
- if (type === 'Ed25519') {
41
- const privateKeyBytes = ed25519.utils.randomPrivateKey();
42
- const ed25519Module = ed25519 as unknown as { getPublicKeyAsync: (privateKey: Uint8Array) => Promise<Uint8Array> };
43
- const publicKeyBytes = await ed25519Module.getPublicKeyAsync(privateKeyBytes);
44
- return {
45
- privateKey: multikey.encodePrivateKey(privateKeyBytes, 'Ed25519'),
46
- publicKey: multikey.encodePublicKey(publicKeyBytes, 'Ed25519')
47
- };
48
- }
49
-
50
- if (type === 'ES256') {
51
- const privateKeyBytes = p256.utils.randomPrivateKey();
52
- const publicKeyBytes = p256.getPublicKey(privateKeyBytes, true);
53
- return {
54
- privateKey: multikey.encodePrivateKey(privateKeyBytes, 'P256'),
55
- publicKey: multikey.encodePublicKey(publicKeyBytes, 'P256')
56
- };
57
- }
58
-
59
- const _exhaustiveCheck: never = type;
60
- throw new Error(`Unsupported key type: ${String(_exhaustiveCheck)}`);
61
- }
62
-
63
- rotateKeys(didDoc: DIDDocument, newKeyPair: KeyPair): DIDDocument {
64
- const multikeyContext = 'https://w3id.org/security/multikey/v1';
65
- const securityContext = 'https://w3id.org/security/v1';
66
-
67
- // Ensure required contexts are present
68
- const updatedContext = [...didDoc['@context']];
69
- if (!updatedContext.includes(multikeyContext)) {
70
- updatedContext.push(multikeyContext);
71
- }
72
- if (!updatedContext.includes(securityContext)) {
73
- updatedContext.push(securityContext);
74
- }
75
-
76
- // Generate new key ID
77
- const existingKeys = didDoc.verificationMethod || [];
78
- const keyIndex = existingKeys.length;
79
- const newKeyId = `${didDoc.id}#keys-${keyIndex}`;
80
-
81
- // Mark all existing verification methods as revoked with current timestamp
82
- const revokedTimestamp = new Date().toISOString();
83
- const revokedVerificationMethods = existingKeys.map(vm => ({
84
- ...vm,
85
- revoked: revokedTimestamp
86
- }));
87
-
88
- // Create new verification method
89
- const newVerificationMethod = {
90
- id: newKeyId,
91
- type: 'Multikey',
92
- controller: didDoc.id,
93
- publicKeyMultibase: newKeyPair.publicKey
94
- };
95
-
96
- // Update authentication and assertionMethod arrays to reference only the new key
97
- const newKeyReference = newKeyId;
98
-
99
- const updated: DIDDocument = {
100
- ...didDoc,
101
- '@context': updatedContext,
102
- verificationMethod: [...revokedVerificationMethods, newVerificationMethod],
103
- authentication: [newKeyReference],
104
- assertionMethod: [newKeyReference]
105
- };
106
-
107
- // Preserve other properties if they exist
108
- if (didDoc.keyAgreement) {
109
- updated.keyAgreement = didDoc.keyAgreement;
110
- }
111
- if (didDoc.capabilityInvocation) {
112
- updated.capabilityInvocation = didDoc.capabilityInvocation;
113
- }
114
- if (didDoc.capabilityDelegation) {
115
- updated.capabilityDelegation = didDoc.capabilityDelegation;
116
- }
117
- if (didDoc.service) {
118
- updated.service = didDoc.service;
119
- }
120
-
121
- return updated;
122
- }
123
-
124
- async recoverFromCompromise(didDoc: DIDDocument): Promise<{
125
- didDocument: DIDDocument;
126
- recoveryCredential: KeyRecoveryCredential;
127
- newKeyPair: KeyPair;
128
- }> {
129
- // Determine key type from existing verification methods or default to Ed25519
130
- let keyType: KeyType = 'Ed25519';
131
- if (didDoc.verificationMethod && didDoc.verificationMethod.length > 0) {
132
- try {
133
- const firstKey = didDoc.verificationMethod[0];
134
- const decoded = multikey.decodePublicKey(firstKey.publicKeyMultibase);
135
- keyType = fromMultikeyType(decoded.type);
136
- } catch (e) {
137
- // If decoding fails, use default Ed25519
138
- }
139
- }
140
-
141
- // Generate new key pair
142
- const newKeyPair = await this.generateKeyPair(keyType);
143
-
144
- // Ensure required contexts
145
- const multikeyContext = 'https://w3id.org/security/multikey/v1';
146
- const securityContext = 'https://w3id.org/security/v1';
147
- const credentialsContext = 'https://www.w3.org/2018/credentials/v1';
148
-
149
- const updatedContext = [...didDoc['@context']];
150
- if (!updatedContext.includes(multikeyContext)) {
151
- updatedContext.push(multikeyContext);
152
- }
153
- if (!updatedContext.includes(securityContext)) {
154
- updatedContext.push(securityContext);
155
- }
156
-
157
- // Mark all existing verification methods as compromised
158
- const compromisedTimestamp = new Date().toISOString();
159
- const existingKeys = didDoc.verificationMethod || [];
160
- const compromisedVerificationMethods = existingKeys.map(vm => ({
161
- ...vm,
162
- compromised: compromisedTimestamp
163
- }));
164
-
165
- // Collect IDs of compromised keys
166
- const previousVerificationMethodIds = existingKeys.map(vm => vm.id);
167
-
168
- // Generate new key ID
169
- const keyIndex = existingKeys.length;
170
- const newKeyId = `${didDoc.id}#keys-${keyIndex}`;
171
-
172
- // Create new verification method
173
- const newVerificationMethod = {
174
- id: newKeyId,
175
- type: 'Multikey',
176
- controller: didDoc.id,
177
- publicKeyMultibase: newKeyPair.publicKey
178
- };
179
-
180
- // Update DID document
181
- const updatedDidDocument: DIDDocument = {
182
- ...didDoc,
183
- '@context': updatedContext,
184
- verificationMethod: [...compromisedVerificationMethods, newVerificationMethod],
185
- authentication: [newKeyId],
186
- assertionMethod: [newKeyId]
187
- };
188
-
189
- // Preserve other properties
190
- if (didDoc.keyAgreement) {
191
- updatedDidDocument.keyAgreement = didDoc.keyAgreement;
192
- }
193
- if (didDoc.capabilityInvocation) {
194
- updatedDidDocument.capabilityInvocation = didDoc.capabilityInvocation;
195
- }
196
- if (didDoc.capabilityDelegation) {
197
- updatedDidDocument.capabilityDelegation = didDoc.capabilityDelegation;
198
- }
199
- if (didDoc.service) {
200
- updatedDidDocument.service = didDoc.service;
201
- }
202
-
203
- // Create recovery credential
204
- const recoveryCredential: KeyRecoveryCredential = {
205
- '@context': [credentialsContext, securityContext],
206
- type: ['VerifiableCredential', 'KeyRecoveryCredential'],
207
- issuer: didDoc.id,
208
- issuanceDate: compromisedTimestamp,
209
- credentialSubject: {
210
- id: didDoc.id,
211
- recoveredAt: compromisedTimestamp,
212
- recoveryReason: 'key_compromise',
213
- previousVerificationMethods: previousVerificationMethodIds,
214
- newVerificationMethod: newKeyId
215
- }
216
- };
217
-
218
- return { didDocument: updatedDidDocument, recoveryCredential, newKeyPair };
219
- }
220
-
221
- encodePublicKeyMultibase(publicKey: Buffer, type: KeyType): string {
222
- const mkType = toMultikeyType(type);
223
- return multikey.encodePublicKey(new Uint8Array(publicKey), mkType);
224
- }
225
-
226
- decodePublicKeyMultibase(encoded: string): { key: Buffer; type: KeyType } {
227
- if (!encoded || typeof encoded !== 'string') {
228
- throw new Error('Invalid multibase string');
229
- }
230
- try {
231
- const decoded = multikey.decodePublicKey(encoded);
232
- return { key: Buffer.from(decoded.key), type: fromMultikeyType(decoded.type) };
233
- } catch {
234
- throw new Error('Invalid multibase string');
235
- }
236
- }
237
- }
238
-
239
-