@jay-framework/compiler-jay-html 0.25.4 → 0.26.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.cts +83 -1
- package/dist/index.js +297 -137
- package/package.json +11 -11
package/dist/index.d.cts
CHANGED
|
@@ -102,6 +102,34 @@ declare function filterTagsByPhase(tags: ContractTag[], targetPhase: RenderingPh
|
|
|
102
102
|
*/
|
|
103
103
|
declare function createPhaseContract(contract: Contract, targetPhase: RenderingPhase): Contract;
|
|
104
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Owns type-analysis state for one scope (DL#225). The TS type analysis (`ts.createProgram` inside
|
|
107
|
+
* `analyzeExportedTypes`) costs ~hundreds of ms per component file, and `parseJayFile` re-analyzes every
|
|
108
|
+
* local `src=` import on every call — once per SSR request in the dev server. A context memoizes results
|
|
109
|
+
* so repeat requests (and a component imported by many pages at build time) don't re-analyze.
|
|
110
|
+
*
|
|
111
|
+
* A context is created per owner (dev-server session, build run, CLI command, or **test**) and threaded
|
|
112
|
+
* through the resolver — not a module global — so the state's lifetime is the owner's and tests are
|
|
113
|
+
* isolated. DL#225 Phase 3 will make the context own a persistent `ts.LanguageService` here.
|
|
114
|
+
*/
|
|
115
|
+
interface AnalysisContext {
|
|
116
|
+
analyzeExportedTypes(fullPath: string, options: ResolveTsConfigOptions): JayType[];
|
|
117
|
+
/**
|
|
118
|
+
* Invalidate after a `.ts` / `.d.ts` / `.jay-contract` change. The cache keys on the analyzed file's
|
|
119
|
+
* own mtime (busts a direct edit), but a change to a *type it imports* (e.g. a regenerated contract
|
|
120
|
+
* `.d.ts`) without touching the component is not seen by mtime — so the dev-server watcher calls this.
|
|
121
|
+
* Currently clears everything (cheap; next request re-analyzes only the pages it renders).
|
|
122
|
+
*/
|
|
123
|
+
noteFileChanged(changedPath?: string): void;
|
|
124
|
+
/** Clear all cached analysis. */
|
|
125
|
+
clear(): void;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create a fresh {@link AnalysisContext}. Each owner creates its own; callers thread it via the resolver.
|
|
129
|
+
* Backed by a persistent `ts.LanguageService` (DL#225) so repeat/incremental analysis is near-free and the
|
|
130
|
+
* cold `createProgram` cost is shared across a session.
|
|
131
|
+
*/
|
|
132
|
+
declare function createAnalysisContext(): AnalysisContext;
|
|
105
133
|
interface JayImportResolver {
|
|
106
134
|
resolveLink(importingModuleDir: string, link: string): string;
|
|
107
135
|
/** Load a contract from an absolute file path */
|
|
@@ -135,7 +163,21 @@ interface JayImportResolver {
|
|
|
135
163
|
filePath: string;
|
|
136
164
|
} | null;
|
|
137
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Create a resolver bound to an {@link AnalysisContext} (DL#225). Owners (dev-server session, build run,
|
|
168
|
+
* CLI command, test) create one — and typically one context — and thread it through `parseJayFile(…,
|
|
169
|
+
* resolver, …)`. Defaults to a fresh private context when none is passed.
|
|
170
|
+
*/
|
|
171
|
+
declare function createJayImportResolver(context?: AnalysisContext): JayImportResolver;
|
|
138
172
|
declare const JAY_IMPORT_RESOLVER: JayImportResolver;
|
|
173
|
+
/** Fully reset the default resolver's analysis state. */
|
|
174
|
+
declare function clearExportedTypesCache(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Note a changed file on the default context (dev-server watcher). Bumps just that file's version so the
|
|
177
|
+
* LanguageService re-reads it and re-checks dependents — incremental, keeping the rest of the program warm
|
|
178
|
+
* (vs a full reset). A dev server is one process = one default context, so this stays naturally scoped.
|
|
179
|
+
*/
|
|
180
|
+
declare function noteExportedTypesFileChanged(changedPath: string): void;
|
|
139
181
|
|
|
140
182
|
interface JayContractImportLink {
|
|
141
183
|
module: string;
|
|
@@ -334,6 +376,46 @@ declare function assignCoordinatesToJayHtml(jayHtml: string, headlessContractNam
|
|
|
334
376
|
*/
|
|
335
377
|
declare function assignCoordinates(body: HTMLElement, options: AssignCoordinatesOptions): AssignCoordinatesResult;
|
|
336
378
|
|
|
379
|
+
/**
|
|
380
|
+
* Dev-mode source-editing markers (Design Log #219).
|
|
381
|
+
*
|
|
382
|
+
* A pure `string -> string` transform over the ORIGINAL on-disk jay-html, run in the
|
|
383
|
+
* dev-server pre-render pipeline BEFORE slow-render. It injects dev-only attributes that
|
|
384
|
+
* let the source-editing inspector map a rendered pixel back to its jay-html source:
|
|
385
|
+
*
|
|
386
|
+
* - `jay-dev-src="from:to"` — 1-based line range into the original file, on every element
|
|
387
|
+
* under `<body>`. A plain static attribute; the compilers pass it through verbatim.
|
|
388
|
+
* - `jay-dev-item="{<trackBy>}"` — a BOUND attribute on every `forEach` item root, so the
|
|
389
|
+
* compiler emits the live record id per item and keeps it current on list updates.
|
|
390
|
+
*
|
|
391
|
+
* Line offsets are taken against the original source here (not the slow-render re-serialized
|
|
392
|
+
* markup), so the line values stay faithful to the author's file.
|
|
393
|
+
*
|
|
394
|
+
* Note: a region-prop marker (`jay-dev-prop-*`) was planned but dropped — a region's prop
|
|
395
|
+
* bindings are parent-scoped while its only rendered elements are child-scoped, so there is no
|
|
396
|
+
* DOM element on which such a bound attribute could resolve. The inspector instead reads the
|
|
397
|
+
* region's source fragment (contract + binding expressions) via `jay-dev-src`. See DL#219
|
|
398
|
+
* Implementation Results.
|
|
399
|
+
*/
|
|
400
|
+
declare const DEV_SRC_ATTR = "jay-dev-src";
|
|
401
|
+
declare const DEV_ITEM_ATTR = "jay-dev-item";
|
|
402
|
+
/** Contract name of a headless region (`<jay:NAME …>`), stamped on the region tag. */
|
|
403
|
+
declare const DEV_REGION_ATTR = "jay-dev-region";
|
|
404
|
+
/** JSON of a region's STATIC (non-bound, non-directive) props — the live identity values the
|
|
405
|
+
* inspector can surface without reading source. Bound props stay source-only (parent-scoped). */
|
|
406
|
+
declare const DEV_REGION_PROPS_ATTR = "jay-dev-region-props";
|
|
407
|
+
/** The region's own `<jay:…>` line range, attached to the region's rendered root alongside
|
|
408
|
+
* `jay-dev-region`. Distinct from that element's own `jay-dev-src` (which is the element's lines):
|
|
409
|
+
* the region root is a shared element (the scope-anchor wrapper, or a ref-less region's single
|
|
410
|
+
* child), so the region's source lives in its own attribute to avoid a dedicated DOM level. */
|
|
411
|
+
declare const DEV_REGION_SRC_ATTR = "jay-dev-region-src";
|
|
412
|
+
/**
|
|
413
|
+
* Inject dev-mode source markers into a jay-html string and return the serialized result.
|
|
414
|
+
* Elements outside `<body>` (e.g. `<head>`, the jay-data script) are left untouched.
|
|
415
|
+
* Idempotent: elements that already carry a marker are not re-stamped.
|
|
416
|
+
*/
|
|
417
|
+
declare function injectDevMarkers(jayHtml: string): string;
|
|
418
|
+
|
|
337
419
|
declare function parseJayFile(html: string, filename: string, filePath: string, options: ResolveTsConfigOptions, linkedContractResolver: JayImportResolver, projectRoot: string,
|
|
338
420
|
/** Optional source directory for resolving headfull FS files (jay-html, contracts).
|
|
339
421
|
* When parsing pre-rendered files, filePath is in build/pre-rendered/ but headfull
|
|
@@ -646,4 +728,4 @@ declare function resolveHeadlessInstances(preRenderedJayHtml: string, instanceDa
|
|
|
646
728
|
*/
|
|
647
729
|
declare function hasSlowPhaseProperties(contract: Contract | undefined): boolean;
|
|
648
730
|
|
|
649
|
-
export { type ActionDefinition, type AssignCoordinatesOptions, type AssignCoordinatesResult, type Contract, type ContractImportInfo, type ContractParam, type ContractParamKind, type ContractProp, type ContractResolver, type ContractTag, ContractTagType, type DiscoveredHeadlessInstance, ERROR_CONTRACT, ERROR_CONTRACT_MODULE, ERROR_CONTRACT_NAME, ERROR_CONTRACT_PLUGIN, type EnumToImport, type ForEachHeadlessInstance, type HeadlessContractInfo, type HeadlessInstanceDiscoveryResult, type HeadlessInstanceResolvedData, JAY_IMPORT_RESOLVER, type JayContractImportLink, type JayHeadlessImports, type JayHtmlScript, type JayHtmlSourceFile, type JayImportResolver, type PhaseViewStates, type RenderingPhase, type ServerElementOptions, type SlowRenderInput, type SlowRenderOutput, assignCoordinates, assignCoordinatesToJayHtml, buildInstanceCoordinateKey, compileAction, compileContract, contractToAllPhaseViewStates, contractToImportsViewStateAndRefs, contractToPhaseViewState, createPhaseContract, defaultContractResolver, discoverHeadlessInstances, filterTagsByPhase, generateElementBridgeFile, generateElementDefinitionFile, generateElementFile, generateElementFileReactTarget, generateElementHydrateFile, generateSandboxRootFile, generateServerElementFile, generateTypes, getEffectivePhase, getJayHtmlImports, getLinkedContractDir, hasSlowPhaseProperties, htmlElementTagNameMap, isBuiltInErrorContract, isTagInPhase, loadLinkedContract, parseAction, parseContract, parseEnumValues, parseIsEnum, parseJayFile, parseTemplateParts, renderRefsType, resolveHeadlessInstances, slowRenderTransform, validateContractPhases };
|
|
731
|
+
export { type ActionDefinition, type AnalysisContext, type AssignCoordinatesOptions, type AssignCoordinatesResult, type Contract, type ContractImportInfo, type ContractParam, type ContractParamKind, type ContractProp, type ContractResolver, type ContractTag, ContractTagType, DEV_ITEM_ATTR, DEV_REGION_ATTR, DEV_REGION_PROPS_ATTR, DEV_REGION_SRC_ATTR, DEV_SRC_ATTR, type DiscoveredHeadlessInstance, ERROR_CONTRACT, ERROR_CONTRACT_MODULE, ERROR_CONTRACT_NAME, ERROR_CONTRACT_PLUGIN, type EnumToImport, type ForEachHeadlessInstance, type HeadlessContractInfo, type HeadlessInstanceDiscoveryResult, type HeadlessInstanceResolvedData, JAY_IMPORT_RESOLVER, type JayContractImportLink, type JayHeadlessImports, type JayHtmlScript, type JayHtmlSourceFile, type JayImportResolver, type PhaseViewStates, type RenderingPhase, type ServerElementOptions, type SlowRenderInput, type SlowRenderOutput, assignCoordinates, assignCoordinatesToJayHtml, buildInstanceCoordinateKey, clearExportedTypesCache, compileAction, compileContract, contractToAllPhaseViewStates, contractToImportsViewStateAndRefs, contractToPhaseViewState, createAnalysisContext, createJayImportResolver, createPhaseContract, defaultContractResolver, discoverHeadlessInstances, filterTagsByPhase, generateElementBridgeFile, generateElementDefinitionFile, generateElementFile, generateElementFileReactTarget, generateElementHydrateFile, generateSandboxRootFile, generateServerElementFile, generateTypes, getEffectivePhase, getJayHtmlImports, getLinkedContractDir, hasSlowPhaseProperties, htmlElementTagNameMap, injectDevMarkers, isBuiltInErrorContract, isTagInPhase, loadLinkedContract, noteExportedTypesFileChanged, parseAction, parseContract, parseEnumValues, parseIsEnum, parseJayFile, parseTemplateParts, renderRefsType, resolveHeadlessInstances, slowRenderTransform, validateContractPhases };
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { camelCase as camelCase$1,
|
|
1
|
+
import { camelCase as camelCase$1, Imports, Import, RenderFragment, JayUnknown, JayImportedType, JayString, isObjectType as isObjectType$1, isImportedType, isRecursiveType, WithValidations, isArrayType as isArrayType$1, isAtomicType, isPromiseType, isEnumType, GenerateTarget, hasRefs, JayTypeAlias, JayUnionType, mkRefsTree, equalJayTypes, mkRef, JayComponentType, JayHTMLType, getModeFileExtension, isHtmlStringType, RuntimeMode, nestRefs, mergeRefsTrees, JayNumber, SourceFileFormat, JayEnumType, JayObjectType, JayArrayType, JayPromiseType, resolvePrimitiveType, JayRecursiveType, JAY_CONTRACT_EXTENSION as JAY_CONTRACT_EXTENSION$1, ImportsFor, JAY_FULLSTACK_COMPONENTS, hoistFreeRefs, freeRefsAugmentedRefType, isComponentType as isComponentType$1, JayErrorType, JayOptionalType, JayRecordType, isOptionalType, isRecordType, resolvePluginManifest, resolvePluginComponent } from "@jay-framework/compiler-shared";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { getLogger } from "@jay-framework/logger";
|
|
4
4
|
import fs from "fs/promises";
|
|
5
5
|
import fs$1 from "fs";
|
|
6
|
-
import {
|
|
6
|
+
import { createTypeAnalyzer } from "@jay-framework/compiler-analyze-exported-types";
|
|
7
7
|
import { createRequire } from "module";
|
|
8
8
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
9
9
|
function getDefaultExportFromCjs$1(x) {
|
|
@@ -5775,6 +5775,89 @@ parse$1.valid = valid_1.default;
|
|
|
5775
5775
|
parse$1.Node = node_1.default;
|
|
5776
5776
|
parse$1.TextNode = text_1.default;
|
|
5777
5777
|
parse$1.NodeType = type_1.default;
|
|
5778
|
+
const DEV_SRC_ATTR = "jay-dev-src";
|
|
5779
|
+
const DEV_ITEM_ATTR = "jay-dev-item";
|
|
5780
|
+
const DEV_REGION_ATTR = "jay-dev-region";
|
|
5781
|
+
const DEV_REGION_PROPS_ATTR = "jay-dev-region-props";
|
|
5782
|
+
const DEV_REGION_SRC_ATTR = "jay-dev-region-src";
|
|
5783
|
+
const REGION_NON_PROP_ATTRS = /* @__PURE__ */ new Set([
|
|
5784
|
+
"ref",
|
|
5785
|
+
"if",
|
|
5786
|
+
"foreach",
|
|
5787
|
+
"trackby",
|
|
5788
|
+
"key",
|
|
5789
|
+
DEV_SRC_ATTR,
|
|
5790
|
+
DEV_ITEM_ATTR,
|
|
5791
|
+
DEV_REGION_ATTR,
|
|
5792
|
+
DEV_REGION_PROPS_ATTR
|
|
5793
|
+
]);
|
|
5794
|
+
function injectDevMarkers(jayHtml) {
|
|
5795
|
+
const root = parse_2(jayHtml, {
|
|
5796
|
+
comment: true,
|
|
5797
|
+
blockTextElements: { script: true, style: true }
|
|
5798
|
+
});
|
|
5799
|
+
const body = root.querySelector("body");
|
|
5800
|
+
if (!body) return jayHtml;
|
|
5801
|
+
const lineStarts = computeLineStarts(jayHtml);
|
|
5802
|
+
for (const child of body.childNodes) {
|
|
5803
|
+
if (child.nodeType === NodeType.ELEMENT_NODE) {
|
|
5804
|
+
markElement(child, lineStarts);
|
|
5805
|
+
}
|
|
5806
|
+
}
|
|
5807
|
+
return root.toString();
|
|
5808
|
+
}
|
|
5809
|
+
function markElement(element, lineStarts) {
|
|
5810
|
+
const [start, end] = element.range;
|
|
5811
|
+
if (!element.getAttribute(DEV_SRC_ATTR)) {
|
|
5812
|
+
const fromLine = offsetToLine(start, lineStarts);
|
|
5813
|
+
const toLine = offsetToLine(Math.max(start, end - 1), lineStarts);
|
|
5814
|
+
element.setAttribute(DEV_SRC_ATTR, `${fromLine}:${toLine}`);
|
|
5815
|
+
}
|
|
5816
|
+
const forEach = element.getAttribute("forEach");
|
|
5817
|
+
const trackBy = element.getAttribute("trackBy");
|
|
5818
|
+
if (forEach && trackBy && !element.getAttribute(DEV_ITEM_ATTR)) {
|
|
5819
|
+
element.setAttribute(DEV_ITEM_ATTR, `{${trackBy}}`);
|
|
5820
|
+
}
|
|
5821
|
+
const tagName = (element.rawTagName || "").toLowerCase();
|
|
5822
|
+
if (tagName.startsWith("jay:") && !element.getAttribute(DEV_REGION_ATTR)) {
|
|
5823
|
+
element.setAttribute(DEV_REGION_ATTR, tagName.slice(4));
|
|
5824
|
+
const props = {};
|
|
5825
|
+
for (const [key, value] of Object.entries(element.attributes)) {
|
|
5826
|
+
if (REGION_NON_PROP_ATTRS.has(key.toLowerCase())) continue;
|
|
5827
|
+
if (typeof value === "string" && !value.includes("{")) props[key] = value;
|
|
5828
|
+
}
|
|
5829
|
+
if (Object.keys(props).length > 0) {
|
|
5830
|
+
element.setAttribute(DEV_REGION_PROPS_ATTR, encodeURIComponent(JSON.stringify(props)));
|
|
5831
|
+
}
|
|
5832
|
+
}
|
|
5833
|
+
for (const child of element.childNodes) {
|
|
5834
|
+
if (child.nodeType === NodeType.ELEMENT_NODE) {
|
|
5835
|
+
markElement(child, lineStarts);
|
|
5836
|
+
}
|
|
5837
|
+
}
|
|
5838
|
+
}
|
|
5839
|
+
function computeLineStarts(src) {
|
|
5840
|
+
const starts = [0];
|
|
5841
|
+
for (let i = 0; i < src.length; i++) {
|
|
5842
|
+
if (src.charCodeAt(i) === 10) starts.push(i + 1);
|
|
5843
|
+
}
|
|
5844
|
+
return starts;
|
|
5845
|
+
}
|
|
5846
|
+
function offsetToLine(offset, lineStarts) {
|
|
5847
|
+
let lo = 0;
|
|
5848
|
+
let hi = lineStarts.length - 1;
|
|
5849
|
+
let line = 0;
|
|
5850
|
+
while (lo <= hi) {
|
|
5851
|
+
const mid = lo + hi >> 1;
|
|
5852
|
+
if (lineStarts[mid] <= offset) {
|
|
5853
|
+
line = mid;
|
|
5854
|
+
lo = mid + 1;
|
|
5855
|
+
} else {
|
|
5856
|
+
hi = mid - 1;
|
|
5857
|
+
}
|
|
5858
|
+
}
|
|
5859
|
+
return line + 1;
|
|
5860
|
+
}
|
|
5778
5861
|
const COORD_ATTR$1 = "jay-coordinate-base";
|
|
5779
5862
|
const SCOPE_ATTR = "jay-scope";
|
|
5780
5863
|
const AUTO_REF_PATTERN = /^AR\d+$/;
|
|
@@ -5877,6 +5960,20 @@ function assignHeadlessInstance(element, contractName, ref, parentCoord, options
|
|
|
5877
5960
|
children.forEach((child) => wrapper.appendChild(child));
|
|
5878
5961
|
element.appendChild(wrapper);
|
|
5879
5962
|
}
|
|
5963
|
+
const devSrc = element.getAttribute(DEV_SRC_ATTR);
|
|
5964
|
+
const devRegion = element.getAttribute(DEV_REGION_ATTR);
|
|
5965
|
+
const devRegionProps = element.getAttribute(DEV_REGION_PROPS_ATTR);
|
|
5966
|
+
if (devRegion) {
|
|
5967
|
+
const regionRoot = element.childNodes.find((n) => n.nodeType === NodeType.ELEMENT_NODE);
|
|
5968
|
+
if (regionRoot) {
|
|
5969
|
+
regionRoot.setAttribute(DEV_REGION_ATTR, devRegion);
|
|
5970
|
+
if (devRegionProps) regionRoot.setAttribute(DEV_REGION_PROPS_ATTR, devRegionProps);
|
|
5971
|
+
if (devSrc) regionRoot.setAttribute(DEV_REGION_SRC_ATTR, devSrc);
|
|
5972
|
+
}
|
|
5973
|
+
}
|
|
5974
|
+
if (devSrc) element.removeAttribute(DEV_SRC_ATTR);
|
|
5975
|
+
if (devRegion) element.removeAttribute(DEV_REGION_ATTR);
|
|
5976
|
+
if (devRegionProps) element.removeAttribute(DEV_REGION_PROPS_ATTR);
|
|
5880
5977
|
walkChildren(element, childScopeId, childScopeId, options, counter);
|
|
5881
5978
|
}
|
|
5882
5979
|
function walkForEachChildren(parent, itemScopeId, options, counter) {
|
|
@@ -13950,6 +14047,127 @@ function parseConditionForSlowRender(expr, slowContext, vars) {
|
|
|
13950
14047
|
return { type: "runtime", code: fragment, simplifiedExpr: expr };
|
|
13951
14048
|
}
|
|
13952
14049
|
}
|
|
14050
|
+
const htmlElementTagNameMap = {
|
|
14051
|
+
a: "HTMLAnchorElement",
|
|
14052
|
+
abbr: "HTMLElement",
|
|
14053
|
+
address: "HTMLElement",
|
|
14054
|
+
applet: "HTMLAppletElement",
|
|
14055
|
+
area: "HTMLAreaElement",
|
|
14056
|
+
article: "HTMLElement",
|
|
14057
|
+
aside: "HTMLElement",
|
|
14058
|
+
audio: "HTMLAudioElement",
|
|
14059
|
+
b: "HTMLElement",
|
|
14060
|
+
base: "HTMLBaseElement",
|
|
14061
|
+
basefont: "HTMLBaseFontElement",
|
|
14062
|
+
bdi: "HTMLElement",
|
|
14063
|
+
bdo: "HTMLElement",
|
|
14064
|
+
blockquote: "HTMLQuoteElement",
|
|
14065
|
+
body: "HTMLBodyElement",
|
|
14066
|
+
br: "HTMLBRElement",
|
|
14067
|
+
button: "HTMLButtonElement",
|
|
14068
|
+
canvas: "HTMLCanvasElement",
|
|
14069
|
+
caption: "HTMLTableCaptionElement",
|
|
14070
|
+
cite: "HTMLElement",
|
|
14071
|
+
code: "HTMLElement",
|
|
14072
|
+
col: "HTMLTableColElement",
|
|
14073
|
+
colgroup: "HTMLTableColElement",
|
|
14074
|
+
data: "HTMLDataElement",
|
|
14075
|
+
datalist: "HTMLDataListElement",
|
|
14076
|
+
dd: "HTMLElement",
|
|
14077
|
+
del: "HTMLModElement",
|
|
14078
|
+
details: "HTMLDetailsElement",
|
|
14079
|
+
dfn: "HTMLElement",
|
|
14080
|
+
dialog: "HTMLDialogElement",
|
|
14081
|
+
dir: "HTMLDirectoryElement",
|
|
14082
|
+
div: "HTMLDivElement",
|
|
14083
|
+
dl: "HTMLDListElement",
|
|
14084
|
+
dt: "HTMLElement",
|
|
14085
|
+
em: "HTMLElement",
|
|
14086
|
+
embed: "HTMLEmbedElement",
|
|
14087
|
+
fieldset: "HTMLFieldSetElement",
|
|
14088
|
+
figcaption: "HTMLElement",
|
|
14089
|
+
figure: "HTMLElement",
|
|
14090
|
+
font: "HTMLFontElement",
|
|
14091
|
+
footer: "HTMLElement",
|
|
14092
|
+
form: "HTMLFormElement",
|
|
14093
|
+
frame: "HTMLFrameElement",
|
|
14094
|
+
frameset: "HTMLFrameSetElement",
|
|
14095
|
+
h1: "HTMLHeadingElement",
|
|
14096
|
+
h2: "HTMLHeadingElement",
|
|
14097
|
+
h3: "HTMLHeadingElement",
|
|
14098
|
+
h4: "HTMLHeadingElement",
|
|
14099
|
+
h5: "HTMLHeadingElement",
|
|
14100
|
+
h6: "HTMLHeadingElement",
|
|
14101
|
+
head: "HTMLHeadElement",
|
|
14102
|
+
header: "HTMLElement",
|
|
14103
|
+
hgroup: "HTMLElement",
|
|
14104
|
+
hr: "HTMLHRElement",
|
|
14105
|
+
html: "HTMLHtmlElement",
|
|
14106
|
+
i: "HTMLElement",
|
|
14107
|
+
iframe: "HTMLIFrameElement",
|
|
14108
|
+
img: "HTMLImageElement",
|
|
14109
|
+
input: "HTMLInputElement",
|
|
14110
|
+
ins: "HTMLModElement",
|
|
14111
|
+
kbd: "HTMLElement",
|
|
14112
|
+
label: "HTMLLabelElement",
|
|
14113
|
+
legend: "HTMLLegendElement",
|
|
14114
|
+
li: "HTMLLIElement",
|
|
14115
|
+
link: "HTMLLinkElement",
|
|
14116
|
+
main: "HTMLElement",
|
|
14117
|
+
map: "HTMLMapElement",
|
|
14118
|
+
mark: "HTMLElement",
|
|
14119
|
+
marquee: "HTMLMarqueeElement",
|
|
14120
|
+
menu: "HTMLMenuElement",
|
|
14121
|
+
meta: "HTMLMetaElement",
|
|
14122
|
+
meter: "HTMLMeterElement",
|
|
14123
|
+
nav: "HTMLElement",
|
|
14124
|
+
noscript: "HTMLElement",
|
|
14125
|
+
object: "HTMLObjectElement",
|
|
14126
|
+
ol: "HTMLOListElement",
|
|
14127
|
+
optgroup: "HTMLOptGroupElement",
|
|
14128
|
+
option: "HTMLOptionElement",
|
|
14129
|
+
output: "HTMLOutputElement",
|
|
14130
|
+
p: "HTMLParagraphElement",
|
|
14131
|
+
param: "HTMLParamElement",
|
|
14132
|
+
picture: "HTMLPictureElement",
|
|
14133
|
+
pre: "HTMLPreElement",
|
|
14134
|
+
progress: "HTMLProgressElement",
|
|
14135
|
+
q: "HTMLQuoteElement",
|
|
14136
|
+
rp: "HTMLElement",
|
|
14137
|
+
rt: "HTMLElement",
|
|
14138
|
+
ruby: "HTMLElement",
|
|
14139
|
+
s: "HTMLElement",
|
|
14140
|
+
samp: "HTMLElement",
|
|
14141
|
+
script: "HTMLScriptElement",
|
|
14142
|
+
section: "HTMLElement",
|
|
14143
|
+
select: "HTMLSelectElement",
|
|
14144
|
+
slot: "HTMLSlotElement",
|
|
14145
|
+
small: "HTMLElement",
|
|
14146
|
+
source: "HTMLSourceElement",
|
|
14147
|
+
span: "HTMLSpanElement",
|
|
14148
|
+
strong: "HTMLElement",
|
|
14149
|
+
style: "HTMLStyleElement",
|
|
14150
|
+
sub: "HTMLElement",
|
|
14151
|
+
summary: "HTMLElement",
|
|
14152
|
+
sup: "HTMLElement",
|
|
14153
|
+
table: "HTMLTableElement",
|
|
14154
|
+
tbody: "HTMLTableSectionElement",
|
|
14155
|
+
td: "HTMLTableDataCellElement",
|
|
14156
|
+
template: "HTMLTemplateElement",
|
|
14157
|
+
textarea: "HTMLTextAreaElement",
|
|
14158
|
+
tfoot: "HTMLTableSectionElement",
|
|
14159
|
+
th: "HTMLTableHeaderCellElement",
|
|
14160
|
+
thead: "HTMLTableSectionElement",
|
|
14161
|
+
time: "HTMLTimeElement",
|
|
14162
|
+
title: "HTMLTitleElement",
|
|
14163
|
+
tr: "HTMLTableRowElement",
|
|
14164
|
+
track: "HTMLTrackElement",
|
|
14165
|
+
u: "HTMLElement",
|
|
14166
|
+
ul: "HTMLUListElement",
|
|
14167
|
+
var: "HTMLElement",
|
|
14168
|
+
video: "HTMLVideoElement",
|
|
14169
|
+
wbr: "HTMLElement"
|
|
14170
|
+
};
|
|
13953
14171
|
function kebabToCamel(str2) {
|
|
13954
14172
|
return str2.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
13955
14173
|
}
|
|
@@ -14044,7 +14262,7 @@ function getComponentName(tagName, importedSymbols, headlessContractNames) {
|
|
|
14044
14262
|
}
|
|
14045
14263
|
return { name: componentName, kind: "unknown" };
|
|
14046
14264
|
}
|
|
14047
|
-
if (importedSymbols.has(tagName)) {
|
|
14265
|
+
if (importedSymbols.has(tagName) && !(tagName in htmlElementTagNameMap)) {
|
|
14048
14266
|
return { name: tagName, kind: "headful" };
|
|
14049
14267
|
}
|
|
14050
14268
|
return null;
|
|
@@ -14157,127 +14375,6 @@ class Indent {
|
|
|
14157
14375
|
return code.split("\n").map((_) => _.length > 0 ? indent + _ : _).join("\n");
|
|
14158
14376
|
}
|
|
14159
14377
|
}
|
|
14160
|
-
const htmlElementTagNameMap = {
|
|
14161
|
-
a: "HTMLAnchorElement",
|
|
14162
|
-
abbr: "HTMLElement",
|
|
14163
|
-
address: "HTMLElement",
|
|
14164
|
-
applet: "HTMLAppletElement",
|
|
14165
|
-
area: "HTMLAreaElement",
|
|
14166
|
-
article: "HTMLElement",
|
|
14167
|
-
aside: "HTMLElement",
|
|
14168
|
-
audio: "HTMLAudioElement",
|
|
14169
|
-
b: "HTMLElement",
|
|
14170
|
-
base: "HTMLBaseElement",
|
|
14171
|
-
basefont: "HTMLBaseFontElement",
|
|
14172
|
-
bdi: "HTMLElement",
|
|
14173
|
-
bdo: "HTMLElement",
|
|
14174
|
-
blockquote: "HTMLQuoteElement",
|
|
14175
|
-
body: "HTMLBodyElement",
|
|
14176
|
-
br: "HTMLBRElement",
|
|
14177
|
-
button: "HTMLButtonElement",
|
|
14178
|
-
canvas: "HTMLCanvasElement",
|
|
14179
|
-
caption: "HTMLTableCaptionElement",
|
|
14180
|
-
cite: "HTMLElement",
|
|
14181
|
-
code: "HTMLElement",
|
|
14182
|
-
col: "HTMLTableColElement",
|
|
14183
|
-
colgroup: "HTMLTableColElement",
|
|
14184
|
-
data: "HTMLDataElement",
|
|
14185
|
-
datalist: "HTMLDataListElement",
|
|
14186
|
-
dd: "HTMLElement",
|
|
14187
|
-
del: "HTMLModElement",
|
|
14188
|
-
details: "HTMLDetailsElement",
|
|
14189
|
-
dfn: "HTMLElement",
|
|
14190
|
-
dialog: "HTMLDialogElement",
|
|
14191
|
-
dir: "HTMLDirectoryElement",
|
|
14192
|
-
div: "HTMLDivElement",
|
|
14193
|
-
dl: "HTMLDListElement",
|
|
14194
|
-
dt: "HTMLElement",
|
|
14195
|
-
em: "HTMLElement",
|
|
14196
|
-
embed: "HTMLEmbedElement",
|
|
14197
|
-
fieldset: "HTMLFieldSetElement",
|
|
14198
|
-
figcaption: "HTMLElement",
|
|
14199
|
-
figure: "HTMLElement",
|
|
14200
|
-
font: "HTMLFontElement",
|
|
14201
|
-
footer: "HTMLElement",
|
|
14202
|
-
form: "HTMLFormElement",
|
|
14203
|
-
frame: "HTMLFrameElement",
|
|
14204
|
-
frameset: "HTMLFrameSetElement",
|
|
14205
|
-
h1: "HTMLHeadingElement",
|
|
14206
|
-
h2: "HTMLHeadingElement",
|
|
14207
|
-
h3: "HTMLHeadingElement",
|
|
14208
|
-
h4: "HTMLHeadingElement",
|
|
14209
|
-
h5: "HTMLHeadingElement",
|
|
14210
|
-
h6: "HTMLHeadingElement",
|
|
14211
|
-
head: "HTMLHeadElement",
|
|
14212
|
-
header: "HTMLElement",
|
|
14213
|
-
hgroup: "HTMLElement",
|
|
14214
|
-
hr: "HTMLHRElement",
|
|
14215
|
-
html: "HTMLHtmlElement",
|
|
14216
|
-
i: "HTMLElement",
|
|
14217
|
-
iframe: "HTMLIFrameElement",
|
|
14218
|
-
img: "HTMLImageElement",
|
|
14219
|
-
input: "HTMLInputElement",
|
|
14220
|
-
ins: "HTMLModElement",
|
|
14221
|
-
kbd: "HTMLElement",
|
|
14222
|
-
label: "HTMLLabelElement",
|
|
14223
|
-
legend: "HTMLLegendElement",
|
|
14224
|
-
li: "HTMLLIElement",
|
|
14225
|
-
link: "HTMLLinkElement",
|
|
14226
|
-
main: "HTMLElement",
|
|
14227
|
-
map: "HTMLMapElement",
|
|
14228
|
-
mark: "HTMLElement",
|
|
14229
|
-
marquee: "HTMLMarqueeElement",
|
|
14230
|
-
menu: "HTMLMenuElement",
|
|
14231
|
-
meta: "HTMLMetaElement",
|
|
14232
|
-
meter: "HTMLMeterElement",
|
|
14233
|
-
nav: "HTMLElement",
|
|
14234
|
-
noscript: "HTMLElement",
|
|
14235
|
-
object: "HTMLObjectElement",
|
|
14236
|
-
ol: "HTMLOListElement",
|
|
14237
|
-
optgroup: "HTMLOptGroupElement",
|
|
14238
|
-
option: "HTMLOptionElement",
|
|
14239
|
-
output: "HTMLOutputElement",
|
|
14240
|
-
p: "HTMLParagraphElement",
|
|
14241
|
-
param: "HTMLParamElement",
|
|
14242
|
-
picture: "HTMLPictureElement",
|
|
14243
|
-
pre: "HTMLPreElement",
|
|
14244
|
-
progress: "HTMLProgressElement",
|
|
14245
|
-
q: "HTMLQuoteElement",
|
|
14246
|
-
rp: "HTMLElement",
|
|
14247
|
-
rt: "HTMLElement",
|
|
14248
|
-
ruby: "HTMLElement",
|
|
14249
|
-
s: "HTMLElement",
|
|
14250
|
-
samp: "HTMLElement",
|
|
14251
|
-
script: "HTMLScriptElement",
|
|
14252
|
-
section: "HTMLElement",
|
|
14253
|
-
select: "HTMLSelectElement",
|
|
14254
|
-
slot: "HTMLSlotElement",
|
|
14255
|
-
small: "HTMLElement",
|
|
14256
|
-
source: "HTMLSourceElement",
|
|
14257
|
-
span: "HTMLSpanElement",
|
|
14258
|
-
strong: "HTMLElement",
|
|
14259
|
-
style: "HTMLStyleElement",
|
|
14260
|
-
sub: "HTMLElement",
|
|
14261
|
-
summary: "HTMLElement",
|
|
14262
|
-
sup: "HTMLElement",
|
|
14263
|
-
table: "HTMLTableElement",
|
|
14264
|
-
tbody: "HTMLTableSectionElement",
|
|
14265
|
-
td: "HTMLTableDataCellElement",
|
|
14266
|
-
template: "HTMLTemplateElement",
|
|
14267
|
-
textarea: "HTMLTextAreaElement",
|
|
14268
|
-
tfoot: "HTMLTableSectionElement",
|
|
14269
|
-
th: "HTMLTableHeaderCellElement",
|
|
14270
|
-
thead: "HTMLTableSectionElement",
|
|
14271
|
-
time: "HTMLTimeElement",
|
|
14272
|
-
title: "HTMLTitleElement",
|
|
14273
|
-
tr: "HTMLTableRowElement",
|
|
14274
|
-
track: "HTMLTrackElement",
|
|
14275
|
-
u: "HTMLElement",
|
|
14276
|
-
ul: "HTMLUListElement",
|
|
14277
|
-
var: "HTMLElement",
|
|
14278
|
-
video: "HTMLVideoElement",
|
|
14279
|
-
wbr: "HTMLElement"
|
|
14280
|
-
};
|
|
14281
14378
|
const isComponentType = (type2) => type2 instanceof JayComponentType || type2 instanceof JayTypeAlias || type2 instanceof JayUnionType && type2.ofTypes.every(isComponentType);
|
|
14282
14379
|
const isComponentRef = (ref) => isComponentType(ref.elementType);
|
|
14283
14380
|
const isCollectionRef = (ref) => ref.repeated;
|
|
@@ -14391,27 +14488,42 @@ function elementNameToJayType(element) {
|
|
|
14391
14488
|
}
|
|
14392
14489
|
class RefNameGenerator {
|
|
14393
14490
|
nextId = 1;
|
|
14394
|
-
|
|
14491
|
+
constNameOwners = /* @__PURE__ */ new Map();
|
|
14395
14492
|
newAutoRefNameGenerator() {
|
|
14396
14493
|
return "aR" + this.nextId++;
|
|
14397
14494
|
}
|
|
14398
|
-
|
|
14495
|
+
/**
|
|
14496
|
+
* Allocate a unique local const name for a ref.
|
|
14497
|
+
*
|
|
14498
|
+
* A const name is reused (returned unchanged) only when the SAME ref is requested again in the
|
|
14499
|
+
* same render scope — "same ref" being identified by `identity`, not by `refName`. `refName` is
|
|
14500
|
+
* only the base used to build the const (e.g. `input` → `refInput`); `identity` is the ref's
|
|
14501
|
+
* stable key, which for an imported/headless ref is its full template path (e.g.
|
|
14502
|
+
* `form.firstName.input`). This distinguishes "one ref used by several elements" (reuse) from
|
|
14503
|
+
* "two distinct refs that happen to share a leaf tag name" (DL#226) — the latter get distinct
|
|
14504
|
+
* consts (`refInput`, `refInput2`, …) instead of colliding.
|
|
14505
|
+
*
|
|
14506
|
+
* `identity` defaults to `refName`, which preserves prior behavior for page-own refs where
|
|
14507
|
+
* `refName` is already the full, unique ref path.
|
|
14508
|
+
*/
|
|
14509
|
+
newConstantName(refName, variables, identity = refName) {
|
|
14399
14510
|
let suffix = 2;
|
|
14400
14511
|
let constName = camelCase$1(`ref ${refName}`);
|
|
14401
|
-
while (this.
|
|
14402
|
-
|
|
14512
|
+
while (this.constNameOwners.has(constName)) {
|
|
14513
|
+
const owner = this.constNameOwners.get(constName);
|
|
14514
|
+
if (owner.variables === variables && owner.identity === identity) {
|
|
14403
14515
|
return constName;
|
|
14404
14516
|
}
|
|
14405
14517
|
constName = camelCase$1(`ref ${refName}${suffix++}`);
|
|
14406
14518
|
}
|
|
14407
|
-
this.
|
|
14519
|
+
this.constNameOwners.set(constName, { variables, identity });
|
|
14408
14520
|
return constName;
|
|
14409
14521
|
}
|
|
14410
14522
|
/** Create a snapshot of the current state for use in parallel code generation paths. */
|
|
14411
14523
|
clone() {
|
|
14412
14524
|
const copy = new RefNameGenerator();
|
|
14413
14525
|
copy.nextId = this.nextId;
|
|
14414
|
-
copy.
|
|
14526
|
+
copy.constNameOwners = new Map(this.constNameOwners);
|
|
14415
14527
|
return copy;
|
|
14416
14528
|
}
|
|
14417
14529
|
}
|
|
@@ -15031,6 +15143,9 @@ const DIRECTIVE_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
|
15031
15143
|
// DL#202 — template-side content-slot marker. A pure build-time authoring directive read by the
|
|
15032
15144
|
// drift/sync differ; it rides into the flattened page copy (verbatim flatten) but must never render.
|
|
15033
15145
|
"jay-content",
|
|
15146
|
+
// DL#231 — editing-policy marker (`jay-policy="<name>"`) on a plain element or region tag. Read only
|
|
15147
|
+
// by the editing-policy engine; never a component prop or a rendered attribute.
|
|
15148
|
+
"jay-policy",
|
|
15034
15149
|
AsyncDirectiveTypes.loading.directive,
|
|
15035
15150
|
AsyncDirectiveTypes.resolved.directive,
|
|
15036
15151
|
AsyncDirectiveTypes.rejected.directive
|
|
@@ -21641,7 +21756,11 @@ function renderElementRef$1(element, { dynamicRef, variables, importedRefNameToR
|
|
|
21641
21756
|
if (element.attributes.ref) {
|
|
21642
21757
|
if (importedRefNameToRef.has(element.attributes.ref)) {
|
|
21643
21758
|
const importedRef = importedRefNameToRef.get(element.attributes.ref);
|
|
21644
|
-
const uniqueConstName = refNameGenerator.newConstantName(
|
|
21759
|
+
const uniqueConstName = refNameGenerator.newConstantName(
|
|
21760
|
+
importedRef.ref,
|
|
21761
|
+
variables,
|
|
21762
|
+
element.attributes.ref
|
|
21763
|
+
);
|
|
21645
21764
|
const refWithUniqueConstName = mkRef(
|
|
21646
21765
|
importedRef.ref,
|
|
21647
21766
|
element.attributes.ref,
|
|
@@ -21715,7 +21834,8 @@ function renderChildCompProps$1(element, { variables }, contractProps) {
|
|
|
21715
21834
|
Object.keys(attributes2).forEach((attrName) => {
|
|
21716
21835
|
let attrCanonical = attrName.toLowerCase();
|
|
21717
21836
|
let attrKey = attrName.match(attributesRequiresQuotes$1) ? `"${attrName}"` : attrName;
|
|
21718
|
-
if (attrCanonical === "if" || attrCanonical === "foreach" || attrCanonical === "trackby" || attrCanonical === "jay-coordinate-base" || attrCanonical === "jay-scope"
|
|
21837
|
+
if (attrCanonical === "if" || attrCanonical === "foreach" || attrCanonical === "trackby" || attrCanonical === "jay-coordinate-base" || attrCanonical === "jay-scope" || // DL#231 — editing-policy marker on a region tag is a bare directive, never a component prop.
|
|
21838
|
+
attrCanonical === "jay-policy")
|
|
21719
21839
|
return;
|
|
21720
21840
|
if (attrCanonical === "props") {
|
|
21721
21841
|
isPropsDirectAssignment = true;
|
|
@@ -21750,7 +21870,11 @@ function renderChildCompProps$1(element, { variables }, contractProps) {
|
|
|
21750
21870
|
function renderChildCompRef$1(element, { dynamicRef, variables, refNameGenerator, importedRefNameToRef }, componentName) {
|
|
21751
21871
|
if (importedRefNameToRef.has(element.attributes.ref)) {
|
|
21752
21872
|
const importedRef = importedRefNameToRef.get(element.attributes.ref);
|
|
21753
|
-
const uniqueConstName = refNameGenerator.newConstantName(
|
|
21873
|
+
const uniqueConstName = refNameGenerator.newConstantName(
|
|
21874
|
+
importedRef.ref,
|
|
21875
|
+
variables,
|
|
21876
|
+
element.attributes.ref
|
|
21877
|
+
);
|
|
21754
21878
|
const refWithUniqueConstName = mkRef(
|
|
21755
21879
|
importedRef.ref,
|
|
21756
21880
|
element.attributes.ref,
|
|
@@ -30927,10 +31051,22 @@ const YAML = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty
|
|
|
30927
31051
|
visitAsync
|
|
30928
31052
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
30929
31053
|
const require$1 = createRequire(import.meta.url);
|
|
30930
|
-
|
|
30931
|
-
|
|
30932
|
-
|
|
30933
|
-
|
|
31054
|
+
function createAnalysisContext() {
|
|
31055
|
+
const analyzer = createTypeAnalyzer();
|
|
31056
|
+
return {
|
|
31057
|
+
analyzeExportedTypes(fullPath, options) {
|
|
31058
|
+
return analyzer.analyze(fullPath, options);
|
|
31059
|
+
},
|
|
31060
|
+
noteFileChanged(changedPath) {
|
|
31061
|
+
if (changedPath) analyzer.noteFileChanged(changedPath);
|
|
31062
|
+
else analyzer.clear();
|
|
31063
|
+
},
|
|
31064
|
+
clear() {
|
|
31065
|
+
analyzer.clear();
|
|
31066
|
+
}
|
|
31067
|
+
};
|
|
31068
|
+
}
|
|
31069
|
+
const baseResolverMethods = {
|
|
30934
31070
|
loadContract(fullPath) {
|
|
30935
31071
|
const content = fs$1.readFileSync(fullPath).toString();
|
|
30936
31072
|
return parseContract(content, fullPath);
|
|
@@ -31008,6 +31144,20 @@ const JAY_IMPORT_RESOLVER = {
|
|
|
31008
31144
|
}
|
|
31009
31145
|
}
|
|
31010
31146
|
};
|
|
31147
|
+
function createJayImportResolver(context = createAnalysisContext()) {
|
|
31148
|
+
return {
|
|
31149
|
+
...baseResolverMethods,
|
|
31150
|
+
analyzeExportedTypes: (fullPath, options) => context.analyzeExportedTypes(fullPath, options)
|
|
31151
|
+
};
|
|
31152
|
+
}
|
|
31153
|
+
const defaultAnalysisContext = createAnalysisContext();
|
|
31154
|
+
const JAY_IMPORT_RESOLVER = createJayImportResolver(defaultAnalysisContext);
|
|
31155
|
+
function clearExportedTypesCache() {
|
|
31156
|
+
defaultAnalysisContext.clear();
|
|
31157
|
+
}
|
|
31158
|
+
function noteExportedTypesFileChanged(changedPath) {
|
|
31159
|
+
defaultAnalysisContext.noteFileChanged(changedPath);
|
|
31160
|
+
}
|
|
31011
31161
|
function buildPhaseMap(contract, headlessContracts, importResolver) {
|
|
31012
31162
|
const phaseMap = /* @__PURE__ */ new Map();
|
|
31013
31163
|
function processTag(tag, pathPrefix, parentPhase = "slow", contractDir) {
|
|
@@ -31482,6 +31632,11 @@ function hasSlowPhaseProperties(contract) {
|
|
|
31482
31632
|
}
|
|
31483
31633
|
export {
|
|
31484
31634
|
ContractTagType,
|
|
31635
|
+
DEV_ITEM_ATTR,
|
|
31636
|
+
DEV_REGION_ATTR,
|
|
31637
|
+
DEV_REGION_PROPS_ATTR,
|
|
31638
|
+
DEV_REGION_SRC_ATTR,
|
|
31639
|
+
DEV_SRC_ATTR,
|
|
31485
31640
|
ERROR_CONTRACT,
|
|
31486
31641
|
ERROR_CONTRACT_MODULE,
|
|
31487
31642
|
ERROR_CONTRACT_NAME,
|
|
@@ -31490,11 +31645,14 @@ export {
|
|
|
31490
31645
|
assignCoordinates,
|
|
31491
31646
|
assignCoordinatesToJayHtml,
|
|
31492
31647
|
buildInstanceCoordinateKey,
|
|
31648
|
+
clearExportedTypesCache,
|
|
31493
31649
|
compileAction,
|
|
31494
31650
|
compileContract,
|
|
31495
31651
|
contractToAllPhaseViewStates,
|
|
31496
31652
|
contractToImportsViewStateAndRefs,
|
|
31497
31653
|
contractToPhaseViewState,
|
|
31654
|
+
createAnalysisContext,
|
|
31655
|
+
createJayImportResolver,
|
|
31498
31656
|
createPhaseContract,
|
|
31499
31657
|
defaultContractResolver,
|
|
31500
31658
|
discoverHeadlessInstances,
|
|
@@ -31512,9 +31670,11 @@ export {
|
|
|
31512
31670
|
getLinkedContractDir,
|
|
31513
31671
|
hasSlowPhaseProperties,
|
|
31514
31672
|
htmlElementTagNameMap,
|
|
31673
|
+
injectDevMarkers,
|
|
31515
31674
|
isBuiltInErrorContract,
|
|
31516
31675
|
isTagInPhase,
|
|
31517
31676
|
loadLinkedContract,
|
|
31677
|
+
noteExportedTypesFileChanged,
|
|
31518
31678
|
parseAction,
|
|
31519
31679
|
parseContract,
|
|
31520
31680
|
parseEnumValues,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jay-framework/compiler-jay-html",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
},
|
|
35
35
|
"author": "",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@jay-framework/compiler-analyze-exported-types": "^0.
|
|
38
|
-
"@jay-framework/compiler-shared": "^0.
|
|
39
|
-
"@jay-framework/component": "^0.
|
|
40
|
-
"@jay-framework/logger": "^0.
|
|
41
|
-
"@jay-framework/runtime": "^0.
|
|
42
|
-
"@jay-framework/secure": "^0.
|
|
37
|
+
"@jay-framework/compiler-analyze-exported-types": "^0.26.0",
|
|
38
|
+
"@jay-framework/compiler-shared": "^0.26.0",
|
|
39
|
+
"@jay-framework/component": "^0.26.0",
|
|
40
|
+
"@jay-framework/logger": "^0.26.0",
|
|
41
|
+
"@jay-framework/runtime": "^0.26.0",
|
|
42
|
+
"@jay-framework/secure": "^0.26.0",
|
|
43
43
|
"@types/js-yaml": "^4.0.9",
|
|
44
44
|
"change-case": "^4.1.2",
|
|
45
45
|
"he": "^1.2.0",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@caiogondim/strip-margin": "^1.0.0",
|
|
55
|
-
"@jay-framework/4-react": "^0.
|
|
56
|
-
"@jay-framework/dev-environment": "^0.
|
|
55
|
+
"@jay-framework/4-react": "^0.26.0",
|
|
56
|
+
"@jay-framework/dev-environment": "^0.26.0",
|
|
57
57
|
"@testing-library/jest-dom": "^6.2.0",
|
|
58
58
|
"@types/js-beautify": "^1",
|
|
59
59
|
"@types/node": "^20.11.5",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"react-dom": "^18.2.0",
|
|
66
66
|
"rimraf": "^5.0.5",
|
|
67
67
|
"tsup": "^8.0.1",
|
|
68
|
-
"vite": "^
|
|
69
|
-
"vitest": "^1.
|
|
68
|
+
"vite": "^6.4.4",
|
|
69
|
+
"vitest": "^4.1.11"
|
|
70
70
|
}
|
|
71
71
|
}
|