@designcrowd/library.brand-page 5.17.25-undo-9 → 5.17.25-undo-12
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/lib/src/{CreatedOnBrandCrowd-de-de-DmDSspcZ.js → CreatedOnBrandCrowd-de-de-4mxqeHPP.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-B5Lh1tFl.js → CreatedOnBrandCrowd-en-us-DQN_hGjC.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-BOiOyh5Y.js → CreatedOnBrandCrowd-es-es-gijtJMPK.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-BbC8s_pY.js → CreatedOnBrandCrowd-fr-ca-BcOADD0V.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-BbC8s_pY.js → CreatedOnBrandCrowd-fr-fr-BcOADD0V.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-B9PQ72m4.js → CreatedOnBrandCrowd-pt-br-B5eEyjAo.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-B9PQ72m4.js → CreatedOnBrandCrowd-pt-pt-B5eEyjAo.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-C7NzbKIg.js → CreatedOnDcom-de-de-DSGP6AAT.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-DbVi6Q9C.js → CreatedOnDcom-en-us-BOuoJM_x.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-C4TPAk-c.js → CreatedOnDcom-es-es-kbiGFyBV.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-xqzYFaKy.js → CreatedOnDcom-fr-ca-BVFxrE6-.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-Bh-7lY7W.js → CreatedOnDcom-fr-fr-92xJGi0w.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-D3J8peaF.js → CreatedOnDcom-pt-br-C40X9FAV.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-101mCRJX.js → CreatedOnDcom-pt-pt-CXxJUTUx.js} +1 -1
- package/lib/src/brand-page-maker/stores/history/history-store.js +6 -2
- package/lib/src/index.mjs +1 -1
- package/lib/src/{lib-MGJszuw2.js → lib-DaFVTyb9.js} +3 -3
- package/package.json +1 -1
- package/src/brand-page-maker/stores/history/history-store.test.ts +6 -7
- package/src/brand-page-maker/stores/history/history-store.ts +6 -2
|
@@ -29,11 +29,15 @@ import { useEventTracker } from '../../composables/useEventTracker';
|
|
|
29
29
|
// so a user holding down a key for 15 s still gets periodic snapshots.
|
|
30
30
|
const CAPTURE_DEBOUNCE_MS = 1700;
|
|
31
31
|
const CAPTURE_MAX_WAIT_MS = 10000;
|
|
32
|
-
// FR-12: 40-entry cap. FR-13: 100 MB memory budget. FR-13c:
|
|
32
|
+
// FR-12: 40-entry cap. FR-13: 100 MB memory budget. FR-13c: per-entry
|
|
33
33
|
// oversize threshold — entries above this are skipped + emit telemetry.
|
|
34
|
+
// 25 MB accommodates a high-res BYO logo upload, which renders ~2.5 MB
|
|
35
|
+
// of base64 PNG into each of four viewport sections (~10 MB) plus
|
|
36
|
+
// per-page logo content blocks. The 100 MB total budget still evicts
|
|
37
|
+
// oldest non-baseline entries to keep memory bounded.
|
|
34
38
|
const MAX_ENTRIES = 40;
|
|
35
39
|
const MAX_MEMORY_BYTES = 100 * 1024 * 1024;
|
|
36
|
-
const MAX_ENTRY_BYTES =
|
|
40
|
+
const MAX_ENTRY_BYTES = 25 * 1024 * 1024;
|
|
37
41
|
// Window after baseline-capture during which any auto-captured snapshot
|
|
38
42
|
// REPLACES the baseline rather than pushing a new entry. Covers post-init
|
|
39
43
|
// reactive cascades (template loadPageNo, router afterEach, layout settle)
|
package/lib/src/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as E, a as T, b as s, c as I, d as S, e as N, f as e, B as A, g as O, h as C, i as G, j as D, k as P, l as t, m as R, n as L, o as M, p as o, q as r, r as b, s as n, t as F, u as i, v as l, w as g, x as B, y as c, z as Y, C as U, D as d, E as u, F as H, G as p, H as y, I as K, J as k, K as m, L as V, M as X, N as h, O as v, P as W, Q as f, R as x, S as z, T as w, U as Z, V as j, W as Q, X as q, Y as J, Z as $, $ as aa, a0 as _a, a1 as Ea, a2 as Ta, a3 as sa, a4 as Ia, a5 as Sa, a6 as Na, a7 as ea, a8 as Aa, a9 as Oa, aa as Ca, ab as Ga, ac as Da, ad as Pa, ae as ta, af as Ra, ag as La, ah as Ma, ai as oa, aj as ra, ak as ba, al as na, am as Fa, an as ia, ao as la, ap as ga, aq as Ba, ar as ca, as as Ya, at as Ua, au as da, av as ua, aw as Ha, ax as pa, ay as ya, az as Ka, aA as ka, aB as ma, aC as Va, aD as Xa, aE as ha, aF as va, aG as Wa, aH as fa, aI as xa, aJ as za, aK as wa, aL as Za, aM as ja, aN as Qa, aO as qa, aP as Ja, aQ as $a, aR as a_, aS as __, aT as E_, aU as T_, aV as s_, aW as I_, aX as S_, aY as N_, aZ as e_, a_ as A_, a$ as O_, b0 as C_, b1 as G_, b2 as D_, b3 as P_, b4 as t_, b5 as R_, b6 as L_, b7 as M_, b8 as o_, b9 as r_, ba as b_, bb as n_, bc as F_, bd as i_, be as l_, bf as g_, bg as B_, bh as c_, bi as Y_, bj as U_, bk as d_, bl as u_, bm as H_, bn as p_, bo as y_, bp as K_, bq as k_, br as m_, bs as V_, bt as X_, bu as h_, bv as v_, bw as W_, bx as f_, by as x_, bz as z_, bA as w_, bB as Z_, bC as j_, bD as Q_, bE as q_, bF as J_, bG as $_, bH as aE, bI as _E, bJ as EE, bK as TE, bL as sE, bM as IE, bN as SE, bO as NE, bP as eE, bQ as AE, bR as OE, bS as CE, bT as GE, bU as DE, bV as PE, bW as tE, bX as RE, bY as LE, bZ as ME, b_ as oE, b$ as rE, c0 as bE, c1 as nE, c2 as FE, c3 as iE, c4 as lE, c5 as gE, c6 as BE, c7 as cE, c8 as YE, c9 as UE, ca as dE, cb as uE, cc as HE, cd as pE, ce as yE, cf as KE, cg as kE, ch as mE, ci as VE, cj as XE, ck as hE, cl as vE, cm as WE, cn as fE, co as xE } from "./lib-
|
|
1
|
+
import { A as E, a as T, b as s, c as I, d as S, e as N, f as e, B as A, g as O, h as C, i as G, j as D, k as P, l as t, m as R, n as L, o as M, p as o, q as r, r as b, s as n, t as F, u as i, v as l, w as g, x as B, y as c, z as Y, C as U, D as d, E as u, F as H, G as p, H as y, I as K, J as k, K as m, L as V, M as X, N as h, O as v, P as W, Q as f, R as x, S as z, T as w, U as Z, V as j, W as Q, X as q, Y as J, Z as $, $ as aa, a0 as _a, a1 as Ea, a2 as Ta, a3 as sa, a4 as Ia, a5 as Sa, a6 as Na, a7 as ea, a8 as Aa, a9 as Oa, aa as Ca, ab as Ga, ac as Da, ad as Pa, ae as ta, af as Ra, ag as La, ah as Ma, ai as oa, aj as ra, ak as ba, al as na, am as Fa, an as ia, ao as la, ap as ga, aq as Ba, ar as ca, as as Ya, at as Ua, au as da, av as ua, aw as Ha, ax as pa, ay as ya, az as Ka, aA as ka, aB as ma, aC as Va, aD as Xa, aE as ha, aF as va, aG as Wa, aH as fa, aI as xa, aJ as za, aK as wa, aL as Za, aM as ja, aN as Qa, aO as qa, aP as Ja, aQ as $a, aR as a_, aS as __, aT as E_, aU as T_, aV as s_, aW as I_, aX as S_, aY as N_, aZ as e_, a_ as A_, a$ as O_, b0 as C_, b1 as G_, b2 as D_, b3 as P_, b4 as t_, b5 as R_, b6 as L_, b7 as M_, b8 as o_, b9 as r_, ba as b_, bb as n_, bc as F_, bd as i_, be as l_, bf as g_, bg as B_, bh as c_, bi as Y_, bj as U_, bk as d_, bl as u_, bm as H_, bn as p_, bo as y_, bp as K_, bq as k_, br as m_, bs as V_, bt as X_, bu as h_, bv as v_, bw as W_, bx as f_, by as x_, bz as z_, bA as w_, bB as Z_, bC as j_, bD as Q_, bE as q_, bF as J_, bG as $_, bH as aE, bI as _E, bJ as EE, bK as TE, bL as sE, bM as IE, bN as SE, bO as NE, bP as eE, bQ as AE, bR as OE, bS as CE, bT as GE, bU as DE, bV as PE, bW as tE, bX as RE, bY as LE, bZ as ME, b_ as oE, b$ as rE, c0 as bE, c1 as nE, c2 as FE, c3 as iE, c4 as lE, c5 as gE, c6 as BE, c7 as cE, c8 as YE, c9 as UE, ca as dE, cb as uE, cc as HE, cd as pE, ce as yE, cf as KE, cg as kE, ch as mE, ci as VE, cj as XE, ck as hE, cl as vE, cm as WE, cn as fE, co as xE } from "./lib-DaFVTyb9.js";
|
|
2
2
|
import { createPinia as wE, setActivePinia as ZE } from "pinia";
|
|
3
3
|
export {
|
|
4
4
|
E as ABOUT_SECTION_SETTINGS_CONFIG,
|
|
@@ -60954,7 +60954,7 @@ const Kn = /* @__PURE__ */ Z6(GB1), WB1 = (e, t, n) => {
|
|
|
60954
60954
|
stopGeneration: l
|
|
60955
60955
|
};
|
|
60956
60956
|
}
|
|
60957
|
-
), KB1 = 1700, YB1 = 1e4, XB1 = 40, JB1 = 100 * 1024 * 1024, QB1 =
|
|
60957
|
+
), KB1 = 1700, YB1 = 1e4, XB1 = 40, JB1 = 100 * 1024 * 1024, QB1 = 25 * 1024 * 1024, eO1 = 2e3, an = ne("history", () => {
|
|
60958
60958
|
const e = h3(), t = Yi([]), n = s1(-1), i = s1(!1), o = s1(!1), s = s1(!1);
|
|
60959
60959
|
let r = 0;
|
|
60960
60960
|
const a = T(() => n.value > 0), l = T(
|
|
@@ -62190,10 +62190,10 @@ const Kn = /* @__PURE__ */ Z6(GB1), WB1 = (e, t, n) => {
|
|
|
62190
62190
|
R2(() => n.context.isDesignCom, async () => {
|
|
62191
62191
|
const M = P6().toLowerCase(), _ = n.context.isDesignCom ? "Dcom" : "BrandCrowd";
|
|
62192
62192
|
try {
|
|
62193
|
-
const { default: V } = await yk(/* @__PURE__ */ Object.assign({ "./watermark/CreatedOnBrandCrowd-de-de.vue": () => import("./CreatedOnBrandCrowd-de-de-
|
|
62193
|
+
const { default: V } = await yk(/* @__PURE__ */ Object.assign({ "./watermark/CreatedOnBrandCrowd-de-de.vue": () => import("./CreatedOnBrandCrowd-de-de-4mxqeHPP.js"), "./watermark/CreatedOnBrandCrowd-en-us.vue": () => import("./CreatedOnBrandCrowd-en-us-DQN_hGjC.js"), "./watermark/CreatedOnBrandCrowd-es-es.vue": () => import("./CreatedOnBrandCrowd-es-es-gijtJMPK.js"), "./watermark/CreatedOnBrandCrowd-fr-ca.vue": () => import("./CreatedOnBrandCrowd-fr-ca-BcOADD0V.js"), "./watermark/CreatedOnBrandCrowd-fr-fr.vue": () => import("./CreatedOnBrandCrowd-fr-fr-BcOADD0V.js"), "./watermark/CreatedOnBrandCrowd-pt-br.vue": () => import("./CreatedOnBrandCrowd-pt-br-B5eEyjAo.js"), "./watermark/CreatedOnBrandCrowd-pt-pt.vue": () => import("./CreatedOnBrandCrowd-pt-pt-B5eEyjAo.js"), "./watermark/CreatedOnDcom-de-de.vue": () => import("./CreatedOnDcom-de-de-DSGP6AAT.js"), "./watermark/CreatedOnDcom-en-us.vue": () => import("./CreatedOnDcom-en-us-BOuoJM_x.js"), "./watermark/CreatedOnDcom-es-es.vue": () => import("./CreatedOnDcom-es-es-kbiGFyBV.js"), "./watermark/CreatedOnDcom-fr-ca.vue": () => import("./CreatedOnDcom-fr-ca-BVFxrE6-.js"), "./watermark/CreatedOnDcom-fr-fr.vue": () => import("./CreatedOnDcom-fr-fr-92xJGi0w.js"), "./watermark/CreatedOnDcom-pt-br.vue": () => import("./CreatedOnDcom-pt-br-C40X9FAV.js"), "./watermark/CreatedOnDcom-pt-pt.vue": () => import("./CreatedOnDcom-pt-pt-CXxJUTUx.js") }), `./watermark/CreatedOn${_}-${M}.vue`, 3);
|
|
62194
62194
|
i.value = V;
|
|
62195
62195
|
} catch {
|
|
62196
|
-
const { default: H } = await yk(/* @__PURE__ */ Object.assign({ "./watermark/CreatedOnBrandCrowd-en-us.vue": () => import("./CreatedOnBrandCrowd-en-us-
|
|
62196
|
+
const { default: H } = await yk(/* @__PURE__ */ Object.assign({ "./watermark/CreatedOnBrandCrowd-en-us.vue": () => import("./CreatedOnBrandCrowd-en-us-DQN_hGjC.js"), "./watermark/CreatedOnDcom-en-us.vue": () => import("./CreatedOnDcom-en-us-BOuoJM_x.js") }), `./watermark/CreatedOn${_}-en-us.vue`, 3);
|
|
62197
62197
|
i.value = H;
|
|
62198
62198
|
}
|
|
62199
62199
|
}, {
|
package/package.json
CHANGED
|
@@ -844,13 +844,13 @@ describe('history-store (single stack + JSON-string snapshots)', () => {
|
|
|
844
844
|
expect(store.currentIndex).toBe(39);
|
|
845
845
|
});
|
|
846
846
|
|
|
847
|
-
it('FR-13c: skips oversize captures (>
|
|
847
|
+
it('FR-13c: skips oversize captures (> 25 MB) and leaves the stack alone', async () => {
|
|
848
848
|
const store = useHistoryStore();
|
|
849
849
|
|
|
850
850
|
await store.captureBaseline();
|
|
851
851
|
const lengthBefore = store.entries.length;
|
|
852
852
|
|
|
853
|
-
// Swap in a mock that produces a
|
|
853
|
+
// Swap in a mock that produces a > 25 MB snapshot on serialize.
|
|
854
854
|
const originalData = mockMakerStore.brandPageData;
|
|
855
855
|
|
|
856
856
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -858,8 +858,7 @@ describe('history-store (single stack + JSON-string snapshots)', () => {
|
|
|
858
858
|
v: 1,
|
|
859
859
|
pages: [],
|
|
860
860
|
styles: {},
|
|
861
|
-
|
|
862
|
-
_padding: 'x'.repeat(6 * 1024 * 1024),
|
|
861
|
+
_padding: 'x'.repeat(26 * 1024 * 1024),
|
|
863
862
|
};
|
|
864
863
|
|
|
865
864
|
const result = store.capture({ source: 'manual_edit', actor: 'user' });
|
|
@@ -932,7 +931,7 @@ describe('history-store (single stack + JSON-string snapshots)', () => {
|
|
|
932
931
|
expect((redoEvent!.props as any).actor).toBe('ai_builder');
|
|
933
932
|
});
|
|
934
933
|
|
|
935
|
-
it('emits oversized event when a capture exceeds
|
|
934
|
+
it('emits oversized event when a capture exceeds 25 MB', async () => {
|
|
936
935
|
const received: { name: string; props: unknown }[] = [];
|
|
937
936
|
|
|
938
937
|
useEventTracker().subscribe((event) =>
|
|
@@ -950,7 +949,7 @@ describe('history-store (single stack + JSON-string snapshots)', () => {
|
|
|
950
949
|
v: 1,
|
|
951
950
|
pages: [],
|
|
952
951
|
styles: {},
|
|
953
|
-
_padding: 'x'.repeat(
|
|
952
|
+
_padding: 'x'.repeat(26 * 1024 * 1024),
|
|
954
953
|
};
|
|
955
954
|
|
|
956
955
|
store.capture({ source: 'manual_edit', actor: 'user' });
|
|
@@ -962,7 +961,7 @@ describe('history-store (single stack + JSON-string snapshots)', () => {
|
|
|
962
961
|
expect(oversized).toBeDefined();
|
|
963
962
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
964
963
|
expect((oversized!.props as any).attempted_bytes).toBeGreaterThan(
|
|
965
|
-
|
|
964
|
+
25 * 1024 * 1024,
|
|
966
965
|
);
|
|
967
966
|
|
|
968
967
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -63,11 +63,15 @@ export interface HistoryEntry {
|
|
|
63
63
|
const CAPTURE_DEBOUNCE_MS = 1700;
|
|
64
64
|
const CAPTURE_MAX_WAIT_MS = 10000;
|
|
65
65
|
|
|
66
|
-
// FR-12: 40-entry cap. FR-13: 100 MB memory budget. FR-13c:
|
|
66
|
+
// FR-12: 40-entry cap. FR-13: 100 MB memory budget. FR-13c: per-entry
|
|
67
67
|
// oversize threshold — entries above this are skipped + emit telemetry.
|
|
68
|
+
// 25 MB accommodates a high-res BYO logo upload, which renders ~2.5 MB
|
|
69
|
+
// of base64 PNG into each of four viewport sections (~10 MB) plus
|
|
70
|
+
// per-page logo content blocks. The 100 MB total budget still evicts
|
|
71
|
+
// oldest non-baseline entries to keep memory bounded.
|
|
68
72
|
const MAX_ENTRIES = 40;
|
|
69
73
|
const MAX_MEMORY_BYTES = 100 * 1024 * 1024;
|
|
70
|
-
const MAX_ENTRY_BYTES =
|
|
74
|
+
const MAX_ENTRY_BYTES = 25 * 1024 * 1024;
|
|
71
75
|
|
|
72
76
|
// Window after baseline-capture during which any auto-captured snapshot
|
|
73
77
|
// REPLACES the baseline rather than pushing a new entry. Covers post-init
|