@cedarjs/vite 3.1.2-next.0 → 3.1.2-next.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/api/vite-plugin-cedar-vitest-api-preset.d.ts +1 -1
  2. package/dist/api/vite-plugin-cedar-vitest-api-preset.d.ts.map +1 -1
  3. package/dist/api/vite-plugin-cedar-vitest-api-preset.js +2 -2
  4. package/dist/bundled/react-server-dom-webpack.server.js +114 -62
  5. package/dist/cjs/api/vite-plugin-cedar-vitest-api-preset.js +2 -2
  6. package/dist/cjs/index.js +14 -10
  7. package/dist/cjs/lib/StatusError.js +1 -0
  8. package/dist/cjs/lib/getMergedConfig.js +1 -1
  9. package/dist/cjs/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js +106 -0
  10. package/dist/cjs/plugins/vite-plugin-rsc-routes-auto-loader.js +6 -6
  11. package/dist/cjs/plugins/vite-plugin-rsc-routes-imports.js +6 -6
  12. package/dist/cjs/plugins/vite-plugin-rsc-transform-client.js +1 -0
  13. package/dist/cjs/plugins/vite-plugin-rsc-transform-server.js +1 -0
  14. package/dist/cjs/rsc/rscBuildAnalyze.js +7 -1
  15. package/dist/cjs/rsc/rscBuildForServer.js +9 -2
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -5
  19. package/dist/lib/StatusError.js +1 -0
  20. package/dist/lib/getMergedConfig.d.ts.map +1 -1
  21. package/dist/lib/getMergedConfig.js +1 -1
  22. package/dist/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.d.ts +3 -0
  23. package/dist/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.d.ts.map +1 -0
  24. package/dist/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js +72 -0
  25. package/dist/plugins/vite-plugin-rsc-routes-auto-loader.js +3 -3
  26. package/dist/plugins/vite-plugin-rsc-routes-imports.js +3 -3
  27. package/dist/plugins/vite-plugin-rsc-transform-client.js +1 -0
  28. package/dist/plugins/vite-plugin-rsc-transform-server.js +1 -0
  29. package/dist/rsc/rscBuildAnalyze.d.ts.map +1 -1
  30. package/dist/rsc/rscBuildAnalyze.js +8 -2
  31. package/dist/rsc/rscBuildForServer.d.ts.map +1 -1
  32. package/dist/rsc/rscBuildForServer.js +10 -3
  33. package/package.json +16 -16
  34. package/dist/cjs/plugins/vite-plugin-cedarjs-directory-named-import.js +0 -82
  35. package/dist/plugins/vite-plugin-cedarjs-directory-named-import.d.ts +0 -3
  36. package/dist/plugins/vite-plugin-cedarjs-directory-named-import.d.ts.map +0 -1
  37. package/dist/plugins/vite-plugin-cedarjs-directory-named-import.js +0 -48
@@ -1,2 +1,2 @@
1
- export declare function cedarVitestPreset(): any[];
1
+ export declare function cedarVitestPreset(): (import("vite").Plugin<any> | import("vite").Plugin<any>[])[];
2
2
  //# sourceMappingURL=vite-plugin-cedar-vitest-api-preset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-cedar-vitest-api-preset.d.ts","sourceRoot":"","sources":["../../src/api/vite-plugin-cedar-vitest-api-preset.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,UAOhC"}
1
+ {"version":3,"file":"vite-plugin-cedar-vitest-api-preset.d.ts","sourceRoot":"","sources":["../../src/api/vite-plugin-cedar-vitest-api-preset.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,kEAOhC"}
@@ -3,12 +3,12 @@ import {
3
3
  cedarVitestApiConfigPlugin,
4
4
  trackDbImportsPlugin
5
5
  } from "@cedarjs/testing/api/vitest";
6
- import { cedarjsDirectoryNamedImportPlugin } from "../plugins/vite-plugin-cedarjs-directory-named-import.js";
6
+ import { cedarjsResolveCedarStyleImportsPlugin } from "../plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js";
7
7
  function cedarVitestPreset() {
8
8
  return [
9
9
  cedarVitestApiConfigPlugin(),
10
10
  autoImportsPlugin(),
11
- cedarjsDirectoryNamedImportPlugin(),
11
+ cedarjsResolveCedarStyleImportsPlugin(),
12
12
  trackDbImportsPlugin()
13
13
  ];
14
14
  }
@@ -910,24 +910,19 @@ var require_react_dom_production_min = __commonJS({
910
910
  if (null !== e ? 0 !== e.type : d || !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? false : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && true === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));
911
911
  }
912
912
  var ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
913
- var va = Symbol.for("react.element");
914
- var wa = Symbol.for("react.portal");
915
- var ya = Symbol.for("react.fragment");
916
- var za = Symbol.for("react.strict_mode");
917
- var Aa = Symbol.for("react.profiler");
918
- var Ba = Symbol.for("react.provider");
919
- var Ca = Symbol.for("react.context");
920
- var Da = Symbol.for("react.forward_ref");
921
- var Ea = Symbol.for("react.suspense");
922
- var Fa = Symbol.for("react.suspense_list");
923
- var Ga = Symbol.for("react.memo");
924
- var Ha = Symbol.for("react.lazy");
925
- Symbol.for("react.scope");
926
- Symbol.for("react.debug_trace_mode");
927
- var Ia = Symbol.for("react.offscreen");
928
- Symbol.for("react.legacy_hidden");
929
- Symbol.for("react.cache");
930
- Symbol.for("react.tracing_marker");
913
+ var va = /* @__PURE__ */ Symbol.for("react.element");
914
+ var wa = /* @__PURE__ */ Symbol.for("react.portal");
915
+ var ya = /* @__PURE__ */ Symbol.for("react.fragment");
916
+ var za = /* @__PURE__ */ Symbol.for("react.strict_mode");
917
+ var Aa = /* @__PURE__ */ Symbol.for("react.profiler");
918
+ var Ba = /* @__PURE__ */ Symbol.for("react.provider");
919
+ var Ca = /* @__PURE__ */ Symbol.for("react.context");
920
+ var Da = /* @__PURE__ */ Symbol.for("react.forward_ref");
921
+ var Ea = /* @__PURE__ */ Symbol.for("react.suspense");
922
+ var Fa = /* @__PURE__ */ Symbol.for("react.suspense_list");
923
+ var Ga = /* @__PURE__ */ Symbol.for("react.memo");
924
+ var Ha = /* @__PURE__ */ Symbol.for("react.lazy");
925
+ var Ia = /* @__PURE__ */ Symbol.for("react.offscreen");
931
926
  var Ja = Symbol.iterator;
932
927
  function Ka(a) {
933
928
  if (null === a || "object" !== typeof a) return null;
@@ -1280,13 +1275,13 @@ var require_react_dom_production_min = __commonJS({
1280
1275
  return null == a || "http://www.w3.org/1999/xhtml" === a ? kb(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
1281
1276
  }
1282
1277
  var mb;
1283
- var nb = function(a) {
1278
+ var nb = (function(a) {
1284
1279
  return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function(b, c, d, e) {
1285
1280
  MSApp.execUnsafeLocalFunction(function() {
1286
1281
  return a(b, c, d, e);
1287
1282
  });
1288
1283
  } : a;
1289
- }(function(a, b) {
1284
+ })(function(a, b) {
1290
1285
  if ("http://www.w3.org/2000/svg" !== a.namespaceURI || "innerHTML" in a) a.innerHTML = b;
1291
1286
  else {
1292
1287
  mb = mb || document.createElement("div");
@@ -7622,6 +7617,7 @@ var require_react_dom_development = __commonJS({
7622
7617
  }
7623
7618
  switch (typeof value) {
7624
7619
  case "function":
7620
+ // $FlowIssue symbol is perfectly valid here
7625
7621
  case "symbol":
7626
7622
  return true;
7627
7623
  case "boolean": {
@@ -8194,24 +8190,24 @@ var require_react_dom_development = __commonJS({
8194
8190
  }
8195
8191
  }
8196
8192
  }
8197
- var REACT_ELEMENT_TYPE = Symbol.for("react.element");
8198
- var REACT_PORTAL_TYPE = Symbol.for("react.portal");
8199
- var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
8200
- var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
8201
- var REACT_PROFILER_TYPE = Symbol.for("react.profiler");
8202
- var REACT_PROVIDER_TYPE = Symbol.for("react.provider");
8203
- var REACT_CONTEXT_TYPE = Symbol.for("react.context");
8204
- var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
8205
- var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense");
8206
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list");
8207
- var REACT_MEMO_TYPE = Symbol.for("react.memo");
8208
- var REACT_LAZY_TYPE = Symbol.for("react.lazy");
8209
- var REACT_SCOPE_TYPE = Symbol.for("react.scope");
8210
- var REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for("react.debug_trace_mode");
8211
- var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen");
8212
- var REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden");
8213
- var REACT_CACHE_TYPE = Symbol.for("react.cache");
8214
- var REACT_TRACING_MARKER_TYPE = Symbol.for("react.tracing_marker");
8193
+ var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element");
8194
+ var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
8195
+ var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
8196
+ var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
8197
+ var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
8198
+ var REACT_PROVIDER_TYPE = /* @__PURE__ */ Symbol.for("react.provider");
8199
+ var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
8200
+ var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
8201
+ var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
8202
+ var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list");
8203
+ var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
8204
+ var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
8205
+ var REACT_SCOPE_TYPE = /* @__PURE__ */ Symbol.for("react.scope");
8206
+ var REACT_DEBUG_TRACING_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.debug_trace_mode");
8207
+ var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
8208
+ var REACT_LEGACY_HIDDEN_TYPE = /* @__PURE__ */ Symbol.for("react.legacy_hidden");
8209
+ var REACT_CACHE_TYPE = /* @__PURE__ */ Symbol.for("react.cache");
8210
+ var REACT_TRACING_MARKER_TYPE = /* @__PURE__ */ Symbol.for("react.tracing_marker");
8215
8211
  var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
8216
8212
  var FAUX_ITERATOR_SYMBOL = "@@iterator";
8217
8213
  function getIteratorFn(maybeIterable) {
@@ -8636,6 +8632,7 @@ var require_react_dom_development = __commonJS({
8636
8632
  return "SuspenseList";
8637
8633
  case TracingMarkerComponent:
8638
8634
  return "TracingMarker";
8635
+ // The display name for this tags come from the user-provided type:
8639
8636
  case ClassComponent:
8640
8637
  case FunctionComponent:
8641
8638
  case IncompleteClassComponent:
@@ -9633,6 +9630,10 @@ var require_react_dom_development = __commonJS({
9633
9630
  return typeof props.is === "string";
9634
9631
  }
9635
9632
  switch (tagName) {
9633
+ // These are reserved SVG and MathML elements.
9634
+ // We don't mind this list too much because we expect it to never grow.
9635
+ // The alternative is to track the namespace in a few places which is convoluted.
9636
+ // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts
9636
9637
  case "annotation-xml":
9637
9638
  case "color-profile":
9638
9639
  case "font-face":
@@ -12462,6 +12463,7 @@ var require_react_dom_development = __commonJS({
12462
12463
  }
12463
12464
  function getEventPriority(domEventName) {
12464
12465
  switch (domEventName) {
12466
+ // Used by SimpleEventPlugin:
12465
12467
  case "cancel":
12466
12468
  case "click":
12467
12469
  case "close":
@@ -12497,14 +12499,20 @@ var require_react_dom_development = __commonJS({
12497
12499
  case "touchend":
12498
12500
  case "touchstart":
12499
12501
  case "volumechange":
12502
+ // Used by polyfills:
12503
+ // eslint-disable-next-line no-fallthrough
12500
12504
  case "change":
12501
12505
  case "selectionchange":
12502
12506
  case "textInput":
12503
12507
  case "compositionstart":
12504
12508
  case "compositionend":
12505
12509
  case "compositionupdate":
12510
+ // Only enableCreateEventHandleAPI:
12511
+ // eslint-disable-next-line no-fallthrough
12506
12512
  case "beforeblur":
12507
12513
  case "afterblur":
12514
+ // Not used by React but could be by user code:
12515
+ // eslint-disable-next-line no-fallthrough
12508
12516
  case "beforeinput":
12509
12517
  case "blur":
12510
12518
  case "fullscreenchange":
@@ -12529,6 +12537,8 @@ var require_react_dom_development = __commonJS({
12529
12537
  case "toggle":
12530
12538
  case "touchmove":
12531
12539
  case "wheel":
12540
+ // Not used by React but could be by user code:
12541
+ // eslint-disable-next-line no-fallthrough
12532
12542
  case "mouseenter":
12533
12543
  case "mouseleave":
12534
12544
  case "pointerenter":
@@ -13714,6 +13724,7 @@ var require_react_dom_development = __commonJS({
13714
13724
  function extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {
13715
13725
  var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;
13716
13726
  switch (domEventName) {
13727
+ // Track the input node that has focus.
13717
13728
  case "focusin":
13718
13729
  if (isTextInputElement(targetNode) || targetNode.contentEditable === "true") {
13719
13730
  activeElement$1 = targetNode;
@@ -13726,6 +13737,8 @@ var require_react_dom_development = __commonJS({
13726
13737
  activeElementInst$1 = null;
13727
13738
  lastSelection = null;
13728
13739
  break;
13740
+ // Don't fire the event while the user is dragging. This matches the
13741
+ // semantics of the native select event.
13729
13742
  case "mousedown":
13730
13743
  mouseDown = true;
13731
13744
  break;
@@ -13735,10 +13748,20 @@ var require_react_dom_development = __commonJS({
13735
13748
  mouseDown = false;
13736
13749
  constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
13737
13750
  break;
13751
+ // Chrome and IE fire non-standard event when selection is changed (and
13752
+ // sometimes when it hasn't). IE's event fires out of order with respect
13753
+ // to key and input events on deletion, so we discard it.
13754
+ //
13755
+ // Firefox doesn't support selectionchange, so check selection status
13756
+ // after each key entry. The selection changes after keydown and before
13757
+ // keyup, but we check on keydown as well in the case of holding down a
13758
+ // key, when multiple keydown events are fired but only one keyup is.
13759
+ // This is also our approach for IE handling, for the reason above.
13738
13760
  case "selectionchange":
13739
13761
  if (skipSelectionChangeEvent) {
13740
13762
  break;
13741
13763
  }
13764
+ // falls through
13742
13765
  case "keydown":
13743
13766
  case "keyup":
13744
13767
  constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
@@ -13821,6 +13844,7 @@ var require_react_dom_development = __commonJS({
13821
13844
  if (getEventCharCode(nativeEvent) === 0) {
13822
13845
  return;
13823
13846
  }
13847
+ /* falls through */
13824
13848
  case "keydown":
13825
13849
  case "keyup":
13826
13850
  SyntheticEventCtor = SyntheticKeyboardEvent;
@@ -13841,11 +13865,14 @@ var require_react_dom_development = __commonJS({
13841
13865
  if (nativeEvent.button === 2) {
13842
13866
  return;
13843
13867
  }
13868
+ /* falls through */
13844
13869
  case "auxclick":
13845
13870
  case "dblclick":
13846
13871
  case "mousedown":
13847
13872
  case "mousemove":
13848
13873
  case "mouseup":
13874
+ // TODO: Disabled elements should not respond to mouse events
13875
+ /* falls through */
13849
13876
  case "mouseout":
13850
13877
  case "mouseover":
13851
13878
  case "contextmenu":
@@ -14759,6 +14786,8 @@ var require_react_dom_development = __commonJS({
14759
14786
  for (var _i = 0; _i < attributes.length; _i++) {
14760
14787
  var name = attributes[_i].name.toLowerCase();
14761
14788
  switch (name) {
14789
+ // Controlled attributes are not validated
14790
+ // TODO: Only ignore them on controlled tags.
14762
14791
  case "value":
14763
14792
  break;
14764
14793
  case "checked":
@@ -15026,24 +15055,37 @@ var require_react_dom_development = __commonJS({
15026
15055
  };
15027
15056
  var isTagValidWithParent = function(tag, parentTag) {
15028
15057
  switch (parentTag) {
15058
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect
15029
15059
  case "select":
15030
15060
  return tag === "option" || tag === "optgroup" || tag === "#text";
15031
15061
  case "optgroup":
15032
15062
  return tag === "option" || tag === "#text";
15063
+ // Strictly speaking, seeing an <option> doesn't mean we're in a <select>
15064
+ // but
15033
15065
  case "option":
15034
15066
  return tag === "#text";
15067
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd
15068
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption
15069
+ // No special behavior since these rules fall back to "in body" mode for
15070
+ // all except special table nodes which cause bad parsing behavior anyway.
15071
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr
15035
15072
  case "tr":
15036
15073
  return tag === "th" || tag === "td" || tag === "style" || tag === "script" || tag === "template";
15074
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody
15037
15075
  case "tbody":
15038
15076
  case "thead":
15039
15077
  case "tfoot":
15040
15078
  return tag === "tr" || tag === "style" || tag === "script" || tag === "template";
15079
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup
15041
15080
  case "colgroup":
15042
15081
  return tag === "col" || tag === "template";
15082
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable
15043
15083
  case "table":
15044
15084
  return tag === "caption" || tag === "colgroup" || tag === "tbody" || tag === "tfoot" || tag === "thead" || tag === "style" || tag === "script" || tag === "template";
15085
+ // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead
15045
15086
  case "head":
15046
15087
  return tag === "base" || tag === "basefont" || tag === "bgsound" || tag === "link" || tag === "meta" || tag === "title" || tag === "noscript" || tag === "noframes" || tag === "style" || tag === "script" || tag === "template";
15088
+ // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element
15047
15089
  case "html":
15048
15090
  return tag === "head" || tag === "body" || tag === "frameset";
15049
15091
  case "frameset":
@@ -18002,6 +18044,7 @@ var require_react_dom_development = __commonJS({
18002
18044
  case CaptureUpdate: {
18003
18045
  workInProgress2.flags = workInProgress2.flags & ~ShouldCapture | DidCapture;
18004
18046
  }
18047
+ // Intentional fallthrough
18005
18048
  case UpdateState: {
18006
18049
  var _payload = update.payload;
18007
18050
  var partialState;
@@ -24319,6 +24362,7 @@ var require_react_dom_development = __commonJS({
24319
24362
  insertOrAppendPlacementNodeIntoContainer(finishedWork, _before, _parent);
24320
24363
  break;
24321
24364
  }
24365
+ // eslint-disable-next-line-no-fallthrough
24322
24366
  default:
24323
24367
  throw new Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.");
24324
24368
  }
@@ -24418,6 +24462,7 @@ var require_react_dom_development = __commonJS({
24418
24462
  safelyDetachRef(deletedFiber, nearestMountedAncestor);
24419
24463
  }
24420
24464
  }
24465
+ // eslint-disable-next-line-no-fallthrough
24421
24466
  case HostText: {
24422
24467
  {
24423
24468
  var prevHostParent = hostParent;
@@ -25679,6 +25724,9 @@ var require_react_dom_development = __commonJS({
25679
25724
  case RootFatalErrored: {
25680
25725
  throw new Error("Root did not complete. This is a bug in React.");
25681
25726
  }
25727
+ // Flow knows about invariant, so it complains if I add a break
25728
+ // statement, but eslint doesn't know about invariant, so it complains
25729
+ // if I do. eslint-disable-next-line no-fallthrough
25682
25730
  case RootErrored: {
25683
25731
  commitRoot(root2, workInProgressRootRecoverableErrors, workInProgressTransitions);
25684
25732
  break;
@@ -27324,10 +27372,15 @@ var require_react_dom_development = __commonJS({
27324
27372
  case REACT_OFFSCREEN_TYPE:
27325
27373
  return createFiberFromOffscreen(pendingProps, mode, lanes, key);
27326
27374
  case REACT_LEGACY_HIDDEN_TYPE:
27375
+ // eslint-disable-next-line no-fallthrough
27327
27376
  case REACT_SCOPE_TYPE:
27377
+ // eslint-disable-next-line no-fallthrough
27328
27378
  case REACT_CACHE_TYPE:
27379
+ // eslint-disable-next-line no-fallthrough
27329
27380
  case REACT_TRACING_MARKER_TYPE:
27381
+ // eslint-disable-next-line no-fallthrough
27330
27382
  case REACT_DEBUG_TRACING_MODE_TYPE:
27383
+ // eslint-disable-next-line no-fallthrough
27331
27384
  default: {
27332
27385
  if (typeof type === "object" && type !== null) {
27333
27386
  switch (type.$$typeof) {
@@ -28538,17 +28591,16 @@ var require_react_server_dom_webpack_server_node_production = __commonJS({
28538
28591
  var async_hooks = __import_async_hooks;
28539
28592
  var ReactDOM = import_react_dom.default;
28540
28593
  var React = import_react.default;
28541
- var REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element");
28542
- var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element");
28543
- var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
28544
- var REACT_CONTEXT_TYPE = Symbol.for("react.context");
28545
- var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
28546
- var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense");
28547
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list");
28548
- var REACT_MEMO_TYPE = Symbol.for("react.memo");
28549
- var REACT_LAZY_TYPE = Symbol.for("react.lazy");
28550
- var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
28551
- Symbol.for("react.postpone");
28594
+ var REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element");
28595
+ var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
28596
+ var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
28597
+ var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
28598
+ var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
28599
+ var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
28600
+ var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list");
28601
+ var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
28602
+ var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
28603
+ var REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel");
28552
28604
  var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
28553
28605
  function getIteratorFn(maybeIterable) {
28554
28606
  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
@@ -28598,8 +28650,8 @@ var require_react_server_dom_webpack_server_node_production = __commonJS({
28598
28650
  function byteLengthOfChunk(chunk) {
28599
28651
  return "string" === typeof chunk ? Buffer.byteLength(chunk, "utf8") : chunk.byteLength;
28600
28652
  }
28601
- var CLIENT_REFERENCE_TAG$1 = Symbol.for("react.client.reference");
28602
- var SERVER_REFERENCE_TAG = Symbol.for("react.server.reference");
28653
+ var CLIENT_REFERENCE_TAG$1 = /* @__PURE__ */ Symbol.for("react.client.reference");
28654
+ var SERVER_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.server.reference");
28603
28655
  function registerClientReferenceImpl(proxyImplementation, id, async) {
28604
28656
  return Object.defineProperties(proxyImplementation, {
28605
28657
  $$typeof: { value: CLIENT_REFERENCE_TAG$1 },
@@ -28924,7 +28976,7 @@ var require_react_server_dom_webpack_server_node_production = __commonJS({
28924
28976
  }
28925
28977
  }
28926
28978
  var requestStorage = new async_hooks.AsyncLocalStorage();
28927
- var TEMPORARY_REFERENCE_TAG = Symbol.for("react.temporary.reference");
28979
+ var TEMPORARY_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.temporary.reference");
28928
28980
  var proxyHandlers = {
28929
28981
  get: function(target, name) {
28930
28982
  switch (name) {
@@ -29166,7 +29218,7 @@ var require_react_server_dom_webpack_server_node_production = __commonJS({
29166
29218
  }
29167
29219
  return "";
29168
29220
  }
29169
- var CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference");
29221
+ var CLIENT_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.client.reference");
29170
29222
  function describeObjectForErrorMessage(objectOrArray, expandedName) {
29171
29223
  var objKind = objectName(objectOrArray);
29172
29224
  if ("Object" !== objKind && "Array" !== objKind) return objKind;
@@ -30222,7 +30274,7 @@ var require_react_server_dom_webpack_server_node_production = __commonJS({
30222
30274
  if (hasOwnProperty.call(moduleExports, metadata[2]))
30223
30275
  return moduleExports[metadata[2]];
30224
30276
  }
30225
- var RESPONSE_SYMBOL = Symbol();
30277
+ var RESPONSE_SYMBOL = /* @__PURE__ */ Symbol();
30226
30278
  function ReactPromise(status, value, reason) {
30227
30279
  this.status = status;
30228
30280
  this.value = value;
@@ -31438,7 +31490,7 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
31438
31490
  "use strict";
31439
31491
  var import_react_dom = __toESM(require_react_dom());
31440
31492
  var import_react = __toESM(require_react_shared_subset());
31441
- "production" !== process.env.NODE_ENV && function() {
31493
+ "production" !== process.env.NODE_ENV && (function() {
31442
31494
  function voidHandler() {
31443
31495
  }
31444
31496
  function getIteratorFn(maybeIterable) {
@@ -35529,9 +35581,9 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
35529
35581
  }
35530
35582
  var stream = __import_stream2, util = __import_util2;
35531
35583
  __import_crypto2;
35532
- var async_hooks = __import_async_hooks2, ReactDOM = import_react_dom.default, React = import_react.default, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
35533
- Symbol.for("react.postpone");
35534
- var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, ASYNC_ITERATOR = Symbol.asyncIterator, scheduleMicrotask = queueMicrotask, currentView = null, writtenBytes = 0, destinationHasCapacity = true, textEncoder = new util.TextEncoder(), CLIENT_REFERENCE_TAG$1 = Symbol.for("react.client.reference"), SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"), FunctionBind = Function.prototype.bind, ArraySlice = Array.prototype.slice, serverReferenceToString = {
35584
+ var async_hooks = __import_async_hooks2, ReactDOM = import_react_dom.default, React = import_react.default, REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element"), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"), REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel");
35585
+ /* @__PURE__ */ Symbol.for("react.postpone");
35586
+ var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, ASYNC_ITERATOR = Symbol.asyncIterator, scheduleMicrotask = queueMicrotask, currentView = null, writtenBytes = 0, destinationHasCapacity = true, textEncoder = new util.TextEncoder(), CLIENT_REFERENCE_TAG$1 = /* @__PURE__ */ Symbol.for("react.client.reference"), SERVER_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.server.reference"), FunctionBind = Function.prototype.bind, ArraySlice = Array.prototype.slice, serverReferenceToString = {
35535
35587
  value: function() {
35536
35588
  return "function () { [omitted code] }";
35537
35589
  },
@@ -35661,7 +35713,7 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
35661
35713
  }
35662
35714
  }
35663
35715
  };
35664
- var currentOwner = null, getAsyncId = async_hooks.AsyncResource.prototype.asyncId, pendingOperations = /* @__PURE__ */ new Map(), lastRanAwait = null, emptyStack = [], framesToSkip = 0, collectedStackTrace = null, identifierRegExp = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/, frameRegExp = /^ {3} at (?:(.+) \((?:(.+):(\d+):(\d+)|<anonymous>)\)|(?:async )?(.+):(\d+):(\d+)|<anonymous>)$/, stackTraceCache = /* @__PURE__ */ new WeakMap(), requestStorage = new async_hooks.AsyncLocalStorage(), componentStorage = new async_hooks.AsyncLocalStorage(), TEMPORARY_REFERENCE_TAG = Symbol.for("react.temporary.reference"), proxyHandlers = {
35716
+ var currentOwner = null, getAsyncId = async_hooks.AsyncResource.prototype.asyncId, pendingOperations = /* @__PURE__ */ new Map(), lastRanAwait = null, emptyStack = [], framesToSkip = 0, collectedStackTrace = null, identifierRegExp = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/, frameRegExp = /^ {3} at (?:(.+) \((?:(.+):(\d+):(\d+)|<anonymous>)\)|(?:async )?(.+):(\d+):(\d+)|<anonymous>)$/, stackTraceCache = /* @__PURE__ */ new WeakMap(), requestStorage = new async_hooks.AsyncLocalStorage(), componentStorage = new async_hooks.AsyncLocalStorage(), TEMPORARY_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.temporary.reference"), proxyHandlers = {
35665
35717
  get: function(target, name) {
35666
35718
  switch (name) {
35667
35719
  case "$$typeof":
@@ -35810,7 +35862,7 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
35810
35862
  react_stack_bottom_frame: function(iterator, progress, error) {
35811
35863
  iterator.next().then(progress, error);
35812
35864
  }
35813
- }, callIteratorInDEV = callIterator.react_stack_bottom_frame.bind(callIterator), isArrayImpl = Array.isArray, getPrototypeOf = Object.getPrototypeOf, jsxPropsParents = /* @__PURE__ */ new WeakMap(), jsxChildrenParents = /* @__PURE__ */ new WeakMap(), CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"), hasOwnProperty = Object.prototype.hasOwnProperty, doNotLimit = /* @__PURE__ */ new WeakSet();
35865
+ }, callIteratorInDEV = callIterator.react_stack_bottom_frame.bind(callIterator), isArrayImpl = Array.isArray, getPrototypeOf = Object.getPrototypeOf, jsxPropsParents = /* @__PURE__ */ new WeakMap(), jsxChildrenParents = /* @__PURE__ */ new WeakMap(), CLIENT_REFERENCE_TAG = /* @__PURE__ */ Symbol.for("react.client.reference"), hasOwnProperty = Object.prototype.hasOwnProperty, doNotLimit = /* @__PURE__ */ new WeakSet();
35814
35866
  (function() {
35815
35867
  async_hooks.createHook({
35816
35868
  init: function(asyncId, type, triggerAsyncId, resource) {
@@ -35938,7 +35990,7 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
35938
35990
  }).enable();
35939
35991
  })();
35940
35992
  "object" === typeof console && null !== console && (patchConsole(console, "assert"), patchConsole(console, "debug"), patchConsole(console, "dir"), patchConsole(console, "dirxml"), patchConsole(console, "error"), patchConsole(console, "group"), patchConsole(console, "groupCollapsed"), patchConsole(console, "groupEnd"), patchConsole(console, "info"), patchConsole(console, "log"), patchConsole(console, "table"), patchConsole(console, "trace"), patchConsole(console, "warn"));
35941
- var ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, ABORTING = 12, CLOSED = 14, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = false, serializedSize = 0, MAX_ROW_SIZE = 3200, modelRoot = false, CONSTRUCTOR_MARKER = Symbol(), debugModelRoot = null, debugNoOutline = null, emptyRoot = {}, decoderOptions = { stream: true }, chunkCache = /* @__PURE__ */ new Map(), RESPONSE_SYMBOL = Symbol();
35993
+ var ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, ABORTING = 12, CLOSED = 14, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = false, serializedSize = 0, MAX_ROW_SIZE = 3200, modelRoot = false, CONSTRUCTOR_MARKER = /* @__PURE__ */ Symbol(), debugModelRoot = null, debugNoOutline = null, emptyRoot = {}, decoderOptions = { stream: true }, chunkCache = /* @__PURE__ */ new Map(), RESPONSE_SYMBOL = /* @__PURE__ */ Symbol();
35942
35994
  ReactPromise.prototype = Object.create(Promise.prototype);
35943
35995
  ReactPromise.prototype.then = function(resolve, reject) {
35944
35996
  switch (this.status) {
@@ -36326,7 +36378,7 @@ var require_react_server_dom_webpack_server_node_development = __commonJS({
36326
36378
  { highWaterMark: 0 }
36327
36379
  );
36328
36380
  };
36329
- }();
36381
+ })();
36330
36382
  }
36331
36383
  });
36332
36384
 
@@ -22,12 +22,12 @@ __export(vite_plugin_cedar_vitest_api_preset_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(vite_plugin_cedar_vitest_api_preset_exports);
24
24
  var import_vitest = require("@cedarjs/testing/api/vitest");
25
- var import_vite_plugin_cedarjs_directory_named_import = require("../plugins/vite-plugin-cedarjs-directory-named-import.js");
25
+ var import_vite_plugin_cedarjs_resolve_cedar_style_imports = require("../plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js");
26
26
  function cedarVitestPreset() {
27
27
  return [
28
28
  (0, import_vitest.cedarVitestApiConfigPlugin)(),
29
29
  (0, import_vitest.autoImportsPlugin)(),
30
- (0, import_vite_plugin_cedarjs_directory_named_import.cedarjsDirectoryNamedImportPlugin)(),
30
+ (0, import_vite_plugin_cedarjs_resolve_cedar_style_imports.cedarjsResolveCedarStyleImportsPlugin)(),
31
31
  (0, import_vitest.trackDbImportsPlugin)()
32
32
  ];
33
33
  }
package/dist/cjs/index.js CHANGED
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var src_exports = {};
30
- __export(src_exports, {
29
+ var index_exports = {};
30
+ __export(index_exports, {
31
31
  cedar: () => cedar,
32
32
  cedarAutoImportsPlugin: () => import_vite_plugin_cedar_auto_import.cedarAutoImportsPlugin,
33
33
  cedarCellTransform: () => import_vite_plugin_cedar_cell2.cedarCellTransform,
@@ -39,11 +39,11 @@ __export(src_exports, {
39
39
  cedarRemoveFromBundle: () => import_vite_plugin_cedar_remove_from_bundle2.cedarRemoveFromBundle,
40
40
  cedarSwapApolloProvider: () => import_vite_plugin_swap_apollo_provider2.cedarSwapApolloProvider,
41
41
  cedarTransformJsAsJsx: () => import_vite_plugin_jsx_loader2.cedarTransformJsAsJsx,
42
- cedarjsDirectoryNamedImportPlugin: () => import_vite_plugin_cedarjs_directory_named_import.cedarjsDirectoryNamedImportPlugin,
43
42
  cedarjsJobPathInjectorPlugin: () => import_vite_plugin_cedarjs_job_path_injector.cedarjsJobPathInjectorPlugin,
44
- default: () => src_default
43
+ cedarjsResolveCedarStyleImportsPlugin: () => import_vite_plugin_cedarjs_resolve_cedar_style_imports2.cedarjsResolveCedarStyleImportsPlugin,
44
+ default: () => index_default
45
45
  });
46
- module.exports = __toCommonJS(src_exports);
46
+ module.exports = __toCommonJS(index_exports);
47
47
  var import_plugin_react = __toESM(require("@vitejs/plugin-react"), 1);
48
48
  var import_babel_config = require("@cedarjs/babel-config");
49
49
  var import_project_config = require("@cedarjs/project-config");
@@ -54,6 +54,7 @@ var import_vite_plugin_cedar_html_env = require("./plugins/vite-plugin-cedar-htm
54
54
  var import_vite_plugin_cedar_node_polyfills = require("./plugins/vite-plugin-cedar-node-polyfills.js");
55
55
  var import_vite_plugin_cedar_remove_from_bundle = require("./plugins/vite-plugin-cedar-remove-from-bundle.js");
56
56
  var import_vite_plugin_cedar_wait_for_api_server = require("./plugins/vite-plugin-cedar-wait-for-api-server.js");
57
+ var import_vite_plugin_cedarjs_resolve_cedar_style_imports = require("./plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js");
57
58
  var import_vite_plugin_jsx_loader = require("./plugins/vite-plugin-jsx-loader.js");
58
59
  var import_vite_plugin_merged_config = require("./plugins/vite-plugin-merged-config.js");
59
60
  var import_vite_plugin_swap_apollo_provider = require("./plugins/vite-plugin-swap-apollo-provider.js");
@@ -64,7 +65,7 @@ var import_vite_plugin_cedar_html_env2 = require("./plugins/vite-plugin-cedar-ht
64
65
  var import_vite_plugin_cedar_import_dir = require("./plugins/vite-plugin-cedar-import-dir.js");
65
66
  var import_vite_plugin_cedar_node_polyfills2 = require("./plugins/vite-plugin-cedar-node-polyfills.js");
66
67
  var import_vite_plugin_cedar_remove_from_bundle2 = require("./plugins/vite-plugin-cedar-remove-from-bundle.js");
67
- var import_vite_plugin_cedarjs_directory_named_import = require("./plugins/vite-plugin-cedarjs-directory-named-import.js");
68
+ var import_vite_plugin_cedarjs_resolve_cedar_style_imports2 = require("./plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js");
68
69
  var import_vite_plugin_cedarjs_job_path_injector = require("./plugins/vite-plugin-cedarjs-job-path-injector.js");
69
70
  var import_vite_plugin_jsx_loader2 = require("./plugins/vite-plugin-jsx-loader.js");
70
71
  var import_vite_plugin_merged_config2 = require("./plugins/vite-plugin-merged-config.js");
@@ -72,7 +73,9 @@ var import_vite_plugin_swap_apollo_provider2 = require("./plugins/vite-plugin-sw
72
73
  function cedar({ mode } = {}) {
73
74
  const cedarConfig = (0, import_project_config.getConfig)();
74
75
  const rscEnabled = cedarConfig.experimental?.rsc?.enabled;
75
- const webSideDefaultBabelConfig = (0, import_babel_config.getWebSideDefaultBabelConfig)();
76
+ const webSideDefaultBabelConfig = (0, import_babel_config.getWebSideDefaultBabelConfig)({
77
+ forVite: true
78
+ });
76
79
  const babelConfig = {
77
80
  ...webSideDefaultBabelConfig,
78
81
  // For RSC we don't want to include the routes auto-loader plugin as we
@@ -92,6 +95,7 @@ function cedar({ mode } = {}) {
92
95
  (0, import_vite_plugin_cedar_html_env.cedarHtmlEnvPlugin)(),
93
96
  (0, import_vite_plugin_cedar_entry_injection.cedarEntryInjectionPlugin)(),
94
97
  (0, import_vite_plugin_merged_config.cedarMergedConfig)(),
98
+ (0, import_vite_plugin_cedarjs_resolve_cedar_style_imports.cedarjsResolveCedarStyleImportsPlugin)(),
95
99
  (0, import_vite_plugin_swap_apollo_provider.cedarSwapApolloProvider)(),
96
100
  (0, import_vite_plugin_cedar_cell.cedarCellTransform)(),
97
101
  (0, import_vite_plugin_jsx_loader.cedarTransformJsAsJsx)(),
@@ -99,7 +103,7 @@ function cedar({ mode } = {}) {
99
103
  (0, import_plugin_react.default)({ babel: babelConfig })
100
104
  ];
101
105
  }
102
- var src_default = cedar;
106
+ var index_default = cedar;
103
107
  // Annotate the CommonJS export names for ESM import in node:
104
108
  0 && (module.exports = {
105
109
  cedar,
@@ -113,6 +117,6 @@ var src_default = cedar;
113
117
  cedarRemoveFromBundle,
114
118
  cedarSwapApolloProvider,
115
119
  cedarTransformJsAsJsx,
116
- cedarjsDirectoryNamedImportPlugin,
117
- cedarjsJobPathInjectorPlugin
120
+ cedarjsJobPathInjectorPlugin,
121
+ cedarjsResolveCedarStyleImportsPlugin
118
122
  });
@@ -27,6 +27,7 @@ class StatusError extends Error {
27
27
  super(message);
28
28
  this.statusCode = statusCode;
29
29
  }
30
+ statusCode;
30
31
  }
31
32
  const hasStatusCode = (x) => typeof x?.statusCode === "number";
32
33
  // Annotate the CommonJS export names for ESM import in node:
@@ -38,7 +38,7 @@ function getMergedConfig(cedarConfig, cedarPaths) {
38
38
  return (userConfig, env) => {
39
39
  let apiHost = process.env.REDWOOD_API_HOST;
40
40
  apiHost ??= cedarConfig.api.host;
41
- apiHost ??= process.env.NODE_ENV === "production" ? "0.0.0.0" : "[::]";
41
+ apiHost ??= process.env.NODE_ENV === "production" ? "0.0.0.0" : "127.0.0.1";
42
42
  const streamingSsrEnabled = cedarConfig.experimental.streamingSsr?.enabled;
43
43
  const rscEnabled = cedarConfig.experimental.rsc?.enabled;
44
44
  let apiPort;