@vacantthinker/firefox-addon-framework-easy 2026.622.802 → 2026.622.1025

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.
@@ -43,6 +43,13 @@ export declare function ctJsPresetSleep(preset: keyof typeof SLEEP_RANGES): Prom
43
43
  * @returns {string} Normalized string representation of numbers, or "unknown".
44
44
  */
45
45
  export declare function ctJsExtractVideoQualityFromText(text: string): string;
46
+ /**
47
+ * Executes a provided function once the entire page (including all dependent
48
+ * resources such as stylesheets and images) is fully loaded.
49
+ * If the page is already fully loaded, it executes immediately.
50
+ * * @param fn - The function to execute. Can be synchronous or asynchronous.
51
+ */
52
+ export declare function ctJsExecuteOnComplete(fn: () => void | Promise<void>): Promise<void>;
46
53
  /**
47
54
  * Executes a provided function once the DOM is ready.
48
55
  * If the DOM is already ready, it executes immediately.
@@ -1 +1 @@
1
- {"version":3,"file":"ContentJs.d.ts","sourceRoot":"","sources":["../src/ContentJs.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,QAgBtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAc,EAC7B,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,uBAAuB,kBAE5C;AAED,wBAAsB,sBAAsB,kBAE3C;AAED,QAAA,MAAM,YAAY;;;;;;CAqBR,CAAC;AAEX,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,OAAO,YAAY,iBAGtE;AAID;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpE;AAGD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,iBAE7C;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAEzD;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,iBAExD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAKnD;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAW,EAAE,SAAS,UAAO,QAgB/D;AAED,wBAAsB,YAAY,kBAIjC;AAED,wBAAsB,oBAAoB,kBAIzC;AAED,wBAAsB,mBAAmB,kBAIxC;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,iBAK3D;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,iBAK5D;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,iBAGtD;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAIxE;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,iBAIrD;AAED,wBAAsB,6BAA6B,CAAC,CAAC,SAAS;IAC5D,GAAG,EAAE,MAAM,CAAA;CACZ,EAAE,OAAO,EAAE,CAAC,iBAEZ"}
1
+ {"version":3,"file":"ContentJs.d.ts","sourceRoot":"","sources":["../src/ContentJs.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,QAgBtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAc,EAC7B,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,wBAAwB,kBAE7C;AAED,wBAAsB,uBAAuB,kBAE5C;AAED,wBAAsB,sBAAsB,kBAE3C;AAED,QAAA,MAAM,YAAY;;;;;;CAqBR,CAAC;AAEX,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,OAAO,YAAY,iBAGtE;AAID;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzF;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,iBAE7C;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAEzD;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,iBAExD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAKnD;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAW,EAAE,SAAS,UAAO,QAgB/D;AAED,wBAAsB,YAAY,kBAIjC;AAED,wBAAsB,oBAAoB,kBAIzC;AAED,wBAAsB,mBAAmB,kBAIxC;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,iBAK3D;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,iBAK5D;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,iBAGtD;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAIxE;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,iBAIrD;AAED,wBAAsB,6BAA6B,CAAC,CAAC,SAAS;IAC5D,GAAG,EAAE,MAAM,CAAA;CACZ,EAAE,OAAO,EAAE,CAAC,iBAEZ"}
package/dist/ContentJs.js CHANGED
@@ -139,6 +139,29 @@ export function ctJsExtractVideoQualityFromText(text) {
139
139
  const num = parseInt(text, 10);
140
140
  return Number.isNaN(num) ? 'unknown' : num.toString();
141
141
  }
142
+ /**
143
+ * Executes a provided function once the entire page (including all dependent
144
+ * resources such as stylesheets and images) is fully loaded.
145
+ * If the page is already fully loaded, it executes immediately.
146
+ * * @param fn - The function to execute. Can be synchronous or asynchronous.
147
+ */
148
+ export async function ctJsExecuteOnComplete(fn) {
149
+ // 'complete' means the DOM is ready AND all external resources have finished
150
+ // loading
151
+ if (document.readyState === 'complete') {
152
+ await fn();
153
+ }
154
+ else {
155
+ // Wait for the window 'load' event, which fires after all resources are
156
+ // downloaded
157
+ await new Promise((resolve) => {
158
+ window.addEventListener('load', async () => {
159
+ await fn();
160
+ resolve();
161
+ }, { once: true });
162
+ });
163
+ }
164
+ }
142
165
  /**
143
166
  * Executes a provided function once the DOM is ready.
144
167
  * If the DOM is already ready, it executes immediately.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vacantthinker/firefox-addon-framework-easy",
3
- "version": "2026.0622.0802",
3
+ "version": "2026.0622.1025",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",