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/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 redundantLabels = /* @__PURE__ */ new Set();
226
- var config = {
227
- debug: false
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 booted = false;
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 = { ...config, ...newConfig };
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) return;
245
- const entries = Array.from(history.entries());
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 = newRedundant;
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
- config,
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,
@@ -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 (calleeName === "useEffect" || calleeName === "useLayoutEffect" || calleeName === "useInsertionEffect") {
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 (calleeName === "useReducer") {
60
- if (args.length === 2 || args.length === 3) {
61
- args.push(t.stringLiteral(uniqueLabel));
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));
@@ -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 };
@@ -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 };
@@ -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,
@@ -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,qBAAAC;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;AAchB,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,IAAMF,iBAAsB;AAC5B,IAAMM,SAAc;AACpB,IAAMH,iBAAsB;AAC5B,IAAMI,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAMM,wBAA6B;AACnC,IAAMC,iBAAsB;AAC5B,IAAMX,oBAAyB;AAE/B,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","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition"]}
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"]}
@@ -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,
@@ -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;AAchB,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;AAE/B,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"]}
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"]}