@vacantthinker/firefox-addon-framework-easy 2026.604.640 → 2026.604.1634

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/README.md CHANGED
@@ -59,8 +59,16 @@ export function browserRuntimeManifestName() { }
59
59
 
60
60
  ```
61
61
 
62
+ ### 📄 File: `src/browserRuntimeOnMessageCommon.js`
63
+ ```javascript
64
+ export function browserRuntimeOnMessageCommon() { }
65
+
66
+ ```
67
+
62
68
  ### 📄 File: `src/browserTab.js`
63
69
  ```javascript
70
+ export async function browserTabSendMessage(tabId, message) { }
71
+
64
72
  export async function browserTabCreateToDownload(message) { }
65
73
 
66
74
  export async function browserTabCreateNearSendMessageToContentJs(message) { }
@@ -146,6 +154,8 @@ export async function tabOpRemoveCssCode(tabId, code) { }
146
154
 
147
155
  ### 📄 File: `src/serviceCommon.js`
148
156
  ```javascript
157
+ export async function serviceDownloadByDownlink(message) { }
158
+
149
159
  ```
150
160
 
151
161
  ### 📄 File: `src/serviceFetch.js`
package/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './src/BaseORM.js'
2
2
  export * from './src/browserDownload.js'
3
3
  export * from './src/browserNotification.js'
4
4
  export * from './src/browserRuntime.js'
5
+ export * from './src/browserRuntimeOnMessageCommon.js'
5
6
  export * from './src/browserTab.js'
6
7
  export * from './src/DomainORM.js'
7
8
  export * from './src/generate.js'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vacantthinker/firefox-addon-framework-easy",
3
- "version": "2026.0604.0640",
3
+ "version": "2026.0604.1634",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
package/src/BaseORM.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  stoOpCheck,
3
3
  stoOpGet,
4
- stoOpQueryStartWith,
5
4
  stoOpRem,
6
5
  stoOpSet,
7
6
  } from './opStorage.js';
@@ -2,13 +2,13 @@
2
2
  *
3
3
  * @param param0
4
4
  * @param param0.downlink{string}
5
- * @param param0.filename{string}
5
+ * @param param0.filename{string|null|undefined}
6
6
  * @returns {Promise<void>}
7
7
  */
8
8
  export async function browserDownloadByDownlink(
9
9
  {
10
10
  downlink,
11
- filename,
11
+ filename= null,
12
12
  }) {
13
13
 
14
14
  let url = downlink;
@@ -0,0 +1,39 @@
1
+ import {tabOpRemove} from './opTab.js';
2
+ import {serviceDownloadByDownlink} from './serviceCommon.js';
3
+ import {browserTabSendMessage} from './browserTab.js';
4
+
5
+ /**
6
+ * offer common act <=> function, eg: actRemoveTab, actLog
7
+ */
8
+ export function browserRuntimeOnMessageCommon() {
9
+ browser.runtime.onMessage.addListener(
10
+ (message, sender) => {
11
+ message['tab'] = sender.tab;
12
+ message['tabId'] = sender.tab?.id;
13
+
14
+ let keyAct = 'act';
15
+ /**
16
+ * @type{
17
+ * |'actLog'
18
+ * |'actRemoveTab'
19
+ * |'actDownloadFile'
20
+ * |'actSendMessageToTab'
21
+ * }
22
+ */
23
+ let act = message[keyAct];
24
+ delete message[keyAct];
25
+ if (act === 'actLog') {
26
+ console.log('act', act, 'message', message);
27
+ }
28
+ else if (act === 'actRemoveTab') {
29
+ tabOpRemove(message.tabId)
30
+ }
31
+ else if (act === 'actDownloadFile') {
32
+ serviceDownloadByDownlink(message);
33
+ }
34
+ else if (act === 'actSendMessageToTab') {
35
+ browserTabSendMessage(message.tabId, message);
36
+ }
37
+ });
38
+
39
+ }
package/src/browserTab.js CHANGED
@@ -3,7 +3,7 @@
3
3
  import {browserNotificationCreate} from './browserNotification.js';
4
4
  import {tabOpCreateNear, tabOpRemove} from './opTab.js';
5
5
 
6
- async function browserTabSendMessage(tabId, message) {
6
+ export async function browserTabSendMessage(tabId, message) {
7
7
  await browser.tabs.sendMessage(tabId, message);
8
8
  }
9
9
 
@@ -0,0 +1,22 @@
1
+ import {browserDownloadByDownlink} from './browserDownload.js';
2
+ import {browserNotificationCreate} from './browserNotification.js';
3
+
4
+ /**
5
+ * service, download by downlink, if success, notification the filename
6
+ *
7
+ * if failed, nootification the reason, then try download only use downlink
8
+ * @param message
9
+ * @returns {Promise<void>}
10
+ */
11
+ export async function serviceDownloadByDownlink(message) {
12
+ let {filename, downlink} = message;
13
+
14
+ try {
15
+ await browserDownloadByDownlink(message);
16
+ await browserNotificationCreate(`downloading! ${filename}`);
17
+ } catch (e) {
18
+ await browserNotificationCreate(`reason=${e}`)
19
+ await browserDownloadByDownlink({downlink});
20
+ }
21
+
22
+ }