@affectively/aeon-pages 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +625 -0
  3. package/examples/basic/aeon.config.ts +39 -0
  4. package/examples/basic/components/Cursor.tsx +86 -0
  5. package/examples/basic/components/OfflineIndicator.tsx +103 -0
  6. package/examples/basic/components/PresenceBar.tsx +77 -0
  7. package/examples/basic/package.json +20 -0
  8. package/examples/basic/pages/index.tsx +80 -0
  9. package/package.json +101 -0
  10. package/packages/analytics/README.md +309 -0
  11. package/packages/analytics/build.ts +35 -0
  12. package/packages/analytics/package.json +50 -0
  13. package/packages/analytics/src/click-tracker.ts +368 -0
  14. package/packages/analytics/src/context-bridge.ts +319 -0
  15. package/packages/analytics/src/data-layer.ts +302 -0
  16. package/packages/analytics/src/gtm-loader.ts +239 -0
  17. package/packages/analytics/src/index.ts +230 -0
  18. package/packages/analytics/src/merkle-tree.ts +489 -0
  19. package/packages/analytics/src/provider.tsx +300 -0
  20. package/packages/analytics/src/types.ts +320 -0
  21. package/packages/analytics/src/use-analytics.ts +296 -0
  22. package/packages/analytics/tsconfig.json +19 -0
  23. package/packages/benchmarks/src/benchmark.test.ts +691 -0
  24. package/packages/cli/dist/index.js +61899 -0
  25. package/packages/cli/package.json +43 -0
  26. package/packages/cli/src/commands/build.test.ts +682 -0
  27. package/packages/cli/src/commands/build.ts +890 -0
  28. package/packages/cli/src/commands/dev.ts +473 -0
  29. package/packages/cli/src/commands/init.ts +409 -0
  30. package/packages/cli/src/commands/start.ts +297 -0
  31. package/packages/cli/src/index.ts +105 -0
  32. package/packages/directives/src/use-aeon.ts +272 -0
  33. package/packages/mcp-server/package.json +51 -0
  34. package/packages/mcp-server/src/index.ts +178 -0
  35. package/packages/mcp-server/src/resources.ts +346 -0
  36. package/packages/mcp-server/src/tools/index.ts +36 -0
  37. package/packages/mcp-server/src/tools/navigation.ts +545 -0
  38. package/packages/mcp-server/tsconfig.json +21 -0
  39. package/packages/react/package.json +40 -0
  40. package/packages/react/src/Link.tsx +388 -0
  41. package/packages/react/src/components/InstallPrompt.tsx +286 -0
  42. package/packages/react/src/components/OfflineDiagnostics.tsx +677 -0
  43. package/packages/react/src/components/PushNotifications.tsx +453 -0
  44. package/packages/react/src/hooks/useAeonNavigation.ts +219 -0
  45. package/packages/react/src/hooks/useConflicts.ts +277 -0
  46. package/packages/react/src/hooks/useNetworkState.ts +209 -0
  47. package/packages/react/src/hooks/usePilotNavigation.ts +254 -0
  48. package/packages/react/src/hooks/useServiceWorker.ts +278 -0
  49. package/packages/react/src/hooks.ts +195 -0
  50. package/packages/react/src/index.ts +151 -0
  51. package/packages/react/src/provider.tsx +467 -0
  52. package/packages/react/tsconfig.json +19 -0
  53. package/packages/runtime/README.md +399 -0
  54. package/packages/runtime/build.ts +48 -0
  55. package/packages/runtime/package.json +71 -0
  56. package/packages/runtime/schema.sql +40 -0
  57. package/packages/runtime/src/api-routes.ts +465 -0
  58. package/packages/runtime/src/benchmark.ts +171 -0
  59. package/packages/runtime/src/cache.ts +479 -0
  60. package/packages/runtime/src/durable-object.ts +1341 -0
  61. package/packages/runtime/src/index.ts +360 -0
  62. package/packages/runtime/src/navigation.test.ts +421 -0
  63. package/packages/runtime/src/navigation.ts +422 -0
  64. package/packages/runtime/src/nextjs-adapter.ts +272 -0
  65. package/packages/runtime/src/offline/encrypted-queue.test.ts +607 -0
  66. package/packages/runtime/src/offline/encrypted-queue.ts +478 -0
  67. package/packages/runtime/src/offline/encryption.test.ts +412 -0
  68. package/packages/runtime/src/offline/encryption.ts +397 -0
  69. package/packages/runtime/src/offline/types.ts +465 -0
  70. package/packages/runtime/src/predictor.ts +371 -0
  71. package/packages/runtime/src/registry.ts +351 -0
  72. package/packages/runtime/src/router/context-extractor.ts +661 -0
  73. package/packages/runtime/src/router/esi-control-react.tsx +2053 -0
  74. package/packages/runtime/src/router/esi-control.ts +541 -0
  75. package/packages/runtime/src/router/esi-cyrano.ts +779 -0
  76. package/packages/runtime/src/router/esi-format-react.tsx +1744 -0
  77. package/packages/runtime/src/router/esi-react.tsx +1065 -0
  78. package/packages/runtime/src/router/esi-translate-observer.ts +476 -0
  79. package/packages/runtime/src/router/esi-translate-react.tsx +556 -0
  80. package/packages/runtime/src/router/esi-translate.ts +503 -0
  81. package/packages/runtime/src/router/esi.ts +666 -0
  82. package/packages/runtime/src/router/heuristic-adapter.test.ts +295 -0
  83. package/packages/runtime/src/router/heuristic-adapter.ts +557 -0
  84. package/packages/runtime/src/router/index.ts +298 -0
  85. package/packages/runtime/src/router/merkle-capability.ts +473 -0
  86. package/packages/runtime/src/router/speculation.ts +451 -0
  87. package/packages/runtime/src/router/types.ts +630 -0
  88. package/packages/runtime/src/router.test.ts +470 -0
  89. package/packages/runtime/src/router.ts +302 -0
  90. package/packages/runtime/src/server.ts +481 -0
  91. package/packages/runtime/src/service-worker-push.ts +319 -0
  92. package/packages/runtime/src/service-worker.ts +553 -0
  93. package/packages/runtime/src/skeleton-hydrate.ts +237 -0
  94. package/packages/runtime/src/speculation.test.ts +389 -0
  95. package/packages/runtime/src/speculation.ts +486 -0
  96. package/packages/runtime/src/storage.test.ts +1297 -0
  97. package/packages/runtime/src/storage.ts +1048 -0
  98. package/packages/runtime/src/sync/conflict-resolver.test.ts +528 -0
  99. package/packages/runtime/src/sync/conflict-resolver.ts +565 -0
  100. package/packages/runtime/src/sync/coordinator.test.ts +608 -0
  101. package/packages/runtime/src/sync/coordinator.ts +596 -0
  102. package/packages/runtime/src/tree-compiler.ts +295 -0
  103. package/packages/runtime/src/types.ts +728 -0
  104. package/packages/runtime/src/worker.ts +327 -0
  105. package/packages/runtime/tsconfig.json +20 -0
  106. package/packages/runtime/wasm/aeon_pages_runtime.d.ts +504 -0
  107. package/packages/runtime/wasm/aeon_pages_runtime.js +1657 -0
  108. package/packages/runtime/wasm/aeon_pages_runtime_bg.wasm +0 -0
  109. package/packages/runtime/wasm/aeon_pages_runtime_bg.wasm.d.ts +196 -0
  110. package/packages/runtime/wasm/package.json +21 -0
  111. package/packages/runtime/wrangler.toml +41 -0
  112. package/packages/runtime-wasm/Cargo.lock +436 -0
  113. package/packages/runtime-wasm/Cargo.toml +29 -0
  114. package/packages/runtime-wasm/pkg/aeon_pages_runtime.d.ts +480 -0
  115. package/packages/runtime-wasm/pkg/aeon_pages_runtime.js +1568 -0
  116. package/packages/runtime-wasm/pkg/aeon_pages_runtime_bg.wasm +0 -0
  117. package/packages/runtime-wasm/pkg/aeon_pages_runtime_bg.wasm.d.ts +192 -0
  118. package/packages/runtime-wasm/pkg/package.json +21 -0
  119. package/packages/runtime-wasm/src/hydrate.rs +352 -0
  120. package/packages/runtime-wasm/src/lib.rs +191 -0
  121. package/packages/runtime-wasm/src/render.rs +629 -0
  122. package/packages/runtime-wasm/src/router.rs +298 -0
  123. package/packages/runtime-wasm/src/skeleton.rs +430 -0
  124. package/rfcs/RFC-001-ZERO-DEPENDENCY-RENDERING.md +1446 -0
@@ -0,0 +1,29 @@
1
+ [package]
2
+ name = "aeon-pages-runtime"
3
+ version = "1.0.0"
4
+ edition = "2021"
5
+ description = "WASM runtime for @affectively/aeon-pages - lightweight page routing, hydration, and zero-CLS skeleton rendering"
6
+ license = "MIT"
7
+ repository = "https://github.com/affectively/aeon-pages"
8
+
9
+ [lib]
10
+ crate-type = ["cdylib", "rlib"]
11
+
12
+ [features]
13
+ default = ["console_error_panic_hook"]
14
+
15
+ [dependencies]
16
+ wasm-bindgen = "0.2"
17
+ js-sys = "0.3"
18
+ web-sys = { version = "0.3", features = ["console"] }
19
+ serde = { version = "1.0", features = ["derive"] }
20
+ serde_json = "1.0"
21
+ console_error_panic_hook = { version = "0.1", optional = true }
22
+
23
+ [dev-dependencies]
24
+ wasm-bindgen-test = "0.3"
25
+
26
+ [profile.release]
27
+ # Optimize for size
28
+ opt-level = "s"
29
+ lto = true
@@ -0,0 +1,480 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /**
5
+ * The Aeon Router - matches URLs to routes
6
+ */
7
+ export class AeonRouter {
8
+ free(): void;
9
+ [Symbol.dispose](): void;
10
+ /**
11
+ * Add a route to the router
12
+ */
13
+ add_route(definition: RouteDefinition): void;
14
+ /**
15
+ * Get all registered routes (for debugging)
16
+ */
17
+ get_routes_json(): string;
18
+ /**
19
+ * Check if a route exists for the given path
20
+ */
21
+ has_route(path: string): boolean;
22
+ /**
23
+ * Match a URL path to a route
24
+ */
25
+ match_route(path: string): RouteMatch | undefined;
26
+ constructor();
27
+ }
28
+
29
+ /**
30
+ * Asset Manifest for inlining images/SVGs
31
+ */
32
+ export class AssetManifest {
33
+ free(): void;
34
+ [Symbol.dispose](): void;
35
+ /**
36
+ * Load manifest from JSON
37
+ */
38
+ static from_json(json: string): AssetManifest;
39
+ /**
40
+ * Get data URI for an asset path
41
+ */
42
+ get_data_uri(path: string): string | undefined;
43
+ constructor();
44
+ }
45
+
46
+ /**
47
+ * CSS Manifest for on-demand CSS generation
48
+ */
49
+ export class CSSManifest {
50
+ free(): void;
51
+ [Symbol.dispose](): void;
52
+ /**
53
+ * Load manifest from JSON
54
+ */
55
+ static from_json(json: string): CSSManifest;
56
+ constructor(critical: string);
57
+ /**
58
+ * Get critical CSS
59
+ */
60
+ readonly critical: string;
61
+ }
62
+
63
+ /**
64
+ * Component registry - maps component names to their render functions
65
+ */
66
+ export class ComponentRegistry {
67
+ free(): void;
68
+ [Symbol.dispose](): void;
69
+ /**
70
+ * Check if a component is registered
71
+ */
72
+ has(name: string): boolean;
73
+ /**
74
+ * Get all registered component names
75
+ */
76
+ list(): string;
77
+ constructor();
78
+ /**
79
+ * Register a component as available for rendering
80
+ */
81
+ register(name: string): void;
82
+ /**
83
+ * Register multiple components at once (from JSON array)
84
+ */
85
+ register_many(names_json: string): void;
86
+ }
87
+
88
+ /**
89
+ * Font Manifest for embedding fonts
90
+ */
91
+ export class FontManifest {
92
+ free(): void;
93
+ [Symbol.dispose](): void;
94
+ /**
95
+ * Load manifest from JSON
96
+ */
97
+ static from_json(json: string): FontManifest;
98
+ constructor();
99
+ /**
100
+ * Get @font-face CSS
101
+ */
102
+ readonly font_face_css: string;
103
+ }
104
+
105
+ /**
106
+ * Render context containing manifests and collected data
107
+ */
108
+ export class RenderContext {
109
+ free(): void;
110
+ [Symbol.dispose](): void;
111
+ /**
112
+ * Get collected CSS classes as JSON array
113
+ */
114
+ get_collected_classes(): string;
115
+ /**
116
+ * Get interactive nodes as JSON array
117
+ */
118
+ get_interactive_nodes(): string;
119
+ constructor(
120
+ css_manifest_json: string,
121
+ asset_manifest_json: string,
122
+ font_manifest_json: string,
123
+ );
124
+ }
125
+
126
+ /**
127
+ * Route definition from the build manifest
128
+ */
129
+ export class RouteDefinition {
130
+ free(): void;
131
+ [Symbol.dispose](): void;
132
+ constructor(
133
+ pattern: string,
134
+ session_id: string,
135
+ component_id: string,
136
+ layout: string | null | undefined,
137
+ is_aeon: boolean,
138
+ );
139
+ readonly component_id: string;
140
+ readonly is_aeon: boolean;
141
+ readonly layout: string | undefined;
142
+ readonly pattern: string;
143
+ readonly session_id: string;
144
+ }
145
+
146
+ /**
147
+ * Match result with extracted parameters
148
+ */
149
+ export class RouteMatch {
150
+ private constructor();
151
+ free(): void;
152
+ [Symbol.dispose](): void;
153
+ get_param(key: string): string | undefined;
154
+ readonly params_json: string;
155
+ readonly resolved_session_id: string;
156
+ readonly route: RouteDefinition;
157
+ }
158
+
159
+ /**
160
+ * Serialized component tree (stored in Aeon sessions)
161
+ */
162
+ export class SerializedComponent {
163
+ free(): void;
164
+ [Symbol.dispose](): void;
165
+ add_component_child(component: SerializedComponent): void;
166
+ add_text_child(text: string): void;
167
+ static from_json(json: string): SerializedComponent;
168
+ constructor(component_type: string, props?: string | null);
169
+ to_json(): string;
170
+ readonly component_type: string;
171
+ readonly props: string | undefined;
172
+ }
173
+
174
+ /**
175
+ * Diff result for component tree changes
176
+ */
177
+ export class TreeDiff {
178
+ free(): void;
179
+ [Symbol.dispose](): void;
180
+ constructor(
181
+ path: string,
182
+ change_type: string,
183
+ old_value?: string | null,
184
+ new_value?: string | null,
185
+ );
186
+ to_json(): string;
187
+ /**
188
+ * Get the change type
189
+ */
190
+ readonly change_type: string;
191
+ /**
192
+ * Get the new value
193
+ */
194
+ readonly new_value: string | undefined;
195
+ /**
196
+ * Get the old value
197
+ */
198
+ readonly old_value: string | undefined;
199
+ /**
200
+ * Get the path
201
+ */
202
+ readonly path: string;
203
+ }
204
+
205
+ /**
206
+ * Apply a patch to a component tree
207
+ */
208
+ export function apply_patch(tree_json: string, patch_json: string): string;
209
+
210
+ /**
211
+ * Compute diff between two component trees
212
+ */
213
+ export function diff_trees(old_json: string, new_json: string): string;
214
+
215
+ /**
216
+ * Walk the component tree and collect CSS classes
217
+ */
218
+ export function extract_css_classes(tree_json: string): string;
219
+
220
+ /**
221
+ * Generate CSS for collected classes
222
+ */
223
+ export function generate_css_for_classes(
224
+ classes_json: string,
225
+ manifest_json: string,
226
+ ): string;
227
+
228
+ /**
229
+ * Generate minimal hydration script for interactive components
230
+ */
231
+ export function generate_hydration_script(
232
+ interactive_nodes_json: string,
233
+ env_json: string,
234
+ ): string;
235
+
236
+ export function init(): void;
237
+
238
+ /**
239
+ * Full page render: combines tree rendering with CSS, assets, and fonts
240
+ */
241
+ export function render_page(
242
+ tree_json: string,
243
+ css_manifest_json: string,
244
+ asset_manifest_json: string,
245
+ font_manifest_json: string,
246
+ title: string,
247
+ description: string,
248
+ ): string;
249
+
250
+ /**
251
+ * Render a component tree to HTML string
252
+ */
253
+ export function render_tree_to_html(tree_json: string): string;
254
+
255
+ /**
256
+ * Resolve asset references in the tree (replace paths with data URIs)
257
+ */
258
+ export function resolve_assets(
259
+ tree_json: string,
260
+ manifest_json: string,
261
+ ): string;
262
+
263
+ export type InitInput =
264
+ | RequestInfo
265
+ | URL
266
+ | Response
267
+ | BufferSource
268
+ | WebAssembly.Module;
269
+
270
+ export interface InitOutput {
271
+ readonly memory: WebAssembly.Memory;
272
+ readonly __wbg_assetmanifest_free: (a: number, b: number) => void;
273
+ readonly __wbg_cssmanifest_free: (a: number, b: number) => void;
274
+ readonly __wbg_fontmanifest_free: (a: number, b: number) => void;
275
+ readonly __wbg_rendercontext_free: (a: number, b: number) => void;
276
+ readonly assetmanifest_from_json: (
277
+ a: number,
278
+ b: number,
279
+ ) => [number, number, number];
280
+ readonly assetmanifest_get_data_uri: (
281
+ a: number,
282
+ b: number,
283
+ c: number,
284
+ ) => [number, number];
285
+ readonly assetmanifest_new: () => number;
286
+ readonly cssmanifest_critical: (a: number) => [number, number];
287
+ readonly cssmanifest_from_json: (
288
+ a: number,
289
+ b: number,
290
+ ) => [number, number, number];
291
+ readonly cssmanifest_new: (a: number, b: number) => number;
292
+ readonly extract_css_classes: (a: number, b: number) => [number, number];
293
+ readonly fontmanifest_font_face_css: (a: number) => [number, number];
294
+ readonly fontmanifest_from_json: (
295
+ a: number,
296
+ b: number,
297
+ ) => [number, number, number];
298
+ readonly fontmanifest_new: () => number;
299
+ readonly generate_css_for_classes: (
300
+ a: number,
301
+ b: number,
302
+ c: number,
303
+ d: number,
304
+ ) => [number, number];
305
+ readonly generate_hydration_script: (
306
+ a: number,
307
+ b: number,
308
+ c: number,
309
+ d: number,
310
+ ) => [number, number];
311
+ readonly render_page: (
312
+ a: number,
313
+ b: number,
314
+ c: number,
315
+ d: number,
316
+ e: number,
317
+ f: number,
318
+ g: number,
319
+ h: number,
320
+ i: number,
321
+ j: number,
322
+ k: number,
323
+ l: number,
324
+ ) => [number, number];
325
+ readonly render_tree_to_html: (a: number, b: number) => [number, number];
326
+ readonly rendercontext_get_collected_classes: (a: number) => [number, number];
327
+ readonly rendercontext_get_interactive_nodes: (a: number) => [number, number];
328
+ readonly rendercontext_new: (
329
+ a: number,
330
+ b: number,
331
+ c: number,
332
+ d: number,
333
+ e: number,
334
+ f: number,
335
+ ) => [number, number, number];
336
+ readonly resolve_assets: (
337
+ a: number,
338
+ b: number,
339
+ c: number,
340
+ d: number,
341
+ ) => [number, number];
342
+ readonly __wbg_componentregistry_free: (a: number, b: number) => void;
343
+ readonly __wbg_treediff_free: (a: number, b: number) => void;
344
+ readonly apply_patch: (
345
+ a: number,
346
+ b: number,
347
+ c: number,
348
+ d: number,
349
+ ) => [number, number];
350
+ readonly componentregistry_has: (a: number, b: number, c: number) => number;
351
+ readonly componentregistry_list: (a: number) => [number, number];
352
+ readonly componentregistry_new: () => number;
353
+ readonly componentregistry_register: (
354
+ a: number,
355
+ b: number,
356
+ c: number,
357
+ ) => void;
358
+ readonly componentregistry_register_many: (
359
+ a: number,
360
+ b: number,
361
+ c: number,
362
+ ) => void;
363
+ readonly diff_trees: (
364
+ a: number,
365
+ b: number,
366
+ c: number,
367
+ d: number,
368
+ ) => [number, number];
369
+ readonly treediff_change_type: (a: number) => [number, number];
370
+ readonly treediff_new: (
371
+ a: number,
372
+ b: number,
373
+ c: number,
374
+ d: number,
375
+ e: number,
376
+ f: number,
377
+ g: number,
378
+ h: number,
379
+ ) => number;
380
+ readonly treediff_new_value: (a: number) => [number, number];
381
+ readonly treediff_old_value: (a: number) => [number, number];
382
+ readonly treediff_path: (a: number) => [number, number];
383
+ readonly treediff_to_json: (a: number) => [number, number];
384
+ readonly __wbg_routedefinition_free: (a: number, b: number) => void;
385
+ readonly __wbg_routematch_free: (a: number, b: number) => void;
386
+ readonly __wbg_serializedcomponent_free: (a: number, b: number) => void;
387
+ readonly init: () => void;
388
+ readonly routedefinition_component_id: (a: number) => [number, number];
389
+ readonly routedefinition_is_aeon: (a: number) => number;
390
+ readonly routedefinition_layout: (a: number) => [number, number];
391
+ readonly routedefinition_new: (
392
+ a: number,
393
+ b: number,
394
+ c: number,
395
+ d: number,
396
+ e: number,
397
+ f: number,
398
+ g: number,
399
+ h: number,
400
+ i: number,
401
+ ) => number;
402
+ readonly routedefinition_pattern: (a: number) => [number, number];
403
+ readonly routedefinition_session_id: (a: number) => [number, number];
404
+ readonly routematch_get_param: (
405
+ a: number,
406
+ b: number,
407
+ c: number,
408
+ ) => [number, number];
409
+ readonly routematch_params_json: (a: number) => [number, number];
410
+ readonly routematch_resolved_session_id: (a: number) => [number, number];
411
+ readonly routematch_route: (a: number) => number;
412
+ readonly serializedcomponent_add_component_child: (
413
+ a: number,
414
+ b: number,
415
+ ) => void;
416
+ readonly serializedcomponent_add_text_child: (
417
+ a: number,
418
+ b: number,
419
+ c: number,
420
+ ) => void;
421
+ readonly serializedcomponent_component_type: (a: number) => [number, number];
422
+ readonly serializedcomponent_from_json: (
423
+ a: number,
424
+ b: number,
425
+ ) => [number, number, number];
426
+ readonly serializedcomponent_new: (
427
+ a: number,
428
+ b: number,
429
+ c: number,
430
+ d: number,
431
+ ) => number;
432
+ readonly serializedcomponent_props: (a: number) => [number, number];
433
+ readonly serializedcomponent_to_json: (a: number) => [number, number];
434
+ readonly __wbg_aeonrouter_free: (a: number, b: number) => void;
435
+ readonly aeonrouter_add_route: (a: number, b: number) => void;
436
+ readonly aeonrouter_get_routes_json: (a: number) => [number, number];
437
+ readonly aeonrouter_has_route: (a: number, b: number, c: number) => number;
438
+ readonly aeonrouter_match_route: (a: number, b: number, c: number) => number;
439
+ readonly aeonrouter_new: () => number;
440
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
441
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
442
+ readonly __wbindgen_realloc: (
443
+ a: number,
444
+ b: number,
445
+ c: number,
446
+ d: number,
447
+ ) => number;
448
+ readonly __wbindgen_externrefs: WebAssembly.Table;
449
+ readonly __externref_table_dealloc: (a: number) => void;
450
+ readonly __wbindgen_start: () => void;
451
+ }
452
+
453
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
454
+
455
+ /**
456
+ * Instantiates the given `module`, which can either be bytes or
457
+ * a precompiled `WebAssembly.Module`.
458
+ *
459
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
460
+ *
461
+ * @returns {InitOutput}
462
+ */
463
+ export function initSync(
464
+ module: { module: SyncInitInput } | SyncInitInput,
465
+ ): InitOutput;
466
+
467
+ /**
468
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
469
+ * for everything else, calls `WebAssembly.instantiate` directly.
470
+ *
471
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
472
+ *
473
+ * @returns {Promise<InitOutput>}
474
+ */
475
+ export default function __wbg_init(
476
+ module_or_path?:
477
+ | { module_or_path: InitInput | Promise<InitInput> }
478
+ | InitInput
479
+ | Promise<InitInput>,
480
+ ): Promise<InitOutput>;