@vacantthinker/firefox-addon-framework-easy 2026.630.1239 → 2026.630.2330

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.
@@ -9,4 +9,16 @@ export declare function bkJsCreateActionBaseHandlers<T extends string = MessageA
9
9
  * Dispatcher also accepts the generic map
10
10
  */
11
11
  export declare function bkJsRegisterRuntimeActionDispatcher<T extends string>(handlersMap: Map<T, ActHandlerFunc>, logTag?: string): void;
12
+ export type AlarmHandlerFunc = (alarm: browser.alarms.Alarm) => Promise<void>;
13
+ /**
14
+ * Uses <T extends string> so the app can pass its own union type.
15
+ * It defaults to FrameworkBaseAction if no type is passed.
16
+ */
17
+ export declare function bkJsCreateAlarmBaseHandlers<T extends string>(): Map<T, AlarmHandlerFunc>;
18
+ /**
19
+ * Dispatcher also accepts the generic map
20
+ */
21
+ export declare function bkJsRegisterAlarmDispatcher<T extends string>(handlersMap: Map<T, AlarmHandlerFunc>, logTag?: string): void;
22
+ export type AlarmSetupFunc = (name: string) => Promise<browser.alarms._CreateAlarmInfo | void>;
23
+ export declare function bkJsCreateAlarmSetupMap<T extends string>(): Map<T, AlarmSetupFunc>;
12
24
  //# sourceMappingURL=backgroundJs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundJs.d.ts","sourceRoot":"","sources":["../src/backgroundJs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,wBAAwB,EAA6B,MAAM,SAAS,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,SAAS,MAAM,GAAG,wBAAwB,KACzC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAmCzB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAClE,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EACnC,MAAM,GAAE,MAAyB,QAyBlC"}
1
+ {"version":3,"file":"backgroundJs.d.ts","sourceRoot":"","sources":["../src/backgroundJs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,wBAAwB,EAA6B,MAAM,SAAS,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,SAAS,MAAM,GAAG,wBAAwB,KACzC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAmCzB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAClE,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EACnC,MAAM,GAAE,MAAyB,QAyBlC;AAOD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,MAAM,KACd,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAG3B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAC1D,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,EACrC,MAAM,GAAE,MAA2B,QAapC;AAKD,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAErD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAuBlF"}
@@ -70,3 +70,45 @@ export function bkJsRegisterRuntimeActionDispatcher(handlersMap, logTag = "backg
70
70
  }
71
71
  });
72
72
  }
73
+ /**
74
+ * Uses <T extends string> so the app can pass its own union type.
75
+ * It defaults to FrameworkBaseAction if no type is passed.
76
+ */
77
+ export function bkJsCreateAlarmBaseHandlers() {
78
+ const map = new Map();
79
+ return map;
80
+ }
81
+ /**
82
+ * Dispatcher also accepts the generic map
83
+ */
84
+ export function bkJsRegisterAlarmDispatcher(handlersMap, logTag = "initialAlarm.ts ") {
85
+ browser.alarms.onAlarm.addListener(async (alarm) => {
86
+ const { name } = alarm;
87
+ const handler = handlersMap.get(name);
88
+ console.info(logTag, "name=", name, " triggered");
89
+ if (handler) {
90
+ await handler(alarm);
91
+ }
92
+ else {
93
+ console.info(logTag, "name=", name, " not match!");
94
+ }
95
+ });
96
+ }
97
+ export function bkJsCreateAlarmSetupMap() {
98
+ const map = new Map();
99
+ const originalSet = map.set.bind(map);
100
+ map.set = (key, originalFunc) => {
101
+ // 2. Wrap the function to intercept its return value
102
+ const wrappedFunc = async (name) => {
103
+ // Execute the user's complex logic to get the alarm info
104
+ const alarmInfo = await originalFunc(name);
105
+ // 3. Auto-inject the creation logic ONLY if they returned valid info
106
+ if (alarmInfo) {
107
+ await browser.alarms.create(name, alarmInfo);
108
+ console.info(`[Framework] Auto-created alarm: ${name}`);
109
+ }
110
+ };
111
+ return originalSet(key, wrappedFunc);
112
+ };
113
+ return map;
114
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vacantthinker/firefox-addon-framework-easy",
3
- "version": "2026.0630.1239",
3
+ "version": "2026.0630.2330",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",