@meonode/ui 0.4.5 → 0.4.7

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 (51) hide show
  1. package/CHANGELOG.md +35 -5
  2. package/dist/components/meonode-unmounter.client.d.ts +19 -0
  3. package/dist/components/meonode-unmounter.client.d.ts.map +1 -0
  4. package/dist/components/meonode-unmounter.client.js +13 -0
  5. package/dist/components/registry.client.d.ts +9 -1
  6. package/dist/components/registry.client.d.ts.map +1 -1
  7. package/dist/components/registry.client.js +14 -1
  8. package/dist/components/styled-renderer.client.d.ts.map +1 -1
  9. package/dist/components/styled-renderer.client.js +2 -2
  10. package/dist/constants/common.const.d.ts +2 -1
  11. package/dist/constants/common.const.d.ts.map +1 -1
  12. package/dist/constants/common.const.js +1 -1
  13. package/dist/core.node.d.ts +43 -125
  14. package/dist/core.node.d.ts.map +1 -1
  15. package/dist/core.node.js +51 -186
  16. package/dist/helper/common.helper.d.ts +1 -1
  17. package/dist/helper/common.helper.d.ts.map +1 -1
  18. package/dist/hoc/component.hoc.js +2 -2
  19. package/dist/main.d.ts +1 -1
  20. package/dist/main.d.ts.map +1 -1
  21. package/dist/main.js +3 -2
  22. package/dist/types/node.type.d.ts +3 -17
  23. package/dist/types/node.type.d.ts.map +1 -1
  24. package/dist/util/mount-tracker.util.d.ts +26 -0
  25. package/dist/util/mount-tracker.util.d.ts.map +1 -0
  26. package/dist/util/mount-tracker.util.js +15 -0
  27. package/dist/util/navigation-cache-manager.util.d.ts +36 -0
  28. package/dist/util/navigation-cache-manager.util.d.ts.map +1 -0
  29. package/dist/util/navigation-cache-manager.util.js +19 -0
  30. package/dist/util/node.util.d.ts +155 -0
  31. package/dist/util/node.util.d.ts.map +1 -0
  32. package/dist/util/node.util.js +172 -0
  33. package/dist/util/theme.util.d.ts +108 -0
  34. package/dist/util/theme.util.d.ts.map +1 -0
  35. package/dist/util/theme.util.js +117 -0
  36. package/package.json +5 -2
  37. package/dist/helper/mount-tracker.helper.d.ts +0 -16
  38. package/dist/helper/mount-tracker.helper.d.ts.map +0 -1
  39. package/dist/helper/mount-tracker.helper.js +0 -8
  40. package/dist/helper/navigation-cache-manager.helper.d.ts +0 -38
  41. package/dist/helper/navigation-cache-manager.helper.d.ts.map +0 -1
  42. package/dist/helper/navigation-cache-manager.helper.js +0 -34
  43. package/dist/helper/node.helper.d.ts +0 -70
  44. package/dist/helper/node.helper.d.ts.map +0 -1
  45. package/dist/helper/node.helper.js +0 -112
  46. package/dist/helper/safe-cache-manager.helper.d.ts +0 -21
  47. package/dist/helper/safe-cache-manager.helper.d.ts.map +0 -1
  48. package/dist/helper/safe-cache-manager.helper.js +0 -33
  49. package/dist/helper/theme.helper.d.ts +0 -15
  50. package/dist/helper/theme.helper.d.ts.map +0 -1
  51. package/dist/helper/theme.helper.js +0 -16
package/CHANGELOG.md CHANGED
@@ -2,18 +2,48 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+ ## [0.4.7] - 2025-11-17
6
+
7
+ ### Fixes
8
+ - **core/cache:** optimize navigation cache debounce timing and enhance stableKey handling ([`fff6f207`](https://github.com/l7aromeo/meonode-ui/commit/fff6f2070a06cc5ad461a2f992b111fb957fae6f))
9
+ - Adjust navigation cleanup debounce duration dynamically based on cache size for better performance.
10
+ - Change stableKey and _lastSignature to be optional to better represent their possible undefined state.
11
+ - Refactor _getStableKey to return undefined on server instead of empty string.
12
+ - Optimize critical props extraction by introducing NodeUtil.extractCriticalProps helper.
13
+ - Improve client-side caching logic to avoid lookups when stableKey is absent.
14
+ - Remove unused imports and redundant code in node.util.ts; improve shallowEqual implementation.
15
+ - Update createPropSignature to return undefined on server and use getElementTypeName directly.
16
+ - Add detailed comments and refine hashString combining FNV-1a and djb2 hashes for robustness.
17
+
18
+ ## [0.4.6] - 2025-11-17
19
+
20
+ ### Fixes
21
+ - **core/cache:** enhance memoization & caching system to prevent memory leaks and ensure safe lifecycle management ([`253d7d00`](https://github.com/l7aromeo/meonode-ui/commit/253d7d006121dc588a51580d5120c7123a5f8777))
22
+ This introduces a robust, three-layered cleanup strategy to ensure cache integrity:
23
+ 1. An immediate, lifecycle-driven cleanup via the new `MeoNodeUnmounter` component.
24
+ 2. A debounced, event-driven cleanup for SPA navigations via `NavigationCacheManagerUtil`.
25
+ 3. A final, GC-driven safety net using the `FinalizationRegistry` API.
26
+
27
+ ### Refactor
28
+ - **core:** migrate core logic from `src/helper/` to a new `src/util/` directory for better separation of concerns.
29
+ - **core:** extract internal utility functions from `core.node.ts` into `node.util.ts`.
30
+ - **core:** make internal caches on `BaseNode` public to support the new externalized management architecture.
31
+
32
+ ### Chore
33
+ - **tooling:** enable TypeScript's `strict: true` mode and update codebase to be fully compliant.
34
+ - **tooling:** add CommonJS (`require`) exports to `package.json` for improved module compatibility.
35
+ - **tooling:** add `NODE_OPTIONS='--expose-gc'` to the test script to allow for explicit garbage collection during tests.
36
+ - **tests:** refine test suite by standardizing `afterEach` hooks and updating memoization tests to directly validate internal caching.
7
37
 
8
38
  ## [0.4.5] - 2025-11-15
9
39
 
10
40
  ### Feat
11
- - **cache**: implement robust cache management and theme caching ([`c453cb8`](https://github.com/l7aromeo/meonode-ui/commit/c453cb872e96c5ea49ddb39b189c79e53e46082a))
41
+ - **cache**: implement robust cache management and theme caching ([`9ed749f6`](https://github.com/l7aromeo/meonode-ui/commit/9ed749f6d877fdc8b6a736788add13225b07dd63))
12
42
  Refactor NavigationCacheManager for robustness, add memory monitoring and auto-cleanup.
13
43
  Implement LRU eviction for ThemeResolverCache and integrate with BaseNode cache clearing.
14
44
 
15
45
  ### Refactor
16
- - **test**: split node.test.ts into smaller, more focused test files ([`930f998`](https://github.com/l7aromeo/meonode-ui/commit/930f998e5f91faef3ff42fcafc6b02fc23f422ff))
46
+ - **test**: split node.test.ts into smaller, more focused test files ([`930f998e`](https://github.com/l7aromeo/meonode-ui/commit/930f998e5f91faef3ff42fcafc6b02fc23f422ff))
17
47
  This commit refactors the test suite by splitting the monolithic `node.test.ts`
18
48
  file into several smaller, more focused test files, each covering a specific
19
49
  aspect of the BaseNode functionality.
@@ -28,7 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
28
58
  - **core**: pass disableEmotion flag to _renderProcessedNode for improved processing ([`b68e3d4`](https://github.com/l7aromeo/meonode-ui/commit/b68e3d49a732ee590805a0298f733b800a9b172d))
29
59
 
30
60
  ### Chore
31
- - **test**: adjust performance test cleanup by removing cache clearing from afterEach ([`77e9fa4`](https://github.com/l7aromeo/meonode-ui/commit/77e9fa4a8731935048ea4bf5c8e8e7169fd88df2))
61
+ - **test**: adjust performance test cleanup by removing cache clearing from afterEach ([`f72cea5e`](https://github.com/l7aromeo/meonode-ui/commit/f72cea5ef983fdaba012a7d446b58c7da06f5e1a))
32
62
 
33
63
  ## [0.4.4] - 2025-11-15
34
64
 
@@ -0,0 +1,19 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * `MeoNodeUnmounter` is a client-side React component responsible for cleaning up
4
+ * resources associated with a rendered node when it unmounts.
5
+ *
6
+ * It uses a `useEffect` hook to register a cleanup function that runs when the component
7
+ * unmounts or when its `stableKey` changes. The cleanup function checks if the node
8
+ * identified by `stableKey` is currently tracked as mounted. If it is, it removes
9
+ * the node from `BaseNode.elementCache` and untracks its mount status using `MountTrackerUtil`.
10
+ * @param {object} props The component's props.
11
+ * @param {string} props.stableKey A unique identifier for the rendered node.
12
+ * @param {ReactNode} [props.children] The children to be rendered by this component.
13
+ * @returns {ReactNode} The `children` passed to the component.
14
+ */
15
+ export default function MeoNodeUnmounter({ stableKey, children }: {
16
+ stableKey: string;
17
+ children?: ReactNode;
18
+ }): ReactNode;
19
+ //# sourceMappingURL=meonode-unmounter.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meonode-unmounter.client.d.ts","sourceRoot":"","sources":["../../src/components/meonode-unmounter.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAA;AAIjE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAaxH"}
@@ -0,0 +1,13 @@
1
+ "use client";import{useEffect,useEffectEvent}from"react";import{MountTrackerUtil}from"../util/mount-tracker.util.js";import{BaseNode}from"../core.node.js";/**
2
+ * `MeoNodeUnmounter` is a client-side React component responsible for cleaning up
3
+ * resources associated with a rendered node when it unmounts.
4
+ *
5
+ * It uses a `useEffect` hook to register a cleanup function that runs when the component
6
+ * unmounts or when its `stableKey` changes. The cleanup function checks if the node
7
+ * identified by `stableKey` is currently tracked as mounted. If it is, it removes
8
+ * the node from `BaseNode.elementCache` and untracks its mount status using `MountTrackerUtil`.
9
+ * @param {object} props The component's props.
10
+ * @param {string} props.stableKey A unique identifier for the rendered node.
11
+ * @param {ReactNode} [props.children] The children to be rendered by this component.
12
+ * @returns {ReactNode} The `children` passed to the component.
13
+ */export default function MeoNodeUnmounter(a){var b=a.stableKey,c=a.children,d=useEffectEvent(function(){MountTrackerUtil.mountedNodes.has(b)&&(BaseNode.elementCache["delete"](b),MountTrackerUtil.untrackMount(b))});return useEffect(function(){return function(){return d()}},[]),c}
@@ -1,5 +1,13 @@
1
1
  import { type ReactElement } from 'react';
2
+ /**
3
+ * Style registry for Emotion to support SSR/streaming in Next.js App Router.
4
+ *
5
+ * - Creates a single Emotion cache instance in compat mode.
6
+ * - Uses `useServerInsertedHTML` to inline critical CSS collected during render.
7
+ * @param children React subtree that consumes Emotion styles.
8
+ * @returns React element that provides the cache and injects critical CSS during SSR.
9
+ */
2
10
  export default function StyleRegistry({ children }: {
3
11
  children: ReactElement;
4
- }): ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
12
+ }): ReactElement<import("../main").FinalNodeProps, string | import("react").JSXElementConstructor<any>>;
5
13
  //# sourceMappingURL=registry.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.client.d.ts","sourceRoot":"","sources":["../../src/components/registry.client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,YAAY,EAAY,MAAM,OAAO,CAAA;AAUlE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,8EAuB7E"}
1
+ {"version":3,"file":"registry.client.d.ts","sourceRoot":"","sources":["../../src/components/registry.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,YAAY,EAAY,MAAM,OAAO,CAAA;AAWlE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,yGA4B7E"}
@@ -1 +1,14 @@
1
- "use client";function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _iterableToArrayLimit(b,c){var d=null==b?null:"undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(null!=d){var g,h,j,k,l=[],a=!0,m=!1;try{if(j=(d=d.call(b)).next,0===c){if(Object(d)!==d)return;a=!1}else for(;!(a=(g=j.call(d)).done)&&(l.push(g.value),l.length!==c);a=!0);}catch(a){m=!0,h=a}finally{try{if(!a&&null!=d["return"]&&(k=d["return"](),Object(k)!==k))return}finally{if(m)throw h}}return l}}function _arrayWithHoles(a){if(Array.isArray(a))return a}import{createElement,useState}from"react";import{CacheProvider}from"@emotion/react";import createCache from"@emotion/cache";import{Node}from"../core.node.js";import{useServerInsertedHTML}from"next/navigation.js";function createEmotionCache(){return createCache({key:"meonode-css"})}export default function StyleRegistry(a){var b=a.children,c=useState(function(){var a=createEmotionCache();return a.compat=!0,a}),d=_slicedToArray(c,1),e=d[0];return useServerInsertedHTML(function(){var a=Object.keys(e.inserted).sort(),b=a.map(function(a){return e.inserted[a]}).join(""),c=a.join(" ");return b?createElement("style",{"data-emotion":"".concat(e.key," ").concat(c),dangerouslySetInnerHTML:{__html:b}}):null}),Node(CacheProvider,{value:e,children:b}).render()}
1
+ "use client";function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _iterableToArrayLimit(b,c){var d=null==b?null:"undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(null!=d){var g,h,j,k,l=[],a=!0,m=!1;try{if(j=(d=d.call(b)).next,0===c){if(Object(d)!==d)return;a=!1}else for(;!(a=(g=j.call(d)).done)&&(l.push(g.value),l.length!==c);a=!0);}catch(a){m=!0,h=a}finally{try{if(!a&&null!=d["return"]&&(k=d["return"](),Object(k)!==k))return}finally{if(m)throw h}}return l}}function _arrayWithHoles(a){if(Array.isArray(a))return a}import{createElement,useState}from"react";import{CacheProvider}from"@emotion/react";import createCache from"@emotion/cache";import{Node}from"../core.node.js";import{useServerInsertedHTML}from"next/navigation.js";// Emotion cache setup
2
+ function createEmotionCache(){return createCache({key:"meonode-css"})}/**
3
+ * Style registry for Emotion to support SSR/streaming in Next.js App Router.
4
+ *
5
+ * - Creates a single Emotion cache instance in compat mode.
6
+ * - Uses `useServerInsertedHTML` to inline critical CSS collected during render.
7
+ * @param children React subtree that consumes Emotion styles.
8
+ * @returns React element that provides the cache and injects critical CSS during SSR.
9
+ */export default function StyleRegistry(a){var b=a.children,c=useState(function(){var a=createEmotionCache();return a.compat=!0,a}),d=_slicedToArray(c,1),e=d[0];// Lazily create a single Emotion cache; enable compat for SSR/legacy Emotion APIs.
10
+ // During server rendering, collect styles inserted into the cache and inline them in the HTML.
11
+ // Provide the Emotion cache to descendants.
12
+ return useServerInsertedHTML(function(){// Ensure deterministic output by sorting ids.
13
+ var a=Object.keys(e.inserted).sort(),b=a.map(function(a){return e.inserted[a]}).join(""),c=a.join(" ");return b?createElement("style",{"data-emotion":"".concat(e.key," ").concat(c),dangerouslySetInnerHTML:{__html:b}}):null;// Insert a single style tag with the tracked Emotion ids.
14
+ }),Node(CacheProvider,{value:e,children:b}).render()}
@@ -1 +1 @@
1
- {"version":3,"file":"styled-renderer.client.d.ts","sourceRoot":"","sources":["../../src/components/styled-renderer.client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAKnE,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,WAAW;IACxD,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;CACb;AAED;;;;;;;;;GASG;AACH,iBAAwB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAChG,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAoB/C"}
1
+ {"version":3,"file":"styled-renderer.client.d.ts","sourceRoot":"","sources":["../../src/components/styled-renderer.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAInE,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,WAAW;IACxD,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;CACb;AAED;;;;;;;;;GASG;AACH,iBAAwB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAChG,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAoB/C"}
@@ -1,4 +1,4 @@
1
- "use client";var _excluded=["element","children"],_excluded2=["css"];function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&{}.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c={};for(var d in a)if({}.hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}import{useContext}from"react";import{jsx}from"@emotion/react";import{resolveObjWithTheme}from"../helper/theme.helper.js";import{ThemeContext}from"./theme-provider.client.js";import{resolveDefaultStyle}from"../helper/node.helper.js";/**
1
+ "use client";var _excluded=["element","children"],_excluded2=["css"];function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&{}.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c={};for(var d in a)if({}.hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}import{useContext}from"react";import{jsx}from"@emotion/react";import{ThemeContext}from"./theme-provider.client.js";import{ThemeUtil}from"../util/theme.util.js";/**
2
2
  * A client-side component that renders a styled element using Emotion.
3
3
  * It resolves theme values and applies default styles.
4
4
  * @template E The type of the HTML element to render.
@@ -7,4 +7,4 @@
7
7
  * @param children Optional children to be rendered inside the element.
8
8
  * @param props
9
9
  * @returns {JSX.Element} The rendered JSX element.
10
- */export default function StyledRenderer(a){var b=a.element,c=a.children,d=_objectWithoutProperties(a,_excluded),e=useContext(ThemeContext),f=null===e||void 0===e?void 0:e.theme,g=d.css,h=_objectWithoutProperties(d,_excluded2),i=g,j=h;f&&(i=resolveObjWithTheme(g,f,{processFunctions:!0}),j=resolveObjWithTheme(h,f,{processFunctions:!1}));var k=resolveDefaultStyle(i);return jsx(b,_objectSpread(_objectSpread({},j),{},{css:k}),c)}StyledRenderer.displayName="Styled";
10
+ */export default function StyledRenderer(a){var b=a.element,c=a.children,d=_objectWithoutProperties(a,_excluded),e=useContext(ThemeContext),f=null===e||void 0===e?void 0:e.theme,g=d.css,h=_objectWithoutProperties(d,_excluded2),i=g,j=h;f&&(i=ThemeUtil.resolveObjWithTheme(g,f,{processFunctions:!0}),j=ThemeUtil.resolveObjWithTheme(h,f,{processFunctions:!1}));var k=ThemeUtil.resolveDefaultStyle(i);return jsx(b,_objectSpread(_objectSpread({},j),{},{css:k}),c)}StyledRenderer.displayName="Styled";
@@ -1,5 +1,6 @@
1
1
  export declare const NO_STYLE_TAGS: readonly ["html", "head", "meta", "link", "script", "style", "noscript", "template", "slot", "base", "param", "source", "track", "wbr", "embed", "object", "iframe", "frame", "frameset", "applet", "bgsound", "noembed", "noframes"];
2
2
  export declare const noStyleTagsSet: Set<"applet" | "base" | "bgsound" | "embed" | "frame" | "frameset" | "head" | "html" | "iframe" | "link" | "meta" | "noembed" | "noframes" | "noscript" | "object" | "param" | "script" | "slot" | "source" | "style" | "template" | "track" | "wbr">;
3
3
  export type NO_STYLE_TAGS = typeof NO_STYLE_TAGS;
4
- export declare const __DEV__: boolean;
4
+ export declare let __DEBUG__: boolean;
5
+ export declare function setDebugMode(enabled: boolean): void;
5
6
  //# sourceMappingURL=common.const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.const.d.ts","sourceRoot":"","sources":["../../src/constants/common.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,uOAwBhB,CAAA;AAEV,eAAO,MAAM,cAAc,uPAAyB,CAAA;AACpD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,eAAO,MAAM,OAAO,SAA0F,CAAA"}
1
+ {"version":3,"file":"common.const.d.ts","sourceRoot":"","sources":["../../src/constants/common.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,uOAwBhB,CAAA;AAEV,eAAO,MAAM,cAAc,uPAAyB,CAAA;AACpD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,eAAO,IAAI,SAAS,SAAQ,CAAA;AAE5B,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAK5C"}
@@ -1 +1 @@
1
- export var NO_STYLE_TAGS=["html","head","meta","link","script","style","noscript","template","slot","base","param","source","track","wbr","embed","object","iframe","frame","frameset","applet","bgsound","noembed","noframes"];export var noStyleTagsSet=new Set(NO_STYLE_TAGS);export var __DEV__="undefined"!=typeof process&&process.env&&"development"===process.env.NODE_ENV;
1
+ export var NO_STYLE_TAGS=["html","head","meta","link","script","style","noscript","template","slot","base","param","source","track","wbr","embed","object","iframe","frame","frameset","applet","bgsound","noembed","noframes"];export var noStyleTagsSet=new Set(NO_STYLE_TAGS);export var __DEBUG__=!1;export function setDebugMode(a){__DEBUG__=a,__DEBUG__&&console.log("[MeoNode] Debug mode enabled.")}
@@ -1,5 +1,5 @@
1
1
  import { type ReactElement } from 'react';
2
- import type { Children, FinalNodeProps, HasRequiredProps, MergedProps, NodeElementType, NodeInstance, NodePortal, NodeProps, PropsOf, DependencyList, ElementCacheEntry } from './types/node.type.js';
2
+ import type { Children, FinalNodeProps, HasRequiredProps, MergedProps, NodeElementType, NodeInstance, NodePortal, NodeProps, PropProcessingCache, PropsOf, DependencyList, ElementCacheEntry } from './types/node.type.js';
3
3
  /**
4
4
  * The core abstraction of the MeoNode library. It wraps a React element or component,
5
5
  * providing a unified interface for processing props, normalizing children, and handling styles.
@@ -8,26 +8,19 @@ import type { Children, FinalNodeProps, HasRequiredProps, MergedProps, NodeEleme
8
8
  * @class BaseNode
9
9
  * @template E - The type of React element or component this node represents.
10
10
  */
11
- export declare class BaseNode<E extends NodeElementType> implements NodeInstance<E> {
11
+ export declare class BaseNode<E extends NodeElementType> {
12
+ instanceId: string;
12
13
  element: E;
13
14
  rawProps: Partial<NodeProps<E>>;
14
15
  readonly isBaseNode: boolean;
15
16
  private _props?;
16
17
  private readonly _deps?;
17
- _stableKey: string;
18
- private static _isServer;
19
- private static _propProcessingCache;
20
- private static _isValidElement;
21
- private static _isStyleProp;
22
- static _elementCache: Map<string, ElementCacheEntry>;
23
- private static _portalInfrastructure;
24
- private static readonly CACHE_SIZE_LIMIT = 500;
25
- private static readonly CACHE_CLEANUP_BATCH = 50;
18
+ stableKey?: string;
26
19
  private _lastPropsRef;
27
- private _lastSignature;
28
- private static _elementIdMap;
29
- private static _elementIdCounter;
30
- private static _scheduledCleanup;
20
+ private _lastSignature?;
21
+ static elementCache: Map<string, ElementCacheEntry>;
22
+ static propProcessingCache: Map<string, PropProcessingCache>;
23
+ static scheduledCleanup: boolean;
31
24
  private static _navigationStarted;
32
25
  constructor(element: E, rawProps?: Partial<NodeProps<E>>, deps?: DependencyList);
33
26
  /**
@@ -45,34 +38,6 @@ export declare class BaseNode<E extends NodeElementType> implements NodeInstance
45
38
  * @getter deps
46
39
  */
47
40
  get dependencies(): DependencyList | undefined;
48
- /**
49
- * FNV-1a hash function.
50
- * @method _fnv1aHash
51
- */
52
- private static _fnv1aHash;
53
- /**
54
- * djb2 hash function.
55
- * @method _djb2Hash
56
- */
57
- private static _djb2Hash;
58
- /**
59
- * Combines FNV-1a and djb2 hash functions for a more robust signature.
60
- * @method _hashString
61
- */
62
- private static _hashString;
63
- /**
64
- * Performs a shallow equality check between two objects.
65
- * @method _shallowEqual
66
- */
67
- private _shallowEqual;
68
- /**
69
- * Generates a stable identifier for the given element type.
70
- * For primitive types (strings), it returns the string itself.
71
- * For component types (functions, classes, exotic components), it generates
72
- * and caches a unique ID using a WeakMap to ensure stability across calls.
73
- * @method _getStableElementId
74
- */
75
- private static _getStableElementId;
76
41
  /**
77
42
  * Generates or returns a cached signature representing the props shape and values.
78
43
  * The signature is used as a stable key for caching prop-derived computations (e.g. CSS extraction).
@@ -81,85 +46,45 @@ export declare class BaseNode<E extends NodeElementType> implements NodeInstance
81
46
  * containing only style-related keys, event handlers, className/css and a `_keyCount` to avoid
82
47
  * expensive serialization of huge objects while still retaining reasonable cache discrimination.
83
48
  * - Stores the last props reference and computed signature to speed up repeated calls with the same object.
49
+ * @param key Key passed for prefix if exist
84
50
  * @param props The props object to create a signature for.
85
51
  * @returns A compact string signature suitable for use as a cache key.
86
52
  */
87
- private _getCachedSignature;
88
- /**
89
- * Creates a unique, stable signature from the element type and props.
90
- * This signature includes the element's type to prevent collisions between different components
91
- * and handles primitive values in arrays and objects for better caching.
92
- * @method _createPropSignature
93
- */
94
- private static _createPropSignature;
95
- /**
96
- * Retrieves computed CSS props from the cache with LRU tracking.
97
- * Access time and hit count are tracked for smarter eviction.
98
- * @method _getCachedCssProps
99
- */
100
- private static _getCachedCssProps;
101
- /**
102
- * Implements an LRU eviction strategy that removes multiple entries at once.
103
- * It uses a scoring system where older and less frequently used entries have a higher eviction priority.
104
- * @method _evictLRUEntries
105
- */
106
- private static _evictLRUEntries;
53
+ private _getStableKey;
107
54
  /**
108
- * The main prop processing pipeline, which now passes the element type for improved caching.
109
- * @method _processProps
110
- */
111
- private _processProps;
112
- /**
113
- * Determines if a node should update based on its dependency array.
114
- * Uses a shallow comparison, similar to React's `useMemo` and `useCallback`.
115
- * @method _shouldNodeUpdate
116
- */
117
- private static _shouldNodeUpdate;
118
- /**
119
- * Processes the `children` prop of a node. It handles single children, arrays of children,
120
- * and function-as-a-child render props, passing them to `_processRawNode` for normalization.
121
- * @method _processChildren
122
- */
123
- private _processChildren;
124
- /**
125
- * The core normalization function for a single child. It takes any valid `NodeElement`
126
- * (primitive, React element, function, `BaseNode` instance) and converts it into a standardized `BaseNode`
127
- * instance if it isn't one already. This ensures a consistent structure for the iterative renderer.
128
- * @method _processRawNode
129
- */
130
- private static _processRawNode;
131
- /**
132
- * A helper to reliably identify if a given function is a "function-as-a-child" (render prop)
133
- * rather than a standard Function Component.
134
- * @method _isFunctionChild
135
- */
136
- private static _isFunctionChild;
137
- /**
138
- * A special internal React component used to render "function-as-a-child" (render prop) patterns.
139
- * When a `BaseNode` receives a function as its `children` prop, it wraps that function
140
- * inside this `_functionRenderer` component. This component then executes the render function
141
- * and processes its return value, normalizing it into a renderable ReactNode.
55
+ * FinalizationRegistry for cleaning up `elementCache` entries when the associated `BaseNode` instance
56
+ * is garbage-collected. This helps prevent memory leaks by ensuring that cache entries for
57
+ * unreferenced nodes are eventually removed.
142
58
  *
143
- * This allows `BaseNode` to support render props while maintaining its internal processing
144
- * and normalization logic for the dynamically generated content.
145
- * @method _functionRenderer
146
- * @param {Object} props The properties passed to the renderer.
147
- * @param {Function} props.render The function-as-a-child to execute.
148
- * @param {boolean} [props.disableEmotion] Inherited flag to disable Emotion styling for children.
149
- * @returns {ReactNode | null | undefined} The processed and rendered output of the render function.
59
+ * The held value must include `cacheKey` which is used to identify and delete the corresponding
60
+ * entry from `BaseNode.elementCache`.
61
+ * @public
150
62
  */
151
- private static _functionRenderer;
63
+ static cacheCleanupRegistry: FinalizationRegistry<{
64
+ cacheKey: string;
65
+ instanceId: string;
66
+ }>;
152
67
  /**
153
- * Renders a processed `NodeElement` into a ReactNode.
154
- * This helper is primarily used by `_functionRenderer` to handle the output of render props,
155
- * ensuring that `BaseNode` instances are correctly rendered and other React elements or primitives
156
- * are passed through. It also applies `disableEmotion` and `key` props as needed.
68
+ * FinalizationRegistry for cleaning up portal DOM containers and their associated React roots
69
+ * when the owning `BaseNode` instance is garbage-collected.
70
+ *
71
+ * The held value must include:
72
+ * - `domElement`: the container `HTMLDivElement` appended to `document.body`.
73
+ * - `reactRoot`: an object with an `unmount()` method to unmount the React root.
157
74
  *
158
- * This method is part of the child processing pipeline, converting internal `NodeElement` representations
159
- * into actual React elements that can be rendered by React.
160
- * @method _renderProcessedNode
75
+ * On cleanup the registry handler will attempt to:
76
+ * 1. Unmount the React root (errors are swallowed in non-production builds with logging).
77
+ * 2. Remove the `domElement` from the DOM if it is still connected.
78
+ *
79
+ * This prevents detached portal containers from leaking memory in long-running client apps.
80
+ * @private
161
81
  */
162
- private static _renderProcessedNode;
82
+ static portalCleanupRegistry: FinalizationRegistry<{
83
+ domElement: HTMLDivElement;
84
+ reactRoot: {
85
+ unmount(): void;
86
+ };
87
+ }>;
163
88
  /**
164
89
  * Renders the `BaseNode` and its entire subtree into a ReactElement, with support for opt-in reactivity
165
90
  * via dependency arrays and inherited blocking.
@@ -175,18 +100,6 @@ export declare class BaseNode<E extends NodeElementType> implements NodeInstance
175
100
  * @method render
176
101
  */
177
102
  render(parentBlocked?: boolean): ReactElement<FinalNodeProps>;
178
- /**
179
- * Registers a node instance with the MountTracker for unmount tracking.
180
- * This is only executed on the client-side.
181
- * @method registerUnmount
182
- */
183
- static registerUnmount(node: BaseNode<any>): void;
184
- /**
185
- * Ensures that the necessary DOM element and React root are available for portal rendering.
186
- * This is only executed on the client-side.
187
- * @method _ensurePortalInfrastructure
188
- */
189
- private _ensurePortalInfrastructure;
190
103
  /**
191
104
  * Renders the node into a React Portal, mounting it directly under `document.body`.
192
105
  * Returns a handle with `update` and `unmount` methods to control the portal's lifecycle.
@@ -195,6 +108,11 @@ export declare class BaseNode<E extends NodeElementType> implements NodeInstance
195
108
  toPortal(): NodePortal;
196
109
  /**
197
110
  * A static method to clear all internal caches.
111
+ *
112
+ * This method performs manual cleanup of all cache entries, calling their
113
+ * `onEvict` callbacks before clearing. Note that FinalizationRegistry entries
114
+ * are not manually cleared as they will be garbage collected naturally when
115
+ * the associated nodes are collected.
198
116
  * @method clearCaches
199
117
  */
200
118
  static clearCaches(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"core.node.d.ts","sourceRoot":"","sources":["../src/core.node.ts"],"names":[],"mappings":"AAAA,OAAc,EAKZ,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EAEd,gBAAgB,EAChB,WAAW,EAEX,eAAe,EAEf,YAAY,EACZ,UAAU,EACV,SAAS,EAET,OAAO,EACP,cAAc,EACd,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAWhC;;;;;;;GAOG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,eAAe,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAK;IAC3C,SAAgB,UAAU,UAAO;IAEjC,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAgB;IAChC,UAAU,EAAE,MAAM,CAAA;IAEzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAyC;IAC5E,OAAO,CAAC,MAAM,CAAC,eAAe,CAAqB;IACnD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAiH;IAC5I,OAAc,aAAa,iCAAuC;IAGlE,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAMjC;IAGH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,OAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAK;IAIhD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAa;IAGnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAA6B;IACzD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAI;IAGpC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IAExC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAQ;IAEzC,YAAY,OAAO,EAAE,CAAC,EAAE,QAAQ,GAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAM,EAAE,IAAI,CAAC,EAAE,cAAc,EA2BlF;IAED;;;;OAIG;IACH,IAAW,KAAK,IAAI,cAAc,CAKjC;IAED;;;;;;;OAOG;IACH,IAAW,YAAY,IAAI,cAAc,GAAG,SAAS,CAEpD;IAID;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAQxB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAqBlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA2C3B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAwDnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2CjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAyDrB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgChC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAwD9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA4DhC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA0CnC;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,aAAa,GAAE,OAAe,GAAG,YAAY,CAAC,cAAc,CAAC,CA2H1E;IAED;;;;OAIG;IACH,OAAc,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,QAIhD;IAID;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAwCnC;;;;OAIG;IACI,QAAQ,IAAI,UAAU,CA+D5B;IAED;;;OAGG;IACH,OAAc,WAAW,SAIxB;CACF;AAID;;;;GAIG;AACH,iBAAS,IAAI,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,eAAe,EAClF,OAAO,EAAE,CAAC,EACV,KAAK,GAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAyC,EAC9E,IAAI,CAAC,EAAE,cAAc,GACpB,YAAY,CAAC,CAAC,CAAC,CAEjB;;;;AAmBD,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,sBAAsB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,eAAe,EACtG,OAAO,EAAE,CAAC,EACV,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,sBAAsB,CAAC,GACpD,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACxC,CAAC,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IACxJ,OAAO,EAAE,CAAC,CAAA;CACX,GACD,CAAC,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IACzJ,OAAO,EAAE,CAAC,CAAA;CACX,CAKJ;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,sBAAsB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,eAAe,EACnH,OAAO,EAAE,CAAC,EACV,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,sBAAsB,GAAG,UAAU,CAAC,GAAG,sBAAsB,GACpG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACxC,CAAC,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjE,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,UAAU,CAAC,EACxD,IAAI,CAAC,EAAE,cAAc,KAClB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,GACtC,CAAC,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjE,QAAQ,CAAC,EAAE,QAAQ,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,UAAU,CAAC,EACzD,IAAI,CAAC,EAAE,cAAc,KAClB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAQzC"}
1
+ {"version":3,"file":"core.node.d.ts","sourceRoot":"","sources":["../src/core.node.ts"],"names":[],"mappings":"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"}