octane 0.2.11 → 0.2.13

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 (264) hide show
  1. package/README.md +5 -0
  2. package/dist/behavior-root.d.ts +13 -3
  3. package/dist/behavior-root.js +28 -5
  4. package/dist/cjs/behavior-root.cjs +32 -6
  5. package/dist/cjs/class-names.cjs +49 -0
  6. package/dist/cjs/constants.cjs +9 -0
  7. package/dist/cjs/context-epoch.cjs +38 -0
  8. package/dist/cjs/css.cjs +6 -27
  9. package/dist/cjs/data-encoding.cjs +160 -0
  10. package/dist/cjs/dom-binding-handoff.cjs +93 -0
  11. package/dist/cjs/dom-binding-protocol.cjs +115 -0
  12. package/dist/cjs/dom-binding-styles.cjs +292 -0
  13. package/dist/cjs/dom-bindings.cjs +700 -0
  14. package/dist/cjs/dom-focused-move.cjs +66 -0
  15. package/dist/cjs/dom-stage.cjs +896 -0
  16. package/dist/cjs/dom-tables.cjs +4 -94
  17. package/dist/cjs/error-codes.client.generated.cjs +33 -0
  18. package/dist/cjs/error-codes.server.generated.cjs +24 -0
  19. package/dist/cjs/hydration/control-capture.cjs +244 -0
  20. package/dist/cjs/hydration/event-capture.cjs +125 -43
  21. package/dist/cjs/hydration/interaction-config.cjs +50 -2
  22. package/dist/cjs/hydration-markers.cjs +37 -0
  23. package/dist/cjs/independent-hydration-protocol.cjs +106 -0
  24. package/dist/cjs/index.cjs +9 -0
  25. package/dist/cjs/runtime.cjs +6397 -1683
  26. package/dist/cjs/runtime.server.cjs +1465 -213
  27. package/dist/cjs/server/early-signals.cjs +45 -0
  28. package/dist/cjs/server/index.cjs +47 -0
  29. package/dist/cjs/server/rpc-batch.cjs +149 -0
  30. package/dist/cjs/server/rpc-stream.cjs +146 -0
  31. package/dist/cjs/server/rpc.cjs +34 -15
  32. package/dist/cjs/server/signal-query-observation.cjs +158 -0
  33. package/dist/cjs/server/streamed-region.cjs +52 -0
  34. package/dist/cjs/server/streamed-signals.cjs +512 -0
  35. package/dist/cjs/server-call.cjs +103 -0
  36. package/dist/cjs/server-rpc-batch-client.cjs +141 -0
  37. package/dist/cjs/server-rpc-client.cjs +94 -27
  38. package/dist/cjs/server-rpc-protocol.cjs +141 -0
  39. package/dist/cjs/server-rpc-stream-client.cjs +118 -0
  40. package/dist/cjs/signals/actions.cjs +474 -0
  41. package/dist/cjs/signals/client.cjs +4 -1
  42. package/dist/cjs/signals/computations.cjs +460 -0
  43. package/dist/cjs/signals/control-binding.cjs +368 -0
  44. package/dist/cjs/signals/derived-facade.cjs +50 -0
  45. package/dist/cjs/signals/document-owner.cjs +71 -0
  46. package/dist/cjs/signals/early-values.cjs +155 -0
  47. package/dist/cjs/signals/encoding.cjs +6 -95
  48. package/dist/cjs/signals/engine.cjs +276 -12
  49. package/dist/cjs/signals/errors.cjs +18 -0
  50. package/dist/cjs/signals/facade.cjs +477 -0
  51. package/dist/cjs/signals/graph.cjs +166 -20
  52. package/dist/cjs/signals/handle-protocol.cjs +36 -0
  53. package/dist/cjs/signals/index.cjs +81 -2
  54. package/dist/cjs/signals/native-read-client.cjs +10 -0
  55. package/dist/cjs/signals/owner-context.cjs +112 -0
  56. package/dist/cjs/signals/query-attempt-observer.cjs +68 -0
  57. package/dist/cjs/signals/query-facade.cjs +72 -0
  58. package/dist/cjs/signals/read-protocol.cjs +54 -0
  59. package/dist/cjs/signals/requests.cjs +287 -14
  60. package/dist/cjs/signals/scalar-computations.cjs +76 -0
  61. package/dist/cjs/signals/server.cjs +4 -1
  62. package/dist/cjs/signals/transition-candidate.cjs +567 -0
  63. package/dist/cjs/signals/transition-state.cjs +106 -0
  64. package/dist/cjs/signals/types.cjs +50 -0
  65. package/dist/cjs/stream-protocol.cjs +3 -0
  66. package/dist/cjs/streamed-signals-protocol.cjs +159 -0
  67. package/dist/cjs/style-values.cjs +122 -0
  68. package/dist/cjs/trusted-html.cjs +30 -0
  69. package/dist/cjs/version.cjs +1 -1
  70. package/dist/class-names.d.ts +5 -0
  71. package/dist/class-names.js +25 -0
  72. package/dist/compiler/bundler.js +51 -22
  73. package/dist/compiler/compile.js +2534 -581
  74. package/dist/compiler/dom-binding-program.js +935 -0
  75. package/dist/compiler/dom-binding-request.js +57 -0
  76. package/dist/compiler/dom-bindings.js +2245 -0
  77. package/dist/compiler/hook-deps.js +759 -10
  78. package/dist/compiler/hydrate-boundaries.js +358 -15
  79. package/dist/compiler/index.d.ts +39 -2
  80. package/dist/compiler/index.js +1 -0
  81. package/dist/compiler/native-attribute-reads.js +127 -0
  82. package/dist/compiler/native-change-diagnostics.js +32 -38
  83. package/dist/compiler/native-read-diagnostics.js +69 -8
  84. package/dist/compiler/native-read-types.js +80 -34
  85. package/dist/compiler/parser.node.js +1 -1
  86. package/dist/compiler/renderer-boundaries.js +40 -0
  87. package/dist/compiler/server-context.js +118 -0
  88. package/dist/compiler/signal-attempt-reads.js +479 -0
  89. package/dist/compiler/signal-declarations.js +557 -0
  90. package/dist/compiler/signal-start-reads.js +413 -0
  91. package/dist/compiler/slot-hooks.d.ts +3 -1
  92. package/dist/compiler/slot-hooks.js +168 -34
  93. package/dist/compiler/strong-auto-memo.js +90 -0
  94. package/dist/compiler/strong-html.js +143 -0
  95. package/dist/compiler/strong-mode.js +764 -66
  96. package/dist/compiler/strong-template-policy.js +307 -0
  97. package/dist/compiler/template-ir.js +200 -0
  98. package/dist/compiler/typescript.d.ts +2 -0
  99. package/dist/compiler/typescript.js +2 -0
  100. package/dist/compiler/vite.d.ts +3 -1
  101. package/dist/compiler/vite.js +122 -4
  102. package/dist/compiler/volar.LICENSES.txt +1 -1
  103. package/dist/compiler/volar.d.ts +6 -1
  104. package/dist/compiler/volar.js +750 -1433
  105. package/dist/constants.d.ts +1 -0
  106. package/dist/constants.js +10 -0
  107. package/dist/context-epoch.d.ts +2 -0
  108. package/dist/context-epoch.js +13 -0
  109. package/dist/css.d.ts +2 -5
  110. package/dist/css.js +2 -23
  111. package/dist/data-encoding.d.ts +9 -0
  112. package/dist/data-encoding.js +134 -0
  113. package/dist/dom-binding-classes.d.ts +15 -0
  114. package/dist/dom-binding-classes.js +129 -0
  115. package/dist/dom-binding-controls.d.ts +2 -0
  116. package/dist/dom-binding-controls.js +6 -0
  117. package/dist/dom-binding-handoff.d.ts +55 -0
  118. package/dist/dom-binding-handoff.js +62 -0
  119. package/dist/dom-binding-program.d.ts +300 -0
  120. package/dist/dom-binding-program.js +1625 -0
  121. package/dist/dom-binding-projections.d.ts +15 -0
  122. package/dist/dom-binding-projections.js +187 -0
  123. package/dist/dom-binding-protocol.d.ts +13 -0
  124. package/dist/dom-binding-protocol.js +88 -0
  125. package/dist/dom-binding-signals.d.ts +21 -0
  126. package/dist/dom-binding-signals.js +109 -0
  127. package/dist/dom-binding-styles.d.ts +17 -0
  128. package/dist/dom-binding-styles.js +272 -0
  129. package/dist/dom-bindings.d.ts +89 -0
  130. package/dist/dom-bindings.js +670 -0
  131. package/dist/dom-focused-move.d.ts +6 -0
  132. package/dist/dom-focused-move.js +42 -0
  133. package/dist/dom-stage.d.ts +52 -0
  134. package/dist/dom-stage.js +872 -0
  135. package/dist/dom-tables.d.ts +1 -3
  136. package/dist/dom-tables.js +1 -91
  137. package/dist/error-codes.client.generated.d.ts +9 -0
  138. package/dist/error-codes.client.generated.js +33 -0
  139. package/dist/error-codes.server.generated.d.ts +6 -0
  140. package/dist/error-codes.server.generated.js +24 -0
  141. package/dist/hydration/control-capture.d.ts +62 -0
  142. package/dist/hydration/control-capture.js +223 -0
  143. package/dist/hydration/document-lifecycle.d.ts +23 -0
  144. package/dist/hydration/document-lifecycle.js +80 -0
  145. package/dist/hydration/event-capture.d.ts +20 -1
  146. package/dist/hydration/event-capture.js +128 -42
  147. package/dist/hydration/independent-island.d.ts +45 -0
  148. package/dist/hydration/independent-island.js +233 -0
  149. package/dist/hydration/index.d.ts +8 -1
  150. package/dist/hydration/index.js +55 -1
  151. package/dist/hydration/interaction-config.d.ts +5 -0
  152. package/dist/hydration/interaction-config.js +44 -1
  153. package/dist/hydration/stream-delivery.d.ts +32 -0
  154. package/dist/hydration/stream-delivery.js +333 -0
  155. package/dist/hydration/stream-receiver.d.ts +26 -0
  156. package/dist/hydration/stream-receiver.js +204 -0
  157. package/dist/hydration/stream-result-receiver.d.ts +70 -0
  158. package/dist/hydration/stream-result-receiver.js +246 -0
  159. package/dist/hydration/streamed-signals.d.ts +44 -0
  160. package/dist/hydration/streamed-signals.js +186 -0
  161. package/dist/hydration/types.d.ts +6 -0
  162. package/dist/hydration-markers.d.ts +7 -0
  163. package/dist/hydration-markers.js +10 -0
  164. package/dist/independent-hydration-protocol.d.ts +31 -0
  165. package/dist/independent-hydration-protocol.js +80 -0
  166. package/dist/index.d.ts +3 -0
  167. package/dist/index.js +6 -0
  168. package/dist/internal/signal-read.d.ts +1 -0
  169. package/dist/internal/signal-read.js +4 -0
  170. package/dist/jsx-runtime-strong.d.ts +33 -0
  171. package/dist/jsx-runtime.d.ts +58 -2
  172. package/dist/public-types.d.ts +15 -1
  173. package/dist/runtime.d.ts +297 -23
  174. package/dist/runtime.js +6405 -1679
  175. package/dist/runtime.server.d.ts +110 -27
  176. package/dist/runtime.server.js +1458 -213
  177. package/dist/server/early-signals.d.ts +14 -0
  178. package/dist/server/early-signals.js +34 -0
  179. package/dist/server/index.d.ts +11 -2
  180. package/dist/server/index.js +50 -1
  181. package/dist/server/rpc-batch.d.ts +17 -0
  182. package/dist/server/rpc-batch.js +129 -0
  183. package/dist/server/rpc-stream.d.ts +9 -0
  184. package/dist/server/rpc-stream.js +125 -0
  185. package/dist/server/rpc.d.ts +5 -1
  186. package/dist/server/rpc.js +37 -13
  187. package/dist/server/signal-query-observation.d.ts +3 -0
  188. package/dist/server/signal-query-observation.js +134 -0
  189. package/dist/server/streamed-region.d.ts +15 -0
  190. package/dist/server/streamed-region.js +30 -0
  191. package/dist/server/streamed-signals.d.ts +45 -0
  192. package/dist/server/streamed-signals.js +488 -0
  193. package/dist/server-call.d.ts +41 -0
  194. package/dist/server-call.js +75 -0
  195. package/dist/server-rpc-batch-client.d.ts +7 -0
  196. package/dist/server-rpc-batch-client.js +119 -0
  197. package/dist/server-rpc-client.d.ts +3 -1
  198. package/dist/server-rpc-client.js +99 -27
  199. package/dist/server-rpc-protocol.d.ts +47 -0
  200. package/dist/server-rpc-protocol.js +109 -0
  201. package/dist/server-rpc-stream-client.d.ts +5 -0
  202. package/dist/server-rpc-stream-client.js +98 -0
  203. package/dist/signals/actions.d.ts +12 -0
  204. package/dist/signals/actions.js +466 -0
  205. package/dist/signals/client.d.ts +2 -0
  206. package/dist/signals/client.js +1 -0
  207. package/dist/signals/computations.d.ts +37 -0
  208. package/dist/signals/computations.js +455 -0
  209. package/dist/signals/control-binding.d.ts +31 -0
  210. package/dist/signals/control-binding.js +353 -0
  211. package/dist/signals/derived-facade.d.ts +3 -0
  212. package/dist/signals/derived-facade.js +25 -0
  213. package/dist/signals/document-owner.d.ts +10 -0
  214. package/dist/signals/document-owner.js +43 -0
  215. package/dist/signals/early-values.d.ts +24 -0
  216. package/dist/signals/early-values.js +124 -0
  217. package/dist/signals/encoding.d.ts +1 -3
  218. package/dist/signals/encoding.js +3 -93
  219. package/dist/signals/engine.d.ts +53 -4
  220. package/dist/signals/engine.js +275 -16
  221. package/dist/signals/errors.d.ts +7 -0
  222. package/dist/signals/errors.js +16 -0
  223. package/dist/signals/facade.d.ts +74 -0
  224. package/dist/signals/facade.js +452 -0
  225. package/dist/signals/graph.d.ts +52 -6
  226. package/dist/signals/graph.js +174 -19
  227. package/dist/signals/handle-protocol.d.ts +4 -0
  228. package/dist/signals/handle-protocol.js +11 -0
  229. package/dist/signals/index.d.ts +12 -3
  230. package/dist/signals/index.js +71 -2
  231. package/dist/signals/native-read-client.d.ts +3 -0
  232. package/dist/signals/native-read-client.js +10 -0
  233. package/dist/signals/owner-context.d.ts +22 -0
  234. package/dist/signals/owner-context.js +77 -0
  235. package/dist/signals/query-attempt-observer.d.ts +49 -0
  236. package/dist/signals/query-attempt-observer.js +41 -0
  237. package/dist/signals/query-facade.d.ts +3 -0
  238. package/dist/signals/query-facade.js +49 -0
  239. package/dist/signals/read-protocol.d.ts +37 -2
  240. package/dist/signals/read-protocol.js +44 -0
  241. package/dist/signals/requests.d.ts +38 -5
  242. package/dist/signals/requests.js +298 -15
  243. package/dist/signals/scalar-computations.d.ts +2 -0
  244. package/dist/signals/scalar-computations.js +60 -0
  245. package/dist/signals/server.d.ts +2 -0
  246. package/dist/signals/server.js +1 -0
  247. package/dist/signals/transition-candidate.d.ts +71 -0
  248. package/dist/signals/transition-candidate.js +557 -0
  249. package/dist/signals/transition-state.d.ts +51 -0
  250. package/dist/signals/transition-state.js +70 -0
  251. package/dist/signals/types.d.ts +95 -5
  252. package/dist/signals/types.js +20 -0
  253. package/dist/stream-protocol.d.ts +0 -5
  254. package/dist/stream-protocol.js +3 -0
  255. package/dist/streamed-signals-protocol.d.ts +60 -0
  256. package/dist/streamed-signals-protocol.js +130 -0
  257. package/dist/style-values.d.ts +3 -0
  258. package/dist/style-values.js +96 -0
  259. package/dist/trusted-html.d.ts +17 -0
  260. package/dist/trusted-html.js +6 -0
  261. package/dist/universal-core.d.ts +6 -0
  262. package/dist/universal-core.js +214 -202
  263. package/dist/version.js +1 -1
  264. package/package.json +48 -5
@@ -19,6 +19,7 @@ import * as nodePath from 'node:path';
19
19
  import { parseModule } from '@tsrx/core';
20
20
  import {
21
21
  CLIENT_REFERENCE_MANIFEST_FILENAME,
22
+ INDEPENDENT_HYDRATION_MANIFEST_FILENAME,
22
23
  cleanModuleId,
23
24
  createClientReferenceManifest,
24
25
  createOctaneCompiler,
@@ -40,6 +41,7 @@ const PROFILE_DEFINE = '__OCTANE_PROFILE_ENABLED__';
40
41
  const VOID_EXPORTS_META = 'octane:void-component-exports';
41
42
  const DESCRIPTOR_CHILDREN_EXPORTS_META = 'octane:descriptor-children-exports';
42
43
  const CLIENT_REFERENCE_META = 'octane:client-reference';
44
+ const INDEPENDENT_WIDGETS_META = 'octane:independent-widgets';
43
45
  const DESCRIPTOR_PREFLIGHT_AUTHORITY = Symbol('octane.descriptor-preflight');
44
46
 
45
47
  function realRoot(path) {
@@ -68,6 +70,77 @@ function clientReferenceManifest(context, bundle) {
68
70
  return createClientReferenceManifest(entries);
69
71
  }
70
72
 
73
+ function independentWidgetManifest(context, bundle, clientBuildId) {
74
+ if (
75
+ clientBuildId !== undefined &&
76
+ (typeof clientBuildId !== 'string' || clientBuildId.length === 0)
77
+ ) {
78
+ throw new Error('Octane client build identity must be a non-empty string.');
79
+ }
80
+ const chunks = Object.values(bundle).filter((output) => output.type === 'chunk');
81
+ const chunksByFile = new Map(chunks.map((chunk) => [chunk.fileName, chunk]));
82
+ const collectStyles = (chunk, seen = new Set()) => {
83
+ if (seen.has(chunk.fileName)) return [];
84
+ seen.add(chunk.fileName);
85
+ const styles = [...(chunk.viteMetadata?.importedCss ?? [])];
86
+ for (const imported of [...(chunk.imports ?? []), ...(chunk.dynamicImports ?? [])]) {
87
+ const dependency = chunksByFile.get(imported);
88
+ if (dependency !== undefined) styles.push(...collectStyles(dependency, seen));
89
+ }
90
+ return styles;
91
+ };
92
+ const widgets = {};
93
+ for (const sourceChunk of chunks) {
94
+ for (const sourceModuleId of Object.keys(sourceChunk.modules ?? {})) {
95
+ const templates = context.getModuleInfo(sourceModuleId)?.meta?.[INDEPENDENT_WIDGETS_META];
96
+ if (!Array.isArray(templates)) continue;
97
+ for (const template of templates) {
98
+ const query = template.request.slice(template.request.indexOf('?'));
99
+ const entry = chunks.find((chunk) =>
100
+ Object.keys(chunk.modules ?? {}).some(
101
+ (moduleId) =>
102
+ cleanModuleId(moduleId) === cleanModuleId(sourceModuleId) && moduleId.includes(query),
103
+ ),
104
+ );
105
+ if (entry === undefined) {
106
+ throw new Error(
107
+ `Octane independent Hydrate ${JSON.stringify(template.boundaryId)} has no emitted activation chunk.`,
108
+ );
109
+ }
110
+ widgets[template.boundaryId] = {
111
+ version: 1,
112
+ boundaryId: template.boundaryId,
113
+ moduleId: entry.fileName,
114
+ exportName: template.exportName,
115
+ captureSchema: template.captureSchema,
116
+ hookSeed: template.hookSeed,
117
+ idSeed: template.idSeed,
118
+ signalSites: template.signalSites,
119
+ styles: [...new Set(collectStyles(entry))].sort(),
120
+ parentDependencies: false,
121
+ };
122
+ }
123
+ }
124
+ }
125
+ const records = Object.fromEntries(
126
+ Object.entries(widgets).sort(([left], [right]) => left.localeCompare(right)),
127
+ );
128
+ const buildId =
129
+ clientBuildId ??
130
+ nodeCrypto
131
+ .createHash('sha256')
132
+ .update(
133
+ JSON.stringify(
134
+ chunks
135
+ .map((chunk) => [chunk.fileName, chunk.code])
136
+ .sort(([a], [b]) => a.localeCompare(b)),
137
+ ),
138
+ )
139
+ .digest('base64url')
140
+ .slice(0, 16);
141
+ return { version: 1, buildId, widgets: records };
142
+ }
143
+
71
144
  function voidImportKey(request, imported) {
72
145
  return `${request}\0${imported}`;
73
146
  }
@@ -684,6 +757,7 @@ export function octane(options = {}) {
684
757
  exclude: options.exclude,
685
758
  profile: profileEnabled,
686
759
  strong: options.strong,
760
+ knownAttributeSpreads: options.knownAttributeSpreads,
687
761
  renderers: options.renderers,
688
762
  requireDirective,
689
763
  warn,
@@ -704,6 +778,7 @@ export function octane(options = {}) {
704
778
  exclude: options.exclude,
705
779
  profile: profileEnabled,
706
780
  strong: options.strong,
781
+ knownAttributeSpreads: options.knownAttributeSpreads,
707
782
  renderers: options.renderers,
708
783
  requireDirective,
709
784
  warn,
@@ -813,13 +888,43 @@ export function octane(options = {}) {
813
888
  },
814
889
  generateBundle(_outputOptions, bundle) {
815
890
  if (!emitClientReferenceManifest) return;
816
- const manifest = clientReferenceManifest(this, bundle);
817
- if (Object.keys(manifest.references).length === 0) return;
891
+ const clientReferences = clientReferenceManifest(this, bundle);
892
+ if (Object.keys(clientReferences.references).length > 0) {
893
+ this.emitFile({
894
+ type: 'asset',
895
+ fileName: CLIENT_REFERENCE_MANIFEST_FILENAME,
896
+ source: JSON.stringify(clientReferences, null, 2) + '\n',
897
+ });
898
+ }
899
+ const independentWidgets = independentWidgetManifest(
900
+ this,
901
+ bundle,
902
+ options.__clientBuildId?.(),
903
+ );
818
904
  this.emitFile({
819
905
  type: 'asset',
820
- fileName: CLIENT_REFERENCE_MANIFEST_FILENAME,
821
- source: JSON.stringify(manifest, null, 2) + '\n',
906
+ fileName: 'octane-client-build.json',
907
+ source:
908
+ JSON.stringify(
909
+ {
910
+ version: 1,
911
+ buildId: independentWidgets.buildId,
912
+ mode: 'production',
913
+ capabilities: {
914
+ independentHydration: Object.keys(independentWidgets.widgets).length > 0,
915
+ },
916
+ },
917
+ null,
918
+ 2,
919
+ ) + '\n',
822
920
  });
921
+ if (Object.keys(independentWidgets.widgets).length > 0) {
922
+ this.emitFile({
923
+ type: 'asset',
924
+ fileName: INDEPENDENT_HYDRATION_MANIFEST_FILENAME,
925
+ source: JSON.stringify(independentWidgets, null, 2) + '\n',
926
+ });
927
+ }
823
928
  },
824
929
  async resolveId(source, importer, resolveOptions) {
825
930
  if (!resolveOptions?.ssr) return null;
@@ -931,6 +1036,7 @@ export function octane(options = {}) {
931
1036
  }),
932
1037
  });
933
1038
  if (result === null) {
1039
+ options.__onIndependentWidgets?.(id, environment, [], false);
934
1040
  if (propagatedExports.length === 0) return null;
935
1041
  return {
936
1042
  code,
@@ -943,11 +1049,23 @@ export function octane(options = {}) {
943
1049
  };
944
1050
  }
945
1051
  cssImports?.consume(result.cssModuleConstantImports);
1052
+ options.__onIndependentWidgets?.(
1053
+ id,
1054
+ environment,
1055
+ Array.isArray(result.independentWidgets) ? result.independentWidgets : [],
1056
+ result.streamedSignals === true,
1057
+ );
946
1058
  for (const dependency of result.dependencies) this.addWatchFile?.(dependency);
947
1059
  const meta = {};
1060
+ if (result.bindingConstants !== undefined) {
1061
+ meta['octane:binding-constants'] = result.bindingConstants;
1062
+ }
948
1063
  if (result.clientReference !== undefined) {
949
1064
  meta[CLIENT_REFERENCE_META] = result.clientReference;
950
1065
  }
1066
+ if (Array.isArray(result.independentWidgets) && result.independentWidgets.length > 0) {
1067
+ meta[INDEPENDENT_WIDGETS_META] = result.independentWidgets;
1068
+ }
951
1069
  if (result.kind === 'compile' && Array.isArray(result.voidComponentExports)) {
952
1070
  meta[VOID_EXPORTS_META] = {
953
1071
  exports: result.voidComponentExports ?? [],
@@ -69,7 +69,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
69
69
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
70
70
  SOFTWARE.
71
71
 
72
- @tsrx/core@0.1.71
72
+ @tsrx/core@0.2.0
73
73
 
74
74
  MIT License
75
75
 
@@ -3,7 +3,12 @@
3
3
  export function compileToVolarMappings(
4
4
  source: string,
5
5
  filename?: string,
6
- options?: { loose?: boolean; renderers?: unknown; strong?: boolean },
6
+ options?: {
7
+ loose?: boolean;
8
+ renderers?: unknown;
9
+ strong?: boolean;
10
+ knownAttributeSpreads?: readonly import('./index.js').KnownAttributeSpread[];
11
+ },
7
12
  ): import('./index.js').VolarCompileResult;
8
13
 
9
14
  /** Virtual TSX and authored ranges used by compiler inspection tooling. */