@ledgerhq/revault-sdk 0.21.8 → 0.21.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/revault-sdk",
3
- "version": "0.21.8",
3
+ "version": "0.21.10",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "files": [
@@ -45,46 +45,46 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@ledgerhq/errors": "^6.26.0",
48
- "@ledgerhq/hw-transport": "^6.31.12",
48
+ "@ledgerhq/hw-transport": "^6.31.13",
49
49
  "@trpc/client": "11.6.0",
50
50
  "@trpc/server": "11.6.0",
51
51
  "asn1.js": "^5.4.1",
52
- "axios": "^1.12.2",
52
+ "axios": "^1.13.2",
53
53
  "axios-retry": "^4.5.0",
54
54
  "bn.js": "^5.2.2",
55
55
  "elliptic": "^6.6.1",
56
56
  "invariant": "^2.2.4",
57
- "jose": "^6.1.0",
57
+ "jose": "^6.1.1",
58
58
  "lodash": "^4.17.21",
59
59
  "rxjs": "^7.8.2",
60
- "superjson": "^2.2.3",
60
+ "superjson": "^2.2.5",
61
61
  "uuid": "^13.0.0",
62
62
  "zod": "^4.1.12",
63
- "@ledgerhq/revault-api": "1.40.2"
63
+ "@ledgerhq/revault-api": "1.42.0"
64
64
  },
65
65
  "devDependencies": {
66
- "@eslint/js": "^9.38.0",
66
+ "@eslint/js": "^9.39.1",
67
67
  "@types/bn.js": "^5.2.0",
68
68
  "@types/elliptic": "^6.4.18",
69
69
  "@types/invariant": "^2.2.37",
70
70
  "@types/lodash": "^4.17.20",
71
- "@types/node": "^22.18.12",
72
- "@vitest/coverage-v8": "^4.0.5",
73
- "@vitest/ui": "^4.0.5",
74
- "eslint": "^9.38.0",
71
+ "@types/node": "^22.19.0",
72
+ "@vitest/coverage-v8": "^4.0.8",
73
+ "@vitest/ui": "^4.0.8",
74
+ "eslint": "^9.39.1",
75
75
  "eslint-plugin-unicorn": "^61.0.2",
76
76
  "tsup": "^8.5.0",
77
77
  "tsx": "^4.20.6",
78
78
  "typescript": "^5.9.3",
79
- "typescript-eslint": "^8.46.2",
79
+ "typescript-eslint": "^8.46.3",
80
80
  "vite-plugin-node-polyfills": "^0.24.0",
81
- "vitest": "^4.0.5",
81
+ "vitest": "^4.0.8",
82
82
  "vitest-mock-extended": "^3.1.0"
83
83
  },
84
84
  "scripts": {
85
85
  "build": "tsup",
86
86
  "dev": "tsup --watch",
87
- "lint": "biome check",
87
+ "lint": "biome check --error-on-warnings",
88
88
  "test": "vitest run --coverage --coverage.thresholds.100=true",
89
89
  "test:unit": "vitest",
90
90
  "typecheck": "tsgo --noEmit"
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/_work/revault/revault/packages/sdk/lib/chunk-I6B5U4JR.cjs","../src/utils.ts"],"names":[],"mappings":"AAAA;ACCA,4FAAsB;AAOtB,MAAA,SAAsB,QAAA,CACpB,OAAA,EACA,KAAA,EACkB;AAClB,EAAA,MAAM,IAAA,EAAe,CAAC,CAAA;AACtB,EAAA,IAAI,KAAA,EAAsB,CAAA;AAC1B,EAAA,MAAA,CAAO,IAAA,EAAM;AACX,IAAA,MAAM,QAAA,EAAU,MAAM,OAAA,CAAQ,EAAE,GAAG,KAAA,EAAO,KAAK,CAAC,CAAA;AAChD,IAAA,GAAA,CAAI,IAAA,CAAK,GAAG,OAAA,CAAQ,OAAO,CAAA;AAC3B,IAAA,KAAA,EAAO,OAAA,CAAQ,IAAA;AAAA,EACjB;AACA,EAAA,OAAO,GAAA;AACT;AAKA,MAAA,SAAsB,cAAA,CACpB,OAAA,EACA,KAAA,EACkB;AAClB,EAAA,MAAM,IAAA,EAAe,CAAC,CAAA;AACtB,EAAA,IAAI,OAAA,EAAiC,IAAA;AACrC,EAAA,GAAG;AACD,IAAA,MAAM,QAAA,EAAU,MAAM,OAAA,CAAQ,EAAE,GAAG,KAAA,EAAO,GAAI,OAAA,IAAW,KAAA,EAAO,CAAC,EAAA,EAAI,EAAE,OAAO,EAAG,CAAC,CAAA;AAClF,IAAA,GAAA,CAAI,IAAA,CAAK,GAAG,OAAA,CAAQ,OAAO,CAAA;AAC3B,IAAA,OAAA,EAAS,OAAA,CAAQ,IAAA;AAAA,EACnB,EAAA,MAAA,CAAS,MAAA,CAAA;AACT,EAAA,OAAO,GAAA;AACT;AAMO,SAAS,yBAAA,CAA0B,MAAA,EAA+B;AAEvE,EAAA,MAAM,gCAAA,EAAmE,CAAC,CAAA;AAE1E,EAAA,OAAO,MAAA,SAAe,eAAA,CAAgB,YAAA,EAAuC;AAC3E,IAAA,IAAI,YAAA,EAA6B,IAAA;AACjC,IAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,MAAA,MAAM,QAAA,EACJ,EAAA,GAAK,gCAAA,EACD,+BAAA,CAAgC,CAAC,EAAA,EACjC,MAAA,CAAO,eAAA,CAAgB,CAAC,CAAA,CAAE,MAAA,CAAO,eAAA,CAAgB,CAAA;AACvD,MAAA,+BAAA,CAAgC,CAAC,EAAA,EAAI,OAAA;AACrC,MAAA,MAAM,UAAA,EAAY,MAAM,OAAA;AAKxB,MAAA,GAAA,CAAI,SAAA,CAAU,WAAA,CAAY,EAAA,IAAM,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG;AAC1D,QAAA,YAAA,EAAc,CAAA;AACd,QAAA,KAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,iCAAA,WAAU,EAAa,CAAA,wCAAA,EAA2C,YAAY,CAAA,CAAA;AACvE,IAAA;AACT,EAAA;AACF;AD7BmF;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/_work/revault/revault/packages/sdk/lib/chunk-I6B5U4JR.cjs","sourcesContent":[null,"import type { CursorPaginated, Paginated } from \"@ledgerhq/revault-api\";\nimport invariant from \"invariant\";\n\nimport type { Engine, WithWorkspace } from \"./engine/types\";\n\n/**\n * Utility function that collect results on all pages until there is no more next page\n */\nexport async function fetchAll<TData, TQuery extends { page?: number }>(\n queryFn: (query: TQuery) => Promise<Paginated<TData>>,\n query: TQuery,\n): Promise<TData[]> {\n const res: TData[] = [];\n let page: number | null = 1;\n while (page) {\n const partial = await queryFn({ ...query, page });\n res.push(...partial.results);\n page = partial.next;\n }\n return res;\n}\n\n/**\n * Utility function that collect results on all cursors until cursor is null\n */\nexport async function fetchAllCursor<TData, TQuery extends { cursor?: number | string }>(\n queryFn: (query: TQuery) => Promise<CursorPaginated<TData>>,\n query: TQuery,\n): Promise<TData[]> {\n const res: TData[] = [];\n let cursor: number | string | null = null;\n do {\n const partial = await queryFn({ ...query, ...(cursor === null ? {} : { cursor }) });\n res.push(...partial.results);\n cursor = partial.next;\n } while (cursor);\n return res;\n}\n\n/**\n * Return a function that retrieve a device index based on a given deviceUserId\n * Holds a cache of found indexes to avoid spamming device-api\n */\nexport function createDeviceIndexResolver(engine: Engine<WithWorkspace>) {\n // Cache to avoid spamming device-api when seeking for same index multiple times\n const _deviceUserIdByDeviceIndexCache: Record<string, Promise<string>> = {};\n\n return async function findDeviceIndex(deviceUserId: string): Promise<number> {\n let deviceIndex: number | null = null;\n for (let i = 4; i < 50; i++) {\n const promise =\n i in _deviceUserIdByDeviceIndexCache\n ? _deviceUserIdByDeviceIndexCache[i]!\n : engine.withDeviceIndex(i).device.getDeviceUserId();\n _deviceUserIdByDeviceIndexCache[i] = promise;\n const candidate = await promise;\n // /!\\ we need to decide in which casing we want this information\n // -> device-api returns it in uppercase\n // -> we save it in lowercase in revault-api DB\n // -> doing \"safe\" comparison here by always user the uppercase version, but hey!\n if (candidate.toUpperCase() === deviceUserId.toUpperCase()) {\n deviceIndex = i;\n break;\n }\n }\n invariant(deviceIndex, `Could not find index for device user id ${deviceUserId}`);\n return deviceIndex;\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import type { CursorPaginated, Paginated } from \"@ledgerhq/revault-api\";\nimport invariant from \"invariant\";\n\nimport type { Engine, WithWorkspace } from \"./engine/types\";\n\n/**\n * Utility function that collect results on all pages until there is no more next page\n */\nexport async function fetchAll<TData, TQuery extends { page?: number }>(\n queryFn: (query: TQuery) => Promise<Paginated<TData>>,\n query: TQuery,\n): Promise<TData[]> {\n const res: TData[] = [];\n let page: number | null = 1;\n while (page) {\n const partial = await queryFn({ ...query, page });\n res.push(...partial.results);\n page = partial.next;\n }\n return res;\n}\n\n/**\n * Utility function that collect results on all cursors until cursor is null\n */\nexport async function fetchAllCursor<TData, TQuery extends { cursor?: number | string }>(\n queryFn: (query: TQuery) => Promise<CursorPaginated<TData>>,\n query: TQuery,\n): Promise<TData[]> {\n const res: TData[] = [];\n let cursor: number | string | null = null;\n do {\n const partial = await queryFn({ ...query, ...(cursor === null ? {} : { cursor }) });\n res.push(...partial.results);\n cursor = partial.next;\n } while (cursor);\n return res;\n}\n\n/**\n * Return a function that retrieve a device index based on a given deviceUserId\n * Holds a cache of found indexes to avoid spamming device-api\n */\nexport function createDeviceIndexResolver(engine: Engine<WithWorkspace>) {\n // Cache to avoid spamming device-api when seeking for same index multiple times\n const _deviceUserIdByDeviceIndexCache: Record<string, Promise<string>> = {};\n\n return async function findDeviceIndex(deviceUserId: string): Promise<number> {\n let deviceIndex: number | null = null;\n for (let i = 4; i < 50; i++) {\n const promise =\n i in _deviceUserIdByDeviceIndexCache\n ? _deviceUserIdByDeviceIndexCache[i]!\n : engine.withDeviceIndex(i).device.getDeviceUserId();\n _deviceUserIdByDeviceIndexCache[i] = promise;\n const candidate = await promise;\n // /!\\ we need to decide in which casing we want this information\n // -> device-api returns it in uppercase\n // -> we save it in lowercase in revault-api DB\n // -> doing \"safe\" comparison here by always user the uppercase version, but hey!\n if (candidate.toUpperCase() === deviceUserId.toUpperCase()) {\n deviceIndex = i;\n break;\n }\n }\n invariant(deviceIndex, `Could not find index for device user id ${deviceUserId}`);\n return deviceIndex;\n };\n}\n"],"mappings":";AACA,OAAO,eAAe;AAOtB,eAAsB,SACpB,SACA,OACkB;AAClB,QAAM,MAAe,CAAC;AACtB,MAAI,OAAsB;AAC1B,SAAO,MAAM;AACX,UAAM,UAAU,MAAM,QAAQ,EAAE,GAAG,OAAO,KAAK,CAAC;AAChD,QAAI,KAAK,GAAG,QAAQ,OAAO;AAC3B,WAAO,QAAQ;AAAA,EACjB;AACA,SAAO;AACT;AAKA,eAAsB,eACpB,SACA,OACkB;AAClB,QAAM,MAAe,CAAC;AACtB,MAAI,SAAiC;AACrC,KAAG;AACD,UAAM,UAAU,MAAM,QAAQ,EAAE,GAAG,OAAO,GAAI,WAAW,OAAO,CAAC,IAAI,EAAE,OAAO,EAAG,CAAC;AAClF,QAAI,KAAK,GAAG,QAAQ,OAAO;AAC3B,aAAS,QAAQ;AAAA,EACnB,SAAS;AACT,SAAO;AACT;AAMO,SAAS,0BAA0B,QAA+B;AAEvE,QAAM,kCAAmE,CAAC;AAE1E,SAAO,eAAe,gBAAgB,cAAuC;AAC3E,QAAI,cAA6B;AACjC,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM,UACJ,KAAK,kCACD,gCAAgC,CAAC,IACjC,OAAO,gBAAgB,CAAC,EAAE,OAAO,gBAAgB;AACvD,sCAAgC,CAAC,IAAI;AACrC,YAAM,YAAY,MAAM;AAKxB,UAAI,UAAU,YAAY,MAAM,aAAa,YAAY,GAAG;AAC1D,sBAAc;AACd;AAAA,MACF;AAAA,IACF;AACA,cAAU,aAAa,2CAA2C,YAAY,EAAE;AAChF,WAAO;AAAA,EACT;AACF;","names":[]}