@fairfox/polly 0.7.1 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/background/index.d.ts +1 -1
- package/dist/src/background/index.js +10 -3
- package/dist/src/background/index.js.map +9 -9
- package/dist/src/background/message-router.js +10 -3
- package/dist/src/background/message-router.js.map +8 -8
- package/dist/src/index.d.ts +9 -9
- package/dist/src/index.js +74 -67
- package/dist/src/index.js.map +12 -12
- package/dist/src/shared/adapters/chrome/context-menus.chrome.d.ts +1 -1
- package/dist/src/shared/adapters/chrome/tabs.chrome.d.ts +2 -2
- package/dist/src/shared/adapters/context-menus.adapter.d.ts +1 -1
- package/dist/src/shared/adapters/index.d.ts +4 -4
- package/dist/src/shared/adapters/index.js +9 -2
- package/dist/src/shared/adapters/index.js.map +6 -6
- package/dist/src/shared/adapters/tabs.adapter.d.ts +2 -2
- package/dist/src/shared/lib/context-helpers.js +10 -3
- package/dist/src/shared/lib/context-helpers.js.map +8 -8
- package/dist/src/shared/lib/message-bus.js +10 -3
- package/dist/src/shared/lib/message-bus.js.map +7 -7
- package/dist/src/shared/lib/state.js +10 -3
- package/dist/src/shared/lib/state.js.map +8 -8
- package/dist/src/shared/state/app-state.js +10 -3
- package/dist/src/shared/state/app-state.js.map +8 -8
- package/dist/tools/init/src/cli.js +17 -2
- package/dist/tools/init/src/cli.js.map +4 -4
- package/dist/tools/init/templates/pwa/package.json.template +3 -3
- package/dist/tools/teach/src/cli.js +2712 -2442
- package/dist/tools/teach/src/cli.js.map +11 -11
- package/dist/tools/teach/src/index.js +1379 -1379
- package/dist/tools/teach/src/index.js.map +10 -10
- package/dist/tools/test/src/adapters/index.d.ts +8 -8
- package/dist/tools/test/src/adapters/index.js +3 -2
- package/dist/tools/test/src/adapters/index.js.map +6 -6
- package/dist/tools/test/src/index.d.ts +3 -3
- package/dist/tools/test/src/index.js +3 -2
- package/dist/tools/test/src/index.js.map +6 -6
- package/dist/tools/verify/src/cli.js +190 -68
- package/dist/tools/verify/src/cli.js.map +8 -8
- package/dist/tools/visualize/src/cli.js +18 -3
- package/dist/tools/visualize/src/cli.js.map +4 -4
- package/package.json +27 -16
package/dist/src/index.js
CHANGED
|
@@ -200,6 +200,9 @@ class ChromePortAdapter {
|
|
|
200
200
|
// src/shared/adapters/chrome/storage.chrome.ts
|
|
201
201
|
class ChromeStorageAdapter {
|
|
202
202
|
async get(keys) {
|
|
203
|
+
if (keys === null) {
|
|
204
|
+
return await chrome.storage.local.get();
|
|
205
|
+
}
|
|
203
206
|
return await chrome.storage.local.get(keys);
|
|
204
207
|
}
|
|
205
208
|
async set(items) {
|
|
@@ -237,7 +240,11 @@ class ChromeTabsAdapter {
|
|
|
237
240
|
return chrome.tabs.sendMessage(tabId, message);
|
|
238
241
|
}
|
|
239
242
|
async reload(tabId, reloadProperties) {
|
|
240
|
-
|
|
243
|
+
if (reloadProperties) {
|
|
244
|
+
await chrome.tabs.reload(tabId, reloadProperties);
|
|
245
|
+
} else {
|
|
246
|
+
await chrome.tabs.reload(tabId);
|
|
247
|
+
}
|
|
241
248
|
}
|
|
242
249
|
onRemoved(callback) {
|
|
243
250
|
chrome.tabs.onRemoved.addListener(callback);
|
|
@@ -626,7 +633,7 @@ function createBackgroundHelpers(adapters) {
|
|
|
626
633
|
return adapters.tabs.query({});
|
|
627
634
|
},
|
|
628
635
|
getExtensionViews(type) {
|
|
629
|
-
return chrome.extension.getViews(type ? { type } : undefined);
|
|
636
|
+
return chrome.extension.getViews(type && (type === "popup" || type === "tab") ? { type } : undefined);
|
|
630
637
|
},
|
|
631
638
|
openOptionsPage() {
|
|
632
639
|
adapters.runtime.openOptionsPage();
|
|
@@ -1074,6 +1081,61 @@ function getMessageBus(context, adapters, options) {
|
|
|
1074
1081
|
return new MessageBus(context, adapters, options);
|
|
1075
1082
|
}
|
|
1076
1083
|
|
|
1084
|
+
// src/shared/lib/context-helpers.ts
|
|
1085
|
+
function createContext(context, config = {}) {
|
|
1086
|
+
const {
|
|
1087
|
+
onInit,
|
|
1088
|
+
onError,
|
|
1089
|
+
waitForDOM = true,
|
|
1090
|
+
logPrefix = `[${context.charAt(0).toUpperCase() + context.slice(1)}]`
|
|
1091
|
+
} = config;
|
|
1092
|
+
const bus = getMessageBus(context);
|
|
1093
|
+
if (onError) {
|
|
1094
|
+
bus.onError(onError);
|
|
1095
|
+
}
|
|
1096
|
+
const initialize = async () => {
|
|
1097
|
+
try {
|
|
1098
|
+
if (onInit) {
|
|
1099
|
+
await onInit(bus);
|
|
1100
|
+
}
|
|
1101
|
+
} catch (error) {
|
|
1102
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
1103
|
+
console.error(`${logPrefix} Initialization failed:`, err);
|
|
1104
|
+
if (onError) {
|
|
1105
|
+
onError(err, bus);
|
|
1106
|
+
} else {
|
|
1107
|
+
throw err;
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
};
|
|
1111
|
+
const contextsWithDOM = ["popup", "options", "devtools", "sidepanel", "content"];
|
|
1112
|
+
if (typeof window !== "undefined" && contextsWithDOM.includes(context) && waitForDOM) {
|
|
1113
|
+
if (document.readyState === "loading") {
|
|
1114
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
1115
|
+
initialize().catch((err) => {
|
|
1116
|
+
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1117
|
+
});
|
|
1118
|
+
});
|
|
1119
|
+
} else {
|
|
1120
|
+
initialize().catch((err) => {
|
|
1121
|
+
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1122
|
+
});
|
|
1123
|
+
}
|
|
1124
|
+
} else {
|
|
1125
|
+
initialize().catch((err) => {
|
|
1126
|
+
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1127
|
+
});
|
|
1128
|
+
}
|
|
1129
|
+
return bus;
|
|
1130
|
+
}
|
|
1131
|
+
function runInContext(context, contexts, fn) {
|
|
1132
|
+
const targetContexts = Array.isArray(contexts) ? contexts : [contexts];
|
|
1133
|
+
if (targetContexts.includes(context)) {
|
|
1134
|
+
const bus = getMessageBus(context);
|
|
1135
|
+
Promise.resolve(fn(bus)).catch(() => {});
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1077
1139
|
// src/shared/lib/state.ts
|
|
1078
1140
|
import { effect, signal } from "@preact/signals";
|
|
1079
1141
|
var stateRegistry = new Map;
|
|
@@ -1304,70 +1366,6 @@ function clearStateRegistry() {
|
|
|
1304
1366
|
stateRegistry.clear();
|
|
1305
1367
|
}
|
|
1306
1368
|
|
|
1307
|
-
// src/shared/state/app-state.ts
|
|
1308
|
-
import { signal as signal2 } from "@preact/signals";
|
|
1309
|
-
var settings = $sharedState("app-settings", defaultSettings);
|
|
1310
|
-
var currentTab = $syncedState("current-tab", null);
|
|
1311
|
-
var uiState = signal2({
|
|
1312
|
-
sidebarOpen: false,
|
|
1313
|
-
selectedPanel: "main"
|
|
1314
|
-
});
|
|
1315
|
-
|
|
1316
|
-
// src/shared/lib/context-helpers.ts
|
|
1317
|
-
function createContext(context, config = {}) {
|
|
1318
|
-
const {
|
|
1319
|
-
onInit,
|
|
1320
|
-
onError,
|
|
1321
|
-
waitForDOM = true,
|
|
1322
|
-
logPrefix = `[${context.charAt(0).toUpperCase() + context.slice(1)}]`
|
|
1323
|
-
} = config;
|
|
1324
|
-
const bus = getMessageBus(context);
|
|
1325
|
-
if (onError) {
|
|
1326
|
-
bus.onError(onError);
|
|
1327
|
-
}
|
|
1328
|
-
const initialize = async () => {
|
|
1329
|
-
try {
|
|
1330
|
-
if (onInit) {
|
|
1331
|
-
await onInit(bus);
|
|
1332
|
-
}
|
|
1333
|
-
} catch (error) {
|
|
1334
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
1335
|
-
console.error(`${logPrefix} Initialization failed:`, err);
|
|
1336
|
-
if (onError) {
|
|
1337
|
-
onError(err, bus);
|
|
1338
|
-
} else {
|
|
1339
|
-
throw err;
|
|
1340
|
-
}
|
|
1341
|
-
}
|
|
1342
|
-
};
|
|
1343
|
-
const contextsWithDOM = ["popup", "options", "devtools", "sidepanel", "content"];
|
|
1344
|
-
if (typeof window !== "undefined" && contextsWithDOM.includes(context) && waitForDOM) {
|
|
1345
|
-
if (document.readyState === "loading") {
|
|
1346
|
-
document.addEventListener("DOMContentLoaded", () => {
|
|
1347
|
-
initialize().catch((err) => {
|
|
1348
|
-
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1349
|
-
});
|
|
1350
|
-
});
|
|
1351
|
-
} else {
|
|
1352
|
-
initialize().catch((err) => {
|
|
1353
|
-
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1354
|
-
});
|
|
1355
|
-
}
|
|
1356
|
-
} else {
|
|
1357
|
-
initialize().catch((err) => {
|
|
1358
|
-
console.error(`${logPrefix} Uncaught initialization error:`, err);
|
|
1359
|
-
});
|
|
1360
|
-
}
|
|
1361
|
-
return bus;
|
|
1362
|
-
}
|
|
1363
|
-
function runInContext(context, contexts, fn) {
|
|
1364
|
-
const targetContexts = Array.isArray(contexts) ? contexts : [contexts];
|
|
1365
|
-
if (targetContexts.includes(context)) {
|
|
1366
|
-
const bus = getMessageBus(context);
|
|
1367
|
-
Promise.resolve(fn(bus)).catch(() => {});
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
1369
|
// src/shared/lib/test-helpers.ts
|
|
1372
1370
|
class TestRunner {
|
|
1373
1371
|
suite;
|
|
@@ -1497,6 +1495,15 @@ async function quickTest(name, fn) {
|
|
|
1497
1495
|
console.error(`❌ ${name}: ${error instanceof Error ? error.message : String(error)} (${duration}ms)`);
|
|
1498
1496
|
}
|
|
1499
1497
|
}
|
|
1498
|
+
|
|
1499
|
+
// src/shared/state/app-state.ts
|
|
1500
|
+
import { signal as signal2 } from "@preact/signals";
|
|
1501
|
+
var settings = $sharedState("app-settings", defaultSettings);
|
|
1502
|
+
var currentTab = $syncedState("current-tab", null);
|
|
1503
|
+
var uiState = signal2({
|
|
1504
|
+
sidebarOpen: false,
|
|
1505
|
+
selectedPanel: "main"
|
|
1506
|
+
});
|
|
1500
1507
|
export {
|
|
1501
1508
|
settings,
|
|
1502
1509
|
runInContext,
|
|
@@ -1518,4 +1525,4 @@ export {
|
|
|
1518
1525
|
$persistedState
|
|
1519
1526
|
};
|
|
1520
1527
|
|
|
1521
|
-
//# debugId=
|
|
1528
|
+
//# debugId=099A20C25FF495A164756E2164756E21
|