@vacantthinker/firefox-addon-framework-easy 2026.612.1531 → 2026.613.1110
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/BaseORM.d.ts +2 -2
- package/dist/BaseORM.d.ts.map +1 -1
- package/dist/BaseORM.js +6 -6
- package/dist/browserNotification.d.ts.map +1 -1
- package/dist/browserTab.d.ts +9 -25
- package/dist/browserTab.d.ts.map +1 -1
- package/dist/browserTab.js +19 -91
- package/dist/opStorage.d.ts.map +1 -1
- package/dist/opTab.d.ts +8 -12
- package/dist/opTab.d.ts.map +1 -1
- package/dist/opTab.js +21 -23
- package/dist/serviceFetch.d.ts.map +1 -1
- package/dist/serviceOpContent.d.ts.map +1 -1
- package/dist/serviceOpContent.js +4 -2
- package/dist/serviceOpJavascript.d.ts.map +1 -1
- package/dist/serviceOpJavascript.js +4 -2
- package/dist/serviceUpdateTabStyle.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/BaseORM.d.ts
CHANGED
|
@@ -13,8 +13,6 @@ export declare abstract class BaseORM<T extends Record<string, any>> {
|
|
|
13
13
|
protected constructor(prefix: string, id: string, defaultValue?: T);
|
|
14
14
|
get id(): string;
|
|
15
15
|
get storageKey(): string;
|
|
16
|
-
private exists;
|
|
17
|
-
private initDefaultObject;
|
|
18
16
|
/**
|
|
19
17
|
* Retrieve the value associated with the bound key.
|
|
20
18
|
* @returns {Promise<T>}
|
|
@@ -37,5 +35,7 @@ export declare abstract class BaseORM<T extends Record<string, any>> {
|
|
|
37
35
|
* @param {T[K]} value The new value to map to that key.
|
|
38
36
|
*/
|
|
39
37
|
updateValueKeyValue<K extends keyof T>(key: K, value: T[K]): Promise<void>;
|
|
38
|
+
private exists;
|
|
39
|
+
private initDefaultObject;
|
|
40
40
|
}
|
|
41
41
|
//# sourceMappingURL=BaseORM.d.ts.map
|
package/dist/BaseORM.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseORM.d.ts","sourceRoot":"","sources":["../src/BaseORM.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseORM.d.ts","sourceRoot":"","sources":["../src/BaseORM.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,8BAAsB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;IAKzD;;;;OAIG;IACH,SAAS,aACP,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,YAAY,GAAE,CAAW;IAe3B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAOvB;;;;OAIG;IACG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;IAM1B;;;;OAIG;IACG,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,EACzC,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,IAAI,CAAC;YAMF,MAAM;YAIN,iBAAiB;CAMhC"}
|
package/dist/BaseORM.js
CHANGED
|
@@ -31,12 +31,6 @@ export class BaseORM {
|
|
|
31
31
|
get storageKey() {
|
|
32
32
|
return this.#fullStorageKey;
|
|
33
33
|
}
|
|
34
|
-
async exists() {
|
|
35
|
-
return await stoOpCheck(this.#fullStorageKey);
|
|
36
|
-
}
|
|
37
|
-
async initDefaultObject() {
|
|
38
|
-
await stoOpSet(this.#fullStorageKey, this.#defaultValue);
|
|
39
|
-
}
|
|
40
34
|
/**
|
|
41
35
|
* Retrieve the value associated with the bound key.
|
|
42
36
|
* @returns {Promise<T>}
|
|
@@ -74,4 +68,10 @@ export class BaseORM {
|
|
|
74
68
|
data[key] = value;
|
|
75
69
|
await this.set(data);
|
|
76
70
|
}
|
|
71
|
+
async exists() {
|
|
72
|
+
return await stoOpCheck(this.#fullStorageKey);
|
|
73
|
+
}
|
|
74
|
+
async initDefaultObject() {
|
|
75
|
+
await stoOpSet(this.#fullStorageKey, this.#defaultValue);
|
|
76
|
+
}
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserNotification.d.ts","sourceRoot":"","sources":["../src/browserNotification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browserNotification.d.ts","sourceRoot":"","sources":["../src/browserNotification.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAqC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
package/dist/browserTab.d.ts
CHANGED
|
@@ -1,34 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interface representing the structure of a message sent to a tab.
|
|
3
|
-
* Includes optional properties for tab creation and specific message data.
|
|
4
|
-
*/
|
|
5
|
-
export interface TabMessage {
|
|
6
|
-
targetTabId?: number;
|
|
7
|
-
previousTabId?: number;
|
|
8
|
-
url?: string;
|
|
9
|
-
focusNewTab?: boolean;
|
|
10
|
-
[key: string]: any;
|
|
11
|
-
}
|
|
12
1
|
/**
|
|
13
2
|
* Sends a message to a specific tab.
|
|
14
3
|
*/
|
|
15
4
|
export declare function browserTabSendMessage(tabId: number, message: any): Promise<void>;
|
|
5
|
+
export declare function browserTabExecuteScriptDocumentStart(tabId: number, code: string): Promise<any[]>;
|
|
6
|
+
export declare function browserTabExecuteScript(tabId: number, code: string, runAt?: browser.extensionTypes.RunAt): Promise<any[]>;
|
|
7
|
+
export declare function browserTabSetZoom(tabId: number, zoomFactor: number): Promise<void>;
|
|
8
|
+
export declare function browserTabGetZoom(tabId: number): Promise<number>;
|
|
9
|
+
export declare function browserTabInsertCSSDocumentStart(tabId: number, code: string): Promise<void>;
|
|
16
10
|
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export declare function browserTabWaitReloadThenSendMessageToContentJs(message: TabMessage): void;
|
|
20
|
-
/**
|
|
21
|
-
* Creates a tab for download, waits for load, and then removes it.
|
|
22
|
-
*/
|
|
23
|
-
export declare function browserTabCreateToDownload(message: TabMessage): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Safely handles incoming messages to create tabs and send messages to content scripts.
|
|
11
|
+
* Injects CSS code into a page.
|
|
26
12
|
*/
|
|
27
|
-
export declare function
|
|
13
|
+
export declare function browserTabInsertCSS(tabId: number, code: string, runAt: browser.extensionTypes.RunAt): Promise<void>;
|
|
28
14
|
/**
|
|
29
|
-
*
|
|
15
|
+
* Removes CSS code that was previously injected into a page.
|
|
30
16
|
*/
|
|
31
|
-
export declare function
|
|
32
|
-
tabId: number;
|
|
33
|
-
}): void;
|
|
17
|
+
export declare function browserTabRemoveCSS(tabId: number, code: string): Promise<void>;
|
|
34
18
|
//# sourceMappingURL=browserTab.d.ts.map
|
package/dist/browserTab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserTab.d.ts","sourceRoot":"","sources":["../src/browserTab.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browserTab.d.ts","sourceRoot":"","sources":["../src/browserTab.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,kBAOb;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,OAAO,CAAC,cAAc,CAAC,KAAsB,kBAMrD;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,iBAMnB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,mBAGd;AAGD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,GAClC,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
package/dist/browserTab.js
CHANGED
|
@@ -1,105 +1,33 @@
|
|
|
1
|
-
import { tabOpCreate, tabOpCreateNear, tabOpRemove } from './opTab';
|
|
2
1
|
/**
|
|
3
2
|
* Sends a message to a specific tab.
|
|
4
3
|
*/
|
|
5
4
|
export async function browserTabSendMessage(tabId, message) {
|
|
6
5
|
await browser.tabs.sendMessage(tabId, message);
|
|
7
6
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
export function browserTabWaitReloadThenSendMessageToContentJs(message) {
|
|
12
|
-
const { targetTabId, ...rest } = message;
|
|
13
|
-
if (targetTabId === undefined)
|
|
14
|
-
return;
|
|
15
|
-
const listener = async (tabId, changeInfo) => {
|
|
16
|
-
if (tabId === targetTabId && changeInfo.status === 'complete') {
|
|
17
|
-
browser.tabs.onUpdated.removeListener(listener);
|
|
18
|
-
await browserTabSendMessage(tabId, rest);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
browser.tabs.onUpdated.addListener(listener, {
|
|
22
|
-
tabId: targetTabId,
|
|
23
|
-
properties: ['status'],
|
|
24
|
-
});
|
|
7
|
+
export async function browserTabExecuteScriptDocumentStart(tabId, code) {
|
|
8
|
+
return await browserTabExecuteScript(tabId, code, "document_start");
|
|
25
9
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export async function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
const { tabId } = await tabOpCreate(properties);
|
|
39
|
-
const listener = async (updatedTabId, changeInfo) => {
|
|
40
|
-
if (updatedTabId === tabId && changeInfo.status === 'complete') {
|
|
41
|
-
browser.tabs.onUpdated.removeListener(listener);
|
|
42
|
-
await tabOpRemove(tabId);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
browser.tabs.onUpdated.addListener(listener, {
|
|
46
|
-
tabId,
|
|
47
|
-
properties: ['status'],
|
|
48
|
-
});
|
|
10
|
+
export async function browserTabExecuteScript(tabId, code, runAt = "document_end") {
|
|
11
|
+
return await browser.tabs.executeScript(tabId, { code, runAt });
|
|
12
|
+
}
|
|
13
|
+
export async function browserTabSetZoom(tabId, zoomFactor) {
|
|
14
|
+
return await browser.tabs.setZoom(tabId, zoomFactor);
|
|
15
|
+
}
|
|
16
|
+
export async function browserTabGetZoom(tabId) {
|
|
17
|
+
return await browser.tabs.getZoom(tabId);
|
|
18
|
+
}
|
|
19
|
+
export async function browserTabInsertCSSDocumentStart(tabId, code) {
|
|
20
|
+
await browserTabInsertCSS(tabId, code, "document_start");
|
|
49
21
|
}
|
|
50
22
|
/**
|
|
51
|
-
*
|
|
23
|
+
* Injects CSS code into a page.
|
|
52
24
|
*/
|
|
53
|
-
export async function
|
|
54
|
-
|
|
55
|
-
return;
|
|
56
|
-
const { previousTabId, ...rest } = message;
|
|
57
|
-
const properties = {
|
|
58
|
-
url: message.url,
|
|
59
|
-
active: message.focusNewTab ?? false,
|
|
60
|
-
};
|
|
61
|
-
const { tabId: createdTabId } = message.previousTabId
|
|
62
|
-
? await tabOpCreateNear({ properties, previousTabId })
|
|
63
|
-
: await tabOpCreate(properties);
|
|
64
|
-
if (!createdTabId)
|
|
65
|
-
return;
|
|
66
|
-
const onUpdatedListener = async (tabId, changeInfo) => {
|
|
67
|
-
if (tabId === createdTabId && changeInfo.status === 'complete') {
|
|
68
|
-
cleanup();
|
|
69
|
-
await browserTabSendMessage(tabId, {
|
|
70
|
-
...rest,
|
|
71
|
-
tabId: tabId,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
// Listener to cleanup if tab is closed before loading completes
|
|
76
|
-
const onRemovedListener = (tabId) => {
|
|
77
|
-
if (tabId === createdTabId) {
|
|
78
|
-
cleanup();
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
const cleanup = () => {
|
|
82
|
-
browser.tabs.onUpdated.removeListener(onUpdatedListener);
|
|
83
|
-
browser.tabs.onRemoved.removeListener(onRemovedListener);
|
|
84
|
-
};
|
|
85
|
-
browser.tabs.onUpdated.addListener(onUpdatedListener, {
|
|
86
|
-
tabId: createdTabId,
|
|
87
|
-
properties: ['status'],
|
|
88
|
-
});
|
|
89
|
-
browser.tabs.onRemoved.addListener(onRemovedListener);
|
|
25
|
+
export async function browserTabInsertCSS(tabId, code, runAt) {
|
|
26
|
+
await browser.tabs.insertCSS(tabId, { code, runAt });
|
|
90
27
|
}
|
|
91
28
|
/**
|
|
92
|
-
*
|
|
29
|
+
* Removes CSS code that was previously injected into a page.
|
|
93
30
|
*/
|
|
94
|
-
export function
|
|
95
|
-
|
|
96
|
-
if (updatedTabId === tabId && changeInfo.status === 'complete') {
|
|
97
|
-
browser.tabs.onUpdated.removeListener(listener);
|
|
98
|
-
await tabOpRemove(tabId);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
browser.tabs.onUpdated.addListener(listener, {
|
|
102
|
-
tabId,
|
|
103
|
-
properties: ['status'],
|
|
104
|
-
});
|
|
31
|
+
export async function browserTabRemoveCSS(tabId, code) {
|
|
32
|
+
await browser.tabs.removeCSS(tabId, { code });
|
|
105
33
|
}
|
package/dist/opStorage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opStorage.d.ts","sourceRoot":"","sources":["../src/opStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAGtE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAGvE;AAED,wBAAsB,UAAU,kBAE/B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAI3E;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,
|
|
1
|
+
{"version":3,"file":"opStorage.d.ts","sourceRoot":"","sources":["../src/opStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAGtE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAGvE;AAED,wBAAsB,UAAU,kBAE/B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAI3E;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7D"}
|
package/dist/opTab.d.ts
CHANGED
|
@@ -12,6 +12,14 @@ export declare function tabOpEnhance(tab: browser.tabs.Tab): EnhancedTab | null;
|
|
|
12
12
|
* Creates a standard tab.
|
|
13
13
|
*/
|
|
14
14
|
export declare function tabOpCreate(properties: browser.tabs._CreateCreateProperties): Promise<EnhancedTab>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a tab in the background (inactive and muted).
|
|
17
|
+
*/
|
|
18
|
+
export declare function tabOpCreateActiveFalse(properties: browser.tabs._CreateCreateProperties): Promise<EnhancedTab>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a tab in the background (inactive and muted).
|
|
21
|
+
*/
|
|
22
|
+
export declare function tabOpCreateActiveTrue(properties: browser.tabs._CreateCreateProperties): Promise<EnhancedTab>;
|
|
15
23
|
interface TabOpCreateNearOptions {
|
|
16
24
|
properties: browser.tabs._CreateCreateProperties;
|
|
17
25
|
previousTabId: number | undefined;
|
|
@@ -20,10 +28,6 @@ interface TabOpCreateNearOptions {
|
|
|
20
28
|
* Creates a new tab positioned immediately after a specified existing tab.
|
|
21
29
|
*/
|
|
22
30
|
export declare function tabOpCreateNear(options: TabOpCreateNearOptions): Promise<EnhancedTab>;
|
|
23
|
-
/**
|
|
24
|
-
* Creates a tab in the background (inactive and muted).
|
|
25
|
-
*/
|
|
26
|
-
export declare function tabOpCreateActiveFalse(properties: browser.tabs._CreateCreateProperties): Promise<EnhancedTab>;
|
|
27
31
|
/**
|
|
28
32
|
* Creates a new window and returns its primary tab.
|
|
29
33
|
*/
|
|
@@ -79,13 +83,5 @@ export declare function tabOpUpdateActiveFalse(tabId: number): Promise<EnhancedT
|
|
|
79
83
|
* Focuses the window containing the tab, then highlights and activates the tab.
|
|
80
84
|
*/
|
|
81
85
|
export declare function tabOpFocus(tabId: number): Promise<EnhancedTab>;
|
|
82
|
-
/**
|
|
83
|
-
* Injects CSS code into a page.
|
|
84
|
-
*/
|
|
85
|
-
export declare function tabOpInsertCssCode(tabId: number, code: string): Promise<void>;
|
|
86
|
-
/**
|
|
87
|
-
* Removes CSS code that was previously injected into a page.
|
|
88
|
-
*/
|
|
89
|
-
export declare function tabOpRemoveCssCode(tabId: number, code: string): Promise<void>;
|
|
90
86
|
export {};
|
|
91
87
|
//# sourceMappingURL=opTab.d.ts.map
|
package/dist/opTab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opTab.d.ts","sourceRoot":"","sources":["../src/opTab.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"opTab.d.ts","sourceRoot":"","sources":["../src/opTab.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WACf,SAAQ,OAAO,CAAC,IAAI,CAAC,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,GAAG,IAAI,CAGtE;AA4BD;;GAEG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAExG;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAMnH;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAKlH;AAED,UAAU,sBAAsB;IAC9B,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;IACjD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAc3F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAIvF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAEvE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAEjE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CACvC,EAAE,CAAC,CAaH;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIvE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7E;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,GACrD,OAAO,CAAC,WAAW,CAAC,CAKtB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAKhF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAcpE"}
|
package/dist/opTab.js
CHANGED
|
@@ -33,6 +33,25 @@ async function _update(tabId, properties) {
|
|
|
33
33
|
export async function tabOpCreate(properties) {
|
|
34
34
|
return _create(properties);
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a tab in the background (inactive and muted).
|
|
38
|
+
*/
|
|
39
|
+
export async function tabOpCreateActiveFalse(properties) {
|
|
40
|
+
return _create({
|
|
41
|
+
...properties,
|
|
42
|
+
active: false,
|
|
43
|
+
muted: true,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates a tab in the background (inactive and muted).
|
|
48
|
+
*/
|
|
49
|
+
export async function tabOpCreateActiveTrue(properties) {
|
|
50
|
+
return _create({
|
|
51
|
+
...properties,
|
|
52
|
+
active: true,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
36
55
|
/**
|
|
37
56
|
* Creates a new tab positioned immediately after a specified existing tab.
|
|
38
57
|
*/
|
|
@@ -50,16 +69,6 @@ export async function tabOpCreateNear(options) {
|
|
|
50
69
|
}
|
|
51
70
|
return _create(properties);
|
|
52
71
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Creates a tab in the background (inactive and muted).
|
|
55
|
-
*/
|
|
56
|
-
export async function tabOpCreateActiveFalse(properties) {
|
|
57
|
-
return _create({
|
|
58
|
-
...properties,
|
|
59
|
-
active: false,
|
|
60
|
-
muted: true,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
72
|
/**
|
|
64
73
|
* Creates a new window and returns its primary tab.
|
|
65
74
|
*/
|
|
@@ -102,7 +111,8 @@ export async function tabOpQueryDomain(domain) {
|
|
|
102
111
|
*/
|
|
103
112
|
export async function tabOpQueryUrl(urlQuery) {
|
|
104
113
|
const tabs = await browser.tabs.query({ url: urlQuery });
|
|
105
|
-
return tabs.filter((t) => typeof t.id === 'number')
|
|
114
|
+
return tabs.filter((t) => typeof t.id === 'number')
|
|
115
|
+
.map((t) => t.id);
|
|
106
116
|
}
|
|
107
117
|
/**
|
|
108
118
|
* Finds all tabs matching the URL pattern and removes them simultaneously.
|
|
@@ -156,15 +166,3 @@ export async function tabOpFocus(tabId) {
|
|
|
156
166
|
await browser.windows.update(tab.windowId, { focused: true });
|
|
157
167
|
return _update(tabId, { active: true, highlighted: true });
|
|
158
168
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Injects CSS code into a page.
|
|
161
|
-
*/
|
|
162
|
-
export async function tabOpInsertCssCode(tabId, code) {
|
|
163
|
-
await browser.tabs.insertCSS(tabId, { code });
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Removes CSS code that was previously injected into a page.
|
|
167
|
-
*/
|
|
168
|
-
export async function tabOpRemoveCssCode(tabId, code) {
|
|
169
|
-
await browser.tabs.removeCSS(tabId, { code });
|
|
170
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceFetch.d.ts","sourceRoot":"","sources":["../src/serviceFetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"serviceFetch.d.ts","sourceRoot":"","sources":["../src/serviceFetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,QAAQ,CAAC,CAYnB;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuB1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceOpContent.d.ts","sourceRoot":"","sources":["../src/serviceOpContent.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"serviceOpContent.d.ts","sourceRoot":"","sources":["../src/serviceOpContent.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACV,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAc,GAClB,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+B9D"}
|
package/dist/serviceOpContent.js
CHANGED
|
@@ -57,13 +57,15 @@ export function serviceRemoveIllegalWord(value) {
|
|
|
57
57
|
if (!value)
|
|
58
58
|
return '';
|
|
59
59
|
// Get the first line and trim whitespace
|
|
60
|
-
let name = value.trim()
|
|
60
|
+
let name = value.trim()
|
|
61
|
+
.split(/\r?\n/)[0];
|
|
61
62
|
// Replace punctuation, symbols, and control chars with space
|
|
62
63
|
name = name.replace(/[\p{P}\p{S}\p{C}]/gu, ' ');
|
|
63
64
|
// Replace specific legacy forbidden characters
|
|
64
65
|
name = name.replace(/[~"#%&*:<>?/\\{|}]/g, ' ');
|
|
65
66
|
// Normalize whitespaces
|
|
66
|
-
name = name.replace(/[\s\u3000]+/g, ' ')
|
|
67
|
+
name = name.replace(/[\s\u3000]+/g, ' ')
|
|
68
|
+
.trim();
|
|
67
69
|
// Remove leading/trailing dots or hyphens
|
|
68
70
|
return name.replace(/^[-.]+|[-.]+$/g, '');
|
|
69
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceOpJavascript.d.ts","sourceRoot":"","sources":["../src/serviceOpJavascript.ts"],"names":[],"mappings":"AAUA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,
|
|
1
|
+
{"version":3,"file":"serviceOpJavascript.d.ts","sourceRoot":"","sources":["../src/serviceOpJavascript.ts"],"names":[],"mappings":"AAUA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,iBACR,SAAQ,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,iBAAiB,CAAC;CACxD;AAID;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,EACE,KAAK,EACL,QAAQ,EACR,IAAI,EACL,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GhF;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxF;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BzF"}
|
|
@@ -134,13 +134,15 @@ export async function serviceFindAllMagnetLink(message) {
|
|
|
134
134
|
// Type 1: Attribute selectors
|
|
135
135
|
const attrElements = document.querySelectorAll('*[href*="magnet:"], *[data-url*="magnet:"], *[data-magnet*="magnet:"], *[data-href*="magnet:"]');
|
|
136
136
|
attrElements.forEach(el => {
|
|
137
|
-
Array.from(el.attributes)
|
|
137
|
+
Array.from(el.attributes)
|
|
138
|
+
.forEach(attr => {
|
|
138
139
|
if (attr.value.includes('magnet:?xt='))
|
|
139
140
|
magnets.add(attr.value.trim());
|
|
140
141
|
});
|
|
141
142
|
});
|
|
142
143
|
// Type 2: Text content
|
|
143
|
-
document.querySelectorAll('div, span, td, p, a, button')
|
|
144
|
+
document.querySelectorAll('div, span, td, p, a, button')
|
|
145
|
+
.forEach(el => {
|
|
144
146
|
if (el.children.length === 0) {
|
|
145
147
|
const text = el.textContent?.trim() || '';
|
|
146
148
|
const match = text.match(/magnet:\?xt=[^\s"'<>]+/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceUpdateTabStyle.d.ts","sourceRoot":"","sources":["../src/serviceUpdateTabStyle.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"serviceUpdateTabStyle.d.ts","sourceRoot":"","sources":["../src/serviceUpdateTabStyle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAsB,mCAAmC,CACvD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAOf;AASD;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|