@hominis/fireforge 0.49.1 → 0.49.2
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/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
### Furnace and builds
|
|
6
6
|
|
|
7
7
|
- Safer Furnace deployment and objdir cloning protect component sources and peer checkouts from shared files and directory aliases. Failed copies finish before rollback; cloned build metadata is relocated and verified.
|
|
8
|
+
- `furnace create --localized` no longer scaffolds a `connectedCallback`/`disconnectedCallback` pair that calls `l10n.connectRoot(shadowRoot)` and `disconnectRoot`. `MozLitElement` already registers its shadow render root with `document.l10n`, so the generated pair registered the same root twice, which `DOMLocalization::ConnectRoot` asserts against in debug builds. The scaffold keeps the module-level `window.MozXULElement?.insertFTLIfNeeded(...)` call.
|
|
8
9
|
- Build and test preflight detect broken partial configuration, stale artifacts and invalid build baselines. Scoped builds retain coverage only while their inputs remain unchanged, and builds remove dangling test links.
|
|
9
10
|
|
|
10
11
|
### Test harness
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
### Tooling
|
|
29
30
|
|
|
30
31
|
- Full-Firefox integration preserves existing workspace files and Git index state, and fails on incomplete recovery. Build identity includes untracked contents and binary changes. Release checks enforce the pinned toolchain and additional module coverage floors.
|
|
32
|
+
- Dev tooling: `eslint-plugin-jsdoc` 65.0.1 and `@types/node` 26.6.4. Transitive `source-map-js` 1.2.2 (GHSA-68fv-2mgg-jv7q) and `smol-toml` 1.9.0 (GHSA-r4xh-jqrq-34v2) clear `npm audit`.
|
|
31
33
|
|
|
32
34
|
## 0.48.0
|
|
33
35
|
|
package/dist/build-info.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.49.
|
|
4
|
-
"commit": "
|
|
5
|
-
"shortCommit": "
|
|
3
|
+
"version": "0.49.2",
|
|
4
|
+
"commit": "c707978869b62aba07d1e8f0955be00c223d5ce0",
|
|
5
|
+
"shortCommit": "c707978869b6",
|
|
6
6
|
"dirty": false,
|
|
7
7
|
"dirtyHash": null,
|
|
8
|
-
"buildTime": "2026-10-
|
|
8
|
+
"buildTime": "2026-10-06T21:50:15.508Z"
|
|
9
9
|
}
|
|
@@ -26,9 +26,14 @@ export interface GenerateMjsContentOptions {
|
|
|
26
26
|
* `MozXULElement`. Calling it from `connectedCallback` on a Lit-based
|
|
27
27
|
* component throws `TypeError: this.insertFTLIfNeeded is not a function` at
|
|
28
28
|
* every connect. Upstream Firefox components (e.g. `moz-input-folder.mjs`)
|
|
29
|
-
* solve this with a module-level guarded call on `window.MozXULElement
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* solve this with a module-level guarded call on `window.MozXULElement`, and
|
|
30
|
+
* the template mirrors that call so `--localized` produces functional code.
|
|
31
|
+
*
|
|
32
|
+
* The template emits no `connectedCallback`/`disconnectedCallback` pair for
|
|
33
|
+
* Fluent. `MozLitElement` already connects its shadow render root to
|
|
34
|
+
* `document.l10n` on connect and disconnects it on disconnect, so a second
|
|
35
|
+
* `l10n.connectRoot(shadowRoot)` registers the same root twice, which
|
|
36
|
+
* `DOMLocalization::ConnectRoot` asserts against in debug builds.
|
|
32
37
|
*
|
|
33
38
|
* Path resolution precedence (when `localized` is true):
|
|
34
39
|
* 1. `sharedFtl`: used verbatim. The caller has resolved it from
|
|
@@ -11,9 +11,14 @@
|
|
|
11
11
|
* `MozXULElement`. Calling it from `connectedCallback` on a Lit-based
|
|
12
12
|
* component throws `TypeError: this.insertFTLIfNeeded is not a function` at
|
|
13
13
|
* every connect. Upstream Firefox components (e.g. `moz-input-folder.mjs`)
|
|
14
|
-
* solve this with a module-level guarded call on `window.MozXULElement
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* solve this with a module-level guarded call on `window.MozXULElement`, and
|
|
15
|
+
* the template mirrors that call so `--localized` produces functional code.
|
|
16
|
+
*
|
|
17
|
+
* The template emits no `connectedCallback`/`disconnectedCallback` pair for
|
|
18
|
+
* Fluent. `MozLitElement` already connects its shadow render root to
|
|
19
|
+
* `document.l10n` on connect and disconnects it on disconnect, so a second
|
|
20
|
+
* `l10n.connectRoot(shadowRoot)` registers the same root twice, which
|
|
21
|
+
* `DOMLocalization::ConnectRoot` asserts against in debug builds.
|
|
17
22
|
*
|
|
18
23
|
* Path resolution precedence (when `localized` is true):
|
|
19
24
|
* 1. `sharedFtl`: used verbatim. The caller has resolved it from
|
|
@@ -45,25 +50,6 @@ export function generateMjsContent(options) {
|
|
|
45
50
|
const ftlModulePreamble = localized
|
|
46
51
|
? `
|
|
47
52
|
window.MozXULElement?.insertFTLIfNeeded(${JSON.stringify(ftlPath)});
|
|
48
|
-
`
|
|
49
|
-
: '';
|
|
50
|
-
const lifecycleHooks = localized
|
|
51
|
-
? `
|
|
52
|
-
connectedCallback() {
|
|
53
|
-
super.connectedCallback();
|
|
54
|
-
const { shadowRoot } = this;
|
|
55
|
-
if (shadowRoot) {
|
|
56
|
-
this.ownerDocument.l10n?.connectRoot(shadowRoot);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
disconnectedCallback() {
|
|
61
|
-
super.disconnectedCallback();
|
|
62
|
-
const { shadowRoot } = this;
|
|
63
|
-
if (shadowRoot) {
|
|
64
|
-
this.ownerDocument.l10n?.disconnectRoot(shadowRoot);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
53
|
`
|
|
68
54
|
: '';
|
|
69
55
|
return `${header}
|
|
@@ -80,7 +66,6 @@ class ${className} extends MozLitElement {
|
|
|
80
66
|
/** @type {Record<string, unknown>} */
|
|
81
67
|
static properties = {};
|
|
82
68
|
|
|
83
|
-
${lifecycleHooks}
|
|
84
69
|
render() {
|
|
85
70
|
return html\`
|
|
86
71
|
<link rel="stylesheet" href="chrome://global/content/elements/${name}.css" />
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hominis/fireforge",
|
|
3
|
-
"version": "0.49.
|
|
3
|
+
"version": "0.49.2",
|
|
4
4
|
"description": "FireForge — a build tool for customizing Firefox",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"dpdm": "4.3.0",
|
|
73
73
|
"eslint": "^10.0.0",
|
|
74
74
|
"eslint-config-prettier": "^10.1.8",
|
|
75
|
-
"eslint-plugin-jsdoc": "^
|
|
75
|
+
"eslint-plugin-jsdoc": "^65.0.1",
|
|
76
76
|
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
77
77
|
"fast-check": "^4.6.0",
|
|
78
78
|
"husky": "^9.1.7",
|