@cubist-labs/cubesigner-sdk-browser-storage 0.4.89-0 → 0.4.97-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/dist/index.d.ts CHANGED
@@ -11,23 +11,26 @@ export declare class BrowserStorageManager extends EventEmitter<BrowserStorageEv
11
11
  #private;
12
12
  /**
13
13
  *
14
- * @param {string} key The storage key to use
15
- * @param {Storage} [storage] The storage object to use (defaults to localStorage)
14
+ * @param key The storage key to use
15
+ * @param storage The storage object to use (defaults to localStorage)
16
16
  */
17
17
  constructor(key: string, storage?: Storage);
18
18
  /**
19
19
  * Loads the metadata for a session from storage
20
- * @return {SessionMetadata} The session metadata
20
+ *
21
+ * @returns The session metadata
21
22
  */
22
23
  metadata(): Promise<SessionMetadata>;
23
24
  /**
24
25
  * Loads the current access token from storage
25
- * @return {string} The access token
26
+ *
27
+ * @returns The access token
26
28
  */
27
29
  token(): Promise<string>;
28
30
  /**
29
31
  * Directly set the session (updating all consumers of the session storage)
30
- * @param {SessionData} [session] The new session
32
+ *
33
+ * @param session The new session
31
34
  */
32
35
  setSession(session?: SessionData): Promise<any>;
33
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EACL,YAAY,EAOb,MAAM,6BAA6B,CAAC;AAGrC,KAAK,oBAAoB,GAAG;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,qBAAa,qBACX,SAAQ,YAAY,CAAC,oBAAoB,CACzC,YAAW,cAAc;;IAOzB;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAiC;IA0CnE;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAQ1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B9B;;;OAGG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW;CAwBvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EACL,YAAY,EAOb,MAAM,6BAA6B,CAAC;AAGrC,KAAK,oBAAoB,GAAG;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,qBAAa,qBACX,SAAQ,YAAY,CAAC,oBAAoB,CACzC,YAAW,cAAc;;IAOzB;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAiC;IA4CnE;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAQ1C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B9B;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW;CAwBvC"}
package/dist/index.js CHANGED
@@ -21,8 +21,8 @@ const locks_1 = require("./locks");
21
21
  class BrowserStorageManager extends cubesigner_sdk_1.EventEmitter {
22
22
  /**
23
23
  *
24
- * @param {string} key The storage key to use
25
- * @param {Storage} [storage] The storage object to use (defaults to localStorage)
24
+ * @param key The storage key to use
25
+ * @param storage The storage object to use (defaults to localStorage)
26
26
  */
27
27
  constructor(key, storage = globalThis.localStorage) {
28
28
  super();
@@ -33,18 +33,19 @@ class BrowserStorageManager extends cubesigner_sdk_1.EventEmitter {
33
33
  _BrowserStorageManager_lock.set(this, void 0);
34
34
  __classPrivateFieldSet(this, _BrowserStorageManager_key, key, "f");
35
35
  __classPrivateFieldSet(this, _BrowserStorageManager_storage, storage, "f");
36
- (__classPrivateFieldSet(this, _BrowserStorageManager_lock, `CS_SDK_STORAGE_LOCK_${key}`, "f")),
37
- // Set up listeners to emit events when users log in or log out
38
- window.addEventListener("storage", (ev) => {
39
- // We only care about events on our storage object, using our key
40
- if (ev.storageArea !== storage || ev.key !== key)
41
- return;
42
- __classPrivateFieldGet(this, _BrowserStorageManager_instances, "m", _BrowserStorageManager_emitIfNecessary).call(this, ev.oldValue, ev.newValue);
43
- });
36
+ __classPrivateFieldSet(this, _BrowserStorageManager_lock, `CS_SDK_STORAGE_LOCK_${key}`, "f");
37
+ // Set up listeners to emit events when users log in or log out
38
+ window.addEventListener("storage", (ev) => {
39
+ // We only care about events on our storage object, using our key
40
+ if (ev.storageArea !== storage || ev.key !== key)
41
+ return;
42
+ __classPrivateFieldGet(this, _BrowserStorageManager_instances, "m", _BrowserStorageManager_emitIfNecessary).call(this, ev.oldValue, ev.newValue);
43
+ });
44
44
  }
45
45
  /**
46
46
  * Loads the metadata for a session from storage
47
- * @return {SessionMetadata} The session metadata
47
+ *
48
+ * @returns The session metadata
48
49
  */
49
50
  async metadata() {
50
51
  const sess = __classPrivateFieldGet(this, _BrowserStorageManager_instances, "m", _BrowserStorageManager_loadSession).call(this);
@@ -55,7 +56,8 @@ class BrowserStorageManager extends cubesigner_sdk_1.EventEmitter {
55
56
  }
56
57
  /**
57
58
  * Loads the current access token from storage
58
- * @return {string} The access token
59
+ *
60
+ * @returns The access token
59
61
  */
60
62
  async token() {
61
63
  const sess = await (0, locks_1.readTestAndSet)(__classPrivateFieldGet(this, _BrowserStorageManager_lock, "f"), {
@@ -89,7 +91,8 @@ class BrowserStorageManager extends cubesigner_sdk_1.EventEmitter {
89
91
  }
90
92
  /**
91
93
  * Directly set the session (updating all consumers of the session storage)
92
- * @param {SessionData} [session] The new session
94
+ *
95
+ * @param session The new session
93
96
  */
94
97
  async setSession(session) {
95
98
  return await navigator.locks.request(__classPrivateFieldGet(this, _BrowserStorageManager_lock, "f"), {
@@ -127,4 +130,4 @@ _BrowserStorageManager_key = new WeakMap(), _BrowserStorageManager_storage = new
127
130
  }
128
131
  return JSON.parse(stored);
129
132
  };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsZ0VBUXFDO0FBQ3JDLG1DQUF5QztBQU96Qzs7R0FFRztBQUNILE1BQWEscUJBQ1gsU0FBUSw2QkFBa0M7SUFRMUM7Ozs7T0FJRztJQUNILFlBQVksR0FBVyxFQUFFLFVBQW1CLFVBQVUsQ0FBQyxZQUFZO1FBQ2pFLEtBQUssRUFBRSxDQUFDOztRQVhWLDJDQUEyQztRQUMzQyw2Q0FBYTtRQUNiLGlEQUFrQjtRQUNsQiw4Q0FBYztRQVNaLHVCQUFBLElBQUksOEJBQVEsR0FBRyxNQUFBLENBQUM7UUFDaEIsdUJBQUEsSUFBSSxrQ0FBWSxPQUFPLE1BQUEsQ0FBQztRQUN4QixDQUFDLHVCQUFBLElBQUksK0JBQVMsdUJBQXVCLEdBQUcsRUFBRSxNQUFBLENBQUM7WUFDekMsK0RBQStEO1lBQy9ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDeEMsaUVBQWlFO2dCQUNqRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEtBQUssT0FBTyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRztvQkFBRSxPQUFPO2dCQUN6RCx1QkFBQSxJQUFJLGdGQUFpQixNQUFyQixJQUFJLEVBQWtCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQStCRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sSUFBSSxHQUFHLHVCQUFBLElBQUksNEVBQWEsTUFBakIsSUFBSSxDQUFlLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLG9DQUFtQixFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBQSx5QkFB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QUFRLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxJRCxzREFrSUM7b1JBbEdrQixRQUF1QixFQUFFLFFBQXVCO0lBQy9ELElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsdURBQXVEO1NBQ2xELElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0FBQ0gsQ0FBQztJQU9DLE1BQU0sTUFBTSxHQUFHLHVCQUFBLElBQUksc0NBQVMsQ0FBQyxPQUFPLENBQUMsdUJBQUEsSUFBSSxrQ0FBSyxDQUFDLENBQUM7SUFDaEQsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTztJQUNULENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2Vzc2lvbkRhdGEsIFNlc3Npb25NYW5hZ2VyLCBTZXNzaW9uTWV0YWRhdGEgfSBmcm9tIFwiQGN1YmlzdC1sYWJzL2N1YmVzaWduZXItc2RrXCI7XG5pbXBvcnQge1xuICBFdmVudEVtaXR0ZXIsXG4gIE5vU2Vzc2lvbkZvdW5kRXJyb3IsXG4gIGlzU3RhbGUsXG4gIGlzUmVmcmVzaGFibGUsXG4gIG1ldGFkYXRhLFxuICByZWZyZXNoLFxuICBFcnJSZXNwb25zZSxcbn0gZnJvbSBcIkBjdWJpc3QtbGFicy9jdWJlc2lnbmVyLXNka1wiO1xuaW1wb3J0IHsgcmVhZFRlc3RBbmRTZXQgfSBmcm9tIFwiLi9sb2Nrc1wiO1xuXG50eXBlIEJyb3dzZXJTdG9yYWdlRXZlbnRzID0ge1xuICBsb2dvdXQoKTogdm9pZDtcbiAgbG9naW4oKTogdm9pZDtcbn07XG5cbi8qKlxuICogQSBtYW5hZ2VyIHRoYXQgcGVyc2lzdHMgaW50byBicm93c2VyIHN0b3JhZ2UgYW5kIHVzZXMgd2VibG9ja3MgdG8gc2FmZWx5IHBlcmZvcm0gcmVmcmVzaGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBCcm93c2VyU3RvcmFnZU1hbmFnZXJcbiAgZXh0ZW5kcyBFdmVudEVtaXR0ZXI8QnJvd3NlclN0b3JhZ2VFdmVudHM+XG4gIGltcGxlbWVudHMgU2Vzc2lvbk1hbmFnZXJcbntcbiAgLyoqIFRoZSBzdG9yYWdlIGtleSBmb3IgdGhlIHNlc3Npb24gZGF0YSAqL1xuICAja2V5OiBzdHJpbmc7XG4gICNzdG9yYWdlOiBTdG9yYWdlO1xuICAjbG9jazogc3RyaW5nO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBzdG9yYWdlIGtleSB0byB1c2VcbiAgICogQHBhcmFtIHtTdG9yYWdlfSBbc3RvcmFnZV0gVGhlIHN0b3JhZ2Ugb2JqZWN0IHRvIHVzZSAoZGVmYXVsdHMgdG8gbG9jYWxTdG9yYWdlKVxuICAgKi9cbiAgY29uc3RydWN0b3Ioa2V5OiBzdHJpbmcsIHN0b3JhZ2U6IFN0b3JhZ2UgPSBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy4ja2V5ID0ga2V5O1xuICAgIHRoaXMuI3N0b3JhZ2UgPSBzdG9yYWdlO1xuICAgICh0aGlzLiNsb2NrID0gYENTX1NES19TVE9SQUdFX0xPQ0tfJHtrZXl9YCksXG4gICAgICAvLyBTZXQgdXAgbGlzdGVuZXJzIHRvIGVtaXQgZXZlbnRzIHdoZW4gdXNlcnMgbG9nIGluIG9yIGxvZyBvdXRcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic3RvcmFnZVwiLCAoZXYpID0+IHtcbiAgICAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IGV2ZW50cyBvbiBvdXIgc3RvcmFnZSBvYmplY3QsIHVzaW5nIG91ciBrZXlcbiAgICAgICAgaWYgKGV2LnN0b3JhZ2VBcmVhICE9PSBzdG9yYWdlIHx8IGV2LmtleSAhPT0ga2V5KSByZXR1cm47XG4gICAgICAgIHRoaXMuI2VtaXRJZk5lY2Vzc2FyeShldi5vbGRWYWx1ZSwgZXYubmV3VmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBgbG9naW5gIG9yIGBsb2dvdXRgIGV2ZW50IGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0ge251bGwgfCBzdHJpbmd9IG9sZFZhbHVlIFRoZSBwcmV2aW91c2x5IHN0b3JlZCB2YWx1ZVxuICAgKiBAcGFyYW0ge251bGwgfCBzdHJpbmd9IG5ld1ZhbHVlIFRoZSBuZXdseSBzdG9yZWQgdmFsdWVcbiAgICovXG4gICNlbWl0SWZOZWNlc3Nhcnkob2xkVmFsdWU6IG51bGwgfCBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKG5ld1ZhbHVlID09PSBudWxsICYmIG9sZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmVtaXQoXCJsb2dvdXRcIik7XG4gICAgfVxuXG4gICAgLy8gVGhlcmUgaXMgbm93IGEgc2Vzc2lvbiB3aGVuIHRoZXJlIGRpZG4ndCB1c2VkIHRvIGJlLlxuICAgIGVsc2UgaWYgKG9sZFZhbHVlID09PSBudWxsICYmIG5ld1ZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmVtaXQoXCJsb2dpblwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYSBzZXNzaW9uIGZyb20gdGhlIGNvbmZpZ3VyZWQgc3RvcmFnZSBhdCB0aGUgY29uZmlndXJlZCBrZXlcbiAgICogQHJldHVybiB7U2Vzc2lvbkRhdGEgfCB1bmRlZmluZWR9IFRoZSBzdG9yZWQgZGF0YSBvciB1bmRlZmluZWQgaWYgbm90IHByZXNlbnRcbiAgICovXG4gICNsb2FkU2Vzc2lvbigpOiBTZXNzaW9uRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RvcmVkID0gdGhpcy4jc3RvcmFnZS5nZXRJdGVtKHRoaXMuI2tleSk7XG4gICAgaWYgKHN0b3JlZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBKU09OLnBhcnNlKHN0b3JlZCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIG1ldGFkYXRhIGZvciBhIHNlc3Npb24gZnJvbSBzdG9yYWdlXG4gICAqIEByZXR1cm4ge1Nlc3Npb25NZXRhZGF0YX0gVGhlIHNlc3Npb24gbWV0YWRhdGFcbiAgICovXG4gIGFzeW5jIG1ldGFkYXRhKCk6IFByb21pc2U8U2Vzc2lvbk1ldGFkYXRhPiB7XG4gICAgY29uc3Qgc2VzcyA9IHRoaXMuI2xvYWRTZXNzaW9uKCk7XG4gICAgaWYgKCFzZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgTm9TZXNzaW9uRm91bmRFcnJvcigpO1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGEoc2Vzcyk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuIGZyb20gc3RvcmFnZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBhY2Nlc3MgdG9rZW5cbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2VzcyA9IGF3YWl0IHJlYWRUZXN0QW5kU2V0PFNlc3Npb25EYXRhIHwgdW5kZWZpbmVkPih0aGlzLiNsb2NrLCB7XG4gICAgICByZWFkOiAoKSA9PiB0aGlzLiNsb2FkU2Vzc2lvbigpLFxuICAgICAgdGVzdDogKHYpID0+IHYgIT09IHVuZGVmaW5lZCAmJiBpc1N0YWxlKHYpLFxuICAgICAgc2V0OiBhc3luYyAob2xkU2Vzc2lvbjogU2Vzc2lvbkRhdGEpID0+IHtcbiAgICAgICAgaWYgKGlzUmVmcmVzaGFibGUob2xkU2Vzc2lvbikpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3U2Vzc2lvbiA9IGF3YWl0IHJlZnJlc2gob2xkU2Vzc2lvbik7XG4gICAgICAgICAgICB0aGlzLiNzdG9yYWdlLnNldEl0ZW0odGhpcy4ja2V5LCBKU09OLnN0cmluZ2lmeShuZXdTZXNzaW9uKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIlN1Y2Nlc3NmdWxseSByZWZyZXNoZWRcIik7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJSZXNwb25zZSAmJiBlLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICAgIHRoaXMuI3N0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLiNrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiB0aGUgc2Vzc2lvbiBpcyBub3QgcmVmcmVzaGFibGUsIHdlIHNob3VsZCByZW1vdmUgaXRcbiAgICAgICAgICB0aGlzLiNzdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy4ja2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdGlmeSB0aGF0IHRoZSBzZXNzaW9uIGhhcyBjaGFuZ2VkXG4gICAgICAgIHRoaXMuI2VtaXRJZk5lY2Vzc2FyeShcIlwiLCB0aGlzLiNzdG9yYWdlLmdldEl0ZW0odGhpcy4ja2V5KSk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICghc2Vzcykge1xuICAgICAgdGhyb3cgbmV3IE5vU2Vzc2lvbkZvdW5kRXJyb3IoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlc3MudG9rZW47XG4gIH1cblxuICAvKipcbiAgICogRGlyZWN0bHkgc2V0IHRoZSBzZXNzaW9uICh1cGRhdGluZyBhbGwgY29uc3VtZXJzIG9mIHRoZSBzZXNzaW9uIHN0b3JhZ2UpXG4gICAqIEBwYXJhbSB7U2Vzc2lvbkRhdGF9IFtzZXNzaW9uXSBUaGUgbmV3IHNlc3Npb25cbiAgICovXG4gIGFzeW5jIHNldFNlc3Npb24oc2Vzc2lvbj86IFNlc3Npb25EYXRhKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KFxuICAgICAgdGhpcy4jbG9jayxcbiAgICAgIHtcbiAgICAgICAgbW9kZTogXCJleGNsdXNpdmVcIixcbiAgICAgIH0sXG4gICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy4jc3RvcmFnZS5nZXRJdGVtKHRoaXMuI2tleSk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gc2Vzc2lvbiA/IEpTT04uc3RyaW5naWZ5KHNlc3Npb24pIDogbnVsbDtcblxuICAgICAgICAvLyBVbmxpa2UgZHVyaW5nIHJlZnJlc2gsIHdlIGRvbid0IHByZWVtcHQgdGhlIHJlYWQgbG9ja3NcbiAgICAgICAgLy8gYmVjYXVzZSB0aGlzIG9wZXJhdGlvbiBpcyBzeW5jaHJvbm91c1xuICAgICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLiNzdG9yYWdlLnNldEl0ZW0odGhpcy4ja2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuI2tleSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yYWdlIGV2ZW50cyBkb24ndCBmaXJlIGlmIHRoZSBzdG9yZSBvY2N1cnJlZCBvbiB0aGUgc2FtZSBwYWdlLFxuICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIG1hbnVhbGx5IGludm9rZSBvdXIgZW1pdCBsb2dpY1xuICAgICAgICB0aGlzLiNlbWl0SWZOZWNlc3Nhcnkob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsZ0VBUXFDO0FBQ3JDLG1DQUF5QztBQU96Qzs7R0FFRztBQUNILE1BQWEscUJBQ1gsU0FBUSw2QkFBa0M7SUFRMUM7Ozs7T0FJRztJQUNILFlBQVksR0FBVyxFQUFFLFVBQW1CLFVBQVUsQ0FBQyxZQUFZO1FBQ2pFLEtBQUssRUFBRSxDQUFDOztRQVhWLDJDQUEyQztRQUMzQyw2Q0FBYTtRQUNiLGlEQUFrQjtRQUNsQiw4Q0FBYztRQVNaLHVCQUFBLElBQUksOEJBQVEsR0FBRyxNQUFBLENBQUM7UUFDaEIsdUJBQUEsSUFBSSxrQ0FBWSxPQUFPLE1BQUEsQ0FBQztRQUN4Qix1QkFBQSxJQUFJLCtCQUFTLHVCQUF1QixHQUFHLEVBQUUsTUFBQSxDQUFDO1FBQzFDLCtEQUErRDtRQUMvRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDeEMsaUVBQWlFO1lBQ2pFLElBQUksRUFBRSxDQUFDLFdBQVcsS0FBSyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHO2dCQUFFLE9BQU87WUFDekQsdUJBQUEsSUFBSSxnRkFBaUIsTUFBckIsSUFBSSxFQUFrQixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFpQ0Q7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLEdBQUcsdUJBQUEsSUFBSSw0RUFBYSxNQUFqQixJQUFJLENBQWUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksb0NBQW1CLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxJQUFBLHlCQUFRLEVBQUMs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QUFDLENBQUM7UUFDNUMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2SUQsc0RBdUlDO29SQXRHa0IsUUFBdUIsRUFBRSxRQUF1QjtJQUMvRCxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELHVEQUF1RDtTQUNsRCxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUM7SUFRQyxNQUFNLE1BQU0sR0FBRyx1QkFBQSxJQUFJLHNDQUFTLENBQUMsT0FBTyxDQUFDLHVCQUFBLElBQUksa0NBQUssQ0FBQyxDQUFDO0lBQ2hELElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU87SUFDVCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlc3Npb25EYXRhLCBTZXNzaW9uTWFuYWdlciwgU2Vzc2lvbk1ldGFkYXRhIH0gZnJvbSBcIkBjdWJpc3QtbGFicy9jdWJlc2lnbmVyLXNka1wiO1xuaW1wb3J0IHtcbiAgRXZlbnRFbWl0dGVyLFxuICBOb1Nlc3Npb25Gb3VuZEVycm9yLFxuICBpc1N0YWxlLFxuICBpc1JlZnJlc2hhYmxlLFxuICBtZXRhZGF0YSxcbiAgcmVmcmVzaCxcbiAgRXJyUmVzcG9uc2UsXG59IGZyb20gXCJAY3ViaXN0LWxhYnMvY3ViZXNpZ25lci1zZGtcIjtcbmltcG9ydCB7IHJlYWRUZXN0QW5kU2V0IH0gZnJvbSBcIi4vbG9ja3NcIjtcblxudHlwZSBCcm93c2VyU3RvcmFnZUV2ZW50cyA9IHtcbiAgbG9nb3V0KCk6IHZvaWQ7XG4gIGxvZ2luKCk6IHZvaWQ7XG59O1xuXG4vKipcbiAqIEEgbWFuYWdlciB0aGF0IHBlcnNpc3RzIGludG8gYnJvd3NlciBzdG9yYWdlIGFuZCB1c2VzIHdlYmxvY2tzIHRvIHNhZmVseSBwZXJmb3JtIHJlZnJlc2hlc1xuICovXG5leHBvcnQgY2xhc3MgQnJvd3NlclN0b3JhZ2VNYW5hZ2VyXG4gIGV4dGVuZHMgRXZlbnRFbWl0dGVyPEJyb3dzZXJTdG9yYWdlRXZlbnRzPlxuICBpbXBsZW1lbnRzIFNlc3Npb25NYW5hZ2VyXG57XG4gIC8qKiBUaGUgc3RvcmFnZSBrZXkgZm9yIHRoZSBzZXNzaW9uIGRhdGEgKi9cbiAgI2tleTogc3RyaW5nO1xuICAjc3RvcmFnZTogU3RvcmFnZTtcbiAgI2xvY2s6IHN0cmluZztcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUgc3RvcmFnZSBrZXkgdG8gdXNlXG4gICAqIEBwYXJhbSBzdG9yYWdlIFRoZSBzdG9yYWdlIG9iamVjdCB0byB1c2UgKGRlZmF1bHRzIHRvIGxvY2FsU3RvcmFnZSlcbiAgICovXG4gIGNvbnN0cnVjdG9yKGtleTogc3RyaW5nLCBzdG9yYWdlOiBTdG9yYWdlID0gZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuI2tleSA9IGtleTtcbiAgICB0aGlzLiNzdG9yYWdlID0gc3RvcmFnZTtcbiAgICB0aGlzLiNsb2NrID0gYENTX1NES19TVE9SQUdFX0xPQ0tfJHtrZXl9YDtcbiAgICAvLyBTZXQgdXAgbGlzdGVuZXJzIHRvIGVtaXQgZXZlbnRzIHdoZW4gdXNlcnMgbG9nIGluIG9yIGxvZyBvdXRcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInN0b3JhZ2VcIiwgKGV2KSA9PiB7XG4gICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgZXZlbnRzIG9uIG91ciBzdG9yYWdlIG9iamVjdCwgdXNpbmcgb3VyIGtleVxuICAgICAgaWYgKGV2LnN0b3JhZ2VBcmVhICE9PSBzdG9yYWdlIHx8IGV2LmtleSAhPT0ga2V5KSByZXR1cm47XG4gICAgICB0aGlzLiNlbWl0SWZOZWNlc3NhcnkoZXYub2xkVmFsdWUsIGV2Lm5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBsb2dpbmAgb3IgYGxvZ291dGAgZXZlbnQgaWYgbmVjZXNzYXJ5XG4gICAqXG4gICAqIEBwYXJhbSBvbGRWYWx1ZSBUaGUgcHJldmlvdXNseSBzdG9yZWQgdmFsdWVcbiAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXdseSBzdG9yZWQgdmFsdWVcbiAgICovXG4gICNlbWl0SWZOZWNlc3Nhcnkob2xkVmFsdWU6IG51bGwgfCBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKG5ld1ZhbHVlID09PSBudWxsICYmIG9sZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmVtaXQoXCJsb2dvdXRcIik7XG4gICAgfVxuXG4gICAgLy8gVGhlcmUgaXMgbm93IGEgc2Vzc2lvbiB3aGVuIHRoZXJlIGRpZG4ndCB1c2VkIHRvIGJlLlxuICAgIGVsc2UgaWYgKG9sZFZhbHVlID09PSBudWxsICYmIG5ld1ZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmVtaXQoXCJsb2dpblwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYSBzZXNzaW9uIGZyb20gdGhlIGNvbmZpZ3VyZWQgc3RvcmFnZSBhdCB0aGUgY29uZmlndXJlZCBrZXlcbiAgICpcbiAgICogQHJldHVybnMgVGhlIHN0b3JlZCBkYXRhIG9yIHVuZGVmaW5lZCBpZiBub3QgcHJlc2VudFxuICAgKi9cbiAgI2xvYWRTZXNzaW9uKCk6IFNlc3Npb25EYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdG9yZWQgPSB0aGlzLiNzdG9yYWdlLmdldEl0ZW0odGhpcy4ja2V5KTtcbiAgICBpZiAoc3RvcmVkID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RvcmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgbWV0YWRhdGEgZm9yIGEgc2Vzc2lvbiBmcm9tIHN0b3JhZ2VcbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNlc3Npb24gbWV0YWRhdGFcbiAgICovXG4gIGFzeW5jIG1ldGFkYXRhKCk6IFByb21pc2U8U2Vzc2lvbk1ldGFkYXRhPiB7XG4gICAgY29uc3Qgc2VzcyA9IHRoaXMuI2xvYWRTZXNzaW9uKCk7XG4gICAgaWYgKCFzZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgTm9TZXNzaW9uRm91bmRFcnJvcigpO1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGEoc2Vzcyk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuIGZyb20gc3RvcmFnZVxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYWNjZXNzIHRva2VuXG4gICAqL1xuICBhc3luYyB0b2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNlc3MgPSBhd2FpdCByZWFkVGVzdEFuZFNldDxTZXNzaW9uRGF0YSB8IHVuZGVmaW5lZD4odGhpcy4jbG9jaywge1xuICAgICAgcmVhZDogKCkgPT4gdGhpcy4jbG9hZFNlc3Npb24oKSxcbiAgICAgIHRlc3Q6ICh2KSA9PiB2ICE9PSB1bmRlZmluZWQgJiYgaXNTdGFsZSh2KSxcbiAgICAgIHNldDogYXN5bmMgKG9sZFNlc3Npb246IFNlc3Npb25EYXRhKSA9PiB7XG4gICAgICAgIGlmIChpc1JlZnJlc2hhYmxlKG9sZFNlc3Npb24pKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1Nlc3Npb24gPSBhd2FpdCByZWZyZXNoKG9sZFNlc3Npb24pO1xuICAgICAgICAgICAgdGhpcy4jc3RvcmFnZS5zZXRJdGVtKHRoaXMuI2tleSwgSlNPTi5zdHJpbmdpZnkobmV3U2Vzc2lvbikpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJTdWNjZXNzZnVsbHkgcmVmcmVzaGVkXCIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyUmVzcG9uc2UgJiYgZS5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgICB0aGlzLiNzdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy4ja2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHNlc3Npb24gaXMgbm90IHJlZnJlc2hhYmxlLCB3ZSBzaG91bGQgcmVtb3ZlIGl0XG4gICAgICAgICAgdGhpcy4jc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuI2tleSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOb3RpZnkgdGhhdCB0aGUgc2Vzc2lvbiBoYXMgY2hhbmdlZFxuICAgICAgICB0aGlzLiNlbWl0SWZOZWNlc3NhcnkoXCJcIiwgdGhpcy4jc3RvcmFnZS5nZXRJdGVtKHRoaXMuI2tleSkpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAoIXNlc3MpIHtcbiAgICAgIHRocm93IG5ldyBOb1Nlc3Npb25Gb3VuZEVycm9yKCk7XG4gICAgfVxuICAgIHJldHVybiBzZXNzLnRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpcmVjdGx5IHNldCB0aGUgc2Vzc2lvbiAodXBkYXRpbmcgYWxsIGNvbnN1bWVycyBvZiB0aGUgc2Vzc2lvbiBzdG9yYWdlKVxuICAgKlxuICAgKiBAcGFyYW0gc2Vzc2lvbiBUaGUgbmV3IHNlc3Npb25cbiAgICovXG4gIGFzeW5jIHNldFNlc3Npb24oc2Vzc2lvbj86IFNlc3Npb25EYXRhKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KFxuICAgICAgdGhpcy4jbG9jayxcbiAgICAgIHtcbiAgICAgICAgbW9kZTogXCJleGNsdXNpdmVcIixcbiAgICAgIH0sXG4gICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy4jc3RvcmFnZS5nZXRJdGVtKHRoaXMuI2tleSk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gc2Vzc2lvbiA/IEpTT04uc3RyaW5naWZ5KHNlc3Npb24pIDogbnVsbDtcblxuICAgICAgICAvLyBVbmxpa2UgZHVyaW5nIHJlZnJlc2gsIHdlIGRvbid0IHByZWVtcHQgdGhlIHJlYWQgbG9ja3NcbiAgICAgICAgLy8gYmVjYXVzZSB0aGlzIG9wZXJhdGlvbiBpcyBzeW5jaHJvbm91c1xuICAgICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLiNzdG9yYWdlLnNldEl0ZW0odGhpcy4ja2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuI2tleSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yYWdlIGV2ZW50cyBkb24ndCBmaXJlIGlmIHRoZSBzdG9yZSBvY2N1cnJlZCBvbiB0aGUgc2FtZSBwYWdlLFxuICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIG1hbnVhbGx5IGludm9rZSBvdXIgZW1pdCBsb2dpY1xuICAgICAgICB0aGlzLiNlbWl0SWZOZWNlc3Nhcnkob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
package/dist/locks.d.ts CHANGED
@@ -18,9 +18,9 @@ export type ReadTestAndSet<T> = {
18
18
  * 2. Only 1 set() call is active at a time
19
19
  * 3. read() never occurs while set() is running
20
20
  *
21
- * @param {string} lock The name of the lock to use
22
- * @param {ReadTestAndSet} spec The set of read, test, and set functions to use
23
- * @return {Promise<T>} The current value
21
+ * @param lock The name of the lock to use
22
+ * @param spec The set of read, test, and set functions to use
23
+ * @returns The current value
24
24
  */
25
- export declare function readTestAndSet<T>(lock: string, { read, test, set }: ReadTestAndSet<T>): Promise<T>;
25
+ export declare function readTestAndSet<T>(lock: string, spec: ReadTestAndSet<T>): Promise<T>;
26
26
  //# sourceMappingURL=locks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../src/locks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,2BAA2B;IAC3B,IAAI,IAAI,CAAC,CAAC;IACV,+CAA+C;IAC/C,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IACpB,wBAAwB;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,CAAC,CAAC,CAaZ"}
1
+ {"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../src/locks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,2BAA2B;IAC3B,IAAI,IAAI,CAAC,CAAC;IACV,+CAA+C;IAC/C,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IACpB,wBAAwB;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAczF"}
package/dist/locks.js CHANGED
@@ -9,11 +9,12 @@ exports.readTestAndSet = readTestAndSet;
9
9
  * 2. Only 1 set() call is active at a time
10
10
  * 3. read() never occurs while set() is running
11
11
  *
12
- * @param {string} lock The name of the lock to use
13
- * @param {ReadTestAndSet} spec The set of read, test, and set functions to use
14
- * @return {Promise<T>} The current value
12
+ * @param lock The name of the lock to use
13
+ * @param spec The set of read, test, and set functions to use
14
+ * @returns The current value
15
15
  */
16
- async function readTestAndSet(lock, { read, test, set }) {
16
+ async function readTestAndSet(lock, spec) {
17
+ const { read, test, set } = spec;
17
18
  const value = await navigator.locks.request(lock, { mode: "shared" }, async () => read());
18
19
  if (test(value)) {
19
20
  return navigator.locks.request(lock, { mode: "exclusive" }, async () => {
@@ -27,4 +28,4 @@ async function readTestAndSet(lock, { read, test, set }) {
27
28
  }
28
29
  return value;
29
30
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5QkEsd0NBZ0JDO0FBNUJEOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBWSxFQUNaLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQXFCO0lBRXRDLE1BQU0sS0FBSyxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDaEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VkIGFzIGFuIGFyZ3VtZW50IHRvIHtAbGluayByZWFkVGVzdEFuZFNldH0uXG4gKiBEZWZpbmVzIHRoZSBiZWhhdmlvciB0byBwZXJmb3JtIGR1cmluZyB0aGUgbG9ja2luZyBzdHJhdGVneVxuICovXG5leHBvcnQgdHlwZSBSZWFkVGVzdEFuZFNldDxUPiA9IHtcbiAgLyoqIEhvdyB0byByZWFkIHRoZSBkYXRhICovXG4gIHJlYWQoKTogVDtcbiAgLyoqIElmIHRydWUsIHBlcmZvcm0gc2V0LCBpZiBmYWxzZSwgcmV0dXJuIHYgKi9cbiAgdGVzdCh2OiBUKTogYm9vbGVhbjtcbiAgLyoqIFBlcnNpc3QgdGhlIHZhbHVlICovXG4gIHNldChwcmV2OiBUKTogUHJvbWlzZTx2b2lkPjtcbn07XG5cbi8qKlxuICogQSBsb2NraW5nIHByaW1pdGl2ZSBmb3IgY29udGVudGlvdXMgcmVhZHMgYW5kIHdyaXRlcy5cbiAqXG4gKiBHdWFyYW50ZWVzOlxuICogIDEuIFNldCBpcyBvbmx5IGNhbGxlZCB3aGVuIHRlc3QocmVhZCgpKSByZXR1cm5zIHRydWVcbiAqICAyLiBPbmx5IDEgc2V0KCkgY2FsbCBpcyBhY3RpdmUgYXQgYSB0aW1lXG4gKiAgMy4gcmVhZCgpIG5ldmVyIG9jY3VycyB3aGlsZSBzZXQoKSBpcyBydW5uaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2sgVGhlIG5hbWUgb2YgdGhlIGxvY2sgdG8gdXNlXG4gKiBAcGFyYW0ge1JlYWRUZXN0QW5kU2V0fSBzcGVjIFRoZSBzZXQgb2YgcmVhZCwgdGVzdCwgYW5kIHNldCBmdW5jdGlvbnMgdG8gdXNlXG4gKiBAcmV0dXJuIHtQcm9taXNlPFQ+fSBUaGUgY3VycmVudCB2YWx1ZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFRlc3RBbmRTZXQ8VD4oXG4gIGxvY2s6IHN0cmluZyxcbiAgeyByZWFkLCB0ZXN0LCBzZXQgfTogUmVhZFRlc3RBbmRTZXQ8VD4sXG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChsb2NrLCB7IG1vZGU6IFwic2hhcmVkXCIgfSwgYXN5bmMgKCkgPT4gcmVhZCgpKTtcbiAgaWYgKHRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGxvY2ssIHsgbW9kZTogXCJleGNsdXNpdmVcIiB9LCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcmV2ID0gcmVhZCgpO1xuICAgICAgaWYgKHRlc3QocHJldikpIHtcbiAgICAgICAgYXdhaXQgc2V0KHByZXYpO1xuICAgICAgICByZXR1cm4gcmVhZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5QkEsd0NBY0M7QUExQkQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFJLElBQVksRUFBRSxJQUF1QjtJQUMzRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDakMsTUFBTSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckUsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDZixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZWQgYXMgYW4gYXJndW1lbnQgdG8ge0BsaW5rIHJlYWRUZXN0QW5kU2V0fS5cbiAqIERlZmluZXMgdGhlIGJlaGF2aW9yIHRvIHBlcmZvcm0gZHVyaW5nIHRoZSBsb2NraW5nIHN0cmF0ZWd5XG4gKi9cbmV4cG9ydCB0eXBlIFJlYWRUZXN0QW5kU2V0PFQ+ID0ge1xuICAvKiogSG93IHRvIHJlYWQgdGhlIGRhdGEgKi9cbiAgcmVhZCgpOiBUO1xuICAvKiogSWYgdHJ1ZSwgcGVyZm9ybSBzZXQsIGlmIGZhbHNlLCByZXR1cm4gdiAqL1xuICB0ZXN0KHY6IFQpOiBib29sZWFuO1xuICAvKiogUGVyc2lzdCB0aGUgdmFsdWUgKi9cbiAgc2V0KHByZXY6IFQpOiBQcm9taXNlPHZvaWQ+O1xufTtcblxuLyoqXG4gKiBBIGxvY2tpbmcgcHJpbWl0aXZlIGZvciBjb250ZW50aW91cyByZWFkcyBhbmQgd3JpdGVzLlxuICpcbiAqIEd1YXJhbnRlZXM6XG4gKiAgMS4gU2V0IGlzIG9ubHkgY2FsbGVkIHdoZW4gdGVzdChyZWFkKCkpIHJldHVybnMgdHJ1ZVxuICogIDIuIE9ubHkgMSBzZXQoKSBjYWxsIGlzIGFjdGl2ZSBhdCBhIHRpbWVcbiAqICAzLiByZWFkKCkgbmV2ZXIgb2NjdXJzIHdoaWxlIHNldCgpIGlzIHJ1bm5pbmdcbiAqXG4gKiBAcGFyYW0gbG9jayBUaGUgbmFtZSBvZiB0aGUgbG9jayB0byB1c2VcbiAqIEBwYXJhbSBzcGVjIFRoZSBzZXQgb2YgcmVhZCwgdGVzdCwgYW5kIHNldCBmdW5jdGlvbnMgdG8gdXNlXG4gKiBAcmV0dXJucyBUaGUgY3VycmVudCB2YWx1ZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFRlc3RBbmRTZXQ8VD4obG9jazogc3RyaW5nLCBzcGVjOiBSZWFkVGVzdEFuZFNldDxUPik6IFByb21pc2U8VD4ge1xuICBjb25zdCB7IHJlYWQsIHRlc3QsIHNldCB9ID0gc3BlYztcbiAgY29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChsb2NrLCB7IG1vZGU6IFwic2hhcmVkXCIgfSwgYXN5bmMgKCkgPT4gcmVhZCgpKTtcbiAgaWYgKHRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGxvY2ssIHsgbW9kZTogXCJleGNsdXNpdmVcIiB9LCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcmV2ID0gcmVhZCgpO1xuICAgICAgaWYgKHRlc3QocHJldikpIHtcbiAgICAgICAgYXdhaXQgc2V0KHByZXYpO1xuICAgICAgICByZXR1cm4gcmVhZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubist-labs/cubesigner-sdk-browser-storage",
3
- "version": "0.4.89-0",
3
+ "version": "0.4.97-0",
4
4
  "description": "Browser-based storage for CubeSigner SDK sessions",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "author": "Cubist, Inc.",
@@ -22,14 +22,14 @@
22
22
  "test:server": "http-server ./test/site -c-1"
23
23
  },
24
24
  "peerDependencies": {
25
- "@cubist-labs/cubesigner-sdk": "^0.4.89-0"
25
+ "@cubist-labs/cubesigner-sdk": "^0.4.97-0"
26
26
  },
27
27
  "directories": {
28
28
  "test": "test"
29
29
  },
30
30
  "devDependencies": {
31
- "@cubist-labs/cubesigner-sdk": "^0.4.89-0",
32
- "@cubist-labs/cubesigner-sdk-fs-storage": "^0.4.89-0",
31
+ "@cubist-labs/cubesigner-sdk": "^0.4.97-0",
32
+ "@cubist-labs/cubesigner-sdk-fs-storage": "^0.4.97-0",
33
33
  "@playwright/test": "^1.44.1",
34
34
  "esbuild": "^0.23.0",
35
35
  "http-server": "^14.1.1"
package/src/index.ts CHANGED
@@ -29,26 +29,27 @@ export class BrowserStorageManager
29
29
 
30
30
  /**
31
31
  *
32
- * @param {string} key The storage key to use
33
- * @param {Storage} [storage] The storage object to use (defaults to localStorage)
32
+ * @param key The storage key to use
33
+ * @param storage The storage object to use (defaults to localStorage)
34
34
  */
35
35
  constructor(key: string, storage: Storage = globalThis.localStorage) {
36
36
  super();
37
37
  this.#key = key;
38
38
  this.#storage = storage;
39
- (this.#lock = `CS_SDK_STORAGE_LOCK_${key}`),
40
- // Set up listeners to emit events when users log in or log out
41
- window.addEventListener("storage", (ev) => {
42
- // We only care about events on our storage object, using our key
43
- if (ev.storageArea !== storage || ev.key !== key) return;
44
- this.#emitIfNecessary(ev.oldValue, ev.newValue);
45
- });
39
+ this.#lock = `CS_SDK_STORAGE_LOCK_${key}`;
40
+ // Set up listeners to emit events when users log in or log out
41
+ window.addEventListener("storage", (ev) => {
42
+ // We only care about events on our storage object, using our key
43
+ if (ev.storageArea !== storage || ev.key !== key) return;
44
+ this.#emitIfNecessary(ev.oldValue, ev.newValue);
45
+ });
46
46
  }
47
47
 
48
48
  /**
49
49
  * Emits a `login` or `logout` event if necessary
50
- * @param {null | string} oldValue The previously stored value
51
- * @param {null | string} newValue The newly stored value
50
+ *
51
+ * @param oldValue The previously stored value
52
+ * @param newValue The newly stored value
52
53
  */
53
54
  #emitIfNecessary(oldValue: null | string, newValue: string | null) {
54
55
  if (newValue === null && oldValue !== null) {
@@ -63,7 +64,8 @@ export class BrowserStorageManager
63
64
 
64
65
  /**
65
66
  * Loads a session from the configured storage at the configured key
66
- * @return {SessionData | undefined} The stored data or undefined if not present
67
+ *
68
+ * @returns The stored data or undefined if not present
67
69
  */
68
70
  #loadSession(): SessionData | undefined {
69
71
  const stored = this.#storage.getItem(this.#key);
@@ -76,7 +78,8 @@ export class BrowserStorageManager
76
78
 
77
79
  /**
78
80
  * Loads the metadata for a session from storage
79
- * @return {SessionMetadata} The session metadata
81
+ *
82
+ * @returns The session metadata
80
83
  */
81
84
  async metadata(): Promise<SessionMetadata> {
82
85
  const sess = this.#loadSession();
@@ -88,7 +91,8 @@ export class BrowserStorageManager
88
91
 
89
92
  /**
90
93
  * Loads the current access token from storage
91
- * @return {string} The access token
94
+ *
95
+ * @returns The access token
92
96
  */
93
97
  async token(): Promise<string> {
94
98
  const sess = await readTestAndSet<SessionData | undefined>(this.#lock, {
@@ -122,7 +126,8 @@ export class BrowserStorageManager
122
126
 
123
127
  /**
124
128
  * Directly set the session (updating all consumers of the session storage)
125
- * @param {SessionData} [session] The new session
129
+ *
130
+ * @param session The new session
126
131
  */
127
132
  async setSession(session?: SessionData) {
128
133
  return await navigator.locks.request(
package/src/locks.ts CHANGED
@@ -19,14 +19,12 @@ export type ReadTestAndSet<T> = {
19
19
  * 2. Only 1 set() call is active at a time
20
20
  * 3. read() never occurs while set() is running
21
21
  *
22
- * @param {string} lock The name of the lock to use
23
- * @param {ReadTestAndSet} spec The set of read, test, and set functions to use
24
- * @return {Promise<T>} The current value
22
+ * @param lock The name of the lock to use
23
+ * @param spec The set of read, test, and set functions to use
24
+ * @returns The current value
25
25
  */
26
- export async function readTestAndSet<T>(
27
- lock: string,
28
- { read, test, set }: ReadTestAndSet<T>,
29
- ): Promise<T> {
26
+ export async function readTestAndSet<T>(lock: string, spec: ReadTestAndSet<T>): Promise<T> {
27
+ const { read, test, set } = spec;
30
28
  const value = await navigator.locks.request(lock, { mode: "shared" }, async () => read());
31
29
  if (test(value)) {
32
30
  return navigator.locks.request(lock, { mode: "exclusive" }, async () => {