@ledgerhq/revault-sdk 0.21.3 → 0.21.4
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/lib/bake.cjs +9 -9
- package/lib/bake.js +1 -1
- package/lib/{chunk-WVCYFF2Z.cjs → chunk-I6B5U4JR.cjs} +1 -1
- package/lib/{chunk-WVCYFF2Z.cjs.map → chunk-I6B5U4JR.cjs.map} +1 -1
- package/lib/{chunk-PEHCVOGV.js → chunk-IHGVWOD7.js} +1 -1
- package/lib/chunk-IHGVWOD7.js.map +1 -0
- package/lib/engine.cjs +2 -2
- package/lib/engine.d.cts +1 -1
- package/lib/engine.d.ts +1 -1
- package/lib/engine.js +1 -1
- package/package.json +6 -6
- package/lib/chunk-PEHCVOGV.js.map +0 -1
package/lib/bake.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkI6B5U4JRcjs = require('./chunk-I6B5U4JR.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkJGXOGWYBcjs = require('./chunk-JGXOGWYB.cjs');
|
|
@@ -65,12 +65,12 @@ var flattenApprovers = (groups) => {
|
|
|
65
65
|
};
|
|
66
66
|
async function bakePledgeAdjustment(options, logger) {
|
|
67
67
|
const { pledgeAdjustment, engine } = options;
|
|
68
|
-
const getDeviceIndex =
|
|
68
|
+
const getDeviceIndex = _chunkI6B5U4JRcjs.createDeviceIndexResolver.call(void 0, engine);
|
|
69
69
|
logger.info("Logging in with admin...");
|
|
70
70
|
const admin = await engine.withDeviceIndex(4).login();
|
|
71
71
|
logger.info("Fetching account, tradelink blueprint and network...");
|
|
72
72
|
const [matchingAccounts, blueprint, network] = await Promise.all([
|
|
73
|
-
|
|
73
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin.client.accounts.list.query, { name: pledgeAdjustment.account }),
|
|
74
74
|
admin.client.tradelink.getNetworkBlueprint.query(),
|
|
75
75
|
admin.client.tradelink.getNetwork.query()
|
|
76
76
|
]);
|
|
@@ -215,7 +215,7 @@ async function bakeWorkspace(options, logger) {
|
|
|
215
215
|
const { workspace, engine, workspaceName } = options;
|
|
216
216
|
const workspaceEngine = engine.withWorkspace(workspaceName);
|
|
217
217
|
const { logTitle, logStep, logSubStep } = createBakeLogHelpers(logger);
|
|
218
|
-
const findDeviceIndex =
|
|
218
|
+
const findDeviceIndex = _chunkI6B5U4JRcjs.createDeviceIndexResolver.call(void 0, workspaceEngine);
|
|
219
219
|
logger.info("Authenticating with two admins...");
|
|
220
220
|
const [admin1, admin2] = await Promise.all([
|
|
221
221
|
workspaceEngine.withDeviceIndex(4).login(),
|
|
@@ -230,11 +230,11 @@ async function bakeWorkspace(options, logger) {
|
|
|
230
230
|
existingAccounts,
|
|
231
231
|
tradelinkNetworkBlueprint
|
|
232
232
|
] = await Promise.all([
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
233
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.users.list.query, { status: "ACTIVE" }),
|
|
234
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.groups.list.query, { status: "ACTIVE" }),
|
|
235
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.whitelists.list.query, { status: "ACTIVE" }),
|
|
236
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.policies.list.query, { isPrivate: false }),
|
|
237
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.accounts.list.query, { status: "ACTIVE" }),
|
|
238
238
|
admin1.client.tradelink.getNetworkBlueprint.query()
|
|
239
239
|
]);
|
|
240
240
|
const tradelinkOrgExchangesByName = _lodash2.default.keyBy(_optionalChain([tradelinkNetworkBlueprint, 'optionalAccess', _3 => _3.exchanges]), "name");
|
package/lib/bake.js
CHANGED
|
@@ -43,4 +43,4 @@ function createDeviceIndexResolver(engine) {
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
exports.fetchAll = fetchAll; exports.fetchAllCursor = fetchAllCursor; exports.createDeviceIndexResolver = createDeviceIndexResolver;
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
46
|
+
//# sourceMappingURL=chunk-I6B5U4JR.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/_work/revault/revault/packages/sdk/lib/chunk-
|
|
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"]}
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
package/lib/engine.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkI6B5U4JRcjs = require('./chunk-I6B5U4JR.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -770,5 +770,5 @@ function createEngine(options, logger) {
|
|
|
770
770
|
|
|
771
771
|
|
|
772
772
|
|
|
773
|
-
exports.createEngine = createEngine; exports.fetchAll =
|
|
773
|
+
exports.createEngine = createEngine; exports.fetchAll = _chunkI6B5U4JRcjs.fetchAll; exports.fetchAllCursor = _chunkI6B5U4JRcjs.fetchAllCursor;
|
|
774
774
|
//# sourceMappingURL=engine.cjs.map
|
package/lib/engine.d.cts
CHANGED
|
@@ -17,7 +17,7 @@ declare function fetchAll<TData, TQuery extends {
|
|
|
17
17
|
* Utility function that collect results on all cursors until cursor is null
|
|
18
18
|
*/
|
|
19
19
|
declare function fetchAllCursor<TData, TQuery extends {
|
|
20
|
-
cursor?: number;
|
|
20
|
+
cursor?: number | string;
|
|
21
21
|
}>(queryFn: (query: TQuery) => Promise<CursorPaginated<TData>>, query: TQuery): Promise<TData[]>;
|
|
22
22
|
|
|
23
23
|
declare function createEngine(options: EngineOptions, logger: Logger): Engine;
|
package/lib/engine.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ declare function fetchAll<TData, TQuery extends {
|
|
|
17
17
|
* Utility function that collect results on all cursors until cursor is null
|
|
18
18
|
*/
|
|
19
19
|
declare function fetchAllCursor<TData, TQuery extends {
|
|
20
|
-
cursor?: number;
|
|
20
|
+
cursor?: number | string;
|
|
21
21
|
}>(queryFn: (query: TQuery) => Promise<CursorPaginated<TData>>, query: TQuery): Promise<TData[]>;
|
|
22
22
|
|
|
23
23
|
declare function createEngine(options: EngineOptions, logger: Logger): Engine;
|
package/lib/engine.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/revault-sdk",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -59,23 +59,23 @@
|
|
|
59
59
|
"superjson": "^2.2.2",
|
|
60
60
|
"uuid": "^13.0.0",
|
|
61
61
|
"zod": "^4.1.12",
|
|
62
|
-
"@ledgerhq/revault-api": "1.
|
|
62
|
+
"@ledgerhq/revault-api": "1.39.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@eslint/js": "^9.
|
|
65
|
+
"@eslint/js": "^9.38.0",
|
|
66
66
|
"@types/bn.js": "^5.2.0",
|
|
67
67
|
"@types/elliptic": "^6.4.18",
|
|
68
68
|
"@types/invariant": "^2.2.37",
|
|
69
69
|
"@types/lodash": "^4.17.20",
|
|
70
|
-
"@types/node": "^22.18.
|
|
70
|
+
"@types/node": "^22.18.11",
|
|
71
71
|
"@vitest/coverage-v8": "^3.2.4",
|
|
72
72
|
"@vitest/ui": "^3.2.4",
|
|
73
|
-
"eslint": "^9.
|
|
73
|
+
"eslint": "^9.38.0",
|
|
74
74
|
"eslint-plugin-unicorn": "^61.0.2",
|
|
75
75
|
"tsup": "^8.5.0",
|
|
76
76
|
"tsx": "^4.20.6",
|
|
77
77
|
"typescript": "^5.9.3",
|
|
78
|
-
"typescript-eslint": "^8.46.
|
|
78
|
+
"typescript-eslint": "^8.46.1",
|
|
79
79
|
"vite-plugin-node-polyfills": "^0.24.0",
|
|
80
80
|
"vitest": "^3.2.4",
|
|
81
81
|
"vitest-mock-extended": "^3.1.0"
|
|
@@ -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 }>(\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":[]}
|