hadars 1.0.1 → 1.0.3

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.
@@ -158,7 +158,6 @@ var FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
158
158
  var SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
159
159
 
160
160
  // src/slim-react/renderContext.ts
161
- var import_node_module = require("module");
162
161
  var MAP_KEY = "__slimReactContextMap";
163
162
  var _g = globalThis;
164
163
  if (!("__slimReactContextMap" in _g)) _g[MAP_KEY] = null;
@@ -293,31 +292,8 @@ function getTreeId() {
293
292
  const stripped = (id & ~(1 << 31 - Math.clz32(id))).toString(32);
294
293
  return stripped + overflow;
295
294
  }
296
- var _detectReact = () => {
297
- if (typeof __HADARS_REACT_MAJOR__ !== "undefined") {
298
- const major = parseInt(String(__HADARS_REACT_MAJOR__), 10);
299
- return {
300
- major,
301
- // Exact patch version is unknown from the define alone; use a
302
- // representative fallback. Most libraries only check the major.
303
- version: major < 19 ? "18.3.1" : "19.1.1"
304
- };
305
- }
306
- const parse = (ver) => ({ major: parseInt(ver.split(".")[0], 10), version: ver });
307
- try {
308
- return parse(require("react").version);
309
- } catch {
310
- }
311
- try {
312
- const req = (0, import_node_module.createRequire)(process.cwd() + "/__hadars__.js");
313
- return parse(req("react").version);
314
- } catch {
315
- }
316
- return { major: 19, version: "19.1.1" };
317
- };
318
- var _react = _detectReact();
319
- var REACT_MAJOR = _react.major;
320
- var REACT_VERSION = _react.version;
295
+ var REACT_MAJOR = typeof __HADARS_REACT_MAJOR__ !== "undefined" ? parseInt(String(__HADARS_REACT_MAJOR__), 10) : 19;
296
+ var REACT_VERSION = REACT_MAJOR < 19 ? "18.3.1" : "19.1.1";
321
297
  function makeId() {
322
298
  const st = s();
323
299
  const treeId = getTreeId();
@@ -405,9 +381,22 @@ function use(usable) {
405
381
 
406
382
  // src/slim-react/dispatcher.ts
407
383
  var ReactNS = __toESM(require("react"), 1);
408
- var _r19 = ReactNS["__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"];
409
- var _r18Raw = !_r19 ? ReactNS["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] : void 0;
410
- var _r18 = _r18Raw?.ReactCurrentDispatcher ? _r18Raw : void 0;
384
+ var _r19;
385
+ var _r18;
386
+ var _detected = false;
387
+ var _k19 = "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE";
388
+ var _k18 = "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED";
389
+ function _detect() {
390
+ if (_detected) return;
391
+ _detected = true;
392
+ const r19 = ReactNS[_k19];
393
+ if (r19) {
394
+ _r19 = r19;
395
+ return;
396
+ }
397
+ const raw = ReactNS[_k18];
398
+ if (raw?.ReactCurrentDispatcher) _r18 = raw;
399
+ }
411
400
  var slimDispatcher = {
412
401
  useId: makeId,
413
402
  readContext: (ctx) => getContextValue(ctx),
@@ -435,6 +424,7 @@ var slimDispatcher = {
435
424
  useHostTransitionStatus: () => false
436
425
  };
437
426
  function installDispatcher() {
427
+ _detect();
438
428
  if (_r19) {
439
429
  const prev = _r19.H;
440
430
  _r19.H = slimDispatcher;
@@ -448,6 +438,7 @@ function installDispatcher() {
448
438
  return null;
449
439
  }
450
440
  function restoreDispatcher(prev) {
441
+ _detect();
451
442
  if (_r19) _r19.H = prev;
452
443
  else if (_r18) _r18.ReactCurrentDispatcher.current = prev;
453
444
  }
@@ -1229,14 +1220,27 @@ var getReactResponse = async (req, opts) => {
1229
1220
  globalThis.__hadarsUnsuspend = unsuspend;
1230
1221
  globalThis.__hadarsContext = context;
1231
1222
  const element = createElement(App, props);
1232
- try {
1233
- await renderPreflight(element);
1234
- } finally {
1235
- globalThis.__hadarsUnsuspend = null;
1236
- globalThis.__hadarsContext = null;
1223
+ let bodyHtml = null;
1224
+ if (opts.singlePass) {
1225
+ globalThis.__hadarsUnsuspend = unsuspend;
1226
+ globalThis.__hadarsContext = context;
1227
+ try {
1228
+ bodyHtml = await renderToString(element);
1229
+ } finally {
1230
+ globalThis.__hadarsUnsuspend = null;
1231
+ globalThis.__hadarsContext = null;
1232
+ }
1233
+ } else {
1234
+ try {
1235
+ await renderPreflight(element);
1236
+ } finally {
1237
+ globalThis.__hadarsUnsuspend = null;
1238
+ globalThis.__hadarsContext = null;
1239
+ }
1237
1240
  }
1238
1241
  const status = context.head.status;
1239
1242
  const getAppBody = async () => {
1243
+ if (bodyHtml !== null) return bodyHtml;
1240
1244
  globalThis.__hadarsUnsuspend = unsuspend;
1241
1245
  globalThis.__hadarsContext = context;
1242
1246
  try {
@@ -1314,15 +1318,23 @@ async function transformStream(data, stream) {
1314
1318
  }
1315
1319
  return out;
1316
1320
  }
1321
+ var _zlibGzip = null;
1322
+ var _zlibGunzip = null;
1317
1323
  async function zlibGzip(d) {
1318
- const zlib = await import("zlib");
1319
- const { promisify } = await import("util");
1320
- return promisify(zlib.gzip)(d);
1324
+ if (!_zlibGzip) {
1325
+ const zlib = await import("zlib");
1326
+ const { promisify } = await import("util");
1327
+ _zlibGzip = promisify(zlib.gzip);
1328
+ }
1329
+ return _zlibGzip(d);
1321
1330
  }
1322
1331
  async function zlibGunzip(d) {
1323
- const zlib = await import("zlib");
1324
- const { promisify } = await import("util");
1325
- return promisify(zlib.gunzip)(d);
1332
+ if (!_zlibGunzip) {
1333
+ const zlib = await import("zlib");
1334
+ const { promisify } = await import("util");
1335
+ _zlibGunzip = promisify(zlib.gunzip);
1336
+ }
1337
+ return _zlibGunzip(d);
1326
1338
  }
1327
1339
  var gzipCompress = (d) => globalThis.CompressionStream ? transformStream(d, new globalThis.CompressionStream("gzip")) : zlibGzip(d);
1328
1340
  var gzipDecompress = (d) => globalThis.DecompressionStream ? transformStream(d, new globalThis.DecompressionStream("gzip")) : zlibGunzip(d);
@@ -6,10 +6,9 @@ import {
6
6
  getReactResponse,
7
7
  makePrecontentHtmlGetter,
8
8
  parseRequest
9
- } from "./chunk-U2JQR4HV.js";
10
- import "./chunk-HIKMDNRB.js";
9
+ } from "./chunk-PQ5N5GOY.js";
10
+ import "./chunk-QOTDCUE5.js";
11
11
  import "./chunk-OZUZS2PD.js";
12
- import "./chunk-3RG5ZIWI.js";
13
12
 
14
13
  // src/cloudflare.ts
15
14
  import "react";
package/dist/index.js CHANGED
@@ -1,5 +1,3 @@
1
- import "./chunk-3RG5ZIWI.js";
2
-
3
1
  // src/utils/Head.tsx
4
2
  import React from "react";
5
3
  function deriveKey(tag, props) {
package/dist/lambda.cjs CHANGED
@@ -198,7 +198,6 @@ var FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
198
198
  var SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
199
199
 
200
200
  // src/slim-react/renderContext.ts
201
- var import_node_module = require("module");
202
201
  var MAP_KEY = "__slimReactContextMap";
203
202
  var _g = globalThis;
204
203
  if (!("__slimReactContextMap" in _g)) _g[MAP_KEY] = null;
@@ -333,31 +332,8 @@ function getTreeId() {
333
332
  const stripped = (id & ~(1 << 31 - Math.clz32(id))).toString(32);
334
333
  return stripped + overflow;
335
334
  }
336
- var _detectReact = () => {
337
- if (typeof __HADARS_REACT_MAJOR__ !== "undefined") {
338
- const major = parseInt(String(__HADARS_REACT_MAJOR__), 10);
339
- return {
340
- major,
341
- // Exact patch version is unknown from the define alone; use a
342
- // representative fallback. Most libraries only check the major.
343
- version: major < 19 ? "18.3.1" : "19.1.1"
344
- };
345
- }
346
- const parse = (ver) => ({ major: parseInt(ver.split(".")[0], 10), version: ver });
347
- try {
348
- return parse(require("react").version);
349
- } catch {
350
- }
351
- try {
352
- const req = (0, import_node_module.createRequire)(process.cwd() + "/__hadars__.js");
353
- return parse(req("react").version);
354
- } catch {
355
- }
356
- return { major: 19, version: "19.1.1" };
357
- };
358
- var _react = _detectReact();
359
- var REACT_MAJOR = _react.major;
360
- var REACT_VERSION = _react.version;
335
+ var REACT_MAJOR = typeof __HADARS_REACT_MAJOR__ !== "undefined" ? parseInt(String(__HADARS_REACT_MAJOR__), 10) : 19;
336
+ var REACT_VERSION = REACT_MAJOR < 19 ? "18.3.1" : "19.1.1";
361
337
  function makeId() {
362
338
  const st = s();
363
339
  const treeId = getTreeId();
@@ -445,9 +421,22 @@ function use(usable) {
445
421
 
446
422
  // src/slim-react/dispatcher.ts
447
423
  var ReactNS = __toESM(require("react"), 1);
448
- var _r19 = ReactNS["__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"];
449
- var _r18Raw = !_r19 ? ReactNS["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] : void 0;
450
- var _r18 = _r18Raw?.ReactCurrentDispatcher ? _r18Raw : void 0;
424
+ var _r19;
425
+ var _r18;
426
+ var _detected = false;
427
+ var _k19 = "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE";
428
+ var _k18 = "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED";
429
+ function _detect() {
430
+ if (_detected) return;
431
+ _detected = true;
432
+ const r19 = ReactNS[_k19];
433
+ if (r19) {
434
+ _r19 = r19;
435
+ return;
436
+ }
437
+ const raw = ReactNS[_k18];
438
+ if (raw?.ReactCurrentDispatcher) _r18 = raw;
439
+ }
451
440
  var slimDispatcher = {
452
441
  useId: makeId,
453
442
  readContext: (ctx) => getContextValue(ctx),
@@ -475,6 +464,7 @@ var slimDispatcher = {
475
464
  useHostTransitionStatus: () => false
476
465
  };
477
466
  function installDispatcher() {
467
+ _detect();
478
468
  if (_r19) {
479
469
  const prev = _r19.H;
480
470
  _r19.H = slimDispatcher;
@@ -488,6 +478,7 @@ function installDispatcher() {
488
478
  return null;
489
479
  }
490
480
  function restoreDispatcher(prev) {
481
+ _detect();
491
482
  if (_r19) _r19.H = prev;
492
483
  else if (_r18) _r18.ReactCurrentDispatcher.current = prev;
493
484
  }
@@ -1269,14 +1260,27 @@ var getReactResponse = async (req, opts) => {
1269
1260
  globalThis.__hadarsUnsuspend = unsuspend;
1270
1261
  globalThis.__hadarsContext = context;
1271
1262
  const element = createElement(App, props);
1272
- try {
1273
- await renderPreflight(element);
1274
- } finally {
1275
- globalThis.__hadarsUnsuspend = null;
1276
- globalThis.__hadarsContext = null;
1263
+ let bodyHtml = null;
1264
+ if (opts.singlePass) {
1265
+ globalThis.__hadarsUnsuspend = unsuspend;
1266
+ globalThis.__hadarsContext = context;
1267
+ try {
1268
+ bodyHtml = await renderToString(element);
1269
+ } finally {
1270
+ globalThis.__hadarsUnsuspend = null;
1271
+ globalThis.__hadarsContext = null;
1272
+ }
1273
+ } else {
1274
+ try {
1275
+ await renderPreflight(element);
1276
+ } finally {
1277
+ globalThis.__hadarsUnsuspend = null;
1278
+ globalThis.__hadarsContext = null;
1279
+ }
1277
1280
  }
1278
1281
  const status = context.head.status;
1279
1282
  const getAppBody = async () => {
1283
+ if (bodyHtml !== null) return bodyHtml;
1280
1284
  globalThis.__hadarsUnsuspend = unsuspend;
1281
1285
  globalThis.__hadarsContext = context;
1282
1286
  try {
@@ -1354,15 +1358,23 @@ async function transformStream(data, stream) {
1354
1358
  }
1355
1359
  return out;
1356
1360
  }
1361
+ var _zlibGzip = null;
1362
+ var _zlibGunzip = null;
1357
1363
  async function zlibGzip(d) {
1358
- const zlib = await import("zlib");
1359
- const { promisify } = await import("util");
1360
- return promisify(zlib.gzip)(d);
1364
+ if (!_zlibGzip) {
1365
+ const zlib = await import("zlib");
1366
+ const { promisify } = await import("util");
1367
+ _zlibGzip = promisify(zlib.gzip);
1368
+ }
1369
+ return _zlibGzip(d);
1361
1370
  }
1362
1371
  async function zlibGunzip(d) {
1363
- const zlib = await import("zlib");
1364
- const { promisify } = await import("util");
1365
- return promisify(zlib.gunzip)(d);
1372
+ if (!_zlibGunzip) {
1373
+ const zlib = await import("zlib");
1374
+ const { promisify } = await import("util");
1375
+ _zlibGunzip = promisify(zlib.gunzip);
1376
+ }
1377
+ return _zlibGunzip(d);
1366
1378
  }
1367
1379
  var gzipCompress = (d) => globalThis.CompressionStream ? transformStream(d, new globalThis.CompressionStream("gzip")) : zlibGzip(d);
1368
1380
  var gzipDecompress = (d) => globalThis.DecompressionStream ? transformStream(d, new globalThis.DecompressionStream("gzip")) : zlibGunzip(d);
package/dist/lambda.js CHANGED
@@ -6,10 +6,9 @@ import {
6
6
  getReactResponse,
7
7
  makePrecontentHtmlGetter,
8
8
  parseRequest
9
- } from "./chunk-U2JQR4HV.js";
10
- import "./chunk-HIKMDNRB.js";
9
+ } from "./chunk-PQ5N5GOY.js";
10
+ import "./chunk-QOTDCUE5.js";
11
11
  import "./chunk-OZUZS2PD.js";
12
- import "./chunk-3RG5ZIWI.js";
13
12
 
14
13
  // src/lambda.ts
15
14
  import "react";
@@ -38,7 +38,7 @@ __export(slim_react_exports, {
38
38
  SLIM_ELEMENT: () => SLIM_ELEMENT,
39
39
  SUSPENSE_TYPE: () => SUSPENSE_TYPE,
40
40
  Suspense: () => Suspense,
41
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED2,
41
+ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
42
42
  cloneElement: () => cloneElement,
43
43
  createContext: () => createContext,
44
44
  createElement: () => createElement,
@@ -54,6 +54,7 @@ __export(slim_react_exports, {
54
54
  renderToReadableStream: () => renderToStream,
55
55
  renderToStream: () => renderToStream,
56
56
  renderToString: () => renderToString,
57
+ setReactVersion: () => setReactVersion,
57
58
  startTransition: () => startTransition,
58
59
  use: () => use,
59
60
  useActionState: () => useActionState,
@@ -85,7 +86,6 @@ var FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
85
86
  var SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
86
87
 
87
88
  // src/slim-react/renderContext.ts
88
- var import_node_module = require("module");
89
89
  var MAP_KEY = "__slimReactContextMap";
90
90
  var _g = globalThis;
91
91
  if (!("__slimReactContextMap" in _g)) _g[MAP_KEY] = null;
@@ -220,31 +220,12 @@ function getTreeId() {
220
220
  const stripped = (id & ~(1 << 31 - Math.clz32(id))).toString(32);
221
221
  return stripped + overflow;
222
222
  }
223
- var _detectReact = () => {
224
- if (typeof __HADARS_REACT_MAJOR__ !== "undefined") {
225
- const major = parseInt(String(__HADARS_REACT_MAJOR__), 10);
226
- return {
227
- major,
228
- // Exact patch version is unknown from the define alone; use a
229
- // representative fallback. Most libraries only check the major.
230
- version: major < 19 ? "18.3.1" : "19.1.1"
231
- };
232
- }
233
- const parse = (ver) => ({ major: parseInt(ver.split(".")[0], 10), version: ver });
234
- try {
235
- return parse(require("react").version);
236
- } catch {
237
- }
238
- try {
239
- const req = (0, import_node_module.createRequire)(process.cwd() + "/__hadars__.js");
240
- return parse(req("react").version);
241
- } catch {
242
- }
243
- return { major: 19, version: "19.1.1" };
244
- };
245
- var _react = _detectReact();
246
- var REACT_MAJOR = _react.major;
247
- var REACT_VERSION = _react.version;
223
+ var REACT_MAJOR = typeof __HADARS_REACT_MAJOR__ !== "undefined" ? parseInt(String(__HADARS_REACT_MAJOR__), 10) : 19;
224
+ var REACT_VERSION = REACT_MAJOR < 19 ? "18.3.1" : "19.1.1";
225
+ function setReactVersion(major, version2) {
226
+ REACT_MAJOR = major;
227
+ REACT_VERSION = version2 ?? (major < 19 ? "18.3.1" : "19.1.1");
228
+ }
248
229
  function makeId() {
249
230
  const st = s();
250
231
  const treeId = getTreeId();
@@ -373,9 +354,22 @@ function createContext(defaultValue) {
373
354
 
374
355
  // src/slim-react/dispatcher.ts
375
356
  var ReactNS = __toESM(require("react"), 1);
376
- var _r19 = ReactNS["__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"];
377
- var _r18Raw = !_r19 ? ReactNS["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] : void 0;
378
- var _r18 = _r18Raw?.ReactCurrentDispatcher ? _r18Raw : void 0;
357
+ var _r19;
358
+ var _r18;
359
+ var _detected = false;
360
+ var _k19 = "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE";
361
+ var _k18 = "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED";
362
+ function _detect() {
363
+ if (_detected) return;
364
+ _detected = true;
365
+ const r19 = ReactNS[_k19];
366
+ if (r19) {
367
+ _r19 = r19;
368
+ return;
369
+ }
370
+ const raw = ReactNS[_k18];
371
+ if (raw?.ReactCurrentDispatcher) _r18 = raw;
372
+ }
379
373
  var slimDispatcher = {
380
374
  useId: makeId,
381
375
  readContext: (ctx) => getContextValue(ctx),
@@ -403,6 +397,7 @@ var slimDispatcher = {
403
397
  useHostTransitionStatus: () => false
404
398
  };
405
399
  function installDispatcher() {
400
+ _detect();
406
401
  if (_r19) {
407
402
  const prev = _r19.H;
408
403
  _r19.H = slimDispatcher;
@@ -416,6 +411,7 @@ function installDispatcher() {
416
411
  return null;
417
412
  }
418
413
  function restoreDispatcher(prev) {
414
+ _detect();
419
415
  if (_r19) _r19.H = prev;
420
416
  else if (_r18) _r18.ReactCurrentDispatcher.current = prev;
421
417
  }
@@ -1271,7 +1267,7 @@ var Component = class {
1271
1267
  var PureComponent = class extends Component {
1272
1268
  };
1273
1269
  var version = REACT_VERSION;
1274
- var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED2 = {
1270
+ var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
1275
1271
  ReactCurrentDispatcher: { current: null },
1276
1272
  ReactCurrentBatchConfig: { transition: null },
1277
1273
  ReactCurrentOwner: { current: null }
@@ -1321,7 +1317,7 @@ var React = {
1321
1317
  // Version
1322
1318
  version,
1323
1319
  // React 18 internals
1324
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED2
1320
+ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
1325
1321
  };
1326
1322
  var slim_react_default = React;
1327
1323
  // Annotate the CommonJS export names for ESM import in node:
@@ -1349,6 +1345,7 @@ var slim_react_default = React;
1349
1345
  renderToReadableStream,
1350
1346
  renderToStream,
1351
1347
  renderToString,
1348
+ setReactVersion,
1352
1349
  startTransition,
1353
1350
  use,
1354
1351
  useActionState,
@@ -1,6 +1,8 @@
1
1
  import { S as SlimNode, a as SlimElement, c as createElement } from '../jsx-runtime-BOYrELJb.cjs';
2
2
  export { C as ComponentFunction, F as FRAGMENT_TYPE, b as Fragment, d as SLIM_ELEMENT, e as SUSPENSE_TYPE, j as jsx, j as jsxDEV, j as jsxs } from '../jsx-runtime-BOYrELJb.cjs';
3
3
 
4
+ declare function setReactVersion(major: number, version?: string): void;
5
+
4
6
  /**
5
7
  * SSR hook implementations.
6
8
  *
@@ -225,4 +227,4 @@ declare const React: {
225
227
  };
226
228
  };
227
229
 
228
- export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
230
+ export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, setReactVersion, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
@@ -1,6 +1,8 @@
1
1
  import { S as SlimNode, a as SlimElement, c as createElement } from '../jsx-runtime-BOYrELJb.js';
2
2
  export { C as ComponentFunction, F as FRAGMENT_TYPE, b as Fragment, d as SLIM_ELEMENT, e as SUSPENSE_TYPE, j as jsx, j as jsxDEV, j as jsxs } from '../jsx-runtime-BOYrELJb.js';
3
3
 
4
+ declare function setReactVersion(major: number, version?: string): void;
5
+
4
6
  /**
5
7
  * SSR hook implementations.
6
8
  *
@@ -225,4 +227,4 @@ declare const React: {
225
227
  };
226
228
  };
227
229
 
228
- export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
230
+ export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, setReactVersion, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
@@ -13,6 +13,7 @@ import {
13
13
  renderPreflight,
14
14
  renderToStream,
15
15
  renderToString,
16
+ setReactVersion,
16
17
  slim_react_default,
17
18
  startTransition,
18
19
  use,
@@ -35,7 +36,7 @@ import {
35
36
  useSyncExternalStore,
36
37
  useTransition,
37
38
  version
38
- } from "../chunk-HIKMDNRB.js";
39
+ } from "../chunk-QOTDCUE5.js";
39
40
  import {
40
41
  FRAGMENT_TYPE,
41
42
  Fragment,
@@ -44,7 +45,6 @@ import {
44
45
  createElement,
45
46
  jsx
46
47
  } from "../chunk-OZUZS2PD.js";
47
- import "../chunk-3RG5ZIWI.js";
48
48
  export {
49
49
  Children,
50
50
  Component,
@@ -70,6 +70,7 @@ export {
70
70
  renderToStream as renderToReadableStream,
71
71
  renderToStream,
72
72
  renderToString,
73
+ setReactVersion,
73
74
  startTransition,
74
75
  use,
75
76
  useActionState,
@@ -2,7 +2,6 @@ import {
2
2
  Fragment,
3
3
  jsx
4
4
  } from "../chunk-OZUZS2PD.js";
5
- import "../chunk-3RG5ZIWI.js";
6
5
  export {
7
6
  Fragment,
8
7
  jsx,
@@ -1,6 +1,3 @@
1
- import { createRequire } from "node:module";
2
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
-
4
1
  // src/ssr-render-worker.ts
5
2
  import { workerData, parentPort } from "node:worker_threads";
6
3
  import { pathToFileURL } from "node:url";
@@ -11,7 +8,6 @@ var REACT19_ELEMENT = Symbol.for("react.transitional.element");
11
8
  var FRAGMENT_TYPE = Symbol.for("react.fragment");
12
9
  var SUSPENSE_TYPE = Symbol.for("react.suspense");
13
10
  // src/slim-react/renderContext.ts
14
- import { createRequire as _nodeCreateRequire } from "node:module";
15
11
  var MAP_KEY = "__slimReactContextMap";
16
12
  var _g = globalThis;
17
13
  if (!("__slimReactContextMap" in _g))
@@ -148,27 +144,8 @@ function getTreeId() {
148
144
  const stripped = (id & ~(1 << 31 - Math.clz32(id))).toString(32);
149
145
  return stripped + overflow;
150
146
  }
151
- var _detectReact = () => {
152
- if (typeof __HADARS_REACT_MAJOR__ !== "undefined") {
153
- const major = parseInt(String(__HADARS_REACT_MAJOR__), 10);
154
- return {
155
- major,
156
- version: major < 19 ? "18.3.1" : "19.1.1"
157
- };
158
- }
159
- const parse = (ver) => ({ major: parseInt(ver.split(".")[0], 10), version: ver });
160
- try {
161
- return parse(__require("react").version);
162
- } catch {}
163
- try {
164
- const req = _nodeCreateRequire(process.cwd() + "/__hadars__.js");
165
- return parse(req("react").version);
166
- } catch {}
167
- return { major: 19, version: "19.1.1" };
168
- };
169
- var _react = _detectReact();
170
- var REACT_MAJOR = _react.major;
171
- var REACT_VERSION = _react.version;
147
+ var REACT_MAJOR = typeof __HADARS_REACT_MAJOR__ !== "undefined" ? parseInt(String(__HADARS_REACT_MAJOR__), 10) : 19;
148
+ var REACT_VERSION = REACT_MAJOR < 19 ? "18.3.1" : "19.1.1";
172
149
  function makeId() {
173
150
  const st = s();
174
151
  const treeId = getTreeId();
@@ -248,9 +225,24 @@ function use(usable) {
248
225
  }
249
226
  // src/slim-react/dispatcher.ts
250
227
  import * as ReactNS from "react";
251
- var _r19 = ReactNS.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
252
- var _r18Raw = !_r19 ? ReactNS.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED : undefined;
253
- var _r18 = _r18Raw?.ReactCurrentDispatcher ? _r18Raw : undefined;
228
+ var _r19;
229
+ var _r18;
230
+ var _detected = false;
231
+ var _k19 = "__CLIENT_INTERNALS_DO_NOT_USE" + "_OR_WARN_USERS_THEY_CANNOT_UPGRADE";
232
+ var _k18 = "__SECRET_INTERNALS_DO_NOT_USE" + "_OR_YOU_WILL_BE_FIRED";
233
+ function _detect() {
234
+ if (_detected)
235
+ return;
236
+ _detected = true;
237
+ const r19 = ReactNS[_k19];
238
+ if (r19) {
239
+ _r19 = r19;
240
+ return;
241
+ }
242
+ const raw = ReactNS[_k18];
243
+ if (raw?.ReactCurrentDispatcher)
244
+ _r18 = raw;
245
+ }
254
246
  var slimDispatcher = {
255
247
  useId: makeId,
256
248
  readContext: (ctx) => getContextValue(ctx),
@@ -276,6 +268,7 @@ var slimDispatcher = {
276
268
  useHostTransitionStatus: () => false
277
269
  };
278
270
  function installDispatcher() {
271
+ _detect();
279
272
  if (_r19) {
280
273
  const prev = _r19.H;
281
274
  _r19.H = slimDispatcher;
@@ -289,6 +282,7 @@ function installDispatcher() {
289
282
  return null;
290
283
  }
291
284
  function restoreDispatcher(prev) {
285
+ _detect();
292
286
  if (_r19)
293
287
  _r19.H = prev;
294
288
  else if (_r18)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hadars",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Minimal SSR framework for React — rspack, HMR, TypeScript, Bun/Node/Deno",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",
@@ -1,10 +0,0 @@
1
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
- }) : x)(function(x) {
4
- if (typeof require !== "undefined") return require.apply(this, arguments);
5
- throw Error('Dynamic require of "' + x + '" is not supported');
6
- });
7
-
8
- export {
9
- __require
10
- };