@pezkuwi/extension-base 0.62.10 → 0.62.13

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.
Files changed (97) hide show
  1. package/LICENSE +201 -0
  2. package/background/RequestBytesSign.js +6 -9
  3. package/background/RequestExtrinsicSign.js +6 -9
  4. package/background/handlers/Extension.js +304 -460
  5. package/background/handlers/State.js +365 -619
  6. package/background/handlers/Tabs.js +155 -273
  7. package/background/handlers/helpers.js +1 -3
  8. package/background/handlers/index.js +17 -22
  9. package/background/handlers/subscriptions.js +5 -9
  10. package/background/index.js +0 -2
  11. package/background/types.js +0 -2
  12. package/bundle.js +0 -2
  13. package/cjs/background/RequestBytesSign.d.ts +12 -0
  14. package/cjs/background/RequestBytesSign.js +15 -0
  15. package/cjs/background/RequestExtrinsicSign.d.ts +12 -0
  16. package/cjs/background/RequestExtrinsicSign.js +14 -0
  17. package/cjs/background/handlers/Extension.d.ts +49 -0
  18. package/cjs/background/handlers/Extension.js +492 -0
  19. package/cjs/background/handlers/State.d.ts +96 -0
  20. package/cjs/background/handlers/State.js +482 -0
  21. package/cjs/background/handlers/Tabs.d.ts +25 -0
  22. package/cjs/background/handlers/Tabs.js +199 -0
  23. package/cjs/background/handlers/helpers.d.ts +1 -0
  24. package/cjs/background/handlers/helpers.js +14 -0
  25. package/cjs/background/handlers/index.d.ts +3 -0
  26. package/cjs/background/handlers/index.js +46 -0
  27. package/cjs/background/handlers/subscriptions.d.ts +3 -0
  28. package/cjs/background/handlers/subscriptions.js +22 -0
  29. package/cjs/background/index.d.ts +1 -0
  30. package/cjs/background/index.js +7 -0
  31. package/cjs/background/types.d.ts +343 -0
  32. package/cjs/background/types.js +2 -0
  33. package/cjs/bundle.d.ts +1 -0
  34. package/cjs/bundle.js +5 -0
  35. package/cjs/defaults.d.ts +9 -0
  36. package/cjs/defaults.js +16 -0
  37. package/cjs/index.d.ts +1 -0
  38. package/cjs/index.js +4 -0
  39. package/cjs/package.json +3 -0
  40. package/cjs/packageDetect.d.ts +1 -0
  41. package/cjs/packageDetect.js +8 -0
  42. package/cjs/packageInfo.d.ts +6 -0
  43. package/cjs/packageInfo.js +4 -0
  44. package/cjs/page/Accounts.d.ts +7 -0
  45. package/cjs/page/Accounts.js +24 -0
  46. package/cjs/page/Injected.d.ts +13 -0
  47. package/cjs/page/Injected.js +25 -0
  48. package/cjs/page/Metadata.d.ts +7 -0
  49. package/cjs/page/Metadata.js +15 -0
  50. package/cjs/page/PostMessageProvider.d.ts +63 -0
  51. package/cjs/page/PostMessageProvider.js +135 -0
  52. package/cjs/page/Signer.d.ts +8 -0
  53. package/cjs/page/Signer.js +29 -0
  54. package/cjs/page/index.d.ts +16 -0
  55. package/cjs/page/index.js +52 -0
  56. package/cjs/page/types.d.ts +6 -0
  57. package/cjs/page/types.js +2 -0
  58. package/cjs/stores/Accounts.d.ts +6 -0
  59. package/cjs/stores/Accounts.js +21 -0
  60. package/cjs/stores/Base.d.ts +9 -0
  61. package/cjs/stores/Base.js +70 -0
  62. package/cjs/stores/Metadata.d.ts +5 -0
  63. package/cjs/stores/Metadata.js +13 -0
  64. package/cjs/stores/index.d.ts +2 -0
  65. package/cjs/stores/index.js +8 -0
  66. package/cjs/types.d.ts +9 -0
  67. package/cjs/types.js +2 -0
  68. package/cjs/utils/canDerive.d.ts +2 -0
  69. package/cjs/utils/canDerive.js +6 -0
  70. package/cjs/utils/getId.d.ts +1 -0
  71. package/cjs/utils/getId.js +8 -0
  72. package/cjs/utils/index.d.ts +1 -0
  73. package/cjs/utils/index.js +5 -0
  74. package/cjs/utils/portUtils.d.ts +13 -0
  75. package/cjs/utils/portUtils.js +49 -0
  76. package/defaults.js +10 -14
  77. package/index.js +0 -4
  78. package/package.json +464 -10
  79. package/packageDetect.js +0 -4
  80. package/packageInfo.js +1 -4
  81. package/page/Accounts.js +13 -18
  82. package/page/Injected.js +10 -10
  83. package/page/Metadata.js +8 -13
  84. package/page/PostMessageProvider.js +90 -192
  85. package/page/Signer.js +24 -90
  86. package/page/index.js +15 -72
  87. package/page/types.js +0 -2
  88. package/stores/Accounts.js +14 -80
  89. package/stores/Base.js +57 -240
  90. package/stores/Metadata.js +6 -26
  91. package/stores/index.js +0 -2
  92. package/types.js +0 -2
  93. package/utils/canDerive.js +0 -2
  94. package/utils/getId.js +2 -4
  95. package/utils/index.js +0 -2
  96. package/utils/portUtils.d.ts +0 -1
  97. package/utils/portUtils.js +31 -94
@@ -1,83 +1,17 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
- var __extends = (this && this.__extends) || (function () {
4
- var extendStatics = function (d, b) {
5
- extendStatics = Object.setPrototypeOf ||
6
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
8
- return extendStatics(d, b);
9
- };
10
- return function (d, b) {
11
- if (typeof b !== "function" && b !== null)
12
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13
- extendStatics(d, b);
14
- function __() { this.constructor = d; }
15
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16
- };
17
- })();
18
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
19
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
- return new (P || (P = Promise))(function (resolve, reject) {
21
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
- step((generator = generator.apply(thisArg, _arguments || [])).next());
25
- });
26
- };
27
- var __generator = (this && this.__generator) || function (thisArg, body) {
28
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
29
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
30
- function verb(n) { return function (v) { return step([n, v]); }; }
31
- function step(op) {
32
- if (f) throw new TypeError("Generator is already executing.");
33
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
34
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
35
- if (y = 0, t) op = [op[0] & 2, t.value];
36
- switch (op[0]) {
37
- case 0: case 1: t = op; break;
38
- case 4: _.label++; return { value: op[1], done: false };
39
- case 5: _.label++; y = op[1]; op = [0]; continue;
40
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
41
- default:
42
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
43
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
44
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
45
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
46
- if (t[2]) _.ops.pop();
47
- _.trys.pop(); continue;
48
- }
49
- op = body.call(thisArg, _);
50
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
51
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
52
- }
53
- };
54
1
  import { EXTENSION_PREFIX } from '../defaults.js';
55
2
  import BaseStore from './Base.js';
56
- var AccountsStore = /** @class */ (function (_super) {
57
- __extends(AccountsStore, _super);
58
- function AccountsStore() {
59
- return _super.call(this, EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
60
- ? "".concat(EXTENSION_PREFIX, "accounts")
61
- : null) || this;
3
+ export default class AccountsStore extends BaseStore {
4
+ constructor() {
5
+ super(EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
6
+ ? `${EXTENSION_PREFIX}accounts`
7
+ : null);
8
+ }
9
+ async set(key, value, update) {
10
+ // shortcut, don't save testing accounts in extension storage
11
+ if (key.startsWith('account:') && value.meta && value.meta.isTesting) {
12
+ update && update();
13
+ return;
14
+ }
15
+ await super.set(key, value, update);
62
16
  }
63
- AccountsStore.prototype.set = function (key, value, update) {
64
- return __awaiter(this, void 0, void 0, function () {
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0:
68
- // shortcut, don't save testing accounts in extension storage
69
- if (key.startsWith('account:') && value.meta && value.meta.isTesting) {
70
- update && update();
71
- return [2 /*return*/];
72
- }
73
- return [4 /*yield*/, _super.prototype.set.call(this, key, value, update)];
74
- case 1:
75
- _a.sent();
76
- return [2 /*return*/];
77
- }
78
- });
79
- });
80
- };
81
- return AccountsStore;
82
- }(BaseStore));
83
- export default AccountsStore;
17
+ }
package/stores/Base.js CHANGED
@@ -1,250 +1,67 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- var __generator = (this && this.__generator) || function (thisArg, body) {
13
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
14
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
- function verb(n) { return function (v) { return step([n, v]); }; }
16
- function step(op) {
17
- if (f) throw new TypeError("Generator is already executing.");
18
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
- if (y = 0, t) op = [op[0] & 2, t.value];
21
- switch (op[0]) {
22
- case 0: case 1: t = op; break;
23
- case 4: _.label++; return { value: op[1], done: false };
24
- case 5: _.label++; y = op[1]; op = [0]; continue;
25
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
- default:
27
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
- if (t[2]) _.ops.pop();
32
- _.trys.pop(); continue;
33
- }
34
- op = body.call(thisArg, _);
35
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
- }
38
- };
39
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
40
- if (kind === "m") throw new TypeError("Private method is not writable");
41
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
42
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
43
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
44
- };
45
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
46
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
47
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
48
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
49
- };
50
- var _BaseStore_prefix;
51
- var lastError = function (type) {
52
- var error = chrome.runtime.lastError;
1
+ const lastError = (type) => {
2
+ const error = chrome.runtime.lastError;
53
3
  if (error) {
54
- console.error("BaseStore.".concat(type, ":: runtime.lastError:"), error);
4
+ console.error(`BaseStore.${type}:: runtime.lastError:`, error);
55
5
  }
56
6
  };
57
- var BaseStore = /** @class */ (function () {
58
- function BaseStore(prefix) {
59
- _BaseStore_prefix.set(this, void 0);
60
- __classPrivateFieldSet(this, _BaseStore_prefix, prefix ? "".concat(prefix, ":") : '', "f");
7
+ export default class BaseStore {
8
+ #prefix;
9
+ constructor(prefix) {
10
+ this.#prefix = prefix ? `${prefix}:` : '';
61
11
  }
62
- BaseStore.prototype.all = function (update) {
63
- return __awaiter(this, void 0, void 0, function () {
64
- var _this = this;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0: return [4 /*yield*/, this.allMap(function (map) { return __awaiter(_this, void 0, void 0, function () {
68
- var entries, _i, entries_1, _a, key, value;
69
- return __generator(this, function (_b) {
70
- switch (_b.label) {
71
- case 0:
72
- entries = Object.entries(map);
73
- _i = 0, entries_1 = entries;
74
- _b.label = 1;
75
- case 1:
76
- if (!(_i < entries_1.length)) return [3 /*break*/, 4];
77
- _a = entries_1[_i], key = _a[0], value = _a[1];
78
- // eslint-disable-next-line @typescript-eslint/await-thenable
79
- return [4 /*yield*/, update(key, value)];
80
- case 2:
81
- // eslint-disable-next-line @typescript-eslint/await-thenable
82
- _b.sent();
83
- _b.label = 3;
84
- case 3:
85
- _i++;
86
- return [3 /*break*/, 1];
87
- case 4: return [2 /*return*/];
88
- }
89
- });
90
- }); })];
91
- case 1:
92
- _a.sent();
93
- return [2 /*return*/];
94
- }
95
- });
12
+ async all(update) {
13
+ await this.allMap(async (map) => {
14
+ const entries = Object.entries(map);
15
+ for (const [key, value] of entries) {
16
+ // eslint-disable-next-line @typescript-eslint/await-thenable
17
+ await update(key, value);
18
+ }
96
19
  });
97
- };
98
- BaseStore.prototype.allMap = function (update) {
99
- return __awaiter(this, void 0, void 0, function () {
100
- var _this = this;
101
- return __generator(this, function (_a) {
102
- switch (_a.label) {
103
- case 0: return [4 /*yield*/, chrome.storage.local.get(null).then(function (result) { return __awaiter(_this, void 0, void 0, function () {
104
- var entries, map, i, count, _a, key, value;
105
- return __generator(this, function (_b) {
106
- switch (_b.label) {
107
- case 0:
108
- lastError('all');
109
- entries = Object.entries(result);
110
- map = {};
111
- for (i = 0, count = entries.length; i < count; i++) {
112
- _a = entries[i], key = _a[0], value = _a[1];
113
- if (key.startsWith(__classPrivateFieldGet(this, _BaseStore_prefix, "f"))) {
114
- map[key.replace(__classPrivateFieldGet(this, _BaseStore_prefix, "f"), '')] = value;
115
- }
116
- }
117
- return [4 /*yield*/, update(map)];
118
- case 1:
119
- _b.sent();
120
- return [2 /*return*/];
121
- }
122
- });
123
- }); }).catch(function (_a) {
124
- var message = _a.message;
125
- console.error("BaseStore error within allMap: ".concat(message));
126
- })];
127
- case 1:
128
- _a.sent();
129
- return [2 /*return*/];
20
+ }
21
+ async allMap(update) {
22
+ await chrome.storage.local.get(null).then(async (result) => {
23
+ lastError('all');
24
+ const entries = Object.entries(result);
25
+ const map = {};
26
+ for (let i = 0, count = entries.length; i < count; i++) {
27
+ const [key, value] = entries[i];
28
+ if (key.startsWith(this.#prefix)) {
29
+ map[key.replace(this.#prefix, '')] = value;
130
30
  }
131
- });
31
+ }
32
+ await update(map);
33
+ }).catch(({ message }) => {
34
+ console.error(`BaseStore error within allMap: ${message}`);
132
35
  });
133
- };
134
- BaseStore.prototype.get = function (key, update) {
135
- return __awaiter(this, void 0, void 0, function () {
136
- var prefixedKey;
137
- var _this = this;
138
- return __generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0:
141
- prefixedKey = "".concat(__classPrivateFieldGet(this, _BaseStore_prefix, "f")).concat(key);
142
- return [4 /*yield*/, chrome.storage.local.get([prefixedKey]).then(function (result) { return __awaiter(_this, void 0, void 0, function () {
143
- return __generator(this, function (_a) {
144
- switch (_a.label) {
145
- case 0:
146
- lastError('get');
147
- // eslint-disable-next-line @typescript-eslint/await-thenable
148
- return [4 /*yield*/, update(result[prefixedKey])];
149
- case 1:
150
- // eslint-disable-next-line @typescript-eslint/await-thenable
151
- _a.sent();
152
- return [2 /*return*/];
153
- }
154
- });
155
- }); }).catch(function (_a) {
156
- var message = _a.message;
157
- console.error("BaseStore error within get: ".concat(message));
158
- })];
159
- case 1:
160
- _a.sent();
161
- return [2 /*return*/];
162
- }
163
- });
36
+ }
37
+ async get(key, update) {
38
+ const prefixedKey = `${this.#prefix}${key}`;
39
+ await chrome.storage.local.get([prefixedKey]).then(async (result) => {
40
+ lastError('get');
41
+ // eslint-disable-next-line @typescript-eslint/await-thenable
42
+ await update(result[prefixedKey]);
43
+ }).catch(({ message }) => {
44
+ console.error(`BaseStore error within get: ${message}`);
164
45
  });
165
- };
166
- BaseStore.prototype.remove = function (key, update) {
167
- return __awaiter(this, void 0, void 0, function () {
168
- var prefixedKey;
169
- var _this = this;
170
- return __generator(this, function (_a) {
171
- switch (_a.label) {
172
- case 0:
173
- prefixedKey = "".concat(__classPrivateFieldGet(this, _BaseStore_prefix, "f")).concat(key);
174
- return [4 /*yield*/, chrome.storage.local.remove(prefixedKey).then(function () { return __awaiter(_this, void 0, void 0, function () {
175
- var _a;
176
- return __generator(this, function (_b) {
177
- switch (_b.label) {
178
- case 0:
179
- lastError('remove');
180
- // eslint-disable-next-line @typescript-eslint/await-thenable
181
- _a = update;
182
- if (!_a)
183
- // eslint-disable-next-line @typescript-eslint/await-thenable
184
- return [3 /*break*/, 2];
185
- return [4 /*yield*/, update()];
186
- case 1:
187
- _a = (_b.sent());
188
- _b.label = 2;
189
- case 2:
190
- // eslint-disable-next-line @typescript-eslint/await-thenable
191
- _a;
192
- return [2 /*return*/];
193
- }
194
- });
195
- }); }).catch(function (_a) {
196
- var message = _a.message;
197
- console.error("BaseStore error within remove: ".concat(message));
198
- })];
199
- case 1:
200
- _a.sent();
201
- return [2 /*return*/];
202
- }
203
- });
46
+ }
47
+ async remove(key, update) {
48
+ const prefixedKey = `${this.#prefix}${key}`;
49
+ await chrome.storage.local.remove(prefixedKey).then(async () => {
50
+ lastError('remove');
51
+ // eslint-disable-next-line @typescript-eslint/await-thenable
52
+ update && await update();
53
+ }).catch(({ message }) => {
54
+ console.error(`BaseStore error within remove: ${message}`);
204
55
  });
205
- };
206
- BaseStore.prototype.set = function (key, value, update) {
207
- return __awaiter(this, void 0, void 0, function () {
208
- var prefixedKey;
209
- var _a;
210
- var _this = this;
211
- return __generator(this, function (_b) {
212
- switch (_b.label) {
213
- case 0:
214
- prefixedKey = "".concat(__classPrivateFieldGet(this, _BaseStore_prefix, "f")).concat(key);
215
- return [4 /*yield*/, chrome.storage.local.set((_a = {}, _a[prefixedKey] = value, _a)).then(function () { return __awaiter(_this, void 0, void 0, function () {
216
- var _a;
217
- return __generator(this, function (_b) {
218
- switch (_b.label) {
219
- case 0:
220
- lastError('set');
221
- // eslint-disable-next-line @typescript-eslint/await-thenable
222
- _a = update;
223
- if (!_a)
224
- // eslint-disable-next-line @typescript-eslint/await-thenable
225
- return [3 /*break*/, 2];
226
- return [4 /*yield*/, update()];
227
- case 1:
228
- _a = (_b.sent());
229
- _b.label = 2;
230
- case 2:
231
- // eslint-disable-next-line @typescript-eslint/await-thenable
232
- _a;
233
- return [2 /*return*/];
234
- }
235
- });
236
- }); }).catch(function (_a) {
237
- var message = _a.message;
238
- console.error("BaseStore error within set: ".concat(message));
239
- })];
240
- case 1:
241
- _b.sent();
242
- return [2 /*return*/];
243
- }
244
- });
56
+ }
57
+ async set(key, value, update) {
58
+ const prefixedKey = `${this.#prefix}${key}`;
59
+ await chrome.storage.local.set({ [prefixedKey]: value }).then(async () => {
60
+ lastError('set');
61
+ // eslint-disable-next-line @typescript-eslint/await-thenable
62
+ update && await update();
63
+ }).catch(({ message }) => {
64
+ console.error(`BaseStore error within set: ${message}`);
245
65
  });
246
- };
247
- return BaseStore;
248
- }());
249
- _BaseStore_prefix = new WeakMap();
250
- export default BaseStore;
66
+ }
67
+ }
@@ -1,29 +1,9 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
- var __extends = (this && this.__extends) || (function () {
4
- var extendStatics = function (d, b) {
5
- extendStatics = Object.setPrototypeOf ||
6
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
8
- return extendStatics(d, b);
9
- };
10
- return function (d, b) {
11
- if (typeof b !== "function" && b !== null)
12
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13
- extendStatics(d, b);
14
- function __() { this.constructor = d; }
15
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16
- };
17
- })();
18
1
  import { EXTENSION_PREFIX } from '../defaults.js';
19
2
  import BaseStore from './Base.js';
20
- var MetadataStore = /** @class */ (function (_super) {
21
- __extends(MetadataStore, _super);
22
- function MetadataStore() {
23
- return _super.call(this, EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
24
- ? "".concat(EXTENSION_PREFIX, "metadata")
25
- : 'metadata') || this;
3
+ export default class MetadataStore extends BaseStore {
4
+ constructor() {
5
+ super(EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
6
+ ? `${EXTENSION_PREFIX}metadata`
7
+ : 'metadata');
26
8
  }
27
- return MetadataStore;
28
- }(BaseStore));
29
- export default MetadataStore;
9
+ }
package/stores/index.js CHANGED
@@ -1,4 +1,2 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
1
  export { default as AccountsStore } from './Accounts.js';
4
2
  export { default as MetadataStore } from './Metadata.js';
package/types.js CHANGED
@@ -1,3 +1 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
1
  export {};
@@ -1,5 +1,3 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
1
  export function canDerive(type) {
4
2
  return !!type && ['ed25519', 'sr25519', 'ecdsa', 'ethereum'].includes(type);
5
3
  }
package/utils/getId.js CHANGED
@@ -1,7 +1,5 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
1
  import { EXTENSION_PREFIX } from '../defaults.js';
4
- var counter = 0;
2
+ let counter = 0;
5
3
  export function getId() {
6
- return "".concat(EXTENSION_PREFIX, ".").concat(Date.now(), ".").concat(++counter);
4
+ return `${EXTENSION_PREFIX}.${Date.now()}.${++counter}`;
7
5
  }
package/utils/index.js CHANGED
@@ -1,3 +1 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
1
  export { canDerive } from './canDerive.js';
@@ -1,5 +1,4 @@
1
1
  import type { Message } from '@pezkuwi/extension-base/types';
2
- import { chrome } from '@pezkuwi/extension-inject/chrome';
3
2
  export declare function setupPort(portName: string, onMessageHandler: (data: Message['data']) => void, onDisconnectHandler: () => void): chrome.runtime.Port;
4
3
  export declare function wakeUpServiceWorker(): Promise<{
5
4
  status: string;
@@ -1,106 +1,43 @@
1
- // Copyright 2019-2025 @pezkuwi/extension-base authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- var __generator = (this && this.__generator) || function (thisArg, body) {
13
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
14
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
- function verb(n) { return function (v) { return step([n, v]); }; }
16
- function step(op) {
17
- if (f) throw new TypeError("Generator is already executing.");
18
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
- if (y = 0, t) op = [op[0] & 2, t.value];
21
- switch (op[0]) {
22
- case 0: case 1: t = op; break;
23
- case 4: _.label++; return { value: op[1], done: false };
24
- case 5: _.label++; y = op[1]; op = [0]; continue;
25
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
- default:
27
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
- if (t[2]) _.ops.pop();
32
- _.trys.pop(); continue;
33
- }
34
- op = body.call(thisArg, _);
35
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
- }
38
- };
39
1
  import { chrome } from '@pezkuwi/extension-inject/chrome';
40
2
  export function setupPort(portName, onMessageHandler, onDisconnectHandler) {
41
- var port = chrome.runtime.connect({ name: portName });
3
+ const port = chrome.runtime.connect({ name: portName });
42
4
  port.onMessage.addListener(onMessageHandler);
43
- port.onDisconnect.addListener(function () {
44
- console.log("Disconnected from ".concat(portName));
5
+ port.onDisconnect.addListener(() => {
6
+ console.log(`Disconnected from ${portName}`);
45
7
  onDisconnectHandler();
46
8
  });
47
9
  return port;
48
10
  }
49
- export function wakeUpServiceWorker() {
50
- return __awaiter(this, void 0, void 0, function () {
51
- return __generator(this, function (_a) {
52
- return [2 /*return*/, new Promise(function (resolve, reject) {
53
- chrome.runtime.sendMessage({ type: 'wakeup' }, function (response) {
54
- if (chrome.runtime.lastError) {
55
- reject(new Error(chrome.runtime.lastError.message));
56
- }
57
- else {
58
- resolve(response);
59
- }
60
- });
61
- })];
11
+ export async function wakeUpServiceWorker() {
12
+ return new Promise((resolve, reject) => {
13
+ chrome.runtime.sendMessage({ type: 'wakeup' }, (response) => {
14
+ if (chrome.runtime.lastError) {
15
+ reject(new Error(chrome.runtime.lastError.message));
16
+ }
17
+ else {
18
+ resolve(response);
19
+ }
62
20
  });
63
21
  });
64
22
  }
65
- // This object is required to allow jest.spyOn to be used to create a mock Implementation for testing
66
- export var wakeUpServiceWorkerWrapper = { wakeUpServiceWorker: wakeUpServiceWorker };
67
- export function ensurePortConnection(portRef, portConfig) {
68
- return __awaiter(this, void 0, void 0, function () {
69
- var maxAttempts, delayMs, attempt, response, error_1;
70
- return __generator(this, function (_a) {
71
- switch (_a.label) {
72
- case 0:
73
- maxAttempts = 5;
74
- delayMs = 1000;
75
- attempt = 0;
76
- _a.label = 1;
77
- case 1:
78
- if (!(attempt < maxAttempts)) return [3 /*break*/, 7];
79
- _a.label = 2;
80
- case 2:
81
- _a.trys.push([2, 4, , 6]);
82
- return [4 /*yield*/, wakeUpServiceWorkerWrapper.wakeUpServiceWorker()];
83
- case 3:
84
- response = _a.sent();
85
- if ((response === null || response === void 0 ? void 0 : response.status) === 'awake') {
86
- if (!portRef) {
87
- return [2 /*return*/, setupPort(portConfig.portName, portConfig.onPortMessageHandler, portConfig.onPortDisconnectHandler)];
88
- }
89
- return [2 /*return*/, portRef];
90
- }
91
- return [3 /*break*/, 6];
92
- case 4:
93
- error_1 = _a.sent();
94
- console.error("Attempt ".concat(attempt + 1, " failed: ").concat(error_1.message));
95
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delayMs); })];
96
- case 5:
97
- _a.sent();
98
- return [3 /*break*/, 6];
99
- case 6:
100
- attempt++;
101
- return [3 /*break*/, 1];
102
- case 7: throw new Error('Failed to wake up the service worker and setup the port after multiple attempts');
23
+ export const wakeUpServiceWorkerWrapper = { wakeUpServiceWorker };
24
+ export async function ensurePortConnection(portRef, portConfig) {
25
+ const maxAttempts = 5;
26
+ const delayMs = 1000;
27
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
28
+ try {
29
+ const response = await wakeUpServiceWorkerWrapper.wakeUpServiceWorker();
30
+ if (response?.status === 'awake') {
31
+ if (!portRef) {
32
+ return setupPort(portConfig.portName, portConfig.onPortMessageHandler, portConfig.onPortDisconnectHandler);
33
+ }
34
+ return portRef;
103
35
  }
104
- });
105
- });
36
+ }
37
+ catch (error) {
38
+ console.error(`Attempt ${attempt + 1} failed: ${error.message}`);
39
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
40
+ }
41
+ }
42
+ throw new Error('Failed to wake up the service worker and setup the port after multiple attempts');
106
43
  }