@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 +104 -1
- package/dist/index.js +153 -2
- package/package.json +6 -6
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
|
-
|
|
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].
|
|
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 {
|
|
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.
|
|
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.
|
|
29
|
-
"@jay-framework/runtime": "^0.
|
|
30
|
-
"@jay-framework/secure": "^0.
|
|
31
|
-
"@jay-framework/typescript-bridge": "^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.
|
|
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",
|