@jay-framework/compiler-shared 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -71,6 +71,19 @@ declare const Import: {
71
71
  injectHeadLinks: ImportName;
72
72
  makeJayComponent: ImportName;
73
73
  makeHeadlessInstanceComponent: ImportName;
74
+ HEADLESS_INSTANCES: ImportName;
75
+ useContext: ImportName;
76
+ currentConstructionContext: ImportName;
77
+ adoptText: ImportName;
78
+ adoptElement: ImportName;
79
+ childCompHydrate: ImportName;
80
+ hydrateConditional: ImportName;
81
+ hydrateForEach: ImportName;
82
+ adoptDynamicElement: ImportName;
83
+ STATIC: ImportName;
84
+ escapeHtml: ImportName;
85
+ escapeAttr: ImportName;
86
+ ServerRenderContext: ImportName;
74
87
  };
75
88
  declare class Imports {
76
89
  private readonly imports;
@@ -98,6 +111,7 @@ declare const JAY_RUNTIME = "@jay-framework/runtime";
98
111
  declare const JAY_4_REACT = "@jay-framework/4-react";
99
112
  declare const JAY_FULLSTACK_COMPONENTS = "@jay-framework/fullstack-component";
100
113
  declare const JAY_STACK_CLIENT_RUNTIME = "@jay-framework/stack-client-runtime";
114
+ declare const JAY_SSR_RUNTIME = "@jay-framework/ssr-runtime";
101
115
  declare const REACT = "react";
102
116
  declare const MAKE_JAY_COMPONENT = "makeJayComponent";
103
117
  declare const MAKE_JAY_TSX_COMPONENT = "makeJayTsxComponent";
@@ -287,6 +301,7 @@ declare const JAY_QUERY_PREFIX = "?jay-";
287
301
  declare const JAY_QUERY_MAIN_SANDBOX = "?jay-mainSandbox";
288
302
  declare const JAY_QUERY_WORKER_TRUSTED = "?jay-workerTrusted";
289
303
  declare const JAY_QUERY_WORKER_SANDBOX = "?jay-workerSandbox";
304
+ declare const JAY_QUERY_HYDRATE = "?jay-hydrate";
290
305
  declare const JAY_QUERY_MAIN_SANDBOX_TS = "?jay-mainSandbox.ts";
291
306
  declare const JAY_QUERY_WORKER_TRUSTED_TS = "?jay-workerTrusted.ts";
292
307
  declare const JAY_QUERY_WORKER_SANDBOX_TS = "?jay-workerSandbox.ts";
@@ -341,6 +356,8 @@ interface ParsedJayModuleSpecifier {
341
356
  buildEnvironment?: JayBuildEnvironment;
342
357
  /** The runtime mode (sandbox modes) if present */
343
358
  runtimeMode?: RuntimeMode;
359
+ /** Whether this is a hydrate target (?jay-hydrate) */
360
+ isHydrate?: boolean;
344
361
  /** Any remaining query parameters (not jay-related) */
345
362
  otherQueryParams: string;
346
363
  /** The full query string for reconstruction */
@@ -636,4 +653,90 @@ declare function resolvePluginComponent(projectRoot: string, pluginName: string,
636
653
  */
637
654
  declare function resolvePluginManifest(projectRoot: string, pluginName: string): WithValidations<PluginManifest>;
638
655
 
639
- export { type ActionManifestEntry, CSS_EXTENSION, type CompilerSourceFile, type DynamicContractConfig, GenerateTarget, type GenericTypescriptSourceFile, Import, type ImportName, type ImportedRefsTree, Imports, ImportsFor, JAY_4_REACT, JAY_ACTION_DTS_EXTENSION, JAY_ACTION_EXTENSION, JAY_COMPONENT, JAY_CONTRACT_DTS_EXTENSION, JAY_CONTRACT_EXTENSION, JAY_DTS_EXTENSION, JAY_EXTENSION, JAY_FULLSTACK_COMPONENTS, JAY_QUERY_CLIENT, JAY_QUERY_MAIN_SANDBOX, JAY_QUERY_MAIN_SANDBOX_TS, JAY_QUERY_PREFIX, JAY_QUERY_SERVER, JAY_QUERY_WORKER_SANDBOX, JAY_QUERY_WORKER_SANDBOX_TS, JAY_QUERY_WORKER_TRUSTED, JAY_QUERY_WORKER_TRUSTED_TS, JAY_RUNTIME, JAY_SECURE, JAY_STACK_CLIENT_RUNTIME, JAY_TS_EXTENSION, JayArrayType, JayAtomicType, JayBoolean, JayBuildEnvironment, JayComponentApiMember, JayComponentType, JayDate, JayElementConstructorType, JayElementType, JayEnumType, type JayEnvironment, JayErrorType, JayHTMLType, type JayImportLink, type JayImportName, JayImportedType, JayNumber, JayObjectType, JayOptionalType, JayPromiseType, JayRecursiveType, JayString, type JayType, JayTypeAlias, JayTypeKind, JayUnionType, JayUnknown, type JayValidations, type JsonSchemaProperty, LOCAL_PLUGIN_PATH, MAKE_JAY_4_REACT_COMPONENT, MAKE_JAY_COMPONENT, MAKE_JAY_TSX_COMPONENT, type MainRuntimeModes, type ParsedJayModuleSpecifier, type PluginComponentResolution, type PluginInitConfig, type PluginManifest, REACT, type RecursiveRegion, type Ref, type RefsTree, RenderFragment, RuntimeMode, SourceFileFormat, TSX_EXTENSION, TS_EXTENSION, WithValidations, addBuildEnvironment, checkValidationErrors, equalJayTypes, findDynamicContract, getBasePath, getBuildEnvironment, getJayTsFileSourcePath, getMode, getModeFileExtension, getModeFromExtension, hasBuildEnvironment, hasExtension, hasJayExtension, hasJayModeExtension, hasRefs, isArrayType, isAtomicType, isComponentType, isCurrencyType, isDateWithTimezoneType, isElementConstructorType, isElementType, isEnumType, isHTMLType, isImportedType, isLocalModule, isObjectType, isOptionalType, isPromiseType, isRecursiveType, isTypeAliasType, isUnionType, jayTypeToJsonSchema, loadPluginManifest, mergeRefsTrees, mkRef, mkRefsTree, nestRefs, normalizeActionEntry, parseJayModuleSpecifier, prettify, prettifyHtml, removeComments, resolvePluginComponent, resolvePluginManifest, resolvePrimitiveType, withOriginalTrace, withoutExtension };
656
+ /**
657
+ * Build-time utilities for coordinate template compilation.
658
+ *
659
+ * Coordinates may contain $placeholder segments (e.g. "0/$_id/1") that
660
+ * reference forEach trackBy variables. These utilities compile templates
661
+ * into JS string concatenation expressions — no runtime dependency.
662
+ */
663
+ /**
664
+ * Compile a coordinate template with $placeholder syntax into a JS expression string.
665
+ *
666
+ * Static templates (no placeholders) return a quoted string literal.
667
+ * Dynamic templates compile to string concatenation expressions.
668
+ *
669
+ * @param template - Coordinate template, e.g. "0/$_id/1" or "product-card:0/0"
670
+ * @param varMappings - Maps placeholder names to JS expressions, e.g. { _id: "vs1._id" }
671
+ * @returns A JS expression string that evaluates to the final coordinate value
672
+ *
673
+ * @example
674
+ * // Static (no placeholders):
675
+ * compileCoordinateExpr("product-card:0/0", {})
676
+ * // → "'product-card:0/0'"
677
+ *
678
+ * // Dynamic (with placeholder):
679
+ * compileCoordinateExpr("0/$_id/1", { _id: "vs1._id" })
680
+ * // → "'0/' + escapeAttr(String(vs1._id)) + '/1'"
681
+ *
682
+ * // Placeholder at start:
683
+ * compileCoordinateExpr("$_id/product-card:0/0", { _id: "vs1._id" })
684
+ * // → "escapeAttr(String(vs1._id)) + '/product-card:0/0'"
685
+ */
686
+ declare function compileCoordinateExpr(template: string, varMappings: Record<string, string>): string;
687
+ /**
688
+ * Check if a coordinate template contains dynamic placeholders.
689
+ */
690
+ declare function isStaticCoordinate(template: string): boolean;
691
+ /**
692
+ * Compute the `__headlessInstances` key for a headless instance.
693
+ *
694
+ * The key format differs by context:
695
+ * - **Static**: `"product-card:0"` (just the coordinate suffix)
696
+ * - **forEach**: `"trackByValue,product-card:0"` (comma-separated, matching Array.toString())
697
+ * - **slowForEach**: `"p1/product-card:0"` (slash-separated, same as DOM coordinate)
698
+ *
699
+ * This function is used by both:
700
+ * - Server runtime (dev-server) when storing data in `__headlessInstances`
701
+ * - Client compiler when generating the key lookup in `makeHeadlessInstanceComponent`
702
+ *
703
+ * @param coordinateSuffix - The instance's coordinate suffix, e.g. "product-card:0"
704
+ * @param context - The context in which the instance appears
705
+ * @param prefix - For slowForEach: the jayTrackBy value (e.g. "p1").
706
+ * For forEach: not used (key is computed at runtime from trackBy values).
707
+ * @returns For static/slowForEach: a literal key string.
708
+ * For forEach: undefined (key must be computed at runtime).
709
+ */
710
+ declare function computeInstanceKey(coordinateSuffix: string, context: 'static' | 'forEach' | 'slowForEach', prefix?: string): string | undefined;
711
+ /**
712
+ * Compile a forEach instance key expression for generated code.
713
+ *
714
+ * For the server target, produces a JS expression that computes the key
715
+ * at runtime using the trackBy variable.
716
+ *
717
+ * For the client target (hydrate adopt path), the key is computed by
718
+ * `(dataIds) => dataIds.join(',')` — the coordinateBase already includes
719
+ * the suffix via `childCompHydrate`'s `forInstance` call.
720
+ *
721
+ * @param coordinateSuffix - e.g. "product-card:0"
722
+ * @param trackByExpr - JS expression for the trackBy value, e.g. "vs1._id"
723
+ * @returns A JS expression string that evaluates to the key
724
+ *
725
+ * @example
726
+ * compileForEachInstanceKeyExpr("product-card:0", "vs1._id")
727
+ * // → "String(vs1._id) + ',product-card:0'"
728
+ */
729
+ declare function compileForEachInstanceKeyExpr(coordinateSuffix: string, trackByExpr: string): string;
730
+ /**
731
+ * Runtime computation of a forEach instance key.
732
+ *
733
+ * Used by the dev server when storing data in `__headlessInstances`.
734
+ * Produces the same format as `compileForEachInstanceKeyExpr` generates
735
+ * at compile time: `"trackByValue,coordinateSuffix"`.
736
+ *
737
+ * @param trackByValue - The resolved trackBy value for the current item
738
+ * @param coordinateSuffix - e.g. "product-card:0"
739
+ */
740
+ declare function computeForEachInstanceKey(trackByValue: string, coordinateSuffix: string): string;
741
+
742
+ export { type ActionManifestEntry, CSS_EXTENSION, type CompilerSourceFile, type DynamicContractConfig, GenerateTarget, type GenericTypescriptSourceFile, Import, type ImportName, type ImportedRefsTree, Imports, ImportsFor, JAY_4_REACT, JAY_ACTION_DTS_EXTENSION, JAY_ACTION_EXTENSION, JAY_COMPONENT, JAY_CONTRACT_DTS_EXTENSION, JAY_CONTRACT_EXTENSION, JAY_DTS_EXTENSION, JAY_EXTENSION, JAY_FULLSTACK_COMPONENTS, JAY_QUERY_CLIENT, JAY_QUERY_HYDRATE, JAY_QUERY_MAIN_SANDBOX, JAY_QUERY_MAIN_SANDBOX_TS, JAY_QUERY_PREFIX, JAY_QUERY_SERVER, JAY_QUERY_WORKER_SANDBOX, JAY_QUERY_WORKER_SANDBOX_TS, JAY_QUERY_WORKER_TRUSTED, JAY_QUERY_WORKER_TRUSTED_TS, JAY_RUNTIME, JAY_SECURE, JAY_SSR_RUNTIME, JAY_STACK_CLIENT_RUNTIME, JAY_TS_EXTENSION, JayArrayType, JayAtomicType, JayBoolean, JayBuildEnvironment, JayComponentApiMember, JayComponentType, JayDate, JayElementConstructorType, JayElementType, JayEnumType, type JayEnvironment, JayErrorType, JayHTMLType, type JayImportLink, type JayImportName, JayImportedType, JayNumber, JayObjectType, JayOptionalType, JayPromiseType, JayRecursiveType, JayString, type JayType, JayTypeAlias, JayTypeKind, JayUnionType, JayUnknown, type JayValidations, type JsonSchemaProperty, LOCAL_PLUGIN_PATH, MAKE_JAY_4_REACT_COMPONENT, MAKE_JAY_COMPONENT, MAKE_JAY_TSX_COMPONENT, type MainRuntimeModes, type ParsedJayModuleSpecifier, type PluginComponentResolution, type PluginInitConfig, type PluginManifest, REACT, type RecursiveRegion, type Ref, type RefsTree, RenderFragment, RuntimeMode, SourceFileFormat, TSX_EXTENSION, TS_EXTENSION, WithValidations, addBuildEnvironment, checkValidationErrors, compileCoordinateExpr, compileForEachInstanceKeyExpr, computeForEachInstanceKey, computeInstanceKey, equalJayTypes, findDynamicContract, getBasePath, getBuildEnvironment, getJayTsFileSourcePath, getMode, getModeFileExtension, getModeFromExtension, hasBuildEnvironment, hasExtension, hasJayExtension, hasJayModeExtension, hasRefs, isArrayType, isAtomicType, isComponentType, isCurrencyType, isDateWithTimezoneType, isElementConstructorType, isElementType, isEnumType, isHTMLType, isImportedType, isLocalModule, isObjectType, isOptionalType, isPromiseType, isRecursiveType, isStaticCoordinate, isTypeAliasType, isUnionType, jayTypeToJsonSchema, loadPluginManifest, mergeRefsTrees, mkRef, mkRefsTree, nestRefs, normalizeActionEntry, parseJayModuleSpecifier, prettify, prettifyHtml, removeComments, resolvePluginComponent, resolvePluginManifest, resolvePrimitiveType, withOriginalTrace, withoutExtension };
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ const JAY_RUNTIME = "@jay-framework/runtime";
24
24
  const JAY_4_REACT = "@jay-framework/4-react";
25
25
  const JAY_FULLSTACK_COMPONENTS = "@jay-framework/fullstack-component";
26
26
  const JAY_STACK_CLIENT_RUNTIME = "@jay-framework/stack-client-runtime";
27
+ const JAY_SSR_RUNTIME = "@jay-framework/ssr-runtime";
27
28
  const REACT = "react";
28
29
  const MAKE_JAY_COMPONENT = "makeJayComponent";
29
30
  const MAKE_JAY_TSX_COMPONENT = "makeJayTsxComponent";
@@ -415,6 +416,84 @@ const Import = {
415
416
  "makeHeadlessInstanceComponent",
416
417
  1
417
418
  /* implementation */
419
+ ),
420
+ HEADLESS_INSTANCES: importStatementFragment(
421
+ JAY_STACK_CLIENT_RUNTIME,
422
+ "HEADLESS_INSTANCES",
423
+ 1
424
+ /* implementation */
425
+ ),
426
+ useContext: importStatementFragment(
427
+ JAY_RUNTIME,
428
+ "useContext",
429
+ 1
430
+ /* implementation */
431
+ ),
432
+ currentConstructionContext: importStatementFragment(
433
+ JAY_RUNTIME,
434
+ "currentConstructionContext",
435
+ 1
436
+ /* implementation */
437
+ ),
438
+ adoptText: importStatementFragment(
439
+ JAY_RUNTIME,
440
+ "adoptText",
441
+ 1
442
+ /* implementation */
443
+ ),
444
+ adoptElement: importStatementFragment(
445
+ JAY_RUNTIME,
446
+ "adoptElement",
447
+ 1
448
+ /* implementation */
449
+ ),
450
+ childCompHydrate: importStatementFragment(
451
+ JAY_RUNTIME,
452
+ "childCompHydrate",
453
+ 1
454
+ /* implementation */
455
+ ),
456
+ hydrateConditional: importStatementFragment(
457
+ JAY_RUNTIME,
458
+ "hydrateConditional",
459
+ 1
460
+ /* implementation */
461
+ ),
462
+ hydrateForEach: importStatementFragment(
463
+ JAY_RUNTIME,
464
+ "hydrateForEach",
465
+ 1
466
+ /* implementation */
467
+ ),
468
+ adoptDynamicElement: importStatementFragment(
469
+ JAY_RUNTIME,
470
+ "adoptDynamicElement",
471
+ 1
472
+ /* implementation */
473
+ ),
474
+ STATIC: importStatementFragment(
475
+ JAY_RUNTIME,
476
+ "STATIC",
477
+ 1
478
+ /* implementation */
479
+ ),
480
+ escapeHtml: importStatementFragment(
481
+ JAY_SSR_RUNTIME,
482
+ "escapeHtml",
483
+ 1
484
+ /* implementation */
485
+ ),
486
+ escapeAttr: importStatementFragment(
487
+ JAY_SSR_RUNTIME,
488
+ "escapeAttr",
489
+ 1
490
+ /* implementation */
491
+ ),
492
+ ServerRenderContext: importStatementFragment(
493
+ JAY_SSR_RUNTIME,
494
+ "type ServerRenderContext",
495
+ 1
496
+ /* implementation */
418
497
  )
419
498
  };
420
499
  class Imports {
@@ -710,7 +789,9 @@ function equalJayTypes(a, b) {
710
789
  else if (a instanceof JayObjectType && b instanceof JayObjectType) {
711
790
  const aProps = new Set(Object.keys(a.props));
712
791
  const bProps = new Set(Object.keys(b.props));
713
- return aProps.size === bProps.size && [...aProps].map((aProp) => bProps.has(aProp) && equalJayTypes(a[aProp], b[aProp]));
792
+ return aProps.size === bProps.size && [...aProps].every(
793
+ (aProp) => bProps.has(aProp) && equalJayTypes(a.props[aProp], b.props[aProp])
794
+ );
714
795
  } else if (a instanceof JayUnionType && b instanceof JayUnionType) {
715
796
  return a.ofTypes.length === b.ofTypes.length && a.ofTypes.reduce((res, aType) => res && b.hasType(aType), true);
716
797
  } else if (a instanceof JayPromiseType && b instanceof JayPromiseType) {
@@ -778,6 +859,7 @@ const JAY_QUERY_PREFIX = "?jay-";
778
859
  const JAY_QUERY_MAIN_SANDBOX = `${JAY_QUERY_PREFIX}${"mainSandbox"}`;
779
860
  const JAY_QUERY_WORKER_TRUSTED = `${JAY_QUERY_PREFIX}${"workerTrusted"}`;
780
861
  const JAY_QUERY_WORKER_SANDBOX = `${JAY_QUERY_PREFIX}${"workerSandbox"}`;
862
+ const JAY_QUERY_HYDRATE = `${JAY_QUERY_PREFIX}hydrate`;
781
863
  const JAY_QUERY_MAIN_SANDBOX_TS = `${JAY_QUERY_PREFIX}${"mainSandbox"}${TS_EXTENSION}`;
782
864
  const JAY_QUERY_WORKER_TRUSTED_TS = `${JAY_QUERY_PREFIX}${"workerTrusted"}${TS_EXTENSION}`;
783
865
  const JAY_QUERY_WORKER_SANDBOX_TS = `${JAY_QUERY_PREFIX}${"workerSandbox"}${TS_EXTENSION}`;
@@ -840,6 +922,12 @@ var JayBuildEnvironment = /* @__PURE__ */ ((JayBuildEnvironment2) => {
840
922
  const JAY_QUERY_CLIENT = `${JAY_QUERY_PREFIX}${"client"}`;
841
923
  const JAY_QUERY_SERVER = `${JAY_QUERY_PREFIX}${"server"}`;
842
924
  const JAY_QUERY_PATTERNS = [
925
+ // Hydrate target
926
+ {
927
+ pattern: JAY_QUERY_HYDRATE,
928
+ buildEnv: "client",
929
+ isHydrate: true
930
+ },
843
931
  // Build environments
844
932
  {
845
933
  pattern: `${JAY_QUERY_PREFIX}${"client"}`,
@@ -891,13 +979,21 @@ function parseJayModuleSpecifier(specifier) {
891
979
  const fullQueryString = specifier.substring(queryIndex);
892
980
  let buildEnvironment;
893
981
  let runtimeMode;
982
+ let isHydrate;
894
983
  let remainingQuery = fullQueryString;
895
- for (const { pattern, buildEnv, runtimeMode: rtMode } of JAY_QUERY_PATTERNS) {
984
+ for (const {
985
+ pattern,
986
+ buildEnv,
987
+ runtimeMode: rtMode,
988
+ isHydrate: hydrate
989
+ } of JAY_QUERY_PATTERNS) {
896
990
  if (remainingQuery.includes(pattern)) {
897
991
  if (buildEnv)
898
992
  buildEnvironment = buildEnv;
899
993
  if (rtMode)
900
994
  runtimeMode = rtMode;
995
+ if (hydrate)
996
+ isHydrate = true;
901
997
  remainingQuery = remainingQuery.replace(pattern, "");
902
998
  }
903
999
  }
@@ -906,6 +1002,7 @@ function parseJayModuleSpecifier(specifier) {
906
1002
  basePath,
907
1003
  buildEnvironment,
908
1004
  runtimeMode,
1005
+ isHydrate,
909
1006
  otherQueryParams,
910
1007
  fullQueryString
911
1008
  };
@@ -1451,6 +1548,53 @@ function resolvePluginManifest(projectRoot, pluginName) {
1451
1548
  `Plugin "${pluginName}" not found. Searched in src/plugins/${pluginName}/ and node_modules/${pluginName}/. Ensure the plugin is installed or exists in your project.`
1452
1549
  ]);
1453
1550
  }
1551
+ function compileCoordinateExpr(template, varMappings) {
1552
+ if (!template.includes("$")) {
1553
+ return `'${template}'`;
1554
+ }
1555
+ const parts = [];
1556
+ let remaining = template;
1557
+ while (remaining.length > 0) {
1558
+ const match = remaining.match(/\$([a-zA-Z_]\w*)/);
1559
+ if (!match) {
1560
+ parts.push(`'${remaining}'`);
1561
+ break;
1562
+ }
1563
+ const placeholderName = match[1];
1564
+ const placeholderStart = match.index;
1565
+ if (placeholderStart > 0) {
1566
+ parts.push(`'${remaining.substring(0, placeholderStart)}'`);
1567
+ }
1568
+ const varExpr = varMappings[placeholderName];
1569
+ if (varExpr === void 0) {
1570
+ throw new Error(
1571
+ `compileCoordinateExpr: no mapping for placeholder "$${placeholderName}" in template "${template}"`
1572
+ );
1573
+ }
1574
+ parts.push(`escapeAttr(String(${varExpr}))`);
1575
+ remaining = remaining.substring(placeholderStart + match[0].length);
1576
+ }
1577
+ return parts.join(" + ");
1578
+ }
1579
+ function isStaticCoordinate(template) {
1580
+ return !template.includes("$");
1581
+ }
1582
+ function computeInstanceKey(coordinateSuffix, context, prefix) {
1583
+ switch (context) {
1584
+ case "static":
1585
+ return coordinateSuffix;
1586
+ case "slowForEach":
1587
+ return `${prefix}/${coordinateSuffix}`;
1588
+ case "forEach":
1589
+ return void 0;
1590
+ }
1591
+ }
1592
+ function compileForEachInstanceKeyExpr(coordinateSuffix, trackByExpr) {
1593
+ return `String(${trackByExpr}) + ',${coordinateSuffix}'`;
1594
+ }
1595
+ function computeForEachInstanceKey(trackByValue, coordinateSuffix) {
1596
+ return [trackByValue, coordinateSuffix].toString();
1597
+ }
1454
1598
  const s = createRequire(import.meta.url), e = s("typescript"), u = e, c = new Proxy(e, {
1455
1599
  get(t, r) {
1456
1600
  return t[r];
@@ -1475,6 +1619,7 @@ export {
1475
1619
  JAY_EXTENSION,
1476
1620
  JAY_FULLSTACK_COMPONENTS,
1477
1621
  JAY_QUERY_CLIENT,
1622
+ JAY_QUERY_HYDRATE,
1478
1623
  JAY_QUERY_MAIN_SANDBOX,
1479
1624
  JAY_QUERY_MAIN_SANDBOX_TS,
1480
1625
  JAY_QUERY_PREFIX,
@@ -1485,6 +1630,7 @@ export {
1485
1630
  JAY_QUERY_WORKER_TRUSTED_TS,
1486
1631
  JAY_RUNTIME,
1487
1632
  JAY_SECURE,
1633
+ JAY_SSR_RUNTIME,
1488
1634
  JAY_STACK_CLIENT_RUNTIME,
1489
1635
  JAY_TS_EXTENSION,
1490
1636
  JayArrayType,
@@ -1523,6 +1669,10 @@ export {
1523
1669
  WithValidations,
1524
1670
  addBuildEnvironment,
1525
1671
  checkValidationErrors,
1672
+ compileCoordinateExpr,
1673
+ compileForEachInstanceKeyExpr,
1674
+ computeForEachInstanceKey,
1675
+ computeInstanceKey,
1526
1676
  equalJayTypes,
1527
1677
  findDynamicContract,
1528
1678
  getBasePath,
@@ -1552,6 +1702,7 @@ export {
1552
1702
  isOptionalType,
1553
1703
  isPromiseType,
1554
1704
  isRecursiveType,
1705
+ isStaticCoordinate,
1555
1706
  isTypeAliasType,
1556
1707
  isUnionType,
1557
1708
  jayTypeToJsonSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jay-framework/compiler-shared",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "Apache-2.0",
@@ -25,10 +25,10 @@
25
25
  },
26
26
  "author": "",
27
27
  "dependencies": {
28
- "@jay-framework/component": "^0.13.0",
29
- "@jay-framework/runtime": "^0.13.0",
30
- "@jay-framework/secure": "^0.13.0",
31
- "@jay-framework/typescript-bridge": "^0.8.0",
28
+ "@jay-framework/component": "^0.15.0",
29
+ "@jay-framework/runtime": "^0.15.0",
30
+ "@jay-framework/secure": "^0.15.0",
31
+ "@jay-framework/typescript-bridge": "^0.10.0",
32
32
  "@types/js-yaml": "^4.0.9",
33
33
  "change-case": "^4.1.2",
34
34
  "js-beautify": "^1.14.11",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@caiogondim/strip-margin": "^1.0.0",
44
- "@jay-framework/dev-environment": "^0.13.0",
44
+ "@jay-framework/dev-environment": "^0.15.0",
45
45
  "@testing-library/jest-dom": "^6.2.0",
46
46
  "@types/js-beautify": "^1",
47
47
  "@types/node": "^20.11.5",