@vacantthinker/firefox-addon-framework-easy 2026.630.2152 → 2026.630.2336

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.
@@ -19,4 +19,7 @@ export declare function bkJsCreateAlarmBaseHandlers<T extends string>(): Map<T,
19
19
  * Dispatcher also accepts the generic map
20
20
  */
21
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>;
24
+ export declare function calculateNextDailyOccurrence(timeStr: string): number;
22
25
  //# 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;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"}
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;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpE"}
@@ -94,3 +94,30 @@ export function bkJsRegisterAlarmDispatcher(handlersMap, logTag = "initialAlarm.
94
94
  }
95
95
  });
96
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
+ }
115
+ export function calculateNextDailyOccurrence(timeStr) {
116
+ const [hour, minute] = timeStr.split(':').map(Number);
117
+ const now = new Date();
118
+ const nextAlarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hour, minute, 0, 0);
119
+ if (now.getTime() > nextAlarm.getTime()) {
120
+ nextAlarm.setDate(nextAlarm.getDate() + 1);
121
+ }
122
+ return nextAlarm.getTime();
123
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vacantthinker/firefox-addon-framework-easy",
3
- "version": "2026.0630.2152",
3
+ "version": "2026.0630.2336",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",