@stackframe/stack-shared 1.1.0 → 1.2.1
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/dist/helpers/fetch-token.d.ts +1 -0
- package/dist/helpers/password.d.ts +1 -0
- package/dist/hooks/use-async-external-store.d.ts +1 -0
- package/dist/hooks/use-strict-memo.d.ts +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/interface/adminInterface.d.ts +44 -53
- package/dist/interface/adminInterface.d.ts.map +1 -1
- package/dist/interface/adminInterface.js +10 -52
- package/dist/interface/clientInterface.d.ts +30 -21
- package/dist/interface/clientInterface.d.ts.map +1 -1
- package/dist/interface/clientInterface.js +38 -56
- package/dist/interface/serverInterface.d.ts +4 -6
- package/dist/interface/serverInterface.d.ts.map +1 -1
- package/dist/interface/serverInterface.js +0 -23
- package/dist/utils/arrays.d.ts +1 -0
- package/dist/utils/bytes.d.ts +1 -0
- package/dist/utils/caches.d.ts +30 -28
- package/dist/utils/caches.d.ts.map +1 -1
- package/dist/utils/caches.js +66 -46
- package/dist/utils/crypto.d.ts +1 -0
- package/dist/utils/dates.d.ts +1 -0
- package/dist/utils/dom.d.ts +1 -0
- package/dist/utils/env.d.ts +1 -0
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/html.d.ts +1 -0
- package/dist/utils/json.d.ts +1 -0
- package/dist/utils/jwt.d.ts +1 -0
- package/dist/utils/maps.d.ts +2 -0
- package/dist/utils/maps.d.ts.map +1 -1
- package/dist/utils/maps.js +3 -0
- package/dist/utils/math.d.ts +1 -0
- package/dist/utils/numbers.d.ts +1 -0
- package/dist/utils/objects.d.ts +1 -0
- package/dist/utils/password.d.ts +1 -0
- package/dist/utils/promises.d.ts +2 -0
- package/dist/utils/promises.d.ts.map +1 -1
- package/dist/utils/promises.js +4 -1
- package/dist/utils/react.d.ts +1 -0
- package/dist/utils/results.d.ts +1 -0
- package/dist/utils/stores.d.ts +1 -0
- package/dist/utils/stores.d.ts.map +1 -1
- package/dist/utils/stores.js +2 -4
- package/dist/utils/strings.d.ts +1 -0
- package/dist/utils/types.d.ts +11 -13
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/uuids.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { ClientInterfaceOptions, UserCustomizableJson, UserJson, TokenStore, StackClientInterface } from "./clientInterface";
|
|
1
|
+
import { ClientInterfaceOptions, UserCustomizableJson, UserJson, TokenStore, StackClientInterface, ReadonlyTokenStore } from "./clientInterface";
|
|
2
2
|
import { Result } from "../utils/results";
|
|
3
|
-
import { ReadonlyJson } from "../utils/
|
|
4
|
-
import { AsyncCache } from "../utils/caches";
|
|
3
|
+
import { ReadonlyJson } from "../utils/json";
|
|
5
4
|
export type ServerUserJson = UserJson & {
|
|
6
5
|
readonly serverMetadata: ReadonlyJson;
|
|
7
6
|
};
|
|
@@ -13,13 +12,11 @@ export type ServerUserCustomizableJson = UserCustomizableJson & {
|
|
|
13
12
|
export type ServerAuthApplicationOptions = (ClientInterfaceOptions & ({
|
|
14
13
|
readonly secretServerKey: string;
|
|
15
14
|
} | {
|
|
16
|
-
readonly
|
|
15
|
+
readonly projectOwnerTokens: ReadonlyTokenStore;
|
|
17
16
|
}));
|
|
18
17
|
export declare class StackServerInterface extends StackClientInterface {
|
|
19
18
|
options: ServerAuthApplicationOptions;
|
|
20
|
-
readonly currentServerUserCache: AsyncCache<TokenStore, ServerUserJson | null>;
|
|
21
19
|
constructor(options: ServerAuthApplicationOptions);
|
|
22
|
-
refreshUser(tokenStore: TokenStore): Promise<void>;
|
|
23
20
|
protected sendServerRequest(path: string, options: RequestInit, tokenStore: TokenStore | null): Promise<Response & {
|
|
24
21
|
usedTokens: Readonly<{
|
|
25
22
|
refreshToken: string | null;
|
|
@@ -31,3 +28,4 @@ export declare class StackServerInterface extends StackClientInterface {
|
|
|
31
28
|
setServerUserCustomizableData(userId: string, update: Partial<ServerUserCustomizableJson>): Promise<void>;
|
|
32
29
|
deleteServerUser(userId: string): Promise<void>;
|
|
33
30
|
}
|
|
31
|
+
//# sourceMappingURL=serverInterface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverInterface.d.ts","sourceRoot":"","sources":["../../src/interface/serverInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"serverInterface.d.ts","sourceRoot":"","sources":["../../src/interface/serverInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG;IAC9D,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC,CAAA;AAGD,MAAM,MAAM,4BAA4B,GAAG,CACvC,sBAAsB,GACtB,CACE;IACA,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,GACC;IACA,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;CACjD,CACF,CACF,CAAC;AAGF,qBAAa,oBAAqB,SAAQ,oBAAoB;IAChC,OAAO,EAAE,4BAA4B;gBAArC,OAAO,EAAE,4BAA4B;cAIjD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;;;;;;IAc7F,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAW7E,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKtC,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAczF,gBAAgB,CAAC,MAAM,EAAE,MAAM;CAatC"}
|
|
@@ -1,33 +1,10 @@
|
|
|
1
1
|
import { StackClientInterface, } from "./clientInterface";
|
|
2
2
|
import { Result } from "../utils/results";
|
|
3
|
-
import { AsyncCache } from "../utils/caches";
|
|
4
|
-
import { runAsynchronously } from "../utils/promises";
|
|
5
3
|
export class StackServerInterface extends StackClientInterface {
|
|
6
4
|
options;
|
|
7
|
-
// note that we intentionally use TokenStore (a reference type) as a key, as different token stores with the same tokens should be treated differently
|
|
8
|
-
// (if we wouldn't do that, we would cache users across requests, which may cause caching issues)
|
|
9
|
-
currentServerUserCache;
|
|
10
5
|
constructor(options) {
|
|
11
6
|
super(options);
|
|
12
7
|
this.options = options;
|
|
13
|
-
this.currentServerUserCache = new AsyncCache(async (key, isFirst) => {
|
|
14
|
-
if (isFirst) {
|
|
15
|
-
key.onChange((newValue, oldValue) => {
|
|
16
|
-
if (JSON.stringify(newValue) === JSON.stringify(oldValue))
|
|
17
|
-
return;
|
|
18
|
-
runAsynchronously(this.currentServerUserCache.refresh(key));
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
const user = await this.getServerUserByToken(key);
|
|
22
|
-
return Result.or(user, null);
|
|
23
|
-
});
|
|
24
|
-
// TODO override the client user cache to use the server user cache, so we save some requests
|
|
25
|
-
}
|
|
26
|
-
async refreshUser(tokenStore) {
|
|
27
|
-
await Promise.all([
|
|
28
|
-
super.refreshUser(tokenStore),
|
|
29
|
-
this.currentServerUserCache.refresh(tokenStore),
|
|
30
|
-
]);
|
|
31
8
|
}
|
|
32
9
|
async sendServerRequest(path, options, tokenStore) {
|
|
33
10
|
return await this.sendClientRequest(path, {
|
package/dist/utils/arrays.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export declare function range(startInclusive: number, endExclusive: number, step
|
|
|
8
8
|
export declare function rotateLeft(arr: readonly any[], n: number): any[];
|
|
9
9
|
export declare function rotateRight(arr: readonly any[], n: number): any[];
|
|
10
10
|
export declare function shuffle<T>(arr: readonly T[]): T[];
|
|
11
|
+
//# sourceMappingURL=arrays.d.ts.map
|
package/dist/utils/bytes.d.ts
CHANGED
package/dist/utils/caches.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { RateLimitOptions, ReactPromise } from "./promises";
|
|
2
|
-
import { ReadonlyAsyncStore } from "./stores";
|
|
3
2
|
/**
|
|
4
3
|
* Can be used to cache the result of a function call, for example for the `use` hook in React.
|
|
5
4
|
*/
|
|
6
5
|
export declare function cacheFunction<F extends Function>(f: F): F;
|
|
7
|
-
|
|
6
|
+
type CacheStrategy = "write-only" | "read-write" | "never";
|
|
7
|
+
export declare class AsyncCache<D extends any[], T> {
|
|
8
8
|
private readonly _fetcher;
|
|
9
|
-
private readonly
|
|
10
|
-
private _map;
|
|
11
|
-
constructor(_fetcher: (
|
|
9
|
+
private readonly _options;
|
|
10
|
+
private readonly _map;
|
|
11
|
+
constructor(_fetcher: (dependencies: D) => Promise<T>, _options?: {
|
|
12
|
+
onSubscribe?: (key: D, refresh: () => void) => (() => void);
|
|
13
|
+
rateLimiter?: Omit<RateLimitOptions, "batchCalls">;
|
|
14
|
+
});
|
|
12
15
|
private _createKeyed;
|
|
13
|
-
getValueCache(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
get: (key: K) => ({
|
|
16
|
+
getValueCache(dependencies: D): AsyncValueCache<T>;
|
|
17
|
+
readonly isCacheAvailable: (key: D) => boolean;
|
|
18
|
+
readonly getIfCached: (key: D) => ({
|
|
17
19
|
status: "pending";
|
|
18
20
|
} & {
|
|
19
21
|
progress: void;
|
|
@@ -30,25 +32,26 @@ export declare class AsyncCache<K extends object, T> {
|
|
|
30
32
|
} & {
|
|
31
33
|
status: "ok";
|
|
32
34
|
});
|
|
33
|
-
getOrWait: (key:
|
|
34
|
-
refresh: (key:
|
|
35
|
-
invalidate: (key:
|
|
36
|
-
onChange: (key:
|
|
37
|
-
unsubscribe: () => void;
|
|
38
|
-
};
|
|
39
|
-
onceChange: (key: K, callback: (value: T, oldValue: T | undefined) => void) => {
|
|
35
|
+
readonly getOrWait: (key: D, cacheStrategy: CacheStrategy) => ReactPromise<T>;
|
|
36
|
+
readonly refresh: (key: D) => Promise<T>;
|
|
37
|
+
readonly invalidate: (key: D) => Promise<T>;
|
|
38
|
+
readonly onChange: (key: D, callback: (value: T, oldValue: T | undefined) => void) => {
|
|
40
39
|
unsubscribe: () => void;
|
|
41
40
|
};
|
|
42
41
|
}
|
|
43
|
-
|
|
44
|
-
private readonly
|
|
42
|
+
declare class AsyncValueCache<T> {
|
|
43
|
+
private readonly _options;
|
|
45
44
|
private _store;
|
|
46
|
-
private
|
|
47
|
-
private
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
private _fetcher;
|
|
46
|
+
private readonly _rateLimitOptions;
|
|
47
|
+
private _subscriptionsCount;
|
|
48
|
+
private _unsubscribers;
|
|
49
|
+
constructor(fetcher: () => Promise<T>, _options?: {
|
|
50
|
+
onSubscribe?: (refresh: () => void) => (() => void);
|
|
51
|
+
rateLimiter?: Omit<RateLimitOptions, "batchCalls">;
|
|
52
|
+
});
|
|
53
|
+
isCacheAvailable(): boolean;
|
|
54
|
+
getIfCached(): ({
|
|
52
55
|
status: "pending";
|
|
53
56
|
} & {
|
|
54
57
|
progress: void;
|
|
@@ -65,7 +68,7 @@ export declare class AsyncValueCache<T> implements ReadonlyAsyncStore<T> {
|
|
|
65
68
|
} & {
|
|
66
69
|
status: "ok";
|
|
67
70
|
});
|
|
68
|
-
getOrWait(): ReactPromise<T>;
|
|
71
|
+
getOrWait(cacheStrategy: CacheStrategy): ReactPromise<T>;
|
|
69
72
|
private _set;
|
|
70
73
|
private _setAsync;
|
|
71
74
|
private _refetch;
|
|
@@ -74,7 +77,6 @@ export declare class AsyncValueCache<T> implements ReadonlyAsyncStore<T> {
|
|
|
74
77
|
onChange(callback: (value: T, oldValue: T | undefined) => void): {
|
|
75
78
|
unsubscribe: () => void;
|
|
76
79
|
};
|
|
77
|
-
onceChange(callback: (value: T, oldValue: T | undefined) => void): {
|
|
78
|
-
unsubscribe: () => void;
|
|
79
|
-
};
|
|
80
80
|
}
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=caches.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caches.d.ts","sourceRoot":"","sources":["../../src/utils/caches.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"caches.d.ts","sourceRoot":"","sources":["../../src/utils/caches.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAqD,MAAM,YAAY,CAAC;AAG/G;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAYzD;AAGD,KAAK,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;AAE3D,qBAAa,UAAU,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;IAItC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgD;gBAGlD,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,QAAQ,GAAE;QACzB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAC5D,WAAW,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;KAC/C;IAKR,OAAO,CAAC,YAAY;IASpB,aAAa,CAAC,YAAY,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAelD,QAAQ,CAAC,gBAAgB,QAtBhB,CAAC,aAsBwD;IAClE,QAAQ,CAAC,WAAW,QAvBX,CAAC;;;;;;;;;;;;;;;;OAuB8C;IACxD,QAAQ,CAAC,SAAS,QAxBT,CAAC,mDAwB0C;IACpD,QAAQ,CAAC,OAAO,QAzBP,CAAC,gBAyBsC;IAChD,QAAQ,CAAC,UAAU,QA1BV,CAAC,gBA0B4C;IACtD,QAAQ,CAAC,QAAQ,QA3BR,CAAC;;MA2BwC;CACnD;AAED,cAAM,eAAe,CAAC,CAAC;IASnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAG1C,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACR,QAAQ,GAAE;QACzB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACpD,WAAW,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;KAC/C;IAgBR,gBAAgB,IAAI,OAAO;IAI3B,WAAW;;;;;;;;;;;;;;;;;IAIX,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC;IASxD,OAAO,CAAC,IAAI;YAIE,SAAS;YAIT,QAAQ;IAahB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAIrB,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;IAK9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE;CA0B7F"}
|
package/dist/utils/caches.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DependenciesMap } from "./maps";
|
|
2
|
-
import {
|
|
2
|
+
import { filterUndefined } from "./objects";
|
|
3
|
+
import { pending, rateLimited, resolved, runAsynchronously } from "./promises";
|
|
3
4
|
import { AsyncStore } from "./stores";
|
|
4
5
|
/**
|
|
5
6
|
* Can be used to cache the result of a function call, for example for the `use` hook in React.
|
|
@@ -17,11 +18,11 @@ export function cacheFunction(f) {
|
|
|
17
18
|
}
|
|
18
19
|
export class AsyncCache {
|
|
19
20
|
_fetcher;
|
|
20
|
-
|
|
21
|
-
_map = new
|
|
22
|
-
constructor(_fetcher,
|
|
21
|
+
_options;
|
|
22
|
+
_map = new DependenciesMap();
|
|
23
|
+
constructor(_fetcher, _options = {}) {
|
|
23
24
|
this._fetcher = _fetcher;
|
|
24
|
-
this.
|
|
25
|
+
this._options = _options;
|
|
25
26
|
// nothing here yet
|
|
26
27
|
}
|
|
27
28
|
_createKeyed(functionName) {
|
|
@@ -30,57 +31,56 @@ export class AsyncCache {
|
|
|
30
31
|
return valueCache[functionName].apply(valueCache, args);
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
|
-
getValueCache(
|
|
34
|
-
let cache = this._map.get(
|
|
34
|
+
getValueCache(dependencies) {
|
|
35
|
+
let cache = this._map.get(dependencies);
|
|
35
36
|
if (!cache) {
|
|
36
|
-
cache = new AsyncValueCache(async (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
cache = new AsyncValueCache(async () => await this._fetcher(dependencies), {
|
|
38
|
+
...this._options,
|
|
39
|
+
onSubscribe: this._options.onSubscribe ? (cb) => this._options.onSubscribe(dependencies, cb) : undefined,
|
|
40
|
+
});
|
|
41
|
+
this._map.set(dependencies, cache);
|
|
40
42
|
}
|
|
41
43
|
return cache;
|
|
42
44
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
get = this._createKeyed("get");
|
|
45
|
+
isCacheAvailable = this._createKeyed("isCacheAvailable");
|
|
46
|
+
getIfCached = this._createKeyed("getIfCached");
|
|
46
47
|
getOrWait = this._createKeyed("getOrWait");
|
|
47
48
|
refresh = this._createKeyed("refresh");
|
|
48
49
|
invalidate = this._createKeyed("invalidate");
|
|
49
50
|
onChange = this._createKeyed("onChange");
|
|
50
|
-
onceChange = this._createKeyed("onceChange");
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
class AsyncValueCache {
|
|
53
|
+
_options;
|
|
54
54
|
_store;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
_fetcher;
|
|
56
|
+
_rateLimitOptions;
|
|
57
|
+
_subscriptionsCount = 0;
|
|
58
|
+
_unsubscribers = [];
|
|
59
|
+
constructor(fetcher, _options = {}) {
|
|
60
|
+
this._options = _options;
|
|
59
61
|
this._store = new AsyncStore();
|
|
60
|
-
this.
|
|
61
|
-
|
|
62
|
+
this._rateLimitOptions = {
|
|
63
|
+
concurrency: 1,
|
|
64
|
+
debounceMs: 300,
|
|
65
|
+
...filterUndefined(_options.rateLimiter ?? {}),
|
|
62
66
|
};
|
|
63
|
-
this.
|
|
64
|
-
return await fetcher(false);
|
|
65
|
-
}, {
|
|
67
|
+
this._fetcher = rateLimited(fetcher, {
|
|
66
68
|
...this._rateLimitOptions,
|
|
67
69
|
batchCalls: true,
|
|
68
70
|
});
|
|
69
|
-
this._refetch(true).catch(() => {
|
|
70
|
-
this._store.setRejected(new Error("unavailable"));
|
|
71
|
-
});
|
|
72
71
|
}
|
|
73
|
-
|
|
72
|
+
isCacheAvailable() {
|
|
74
73
|
return this._store.isAvailable();
|
|
75
74
|
}
|
|
76
|
-
|
|
77
|
-
this._store.setUnavailable();
|
|
78
|
-
}
|
|
79
|
-
get() {
|
|
75
|
+
getIfCached() {
|
|
80
76
|
return this._store.get();
|
|
81
77
|
}
|
|
82
|
-
getOrWait() {
|
|
83
|
-
|
|
78
|
+
getOrWait(cacheStrategy) {
|
|
79
|
+
const cached = this.getIfCached();
|
|
80
|
+
if (cacheStrategy === "read-write" && cached.status === "ok") {
|
|
81
|
+
return resolved(cached.data);
|
|
82
|
+
}
|
|
83
|
+
return pending(this._refetch(cacheStrategy === "read-write" ? "write-only" : cacheStrategy));
|
|
84
84
|
}
|
|
85
85
|
_set(value) {
|
|
86
86
|
this._store.set(value);
|
|
@@ -88,10 +88,12 @@ export class AsyncValueCache {
|
|
|
88
88
|
async _setAsync(value) {
|
|
89
89
|
return await this._store.setAsync(value);
|
|
90
90
|
}
|
|
91
|
-
async _refetch(
|
|
91
|
+
async _refetch(cacheStrategy) {
|
|
92
92
|
try {
|
|
93
|
-
const res =
|
|
94
|
-
|
|
93
|
+
const res = this._fetcher();
|
|
94
|
+
if (cacheStrategy === "write-only") {
|
|
95
|
+
await this._setAsync(res);
|
|
96
|
+
}
|
|
95
97
|
return await res;
|
|
96
98
|
}
|
|
97
99
|
catch (e) {
|
|
@@ -100,16 +102,34 @@ export class AsyncValueCache {
|
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
async refresh() {
|
|
103
|
-
return await this.
|
|
105
|
+
return await this.getOrWait("write-only");
|
|
104
106
|
}
|
|
105
107
|
async invalidate() {
|
|
106
|
-
this.setUnavailable();
|
|
107
|
-
return await this.
|
|
108
|
+
this._store.setUnavailable();
|
|
109
|
+
return await this.refresh();
|
|
108
110
|
}
|
|
109
111
|
onChange(callback) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
const storeObj = this._store.onChange(callback);
|
|
113
|
+
if (this._subscriptionsCount++ === 0 && this._options.onSubscribe) {
|
|
114
|
+
const unsubscribe = this._options.onSubscribe(() => {
|
|
115
|
+
runAsynchronously(this.refresh());
|
|
116
|
+
});
|
|
117
|
+
this._unsubscribers.push(unsubscribe);
|
|
118
|
+
}
|
|
119
|
+
runAsynchronously(this.refresh());
|
|
120
|
+
let hasUnsubscribed = false;
|
|
121
|
+
return {
|
|
122
|
+
unsubscribe: () => {
|
|
123
|
+
if (hasUnsubscribed)
|
|
124
|
+
return;
|
|
125
|
+
hasUnsubscribed = true;
|
|
126
|
+
storeObj.unsubscribe();
|
|
127
|
+
if (--this._subscriptionsCount === 0) {
|
|
128
|
+
for (const unsubscribe of this._unsubscribers) {
|
|
129
|
+
unsubscribe();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
};
|
|
114
134
|
}
|
|
115
135
|
}
|
package/dist/utils/crypto.d.ts
CHANGED
package/dist/utils/dates.d.ts
CHANGED
|
@@ -10,3 +10,4 @@ export declare function fromNowDetailed(date: Date): {
|
|
|
10
10
|
* Returns a string representation of the given date in the format expected by the `datetime-local` input type.
|
|
11
11
|
*/
|
|
12
12
|
export declare function getInputDatetimeLocalString(date: Date): string;
|
|
13
|
+
//# sourceMappingURL=dates.d.ts.map
|
package/dist/utils/dom.d.ts
CHANGED
package/dist/utils/env.d.ts
CHANGED
package/dist/utils/errors.d.ts
CHANGED
package/dist/utils/html.d.ts
CHANGED
package/dist/utils/json.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export type ReadonlyJson = null | boolean | number | string | readonly ReadonlyJ
|
|
|
8
8
|
export declare function isJson(value: unknown): value is Json;
|
|
9
9
|
export declare function parseJson(json: string): Result<Json>;
|
|
10
10
|
export declare function stringifyJson(json: Json): Result<string>;
|
|
11
|
+
//# sourceMappingURL=json.d.ts.map
|
package/dist/utils/jwt.d.ts
CHANGED
package/dist/utils/maps.d.ts
CHANGED
|
@@ -18,5 +18,7 @@ export declare class DependenciesMap<K extends any[], V> {
|
|
|
18
18
|
set(dependencies: K, value: V): this;
|
|
19
19
|
delete(dependencies: K): boolean;
|
|
20
20
|
has(dependencies: K): boolean;
|
|
21
|
+
clear(): void;
|
|
21
22
|
[Symbol.toStringTag]: string;
|
|
22
23
|
}
|
|
24
|
+
//# sourceMappingURL=maps.d.ts.map
|
package/dist/utils/maps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../src/utils/maps.tsx"],"names":[],"mappings":"AAEA,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAMzD,OAAO,CAAC,mBAAmB;IAI3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAS3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQvB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQpB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAkB;CACvC;AAWD,qBAAa,eAAe,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;IAC7C,OAAO,CAAC,MAAM,CAA2F;IAEzG,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAqBnB,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAInC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKpC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO;IAIhC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO;IAI7B,CAAC,MAAM,CAAC,WAAW,CAAC,SAAqB;CAC1C"}
|
|
1
|
+
{"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../src/utils/maps.tsx"],"names":[],"mappings":"AAEA,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAMzD,OAAO,CAAC,mBAAmB;IAI3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAS3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQvB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQpB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAkB;CACvC;AAWD,qBAAa,eAAe,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;IAC7C,OAAO,CAAC,MAAM,CAA2F;IAEzG,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAqBnB,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAInC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKpC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO;IAIhC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO;IAI7B,KAAK,IAAI,IAAI;IAIb,CAAC,MAAM,CAAC,WAAW,CAAC,SAAqB;CAC1C"}
|
package/dist/utils/maps.js
CHANGED
|
@@ -103,5 +103,8 @@ export class DependenciesMap {
|
|
|
103
103
|
has(dependencies) {
|
|
104
104
|
return this._unwrapFromInner(dependencies, this._inner).status === "ok";
|
|
105
105
|
}
|
|
106
|
+
clear() {
|
|
107
|
+
this._inner = { map: new MaybeWeakMap(), hasValue: false, value: undefined };
|
|
108
|
+
}
|
|
106
109
|
[Symbol.toStringTag] = "DependenciesMap";
|
|
107
110
|
}
|
package/dist/utils/math.d.ts
CHANGED
package/dist/utils/numbers.d.ts
CHANGED
package/dist/utils/objects.d.ts
CHANGED
package/dist/utils/password.d.ts
CHANGED
package/dist/utils/promises.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare function resolved<T>(value: T): ReactPromise<T>;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function rejected<T>(reason: unknown): ReactPromise<T>;
|
|
15
15
|
export declare function neverResolve(): ReactPromise<never>;
|
|
16
|
+
export declare function pending<T>(promise: Promise<T>): ReactPromise<T>;
|
|
16
17
|
export declare function wait(ms: number): Promise<void>;
|
|
17
18
|
export declare function waitUntil(date: Date): Promise<void>;
|
|
18
19
|
export declare function runAsynchronously(promiseOrFunc: Promise<unknown> | (() => Promise<unknown>) | undefined): void;
|
|
@@ -47,3 +48,4 @@ export type RateLimitOptions = {
|
|
|
47
48
|
export declare function rateLimited<T>(func: () => Promise<T>, options: RateLimitOptions): () => Promise<T>;
|
|
48
49
|
export declare function throttled<T, A extends any[]>(func: (...args: A) => Promise<T>, delayMs: number): (...args: A) => Promise<T>;
|
|
49
50
|
export {};
|
|
51
|
+
//# sourceMappingURL=promises.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promises.d.ts","sourceRoot":"","sources":["../../src/utils/promises.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAElF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CACvC,gBAAgB,CAAC,CAAC,CAAC,GACnB,iBAAiB,CAAC,CAAC,CAAC,GACpB,eAAe,CAAC,CAAC,CAAC,CACrB,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AACrC,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AACxC,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CA0BzG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAKrD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAK5D;AAED,wBAAgB,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"promises.d.ts","sourceRoot":"","sources":["../../src/utils/promises.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAElF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CACvC,gBAAgB,CAAC,CAAC,CAAC,GACnB,iBAAiB,CAAC,CAAC,CAAC,GACpB,eAAe,CAAC,CAAC,CAAC,CACrB,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AACrC,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AACxC,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CA0BzG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAKrD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAK5D;AAED,wBAAgB,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,CAElD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAI/D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,iBAEpC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,iBAEzC;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAa9G;AAGD,cAAM,YAAa,SAAQ,KAAK;aACF,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;CAIvC;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAKlG;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEjF;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,gBAAgB,GACxB,MAAM,OAAO,CAAC,CAAC,CAAC,CAoDlB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAe3H"}
|
package/dist/utils/promises.js
CHANGED
|
@@ -47,7 +47,10 @@ export function rejected(reason) {
|
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
export function neverResolve() {
|
|
50
|
-
return
|
|
50
|
+
return pending(new Promise(() => { }));
|
|
51
|
+
}
|
|
52
|
+
export function pending(promise) {
|
|
53
|
+
return Object.assign(promise, {
|
|
51
54
|
status: "pending",
|
|
52
55
|
});
|
|
53
56
|
}
|
package/dist/utils/react.d.ts
CHANGED
package/dist/utils/results.d.ts
CHANGED
package/dist/utils/stores.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/utils/stores.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/utils/stores.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,YAAY,EAA+B,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,WAAW,IAAI,OAAO,CAAC;IACvB,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC7F,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAChG,CAAC;AAEF,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiD;IAEzF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyE;IAEpG,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,qBAAqB,CAAM;gBAEvB,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAS7B,WAAW,IAAI,OAAO;IAItB,UAAU,IAAI,OAAO;IAIrB,GAAG;;;;;;;;;;;;;;;;;IAUH,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC;IAmB5B,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM;IAgBzC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAInB,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,CAAC;IAMzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrD,cAAc,IAAI,IAAI;IAMtB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAOjC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAQ9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE;IAU5F,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE;CAO/F"}
|
package/dist/utils/stores.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AsyncResult } from "./results";
|
|
2
2
|
import { generateUuid } from "./uuids";
|
|
3
|
-
import { rejected, resolved } from "./promises";
|
|
3
|
+
import { pending, rejected, resolved } from "./promises";
|
|
4
4
|
export class AsyncStore {
|
|
5
5
|
_isAvailable;
|
|
6
6
|
_value = undefined;
|
|
@@ -53,9 +53,7 @@ export class AsyncStore {
|
|
|
53
53
|
const withFinally = promise.finally(() => {
|
|
54
54
|
this._waitingRejectFunctions.delete(uuid);
|
|
55
55
|
});
|
|
56
|
-
return
|
|
57
|
-
status: "pending",
|
|
58
|
-
});
|
|
56
|
+
return pending(withFinally);
|
|
59
57
|
}
|
|
60
58
|
_setIfLatest(value, curCounter) {
|
|
61
59
|
if (!this._isAvailable || this._isRejected || this._value !== value) {
|
package/dist/utils/strings.d.ts
CHANGED
|
@@ -38,3 +38,4 @@ export declare function trimLines(s: string): string;
|
|
|
38
38
|
export declare function templateIdentity(strings: TemplateStringsArray | readonly string[], ...values: any[]): string;
|
|
39
39
|
export declare function deindent(code: string): string;
|
|
40
40
|
export declare function deindent(strings: TemplateStringsArray | readonly string[], ...values: any[]): string;
|
|
41
|
+
//# sourceMappingURL=strings.d.ts.map
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { StatusError } from "./errors";
|
|
2
|
-
export type ReadonlyJson = null | boolean | number | string | readonly ReadonlyJson[] | {
|
|
3
|
-
readonly [key: string]: ReadonlyJson;
|
|
4
|
-
};
|
|
5
2
|
export declare const AccessTokenExpiredErrorCode = "ACCESS_TOKEN_EXPIRED";
|
|
6
3
|
export declare const GrantInvalidErrorCode = "GRANT_INVALID";
|
|
7
4
|
export declare const UserAlreadyExistErrorCode = "USER_ALREADY_EXIST";
|
|
@@ -17,17 +14,18 @@ export declare const EmailVerificationLinkUsedErrorCode = "EMAIL_VERIFICATION_LI
|
|
|
17
14
|
export declare const PasswordResetLinkInvalidErrorCode = "PASSWORD_RESET_LINK_INVALID";
|
|
18
15
|
export declare const PasswordResetLinkExpiredErrorCode = "PASSWORD_RESET_LINK_EXPIRED";
|
|
19
16
|
export declare const PasswordResetLinkUsedErrorCode = "PASSWORD_RESET_LINK_USED";
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
17
|
+
export declare const KnownErrorCodes: readonly ["ACCESS_TOKEN_EXPIRED", "GRANT_INVALID", "USER_ALREADY_EXIST", "USER_NOT_EXIST", "USER_NOT_VERIFIED", "EMAIL_PASSWORD_MISS_MATCH", "REDIRECT_URL_INVALID", "PASSWORD_FORMAT_INVALID", "PROJECT_ID_OR_KEY_INVALID", "EMAIL_VERIFICATION_LINK_INVALID", "EMAIL_VERIFICATION_LINK_EXPIRED", "EMAIL_VERIFICATION_LINK_USED", "PASSWORD_RESET_LINK_INVALID", "PASSWORD_RESET_LINK_EXPIRED", "PASSWORD_RESET_LINK_USED"];
|
|
18
|
+
export type KnownErrorCode = typeof KnownErrorCodes[number];
|
|
19
|
+
export declare const SignUpErrorCodes: readonly ["USER_ALREADY_EXIST"];
|
|
20
|
+
export type SignUpErrorCode = typeof SignUpErrorCodes[number];
|
|
21
|
+
export declare const SignInErrorCodes: readonly ["EMAIL_PASSWORD_MISS_MATCH", "USER_NOT_EXIST"];
|
|
22
|
+
export type SignInErrorCode = typeof SignInErrorCodes[number];
|
|
23
|
+
export declare const EmailVerificationLinkErrorCodes: readonly ["EMAIL_VERIFICATION_LINK_INVALID", "EMAIL_VERIFICATION_LINK_EXPIRED", "EMAIL_VERIFICATION_LINK_USED"];
|
|
24
|
+
export type EmailVerificationLinkErrorCode = typeof EmailVerificationLinkErrorCodes[number];
|
|
25
|
+
export declare const PasswordResetLinkErrorCodes: readonly ["PASSWORD_RESET_LINK_INVALID", "PASSWORD_RESET_LINK_EXPIRED", "PASSWORD_RESET_LINK_USED"];
|
|
26
|
+
export type PasswordResetLinkErrorCode = typeof PasswordResetLinkErrorCodes[number];
|
|
30
27
|
export declare class KnownError extends StatusError {
|
|
31
28
|
readonly errorCode: KnownErrorCode;
|
|
32
29
|
constructor(errorCode: KnownErrorCode);
|
|
33
30
|
}
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAC9D,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAC1E,eAAO,MAAM,qCAAqC,oCAAoC,CAAC;AACvF,eAAO,MAAM,qCAAqC,oCAAoC,CAAC;AACvF,eAAO,MAAM,kCAAkC,iCAAiC,CAAC;AACjF,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AAEzE,eAAO,MAAM,eAAe,8ZAgBlB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE5D,eAAO,MAAM,gBAAgB,iCAAuC,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,gBAAgB,0DAGnB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,+BAA+B,iHAIlC,CAAC;AACX,MAAM,MAAM,8BAA8B,GAAG,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAA;AAE3F,eAAO,MAAM,2BAA2B,qGAI9B,CAAC;AACX,MAAM,MAAM,0BAA0B,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAA;AAEnF,qBAAa,UAAW,SAAQ,WAAW;aACb,SAAS,EAAE,cAAc;gBAAzB,SAAS,EAAE,cAAc;CAatD"}
|
package/dist/utils/uuids.d.ts
CHANGED