@fragmentsx/client-core 0.2.3 → 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.
Files changed (89) hide show
  1. package/dist/fragmentsClient.d.ts +26 -0
  2. package/dist/fragmentsClient.d.ts.map +1 -0
  3. package/dist/fragmentsClient.test.d.ts +2 -0
  4. package/dist/fragmentsClient.test.d.ts.map +1 -0
  5. package/dist/index.cjs.js +35 -56
  6. package/dist/index.d.ts +4 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.es.js +35 -56
  9. package/dist/plugins/fetch/beacon.d.ts +4 -0
  10. package/dist/plugins/fetch/beacon.d.ts.map +1 -0
  11. package/dist/plugins/fetch/emptyFragment.d.ts +50 -0
  12. package/dist/plugins/fetch/emptyFragment.d.ts.map +1 -0
  13. package/dist/plugins/fetch/fetcher.d.ts +8 -0
  14. package/dist/plugins/fetch/fetcher.d.ts.map +1 -0
  15. package/dist/plugins/fetch/fetcher.test.d.ts +2 -0
  16. package/dist/plugins/fetch/fetcher.test.d.ts.map +1 -0
  17. package/dist/plugins/fetch/index.d.ts +30 -0
  18. package/dist/plugins/fetch/index.d.ts.map +1 -0
  19. package/dist/plugins/fetch/queries/AreaListQuery.d.ts +43 -0
  20. package/dist/plugins/fetch/queries/AreaListQuery.d.ts.map +1 -0
  21. package/dist/plugins/fetch/queries/AreaQuery.d.ts +24 -0
  22. package/dist/plugins/fetch/queries/AreaQuery.d.ts.map +1 -0
  23. package/dist/plugins/fetch/queries/FragmentQuery.d.ts +31 -0
  24. package/dist/plugins/fetch/queries/FragmentQuery.d.ts.map +1 -0
  25. package/dist/plugins/fetch/queries/parts.d.ts +5 -0
  26. package/dist/plugins/fetch/queries/parts.d.ts.map +1 -0
  27. package/dist/plugins/fonts/index.d.ts +10 -0
  28. package/dist/plugins/fonts/index.d.ts.map +1 -0
  29. package/dist/plugins/fragments/index.d.ts +17 -0
  30. package/dist/plugins/fragments/index.d.ts.map +1 -0
  31. package/dist/plugins/lifecycle/globalManagerLifeCycle.d.ts +16 -0
  32. package/dist/plugins/lifecycle/globalManagerLifeCycle.d.ts.map +1 -0
  33. package/dist/plugins/load/index.d.ts +17 -0
  34. package/dist/plugins/load/index.d.ts.map +1 -0
  35. package/dist/plugins/load/index.test.d.ts +2 -0
  36. package/dist/plugins/load/index.test.d.ts.map +1 -0
  37. package/dist/plugins/metrics/globalMetrics.d.ts +11 -0
  38. package/dist/plugins/metrics/globalMetrics.d.ts.map +1 -0
  39. package/dist/plugins/metrics/index.d.ts +3 -0
  40. package/dist/plugins/metrics/index.d.ts.map +1 -0
  41. package/dist/plugins/metrics/queries/addClientMetric.d.ts +2 -0
  42. package/dist/plugins/metrics/queries/addClientMetric.d.ts.map +1 -0
  43. package/dist/plugins/metrics/trackAdPixel.d.ts +4 -0
  44. package/dist/plugins/metrics/trackAdPixel.d.ts.map +1 -0
  45. package/dist/plugins/scopes/index.d.ts +11 -0
  46. package/dist/plugins/scopes/index.d.ts.map +1 -0
  47. package/dist/plugins/ssr/index.d.ts +11 -0
  48. package/dist/plugins/ssr/index.d.ts.map +1 -0
  49. package/dist/plugins/ssr/index.test.d.ts +2 -0
  50. package/dist/plugins/ssr/index.test.d.ts.map +1 -0
  51. package/dist/plugins/styleSheet/fragment/index.d.ts +9 -0
  52. package/dist/plugins/styleSheet/fragment/index.d.ts.map +1 -0
  53. package/dist/plugins/styleSheet/global/index.d.ts +3 -0
  54. package/dist/plugins/styleSheet/global/index.d.ts.map +1 -0
  55. package/dist/plugins/styleSheet/index.d.ts +3 -0
  56. package/dist/plugins/styleSheet/index.d.ts.map +1 -0
  57. package/dist/plugins/styleSheet/utils/autoInjector.d.ts +9 -0
  58. package/dist/plugins/styleSheet/utils/autoInjector.d.ts.map +1 -0
  59. package/dist/plugins/styleSheet/utils/buildCssBlock.d.ts +6 -0
  60. package/dist/plugins/styleSheet/utils/buildCssBlock.d.ts.map +1 -0
  61. package/dist/plugins/styleSheet/utils/buildCssBlock.test.d.ts +2 -0
  62. package/dist/plugins/styleSheet/utils/buildCssBlock.test.d.ts.map +1 -0
  63. package/dist/plugins/styleSheet/utils/compareRules.d.ts +3 -0
  64. package/dist/plugins/styleSheet/utils/compareRules.d.ts.map +1 -0
  65. package/dist/plugins/styleSheet/utils/compareRules.test.d.ts +2 -0
  66. package/dist/plugins/styleSheet/utils/compareRules.test.d.ts.map +1 -0
  67. package/dist/plugins/styleSheet/utils/destroyStyle.d.ts +2 -0
  68. package/dist/plugins/styleSheet/utils/destroyStyle.d.ts.map +1 -0
  69. package/dist/plugins/styleSheet/utils/findGroups.d.ts +11 -0
  70. package/dist/plugins/styleSheet/utils/findGroups.d.ts.map +1 -0
  71. package/dist/plugins/styleSheet/utils/getAllChildren.d.ts +4 -0
  72. package/dist/plugins/styleSheet/utils/getAllChildren.d.ts.map +1 -0
  73. package/dist/plugins/styleSheet/utils/getAllChildren.test.d.ts +2 -0
  74. package/dist/plugins/styleSheet/utils/getAllChildren.test.d.ts.map +1 -0
  75. package/dist/plugins/styleSheet/utils/injectStyle.d.ts +2 -0
  76. package/dist/plugins/styleSheet/utils/injectStyle.d.ts.map +1 -0
  77. package/dist/plugins/styleSheet/utils/makeCss.d.ts +5 -0
  78. package/dist/plugins/styleSheet/utils/makeCss.d.ts.map +1 -0
  79. package/dist/plugins/styleSheet/utils/toCSS.d.ts +3 -0
  80. package/dist/plugins/styleSheet/utils/toCSS.d.ts.map +1 -0
  81. package/dist/plugins/styleSheet/utils/toCSS.test.d.ts +2 -0
  82. package/dist/plugins/styleSheet/utils/toCSS.test.d.ts.map +1 -0
  83. package/dist/plugins/styles/index.d.ts +3 -0
  84. package/dist/plugins/styles/index.d.ts.map +1 -0
  85. package/dist/testing/createTestFragmentsClient.d.ts +31 -0
  86. package/dist/testing/createTestFragmentsClient.d.ts.map +1 -0
  87. package/dist/testing/createTestFragmentsClient.test.d.ts +2 -0
  88. package/dist/testing/createTestFragmentsClient.test.d.ts.map +1 -0
  89. package/package.json +2 -2
@@ -0,0 +1,26 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ env: {
5
+ isSelf: boolean;
6
+ apiToken: string;
7
+ backendEndpoint: string;
8
+ referer?: string;
9
+ };
10
+ }
11
+ }
12
+ interface Options {
13
+ apiToken: string;
14
+ referer?: string;
15
+ backendEndpoint?: string;
16
+ isSelf?: boolean;
17
+ fragmentPlugins?: Plugin[];
18
+ }
19
+ export declare const PLUGIN_TYPES: {
20
+ FragmentsPlugin: "FragmentsPlugin";
21
+ GlobalStylesheet: "GlobalStylesheet";
22
+ FragmentStylesheet: "FragmentStylesheet";
23
+ };
24
+ export declare const createFragmentsClient: (options: Options) => import('@graph-state/core').GraphState<import('@graph-state/core').SystemFields, "GlobalManager">;
25
+ export {};
26
+ //# sourceMappingURL=fragmentsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentsClient.d.ts","sourceRoot":"","sources":["../src/fragmentsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAYxD,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,GAAG,EAAE;YACH,MAAM,EAAE,OAAO,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,eAAe,EAAE,MAAM,CAAC;YACxB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CACF;AAED,UAAU,OAAO;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAAa,OAAO,sGAkCrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fragmentsClient.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentsClient.test.d.ts","sourceRoot":"","sources":["../src/fragmentsClient.test.ts"],"names":[],"mappings":""}
package/dist/index.cjs.js CHANGED
@@ -1674,6 +1674,8 @@ const CssOverrideSchema = /* @__PURE__ */ object({
1674
1674
  color: layerField(/* @__PURE__ */ string(), { fallback: null }),
1675
1675
  lineHeight: layerField(/* @__PURE__ */ number(), { fallback: null }),
1676
1676
  fontSize: layerField(/* @__PURE__ */ number(), { fallback: null }),
1677
+ fontWeight: layerField(/* @__PURE__ */ union([/* @__PURE__ */ string(), /* @__PURE__ */ number()]), { fallback: 400 }),
1678
+ fontFamily: layerField(/* @__PURE__ */ string(), { fallback: null }),
1677
1679
  textDecoration: layerField(/* @__PURE__ */ picklist(Object.keys(textDecorations)), {
1678
1680
  fallback: null
1679
1681
  }),
@@ -1711,7 +1713,13 @@ const createFetcher = (baseUrl, defaultHeaders = {}) => {
1711
1713
  ...options.headers
1712
1714
  }
1713
1715
  }).then(async (res) => {
1714
- if (!res.ok) throw new Error(`Fetch error: ${res.status}`);
1716
+ if (!res.ok) {
1717
+ if (process.env.NODE_ENV === "production") {
1718
+ console.error(`Fetch error: ${res.status}`);
1719
+ return null;
1720
+ }
1721
+ throw new Error(`Fetch error: ${res.status}`);
1722
+ }
1715
1723
  const data = await res.json();
1716
1724
  if (!query2.includes("mutation")) {
1717
1725
  cache.set(cacheKey, data);
@@ -2349,7 +2357,7 @@ const fragmentStylesheetPlugin = (globalState) => (state) => {
2349
2357
  };
2350
2358
  return state;
2351
2359
  };
2352
- const globalCss = '[data-key^="Fragment"] {\n [data-key^="Text"] {\n p {\n margin: 0;\n font-size: 14px;\n color: #000;\n font-weight: 400;\n }\n }\n\n ul, ol {\n padding: 0;\n }\n\n /* 1. Use a more-intuitive box-sizing model */\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n /* 2. Remove default margin */\n\n * {\n margin: 0;\n }\n\n /* 3. Enable keyword animations */\n @media (prefers-reduced-motion: no-preference) {\n html {\n interpolate-size: allow-keywords;\n }\n }\n\n body {\n /* 4. Add accessible line-height */\n line-height: 1.5;\n /* 5. Improve text rendering */\n -webkit-font-smoothing: antialiased;\n }\n\n /* 6. Improve media defaults */\n\n img, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n }\n\n /* 7. Inherit fonts for form controls */\n\n input, button, textarea, select {\n font: inherit;\n }\n\n /* 8. Avoid text overflows */\n\n p, h1, h2, h3, h4, h5, h6 {\n overflow-wrap: break-word;\n }\n\n /*\n 10. Create a root stacking context\n */\n\n #root, #__next {\n isolation: isolate;\n }\n\n a {\n text-decoration: none;\n }\n}\n';
2360
+ const globalCss = '[data-key^="Text"] {\n p {\n margin: 0;\n font-size: 14px;\n color: #000;\n font-weight: 400;\n\n * {\n font-family: inherit;\n }\n }\n\n /*overflow-wrap: break-word;*/\n}\n\n[data-key^="Fragment"] {\n\n ul, ol {\n padding: 0;\n }\n\n /* 1. Use a more-intuitive box-sizing model */\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n /* 2. Remove default margin */\n\n * {\n margin: 0;\n }\n\n /* 3. Enable keyword animations */\n @media (prefers-reduced-motion: no-preference) {\n html {\n interpolate-size: allow-keywords;\n }\n }\n\n body {\n /* 4. Add accessible line-height */\n line-height: 1.5;\n /* 5. Improve text rendering */\n -webkit-font-smoothing: antialiased;\n }\n\n /* 6. Improve media defaults */\n\n img, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n }\n\n /* 7. Inherit fonts for form controls */\n\n input, button, textarea, select {\n font: inherit;\n }\n\n /* 8. Avoid text overflows */\n\n\n\n /*\n 10. Create a root stacking context\n */\n\n #root, #__next {\n isolation: isolate;\n }\n\n a {\n text-decoration: none;\n }\n}\n';
2353
2361
  const globalStylesheetPlugin = (state) => {
2354
2362
  if (!("$fragments" in state)) {
2355
2363
  throw new Error("GlobalStylesheetPlugin need $fragments plugin");
@@ -2580,34 +2588,8 @@ const loadPlugin = (state) => {
2580
2588
  console.error("LoadFragmentPlugin depends from Fetch and Fragments plugin");
2581
2589
  return state;
2582
2590
  }
2583
- const resourceCache = /* @__PURE__ */ new Map();
2584
- const createSuspenseResource = (key, fetcher) => {
2585
- if (resourceCache.has(key)) return resourceCache.get(key);
2586
- let status = "pending";
2587
- let result;
2588
- const suspender = fetcher().then(
2589
- (r2) => {
2590
- status = "success";
2591
- result = r2;
2592
- },
2593
- (e) => {
2594
- status = "error";
2595
- result = e;
2596
- }
2597
- );
2598
- const resource = {
2599
- read() {
2600
- if (status === "pending") throw suspender;
2601
- if (status === "error") throw result;
2602
- return result;
2603
- }
2604
- };
2605
- resourceCache.set(key, resource);
2606
- return resource;
2607
- };
2608
- const loadFragment = (fragmentId, options) => {
2591
+ const loadFragment = (fragmentId) => {
2609
2592
  var _a, _b;
2610
- const suspense = options == null ? void 0 : options.suspense;
2611
2593
  const readFragment = (_a = state == null ? void 0 : state.$fetch) == null ? void 0 : _a.readFragment(fragmentId);
2612
2594
  const fragmentManager = (_b = state == null ? void 0 : state.$fragments) == null ? void 0 : _b.getManager(fragmentId);
2613
2595
  if (readFragment && !fragmentManager) {
@@ -2618,38 +2600,18 @@ const loadPlugin = (state) => {
2618
2600
  return fragmentManager2;
2619
2601
  }
2620
2602
  if (readFragment && fragmentManager) return fragmentManager;
2621
- const loader = async () => {
2622
- var _a2;
2623
- const fragmentDocument = await ((_a2 = state == null ? void 0 : state.$fetch) == null ? void 0 : _a2.queryFragment(fragmentId));
2624
- return state.$fragments.createFragmentManager(
2625
- fragmentId,
2626
- fragmentDocument
2627
- );
2628
- };
2629
- if (suspense) {
2630
- const resource = createSuspenseResource(fragmentId, loader);
2631
- return resource.read();
2632
- }
2633
- return loader();
2603
+ return state.$fetch.queryFragment(fragmentId).then(
2604
+ (fragmentDocument) => state.$fragments.createFragmentManager(fragmentId, fragmentDocument)
2605
+ );
2634
2606
  };
2635
- const loadArea = (areaCode, options) => {
2607
+ const loadArea = (areaCode) => {
2636
2608
  var _a;
2637
- const suspense = options == null ? void 0 : options.suspense;
2638
2609
  const readArea2 = (_a = state == null ? void 0 : state.$fetch) == null ? void 0 : _a.readArea(areaCode);
2639
2610
  if (readArea2) return readArea2;
2640
- const loader = async () => {
2641
- var _a2;
2642
- const areaEntity = await ((_a2 = state == null ? void 0 : state.$fetch) == null ? void 0 : _a2.queryArea(areaCode));
2643
- await loadFragment(areaEntity == null ? void 0 : areaEntity.fragmentId, {
2644
- suspense: false
2645
- });
2611
+ return state.$fetch.queryArea(areaCode).then(async (areaEntity) => {
2612
+ await loadFragment(areaEntity == null ? void 0 : areaEntity.fragmentId);
2646
2613
  return areaEntity;
2647
- };
2648
- if (suspense) {
2649
- const resource = createSuspenseResource(areaCode, loader);
2650
- return resource.read();
2651
- }
2652
- return loader();
2614
+ });
2653
2615
  };
2654
2616
  const readArea = () => {
2655
2617
  return state;
@@ -2791,5 +2753,22 @@ const ssrPlugin = (state) => {
2791
2753
  };
2792
2754
  return state;
2793
2755
  };
2756
+ function createTestFragmentsClient(options) {
2757
+ const client = createFragmentsClient({
2758
+ apiToken: (options == null ? void 0 : options.apiToken) ?? "test-token"
2759
+ });
2760
+ if ((options == null ? void 0 : options.fragments) && Object.keys(options.fragments).length > 0) {
2761
+ Object.entries(options.fragments).forEach(([fragmentId, document2]) => {
2762
+ client.$fetch.cacheDocuments.set(Number(fragmentId), document2);
2763
+ });
2764
+ }
2765
+ if ((options == null ? void 0 : options.areas) && Object.keys(options.areas).length > 0) {
2766
+ Object.entries(options.areas).forEach(([areaCode, entity]) => {
2767
+ client.$fetch.cacheAreaDocuments.set(areaCode, entity);
2768
+ });
2769
+ }
2770
+ return client;
2771
+ }
2794
2772
  exports.createFragmentsClient = createFragmentsClient;
2773
+ exports.createTestFragmentsClient = createTestFragmentsClient;
2795
2774
  exports.ssrPlugin = ssrPlugin;
@@ -0,0 +1,4 @@
1
+ export { createFragmentsClient } from './fragmentsClient';
2
+ export { ssrPlugin } from './plugins/ssr';
3
+ export { createTestFragmentsClient, type TestFragmentsClientOptions, type FragmentDocument, type AreaCacheEntity, } from './testing/createTestFragmentsClient';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,qCAAqC,CAAC"}
package/dist/index.es.js CHANGED
@@ -1672,6 +1672,8 @@ const CssOverrideSchema = /* @__PURE__ */ object({
1672
1672
  color: layerField(/* @__PURE__ */ string(), { fallback: null }),
1673
1673
  lineHeight: layerField(/* @__PURE__ */ number(), { fallback: null }),
1674
1674
  fontSize: layerField(/* @__PURE__ */ number(), { fallback: null }),
1675
+ fontWeight: layerField(/* @__PURE__ */ union([/* @__PURE__ */ string(), /* @__PURE__ */ number()]), { fallback: 400 }),
1676
+ fontFamily: layerField(/* @__PURE__ */ string(), { fallback: null }),
1675
1677
  textDecoration: layerField(/* @__PURE__ */ picklist(Object.keys(textDecorations)), {
1676
1678
  fallback: null
1677
1679
  }),
@@ -1709,7 +1711,13 @@ const createFetcher = (baseUrl, defaultHeaders = {}) => {
1709
1711
  ...options.headers
1710
1712
  }
1711
1713
  }).then(async (res) => {
1712
- if (!res.ok) throw new Error(`Fetch error: ${res.status}`);
1714
+ if (!res.ok) {
1715
+ if (process.env.NODE_ENV === "production") {
1716
+ console.error(`Fetch error: ${res.status}`);
1717
+ return null;
1718
+ }
1719
+ throw new Error(`Fetch error: ${res.status}`);
1720
+ }
1713
1721
  const data = await res.json();
1714
1722
  if (!query2.includes("mutation")) {
1715
1723
  cache.set(cacheKey, data);
@@ -2347,7 +2355,7 @@ const fragmentStylesheetPlugin = (globalState) => (state) => {
2347
2355
  };
2348
2356
  return state;
2349
2357
  };
2350
- const globalCss = '[data-key^="Fragment"] {\n [data-key^="Text"] {\n p {\n margin: 0;\n font-size: 14px;\n color: #000;\n font-weight: 400;\n }\n }\n\n ul, ol {\n padding: 0;\n }\n\n /* 1. Use a more-intuitive box-sizing model */\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n /* 2. Remove default margin */\n\n * {\n margin: 0;\n }\n\n /* 3. Enable keyword animations */\n @media (prefers-reduced-motion: no-preference) {\n html {\n interpolate-size: allow-keywords;\n }\n }\n\n body {\n /* 4. Add accessible line-height */\n line-height: 1.5;\n /* 5. Improve text rendering */\n -webkit-font-smoothing: antialiased;\n }\n\n /* 6. Improve media defaults */\n\n img, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n }\n\n /* 7. Inherit fonts for form controls */\n\n input, button, textarea, select {\n font: inherit;\n }\n\n /* 8. Avoid text overflows */\n\n p, h1, h2, h3, h4, h5, h6 {\n overflow-wrap: break-word;\n }\n\n /*\n 10. Create a root stacking context\n */\n\n #root, #__next {\n isolation: isolate;\n }\n\n a {\n text-decoration: none;\n }\n}\n';
2358
+ const globalCss = '[data-key^="Text"] {\n p {\n margin: 0;\n font-size: 14px;\n color: #000;\n font-weight: 400;\n\n * {\n font-family: inherit;\n }\n }\n\n /*overflow-wrap: break-word;*/\n}\n\n[data-key^="Fragment"] {\n\n ul, ol {\n padding: 0;\n }\n\n /* 1. Use a more-intuitive box-sizing model */\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n /* 2. Remove default margin */\n\n * {\n margin: 0;\n }\n\n /* 3. Enable keyword animations */\n @media (prefers-reduced-motion: no-preference) {\n html {\n interpolate-size: allow-keywords;\n }\n }\n\n body {\n /* 4. Add accessible line-height */\n line-height: 1.5;\n /* 5. Improve text rendering */\n -webkit-font-smoothing: antialiased;\n }\n\n /* 6. Improve media defaults */\n\n img, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n }\n\n /* 7. Inherit fonts for form controls */\n\n input, button, textarea, select {\n font: inherit;\n }\n\n /* 8. Avoid text overflows */\n\n\n\n /*\n 10. Create a root stacking context\n */\n\n #root, #__next {\n isolation: isolate;\n }\n\n a {\n text-decoration: none;\n }\n}\n';
2351
2359
  const globalStylesheetPlugin = (state) => {
2352
2360
  if (!("$fragments" in state)) {
2353
2361
  throw new Error("GlobalStylesheetPlugin need $fragments plugin");
@@ -2578,34 +2586,8 @@ const loadPlugin = (state) => {
2578
2586
  console.error("LoadFragmentPlugin depends from Fetch and Fragments plugin");
2579
2587
  return state;
2580
2588
  }
2581
- const resourceCache = /* @__PURE__ */ new Map();
2582
- const createSuspenseResource = (key, fetcher) => {
2583
- if (resourceCache.has(key)) return resourceCache.get(key);
2584
- let status = "pending";
2585
- let result;
2586
- const suspender = fetcher().then(
2587
- (r2) => {
2588
- status = "success";
2589
- result = r2;
2590
- },
2591
- (e) => {
2592
- status = "error";
2593
- result = e;
2594
- }
2595
- );
2596
- const resource = {
2597
- read() {
2598
- if (status === "pending") throw suspender;
2599
- if (status === "error") throw result;
2600
- return result;
2601
- }
2602
- };
2603
- resourceCache.set(key, resource);
2604
- return resource;
2605
- };
2606
- const loadFragment = (fragmentId, options) => {
2589
+ const loadFragment = (fragmentId) => {
2607
2590
  var _a, _b;
2608
- const suspense = options == null ? void 0 : options.suspense;
2609
2591
  const readFragment = (_a = state == null ? void 0 : state.$fetch) == null ? void 0 : _a.readFragment(fragmentId);
2610
2592
  const fragmentManager = (_b = state == null ? void 0 : state.$fragments) == null ? void 0 : _b.getManager(fragmentId);
2611
2593
  if (readFragment && !fragmentManager) {
@@ -2616,38 +2598,18 @@ const loadPlugin = (state) => {
2616
2598
  return fragmentManager2;
2617
2599
  }
2618
2600
  if (readFragment && fragmentManager) return fragmentManager;
2619
- const loader = async () => {
2620
- var _a2;
2621
- const fragmentDocument = await ((_a2 = state == null ? void 0 : state.$fetch) == null ? void 0 : _a2.queryFragment(fragmentId));
2622
- return state.$fragments.createFragmentManager(
2623
- fragmentId,
2624
- fragmentDocument
2625
- );
2626
- };
2627
- if (suspense) {
2628
- const resource = createSuspenseResource(fragmentId, loader);
2629
- return resource.read();
2630
- }
2631
- return loader();
2601
+ return state.$fetch.queryFragment(fragmentId).then(
2602
+ (fragmentDocument) => state.$fragments.createFragmentManager(fragmentId, fragmentDocument)
2603
+ );
2632
2604
  };
2633
- const loadArea = (areaCode, options) => {
2605
+ const loadArea = (areaCode) => {
2634
2606
  var _a;
2635
- const suspense = options == null ? void 0 : options.suspense;
2636
2607
  const readArea2 = (_a = state == null ? void 0 : state.$fetch) == null ? void 0 : _a.readArea(areaCode);
2637
2608
  if (readArea2) return readArea2;
2638
- const loader = async () => {
2639
- var _a2;
2640
- const areaEntity = await ((_a2 = state == null ? void 0 : state.$fetch) == null ? void 0 : _a2.queryArea(areaCode));
2641
- await loadFragment(areaEntity == null ? void 0 : areaEntity.fragmentId, {
2642
- suspense: false
2643
- });
2609
+ return state.$fetch.queryArea(areaCode).then(async (areaEntity) => {
2610
+ await loadFragment(areaEntity == null ? void 0 : areaEntity.fragmentId);
2644
2611
  return areaEntity;
2645
- };
2646
- if (suspense) {
2647
- const resource = createSuspenseResource(areaCode, loader);
2648
- return resource.read();
2649
- }
2650
- return loader();
2612
+ });
2651
2613
  };
2652
2614
  const readArea = () => {
2653
2615
  return state;
@@ -2789,7 +2751,24 @@ const ssrPlugin = (state) => {
2789
2751
  };
2790
2752
  return state;
2791
2753
  };
2754
+ function createTestFragmentsClient(options) {
2755
+ const client = createFragmentsClient({
2756
+ apiToken: (options == null ? void 0 : options.apiToken) ?? "test-token"
2757
+ });
2758
+ if ((options == null ? void 0 : options.fragments) && Object.keys(options.fragments).length > 0) {
2759
+ Object.entries(options.fragments).forEach(([fragmentId, document2]) => {
2760
+ client.$fetch.cacheDocuments.set(Number(fragmentId), document2);
2761
+ });
2762
+ }
2763
+ if ((options == null ? void 0 : options.areas) && Object.keys(options.areas).length > 0) {
2764
+ Object.entries(options.areas).forEach(([areaCode, entity]) => {
2765
+ client.$fetch.cacheAreaDocuments.set(areaCode, entity);
2766
+ });
2767
+ }
2768
+ return client;
2769
+ }
2792
2770
  export {
2793
2771
  createFragmentsClient,
2772
+ createTestFragmentsClient,
2794
2773
  ssrPlugin
2795
2774
  };
@@ -0,0 +1,4 @@
1
+ export declare const fetchBeacon: (baseUrl: string) => {
2
+ sendBeacon: (data?: unknown) => void;
3
+ };
4
+ //# sourceMappingURL=beacon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/beacon.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,YAAa,MAAM;wBAMd,OAAO;CAWnC,CAAC"}
@@ -0,0 +1,50 @@
1
+ export declare const getEmptyFragment: (fragmentId: string) => {
2
+ [x: string]: {
3
+ _type: string;
4
+ _id: string;
5
+ children: string[];
6
+ layoutSizingHorizontal: string;
7
+ layoutSizingVertical: string;
8
+ horizontalGrow: string;
9
+ verticalGrow: string;
10
+ renderMode: string;
11
+ opacity: number;
12
+ visible: boolean;
13
+ overflow: string;
14
+ overrides: never[];
15
+ properties: string[];
16
+ parent?: undefined;
17
+ width?: undefined;
18
+ height?: undefined;
19
+ fillType?: undefined;
20
+ positionType?: undefined;
21
+ solidFill?: undefined;
22
+ name?: undefined;
23
+ isPrimary?: undefined;
24
+ threshold?: undefined;
25
+ } | {
26
+ _type: string;
27
+ _id: string;
28
+ opacity: number;
29
+ parent: string;
30
+ visible: boolean;
31
+ overflow: string;
32
+ children: never[];
33
+ width: number;
34
+ height: number;
35
+ layoutSizingHorizontal: string;
36
+ layoutSizingVertical: string;
37
+ fillType: string;
38
+ positionType: string;
39
+ solidFill: string;
40
+ name: string;
41
+ isPrimary: boolean;
42
+ threshold: number;
43
+ horizontalGrow?: undefined;
44
+ verticalGrow?: undefined;
45
+ renderMode?: undefined;
46
+ overrides?: undefined;
47
+ properties?: undefined;
48
+ };
49
+ };
50
+ //# sourceMappingURL=emptyFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emptyFragment.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/emptyFragment.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,eAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const createFetcher: (baseUrl: string, defaultHeaders?: HeadersInit) => {
2
+ query: <T>(query: string, variables?: Record<string, unknown>, options?: RequestInit) => Promise<{
3
+ data: T;
4
+ }>;
5
+ invalidate: (endpoint: string, options?: RequestInit) => void;
6
+ clearCache: () => void;
7
+ };
8
+ //# sourceMappingURL=fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/fetcher.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa,YACf,MAAM,mBACC,WAAW;YAWN,CAAC,SACb,MAAM,cACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACzB,WAAW,KACnB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;2BA8CO,MAAM,YAAY,WAAW;;CAO5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fetcher.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.test.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/fetcher.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ import { createFetcher } from './fetcher';
3
+ import { fetchBeacon } from './beacon';
4
+ interface AreaCacheEntity {
5
+ fragmentId: number;
6
+ props: Record<string, unknown>;
7
+ }
8
+ declare module "@graph-state/core" {
9
+ interface GraphState {
10
+ $fetch: {
11
+ /**
12
+ * Хранятся документы от фрагментов
13
+ */
14
+ cacheDocuments: Map<number, string>;
15
+ cacheCssChunks: Map<number, string>;
16
+ cacheAreaDocuments: Map<string, AreaCacheEntity>;
17
+ readCssChunk: (id: number) => string | null;
18
+ readFragment: (fragmentId: number) => string | null;
19
+ readArea: (areaCode: string) => AreaCacheEntity | null;
20
+ queryFragment: (fragmentId: number) => unknown;
21
+ queryArea: (areaCode: string) => AreaCacheEntity;
22
+ queryAreaList: (areaCodes: string[]) => AreaCacheEntity[];
23
+ query: ReturnType<typeof createFetcher>["query"];
24
+ sendBeacon: ReturnType<typeof fetchBeacon>["sendBeacon"];
25
+ };
26
+ }
27
+ }
28
+ export declare const fetchPlugin: Plugin;
29
+ export {};
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAgBrD,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,MAAM,EAAE;YACN;;eAEG;YACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACjD,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;YAC5C,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;YACpD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,GAAG,IAAI,CAAC;YACvD,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;YAC/C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,CAAC;YACjD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,CAAC;YAC1D,KAAK,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;YACjD,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC;SAC1D,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,EAAE,MA0NzB,CAAC"}
@@ -0,0 +1,43 @@
1
+ export interface AreaListQueryReturn {
2
+ clientAreas: {
3
+ areaId: number;
4
+ campaignId: number;
5
+ areaProperties: unknown[];
6
+ projectProperties: unknown[];
7
+ font: {
8
+ id: number;
9
+ family: string;
10
+ files: {
11
+ url: string;
12
+ }[];
13
+ };
14
+ variant: {
15
+ id: number;
16
+ fragment: {
17
+ props: Record<string, unknown>;
18
+ fragment: {
19
+ id: number;
20
+ document: string;
21
+ linkedFragments: {
22
+ id: number;
23
+ document: string;
24
+ };
25
+ googleFonts: {
26
+ id: number;
27
+ family: string;
28
+ files: {
29
+ url: string;
30
+ }[];
31
+ }[];
32
+ };
33
+ };
34
+ };
35
+ }[];
36
+ }
37
+ export declare const getAreaListQuery: (areaCodes: string) => {
38
+ query: string;
39
+ variables: {
40
+ areaCodes: string;
41
+ };
42
+ };
43
+ //# sourceMappingURL=AreaListQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaListQuery.d.ts","sourceRoot":"","sources":["../../../../src/plugins/fetch/queries/AreaListQuery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,OAAO,EAAE,CAAC;QAC1B,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE;gBACL,GAAG,EAAE,MAAM,CAAC;aACb,EAAE,CAAC;SACL,CAAC;QACF,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE;gBACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/B,QAAQ,EAAE;oBACR,EAAE,EAAE,MAAM,CAAC;oBACX,QAAQ,EAAE,MAAM,CAAC;oBACjB,eAAe,EAAE;wBACf,EAAE,EAAE,MAAM,CAAC;wBACX,QAAQ,EAAE,MAAM,CAAC;qBAClB,CAAC;oBACF,WAAW,EAAE;wBACX,EAAE,EAAE,MAAM,CAAC;wBACX,MAAM,EAAE,MAAM,CAAC;wBACf,KAAK,EAAE;4BACL,GAAG,EAAE,MAAM,CAAC;yBACb,EAAE,CAAC;qBACL,EAAE,CAAC;iBACL,CAAC;aACH,CAAC;SACH,CAAC;KACH,EAAE,CAAC;CACL;AAED,eAAO,MAAM,gBAAgB,cAAe,MAAM;;;;;CAiCjD,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface AreaQueryReturn {
2
+ clientArea: {
3
+ variant: {
4
+ fragment: {
5
+ props: Record<string, unknown>;
6
+ fragment: {
7
+ id: number;
8
+ document: string;
9
+ linkedFragments: {
10
+ id: number;
11
+ document: string;
12
+ };
13
+ };
14
+ };
15
+ };
16
+ };
17
+ }
18
+ export declare const getAreaQuery: (areaCode: string) => {
19
+ query: string;
20
+ variables: {
21
+ areaCode: string;
22
+ };
23
+ };
24
+ //# sourceMappingURL=AreaQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaQuery.d.ts","sourceRoot":"","sources":["../../../../src/plugins/fetch/queries/AreaQuery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/B,QAAQ,EAAE;oBACR,EAAE,EAAE,MAAM,CAAC;oBACX,QAAQ,EAAE,MAAM,CAAC;oBACjB,eAAe,EAAE;wBACf,EAAE,EAAE,MAAM,CAAC;wBACX,QAAQ,EAAE,MAAM,CAAC;qBAClB,CAAC;iBACH,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,eAAO,MAAM,YAAY,aAAc,MAAM;;;;;CAgB5C,CAAC"}
@@ -0,0 +1,31 @@
1
+ interface Fragment {
2
+ id: number;
3
+ document: string;
4
+ linkedFragments: Fragment;
5
+ googleFonts: {
6
+ id: number;
7
+ family: string;
8
+ files: {
9
+ url: string;
10
+ }[];
11
+ }[];
12
+ linkedCssChunk: {
13
+ id: number;
14
+ content: string;
15
+ }[];
16
+ }
17
+ export interface QueryReturnSelf {
18
+ fragment: Fragment[];
19
+ }
20
+ export interface QueryReturnNotSelf {
21
+ clientFragment: Fragment;
22
+ }
23
+ export declare const getFragmentQuery: <TIsSelf extends boolean>(fragmentId: number, isSelf?: TIsSelf) => {
24
+ query: string;
25
+ variables: {
26
+ fragmentId: number;
27
+ };
28
+ _type: TIsSelf extends true ? QueryReturnSelf : QueryReturnNotSelf;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=FragmentQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentQuery.d.ts","sourceRoot":"","sources":["../../../../src/plugins/fetch/queries/FragmentQuery.ts"],"names":[],"mappings":"AAEA,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,QAAQ,CAAC;IAC1B,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;SACb,EAAE,CAAC;KACL,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAAS,OAAO,cAC1C,MAAM,WACT,OAAO;;;;;WAiBQ,OAAO,SAAS,IAAI,GACtC,eAAe,GACf,kBAAkB;CAEzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const googleFonts = "googleFonts {\n id\n variants\n subsets\n family\n version\n files {\n url\n variant\n }\n category\n }";
2
+ export declare const linkedCssChunk = "linkedCssChunk {\n id\n content\n }";
3
+ export declare const linkedFragments = "{\n id\n document\n googleFonts {\n id\n variants\n subsets\n family\n version\n files {\n url\n variant\n }\n category\n }\n linkedCssChunk {\n id\n content\n }\n }";
4
+ export declare const fragment = "\n {\n id\n document\n linkedFragments {\n id\n document\n googleFonts {\n id\n variants\n subsets\n family\n version\n files {\n url\n variant\n }\n category\n }\n linkedCssChunk {\n id\n content\n }\n }\n googleFonts {\n id\n variants\n subsets\n family\n version\n files {\n url\n variant\n }\n category\n }\n linkedCssChunk {\n id\n content\n }\n }\n ";
5
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../src/plugins/fetch/queries/parts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,qOAWd,CAAC;AAEX,eAAO,MAAM,cAAc,iEAGjB,CAAC;AAEX,eAAO,MAAM,eAAe,+WAKlB,CAAC;AAEX,eAAO,MAAM,QAAQ,mvBAQZ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $fonts: {
5
+ registerFont: (link: any) => void;
6
+ };
7
+ }
8
+ }
9
+ export declare const fontsPlugin: Plugin;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/fonts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,CAAC,IAAI,KAAA,KAAK,IAAI,CAAC;SAC9B,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,EAAE,MAgEzB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { LinkKey, Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $fragments: {
5
+ key: LinkKey;
6
+ createFragmentManager: (fragmentId: number, initialDocument?: unknown) => void;
7
+ getManager: (fragmentId: number) => GraphState;
8
+ getManagers: () => Record<number, GraphState>;
9
+ };
10
+ }
11
+ }
12
+ interface FragmentsPluginOptions {
13
+ plugins?: Plugin[];
14
+ }
15
+ export declare const fragmentsPlugin: (options: FragmentsPluginOptions) => Plugin;
16
+ export {};
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/fragments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgBjE,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,UAAU,EAAE;YACV,GAAG,EAAE,OAAO,CAAC;YACb,qBAAqB,EAAE,CACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;YACV,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,UAAU,CAAC;YAC/C,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC/C,CAAC;KACH;CACF;AAED,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,YAChB,sBAAsB,KAAG,MAqGlC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { LinkKey, Plugin } from '@graph-state/core';
2
+ interface LifeCycleGraph {
3
+ _type: "LifeCycle";
4
+ status: "init" | "release" | null;
5
+ }
6
+ declare module "@graph-state/core" {
7
+ interface GraphState {
8
+ $lifeCycle: {
9
+ key: LinkKey;
10
+ on: (callback: (graph: LifeCycleGraph) => void) => ReturnType<GraphState["subscribe"]>;
11
+ };
12
+ }
13
+ }
14
+ export declare const globalManagerLifeCyclePlugin: Plugin;
15
+ export {};
16
+ //# sourceMappingURL=globalManagerLifeCycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalManagerLifeCycle.d.ts","sourceRoot":"","sources":["../../../src/plugins/lifecycle/globalManagerLifeCycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,cAAc;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACnC;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,UAAU,EAAE;YACV,GAAG,EAAE,OAAO,CAAC;YACb,EAAE,EAAE,CACF,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,KACtC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1C,CAAC;KACH;CACF;AAED,eAAO,MAAM,4BAA4B,EAAE,MAe1C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $load: {
5
+ loadFragment: (fragmentID: number) => GraphState | Promise<GraphState>;
6
+ loadArea: (areaCode: string) => {
7
+ fragmentId: number;
8
+ props: unknown;
9
+ } | Promise<{
10
+ fragmentId: number;
11
+ props: unknown;
12
+ }>;
13
+ };
14
+ }
15
+ }
16
+ export declare const loadPlugin: Plugin;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/load/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,KAAK,EAAE;YACL,YAAY,EAAE,CACZ,UAAU,EAAE,MAAM,KACf,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,KACb;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,OAAO,CAAA;aAAE,GAAG,OAAO,CAAC;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;SAC/F,CAAC;KACH;CACF;AAED,eAAO,MAAM,UAAU,EAAE,MA6CxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/plugins/load/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $metrics: {
5
+ reachGoal: (goal: string) => void;
6
+ trackAdPixel: (pixelUrl: string) => void;
7
+ };
8
+ }
9
+ }
10
+ export declare const globalMetricsPlugin: Plugin;
11
+ //# sourceMappingURL=globalMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalMetrics.d.ts","sourceRoot":"","sources":["../../../src/plugins/metrics/globalMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3C,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,QAAQ,EAAE;YACR,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;YAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;SAC1C,CAAC;KACH;CACF;AAeD,eAAO,MAAM,mBAAmB,EAAE,MAkBjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ export declare const metricsPlugin: Plugin;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAkB3C,eAAO,MAAM,aAAa,EAAE,MA4B3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const addClientMetric = "mutation AddClientMetric($type: ClientMetricType!, $value: GoalAchievementPost!) {\n addClientMetric(metric: {metricType: $type, achievement: $value})\n}";
2
+ //# sourceMappingURL=addClientMetric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addClientMetric.d.ts","sourceRoot":"","sources":["../../../../src/plugins/metrics/queries/addClientMetric.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+JAE1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ type BeaconSender = (url: string) => boolean | void;
2
+ export declare const trackAdPixel: (pixelUrl: string, customBeacon?: BeaconSender) => void;
3
+ export {};
4
+ //# sourceMappingURL=trackAdPixel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackAdPixel.d.ts","sourceRoot":"","sources":["../../../src/plugins/metrics/trackAdPixel.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;AAyDpD,eAAO,MAAM,YAAY,aACb,MAAM,iBACD,YAAY,SAgC5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $ssr: {
5
+ extractData: () => unknown;
6
+ restoreData: (input: unknown) => void;
7
+ };
8
+ }
9
+ }
10
+ export declare const scopesPlugin: Plugin;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/scopes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,OAAO,CAAC;YAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;SACvC,CAAC;KACH;CACF;AAED,eAAO,MAAM,YAAY,EAAE,MAa1B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ declare module "@graph-state/core" {
3
+ interface GraphState {
4
+ $ssr: {
5
+ extractData: () => unknown;
6
+ restoreData: (input: unknown) => void;
7
+ };
8
+ }
9
+ }
10
+ export declare const ssrPlugin: Plugin;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/ssr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,OAAO,CAAC;YAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;SACvC,CAAC;KACH;CACF;AAED,eAAO,MAAM,SAAS,EAAE,MAmDvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/plugins/ssr/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { GraphState, Plugin } from '@graph-state/core';
2
+ import { CSSRules } from '../utils/compareRules';
3
+ /**
4
+ * Тип для кэша стилей слоя
5
+ */
6
+ export type LayerStyles = Record<string, CSSRules>;
7
+ export type LayerResolver = GraphState["resolve"];
8
+ export declare const fragmentStylesheetPlugin: (globalState: any) => Plugin;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/fragment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQ/E,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAmHlD,eAAO,MAAM,wBAAwB,wBACpB,MAkFd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ export declare const globalStylesheetPlugin: Plugin;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/global/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoChE,eAAO,MAAM,sBAAsB,EAAE,MAgEpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { fragmentStylesheetPlugin } from './fragment';
2
+ export { globalStylesheetPlugin } from './global';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/styleSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Graph, GraphState, LinkKey } from '@graph-state/core';
2
+ export interface AutoInjectorControls {
3
+ mount: () => void;
4
+ unmount: () => void;
5
+ injectStyle: (styles: string, customKey?: string) => void;
6
+ removeStyle: (customKey?: string) => void;
7
+ }
8
+ export declare const autoInjector: (key: string, state: GraphState, graphKey: LinkKey, transformStyles?: (graph: Graph) => string[]) => AutoInjectorControls;
9
+ //# sourceMappingURL=autoInjector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoInjector.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/autoInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI/D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,YAAY,QAClB,MAAM,SACJ,UAAU,YACP,OAAO,oBACC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,KAC3C,oBA+EF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type CSSBlock = {
2
+ hash: string;
3
+ css: string;
4
+ };
5
+ export declare const buildCssBlock: (block: CSSBlock | undefined) => string;
6
+ //# sourceMappingURL=buildCssBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCssBlock.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/buildCssBlock.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,eAAO,MAAM,aAAa,UAAW,QAAQ,GAAG,SAAS,KAAG,MAI3D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=buildCssBlock.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCssBlock.test.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/buildCssBlock.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type CSSRules = Record<string, string | number>;
2
+ export declare function compareRules(prev?: CSSRules, next?: CSSRules): CSSRules;
3
+ //# sourceMappingURL=compareRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compareRules.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/compareRules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEvD,wBAAgB,YAAY,CAC1B,IAAI,GAAE,QAAa,EACnB,IAAI,GAAE,QAAa,GAClB,QAAQ,CAWV"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compareRules.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compareRules.test.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/compareRules.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const destroyStyle: (id: string) => (() => undefined) | undefined;
2
+ //# sourceMappingURL=destroyStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroyStyle.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/destroyStyle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,OAAQ,MAAM,kCAUtC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { LinkKey } from '@graph-state/core';
2
+ import { LayerResolver, LayerStyles } from '../fragment';
3
+ export interface FragmentGroup {
4
+ fragmentLayerKey: LinkKey;
5
+ fragment: any;
6
+ primary: any;
7
+ smaller: any[];
8
+ larger: any[];
9
+ }
10
+ export declare const findGroups: (styles: LayerStyles, layerResolver: LayerResolver) => FragmentGroup[];
11
+ //# sourceMappingURL=findGroups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findGroups.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/findGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AAED,eAAO,MAAM,UAAU,WACb,WAAW,iBACJ,aAAa,KAC3B,aAAa,EAoCf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { LinkKey } from '@graph-state/core';
2
+ import { LayerResolver } from '../fragment';
3
+ export declare const getAllChildren: (layerResolver: LayerResolver, layerKey: LinkKey, acc?: string[]) => string[];
4
+ //# sourceMappingURL=getAllChildren.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAllChildren.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/getAllChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,kBACV,aAAa,YAClB,OAAO,QACZ,MAAM,EAAE,KACZ,MAAM,EAeR,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getAllChildren.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAllChildren.test.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/getAllChildren.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const injectStyle: (id: string, styles: string) => (() => void) | undefined;
2
+ //# sourceMappingURL=injectStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectStyle.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/injectStyle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,OAAQ,MAAM,UAAU,MAAM,6BAsBrD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { LinkKey } from '@graph-state/core';
2
+ import { CSSBlock } from './buildCssBlock';
3
+ import { LayerResolver, LayerStyles } from '../fragment';
4
+ export declare const makeCss: (styles: LayerStyles, layerResolver: LayerResolver) => (layerKey: LinkKey) => CSSBlock;
5
+ //# sourceMappingURL=makeCss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeCss.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/makeCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,OAAO,WACT,WAAW,iBAAiB,aAAa,gBACvC,OAAO,KAAG,QAoBpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CSSRules } from './compareRules';
2
+ export declare const toCSS: (styles: CSSRules) => string;
3
+ //# sourceMappingURL=toCSS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCSS.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/toCSS.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,eAAO,MAAM,KAAK,WAAY,QAAQ,KAAG,MAU1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toCSS.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCSS.test.d.ts","sourceRoot":"","sources":["../../../../src/plugins/styleSheet/utils/toCSS.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '@graph-state/core';
2
+ export declare const stylesPlugin: Plugin;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKrE,eAAO,MAAM,YAAY,EAAE,MA2C1B,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { GraphState } from '@graph-state/core';
2
+ /**
3
+ * Document object for a fragment. Must have _type: "Fragment" and _id.
4
+ * Structure matches save.json / API response.
5
+ */
6
+ export type FragmentDocument = {
7
+ _type: string;
8
+ _id: string;
9
+ children?: unknown[];
10
+ [key: string]: unknown;
11
+ };
12
+ /**
13
+ * Area cache entity as stored by fetch plugin.
14
+ */
15
+ export interface AreaCacheEntity {
16
+ fragmentId: number;
17
+ props: Record<string, unknown>;
18
+ }
19
+ export interface TestFragmentsClientOptions {
20
+ apiToken?: string;
21
+ /** Pre-seeded fragment documents: fragmentId -> document */
22
+ fragments?: Record<number, FragmentDocument>;
23
+ /** Pre-seeded area cache: areaCode -> entity */
24
+ areas?: Record<string, AreaCacheEntity>;
25
+ }
26
+ /**
27
+ * Creates a fragments client for testing with pre-seeded cache.
28
+ * loadFragment/loadArea will use cached data—no network requests.
29
+ */
30
+ export declare function createTestFragmentsClient(options?: TestFragmentsClientOptions): GraphState;
31
+ //# sourceMappingURL=createTestFragmentsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTestFragmentsClient.d.ts","sourceRoot":"","sources":["../../src/testing/createTestFragmentsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,CAAC,EAAE,0BAA0B,GACnC,UAAU,CAkBZ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createTestFragmentsClient.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTestFragmentsClient.test.d.ts","sourceRoot":"","sources":["../../src/testing/createTestFragmentsClient.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fragmentsx/client-core",
3
3
  "private": false,
4
- "version": "0.2.3",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@graph-state/checkers": "^0.1.3",
23
23
  "@graph-state/core": "^0.13.2",
24
- "@fragmentsx/definition": "0.2.1",
24
+ "@fragmentsx/definition": "0.2.2",
25
25
  "@fragmentsx/utils": "0.2.0"
26
26
  },
27
27
  "devDependencies": {