@valbuild/core 0.103.0 → 0.105.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.
Files changed (31) hide show
  1. package/dist/declarations/src/extractValModules.d.ts +54 -0
  2. package/dist/declarations/src/index.d.ts +3 -2
  3. package/dist/declarations/src/preview.d.ts +98 -0
  4. package/dist/declarations/src/render.d.ts +29 -91
  5. package/dist/declarations/src/schema/array.d.ts +22 -23
  6. package/dist/declarations/src/schema/boolean.d.ts +2 -2
  7. package/dist/declarations/src/schema/color.d.ts +2 -2
  8. package/dist/declarations/src/schema/date.d.ts +2 -2
  9. package/dist/declarations/src/schema/datetime.d.ts +2 -2
  10. package/dist/declarations/src/schema/file.d.ts +2 -2
  11. package/dist/declarations/src/schema/image.d.ts +2 -2
  12. package/dist/declarations/src/schema/index.d.ts +6 -6
  13. package/dist/declarations/src/schema/keyOf.d.ts +2 -2
  14. package/dist/declarations/src/schema/literal.d.ts +2 -2
  15. package/dist/declarations/src/schema/number.d.ts +2 -2
  16. package/dist/declarations/src/schema/object.d.ts +2 -2
  17. package/dist/declarations/src/schema/record.d.ts +19 -29
  18. package/dist/declarations/src/schema/richtext.d.ts +2 -2
  19. package/dist/declarations/src/schema/route.d.ts +2 -2
  20. package/dist/declarations/src/schema/string.d.ts +28 -17
  21. package/dist/declarations/src/schema/union.d.ts +2 -2
  22. package/dist/{index-267a8e9c.esm.js → index-005f51a5.esm.js} +277 -177
  23. package/dist/{index-3572060f.cjs.prod.js → index-4013c9f8.cjs.prod.js} +279 -177
  24. package/dist/{index-2e40f2ae.cjs.dev.js → index-baa3109b.cjs.dev.js} +279 -177
  25. package/dist/valbuild-core.cjs.dev.js +4 -2
  26. package/dist/valbuild-core.cjs.prod.js +4 -2
  27. package/dist/valbuild-core.esm.js +1 -1
  28. package/package.json +1 -1
  29. package/patch/dist/valbuild-core-patch.cjs.dev.js +1 -1
  30. package/patch/dist/valbuild-core-patch.cjs.prod.js +1 -1
  31. package/patch/dist/valbuild-core-patch.esm.js +2 -2
@@ -581,10 +581,10 @@ var StringSchema = /*#__PURE__*/function (_Schema) {
581
581
  }, {
582
582
  key: "executeSerialize",
583
583
  value: function executeSerialize() {
584
- var _this$options4, _this$options5, _this$options6, _this$customValidateF, _this$customValidateF2;
584
+ var _this$renderInput, _this$options4, _this$options5, _this$options6, _this$customValidateF, _this$customValidateF2;
585
585
  return {
586
586
  type: "string",
587
- render: this.renderInput ? true : undefined,
587
+ render: (_this$renderInput = this.renderInput) !== null && _this$renderInput !== void 0 ? _this$renderInput : undefined,
588
588
  options: {
589
589
  maxLength: (_this$options4 = this.options) === null || _this$options4 === void 0 ? void 0 : _this$options4.maxLength,
590
590
  minLength: (_this$options5 = this.options) === null || _this$options5 === void 0 ? void 0 : _this$options5.minLength,
@@ -603,36 +603,28 @@ var StringSchema = /*#__PURE__*/function (_Schema) {
603
603
  description: this.description
604
604
  };
605
605
  }
606
+
607
+ /**
608
+ * How this field is laid out in the editor: a textarea, or a code editor for
609
+ * the given language.
610
+ *
611
+ * Static configuration, not a callback — see `render.ts`. What a CONTAINER
612
+ * shows for its items is a `preview`, which is a different thing entirely.
613
+ */
606
614
  }, {
607
615
  key: "render",
608
616
  value: function render(input) {
609
617
  return new StringSchema(this.options, this.opt, this.isRaw, this.customValidateFunctions, input, this.isReadonly, this.isHidden, this.description);
610
618
  }
619
+
620
+ /**
621
+ * Nothing: a string has no items, so there is nothing to preview. Its layout
622
+ * is a `render`, which travels in the serialized schema instead of through
623
+ * this pipeline.
624
+ */
611
625
  }, {
612
- key: "executeRender",
613
- value: function executeRender(sourcePath, src,
614
- // Accepted and unused: a string's render is a static layout hint
615
- // (`{as:"textarea"}` / `{as:"code",language}`) with no closure behind it, so
616
- // there is nothing a scope could prune. Declared so the signature is uniform
617
- // across every schema rather than something a reader has to check.
618
- _scope) {
619
- if (this.renderInput) {
620
- if (this.renderInput.as === "code") {
621
- return _defineProperty({}, sourcePath, {
622
- status: "success",
623
- data: {
624
- layout: this.renderInput.as,
625
- language: this.renderInput.language
626
- }
627
- });
628
- }
629
- return _defineProperty({}, sourcePath, {
630
- status: "success",
631
- data: {
632
- layout: this.renderInput.as
633
- }
634
- });
635
- }
626
+ key: "executePreview",
627
+ value: function executePreview() {
636
628
  return {};
637
629
  }
638
630
  }]);
@@ -827,8 +819,8 @@ var ObjectSchema = /*#__PURE__*/function (_Schema) {
827
819
  };
828
820
  }
829
821
  }, {
830
- key: "executeRender",
831
- value: function executeRender(sourcePath, src, scope) {
822
+ key: "executePreview",
823
+ value: function executePreview(sourcePath, src, scope) {
832
824
  var res = {};
833
825
  if (src === null) {
834
826
  return res;
@@ -839,13 +831,13 @@ var ObjectSchema = /*#__PURE__*/function (_Schema) {
839
831
  continue;
840
832
  }
841
833
  var subPath = unsafeCreateSourcePath(sourcePath, _key3);
842
- // An object produces no render of its own, so it is pure recursion — and
834
+ // An object produces no preview of its own, so it is pure recursion — and
843
835
  // pruning it is the whole contribution: a field deep in one branch stops
844
- // paying for every sibling branch's renders.
836
+ // paying for every sibling branch's previews.
845
837
  if (scope !== undefined && !scope.wantsUnder(subPath)) {
846
838
  continue;
847
839
  }
848
- var itemResult = this.items[_key3]["executeRender"](subPath, itemSrc, scope);
840
+ var itemResult = this.items[_key3]["executePreview"](subPath, itemSrc, scope);
849
841
  for (var keyS in itemResult) {
850
842
  var _key4 = keyS;
851
843
  res[_key4] = itemResult[_key4];
@@ -872,7 +864,7 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
872
864
  var isReadonly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
873
865
  var isHidden = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
874
866
  var description = arguments.length > 5 ? arguments[5] : undefined;
875
- var renderInput = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
867
+ var previewInput = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
876
868
  _classCallCheck(this, ArraySchema);
877
869
  _this = _callSuper(this, ArraySchema);
878
870
  _this.item = item;
@@ -881,19 +873,19 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
881
873
  _this.isReadonly = isReadonly;
882
874
  _this.isHidden = isHidden;
883
875
  _this.description = description;
884
- _this.renderInput = renderInput;
876
+ _this.previewInput = previewInput;
885
877
  return _this;
886
878
  }
887
879
  _inherits(ArraySchema, _Schema);
888
880
  return _createClass(ArraySchema, [{
889
881
  key: "describe",
890
882
  value: function describe(description) {
891
- return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, this.isHidden, description !== null && description !== void 0 ? description : undefined, this.renderInput);
883
+ return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, this.isHidden, description !== null && description !== void 0 ? description : undefined, this.previewInput);
892
884
  }
893
885
  }, {
894
886
  key: "validate",
895
887
  value: function validate(validationFunction) {
896
- return new ArraySchema(this.item, this.opt, [].concat(_toConsumableArray(this.customValidateFunctions), [validationFunction]), this.isReadonly, this.isHidden, this.description, this.renderInput);
888
+ return new ArraySchema(this.item, this.opt, [].concat(_toConsumableArray(this.customValidateFunctions), [validationFunction]), this.isReadonly, this.isHidden, this.description, this.previewInput);
897
889
  }
898
890
  }, {
899
891
  key: "executeValidate",
@@ -960,17 +952,17 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
960
952
  }, {
961
953
  key: "nullable",
962
954
  value: function nullable() {
963
- return new ArraySchema(this.item, true, [], this.isReadonly, this.isHidden, this.description, this.renderInput);
955
+ return new ArraySchema(this.item, true, [], this.isReadonly, this.isHidden, this.description, this.previewInput);
964
956
  }
965
957
  }, {
966
958
  key: "readonly",
967
959
  value: function readonly() {
968
- return new ArraySchema(this.item, this.opt, this.customValidateFunctions, true, this.isHidden, this.description, this.renderInput);
960
+ return new ArraySchema(this.item, this.opt, this.customValidateFunctions, true, this.isHidden, this.description, this.previewInput);
969
961
  }
970
962
  }, {
971
963
  key: "hidden",
972
964
  value: function hidden() {
973
- return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, true, this.description, this.renderInput);
965
+ return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, true, this.description, this.previewInput);
974
966
  }
975
967
  }, {
976
968
  key: "executeCustomValidateAt",
@@ -987,7 +979,7 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
987
979
  type: "array",
988
980
  item: this.item["executeSerialize"](),
989
981
  opt: this.opt,
990
- render: this.renderInput ? true : undefined,
982
+ preview: this.previewInput ? true : undefined,
991
983
  customValidate: this.customValidateFunctions && ((_this$customValidateF = this.customValidateFunctions) === null || _this$customValidateF === void 0 ? void 0 : _this$customValidateF.length) > 0,
992
984
  readonly: this.isReadonly,
993
985
  hidden: this.isHidden,
@@ -995,8 +987,8 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
995
987
  };
996
988
  }
997
989
  }, {
998
- key: "executeRender",
999
- value: function executeRender(sourcePath, src, scope) {
990
+ key: "executePreview",
991
+ value: function executePreview(sourcePath, src, scope) {
1000
992
  var res = {};
1001
993
  if (src === null) {
1002
994
  return res;
@@ -1011,26 +1003,18 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
1011
1003
  if (scope !== undefined && !scope.wantsUnder(subPath)) {
1012
1004
  continue;
1013
1005
  }
1014
- var itemResult = this.item["executeRender"](subPath, itemSrc, scope);
1006
+ var itemResult = this.item["executePreview"](subPath, itemSrc, scope);
1015
1007
  for (var keyS in itemResult) {
1016
1008
  var _key = keyS;
1017
1009
  res[_key] = itemResult[_key];
1018
1010
  }
1019
1011
  }
1020
- if (this.renderInput) {
1021
- var _this$renderInput = this.renderInput,
1022
- select = _this$renderInput.select,
1023
- layout = _this$renderInput.as;
1024
- if (layout !== "list") {
1025
- res[sourcePath] = {
1026
- status: "error",
1027
- message: "Unknown layout type: " + layout
1028
- };
1029
- }
1012
+ if (this.previewInput) {
1013
+ var select = this.previewInput;
1030
1014
  // The whole list when the LIST is what is being shown; only the wanted
1031
- // rows when it is not. `select` is the user's closure and the real expense
1032
- // — a list view asks for the container and gets every row, a single field
1033
- // asks for its own path and costs one call.
1015
+ // rows when it is not. The user's closure is the real expense — a list
1016
+ // view asks for the container and gets every row, a single field asks for
1017
+ // its own path and costs one call.
1034
1018
  // Non-null once, as a value, rather than a boolean the compiler cannot
1035
1019
  // tie back to `scope`: no scope and a scope that wants this exact path
1036
1020
  // both mean the whole list, and anything else is a window.
@@ -1040,10 +1024,10 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
1040
1024
  if (window !== null && !window.wantsUnder(unsafeCreateSourcePath(sourcePath, index))) {
1041
1025
  continue;
1042
1026
  }
1043
- // Per ITEM, not per list, matching what `record` already does: `select`
1044
- // is user code, and one row whose data trips it up must not take out the
1045
- // whole list. Before scoping, one throwing row produced an error at the
1046
- // container and no items at all.
1027
+ // Per ITEM, not per list, matching what `record` already does: the
1028
+ // closure is user code, and one row whose data trips it up must not take
1029
+ // out the whole list. Before scoping, one throwing row produced an error
1030
+ // at the container and no items at all.
1047
1031
  try {
1048
1032
  // NB NB: display is actually defined by the user
1049
1033
  var _select = select({
@@ -1067,7 +1051,6 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
1067
1051
  res[sourcePath] = {
1068
1052
  status: "success",
1069
1053
  data: {
1070
- layout: "list",
1071
1054
  parent: "array",
1072
1055
  items: items
1073
1056
  }
@@ -1075,10 +1058,18 @@ var ArraySchema = /*#__PURE__*/function (_Schema) {
1075
1058
  }
1076
1059
  return res;
1077
1060
  }
1061
+
1062
+ /**
1063
+ * What the editor shows for each ITEM of this array: a title, and optionally a
1064
+ * subtitle and an image.
1065
+ *
1066
+ * `select` is your own code over the item's source, so it is run on demand for
1067
+ * the rows that are actually being looked at — see `PreviewScope`.
1068
+ */
1078
1069
  }, {
1079
- key: "render",
1080
- value: function render(input) {
1081
- return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, this.isHidden, this.description, input);
1070
+ key: "preview",
1071
+ value: function preview(select) {
1072
+ return new ArraySchema(this.item, this.opt, this.customValidateFunctions, this.isReadonly, this.isHidden, this.description, select);
1082
1073
  }
1083
1074
  }]);
1084
1075
  }(Schema);
@@ -1210,8 +1201,8 @@ var LiteralSchema = /*#__PURE__*/function (_Schema) {
1210
1201
  };
1211
1202
  }
1212
1203
  }, {
1213
- key: "executeRender",
1214
- value: function executeRender() {
1204
+ key: "executePreview",
1205
+ value: function executePreview() {
1215
1206
  return {};
1216
1207
  }
1217
1208
  }]);
@@ -1644,8 +1635,8 @@ var UnionSchema = /*#__PURE__*/function (_Schema) {
1644
1635
  };
1645
1636
  }
1646
1637
  }, {
1647
- key: "executeRender",
1648
- value: function executeRender(sourcePath, src, scope) {
1638
+ key: "executePreview",
1639
+ value: function executePreview(sourcePath, src, scope) {
1649
1640
  var res = {};
1650
1641
  if (src === null) {
1651
1642
  return res;
@@ -1667,7 +1658,7 @@ var UnionSchema = /*#__PURE__*/function (_Schema) {
1667
1658
  return false;
1668
1659
  });
1669
1660
  if (thisSchema) {
1670
- var itemResult = thisSchema["executeRender"](sourcePath, src, scope);
1661
+ var itemResult = thisSchema["executePreview"](sourcePath, src, scope);
1671
1662
  for (var keyS in itemResult) {
1672
1663
  var _key3 = keyS;
1673
1664
  res[_key3] = itemResult[_key3];
@@ -2130,8 +2121,8 @@ var ImageSchema = /*#__PURE__*/function (_Schema) {
2130
2121
  };
2131
2122
  }
2132
2123
  }, {
2133
- key: "executeRender",
2134
- value: function executeRender() {
2124
+ key: "executePreview",
2125
+ value: function executePreview() {
2135
2126
  return {};
2136
2127
  }
2137
2128
  }]);
@@ -2327,8 +2318,8 @@ var RouteSchema = /*#__PURE__*/function (_Schema) {
2327
2318
  };
2328
2319
  }
2329
2320
  }, {
2330
- key: "executeRender",
2331
- value: function executeRender() {
2321
+ key: "executePreview",
2322
+ value: function executePreview() {
2332
2323
  return {};
2333
2324
  }
2334
2325
  }]);
@@ -2886,8 +2877,8 @@ var RichTextSchema = /*#__PURE__*/function (_Schema) {
2886
2877
  };
2887
2878
  }
2888
2879
  }, {
2889
- key: "executeRender",
2890
- value: function executeRender() {
2880
+ key: "executePreview",
2881
+ value: function executePreview() {
2891
2882
  return {};
2892
2883
  }
2893
2884
  }]);
@@ -3220,7 +3211,7 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3220
3211
  var isHidden = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
3221
3212
  var description = arguments.length > 8 ? arguments[8] : undefined;
3222
3213
  var isJsonValues = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
3223
- var renderInput = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : null;
3214
+ var previewInput = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : null;
3224
3215
  _classCallCheck(this, RecordSchema);
3225
3216
  _this = _callSuper(this, RecordSchema);
3226
3217
  _this.item = item;
@@ -3233,19 +3224,19 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3233
3224
  _this.isHidden = isHidden;
3234
3225
  _this.description = description;
3235
3226
  _this.isJsonValues = isJsonValues;
3236
- _this.renderInput = renderInput;
3227
+ _this.previewInput = previewInput;
3237
3228
  return _this;
3238
3229
  }
3239
3230
  _inherits(RecordSchema, _Schema);
3240
3231
  return _createClass(RecordSchema, [{
3241
3232
  key: "describe",
3242
3233
  value: function describe(description) {
3243
- return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, description !== null && description !== void 0 ? description : undefined, this.isJsonValues, this.renderInput);
3234
+ return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, description !== null && description !== void 0 ? description : undefined, this.isJsonValues, this.previewInput);
3244
3235
  }
3245
3236
  }, {
3246
3237
  key: "validate",
3247
3238
  value: function validate(validationFunction) {
3248
- return new RecordSchema(this.item, this.opt, [].concat(_toConsumableArray(this.customValidateFunctions), [validationFunction]), this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.renderInput);
3239
+ return new RecordSchema(this.item, this.opt, [].concat(_toConsumableArray(this.customValidateFunctions), [validationFunction]), this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.previewInput);
3249
3240
  }
3250
3241
  }, {
3251
3242
  key: "executeValidate",
@@ -3604,29 +3595,29 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3604
3595
  }, {
3605
3596
  key: "nullable",
3606
3597
  value: function nullable() {
3607
- return new RecordSchema(this.item, true, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.renderInput);
3598
+ return new RecordSchema(this.item, true, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.previewInput);
3608
3599
  }
3609
3600
  }, {
3610
3601
  key: "readonly",
3611
3602
  value: function readonly() {
3612
- return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, true, this.isHidden, this.description, this.isJsonValues, this.renderInput);
3603
+ return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, true, this.isHidden, this.description, this.isJsonValues, this.previewInput);
3613
3604
  }
3614
3605
  }, {
3615
3606
  key: "hidden",
3616
3607
  value: function hidden() {
3617
- return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, true, this.description, this.isJsonValues, this.renderInput);
3608
+ return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, true, this.description, this.isJsonValues, this.previewInput);
3618
3609
  }
3619
3610
  }, {
3620
3611
  key: "router",
3621
3612
  value: function router(_router) {
3622
- return new RecordSchema(this.item, this.opt, this.customValidateFunctions, _router, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.renderInput);
3613
+ return new RecordSchema(this.item, this.opt, this.customValidateFunctions, _router, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.previewInput);
3623
3614
  }
3624
3615
  }, {
3625
3616
  key: "remote",
3626
3617
  value: function remote() {
3627
3618
  return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions ? _objectSpread2(_objectSpread2({}, this.mediaOptions), {}, {
3628
3619
  remote: true
3629
- }) : undefined, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.renderInput);
3620
+ }) : undefined, this.isReadonly, this.isHidden, this.description, this.isJsonValues, this.previewInput);
3630
3621
  }
3631
3622
 
3632
3623
  /**
@@ -3658,7 +3649,7 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3658
3649
  }
3659
3650
  return new RecordSchema(this.item, this.opt,
3660
3651
  // Empty by construction: the guard above rejects any that were registered.
3661
- [], this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, true, this.renderInput);
3652
+ [], this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, true, this.previewInput);
3662
3653
  }
3663
3654
  }, {
3664
3655
  key: "getRouterValidations",
@@ -3718,7 +3709,7 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3718
3709
  item: this.item["executeSerialize"](),
3719
3710
  key: (_this$keySchema = this.keySchema) === null || _this$keySchema === void 0 ? void 0 : _this$keySchema["executeSerialize"](),
3720
3711
  opt: this.opt,
3721
- render: this.renderInput ? true : undefined,
3712
+ preview: this.previewInput ? true : undefined,
3722
3713
  router: (_this$currentRouter = this.currentRouter) === null || _this$currentRouter === void 0 ? void 0 : _this$currentRouter.getRouterId(),
3723
3714
  customValidate: this.customValidateFunctions && ((_this$customValidateF = this.customValidateFunctions) === null || _this$customValidateF === void 0 ? void 0 : _this$customValidateF.length) > 0,
3724
3715
  jsonValues: this.isJsonValues ? true : undefined,
@@ -3750,8 +3741,8 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3750
3741
  return this.item["executeValidate"](path, content);
3751
3742
  }
3752
3743
  }, {
3753
- key: "executeRender",
3754
- value: function executeRender(sourcePath, src, scope) {
3744
+ key: "executePreview",
3745
+ value: function executePreview(sourcePath, src, scope) {
3755
3746
  var res = {};
3756
3747
  if (src === null) {
3757
3748
  return res;
@@ -3763,31 +3754,23 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3763
3754
  }
3764
3755
  if (isJson(itemSrc)) {
3765
3756
  // An un-loaded `.jsonValues()` entry: an opaque marker, not the item this
3766
- // schema describes. Skipping it is what makes rendering a partially
3757
+ // schema describes. Skipping it is what makes previewing a partially
3767
3758
  // loaded record work — the result comes out covering exactly the loaded
3768
- // keys, and the caller renders a placeholder for the rest.
3759
+ // keys, and the caller shows a placeholder for the rest.
3769
3760
  continue;
3770
3761
  }
3771
3762
  var subPath = unsafeCreateSourcePath(sourcePath, _key);
3772
3763
  if (scope !== undefined && !scope.wantsUnder(subPath)) {
3773
3764
  continue;
3774
3765
  }
3775
- var itemResult = this.item["executeRender"](subPath, itemSrc, scope);
3766
+ var itemResult = this.item["executePreview"](subPath, itemSrc, scope);
3776
3767
  for (var keyS in itemResult) {
3777
3768
  var _key2 = keyS;
3778
3769
  res[_key2] = itemResult[_key2];
3779
3770
  }
3780
3771
  }
3781
- if (this.renderInput) {
3782
- var _this$renderInput = this.renderInput,
3783
- prepare = _this$renderInput.select,
3784
- layout = _this$renderInput.layout;
3785
- if (layout !== "list") {
3786
- res[sourcePath] = {
3787
- status: "error",
3788
- message: "Unknown layout type: " + layout
3789
- };
3790
- }
3772
+ if (this.previewInput) {
3773
+ var prepare = this.previewInput;
3791
3774
  // See the same block in `array`: the whole record when the record is what
3792
3775
  // is being shown, only the wanted entries when it is not.
3793
3776
  var window = scope !== undefined && !scope.wants(sourcePath) ? scope : null;
@@ -3802,7 +3785,7 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3802
3785
  if (window !== null && !window.wantsUnder(unsafeCreateSourcePath(sourcePath, _key3))) {
3803
3786
  continue;
3804
3787
  }
3805
- // Per KEY, not per record: `select` is user code, and one entry whose
3788
+ // Per KEY, not per record: the closure is user code, and one entry whose
3806
3789
  // data trips it up must not take out the whole list.
3807
3790
  try {
3808
3791
  // NB NB: display is actually defined by the user
@@ -3828,7 +3811,6 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3828
3811
  res[sourcePath] = {
3829
3812
  status: "success",
3830
3813
  data: {
3831
- layout: "list",
3832
3814
  parent: "record",
3833
3815
  items: items
3834
3816
  }
@@ -3836,13 +3818,19 @@ var RecordSchema = /*#__PURE__*/function (_Schema) {
3836
3818
  }
3837
3819
  return res;
3838
3820
  }
3821
+
3822
+ /**
3823
+ * What the editor shows for each ENTRY of this record: a title, and optionally
3824
+ * a subtitle and an image.
3825
+ *
3826
+ * `select` is your own code over the entry's key and source, so it is run on
3827
+ * demand for the entries that are actually being looked at — see
3828
+ * `PreviewScope`.
3829
+ */
3839
3830
  }, {
3840
- key: "render",
3841
- value: function render(input) {
3842
- return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, {
3843
- layout: input.as,
3844
- select: input.select
3845
- });
3831
+ key: "preview",
3832
+ value: function preview(select) {
3833
+ return new RecordSchema(this.item, this.opt, this.customValidateFunctions, this.currentRouter, this.keySchema, this.mediaOptions, this.isReadonly, this.isHidden, this.description, this.isJsonValues, select);
3846
3834
  }
3847
3835
  }]);
3848
3836
  }(Schema);
@@ -4535,8 +4523,8 @@ var NumberSchema = /*#__PURE__*/function (_Schema) {
4535
4523
  };
4536
4524
  }
4537
4525
  }, {
4538
- key: "executeRender",
4539
- value: function executeRender() {
4526
+ key: "executePreview",
4527
+ value: function executePreview() {
4540
4528
  return {};
4541
4529
  }
4542
4530
  }]);
@@ -4655,8 +4643,8 @@ var BooleanSchema = /*#__PURE__*/function (_Schema) {
4655
4643
  };
4656
4644
  }
4657
4645
  }, {
4658
- key: "executeRender",
4659
- value: function executeRender() {
4646
+ key: "executePreview",
4647
+ value: function executePreview() {
4660
4648
  return {};
4661
4649
  }
4662
4650
  }]);
@@ -4879,8 +4867,8 @@ var KeyOfSchema = /*#__PURE__*/function (_Schema) {
4879
4867
  };
4880
4868
  }
4881
4869
  }, {
4882
- key: "executeRender",
4883
- value: function executeRender() {
4870
+ key: "executePreview",
4871
+ value: function executePreview() {
4884
4872
  return {};
4885
4873
  }
4886
4874
  }]);
@@ -5163,8 +5151,8 @@ var FileSchema = /*#__PURE__*/function (_Schema) {
5163
5151
  };
5164
5152
  }
5165
5153
  }, {
5166
- key: "executeRender",
5167
- value: function executeRender() {
5154
+ key: "executePreview",
5155
+ value: function executePreview() {
5168
5156
  return {};
5169
5157
  }
5170
5158
  }]);
@@ -5394,8 +5382,8 @@ var DateSchema = /*#__PURE__*/function (_Schema) {
5394
5382
  };
5395
5383
  }
5396
5384
  }, {
5397
- key: "executeRender",
5398
- value: function executeRender() {
5385
+ key: "executePreview",
5386
+ value: function executePreview() {
5399
5387
  return {};
5400
5388
  }
5401
5389
  }]);
@@ -5598,8 +5586,8 @@ var DateTimeSchema = /*#__PURE__*/function (_Schema) {
5598
5586
  };
5599
5587
  }
5600
5588
  }, {
5601
- key: "executeRender",
5602
- value: function executeRender() {
5589
+ key: "executePreview",
5590
+ value: function executePreview() {
5603
5591
  return {};
5604
5592
  }
5605
5593
  }]);
@@ -6239,8 +6227,8 @@ var ColorSchema = /*#__PURE__*/function (_Schema) {
6239
6227
  };
6240
6228
  }
6241
6229
  }, {
6242
- key: "executeRender",
6243
- value: function executeRender() {
6230
+ key: "executePreview",
6231
+ value: function executePreview() {
6244
6232
  return {};
6245
6233
  }
6246
6234
  }]);
@@ -6820,6 +6808,84 @@ function collectObjectRecursive(item, collector) {
6820
6808
  }
6821
6809
  }
6822
6810
 
6811
+ /**
6812
+ * One module's contribution to the SHAs, in fold order.
6813
+ *
6814
+ * The SHAs are a FOLD, not a hash of a set: each module is mixed into the
6815
+ * running value in `val.modules` order, so reproducing one means replaying the
6816
+ * same modules with the same inputs in the same order. That is what this type
6817
+ * is for — see {@link computeValModuleShas}.
6818
+ */
6819
+
6820
+ /**
6821
+ * The SHAs, from the entries they are a fold over.
6822
+ *
6823
+ * Split out from {@link extractValModules} because there are two ways to arrive
6824
+ * at a set of sources. Extraction evaluates the modules; the server also
6825
+ * PROMOTES the sources it has just written to disk, because re-evaluating gets
6826
+ * it nothing — a module `def` is the app's own `import()`, which resolves from
6827
+ * the module registry rather than from the file that was just rewritten. Both
6828
+ * have to produce SHAs the other side can compare, so the fold has one
6829
+ * implementation and both call it.
6830
+ *
6831
+ * Feeding back the entries a previous fold used, unchanged, reproduces its SHAs
6832
+ * exactly. That is the property the promotion relies on: only the modules whose
6833
+ * source actually moved change anything.
6834
+ */
6835
+ function computeValModuleShas(config, entries, moduleErrors) {
6836
+ var configSha = hash(JSON.stringify(config));
6837
+ var sourcesSha = "";
6838
+ var baseSha = configSha;
6839
+ // NOTE: schemaSha is deliberately NOT seeded with configSha. It is compared
6840
+ // across bundles (the server extracts from the Node bundle, the editor SPA
6841
+ // from the browser bundle) to detect that a new version has been deployed.
6842
+ // The config contains values that are not part of the schema and that differ
6843
+ // between those two bundles - most notably the documented
6844
+ // `gitCommit: process.env.VERCEL_GIT_COMMIT_SHA` / `gitBranch`, which are
6845
+ // server-only env vars and therefore `undefined` in the browser. Seeding with
6846
+ // them made the two sides disagree on every production load.
6847
+ var schemaSha = "";
6848
+ var _iterator = _createForOfIteratorHelper(entries),
6849
+ _step;
6850
+ try {
6851
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
6852
+ var entry = _step.value;
6853
+ var path = entry.path,
6854
+ source = entry.source,
6855
+ serializedSchema = entry.serializedSchema;
6856
+ sourcesSha = hash(sourcesSha + JSON.stringify({
6857
+ path: path,
6858
+ source: source
6859
+ }));
6860
+ baseSha = hash(baseSha + JSON.stringify({
6861
+ path: path,
6862
+ schema: serializedSchema,
6863
+ source: source,
6864
+ modulesErrors: moduleErrors.slice(0, entry.moduleErrorsAt)
6865
+ }));
6866
+ // The PATH is part of the schema set, not just the schema: renaming a
6867
+ // module while leaving its schema byte-identical still changes which paths
6868
+ // exist, and an open client keyed its schema cache by the old path. Hashing
6869
+ // the schema alone left this SHA unchanged, so with no commitSha to fall
6870
+ // back on the client never refetched /schema.
6871
+ schemaSha = hash(schemaSha + JSON.stringify({
6872
+ path: path,
6873
+ schema: serializedSchema
6874
+ }));
6875
+ }
6876
+ } catch (err) {
6877
+ _iterator.e(err);
6878
+ } finally {
6879
+ _iterator.f();
6880
+ }
6881
+ return {
6882
+ baseSha: baseSha,
6883
+ schemaSha: schemaSha,
6884
+ sourcesSha: sourcesSha,
6885
+ configSha: configSha
6886
+ };
6887
+ }
6888
+
6823
6889
  /**
6824
6890
  * Extracts schemas and sources from a ValModules registry and computes the
6825
6891
  * deterministic SHAs that the server and client both use to detect changes.
@@ -6832,7 +6898,7 @@ function extractValModules(_x) {
6832
6898
  }
6833
6899
  function _extractValModules() {
6834
6900
  _extractValModules = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(valModules) {
6835
- var moduleErrors, addModuleError, sources, schemas, serializedSchemas, configSha, sourcesSha, baseSha, schemaSha, moduleIdx, module, at, value, path, schema, source, serializedSchema, pathM, _t, _t2;
6901
+ var moduleErrors, addModuleError, sources, schemas, serializedSchemas, shaEntries, moduleIdx, module, at, value, path, schema, source, serializedSchema, pathM, _t, _t2;
6836
6902
  return _regenerator().w(function (_context) {
6837
6903
  while (1) switch (_context.p = _context.n) {
6838
6904
  case 0:
@@ -6847,17 +6913,15 @@ function _extractValModules() {
6847
6913
  sources = {};
6848
6914
  schemas = {};
6849
6915
  serializedSchemas = {};
6850
- configSha = hash(JSON.stringify(valModules.config));
6851
- sourcesSha = "";
6852
- baseSha = configSha; // NOTE: schemaSha is deliberately NOT seeded with configSha. It is compared
6853
- // across bundles (the server extracts from the Node bundle, the editor SPA
6854
- // from the browser bundle) to detect that a new version has been deployed.
6855
- // The config contains values that are not part of the schema and that differ
6856
- // between those two bundles - most notably the documented
6857
- // `gitCommit: process.env.VERCEL_GIT_COMMIT_SHA` / `gitBranch`, which are
6858
- // server-only env vars and therefore `undefined` in the browser. Seeding with
6859
- // them made the two sides disagree on every production load.
6860
- schemaSha = "";
6916
+ /**
6917
+ * What the fold below runs over, collected here rather than hashed inline.
6918
+ *
6919
+ * The hashing itself moved to `computeValModuleShas`, so the server can
6920
+ * recompute these SHAs for sources it did not get by evaluating the modules.
6921
+ * Collected in loop order, which is `val.modules` order, which is the order
6922
+ * the fold is defined by.
6923
+ */
6924
+ shaEntries = [];
6861
6925
  moduleIdx = 0;
6862
6926
  case 1:
6863
6927
  if (!(moduleIdx < valModules.modules.length)) {
@@ -6960,40 +7024,27 @@ function _extractValModules() {
6960
7024
  sources[pathM] = source;
6961
7025
  schemas[pathM] = schema;
6962
7026
  serializedSchemas[pathM] = serializedSchema;
6963
- sourcesSha = hash(sourcesSha + JSON.stringify({
6964
- path: path,
6965
- source: source
6966
- }));
6967
- baseSha = hash(baseSha + JSON.stringify({
6968
- path: path,
6969
- schema: serializedSchema,
7027
+ shaEntries.push({
7028
+ path: pathM,
6970
7029
  source: source,
6971
- modulesErrors: moduleErrors
6972
- }));
6973
- // The PATH is part of the schema set, not just the schema: renaming a
6974
- // module while leaving its schema byte-identical still changes which paths
6975
- // exist, and an open client keyed its schema cache by the old path. Hashing
6976
- // the schema alone left this SHA unchanged, so with no commitSha to fall
6977
- // back on the client never refetched /schema.
6978
- schemaSha = hash(schemaSha + JSON.stringify({
6979
- path: path,
6980
- schema: serializedSchema
6981
- }));
7030
+ serializedSchema: serializedSchema,
7031
+ // The errors so far, which is what the base SHA used to mix in by hashing
7032
+ // the live array at this point in the loop. See `moduleErrorsAt`.
7033
+ moduleErrorsAt: moduleErrors.length
7034
+ });
6982
7035
  case 17:
6983
7036
  moduleIdx++;
6984
7037
  _context.n = 1;
6985
7038
  break;
6986
7039
  case 18:
6987
- return _context.a(2, {
7040
+ return _context.a(2, _objectSpread2(_objectSpread2({
6988
7041
  sources: sources,
6989
7042
  schemas: schemas,
6990
- serializedSchemas: serializedSchemas,
6991
- baseSha: baseSha,
6992
- schemaSha: schemaSha,
6993
- sourcesSha: sourcesSha,
6994
- configSha: configSha,
6995
- moduleErrors: moduleErrors
6996
- });
7043
+ serializedSchemas: serializedSchemas
7044
+ }, computeValModuleShas(valModules.config, shaEntries, moduleErrors)), {}, {
7045
+ moduleErrors: moduleErrors,
7046
+ shaEntries: shaEntries
7047
+ }));
6997
7048
  }
6998
7049
  }, _callee, null, [[14, 15], [4, 6]]);
6999
7050
  }));
@@ -8019,13 +8070,16 @@ function deserializeSchema(serialized) {
8019
8070
  return schema;
8020
8071
  }
8021
8072
  function deserializeSchemaImpl(serialized) {
8022
- var _serialized$options, _serialized$options2, _serialized$accept, _serialized$directory, _serialized$remote, _serialized$jsonValue;
8073
+ var _serialized$options, _serialized$options2, _serialized$render, _serialized$accept, _serialized$directory, _serialized$remote, _serialized$jsonValue;
8023
8074
  switch (serialized.type) {
8024
8075
  case "string":
8025
8076
  return new StringSchema(_objectSpread2(_objectSpread2({}, serialized.options), {}, {
8026
8077
  regexp: ((_serialized$options = serialized.options) === null || _serialized$options === void 0 ? void 0 : _serialized$options.regexp) && new RegExp(serialized.options.regexp.source, serialized.options.regexp.flags),
8027
8078
  regExpMessage: (_serialized$options2 = serialized.options) === null || _serialized$options2 === void 0 || (_serialized$options2 = _serialized$options2.regexp) === null || _serialized$options2 === void 0 ? void 0 : _serialized$options2.message
8028
- }), serialized.opt, serialized.raw, [], null, false, false, serialized.description);
8079
+ }), serialized.opt, serialized.raw, [], // A render is static data, so it survives serialization and must be
8080
+ // carried back: it is the schema's own configuration now, not something
8081
+ // recomputed from an instance.
8082
+ (_serialized$render = serialized.render) !== null && _serialized$render !== void 0 ? _serialized$render : null, false, false, serialized.description);
8029
8083
  case "literal":
8030
8084
  return new LiteralSchema(serialized.value, serialized.opt, [], false, false, serialized.description);
8031
8085
  case "boolean":
@@ -8102,31 +8156,46 @@ function deserializeSchemaImpl(serialized) {
8102
8156
  }
8103
8157
  }
8104
8158
 
8105
- // TODO: we want to change layout -> as to be more consistent across the board
8106
-
8107
- // Main render type:
8159
+ /**
8160
+ * What a container shows for ONE of its items: the user's `preview` callback
8161
+ * returns this, and the Studio draws a row from it.
8162
+ *
8163
+ * NB: {@link ArrayPreview} / {@link RecordPreview} name the DATA a container
8164
+ * previews with. The Studio also has React components called `ArrayPreview` /
8165
+ * `RecordPreview` (the fallback rendering of an array / record field, part of
8166
+ * the `<Type>Preview` convention in `components/Preview.tsx`). They do not
8167
+ * collide today because no file needs both - if one ever does, alias this type
8168
+ * at the import rather than renaming that convention.
8169
+ */
8108
8170
 
8109
- //
8171
+ /**
8172
+ * Main preview type.
8173
+ *
8174
+ * Deliberately not exported: `parent` is the discriminant, and every consumer
8175
+ * narrows on it rather than on the union as a whole. There is no `layout` here
8176
+ * on purpose - how a preview is laid out is the editor's business, not the
8177
+ * schema's.
8178
+ */
8110
8179
 
8111
8180
  /**
8112
- * Which paths a render is being computed FOR.
8181
+ * Which paths a preview is being computed FOR.
8113
8182
  *
8114
- * `executeRender` takes a whole module, so one request has always walked every
8115
- * node in it and run every `select` closure — for `handboka`, with `select` at
8183
+ * `executePreview` takes a whole module, so one request has always walked every
8184
+ * node in it and run every `preview` closure - for `handboka`, with `preview` at
8116
8185
  * two nested array levels, that is every chapter and every section to serve one
8117
8186
  * visible row. A scope is what makes the walk proportional to what is being
8118
8187
  * looked at instead of to the project.
8119
8188
  *
8120
8189
  * Two questions, because a container and its items need different answers:
8121
8190
  *
8122
- * - {@link RenderScope.wants} — is a render AT this exact path wanted? A
8191
+ * - {@link PreviewScope.wants} - is a preview AT this exact path wanted? A
8123
8192
  * container answers `true` here when the whole of it is being shown, and its
8124
- * list render is then computed in full.
8125
- * - {@link RenderScope.wantsUnder} — could anything at or below this path be
8193
+ * preview is then computed in full.
8194
+ * - {@link PreviewScope.wantsUnder} - could anything at or below this path be
8126
8195
  * wanted? Recursion is pruned where this is `false`, and a container whose own
8127
- * path is not wanted but which has wanted descendants renders a WINDOW: only
8196
+ * path is not wanted but which has wanted descendants previews a WINDOW: only
8128
8197
  * the items that were asked for. That is the case a single visible row is, and
8129
- * it is why {@link ListArrayRender} carries indices.
8198
+ * it is why {@link ArrayPreview} carries indices.
8130
8199
  *
8131
8200
  * Absent scope means the whole module, which is what every existing caller
8132
8201
  * passes and what every existing caller got.
@@ -8138,10 +8207,10 @@ function deserializeSchemaImpl(serialized) {
8138
8207
  * Compares SEGMENTS rather than string prefixes. A source path's module path is
8139
8208
  * a quoted, dot-joined encoding (`?p="a".1."b"`), so `startsWith` gets the
8140
8209
  * ancestor test wrong wherever a key is a prefix of a sibling key or contains a
8141
- * dot or a quote — `"title"` against `"titles"` being the cheapest example.
8210
+ * dot or a quote - `"title"` against `"titles"` being the cheapest example.
8142
8211
  * Segments are parsed once here, not per comparison.
8143
8212
  */
8144
- function renderScope(paths) {
8213
+ function previewScope(paths) {
8145
8214
  var wanted = paths.map(function (path) {
8146
8215
  var _splitModuleFilePathA = splitModuleFilePathAndModulePath(path),
8147
8216
  _splitModuleFilePathA2 = _slicedToArray(_splitModuleFilePathA, 2),
@@ -8190,6 +8259,37 @@ function renderScope(paths) {
8190
8259
 
8191
8260
  // TODO: improve this so that we do not get RawString and string, only string. Are there other things?
8192
8261
 
8262
+ /**
8263
+ * A RENDER is how one field is laid out in the editor: `s.string().render({ as:
8264
+ * "textarea" })`, `.render({ as: "code", language })`.
8265
+ *
8266
+ * It is static configuration - plain data, with no closure behind it and no
8267
+ * dependency on source - which is why it lives in the SERIALIZED schema
8268
+ * (`SerializedStringSchema.render`) and is read straight off it where the field
8269
+ * is drawn. There is no render pipeline, no store and no host round-trip.
8270
+ *
8271
+ * That "static" is an ASSUMPTION we are taking deliberately, for simplicity,
8272
+ * not a law. A future render could plausibly want to depend on source - a
8273
+ * layout that varies with the value, a callback of its own. If that day comes,
8274
+ * the shape it needs back is `executePreview`'s, and the honest move is to give
8275
+ * `render` its own execute/store pair again. It is NOT to re-merge the two:
8276
+ * conflating them is what this file was split up to undo.
8277
+ *
8278
+ * The dynamic, source-dependent, demand-scoped thing - what a container shows
8279
+ * for its items - is a PREVIEW. See `preview.ts`.
8280
+ */
8281
+ /**
8282
+ * The list is the declaration and {@link CodeLanguage} is derived from it, so
8283
+ * that a validator elsewhere (`shared`'s zod schema) can enumerate the same
8284
+ * languages without a second copy that drifts. Same shape as `COLOR_FORMATS`.
8285
+ */
8286
+ var CODE_LANGUAGES = ["typescript", "javascript", "javascriptreact", "typescriptreact", "json", "java", "html", "css", "xml", "markdown", "sql", "python", "rust", "php", "go", "cpp", "sass", "vue", "angular"];
8287
+
8288
+ /**
8289
+ * What `s.string().render(...)` takes, and what the serialized schema carries
8290
+ * verbatim.
8291
+ */
8292
+
8193
8293
  var externalPageRouter = {
8194
8294
  getRouterId: function getRouterId() {
8195
8295
  return "external-url-router";
@@ -8553,4 +8653,4 @@ function tryJsonParse(str) {
8553
8653
  }
8554
8654
  }
8555
8655
 
8556
- export { ArraySchema as A, BooleanSchema as B, ColorSchema as C, DEFAULT_CONTENT_HOST as D, FATAL_ERROR_TYPES as F, GenericSelector as G, Internal as I, KeyOfSchema as K, LiteralSchema as L, ModuleFilePathSep as M, NumberSchema as N, ObjectSchema as O, PatchError as P, RecordSchema as R, Schema as S, UnionSchema as U, VAL_EXTENSION as V, _typeof as _, _slicedToArray as a, _createClass as b, _classCallCheck as c, _toConsumableArray as d, DEFAULT_APP_HOST as e, extractValModules as f, DEFAULT_VAL_REMOTE_HOST as g, hasRemoteFileSchema as h, initVal as i, derefPatch as j, StringSchema as k, ImageSchema as l, modules as m, FileSchema as n, DateSchema as o, COLOR_FORMATS as p, DEFAULT_COLOR_FORMAT as q, DateTimeSchema as r, splitModuleFilePathAndModulePath as s, RouteSchema as t, RichTextSchema as u, deserializeSchema as v, renderScope as w, getSourcePathFromRoute as x };
8656
+ export { ArraySchema as A, BooleanSchema as B, ColorSchema as C, DEFAULT_CONTENT_HOST as D, FATAL_ERROR_TYPES as F, GenericSelector as G, Internal as I, KeyOfSchema as K, LiteralSchema as L, ModuleFilePathSep as M, NumberSchema as N, ObjectSchema as O, PatchError as P, RecordSchema as R, Schema as S, UnionSchema as U, VAL_EXTENSION as V, _typeof as _, _slicedToArray as a, _createClass as b, _classCallCheck as c, _toConsumableArray as d, DEFAULT_APP_HOST as e, extractValModules as f, computeValModuleShas as g, hasRemoteFileSchema as h, initVal as i, DEFAULT_VAL_REMOTE_HOST as j, derefPatch as k, StringSchema as l, modules as m, ImageSchema as n, FileSchema as o, DateSchema as p, COLOR_FORMATS as q, DEFAULT_COLOR_FORMAT as r, splitModuleFilePathAndModulePath as s, DateTimeSchema as t, RouteSchema as u, RichTextSchema as v, deserializeSchema as w, previewScope as x, CODE_LANGUAGES as y, getSourcePathFromRoute as z };