@icp-sdk/auth 5.0.0 → 6.1.0
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 +96 -12
- package/dist/esm/client/auth-client.d.ts +121 -125
- package/dist/esm/client/auth-client.js +376 -315
- package/dist/esm/client/auth-client.js.map +1 -1
- package/dist/esm/client/db.js +73 -73
- package/dist/esm/client/db.js.map +1 -1
- package/dist/esm/client/idle-manager.d.ts +12 -10
- package/dist/esm/client/idle-manager.js +97 -78
- package/dist/esm/client/idle-manager.js.map +1 -1
- package/dist/esm/client/index.d.ts +4 -4
- package/dist/esm/client/index.js +8 -15
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/storage.d.ts +1 -1
- package/dist/esm/client/storage.js +86 -79
- package/dist/esm/client/storage.js.map +1 -1
- package/dist/esm/index.js +3 -4
- package/dist/esm/index.js.map +1 -1
- package/package.json +7 -8
- package/src/client/auth-client.ts +431 -472
- package/src/client/db.ts +1 -1
- package/src/client/idle-manager.ts +44 -26
- package/src/client/index.ts +4 -4
- package/src/client/storage.ts +1 -1
|
@@ -1,83 +1,90 @@
|
|
|
1
|
-
import { IdbKeyVal } from
|
|
2
|
-
const KEY_STORAGE_KEY =
|
|
3
|
-
const KEY_STORAGE_DELEGATION =
|
|
4
|
-
const KEY_VECTOR =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return Promise.resolve();
|
|
17
|
-
}
|
|
18
|
-
remove(key) {
|
|
19
|
-
this._getLocalStorage().removeItem(this.prefix + key);
|
|
20
|
-
return Promise.resolve();
|
|
21
|
-
}
|
|
22
|
-
_getLocalStorage() {
|
|
23
|
-
if (this._localStorage) {
|
|
24
|
-
return this._localStorage;
|
|
1
|
+
import { IdbKeyVal } from './db.js';
|
|
2
|
+
export const KEY_STORAGE_KEY = 'identity';
|
|
3
|
+
export const KEY_STORAGE_DELEGATION = 'delegation';
|
|
4
|
+
export const KEY_VECTOR = 'iv';
|
|
5
|
+
// Increment if any fields are modified
|
|
6
|
+
export const DB_VERSION = 1;
|
|
7
|
+
/**
|
|
8
|
+
* Legacy implementation of AuthClientStorage, for use where IndexedDb is not available
|
|
9
|
+
*/
|
|
10
|
+
export class LocalStorage {
|
|
11
|
+
prefix;
|
|
12
|
+
_localStorage;
|
|
13
|
+
constructor(prefix = 'ic-', _localStorage) {
|
|
14
|
+
this.prefix = prefix;
|
|
15
|
+
this._localStorage = _localStorage;
|
|
25
16
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
get(key) {
|
|
18
|
+
return Promise.resolve(this._getLocalStorage().getItem(this.prefix + key));
|
|
19
|
+
}
|
|
20
|
+
set(key, value) {
|
|
21
|
+
this._getLocalStorage().setItem(this.prefix + key, value);
|
|
22
|
+
return Promise.resolve();
|
|
23
|
+
}
|
|
24
|
+
remove(key) {
|
|
25
|
+
this._getLocalStorage().removeItem(this.prefix + key);
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
_getLocalStorage() {
|
|
29
|
+
if (this._localStorage) {
|
|
30
|
+
return this._localStorage;
|
|
31
|
+
}
|
|
32
|
+
const ls = globalThis.localStorage;
|
|
33
|
+
if (!ls) {
|
|
34
|
+
throw new Error('Could not find local storage.');
|
|
35
|
+
}
|
|
36
|
+
return ls;
|
|
29
37
|
}
|
|
30
|
-
return ls;
|
|
31
|
-
}
|
|
32
38
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
39
|
+
/**
|
|
40
|
+
* IdbStorage is an interface for simple storage of string key-value pairs built on {@link IdbKeyVal}
|
|
41
|
+
*
|
|
42
|
+
* It replaces {@link LocalStorage}
|
|
43
|
+
* @see implements {@link AuthClientStorage}
|
|
44
|
+
*/
|
|
45
|
+
export class IdbStorage {
|
|
46
|
+
#options;
|
|
47
|
+
/**
|
|
48
|
+
* @param options - DBCreateOptions
|
|
49
|
+
* @param options.dbName - name for the indexeddb database
|
|
50
|
+
* @param options.storeName - name for the indexeddb Data Store
|
|
51
|
+
* @param options.version - version of the database. Increment to safely upgrade
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* const storage = new IdbStorage({ dbName: 'my-db', storeName: 'my-store', version: 2 });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
constructor(options) {
|
|
58
|
+
this.#options = options ?? {};
|
|
59
|
+
}
|
|
60
|
+
// Initializes a KeyVal on first request
|
|
61
|
+
initializedDb;
|
|
62
|
+
get _db() {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
if (this.initializedDb) {
|
|
65
|
+
resolve(this.initializedDb);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
IdbKeyVal.create(this.#options)
|
|
69
|
+
.then((db) => {
|
|
70
|
+
this.initializedDb = db;
|
|
71
|
+
resolve(db);
|
|
72
|
+
})
|
|
73
|
+
.catch(reject);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async get(key) {
|
|
77
|
+
const db = await this._db;
|
|
78
|
+
return await db.get(key);
|
|
79
|
+
// return (await db.get<string>(key)) ?? null;
|
|
80
|
+
}
|
|
81
|
+
async set(key, value) {
|
|
82
|
+
const db = await this._db;
|
|
83
|
+
await db.set(key, value);
|
|
84
|
+
}
|
|
85
|
+
async remove(key) {
|
|
86
|
+
const db = await this._db;
|
|
87
|
+
await db.remove(key);
|
|
88
|
+
}
|
|
74
89
|
}
|
|
75
|
-
|
|
76
|
-
DB_VERSION,
|
|
77
|
-
IdbStorage,
|
|
78
|
-
KEY_STORAGE_DELEGATION,
|
|
79
|
-
KEY_STORAGE_KEY,
|
|
80
|
-
KEY_VECTOR,
|
|
81
|
-
LocalStorage
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=storage.js.map
|
|
90
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sources":["../../../src/client/storage.ts"],"
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/client/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
throw new Error(
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
throw new Error('There are no exports in the root module of this package. Import from submodules instead. Use intellisense or the docs to find the available submodules.');
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,KAAK,CACb,yJAAyJ,CAC1J,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icp-sdk/auth",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"author": "DFINITY Stiftung <sdk@dfinity.org>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"description": "Authentication library for Internet Computer web apps",
|
|
@@ -42,14 +42,13 @@
|
|
|
42
42
|
"internet identity"
|
|
43
43
|
],
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@biomejs/biome": "^2.
|
|
46
|
-
"@icp-sdk/core": "^5.
|
|
47
|
-
"@
|
|
45
|
+
"@biomejs/biome": "^2.4.10",
|
|
46
|
+
"@icp-sdk/core": "^5.2.1",
|
|
47
|
+
"@icp-sdk/signer": "^5.2.0",
|
|
48
48
|
"fake-indexeddb": "^6.2.5",
|
|
49
|
-
"jsdom": "^27.
|
|
50
|
-
"publint": "^0.3.
|
|
49
|
+
"jsdom": "^27.4.0",
|
|
50
|
+
"publint": "^0.3.18",
|
|
51
51
|
"typescript": "^5.9.3",
|
|
52
|
-
"vite": "^7.2.4",
|
|
53
52
|
"vitest": "4.0.14"
|
|
54
53
|
},
|
|
55
54
|
"peerDependencies": {
|
|
@@ -59,7 +58,7 @@
|
|
|
59
58
|
"idb": "^7.1.1"
|
|
60
59
|
},
|
|
61
60
|
"scripts": {
|
|
62
|
-
"build": "
|
|
61
|
+
"build": "tsc -p tsconfig.build.json && pnpm lint:package",
|
|
63
62
|
"test": "vitest",
|
|
64
63
|
"codestyle:check": "biome check",
|
|
65
64
|
"codestyle:fix": "biome check --write",
|