@originals/sdk 1.2.0 → 1.4.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.
- package/package.json +4 -1
- package/.eslintrc.json +0 -33
- package/.turbo/turbo-build.log +0 -1
- package/dist/adapters/FeeOracleMock.d.ts +0 -6
- package/dist/adapters/FeeOracleMock.js +0 -8
- package/dist/adapters/index.d.ts +0 -4
- package/dist/adapters/index.js +0 -4
- package/dist/adapters/providers/OrdHttpProvider.d.ts +0 -56
- package/dist/adapters/providers/OrdHttpProvider.js +0 -110
- package/dist/adapters/providers/OrdMockProvider.d.ts +0 -70
- package/dist/adapters/providers/OrdMockProvider.js +0 -75
- package/dist/adapters/types.d.ts +0 -71
- package/dist/adapters/types.js +0 -1
- package/dist/bitcoin/BitcoinManager.d.ts +0 -15
- package/dist/bitcoin/BitcoinManager.js +0 -262
- package/dist/bitcoin/BroadcastClient.d.ts +0 -30
- package/dist/bitcoin/BroadcastClient.js +0 -35
- package/dist/bitcoin/OrdinalsClient.d.ts +0 -21
- package/dist/bitcoin/OrdinalsClient.js +0 -105
- package/dist/bitcoin/PSBTBuilder.d.ts +0 -24
- package/dist/bitcoin/PSBTBuilder.js +0 -80
- package/dist/bitcoin/fee-calculation.d.ts +0 -14
- package/dist/bitcoin/fee-calculation.js +0 -31
- package/dist/bitcoin/providers/OrdNodeProvider.d.ts +0 -38
- package/dist/bitcoin/providers/OrdNodeProvider.js +0 -67
- package/dist/bitcoin/providers/OrdinalsProvider.d.ts +0 -33
- package/dist/bitcoin/providers/OrdinalsProvider.js +0 -50
- package/dist/bitcoin/providers/types.d.ts +0 -63
- package/dist/bitcoin/providers/types.js +0 -1
- package/dist/bitcoin/transactions/commit.d.ts +0 -89
- package/dist/bitcoin/transactions/commit.js +0 -311
- package/dist/bitcoin/transactions/index.d.ts +0 -7
- package/dist/bitcoin/transactions/index.js +0 -8
- package/dist/bitcoin/transfer.d.ts +0 -9
- package/dist/bitcoin/transfer.js +0 -26
- package/dist/bitcoin/utxo-selection.d.ts +0 -78
- package/dist/bitcoin/utxo-selection.js +0 -237
- package/dist/bitcoin/utxo.d.ts +0 -26
- package/dist/bitcoin/utxo.js +0 -78
- package/dist/contexts/credentials-v1.json +0 -195
- package/dist/contexts/credentials-v2-examples.json +0 -5
- package/dist/contexts/credentials-v2.json +0 -301
- package/dist/contexts/credentials.json +0 -195
- package/dist/contexts/data-integrity-v2.json +0 -81
- package/dist/contexts/dids.json +0 -57
- package/dist/contexts/ed255192020.json +0 -93
- package/dist/contexts/ordinals-plus.json +0 -23
- package/dist/contexts/originals.json +0 -22
- package/dist/core/OriginalsSDK.d.ts +0 -158
- package/dist/core/OriginalsSDK.js +0 -274
- package/dist/crypto/Multikey.d.ts +0 -30
- package/dist/crypto/Multikey.js +0 -149
- package/dist/crypto/Signer.d.ts +0 -21
- package/dist/crypto/Signer.js +0 -196
- package/dist/crypto/noble-init.d.ts +0 -18
- package/dist/crypto/noble-init.js +0 -106
- package/dist/did/BtcoDidResolver.d.ts +0 -57
- package/dist/did/BtcoDidResolver.js +0 -166
- package/dist/did/DIDManager.d.ts +0 -101
- package/dist/did/DIDManager.js +0 -493
- package/dist/did/Ed25519Verifier.d.ts +0 -30
- package/dist/did/Ed25519Verifier.js +0 -59
- package/dist/did/KeyManager.d.ts +0 -17
- package/dist/did/KeyManager.js +0 -207
- package/dist/did/WebVHManager.d.ts +0 -100
- package/dist/did/WebVHManager.js +0 -304
- package/dist/did/createBtcoDidDocument.d.ts +0 -10
- package/dist/did/createBtcoDidDocument.js +0 -42
- package/dist/did/providers/OrdinalsClientProviderAdapter.d.ts +0 -23
- package/dist/did/providers/OrdinalsClientProviderAdapter.js +0 -51
- package/dist/events/EventEmitter.d.ts +0 -115
- package/dist/events/EventEmitter.js +0 -198
- package/dist/events/index.d.ts +0 -7
- package/dist/events/index.js +0 -6
- package/dist/events/types.d.ts +0 -286
- package/dist/events/types.js +0 -9
- package/dist/examples/basic-usage.d.ts +0 -3
- package/dist/examples/basic-usage.js +0 -62
- package/dist/examples/run.d.ts +0 -1
- package/dist/examples/run.js +0 -4
- package/dist/index.d.ts +0 -39
- package/dist/index.js +0 -47
- package/dist/lifecycle/BatchOperations.d.ts +0 -147
- package/dist/lifecycle/BatchOperations.js +0 -251
- package/dist/lifecycle/LifecycleManager.d.ts +0 -116
- package/dist/lifecycle/LifecycleManager.js +0 -971
- package/dist/lifecycle/OriginalsAsset.d.ts +0 -164
- package/dist/lifecycle/OriginalsAsset.js +0 -380
- package/dist/lifecycle/ProvenanceQuery.d.ts +0 -126
- package/dist/lifecycle/ProvenanceQuery.js +0 -220
- package/dist/lifecycle/ResourceVersioning.d.ts +0 -73
- package/dist/lifecycle/ResourceVersioning.js +0 -127
- package/dist/migration/MigrationManager.d.ts +0 -86
- package/dist/migration/MigrationManager.js +0 -412
- package/dist/migration/audit/AuditLogger.d.ts +0 -51
- package/dist/migration/audit/AuditLogger.js +0 -156
- package/dist/migration/checkpoint/CheckpointManager.d.ts +0 -31
- package/dist/migration/checkpoint/CheckpointManager.js +0 -96
- package/dist/migration/checkpoint/CheckpointStorage.d.ts +0 -26
- package/dist/migration/checkpoint/CheckpointStorage.js +0 -89
- package/dist/migration/index.d.ts +0 -22
- package/dist/migration/index.js +0 -27
- package/dist/migration/operations/BaseMigration.d.ts +0 -48
- package/dist/migration/operations/BaseMigration.js +0 -83
- package/dist/migration/operations/PeerToBtcoMigration.d.ts +0 -25
- package/dist/migration/operations/PeerToBtcoMigration.js +0 -67
- package/dist/migration/operations/PeerToWebvhMigration.d.ts +0 -19
- package/dist/migration/operations/PeerToWebvhMigration.js +0 -46
- package/dist/migration/operations/WebvhToBtcoMigration.d.ts +0 -25
- package/dist/migration/operations/WebvhToBtcoMigration.js +0 -67
- package/dist/migration/rollback/RollbackManager.d.ts +0 -29
- package/dist/migration/rollback/RollbackManager.js +0 -146
- package/dist/migration/state/StateMachine.d.ts +0 -25
- package/dist/migration/state/StateMachine.js +0 -76
- package/dist/migration/state/StateTracker.d.ts +0 -36
- package/dist/migration/state/StateTracker.js +0 -123
- package/dist/migration/types.d.ts +0 -306
- package/dist/migration/types.js +0 -33
- package/dist/migration/validation/BitcoinValidator.d.ts +0 -13
- package/dist/migration/validation/BitcoinValidator.js +0 -83
- package/dist/migration/validation/CredentialValidator.d.ts +0 -13
- package/dist/migration/validation/CredentialValidator.js +0 -46
- package/dist/migration/validation/DIDCompatibilityValidator.d.ts +0 -16
- package/dist/migration/validation/DIDCompatibilityValidator.js +0 -127
- package/dist/migration/validation/LifecycleValidator.d.ts +0 -10
- package/dist/migration/validation/LifecycleValidator.js +0 -52
- package/dist/migration/validation/StorageValidator.d.ts +0 -10
- package/dist/migration/validation/StorageValidator.js +0 -65
- package/dist/migration/validation/ValidationPipeline.d.ts +0 -29
- package/dist/migration/validation/ValidationPipeline.js +0 -180
- package/dist/storage/LocalStorageAdapter.d.ts +0 -11
- package/dist/storage/LocalStorageAdapter.js +0 -53
- package/dist/storage/MemoryStorageAdapter.d.ts +0 -6
- package/dist/storage/MemoryStorageAdapter.js +0 -21
- package/dist/storage/StorageAdapter.d.ts +0 -16
- package/dist/storage/StorageAdapter.js +0 -1
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.js +0 -2
- package/dist/types/bitcoin.d.ts +0 -84
- package/dist/types/bitcoin.js +0 -1
- package/dist/types/common.d.ts +0 -82
- package/dist/types/common.js +0 -1
- package/dist/types/credentials.d.ts +0 -75
- package/dist/types/credentials.js +0 -1
- package/dist/types/did.d.ts +0 -26
- package/dist/types/did.js +0 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.js +0 -5
- package/dist/types/network.d.ts +0 -78
- package/dist/types/network.js +0 -145
- package/dist/utils/EventLogger.d.ts +0 -71
- package/dist/utils/EventLogger.js +0 -232
- package/dist/utils/Logger.d.ts +0 -106
- package/dist/utils/Logger.js +0 -257
- package/dist/utils/MetricsCollector.d.ts +0 -110
- package/dist/utils/MetricsCollector.js +0 -264
- package/dist/utils/bitcoin-address.d.ts +0 -38
- package/dist/utils/bitcoin-address.js +0 -113
- package/dist/utils/cbor.d.ts +0 -2
- package/dist/utils/cbor.js +0 -9
- package/dist/utils/encoding.d.ts +0 -37
- package/dist/utils/encoding.js +0 -120
- package/dist/utils/hash.d.ts +0 -1
- package/dist/utils/hash.js +0 -5
- package/dist/utils/retry.d.ts +0 -10
- package/dist/utils/retry.js +0 -35
- package/dist/utils/satoshi-validation.d.ts +0 -60
- package/dist/utils/satoshi-validation.js +0 -156
- package/dist/utils/serialization.d.ts +0 -14
- package/dist/utils/serialization.js +0 -76
- package/dist/utils/telemetry.d.ts +0 -17
- package/dist/utils/telemetry.js +0 -24
- package/dist/utils/validation.d.ts +0 -5
- package/dist/utils/validation.js +0 -98
- package/dist/vc/CredentialManager.d.ts +0 -22
- package/dist/vc/CredentialManager.js +0 -227
- package/dist/vc/Issuer.d.ts +0 -27
- package/dist/vc/Issuer.js +0 -70
- package/dist/vc/Verifier.d.ts +0 -16
- package/dist/vc/Verifier.js +0 -50
- package/dist/vc/cryptosuites/bbs.d.ts +0 -44
- package/dist/vc/cryptosuites/bbs.js +0 -213
- package/dist/vc/cryptosuites/bbsSimple.d.ts +0 -9
- package/dist/vc/cryptosuites/bbsSimple.js +0 -12
- package/dist/vc/cryptosuites/eddsa.d.ts +0 -30
- package/dist/vc/cryptosuites/eddsa.js +0 -81
- package/dist/vc/documentLoader.d.ts +0 -16
- package/dist/vc/documentLoader.js +0 -59
- package/dist/vc/proofs/data-integrity.d.ts +0 -21
- package/dist/vc/proofs/data-integrity.js +0 -15
- package/dist/vc/utils/jsonld.d.ts +0 -2
- package/dist/vc/utils/jsonld.js +0 -15
- package/src/adapters/FeeOracleMock.ts +0 -9
- package/src/adapters/index.ts +0 -5
- package/src/adapters/providers/OrdHttpProvider.ts +0 -126
- package/src/adapters/providers/OrdMockProvider.ts +0 -101
- package/src/adapters/types.ts +0 -66
- package/src/bitcoin/BitcoinManager.ts +0 -330
- package/src/bitcoin/BroadcastClient.ts +0 -54
- package/src/bitcoin/OrdinalsClient.ts +0 -119
- package/src/bitcoin/PSBTBuilder.ts +0 -106
- package/src/bitcoin/fee-calculation.ts +0 -38
- package/src/bitcoin/providers/OrdNodeProvider.ts +0 -92
- package/src/bitcoin/providers/OrdinalsProvider.ts +0 -56
- package/src/bitcoin/providers/types.ts +0 -59
- package/src/bitcoin/transactions/commit.ts +0 -465
- package/src/bitcoin/transactions/index.ts +0 -13
- package/src/bitcoin/transfer.ts +0 -43
- package/src/bitcoin/utxo-selection.ts +0 -322
- package/src/bitcoin/utxo.ts +0 -113
- package/src/contexts/credentials-v1.json +0 -237
- package/src/contexts/credentials-v2-examples.json +0 -5
- package/src/contexts/credentials-v2.json +0 -340
- package/src/contexts/credentials.json +0 -237
- package/src/contexts/data-integrity-v2.json +0 -81
- package/src/contexts/dids.json +0 -58
- package/src/contexts/ed255192020.json +0 -93
- package/src/contexts/ordinals-plus.json +0 -23
- package/src/contexts/originals.json +0 -22
- package/src/core/OriginalsSDK.ts +0 -416
- package/src/crypto/Multikey.ts +0 -194
- package/src/crypto/Signer.ts +0 -254
- package/src/crypto/noble-init.ts +0 -121
- package/src/did/BtcoDidResolver.ts +0 -227
- package/src/did/DIDManager.ts +0 -694
- package/src/did/Ed25519Verifier.ts +0 -68
- package/src/did/KeyManager.ts +0 -236
- package/src/did/WebVHManager.ts +0 -489
- package/src/did/createBtcoDidDocument.ts +0 -59
- package/src/did/providers/OrdinalsClientProviderAdapter.ts +0 -68
- package/src/events/EventEmitter.ts +0 -222
- package/src/events/index.ts +0 -19
- package/src/events/types.ts +0 -331
- package/src/examples/basic-usage.ts +0 -78
- package/src/examples/run.ts +0 -5
- package/src/index.ts +0 -84
- package/src/lifecycle/BatchOperations.ts +0 -373
- package/src/lifecycle/LifecycleManager.ts +0 -1218
- package/src/lifecycle/OriginalsAsset.ts +0 -524
- package/src/lifecycle/ProvenanceQuery.ts +0 -280
- package/src/lifecycle/ResourceVersioning.ts +0 -163
- package/src/migration/MigrationManager.ts +0 -527
- package/src/migration/audit/AuditLogger.ts +0 -176
- package/src/migration/checkpoint/CheckpointManager.ts +0 -112
- package/src/migration/checkpoint/CheckpointStorage.ts +0 -101
- package/src/migration/index.ts +0 -33
- package/src/migration/operations/BaseMigration.ts +0 -126
- package/src/migration/operations/PeerToBtcoMigration.ts +0 -105
- package/src/migration/operations/PeerToWebvhMigration.ts +0 -62
- package/src/migration/operations/WebvhToBtcoMigration.ts +0 -105
- package/src/migration/rollback/RollbackManager.ts +0 -170
- package/src/migration/state/StateMachine.ts +0 -92
- package/src/migration/state/StateTracker.ts +0 -156
- package/src/migration/types.ts +0 -344
- package/src/migration/validation/BitcoinValidator.ts +0 -107
- package/src/migration/validation/CredentialValidator.ts +0 -62
- package/src/migration/validation/DIDCompatibilityValidator.ts +0 -151
- package/src/migration/validation/LifecycleValidator.ts +0 -64
- package/src/migration/validation/StorageValidator.ts +0 -79
- package/src/migration/validation/ValidationPipeline.ts +0 -213
- package/src/storage/LocalStorageAdapter.ts +0 -61
- package/src/storage/MemoryStorageAdapter.ts +0 -29
- package/src/storage/StorageAdapter.ts +0 -25
- package/src/storage/index.ts +0 -3
- package/src/types/bitcoin.ts +0 -98
- package/src/types/common.ts +0 -92
- package/src/types/credentials.ts +0 -88
- package/src/types/did.ts +0 -31
- package/src/types/external-shims.d.ts +0 -53
- package/src/types/index.ts +0 -7
- package/src/types/network.ts +0 -175
- package/src/utils/EventLogger.ts +0 -298
- package/src/utils/Logger.ts +0 -322
- package/src/utils/MetricsCollector.ts +0 -358
- package/src/utils/bitcoin-address.ts +0 -130
- package/src/utils/cbor.ts +0 -12
- package/src/utils/encoding.ts +0 -127
- package/src/utils/hash.ts +0 -6
- package/src/utils/retry.ts +0 -46
- package/src/utils/satoshi-validation.ts +0 -196
- package/src/utils/serialization.ts +0 -96
- package/src/utils/telemetry.ts +0 -40
- package/src/utils/validation.ts +0 -119
- package/src/vc/CredentialManager.ts +0 -273
- package/src/vc/Issuer.ts +0 -100
- package/src/vc/Verifier.ts +0 -47
- package/src/vc/cryptosuites/bbs.ts +0 -253
- package/src/vc/cryptosuites/bbsSimple.ts +0 -21
- package/src/vc/cryptosuites/eddsa.ts +0 -99
- package/src/vc/documentLoader.ts +0 -67
- package/src/vc/proofs/data-integrity.ts +0 -33
- package/src/vc/utils/jsonld.ts +0 -18
- package/test/logs/did_webvh_QmNTn9Kkp8dQ75WrF9xqJ2kuDp9QhKc3aPiERRMj8XoTBN_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmNu4MNr8Lr5txx5gYNhuhZDchXsZEu3hJXKYuphpWTPDp_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmR9MrGZACzjKETA8SBRNCKG11HxU85c4bVR2qN5eDCfsD_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmUc5suaqRM2P4nrXxZwqYMfqzhdMqjuL7oJaJbEpCQVCd_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmUkiB2RCV2VZ1RTXsCebWN25Eiy9TLvpzDWAJNjhgvB4X_example_com_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmUoRTe8UMwpAQXZSAW7pjAgZK1tq2X3C6Kfxq3UXGcaGy_example_com_secret.jsonl +0 -1
- package/test/logs/did_webvh_QmWWot3chx1t6KwTmcE5i2FeDZ5JMkQw3qXycsKDVmJ9Be_example_com_users_alice.jsonl +0 -1
- package/test/logs/did_webvh_QmWvVgALL5kjZdpgR7KZay7J8UiiUr834kkRmWeFAxjAuC_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmWwaRQHUZAFcKihFC6xR6tRTTrQhHPTku6azf1egWbpy1_example_com_users_alice.jsonl +0 -1
- package/test/logs/did_webvh_QmXJLtkz23r7AozbtXsZMKWnVU6rd38CkVtjdWuATU3Yp6_example_com_users_alice123_profile.jsonl +0 -1
- package/test/logs/did_webvh_QmYsce448po14oDE1wXbyaP6wY9HQgHSKLwdezn1k577SF_example_com_my_org_user_name_test_123.jsonl +0 -1
- package/test/logs/did_webvh_QmZBeNzzqajxdfwcDUPZ4P8C5YSXyRztrAwmPiKuKUxmAK_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZhJsqxizwVbRtqCUkmE6XQunSxtxMt3gbTYadVBNAaEq_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZk7NHU2D57RzzbMq4tWW9gBa9AqtVTWfiRM6RFdwGVj2_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZshSXp9w8ovH62zGGBS1b5pGGPsuYiu1VQ935sga2hWF_example_com_level1_level2.jsonl +0 -1
- package/test/logs/did_webvh_QmbWAmw7HQL7vKJyCsctZihXf1rmT4sGvggKCPKWcUWjw1_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmbdLUMbYs3juR39TLB6hhrFWLcNg45ybUzeBJCS1MhCh1_example_com_C_Windows_System32.jsonl +0 -1
- package/test/logs/did_webvh_QmcaQ1Ma4gkSbae85aCm8Mv4rvdT2Sb2RR3JzYwrm5XBq8_example_com_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmcbA7WQhsBqZSoDpKJHjV8Q5o53h8vmgJhQfo6rqTY5ho_example_com.jsonl +0 -1
- package/test/logs/did_webvh_Qmdy8uWr2gkUJrXsThynAug3DASTWwb3onEj89LKmMGZYB_example_com.jsonl +0 -1
- package/tests/__mocks__/bbs-signatures.js +0 -17
- package/tests/__mocks__/mf-base58.js +0 -24
- package/tests/e2e/README.md +0 -97
- package/tests/e2e/example.spec.ts +0 -78
- package/tests/fixtures/did-documents.ts +0 -247
- package/tests/index.test.ts +0 -21
- package/tests/integration/BatchOperations.test.ts +0 -531
- package/tests/integration/CompleteLifecycle.e2e.test.ts +0 -735
- package/tests/integration/CredentialManager.test.ts +0 -42
- package/tests/integration/DIDManager.test.ts +0 -41
- package/tests/integration/DidPeerToWebVhFlow.test.ts +0 -351
- package/tests/integration/Events.test.ts +0 -435
- package/tests/integration/Lifecycle.transfer.btco.integration.test.ts +0 -25
- package/tests/integration/LifecycleManager.test.ts +0 -21
- package/tests/integration/MultikeyFlow.test.ts +0 -52
- package/tests/integration/TelemetryIntegration.test.ts +0 -395
- package/tests/integration/WebVhPublish.test.ts +0 -48
- package/tests/integration/migration/peer-to-webvh.test.ts +0 -172
- package/tests/manual/test-commit-creation.ts +0 -323
- package/tests/mocks/MockKeyStore.ts +0 -38
- package/tests/mocks/adapters/MemoryStorageAdapter.ts +0 -24
- package/tests/mocks/adapters/MockFeeOracle.ts +0 -11
- package/tests/mocks/adapters/MockOrdinalsProvider.ts +0 -76
- package/tests/mocks/adapters/OrdMockProvider.test.ts +0 -176
- package/tests/mocks/adapters/index.ts +0 -6
- package/tests/performance/BatchOperations.perf.test.ts +0 -403
- package/tests/performance/logging.perf.test.ts +0 -336
- package/tests/sdk.test.ts +0 -43
- package/tests/security/bitcoin-penetration-tests.test.ts +0 -622
- package/tests/setup.bun.ts +0 -69
- package/tests/setup.jest.ts +0 -23
- package/tests/stress/batch-operations-stress.test.ts +0 -571
- package/tests/unit/adapters/FeeOracleMock.test.ts +0 -40
- package/tests/unit/bitcoin/BitcoinManager.test.ts +0 -293
- package/tests/unit/bitcoin/BroadcastClient.test.ts +0 -52
- package/tests/unit/bitcoin/OrdNodeProvider.test.ts +0 -53
- package/tests/unit/bitcoin/OrdinalsClient.test.ts +0 -381
- package/tests/unit/bitcoin/OrdinalsClientProvider.test.ts +0 -102
- package/tests/unit/bitcoin/PSBTBuilder.test.ts +0 -84
- package/tests/unit/bitcoin/fee-calculation.test.ts +0 -261
- package/tests/unit/bitcoin/transactions/commit.test.ts +0 -649
- package/tests/unit/bitcoin/transfer.test.ts +0 -31
- package/tests/unit/bitcoin/utxo-selection-new.test.ts +0 -502
- package/tests/unit/bitcoin/utxo.more.test.ts +0 -39
- package/tests/unit/bitcoin/utxo.selection.test.ts +0 -38
- package/tests/unit/core/OriginalsSDK.test.ts +0 -152
- package/tests/unit/crypto/Multikey.test.ts +0 -206
- package/tests/unit/crypto/Signer.test.ts +0 -408
- package/tests/unit/did/BtcoDidResolver.test.ts +0 -611
- package/tests/unit/did/DIDManager.more.test.ts +0 -43
- package/tests/unit/did/DIDManager.test.ts +0 -185
- package/tests/unit/did/Ed25519Verifier.test.ts +0 -160
- package/tests/unit/did/KeyManager.test.ts +0 -452
- package/tests/unit/did/OrdinalsClientProviderAdapter.test.ts +0 -45
- package/tests/unit/did/WebVHManager.test.ts +0 -435
- package/tests/unit/did/createBtcoDidDocument.test.ts +0 -67
- package/tests/unit/did/providers/OrdinalsClientProviderAdapter.test.ts +0 -159
- package/tests/unit/events/EventEmitter.test.ts +0 -407
- package/tests/unit/lifecycle/BatchOperations.test.ts +0 -527
- package/tests/unit/lifecycle/LifecycleManager.keymanagement.test.ts +0 -312
- package/tests/unit/lifecycle/LifecycleManager.prov.test.ts +0 -18
- package/tests/unit/lifecycle/LifecycleManager.test.ts +0 -213
- package/tests/unit/lifecycle/LifecycleManager.transfer.unit.test.ts +0 -30
- package/tests/unit/lifecycle/OriginalsAsset.test.ts +0 -176
- package/tests/unit/lifecycle/ProvenanceQuery.test.ts +0 -577
- package/tests/unit/lifecycle/ResourceVersioning.test.ts +0 -651
- package/tests/unit/storage/MemoryStorageAdapter.test.ts +0 -93
- package/tests/unit/types/network.test.ts +0 -255
- package/tests/unit/utils/EventIntegration.test.ts +0 -384
- package/tests/unit/utils/Logger.test.ts +0 -473
- package/tests/unit/utils/MetricsCollector.test.ts +0 -358
- package/tests/unit/utils/bitcoin-address.test.ts +0 -250
- package/tests/unit/utils/cbor.test.ts +0 -35
- package/tests/unit/utils/encoding.test.ts +0 -318
- package/tests/unit/utils/hash.test.ts +0 -12
- package/tests/unit/utils/retry.test.ts +0 -100
- package/tests/unit/utils/satoshi-validation.test.ts +0 -354
- package/tests/unit/utils/serialization.test.ts +0 -124
- package/tests/unit/utils/telemetry.test.ts +0 -52
- package/tests/unit/utils/validation.test.ts +0 -141
- package/tests/unit/vc/CredentialManager.test.ts +0 -487
- package/tests/unit/vc/Issuer.test.ts +0 -107
- package/tests/unit/vc/Verifier.test.ts +0 -525
- package/tests/unit/vc/bbs.test.ts +0 -282
- package/tests/unit/vc/cryptosuites/eddsa.test.ts +0 -398
- package/tests/unit/vc/documentLoader.test.ts +0 -121
- package/tests/unit/vc/proofs/data-integrity.test.ts +0 -24
- package/tsconfig.json +0 -31
- package/tsconfig.test.json +0 -15
package/src/types/credentials.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { LayerType } from './common';
|
|
2
|
-
|
|
3
|
-
// Verifiable Credentials types
|
|
4
|
-
export interface VerifiableCredential {
|
|
5
|
-
'@context': string[];
|
|
6
|
-
type: string[];
|
|
7
|
-
id?: string;
|
|
8
|
-
issuer: string | Issuer;
|
|
9
|
-
issuanceDate: string;
|
|
10
|
-
expirationDate?: string;
|
|
11
|
-
credentialSubject: CredentialSubject;
|
|
12
|
-
credentialStatus?: CredentialStatus;
|
|
13
|
-
proof?: Proof | Proof[];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface Issuer {
|
|
17
|
-
id: string;
|
|
18
|
-
name?: string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface CredentialSubject {
|
|
22
|
-
id?: string;
|
|
23
|
-
[key: string]: any;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface CredentialStatus {
|
|
27
|
-
id: string;
|
|
28
|
-
type: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface Proof {
|
|
32
|
-
type: string;
|
|
33
|
-
created: string;
|
|
34
|
-
verificationMethod: string;
|
|
35
|
-
proofPurpose: string;
|
|
36
|
-
proofValue: string;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export interface VerifiablePresentation {
|
|
40
|
-
'@context': string[];
|
|
41
|
-
type: string[];
|
|
42
|
-
id?: string;
|
|
43
|
-
holder: string;
|
|
44
|
-
verifiableCredential: VerifiableCredential[];
|
|
45
|
-
proof?: Proof | Proof[];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface ResourceCreatedCredential extends VerifiableCredential {
|
|
49
|
-
credentialSubject: {
|
|
50
|
-
id: string;
|
|
51
|
-
resourceId: string;
|
|
52
|
-
resourceType: string;
|
|
53
|
-
createdAt: string;
|
|
54
|
-
creator: string;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface ResourceUpdatedCredential extends VerifiableCredential {
|
|
59
|
-
credentialSubject: {
|
|
60
|
-
id: string;
|
|
61
|
-
resourceId: string;
|
|
62
|
-
updatedAt: string;
|
|
63
|
-
updateReason?: string;
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export interface ResourceMigratedCredential extends VerifiableCredential {
|
|
68
|
-
credentialSubject: {
|
|
69
|
-
id: string;
|
|
70
|
-
resourceId: string;
|
|
71
|
-
fromLayer: LayerType;
|
|
72
|
-
toLayer: LayerType;
|
|
73
|
-
migratedAt: string;
|
|
74
|
-
migrationReason?: string;
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export interface KeyRecoveryCredential extends VerifiableCredential {
|
|
79
|
-
credentialSubject: {
|
|
80
|
-
id: string; // DID that was recovered
|
|
81
|
-
recoveredAt: string; // ISO 8601 timestamp
|
|
82
|
-
recoveryReason: string; // "key_compromise" or other reason
|
|
83
|
-
previousVerificationMethods: string[]; // IDs of compromised keys
|
|
84
|
-
newVerificationMethod: string; // ID of new key
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
package/src/types/did.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// W3C DID Document types
|
|
2
|
-
export interface DIDDocument {
|
|
3
|
-
'@context': string[];
|
|
4
|
-
id: string;
|
|
5
|
-
verificationMethod?: VerificationMethod[];
|
|
6
|
-
authentication?: (string | VerificationMethod)[];
|
|
7
|
-
assertionMethod?: (string | VerificationMethod)[];
|
|
8
|
-
keyAgreement?: (string | VerificationMethod)[];
|
|
9
|
-
capabilityInvocation?: (string | VerificationMethod)[];
|
|
10
|
-
capabilityDelegation?: (string | VerificationMethod)[];
|
|
11
|
-
service?: ServiceEndpoint[];
|
|
12
|
-
controller?: string[];
|
|
13
|
-
alsoKnownAs?: string[];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface VerificationMethod {
|
|
17
|
-
id: string;
|
|
18
|
-
type: string;
|
|
19
|
-
controller: string;
|
|
20
|
-
publicKeyMultibase: string;
|
|
21
|
-
revoked?: string; // ISO 8601 timestamp when the key was revoked
|
|
22
|
-
compromised?: string; // ISO 8601 timestamp when the key was marked as compromised
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface ServiceEndpoint {
|
|
26
|
-
id: string;
|
|
27
|
-
type: string;
|
|
28
|
-
serviceEndpoint: string | object;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
declare module 'cbor-js' {
|
|
2
|
-
export function encode(value: unknown): ArrayBuffer | Uint8Array;
|
|
3
|
-
export function decode(buffer: ArrayBufferLike): unknown;
|
|
4
|
-
const _default: {
|
|
5
|
-
encode: typeof encode;
|
|
6
|
-
decode: typeof decode;
|
|
7
|
-
};
|
|
8
|
-
export default _default;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
declare module 'multiformats/bases/base64' {
|
|
12
|
-
export const base64url: {
|
|
13
|
-
encode: (bytes: Uint8Array) => string;
|
|
14
|
-
decode: (s: string) => Uint8Array;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
declare module 'jsonld';
|
|
19
|
-
declare module 'b58';
|
|
20
|
-
declare module '@aviarytech/did-peer' {
|
|
21
|
-
export interface ServiceEndpoint {
|
|
22
|
-
id: string;
|
|
23
|
-
type: string;
|
|
24
|
-
serviceEndpoint: string | Record<string, unknown>;
|
|
25
|
-
[key: string]: unknown;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface IDIDDocument {
|
|
29
|
-
'@context'?: string | string[];
|
|
30
|
-
id: string;
|
|
31
|
-
controller?: string | string[];
|
|
32
|
-
verificationMethod?: IDIDDocumentVerificationMethod[];
|
|
33
|
-
authentication?: Array<string | IDIDDocumentVerificationMethod>;
|
|
34
|
-
assertionMethod?: Array<string | IDIDDocumentVerificationMethod>;
|
|
35
|
-
keyAgreement?: Array<string | IDIDDocumentVerificationMethod>;
|
|
36
|
-
capabilityInvocation?: Array<string | IDIDDocumentVerificationMethod>;
|
|
37
|
-
capabilityDelegation?: Array<string | IDIDDocumentVerificationMethod>;
|
|
38
|
-
service?: ServiceEndpoint[];
|
|
39
|
-
[key: string]: unknown;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export type IDIDDocumentVerificationMethod = { id?: string; type: string; controller?: string; publicKeyMultibase?: string };
|
|
43
|
-
export function create(numalgo: number, authenticationKeys: IDIDDocumentVerificationMethod[], encryptionKeys?: IDIDDocumentVerificationMethod[], service?: ServiceEndpoint): Promise<string>;
|
|
44
|
-
export function createNumAlgo0(authenticationKey: IDIDDocumentVerificationMethod): Promise<string>;
|
|
45
|
-
export function createNumAlgo2(authenticationKeys: IDIDDocumentVerificationMethod[], encryptionKeys?: IDIDDocumentVerificationMethod[], service?: ServiceEndpoint[]): Promise<string>;
|
|
46
|
-
export function createNumAlgo4(authenticationKeys: IDIDDocumentVerificationMethod[], encryptionKeys?: IDIDDocumentVerificationMethod[], service?: ServiceEndpoint[]): Promise<string>;
|
|
47
|
-
export function resolve(did: string, repository?: Record<string, unknown>): Promise<IDIDDocument>;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Global shims for non-DOM/node test environments
|
|
51
|
-
declare const global: Record<string, unknown> & typeof globalThis;
|
|
52
|
-
declare function setTimeout(handler: (...args: unknown[]) => void, timeout?: number, ...args: unknown[]): number;
|
|
53
|
-
|
package/src/types/index.ts
DELETED
package/src/types/network.ts
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebVH Network Configuration
|
|
3
|
-
*
|
|
4
|
-
* Defines the three deployment networks for the Originals Protocol:
|
|
5
|
-
* - magby: Development network (patch versions) → Bitcoin regtest
|
|
6
|
-
* - cleffa: Staging network (minor versions) → Bitcoin signet
|
|
7
|
-
* - pichu: Production network (major versions) → Bitcoin mainnet
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export type WebVHNetworkName = 'magby' | 'cleffa' | 'pichu';
|
|
11
|
-
|
|
12
|
-
export type BitcoinNetworkName = 'mainnet' | 'regtest' | 'signet';
|
|
13
|
-
|
|
14
|
-
export type VersionStability = 'patch' | 'minor' | 'major';
|
|
15
|
-
|
|
16
|
-
export interface WebVHNetworkConfig {
|
|
17
|
-
name: WebVHNetworkName;
|
|
18
|
-
domain: string;
|
|
19
|
-
stability: VersionStability;
|
|
20
|
-
description: string;
|
|
21
|
-
contextUrl: string;
|
|
22
|
-
bitcoinNetwork: BitcoinNetworkName; // Corresponding Bitcoin network for did:btco migrations
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Network configurations for the Originals Protocol WebVH deployments
|
|
27
|
-
*/
|
|
28
|
-
export const WEBVH_NETWORKS: Record<WebVHNetworkName, WebVHNetworkConfig> = {
|
|
29
|
-
magby: {
|
|
30
|
-
name: 'magby',
|
|
31
|
-
domain: 'magby.originals.build',
|
|
32
|
-
stability: 'patch',
|
|
33
|
-
description: 'Development network - accepts all patch versions (most unstable)',
|
|
34
|
-
contextUrl: 'https://magby.originals.build/context',
|
|
35
|
-
bitcoinNetwork: 'regtest', // Development → regtest
|
|
36
|
-
},
|
|
37
|
-
cleffa: {
|
|
38
|
-
name: 'cleffa',
|
|
39
|
-
domain: 'cleffa.originals.build',
|
|
40
|
-
stability: 'minor',
|
|
41
|
-
description: 'Staging network - accepts minor releases',
|
|
42
|
-
contextUrl: 'https://cleffa.originals.build/context',
|
|
43
|
-
bitcoinNetwork: 'signet', // Staging → signet
|
|
44
|
-
},
|
|
45
|
-
pichu: {
|
|
46
|
-
name: 'pichu',
|
|
47
|
-
domain: 'pichu.originals.build',
|
|
48
|
-
stability: 'major',
|
|
49
|
-
description: 'Production network - accepts major releases only (most stable)',
|
|
50
|
-
contextUrl: 'https://pichu.originals.build/context',
|
|
51
|
-
bitcoinNetwork: 'mainnet', // Production → mainnet
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Default network for backward compatibility
|
|
57
|
-
*/
|
|
58
|
-
export const DEFAULT_WEBVH_NETWORK: WebVHNetworkName = 'pichu';
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Get network configuration by name
|
|
62
|
-
* @param network - Network name
|
|
63
|
-
* @returns Network configuration
|
|
64
|
-
*/
|
|
65
|
-
export function getNetworkConfig(network: WebVHNetworkName): WebVHNetworkConfig {
|
|
66
|
-
const config = WEBVH_NETWORKS[network];
|
|
67
|
-
if (!config) {
|
|
68
|
-
throw new Error(`Invalid WebVH network: ${network}. Valid networks: magby, cleffa, pichu`);
|
|
69
|
-
}
|
|
70
|
-
return config;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Get network domain
|
|
75
|
-
* @param network - Network name
|
|
76
|
-
* @returns Network domain
|
|
77
|
-
*/
|
|
78
|
-
export function getNetworkDomain(network: WebVHNetworkName): string {
|
|
79
|
-
return getNetworkConfig(network).domain;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Get network context URL
|
|
84
|
-
* @param network - Network name
|
|
85
|
-
* @returns Context URL for the network
|
|
86
|
-
*/
|
|
87
|
-
export function getNetworkContextUrl(network: WebVHNetworkName): string {
|
|
88
|
-
return getNetworkConfig(network).contextUrl;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Validate that a version string matches the network's stability requirements
|
|
93
|
-
* @param version - Semver version string (e.g., "1.2.3")
|
|
94
|
-
* @param network - Network name
|
|
95
|
-
* @returns True if the version is allowed on this network
|
|
96
|
-
*/
|
|
97
|
-
export function validateVersionForNetwork(version: string, network: WebVHNetworkName): boolean {
|
|
98
|
-
const config = getNetworkConfig(network);
|
|
99
|
-
|
|
100
|
-
// Parse semver (basic parsing, assumes format X.Y.Z)
|
|
101
|
-
const match = version.match(/^(\d+)\.(\d+)\.(\d+)(?:-.*)?$/);
|
|
102
|
-
if (!match) {
|
|
103
|
-
throw new Error(`Invalid version format: ${version}. Expected semver format (e.g., 1.2.3)`);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const [, major, minor, patch] = match;
|
|
107
|
-
|
|
108
|
-
switch (config.stability) {
|
|
109
|
-
case 'major':
|
|
110
|
-
// Pichu: Only allow major releases (X.0.0)
|
|
111
|
-
return minor === '0' && patch === '0';
|
|
112
|
-
|
|
113
|
-
case 'minor':
|
|
114
|
-
// Cleffa: Allow minor releases (X.Y.0)
|
|
115
|
-
return patch === '0';
|
|
116
|
-
|
|
117
|
-
case 'patch':
|
|
118
|
-
// Magby: Allow all versions including patches
|
|
119
|
-
return true;
|
|
120
|
-
|
|
121
|
-
default:
|
|
122
|
-
throw new Error(`Unknown stability level: ${config.stability}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Get the appropriate network for a given version
|
|
128
|
-
* Returns the most restrictive network that accepts this version
|
|
129
|
-
* @param version - Semver version string
|
|
130
|
-
* @returns Recommended network name
|
|
131
|
-
*/
|
|
132
|
-
export function getRecommendedNetworkForVersion(version: string): WebVHNetworkName {
|
|
133
|
-
// Try networks from most restrictive to least restrictive
|
|
134
|
-
if (validateVersionForNetwork(version, 'pichu')) {
|
|
135
|
-
return 'pichu';
|
|
136
|
-
}
|
|
137
|
-
if (validateVersionForNetwork(version, 'cleffa')) {
|
|
138
|
-
return 'cleffa';
|
|
139
|
-
}
|
|
140
|
-
return 'magby';
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Get the corresponding Bitcoin network for a WebVH network
|
|
145
|
-
* This ensures consistent environment mapping across the stack:
|
|
146
|
-
* - magby (dev) → regtest (dev)
|
|
147
|
-
* - cleffa (staging) → signet (staging)
|
|
148
|
-
* - pichu (production) → mainnet (production)
|
|
149
|
-
*
|
|
150
|
-
* @param webvhNetwork - WebVH network name
|
|
151
|
-
* @returns Corresponding Bitcoin network name
|
|
152
|
-
*/
|
|
153
|
-
export function getBitcoinNetworkForWebVH(webvhNetwork: WebVHNetworkName): BitcoinNetworkName {
|
|
154
|
-
return getNetworkConfig(webvhNetwork).bitcoinNetwork;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Get the WebVH network that corresponds to a Bitcoin network
|
|
159
|
-
* This is the reverse mapping of getBitcoinNetworkForWebVH
|
|
160
|
-
*
|
|
161
|
-
* @param bitcoinNetwork - Bitcoin network name
|
|
162
|
-
* @returns Corresponding WebVH network name, or undefined if no mapping exists
|
|
163
|
-
*/
|
|
164
|
-
export function getWebVHNetworkForBitcoin(bitcoinNetwork: BitcoinNetworkName): WebVHNetworkName | undefined {
|
|
165
|
-
switch (bitcoinNetwork) {
|
|
166
|
-
case 'mainnet':
|
|
167
|
-
return 'pichu';
|
|
168
|
-
case 'signet':
|
|
169
|
-
return 'cleffa';
|
|
170
|
-
case 'regtest':
|
|
171
|
-
return 'magby';
|
|
172
|
-
default:
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
175
|
-
}
|
package/src/utils/EventLogger.ts
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event Logger - Integration between Event System and Logger
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Auto-subscribe to EventEmitter events
|
|
6
|
-
* - Configurable logging levels per event type
|
|
7
|
-
* - Automatic metrics extraction from events
|
|
8
|
-
* - Performance tracking
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { EventEmitter } from '../events/EventEmitter';
|
|
12
|
-
import type { OriginalsEvent, EventTypeMap } from '../events/types';
|
|
13
|
-
import type { Logger, LogLevel } from './Logger';
|
|
14
|
-
import type { MetricsCollector } from './MetricsCollector';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Event logging configuration
|
|
18
|
-
*/
|
|
19
|
-
export interface EventLoggingConfig {
|
|
20
|
-
'asset:created'?: LogLevel | false;
|
|
21
|
-
'asset:migrated'?: LogLevel | false;
|
|
22
|
-
'asset:transferred'?: LogLevel | false;
|
|
23
|
-
'resource:published'?: LogLevel | false;
|
|
24
|
-
'credential:issued'?: LogLevel | false;
|
|
25
|
-
'resource:version:created'?: LogLevel | false;
|
|
26
|
-
'verification:completed'?: LogLevel | false;
|
|
27
|
-
'batch:started'?: LogLevel | false;
|
|
28
|
-
'batch:completed'?: LogLevel | false;
|
|
29
|
-
'batch:failed'?: LogLevel | false;
|
|
30
|
-
'migration:started'?: LogLevel | false;
|
|
31
|
-
'migration:validated'?: LogLevel | false;
|
|
32
|
-
'migration:checkpointed'?: LogLevel | false;
|
|
33
|
-
'migration:in_progress'?: LogLevel | false;
|
|
34
|
-
'migration:anchoring'?: LogLevel | false;
|
|
35
|
-
'migration:completed'?: LogLevel | false;
|
|
36
|
-
'migration:failed'?: LogLevel | false;
|
|
37
|
-
'migration:rolledback'?: LogLevel | false;
|
|
38
|
-
'migration:quarantine'?: LogLevel | false;
|
|
39
|
-
'batch:progress'?: LogLevel | false;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Default event logging configuration
|
|
44
|
-
*/
|
|
45
|
-
const DEFAULT_EVENT_CONFIG: EventLoggingConfig = {
|
|
46
|
-
'asset:created': 'info',
|
|
47
|
-
'asset:migrated': 'info',
|
|
48
|
-
'asset:transferred': 'info',
|
|
49
|
-
'resource:published': 'info',
|
|
50
|
-
'credential:issued': 'info',
|
|
51
|
-
'resource:version:created': 'info',
|
|
52
|
-
'verification:completed': 'info',
|
|
53
|
-
'batch:started': 'info',
|
|
54
|
-
'batch:completed': 'info',
|
|
55
|
-
'batch:failed': 'warn',
|
|
56
|
-
'migration:started': 'info',
|
|
57
|
-
'migration:validated': 'info',
|
|
58
|
-
'migration:checkpointed': 'info',
|
|
59
|
-
'migration:in_progress': 'info',
|
|
60
|
-
'migration:anchoring': 'info',
|
|
61
|
-
'migration:completed': 'info',
|
|
62
|
-
'migration:failed': 'warn',
|
|
63
|
-
'migration:rolledback': 'warn',
|
|
64
|
-
'migration:quarantine': 'error',
|
|
65
|
-
'batch:progress': 'debug'
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* EventLogger class for integrating events with logging and metrics
|
|
70
|
-
*/
|
|
71
|
-
export class EventLogger {
|
|
72
|
-
private config: EventLoggingConfig;
|
|
73
|
-
private unsubscribeFns: Array<() => void> = [];
|
|
74
|
-
|
|
75
|
-
constructor(
|
|
76
|
-
private logger: Logger,
|
|
77
|
-
private metricsCollector: MetricsCollector
|
|
78
|
-
) {
|
|
79
|
-
this.config = { ...DEFAULT_EVENT_CONFIG };
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Subscribe to all events from an EventEmitter
|
|
84
|
-
*/
|
|
85
|
-
subscribeToEvents(eventEmitter: EventEmitter): void {
|
|
86
|
-
// Subscribe to each event type
|
|
87
|
-
const eventTypes: Array<keyof EventTypeMap> = [
|
|
88
|
-
'asset:created',
|
|
89
|
-
'asset:migrated',
|
|
90
|
-
'asset:transferred',
|
|
91
|
-
'resource:published',
|
|
92
|
-
'credential:issued',
|
|
93
|
-
'resource:version:created',
|
|
94
|
-
'verification:completed',
|
|
95
|
-
'batch:started',
|
|
96
|
-
'batch:completed',
|
|
97
|
-
'batch:failed'
|
|
98
|
-
];
|
|
99
|
-
|
|
100
|
-
for (const eventType of eventTypes) {
|
|
101
|
-
const unsubscribe = eventEmitter.on(eventType, (event) => {
|
|
102
|
-
this.handleEvent(event);
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
this.unsubscribeFns.push(unsubscribe);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Configure which events to log at which levels
|
|
111
|
-
*/
|
|
112
|
-
configureEventLogging(config: EventLoggingConfig): void {
|
|
113
|
-
this.config = { ...this.config, ...config };
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Unsubscribe from all events
|
|
118
|
-
*/
|
|
119
|
-
unsubscribe(): void {
|
|
120
|
-
for (const unsubscribe of this.unsubscribeFns) {
|
|
121
|
-
unsubscribe();
|
|
122
|
-
}
|
|
123
|
-
this.unsubscribeFns = [];
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Handle an event - log and extract metrics
|
|
128
|
-
*/
|
|
129
|
-
private handleEvent(event: OriginalsEvent): void {
|
|
130
|
-
const eventType = event.type;
|
|
131
|
-
const logLevel = this.config[eventType];
|
|
132
|
-
|
|
133
|
-
// Always extract metrics from the event (even if logging is disabled)
|
|
134
|
-
this.extractMetrics(event);
|
|
135
|
-
|
|
136
|
-
// Skip logging if disabled for this event type
|
|
137
|
-
if (logLevel === false) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Log the event
|
|
142
|
-
if (logLevel) {
|
|
143
|
-
this.logEvent(event, logLevel);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Log an event at the specified level
|
|
149
|
-
*/
|
|
150
|
-
private logEvent(event: OriginalsEvent, level: LogLevel): void {
|
|
151
|
-
let message: string;
|
|
152
|
-
let data: Record<string, any>;
|
|
153
|
-
|
|
154
|
-
switch (event.type) {
|
|
155
|
-
case 'asset:created':
|
|
156
|
-
message = 'Asset created';
|
|
157
|
-
data = {
|
|
158
|
-
assetId: event.asset.id,
|
|
159
|
-
layer: event.asset.layer,
|
|
160
|
-
resourceCount: event.asset.resourceCount
|
|
161
|
-
};
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
case 'asset:migrated':
|
|
165
|
-
message = 'Asset migrated';
|
|
166
|
-
data = {
|
|
167
|
-
assetId: event.asset.id,
|
|
168
|
-
fromLayer: event.asset.fromLayer,
|
|
169
|
-
toLayer: event.asset.toLayer,
|
|
170
|
-
details: event.details
|
|
171
|
-
};
|
|
172
|
-
break;
|
|
173
|
-
|
|
174
|
-
case 'asset:transferred':
|
|
175
|
-
message = 'Asset transferred';
|
|
176
|
-
data = {
|
|
177
|
-
assetId: event.asset.id,
|
|
178
|
-
layer: event.asset.layer,
|
|
179
|
-
from: event.from,
|
|
180
|
-
to: event.to,
|
|
181
|
-
transactionId: event.transactionId
|
|
182
|
-
};
|
|
183
|
-
break;
|
|
184
|
-
|
|
185
|
-
case 'resource:published':
|
|
186
|
-
message = 'Resource published';
|
|
187
|
-
data = {
|
|
188
|
-
assetId: event.asset.id,
|
|
189
|
-
resourceId: event.resource.id,
|
|
190
|
-
url: event.resource.url,
|
|
191
|
-
publisherDid: event.publisherDid
|
|
192
|
-
};
|
|
193
|
-
break;
|
|
194
|
-
|
|
195
|
-
case 'credential:issued':
|
|
196
|
-
message = 'Credential issued';
|
|
197
|
-
data = {
|
|
198
|
-
assetId: event.asset.id,
|
|
199
|
-
credentialType: event.credential.type,
|
|
200
|
-
issuer: event.credential.issuer
|
|
201
|
-
};
|
|
202
|
-
break;
|
|
203
|
-
|
|
204
|
-
case 'resource:version:created':
|
|
205
|
-
message = 'Resource version created';
|
|
206
|
-
data = {
|
|
207
|
-
assetId: event.asset.id,
|
|
208
|
-
resourceId: event.resource.id,
|
|
209
|
-
fromVersion: event.resource.fromVersion,
|
|
210
|
-
toVersion: event.resource.toVersion,
|
|
211
|
-
changes: event.changes
|
|
212
|
-
};
|
|
213
|
-
break;
|
|
214
|
-
|
|
215
|
-
case 'verification:completed':
|
|
216
|
-
message = 'Verification completed';
|
|
217
|
-
data = {
|
|
218
|
-
assetId: event.asset.id,
|
|
219
|
-
result: event.result,
|
|
220
|
-
checks: event.checks
|
|
221
|
-
};
|
|
222
|
-
break;
|
|
223
|
-
|
|
224
|
-
case 'batch:started':
|
|
225
|
-
message = 'Batch operation started';
|
|
226
|
-
data = {
|
|
227
|
-
batchId: event.batchId,
|
|
228
|
-
operation: event.operation,
|
|
229
|
-
itemCount: event.itemCount
|
|
230
|
-
};
|
|
231
|
-
break;
|
|
232
|
-
|
|
233
|
-
case 'batch:completed':
|
|
234
|
-
message = 'Batch operation completed';
|
|
235
|
-
data = {
|
|
236
|
-
batchId: event.batchId,
|
|
237
|
-
operation: event.operation,
|
|
238
|
-
results: event.results
|
|
239
|
-
};
|
|
240
|
-
break;
|
|
241
|
-
|
|
242
|
-
case 'batch:failed':
|
|
243
|
-
message = 'Batch operation failed';
|
|
244
|
-
data = {
|
|
245
|
-
batchId: event.batchId,
|
|
246
|
-
operation: event.operation,
|
|
247
|
-
error: event.error,
|
|
248
|
-
partialResults: event.partialResults
|
|
249
|
-
};
|
|
250
|
-
break;
|
|
251
|
-
|
|
252
|
-
default:
|
|
253
|
-
return; // Unknown event type
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
// Call the appropriate log method based on level
|
|
257
|
-
switch (level) {
|
|
258
|
-
case 'debug':
|
|
259
|
-
this.logger.debug(message, data);
|
|
260
|
-
break;
|
|
261
|
-
case 'info':
|
|
262
|
-
this.logger.info(message, data);
|
|
263
|
-
break;
|
|
264
|
-
case 'warn':
|
|
265
|
-
this.logger.warn(message, data);
|
|
266
|
-
break;
|
|
267
|
-
case 'error':
|
|
268
|
-
this.logger.error(message, undefined, data);
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Extract metrics from an event
|
|
275
|
-
*/
|
|
276
|
-
private extractMetrics(event: OriginalsEvent): void {
|
|
277
|
-
switch (event.type) {
|
|
278
|
-
case 'asset:created':
|
|
279
|
-
this.metricsCollector.recordAssetCreated();
|
|
280
|
-
break;
|
|
281
|
-
|
|
282
|
-
case 'asset:migrated':
|
|
283
|
-
this.metricsCollector.recordMigration(
|
|
284
|
-
event.asset.fromLayer,
|
|
285
|
-
event.asset.toLayer
|
|
286
|
-
);
|
|
287
|
-
break;
|
|
288
|
-
|
|
289
|
-
case 'asset:transferred':
|
|
290
|
-
this.metricsCollector.recordTransfer();
|
|
291
|
-
break;
|
|
292
|
-
|
|
293
|
-
// Other events don't need explicit metric recording
|
|
294
|
-
// as they're tracked elsewhere
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|