@xyo-network/xl1-protocol-sdk 1.26.11 → 1.26.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/package.json +29 -16
  2. package/src/ChainContextHelpers.ts +0 -50
  3. package/src/CreatableProvider/AbstractCreatableProvider.ts +0 -97
  4. package/src/CreatableProvider/CreatableProvider.ts +0 -102
  5. package/src/CreatableProvider/CreatableProviderRegistry.ts +0 -94
  6. package/src/CreatableProvider/GetInstanceOptions.ts +0 -11
  7. package/src/CreatableProvider/LabeledCreatableProviderFactory.ts +0 -24
  8. package/src/CreatableProvider/ProviderFactory.ts +0 -138
  9. package/src/CreatableProvider/ProviderFactoryLocator.ts +0 -170
  10. package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +0 -70
  11. package/src/CreatableProvider/index.ts +0 -8
  12. package/src/SignedBigInt.ts +0 -59
  13. package/src/_internal/context/getTestProviderContext.ts +0 -13
  14. package/src/_internal/context/index.ts +0 -1
  15. package/src/_internal/index.ts +0 -2
  16. package/src/actor/ActorV3.ts +0 -177
  17. package/src/actor/index.ts +0 -1
  18. package/src/amount/ShiftedBigInt.ts +0 -73
  19. package/src/amount/XL1Amount.ts +0 -103
  20. package/src/amount/index.ts +0 -4
  21. package/src/amount/splitOnDecimal.ts +0 -6
  22. package/src/amount/splitOnDecimalToString.ts +0 -40
  23. package/src/block/hydrate/allHashesPresent.ts +0 -8
  24. package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +0 -12
  25. package/src/block/hydrate/flattenHydratedBlock.ts +0 -28
  26. package/src/block/hydrate/flattenHydratedBlocks.ts +0 -7
  27. package/src/block/hydrate/hydrateBlock.ts +0 -43
  28. package/src/block/hydrate/index.ts +0 -7
  29. package/src/block/hydrate/transactionsFromHydratedBlock.ts +0 -7
  30. package/src/block/hydrate/tryHydrateBlock.ts +0 -26
  31. package/src/block/index.ts +0 -2
  32. package/src/block/primitives/blockFromBlockNumber.ts +0 -69
  33. package/src/block/primitives/frames/calculateFramesFromRange.ts +0 -30
  34. package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +0 -28
  35. package/src/block/primitives/frames/index.ts +0 -2
  36. package/src/block/primitives/hashFromBlockNumber.ts +0 -9
  37. package/src/block/primitives/index.ts +0 -7
  38. package/src/block/primitives/model.ts +0 -18
  39. package/src/block/primitives/payloads/ChainWindow.ts +0 -7
  40. package/src/block/primitives/payloads/index.ts +0 -1
  41. package/src/block/primitives/toStepIdentityString.ts +0 -6
  42. package/src/block/primitives/validateTransactionOpcodes.ts +0 -45
  43. package/src/config/Actor.ts +0 -32
  44. package/src/config/Actors.ts +0 -9
  45. package/src/config/Base.ts +0 -27
  46. package/src/config/Chain.ts +0 -23
  47. package/src/config/Config.ts +0 -24
  48. package/src/config/DataLake/DataLake.ts +0 -12
  49. package/src/config/DataLake/DataLakeRemoteConfig.ts +0 -11
  50. package/src/config/DataLake/RestDataLakeConfig.ts +0 -18
  51. package/src/config/DataLake/RouterDataLakeConfig.ts +0 -22
  52. package/src/config/DataLake/index.ts +0 -4
  53. package/src/config/DeepPartial.ts +0 -4
  54. package/src/config/Evm.ts +0 -38
  55. package/src/config/HostActor.ts +0 -32
  56. package/src/config/Log.ts +0 -25
  57. package/src/config/Provider.ts +0 -20
  58. package/src/config/Providers.ts +0 -9
  59. package/src/config/Remote.ts +0 -59
  60. package/src/config/Telemetry.ts +0 -49
  61. package/src/config/UsageMeta.ts +0 -46
  62. package/src/config/Validation.ts +0 -29
  63. package/src/config/index.ts +0 -12
  64. package/src/config/storage/Storage.ts +0 -16
  65. package/src/config/storage/driver/Mongo.ts +0 -53
  66. package/src/config/storage/driver/index.ts +0 -1
  67. package/src/config/storage/index.ts +0 -2
  68. package/src/constants.ts +0 -4
  69. package/src/context/Actor.ts +0 -20
  70. package/src/context/HostActor.ts +0 -20
  71. package/src/context/getEmptyProviderContext.ts +0 -19
  72. package/src/context/index.ts +0 -3
  73. package/src/createDeclarationPayload.ts +0 -15
  74. package/src/createTransferPayload.ts +0 -16
  75. package/src/driver/cache/LruCacheMap.ts +0 -48
  76. package/src/driver/cache/index.ts +0 -1
  77. package/src/driver/index.ts +0 -2
  78. package/src/driver/memory/MemoryMap.ts +0 -48
  79. package/src/driver/memory/index.ts +0 -1
  80. package/src/eip-712/Payloads/EIP712Data.ts +0 -35
  81. package/src/eip-712/Payloads/EIP712Signature.ts +0 -32
  82. package/src/eip-712/Payloads/index.ts +0 -2
  83. package/src/eip-712/Types.ts +0 -41
  84. package/src/eip-712/index.ts +0 -4
  85. package/src/eip-712/sign.ts +0 -19
  86. package/src/eip-712/spec/fixtures.ts +0 -27
  87. package/src/eip-712/verify.ts +0 -20
  88. package/src/getFileConfig.ts +0 -36
  89. package/src/index.ts +0 -27
  90. package/src/instances/Address.ts +0 -16
  91. package/src/instances/BoundWitness.ts +0 -13
  92. package/src/instances/Data.ts +0 -4
  93. package/src/instances/Fees.ts +0 -9
  94. package/src/instances/HydratedBoundWitness.ts +0 -16
  95. package/src/instances/Object.ts +0 -6
  96. package/src/instances/Payload.ts +0 -7
  97. package/src/instances/Signature.ts +0 -12
  98. package/src/instances/block/BlockFields.ts +0 -18
  99. package/src/instances/block/HydratedBlock.ts +0 -10
  100. package/src/instances/block/index.ts +0 -1
  101. package/src/instances/index.ts +0 -10
  102. package/src/instances/modifiers/BlockWindowInstance.ts +0 -8
  103. package/src/instances/modifiers/BlockWindowState.ts +0 -6
  104. package/src/instances/modifiers/Signed.ts +0 -9
  105. package/src/instances/modifiers/Validatable.ts +0 -6
  106. package/src/instances/modifiers/index.ts +0 -4
  107. package/src/instances/transaction/HydratedTransaction.ts +0 -9
  108. package/src/instances/transaction/TransactionFields.ts +0 -22
  109. package/src/instances/transaction/index.ts +0 -1
  110. package/src/isInternetAvailable.ts +0 -11
  111. package/src/model/ChainFork/ChainForkStatic.ts +0 -9
  112. package/src/model/ChainFork/index.ts +0 -1
  113. package/src/model/ChainIdentity.ts +0 -6
  114. package/src/model/ChainStore.ts +0 -16
  115. package/src/model/CreatableProviderContext.ts +0 -6
  116. package/src/model/CreatableProviderContext.zod.ts +0 -55
  117. package/src/model/PayloadBundle/bundledPayloadToHydratedBlock.ts +0 -15
  118. package/src/model/PayloadBundle/bundledPayloadToHydratedTransaction.ts +0 -15
  119. package/src/model/PayloadBundle/hydratedBlockToPayloadBundle.ts +0 -19
  120. package/src/model/PayloadBundle/hydratedTransactionToPayloadBundle.ts +0 -19
  121. package/src/model/PayloadBundle/index.ts +0 -4
  122. package/src/model/index.ts +0 -6
  123. package/src/multipliers.ts +0 -18
  124. package/src/payloads/AddressPairPayload.ts +0 -27
  125. package/src/payloads/index.ts +0 -4
  126. package/src/payloads/netBalancesForPayloads.ts +0 -24
  127. package/src/payloads/netSchemasForPayloads.ts +0 -24
  128. package/src/payloads/netTransfersForPayloads.ts +0 -27
  129. package/src/primitives/block/index.ts +0 -2
  130. package/src/primitives/block/range/blockRangeSteps.ts +0 -23
  131. package/src/primitives/block/range/index.ts +0 -1
  132. package/src/primitives/block/rate/blockRate.ts +0 -77
  133. package/src/primitives/block/rate/index.ts +0 -4
  134. package/src/primitives/block/rate/stepRate.ts +0 -37
  135. package/src/primitives/block/rate/timeHelpers.ts +0 -61
  136. package/src/primitives/block/rate/timeRate.ts +0 -121
  137. package/src/primitives/chain/getWindowedChain.ts +0 -50
  138. package/src/primitives/chain/index.ts +0 -3
  139. package/src/primitives/chain/step/chainStepRewardAddress.ts +0 -30
  140. package/src/primitives/chain/step/index.ts +0 -4
  141. package/src/primitives/chain/step/stepRewardBlock.ts +0 -13
  142. package/src/primitives/chain/step/stepRewardTotal.ts +0 -46
  143. package/src/primitives/chain/step/stepsRewardTotal.ts +0 -37
  144. package/src/primitives/chain/time/externalBlockNumberFromXL1BlockNumber.ts +0 -32
  145. package/src/primitives/chain/time/externalBlockRangeFromStep.ts +0 -21
  146. package/src/primitives/chain/time/externalBlockRangeFromXL1BlockRange.ts +0 -17
  147. package/src/primitives/chain/time/index.ts +0 -3
  148. package/src/primitives/datalake/addDataLakePayloads.ts +0 -18
  149. package/src/primitives/datalake/addDataLakePayloadsToPayloads.ts +0 -24
  150. package/src/primitives/datalake/index.ts +0 -2
  151. package/src/primitives/index.ts +0 -13
  152. package/src/primitives/mapToMapType.ts +0 -35
  153. package/src/primitives/payload/index.ts +0 -1
  154. package/src/primitives/payload/mergeTransfers.ts +0 -16
  155. package/src/primitives/readPayloadMapFromStore.ts +0 -58
  156. package/src/primitives/rewardFromBlockNumber.ts +0 -19
  157. package/src/primitives/rewards/index.ts +0 -1
  158. package/src/primitives/rewards/networkStakeStepRewardPositionWeight.ts +0 -26
  159. package/src/primitives/stake/activeStakeAtTimeByAddress.ts +0 -27
  160. package/src/primitives/stake/activeStakeAtTimeByPosition.ts +0 -25
  161. package/src/primitives/stake/allStakersForRange.ts +0 -32
  162. package/src/primitives/stake/allStakersForStep.ts +0 -24
  163. package/src/primitives/stake/index.ts +0 -6
  164. package/src/primitives/stake/mergedAddRemoveStakeEventsByPosition.ts +0 -15
  165. package/src/primitives/stake/mergedAddRemoveStakeEventsByStaker.ts +0 -17
  166. package/src/primitives/stake/weightedStakeForRangeByPosition.ts +0 -69
  167. package/src/primitives/state/findMostRecentBlock.ts +0 -44
  168. package/src/primitives/state/hydratedBlockByNumber.ts +0 -25
  169. package/src/primitives/state/index.ts +0 -2
  170. package/src/primitives/step/completedStepRewardAddress.ts +0 -10
  171. package/src/primitives/step/derivedReceiveAddress.ts +0 -9
  172. package/src/primitives/step/index.ts +0 -4
  173. package/src/primitives/step/stepBlockRange.ts +0 -9
  174. package/src/primitives/step/stepTransferIndex.ts +0 -19
  175. package/src/primitives/transaction/elevatedPayloads.ts +0 -24
  176. package/src/primitives/transaction/index.ts +0 -1
  177. package/src/primitives/uncle/findBestUncle.ts +0 -9
  178. package/src/primitives/uncle/findUncles.ts +0 -75
  179. package/src/primitives/uncle/index.ts +0 -3
  180. package/src/primitives/uncle/scoreUncle.ts +0 -7
  181. package/src/services/AccountTransfersService.ts +0 -13
  182. package/src/services/BlockProducerService.ts +0 -11
  183. package/src/services/Chain/BaseChainService.ts +0 -4
  184. package/src/services/Chain/ChainHeadService.ts +0 -8
  185. package/src/services/Chain/ChainService.ts +0 -6
  186. package/src/services/Chain/index.ts +0 -3
  187. package/src/services/Election.ts +0 -14
  188. package/src/services/NetworkStakeService.ts +0 -4
  189. package/src/services/Params.ts +0 -13
  190. package/src/services/PendingTransactionsService.ts +0 -7
  191. package/src/services/SchemasService.ts +0 -11
  192. package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +0 -50
  193. package/src/services/StakeIntentService/StakeIntentService.ts +0 -35
  194. package/src/services/StakeIntentService/index.ts +0 -2
  195. package/src/services/index.ts +0 -8
  196. package/src/simple/StakeEventsViewer/SimpleStakeEventsViewer.ts +0 -93
  197. package/src/simple/StakeEventsViewer/index.ts +0 -1
  198. package/src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts +0 -116
  199. package/src/simple/StakeTotalsViewer/index.ts +0 -1
  200. package/src/simple/StakeViewer/SimpleStakeViewer.ts +0 -164
  201. package/src/simple/StakeViewer/index.ts +0 -1
  202. package/src/simple/TransactionViewer/SimpleTransactionViewer.ts +0 -100
  203. package/src/simple/TransactionViewer/index.ts +0 -1
  204. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +0 -271
  205. package/src/simple/accountBalance/index.ts +0 -1
  206. package/src/simple/block/SimpleBlockViewer.ts +0 -231
  207. package/src/simple/block/index.ts +0 -1
  208. package/src/simple/blockInvalidation/SimpleBlockInvalidationViewer.ts +0 -197
  209. package/src/simple/blockInvalidation/index.ts +0 -1
  210. package/src/simple/blockReward/SimpleBlockRewardViewer.ts +0 -27
  211. package/src/simple/blockReward/index.ts +0 -1
  212. package/src/simple/blockValidation/SimpleBlockValidationViewer.ts +0 -194
  213. package/src/simple/blockValidation/index.ts +0 -1
  214. package/src/simple/chainContractViewer/SimpleChainContractViewer.ts +0 -92
  215. package/src/simple/chainContractViewer/index.ts +0 -1
  216. package/src/simple/client/SimpleXyoClient.ts +0 -14
  217. package/src/simple/client/index.ts +0 -1
  218. package/src/simple/datalake/AbstractRestDataLake.ts +0 -70
  219. package/src/simple/datalake/AbstractSimpleDataLake.ts +0 -62
  220. package/src/simple/datalake/RestDataLakeRunner.ts +0 -54
  221. package/src/simple/datalake/RestDataLakeViewer.ts +0 -22
  222. package/src/simple/datalake/SimpleDataLakeRunner.ts +0 -44
  223. package/src/simple/datalake/SimpleDataLakeViewer.ts +0 -24
  224. package/src/simple/datalake/index.ts +0 -4
  225. package/src/simple/finalization/SimpleFinalizationRunner.ts +0 -45
  226. package/src/simple/finalization/SimpleFinalizationViewer.ts +0 -123
  227. package/src/simple/finalization/index.ts +0 -2
  228. package/src/simple/gateway/SimpleXyoGateway.ts +0 -30
  229. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +0 -137
  230. package/src/simple/gateway/index.ts +0 -2
  231. package/src/simple/index.ts +0 -22
  232. package/src/simple/mempool/SimpleMempoolRunner.ts +0 -390
  233. package/src/simple/mempool/SimpleMempoolViewer.ts +0 -215
  234. package/src/simple/mempool/index.ts +0 -2
  235. package/src/simple/network/SimpleXyoNetwork.ts +0 -48
  236. package/src/simple/network/index.ts +0 -1
  237. package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +0 -16
  238. package/src/simple/network/lib/StatusNetworks.ts +0 -32
  239. package/src/simple/network/lib/index.ts +0 -2
  240. package/src/simple/permissions/SimpleXyoPermissions.ts +0 -82
  241. package/src/simple/permissions/index.ts +0 -2
  242. package/src/simple/permissions/store/MemoryPermissions.ts +0 -32
  243. package/src/simple/permissions/store/PermissionsStore.ts +0 -17
  244. package/src/simple/permissions/store/index.ts +0 -2
  245. package/src/simple/runner/SimpleXyoRunner.ts +0 -41
  246. package/src/simple/runner/index.ts +0 -1
  247. package/src/simple/signer/SimpleXyoSigner.ts +0 -78
  248. package/src/simple/signer/index.ts +0 -1
  249. package/src/simple/timeSync2/SimpleTimeSyncViewer.ts +0 -132
  250. package/src/simple/timeSync2/index.ts +0 -1
  251. package/src/simple/transactionInvalidation/SimpleTransactionInvalidationViewer.ts +0 -197
  252. package/src/simple/transactionInvalidation/index.ts +0 -1
  253. package/src/simple/transactionValidation/SimpleTransactionValidationViewer.ts +0 -173
  254. package/src/simple/transactionValidation/index.ts +0 -1
  255. package/src/simple/windowedBlock/SimpleWindowedBlockViewer.ts +0 -207
  256. package/src/simple/windowedBlock/index.ts +0 -1
  257. package/src/status/RuntimeStatusMonitor.ts +0 -120
  258. package/src/status/ServiceStatus.ts +0 -21
  259. package/src/status/index.ts +0 -2
  260. package/src/summary/index.ts +0 -2
  261. package/src/summary/model/BalancesStepSummary.ts +0 -35
  262. package/src/summary/model/SchemasStepSummary.ts +0 -33
  263. package/src/summary/model/StepSummary.ts +0 -20
  264. package/src/summary/model/TransfersSummary.ts +0 -36
  265. package/src/summary/model/index.ts +0 -4
  266. package/src/summary/primitives/balances/balancesStepSummaryFromRange.ts +0 -94
  267. package/src/summary/primitives/balances/balancesSummary.ts +0 -48
  268. package/src/summary/primitives/balances/index.ts +0 -2
  269. package/src/summary/primitives/index.ts +0 -3
  270. package/src/summary/primitives/schemas/index.ts +0 -2
  271. package/src/summary/primitives/schemas/schemasStepSummaryFromRange.ts +0 -86
  272. package/src/summary/primitives/schemas/schemasSummary.ts +0 -44
  273. package/src/summary/primitives/transfers/index.ts +0 -2
  274. package/src/summary/primitives/transfers/transfersStepSummaryFromRange.ts +0 -109
  275. package/src/summary/primitives/transfers/transfersSummary.ts +0 -52
  276. package/src/test/BuildBlockOptions.ts +0 -81
  277. package/src/test/buildBlock.ts +0 -105
  278. package/src/test/buildGenesisBlock.ts +0 -29
  279. package/src/test/buildNextBlock.ts +0 -37
  280. package/src/test/buildRandomChain.ts +0 -92
  281. package/src/test/buildRandomGenesisBlock.ts +0 -47
  282. package/src/test/createGenesisBlock.ts +0 -41
  283. package/src/test/createProducerChainStakeIntentTransaction.ts +0 -48
  284. package/src/test/getSimpleBlockViewerLocator.ts +0 -41
  285. package/src/test/getTestProviderContext.ts +0 -8
  286. package/src/test/index.ts +0 -2
  287. package/src/time/index.ts +0 -1
  288. package/src/time/primitives/index.ts +0 -1
  289. package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +0 -13
  290. package/src/transaction/TransactionBuilder.ts +0 -164
  291. package/src/transaction/buildRandomTransaction.ts +0 -38
  292. package/src/transaction/buildTransaction.ts +0 -68
  293. package/src/transaction/buildUnsignedTransaction.ts +0 -56
  294. package/src/transaction/confirmSubmittedTransaction.ts +0 -42
  295. package/src/transaction/hydrateTransaction.ts +0 -117
  296. package/src/transaction/index.ts +0 -9
  297. package/src/transaction/primitives/index.ts +0 -4
  298. package/src/transaction/primitives/transactionBlockByteCount.ts +0 -10
  299. package/src/transaction/primitives/transactionElevatedPayloads.ts +0 -18
  300. package/src/transaction/primitives/transactionOperations.ts +0 -13
  301. package/src/transaction/primitives/transactionRequiredGas.ts +0 -22
  302. package/src/transaction/script.ts +0 -48
  303. package/src/transaction/signTransaction.ts +0 -32
  304. package/src/utils/HydratedCache.ts +0 -39
  305. package/src/utils/index.ts +0 -2
  306. package/src/utils/isZodError.ts +0 -11
  307. package/src/validation/index.ts +0 -2
  308. package/src/validation/lib/getUrl.ts +0 -7
  309. package/src/validation/lib/index.ts +0 -2
  310. package/src/validation/lib/isLocalhost.ts +0 -9
  311. package/src/validation/schema/Address.ts +0 -2
  312. package/src/validation/schema/Mnemonic.ts +0 -21
  313. package/src/validation/schema/index.ts +0 -2
  314. package/src/wallet/generateXyoBaseWalletFromPhrase.ts +0 -13
  315. package/src/wallet/index.ts +0 -2
  316. package/src/wallet/paths.ts +0 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/xl1-protocol-sdk",
3
- "version": "1.26.11",
3
+ "version": "1.26.13",
4
4
  "description": "XYO Layer One SDK Protocol",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -22,17 +22,14 @@
22
22
  "exports": {
23
23
  ".": {
24
24
  "types": "./dist/neutral/index.d.ts",
25
- "source": "./src/index.ts",
26
25
  "default": "./dist/neutral/index.mjs"
27
26
  },
28
27
  "./test": {
29
28
  "types": "./dist/neutral/test/index.d.ts",
30
- "source": "./src/test/index.ts",
31
29
  "default": "./dist/neutral/test/index.mjs"
32
30
  },
33
31
  "./get": {
34
32
  "types": "./dist/neutral/getFileConfig.d.ts",
35
- "source": "./src/getFileConfig.ts",
36
33
  "default": "./dist/neutral/getFileConfig.mjs"
37
34
  },
38
35
  "./package.json": "./package.json"
@@ -42,35 +39,50 @@
42
39
  "types": "./dist/neutral/index.d.ts",
43
40
  "files": [
44
41
  "dist",
45
- "src",
46
42
  "!**/*.bench.*",
47
43
  "!**/*.spec.*",
48
- "!**/*.test.*"
44
+ "!**/*.test.*",
45
+ "README.md"
49
46
  ],
50
47
  "dependencies": {
51
- "@xyo-network/xl1-protocol-lib": "~1.26.11",
52
- "@xyo-network/xl1-schema": "~1.26.11",
48
+ "@xyo-network/xl1-protocol-lib": "~1.26.13",
49
+ "@xyo-network/xl1-schema": "~1.26.13",
53
50
  "async-mutex": "~0.5.0",
54
51
  "cosmiconfig": "^9.0.1",
55
52
  "lru-cache": "^11.2.7"
56
53
  },
57
54
  "devDependencies": {
55
+ "@firebase/app": "0.x",
56
+ "@firebase/app-compat": "0.x",
57
+ "@firebase/app-types": "0.x",
58
+ "@firebase/util": "1.x",
59
+ "@metamask/providers": "^22",
58
60
  "@opentelemetry/api": "^1.9.1",
59
61
  "@types/node": "^25.5.0",
60
- "@xylabs/sdk-js": "^5.0.90",
61
- "@xylabs/ts-scripts-common": "~7.5.6",
62
- "@xylabs/ts-scripts-yarn3": "~7.5.6",
63
- "@xylabs/tsconfig": "~7.5.6",
64
- "@xylabs/vitest-extended": "~5.0.90",
65
- "@xyo-network/sdk-js": "^5.3.17",
66
- "@xyo-network/xl1-network-model": "~1.26.11",
67
- "axios": "^1.13.6",
62
+ "@xylabs/geo": "^5",
63
+ "@xylabs/sdk-js": "^5.0.91",
64
+ "@xylabs/ts-scripts-common": "~7.6.13",
65
+ "@xylabs/ts-scripts-yarn3": "~7.6.13",
66
+ "@xylabs/tsconfig": "~7.6.13",
67
+ "@xylabs/vitest-extended": "~5.0.91",
68
+ "@xyo-network/sdk-js": "^5.3.22",
69
+ "@xyo-network/xl1-network-model": "~1.26.13",
70
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0",
71
+ "ajv": "^8",
72
+ "axios": "^1.14.0",
73
+ "esbuild": ">=0.18",
74
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0",
68
75
  "ethers": "^6.16.0",
76
+ "firebase": "^12",
69
77
  "ky": "^1.14.3",
78
+ "mapbox-gl": "^3",
70
79
  "mongodb": "~7.1.1",
80
+ "rollup": "^3.29.4 || ^4",
71
81
  "tslib": "^2.8.1",
72
82
  "typescript": "~5.9.3",
83
+ "vite": "^8.0.3",
73
84
  "vitest": "~4.1.2",
85
+ "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0",
74
86
  "zod": "~4.3.6"
75
87
  },
76
88
  "peerDependencies": {
@@ -80,6 +92,7 @@
80
92
  "axios": "^1",
81
93
  "ethers": "^6",
82
94
  "mongodb": "^6 || ^7",
95
+ "typescript": ">=4.9.5",
83
96
  "zod": "^4"
84
97
  },
85
98
  "engines": {
@@ -1,50 +0,0 @@
1
- import {
2
- isDefined, isObject, isUndefined,
3
- timeBudget,
4
- } from '@xylabs/sdk-js'
5
- import type { CachingContext, MapType } from '@xyo-network/xl1-protocol-lib'
6
-
7
- import { LruCacheMap, MemoryMap } from './driver/index.ts'
8
-
9
- /** Retrieves or creates a named cache from the caching context */
10
- export function contextCache<TCacheValue>(
11
- context: CachingContext,
12
- name: string,
13
- create?: () => MapType<string, TCacheValue>,
14
- ): MapType<string, TCacheValue> {
15
- if (!isObject(context.caches)) {
16
- throw new Error('Context does not have an appropriate caches property')
17
- }
18
- if (isUndefined(context.caches[name])) {
19
- context.caches[name] = create?.() ?? new MemoryMap<string, TCacheValue>()
20
- }
21
- return context.caches[name] as MapType<string, TCacheValue>
22
- }
23
-
24
- /** Options for the withContextCacheResponse helper */
25
- export interface withContextCacheResponseOptions {
26
- max?: number
27
- }
28
-
29
- /** Executes a function with LRU caching, returning the cached result if available */
30
- export async function withContextCacheResponse<T extends {} | string | number | bigint>(
31
- context: CachingContext,
32
- name: string,
33
- key: string,
34
- func: () => Promise<T extends {} | string | number | bigint ? T : never>,
35
- { max = 10_000 }: withContextCacheResponseOptions = {},
36
- ): Promise<T> {
37
- const cache = contextCache<Promise<T>>(
38
- context,
39
- name,
40
- () => new LruCacheMap<string, Promise<T>>({ max }),
41
- )
42
- const { timeBudgetLimit = 0 } = context
43
- const cacheResult = await cache.get(key)
44
- if (isDefined(cacheResult)) {
45
- return cacheResult
46
- }
47
- const result = timeBudgetLimit > 0 ? timeBudget(name, context.logger, func, timeBudgetLimit) : func()
48
- await cache.set(key, result)
49
- return result
50
- }
@@ -1,97 +0,0 @@
1
- import type { Logger } from '@xylabs/sdk-js'
2
- import {
3
- AbstractCreatable, assertEx, IdLogger,
4
- } from '@xylabs/sdk-js'
5
- import type { Provider, ProviderMoniker } from '@xyo-network/xl1-protocol-lib'
6
-
7
- import type {
8
- CreatableProvider,
9
- CreatableProviderEventData, CreatableProviderInstance, CreatableProviderParams,
10
- ProviderMap,
11
- } from './CreatableProvider.ts'
12
- import { ProviderFactory } from './ProviderFactory.ts'
13
-
14
- /** Abstract base class for CreatableProvider implementations. */
15
- export abstract class AbstractCreatableProvider<TParams extends CreatableProviderParams = CreatableProviderParams,
16
- TEventData extends CreatableProviderEventData = CreatableProviderEventData> extends AbstractCreatable<TParams, TEventData>
17
- implements Omit<CreatableProviderInstance, 'moniker'> {
18
- dependencies: ProviderMap = {}
19
-
20
- protected _contextCache: TParams['context'] | undefined
21
- protected _logger: Logger | undefined | null
22
-
23
- abstract readonly moniker: ProviderMoniker
24
-
25
- override get logger() {
26
- // we use null as a way to know if it has been initialized to nothing
27
- if (this._logger === undefined) {
28
- const providedLogger = this.params.logger ?? this.context.logger
29
- this._logger = providedLogger ? new IdLogger(providedLogger, () => `${this.moniker} [${this.constructor.name}]`) : null
30
- }
31
- return this._logger ?? undefined
32
- }
33
-
34
- override get meter() {
35
- return this.context.meterProvider?.getMeter(this.name) ?? super.meter
36
- }
37
-
38
- override get tracer() {
39
- return this.context.traceProvider?.getTracer(this.name) ?? super.tracer
40
- }
41
-
42
- protected get config() {
43
- return this.context.config!
44
- }
45
-
46
- protected get context() {
47
- return this.params.context!
48
- }
49
-
50
- protected get locator() {
51
- return this.context.locator!
52
- }
53
-
54
- static factory<TInstance extends CreatableProviderInstance, TDependencies extends ProviderMoniker[] = ProviderMoniker[]>(
55
- this: CreatableProvider<TInstance>,
56
- dependencies: TDependencies,
57
- params: Omit<TInstance['params'], 'context'>,
58
- ) {
59
- const factory = ProviderFactory.withParams<TInstance, TDependencies>(this, dependencies, params)
60
- return factory
61
- }
62
-
63
- static override async paramsHandler<T extends CreatableProviderInstance>(
64
- params: Partial<T['params']> = {},
65
- ) {
66
- const context = assertEx(params.context, () => new Error('Context is required'))
67
- const config = assertEx(context.config, () => new Error('Context config is required'))
68
- const locator = assertEx(context.locator, () => new Error('Context locator is required'))
69
- return await super.paramsHandler<T>({
70
- ...params,
71
- statusReporter: params.statusReporter ?? context.statusReporter,
72
- context: {
73
- ...context, config, locator,
74
- },
75
- name: params.name ?? (this as unknown as CreatableProvider<T>).defaultMoniker,
76
- logger: params.logger ?? context.logger,
77
- })
78
- }
79
-
80
- override async createHandler() {
81
- await super.createHandler()
82
- if (this.tracer === undefined) {
83
- this.logger?.warn('No tracer available in context')
84
- }
85
- if (this.meter === undefined) {
86
- this.logger?.warn('No meter available in context')
87
- }
88
- }
89
-
90
- async locateAndCreate<TProvider extends Provider<ProviderMoniker>>(moniker: TProvider['moniker']) {
91
- return await this.locator.getInstance<TProvider>(moniker)
92
- }
93
-
94
- async tryLocateAndCreate<TProvider extends Provider<ProviderMoniker>>(moniker: TProvider['moniker']) {
95
- return await this.locator.tryGetInstance<TProvider>(moniker)
96
- }
97
- }
@@ -1,102 +0,0 @@
1
- import type {
2
- Creatable, CreatableInstance, CreatableParams,
3
- EventData,
4
- Labels, WithOptionalLabels,
5
- } from '@xylabs/sdk-js'
6
- import type { Provider, ProviderMoniker } from '@xyo-network/xl1-protocol-lib'
7
-
8
- import type { CreatableProviderContext } from '../model/index.ts'
9
- import type { GetInstanceOptions } from './GetInstanceOptions.ts'
10
- import type { LabeledCreatableProviderFactory } from './LabeledCreatableProviderFactory.ts'
11
-
12
- /** Parameters for CreatableProvider. */
13
- export interface CreatableProviderParams<TContext extends CreatableProviderContext = CreatableProviderContext> extends CreatableParams {
14
- context: TContext
15
- }
16
- /** CreatableProviderEventData interface. */
17
- export interface CreatableProviderEventData extends EventData {}
18
-
19
- /** CreatableProviderInstance type. */
20
- export type CreatableProviderInstance<
21
- TProvider extends Provider<ProviderMoniker> = Provider<ProviderMoniker>,
22
- TDependencies extends ProviderMoniker[] = ProviderMoniker[],
23
- TParams extends CreatableProviderParams = CreatableProviderParams,
24
- TEventData extends CreatableProviderEventData = CreatableProviderEventData>
25
- = CreatableInstance<TParams, TEventData> & TProvider & {
26
- dependencies: ProviderMap<TDependencies[number]>
27
- }
28
-
29
- /** ProviderFactoryScope type. */
30
- export type ProviderFactoryScope = 'global' | 'context' | 'local'
31
-
32
- /** CreatableProviderFactory interface. */
33
- export interface CreatableProviderFactory<T extends CreatableProviderInstance = CreatableProviderInstance,
34
- TDependencies extends ProviderMoniker[] = ProviderMoniker[]>
35
- extends Omit<CreatableProvider<T>, 'create' | 'createHandler' | 'paramsHandler'> {
36
- creatableProvider: CreatableProvider<T>
37
- defaultParams: Omit<T['params'], 'context'>
38
-
39
- readonly dependencies: TDependencies
40
-
41
- labels?: Labels
42
- providerName: string
43
- resolvedMoniker: string
44
- scope: ProviderFactoryScope
45
-
46
- uniqueId: symbol
47
-
48
- getInstance(
49
- this: CreatableProviderFactory<T>,
50
- params: T['params'],
51
- options?: GetInstanceOptions): Promise<T>
52
-
53
- tryGetInstance(
54
- this: CreatableProviderFactory<T>,
55
- params: T['params'],
56
- options?: GetInstanceOptions): Promise<T | undefined>
57
-
58
- }
59
-
60
- /** LabeledCreatableProvider interface. */
61
- export interface LabeledCreatableProvider<T extends CreatableProviderInstance = CreatableProviderInstance,
62
- TDependencies extends ProviderMoniker[] = ProviderMoniker[]> extends CreatableProvider<T>, WithOptionalLabels {
63
- factory(dependencies: TDependencies, params: Omit<T['params'], 'context'>): LabeledCreatableProviderFactory<T>
64
- }
65
-
66
- /** ProviderMap type. */
67
- export type ProviderMap<T extends ProviderMoniker = ProviderMoniker> = Partial<Record<T, CreatableProviderInstance<Provider<T>>>>
68
-
69
- /** CreatableProvider interface. */
70
- export interface CreatableProvider<T extends CreatableProviderInstance = CreatableProviderInstance,
71
- TDependencies extends ProviderMoniker[] = ProviderMoniker[]> extends Creatable<T> {
72
- readonly defaultMoniker: ProviderMoniker
73
- readonly dependencies: TDependencies
74
- readonly monikers: ProviderMoniker[]
75
- factory(dependencies: TDependencies, params: Omit<T['params'], 'context'>): CreatableProviderFactory<T>
76
- }
77
-
78
- /**
79
- * Class annotation to be used to decorate Providers which support
80
- * an asynchronous creation pattern
81
- * @returns The decorated Provider requiring it implement the members
82
- * of the CreatableProvider as statics properties/methods
83
- */
84
- export function creatableProvider<TProvider extends CreatableProviderInstance = CreatableProviderInstance>() {
85
- return <U extends CreatableProvider<TProvider>>(constructor: U) => {
86
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
87
- constructor
88
- }
89
- }
90
-
91
- /**
92
- * Class annotation to be used to decorate Providers which support
93
- * an asynchronous creation pattern
94
- * @returns The decorated Provider requiring it implement the members
95
- * of the CreatableProvider as statics properties/methods
96
- */
97
- export function labeledCreatableProvider<TProvider extends CreatableProviderInstance = CreatableProviderInstance>() {
98
- return <U extends LabeledCreatableProvider<TProvider>>(constructor: U) => {
99
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
100
- constructor
101
- }
102
- }
@@ -1,94 +0,0 @@
1
- import type { Labels } from '@xylabs/sdk-js'
2
- import { isTruthy } from '@xylabs/sdk-js'
3
- import type { ProviderMoniker } from '@xyo-network/xl1-protocol-lib'
4
-
5
- import type { CreatableProviderFactory, CreatableProviderInstance } from './CreatableProvider.ts'
6
- import type { LabeledCreatableProviderFactory } from './LabeledCreatableProviderFactory.ts'
7
- import { providerFactoryDescription } from './ProviderFactory.ts'
8
-
9
- /** CreatableProviderRegistry type. */
10
- export type CreatableProviderRegistry<TMonikers extends ProviderMoniker[] = ProviderMoniker[]>
11
- = Record<TMonikers[number], (CreatableProviderFactory | LabeledCreatableProviderFactory)[] | undefined>
12
-
13
- const buildProviderFactory = <TProvider extends CreatableProviderInstance>(
14
- provider: CreatableProviderFactory<TProvider>,
15
- defaultParams: Omit<TProvider['params'], 'context'>,
16
- labels?: Labels,
17
- ): LabeledCreatableProviderFactory<TProvider> => {
18
- const factory = {
19
- monikers: provider.monikers,
20
- uniqueId: Symbol(providerFactoryDescription(provider, labels)),
21
- // Merge module & supplied labels
22
- labels: { ...(provider as LabeledCreatableProviderFactory).labels, ...labels },
23
- creatableProvider: provider.creatableProvider,
24
- dependencies: provider.dependencies,
25
- resolvedMoniker: provider.resolvedMoniker,
26
- providerName: provider.providerName,
27
- scope: provider.scope,
28
- defaultParams,
29
- getInstance: provider.getInstance.bind(provider) as LabeledCreatableProviderFactory<TProvider>['getInstance'],
30
- tryGetInstance: provider.tryGetInstance?.bind(provider) as LabeledCreatableProviderFactory<TProvider>['tryGetInstance'],
31
- defaultMoniker: provider.defaultMoniker,
32
- factory: provider.factory.bind(provider) as LabeledCreatableProviderFactory<TProvider>['factory'],
33
- } satisfies LabeledCreatableProviderFactory<TProvider>
34
- return factory
35
- }
36
-
37
- /** registerCreatableProviderFactory constant. */
38
- export const registerCreatableProviderFactory = <TProvider extends CreatableProviderInstance>(
39
- registry: CreatableProviderRegistry,
40
- factory: CreatableProviderFactory<TProvider> | LabeledCreatableProviderFactory<TProvider>,
41
- labels?: Labels,
42
- /** register this as the primary factory for every schema it supports */
43
- primary: boolean | ProviderMoniker | ProviderMoniker[] = false,
44
- ) => {
45
- const primaryMonikers
46
- = primary !== true && isTruthy(primary)
47
- ? Array.isArray(primary)
48
- ? primary
49
- : [primary]
50
- : []
51
-
52
- for (const primaryMoniker of primaryMonikers) {
53
- if (!factory.monikers.includes(primaryMoniker)) {
54
- console.warn(`Primary moniker ${primary} not found in factory monikers`)
55
- }
56
- }
57
-
58
- const isPrimaryForMoniker = (moniker: ProviderMoniker) => {
59
- switch (typeof primary) {
60
- case 'boolean': {
61
- return primary
62
- }
63
- case 'string': {
64
- return moniker === primary
65
- }
66
- case 'object': {
67
- if (Array.isArray(primary)) {
68
- return primary.includes(moniker)
69
- }
70
- }
71
- }
72
- throw new Error(`Invalid primary value: ${primary}`)
73
- }
74
-
75
- const factoryClone: LabeledCreatableProviderFactory<TProvider> = buildProviderFactory(factory, factory.defaultParams, labels)
76
-
77
- // add this default moniker as the first entry
78
- registry[factoryClone.defaultMoniker] = [factoryClone, ...(registry[factoryClone.defaultMoniker] ?? [])]
79
- for (const moniker of factoryClone.monikers) {
80
- registry[moniker] = isPrimaryForMoniker(moniker) ? [factoryClone, ...(registry[moniker] ?? [])] : [...(registry[moniker] ?? []), factoryClone]
81
- }
82
- }
83
-
84
- /** registerCreatableProviderFactories constant. */
85
- export const registerCreatableProviderFactories = (
86
- factories: (CreatableProviderFactory | LabeledCreatableProviderFactory)[],
87
- registry: CreatableProviderRegistry = {},
88
- primary = false,
89
- ) => {
90
- for (const factory of factories) {
91
- registerCreatableProviderFactory(registry, factory, undefined, primary)
92
- }
93
- return registry
94
- }
@@ -1,11 +0,0 @@
1
- import type { Labels } from '@xylabs/sdk-js'
2
-
3
- /** Options for GetInstance. */
4
- export interface GetInstanceOptions {
5
- start?: boolean
6
- }
7
-
8
- /** Options for ProviderFactoryGetInstance. */
9
- export interface ProviderFactoryGetInstanceOptions extends GetInstanceOptions {
10
- labels?: Labels
11
- }
@@ -1,24 +0,0 @@
1
- import type { WithOptionalLabels } from '@xylabs/sdk-js'
2
-
3
- import type { CreatableProviderFactory, CreatableProviderInstance } from './CreatableProvider.ts'
4
-
5
- /** LabeledCreatableProviderFactory type. */
6
- export type LabeledCreatableProviderFactory<T extends CreatableProviderInstance = CreatableProviderInstance> = CreatableProviderFactory<T> & WithOptionalLabels
7
-
8
- /** hasLabels constant. */
9
- export const hasLabels = (factory: CreatableProviderFactory | LabeledCreatableProviderFactory): factory is LabeledCreatableProviderFactory => {
10
- return (factory as LabeledCreatableProviderFactory).labels !== undefined
11
- }
12
-
13
- /**
14
- * Class annotation to be used to decorate Providers which support
15
- * an asynchronous labeled creation factory pattern
16
- * @returns The decorated Provider requiring it implement the members
17
- * of the CreatableProvider as statics properties/methods
18
- */
19
- export function labeledCreatableProviderFactory<TProvider extends CreatableProviderInstance = CreatableProviderInstance>() {
20
- return <U extends LabeledCreatableProviderFactory<TProvider>>(constructor: U) => {
21
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
22
- constructor
23
- }
24
- }
@@ -1,138 +0,0 @@
1
- import type { Labels, WithOptionalLabels } from '@xylabs/sdk-js'
2
- import { assertEx } from '@xylabs/sdk-js'
3
- import type { ProviderMoniker } from '@xyo-network/xl1-protocol-lib'
4
-
5
- import type {
6
- CreatableProvider, CreatableProviderFactory, CreatableProviderInstance,
7
- ProviderFactoryScope,
8
- } from './CreatableProvider.ts'
9
- import type { GetInstanceOptions } from './GetInstanceOptions.ts'
10
-
11
- declare global {
12
- var xyoServiceSingletons: Record<string, unknown>
13
- }
14
-
15
- /** ProviderFactoryDescription helper function. */
16
- export function providerFactoryDescription(factory: CreatableProviderFactory, labels?: Labels) {
17
- return `${factory.providerName}:${factory.defaultMoniker}:${JSON.stringify(labels ?? (factory as WithOptionalLabels).labels ?? {})}`
18
- }
19
-
20
- /** ProviderFactory implementation. */
21
- export class ProviderFactory<TProvider extends CreatableProviderInstance,
22
- TDependencies extends ProviderMoniker[]> implements CreatableProviderFactory<TProvider> {
23
- creatableProvider: CreatableProvider<TProvider>
24
-
25
- defaultMoniker: CreatableProvider<TProvider>['monikers'][number]
26
-
27
- defaultParams: Omit<TProvider['params'], 'context'>
28
-
29
- dependencies: TDependencies
30
-
31
- labels?: Labels
32
-
33
- monikers: CreatableProvider<TProvider>['monikers']
34
-
35
- providerName: string
36
-
37
- scope: ProviderFactoryScope
38
-
39
- private _uniqueId: symbol
40
-
41
- constructor(
42
- creatableProvider: CreatableProvider<TProvider>,
43
- dependencies: TDependencies,
44
- params: Omit<TProvider['params'], 'context'>,
45
- labels: Labels = {},
46
- scope: ProviderFactoryScope = 'context',
47
- ) {
48
- this.creatableProvider = creatableProvider
49
- this.defaultParams = params
50
- this.defaultMoniker = creatableProvider.defaultMoniker
51
- this.dependencies = dependencies
52
- this.monikers = creatableProvider.monikers
53
- this.scope = scope
54
- assertEx(this.monikers.includes(this.defaultMoniker), () => 'defaultMoniker must be in monikers')
55
- this.labels = Object.assign({}, (creatableProvider as WithOptionalLabels).labels ?? {}, labels ?? {})
56
- this.providerName = creatableProvider.name
57
- this._uniqueId = Symbol(providerFactoryDescription(this))
58
- }
59
-
60
- get resolvedMoniker() {
61
- const labels: Labels = this.labels ?? {}
62
- const labelString = Object.entries(labels).map(([key, value]) => `${key}=${value}`).join(',')
63
- return labelString.length === 0 ? `${this.defaultMoniker}` : `${this.defaultMoniker}|${labelString}`
64
- }
65
-
66
- get uniqueId(): symbol {
67
- return this._uniqueId
68
- }
69
-
70
- static withParams<TInstance extends CreatableProviderInstance, TDependencies extends ProviderMoniker[]>(
71
- creatableProvider: CreatableProvider<TInstance>,
72
- dependencies: TDependencies,
73
- params: Omit<TInstance['params'], 'context'>,
74
- labels: Labels = {},
75
- ) {
76
- return new ProviderFactory<TInstance, TDependencies>(creatableProvider, dependencies, params, labels)
77
- }
78
-
79
- factory<TInstance extends CreatableProviderInstance, TDependencies extends ProviderMoniker[]>(
80
- this: CreatableProviderFactory<TInstance, TDependencies>,
81
- dependencies: TDependencies,
82
- params: Omit<TInstance['params'], 'context'>,
83
- labels: Labels = {},
84
- ) {
85
- return new ProviderFactory<TInstance, TDependencies>(this.creatableProvider, dependencies, params, labels)
86
- }
87
-
88
- async getInstance(this: CreatableProviderFactory<TProvider>, params: TProvider['params'], { start = true }: GetInstanceOptions): Promise<TProvider> {
89
- let scopeObject: Record<string, unknown> = {}
90
- switch (this.scope) {
91
- case 'global': {
92
- if (globalThis.xyoServiceSingletons === undefined) {
93
- globalThis.xyoServiceSingletons = {}
94
- }
95
- scopeObject = globalThis.xyoServiceSingletons
96
- break
97
- }
98
- case 'context': {
99
- const context = assertEx(
100
- params?.context,
101
- () => 'Context is required for context-scoped providers',
102
- )
103
- if (context.singletons === undefined) {
104
- context.singletons = {}
105
- }
106
- scopeObject = context.singletons
107
- break
108
- }
109
- default: {
110
- scopeObject = {}
111
- break
112
- }
113
- }
114
- const mergedParams: TProvider['params'] = {
115
- ...this.defaultParams,
116
- ...params,
117
- } as TProvider['params']
118
- const resultPromise = scopeObject[this.resolvedMoniker] as Promise<TProvider> ?? this.creatableProvider.create<TProvider>(mergedParams)
119
- scopeObject[this.resolvedMoniker] = resultPromise
120
- const result = await resultPromise
121
- if (start) {
122
- assertEx(await result.start(), () => `Failed to start provider instance [${this.resolvedMoniker}]`)
123
- }
124
- return result
125
- }
126
-
127
- async tryGetInstance(
128
- this: CreatableProviderFactory<TProvider>,
129
- params: TProvider['params'],
130
- options?: GetInstanceOptions,
131
- ): Promise<TProvider | undefined> {
132
- try {
133
- return await this.getInstance(params, options)
134
- } catch {
135
- return
136
- }
137
- }
138
- }