@arkade-os/sdk 0.4.27 → 0.4.28
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/README.md +31 -100
- package/dist/adapters/asyncStorage.cjs +48 -0
- package/dist/adapters/asyncStorage.cjs.map +1 -0
- package/dist/adapters/asyncStorage.d.cts +16 -0
- package/dist/{types/storage → adapters}/asyncStorage.d.ts +5 -2
- package/dist/adapters/asyncStorage.js +46 -0
- package/dist/adapters/asyncStorage.js.map +1 -0
- package/dist/adapters/expo.cjs +19 -0
- package/dist/adapters/expo.cjs.map +1 -0
- package/dist/adapters/expo.d.cts +48 -0
- package/dist/adapters/expo.d.ts +48 -0
- package/dist/adapters/expo.js +6 -0
- package/dist/adapters/expo.js.map +1 -0
- package/dist/adapters/fileSystem.cjs +116 -0
- package/dist/adapters/fileSystem.cjs.map +1 -0
- package/dist/adapters/fileSystem.d.cts +17 -0
- package/dist/{types/storage → adapters}/fileSystem.d.ts +5 -2
- package/dist/adapters/fileSystem.js +93 -0
- package/dist/adapters/fileSystem.js.map +1 -0
- package/dist/adapters/indexedDB.cjs +103 -0
- package/dist/adapters/indexedDB.cjs.map +1 -0
- package/dist/adapters/indexedDB.d.cts +18 -0
- package/dist/{types/storage → adapters}/indexedDB.d.ts +5 -2
- package/dist/adapters/indexedDB.js +101 -0
- package/dist/adapters/indexedDB.js.map +1 -0
- package/dist/adapters/localStorage.cjs +50 -0
- package/dist/adapters/localStorage.cjs.map +1 -0
- package/dist/{types/storage/inMemory.d.ts → adapters/localStorage.d.cts} +6 -3
- package/dist/{types/storage → adapters}/localStorage.d.ts +5 -2
- package/dist/adapters/localStorage.js +48 -0
- package/dist/adapters/localStorage.js.map +1 -0
- package/dist/ark-TZ1gXAXU.d.cts +3880 -0
- package/dist/ark-TZ1gXAXU.d.ts +3880 -0
- package/dist/{types/worker/expo/asyncStorageTaskQueue.d.ts → asyncStorageTaskQueue-Cb1F_Z9s.d.ts} +6 -3
- package/dist/asyncStorageTaskQueue-EFqSmYTg.d.cts +49 -0
- package/dist/chunk-5BLDMQED.cjs +18 -0
- package/dist/chunk-5BLDMQED.cjs.map +1 -0
- package/dist/chunk-5PG7DV7A.cjs +805 -0
- package/dist/chunk-5PG7DV7A.cjs.map +1 -0
- package/dist/chunk-A3EMF7RN.js +95 -0
- package/dist/chunk-A3EMF7RN.js.map +1 -0
- package/dist/chunk-ADV27S4N.cjs +2701 -0
- package/dist/chunk-ADV27S4N.cjs.map +1 -0
- package/dist/chunk-BQLHADL7.js +13805 -0
- package/dist/chunk-BQLHADL7.js.map +1 -0
- package/dist/chunk-CFZMTDWI.js +209 -0
- package/dist/chunk-CFZMTDWI.js.map +1 -0
- package/dist/chunk-FG5ACJJW.cjs +212 -0
- package/dist/chunk-FG5ACJJW.cjs.map +1 -0
- package/dist/chunk-HW3JJ323.js +768 -0
- package/dist/chunk-HW3JJ323.js.map +1 -0
- package/dist/chunk-I3DGUUCT.cjs +838 -0
- package/dist/chunk-I3DGUUCT.cjs.map +1 -0
- package/dist/chunk-IPX2R7FR.cjs +100 -0
- package/dist/chunk-IPX2R7FR.cjs.map +1 -0
- package/dist/chunk-NSBPE2FW.js +15 -0
- package/dist/chunk-NSBPE2FW.js.map +1 -0
- package/dist/chunk-T64LAI7L.js +829 -0
- package/dist/chunk-T64LAI7L.js.map +1 -0
- package/dist/chunk-ZBUDLTBO.js +2671 -0
- package/dist/chunk-ZBUDLTBO.js.map +1 -0
- package/dist/chunk-ZLO6NETT.cjs +13910 -0
- package/dist/chunk-ZLO6NETT.cjs.map +1 -0
- package/dist/contracts/handlers/index.cjs +26 -0
- package/dist/contracts/handlers/index.cjs.map +1 -0
- package/dist/contracts/handlers/index.d.cts +7 -0
- package/dist/contracts/handlers/index.d.ts +7 -0
- package/dist/contracts/handlers/index.js +5 -0
- package/dist/contracts/handlers/index.js.map +1 -0
- package/dist/delegate-BFZs69hp.d.cts +84 -0
- package/dist/delegate-aaVGfWsV.d.ts +84 -0
- package/dist/index-B22cA64m.d.cts +199 -0
- package/dist/{types/storage/index.d.ts → index-C0IanN1m.d.cts} +3 -1
- package/dist/index-C0IanN1m.d.ts +11 -0
- package/dist/index-NDla_UoJ.d.ts +199 -0
- package/dist/index.cjs +480 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3343 -0
- package/dist/index.d.ts +3343 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/realm/index.cjs +513 -0
- package/dist/repositories/realm/index.cjs.map +1 -0
- package/dist/repositories/realm/index.d.cts +217 -0
- package/dist/{types/repositories/realm/schemas.d.ts → repositories/realm/index.d.ts} +80 -112
- package/dist/repositories/realm/index.js +507 -0
- package/dist/repositories/realm/index.js.map +1 -0
- package/dist/repositories/sqlite/index.cjs +588 -0
- package/dist/repositories/sqlite/index.cjs.map +1 -0
- package/dist/repositories/sqlite/index.d.cts +118 -0
- package/dist/{types/repositories/sqlite/walletRepository.d.ts → repositories/sqlite/index.d.ts} +58 -5
- package/dist/repositories/sqlite/index.js +585 -0
- package/dist/repositories/sqlite/index.js.map +1 -0
- package/dist/taskRunner-C6Ff4OaU.d.cts +114 -0
- package/dist/taskRunner-yvPN8Z0K.d.ts +114 -0
- package/dist/wallet/expo/background.cjs +93 -0
- package/dist/wallet/expo/background.cjs.map +1 -0
- package/dist/wallet/expo/background.d.cts +84 -0
- package/dist/wallet/expo/background.d.ts +84 -0
- package/dist/wallet/expo/background.js +68 -0
- package/dist/wallet/expo/background.js.map +1 -0
- package/dist/wallet/expo/index.cjs +171 -0
- package/dist/wallet/expo/index.cjs.map +1 -0
- package/dist/wallet/expo/index.d.cts +122 -0
- package/dist/{types/wallet/expo/wallet.d.ts → wallet/expo/index.d.ts} +45 -22
- package/dist/wallet/expo/index.js +169 -0
- package/dist/wallet/expo/index.js.map +1 -0
- package/dist/wallet-AF-p-OWj.d.cts +774 -0
- package/dist/wallet-D9NBRqvC.d.ts +774 -0
- package/dist/worker/expo/index.cjs +140 -0
- package/dist/worker/expo/index.cjs.map +1 -0
- package/dist/worker/expo/index.d.cts +29 -0
- package/dist/worker/expo/index.d.ts +29 -0
- package/dist/worker/expo/index.js +121 -0
- package/dist/worker/expo/index.js.map +1 -0
- package/package.json +110 -76
- package/dist/cjs/adapters/asyncStorage.js +0 -5
- package/dist/cjs/adapters/expo.js +0 -8
- package/dist/cjs/adapters/fileSystem.js +0 -5
- package/dist/cjs/adapters/indexedDB.js +0 -5
- package/dist/cjs/adapters/localStorage.js +0 -5
- package/dist/cjs/arkfee/celenv.js +0 -43
- package/dist/cjs/arkfee/estimator.js +0 -143
- package/dist/cjs/arkfee/index.js +0 -5
- package/dist/cjs/arkfee/types.js +0 -26
- package/dist/cjs/arknote/index.js +0 -128
- package/dist/cjs/bip322/index.js +0 -270
- package/dist/cjs/contracts/arkcontract.js +0 -147
- package/dist/cjs/contracts/contractManager.js +0 -649
- package/dist/cjs/contracts/contractWatcher.js +0 -598
- package/dist/cjs/contracts/handlers/default.js +0 -93
- package/dist/cjs/contracts/handlers/delegate.js +0 -90
- package/dist/cjs/contracts/handlers/helpers.js +0 -115
- package/dist/cjs/contracts/handlers/index.js +0 -19
- package/dist/cjs/contracts/handlers/registry.js +0 -89
- package/dist/cjs/contracts/handlers/vhtlc.js +0 -194
- package/dist/cjs/contracts/index.js +0 -41
- package/dist/cjs/contracts/types.js +0 -2
- package/dist/cjs/contracts/vtxoOwnership.js +0 -78
- package/dist/cjs/extension/asset/assetGroup.js +0 -228
- package/dist/cjs/extension/asset/assetId.js +0 -152
- package/dist/cjs/extension/asset/assetInput.js +0 -222
- package/dist/cjs/extension/asset/assetOutput.js +0 -174
- package/dist/cjs/extension/asset/assetRef.js +0 -148
- package/dist/cjs/extension/asset/index.js +0 -23
- package/dist/cjs/extension/asset/metadata.js +0 -187
- package/dist/cjs/extension/asset/packet.js +0 -114
- package/dist/cjs/extension/asset/types.js +0 -22
- package/dist/cjs/extension/asset/utils.js +0 -105
- package/dist/cjs/extension/index.js +0 -254
- package/dist/cjs/extension/packet.js +0 -20
- package/dist/cjs/forfeit.js +0 -45
- package/dist/cjs/identity/descriptor.js +0 -169
- package/dist/cjs/identity/descriptorProvider.js +0 -2
- package/dist/cjs/identity/hdCapableIdentity.js +0 -20
- package/dist/cjs/identity/index.js +0 -40
- package/dist/cjs/identity/seedIdentity.js +0 -477
- package/dist/cjs/identity/serialize.js +0 -171
- package/dist/cjs/identity/singleKey.js +0 -126
- package/dist/cjs/identity/staticDescriptorProvider.js +0 -65
- package/dist/cjs/index.js +0 -202
- package/dist/cjs/intent/index.js +0 -259
- package/dist/cjs/musig2/index.js +0 -11
- package/dist/cjs/musig2/keys.js +0 -57
- package/dist/cjs/musig2/nonces.js +0 -48
- package/dist/cjs/musig2/sign.js +0 -102
- package/dist/cjs/networks.js +0 -26
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/providers/ark.js +0 -577
- package/dist/cjs/providers/delegator.js +0 -85
- package/dist/cjs/providers/electrum.js +0 -869
- package/dist/cjs/providers/errors.js +0 -59
- package/dist/cjs/providers/expoArk.js +0 -82
- package/dist/cjs/providers/expoIndexer.js +0 -111
- package/dist/cjs/providers/expoUtils.js +0 -124
- package/dist/cjs/providers/indexer.js +0 -630
- package/dist/cjs/providers/onchain.js +0 -262
- package/dist/cjs/providers/utils.js +0 -121
- package/dist/cjs/repositories/contractRepository.js +0 -2
- package/dist/cjs/repositories/inMemory/contractRepository.js +0 -55
- package/dist/cjs/repositories/inMemory/walletRepository.js +0 -115
- package/dist/cjs/repositories/index.js +0 -34
- package/dist/cjs/repositories/indexedDB/contractRepository.js +0 -187
- package/dist/cjs/repositories/indexedDB/db.js +0 -19
- package/dist/cjs/repositories/indexedDB/manager.js +0 -100
- package/dist/cjs/repositories/indexedDB/schema.js +0 -204
- package/dist/cjs/repositories/indexedDB/walletRepository.js +0 -474
- package/dist/cjs/repositories/indexedDB/websqlAdapter.js +0 -144
- package/dist/cjs/repositories/migrations/contractRepositoryImpl.js +0 -127
- package/dist/cjs/repositories/migrations/fromStorageAdapter.js +0 -66
- package/dist/cjs/repositories/migrations/walletRepositoryImpl.js +0 -184
- package/dist/cjs/repositories/realm/contractRepository.js +0 -116
- package/dist/cjs/repositories/realm/index.js +0 -11
- package/dist/cjs/repositories/realm/schemas.js +0 -157
- package/dist/cjs/repositories/realm/types.js +0 -7
- package/dist/cjs/repositories/realm/walletRepository.js +0 -305
- package/dist/cjs/repositories/scriptFromAddress.js +0 -16
- package/dist/cjs/repositories/serialization.js +0 -82
- package/dist/cjs/repositories/sqlite/contractRepository.js +0 -135
- package/dist/cjs/repositories/sqlite/index.js +0 -7
- package/dist/cjs/repositories/sqlite/types.js +0 -2
- package/dist/cjs/repositories/sqlite/walletRepository.js +0 -441
- package/dist/cjs/repositories/walletRepository.js +0 -2
- package/dist/cjs/script/address.js +0 -108
- package/dist/cjs/script/base.js +0 -185
- package/dist/cjs/script/default.js +0 -57
- package/dist/cjs/script/delegate.js +0 -53
- package/dist/cjs/script/tapscript.js +0 -619
- package/dist/cjs/script/vhtlc.js +0 -170
- package/dist/cjs/storage/asyncStorage.js +0 -50
- package/dist/cjs/storage/fileSystem.js +0 -141
- package/dist/cjs/storage/inMemory.js +0 -24
- package/dist/cjs/storage/index.js +0 -2
- package/dist/cjs/storage/indexedDB.js +0 -101
- package/dist/cjs/storage/localStorage.js +0 -51
- package/dist/cjs/tree/signingSession.js +0 -229
- package/dist/cjs/tree/txTree.js +0 -192
- package/dist/cjs/tree/validation.js +0 -107
- package/dist/cjs/utils/anchor.js +0 -35
- package/dist/cjs/utils/arkTransaction.js +0 -271
- package/dist/cjs/utils/bip21.js +0 -127
- package/dist/cjs/utils/syncCursors.js +0 -128
- package/dist/cjs/utils/timelock.js +0 -59
- package/dist/cjs/utils/transaction.js +0 -28
- package/dist/cjs/utils/transactionHistory.js +0 -183
- package/dist/cjs/utils/txSizeEstimator.js +0 -132
- package/dist/cjs/utils/unknownFields.js +0 -174
- package/dist/cjs/wallet/asset-manager.js +0 -330
- package/dist/cjs/wallet/asset.js +0 -119
- package/dist/cjs/wallet/batch.js +0 -183
- package/dist/cjs/wallet/delegator.js +0 -308
- package/dist/cjs/wallet/expo/background.js +0 -116
- package/dist/cjs/wallet/expo/index.js +0 -9
- package/dist/cjs/wallet/expo/wallet.js +0 -230
- package/dist/cjs/wallet/hdDescriptorProvider.js +0 -188
- package/dist/cjs/wallet/index.js +0 -82
- package/dist/cjs/wallet/inputSignerRouter.js +0 -98
- package/dist/cjs/wallet/onchain.js +0 -290
- package/dist/cjs/wallet/ramps.js +0 -216
- package/dist/cjs/wallet/serviceWorker/wallet-message-handler.js +0 -953
- package/dist/cjs/wallet/serviceWorker/wallet.js +0 -1174
- package/dist/cjs/wallet/signingErrors.js +0 -32
- package/dist/cjs/wallet/unroll.js +0 -293
- package/dist/cjs/wallet/utils.js +0 -111
- package/dist/cjs/wallet/validation.js +0 -154
- package/dist/cjs/wallet/vtxo-manager.js +0 -1142
- package/dist/cjs/wallet/wallet.js +0 -2195
- package/dist/cjs/wallet/walletReceiveRotator.js +0 -547
- package/dist/cjs/worker/browser/service-worker-manager.js +0 -183
- package/dist/cjs/worker/browser/utils.js +0 -67
- package/dist/cjs/worker/errors.js +0 -16
- package/dist/cjs/worker/expo/asyncStorageTaskQueue.js +0 -78
- package/dist/cjs/worker/expo/index.js +0 -13
- package/dist/cjs/worker/expo/processors/contractPollProcessor.js +0 -62
- package/dist/cjs/worker/expo/processors/index.js +0 -6
- package/dist/cjs/worker/expo/taskQueue.js +0 -41
- package/dist/cjs/worker/expo/taskRunner.js +0 -73
- package/dist/cjs/worker/messageBus.js +0 -474
- package/dist/esm/adapters/asyncStorage.js +0 -1
- package/dist/esm/adapters/expo.js +0 -3
- package/dist/esm/adapters/fileSystem.js +0 -1
- package/dist/esm/adapters/indexedDB.js +0 -1
- package/dist/esm/adapters/localStorage.js +0 -1
- package/dist/esm/arkfee/celenv.js +0 -40
- package/dist/esm/arkfee/estimator.js +0 -139
- package/dist/esm/arkfee/index.js +0 -1
- package/dist/esm/arkfee/types.js +0 -22
- package/dist/esm/arknote/index.js +0 -124
- package/dist/esm/bip322/index.js +0 -267
- package/dist/esm/contracts/arkcontract.js +0 -140
- package/dist/esm/contracts/contractManager.js +0 -645
- package/dist/esm/contracts/contractWatcher.js +0 -594
- package/dist/esm/contracts/handlers/default.js +0 -90
- package/dist/esm/contracts/handlers/delegate.js +0 -87
- package/dist/esm/contracts/handlers/helpers.js +0 -110
- package/dist/esm/contracts/handlers/index.js +0 -12
- package/dist/esm/contracts/handlers/registry.js +0 -86
- package/dist/esm/contracts/handlers/vhtlc.js +0 -191
- package/dist/esm/contracts/index.js +0 -13
- package/dist/esm/contracts/types.js +0 -1
- package/dist/esm/contracts/vtxoOwnership.js +0 -69
- package/dist/esm/extension/asset/assetGroup.js +0 -224
- package/dist/esm/extension/asset/assetId.js +0 -148
- package/dist/esm/extension/asset/assetInput.js +0 -217
- package/dist/esm/extension/asset/assetOutput.js +0 -169
- package/dist/esm/extension/asset/assetRef.js +0 -144
- package/dist/esm/extension/asset/index.js +0 -8
- package/dist/esm/extension/asset/metadata.js +0 -182
- package/dist/esm/extension/asset/packet.js +0 -110
- package/dist/esm/extension/asset/types.js +0 -19
- package/dist/esm/extension/asset/utils.js +0 -99
- package/dist/esm/extension/index.js +0 -248
- package/dist/esm/extension/packet.js +0 -16
- package/dist/esm/forfeit.js +0 -41
- package/dist/esm/identity/descriptor.js +0 -161
- package/dist/esm/identity/descriptorProvider.js +0 -1
- package/dist/esm/identity/hdCapableIdentity.js +0 -17
- package/dist/esm/identity/index.js +0 -13
- package/dist/esm/identity/seedIdentity.js +0 -469
- package/dist/esm/identity/serialize.js +0 -164
- package/dist/esm/identity/singleKey.js +0 -121
- package/dist/esm/identity/staticDescriptorProvider.js +0 -61
- package/dist/esm/index.js +0 -87
- package/dist/esm/intent/index.js +0 -255
- package/dist/esm/musig2/index.js +0 -3
- package/dist/esm/musig2/keys.js +0 -21
- package/dist/esm/musig2/nonces.js +0 -11
- package/dist/esm/musig2/sign.js +0 -63
- package/dist/esm/networks.js +0 -22
- package/dist/esm/package.json +0 -3
- package/dist/esm/providers/ark.js +0 -572
- package/dist/esm/providers/delegator.js +0 -81
- package/dist/esm/providers/electrum.js +0 -864
- package/dist/esm/providers/errors.js +0 -54
- package/dist/esm/providers/expoArk.js +0 -78
- package/dist/esm/providers/expoIndexer.js +0 -107
- package/dist/esm/providers/expoUtils.js +0 -87
- package/dist/esm/providers/indexer.js +0 -626
- package/dist/esm/providers/onchain.js +0 -258
- package/dist/esm/providers/utils.js +0 -117
- package/dist/esm/repositories/contractRepository.js +0 -1
- package/dist/esm/repositories/inMemory/contractRepository.js +0 -51
- package/dist/esm/repositories/inMemory/walletRepository.js +0 -111
- package/dist/esm/repositories/index.js +0 -10
- package/dist/esm/repositories/indexedDB/contractRepository.js +0 -183
- package/dist/esm/repositories/indexedDB/db.js +0 -4
- package/dist/esm/repositories/indexedDB/manager.js +0 -95
- package/dist/esm/repositories/indexedDB/schema.js +0 -199
- package/dist/esm/repositories/indexedDB/walletRepository.js +0 -470
- package/dist/esm/repositories/indexedDB/websqlAdapter.js +0 -138
- package/dist/esm/repositories/migrations/contractRepositoryImpl.js +0 -121
- package/dist/esm/repositories/migrations/fromStorageAdapter.js +0 -58
- package/dist/esm/repositories/migrations/walletRepositoryImpl.js +0 -180
- package/dist/esm/repositories/realm/contractRepository.js +0 -112
- package/dist/esm/repositories/realm/index.js +0 -3
- package/dist/esm/repositories/realm/schemas.js +0 -153
- package/dist/esm/repositories/realm/types.js +0 -6
- package/dist/esm/repositories/realm/walletRepository.js +0 -301
- package/dist/esm/repositories/scriptFromAddress.js +0 -13
- package/dist/esm/repositories/serialization.js +0 -67
- package/dist/esm/repositories/sqlite/contractRepository.js +0 -131
- package/dist/esm/repositories/sqlite/index.js +0 -2
- package/dist/esm/repositories/sqlite/types.js +0 -1
- package/dist/esm/repositories/sqlite/walletRepository.js +0 -437
- package/dist/esm/repositories/walletRepository.js +0 -1
- package/dist/esm/script/address.js +0 -104
- package/dist/esm/script/base.js +0 -179
- package/dist/esm/script/default.js +0 -54
- package/dist/esm/script/delegate.js +0 -50
- package/dist/esm/script/tapscript.js +0 -615
- package/dist/esm/script/vhtlc.js +0 -167
- package/dist/esm/storage/asyncStorage.js +0 -46
- package/dist/esm/storage/fileSystem.js +0 -104
- package/dist/esm/storage/inMemory.js +0 -20
- package/dist/esm/storage/index.js +0 -1
- package/dist/esm/storage/indexedDB.js +0 -97
- package/dist/esm/storage/localStorage.js +0 -47
- package/dist/esm/tree/signingSession.js +0 -191
- package/dist/esm/tree/txTree.js +0 -188
- package/dist/esm/tree/validation.js +0 -101
- package/dist/esm/utils/anchor.js +0 -31
- package/dist/esm/utils/arkTransaction.js +0 -264
- package/dist/esm/utils/bip21.js +0 -123
- package/dist/esm/utils/syncCursors.js +0 -119
- package/dist/esm/utils/timelock.js +0 -22
- package/dist/esm/utils/transaction.js +0 -24
- package/dist/esm/utils/transactionHistory.js +0 -180
- package/dist/esm/utils/txSizeEstimator.js +0 -128
- package/dist/esm/utils/unknownFields.js +0 -169
- package/dist/esm/wallet/asset-manager.js +0 -325
- package/dist/esm/wallet/asset.js +0 -113
- package/dist/esm/wallet/batch.js +0 -180
- package/dist/esm/wallet/delegator.js +0 -303
- package/dist/esm/wallet/expo/background.js +0 -111
- package/dist/esm/wallet/expo/index.js +0 -2
- package/dist/esm/wallet/expo/wallet.js +0 -193
- package/dist/esm/wallet/hdDescriptorProvider.js +0 -184
- package/dist/esm/wallet/index.js +0 -75
- package/dist/esm/wallet/inputSignerRouter.js +0 -94
- package/dist/esm/wallet/onchain.js +0 -285
- package/dist/esm/wallet/ramps.js +0 -212
- package/dist/esm/wallet/serviceWorker/wallet-message-handler.js +0 -946
- package/dist/esm/wallet/serviceWorker/wallet.js +0 -1169
- package/dist/esm/wallet/signingErrors.js +0 -27
- package/dist/esm/wallet/unroll.js +0 -289
- package/dist/esm/wallet/utils.js +0 -103
- package/dist/esm/wallet/validation.js +0 -142
- package/dist/esm/wallet/vtxo-manager.js +0 -1136
- package/dist/esm/wallet/wallet.js +0 -2186
- package/dist/esm/wallet/walletReceiveRotator.js +0 -540
- package/dist/esm/worker/browser/service-worker-manager.js +0 -177
- package/dist/esm/worker/browser/utils.js +0 -63
- package/dist/esm/worker/errors.js +0 -11
- package/dist/esm/worker/expo/asyncStorageTaskQueue.js +0 -74
- package/dist/esm/worker/expo/index.js +0 -4
- package/dist/esm/worker/expo/processors/contractPollProcessor.js +0 -59
- package/dist/esm/worker/expo/processors/index.js +0 -1
- package/dist/esm/worker/expo/taskQueue.js +0 -37
- package/dist/esm/worker/expo/taskRunner.js +0 -69
- package/dist/esm/worker/messageBus.js +0 -470
- package/dist/types/adapters/asyncStorage.d.ts +0 -2
- package/dist/types/adapters/expo.d.ts +0 -4
- package/dist/types/adapters/fileSystem.d.ts +0 -2
- package/dist/types/adapters/indexedDB.d.ts +0 -2
- package/dist/types/adapters/localStorage.d.ts +0 -2
- package/dist/types/arkfee/celenv.d.ts +0 -25
- package/dist/types/arkfee/estimator.d.ts +0 -49
- package/dist/types/arkfee/index.d.ts +0 -2
- package/dist/types/arkfee/types.d.ts +0 -38
- package/dist/types/arknote/index.d.ts +0 -84
- package/dist/types/bip322/index.d.ts +0 -55
- package/dist/types/contracts/arkcontract.d.ts +0 -99
- package/dist/types/contracts/contractManager.d.ts +0 -411
- package/dist/types/contracts/contractWatcher.d.ts +0 -217
- package/dist/types/contracts/handlers/default.d.ts +0 -19
- package/dist/types/contracts/handlers/delegate.d.ts +0 -21
- package/dist/types/contracts/handlers/helpers.d.ts +0 -19
- package/dist/types/contracts/handlers/index.d.ts +0 -7
- package/dist/types/contracts/handlers/registry.d.ts +0 -65
- package/dist/types/contracts/handlers/vhtlc.d.ts +0 -32
- package/dist/types/contracts/index.d.ts +0 -14
- package/dist/types/contracts/types.d.ts +0 -250
- package/dist/types/contracts/vtxoOwnership.d.ts +0 -33
- package/dist/types/extension/asset/assetGroup.d.ts +0 -119
- package/dist/types/extension/asset/assetId.d.ts +0 -83
- package/dist/types/extension/asset/assetInput.d.ts +0 -64
- package/dist/types/extension/asset/assetOutput.d.ts +0 -54
- package/dist/types/extension/asset/assetRef.d.ts +0 -91
- package/dist/types/extension/asset/index.d.ts +0 -8
- package/dist/types/extension/asset/metadata.d.ts +0 -52
- package/dist/types/extension/asset/packet.d.ts +0 -41
- package/dist/types/extension/asset/types.d.ts +0 -16
- package/dist/types/extension/asset/utils.d.ts +0 -21
- package/dist/types/extension/index.d.ts +0 -56
- package/dist/types/extension/packet.d.ts +0 -21
- package/dist/types/forfeit.d.ts +0 -18
- package/dist/types/identity/descriptor.d.ts +0 -61
- package/dist/types/identity/descriptorProvider.d.ts +0 -42
- package/dist/types/identity/hdCapableIdentity.d.ts +0 -71
- package/dist/types/identity/index.d.ts +0 -57
- package/dist/types/identity/seedIdentity.d.ts +0 -270
- package/dist/types/identity/serialize.d.ts +0 -96
- package/dist/types/identity/singleKey.d.ts +0 -62
- package/dist/types/identity/staticDescriptorProvider.d.ts +0 -18
- package/dist/types/index.d.ts +0 -59
- package/dist/types/intent/index.d.ts +0 -86
- package/dist/types/musig2/index.d.ts +0 -4
- package/dist/types/musig2/keys.d.ts +0 -9
- package/dist/types/musig2/nonces.d.ts +0 -14
- package/dist/types/musig2/sign.d.ts +0 -27
- package/dist/types/networks.d.ts +0 -16
- package/dist/types/providers/ark.d.ts +0 -369
- package/dist/types/providers/delegator.d.ts +0 -82
- package/dist/types/providers/electrum.d.ts +0 -312
- package/dist/types/providers/errors.d.ts +0 -13
- package/dist/types/providers/expoArk.d.ts +0 -22
- package/dist/types/providers/expoIndexer.d.ts +0 -18
- package/dist/types/providers/expoUtils.d.ts +0 -18
- package/dist/types/providers/indexer.d.ts +0 -301
- package/dist/types/providers/onchain.d.ts +0 -148
- package/dist/types/providers/utils.d.ts +0 -12
- package/dist/types/repositories/contractRepository.d.ts +0 -32
- package/dist/types/repositories/inMemory/contractRepository.d.ts +0 -17
- package/dist/types/repositories/inMemory/walletRepository.d.ts +0 -29
- package/dist/types/repositories/index.d.ts +0 -9
- package/dist/types/repositories/indexedDB/contractRepository.d.ts +0 -21
- package/dist/types/repositories/indexedDB/db.d.ts +0 -4
- package/dist/types/repositories/indexedDB/manager.d.ts +0 -25
- package/dist/types/repositories/indexedDB/schema.d.ts +0 -9
- package/dist/types/repositories/indexedDB/walletRepository.d.ts +0 -28
- package/dist/types/repositories/indexedDB/websqlAdapter.d.ts +0 -49
- package/dist/types/repositories/migrations/contractRepositoryImpl.d.ts +0 -24
- package/dist/types/repositories/migrations/fromStorageAdapter.d.ts +0 -19
- package/dist/types/repositories/migrations/walletRepositoryImpl.d.ts +0 -27
- package/dist/types/repositories/realm/contractRepository.d.ts +0 -24
- package/dist/types/repositories/realm/index.d.ts +0 -4
- package/dist/types/repositories/realm/types.d.ts +0 -16
- package/dist/types/repositories/realm/walletRepository.d.ts +0 -34
- package/dist/types/repositories/scriptFromAddress.d.ts +0 -9
- package/dist/types/repositories/serialization.d.ts +0 -65
- package/dist/types/repositories/sqlite/contractRepository.d.ts +0 -33
- package/dist/types/repositories/sqlite/index.d.ts +0 -3
- package/dist/types/repositories/sqlite/types.d.ts +0 -18
- package/dist/types/repositories/walletRepository.d.ts +0 -72
- package/dist/types/script/address.d.ts +0 -67
- package/dist/types/script/base.d.ts +0 -105
- package/dist/types/script/default.d.ts +0 -44
- package/dist/types/script/delegate.d.ts +0 -40
- package/dist/types/script/tapscript.d.ts +0 -169
- package/dist/types/script/vhtlc.d.ts +0 -66
- package/dist/types/tree/signingSession.d.ts +0 -37
- package/dist/types/tree/txTree.d.ts +0 -28
- package/dist/types/tree/validation.d.ts +0 -15
- package/dist/types/utils/anchor.d.ts +0 -19
- package/dist/types/utils/arkTransaction.d.ts +0 -49
- package/dist/types/utils/bip21.d.ts +0 -38
- package/dist/types/utils/syncCursors.d.ts +0 -60
- package/dist/types/utils/timelock.d.ts +0 -9
- package/dist/types/utils/transaction.d.ts +0 -13
- package/dist/types/utils/transactionHistory.d.ts +0 -15
- package/dist/types/utils/txSizeEstimator.d.ts +0 -40
- package/dist/types/utils/unknownFields.d.ts +0 -83
- package/dist/types/wallet/asset-manager.d.ts +0 -69
- package/dist/types/wallet/asset.d.ts +0 -21
- package/dist/types/wallet/batch.d.ts +0 -107
- package/dist/types/wallet/delegator.d.ts +0 -48
- package/dist/types/wallet/expo/background.d.ts +0 -66
- package/dist/types/wallet/expo/index.d.ts +0 -4
- package/dist/types/wallet/hdDescriptorProvider.d.ts +0 -114
- package/dist/types/wallet/index.d.ts +0 -789
- package/dist/types/wallet/inputSignerRouter.d.ts +0 -35
- package/dist/types/wallet/onchain.d.ts +0 -109
- package/dist/types/wallet/ramps.d.ts +0 -64
- package/dist/types/wallet/serviceWorker/wallet-message-handler.d.ts +0 -543
- package/dist/types/wallet/serviceWorker/wallet.d.ts +0 -248
- package/dist/types/wallet/signingErrors.d.ts +0 -19
- package/dist/types/wallet/unroll.d.ts +0 -114
- package/dist/types/wallet/utils.d.ts +0 -36
- package/dist/types/wallet/validation.d.ts +0 -24
- package/dist/types/wallet/vtxo-manager.d.ts +0 -476
- package/dist/types/wallet/wallet.d.ts +0 -409
- package/dist/types/wallet/walletReceiveRotator.d.ts +0 -306
- package/dist/types/worker/browser/service-worker-manager.d.ts +0 -32
- package/dist/types/worker/browser/utils.d.ts +0 -17
- package/dist/types/worker/errors.d.ts +0 -7
- package/dist/types/worker/expo/index.d.ts +0 -7
- package/dist/types/worker/expo/processors/contractPollProcessor.d.ts +0 -19
- package/dist/types/worker/expo/processors/index.d.ts +0 -1
- package/dist/types/worker/expo/taskQueue.d.ts +0 -50
- package/dist/types/worker/expo/taskRunner.d.ts +0 -66
- package/dist/types/worker/messageBus.d.ts +0 -189
package/README.md
CHANGED
|
@@ -369,7 +369,7 @@ The wallet's `assetManager` lets you create and manage assets on Arkade. The `se
|
|
|
369
369
|
```typescript
|
|
370
370
|
// Issue a new asset (non-reissuable by default)
|
|
371
371
|
const { assetId: controlAssetId } = await wallet.assetManager.issue({
|
|
372
|
-
amount:
|
|
372
|
+
amount: 1n,
|
|
373
373
|
metadata: {
|
|
374
374
|
ticker: 'ctrl-MTK'
|
|
375
375
|
}
|
|
@@ -377,7 +377,7 @@ const { assetId: controlAssetId } = await wallet.assetManager.issue({
|
|
|
377
377
|
|
|
378
378
|
// Issue a new asset referencing the control asset
|
|
379
379
|
const { assetId } = await wallet.assetManager.issue({
|
|
380
|
-
amount:
|
|
380
|
+
amount: 500n,
|
|
381
381
|
controlAssetId,
|
|
382
382
|
metadata: {
|
|
383
383
|
ticker: 'MTK'
|
|
@@ -387,19 +387,19 @@ const { assetId } = await wallet.assetManager.issue({
|
|
|
387
387
|
// Reissue more supply of the asset (requires ownership of the control asset)
|
|
388
388
|
const reissuanceTxId = await wallet.assetManager.reissue({
|
|
389
389
|
assetId,
|
|
390
|
-
amount:
|
|
390
|
+
amount: 500n,
|
|
391
391
|
})
|
|
392
392
|
|
|
393
393
|
// Burn some of the asset
|
|
394
394
|
const burnTxId = await wallet.assetManager.burn({
|
|
395
395
|
assetId,
|
|
396
|
-
amount:
|
|
396
|
+
amount: 200n,
|
|
397
397
|
})
|
|
398
398
|
|
|
399
399
|
// Send asset to another Arkade address
|
|
400
400
|
const sendTxId = await wallet.send({
|
|
401
401
|
address: 'ark1q...',
|
|
402
|
-
assets: [{ assetId, amount:
|
|
402
|
+
assets: [{ assetId, amount: 100n }],
|
|
403
403
|
})
|
|
404
404
|
|
|
405
405
|
// Check remaining balance
|
|
@@ -653,12 +653,12 @@ const history = await wallet.getTransactionHistory()
|
|
|
653
653
|
arkTxid: string;
|
|
654
654
|
};
|
|
655
655
|
type: "SENT" | "RECEIVED";
|
|
656
|
-
amount: number;
|
|
656
|
+
amount: number; // BTC amount in satoshis
|
|
657
657
|
settled: boolean;
|
|
658
658
|
createdAt: number;
|
|
659
659
|
assets?: Array<{
|
|
660
660
|
assetId: string,
|
|
661
|
-
amount:
|
|
661
|
+
amount: bigint // asset amount in base units
|
|
662
662
|
}>
|
|
663
663
|
}
|
|
664
664
|
*/
|
|
@@ -896,20 +896,11 @@ The `StorageAdapter` API is deprecated. Use repositories instead. If you omit `s
|
|
|
896
896
|
> next call to `getMigrationStatus` can detect the partial migration. Old data
|
|
897
897
|
> is never deleted — re-running migration after a rollback is safe.
|
|
898
898
|
>
|
|
899
|
-
> Anything related to contract repository migration must be handled by the
|
|
900
|
-
>
|
|
901
|
-
>
|
|
902
|
-
>
|
|
903
|
-
>
|
|
904
|
-
> ```typescript
|
|
905
|
-
> // Custom data stored in the ContractRepository
|
|
906
|
-
> const oldStorage = new IndexedDBStorageAdapter('legacy-wallet', 1)
|
|
907
|
-
> const oldRepo = new ContractRepositoryImpl(storageAdapter)
|
|
908
|
-
> const customContract = await oldRepo.getContractData('my-contract', 'status')
|
|
909
|
-
> await contractRepository.setContractData('my-contract', 'status', customData)
|
|
910
|
-
> const customCollection = await oldRepo.getContractCollection('swaps')
|
|
911
|
-
> await contractRepository.saveToContractCollection('swaps', customCollection)
|
|
912
|
-
> ```
|
|
899
|
+
> Anything related to contract repository migration must be handled by the
|
|
900
|
+
> package that created the contracts. The SDK doesn't manage external contracts
|
|
901
|
+
> in V1; data persisted by other packages remains untouched in its original
|
|
902
|
+
> location. For example, see `@arkade-os/boltz-swap`'s `migrateToSwapRepository`
|
|
903
|
+
> for migrating legacy `reverseSwaps` / `submarineSwaps` collections.
|
|
913
904
|
|
|
914
905
|
#### Repository Versioning
|
|
915
906
|
|
|
@@ -1213,103 +1204,43 @@ The watcher features:
|
|
|
1213
1204
|
|
|
1214
1205
|
### Repository Pattern
|
|
1215
1206
|
|
|
1216
|
-
|
|
1207
|
+
Most users don't need to touch repositories directly — `Wallet` and `ContractManager` already read and write through them. They are documented here for advanced integrations (custom storage backends, offline-first apps, repository inspection).
|
|
1217
1208
|
|
|
1218
1209
|
```typescript
|
|
1219
|
-
//
|
|
1210
|
+
// Wallet repository — VTXOs, UTXOs, transaction history, settings
|
|
1220
1211
|
const addr = await wallet.getAddress()
|
|
1221
1212
|
const vtxos = await wallet.walletRepository.getVtxos(addr)
|
|
1222
|
-
await wallet.walletRepository.
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
const
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
await wallet.contractRepository.saveToContractCollection(
|
|
1230
|
-
'swaps',
|
|
1231
|
-
{ id: 'swap-1', amount: 50000, type: 'reverse' },
|
|
1232
|
-
'id' // key field
|
|
1233
|
-
)
|
|
1234
|
-
const swaps = await wallet.contractRepository.getContractCollection('swaps')
|
|
1213
|
+
const utxos = await wallet.walletRepository.getUtxos(addr)
|
|
1214
|
+
const history = await wallet.walletRepository.getTransactionHistory(addr)
|
|
1215
|
+
|
|
1216
|
+
// Contract repository — script-keyed contracts (default address, VHTLCs, etc.)
|
|
1217
|
+
const contracts = await wallet.contractRepository.getContracts({ type: 'vhtlc' })
|
|
1218
|
+
await wallet.contractRepository.saveContract(myContract)
|
|
1219
|
+
await wallet.contractRepository.deleteContract(myContract.script)
|
|
1235
1220
|
```
|
|
1236
1221
|
|
|
1237
1222
|
_For complete API documentation, visit our [TypeDoc documentation](https://arkade-os.github.io/ts-sdk/)._
|
|
1238
1223
|
|
|
1239
1224
|
## Development
|
|
1240
1225
|
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
- [pnpm](https://pnpm.io/) - Package manager
|
|
1244
|
-
- [nigiri](https://github.com/vulpemventures/nigiri) - For running integration tests with a local Bitcoin regtest network
|
|
1245
|
-
|
|
1246
|
-
### Setup
|
|
1247
|
-
|
|
1248
|
-
1. Install dependencies:
|
|
1249
|
-
|
|
1250
|
-
```bash
|
|
1251
|
-
pnpm install
|
|
1252
|
-
pnpm format
|
|
1253
|
-
pnpm lint
|
|
1254
|
-
```
|
|
1226
|
+
This package is developed inside the [arkade-os/ts-sdk](../..) monorepo. See the [root README](../../README.md) for repo-wide setup (`pnpm install`, submodule init, lint) and the integration test workflow against the shared regtest stack.
|
|
1255
1227
|
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
```bash
|
|
1259
|
-
curl https://getnigiri.vulpem.com | bash
|
|
1260
|
-
```
|
|
1261
|
-
|
|
1262
|
-
### Running Tests
|
|
1228
|
+
Common package-local commands (run from the repo root):
|
|
1263
1229
|
|
|
1264
1230
|
```bash
|
|
1265
|
-
#
|
|
1266
|
-
pnpm test
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
pnpm
|
|
1270
|
-
|
|
1271
|
-
# Run integration tests with ark provided by nigiri
|
|
1272
|
-
nigiri start --ark
|
|
1273
|
-
pnpm test:setup # Run setup script for integration tests
|
|
1274
|
-
pnpm test:integration
|
|
1275
|
-
nigiri stop --delete
|
|
1276
|
-
|
|
1277
|
-
# Run integration tests with ark provided by docker (requires nigiri)
|
|
1278
|
-
nigiri start
|
|
1279
|
-
pnpm test:up-docker
|
|
1280
|
-
pnpm test:setup-docker # Run setup script for integration tests
|
|
1281
|
-
pnpm test:integration-docker
|
|
1282
|
-
pnpm test:down-docker
|
|
1283
|
-
nigiri stop --delete
|
|
1284
|
-
|
|
1285
|
-
# Watch mode for development
|
|
1286
|
-
pnpm test:watch
|
|
1287
|
-
|
|
1288
|
-
# Run tests with coverage
|
|
1289
|
-
pnpm test:coverage
|
|
1231
|
+
pnpm -C packages/ts-sdk run typecheck # Type-check the SDK
|
|
1232
|
+
pnpm -C packages/ts-sdk test:unit # Unit tests, excluding e2e
|
|
1233
|
+
pnpm -C packages/ts-sdk test:watch # Vitest watch mode
|
|
1234
|
+
pnpm -C packages/ts-sdk test:coverage # Coverage report
|
|
1235
|
+
pnpm -C packages/ts-sdk docs:build # Build TypeDoc API docs
|
|
1236
|
+
pnpm -C packages/ts-sdk docs:open # Open API docs in the browser
|
|
1290
1237
|
```
|
|
1291
1238
|
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
```bash
|
|
1295
|
-
# Build the TypeScript documentation
|
|
1296
|
-
pnpm docs:build
|
|
1297
|
-
# Open the docs in the browser
|
|
1298
|
-
pnpm docs:open
|
|
1299
|
-
```
|
|
1239
|
+
For integration tests, use the root commands (`pnpm run test:integration:ts-sdk` and the `regtest:*:ts-sdk` family) — see the root README.
|
|
1300
1240
|
|
|
1301
1241
|
### Releasing
|
|
1302
1242
|
|
|
1303
|
-
|
|
1304
|
-
# Release new version (will prompt for version patch, minor, major)
|
|
1305
|
-
pnpm release
|
|
1306
|
-
|
|
1307
|
-
# You can test release process without making changes
|
|
1308
|
-
pnpm release:dry-run
|
|
1309
|
-
|
|
1310
|
-
# Cleanup: checkout version commit and remove release branch
|
|
1311
|
-
pnpm release:cleanup
|
|
1312
|
-
```
|
|
1243
|
+
Package-local releases are disabled. Releases run from the monorepo root and are package-scoped: `pnpm run release -- sdk patch` bumps `@arkade-os/sdk`, creates a `@arkade-os/sdk/<version>` tag, and also bumps `@arkade-os/boltz-swap` (which depends on SDK via `workspace:*`). See the [root README](../../README.md#releasing) for full flags and `pnpm run release -- --help`.
|
|
1313
1244
|
|
|
1314
1245
|
## License
|
|
1315
1246
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk5BLDMQED_cjs = require('../chunk-5BLDMQED.cjs');
|
|
4
|
+
|
|
5
|
+
// src/storage/asyncStorage.ts
|
|
6
|
+
var AsyncStorageAdapter = class {
|
|
7
|
+
AsyncStorage;
|
|
8
|
+
constructor() {
|
|
9
|
+
try {
|
|
10
|
+
this.AsyncStorage = chunk5BLDMQED_cjs.__require("@react-native-async-storage/async-storage").default;
|
|
11
|
+
} catch (error) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
"AsyncStorage is not available. Make sure @react-native-async-storage/async-storage is installed in React Native environment."
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async getItem(key) {
|
|
18
|
+
return await this.AsyncStorage.getItem(key);
|
|
19
|
+
}
|
|
20
|
+
async setItem(key, value) {
|
|
21
|
+
try {
|
|
22
|
+
await this.AsyncStorage.setItem(key, value);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.error(`Failed to set item for key ${key}:`, error);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async removeItem(key) {
|
|
29
|
+
try {
|
|
30
|
+
await this.AsyncStorage.removeItem(key);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error(`Failed to remove item for key ${key}:`, error);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async clear() {
|
|
37
|
+
try {
|
|
38
|
+
await this.AsyncStorage.clear();
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error("Failed to clear AsyncStorage:", error);
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.AsyncStorageAdapter = AsyncStorageAdapter;
|
|
47
|
+
//# sourceMappingURL=asyncStorage.cjs.map
|
|
48
|
+
//# sourceMappingURL=asyncStorage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/storage/asyncStorage.ts"],"names":["__require"],"mappings":";;;;;AAMO,IAAM,sBAAN,MAAoD;AAAA,EAC/C,YAAA;AAAA,EAER,WAAA,GAAc;AACV,IAAA,IAAI;AAEA,MAAA,IAAA,CAAK,YAAA,GAAeA,2BAAA,CAAQ,2CAA2C,CAAA,CAAE,OAAA;AAAA,IAC7E,SAAS,KAAA,EAAO;AACZ,MAAA,MAAM,IAAI,KAAA;AAAA,QACN;AAAA,OACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,GAAA,EAAqC;AAC/C,IAAA,OAAO,MAAM,IAAA,CAAK,YAAA,CAAa,OAAA,CAAQ,GAAG,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,OAAA,CAAQ,GAAA,EAAa,KAAA,EAA8B;AACrD,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK,KAAK,CAAA;AAAA,IAC9C,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AACzD,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,WAAW,GAAA,EAA4B;AACzC,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,YAAA,CAAa,UAAA,CAAW,GAAG,CAAA;AAAA,IAC1C,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,8BAAA,EAAiC,GAAG,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAC5D,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,KAAA,GAAuB;AACzB,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,aAAa,KAAA,EAAM;AAAA,IAClC,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,KAAK,CAAA;AACpD,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AACJ","file":"asyncStorage.cjs","sourcesContent":["import type { StorageAdapter } from \"./index\";\n\n/**\n * @deprecated Use repositories instead\n * Note: This requires @react-native-async-storage/async-storage to be installed\n */\nexport class AsyncStorageAdapter implements StorageAdapter {\n private AsyncStorage: any;\n\n constructor() {\n try {\n // Dynamic import to avoid errors in non-React Native environments\n this.AsyncStorage = require(\"@react-native-async-storage/async-storage\").default;\n } catch (error) {\n throw new Error(\n \"AsyncStorage is not available. Make sure @react-native-async-storage/async-storage is installed in React Native environment.\",\n );\n }\n }\n\n async getItem(key: string): Promise<string | null> {\n return await this.AsyncStorage.getItem(key);\n }\n\n async setItem(key: string, value: string): Promise<void> {\n try {\n await this.AsyncStorage.setItem(key, value);\n } catch (error) {\n console.error(`Failed to set item for key ${key}:`, error);\n throw error;\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.AsyncStorage.removeItem(key);\n } catch (error) {\n console.error(`Failed to remove item for key ${key}:`, error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n try {\n await this.AsyncStorage.clear();\n } catch (error) {\n console.error(\"Failed to clear AsyncStorage:\", error);\n throw error;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { S as StorageAdapter } from '../index-C0IanN1m.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use repositories instead
|
|
5
|
+
* Note: This requires @react-native-async-storage/async-storage to be installed
|
|
6
|
+
*/
|
|
7
|
+
declare class AsyncStorageAdapter implements StorageAdapter {
|
|
8
|
+
private AsyncStorage;
|
|
9
|
+
constructor();
|
|
10
|
+
getItem(key: string): Promise<string | null>;
|
|
11
|
+
setItem(key: string, value: string): Promise<void>;
|
|
12
|
+
removeItem(key: string): Promise<void>;
|
|
13
|
+
clear(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { AsyncStorageAdapter, StorageAdapter };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { S as StorageAdapter } from '../index-C0IanN1m.js';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @deprecated Use repositories instead
|
|
4
5
|
* Note: This requires @react-native-async-storage/async-storage to be installed
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
declare class AsyncStorageAdapter implements StorageAdapter {
|
|
7
8
|
private AsyncStorage;
|
|
8
9
|
constructor();
|
|
9
10
|
getItem(key: string): Promise<string | null>;
|
|
@@ -11,3 +12,5 @@ export declare class AsyncStorageAdapter implements StorageAdapter {
|
|
|
11
12
|
removeItem(key: string): Promise<void>;
|
|
12
13
|
clear(): Promise<void>;
|
|
13
14
|
}
|
|
15
|
+
|
|
16
|
+
export { AsyncStorageAdapter, StorageAdapter };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { __require } from '../chunk-NSBPE2FW.js';
|
|
2
|
+
|
|
3
|
+
// src/storage/asyncStorage.ts
|
|
4
|
+
var AsyncStorageAdapter = class {
|
|
5
|
+
AsyncStorage;
|
|
6
|
+
constructor() {
|
|
7
|
+
try {
|
|
8
|
+
this.AsyncStorage = __require("@react-native-async-storage/async-storage").default;
|
|
9
|
+
} catch (error) {
|
|
10
|
+
throw new Error(
|
|
11
|
+
"AsyncStorage is not available. Make sure @react-native-async-storage/async-storage is installed in React Native environment."
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
async getItem(key) {
|
|
16
|
+
return await this.AsyncStorage.getItem(key);
|
|
17
|
+
}
|
|
18
|
+
async setItem(key, value) {
|
|
19
|
+
try {
|
|
20
|
+
await this.AsyncStorage.setItem(key, value);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error(`Failed to set item for key ${key}:`, error);
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async removeItem(key) {
|
|
27
|
+
try {
|
|
28
|
+
await this.AsyncStorage.removeItem(key);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.error(`Failed to remove item for key ${key}:`, error);
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async clear() {
|
|
35
|
+
try {
|
|
36
|
+
await this.AsyncStorage.clear();
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.error("Failed to clear AsyncStorage:", error);
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { AsyncStorageAdapter };
|
|
45
|
+
//# sourceMappingURL=asyncStorage.js.map
|
|
46
|
+
//# sourceMappingURL=asyncStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/storage/asyncStorage.ts"],"names":[],"mappings":";;;AAMO,IAAM,sBAAN,MAAoD;AAAA,EAC/C,YAAA;AAAA,EAER,WAAA,GAAc;AACV,IAAA,IAAI;AAEA,MAAA,IAAA,CAAK,YAAA,GAAe,SAAA,CAAQ,2CAA2C,CAAA,CAAE,OAAA;AAAA,IAC7E,SAAS,KAAA,EAAO;AACZ,MAAA,MAAM,IAAI,KAAA;AAAA,QACN;AAAA,OACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,GAAA,EAAqC;AAC/C,IAAA,OAAO,MAAM,IAAA,CAAK,YAAA,CAAa,OAAA,CAAQ,GAAG,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,OAAA,CAAQ,GAAA,EAAa,KAAA,EAA8B;AACrD,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK,KAAK,CAAA;AAAA,IAC9C,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AACzD,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,WAAW,GAAA,EAA4B;AACzC,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,YAAA,CAAa,UAAA,CAAW,GAAG,CAAA;AAAA,IAC1C,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,8BAAA,EAAiC,GAAG,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAC5D,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,KAAA,GAAuB;AACzB,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,aAAa,KAAA,EAAM;AAAA,IAClC,SAAS,KAAA,EAAO;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,KAAK,CAAA;AACpD,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AACJ","file":"asyncStorage.js","sourcesContent":["import type { StorageAdapter } from \"./index\";\n\n/**\n * @deprecated Use repositories instead\n * Note: This requires @react-native-async-storage/async-storage to be installed\n */\nexport class AsyncStorageAdapter implements StorageAdapter {\n private AsyncStorage: any;\n\n constructor() {\n try {\n // Dynamic import to avoid errors in non-React Native environments\n this.AsyncStorage = require(\"@react-native-async-storage/async-storage\").default;\n } catch (error) {\n throw new Error(\n \"AsyncStorage is not available. Make sure @react-native-async-storage/async-storage is installed in React Native environment.\",\n );\n }\n }\n\n async getItem(key: string): Promise<string | null> {\n return await this.AsyncStorage.getItem(key);\n }\n\n async setItem(key: string, value: string): Promise<void> {\n try {\n await this.AsyncStorage.setItem(key, value);\n } catch (error) {\n console.error(`Failed to set item for key ${key}:`, error);\n throw error;\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.AsyncStorage.removeItem(key);\n } catch (error) {\n console.error(`Failed to remove item for key ${key}:`, error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n try {\n await this.AsyncStorage.clear();\n } catch (error) {\n console.error(\"Failed to clear AsyncStorage:\", error);\n throw error;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkFG5ACJJW_cjs = require('../chunk-FG5ACJJW.cjs');
|
|
4
|
+
require('../chunk-ADV27S4N.cjs');
|
|
5
|
+
require('../chunk-5PG7DV7A.cjs');
|
|
6
|
+
require('../chunk-5BLDMQED.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Object.defineProperty(exports, "ExpoArkProvider", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () { return chunkFG5ACJJW_cjs.ExpoArkProvider; }
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "ExpoIndexerProvider", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return chunkFG5ACJJW_cjs.ExpoIndexerProvider; }
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=expo.cjs.map
|
|
19
|
+
//# sourceMappingURL=expo.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"expo.cjs"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { j as RestArkProvider, h as SettlementEvent, T as TxNotification, k as RestIndexerProvider, l as SubscriptionResponse } from '../ark-TZ1gXAXU.cjs';
|
|
2
|
+
export { m as ArkProvider, n as IndexerProvider } from '../ark-TZ1gXAXU.cjs';
|
|
3
|
+
import '@scure/btc-signer/transaction.js';
|
|
4
|
+
import '@scure/btc-signer/utils.js';
|
|
5
|
+
import '@scure/btc-signer/psbt.js';
|
|
6
|
+
import '@scure/btc-signer';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Expo-compatible Arkade provider implementation using expo/fetch for SSE support.
|
|
10
|
+
* This provider works specifically in React Native/Expo environments where
|
|
11
|
+
* standard EventSource is not available but expo/fetch provides SSE capabilities.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { ExpoArkProvider } from '@arkade-os/sdk/providers/expo';
|
|
16
|
+
*
|
|
17
|
+
* const provider = new ExpoArkProvider('https://arkade.computer');
|
|
18
|
+
* const info = await provider.getInfo();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare class ExpoArkProvider extends RestArkProvider {
|
|
22
|
+
constructor(serverUrl: string);
|
|
23
|
+
getEventStream(signal: AbortSignal, topics: string[]): AsyncIterableIterator<SettlementEvent>;
|
|
24
|
+
getTransactionsStream(signal: AbortSignal): AsyncIterableIterator<{
|
|
25
|
+
commitmentTx?: TxNotification;
|
|
26
|
+
arkTx?: TxNotification;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Expo-compatible Indexer provider implementation using expo/fetch for streaming support.
|
|
32
|
+
* This provider works specifically in React Native/Expo environments where
|
|
33
|
+
* standard fetch streaming may not work properly but expo/fetch provides streaming capabilities.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { ExpoIndexerProvider } from '@arkade-os/sdk/adapters/expo';
|
|
38
|
+
*
|
|
39
|
+
* const provider = new ExpoIndexerProvider('https://indexer.example.com');
|
|
40
|
+
* const vtxos = await provider.getVtxos({ scripts: ['script1'] });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
declare class ExpoIndexerProvider extends RestIndexerProvider {
|
|
44
|
+
constructor(serverUrl: string);
|
|
45
|
+
getSubscription(subscriptionId: string, abortSignal: AbortSignal): AsyncIterableIterator<SubscriptionResponse>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { ExpoArkProvider, ExpoIndexerProvider };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { j as RestArkProvider, h as SettlementEvent, T as TxNotification, k as RestIndexerProvider, l as SubscriptionResponse } from '../ark-TZ1gXAXU.js';
|
|
2
|
+
export { m as ArkProvider, n as IndexerProvider } from '../ark-TZ1gXAXU.js';
|
|
3
|
+
import '@scure/btc-signer/transaction.js';
|
|
4
|
+
import '@scure/btc-signer/utils.js';
|
|
5
|
+
import '@scure/btc-signer/psbt.js';
|
|
6
|
+
import '@scure/btc-signer';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Expo-compatible Arkade provider implementation using expo/fetch for SSE support.
|
|
10
|
+
* This provider works specifically in React Native/Expo environments where
|
|
11
|
+
* standard EventSource is not available but expo/fetch provides SSE capabilities.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { ExpoArkProvider } from '@arkade-os/sdk/providers/expo';
|
|
16
|
+
*
|
|
17
|
+
* const provider = new ExpoArkProvider('https://arkade.computer');
|
|
18
|
+
* const info = await provider.getInfo();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare class ExpoArkProvider extends RestArkProvider {
|
|
22
|
+
constructor(serverUrl: string);
|
|
23
|
+
getEventStream(signal: AbortSignal, topics: string[]): AsyncIterableIterator<SettlementEvent>;
|
|
24
|
+
getTransactionsStream(signal: AbortSignal): AsyncIterableIterator<{
|
|
25
|
+
commitmentTx?: TxNotification;
|
|
26
|
+
arkTx?: TxNotification;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Expo-compatible Indexer provider implementation using expo/fetch for streaming support.
|
|
32
|
+
* This provider works specifically in React Native/Expo environments where
|
|
33
|
+
* standard fetch streaming may not work properly but expo/fetch provides streaming capabilities.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { ExpoIndexerProvider } from '@arkade-os/sdk/adapters/expo';
|
|
38
|
+
*
|
|
39
|
+
* const provider = new ExpoIndexerProvider('https://indexer.example.com');
|
|
40
|
+
* const vtxos = await provider.getVtxos({ scripts: ['script1'] });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
declare class ExpoIndexerProvider extends RestIndexerProvider {
|
|
44
|
+
constructor(serverUrl: string);
|
|
45
|
+
getSubscription(subscriptionId: string, abortSignal: AbortSignal): AsyncIterableIterator<SubscriptionResponse>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { ExpoArkProvider, ExpoIndexerProvider };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"expo.js"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('../chunk-5BLDMQED.cjs');
|
|
4
|
+
var fs = require('fs/promises');
|
|
5
|
+
var path = require('path');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
|
|
26
|
+
var path__namespace = /*#__PURE__*/_interopNamespace(path);
|
|
27
|
+
|
|
28
|
+
var FileSystemStorageAdapter = class {
|
|
29
|
+
basePath;
|
|
30
|
+
constructor(dirPath) {
|
|
31
|
+
this.basePath = path__namespace.resolve(dirPath).replace(/[/\\]+$/, "");
|
|
32
|
+
}
|
|
33
|
+
validateAndGetFilePath(key) {
|
|
34
|
+
if (key === "." || key === "..") {
|
|
35
|
+
throw new Error("Invalid key: '.' and '..' are not allowed");
|
|
36
|
+
}
|
|
37
|
+
if (key.includes("\0")) {
|
|
38
|
+
throw new Error("Invalid key: null bytes are not allowed");
|
|
39
|
+
}
|
|
40
|
+
if (key.includes("..")) {
|
|
41
|
+
throw new Error("Invalid key: directory traversal is not allowed");
|
|
42
|
+
}
|
|
43
|
+
const reservedNames = /^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i;
|
|
44
|
+
const keyWithoutExt = key.split(".")[0];
|
|
45
|
+
if (reservedNames.test(keyWithoutExt)) {
|
|
46
|
+
throw new Error(`Invalid key: '${key}' uses a reserved Windows name`);
|
|
47
|
+
}
|
|
48
|
+
if (key.endsWith(" ") || key.endsWith(".")) {
|
|
49
|
+
throw new Error("Invalid key: trailing spaces or dots are not allowed");
|
|
50
|
+
}
|
|
51
|
+
const normalizedKey = key.replace(/[/\\]/g, "_").replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
52
|
+
const resolved = path__namespace.resolve(this.basePath, normalizedKey);
|
|
53
|
+
const relative2 = path__namespace.relative(this.basePath, resolved);
|
|
54
|
+
if (relative2.startsWith("..") || relative2.includes(path__namespace.sep + "..")) {
|
|
55
|
+
throw new Error("Invalid key: directory traversal is not allowed");
|
|
56
|
+
}
|
|
57
|
+
return resolved;
|
|
58
|
+
}
|
|
59
|
+
async ensureDirectory() {
|
|
60
|
+
try {
|
|
61
|
+
await fs__namespace.access(this.basePath);
|
|
62
|
+
} catch {
|
|
63
|
+
await fs__namespace.mkdir(this.basePath, { recursive: true });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async getItem(key) {
|
|
67
|
+
try {
|
|
68
|
+
const filePath = this.validateAndGetFilePath(key);
|
|
69
|
+
const data = await fs__namespace.readFile(filePath, "utf-8");
|
|
70
|
+
return data;
|
|
71
|
+
} catch (error) {
|
|
72
|
+
if (error.code === "ENOENT") {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
console.error(`Failed to read file for key ${key}:`, error);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async setItem(key, value) {
|
|
80
|
+
try {
|
|
81
|
+
await this.ensureDirectory();
|
|
82
|
+
const filePath = this.validateAndGetFilePath(key);
|
|
83
|
+
await fs__namespace.writeFile(filePath, value, "utf-8");
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error(`Failed to write file for key ${key}:`, error);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async removeItem(key) {
|
|
90
|
+
try {
|
|
91
|
+
const filePath = this.validateAndGetFilePath(key);
|
|
92
|
+
await fs__namespace.unlink(filePath);
|
|
93
|
+
} catch (error) {
|
|
94
|
+
if (error.code !== "ENOENT") {
|
|
95
|
+
console.error(`Failed to remove file for key ${key}:`, error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async clear() {
|
|
100
|
+
try {
|
|
101
|
+
const entries = await fs__namespace.readdir(this.basePath);
|
|
102
|
+
await Promise.all(
|
|
103
|
+
entries.map(async (entry) => {
|
|
104
|
+
const entryPath = path__namespace.join(this.basePath, entry);
|
|
105
|
+
await fs__namespace.rm(entryPath, { recursive: true, force: true });
|
|
106
|
+
})
|
|
107
|
+
);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.error("Failed to clear storage directory:", error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
exports.FileSystemStorageAdapter = FileSystemStorageAdapter;
|
|
115
|
+
//# sourceMappingURL=fileSystem.cjs.map
|
|
116
|
+
//# sourceMappingURL=fileSystem.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/storage/fileSystem.ts"],"names":["path","relative","fs"],"mappings":"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","file":"fileSystem.cjs","sourcesContent":["import * as fs from \"fs/promises\";\nimport * as path from \"path\";\nimport type { StorageAdapter } from \"./index\";\n\n/**\n * @deprecated Use repository implementations via `StorageConfig` instead.\n */\nexport class FileSystemStorageAdapter implements StorageAdapter {\n private readonly basePath: string;\n\n constructor(dirPath: string) {\n // Normalize and resolve the storage base path once\n this.basePath = path.resolve(dirPath).replace(/[/\\\\]+$/, \"\");\n }\n\n private validateAndGetFilePath(key: string): string {\n // Reject dangerous keys\n if (key === \".\" || key === \"..\") {\n throw new Error(\"Invalid key: '.' and '..' are not allowed\");\n }\n\n // Check for null bytes\n if (key.includes(\"\\0\")) {\n throw new Error(\"Invalid key: null bytes are not allowed\");\n }\n\n // Check for path traversal attempts before normalization\n if (key.includes(\"..\")) {\n throw new Error(\"Invalid key: directory traversal is not allowed\");\n }\n\n // Check for reserved Windows names (case-insensitive)\n const reservedNames = /^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i;\n const keyWithoutExt = key.split(\".\")[0];\n if (reservedNames.test(keyWithoutExt)) {\n throw new Error(`Invalid key: '${key}' uses a reserved Windows name`);\n }\n\n // Check for trailing spaces or dots\n if (key.endsWith(\" \") || key.endsWith(\".\")) {\n throw new Error(\"Invalid key: trailing spaces or dots are not allowed\");\n }\n\n // Normalize path separators and sanitize key\n const normalizedKey = key.replace(/[/\\\\]/g, \"_\").replace(/[^a-zA-Z0-9._-]/g, \"_\");\n\n // Resolve the full path and check for directory traversal\n const resolved = path.resolve(this.basePath, normalizedKey);\n const relative = path.relative(this.basePath, resolved);\n\n // Reject if trying to escape the base directory\n if (relative.startsWith(\"..\") || relative.includes(path.sep + \"..\")) {\n throw new Error(\"Invalid key: directory traversal is not allowed\");\n }\n\n return resolved;\n }\n\n private async ensureDirectory(): Promise<void> {\n try {\n await fs.access(this.basePath);\n } catch {\n await fs.mkdir(this.basePath, { recursive: true });\n }\n }\n\n async getItem(key: string): Promise<string | null> {\n try {\n const filePath = this.validateAndGetFilePath(key);\n const data = await fs.readFile(filePath, \"utf-8\");\n return data;\n } catch (error: any) {\n if (error.code === \"ENOENT\") {\n return null;\n }\n console.error(`Failed to read file for key ${key}:`, error);\n return null;\n }\n }\n\n async setItem(key: string, value: string): Promise<void> {\n try {\n await this.ensureDirectory();\n const filePath = this.validateAndGetFilePath(key);\n await fs.writeFile(filePath, value, \"utf-8\");\n } catch (error) {\n console.error(`Failed to write file for key ${key}:`, error);\n throw error;\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n const filePath = this.validateAndGetFilePath(key);\n await fs.unlink(filePath);\n } catch (error: any) {\n if (error.code !== \"ENOENT\") {\n console.error(`Failed to remove file for key ${key}:`, error);\n }\n }\n }\n\n async clear(): Promise<void> {\n try {\n const entries = await fs.readdir(this.basePath);\n await Promise.all(\n entries.map(async (entry) => {\n const entryPath = path.join(this.basePath, entry);\n // Use fs.rm with recursive option to handle both files and directories\n await fs.rm(entryPath, { recursive: true, force: true });\n }),\n );\n } catch (error) {\n console.error(\"Failed to clear storage directory:\", error);\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { S as StorageAdapter } from '../index-C0IanN1m.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use repository implementations via `StorageConfig` instead.
|
|
5
|
+
*/
|
|
6
|
+
declare class FileSystemStorageAdapter implements StorageAdapter {
|
|
7
|
+
private readonly basePath;
|
|
8
|
+
constructor(dirPath: string);
|
|
9
|
+
private validateAndGetFilePath;
|
|
10
|
+
private ensureDirectory;
|
|
11
|
+
getItem(key: string): Promise<string | null>;
|
|
12
|
+
setItem(key: string, value: string): Promise<void>;
|
|
13
|
+
removeItem(key: string): Promise<void>;
|
|
14
|
+
clear(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { FileSystemStorageAdapter, StorageAdapter };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { S as StorageAdapter } from '../index-C0IanN1m.js';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @deprecated Use repository implementations via `StorageConfig` instead.
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
+
declare class FileSystemStorageAdapter implements StorageAdapter {
|
|
6
7
|
private readonly basePath;
|
|
7
8
|
constructor(dirPath: string);
|
|
8
9
|
private validateAndGetFilePath;
|
|
@@ -12,3 +13,5 @@ export declare class FileSystemStorageAdapter implements StorageAdapter {
|
|
|
12
13
|
removeItem(key: string): Promise<void>;
|
|
13
14
|
clear(): Promise<void>;
|
|
14
15
|
}
|
|
16
|
+
|
|
17
|
+
export { FileSystemStorageAdapter, StorageAdapter };
|