olova 2.0.40 → 2.0.41

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 (156) hide show
  1. package/README.md +305 -12
  2. package/dist/client.d.ts +9 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +8 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/core/config.d.ts +179 -0
  7. package/dist/core/config.d.ts.map +1 -0
  8. package/dist/core/config.js +33 -0
  9. package/dist/core/config.js.map +1 -0
  10. package/dist/core/index.d.ts +8 -0
  11. package/dist/core/index.d.ts.map +1 -0
  12. package/dist/core/index.js +7 -0
  13. package/dist/core/index.js.map +1 -0
  14. package/dist/core/types.d.ts +16 -0
  15. package/dist/core/types.d.ts.map +1 -0
  16. package/dist/core/types.js +2 -0
  17. package/dist/core/types.js.map +1 -0
  18. package/dist/data/hooks.d.ts +5 -0
  19. package/dist/data/hooks.d.ts.map +1 -0
  20. package/dist/data/hooks.js +19 -0
  21. package/dist/data/hooks.js.map +1 -0
  22. package/dist/data/index.d.ts +9 -0
  23. package/dist/data/index.d.ts.map +1 -0
  24. package/dist/data/index.js +9 -0
  25. package/dist/data/index.js.map +1 -0
  26. package/dist/data/provider.d.ts +10 -0
  27. package/dist/data/provider.d.ts.map +1 -0
  28. package/dist/data/provider.js +10 -0
  29. package/dist/data/provider.js.map +1 -0
  30. package/dist/data/serialize.d.ts +10 -0
  31. package/dist/data/serialize.d.ts.map +1 -0
  32. package/dist/data/serialize.js +16 -0
  33. package/dist/data/serialize.js.map +1 -0
  34. package/dist/data/types.d.ts +9 -0
  35. package/dist/data/types.d.ts.map +1 -0
  36. package/dist/data/types.js +2 -0
  37. package/dist/data/types.js.map +1 -0
  38. package/dist/head/Head.d.ts +8 -0
  39. package/dist/head/Head.d.ts.map +1 -0
  40. package/dist/head/Head.js +56 -0
  41. package/dist/head/Head.js.map +1 -0
  42. package/dist/head/HeadProvider.d.ts +31 -0
  43. package/dist/head/HeadProvider.d.ts.map +1 -0
  44. package/dist/head/HeadProvider.js +17 -0
  45. package/dist/head/HeadProvider.js.map +1 -0
  46. package/dist/head/index.d.ts +8 -0
  47. package/dist/head/index.d.ts.map +1 -0
  48. package/dist/head/index.js +8 -0
  49. package/dist/head/index.js.map +1 -0
  50. package/dist/head/ssr.d.ts +9 -0
  51. package/dist/head/ssr.d.ts.map +1 -0
  52. package/dist/head/ssr.js +35 -0
  53. package/dist/head/ssr.js.map +1 -0
  54. package/dist/hydration/context.d.ts +14 -0
  55. package/dist/hydration/context.d.ts.map +1 -0
  56. package/dist/hydration/context.js +20 -0
  57. package/dist/hydration/context.js.map +1 -0
  58. package/dist/hydration/index.d.ts +15 -0
  59. package/dist/hydration/index.d.ts.map +1 -0
  60. package/dist/hydration/index.js +25 -0
  61. package/dist/hydration/index.js.map +1 -0
  62. package/dist/hydration/payload.d.ts +46 -0
  63. package/dist/hydration/payload.d.ts.map +1 -0
  64. package/dist/hydration/payload.js +99 -0
  65. package/dist/hydration/payload.js.map +1 -0
  66. package/dist/hydration/scheduler.d.ts +16 -0
  67. package/dist/hydration/scheduler.d.ts.map +1 -0
  68. package/dist/hydration/scheduler.js +83 -0
  69. package/dist/hydration/scheduler.js.map +1 -0
  70. package/dist/hydration/seo.d.ts +10 -0
  71. package/dist/hydration/seo.d.ts.map +1 -0
  72. package/dist/hydration/seo.js +110 -0
  73. package/dist/hydration/seo.js.map +1 -0
  74. package/dist/hydration/serialization.d.ts +30 -0
  75. package/dist/hydration/serialization.d.ts.map +1 -0
  76. package/dist/hydration/serialization.js +99 -0
  77. package/dist/hydration/serialization.js.map +1 -0
  78. package/dist/hydration/types.d.ts +104 -0
  79. package/dist/hydration/types.d.ts.map +1 -0
  80. package/dist/hydration/types.js +2 -0
  81. package/dist/hydration/types.js.map +1 -0
  82. package/dist/index.d.ts +15 -85
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +17 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/plugin/cache.d.ts +66 -0
  87. package/dist/plugin/cache.d.ts.map +1 -0
  88. package/dist/plugin/cache.js +129 -0
  89. package/dist/plugin/cache.js.map +1 -0
  90. package/dist/plugin/index.d.ts +8 -0
  91. package/dist/plugin/index.d.ts.map +1 -0
  92. package/dist/plugin/index.js +8 -0
  93. package/dist/plugin/index.js.map +1 -0
  94. package/dist/plugin/plugin.d.ts +25 -0
  95. package/dist/plugin/plugin.d.ts.map +1 -0
  96. package/dist/plugin/plugin.js +601 -0
  97. package/dist/plugin/plugin.js.map +1 -0
  98. package/dist/router/Link.d.ts +7 -0
  99. package/dist/router/Link.d.ts.map +1 -0
  100. package/dist/router/Link.js +53 -0
  101. package/dist/router/Link.js.map +1 -0
  102. package/dist/router/Router.d.ts +7 -0
  103. package/dist/router/Router.d.ts.map +1 -0
  104. package/dist/router/Router.js +263 -0
  105. package/dist/router/Router.js.map +1 -0
  106. package/dist/router/context.d.ts +13 -0
  107. package/dist/router/context.d.ts.map +1 -0
  108. package/dist/router/context.js +47 -0
  109. package/dist/router/context.js.map +1 -0
  110. package/dist/router/hooks.d.ts +30 -0
  111. package/dist/router/hooks.d.ts.map +1 -0
  112. package/dist/router/hooks.js +59 -0
  113. package/dist/router/hooks.js.map +1 -0
  114. package/dist/router/index.d.ts +13 -0
  115. package/dist/router/index.d.ts.map +1 -0
  116. package/dist/router/index.js +14 -0
  117. package/dist/router/index.js.map +1 -0
  118. package/dist/router/matching.d.ts +19 -0
  119. package/dist/router/matching.d.ts.map +1 -0
  120. package/dist/router/matching.js +115 -0
  121. package/dist/router/matching.js.map +1 -0
  122. package/dist/router/navigation.d.ts +26 -0
  123. package/dist/router/navigation.d.ts.map +1 -0
  124. package/dist/router/navigation.js +65 -0
  125. package/dist/router/navigation.js.map +1 -0
  126. package/dist/router/types.d.ts +61 -0
  127. package/dist/router/types.d.ts.map +1 -0
  128. package/dist/router/types.js +6 -0
  129. package/dist/router/types.js.map +1 -0
  130. package/dist/server.d.ts +10 -16
  131. package/dist/server.d.ts.map +1 -0
  132. package/dist/server.js +7 -19
  133. package/dist/server.js.map +1 -1
  134. package/dist/streaming/html.d.ts +29 -0
  135. package/dist/streaming/html.d.ts.map +1 -0
  136. package/dist/streaming/html.js +72 -0
  137. package/dist/streaming/html.js.map +1 -0
  138. package/dist/streaming/index.d.ts +7 -0
  139. package/dist/streaming/index.d.ts.map +1 -0
  140. package/dist/streaming/index.js +7 -0
  141. package/dist/streaming/index.js.map +1 -0
  142. package/dist/streaming/render.d.ts +32 -0
  143. package/dist/streaming/render.d.ts.map +1 -0
  144. package/dist/streaming/render.js +83 -0
  145. package/dist/streaming/render.js.map +1 -0
  146. package/dist/streaming/utils.d.ts +30 -0
  147. package/dist/streaming/utils.d.ts.map +1 -0
  148. package/dist/streaming/utils.js +61 -0
  149. package/dist/streaming/utils.js.map +1 -0
  150. package/package.json +43 -35
  151. package/dist/router.d.ts +0 -3
  152. package/dist/router.js +0 -234
  153. package/dist/router.js.map +0 -1
  154. package/dist/vite.d.ts +0 -98
  155. package/dist/vite.js +0 -1820
  156. package/dist/vite.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export declare const PageDataContext: React.Context<any>;
3
+ /**
4
+ * Provider for page data
5
+ */
6
+ export declare function PageDataProvider({ children, data }: {
7
+ children: React.ReactNode;
8
+ data: any;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/data/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,eAAe,oBAA2B,CAAC;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACL,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,GAAG,CAAC;CACX,2CAMA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext } from 'react';
3
+ export const PageDataContext = createContext(null);
4
+ /**
5
+ * Provider for page data
6
+ */
7
+ export function PageDataProvider({ children, data }) {
8
+ return (_jsx(PageDataContext.Provider, { value: data, children: children }));
9
+ }
10
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/data/provider.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAM,IAAI,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EAIL;IACC,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAClC,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { GetStaticProps } from './types';
2
+ /**
3
+ * For extracting getStaticProps from a module
4
+ */
5
+ export declare function extractGetStaticProps(module: any): GetStaticProps | null;
6
+ /**
7
+ * Serialize data for injection into HTML
8
+ */
9
+ export declare function serializePageData(data: any): string;
10
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/data/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAKxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * For extracting getStaticProps from a module
3
+ */
4
+ export function extractGetStaticProps(module) {
5
+ if (module.getStaticProps && typeof module.getStaticProps === 'function') {
6
+ return module.getStaticProps;
7
+ }
8
+ return null;
9
+ }
10
+ /**
11
+ * Serialize data for injection into HTML
12
+ */
13
+ export function serializePageData(data) {
14
+ return `<script>window.__OLOVA_PAGE_DATA__ = ${JSON.stringify(data)};</script>`;
15
+ }
16
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/data/serialize.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAW;IAC/C,IAAI,MAAM,CAAC,cAAc,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACzE,OAAO,MAAM,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAS;IACzC,OAAO,wCAAwC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAClF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface GetStaticPropsContext {
2
+ params?: Record<string, string>;
3
+ }
4
+ export interface GetStaticPropsResult<T> {
5
+ props: T;
6
+ revalidate?: number;
7
+ }
8
+ export type GetStaticProps<T = any> = (context: GetStaticPropsContext) => Promise<GetStaticPropsResult<T>> | GetStaticPropsResult<T>;
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CACpC,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ /**
3
+ * Head component - client-side document head management
4
+ */
5
+ export declare function Head({ children }: {
6
+ children: React.ReactNode;
7
+ }): null;
8
+ //# sourceMappingURL=Head.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../src/head/Head.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD;;GAEG;AACH,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,QAoD/D"}
@@ -0,0 +1,56 @@
1
+ import React, { useEffect, useContext } from 'react';
2
+ import { HeadContext } from './HeadProvider';
3
+ /**
4
+ * Head component - client-side document head management
5
+ */
6
+ export function Head({ children }) {
7
+ const context = useContext(HeadContext);
8
+ useEffect(() => {
9
+ React.Children.forEach(children, (child) => {
10
+ if (!React.isValidElement(child))
11
+ return;
12
+ const { type, props } = child;
13
+ if (type === 'title') {
14
+ const titleProps = props;
15
+ if (typeof titleProps.children === 'string') {
16
+ document.title = titleProps.children;
17
+ context?.update({ title: titleProps.children });
18
+ }
19
+ }
20
+ if (type === 'meta') {
21
+ const metaProps = props;
22
+ const key = metaProps.name || metaProps.property || metaProps.httpEquiv;
23
+ if (key) {
24
+ let meta = document.querySelector(`meta[name="${key}"], meta[property="${key}"]`);
25
+ if (!meta) {
26
+ meta = document.createElement('meta');
27
+ if (metaProps.name)
28
+ meta.setAttribute('name', metaProps.name);
29
+ if (metaProps.property)
30
+ meta.setAttribute('property', metaProps.property);
31
+ document.head.appendChild(meta);
32
+ }
33
+ meta.setAttribute('content', metaProps.content);
34
+ }
35
+ }
36
+ if (type === 'link') {
37
+ const linkProps = props;
38
+ const key = linkProps.href;
39
+ let link = document.querySelector(`link[href="${key}"]`);
40
+ if (!link) {
41
+ link = document.createElement('link');
42
+ link.setAttribute('rel', linkProps.rel);
43
+ link.setAttribute('href', linkProps.href);
44
+ if (linkProps.as)
45
+ link.setAttribute('as', linkProps.as);
46
+ document.head.appendChild(link);
47
+ }
48
+ }
49
+ });
50
+ return () => {
51
+ // Cleanup could go here if needed
52
+ };
53
+ }, [children, context]);
54
+ return null;
55
+ }
56
+ //# sourceMappingURL=Head.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Head.js","sourceRoot":"","sources":["../../src/head/Head.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ export interface MetaProps {
3
+ name?: string;
4
+ property?: string;
5
+ httpEquiv?: string;
6
+ content: string;
7
+ }
8
+ export interface HeadLinkProps {
9
+ rel: string;
10
+ href: string;
11
+ as?: string;
12
+ }
13
+ export interface TitleProps {
14
+ children: string;
15
+ }
16
+ export interface HeadState {
17
+ title?: string;
18
+ metas: Map<string, MetaProps>;
19
+ links: Map<string, HeadLinkProps>;
20
+ }
21
+ export declare const HeadContext: React.Context<{
22
+ state: HeadState;
23
+ update: (updates: Partial<HeadState>) => void;
24
+ } | null>;
25
+ /**
26
+ * Provider for Head state management
27
+ */
28
+ export declare function HeadProvider({ children }: {
29
+ children: React.ReactNode;
30
+ }): import("react/jsx-runtime").JSX.Element;
31
+ //# sourceMappingURL=HeadProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadProvider.d.ts","sourceRoot":"","sources":["../../src/head/HeadProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,WAAW;WACf,SAAS;YACR,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI;SAChC,CAAC;AAEhB;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAevE"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useState } from 'react';
3
+ export const HeadContext = createContext(null);
4
+ /**
5
+ * Provider for Head state management
6
+ */
7
+ export function HeadProvider({ children }) {
8
+ const [state, setState] = useState({
9
+ metas: new Map(),
10
+ links: new Map(),
11
+ });
12
+ const update = (updates) => {
13
+ setState(prev => ({ ...prev, ...updates }));
14
+ };
15
+ return (_jsx(HeadContext.Provider, { value: { state, update }, children: children }));
16
+ }
17
+ //# sourceMappingURL=HeadProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadProvider.js","sourceRoot":"","sources":["../../src/head/HeadProvider.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAyBvD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAG9B,IAAI,CAAC,CAAC;AAEhB;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAiC;IACtE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY;QAC5C,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,OAA2B,EAAE,EAAE;QAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAC3C,QAAQ,GACY,CACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Olova Head Module
3
+ * Client and server-side document head management
4
+ */
5
+ export * from './Head';
6
+ export * from './HeadProvider';
7
+ export * from './ssr';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/head/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Olova Head Module
3
+ * Client and server-side document head management
4
+ */
5
+ export * from './Head';
6
+ export * from './HeadProvider';
7
+ export * from './ssr';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/head/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ /**
3
+ * For SSR/SSG - extract head elements to string
4
+ */
5
+ export declare function renderHeadToString(children: React.ReactNode): {
6
+ title: string;
7
+ metas: string;
8
+ };
9
+ //# sourceMappingURL=ssr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../src/head/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkC9F"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ /**
3
+ * For SSR/SSG - extract head elements to string
4
+ */
5
+ export function renderHeadToString(children) {
6
+ let title = 'Olova App';
7
+ let metas = '';
8
+ React.Children.forEach(children, (child) => {
9
+ if (!React.isValidElement(child))
10
+ return;
11
+ const { type, props } = child;
12
+ if (type === 'title') {
13
+ const titleProps = props;
14
+ if (typeof titleProps.children === 'string') {
15
+ title = titleProps.children;
16
+ }
17
+ }
18
+ if (type === 'meta') {
19
+ const metaProps = props;
20
+ const attrs = Object.entries(metaProps)
21
+ .map(([k, v]) => `${k}="${v}"`)
22
+ .join(' ');
23
+ metas += ` <meta ${attrs} />\n`;
24
+ }
25
+ if (type === 'link') {
26
+ const linkProps = props;
27
+ const attrs = Object.entries(linkProps)
28
+ .map(([k, v]) => `${k}="${v}"`)
29
+ .join(' ');
30
+ metas += ` <link ${attrs} />\n`;
31
+ }
32
+ });
33
+ return { title, metas };
34
+ }
35
+ //# sourceMappingURL=ssr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.js","sourceRoot":"","sources":["../../src/head/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAyB;IAC1D,IAAI,KAAK,GAAG,WAAW,CAAC;IACxB,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAO;QAEzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAgC,CAAC;QAEzD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,KAAmB,CAAC;YACvC,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC5C,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,KAAkB,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;iBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,IAAI,aAAa,KAAK,OAAO,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,KAAsB,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;iBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,IAAI,aAAa,KAAK,OAAO,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { FlightContext } from './types';
2
+ /**
3
+ * Set current Flight context (server-side)
4
+ */
5
+ export declare function setFlightContext(context: FlightContext): void;
6
+ /**
7
+ * Get current Flight context
8
+ */
9
+ export declare function getFlightContext(): FlightContext | null;
10
+ /**
11
+ * Clear Flight context
12
+ */
13
+ export declare function clearFlightContext(): void;
14
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/hydration/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -0,0 +1,20 @@
1
+ let currentFlightContext = null;
2
+ /**
3
+ * Set current Flight context (server-side)
4
+ */
5
+ export function setFlightContext(context) {
6
+ currentFlightContext = context;
7
+ }
8
+ /**
9
+ * Get current Flight context
10
+ */
11
+ export function getFlightContext() {
12
+ return currentFlightContext;
13
+ }
14
+ /**
15
+ * Clear Flight context
16
+ */
17
+ export function clearFlightContext() {
18
+ currentFlightContext = null;
19
+ }
20
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/hydration/context.ts"],"names":[],"mappings":"AAEA,IAAI,oBAAoB,GAAyB,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,oBAAoB,GAAG,OAAO,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Olova Hydration Module
3
+ * Implements "Flight" format for efficient client hydration
4
+ */
5
+ export * from './types';
6
+ export * from './payload';
7
+ export * from './serialization';
8
+ export * from './scheduler';
9
+ export * from './context';
10
+ export * from './seo';
11
+ /**
12
+ * Get the global hydration scheduler instance
13
+ */
14
+ export declare function getHydrationScheduler(): any;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hydration/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AAKtB;;GAEG;AACH,wBAAgB,qBAAqB,QAOpC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Olova Hydration Module
3
+ * Implements "Flight" format for efficient client hydration
4
+ */
5
+ export * from './types';
6
+ export * from './payload';
7
+ export * from './serialization';
8
+ export * from './scheduler';
9
+ export * from './context';
10
+ export * from './seo';
11
+ // Global singleton instance for the client
12
+ let clientScheduler = null;
13
+ /**
14
+ * Get the global hydration scheduler instance
15
+ */
16
+ export function getHydrationScheduler() {
17
+ if (typeof window === 'undefined')
18
+ return null;
19
+ if (!clientScheduler) {
20
+ const { HydrationScheduler } = require('./scheduler');
21
+ clientScheduler = new HydrationScheduler();
22
+ }
23
+ return clientScheduler;
24
+ }
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hydration/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AAEtB,2CAA2C;AAC3C,IAAI,eAAe,GAAQ,IAAI,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACtD,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { FlightPayload, FlightSEO, FlightMeta, HydrationHint, HydrationIsland, ResourceHint } from './types';
2
+ /**
3
+ * Reset node ID counter
4
+ */
5
+ export declare function resetFlightContext(): void;
6
+ /**
7
+ * Create an empty Flight payload
8
+ */
9
+ export declare function createFlightPayload(route: string, options?: {
10
+ seo?: FlightSEO;
11
+ meta?: FlightMeta;
12
+ buildId?: string;
13
+ }): FlightPayload;
14
+ /**
15
+ * Add a node to the Flight payload
16
+ */
17
+ export declare function addFlightNode(payload: FlightPayload, type: string, props: Record<string, any>, options?: {
18
+ hydrate?: boolean;
19
+ suspense?: boolean;
20
+ children?: string[];
21
+ }): string;
22
+ /**
23
+ * Add component data to payload
24
+ */
25
+ export declare function addFlightData(payload: FlightPayload, key: string, data: any): void;
26
+ /**
27
+ * Add a streaming chunk
28
+ */
29
+ export declare function addFlightChunk(payload: FlightPayload, id: string, html: string, data?: any): void;
30
+ /**
31
+ * Add hydration hint
32
+ */
33
+ export declare function addHydrationHint(payload: FlightPayload, hint: HydrationHint): void;
34
+ /**
35
+ * Add hydration island for selective hydration
36
+ */
37
+ export declare function addHydrationIsland(payload: FlightPayload, island: HydrationIsland): void;
38
+ /**
39
+ * Add resource hint for preloading
40
+ */
41
+ export declare function addResourceHint(payload: FlightPayload, hint: ResourceHint): void;
42
+ /**
43
+ * Set SEO data on Flight payload
44
+ */
45
+ export declare function setFlightSEO(payload: FlightPayload, seo: FlightSEO): void;
46
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/hydration/payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAYjB;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAC3D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,aAAa,CAmBhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,GACL,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,GACR,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,GAAG,GACT,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,aAAa,GAClB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,eAAe,GACtB,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,YAAY,GACjB,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,SAAS,GACb,IAAI,CAEN"}
@@ -0,0 +1,99 @@
1
+ import { serializeProps } from './serialization';
2
+ let nodeIdCounter = 0;
3
+ /**
4
+ * Generate unique node ID
5
+ */
6
+ function generateNodeId() {
7
+ return `o${(++nodeIdCounter).toString(36)}`;
8
+ }
9
+ /**
10
+ * Reset node ID counter
11
+ */
12
+ export function resetFlightContext() {
13
+ nodeIdCounter = 0;
14
+ }
15
+ /**
16
+ * Create an empty Flight payload
17
+ */
18
+ export function createFlightPayload(route, options) {
19
+ return {
20
+ v: 1,
21
+ ts: Date.now(),
22
+ route,
23
+ tree: [],
24
+ data: {},
25
+ chunks: [],
26
+ hints: [],
27
+ styles: [],
28
+ meta: options?.meta,
29
+ seo: options?.seo,
30
+ islands: [],
31
+ resourceHints: [],
32
+ build: options?.buildId ? {
33
+ id: options.buildId,
34
+ time: Date.now(),
35
+ } : undefined,
36
+ };
37
+ }
38
+ /**
39
+ * Add a node to the Flight payload
40
+ */
41
+ export function addFlightNode(payload, type, props, options = {}) {
42
+ const id = generateNodeId();
43
+ payload.tree.push({
44
+ id,
45
+ type,
46
+ props: serializeProps(props),
47
+ children: options.children || [],
48
+ hydrate: options.hydrate ?? false,
49
+ suspense: options.suspense,
50
+ });
51
+ return id;
52
+ }
53
+ /**
54
+ * Add component data to payload
55
+ */
56
+ export function addFlightData(payload, key, data) {
57
+ payload.data[key] = data;
58
+ }
59
+ /**
60
+ * Add a streaming chunk
61
+ */
62
+ export function addFlightChunk(payload, id, html, data) {
63
+ payload.chunks.push({
64
+ id,
65
+ html,
66
+ ready: true,
67
+ data,
68
+ order: payload.chunks.length,
69
+ });
70
+ }
71
+ /**
72
+ * Add hydration hint
73
+ */
74
+ export function addHydrationHint(payload, hint) {
75
+ payload.hints.push(hint);
76
+ }
77
+ /**
78
+ * Add hydration island for selective hydration
79
+ */
80
+ export function addHydrationIsland(payload, island) {
81
+ if (!payload.islands)
82
+ payload.islands = [];
83
+ payload.islands.push(island);
84
+ }
85
+ /**
86
+ * Add resource hint for preloading
87
+ */
88
+ export function addResourceHint(payload, hint) {
89
+ if (!payload.resourceHints)
90
+ payload.resourceHints = [];
91
+ payload.resourceHints.push(hint);
92
+ }
93
+ /**
94
+ * Set SEO data on Flight payload
95
+ */
96
+ export function setFlightSEO(payload, seo) {
97
+ payload.seo = seo;
98
+ }
99
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/hydration/payload.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;;GAEG;AACH,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,aAAa,GAAG,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,OAIlD;IACC,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;QACd,KAAK;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACxB,EAAE,EAAE,OAAO,CAAC,OAAO;YACnB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB,CAAC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,IAAY,EACZ,KAA0B,EAC1B,UAII,EAAE;IAEN,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAE5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAChB,EAAE;QACF,IAAI;QACJ,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,GAAW,EACX,IAAS;IAET,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,EAAU,EACV,IAAY,EACZ,IAAU;IAEV,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAClB,EAAE;QACF,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAsB,EACtB,IAAmB;IAEnB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,MAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAsB,EACtB,IAAkB;IAElB,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;IACvD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAsB,EACtB,GAAc;IAEd,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { HydrationState, HydrationHint } from './types';
2
+ /**
3
+ * Hydration scheduler - Prioritizes component hydration
4
+ */
5
+ export declare class HydrationScheduler {
6
+ private queue;
7
+ private isProcessing;
8
+ private state;
9
+ constructor();
10
+ getState(): HydrationState;
11
+ schedule(id: string, priority: HydrationHint['priority'], task: () => void): void;
12
+ private processQueue;
13
+ private receiveChunk;
14
+ private hydrateNode;
15
+ }
16
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/hydration/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1E;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAiE;IAC9E,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAA0B;;IAQvC,QAAQ,IAAI,cAAc;IAI1B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;YAgBnE,YAAY;IAiC1B,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,WAAW;CAOpB"}