@xyo-network/xl1-driver-cloudflare-r2 4.0.11 → 4.0.14
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 +62 -54
- package/dist/neutral/R2Map.d.ts +1 -1
- package/dist/neutral/R2Map.d.ts.map +1 -1
- package/dist/neutral/index.mjs +1 -1
- package/dist/neutral/index.mjs.map +2 -2
- package/package.json +17 -25
package/README.md
CHANGED
|
@@ -5,29 +5,16 @@
|
|
|
5
5
|
[![npm-badge][]][npm-link]
|
|
6
6
|
[![license-badge][]][license-link]
|
|
7
7
|
|
|
8
|
-
> Cloudflare R2-
|
|
8
|
+
> Cloudflare R2 and S3-compatible map driver for XL1 protocol storage.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Description
|
|
11
11
|
|
|
12
|
-
XL1
|
|
12
|
+
XL1 is the XYO Layer One blockchain protocol. This package provides `R2Map`, an
|
|
13
|
+
S3-compatible `AsyncIterableMap` for Cloudflare R2 buckets. It stores each value
|
|
14
|
+
as JSON under a deterministic object key and can optionally use an in-memory
|
|
15
|
+
read-through cache.
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```ts
|
|
17
|
-
import { S3Client } from '@aws-sdk/client-s3'
|
|
18
|
-
import { R2Map } from '@xyo-network/xl1-driver-cloudflare-r2'
|
|
19
|
-
|
|
20
|
-
const client = new S3Client({
|
|
21
|
-
region: 'auto',
|
|
22
|
-
endpoint: `https://${accountId}.r2.cloudflarestorage.com`,
|
|
23
|
-
credentials: { accessKeyId, secretAccessKey },
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
const map = await R2Map.create({ bucket: 'summaries', client, prefix: 'blocks/' })
|
|
27
|
-
await map.start()
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Because object storage has no per-value size ceiling comparable to document databases, `R2Map` suits large cached objects (e.g. block step summaries). Sibling drivers: [`@xyo-network/xl1-driver-memory`](https://www.npmjs.com/package/@xyo-network/xl1-driver-memory), [`@xyo-network/xl1-driver-lmdb`](https://www.npmjs.com/package/@xyo-network/xl1-driver-lmdb), [`@xyo-network/xl1-driver-mongodb`](https://www.npmjs.com/package/@xyo-network/xl1-driver-mongodb).
|
|
17
|
+
Use it for durable object-storage-backed maps in Node services and publishers.
|
|
31
18
|
|
|
32
19
|
## Install
|
|
33
20
|
|
|
@@ -55,50 +42,71 @@ Using bun:
|
|
|
55
42
|
bun add @xyo-network/xl1-driver-cloudflare-r2
|
|
56
43
|
```
|
|
57
44
|
|
|
58
|
-
|
|
45
|
+
This package expects an `@aws-sdk/client-s3` `S3Client` configured for your R2
|
|
46
|
+
or S3-compatible endpoint.
|
|
59
47
|
|
|
60
|
-
##
|
|
48
|
+
## Usage
|
|
61
49
|
|
|
62
|
-
|
|
50
|
+
```ts
|
|
51
|
+
import { S3Client } from '@aws-sdk/client-s3'
|
|
52
|
+
import { R2Map } from '@xyo-network/xl1-driver-cloudflare-r2'
|
|
63
53
|
|
|
64
|
-
|
|
54
|
+
const client = new S3Client({
|
|
55
|
+
region: 'auto',
|
|
56
|
+
endpoint: `https://${accountId}.r2.cloudflarestorage.com`,
|
|
57
|
+
credentials: { accessKeyId, secretAccessKey },
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
const map = await R2Map.create({
|
|
61
|
+
bucket: 'xl1-cache',
|
|
62
|
+
client,
|
|
63
|
+
prefix: 'blocks/',
|
|
64
|
+
getCache: { enabled: true },
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
await map.start()
|
|
68
|
+
await map.set('head', { block: 42 })
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Documentation
|
|
72
|
+
|
|
73
|
+
`R2Map` implements async `get`, `set`, `has`, `getMany`, `setMany`, `delete`,
|
|
74
|
+
`clear`, and `for await...of` iteration over the matching object prefix.
|
|
75
|
+
|
|
76
|
+
Use `@xyo-network/xl1-s3-publishers` when you need to publish the complete XL1
|
|
77
|
+
static REST layout rather than a generic map abstraction.
|
|
78
|
+
|
|
79
|
+
## AI Agent Skills
|
|
80
|
+
|
|
81
|
+
Install the recommended XL1/XYO skills with [Skills.sh](https://skills.sh):
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
npx skills add XYOracleNetwork/xyo-skills --all
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
In XY toolchain repos, the equivalent convenience command is:
|
|
65
88
|
|
|
66
89
|
```sh
|
|
67
|
-
xy
|
|
68
|
-
xy
|
|
69
|
-
xy lint @xyo-network/xl1-driver-cloudflare-r2
|
|
90
|
+
pnpm xy skills defaults
|
|
91
|
+
pnpm xy skills lint --fix
|
|
70
92
|
```
|
|
71
93
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
</td>
|
|
84
|
-
<td align="center" valign="top" width="120">
|
|
85
|
-
<a href="https://github.com/jonesmac">
|
|
86
|
-
<img src="https://github.com/jonesmac.png" width="80" height="80" alt="Matt Jones" /><br />
|
|
87
|
-
<sub><b>Matt Jones</b></sub>
|
|
88
|
-
</a>
|
|
89
|
-
</td>
|
|
90
|
-
<td align="center" valign="top" width="120">
|
|
91
|
-
<a href="https://github.com/JoelBCarter">
|
|
92
|
-
<img src="https://github.com/JoelBCarter.png" width="80" height="80" alt="Joel Carter" /><br />
|
|
93
|
-
<sub><b>Joel Carter</b></sub>
|
|
94
|
-
</a>
|
|
95
|
-
</td>
|
|
96
|
-
</tr>
|
|
97
|
-
</table>
|
|
94
|
+
For XL1 work, ask your agent to use `xyo-knowledge`, `xl1-knowledge`, and
|
|
95
|
+
`xl1-patterns`. These skills cover XYO primitives, XL1 chain and gateway APIs,
|
|
96
|
+
and application patterns for XL1 dApps.
|
|
97
|
+
|
|
98
|
+
## Building Locally
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
pnpm xy build @xyo-network/xl1-driver-cloudflare-r2
|
|
102
|
+
pnpm xy test @xyo-network/xl1-driver-cloudflare-r2
|
|
103
|
+
pnpm xy lint @xyo-network/xl1-driver-cloudflare-r2
|
|
104
|
+
```
|
|
98
105
|
|
|
99
106
|
## License
|
|
100
107
|
|
|
101
|
-
See the [LICENSE](./LICENSE) file
|
|
108
|
+
See the [LICENSE](./LICENSE) file for license rights and limitations
|
|
109
|
+
(LGPL-3.0-only).
|
|
102
110
|
|
|
103
111
|
## Credits
|
|
104
112
|
|
package/dist/neutral/R2Map.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CreatableParams } from '@ariestools/sdk';
|
|
2
2
|
import { AbstractCreatable } from '@ariestools/sdk';
|
|
3
3
|
import type { S3Client } from '@aws-sdk/client-s3';
|
|
4
|
-
import type { AsyncIterableMap } from '@xyo-network/xl1-protocol-lib';
|
|
4
|
+
import type { AsyncIterableMap } from '@xyo-network/xl1-protocol/protocol-lib';
|
|
5
5
|
export interface R2MapParams extends CreatableParams {
|
|
6
6
|
bucket: string;
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"R2Map.d.ts","sourceRoot":"","sources":["../../src/R2Map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EACL,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"R2Map.d.ts","sourceRoot":"","sources":["../../src/R2Map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EACL,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,KAAK,EAAE,gBAAgB,EAAW,MAAM,wCAAwC,CAAA;AAGvF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAQD,qBACa,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAC7D,SAAQ,iBAAiB,CAAC,WAAW,CACrC,YAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,SAAS,CAA2B;IAE5C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,QAAQ,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA0CzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAoBlC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5B,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C,OAAO,CAAC,SAAS;CAGlB"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
ListObjectsV2Command,
|
|
25
25
|
PutObjectCommand
|
|
26
26
|
} from "@aws-sdk/client-s3";
|
|
27
|
-
import { LruCacheMap } from "@xyo-network/xl1-driver-memory";
|
|
27
|
+
import { LruCacheMap } from "@xyo-network/xl1-sdk/driver-memory";
|
|
28
28
|
var isNotFoundError = (error) => {
|
|
29
29
|
if (typeof error !== "object" || error === null) return false;
|
|
30
30
|
const { name, $metadata } = error;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/R2Map.ts"],
|
|
4
|
-
"sourcesContent": ["import type { CreatableParams } from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx, creatable, isDefined,\n} from '@ariestools/sdk'\nimport type { S3Client } from '@aws-sdk/client-s3'\nimport {\n DeleteObjectCommand, DeleteObjectsCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand,\n} from '@aws-sdk/client-s3'\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EAAmB;AAAA,EAAU;AAAA,EAAW;AAAA,OACnC;AAEP;AAAA,EACE;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAsB;AAAA,OACjG;
|
|
4
|
+
"sourcesContent": ["import type { CreatableParams } from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx, creatable, isDefined,\n} from '@ariestools/sdk'\nimport type { S3Client } from '@aws-sdk/client-s3'\nimport {\n DeleteObjectCommand, DeleteObjectsCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand,\n} from '@aws-sdk/client-s3'\nimport type { AsyncIterableMap, MapType } from '@xyo-network/xl1-protocol/protocol-lib'\nimport { LruCacheMap } from '@xyo-network/xl1-sdk/driver-memory'\n\nexport interface R2MapParams extends CreatableParams {\n bucket: string\n /**\n * S3-compatible client pointed at the Cloudflare R2 endpoint\n * (`https://<account-id>.r2.cloudflarestorage.com`).\n */\n client: S3Client\n getCache?: {\n enabled: boolean\n maxEntries?: number\n }\n /** Optional key prefix, allowing multiple maps to share one bucket. */\n prefix?: string\n}\n\nconst isNotFoundError = (error: unknown): boolean => {\n if (typeof error !== 'object' || error === null) return false\n const { name, $metadata } = error as { $metadata?: { httpStatusCode?: number }; name?: string }\n return name === 'NoSuchKey' || name === 'NotFound' || $metadata?.httpStatusCode === 404\n}\n\n@creatable()\nexport class R2Map<K extends string = string, V extends {} = {}>\n extends AbstractCreatable<R2MapParams>\n implements AsyncIterableMap<K, V> {\n private _getCache: MapType<K, V> | undefined\n\n get bucket(): string {\n return assertEx(this.params.bucket, () => 'No bucket specified')\n }\n\n get client(): S3Client {\n return assertEx(this.params.client, () => 'No client specified')\n }\n\n get prefix(): string {\n return this.params.prefix ?? ''\n }\n\n /**\n * Enable `for await...of` iteration over all entries in the map.\n * Pages through ListObjectsV2 so no fixed result limit is applied.\n */\n [Symbol.asyncIterator](): AsyncIterator<[K, V]> {\n // Keys from the current page, drained front-to-back as the iterator advances.\n let pageKeys: K[] = []\n // Continuation token for the next page; undefined once the final page is consumed.\n let continuationToken: string | undefined\n let exhausted = false\n\n const loadNextPage = async (): Promise<void> => {\n const response = await this.client.send(new ListObjectsV2Command({\n Bucket: this.bucket,\n Prefix: this.prefix === '' ? undefined : this.prefix,\n ContinuationToken: continuationToken,\n }))\n pageKeys = (response.Contents ?? [])\n .map(object => object.Key)\n .filter(isDefined)\n .map(key => key.slice(this.prefix.length) as K)\n continuationToken = response.NextContinuationToken\n exhausted = continuationToken === undefined\n }\n\n return {\n next: async (): Promise<IteratorResult<[K, V]>> => {\n for (;;) {\n // Refill from the next page whenever the current one is drained.\n while (pageKeys.length === 0) {\n if (exhausted) return { value: undefined, done: true }\n await loadNextPage()\n }\n\n const key = pageKeys.shift()!\n const value = await this.get(key)\n // The object may have been deleted between listing and reading; skip it.\n if (value === undefined) continue\n\n // Yield the entry to the async iterator consumer (get() already populated the cache).\n return { value: [key, value], done: false }\n }\n },\n }\n }\n\n async clear(): Promise<void> {\n await this._getCache?.clear()\n // DeleteObjects accepts at most 1000 keys per request; page through the bucket until empty.\n let continuationToken: string | undefined\n do {\n const response = await this.client.send(new ListObjectsV2Command({\n Bucket: this.bucket,\n Prefix: this.prefix === '' ? undefined : this.prefix,\n ContinuationToken: continuationToken,\n }))\n const keys = (response.Contents ?? []).map(object => object.Key).filter(isDefined)\n if (keys.length > 0) {\n await this.client.send(new DeleteObjectsCommand({\n Bucket: this.bucket,\n Delete: { Objects: keys.map(key => ({ Key: key })) },\n }))\n }\n continuationToken = response.NextContinuationToken\n } while (continuationToken !== undefined)\n }\n\n async delete(id: K): Promise<boolean> {\n await this._getCache?.delete(id)\n\n // S3-style deletes are idempotent and do not report prior existence, so check first.\n const existed = await this.has(id)\n await this.client.send(new DeleteObjectCommand({ Bucket: this.bucket, Key: this.objectKey(id) }))\n return existed\n }\n\n async get(id: K): Promise<V | undefined> {\n if (this._getCache) {\n const getCacheResult = await this._getCache.get(id)\n if (getCacheResult) {\n return getCacheResult\n }\n }\n try {\n const response = await this.client.send(new GetObjectCommand({ Bucket: this.bucket, Key: this.objectKey(id) }))\n const body = await response.Body?.transformToString()\n if (body === undefined) return undefined\n const value = JSON.parse(body) as V\n await this._getCache?.set(id, value)\n return value\n } catch (error) {\n if (isNotFoundError(error)) return undefined\n throw error\n }\n }\n\n async getMany(ids: K[]): Promise<V[]> {\n const results = await Promise.all(ids.map(id => this.get(id)))\n return results.filter(isDefined)\n }\n\n async has(id: K): Promise<boolean> {\n if (this._getCache) {\n const getCacheResult = await this._getCache.has(id)\n if (getCacheResult) return getCacheResult\n }\n try {\n await this.client.send(new HeadObjectCommand({ Bucket: this.bucket, Key: this.objectKey(id) }))\n return true\n } catch (error) {\n if (isNotFoundError(error)) return false\n throw error\n }\n }\n\n async set(id: K, data: V): Promise<void> {\n await this.client.send(new PutObjectCommand({\n Bucket: this.bucket,\n Key: this.objectKey(id),\n Body: JSON.stringify(data),\n ContentType: 'application/json',\n }))\n await this._getCache?.set(id, data)\n }\n\n async setMany(entries: [K, V][]): Promise<void> {\n // TODO: Optimize with bounded concurrency\n for (const [key, value] of entries) {\n await this.set(key, value)\n }\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n if (this.params.getCache?.enabled === true) {\n const maxEntries = this.params.getCache?.maxEntries ?? 5000\n this._getCache = new LruCacheMap<K, V>({ max: maxEntries })\n }\n }\n\n private objectKey(id: K): string {\n return `${this.prefix}${id}`\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/xl1-driver-cloudflare-r2",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.14",
|
|
5
5
|
"description": "XYO Layer One SDK Protocol Cloudflare R2 Driver",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -35,25 +35,25 @@
|
|
|
35
35
|
"README.md"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@xyo-network/xl1-protocol
|
|
38
|
+
"@aws-sdk/client-s3": "~3.1082.0",
|
|
39
|
+
"@xyo-network/xl1-protocol": "~4.0.14",
|
|
40
|
+
"@xyo-network/xl1-sdk": "~4.0.14"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@ariestools/sdk": "~
|
|
43
|
-
"@
|
|
43
|
+
"@ariestools/sdk": "~8.0.3",
|
|
44
|
+
"@ariestools/threads": "~8.0.3",
|
|
45
|
+
"@ariestools/toolchain": "~8.6.12",
|
|
46
|
+
"@ariestools/tsconfig": "~8.6.12",
|
|
44
47
|
"@bitauth/libauth": "~3.0.0",
|
|
48
|
+
"@metamask/json-rpc-engine": "~10.5.0",
|
|
45
49
|
"@metamask/providers": "~22.1.1",
|
|
46
50
|
"@noble/post-quantum": "~0.6.1",
|
|
47
51
|
"@opentelemetry/api": "~1.9.1",
|
|
48
52
|
"@opentelemetry/sdk-trace-base": "~2.9.0",
|
|
49
53
|
"@scure/base": "~2.2.0",
|
|
50
54
|
"@scure/bip39": "~2.2.0",
|
|
51
|
-
"@
|
|
52
|
-
"@
|
|
53
|
-
"@xylabs/toolchain": "~8.6.2",
|
|
54
|
-
"@xylabs/tsconfig": "~8.6.2",
|
|
55
|
-
"@xyo-network/sdk": "~7.0.8",
|
|
56
|
-
"@xyo-network/sdk-protocol": "~7.0.13",
|
|
55
|
+
"@xyo-network/sdk": "~7.0.11",
|
|
56
|
+
"@xyo-network/sdk-protocol": "~7.0.15",
|
|
57
57
|
"ajv": "~8.20.0",
|
|
58
58
|
"async-mutex": "~0.5.0",
|
|
59
59
|
"debug": "~4.4.3",
|
|
@@ -61,45 +61,37 @@
|
|
|
61
61
|
"ethers": "~6.17.0",
|
|
62
62
|
"hash-wasm": "~4.12.0",
|
|
63
63
|
"idb": "~8.0.3",
|
|
64
|
-
"lru-cache": "~11.5.1",
|
|
65
64
|
"observable-fns": "~0.6.1",
|
|
66
65
|
"tslib": "~2.8.1",
|
|
67
66
|
"typescript": "~6.0.3",
|
|
68
67
|
"vite": "~8.1.3",
|
|
69
|
-
"vitest": "~4.1.
|
|
68
|
+
"vitest": "~4.1.10",
|
|
70
69
|
"webextension-polyfill": "~0.12.0",
|
|
71
70
|
"zod": "~4.4.3"
|
|
72
71
|
},
|
|
73
72
|
"peerDependencies": {
|
|
74
|
-
"@ariestools/sdk": "^
|
|
75
|
-
"@
|
|
73
|
+
"@ariestools/sdk": "^8.0.3",
|
|
74
|
+
"@ariestools/threads": "^8.0.3",
|
|
76
75
|
"@bitauth/libauth": "^3.0.0",
|
|
76
|
+
"@metamask/json-rpc-engine": "^10.5.0",
|
|
77
77
|
"@metamask/providers": "^22.1.1",
|
|
78
78
|
"@noble/post-quantum": "^0.6.1",
|
|
79
79
|
"@opentelemetry/api": "^1.9.1",
|
|
80
80
|
"@opentelemetry/sdk-trace-base": "^2.9.0",
|
|
81
81
|
"@scure/base": "^2.2.0",
|
|
82
82
|
"@scure/bip39": "^2.2.0",
|
|
83
|
-
"@
|
|
84
|
-
"@
|
|
85
|
-
"@xyo-network/sdk": "^7.0.8",
|
|
86
|
-
"@xyo-network/sdk-protocol": "^7.0.13",
|
|
83
|
+
"@xyo-network/sdk": "^7.0.11",
|
|
84
|
+
"@xyo-network/sdk-protocol": "^7.0.15",
|
|
87
85
|
"ajv": "^8.20.0",
|
|
88
86
|
"async-mutex": "^0.5.0",
|
|
89
87
|
"debug": "^4.4.3",
|
|
90
88
|
"ethers": "^6.17.0",
|
|
91
89
|
"hash-wasm": "^4.12.0",
|
|
92
90
|
"idb": "^8.0.3",
|
|
93
|
-
"lru-cache": "^11.5.1",
|
|
94
91
|
"observable-fns": "^0.6.1",
|
|
95
92
|
"webextension-polyfill": "^0.12.0",
|
|
96
93
|
"zod": "^4.4.3"
|
|
97
94
|
},
|
|
98
|
-
"peerDependenciesMeta": {
|
|
99
|
-
"@aws-sdk/client-s3": {
|
|
100
|
-
"optional": true
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
95
|
"engines": {
|
|
104
96
|
"node": ">=22.3"
|
|
105
97
|
},
|