react-state-basis 0.2.4 → 0.3.1
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/README.md +117 -168
- package/dist/chunk-GEHMQPV4.mjs +28 -0
- package/dist/chunk-GEHMQPV4.mjs.map +1 -0
- package/dist/client.d.mts +7 -0
- package/dist/client.d.ts +7 -0
- package/dist/client.js +47 -0
- package/dist/client.js.map +1 -0
- package/dist/client.mjs +11 -0
- package/dist/client.mjs.map +1 -0
- package/dist/index.d.mts +35 -9
- package/dist/index.d.ts +35 -9
- package/dist/index.js +106 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +83 -57
- package/dist/index.mjs.map +1 -1
- package/dist/plugin.js +13 -6
- package/dist/production.d.mts +3 -1
- package/dist/production.d.ts +3 -1
- package/dist/production.js +4 -0
- package/dist/production.js.map +1 -1
- package/dist/production.mjs +3 -0
- package/dist/production.mjs.map +1 -1
- package/dist/vite-plugin.d.mts +5 -0
- package/dist/vite-plugin.d.ts +5 -0
- package/dist/vite-plugin.js +52 -0
- package/dist/vite-plugin.js.map +1 -0
- package/dist/vite-plugin.mjs +7 -0
- package/dist/vite-plugin.mjs.map +1 -0
- package/package.json +11 -1
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
basis
|
|
3
|
+
} from "./chunk-GEHMQPV4.mjs";
|
|
4
|
+
|
|
1
5
|
// src/index.ts
|
|
2
6
|
import * as ReactNamespace from "react";
|
|
3
7
|
import * as ReactDOMNamespace from "react-dom";
|
|
@@ -222,27 +226,42 @@ var LOOP_WINDOW_MS = 500;
|
|
|
222
226
|
var ANALYSIS_INTERVAL = 5;
|
|
223
227
|
|
|
224
228
|
// src/engine.ts
|
|
225
|
-
var
|
|
226
|
-
var
|
|
227
|
-
|
|
229
|
+
var GLOBAL_KEY = "__BASIS_ENGINE_INSTANCE__";
|
|
230
|
+
var getGlobalInstance = () => {
|
|
231
|
+
const g = typeof window !== "undefined" ? window : global;
|
|
232
|
+
if (!g[GLOBAL_KEY]) {
|
|
233
|
+
g[GLOBAL_KEY] = {
|
|
234
|
+
config: { debug: false },
|
|
235
|
+
history: /* @__PURE__ */ new Map(),
|
|
236
|
+
currentTickBatch: /* @__PURE__ */ new Set(),
|
|
237
|
+
redundantLabels: /* @__PURE__ */ new Set(),
|
|
238
|
+
booted: false,
|
|
239
|
+
updateLog: [],
|
|
240
|
+
tick: 0,
|
|
241
|
+
isBatching: false,
|
|
242
|
+
currentEffectSource: null
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
return g[GLOBAL_KEY];
|
|
228
246
|
};
|
|
229
|
-
var
|
|
247
|
+
var instance = getGlobalInstance();
|
|
248
|
+
var config = instance.config;
|
|
249
|
+
var history = instance.history;
|
|
250
|
+
var currentTickBatch = instance.currentTickBatch;
|
|
251
|
+
var redundantLabels = instance.redundantLabels;
|
|
230
252
|
var configureBasis = (newConfig) => {
|
|
231
|
-
config
|
|
232
|
-
if (config.debug && !booted) {
|
|
253
|
+
Object.assign(instance.config, newConfig);
|
|
254
|
+
if (instance.config.debug && !instance.booted) {
|
|
233
255
|
displayBootLog(WINDOW_SIZE);
|
|
234
|
-
booted = true;
|
|
256
|
+
instance.booted = true;
|
|
235
257
|
}
|
|
236
258
|
};
|
|
237
|
-
var history = /* @__PURE__ */ new Map();
|
|
238
|
-
var currentTickBatch = /* @__PURE__ */ new Set();
|
|
239
|
-
var updateLog = [];
|
|
240
|
-
var currentEffectSource = null;
|
|
241
|
-
var tick = 0;
|
|
242
|
-
var isBatching = false;
|
|
243
259
|
var analyzeBasis = () => {
|
|
244
|
-
if (!config.debug)
|
|
245
|
-
|
|
260
|
+
if (!instance.config.debug) {
|
|
261
|
+
instance.redundantLabels.clear();
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const entries = Array.from(instance.history.entries());
|
|
246
265
|
if (entries.length < 2) return;
|
|
247
266
|
const newRedundant = /* @__PURE__ */ new Set();
|
|
248
267
|
entries.forEach(([labelA, vecA], i) => {
|
|
@@ -251,72 +270,74 @@ var analyzeBasis = () => {
|
|
|
251
270
|
if (sim > SIMILARITY_THRESHOLD) {
|
|
252
271
|
newRedundant.add(labelA);
|
|
253
272
|
newRedundant.add(labelB);
|
|
254
|
-
displayRedundancyAlert(labelA, labelB, sim, history.size);
|
|
273
|
+
displayRedundancyAlert(labelA, labelB, sim, instance.history.size);
|
|
255
274
|
}
|
|
256
275
|
});
|
|
257
276
|
});
|
|
258
|
-
redundantLabels
|
|
259
|
-
|
|
260
|
-
var printBasisHealthReport = (threshold = 0.5) => {
|
|
261
|
-
if (!config.debug) {
|
|
262
|
-
console.warn("[Basis] Cannot generate report. Debug mode is OFF.");
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
displayHealthReport(history, calculateCosineSimilarity, threshold);
|
|
266
|
-
};
|
|
267
|
-
var beginEffectTracking = (label) => {
|
|
268
|
-
currentEffectSource = label;
|
|
269
|
-
};
|
|
270
|
-
var endEffectTracking = () => {
|
|
271
|
-
currentEffectSource = null;
|
|
272
|
-
};
|
|
273
|
-
var registerVariable = (label) => {
|
|
274
|
-
if (!config.debug) return;
|
|
275
|
-
if (!history.has(label)) {
|
|
276
|
-
history.set(label, new Array(WINDOW_SIZE).fill(0));
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
|
-
var unregisterVariable = (label) => {
|
|
280
|
-
history.delete(label);
|
|
277
|
+
instance.redundantLabels.clear();
|
|
278
|
+
newRedundant.forEach((label) => instance.redundantLabels.add(label));
|
|
281
279
|
};
|
|
282
280
|
var recordUpdate = (label) => {
|
|
283
|
-
if (!config.debug) return true;
|
|
281
|
+
if (!instance.config.debug) return true;
|
|
284
282
|
const now = Date.now();
|
|
285
|
-
updateLog.push({ label, ts: now });
|
|
286
|
-
updateLog = updateLog.filter((e) => now - e.ts < LOOP_WINDOW_MS);
|
|
287
|
-
if (updateLog.filter((e) => e.label === label).length > LOOP_THRESHOLD) {
|
|
283
|
+
instance.updateLog.push({ label, ts: now });
|
|
284
|
+
instance.updateLog = instance.updateLog.filter((e) => now - e.ts < LOOP_WINDOW_MS);
|
|
285
|
+
if (instance.updateLog.filter((e) => e.label === label).length > LOOP_THRESHOLD) {
|
|
288
286
|
displayInfiniteLoop(label);
|
|
289
287
|
return false;
|
|
290
288
|
}
|
|
291
|
-
if (currentEffectSource && currentEffectSource !== label) {
|
|
292
|
-
displayCausalHint(label, currentEffectSource);
|
|
289
|
+
if (instance.currentEffectSource && instance.currentEffectSource !== label) {
|
|
290
|
+
displayCausalHint(label, instance.currentEffectSource);
|
|
293
291
|
}
|
|
294
|
-
currentTickBatch.add(label);
|
|
295
|
-
if (!isBatching) {
|
|
296
|
-
isBatching = true;
|
|
292
|
+
instance.currentTickBatch.add(label);
|
|
293
|
+
if (!instance.isBatching) {
|
|
294
|
+
instance.isBatching = true;
|
|
297
295
|
setTimeout(() => {
|
|
298
|
-
tick++;
|
|
299
|
-
history.forEach((vec, l) => {
|
|
296
|
+
instance.tick++;
|
|
297
|
+
instance.history.forEach((vec, l) => {
|
|
300
298
|
vec.shift();
|
|
301
|
-
vec.push(currentTickBatch.has(l) ? 1 : 0);
|
|
299
|
+
vec.push(instance.currentTickBatch.has(l) ? 1 : 0);
|
|
302
300
|
});
|
|
303
|
-
currentTickBatch.clear();
|
|
304
|
-
isBatching = false;
|
|
305
|
-
if (tick % ANALYSIS_INTERVAL === 0) {
|
|
301
|
+
instance.currentTickBatch.clear();
|
|
302
|
+
instance.isBatching = false;
|
|
303
|
+
if (instance.tick % ANALYSIS_INTERVAL === 0) {
|
|
306
304
|
analyzeBasis();
|
|
307
305
|
}
|
|
308
306
|
}, 20);
|
|
309
307
|
}
|
|
310
308
|
return true;
|
|
311
309
|
};
|
|
310
|
+
var beginEffectTracking = (label) => {
|
|
311
|
+
if (instance.config.debug) instance.currentEffectSource = label;
|
|
312
|
+
};
|
|
313
|
+
var endEffectTracking = () => {
|
|
314
|
+
instance.currentEffectSource = null;
|
|
315
|
+
};
|
|
316
|
+
var registerVariable = (label) => {
|
|
317
|
+
if (!instance.config.debug) return;
|
|
318
|
+
if (!instance.history.has(label)) {
|
|
319
|
+
instance.history.set(label, new Array(WINDOW_SIZE).fill(0));
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
var unregisterVariable = (label) => {
|
|
323
|
+
instance.history.delete(label);
|
|
324
|
+
};
|
|
325
|
+
var printBasisHealthReport = (threshold = 0.5) => {
|
|
326
|
+
if (!instance.config.debug) {
|
|
327
|
+
console.warn("[Basis] Cannot generate report. Debug mode is OFF.");
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
displayHealthReport(instance.history, calculateCosineSimilarity, threshold);
|
|
331
|
+
};
|
|
312
332
|
if (typeof window !== "undefined") {
|
|
313
333
|
window.printBasisReport = printBasisHealthReport;
|
|
314
334
|
}
|
|
315
335
|
var __testEngine__ = {
|
|
316
|
-
|
|
336
|
+
instance,
|
|
337
|
+
config: instance.config,
|
|
338
|
+
history: instance.history,
|
|
339
|
+
currentTickBatch: instance.currentTickBatch,
|
|
317
340
|
configureBasis,
|
|
318
|
-
history,
|
|
319
|
-
currentTickBatch,
|
|
320
341
|
registerVariable,
|
|
321
342
|
recordUpdate,
|
|
322
343
|
printBasisHealthReport,
|
|
@@ -649,6 +670,7 @@ var PureComponent2 = ReactNamespace.PureComponent;
|
|
|
649
670
|
var StrictMode2 = ReactNamespace.StrictMode;
|
|
650
671
|
var Suspense2 = ReactNamespace.Suspense;
|
|
651
672
|
var cloneElement2 = ReactNamespace.cloneElement;
|
|
673
|
+
var createElement2 = ReactNamespace.createElement;
|
|
652
674
|
var createRef2 = ReactNamespace.createRef;
|
|
653
675
|
var forwardRef2 = ReactNamespace.forwardRef;
|
|
654
676
|
var isValidElement2 = ReactNamespace.isValidElement;
|
|
@@ -659,6 +681,7 @@ var version2 = ReactNamespace.version;
|
|
|
659
681
|
var RD = ReactDOMNamespace;
|
|
660
682
|
var createPortal = RD.createPortal;
|
|
661
683
|
var flushSync = RD.flushSync;
|
|
684
|
+
var unstable_batchedUpdates = RD.unstable_batchedUpdates;
|
|
662
685
|
var index_default = ReactNamespace;
|
|
663
686
|
export {
|
|
664
687
|
BasisProvider,
|
|
@@ -672,11 +695,13 @@ export {
|
|
|
672
695
|
Suspense2 as Suspense,
|
|
673
696
|
__testEngine__,
|
|
674
697
|
__test__,
|
|
698
|
+
basis,
|
|
675
699
|
beginEffectTracking,
|
|
676
700
|
cloneElement2 as cloneElement,
|
|
677
701
|
config,
|
|
678
702
|
configureBasis,
|
|
679
703
|
createContext2 as createContext,
|
|
704
|
+
createElement2 as createElement,
|
|
680
705
|
createPortal,
|
|
681
706
|
createRef2 as createRef,
|
|
682
707
|
currentTickBatch,
|
|
@@ -693,6 +718,7 @@ export {
|
|
|
693
718
|
registerVariable,
|
|
694
719
|
startTransition2 as startTransition,
|
|
695
720
|
unregisterVariable,
|
|
721
|
+
unstable_batchedUpdates,
|
|
696
722
|
use,
|
|
697
723
|
useActionState2 as useActionState,
|
|
698
724
|
useBasisConfig,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use,\n useOptimistic,\n useActionState\n} from './hooks';\n\n// 1. BASIS EXPORTS\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\n// 2. WRAPPED & REACT 19 HOOKS EXPORTS\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\n// 4. REACT DOM PROXY\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\n\n// 5. NAMESPACE & DEFAULT\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\n// 6. TYPES (TypeScript-only)\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c 📐 BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%c📍 Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// 🛠️ Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c 🔬 Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ➔ ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c 💡 BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%c📍 Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ➔ Effect ➔ %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ➔ ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c 🛑 BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c 📊 BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ⟷ ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c✨ All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `❌ ${(sim * 100).toFixed(0)}%` : `✅`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","// src/engine.ts\n\nimport * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\nexport let redundantLabels = new Set<string>();\n\nexport interface BasisConfig {\n debug: boolean;\n}\n\nexport let config: BasisConfig = {\n debug: false,\n};\n\nlet booted = false;\n\nexport const configureBasis = (newConfig: Partial<BasisConfig>) => {\n config = { ...config, ...newConfig };\n\n if (config.debug && !booted) {\n UI.displayBootLog(WINDOW_SIZE);\n booted = true;\n }\n};\n\nexport const history = new Map<string, number[]>();\nexport const currentTickBatch = new Set<string>();\nlet updateLog: { label: string; ts: number }[] = [];\nlet currentEffectSource: string | null = null; \nlet tick = 0;\nlet isBatching = false;\n\nconst analyzeBasis = () => {\n if (!config.debug) return;\n\n const entries = Array.from(history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, history.size);\n }\n });\n });\n\n redundantLabels = newRedundant;\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(history, calculateCosineSimilarity, threshold);\n};\n\nexport const beginEffectTracking = (label: string) => { currentEffectSource = label; };\nexport const endEffectTracking = () => { currentEffectSource = null; };\n\nexport const registerVariable = (label: string) => {\n if (!config.debug) return; \n\n if (!history.has(label)) {\n history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n history.delete(label);\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!config.debug) return true;\n\n const now = Date.now();\n\n updateLog.push({ label, ts: now });\n updateLog = updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n if (updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n if (currentEffectSource && currentEffectSource !== label) {\n UI.displayCausalHint(label, currentEffectSource);\n }\n\n currentTickBatch.add(label);\n\n if (!isBatching) {\n isBatching = true;\n setTimeout(() => {\n tick++;\n history.forEach((vec, l) => {\n vec.shift();\n vec.push(currentTickBatch.has(l) ? 1 : 0);\n });\n\n currentTickBatch.clear();\n isBatching = false;\n \n if (tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n config,\n configureBasis,\n history,\n currentTickBatch,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : '📐 BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };"],"mappings":"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","names":["history","jsx","jsxs","isWeb","React","useState","useRef","useEffect","useLayoutEffect","startTransition","createContext","useContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use, useOptimistic, useActionState\n} from './hooks';\n\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect,\n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createElement = ReactNamespace.createElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\nexport const unstable_batchedUpdates = RD.unstable_batchedUpdates;\n\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\nexport { basis } from './vite-plugin';\n\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c 📐 BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%c📍 Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// 🛠️ Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c 🔬 Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ➔ ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c 💡 BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%c📍 Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ➔ Effect ➔ %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ➔ ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c 🛑 BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c 📊 BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ⟷ ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c✨ All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `❌ ${(sim * 100).toFixed(0)}%` : `✅`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","import * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\ninterface BasisEngineState {\n config: { debug: boolean };\n history: Map<string, number[]>;\n currentTickBatch: Set<string>;\n redundantLabels: Set<string>;\n booted: boolean;\n updateLog: { label: string; ts: number }[];\n tick: number;\n isBatching: boolean;\n currentEffectSource: string | null;\n}\n\nconst GLOBAL_KEY = '__BASIS_ENGINE_INSTANCE__';\n\nconst getGlobalInstance = (): BasisEngineState => {\n const g = (typeof window !== 'undefined' ? window : global) as any;\n if (!g[GLOBAL_KEY]) {\n g[GLOBAL_KEY] = {\n config: { debug: false },\n history: new Map<string, number[]>(),\n currentTickBatch: new Set<string>(),\n redundantLabels: new Set<string>(),\n booted: false,\n updateLog: [],\n tick: 0,\n isBatching: false,\n currentEffectSource: null\n };\n }\n return g[GLOBAL_KEY];\n};\n\nconst instance = getGlobalInstance();\n\nexport const config = instance.config;\nexport const history = instance.history;\nexport const currentTickBatch = instance.currentTickBatch;\nexport const redundantLabels = instance.redundantLabels;\n\nexport const configureBasis = (newConfig: Partial<{ debug: boolean }>) => {\n Object.assign(instance.config, newConfig);\n\n if (instance.config.debug && !instance.booted) {\n UI.displayBootLog(WINDOW_SIZE);\n instance.booted = true;\n }\n};\n\nconst analyzeBasis = () => {\n if (!instance.config.debug) {\n instance.redundantLabels.clear();\n return;\n }\n\n const entries = Array.from(instance.history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, instance.history.size);\n }\n });\n });\n\n instance.redundantLabels.clear();\n newRedundant.forEach(label => instance.redundantLabels.add(label));\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!instance.config.debug) return true;\n\n const now = Date.now();\n\n // CIRCUIT BREAKER\n instance.updateLog.push({ label, ts: now });\n instance.updateLog = instance.updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n \n if (instance.updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n // CAUSAL HINT\n if (instance.currentEffectSource && instance.currentEffectSource !== label) {\n UI.displayCausalHint(label, instance.currentEffectSource);\n }\n\n // BATCHING (20ms)\n instance.currentTickBatch.add(label);\n\n if (!instance.isBatching) {\n instance.isBatching = true;\n setTimeout(() => {\n instance.tick++;\n \n instance.history.forEach((vec, l) => {\n vec.shift();\n vec.push(instance.currentTickBatch.has(l) ? 1 : 0);\n });\n\n instance.currentTickBatch.clear();\n instance.isBatching = false;\n \n if (instance.tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\n// LIFECYCLE \nexport const beginEffectTracking = (label: string) => { \n if (instance.config.debug) instance.currentEffectSource = label; \n};\n\nexport const endEffectTracking = () => { \n instance.currentEffectSource = null; \n};\n\nexport const registerVariable = (label: string) => {\n if (!instance.config.debug) return; \n\n if (!instance.history.has(label)) {\n instance.history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n instance.history.delete(label);\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!instance.config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(instance.history, calculateCosineSimilarity, threshold);\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n instance,\n config: instance.config,\n history: instance.history,\n currentTickBatch: instance.currentTickBatch,\n configureBasis,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : '📐 BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };"],"mappings":"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","names":["history","jsx","jsxs","isWeb","React","useState","useRef","useEffect","useLayoutEffect","startTransition","createContext","useContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
package/dist/plugin.js
CHANGED
|
@@ -4,10 +4,18 @@
|
|
|
4
4
|
var path = require("path");
|
|
5
5
|
module.exports = function(babel) {
|
|
6
6
|
const { types: t } = babel;
|
|
7
|
+
const isIgnoredFile = (comments) => comments && comments.some((c) => /@?basis-ignore/.test(c.value));
|
|
7
8
|
return {
|
|
8
9
|
name: "babel-plugin-basis-transform",
|
|
9
10
|
visitor: {
|
|
11
|
+
Program(path2, state) {
|
|
12
|
+
if (isIgnoredFile(path2.container.comments)) {
|
|
13
|
+
state.basisDisabled = true;
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
},
|
|
10
17
|
CallExpression(p, state) {
|
|
18
|
+
if (state.basisDisabled) return;
|
|
11
19
|
let calleeName = "";
|
|
12
20
|
if (t.isIdentifier(p.node.callee)) {
|
|
13
21
|
calleeName = p.node.callee.name;
|
|
@@ -45,21 +53,20 @@ module.exports = function(babel) {
|
|
|
45
53
|
} else if (t.isIdentifier(id)) {
|
|
46
54
|
varName = id.name;
|
|
47
55
|
}
|
|
48
|
-
} else if (
|
|
56
|
+
} else if (["useEffect", "useLayoutEffect", "useInsertionEffect"].includes(calleeName)) {
|
|
49
57
|
varName = `effect_L${p.node.loc?.start.line || "unknown"}`;
|
|
50
58
|
}
|
|
51
59
|
const uniqueLabel = `${fileName} -> ${varName}`;
|
|
52
60
|
const args = p.node.arguments;
|
|
53
|
-
if (["useState", "createContext", "useRef", "useId", "useDebugValue", "useDeferredValue", "useTransition"].includes(calleeName)) {
|
|
61
|
+
if (["useState", "createContext", "useRef", "useId", "useDebugValue", "useDeferredValue", "useTransition", "useOptimistic"].includes(calleeName)) {
|
|
54
62
|
if (args.length === 0) args.push(t.identifier("undefined"));
|
|
55
63
|
if (args.length === 1) args.push(t.stringLiteral(uniqueLabel));
|
|
56
64
|
} else if (["useEffect", "useMemo", "useLayoutEffect", "useInsertionEffect", "useCallback"].includes(calleeName)) {
|
|
57
65
|
if (args.length === 1) args.push(t.identifier("undefined"));
|
|
58
66
|
if (args.length === 2) args.push(t.stringLiteral(uniqueLabel));
|
|
59
|
-
} else if (
|
|
60
|
-
if (args.length === 2
|
|
61
|
-
|
|
62
|
-
}
|
|
67
|
+
} else if (["useReducer", "useActionState"].includes(calleeName)) {
|
|
68
|
+
if (args.length === 2) args.push(t.identifier("undefined"));
|
|
69
|
+
if (args.length === 3) args.push(t.stringLiteral(uniqueLabel));
|
|
63
70
|
} else if (["useSyncExternalStore", "useImperativeHandle"].includes(calleeName)) {
|
|
64
71
|
if (args.length === 2) args.push(t.identifier("undefined"));
|
|
65
72
|
if (args.length === 3) args.push(t.stringLiteral(uniqueLabel));
|
package/dist/production.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EffectCallback, DependencyList, FC, ReactNode } from 'react';
|
|
3
3
|
export { Context, DependencyList, Dispatch, EffectCallback, FC, ReactNode, Reducer, SetStateAction } from 'react';
|
|
4
|
+
import * as ReactDOM from 'react-dom';
|
|
4
5
|
|
|
5
6
|
declare const useState: <T>(initialState: T | (() => T), _label?: string) => [T, React.Dispatch<React.SetStateAction<T>>];
|
|
6
7
|
declare const useEffect: (effect: EffectCallback, deps?: DependencyList, _label?: string) => void;
|
|
@@ -18,6 +19,7 @@ declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
|
18
19
|
declare const useSyncExternalStore: typeof React.useSyncExternalStore;
|
|
19
20
|
declare const useTransition: typeof React.useTransition;
|
|
20
21
|
declare const useDeferredValue: typeof React.useDeferredValue;
|
|
22
|
+
declare const unstable_batchedUpdates: typeof ReactDOM.unstable_batchedUpdates;
|
|
21
23
|
declare const registerVariable: () => void;
|
|
22
24
|
declare const unregisterVariable: () => void;
|
|
23
25
|
declare const recordUpdate: () => boolean;
|
|
@@ -29,4 +31,4 @@ declare const BasisProvider: FC<{
|
|
|
29
31
|
debug?: boolean;
|
|
30
32
|
}>;
|
|
31
33
|
|
|
32
|
-
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
|
34
|
+
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, unstable_batchedUpdates, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
package/dist/production.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EffectCallback, DependencyList, FC, ReactNode } from 'react';
|
|
3
3
|
export { Context, DependencyList, Dispatch, EffectCallback, FC, ReactNode, Reducer, SetStateAction } from 'react';
|
|
4
|
+
import * as ReactDOM from 'react-dom';
|
|
4
5
|
|
|
5
6
|
declare const useState: <T>(initialState: T | (() => T), _label?: string) => [T, React.Dispatch<React.SetStateAction<T>>];
|
|
6
7
|
declare const useEffect: (effect: EffectCallback, deps?: DependencyList, _label?: string) => void;
|
|
@@ -18,6 +19,7 @@ declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
|
18
19
|
declare const useSyncExternalStore: typeof React.useSyncExternalStore;
|
|
19
20
|
declare const useTransition: typeof React.useTransition;
|
|
20
21
|
declare const useDeferredValue: typeof React.useDeferredValue;
|
|
22
|
+
declare const unstable_batchedUpdates: typeof ReactDOM.unstable_batchedUpdates;
|
|
21
23
|
declare const registerVariable: () => void;
|
|
22
24
|
declare const unregisterVariable: () => void;
|
|
23
25
|
declare const recordUpdate: () => boolean;
|
|
@@ -29,4 +31,4 @@ declare const BasisProvider: FC<{
|
|
|
29
31
|
debug?: boolean;
|
|
30
32
|
}>;
|
|
31
33
|
|
|
32
|
-
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
|
34
|
+
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, unstable_batchedUpdates, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
package/dist/production.js
CHANGED
|
@@ -38,6 +38,7 @@ __export(production_exports, {
|
|
|
38
38
|
recordUpdate: () => recordUpdate,
|
|
39
39
|
registerVariable: () => registerVariable,
|
|
40
40
|
unregisterVariable: () => unregisterVariable,
|
|
41
|
+
unstable_batchedUpdates: () => unstable_batchedUpdates2,
|
|
41
42
|
useCallback: () => useCallback2,
|
|
42
43
|
useContext: () => useContext2,
|
|
43
44
|
useDebugValue: () => useDebugValue2,
|
|
@@ -56,6 +57,7 @@ __export(production_exports, {
|
|
|
56
57
|
});
|
|
57
58
|
module.exports = __toCommonJS(production_exports);
|
|
58
59
|
var React = __toESM(require("react"));
|
|
60
|
+
var ReactDOM = __toESM(require("react-dom"));
|
|
59
61
|
var useState2 = (initialState, _label) => React.useState(initialState);
|
|
60
62
|
var useEffect2 = (effect, deps, _label) => React.useEffect(effect, deps);
|
|
61
63
|
var useMemo2 = (factory, deps, _label) => React.useMemo(factory, deps);
|
|
@@ -72,6 +74,7 @@ var useInsertionEffect2 = React.useInsertionEffect;
|
|
|
72
74
|
var useSyncExternalStore2 = React.useSyncExternalStore;
|
|
73
75
|
var useTransition2 = React.useTransition;
|
|
74
76
|
var useDeferredValue2 = React.useDeferredValue;
|
|
77
|
+
var unstable_batchedUpdates2 = ReactDOM.unstable_batchedUpdates;
|
|
75
78
|
var registerVariable = () => {
|
|
76
79
|
};
|
|
77
80
|
var unregisterVariable = () => {
|
|
@@ -96,6 +99,7 @@ var BasisProvider = ({ children }) => {
|
|
|
96
99
|
recordUpdate,
|
|
97
100
|
registerVariable,
|
|
98
101
|
unregisterVariable,
|
|
102
|
+
unstable_batchedUpdates,
|
|
99
103
|
useCallback,
|
|
100
104
|
useContext,
|
|
101
105
|
useDebugValue,
|
package/dist/production.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\nimport * as ReactDOM from 'react-dom';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\nexport const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,2BAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,qBAAAC;AAAA;AAAA;AAEA,YAAuB;AAWvB,eAA0B;AAInB,IAAMF,YAAW,CAAI,cAA6B,WACjD,eAAS,YAAY;AAEtB,IAAMR,aAAY,CAAC,QAAwB,MAAuB,WACjE,gBAAU,QAAQ,IAAsB;AAEzC,IAAMK,WAAU,CAAI,SAAkB,MAAuB,WAC5D,cAAQ,SAAS,IAAsB;AAExC,IAAMT,eAAc,CAAoC,UAAa,MAAsB,WAC1F,kBAAY,UAAU,IAAI;AAE3B,IAAMU,cAAa,CAAC,SAAc,YAAiB,MAAY,WAC9D,iBAAW,SAAS,YAAY,IAAI;AAErC,IAAMC,UAAS,CAAI,cAAiB,WACnC,aAAO,YAAY;AAEpB,IAAMH,mBAAkB,CAAC,QAAwB,MAAuB,WACvE,sBAAgB,QAAQ,IAAsB;AAE/C,IAAMP,cAAmB;AACzB,IAAMH,iBAAsB;AAC5B,IAAMO,SAAc;AACpB,IAAMH,iBAAsB;AAC5B,IAAMI,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAMM,wBAA6B;AACnC,IAAMC,iBAAsB;AAC5B,IAAMX,oBAAyB;AAC/B,IAAMJ,2BAAmC;AAEzC,IAAM,mBAAmB,MAAM;AAAC;AAChC,IAAM,qBAAqB,MAAM;AAAC;AAClC,IAAM,eAAe,MAAM;AAC3B,IAAM,sBAAsB,MAAM;AAAC;AACnC,IAAM,oBAAoB,MAAM;AAAC;AACjC,IAAM,yBAAyB,MAAM;AAAC;AAEtC,IAAM,gBAA8D,CAAC,EAAE,SAAS,MAAM;AAC3F,SAAa,oBAAoB,gBAAU,MAAM,QAAQ;AAC3D;","names":["createContext","unstable_batchedUpdates","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition"]}
|
package/dist/production.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/production.ts
|
|
2
2
|
import * as React from "react";
|
|
3
|
+
import * as ReactDOM from "react-dom";
|
|
3
4
|
var useState2 = (initialState, _label) => React.useState(initialState);
|
|
4
5
|
var useEffect2 = (effect, deps, _label) => React.useEffect(effect, deps);
|
|
5
6
|
var useMemo2 = (factory, deps, _label) => React.useMemo(factory, deps);
|
|
@@ -16,6 +17,7 @@ var useInsertionEffect2 = React.useInsertionEffect;
|
|
|
16
17
|
var useSyncExternalStore2 = React.useSyncExternalStore;
|
|
17
18
|
var useTransition2 = React.useTransition;
|
|
18
19
|
var useDeferredValue2 = React.useDeferredValue;
|
|
20
|
+
var unstable_batchedUpdates2 = ReactDOM.unstable_batchedUpdates;
|
|
19
21
|
var registerVariable = () => {
|
|
20
22
|
};
|
|
21
23
|
var unregisterVariable = () => {
|
|
@@ -39,6 +41,7 @@ export {
|
|
|
39
41
|
recordUpdate,
|
|
40
42
|
registerVariable,
|
|
41
43
|
unregisterVariable,
|
|
44
|
+
unstable_batchedUpdates2 as unstable_batchedUpdates,
|
|
42
45
|
useCallback2 as useCallback,
|
|
43
46
|
useContext2 as useContext,
|
|
44
47
|
useDebugValue2 as useDebugValue,
|
package/dist/production.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";AAEA,YAAY,WAAW;
|
|
1
|
+
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\nimport * as ReactDOM from 'react-dom';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\nexport const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";AAEA,YAAY,WAAW;AAWvB,YAAY,cAAc;AAInB,IAAMA,YAAW,CAAI,cAA6B,WACjD,eAAS,YAAY;AAEtB,IAAMC,aAAY,CAAC,QAAwB,MAAuB,WACjE,gBAAU,QAAQ,IAAsB;AAEzC,IAAMC,WAAU,CAAI,SAAkB,MAAuB,WAC5D,cAAQ,SAAS,IAAsB;AAExC,IAAMC,eAAc,CAAoC,UAAa,MAAsB,WAC1F,kBAAY,UAAU,IAAI;AAE3B,IAAMC,cAAa,CAAC,SAAc,YAAiB,MAAY,WAC9D,iBAAW,SAAS,YAAY,IAAI;AAErC,IAAMC,UAAS,CAAI,cAAiB,WACnC,aAAO,YAAY;AAEpB,IAAMC,mBAAkB,CAAC,QAAwB,MAAuB,WACvE,sBAAgB,QAAQ,IAAsB;AAE/C,IAAMC,cAAmB;AACzB,IAAMC,iBAAsB;AAC5B,IAAMC,SAAc;AACpB,IAAMC,iBAAsB;AAC5B,IAAMC,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAMC,wBAA6B;AACnC,IAAMC,iBAAsB;AAC5B,IAAMC,oBAAyB;AAC/B,IAAMC,2BAAmC;AAEzC,IAAM,mBAAmB,MAAM;AAAC;AAChC,IAAM,qBAAqB,MAAM;AAAC;AAClC,IAAM,eAAe,MAAM;AAC3B,IAAM,sBAAsB,MAAM;AAAC;AACnC,IAAM,oBAAoB,MAAM;AAAC;AACjC,IAAM,yBAAyB,MAAM;AAAC;AAEtC,IAAM,gBAA8D,CAAC,EAAE,SAAS,MAAM;AAC3F,SAAa,oBAAoB,gBAAU,MAAM,QAAQ;AAC3D;","names":["useState","useEffect","useMemo","useCallback","useReducer","useRef","useLayoutEffect","useContext","createContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useSyncExternalStore","useTransition","useDeferredValue","unstable_batchedUpdates"]}
|