@contember/react-multipass-rendering 0.0.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 (106) hide show
  1. package/dist/development/ChildrenAnalyzer.js +170 -0
  2. package/dist/development/ChildrenAnalyzer.js.map +1 -0
  3. package/dist/development/ChildrenAnalyzerError.js +17 -0
  4. package/dist/development/ChildrenAnalyzerError.js.map +1 -0
  5. package/dist/development/helpers/getErrorMessage.js +7 -0
  6. package/dist/development/helpers/getErrorMessage.js.map +1 -0
  7. package/dist/development/helpers/wrapError.js +51 -0
  8. package/dist/development/helpers/wrapError.js.map +1 -0
  9. package/dist/development/index.js +11 -0
  10. package/dist/development/index.js.map +1 -0
  11. package/dist/development/nodeSpecs/BranchNode.js +41 -0
  12. package/dist/development/nodeSpecs/BranchNode.js.map +1 -0
  13. package/dist/development/nodeSpecs/Leaf.js +27 -0
  14. package/dist/development/nodeSpecs/Leaf.js.map +1 -0
  15. package/dist/production/ChildrenAnalyzer.js +170 -0
  16. package/dist/production/ChildrenAnalyzer.js.map +1 -0
  17. package/dist/production/ChildrenAnalyzerError.js +17 -0
  18. package/dist/production/ChildrenAnalyzerError.js.map +1 -0
  19. package/dist/production/helpers/getErrorMessage.js +7 -0
  20. package/dist/production/helpers/getErrorMessage.js.map +1 -0
  21. package/dist/production/helpers/wrapError.js +51 -0
  22. package/dist/production/helpers/wrapError.js.map +1 -0
  23. package/dist/production/index.js +11 -0
  24. package/dist/production/index.js.map +1 -0
  25. package/dist/production/nodeSpecs/BranchNode.js +41 -0
  26. package/dist/production/nodeSpecs/BranchNode.js.map +1 -0
  27. package/dist/production/nodeSpecs/Leaf.js +27 -0
  28. package/dist/production/nodeSpecs/Leaf.js.map +1 -0
  29. package/dist/types/BranchNodeList.d.ts +3 -0
  30. package/dist/types/BranchNodeList.d.ts.map +1 -0
  31. package/dist/types/ChildrenAnalyzer.d.ts +15 -0
  32. package/dist/types/ChildrenAnalyzer.d.ts.map +1 -0
  33. package/dist/types/ChildrenAnalyzerError.d.ts +8 -0
  34. package/dist/types/ChildrenAnalyzerError.d.ts.map +1 -0
  35. package/dist/types/ChildrenAnalyzerOptions.d.ts +10 -0
  36. package/dist/types/ChildrenAnalyzerOptions.d.ts.map +1 -0
  37. package/dist/types/ErrorMessageFactory.d.ts +3 -0
  38. package/dist/types/ErrorMessageFactory.d.ts.map +1 -0
  39. package/dist/types/LeafList.d.ts +3 -0
  40. package/dist/types/LeafList.d.ts.map +1 -0
  41. package/dist/types/helpers/getErrorMessage.d.ts +4 -0
  42. package/dist/types/helpers/getErrorMessage.d.ts.map +1 -0
  43. package/dist/types/helpers/index.d.ts +2 -0
  44. package/dist/types/helpers/index.d.ts.map +1 -0
  45. package/dist/types/helpers/wrapError.d.ts +3 -0
  46. package/dist/types/helpers/wrapError.d.ts.map +1 -0
  47. package/dist/types/index.d.ts +5 -0
  48. package/dist/types/index.d.ts.map +1 -0
  49. package/dist/types/nodeSpecs/BranchNode.d.ts +23 -0
  50. package/dist/types/nodeSpecs/BranchNode.d.ts.map +1 -0
  51. package/dist/types/nodeSpecs/BranchNodeOptions.d.ts +5 -0
  52. package/dist/types/nodeSpecs/BranchNodeOptions.d.ts.map +1 -0
  53. package/dist/types/nodeSpecs/Leaf.d.ts +20 -0
  54. package/dist/types/nodeSpecs/Leaf.d.ts.map +1 -0
  55. package/dist/types/nodeSpecs/RawNodeRepresentation.d.ts +2 -0
  56. package/dist/types/nodeSpecs/RawNodeRepresentation.d.ts.map +1 -0
  57. package/dist/types/nodeSpecs/index.d.ts +6 -0
  58. package/dist/types/nodeSpecs/index.d.ts.map +1 -0
  59. package/dist/types/nodeSpecs/types/ChildrenRepresentationReducer.d.ts +2 -0
  60. package/dist/types/nodeSpecs/types/ChildrenRepresentationReducer.d.ts.map +1 -0
  61. package/dist/types/nodeSpecs/types/ConstrainedLeafRepresentationFactory.d.ts +3 -0
  62. package/dist/types/nodeSpecs/types/ConstrainedLeafRepresentationFactory.d.ts.map +1 -0
  63. package/dist/types/nodeSpecs/types/DeclarationSiteNodeRepresentationFactory.d.ts +2 -0
  64. package/dist/types/nodeSpecs/types/DeclarationSiteNodeRepresentationFactory.d.ts.map +1 -0
  65. package/dist/types/nodeSpecs/types/RepresentationFactorySite.d.ts +2 -0
  66. package/dist/types/nodeSpecs/types/RepresentationFactorySite.d.ts.map +1 -0
  67. package/dist/types/nodeSpecs/types/StaticContextFactory.d.ts +2 -0
  68. package/dist/types/nodeSpecs/types/StaticContextFactory.d.ts.map +1 -0
  69. package/dist/types/nodeSpecs/types/SyntheticChildrenFactory.d.ts +3 -0
  70. package/dist/types/nodeSpecs/types/SyntheticChildrenFactory.d.ts.map +1 -0
  71. package/dist/types/nodeSpecs/types/UnconstrainedLeafRepresentationFactory.d.ts +3 -0
  72. package/dist/types/nodeSpecs/types/UnconstrainedLeafRepresentationFactory.d.ts.map +1 -0
  73. package/dist/types/nodeSpecs/types/UseSiteBranchNodeRepresentationFactory.d.ts +3 -0
  74. package/dist/types/nodeSpecs/types/UseSiteBranchNodeRepresentationFactory.d.ts.map +1 -0
  75. package/dist/types/nodeSpecs/types/ValidFactoryName.d.ts +2 -0
  76. package/dist/types/nodeSpecs/types/ValidFactoryName.d.ts.map +1 -0
  77. package/dist/types/nodeSpecs/types/index.d.ts +10 -0
  78. package/dist/types/nodeSpecs/types/index.d.ts.map +1 -0
  79. package/dist/types/tsconfig.tsbuildinfo +1 -0
  80. package/package.json +37 -0
  81. package/src/BranchNodeList.ts +10 -0
  82. package/src/ChildrenAnalyzer.ts +260 -0
  83. package/src/ChildrenAnalyzerError.ts +8 -0
  84. package/src/ChildrenAnalyzerOptions.ts +12 -0
  85. package/src/ErrorMessageFactory.ts +5 -0
  86. package/src/LeafList.ts +8 -0
  87. package/src/helpers/getErrorMessage.ts +10 -0
  88. package/src/helpers/index.ts +1 -0
  89. package/src/helpers/wrapError.ts +46 -0
  90. package/src/index.ts +5 -0
  91. package/src/nodeSpecs/BranchNode.ts +103 -0
  92. package/src/nodeSpecs/BranchNodeOptions.ts +4 -0
  93. package/src/nodeSpecs/Leaf.ts +59 -0
  94. package/src/nodeSpecs/RawNodeRepresentation.ts +5 -0
  95. package/src/nodeSpecs/index.ts +6 -0
  96. package/src/nodeSpecs/types/ChildrenRepresentationReducer.ts +3 -0
  97. package/src/nodeSpecs/types/ConstrainedLeafRepresentationFactory.ts +6 -0
  98. package/src/nodeSpecs/types/DeclarationSiteNodeRepresentationFactory.ts +10 -0
  99. package/src/nodeSpecs/types/RepresentationFactorySite.ts +1 -0
  100. package/src/nodeSpecs/types/StaticContextFactory.ts +4 -0
  101. package/src/nodeSpecs/types/SyntheticChildrenFactory.ts +6 -0
  102. package/src/nodeSpecs/types/UnconstrainedLeafRepresentationFactory.ts +6 -0
  103. package/src/nodeSpecs/types/UseSiteBranchNodeRepresentationFactory.ts +12 -0
  104. package/src/nodeSpecs/types/ValidFactoryName.ts +1 -0
  105. package/src/nodeSpecs/types/index.ts +9 -0
  106. package/src/tsconfig.json +9 -0
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/ts5.0/global.d.ts","../../../../node_modules/@types/react/node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/scheduler/tracing.d.ts","../../../../node_modules/@types/react/ts5.0/index.d.ts","../../../../node_modules/@types/react/ts5.0/jsx-runtime.d.ts","../../src/nodeSpecs/types/ChildrenRepresentationReducer.ts","../../src/nodeSpecs/types/ConstrainedLeafRepresentationFactory.ts","../../src/nodeSpecs/types/DeclarationSiteNodeRepresentationFactory.ts","../../src/nodeSpecs/types/RepresentationFactorySite.ts","../../src/nodeSpecs/types/StaticContextFactory.ts","../../src/nodeSpecs/types/SyntheticChildrenFactory.ts","../../src/nodeSpecs/types/UnconstrainedLeafRepresentationFactory.ts","../../src/nodeSpecs/types/UseSiteBranchNodeRepresentationFactory.ts","../../src/nodeSpecs/types/ValidFactoryName.ts","../../src/nodeSpecs/types/index.ts","../../src/ChildrenAnalyzerError.ts","../../src/nodeSpecs/BranchNodeOptions.ts","../../src/nodeSpecs/BranchNode.ts","../../src/nodeSpecs/Leaf.ts","../../src/nodeSpecs/RawNodeRepresentation.ts","../../src/nodeSpecs/index.ts","../../src/BranchNodeList.ts","../../../utilities/dist/types/assert-types/AssertionError.d.ts","../../../../node_modules/type-fest/source/primitive.d.ts","../../../../node_modules/type-fest/source/typed-array.d.ts","../../../../node_modules/type-fest/source/basic.d.ts","../../../../node_modules/type-fest/source/observable-like.d.ts","../../../../node_modules/type-fest/source/empty-object.d.ts","../../../../node_modules/type-fest/source/is-equal.d.ts","../../../../node_modules/type-fest/source/except.d.ts","../../../../node_modules/type-fest/source/tagged-union.d.ts","../../../../node_modules/type-fest/source/simplify.d.ts","../../../../node_modules/type-fest/source/writable.d.ts","../../../../node_modules/type-fest/source/trim.d.ts","../../../../node_modules/type-fest/source/is-any.d.ts","../../../../node_modules/type-fest/source/internal.d.ts","../../../../node_modules/type-fest/source/writable-deep.d.ts","../../../../node_modules/type-fest/source/omit-index-signature.d.ts","../../../../node_modules/type-fest/source/pick-index-signature.d.ts","../../../../node_modules/type-fest/source/enforce-optional.d.ts","../../../../node_modules/type-fest/source/merge.d.ts","../../../../node_modules/type-fest/source/conditional-simplify.d.ts","../../../../node_modules/type-fest/source/merge-deep.d.ts","../../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../../node_modules/type-fest/source/partial-deep.d.ts","../../../../node_modules/type-fest/source/required-deep.d.ts","../../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../../node_modules/type-fest/source/literal-union.d.ts","../../../../node_modules/type-fest/source/promisable.d.ts","../../../../node_modules/type-fest/source/opaque.d.ts","../../../../node_modules/type-fest/source/invariant-of.d.ts","../../../../node_modules/type-fest/source/set-optional.d.ts","../../../../node_modules/type-fest/source/set-readonly.d.ts","../../../../node_modules/type-fest/source/set-required.d.ts","../../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../../node_modules/type-fest/source/value-of.d.ts","../../../../node_modules/type-fest/source/async-return-type.d.ts","../../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../../node_modules/type-fest/source/conditional-except.d.ts","../../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../../node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../../node_modules/type-fest/source/stringified.d.ts","../../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../../node_modules/type-fest/source/iterable-element.d.ts","../../../../node_modules/type-fest/source/entry.d.ts","../../../../node_modules/type-fest/source/entries.d.ts","../../../../node_modules/type-fest/source/is-unknown.d.ts","../../../../node_modules/type-fest/source/set-return-type.d.ts","../../../../node_modules/type-fest/source/asyncify.d.ts","../../../../node_modules/type-fest/source/numeric.d.ts","../../../../node_modules/type-fest/source/jsonify.d.ts","../../../../node_modules/type-fest/source/jsonifiable.d.ts","../../../../node_modules/type-fest/source/schema.d.ts","../../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../../node_modules/type-fest/source/literal-to-primitive-deep.d.ts","../../../../node_modules/type-fest/source/string-key-of.d.ts","../../../../node_modules/type-fest/source/exact.d.ts","../../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../../node_modules/type-fest/source/override-properties.d.ts","../../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../../node_modules/type-fest/source/readonly-keys-of.d.ts","../../../../node_modules/type-fest/source/writable-keys-of.d.ts","../../../../node_modules/type-fest/source/spread.d.ts","../../../../node_modules/type-fest/source/tuple-to-union.d.ts","../../../../node_modules/type-fest/source/is-never.d.ts","../../../../node_modules/type-fest/source/is-literal.d.ts","../../../../node_modules/type-fest/source/if-any.d.ts","../../../../node_modules/type-fest/source/if-never.d.ts","../../../../node_modules/type-fest/source/if-unknown.d.ts","../../../../node_modules/type-fest/source/split-words.d.ts","../../../../node_modules/type-fest/source/camel-case.d.ts","../../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../../node_modules/type-fest/source/kebab-case.d.ts","../../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../../node_modules/type-fest/source/pascal-case.d.ts","../../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../../node_modules/type-fest/source/snake-case.d.ts","../../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../../node_modules/type-fest/source/includes.d.ts","../../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../../node_modules/type-fest/source/join.d.ts","../../../../node_modules/type-fest/source/split.d.ts","../../../../node_modules/type-fest/source/replace.d.ts","../../../../node_modules/type-fest/source/get.d.ts","../../../../node_modules/type-fest/source/last-array-element.d.ts","../../../../node_modules/type-fest/source/global-this.d.ts","../../../../node_modules/type-fest/source/package-json.d.ts","../../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../../node_modules/type-fest/index.d.ts","../../../utilities/dist/types/assert-types/types.d.ts","../../../utilities/dist/types/assert-types/Predicates.d.ts","../../../utilities/dist/types/assert-types/assert.d.ts","../../../utilities/dist/types/assert-types/assertNever.d.ts","../../../utilities/dist/types/assert-types/index.d.ts","../../../utilities/dist/types/class-name/types.d.ts","../../../utilities/dist/types/class-name/colorSchemeClassName.d.ts","../../../utilities/dist/types/class-name/constants.d.ts","../../../utilities/dist/types/class-name/deduplicateClassName.d.ts","../../../utilities/dist/types/class-name/filterThemedClassName.d.ts","../../../utilities/dist/types/class-name/flatClassNameList.d.ts","../../../utilities/dist/types/class-name/listClassName.d.ts","../../../utilities/dist/types/class-name/stateClassName.d.ts","../../../utilities/dist/types/class-name/themeClassName.d.ts","../../../utilities/dist/types/class-name/index.d.ts","../../../utilities/dist/types/css-utilities/px.d.ts","../../../utilities/dist/types/css-utilities/index.d.ts","../../../utilities/dist/types/deprecate/types.d.ts","../../../utilities/dist/types/deprecate/deprecate.d.ts","../../../utilities/dist/types/deprecate/fallback.d.ts","../../../utilities/dist/types/deprecate/index.d.ts","../../../utilities/dist/types/dom/dataAttribute.d.ts","../../../utilities/dist/types/dom/getElementDimensions.d.ts","../../../utilities/dist/types/dom/getMatchingParentElement.d.ts","../../../utilities/dist/types/dom/getSizeFromResizeObserverEntry.d.ts","../../../utilities/dist/types/dom/isScrollable.d.ts","../../../utilities/dist/types/dom/parseTransformMatrix.d.ts","../../../utilities/dist/types/dom/stateDataAttributes.d.ts","../../../utilities/dist/types/dom/svgSizeProps.d.ts","../../../utilities/dist/types/dom/index.d.ts","../../../utilities/dist/types/functional/extend.d.ts","../../../utilities/dist/types/functional/omit.d.ts","../../../utilities/dist/types/functional/pick.d.ts","../../../utilities/dist/types/functional/range.d.ts","../../../utilities/dist/types/functional/setHasOneOf.d.ts","../../../utilities/dist/types/functional/index.d.ts","../../../utilities/dist/types/string-utilities/capitalize.d.ts","../../../utilities/dist/types/string-utilities/kebabCase.d.ts","../../../utilities/dist/types/string-utilities/trimString.d.ts","../../../utilities/dist/types/string-utilities/index.d.ts","../../../utilities/dist/types/types/Any.d.ts","../../../utilities/dist/types/types/DeepPartial.d.ts","../../../utilities/dist/types/types/Try.d.ts","../../../utilities/dist/types/types/Narrow.d.ts","../../../utilities/dist/types/types/NonNullableRequired.d.ts","../../../utilities/dist/types/types/NonOptional.d.ts","../../../utilities/dist/types/types/ObjectKeyValue.d.ts","../../../utilities/dist/types/types/PolymorphicRefs.d.ts","../../../utilities/dist/types/types/Primitive.d.ts","../../../utilities/dist/types/types/RequiredDeepPlainObject.d.ts","../../../utilities/dist/types/types/TypeofStringLiteral.d.ts","../../../utilities/dist/types/types/index.d.ts","../../../utilities/dist/types/index.d.ts","../../src/ErrorMessageFactory.ts","../../src/ChildrenAnalyzerOptions.ts","../../src/LeafList.ts","../../src/helpers/getErrorMessage.ts","../../src/helpers/index.ts","../../src/helpers/wrapError.ts","../../src/ChildrenAnalyzer.ts","../../src/index.ts","../../../../node_modules/vite/types/hmrPayload.d.ts","../../../../node_modules/vite/types/customEvent.d.ts","../../../../node_modules/vite/types/hot.d.ts","../../../../node_modules/vite/types/importGlob.d.ts","../../../../node_modules/vite/types/importMeta.d.ts","../../../../node_modules/vite/client.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"9a60b92bca4c1257db03b349d58e63e4868cfc0d1c8d0ba60c2dbc63f4e6c9f6","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"49a253ec027e56c55c7450a0c331cfe96212b3d1cc215b1710ba94a083404cf3","affectsGlobalScope":true},"1c29793071152b207c01ea1954e343be9a44d85234447b2b236acae9e709a383","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"278fe30e638dad09488d130287c728f99f61cb315ed86b70c36040e4311f9cf5","affectsGlobalScope":true},"af7fd2870746deed40e130fc0a3966de74e8f52a97ec114d0fbb35876ab05ca9",{"version":"a9c21d8c1022cf7c134e33b95bd38d792b1353749e4312b8bf184baf1c6e6186","signature":"476e595a4d19de9f46348c8beebbf708978ab592862917cfa284780b00b82013"},{"version":"a2d99deb45290e2ad3be8e8db687f498eaa5f857ddc0f081045911d2408d6f65","signature":"bcdb41180dc8b3bb7766cb0157b00608cf6fcc39569ec1c87245b27a32168944"},{"version":"2c4b09e2886389ac8a6fb4a763de72b30fd22b29ad194bd7a7b966f409e2d20c","signature":"aefa16b954029ecc8800e851c52942c6b0d1b19b4b8cf179ceb2eeed40250339"},{"version":"f46736b4c4956a380050bbe5fc4dc914bfc70e7561cd6a6889d0854bbad6c053","signature":"e2396536f60d5fb378182b2cf695c4fe0f44b98a65cb11de7aa540640a49f32f"},{"version":"cfb7cbd7db2fb7f997b2cf652191042e72e322b9c04c161cfd8b74f759ab6ab5","signature":"29e86258bae9032d4a41ae819636bd2c5f2b2aef9d02000341debb0c45d88ab1"},{"version":"09128331d23e062378d0354e5b9cf8da6ff27dd61d1942966d730b1f22e80e7f","signature":"95092929201ee7ed4cfe82827a3f2628cab74e9f725f68a31ffaf897c197051a"},{"version":"b5c303499a3c43d8170ed36dc7b3f233524ff3e99f8f3319960165537b387ce8","signature":"3c8a5b67937216b02b9a21cf8614b56b2679bf6725f64d51e89b53ca72f4fd80"},{"version":"867982da569cd55c28d3c2178a67e32d2ad58002b815f623a3049aa39a3a6c5c","signature":"a985c9f8618c0c7ed35b85798f017ab899078b29b54786d0ada07045804dc20b"},{"version":"da33c798c79471b84e7325268e2b07d5659dab29e44e222cec3a4261d75c11a8","signature":"003ac502c8f5df7f026e2b1afaeb386e58433d4ef6d7c2ea5e74197084aea9d6"},{"version":"457190a697618a8153922ff3142e8a306a6db160b92acee3de08206a4b3659f5","signature":"ac2f98183ecd3fbae9b7af51efeefe3bcaa2acf6f150fe776afe73444b3a7d43"},{"version":"e4b30974841000a2f00e89ac2cfa8a063766e69131e31ee521267af0bab4cfd5","signature":"ec33c9ae91ebe33329992a166653817225f9ebc08835c8bac7270a6be763d55c"},{"version":"81d8157c53cd3457cefeee525e509da21a28e61e131d6c23cdb99570d4f171c0","signature":"d519308aedac3bb98d355832e80d9d988570ef945649255bcc0988b91a6157d6"},{"version":"7327aedbd450b22a519aff0b7e4f93553463b578136415764de7727ebddf2d44","signature":"2c1c6fe63c4985cfb439f248eca2fba14446a21c3c7afc254c85c492ceb7174a"},{"version":"cdfa71e29fc4507f0beabef37debe8e361ac525d5b22b0c02588855dea59a948","signature":"4a744a8145a44cb9a0df124bc8b86c448fa9bf8f176ac8e9c5777cae919b0bad"},{"version":"a24a9885385ca27603b8bdf0f7b19ea2f045cb7e38a85458a7c7908c0cd9b111","signature":"ec0c9bf6132e535c80f3cca0800e105bb651543ea1ff3f80530dbb9f94e76d7b"},{"version":"bd48adca38f6d32cec918e4dffe5e5b4a71cfe27dd2e26fb5dd07b23fd7ed1f7","signature":"2b8997bd989157a95291c8106ae6d8851d1400176d68a56e88b1ae1da3467682"},{"version":"795a8d3c1116f076ad63ca53a0e9cc9e37e9a8b3fa87078fdc9cead9819aa9c2","signature":"e01e3584196282a6e4802e10b3f01c67582a4b499f6fce5e72b3c05ca842547e"},"f341c93fefe964ea97c5106e3d93c4271bb3951a06a34e08da704c6faf871380","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","5141a3f0cc1bf2b0e8dee747e88a2b4ce0e9d1a4a019334f3b317f00764576c6",{"version":"4f24c2781b21b6cd65eede543669327d68a8cf0c6d9cf106a1146b164a7c8ef9","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","15ab3db8aa099e50e8e6edd5719b05dd8abf2c75f56dc3895432d92ec3f6cd6b","6ff14b0a89cb61cef9424434ee740f91b239c09272c02031db85d388b84b7442","5d6f919e1966d45ea297c2478c1985d213e41e2f9a6789964cdb53669e3f7a6f","884eaf5bcae2539fd5e7219561315c02e6d5cb452df236b7d6a08e961ec11dad","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","8504003e88870caa5474ab8bd270f318d0985ba7ede4ee30fe37646768b5362a","1cf99fe49768500d01d873870085c68caa2b311fd40c1b05e831de0306f5f257","2fb375811303a0852f21a9472a6c76b7d69c3b241861dee4784b8bf7b5a794b1","5a1e787f0f10f53e574e347c0f4904a743dc93d8989a08b308b7b29365e5964f","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","952c4a8d2338e19ef26c1c0758815b1de6c082a485f88368f5bece1e555f39d4","bfa7e8a9830bf5f390b4ccb4286b32239e6ddc4dca515aac187705a478de86ed","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","dee75c873b20a13839a8ce9ea9d32696682c6db4b1e9f4fb6bc431ed31b0fb8a","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","0c658045146923a90b8fae427978ce3f7787f6a865a7f92717969fda90e6ecfb","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","231b86b94836e8b22b04812f9bb1cbc564923f39549269da0266516b91854b36","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","16219e7997bfc39ed9e0bb5f068646c0cdc15de5658d1263e2b44adf0a94ebef","4ccedab1527b8bf338730810280cce9f7caf450f1e9e2a6cbabaa880d80d4cf9","1f0ee5ddb64540632c6f9a5b63e242b06e49dd6472f3f5bd7dfeb96d12543e15","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","2d3f23c577a913d0f396184f31998507e18c8712bc74303a433cf47f94fd7e07","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","3c2e543e5913aca16ba24e406cebbf84bac298f79c249ea255016fabaf8be744","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","31073e7d0e51f33b1456ff2ab7f06546c95e24e11c29d5b39a634bc51f86d914","f60149e188145ebf3e6edf735576a2c26e805ac575bfdfa839a27929175e0855","31d18349ccfc45ce4f82990c71aed8901272a8edc9c6d1b2d330aabf36f50aec","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","3146e973c617598b8e2866b811fdfcafe71e162e907d717758d2412ba9b72c28","a653bd49c09224150d558481f93c4f2a86f9a282747abd39bd2854207d91ceba","efa00be58e65b88ea17c1eafd3efe3bc02ea403be1ee858f128ed79e7b880bd4","f5f716848e9b1e873519aa6408c35ac70c1ec471c460497842f28644dd906cb1","55d3747b2a8949561a78f7327647e54418ab3746f7dced6cfe75d76f2b051aa8","cd8aa48c26b3de057cfd76706c0cff88ace0f23f548b8dee974088497780e5ae","abf140fdc3db44c2cac9415426544d8c2a89e73f13f7838376b2b6d36d74a582","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","ceb2c0bc630cca2d0fdd48b0f48915d1e768785efaabf50e31c8399926fee5b1","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","c63a0620a7fa59bbcac4ae218d477fdeafac72b689fede1e3acbbb1b8d90f36c","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","421703860812c1dc29f83893f89434c855e09354c49012ff63b70c21243d997e","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","22fcfd509683e3edfaf0150c255f6afdf437fec04f033f56b43d66fe392e2ad3","3d5d9aa6266ea07199ce0a1e1f9268a56579526fad4b511949ddb9f974644202","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","1502a23e43fd7e9976a83195dc4eaf54acaff044687e0988a3bd4f19fc26b02b","f9b229aaa696a31f6566b290305f99e5471340b0a041d5ae9bd291f69d96a618","6592ae1f1eec2e4cd4db11033b6936c8d9e009ddc48c164e46ef101a0dfc2c70","d9c6f10eebf03d123396d4fee1efbe88bc967a47655ec040ffe7e94271a34fc7","0f2c77683296ca2d0e0bee84f8aa944a05df23bc4c5b5fef31dda757e75f660f","309586820e31406ed70bb03ea8bca88b7ec15215e82d0aa85392da25d0b68630","11e4e2be18385fa1b4ffa0244c6c626f767058f445bbc66f1c7155cc8e1ec5b4","f47280c45ddbc8aa4909396e1d8b526f64dfad4a845aec2356a6c1dc7b6fe722","7b7f39411329342a28ea19a4ca3aa4c7f7d888c9f01a411b05e4126280026ea6","7f89aebd8a6aa9ff7dfc72d12352478f1db227e2d79d5b5f9d8a59cf1b5c6b48","7d936e6db7d5d73c02471a8e872739f1ddbacf213c159e97d1d94cca315ea3f2","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","d82c245bfb76da44dd573948eca299ff75759b9714f8410468d2d055145a4b64","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","c65a41b9185521fb1d98111fd30fa4b3a5020c0e9cd8bb8c691d5536c8688156","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","9e5c7463fc0259a38938c9afbdeda92e802cff87560277fd3e385ad24663f214","8d59c3a0e8eacafde3525d8fab814d635e73f8f2264f461283a1ee829a67d33a","2ab9b3b4938022c0078d38ce47fe7863e259d855f04fd5a92fb8af6649b57632","0440373172ecd0dd335030c842f51641d57a5f9c0a268efd738dfc21fd4f1439","2e27a8a2f3bb8d4da37f638bbd7013839cd41da081533fd79e390e963c30f42a","b2116cfe6a3d3830d30d8a66bdf3a78834338da2309ae1b8e86e62b39b559a82","684fa42e4c7c6505105e948825329b720a388b7bf7624bfe2f51087a15d04445","a95c25e1f9146dd90f7cb36c7e306a25a67bdef1eaae7319a60d2f9d3ff66804","a98b93132fb74f455547d25af7e524e942504d265c037e235aaa38718083958f","c77947067d5990ff247a610324a574e9adc251936cf287f3f6d2272d54de999f","c224814a2c86c21524cdf0bbb337a9f58b159f89d75c0e8d394c45b65b2c5145","33a475a5b32f8ade251f023abe79efb28a1ed0921936faa153b6762073c02008","854e693935e706cde39ec782c3d16ba2d76923d71accba703d21c71bba284184","1b96794ba93e4008349185cda5ea725819a1a0f345cbb4c8ae6bc7d9e2758af9","49e29f37de0379778b35430743f3b2ec0934b5029ed22f7111d1a72edd86266d","0fbd308cd3436e453033babe3dea47ac92a96df652584aa1081ce382e7d54ada","274246a7f510feca0d9e6bd72b690620ffe470f184b7d71fa3fa0c79861917d3","07320ed1f9a9ebc6f0f37e71d08ec98331780ce423256ec7db97211e135c57ba","f82e5b3fc7c2116cde88f5c59f5369ed0d9bc8c96d1e33962c1eb573d4571f6c","afd44534064f3d94cd248096074344857d9e8aaa787eb209b155002f76b44271","f3c9d693e0597f6b1b5dd49bd0beaaa237bd491508991ea3c72b47d3c7d20fdb","624e76b41eb76400df5e0cbacc5f7091e6bd0518e0f9f4ac4a047794b2c189f9","f14113b17b6a1863dd58e49e0bc504f21d51da969bc1fc4af1a07b3684f0de25","706a81603484affbd78a91330a0f94c1fff2006688a6bc0ca81b6586e6878c94","395dab864d640bdfecbf29bcd55447b0c868e239791bf242b0856c41f07c8112","1c84b348bb07619f2123fddd01c20184c6212540909bd98fdc450f7d4e234717","8bb29538074d6a78d49562f391bbe4a2b9b5ae028734d83e6601fe2741db7f6e","7bd62fc2cefeeb76bf935279de114a8f509d70232badea6f02c5235b8efd08a7","cc9bdde4319a73448db9e4dd8dc256d04f0060b90383b4563c3a32a3b67780d5","2a5d65d9ef97588e66e1eb9ba088e3bcd8fad77f56319a34f206f042716d5f98","53870be174a4233e5ceb0b0f7d7b298eb5896f45782236f65cfce1e971e13a02","f08668998295cdfe38a1db2bcd024341362cb20159dd8baa498064e560d0254b","dfe644b96a0786c3ed103bffe7331349022c647802d40030067cf71c9ce79bb5","27d2167a7e143ac0d0ac7fc787a4197c33bb8fd6ce9ddc91f237730e32f65456","30145879995c539f1f19d84786abeb2ef5079fcbd11d27e38a9d49cc1f32333e","9ecd8f32f134677d4134ee1178bedab19a51f1cb2ac468da4043f81c14ebd3ac","7c9ea735d5a29405896bf2e56d9f3afe0f5d1576736c54c4d5d879f08976d4db","203243c89d2ba33af45ffb13b75cbc6df13f49e937ff8b13bda460a68c19aa3c","f4d6688e7084a99a025d570c620544d5235668cf2fe90acc8b5b311729c83816","6cc7cb1396ecd019a7486e541205d582513bb53d0ff8b060427d8543df969507","7a8119cc3d41a3adfa818800df5899f1bf3cc68eed005e44a85c218dbcf3889a","0c6ae7360c8f7de225172914d960a5947b0a8f5e9e0a045a5f03c870fc98b1f5","1ea04e06101a73c7896a461675bd5a429b121c5cb6de24c94332ff102d145a98","59e4242640eddb3fb1d9387cd2b28bd2a3d11372651300b63992874bcacf0fb6","93fe340b2ae9309f9ed943ce36d41b0781e03de0e35eee6eae41d92b0b1898ee","d6339e78331aef24260e77249cc452ab8487ed3308a7bdc06135e7b465587127","b182b44845c33c2c049c56bbc090c182f8a39e55362b266fdc6871299567a597","ef41df1dbd2813e7421cab4402af2777d761664e666df0e727ed431a34be8c83","e1e25bc3db37f4722303072a8f02c3d9408d7c226e2f070f45dc21a7c0214be7","c921746b36842e21243970c5ed44b488e842afe99843da3cb7f197242f4f2c9e","325430df8b9df3d182ab9edfa79b6f772eced949949620db3f2cef29091b24ed","27f63235b9872e2c451142a8d2d421106e58db76185dc5de6ddc7cd1c8412924","db32c611feafb74c561d1c3329a4a3349b5d3df6a61612d650624b33dc6fcb7f","682c72441f9dc0350ee787e76c83feed7e154f1a3cf228543cd24dde7d53167e","cdc3f517e952eab05c5aeaaf469ecce852112e5cd68dce7deed75136e7091d3c","49b92ef77067a7e85ae36e5c9d5e9c1f699ef755363c67c1cb581ba846e9eb22","4a622a039059bc79af732b38713d75cf95c372f45d3b8fd6705943ffa1bb41b3",{"version":"d1c97f31e1d15d00eb424d8328cef49991ef84cc1415e714bc13c5432a9f2075","signature":"9989b29890b4991902c6e00d35ac47cd5d58ece81841c196e6b2410532ee1044"},{"version":"6901ceca3adc070f8e77e6e6eff53f44aed701cc191faa75bcf821e8bb6c03d6","signature":"4ef5e4999e4ba505b9067a73b3a9976ad85a5b924fc3442e1dd8a25dcdc08269"},{"version":"4e7afa7c39db022e830595e3651298ab1971a1495c5ea18b84e6eb6410fe0f6f","signature":"bc1d7ea9f0ea72a21057f80678e97c3f566d20c46b3541a601022a6f7f687340"},{"version":"d71ec1da745c53611f1b05cd8041e5f3d54764bf6dcecf97b2b2b38438540873","signature":"b297960be66224fd76bfde7bd766b088925c078c614f372a09f71e43f786cfaa"},{"version":"6fd0fb51989798e07e6c10b02d0a72fa3145856d3f38ef8bd193a104c534c9f4","signature":"bc357378e04884500ad2f6a3636329a539ec6ffe27f53d79e48a9afa4e307840"},{"version":"0824ca5fd22451f71eaf191d84b6c615fda92ca9f809dc4448109a285fbad977","signature":"d862f114953bcdafaa15f4e06ec6bd5d9d6a9a8b1e156442537277ca99d669c3"},{"version":"832e0dc1b98dbe2e3166121d4d7bfb2f3f6db8d86be41223bbfe5b5d3dc8ccce","signature":"bf4aab488f9439a4747dd85d2f7e626fe74949feee5d003e84189001471dbe1a"},{"version":"2d6b75242f3e60cbe3976167258cc323e0d1e39353f870c4037b35d075a3a75f","signature":"5b4e64ff6293018f7ff8339962af83025fb9df590afdf8dba5fb57fbb0b5a08d"},"bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","0aa7220845f5f3902fe043f646f9d9218bd7dd6c4046e8471580866ea6b03aa2","4d5fb5d6b35f731b2ae4d9d7c592d48e91d6de531dd130628edf4eba16add893","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f",{"version":"df93bb67d5ae7be3d599323de42e12cb8da59f0b490c3186ae91d493632b5e36","affectsGlobalScope":true},{"version":"f8b8b34c4f7651c9f7b126af8affda4139a0499e62e74f0f8dc2be36e9f14b59","affectsGlobalScope":true}],"root":[[68,84],[242,249]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[62,63,64,65],[66],[86,87,88,89,90,91,92,93,94,95,96,97,99,100,101,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[137],[162],[163],[92,124],[91,104,116,125],[124],[98],[166],[94],[134],[91,98,116],[91],[98,145,181],[148],[151],[97],[157],[136],[86,94,96,97],[116],[86,98,139,157],[88],[87,88,90,97,98,139],[170],[168],[100,143],[86],[98,100,101,102,103,104],[100,101,102],[91,98],[103],[88,114],[98,103],[172],[92],[166,175,178],[92,94],[92,94,151],[95,98],[254],[250],[251],[252,253],[67,83],[66,67,78,83,84,241,243,244,246,247],[67],[67,242],[66,67],[66,67,242],[67,245],[66,67,78],[67,78,83,243,248],[66,67,77,78,79],[66,67,77],[67,77,79,80,81,82],[67,68,69,70,71,72,73,74,75,76],[189],[85,189,190,191,192],[188],[188,194],[194],[194,195,196,197,198,199,200,201,202],[204],[206],[206,207,208],[210,211,212,213,214,215,216,217],[219,220,221,222,223],[193,203,205,209,218,224,228,240],[225,226,227],[231],[188,229,230,231,232,233,234,235,236,237,238,239],[83],[66,84,243,244],[242],[66,242],[245],[78,83,243,248],[66,77,79],[66,77],[77,79,80,81,82],[68,69,70,71,72,73,74,75,76]],"referencedMap":[[66,1],[67,2],[188,3],[138,4],[163,5],[165,6],[164,6],[125,7],[127,8],[126,9],[166,10],[170,11],[168,11],[102,12],[135,13],[146,14],[92,15],[183,16],[150,17],[152,18],[159,19],[160,20],[161,21],[178,15],[98,22],[117,23],[158,24],[136,10],[141,25],[140,26],[167,11],[171,27],[169,28],[144,29],[114,30],[105,31],[103,32],[131,33],[132,33],[149,34],[186,35],[110,10],[112,36],[172,6],[174,37],[173,37],[113,10],[153,15],[107,38],[111,10],[179,39],[118,40],[119,40],[120,40],[137,21],[175,11],[177,27],[176,28],[162,10],[155,41],[96,10],[99,42],[154,15],[95,40],[255,43],[251,44],[252,45],[254,46],[84,47],[248,48],[78,49],[243,50],[242,51],[244,47],[245,52],[246,53],[247,54],[249,55],[80,56],[79,49],[81,57],[82,49],[83,58],[68,49],[69,51],[70,49],[71,49],[72,49],[73,51],[74,51],[75,51],[76,49],[77,59],[190,60],[191,60],[193,61],[189,62],[195,63],[198,64],[199,64],[203,65],[200,64],[201,64],[202,63],[194,62],[205,66],[207,67],[209,68],[218,69],[224,70],[241,71],[228,72],[232,73],[240,74]],"exportedModulesMap":[[66,1],[67,2],[188,3],[138,4],[163,5],[165,6],[164,6],[125,7],[127,8],[126,9],[166,10],[170,11],[168,11],[102,12],[135,13],[146,14],[92,15],[183,16],[150,17],[152,18],[159,19],[160,20],[161,21],[178,15],[98,22],[117,23],[158,24],[136,10],[141,25],[140,26],[167,11],[171,27],[169,28],[144,29],[114,30],[105,31],[103,32],[131,33],[132,33],[149,34],[186,35],[110,10],[112,36],[172,6],[174,37],[173,37],[113,10],[153,15],[107,38],[111,10],[179,39],[118,40],[119,40],[120,40],[137,21],[175,11],[177,27],[176,28],[162,10],[155,41],[96,10],[99,42],[154,15],[95,40],[255,43],[251,44],[252,45],[254,46],[84,75],[248,76],[243,77],[242,2],[244,75],[245,78],[246,79],[247,2],[249,80],[80,81],[81,82],[83,83],[69,2],[73,2],[74,2],[75,2],[77,84],[190,60],[191,60],[193,61],[189,62],[195,63],[198,64],[199,64],[203,65],[200,64],[201,64],[202,63],[194,62],[205,66],[207,67],[209,68],[218,69],[224,70],[241,71],[228,72],[232,73],[240,74]],"semanticDiagnosticsPerFile":[64,63,62,66,67,65,188,123,138,88,163,165,164,125,124,127,126,104,166,170,168,90,102,135,134,146,92,130,183,185,150,152,159,160,161,178,98,117,97,91,158,157,136,133,180,141,140,167,171,169,184,144,143,114,105,106,103,131,132,139,89,100,116,148,149,186,110,112,172,174,173,101,86,115,113,153,147,182,109,107,108,111,151,142,179,121,118,119,120,137,94,175,177,176,162,181,155,145,129,93,96,187,156,87,128,122,99,154,95,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,255,251,250,252,253,254,84,248,78,243,242,244,245,246,247,249,80,79,81,82,83,68,69,70,71,72,73,74,75,76,77,85,190,191,192,193,189,195,196,197,198,199,203,200,201,202,194,205,204,207,208,209,206,210,211,212,213,218,214,215,216,217,219,224,220,221,222,223,241,225,228,226,227,229,230,232,233,234,235,236,237,238,231,239,240],"latestChangedDtsFile":"./index.d.ts"},"version":"5.0.4"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@contember/react-multipass-rendering",
3
+ "license": "Apache-2.0",
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "main": "./dist/production/index.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/types/index.d.ts",
12
+ "development": "./dist/development/index.js",
13
+ "production": "./dist/production/index.js",
14
+ "default": "./dist/production/index.js"
15
+ }
16
+ }
17
+ },
18
+ "files": [
19
+ "dist/",
20
+ "src/"
21
+ ],
22
+ "typings": "./dist/types/index.d.ts",
23
+ "scripts": {
24
+ "build": "yarn build:js:dev && yarn build:js:prod",
25
+ "build:js:dev": "NODE_ENV=development vite build --mode development",
26
+ "build:js:prod": "vite build --mode production",
27
+ "ae:build": "api-extractor run --local",
28
+ "ae:test": "api-extractor run",
29
+ "test": "vitest"
30
+ },
31
+ "dependencies": {
32
+ "@contember/utilities": "1.2.3"
33
+ },
34
+ "peerDependencies": {
35
+ "react": "^17 || ^18"
36
+ }
37
+ }
@@ -0,0 +1,10 @@
1
+ import type { BranchNode, RawNodeRepresentation, ValidFactoryName } from './nodeSpecs'
2
+
3
+ export type BranchNodeList<LeavesRepresentationUnion, BranchNodesRepresentationUnion, StaticContext> = BranchNode<
4
+ any,
5
+ StaticContext,
6
+ ValidFactoryName,
7
+ RawNodeRepresentation<LeavesRepresentationUnion, BranchNodesRepresentationUnion>,
8
+ any,
9
+ BranchNodesRepresentationUnion
10
+ >[]
@@ -0,0 +1,260 @@
1
+ import { assertNever } from '@contember/utilities'
2
+ import type { ElementType, ReactElement, ReactNode } from 'react'
3
+ import type { BranchNodeList } from './BranchNodeList'
4
+ import { ChildrenAnalyzerError } from './ChildrenAnalyzerError'
5
+ import type { ChildrenAnalyzerOptions } from './ChildrenAnalyzerOptions'
6
+ import type { LeafList } from './LeafList'
7
+ import { getErrorMessage } from './helpers'
8
+ import { wrapError } from './helpers/wrapError'
9
+ import type {
10
+ DeclarationSiteNodeRepresentationFactory,
11
+ RawNodeRepresentation,
12
+ StaticContextFactory,
13
+ SyntheticChildrenFactory,
14
+ UnconstrainedLeafRepresentationFactory,
15
+ ValidFactoryName,
16
+ } from './nodeSpecs'
17
+
18
+ export class ChildrenAnalyzer<
19
+ AllLeavesRepresentation = any,
20
+ AllBranchNodesRepresentation = never,
21
+ StaticContext = undefined,
22
+ > {
23
+ private static defaultOptions: ChildrenAnalyzerOptions = {
24
+ ignoreRenderProps: true,
25
+ renderPropsErrorMessage: 'Render props (functions as React component children) are not supported.',
26
+
27
+ ignoreUnhandledNodes: true,
28
+ unhandledNodeErrorMessage: 'Encountered an unknown child.',
29
+
30
+ staticContextFactoryName: 'getStaticContext',
31
+ staticRenderFactoryName: 'staticRender',
32
+ }
33
+
34
+ private readonly leaves: LeafList<AllLeavesRepresentation, StaticContext>
35
+ private readonly branchNodes: BranchNodeList<AllLeavesRepresentation, AllBranchNodesRepresentation, StaticContext>
36
+ private readonly options: ChildrenAnalyzerOptions<StaticContext>
37
+
38
+ public constructor(
39
+ leaves: LeafList<AllLeavesRepresentation, StaticContext>,
40
+ options?: Partial<ChildrenAnalyzerOptions>,
41
+ )
42
+ public constructor(
43
+ leaves: LeafList<AllLeavesRepresentation, StaticContext>,
44
+ branchNodes: BranchNodeList<AllLeavesRepresentation, AllBranchNodesRepresentation, StaticContext>,
45
+ options?: Partial<ChildrenAnalyzerOptions>,
46
+ )
47
+ public constructor(
48
+ leaves: LeafList<AllLeavesRepresentation, StaticContext>,
49
+ decider:
50
+ | Partial<ChildrenAnalyzerOptions>
51
+ | BranchNodeList<AllLeavesRepresentation, AllBranchNodesRepresentation, StaticContext> = [],
52
+ options: Partial<ChildrenAnalyzerOptions> = {},
53
+ ) {
54
+ this.leaves = leaves
55
+
56
+ if (Array.isArray(decider)) {
57
+ this.branchNodes = decider
58
+ } else {
59
+ this.branchNodes = []
60
+ options = decider
61
+ }
62
+ this.options = { ...ChildrenAnalyzer.defaultOptions, ...options }
63
+ }
64
+
65
+ public processChildren(
66
+ children: ReactNode,
67
+ initialStaticContext: StaticContext,
68
+ ): Array<AllLeavesRepresentation | AllBranchNodesRepresentation> {
69
+ const processed = this.processNode(children, initialStaticContext, [])
70
+
71
+ const rawResult: Array<AllLeavesRepresentation | AllBranchNodesRepresentation | undefined> = Array.isArray(
72
+ processed,
73
+ )
74
+ ? processed
75
+ : [processed]
76
+
77
+ return rawResult.filter(
78
+ (item): item is AllLeavesRepresentation | AllBranchNodesRepresentation => item !== undefined,
79
+ )
80
+ }
81
+
82
+ private processNode(
83
+ node: ReactNode,
84
+ staticContext: StaticContext,
85
+ componentPath: ReactElement[],
86
+ ): RawNodeRepresentation<AllLeavesRepresentation, AllBranchNodesRepresentation> {
87
+ if (!node || typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean') {
88
+ for (const leaf of this.leaves) {
89
+ const specification = leaf.specification
90
+ if (specification.type === 'useSite') {
91
+ const { ComponentType, factory } = specification
92
+ if (ComponentType === undefined) {
93
+ return factory(node, staticContext)
94
+ }
95
+ }
96
+ }
97
+ if (node === false || node === undefined || node === null) {
98
+ // This adds seamless support for conditionals and such.
99
+ return undefined
100
+ }
101
+ if (!this.options.ignoreUnhandledNodes) {
102
+ throw new ChildrenAnalyzerError(getErrorMessage(this.options.unhandledNodeErrorMessage, node, staticContext))
103
+ }
104
+ return undefined
105
+ }
106
+
107
+ if (typeof node === 'function') {
108
+ if (this.options.ignoreRenderProps) {
109
+ return undefined
110
+ }
111
+ throw new ChildrenAnalyzerError(getErrorMessage(this.options.renderPropsErrorMessage, node, staticContext))
112
+ }
113
+
114
+ if (Array.isArray(node)) {
115
+ let mapped: Array<AllLeavesRepresentation | AllBranchNodesRepresentation> = []
116
+
117
+ for (const subNode of node) {
118
+ const processed = this.processNode(subNode, staticContext, componentPath)
119
+
120
+ if (processed !== undefined) {
121
+ if (Array.isArray(processed)) {
122
+ mapped = mapped.concat(processed)
123
+ } else {
124
+ mapped.push(processed)
125
+ }
126
+ }
127
+ }
128
+
129
+ return mapped
130
+ }
131
+
132
+ let children: ReactNode = undefined
133
+
134
+ if (!('type' in node)) {
135
+ return this.processNode(children, staticContext, componentPath)
136
+ }
137
+ children = node.props.children
138
+
139
+ if (typeof node.type === 'symbol') {
140
+ // Fragment, Portal or other non-component
141
+ return this.processNode(children, staticContext, componentPath)
142
+ }
143
+ // if (typeof node.type === 'string') {
144
+ // // Typically a host component
145
+ // if (!this.options.ignoreUnhandledNodes) {
146
+ // throw new ChildrenAnalyzerError(getErrorMessage(this.options.unhandledNodeErrorMessage, node, staticContext))
147
+ // }
148
+ // return this.processNode(children, staticContext)
149
+ // }
150
+
151
+ // Component, PureComponent, FunctionComponent
152
+
153
+ const treeNode = node.type as ElementType &
154
+ {
155
+ [staticMethod in ValidFactoryName]:
156
+ | StaticContextFactory<any, StaticContext>
157
+ | SyntheticChildrenFactory<any, StaticContext>
158
+ | UnconstrainedLeafRepresentationFactory<any, AllLeavesRepresentation, StaticContext>
159
+ | DeclarationSiteNodeRepresentationFactory<any, unknown, AllBranchNodesRepresentation, StaticContext>
160
+ }
161
+
162
+ componentPath = [...componentPath, node]
163
+ if (typeof treeNode !== 'string') {
164
+ if (this.options.staticContextFactoryName in treeNode) {
165
+ const staticContextFactory = treeNode[this.options.staticContextFactoryName] as StaticContextFactory<
166
+ any,
167
+ StaticContext
168
+ >
169
+ try {
170
+ staticContext = staticContextFactory(node.props, staticContext)
171
+ } catch (e) {
172
+ wrapError(e, treeNode.displayName ?? '???', this.options.staticContextFactoryName, componentPath)
173
+ }
174
+ }
175
+
176
+ if (this.options.staticRenderFactoryName in treeNode) {
177
+ const factory = treeNode[this.options.staticRenderFactoryName] as SyntheticChildrenFactory<any, StaticContext>
178
+ try {
179
+ children = factory(node.props, staticContext)
180
+ } catch (e) {
181
+ wrapError(e, treeNode.displayName ?? '???', this.options.staticRenderFactoryName, componentPath)
182
+ }
183
+ }
184
+ }
185
+
186
+ for (const leaf of this.leaves) {
187
+ const specification = leaf.specification
188
+ switch (specification.type) {
189
+ case 'declarationSite': {
190
+ const { factoryMethodName } = specification
191
+
192
+ if (typeof treeNode !== 'string' && factoryMethodName in treeNode) {
193
+ const factory = treeNode[factoryMethodName] as UnconstrainedLeafRepresentationFactory<
194
+ any,
195
+ AllBranchNodesRepresentation | AllLeavesRepresentation,
196
+ StaticContext
197
+ >
198
+ return factory(node.props, staticContext)
199
+ }
200
+ break
201
+ }
202
+ case 'useSite': {
203
+ const { ComponentType, factory } = specification
204
+ if (ComponentType === undefined || node.type === ComponentType) {
205
+ return factory(node, staticContext)
206
+ }
207
+ break
208
+ }
209
+ default:
210
+ return assertNever(specification)
211
+ }
212
+ }
213
+
214
+ const processedChildren = this.processNode(children, staticContext, componentPath)
215
+
216
+ for (const branchNode of this.branchNodes) {
217
+ const specification = branchNode.specification
218
+ switch (specification.type) {
219
+ case 'declarationSite': {
220
+ const { factoryMethodName, childrenRepresentationReducer } = specification
221
+
222
+ if (typeof treeNode !== 'string' && factoryMethodName in treeNode) {
223
+ if (processedChildren === undefined && !branchNode.options.childrenAreOptional) {
224
+ throw new ChildrenAnalyzerError(branchNode.options.childrenAbsentErrorMessage)
225
+ }
226
+ const factory = treeNode[factoryMethodName] as DeclarationSiteNodeRepresentationFactory<
227
+ any,
228
+ unknown,
229
+ AllBranchNodesRepresentation | AllLeavesRepresentation,
230
+ StaticContext
231
+ >
232
+ return factory(node.props, childrenRepresentationReducer(processedChildren), staticContext)
233
+ }
234
+ break
235
+ }
236
+ case 'useSite': {
237
+ const { factory, ComponentType } = specification
238
+ if (ComponentType === undefined || node.type === ComponentType) {
239
+ if (processedChildren === undefined && !branchNode.options.childrenAreOptional) {
240
+ throw new ChildrenAnalyzerError(branchNode.options.childrenAbsentErrorMessage)
241
+ }
242
+ return factory(node, processedChildren, staticContext)
243
+ }
244
+ break
245
+ }
246
+ default:
247
+ return assertNever(specification)
248
+ }
249
+ }
250
+
251
+ if (
252
+ !this.options.ignoreUnhandledNodes &&
253
+ !(typeof treeNode !== 'string' && this.options.staticRenderFactoryName in treeNode)
254
+ ) {
255
+ throw new ChildrenAnalyzerError(getErrorMessage(this.options.unhandledNodeErrorMessage, node, staticContext))
256
+ }
257
+
258
+ return processedChildren
259
+ }
260
+ }
@@ -0,0 +1,8 @@
1
+ export class ChildrenAnalyzerError extends Error {
2
+ public details?: string
3
+
4
+ constructor(message: string, options?: { cause: Error, details?: string }) {
5
+ super(message, options)
6
+ this.details = options?.details
7
+ }
8
+ }
@@ -0,0 +1,12 @@
1
+ import type { ErrorMessageFactory } from './ErrorMessageFactory'
2
+
3
+ export interface ChildrenAnalyzerOptions<StaticContext = any> {
4
+ ignoreRenderProps: boolean
5
+ renderPropsErrorMessage: ErrorMessageFactory<StaticContext>
6
+
7
+ ignoreUnhandledNodes: boolean
8
+ unhandledNodeErrorMessage: ErrorMessageFactory<StaticContext>
9
+
10
+ staticContextFactoryName: string
11
+ staticRenderFactoryName: string
12
+ }
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from 'react'
2
+
3
+ export type ErrorMessageFactory<StaticContext = any> =
4
+ | string
5
+ | ((node: ReactNode, staticContext: StaticContext) => string)
@@ -0,0 +1,8 @@
1
+ import type { Leaf, ValidFactoryName } from './nodeSpecs'
2
+
3
+ export type LeafList<RepresentationUnion, StaticContext> = Leaf<
4
+ any,
5
+ StaticContext,
6
+ ValidFactoryName,
7
+ RepresentationUnion
8
+ >[]
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react'
2
+ import type { ErrorMessageFactory } from '../ErrorMessageFactory'
3
+
4
+ export const getErrorMessage = <StaticContext>(
5
+ factory: ErrorMessageFactory<StaticContext>,
6
+ node: ReactNode,
7
+ staticContext: StaticContext,
8
+ ): string => {
9
+ return typeof factory === 'string' ? factory : factory(node, staticContext)
10
+ }
@@ -0,0 +1 @@
1
+ export * from './getErrorMessage'
@@ -0,0 +1,46 @@
1
+ import React, { ReactElement } from 'react'
2
+ import { ChildrenAnalyzerError } from '../ChildrenAnalyzerError'
3
+
4
+ export const wrapError = (e: unknown, currentComponentName: string, methodName: string, path: ReactElement[]): never => {
5
+ if (!(e instanceof Error)) {
6
+ throw e
7
+ }
8
+
9
+ const componentPath = path.map((it, index) => {
10
+ const { children, ...props } = it.props
11
+ const printProps = (props: any) => {
12
+ let result = ''
13
+ for (const [key, value] of Object.entries(props)) {
14
+ if (value === undefined) {
15
+ continue
16
+ }
17
+ try {
18
+ const valuePrinted = JSON.stringify(value, (key, value) => {
19
+ if (typeof value === 'function') {
20
+ return '(function)'
21
+ }
22
+ if (React.isValidElement(value)) {
23
+ return '(react element)'
24
+ }
25
+ return value
26
+ },
27
+ )
28
+ result += ` ${key}=${valuePrinted}`
29
+ } catch {
30
+ result += ` ${key}=(failed to print a value)`
31
+ }
32
+ }
33
+ return result
34
+ }
35
+ const componentName = typeof it.type === 'object' && 'displayName' in it.type ? (it.type as any).displayName : null
36
+ const propsPrinted = printProps(props)
37
+ const indent = ' '.repeat(index)
38
+ return `${indent}<${componentName ?? '???'}${propsPrinted}>`
39
+ })
40
+ const errorMessage = `Error during static render of ${currentComponentName} in ${methodName}:\n${e.message || 'unknown error'}`
41
+
42
+ throw new ChildrenAnalyzerError(errorMessage, {
43
+ cause: e,
44
+ details: `Component path:\n${componentPath.join('\n')}`,
45
+ })
46
+ }
package/src/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './nodeSpecs'
2
+
3
+ export * from './ChildrenAnalyzer'
4
+ export * from './ChildrenAnalyzerError'
5
+ export * from './ChildrenAnalyzerOptions'
@@ -0,0 +1,103 @@
1
+ import type { ElementType } from 'react'
2
+ import { ChildrenAnalyzerError } from '../ChildrenAnalyzerError'
3
+ import type { BranchNodeOptions } from './BranchNodeOptions'
4
+ import type { ChildrenRepresentationReducer, UseSiteBranchNodeRepresentationFactory, ValidFactoryName } from './types'
5
+
6
+ class BranchNode<
7
+ Props extends {} = {},
8
+ StaticContext = undefined,
9
+ FactoryMethodName extends ValidFactoryName = string,
10
+ ChildrenRepresentation = any,
11
+ ReducedChildrenRepresentation = any,
12
+ Representation = any,
13
+ > {
14
+ private static defaultOptions: BranchNodeOptions = {
15
+ childrenAreOptional: false,
16
+ childrenAbsentErrorMessage: 'Component must have children!',
17
+ }
18
+
19
+ public readonly specification: BranchNode.Specification<
20
+ Props,
21
+ StaticContext,
22
+ FactoryMethodName,
23
+ ChildrenRepresentation,
24
+ ReducedChildrenRepresentation,
25
+ Representation
26
+ >
27
+
28
+ public readonly options: BranchNodeOptions
29
+
30
+ public constructor(
31
+ factoryMethodName: FactoryMethodName,
32
+ childrenRepresentationReducer: ChildrenRepresentationReducer<ChildrenRepresentation, ReducedChildrenRepresentation>,
33
+ options?: Partial<BranchNodeOptions>,
34
+ )
35
+ public constructor(
36
+ useSiteFactory: UseSiteBranchNodeRepresentationFactory<
37
+ Props,
38
+ ChildrenRepresentation,
39
+ Representation,
40
+ StaticContext
41
+ >,
42
+ ComponentType?: ElementType<Props>,
43
+ options?: Partial<BranchNodeOptions>,
44
+ )
45
+ public constructor(
46
+ factory:
47
+ | FactoryMethodName
48
+ | UseSiteBranchNodeRepresentationFactory<Props, ChildrenRepresentation, Representation, StaticContext>,
49
+ componentOrReducer?:
50
+ | ChildrenRepresentationReducer<ChildrenRepresentation, ReducedChildrenRepresentation>
51
+ | ElementType<Props>,
52
+ options?: Partial<BranchNodeOptions>,
53
+ ) {
54
+ if (typeof factory !== 'function') {
55
+ this.specification = {
56
+ type: 'declarationSite',
57
+ factoryMethodName: factory,
58
+ childrenRepresentationReducer: componentOrReducer as ChildrenRepresentationReducer<
59
+ ChildrenRepresentation,
60
+ ReducedChildrenRepresentation
61
+ >,
62
+ }
63
+ } else if (typeof factory === 'function') {
64
+ this.specification = {
65
+ type: 'useSite',
66
+ factory,
67
+ ComponentType: componentOrReducer as ElementType<Props>,
68
+ }
69
+ } else {
70
+ throw new ChildrenAnalyzerError('Invalid arguments')
71
+ }
72
+ this.options = {
73
+ ...BranchNode.defaultOptions,
74
+ ...options,
75
+ }
76
+ }
77
+ }
78
+
79
+ namespace BranchNode {
80
+ export type Specification<
81
+ Props extends {} = {},
82
+ StaticContext = any,
83
+ FactoryMethodName extends ValidFactoryName = string,
84
+ ChildrenRepresentation = any,
85
+ ReducedChildrenRepresentation = any,
86
+ Representation = any,
87
+ > =
88
+ | {
89
+ type: 'declarationSite'
90
+ factoryMethodName: FactoryMethodName
91
+ childrenRepresentationReducer: ChildrenRepresentationReducer<
92
+ ChildrenRepresentation,
93
+ ReducedChildrenRepresentation
94
+ >
95
+ }
96
+ | {
97
+ type: 'useSite'
98
+ factory: UseSiteBranchNodeRepresentationFactory<Props, ChildrenRepresentation, Representation, StaticContext>
99
+ ComponentType?: ElementType<Props>
100
+ }
101
+ }
102
+
103
+ export { BranchNode }
@@ -0,0 +1,4 @@
1
+ export interface BranchNodeOptions {
2
+ childrenAreOptional: boolean
3
+ childrenAbsentErrorMessage: string
4
+ }