@praxisjs/head 0.2.6 → 0.3.0
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 +12 -0
- package/dist/__tests__/head.test.js +9 -11
- package/dist/__tests__/head.test.js.map +1 -1
- package/dist/__tests__/internal.test.d.ts +2 -0
- package/dist/__tests__/internal.test.d.ts.map +1 -0
- package/dist/__tests__/internal.test.js +32 -0
- package/dist/__tests__/internal.test.js.map +1 -0
- package/dist/head-stack.d.ts +7 -2
- package/dist/head-stack.d.ts.map +1 -1
- package/dist/head-stack.js +7 -2
- package/dist/head-stack.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -0
- package/package.json +7 -3
- package/src/__tests__/head.test.ts +9 -11
- package/src/__tests__/internal.test.ts +38 -0
- package/src/head-stack.ts +7 -2
- package/src/internal.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @praxisjs/head
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ef46e56: Add a `@praxisjs/head/internal` entry point exporting `resetHeadState()`, so `@praxisjs/ssg`'s prerender runner can clear `<head>` tag state between routes rendered in the same Node process.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [1ec5b2f]
|
|
12
|
+
- @praxisjs/core@2.1.0
|
|
13
|
+
- @praxisjs/decorators@1.6.1
|
|
14
|
+
|
|
3
15
|
## 0.2.6
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -37,10 +37,10 @@ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
|
37
37
|
import { signal } from "@praxisjs/core/internal";
|
|
38
38
|
import { StatefulComponent } from "@praxisjs/core";
|
|
39
39
|
import { Head } from "../index";
|
|
40
|
-
import { pushHead, removeHead,
|
|
40
|
+
import { pushHead, removeHead, resetHeadState, headVersion } from "../head-stack";
|
|
41
41
|
beforeEach(() => {
|
|
42
42
|
document.head.innerHTML = "";
|
|
43
|
-
|
|
43
|
+
resetHeadState();
|
|
44
44
|
document.title = "initial";
|
|
45
45
|
});
|
|
46
46
|
// ─── head-stack unit tests ────────────────────────────────────────────────────
|
|
@@ -114,16 +114,15 @@ describe("pushHead / removeHead", () => {
|
|
|
114
114
|
});
|
|
115
115
|
it("removeHead with a non-existent id is a no-op (idx < 0 branch)", () => {
|
|
116
116
|
const id = Symbol("never-pushed");
|
|
117
|
-
// _apply() still runs but the stack stays empty
|
|
118
117
|
expect(() => removeHead(id)).not.toThrow();
|
|
119
118
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBe(0);
|
|
120
119
|
});
|
|
121
120
|
it("_apply restores title to '' when _initialTitle is undefined and stack is empty", () => {
|
|
122
|
-
//
|
|
121
|
+
// resetHeadState leaves _initialTitle = undefined; calling removeHead on a missing id
|
|
123
122
|
// triggers _apply with an empty stack and undefined _initialTitle → title = "" fallback.
|
|
124
123
|
const id = Symbol("missing");
|
|
125
124
|
document.title = "should-be-cleared";
|
|
126
|
-
removeHead(id);
|
|
125
|
+
removeHead(id);
|
|
127
126
|
expect(document.title).toBe("");
|
|
128
127
|
});
|
|
129
128
|
it("adds preload link with href and as", () => {
|
|
@@ -191,7 +190,6 @@ describe("pushHead / removeHead", () => {
|
|
|
191
190
|
it("meta tag with neither name nor property is silently skipped", () => {
|
|
192
191
|
const id = Symbol();
|
|
193
192
|
pushHead(id, { meta: [{ content: "orphan-content" }] });
|
|
194
|
-
// Neither _metaName nor _metaProp should be called
|
|
195
193
|
const all = document.querySelectorAll("[data-praxis-head]");
|
|
196
194
|
const hasOrphan = Array.from(all).some((el) => el.getAttribute("content") === "orphan-content");
|
|
197
195
|
expect(hasOrphan).toBe(false);
|
|
@@ -222,18 +220,18 @@ describe("SSR guards — no DOM operations when document is undefined", () => {
|
|
|
222
220
|
const id = Symbol();
|
|
223
221
|
expect(() => removeHead(id)).not.toThrow();
|
|
224
222
|
});
|
|
225
|
-
it("
|
|
223
|
+
it("resetHeadState skips DOM cleanup when document is undefined", () => {
|
|
226
224
|
vi.stubGlobal("document", undefined);
|
|
227
|
-
expect(() =>
|
|
225
|
+
expect(() => resetHeadState()).not.toThrow();
|
|
228
226
|
});
|
|
229
227
|
});
|
|
230
|
-
describe("
|
|
228
|
+
describe("resetHeadState — DOM cleanup", () => {
|
|
231
229
|
it("removes managed elements from document.head when called with elements present", () => {
|
|
232
230
|
const id = Symbol();
|
|
233
231
|
pushHead(id, { title: "Before Reset", description: "desc" });
|
|
234
232
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBeGreaterThan(0);
|
|
235
|
-
// Call
|
|
236
|
-
|
|
233
|
+
// Call resetHeadState WITHOUT clearing head.innerHTML first — exercises the forEach
|
|
234
|
+
resetHeadState();
|
|
237
235
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBe(0);
|
|
238
236
|
});
|
|
239
237
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head.test.js","sourceRoot":"","sources":["../../src/__tests__/head.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAA4B;AAC5B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9E,UAAU,CAAC,GAAG,EAAE;IACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IAC7B,UAAU,EAAE,CAAC;IACb,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAkB,0BAA0B,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7G,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE;YACX,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACtC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;aAC5C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3F,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,UAAU,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAkB,0BAA0B,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,gDAAgD;QAChD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,kFAAkF;QAClF,yFAAyF;QACzF,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,QAAQ,CAAC,KAAK,GAAG,mBAAmB,CAAC;QACrC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,4EAA4E;QAC5F,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAkB,qBAAqB,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE;YACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;SACpG,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAkB,qBAAqB,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE;YACX,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE;aAClC;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAkB,sBAAsB,CAAC,CAAC;QAC3E,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAkB,sBAAsB,CAAC,CAAC;QAC3E,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClB,EAAE,IAAI,EAAE,UAAU,EAAE;aACrB;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE;YACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;YAC9C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,mDAAmD;QACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5C,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAChD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,UAAU,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3D,8DAA8D;QAC9D,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAElF,gFAAgF;QAChF,UAAU,EAAE,CAAC;QACb,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,0EAA0E;IAGpE,UAAU;4BADf,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;;;;sBACnC,iBAAiB;0BAAzB,SAAQ,WAAiB;;;;YAA1C,6KAEC;;;YAFK,uDAAU;;QACd,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;AAE3B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAG5E,UAAU;4BADf,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;;;;sBACD,iBAAiB;0BAAzB,SAAQ,WAAiB;;;;YAA1C,6KAEC;;;YAFK,uDAAU;;QACd,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;AAE3B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAElF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAkB,0BAA0B,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAGlB,YAAY;oCADjB,IAAI,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;;;;8BACrC,iBAAiB;oCAAzB,SAAQ,WAAiB;;;;oBAA5C,6KAGC;;;oBAHK,uDAAY;;gBAChB,CAAC,GAAG,KAAK,CAAC;gBACV,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAGlB,QAAQ;oCADb,IAAI,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;;;8BACzB,iBAAiB;gCAAzB,SAAQ,WAAiB;;;;oBAAxC,6KAGC;;;oBAHK,uDAAQ;;gBACZ,CAAC,GAAG,GAAG,CAAC;gBACR,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhF,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAGtB,KAAK;oCADV,IAAI,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;;;8BACzB,iBAAiB;6BAAzB,SAAQ,WAAiB;;;;oBAArC,6KAGC;;;oBAHK,uDAAK;;gBACT,CAAC,GAAG,EAAE,CAAC;gBACP,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YAGvE,KAAK;oCADV,IAAI,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;;;8BACzB,iBAAiB;6BAAzB,SAAQ,WAAiB;;;;oBAArC,6KAGC;;;oBAHK,uDAAK;;gBACT,CAAC,GAAG,EAAE,CAAC;gBACP,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7E,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAKvB,MAAM;oCAHX,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC;oBACvB,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,oBAAoB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;iBACxE,CAAC,CAAC;;;;8BACkB,iBAAiB;8BAAzB,SAAQ,WAAiB;;;;oBAAtC,6KAGC;;;oBAHK,uDAAM;;gBACV,CAAC,GAAG,IAAI,CAAC;gBACT,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9E,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAGzD,OAAO;oCADZ,IAAI,CAAC,MAAM,CAAC;;;;8BACS,iBAAiB;+BAAzB,SAAQ,WAAiB;;;;oBAAvC,6KAGC;;;oBAHK,uDAAO;;gBACX,CAAC,GAAG,IAAI,CAAC;gBACT,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;;;;QAE3B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC1D,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"head.test.js","sourceRoot":"","sources":["../../src/__tests__/head.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/internal.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { pushHead, removeHead } from "../head-stack";
|
|
4
|
+
import { resetHeadState } from "../internal";
|
|
5
|
+
describe("@praxisjs/head/internal", () => {
|
|
6
|
+
it("exports resetHeadState, which removes managed head elements", () => {
|
|
7
|
+
document.head.innerHTML = "";
|
|
8
|
+
pushHead(Symbol("page"), { title: "pushed", description: "desc" });
|
|
9
|
+
expect(document.head.querySelectorAll("[data-praxis-head]").length).toBeGreaterThan(0);
|
|
10
|
+
resetHeadState();
|
|
11
|
+
expect(document.head.querySelectorAll("[data-praxis-head]")).toHaveLength(0);
|
|
12
|
+
});
|
|
13
|
+
it("forgets the remembered initial title, so the next page's baseline is captured fresh", () => {
|
|
14
|
+
// Without resetHeadState between "pages", the initial title is only ever
|
|
15
|
+
// captured once (pushHead's `_initialTitle ??=`) — exactly the leak an
|
|
16
|
+
// @praxisjs/ssg prerender run (many render() calls, one Node process)
|
|
17
|
+
// needs this export to avoid between routes.
|
|
18
|
+
document.head.innerHTML = "";
|
|
19
|
+
document.title = "page A";
|
|
20
|
+
const idA = Symbol("a");
|
|
21
|
+
pushHead(idA, { title: "A" });
|
|
22
|
+
removeHead(idA);
|
|
23
|
+
expect(document.title).toBe("page A");
|
|
24
|
+
resetHeadState();
|
|
25
|
+
document.title = "page B";
|
|
26
|
+
const idB = Symbol("b");
|
|
27
|
+
pushHead(idB, { title: "B" });
|
|
28
|
+
removeHead(idB);
|
|
29
|
+
expect(document.title).toBe("page B");
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=internal.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.test.js","sourceRoot":"","sources":["../../src/__tests__/internal.test.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEvF,cAAc,EAAE,CAAC;QAEjB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,6CAA6C;QAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtC,cAAc,EAAE,CAAC;QAEjB,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/head-stack.d.ts
CHANGED
|
@@ -39,6 +39,11 @@ export interface HeadConfig {
|
|
|
39
39
|
export declare const headVersion: import("@praxisjs/shared").Signal<number>;
|
|
40
40
|
export declare function pushHead(id: symbol, config: HeadConfig): void;
|
|
41
41
|
export declare function removeHead(id: symbol): void;
|
|
42
|
-
/**
|
|
43
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Resets all head state — the tag stack and the remembered initial `<title>`.
|
|
44
|
+
* Used between pages in an `@praxisjs/ssg` prerender run (same Node process,
|
|
45
|
+
* many `render()` calls) so one route's `<head>` never leaks into the next;
|
|
46
|
+
* also used by this package's own tests.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resetHeadState(): void;
|
|
44
49
|
//# sourceMappingURL=head-stack.d.ts.map
|
package/dist/head-stack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head-stack.d.ts","sourceRoot":"","sources":["../src/head-stack.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,EAAE,CAAC,EAAE;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAYD,qFAAqF;AACrF,eAAO,MAAM,WAAW,2CAAY,CAAC;AAErC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAU7D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK3C;AAuGD
|
|
1
|
+
{"version":3,"file":"head-stack.d.ts","sourceRoot":"","sources":["../src/head-stack.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,EAAE,CAAC,EAAE;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAYD,qFAAqF;AACrF,eAAO,MAAM,WAAW,2CAAY,CAAC;AAErC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAU7D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK3C;AAuGD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAMrC"}
|
package/dist/head-stack.js
CHANGED
|
@@ -125,8 +125,13 @@ function _linkPrefetch(link) {
|
|
|
125
125
|
el.setAttribute(ATTR, "");
|
|
126
126
|
document.head.appendChild(el);
|
|
127
127
|
}
|
|
128
|
-
/**
|
|
129
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Resets all head state — the tag stack and the remembered initial `<title>`.
|
|
130
|
+
* Used between pages in an `@praxisjs/ssg` prerender run (same Node process,
|
|
131
|
+
* many `render()` calls) so one route's `<head>` never leaks into the next;
|
|
132
|
+
* also used by this package's own tests.
|
|
133
|
+
*/
|
|
134
|
+
export function resetHeadState() {
|
|
130
135
|
_stack.length = 0;
|
|
131
136
|
_initialTitle = undefined;
|
|
132
137
|
if (typeof document !== "undefined") {
|
package/dist/head-stack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head-stack.js","sourceRoot":"","sources":["../src/head-stack.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"head-stack.js","sourceRoot":"","sources":["../src/head-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisjs/head",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -8,14 +8,18 @@
|
|
|
8
8
|
".": {
|
|
9
9
|
"import": "./dist/index.js",
|
|
10
10
|
"types": "./dist/index.d.ts"
|
|
11
|
+
},
|
|
12
|
+
"./internal": {
|
|
13
|
+
"import": "./dist/internal.js",
|
|
14
|
+
"types": "./dist/internal.d.ts"
|
|
11
15
|
}
|
|
12
16
|
},
|
|
13
17
|
"devDependencies": {
|
|
14
18
|
"typescript": "^6.0.3"
|
|
15
19
|
},
|
|
16
20
|
"dependencies": {
|
|
17
|
-
"@praxisjs/core": "2.
|
|
18
|
-
"@praxisjs/decorators": "1.6.
|
|
21
|
+
"@praxisjs/core": "2.1.0",
|
|
22
|
+
"@praxisjs/decorators": "1.6.1",
|
|
19
23
|
"@praxisjs/shared": "0.3.1"
|
|
20
24
|
},
|
|
21
25
|
"scripts": {
|
|
@@ -4,11 +4,11 @@ import { signal } from "@praxisjs/core/internal";
|
|
|
4
4
|
import { StatefulComponent } from "@praxisjs/core";
|
|
5
5
|
|
|
6
6
|
import { Head } from "../index";
|
|
7
|
-
import { pushHead, removeHead,
|
|
7
|
+
import { pushHead, removeHead, resetHeadState, headVersion } from "../head-stack";
|
|
8
8
|
|
|
9
9
|
beforeEach(() => {
|
|
10
10
|
document.head.innerHTML = "";
|
|
11
|
-
|
|
11
|
+
resetHeadState();
|
|
12
12
|
document.title = "initial";
|
|
13
13
|
});
|
|
14
14
|
|
|
@@ -94,17 +94,16 @@ describe("pushHead / removeHead", () => {
|
|
|
94
94
|
|
|
95
95
|
it("removeHead with a non-existent id is a no-op (idx < 0 branch)", () => {
|
|
96
96
|
const id = Symbol("never-pushed");
|
|
97
|
-
// _apply() still runs but the stack stays empty
|
|
98
97
|
expect(() => removeHead(id)).not.toThrow();
|
|
99
98
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBe(0);
|
|
100
99
|
});
|
|
101
100
|
|
|
102
101
|
it("_apply restores title to '' when _initialTitle is undefined and stack is empty", () => {
|
|
103
|
-
//
|
|
102
|
+
// resetHeadState leaves _initialTitle = undefined; calling removeHead on a missing id
|
|
104
103
|
// triggers _apply with an empty stack and undefined _initialTitle → title = "" fallback.
|
|
105
104
|
const id = Symbol("missing");
|
|
106
105
|
document.title = "should-be-cleared";
|
|
107
|
-
removeHead(id);
|
|
106
|
+
removeHead(id);
|
|
108
107
|
expect(document.title).toBe("");
|
|
109
108
|
});
|
|
110
109
|
|
|
@@ -180,7 +179,6 @@ describe("pushHead / removeHead", () => {
|
|
|
180
179
|
it("meta tag with neither name nor property is silently skipped", () => {
|
|
181
180
|
const id = Symbol();
|
|
182
181
|
pushHead(id, { meta: [{ content: "orphan-content" }] });
|
|
183
|
-
// Neither _metaName nor _metaProp should be called
|
|
184
182
|
const all = document.querySelectorAll("[data-praxis-head]");
|
|
185
183
|
const hasOrphan = Array.from(all).some((el) =>
|
|
186
184
|
el.getAttribute("content") === "orphan-content",
|
|
@@ -219,20 +217,20 @@ describe("SSR guards — no DOM operations when document is undefined", () => {
|
|
|
219
217
|
expect(() => removeHead(id)).not.toThrow();
|
|
220
218
|
});
|
|
221
219
|
|
|
222
|
-
it("
|
|
220
|
+
it("resetHeadState skips DOM cleanup when document is undefined", () => {
|
|
223
221
|
vi.stubGlobal("document", undefined);
|
|
224
|
-
expect(() =>
|
|
222
|
+
expect(() => resetHeadState()).not.toThrow();
|
|
225
223
|
});
|
|
226
224
|
});
|
|
227
225
|
|
|
228
|
-
describe("
|
|
226
|
+
describe("resetHeadState — DOM cleanup", () => {
|
|
229
227
|
it("removes managed elements from document.head when called with elements present", () => {
|
|
230
228
|
const id = Symbol();
|
|
231
229
|
pushHead(id, { title: "Before Reset", description: "desc" });
|
|
232
230
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBeGreaterThan(0);
|
|
233
231
|
|
|
234
|
-
// Call
|
|
235
|
-
|
|
232
|
+
// Call resetHeadState WITHOUT clearing head.innerHTML first — exercises the forEach
|
|
233
|
+
resetHeadState();
|
|
236
234
|
expect(document.querySelectorAll("[data-praxis-head]").length).toBe(0);
|
|
237
235
|
});
|
|
238
236
|
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
|
|
4
|
+
import { pushHead, removeHead } from "../head-stack";
|
|
5
|
+
import { resetHeadState } from "../internal";
|
|
6
|
+
|
|
7
|
+
describe("@praxisjs/head/internal", () => {
|
|
8
|
+
it("exports resetHeadState, which removes managed head elements", () => {
|
|
9
|
+
document.head.innerHTML = "";
|
|
10
|
+
pushHead(Symbol("page"), { title: "pushed", description: "desc" });
|
|
11
|
+
expect(document.head.querySelectorAll("[data-praxis-head]").length).toBeGreaterThan(0);
|
|
12
|
+
|
|
13
|
+
resetHeadState();
|
|
14
|
+
|
|
15
|
+
expect(document.head.querySelectorAll("[data-praxis-head]")).toHaveLength(0);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("forgets the remembered initial title, so the next page's baseline is captured fresh", () => {
|
|
19
|
+
// Without resetHeadState between "pages", the initial title is only ever
|
|
20
|
+
// captured once (pushHead's `_initialTitle ??=`) — exactly the leak an
|
|
21
|
+
// @praxisjs/ssg prerender run (many render() calls, one Node process)
|
|
22
|
+
// needs this export to avoid between routes.
|
|
23
|
+
document.head.innerHTML = "";
|
|
24
|
+
document.title = "page A";
|
|
25
|
+
const idA = Symbol("a");
|
|
26
|
+
pushHead(idA, { title: "A" });
|
|
27
|
+
removeHead(idA);
|
|
28
|
+
expect(document.title).toBe("page A");
|
|
29
|
+
|
|
30
|
+
resetHeadState();
|
|
31
|
+
|
|
32
|
+
document.title = "page B";
|
|
33
|
+
const idB = Symbol("b");
|
|
34
|
+
pushHead(idB, { title: "B" });
|
|
35
|
+
removeHead(idB);
|
|
36
|
+
expect(document.title).toBe("page B");
|
|
37
|
+
});
|
|
38
|
+
});
|
package/src/head-stack.ts
CHANGED
|
@@ -174,8 +174,13 @@ function _linkPrefetch(link: LinkPrefetch): void {
|
|
|
174
174
|
document.head.appendChild(el);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
/**
|
|
178
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Resets all head state — the tag stack and the remembered initial `<title>`.
|
|
179
|
+
* Used between pages in an `@praxisjs/ssg` prerender run (same Node process,
|
|
180
|
+
* many `render()` calls) so one route's `<head>` never leaks into the next;
|
|
181
|
+
* also used by this package's own tests.
|
|
182
|
+
*/
|
|
183
|
+
export function resetHeadState(): void {
|
|
179
184
|
_stack.length = 0;
|
|
180
185
|
_initialTitle = undefined;
|
|
181
186
|
if (typeof document !== "undefined") {
|
package/src/internal.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resetHeadState } from "./head-stack";
|