@octanejs/cli 0.2.0 → 0.2.2
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.
- package/package.json +1 -1
- package/src/commands/analyze/index.js +23 -7
- package/src/commands/init/index.js +39 -8
- package/src/data/octane-data.json +168 -127
package/package.json
CHANGED
|
@@ -148,6 +148,12 @@ function describeSuggestions(suggestions) {
|
|
|
148
148
|
*/
|
|
149
149
|
const TRAILING_LOCATION = /\s*\(([^()\s]+):(\d+):(\d+)\)\s*$/;
|
|
150
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Position a parser appends to its own message, e.g. `Unexpected token (2:10)`:
|
|
153
|
+
* the zero-based `loc` an Acorn-style `SyntaxError` also carries.
|
|
154
|
+
*/
|
|
155
|
+
const PARSER_LOCATION = /\s*\((\d+):(\d+)\)\s*$/;
|
|
156
|
+
|
|
151
157
|
/**
|
|
152
158
|
* A compiler error that carries its own code, e.g. a Strong rule:
|
|
153
159
|
* `/abs/App.tsrx:4:21: [OCTANE_STRONG_EFFECT_STATE_UPDATE] Strong mode …`.
|
|
@@ -166,10 +172,13 @@ const STRONG_DIRECTIVE =
|
|
|
166
172
|
/**
|
|
167
173
|
* Normalise a thrown compile failure into a finding.
|
|
168
174
|
*
|
|
169
|
-
* Two shapes reach here. A genuine parse failure carries a
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
175
|
+
* Two shapes reach here. A genuine parse failure carries a `loc`: a syntax
|
|
176
|
+
* error has Acorn's `{ line, column }` and repeats it at the end of its message,
|
|
177
|
+
* and a parser diagnostic with a range (two outputs in one code block, a
|
|
178
|
+
* redeclared binding) has `{ start, end }`. A semantic failure (a slot-keyed
|
|
179
|
+
* hook in a plain JS loop, say) is thrown with its position appended to the
|
|
180
|
+
* message instead, so recovering it keeps the report pointing at the offending
|
|
181
|
+
* line rather than at 1:1.
|
|
173
182
|
*
|
|
174
183
|
* @param {unknown} error
|
|
175
184
|
* @param {string} file
|
|
@@ -185,13 +194,20 @@ function thrownFailure(error, file, code) {
|
|
|
185
194
|
code ??= coded?.[1];
|
|
186
195
|
const loc = /** @type {any} */ (error)?.loc;
|
|
187
196
|
if (loc) {
|
|
197
|
+
const start = loc.start ?? loc;
|
|
198
|
+
const line = start.line ?? 1;
|
|
199
|
+
const column = start.column ?? 0;
|
|
200
|
+
// The position has its own columns, so drop the parser's copy of it.
|
|
201
|
+
const repeated = PARSER_LOCATION.exec(message);
|
|
202
|
+
const duplicate =
|
|
203
|
+
repeated !== null && Number(repeated[1]) === line && Number(repeated[2]) === column;
|
|
188
204
|
return {
|
|
189
205
|
file,
|
|
190
|
-
line
|
|
191
|
-
column:
|
|
206
|
+
line,
|
|
207
|
+
column: column + 1,
|
|
192
208
|
severity: 'error',
|
|
193
209
|
code: code ?? 'OCTANE_PARSE_ERROR',
|
|
194
|
-
message,
|
|
210
|
+
message: duplicate ? message.slice(0, repeated.index) : message,
|
|
195
211
|
suggestions: [],
|
|
196
212
|
};
|
|
197
213
|
}
|
|
@@ -4,6 +4,7 @@ import { defineCommand } from '../../kernel/command.js';
|
|
|
4
4
|
import { setCompilerOption } from '../../kernel/edit.js';
|
|
5
5
|
import { CliError, EXIT } from '../../kernel/errors.js';
|
|
6
6
|
import { PACKAGE_MANAGERS, PNPM_ALLOWED_BUILDS, installPackages } from '../../kernel/install.js';
|
|
7
|
+
import { readInstalled } from '../../kernel/project.js';
|
|
7
8
|
import {
|
|
8
9
|
MODES,
|
|
9
10
|
PRETTIER_CONFIG_FILES,
|
|
@@ -425,10 +426,16 @@ export async function applyInit(ctx, project, options) {
|
|
|
425
426
|
const declared = project.declaredDependencies;
|
|
426
427
|
const dependencies = integration.dependencies.filter((name) => !declared[name]);
|
|
427
428
|
const devDependencies = integration.devDependencies.filter((name) => !declared[name]);
|
|
429
|
+
const needsParser = !declared['@tsrx/oxc'];
|
|
428
430
|
|
|
429
431
|
ctx.ui.intro(options.title);
|
|
430
432
|
|
|
431
|
-
if (
|
|
433
|
+
if (
|
|
434
|
+
changes.length === 0 &&
|
|
435
|
+
dependencies.length === 0 &&
|
|
436
|
+
devDependencies.length === 0 &&
|
|
437
|
+
!needsParser
|
|
438
|
+
) {
|
|
432
439
|
ctx.ui.outro('Already set up. Run `octane doctor` to confirm.');
|
|
433
440
|
return { json: { ok: true, mode, changes: [], installed: [] } };
|
|
434
441
|
}
|
|
@@ -439,10 +446,11 @@ export async function applyInit(ctx, project, options) {
|
|
|
439
446
|
? changes.map((c) => `${c.file} ${ctx.ui.colors.dim(c.summary)}`)
|
|
440
447
|
: ['nothing'],
|
|
441
448
|
);
|
|
442
|
-
if (dependencies.length + devDependencies.length > 0) {
|
|
449
|
+
if (dependencies.length + devDependencies.length > 0 || needsParser) {
|
|
443
450
|
ctx.ui.note('Will install', [
|
|
444
451
|
...dependencies,
|
|
445
452
|
...devDependencies.map((name) => `${name} (dev)`),
|
|
453
|
+
...(needsParser ? ['@tsrx/oxc (dev)'] : []),
|
|
446
454
|
]);
|
|
447
455
|
}
|
|
448
456
|
|
|
@@ -463,7 +471,10 @@ export async function applyInit(ctx, project, options) {
|
|
|
463
471
|
const warn = (/** @type {string[]} */ lines) => {
|
|
464
472
|
for (const line of lines) if (!manual.includes(line)) manual.push(line);
|
|
465
473
|
};
|
|
466
|
-
if (
|
|
474
|
+
if (
|
|
475
|
+
options.install !== false &&
|
|
476
|
+
(dependencies.length + devDependencies.length > 0 || needsParser)
|
|
477
|
+
) {
|
|
467
478
|
const spinner = ctx.ui.spinner(`Installing with ${installing.packageManager ?? 'npm'}`);
|
|
468
479
|
try {
|
|
469
480
|
for (const [names, dev] of [
|
|
@@ -479,6 +490,23 @@ export async function applyInit(ctx, project, options) {
|
|
|
479
490
|
installed.push(.../** @type {string[]} */ (names));
|
|
480
491
|
}
|
|
481
492
|
|
|
493
|
+
if (needsParser) {
|
|
494
|
+
const octane = readInstalled(project.root, 'octane');
|
|
495
|
+
const range =
|
|
496
|
+
octane?.manifest.peerDependencies?.['@tsrx/oxc'] ??
|
|
497
|
+
octane?.manifest.dependencies?.['@tsrx/oxc'];
|
|
498
|
+
if (typeof range !== 'string' || range === '' || range.startsWith('catalog:')) {
|
|
499
|
+
manual.push('Install @tsrx/oxc at the range declared by octane.');
|
|
500
|
+
} else {
|
|
501
|
+
const ran = await installPackages(ctx, installing, [`@tsrx/oxc@${range}`], {
|
|
502
|
+
dev: true,
|
|
503
|
+
allowBuilds: PNPM_ALLOWED_BUILDS,
|
|
504
|
+
});
|
|
505
|
+
warn(ran.warnings);
|
|
506
|
+
installed.push('@tsrx/oxc');
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
482
510
|
// Now that the plugin is on disk it can say which TypeScript it runs
|
|
483
511
|
// under. A package manager that installs required peers has already
|
|
484
512
|
// put one there and this pins the same range explicitly; one that does
|
|
@@ -501,14 +529,17 @@ export async function applyInit(ctx, project, options) {
|
|
|
501
529
|
throw error;
|
|
502
530
|
}
|
|
503
531
|
spinner.stop(`Installed ${installed.length} package(s)`);
|
|
504
|
-
} else if (dependencies.length + devDependencies.length > 0) {
|
|
532
|
+
} else if (dependencies.length + devDependencies.length > 0 || needsParser) {
|
|
505
533
|
// The range lives in the plugin, which is not installed yet, so it cannot
|
|
506
534
|
// be quoted here. Naming the package without one would send people to the
|
|
507
535
|
// newest major, which `tsrx-tsc` cannot start under.
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
536
|
+
if (dependencies.length + devDependencies.length > 0) {
|
|
537
|
+
manual.push(
|
|
538
|
+
`Install: ${[...dependencies, ...devDependencies].join(' ')}`,
|
|
539
|
+
'then typescript, at the range @tsrx/typescript-plugin declares as its peer.',
|
|
540
|
+
);
|
|
541
|
+
}
|
|
542
|
+
if (needsParser) manual.push('Install @tsrx/oxc at the range declared by octane.');
|
|
512
543
|
}
|
|
513
544
|
|
|
514
545
|
if (manual.length > 0) ctx.ui.note('Do this by hand', manual);
|
|
@@ -2,25 +2,22 @@
|
|
|
2
2
|
"bindings": [
|
|
3
3
|
{
|
|
4
4
|
"name": "@octanejs/alien-signals",
|
|
5
|
-
"version": "0.0
|
|
5
|
+
"version": "0.1.0",
|
|
6
6
|
"category": "State Management",
|
|
7
7
|
"upstream": {
|
|
8
8
|
"package": "react-alien-signals",
|
|
9
|
-
"version": "0.
|
|
10
|
-
"source": "https://github.com/Rajaniraiyn/react-alien-signals/tree/
|
|
9
|
+
"version": "0.4.0",
|
|
10
|
+
"source": "https://github.com/Rajaniraiyn/react-alien-signals/tree/2d85d8d063d79332ec7c7e99c07bda3a722f491a",
|
|
11
11
|
"license": "MIT"
|
|
12
12
|
},
|
|
13
|
-
"surface": "Complete react-alien-signals hook and helper surface over the unchanged alien-signals@
|
|
14
|
-
"divergences": [
|
|
15
|
-
"`useSignalValue` accepts any readable signal, including computed signals, correcting the upstream declaration to match its documented behavior.",
|
|
16
|
-
"`useSignalScope` starts its scope after client commit and returns a cancellation-safe controller, avoiding render-phase effects."
|
|
17
|
-
],
|
|
13
|
+
"surface": "Complete react-alien-signals hook and helper surface over the unchanged alien-signals@3.2.1 core, with Octane-native subscriptions and lifecycle ownership.",
|
|
14
|
+
"divergences": [],
|
|
18
15
|
"ssr": "Supported and hydration-tested. Reads use the same server snapshot; effects and scopes begin only after client commit and stop on unmount.",
|
|
19
|
-
"verified": "2026-07
|
|
16
|
+
"verified": "2026-10-07"
|
|
20
17
|
},
|
|
21
18
|
{
|
|
22
19
|
"name": "@octanejs/animejs",
|
|
23
|
-
"version": "0.0.
|
|
20
|
+
"version": "0.0.33",
|
|
24
21
|
"category": "Animation",
|
|
25
22
|
"upstream": {
|
|
26
23
|
"package": "animejs",
|
|
@@ -39,7 +36,7 @@
|
|
|
39
36
|
},
|
|
40
37
|
{
|
|
41
38
|
"name": "@octanejs/apollo-client",
|
|
42
|
-
"version": "0.1.
|
|
39
|
+
"version": "0.1.58",
|
|
43
40
|
"category": "Data",
|
|
44
41
|
"upstream": { "package": "@apollo/client", "version": "4.2.6" },
|
|
45
42
|
"surface": "Complete published client adapter surface: all 18 @apollo/client/react runtime exports and their Apollo 4.2.6 TypeScript declarations, framework-neutral root/testing exports, an Octane MockedProvider, and the Octane-native /react/ssr prerenderStatic entry.",
|
|
@@ -53,7 +50,7 @@
|
|
|
53
50
|
},
|
|
54
51
|
{
|
|
55
52
|
"name": "@octanejs/aria",
|
|
56
|
-
"version": "0.0.
|
|
53
|
+
"version": "0.0.60",
|
|
57
54
|
"category": "UI Libraries",
|
|
58
55
|
"upstream": { "package": "react-aria", "version": "3.51.0" },
|
|
59
56
|
"surface": "The `@octanejs/aria/components` entry point matches the complete named public surface of `react-aria-components@1.20.0`: 286 runtime exports and 327 type exports, checked in both directions with no missing or extra names. This includes TokenField, PreviewTrigger, calendar/date/time, color, drag-and-drop, DropZone/FileTrigger, toast, data hooks, and virtualized layout APIs in addition to the previously ported primitives, overlays, collections, Tree, and Table. The root behavior-hook and `/stately` entries remain curated React Aria 3.51.0 / React Stately 3.49.0 surfaces rather than separate full-export claims.",
|
|
@@ -69,7 +66,7 @@
|
|
|
69
66
|
},
|
|
70
67
|
{
|
|
71
68
|
"name": "@octanejs/auto-animate",
|
|
72
|
-
"version": "0.0.
|
|
69
|
+
"version": "0.0.18",
|
|
73
70
|
"category": "Animation",
|
|
74
71
|
"upstream": {
|
|
75
72
|
"package": "@formkit/auto-animate",
|
|
@@ -88,7 +85,7 @@
|
|
|
88
85
|
},
|
|
89
86
|
{
|
|
90
87
|
"name": "@octanejs/base-ui",
|
|
91
|
-
"version": "0.1.
|
|
88
|
+
"version": "0.1.64",
|
|
92
89
|
"category": "UI Libraries",
|
|
93
90
|
"upstream": {
|
|
94
91
|
"package": "@base-ui/react",
|
|
@@ -107,7 +104,7 @@
|
|
|
107
104
|
},
|
|
108
105
|
{
|
|
109
106
|
"name": "@octanejs/base-ui-utils",
|
|
110
|
-
"version": "0.1.
|
|
107
|
+
"version": "0.1.12",
|
|
111
108
|
"category": "UI Utilities",
|
|
112
109
|
"upstream": {
|
|
113
110
|
"package": "@base-ui/utils",
|
|
@@ -122,7 +119,7 @@
|
|
|
122
119
|
},
|
|
123
120
|
{
|
|
124
121
|
"name": "@octanejs/better-auth",
|
|
125
|
-
"version": "0.0.
|
|
122
|
+
"version": "0.0.15",
|
|
126
123
|
"category": "Data",
|
|
127
124
|
"upstream": { "package": "better-auth", "version": "1.7.4" },
|
|
128
125
|
"surface": "The public framework-agnostic Better Auth client is reused unchanged. `createAuthClient` converts the built-in session atom and plugin-provided atoms into Octane hooks while preserving endpoint actions, `$fetch`, `$store`, `$ERROR_CODES`, `$Infer`, and plugin inference. The upstream-compatible `useStore` helper is also included.",
|
|
@@ -134,7 +131,7 @@
|
|
|
134
131
|
},
|
|
135
132
|
{
|
|
136
133
|
"name": "@octanejs/blocknote",
|
|
137
|
-
"version": "0.1.
|
|
134
|
+
"version": "0.1.7",
|
|
138
135
|
"category": "Content",
|
|
139
136
|
"upstream": { "package": "@blocknote/react", "version": "0.53.0" },
|
|
140
137
|
"surface": "Headless editor surface: BlockNoteViewRaw, BlockNoteViewEditor, BlockNoteContext/useBlockNoteContext, useCreateBlockNote, useBlockNoteEditor, useEditorChange, useEditorSelectionChange, usePrefersColorScheme. Default UI and custom React specs are out of scope.",
|
|
@@ -149,7 +146,7 @@
|
|
|
149
146
|
},
|
|
150
147
|
{
|
|
151
148
|
"name": "@octanejs/calendar",
|
|
152
|
-
"version": "0.0.
|
|
149
|
+
"version": "0.0.19",
|
|
153
150
|
"category": "UI Libraries",
|
|
154
151
|
"upstream": {
|
|
155
152
|
"package": "react-calendar",
|
|
@@ -168,7 +165,7 @@
|
|
|
168
165
|
},
|
|
169
166
|
{
|
|
170
167
|
"name": "@octanejs/cmdk",
|
|
171
|
-
"version": "0.1.
|
|
168
|
+
"version": "0.1.48",
|
|
172
169
|
"category": "UI Libraries",
|
|
173
170
|
"upstream": { "package": "cmdk", "version": "1.1.1" },
|
|
174
171
|
"surface": "Complete against the published `cmdk@1.1.1` public surface: `Command` (the root itself) and the `CommandRoot` named export, `Command.Input`, `Command.List`, `Command.Item`, `Command.Group`, `Command.Separator`, `Command.Dialog`, `Command.Empty`, `Command.Loading`, the flat `CommandX` aliases, `useCommandState`, and `defaultFilter` — with the DOM-authoritative store and item/group registration, `useValue` text-content inference, `onInput`-driven search, score filtering plus item and group DOM sorting, keyboard navigation (arrows/Home/End/vim/Enter), controlled `value`/`onValueChange`/`loop`/`shouldFilter`/custom `filter`/`forceMount`, the `--cmdk-list-height` ResizeObserver, and a Radix-backed `Command.Dialog`. `asChild` is the one unsupported prop (see divergences).",
|
|
@@ -199,7 +196,7 @@
|
|
|
199
196
|
},
|
|
200
197
|
{
|
|
201
198
|
"name": "@octanejs/colorful",
|
|
202
|
-
"version": "0.0.
|
|
199
|
+
"version": "0.0.28",
|
|
203
200
|
"category": "UI Libraries",
|
|
204
201
|
"upstream": { "package": "react-colorful", "version": "5.8.0" },
|
|
205
202
|
"surface": "Complete against the published react-colorful 5.8.0 root runtime and type surface: all 14 picker variants, HexColorInput, setNonce, six public color types, controlled updates, mouse/touch/keyboard input, commit callbacks, ARIA state, and automatic closest-root styling.",
|
|
@@ -211,7 +208,7 @@
|
|
|
211
208
|
},
|
|
212
209
|
{
|
|
213
210
|
"name": "@octanejs/content-loader",
|
|
214
|
-
"version": "0.0.
|
|
211
|
+
"version": "0.0.18",
|
|
215
212
|
"category": "UI Libraries",
|
|
216
213
|
"upstream": {
|
|
217
214
|
"package": "react-content-loader",
|
|
@@ -236,7 +233,7 @@
|
|
|
236
233
|
},
|
|
237
234
|
{
|
|
238
235
|
"name": "@octanejs/day-picker",
|
|
239
|
-
"version": "0.0.
|
|
236
|
+
"version": "0.0.29",
|
|
240
237
|
"category": "UI Libraries",
|
|
241
238
|
"upstream": {
|
|
242
239
|
"package": "react-day-picker",
|
|
@@ -252,7 +249,7 @@
|
|
|
252
249
|
},
|
|
253
250
|
{
|
|
254
251
|
"name": "@octanejs/devtools",
|
|
255
|
-
"version": "0.0.
|
|
252
|
+
"version": "0.0.50",
|
|
256
253
|
"category": "Developer Tools",
|
|
257
254
|
"upstream": { "package": "octane", "version": "workspace" },
|
|
258
255
|
"surface": "Octane-native DevTools plugin (not an upstream port): renders live runtime diagnostics into a TanStack Devtools host via @tanstack/devtools-event-client. P1 ships the Components tree + state inspector.",
|
|
@@ -262,7 +259,7 @@
|
|
|
262
259
|
},
|
|
263
260
|
{
|
|
264
261
|
"name": "@octanejs/dexie",
|
|
265
|
-
"version": "0.1.
|
|
262
|
+
"version": "0.1.56",
|
|
266
263
|
"category": "Data",
|
|
267
264
|
"upstream": { "package": "dexie-react-hooks", "version": "4.4.0" },
|
|
268
265
|
"surface": "Port of the public dexie-react-hooks surface: useObservable, useLiveQuery, useSuspendingObservable, useSuspendingLiveQuery, usePermissions, and useDocument, with Dexie's framework-neutral API re-exported from the package root.",
|
|
@@ -276,7 +273,7 @@
|
|
|
276
273
|
},
|
|
277
274
|
{
|
|
278
275
|
"name": "@octanejs/dnd-kit",
|
|
279
|
-
"version": "0.1.
|
|
276
|
+
"version": "0.1.57",
|
|
280
277
|
"category": "UI Utilities",
|
|
281
278
|
"upstream": { "package": "@dnd-kit/react", "version": "0.5.0" },
|
|
282
279
|
"surface": "Complete modern dnd-kit React-adapter surface: DragDropProvider, DragOverlay, useDraggable/useDroppable, manager/monitor/operation hooks, PointerSensor/KeyboardSensor re-exports, the public signal-hook utilities, useSortable, and all four upstream entry points.",
|
|
@@ -289,7 +286,7 @@
|
|
|
289
286
|
},
|
|
290
287
|
{
|
|
291
288
|
"name": "@octanejs/draggable",
|
|
292
|
-
"version": "0.0.
|
|
289
|
+
"version": "0.0.28",
|
|
293
290
|
"category": "UI Utilities",
|
|
294
291
|
"upstream": { "package": "react-draggable", "version": "4.7.1" },
|
|
295
292
|
"surface": "Complete against the published react-draggable 4.7.1 root runtime and type surface: default Draggable, named DraggableCore, controlled and uncontrolled positioning, bounds, grid, axis, offsets, mouse and touch gestures, and all eight public types.",
|
|
@@ -302,7 +299,7 @@
|
|
|
302
299
|
},
|
|
303
300
|
{
|
|
304
301
|
"name": "@octanejs/drei",
|
|
305
|
-
"version": "0.0.
|
|
302
|
+
"version": "0.0.32",
|
|
306
303
|
"category": "3D",
|
|
307
304
|
"upstream": { "package": "@react-three/drei", "version": "10.7.7" },
|
|
308
305
|
"surface": "Complete port of the pinned @react-three/drei 10.7.7 public web API (commit b8b99fd4ca1dfb8d821335671320512daa6efea4): 379 source exports and 217 runtime exports are accounted for by the executable crosswalk, with 299 parity assertions across 105 test files.",
|
|
@@ -314,7 +311,7 @@
|
|
|
314
311
|
},
|
|
315
312
|
{
|
|
316
313
|
"name": "@octanejs/dropzone",
|
|
317
|
-
"version": "0.0.
|
|
314
|
+
"version": "0.0.29",
|
|
318
315
|
"category": "Forms",
|
|
319
316
|
"upstream": { "package": "react-dropzone", "version": "20.0.0" },
|
|
320
317
|
"surface": "Exact mapped port of the react-dropzone 20.0.0 root runtime and type namespace at canonical commit 01fc05c5996bf615caf812627f7491375e647c7d. The binding preserves the default Dropzone component, useDropzone, ErrorCode, all public types, root package conditions, and ./package.json export. Runtime coverage executes 218 pristine canonical React cases plus 109 adapted, differential, SSR, hydration, browser, and evidence cases.",
|
|
@@ -327,7 +324,7 @@
|
|
|
327
324
|
},
|
|
328
325
|
{
|
|
329
326
|
"name": "@octanejs/electron",
|
|
330
|
-
"version": "0.0.
|
|
327
|
+
"version": "0.0.40",
|
|
331
328
|
"category": "Desktop Apps",
|
|
332
329
|
"upstream": { "package": "electron", "version": "43.2.0" },
|
|
333
330
|
"surface": "Process-split Electron bindings: ./main registers ipcMain handlers, ./main/native re-exports main-only Electron APIs (Menu, Tray, session, protocol, BrowserWindow, …), ./preload exposes Electron IPC and desktop helpers via contextBridge, and the renderer entry provides Octane hooks (useInvoke, useInvokeState, useIpcEvent, useNativeTheme, useWindowState) plus promise helpers for app/window/dialog/shell/clipboard/screen. Menu/Tray/session/protocol stay intentional main-only under contextIsolation.",
|
|
@@ -345,7 +342,7 @@
|
|
|
345
342
|
},
|
|
346
343
|
{
|
|
347
344
|
"name": "@octanejs/email",
|
|
348
|
-
"version": "0.0.
|
|
345
|
+
"version": "0.0.14",
|
|
349
346
|
"category": "Content",
|
|
350
347
|
"upstream": { "package": "react-email", "version": "6.9.2" },
|
|
351
348
|
"surface": "Email component surface: Body, Button, CodeBlock, CodeInline, Column, Container, Font, Head, Heading, Hr, Html, Img, Link, Markdown, Preview, Row, Section, Tailwind, Text, Prism themes, the pixel-based Tailwind preset, and an Octane-native static render helper.",
|
|
@@ -362,7 +359,7 @@
|
|
|
362
359
|
},
|
|
363
360
|
{
|
|
364
361
|
"name": "@octanejs/email-cli",
|
|
365
|
-
"version": "0.0.
|
|
362
|
+
"version": "0.0.14",
|
|
366
363
|
"category": "Content",
|
|
367
364
|
"upstream": { "package": "react-email", "version": "6.9.2" },
|
|
368
365
|
"surface": "Octane-native `export` and `dev` commands: recursive .tsrx template discovery, static HTML export, nested output paths, static assets, development template index and previews, Vite live reload, and compile/render error pages.",
|
|
@@ -375,7 +372,7 @@
|
|
|
375
372
|
},
|
|
376
373
|
{
|
|
377
374
|
"name": "@octanejs/embla-carousel",
|
|
378
|
-
"version": "0.0.
|
|
375
|
+
"version": "0.0.28",
|
|
379
376
|
"category": "UI Libraries",
|
|
380
377
|
"upstream": {
|
|
381
378
|
"package": "embla-carousel-react",
|
|
@@ -389,7 +386,7 @@
|
|
|
389
386
|
},
|
|
390
387
|
{
|
|
391
388
|
"name": "@octanejs/floating-ui",
|
|
392
|
-
"version": "0.1.
|
|
389
|
+
"version": "0.1.64",
|
|
393
390
|
"category": "UI Utilities",
|
|
394
391
|
"upstream": { "package": "@floating-ui/react", "version": "0.27.19" },
|
|
395
392
|
"surface": "Complete @floating-ui/react 0.27.19 export surface: positioning (`useFloating`, ref-aware `arrow`, and the framework-neutral middleware re-exports), floating tree and list primitives, every interaction hook, portals/overlays/focus management/arrows/composites, transitions, both delay-group APIs, and the deprecated `inner`/`useInnerOffset` pair. Runtime parity is executable and bounded: 276 adapted assertions pass compatibly, 25 remain executable expected-failure negative controls, and 6 upstream-declared skips are non-evidence.",
|
|
@@ -403,7 +400,7 @@
|
|
|
403
400
|
},
|
|
404
401
|
{
|
|
405
402
|
"name": "@octanejs/formisch",
|
|
406
|
-
"version": "0.0.
|
|
403
|
+
"version": "0.0.17",
|
|
407
404
|
"category": "Forms",
|
|
408
405
|
"upstream": {
|
|
409
406
|
"package": "@formisch/react",
|
|
@@ -421,7 +418,7 @@
|
|
|
421
418
|
},
|
|
422
419
|
{
|
|
423
420
|
"name": "@octanejs/gsap",
|
|
424
|
-
"version": "0.0.
|
|
421
|
+
"version": "0.0.31",
|
|
425
422
|
"category": "Animation",
|
|
426
423
|
"upstream": {
|
|
427
424
|
"package": "@gsap/react",
|
|
@@ -440,7 +437,7 @@
|
|
|
440
437
|
},
|
|
441
438
|
{
|
|
442
439
|
"name": "@octanejs/hook-form",
|
|
443
|
-
"version": "0.1.
|
|
440
|
+
"version": "0.1.59",
|
|
444
441
|
"category": "Forms",
|
|
445
442
|
"upstream": { "package": "react-hook-form", "version": "7.81.0" },
|
|
446
443
|
"surface": "Complete port of react-hook-form 7.81.0 (tag commit 46b217e034dd92f7aa3cb3a478815556b416b299). The automated parity check runs all 1,193 original tests against the pinned React package as a pristine baseline; the Octane port separately runs byte-locked, unfiltered DOM and server suites with exact collected/executed inventories containing 1,187 entries representing 1,178 unique file/full-name identities. The nine duplicate entries are repeated titles within the DOM inventory; the server inventory is disjoint. Coverage includes `useForm`, `useController`, `useFieldArray`, `useFormState`, `useWatch`, `useFormContext`/`FormProvider`, schema resolvers, and all validation modes.",
|
|
@@ -453,7 +450,7 @@
|
|
|
453
450
|
},
|
|
454
451
|
{
|
|
455
452
|
"name": "@octanejs/html-react-parser",
|
|
456
|
-
"version": "0.0.
|
|
453
|
+
"version": "0.0.18",
|
|
457
454
|
"category": "Content",
|
|
458
455
|
"upstream": {
|
|
459
456
|
"package": "html-react-parser",
|
|
@@ -474,7 +471,7 @@
|
|
|
474
471
|
},
|
|
475
472
|
{
|
|
476
473
|
"name": "@octanejs/i18next",
|
|
477
|
-
"version": "0.1.
|
|
474
|
+
"version": "0.1.57",
|
|
478
475
|
"category": "Content",
|
|
479
476
|
"upstream": { "package": "react-i18next", "version": "17.0.9" },
|
|
480
477
|
"surface": "Complete runtime port of react-i18next 17.0.9: useTranslation, I18nextProvider/context, Trans/TransWithoutContext, IcuTrans/IcuTransWithoutContext, Translation, the withTranslation/withSSR HOCs, useSSR, namespace reporting, initialization/default helpers, and the root ICU helper exports over the unchanged i18next core.",
|
|
@@ -489,7 +486,7 @@
|
|
|
489
486
|
},
|
|
490
487
|
{
|
|
491
488
|
"name": "@octanejs/image-crop",
|
|
492
|
-
"version": "0.0.
|
|
489
|
+
"version": "0.0.20",
|
|
493
490
|
"category": "UI Utilities",
|
|
494
491
|
"upstream": {
|
|
495
492
|
"package": "react-image-crop",
|
|
@@ -506,7 +503,7 @@
|
|
|
506
503
|
},
|
|
507
504
|
{
|
|
508
505
|
"name": "@octanejs/inertia",
|
|
509
|
-
"version": "0.0.
|
|
506
|
+
"version": "0.0.32",
|
|
510
507
|
"category": "Routing",
|
|
511
508
|
"upstream": { "package": "@inertiajs/react", "version": "3.6.1" },
|
|
512
509
|
"surface": "Octane Inertia 3.6.1 adapter foundation: framework-neutral router, HTTP client, progress, and server exports reuse @inertiajs/core unchanged; page, remember, poll, prefetch, form-state, router-submit, direct-HTTP, precognition, and layout-property hooks are ported to Octane.",
|
|
@@ -518,7 +515,7 @@
|
|
|
518
515
|
},
|
|
519
516
|
{
|
|
520
517
|
"name": "@octanejs/ink",
|
|
521
|
-
"version": "0.0.
|
|
518
|
+
"version": "0.0.25",
|
|
522
519
|
"category": "Terminal Apps",
|
|
523
520
|
"upstream": { "package": "ink", "version": "7.1.1" },
|
|
524
521
|
"surface": "Complete against Ink 7.1.1's published exports: terminal render roots, Yoga-backed Box and Text primitives, Static/Transform/Newline/Spacer, application and stream hooks, input/paste/focus/cursor/animation/window-size/metrics hooks, measurement helpers, DOM element types, and Kitty keyboard protocol helpers.",
|
|
@@ -532,7 +529,7 @@
|
|
|
532
529
|
},
|
|
533
530
|
{
|
|
534
531
|
"name": "@octanejs/input-otp",
|
|
535
|
-
"version": "0.0.
|
|
532
|
+
"version": "0.0.30",
|
|
536
533
|
"category": "Forms",
|
|
537
534
|
"upstream": { "package": "input-otp", "version": "1.5.0" },
|
|
538
535
|
"surface": "Complete against input-otp@1.5.0: OTPInput, OTPInputContext, the three exported regexp patterns, public props and slot types including nonce, controlled and uncontrolled values, one-input accessibility and mobile-autofill markup, default spellcheck off, translation opt-out, render/context projection, keyboard selection and deletion, paste transformation, completion callbacks, overflow-aware password-manager displacement, SSR, and hydration.",
|
|
@@ -545,7 +542,7 @@
|
|
|
545
542
|
},
|
|
546
543
|
{
|
|
547
544
|
"name": "@octanejs/intersection-observer",
|
|
548
|
-
"version": "0.0.
|
|
545
|
+
"version": "0.0.28",
|
|
549
546
|
"category": "UI Utilities",
|
|
550
547
|
"upstream": {
|
|
551
548
|
"package": "react-intersection-observer",
|
|
@@ -567,7 +564,7 @@
|
|
|
567
564
|
},
|
|
568
565
|
{
|
|
569
566
|
"name": "@octanejs/jotai",
|
|
570
|
-
"version": "0.1.
|
|
567
|
+
"version": "0.1.61",
|
|
571
568
|
"category": "State Management",
|
|
572
569
|
"upstream": { "package": "jotai", "version": "3.0.0" },
|
|
573
570
|
"surface": "Jotai 3 runtime surface: imported vanilla atoms, stores, utilities and internals; ported Provider, useStore, useAtom, useSetAtom, useAtomValue, useAtomValueRaw, useAtomValueRawSync and four hook utilities.",
|
|
@@ -581,7 +578,7 @@
|
|
|
581
578
|
},
|
|
582
579
|
{
|
|
583
580
|
"name": "@octanejs/lexical",
|
|
584
|
-
"version": "0.2.
|
|
581
|
+
"version": "0.2.7",
|
|
585
582
|
"category": "Content",
|
|
586
583
|
"upstream": { "package": "@lexical/react", "version": "0.51.0" },
|
|
587
584
|
"surface": "The 49 `@lexical/react` entry points represented by this port cover composer + contexts, the editable surface, plain/rich text, the plugin/menu set with its `*Utils` and `LexicalMenuOption` entries, and the `useLexical*` hooks including the `@lexical/a11y`-backed accessibility hooks. The 0.51.0 React extension subsystem, collaboration plugin, and tree view remain excluded as itemized in UPSTREAM.md.",
|
|
@@ -594,7 +591,7 @@
|
|
|
594
591
|
},
|
|
595
592
|
{
|
|
596
593
|
"name": "@octanejs/livestore",
|
|
597
|
-
"version": "0.0.
|
|
594
|
+
"version": "0.0.32",
|
|
598
595
|
"category": "Data",
|
|
599
596
|
"upstream": { "package": "@livestore/react", "version": "0.4.0" },
|
|
600
597
|
"surface": "Ports the complete stable renderer surface (registry provider/access, Suspense store loading and augmentation, reactive queries, client documents, and sync status) plus the exported experimental LiveList over LiveStore's unchanged 0.4.0 framework-neutral packages.",
|
|
@@ -608,7 +605,7 @@
|
|
|
608
605
|
},
|
|
609
606
|
{
|
|
610
607
|
"name": "@octanejs/lucide",
|
|
611
|
-
"version": "0.1.
|
|
608
|
+
"version": "0.1.57",
|
|
612
609
|
"category": "Icons",
|
|
613
610
|
"upstream": { "package": "lucide-react", "version": "1.24.0" },
|
|
614
611
|
"surface": "Complete against the published `lucide-react@1.24.0` runtime surface: every canonical icon and alias, the `icons` namespace, `Icon`, `createLucideIcon`, `LucideProvider`, `useLucideContext`, `DynamicIcon`, `iconNames`, `dynamicIconImports`, and per-icon subpath imports.",
|
|
@@ -621,7 +618,7 @@
|
|
|
621
618
|
},
|
|
622
619
|
{
|
|
623
620
|
"name": "@octanejs/mantine-hooks",
|
|
624
|
-
"version": "0.1.
|
|
621
|
+
"version": "0.1.43",
|
|
625
622
|
"category": "UI Utilities",
|
|
626
623
|
"upstream": { "package": "@mantine/hooks", "version": "9.5.0" },
|
|
627
624
|
"surface": "Complete @mantine/hooks 9.5.0 runtime export surface: state, timing, storage, viewport, input, focus, pointer, observer, hotkey, scrolling, collapse, drag, splitter, mask, and utility hooks.",
|
|
@@ -635,7 +632,7 @@
|
|
|
635
632
|
},
|
|
636
633
|
{
|
|
637
634
|
"name": "@octanejs/markdown",
|
|
638
|
-
"version": "0.0.
|
|
635
|
+
"version": "0.0.28",
|
|
639
636
|
"category": "Content",
|
|
640
637
|
"upstream": { "package": "react-markdown", "version": "10.1.0" },
|
|
641
638
|
"surface": "Complete react-markdown 10.1.0 root runtime and public type surface: Markdown, MarkdownAsync, MarkdownHooks, defaultUrlTransform, and all six exported type families.",
|
|
@@ -649,7 +646,7 @@
|
|
|
649
646
|
},
|
|
650
647
|
{
|
|
651
648
|
"name": "@octanejs/mdx",
|
|
652
|
-
"version": "0.1.
|
|
649
|
+
"version": "0.1.60",
|
|
653
650
|
"category": "Content",
|
|
654
651
|
"upstream": { "package": "@mdx-js/mdx", "version": "3.1.1" },
|
|
655
652
|
"surface": "The full compile-don't-interpret pipeline: `.mdx`/`.md` → `@mdx-js/mdx` (reused verbatim) → octane compiler, via the `octaneMdx()` Vite plugin plus the `./compile` and `./server` entries; compiler warnings propagate through direct and Vite compile surfaces with authored `.mdx` ranges; `@mdx-js/react`'s provider layer (`MDXProvider`/`useMDXComponents`) is ported onto octane context. The octane website runs on it.",
|
|
@@ -661,7 +658,7 @@
|
|
|
661
658
|
},
|
|
662
659
|
{
|
|
663
660
|
"name": "@octanejs/mobx",
|
|
664
|
-
"version": "0.1.
|
|
661
|
+
"version": "0.1.43",
|
|
665
662
|
"category": "State Management",
|
|
666
663
|
"upstream": { "package": "mobx-react-lite", "version": "4.1.1", "core": "mobx@6.16.1" },
|
|
667
664
|
"surface": "The framework-independent MobX core is re-exported verbatim. The function-component binding includes observer, Observer, useObserver, useLocalObservable, enableStaticRendering, isUsingStaticRendering, and the deprecated useStaticRendering alias.",
|
|
@@ -675,7 +672,7 @@
|
|
|
675
672
|
},
|
|
676
673
|
{
|
|
677
674
|
"name": "@octanejs/monaco-editor",
|
|
678
|
-
"version": "0.0.
|
|
675
|
+
"version": "0.0.30",
|
|
679
676
|
"category": "Content",
|
|
680
677
|
"upstream": {
|
|
681
678
|
"package": "@monaco-editor/react",
|
|
@@ -695,7 +692,7 @@
|
|
|
695
692
|
},
|
|
696
693
|
{
|
|
697
694
|
"name": "@octanejs/motion",
|
|
698
|
-
"version": "0.1.
|
|
695
|
+
"version": "0.1.62",
|
|
699
696
|
"category": "Animation",
|
|
700
697
|
"upstream": { "package": "motion", "version": "12.42.2" },
|
|
701
698
|
"surface": "Core surface: `motion.<tag>` (animate, gestures, variants with propagation/stagger, drag, layout basics), `AnimatePresence`, `MotionConfig`, live `useReducedMotion`, reduced-motion enforcement, `LayoutGroup` layoutId namespaces, `LazyMotion` with `domAnimation`/`domMax`, the `m` proxy and complete `./react-m` named host entry, plus the motion-value hooks (`useMotionValue`, `useScroll`, `useTransform`, `useSpring`, `useAnimate`, `useMotionValueEvent`); motion-dom's animation engine and gesture primitives are reused verbatim.",
|
|
@@ -709,7 +706,7 @@
|
|
|
709
706
|
},
|
|
710
707
|
{
|
|
711
708
|
"name": "@octanejs/nuqs",
|
|
712
|
-
"version": "0.1.
|
|
709
|
+
"version": "0.1.51",
|
|
713
710
|
"category": "Routing",
|
|
714
711
|
"upstream": { "package": "nuqs", "version": "2.9.1" },
|
|
715
712
|
"surface": "Full vendored port: the framework-agnostic core (`parsers`/`parseAs*`/`createParser`, `createSerializer`, `createLoader`, `createStandardSchemaV1`, the throttle/debounce update queues, sync emitter and URL encoding) is vendored verbatim from nuqs 2.9.1; the React layer (`useQueryState`, `useQueryStates`, the `useSyncExternalStores` helper and the adapter context) is ported onto octane's hooks — same `useState`/`useEffect`/`useSyncExternalStore` implementation shape as upstream, so re-render and URL-reconciliation behaviour matches nuqs on React. Adapters ported: `@octanejs/nuqs/adapters/react` (`NuqsAdapter`, `enableHistorySync`), `/adapters/custom` (`unstable_createAdapterProvider`), `/adapters/testing` (`NuqsTestingAdapter`, `withNuqsTestingAdapter`). Server surface (`@octanejs/nuqs/server`) exposes `createLoader`/`createSerializer`/parsers/`createStandardSchemaV1`.",
|
|
@@ -724,7 +721,7 @@
|
|
|
724
721
|
},
|
|
725
722
|
{
|
|
726
723
|
"name": "@octanejs/octane-is",
|
|
727
|
-
"version": "0.0.
|
|
724
|
+
"version": "0.0.11",
|
|
728
725
|
"category": "Developer Tools",
|
|
729
726
|
"upstream": { "package": "react-is", "version": "19.2.7" },
|
|
730
727
|
"surface": "All 26 published react-is 19.2.7 exports over Octane element descriptors and callable component metadata.",
|
|
@@ -739,7 +736,7 @@
|
|
|
739
736
|
},
|
|
740
737
|
{
|
|
741
738
|
"name": "@octanejs/opentui",
|
|
742
|
-
"version": "0.0.
|
|
739
|
+
"version": "0.0.18",
|
|
743
740
|
"category": "Terminal Apps",
|
|
744
741
|
"upstream": { "package": "@opentui/react", "version": "0.5.8" },
|
|
745
742
|
"surface": "Technical-preview OpenTUI 0.5.8 renderer: renderer-local TSRX intrinsics for the complete built-in catalogue and text modifiers, custom `extend()` renderables, component-plus-props roots, OpenTUI prop/style/event application, refs and retained visibility, same-renderer `RootRenderable` portals, terminal error fallback, `act`/`flushSync`, all public hooks, `TimeToFirstDraw`, the core slot/plugin registry adapted to universal renderables, and an FFI-backed test utility. Native behavioral coverage exercises terminal frames, state and prop updates, host identity, keyboard and resize hooks, multi-argument select callbacks, subscription cleanup, portals, slots, errors, and teardown under Bun.",
|
|
@@ -756,7 +753,7 @@
|
|
|
756
753
|
},
|
|
757
754
|
{
|
|
758
755
|
"name": "@octanejs/pdf",
|
|
759
|
-
"version": "0.0.
|
|
756
|
+
"version": "0.0.29",
|
|
760
757
|
"category": "Content",
|
|
761
758
|
"upstream": { "package": "react-pdf", "version": "10.4.1" },
|
|
762
759
|
"surface": "Complete against the documented react-pdf 10.4.1 root contract: Document, Page, Thumbnail, Outline, all three context hooks, PasswordResponses, pdfjs, all ten root types, both documented layer styles, and the unchanged PDF.js worker import.",
|
|
@@ -769,7 +766,7 @@
|
|
|
769
766
|
},
|
|
770
767
|
{
|
|
771
768
|
"name": "@octanejs/phosphor-icons",
|
|
772
|
-
"version": "0.0.
|
|
769
|
+
"version": "0.0.42",
|
|
773
770
|
"category": "Icons",
|
|
774
771
|
"upstream": { "package": "@phosphor-icons/react", "version": "2.1.10" },
|
|
775
772
|
"surface": "All 1,512 canonical icons from @phosphor-icons/core@2.1.1, including the upstream deprecated Icon-suffixed aliases, six weights, IconContext, IconBase, root exports, and per-icon imports.",
|
|
@@ -783,7 +780,7 @@
|
|
|
783
780
|
},
|
|
784
781
|
{
|
|
785
782
|
"name": "@octanejs/popper",
|
|
786
|
-
"version": "0.0.
|
|
783
|
+
"version": "0.0.28",
|
|
787
784
|
"category": "UI Utilities",
|
|
788
785
|
"upstream": { "package": "react-popper", "version": "2.3.0" },
|
|
789
786
|
"surface": "Complete against the published react-popper 2.3.0 root runtime and type surface: Manager, Reference, Popper, usePopper, render-function refs and styles, explicit and virtual references, arrows, hide data, lifecycle actions, Popper modifiers, and all public types.",
|
|
@@ -796,7 +793,7 @@
|
|
|
796
793
|
},
|
|
797
794
|
{
|
|
798
795
|
"name": "@octanejs/portabletext",
|
|
799
|
-
"version": "0.1.
|
|
796
|
+
"version": "0.1.12",
|
|
800
797
|
"category": "Sanity Content",
|
|
801
798
|
"upstream": {
|
|
802
799
|
"package": "@portabletext/react",
|
|
@@ -814,7 +811,7 @@
|
|
|
814
811
|
},
|
|
815
812
|
{
|
|
816
813
|
"name": "@octanejs/radix",
|
|
817
|
-
"version": "0.1.
|
|
814
|
+
"version": "0.1.64",
|
|
818
815
|
"category": "UI Libraries",
|
|
819
816
|
"upstream": { "package": "radix-ui", "version": "1.6.4" },
|
|
820
817
|
"surface": "Surface-present against the unified `radix-ui@1.6.4` component exports. Sixteen repo-authored differential cases compare representative primitives and interactions against the real package; the complete 38-file canonical upstream suite is preserved but not adapted, so the binding remains recorded-unverified.",
|
|
@@ -827,7 +824,7 @@
|
|
|
827
824
|
},
|
|
828
825
|
{
|
|
829
826
|
"name": "@octanejs/rainbowkit",
|
|
830
|
-
"version": "0.0.
|
|
827
|
+
"version": "0.0.45",
|
|
831
828
|
"category": "Web3",
|
|
832
829
|
"upstream": { "package": "@rainbow-me/rainbowkit", "version": "2.2.11" },
|
|
833
830
|
"surface": "Octane-native RainbowKitProvider, ConnectButton and ConnectButton.Custom, WalletButton, connect/account/chain modal hooks, connector selection, account/chain actions, native accessible dialogs, and light/dark/midnight themes.",
|
|
@@ -843,7 +840,7 @@
|
|
|
843
840
|
},
|
|
844
841
|
{
|
|
845
842
|
"name": "@octanejs/react-error-boundary",
|
|
846
|
-
"version": "0.1.
|
|
843
|
+
"version": "0.1.43",
|
|
847
844
|
"category": "UI Utilities",
|
|
848
845
|
"upstream": { "package": "react-error-boundary", "version": "6.1.2" },
|
|
849
846
|
"surface": "Complete against the published react-error-boundary 6.1.2 function/type surface adapted to Octane: ErrorBoundary, ErrorBoundaryContext, getErrorMessage, fallback variants, onError/onReset callbacks, resetKeys, useErrorBoundary (including error), withErrorBoundary, OnErrorCallback, and UseErrorBoundaryApi.",
|
|
@@ -857,7 +854,7 @@
|
|
|
857
854
|
},
|
|
858
855
|
{
|
|
859
856
|
"name": "@octanejs/react-map-gl",
|
|
860
|
-
"version": "0.0.
|
|
857
|
+
"version": "0.0.34",
|
|
861
858
|
"category": "Visualization",
|
|
862
859
|
"upstream": { "package": "@vis.gl/react-mapbox", "version": "8.1.2 (b1e46fcf)" },
|
|
863
860
|
"surface": "Complete against the pinned @vis.gl/react-mapbox 8.1.2 public surface — the package react-map-gl/mapbox re-exports: Map (and default), Marker, Popup, Source, Layer, AttributionControl, FullscreenControl, GeolocateControl, NavigationControl, ScaleControl, useControl, MapProvider, useMap, and every published type. The framework-neutral half of upstream (the Mapbox engine, proxy transform, map ref, and six utils) is reused byte-for-byte and validated by upstream's own specs run against both source trees.",
|
|
@@ -872,7 +869,7 @@
|
|
|
872
869
|
},
|
|
873
870
|
{
|
|
874
871
|
"name": "@octanejs/recharts",
|
|
875
|
-
"version": "0.1.
|
|
872
|
+
"version": "0.1.63",
|
|
876
873
|
"category": "Visualization",
|
|
877
874
|
"upstream": { "package": "recharts", "version": "3.9.2" },
|
|
878
875
|
"surface": "Broad runtime support across cartesian, polar, hierarchical, tooltip, legend, responsive-container, shape, and chart-state surfaces. `Brush` and `Treemap` remain intentionally unsupported.",
|
|
@@ -884,7 +881,7 @@
|
|
|
884
881
|
},
|
|
885
882
|
{
|
|
886
883
|
"name": "@octanejs/redux",
|
|
887
|
-
"version": "0.1.
|
|
884
|
+
"version": "0.1.60",
|
|
888
885
|
"category": "State Management",
|
|
889
886
|
"upstream": { "package": "react-redux", "version": "9.3.0" },
|
|
890
887
|
"surface": "The hooks + `Provider` surface of react-redux 9.3.0 (`useSelector`, `useDispatch`, `useStore`, and the custom-context factory variants) on octane's `useSyncExternalStore`; works with any Redux 5 / Redux Toolkit store. Upstream runtime-export completeness is pinned by test.",
|
|
@@ -898,7 +895,7 @@
|
|
|
898
895
|
},
|
|
899
896
|
{
|
|
900
897
|
"name": "@octanejs/redux-toolkit",
|
|
901
|
-
"version": "0.1.
|
|
898
|
+
"version": "0.1.58",
|
|
902
899
|
"category": "State Management",
|
|
903
900
|
"upstream": { "package": "@reduxjs/toolkit", "version": "2.12.0" },
|
|
904
901
|
"surface": "Complete four-entry-point port: the framework-agnostic Toolkit and RTK Query core are re-exported verbatim; `/query/react` provides generated query, lazy-query, mutation, infinite-query, prefetch hooks and `ApiProvider`; `/react` provides the dynamic-middleware dispatch-hook integration.",
|
|
@@ -911,7 +908,7 @@
|
|
|
911
908
|
},
|
|
912
909
|
{
|
|
913
910
|
"name": "@octanejs/remix-router",
|
|
914
|
-
"version": "0.1.
|
|
911
|
+
"version": "0.1.59",
|
|
915
912
|
"category": "Routing",
|
|
916
913
|
"upstream": { "package": "react-router", "version": "8.2.0" },
|
|
917
914
|
"surface": "All planned port phases are shipped and the pinned runtime export namespace is complete: the framework-agnostic router core, data/declarative/DOM/mutation/guard layers, static SSR, and cookie/session runtime are implemented on Octane. Framework-mode and RSC names remain throwing scope stubs. Selected vendored-core suites, local conformance, and nine exact shared-fixture scenarios provide bounded evidence rather than exhaustive React parity.",
|
|
@@ -927,7 +924,7 @@
|
|
|
927
924
|
},
|
|
928
925
|
{
|
|
929
926
|
"name": "@octanejs/resizable-panels",
|
|
930
|
-
"version": "0.0.
|
|
927
|
+
"version": "0.0.21",
|
|
931
928
|
"category": "UI Utilities",
|
|
932
929
|
"upstream": { "package": "react-resizable-panels", "version": "4.12.2" },
|
|
933
930
|
"surface": "Group, Panel, Separator, persistence hooks, refs, imperative APIs, layout constraints, pointer and keyboard interaction, ARIA, cursor handling, and ResizeObserver behavior are implemented against react-resizable-panels 4.12.2.",
|
|
@@ -939,7 +936,7 @@
|
|
|
939
936
|
},
|
|
940
937
|
{
|
|
941
938
|
"name": "@octanejs/rxjs",
|
|
942
|
-
"version": "0.1.
|
|
939
|
+
"version": "0.1.42",
|
|
943
940
|
"category": "State Management",
|
|
944
941
|
"upstream": {
|
|
945
942
|
"package": "@react-rxjs/core + @react-rxjs/utils",
|
|
@@ -955,7 +952,7 @@
|
|
|
955
952
|
},
|
|
956
953
|
{
|
|
957
954
|
"name": "@octanejs/sanity-icons",
|
|
958
|
-
"version": "0.1.
|
|
955
|
+
"version": "0.1.12",
|
|
959
956
|
"category": "Sanity Content",
|
|
960
957
|
"upstream": {
|
|
961
958
|
"package": "@sanity/icons",
|
|
@@ -972,7 +969,7 @@
|
|
|
972
969
|
},
|
|
973
970
|
{
|
|
974
971
|
"name": "@octanejs/sanity-loader",
|
|
975
|
-
"version": "0.1.
|
|
972
|
+
"version": "0.1.12",
|
|
976
973
|
"category": "Sanity Content",
|
|
977
974
|
"upstream": {
|
|
978
975
|
"package": "@sanity/react-loader",
|
|
@@ -990,7 +987,7 @@
|
|
|
990
987
|
},
|
|
991
988
|
{
|
|
992
989
|
"name": "@octanejs/sanity-logos",
|
|
993
|
-
"version": "0.1.
|
|
990
|
+
"version": "0.1.12",
|
|
994
991
|
"category": "Sanity Content",
|
|
995
992
|
"upstream": {
|
|
996
993
|
"package": "@sanity/logos",
|
|
@@ -1007,7 +1004,7 @@
|
|
|
1007
1004
|
},
|
|
1008
1005
|
{
|
|
1009
1006
|
"name": "@octanejs/select",
|
|
1010
|
-
"version": "0.1.
|
|
1007
|
+
"version": "0.1.14",
|
|
1011
1008
|
"category": "UI Libraries",
|
|
1012
1009
|
"upstream": {
|
|
1013
1010
|
"package": "react-select",
|
|
@@ -1025,7 +1022,7 @@
|
|
|
1025
1022
|
},
|
|
1026
1023
|
{
|
|
1027
1024
|
"name": "@octanejs/shadcn",
|
|
1028
|
-
"version": "0.0.
|
|
1025
|
+
"version": "0.0.53",
|
|
1029
1026
|
"category": "UI Libraries",
|
|
1030
1027
|
"upstream": {
|
|
1031
1028
|
"package": "shadcn-ui/ui (component registry)",
|
|
@@ -1052,7 +1049,7 @@
|
|
|
1052
1049
|
},
|
|
1053
1050
|
{
|
|
1054
1051
|
"name": "@octanejs/solana-kit",
|
|
1055
|
-
"version": "0.0.
|
|
1052
|
+
"version": "0.0.33",
|
|
1056
1053
|
"category": "Web3",
|
|
1057
1054
|
"upstream": {
|
|
1058
1055
|
"package": "@solana/react",
|
|
@@ -1073,7 +1070,7 @@
|
|
|
1073
1070
|
},
|
|
1074
1071
|
{
|
|
1075
1072
|
"name": "@octanejs/sonner",
|
|
1076
|
-
"version": "0.1.
|
|
1073
|
+
"version": "0.1.58",
|
|
1077
1074
|
"category": "UI Libraries",
|
|
1078
1075
|
"upstream": { "package": "sonner", "version": "2.0.7" },
|
|
1079
1076
|
"surface": "Complete against the published `sonner@2.0.7` public surface: `Toaster`, the callable `toast` API and all methods, `useSonner`, promise lifecycle, multiple toaster targeting, stacked layout, themes, styling, focus management, timers, and swipe dismissal.",
|
|
@@ -1087,7 +1084,7 @@
|
|
|
1087
1084
|
},
|
|
1088
1085
|
{
|
|
1089
1086
|
"name": "@octanejs/spring",
|
|
1090
|
-
"version": "0.0.
|
|
1087
|
+
"version": "0.0.29",
|
|
1091
1088
|
"category": "Animation",
|
|
1092
1089
|
"upstream": { "package": "@react-spring/web", "version": "10.1.2" },
|
|
1093
1090
|
"surface": "Stable React Spring web target at the package root and Parallax through the ./parallax subpath. The port provides spring values, controllers, interpolation, Octane hooks and render-prop components, animated DOM hosts, browser observers, SSR-safe initial rendering, and Parallax scrolling.",
|
|
@@ -1100,7 +1097,7 @@
|
|
|
1100
1097
|
},
|
|
1101
1098
|
{
|
|
1102
1099
|
"name": "@octanejs/stick-to-bottom",
|
|
1103
|
-
"version": "0.0.
|
|
1100
|
+
"version": "0.0.18",
|
|
1104
1101
|
"category": "UI Utilities",
|
|
1105
1102
|
"upstream": {
|
|
1106
1103
|
"package": "use-stick-to-bottom",
|
|
@@ -1119,7 +1116,7 @@
|
|
|
1119
1116
|
},
|
|
1120
1117
|
{
|
|
1121
1118
|
"name": "@octanejs/streamdown",
|
|
1122
|
-
"version": "0.1.
|
|
1119
|
+
"version": "0.1.42",
|
|
1123
1120
|
"category": "Content",
|
|
1124
1121
|
"upstream": { "package": "streamdown", "version": "2.5.0" },
|
|
1125
1122
|
"surface": "Complete Streamdown 2.5.0 root runtime and public type surface, plus the official code 1.1.1, math 1.0.2, Mermaid 1.0.2, and CJK 1.0.3 plugins exposed through ./code, ./math, ./mermaid, and ./cjk.",
|
|
@@ -1135,7 +1132,7 @@
|
|
|
1135
1132
|
},
|
|
1136
1133
|
{
|
|
1137
1134
|
"name": "@octanejs/styled-components",
|
|
1138
|
-
"version": "0.1.
|
|
1135
|
+
"version": "0.1.55",
|
|
1139
1136
|
"category": "Styling",
|
|
1140
1137
|
"upstream": { "package": "styled-components", "version": "6.4.3" },
|
|
1141
1138
|
"surface": "Full v6 web API, ported from the upstream 6.4.3 sources: `styled` with every HTML/SVG tag shortcut, `.attrs`/`.withConfig` chaining, `css`, `keyframes`, `createGlobalStyle`, `createTheme`, `ThemeProvider`/`ThemeContext`/`ThemeConsumer`/`useTheme`/`withTheme`, `StyleSheetManager`/`StyleSheetContext`/`StyleSheetConsumer` (targets, namespaces, vendor prefixing, stylis plugins, `shouldForwardProp`), `ServerStyleSheet`, `isStyledComponent`, `version`, and `__PRIVATE__`. Component selectors, folding (`styled(Styled)`), transient `$` props, `as`/`forwardedAs`, and the grouped CSSOM sheet engine (with upstream `data-styled` rehydration) all behave as upstream. The React Native surface and the RSC-only `stylisPluginRSC` are not ported.",
|
|
@@ -1154,7 +1151,7 @@
|
|
|
1154
1151
|
},
|
|
1155
1152
|
{
|
|
1156
1153
|
"name": "@octanejs/stylex",
|
|
1157
|
-
"version": "0.1.
|
|
1154
|
+
"version": "0.1.62",
|
|
1158
1155
|
"category": "Styling",
|
|
1159
1156
|
"upstream": { "package": "@stylexjs/stylex", "version": "0.19.0" },
|
|
1160
1157
|
"surface": "Full compile-time integration: re-exports the StyleX runtime API (`create`, `props`, `attrs`, `keyframes`, `defineVars`, `createTheme`) and registers as an import source; the `/vite` plugin runs the StyleX compiler over octane's compiled output and emits one static atomic stylesheet (`virtual:stylex.css`) with zero StyleX runtime in the bundle.",
|
|
@@ -1167,7 +1164,7 @@
|
|
|
1167
1164
|
},
|
|
1168
1165
|
{
|
|
1169
1166
|
"name": "@octanejs/swr",
|
|
1170
|
-
"version": "0.0.
|
|
1167
|
+
"version": "0.0.29",
|
|
1171
1168
|
"category": "Data",
|
|
1172
1169
|
"upstream": { "package": "swr", "version": "2.4.2" },
|
|
1173
1170
|
"surface": "Mapped port of SWR 2.4.2: root useSWR/config/cache/mutate/preload, infinite, immutable, remote mutation, subscription, _internal, and the published react-server condition branches. The harness executes the pinned pristine React suite plus selected adapted Octane cases, repo-authored adapted type probes, and differential/export oracles. Provenance remains recorded-unverified until the exhaustive adapted crosswalk lands.",
|
|
@@ -1180,7 +1177,7 @@
|
|
|
1180
1177
|
},
|
|
1181
1178
|
{
|
|
1182
1179
|
"name": "@octanejs/syntax-highlighter",
|
|
1183
|
-
"version": "0.0.
|
|
1180
|
+
"version": "0.0.28",
|
|
1184
1181
|
"category": "Content",
|
|
1185
1182
|
"upstream": { "package": "react-syntax-highlighter", "version": "16.1.1" },
|
|
1186
1183
|
"surface": "Complete against react-syntax-highlighter 16.1.1: default, Light, Prism, async and async-light components; static registration and language lists; custom renderers and tags; all pinned Highlight.js and Prism languages and styles; and all ESM/CJS deep-import aliases.",
|
|
@@ -1193,7 +1190,7 @@
|
|
|
1193
1190
|
},
|
|
1194
1191
|
{
|
|
1195
1192
|
"name": "@octanejs/tanstack-ai",
|
|
1196
|
-
"version": "0.0.
|
|
1193
|
+
"version": "0.0.56",
|
|
1197
1194
|
"category": "Data",
|
|
1198
1195
|
"upstream": { "package": "@tanstack/ai-react", "version": "0.17.0" },
|
|
1199
1196
|
"surface": "Ports the @tanstack/ai-react 0.17.0 hook surface (useChat, useRealtimeChat, useGeneration, useGenerateImage/Audio/Speech/Video, useTranscription, useSummarize, useAudioRecorder, useMcpAppBridge) while reusing @tanstack/ai 0.41.0 and @tanstack/ai-client 0.21.0 unchanged and mirroring all 30 @tanstack/ai-client convenience re-exports from the upstream index.",
|
|
@@ -1212,7 +1209,7 @@
|
|
|
1212
1209
|
},
|
|
1213
1210
|
{
|
|
1214
1211
|
"name": "@octanejs/tanstack-db",
|
|
1215
|
-
"version": "0.0.
|
|
1212
|
+
"version": "0.0.25",
|
|
1216
1213
|
"category": "Data",
|
|
1217
1214
|
"upstream": { "package": "@tanstack/db", "version": "0.7.0" },
|
|
1218
1215
|
"surface": "Re-exports `@tanstack/db@0.7.0` unchanged and ports the React live-query binding surface of `@tanstack/react-db@0.1.96` (`useLiveQuery`, `useLiveInfiniteQuery`, `useLiveSuspenseQuery`, `useLiveQueryEffect`, `usePacedMutations`) onto Octane hooks. `useLiveQuery`/`useLiveSuspenseQuery` are driven by db's shared `createLiveQueryObserver`; `useLiveInfiniteQuery` by the coordinated `createLiveQueryWindowController`.",
|
|
@@ -1227,7 +1224,7 @@
|
|
|
1227
1224
|
},
|
|
1228
1225
|
{
|
|
1229
1226
|
"name": "@octanejs/tanstack-devtools",
|
|
1230
|
-
"version": "0.0.
|
|
1227
|
+
"version": "0.0.57",
|
|
1231
1228
|
"category": "Developer Tools",
|
|
1232
1229
|
"upstream": { "package": "@tanstack/react-devtools", "version": "0.10.12" },
|
|
1233
1230
|
"surface": "Surface-present for the pinned adapter's runtime entrypoint, with additive framework-neutral core re-exports. A same-fixture differential covers mount, config synchronization, plugin/title/trigger portals, and teardown. Upstream has no runtime suite; its test:types source compile is recorded as present type evidence with required pristine/adapted type lanes. Provenance is verified; core-version drift and Octane-specific type names/core re-exports stay as explicit divergences.",
|
|
@@ -1242,7 +1239,7 @@
|
|
|
1242
1239
|
},
|
|
1243
1240
|
{
|
|
1244
1241
|
"name": "@octanejs/tanstack-form",
|
|
1245
|
-
"version": "0.0.
|
|
1242
|
+
"version": "0.0.59",
|
|
1246
1243
|
"category": "Forms",
|
|
1247
1244
|
"upstream": { "package": "@tanstack/react-form", "version": "1.33.5" },
|
|
1248
1245
|
"surface": "Ports the complete @tanstack/react-form 1.33.5 adapter surface (`useForm`, `useField`, form and field groups, hook contexts and component composition) while re-exporting @tanstack/form-core 1.33.5 unchanged and using @octanejs/tanstack-store for subscriptions.",
|
|
@@ -1256,7 +1253,7 @@
|
|
|
1256
1253
|
},
|
|
1257
1254
|
{
|
|
1258
1255
|
"name": "@octanejs/tanstack-hotkeys",
|
|
1259
|
-
"version": "0.0.
|
|
1256
|
+
"version": "0.0.54",
|
|
1260
1257
|
"category": "UI Utilities",
|
|
1261
1258
|
"upstream": { "package": "@tanstack/react-hotkeys", "version": "0.10.0" },
|
|
1262
1259
|
"surface": "Surface-present for all 22 `@tanstack/react-hotkeys@0.10.0` adapter exports plus the byte-identical `@tanstack/hotkeys@0.8.0` core re-export. The pinned 41-case upstream runtime suite runs pristine and adapted as verified vitest-full lanes; type suites compile upstream source with tsc and the Octane surface with tsrx-tsc.",
|
|
@@ -1268,7 +1265,7 @@
|
|
|
1268
1265
|
},
|
|
1269
1266
|
{
|
|
1270
1267
|
"name": "@octanejs/tanstack-pacer",
|
|
1271
|
-
"version": "0.0.
|
|
1268
|
+
"version": "0.0.54",
|
|
1272
1269
|
"category": "UI Utilities",
|
|
1273
1270
|
"upstream": { "package": "@tanstack/react-pacer", "version": "0.23.0" },
|
|
1274
1271
|
"surface": "All 15 runtime/type entrypoints from @tanstack/react-pacer@0.23.0, with framework-neutral @tanstack/pacer@0.22.0 imported directly. Complete source/type structural crosswalk and strict public contracts accompany paired scheduler runtime scenarios, all ten scheduler stores and cleanup, nested providers, and server/hydration adoption. The three async callback helpers preserve Awaited results and possible undefined. Upstream publishes no runtime or dedicated type-assertion suite; independent probes retain that distinction.",
|
|
@@ -1280,7 +1277,7 @@
|
|
|
1280
1277
|
},
|
|
1281
1278
|
{
|
|
1282
1279
|
"name": "@octanejs/tanstack-query",
|
|
1283
|
-
"version": "0.1.
|
|
1280
|
+
"version": "0.1.63",
|
|
1284
1281
|
"category": "Data",
|
|
1285
1282
|
"upstream": { "package": "@tanstack/react-query", "version": "5.102.8" },
|
|
1286
1283
|
"surface": "Complete published root adapter and neutral core re-exports. Exact runtime export comparison, 213 public value/type probes, 404 pristine and 404 adapted runtime registrations, and 167 pristine/adapted type registrations.",
|
|
@@ -1292,9 +1289,22 @@
|
|
|
1292
1289
|
"ssr": "Nine adapted upstream server cases, three real server/client hydration cases with surviving DOM identity, and the DOM-free Octane conformance scenario. No separate React streaming entry is published by this adapter.",
|
|
1293
1290
|
"verified": "2026-09-12"
|
|
1294
1291
|
},
|
|
1292
|
+
{
|
|
1293
|
+
"name": "@octanejs/tanstack-query-devtools",
|
|
1294
|
+
"version": "0.0.1",
|
|
1295
|
+
"category": "Developer Tools",
|
|
1296
|
+
"upstream": { "package": "@tanstack/react-query-devtools", "version": "5.102.8" },
|
|
1297
|
+
"surface": "Complete published adapter surface: ReactQueryDevtools, ReactQueryDevtoolsPanel, the DevtoolsPanelOptions type, and the ./production entry, over the unchanged @tanstack/query-devtools core. All 37 upstream runtime registrations run unchanged against React and, with import rewrites only, against Octane.",
|
|
1298
|
+
"divergences": [
|
|
1299
|
+
"The devtools core instance is created in a lazy useState initializer instead of being constructed on every render.",
|
|
1300
|
+
"Public prop types use Octane's CSSProperties and OctaneNode; element construction is authored in .tsrx."
|
|
1301
|
+
],
|
|
1302
|
+
"ssr": "Supported and tested: both components render only their parent container through octane/server without a DOM; the core is constructed but never mounted server-side (mount is a client-only effect).",
|
|
1303
|
+
"verified": "2026-09-30"
|
|
1304
|
+
},
|
|
1295
1305
|
{
|
|
1296
1306
|
"name": "@octanejs/tanstack-router",
|
|
1297
|
-
"version": "0.2.
|
|
1307
|
+
"version": "0.2.5",
|
|
1298
1308
|
"category": "Routing",
|
|
1299
1309
|
"upstream": { "package": "@tanstack/react-router", "version": "1.170.41" },
|
|
1300
1310
|
"surface": "Octane's TanStack Router binding: typed route factories and hooks, the full Match pipeline and lifecycle, file routes with TSRX-aware generator integration, full Link navigation/preloading/masking behavior, blocking, Await/deferred hydration, scroll restoration, lazy routes, not-found handling, document/head assets, and client/server SSR entries.",
|
|
@@ -1308,7 +1318,7 @@
|
|
|
1308
1318
|
},
|
|
1309
1319
|
{
|
|
1310
1320
|
"name": "@octanejs/tanstack-router-ssr-query",
|
|
1311
|
-
"version": "0.1.
|
|
1321
|
+
"version": "0.1.5",
|
|
1312
1322
|
"category": "Routing",
|
|
1313
1323
|
"upstream": { "package": "@tanstack/react-router-ssr-query", "version": "1.167.3" },
|
|
1314
1324
|
"surface": "Surface-present for the pinned adapter's only runtime entrypoint (`Options` and `setupRouterSsrQueryIntegration`). The metadata-only `./package.json` subpath is intentionally omitted. A representative differential covers provider-backed SSR, existing-wrapper preservation, setup mutations, and the wrapping control; upstream has no runtime suite, and type evidence is the upstream source compile plus the adapted Octane compile, so verification remains recorded-unverified.",
|
|
@@ -1318,7 +1328,7 @@
|
|
|
1318
1328
|
},
|
|
1319
1329
|
{
|
|
1320
1330
|
"name": "@octanejs/tanstack-store",
|
|
1321
|
-
"version": "0.0.
|
|
1331
|
+
"version": "0.0.59",
|
|
1322
1332
|
"category": "State Management",
|
|
1323
1333
|
"upstream": { "package": "@tanstack/react-store", "version": "0.11.1" },
|
|
1324
1334
|
"surface": "Re-exports `@tanstack/store@0.11.1` unchanged and implements the stable React binding surface (`useSelector`, `useAtom`, `useCreateAtom`, `useCreateStore`, `createStoreContext`, and deprecated `useStore`) on Octane hooks.",
|
|
@@ -1330,7 +1340,7 @@
|
|
|
1330
1340
|
},
|
|
1331
1341
|
{
|
|
1332
1342
|
"name": "@octanejs/tanstack-table",
|
|
1333
|
-
"version": "0.1.
|
|
1343
|
+
"version": "0.1.62",
|
|
1334
1344
|
"category": "Tables",
|
|
1335
1345
|
"upstream": { "package": "@tanstack/react-table", "version": "9.2.4" },
|
|
1336
1346
|
"surface": "TanStack Table 9.2.4 adapter using table-core 9.2.4 and the existing Octane Store integration. Covers useTable, Subscribe, FlexRender/flexRender, createTableHook, scoped contexts and the legacy migration hook/markers/types. Root, flex-render, legacy, static-functions, experimental-worker-plugin and package.json imports remain available. Core algorithms and worker helpers are imported directly.",
|
|
@@ -1343,7 +1353,7 @@
|
|
|
1343
1353
|
},
|
|
1344
1354
|
{
|
|
1345
1355
|
"name": "@octanejs/tanstack-virtual",
|
|
1346
|
-
"version": "0.1.
|
|
1356
|
+
"version": "0.1.60",
|
|
1347
1357
|
"category": "Tables",
|
|
1348
1358
|
"upstream": { "package": "@tanstack/react-virtual", "version": "3.14.12" },
|
|
1349
1359
|
"surface": "Complete 3.14.12 hook adapter and direct virtual-core 3.17.10 re-exports, with precise public hook signatures, direct DOM container sizing and end-anchor synchronization. All 26 exports have strict pinned public type probes.",
|
|
@@ -1355,7 +1365,7 @@
|
|
|
1355
1365
|
},
|
|
1356
1366
|
{
|
|
1357
1367
|
"name": "@octanejs/tauri",
|
|
1358
|
-
"version": "0.0.
|
|
1368
|
+
"version": "0.0.45",
|
|
1359
1369
|
"category": "Desktop Apps",
|
|
1360
1370
|
"upstream": { "package": "@tauri-apps/api", "version": "2.11.1" },
|
|
1361
1371
|
"surface": "Octane hooks over the framework-neutral Tauri IPC surface: useInvoke (suspending command), useInvokeState (pending/success/error with refetch), and useTauriEvent (event subscription with lifecycle-safe teardown). The rest of @tauri-apps/api — window, webview, menu, tray, path, dpi, image, and the plugin packages — is already framework-neutral and is imported directly rather than re-exported here.",
|
|
@@ -1373,7 +1383,7 @@
|
|
|
1373
1383
|
},
|
|
1374
1384
|
{
|
|
1375
1385
|
"name": "@octanejs/testing-library",
|
|
1376
|
-
"version": "0.1.
|
|
1386
|
+
"version": "0.1.61",
|
|
1377
1387
|
"category": "Testing",
|
|
1378
1388
|
"upstream": { "package": "@testing-library/react", "version": "16.3.2" },
|
|
1379
1389
|
"surface": "`render`/`rerender`/`cleanup`/`renderHook` + `act` over the verbatim `@testing-library/dom` (every query, `screen`, `within`, `waitFor`, `prettyDOM`, `configure`), with commit timing wired to octane's scheduler via the dom-library's `eventWrapper`/`asyncWrapper` config. Focus and blur helpers additionally emit their bubbling native counterparts.",
|
|
@@ -1386,7 +1396,7 @@
|
|
|
1386
1396
|
},
|
|
1387
1397
|
{
|
|
1388
1398
|
"name": "@octanejs/textarea-autosize",
|
|
1389
|
-
"version": "0.0.
|
|
1399
|
+
"version": "0.0.29",
|
|
1390
1400
|
"category": "UI Libraries",
|
|
1391
1401
|
"upstream": { "package": "react-textarea-autosize", "version": "8.5.9" },
|
|
1392
1402
|
"surface": "Complete against the published react-textarea-autosize 8.5.9 default component and named TextareaAutosizeProps and TextareaHeightChangeMeta types, including native textarea props, row clamps, measurement caching, height callbacks, refs, environmental listeners, form reset, SSR, and browser sizing.",
|
|
@@ -1399,7 +1409,7 @@
|
|
|
1399
1409
|
},
|
|
1400
1410
|
{
|
|
1401
1411
|
"name": "@octanejs/thinking-orbs",
|
|
1402
|
-
"version": "0.1.
|
|
1412
|
+
"version": "0.1.12",
|
|
1403
1413
|
"category": "Animation",
|
|
1404
1414
|
"upstream": { "package": "thinking-orbs", "version": "0.2.0" },
|
|
1405
1415
|
"surface": "ThinkingOrb component, resolvePreset, MODE_DRAWS, and public types — nine animation states, two tuned size presets, auto/dark/light theme, reduced-motion static frame.",
|
|
@@ -1409,7 +1419,7 @@
|
|
|
1409
1419
|
},
|
|
1410
1420
|
{
|
|
1411
1421
|
"name": "@octanejs/three",
|
|
1412
|
-
"version": "0.1.
|
|
1422
|
+
"version": "0.1.56",
|
|
1413
1423
|
"category": "3D",
|
|
1414
1424
|
"upstream": { "package": "@react-three/fiber", "version": "9.6.1 (2a528745)" },
|
|
1415
1425
|
"surface": "Technical-preview Milestones 0–10 surface: renderer configuration and the DOM Canvas boundary, compiler ABI and renderer-local Three intrinsic types, catalogue and both extend forms, primitive/args construction, Three prop application, attachment, ordered placement/recreation, retained visibility, lifecycle/ref delivery, ownership-aware disposal, promise-returning HTMLCanvasElement and OffscreenCanvas roots, Octane act/flushSync scheduling, callback-aware unmountComponentAtNode, callable root state, scene/camera/raycaster and resize/DPR/viewport configuration, shadows/colors, one shared frame loop, controlled WebXR loop handoff, context-restore invalidation, compatible/reconstructing HMR, global effects, useStore/useThree/useFrame/useGraph and managed-instance helpers, the ray/pointer event system with DOM sources and custom managers, a keyed useLoader cache with preload/clear and GLTF graph augmentation, retained Suspense/Activity behavior, client Three-to-DOM pending/error projection, same-renderer createPortal targets with state/event enclaves and physical Three event bubbling, client-only Canvas shell streaming and production Vite/Rsbuild hydration adoption with the matching raw Rspack graph split, the explicit-target low-level DOMRegion boundary, a deterministic testing harness, an asynchronously acknowledged structured-clone transport proof, a checked public API/subpath matrix, Three r156/current compatibility lanes, a packed external consumer, real WebGL failure/recovery coverage, and semantic-checksummed renderer and shipped-size benchmarks.",
|
|
@@ -1430,7 +1440,7 @@
|
|
|
1430
1440
|
},
|
|
1431
1441
|
{
|
|
1432
1442
|
"name": "@octanejs/tiptap",
|
|
1433
|
-
"version": "0.0.
|
|
1443
|
+
"version": "0.0.56",
|
|
1434
1444
|
"category": "Content",
|
|
1435
1445
|
"upstream": { "package": "@tiptap/react", "version": "3.28.0" },
|
|
1436
1446
|
"surface": "Complete @tiptap/react 3.28.0 adapter surface across the root and ./menus entries: @tiptap/core re-exports, editor hooks and contexts, the EditorContent portal bridge, compound Tiptap API, ReactRenderer, custom NodeView/MarkView renderers and helpers, BubbleMenu, and FloatingMenu.",
|
|
@@ -1447,7 +1457,7 @@
|
|
|
1447
1457
|
},
|
|
1448
1458
|
{
|
|
1449
1459
|
"name": "@octanejs/to-print",
|
|
1450
|
-
"version": "0.0.
|
|
1460
|
+
"version": "0.0.19",
|
|
1451
1461
|
"category": "UI Utilities",
|
|
1452
1462
|
"upstream": {
|
|
1453
1463
|
"package": "react-to-print",
|
|
@@ -1467,7 +1477,7 @@
|
|
|
1467
1477
|
},
|
|
1468
1478
|
{
|
|
1469
1479
|
"name": "@octanejs/transition-group",
|
|
1470
|
-
"version": "0.0.
|
|
1480
|
+
"version": "0.0.28",
|
|
1471
1481
|
"category": "Animation",
|
|
1472
1482
|
"upstream": {
|
|
1473
1483
|
"package": "react-transition-group",
|
|
@@ -1485,7 +1495,7 @@
|
|
|
1485
1495
|
},
|
|
1486
1496
|
{
|
|
1487
1497
|
"name": "@octanejs/usehooks-ts",
|
|
1488
|
-
"version": "0.0.
|
|
1498
|
+
"version": "0.0.44",
|
|
1489
1499
|
"category": "UI Utilities",
|
|
1490
1500
|
"upstream": {
|
|
1491
1501
|
"package": "usehooks-ts",
|
|
@@ -1503,7 +1513,7 @@
|
|
|
1503
1513
|
},
|
|
1504
1514
|
{
|
|
1505
1515
|
"name": "@octanejs/valtio",
|
|
1506
|
-
"version": "0.1.
|
|
1516
|
+
"version": "0.1.45",
|
|
1507
1517
|
"category": "State Management",
|
|
1508
1518
|
"upstream": { "package": "valtio", "version": "2.3.2" },
|
|
1509
1519
|
"surface": "The framework-agnostic `valtio/vanilla` core and `valtio/vanilla/utils` are re-exported verbatim; `useSnapshot` and the `useProxy` utility are ported to Octane.",
|
|
@@ -1515,7 +1525,7 @@
|
|
|
1515
1525
|
},
|
|
1516
1526
|
{
|
|
1517
1527
|
"name": "@octanejs/vaul",
|
|
1518
|
-
"version": "0.0.
|
|
1528
|
+
"version": "0.0.31",
|
|
1519
1529
|
"category": "UI Libraries",
|
|
1520
1530
|
"upstream": {
|
|
1521
1531
|
"package": "vaul",
|
|
@@ -1531,7 +1541,7 @@
|
|
|
1531
1541
|
},
|
|
1532
1542
|
{
|
|
1533
1543
|
"name": "@octanejs/visx",
|
|
1534
|
-
"version": "0.1.
|
|
1544
|
+
"version": "0.1.60",
|
|
1535
1545
|
"category": "Visualization",
|
|
1536
1546
|
"upstream": { "package": "@visx/visx", "version": "4.0.0 + master@485c035" },
|
|
1537
1547
|
"surface": "Complete current Visx 4.x web runtime surface: the exact 35-namespace aggregate, all 40 feature entry points, and the eight public a11y/react, a11y/server, axis/react, scale/react, shape/react, theme/react, tooltip/floating, and voronoi/react subpaths. Released-only packages chord, delaunay, react-spring, sankey, and stats remain directly importable exactly as upstream specifies.",
|
|
@@ -1547,7 +1557,7 @@
|
|
|
1547
1557
|
},
|
|
1548
1558
|
{
|
|
1549
1559
|
"name": "@octanejs/wagmi",
|
|
1550
|
-
"version": "0.0.
|
|
1560
|
+
"version": "0.0.45",
|
|
1551
1561
|
"category": "Web3",
|
|
1552
1562
|
"upstream": { "package": "wagmi", "version": "3.7.7" },
|
|
1553
1563
|
"surface": "WagmiProvider and createConfig over @wagmi/core 3.6.5, with config, connection, connect, disconnect, switch-connection, switch-chain, connectors, connections, chains, balance, contract read/simulate/write, transaction send/wait, and message-signing hooks.",
|
|
@@ -1563,7 +1573,7 @@
|
|
|
1563
1573
|
},
|
|
1564
1574
|
{
|
|
1565
1575
|
"name": "@octanejs/waypoint",
|
|
1566
|
-
"version": "0.0.
|
|
1576
|
+
"version": "0.0.17",
|
|
1567
1577
|
"category": "UI Utilities",
|
|
1568
1578
|
"upstream": {
|
|
1569
1579
|
"package": "react-waypoint",
|
|
@@ -1582,7 +1592,7 @@
|
|
|
1582
1592
|
},
|
|
1583
1593
|
{
|
|
1584
1594
|
"name": "@octanejs/window",
|
|
1585
|
-
"version": "0.0.
|
|
1595
|
+
"version": "0.0.29",
|
|
1586
1596
|
"category": "Tables",
|
|
1587
1597
|
"upstream": { "package": "react-window", "version": "2.3.0" },
|
|
1588
1598
|
"surface": "Provisional complete exact port of the react-window 2.3.0 root surface: List, Grid, getScrollbarSize, useDynamicRowHeight, four imperative-ref hooks, and all eight public types. The byte-locked pristine React suite and generated Octane adaptation each execute all 14 upstream files and all 117 cases; shared differential, SSR, hydration, and assertion-level public type lanes are required by the React parity manifest. Final Chromium/Firefox browser and executable CommonJS package-condition evidence remain pending shared infrastructure PRs #548 and #550.",
|
|
@@ -1595,7 +1605,7 @@
|
|
|
1595
1605
|
},
|
|
1596
1606
|
{
|
|
1597
1607
|
"name": "@octanejs/wouter",
|
|
1598
|
-
"version": "0.0.
|
|
1608
|
+
"version": "0.0.18",
|
|
1599
1609
|
"category": "Routing",
|
|
1600
1610
|
"upstream": {
|
|
1601
1611
|
"package": "wouter",
|
|
@@ -1615,7 +1625,7 @@
|
|
|
1615
1625
|
},
|
|
1616
1626
|
{
|
|
1617
1627
|
"name": "@octanejs/xstate",
|
|
1618
|
-
"version": "0.0.
|
|
1628
|
+
"version": "0.0.20",
|
|
1619
1629
|
"category": "State Management",
|
|
1620
1630
|
"upstream": { "package": "@xstate/react", "version": "6.1.0" },
|
|
1621
1631
|
"surface": "Complete @xstate/react 6.1.0 export surface — `useActor`, `useActorRef`, `useSelector`, `createActorContext`, `shallowEqual`, and the deprecated `useMachine` alias — ported onto Octane hooks. The framework-agnostic `xstate` actor core is reused unchanged as a peer dependency and is not re-exported, exactly as upstream. Upstream's two npm-only dependencies are replaced by in-repo ports: `use-sync-external-store/shim/with-selector` by a local port of React's selector shim, and `use-isomorphic-layout-effect` by a slot-forwarding equivalent.",
|
|
@@ -1630,7 +1640,7 @@
|
|
|
1630
1640
|
},
|
|
1631
1641
|
{
|
|
1632
1642
|
"name": "@octanejs/xstate-store",
|
|
1633
|
-
"version": "0.0.
|
|
1643
|
+
"version": "0.0.20",
|
|
1634
1644
|
"category": "State Management",
|
|
1635
1645
|
"upstream": { "package": "@xstate/store-react", "version": "2.0.0" },
|
|
1636
1646
|
"surface": "Complete @xstate/store-react 2.0.0 export surface — `useSelector`, `useStore`, `useAtom`, `useAtomState`, and `createStoreHook` — ported onto Octane hooks, plus the full `@xstate/store@4.2.3` core re-exported unchanged (`createStore`, `createAtom`, `fromStore`, `shallowEqual`, and every type), exactly as upstream re-exports it.",
|
|
@@ -1644,7 +1654,7 @@
|
|
|
1644
1654
|
},
|
|
1645
1655
|
{
|
|
1646
1656
|
"name": "@octanejs/xyflow",
|
|
1647
|
-
"version": "0.1.
|
|
1657
|
+
"version": "0.1.19",
|
|
1648
1658
|
"category": "Visualization",
|
|
1649
1659
|
"upstream": { "package": "@xyflow/react", "version": "12.11.2" },
|
|
1650
1660
|
"surface": "ReactFlow, ReactFlowProvider, Handle, hooks (useReactFlow, useNodes, useEdges, …), change helpers, and node/edge utilities from @xyflow/react@12.11.2.",
|
|
@@ -1656,7 +1666,7 @@
|
|
|
1656
1666
|
},
|
|
1657
1667
|
{
|
|
1658
1668
|
"name": "@octanejs/zag",
|
|
1659
|
-
"version": "0.0.
|
|
1669
|
+
"version": "0.0.29",
|
|
1660
1670
|
"category": "UI Libraries",
|
|
1661
1671
|
"upstream": { "package": "@zag-js/react", "version": "1.42.0" },
|
|
1662
1672
|
"surface": "Complete port of the @zag-js/react@1.42.0 public adapter surface: useMachine, normalizeProps, Portal, the @zag-js/core mergeProps re-export, and the framework useSyncExternalStore re-export. The framework-agnostic @zag-js/core, @zag-js/store, @zag-js/types, and @zag-js/utils packages are reused unchanged.",
|
|
@@ -1671,7 +1681,7 @@
|
|
|
1671
1681
|
},
|
|
1672
1682
|
{
|
|
1673
1683
|
"name": "@octanejs/zustand",
|
|
1674
|
-
"version": "0.1.
|
|
1684
|
+
"version": "0.1.63",
|
|
1675
1685
|
"category": "State Management",
|
|
1676
1686
|
"upstream": { "package": "zustand", "version": "5.0.15" },
|
|
1677
1687
|
"surface": "Complete 1:1 port: the framework-agnostic vanilla store is reused verbatim; `create`/`useStore`, `shallow`/`useShallow`, the traditional equality-fn variants, and all middleware (persist, devtools, subscribeWithSelector, combine, redux).",
|
|
@@ -1725,6 +1735,7 @@
|
|
|
1725
1735
|
"@tanstack/react-hotkeys": "@octanejs/tanstack-hotkeys",
|
|
1726
1736
|
"@tanstack/react-pacer": "@octanejs/tanstack-pacer",
|
|
1727
1737
|
"@tanstack/react-query": "@octanejs/tanstack-query",
|
|
1738
|
+
"@tanstack/react-query-devtools": "@octanejs/tanstack-query-devtools",
|
|
1728
1739
|
"@tanstack/react-router": "@octanejs/tanstack-router",
|
|
1729
1740
|
"@tanstack/react-router-ssr-query": "@octanejs/tanstack-router-ssr-query",
|
|
1730
1741
|
"@tanstack/react-store": "@octanejs/tanstack-store",
|
|
@@ -2096,32 +2107,32 @@
|
|
|
2096
2107
|
"51": {
|
|
2097
2108
|
"message": "Hydration mismatch: the server-rendered node did not match the client render; the mismatched subtree was rebuilt on the client.",
|
|
2098
2109
|
"runtime": ["client"],
|
|
2099
|
-
"status": "
|
|
2110
|
+
"status": "retired"
|
|
2100
2111
|
},
|
|
2101
2112
|
"52": {
|
|
2102
2113
|
"message": "Hydration mismatch: root adoption was abandoned after a server/client shape divergence; the root was rebuilt on the client.",
|
|
2103
2114
|
"runtime": ["client"],
|
|
2104
|
-
"status": "
|
|
2115
|
+
"status": "retired"
|
|
2105
2116
|
},
|
|
2106
2117
|
"53": {
|
|
2107
2118
|
"message": "Hydration mismatch: the server rendered more root content than the client; the stale remainder was discarded.",
|
|
2108
2119
|
"runtime": ["client"],
|
|
2109
|
-
"status": "
|
|
2120
|
+
"status": "retired"
|
|
2110
2121
|
},
|
|
2111
2122
|
"54": {
|
|
2112
2123
|
"message": "Hydration mismatch: the client rendered text where the server rendered none; the client text was built fresh.",
|
|
2113
2124
|
"runtime": ["client"],
|
|
2114
|
-
"status": "
|
|
2125
|
+
"status": "retired"
|
|
2115
2126
|
},
|
|
2116
2127
|
"55": {
|
|
2117
2128
|
"message": "Hydration mismatch: the server rendered a different child shape where the client renders a component; the stale range was discarded and the component was built on the client.",
|
|
2118
2129
|
"runtime": ["client"],
|
|
2119
|
-
"status": "
|
|
2130
|
+
"status": "retired"
|
|
2120
2131
|
},
|
|
2121
2132
|
"56": {
|
|
2122
2133
|
"message": "Hydration mismatch: the server rendered more list items than the client; the extra server items were discarded.",
|
|
2123
2134
|
"runtime": ["client"],
|
|
2124
|
-
"status": "
|
|
2135
|
+
"status": "retired"
|
|
2125
2136
|
},
|
|
2126
2137
|
"57": {
|
|
2127
2138
|
"message": "prerenderToNodeStream requires a Node.js runtime with process.getBuiltinModule; use prerender() in non-Node environments.",
|
|
@@ -2146,12 +2157,12 @@
|
|
|
2146
2157
|
"61": {
|
|
2147
2158
|
"message": "Hydration mismatch: the server-rendered text differed from the client; the text was updated to the client value.",
|
|
2148
2159
|
"runtime": ["client"],
|
|
2149
|
-
"status": "
|
|
2160
|
+
"status": "retired"
|
|
2150
2161
|
},
|
|
2151
2162
|
"62": {
|
|
2152
2163
|
"message": "Hydration mismatch: the server rendered extra children in a text element; the stale children were discarded.",
|
|
2153
2164
|
"runtime": ["client"],
|
|
2154
|
-
"status": "
|
|
2165
|
+
"status": "retired"
|
|
2155
2166
|
},
|
|
2156
2167
|
"63": {
|
|
2157
2168
|
"message": "Target container is not a DOM element. Pass an Element, Document, or DocumentFragment. If document.body is null after document hydration, update the existing document root or render a document shell containing <body>.",
|
|
@@ -3523,6 +3534,36 @@
|
|
|
3523
3534
|
"message": "Structural hydration leases do not support @try regions.",
|
|
3524
3535
|
"runtime": ["client"],
|
|
3525
3536
|
"status": "active"
|
|
3537
|
+
},
|
|
3538
|
+
"338": {
|
|
3539
|
+
"message": "Hydration mismatch: a server-rendered range had no closing marker, so the client rendered the boundary or root that contains it instead. Something changed the server HTML after rendering, for example an HTML minifier or proxy that strips comments.",
|
|
3540
|
+
"runtime": ["client"],
|
|
3541
|
+
"status": "active"
|
|
3542
|
+
},
|
|
3543
|
+
"339": {
|
|
3544
|
+
"message": "Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client.",
|
|
3545
|
+
"runtime": ["client"],
|
|
3546
|
+
"status": "active"
|
|
3547
|
+
},
|
|
3548
|
+
"340": {
|
|
3549
|
+
"message": "There was an error while hydrating, so the nearest Suspense boundary, Hydrate island, or the root rendered on the client instead.",
|
|
3550
|
+
"runtime": ["client"],
|
|
3551
|
+
"status": "active"
|
|
3552
|
+
},
|
|
3553
|
+
"341": {
|
|
3554
|
+
"message": "The server could not finish this Suspense boundary, because it suspended during a synchronous render such as renderToString, which cannot wait for data. Switched to client rendering.",
|
|
3555
|
+
"runtime": ["client"],
|
|
3556
|
+
"status": "active"
|
|
3557
|
+
},
|
|
3558
|
+
"342": {
|
|
3559
|
+
"message": "A descriptor carried a function form action, but no element factory installed form actions. This is a bug in the Octane compiler.",
|
|
3560
|
+
"runtime": ["client"],
|
|
3561
|
+
"status": "active"
|
|
3562
|
+
},
|
|
3563
|
+
"343": {
|
|
3564
|
+
"message": "A keyed list rollback record restored a different shape than it recorded. This is a bug in Octane.",
|
|
3565
|
+
"runtime": ["client"],
|
|
3566
|
+
"status": "active"
|
|
3526
3567
|
}
|
|
3527
3568
|
},
|
|
3528
3569
|
"strongDiagnostics": {
|
|
@@ -3547,8 +3588,8 @@
|
|
|
3547
3588
|
},
|
|
3548
3589
|
"OCTANE_STRONG_EFFECT_HIDDEN_DEPENDENCY": {
|
|
3549
3590
|
"severity": "error",
|
|
3550
|
-
"detects": "Synchronous effect setup
|
|
3551
|
-
"replacement": "
|
|
3591
|
+
"detects": "Synchronous effect setup reads a reassigned module `let` or `var`. It is not an inferred dependency, so the effect does not re-run when it changes, and every instance shares it. Calling a state getter and reading or writing a ref's `current` in an effect stay legal; neither is a dependency.",
|
|
3592
|
+
"replacement": "Keep the value in state, a prop, or context and read its snapshot, or move the non-reactive read into a `useEffectEvent` callback. Octane never double-invokes effects, so `didInit` guards are unnecessary.",
|
|
3552
3593
|
"url": "https://octanejs.dev/docs/strong-mode#octane-strong-effect-hidden-dependency"
|
|
3553
3594
|
},
|
|
3554
3595
|
"OCTANE_STRONG_EFFECT_RESOURCE_LEAK": {
|