Fix code quality violations and enhance ROUTE-EXISTS-01 rule
Implement JQHTML function cache ID system and fix bundle compilation Implement underscore prefix for system tables Fix JS syntax linter to support decorators and grant exception to Task system SPA: Update planning docs and wishlists with remaining features SPA: Document Navigation API abandonment and future enhancements Implement SPA browser integration with History API (Phase 1) Convert contacts view page to SPA action Convert clients pages to SPA actions and document conversion procedure SPA: Merge GET parameters and update documentation Implement SPA route URL generation in JavaScript and PHP Implement SPA bootstrap controller architecture Add SPA routing manual page (rsx:man spa) Add SPA routing documentation to CLAUDE.md Phase 4 Complete: Client-side SPA routing implementation Update get_routes() consumers for unified route structure Complete SPA Phase 3: PHP-side route type detection and is_spa flag Restore unified routes structure and Manifest_Query class Refactor route indexing and add SPA infrastructure Phase 3 Complete: SPA route registration in manifest Implement SPA Phase 2: Extract router code and test decorators Rename Jqhtml_Component to Component and complete SPA foundation setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
123
node_modules/@jqhtml/core/dist/component.d.ts
generated
vendored
123
node_modules/@jqhtml/core/dist/component.d.ts
generated
vendored
@@ -20,6 +20,7 @@ export declare class Jqhtml_Component {
|
||||
$: any;
|
||||
args: Record<string, any>;
|
||||
data: Record<string, any>;
|
||||
state: Record<string, any>;
|
||||
_cid: string;
|
||||
_ready_state: number;
|
||||
private _lifecycle_manager;
|
||||
@@ -35,12 +36,22 @@ export declare class Jqhtml_Component {
|
||||
private __loading;
|
||||
private _did_first_render;
|
||||
private _render_count;
|
||||
private _args_on_last_render;
|
||||
private _data_on_last_render;
|
||||
private __initial_data_snapshot;
|
||||
private __data_frozen;
|
||||
private _reload_debounced?;
|
||||
private next_reload_force_refresh;
|
||||
constructor(element?: any, args?: Record<string, any>);
|
||||
/**
|
||||
* Boot - Start the full component lifecycle
|
||||
* Called immediately after construction by instruction processor
|
||||
*/
|
||||
boot(): Promise<void>;
|
||||
/**
|
||||
* Internal boot method - starts component lifecycle
|
||||
* @private
|
||||
*/
|
||||
_boot(): Promise<void>;
|
||||
/**
|
||||
* Internal render phase - Create DOM structure
|
||||
* Called top-down (parent before children) when part of lifecycle
|
||||
@@ -79,11 +90,25 @@ export declare class Jqhtml_Component {
|
||||
* Load phase - Fetch data from APIs
|
||||
* Called bottom-up, fully parallel
|
||||
* NO DOM MODIFICATIONS ALLOWED IN THIS PHASE
|
||||
* @private - Internal lifecycle method, not for external use
|
||||
*/
|
||||
load(): Promise<void>;
|
||||
_load(): Promise<void>;
|
||||
/**
|
||||
* Ready phase - Component fully initialized
|
||||
* Called bottom-up (children before parent)
|
||||
* @private
|
||||
*/
|
||||
_ready(): Promise<void>;
|
||||
/**
|
||||
* Public API: Wait for component to be fully ready
|
||||
* Returns a promise that resolves when the component reaches ready state
|
||||
*
|
||||
* @example
|
||||
* await component.ready(); // Wait for component initialization
|
||||
*
|
||||
* @example
|
||||
* const child = this.id('child_component');
|
||||
* await child.ready(); // Wait for child to be ready
|
||||
*/
|
||||
ready(): Promise<void>;
|
||||
/**
|
||||
@@ -93,15 +118,60 @@ export declare class Jqhtml_Component {
|
||||
*/
|
||||
private _wait_for_children_ready;
|
||||
/**
|
||||
* Reinitialize the component - full reset and re-initialization
|
||||
* Wipes the innerHTML, resets data to empty, and runs full lifecycle
|
||||
* Reload component - re-fetch data and re-render (debounced)
|
||||
*
|
||||
* This is the public API that automatically debounces calls to _reload()
|
||||
* Multiple rapid calls to reload() will be coalesced into a single execution
|
||||
*
|
||||
* @param always_render - If true (default), always re-render after on_load().
|
||||
* If false, only re-render if data actually changed.
|
||||
*/
|
||||
reinitialize(): Promise<void>;
|
||||
reload(always_render?: boolean): Promise<void>;
|
||||
/**
|
||||
* Reload component - re-fetch data and re-render
|
||||
* Re-runs on_load(), always renders, and calls on_ready()
|
||||
* Refresh component - re-fetch data and re-render only if data changed (debounced)
|
||||
*
|
||||
* Similar to reload() but only re-renders if the data actually changed after on_load().
|
||||
* Useful for checking server for updates without forcing unnecessary re-renders.
|
||||
*
|
||||
* Uses the same debouncing as reload() and plays nice with it - if reload() is called
|
||||
* while refresh() is queued, reload() takes precedence and will always render.
|
||||
*/
|
||||
reload(): Promise<void>;
|
||||
refresh(): Promise<void>;
|
||||
/**
|
||||
* Internal reload implementation - re-fetch data and re-render
|
||||
*
|
||||
* COMPLETE RELOAD PROCESS (Source of Truth):
|
||||
*
|
||||
* STEP 1: Cache check (if args changed since last render)
|
||||
* - Generate cache key from component name + current args
|
||||
* - If cached data exists and is non-empty:
|
||||
* - Unfreeze this.data (temporarily)
|
||||
* - Hydrate this.data with cached data
|
||||
* - Re-freeze this.data
|
||||
* - Render immediately (stale-while-revalidate)
|
||||
* - Set rendered_from_cache flag
|
||||
*
|
||||
* STEP 2: Call on_load() to fetch fresh data
|
||||
* - Unfreeze this.data
|
||||
* - Restore this.data to on_create() snapshot
|
||||
* - Call on_load() directly (no _load() wrapper)
|
||||
* - Freeze this.data after completion
|
||||
* - If data changed and non-empty: write to cache
|
||||
*
|
||||
* STEP 3: Conditionally re-render
|
||||
* - If didn't render from cache yet, OR data changed after on_load():
|
||||
* - Call render() to update DOM
|
||||
*
|
||||
* STEP 3.5: Wait for all children to be ready
|
||||
* - Bottom-up ordering (children ready before parent)
|
||||
* - Same as main lifecycle
|
||||
*
|
||||
* STEP 4: Call on_ready()
|
||||
* - Always call on_ready() after reload completes
|
||||
*
|
||||
* @private - Use reload() instead (debounced wrapper)
|
||||
*/
|
||||
_reload(): Promise<void>;
|
||||
/**
|
||||
* Destroy the component and cleanup
|
||||
* Called automatically by MutationObserver when component is removed from DOM
|
||||
@@ -122,26 +192,27 @@ export declare class Jqhtml_Component {
|
||||
on_create(): void | Promise<void>;
|
||||
on_load(): Promise<void>;
|
||||
on_ready(): Promise<void>;
|
||||
on_destroy(): void | Promise<void>;
|
||||
on_stop(): void | Promise<void>;
|
||||
/**
|
||||
* Should component re-render after load?
|
||||
* By default, only re-renders if data has changed
|
||||
* Override to control re-rendering behavior
|
||||
*/
|
||||
should_rerender(): boolean;
|
||||
/**
|
||||
* Internal method to determine if component should re-render after on_load()
|
||||
* @private
|
||||
*/
|
||||
_should_rerender(): boolean;
|
||||
/**
|
||||
* Get component name for debugging
|
||||
*/
|
||||
component_name(): string;
|
||||
/**
|
||||
* Emit a jQuery event from component root
|
||||
*/
|
||||
emit(event_name: string, data?: any): void;
|
||||
/**
|
||||
* Register lifecycle event callback
|
||||
* Allowed events: 'render', 'create', 'load', 'ready', 'destroy'
|
||||
* Callbacks fire after the lifecycle method completes
|
||||
* If the event has already occurred, the callback fires immediately AND registers for future occurrences
|
||||
* Register event callback
|
||||
* Supports lifecycle events ('render', 'create', 'load', 'ready', 'stop') and custom events
|
||||
* Lifecycle event callbacks fire after the lifecycle method completes
|
||||
* If a lifecycle event has already occurred, the callback fires immediately AND registers for future occurrences
|
||||
* Custom events only fire when explicitly triggered via .trigger()
|
||||
*/
|
||||
on(event_name: string, callback: (component: Jqhtml_Component) => void): this;
|
||||
/**
|
||||
@@ -221,5 +292,21 @@ export declare class Jqhtml_Component {
|
||||
private _get_dom_children;
|
||||
private _log_lifecycle;
|
||||
private _log_debug;
|
||||
/**
|
||||
* Creates a debounced function with exclusivity and promise fan-in
|
||||
*
|
||||
* When invoked, immediately runs the callback exclusively.
|
||||
* For subsequent invocations, applies a delay before running the callback exclusively again.
|
||||
* The delay starts after the current asynchronous operation resolves.
|
||||
*
|
||||
* If delay is 0, the function only prevents enqueueing multiple executions,
|
||||
* but will still run them immediately in an exclusive sequential manner.
|
||||
*
|
||||
* The most recent invocation's parameters are used when the function executes.
|
||||
* Returns a promise that resolves when the next exclusive execution completes.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
private _create_debounced_function;
|
||||
}
|
||||
//# sourceMappingURL=component.d.ts.map
|
||||
2
node_modules/@jqhtml/core/dist/component.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/component.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
||||
1469
node_modules/@jqhtml/core/dist/index.cjs
generated
vendored
1469
node_modules/@jqhtml/core/dist/index.cjs
generated
vendored
File diff suppressed because it is too large
Load Diff
2
node_modules/@jqhtml/core/dist/index.cjs.map
generated
vendored
2
node_modules/@jqhtml/core/dist/index.cjs.map
generated
vendored
File diff suppressed because one or more lines are too long
5
node_modules/@jqhtml/core/dist/index.d.ts
generated
vendored
5
node_modules/@jqhtml/core/dist/index.d.ts
generated
vendored
@@ -25,6 +25,10 @@ import { process_instructions, extract_slots } from './instruction-processor.js'
|
||||
import { render_template, escape_html } from './template-renderer.js';
|
||||
import { DebugOverlay } from './debug-overlay.js';
|
||||
import './jquery-plugin.js';
|
||||
import { Jqhtml_Local_Storage } from './local-storage.js';
|
||||
export { Jqhtml_Local_Storage };
|
||||
import { Load_Coordinator } from './load-coordinator.js';
|
||||
export { Load_Coordinator };
|
||||
export declare const version = "__VERSION__";
|
||||
export interface DebugSettings {
|
||||
verbose?: boolean;
|
||||
@@ -81,6 +85,7 @@ declare const jqhtml: {
|
||||
installGlobals(): void;
|
||||
_version(): any;
|
||||
version(): string;
|
||||
set_cache_key(cache_key: string): void;
|
||||
};
|
||||
export default jqhtml;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
2
node_modules/@jqhtml/core/dist/index.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/index.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
||||
1469
node_modules/@jqhtml/core/dist/index.js
generated
vendored
1469
node_modules/@jqhtml/core/dist/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2
node_modules/@jqhtml/core/dist/index.js.map
generated
vendored
2
node_modules/@jqhtml/core/dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@jqhtml/core/dist/instruction-processor.d.ts
generated
vendored
2
node_modules/@jqhtml/core/dist/instruction-processor.d.ts
generated
vendored
@@ -12,7 +12,7 @@ export interface RawTagInstruction {
|
||||
rawtag: [string, Record<string, any>, string];
|
||||
}
|
||||
export interface ComponentInstruction {
|
||||
comp: [string, Record<string, any>] | [string, Record<string, any>, (context: any) => [any[], Jqhtml_Component]];
|
||||
comp: [string, Record<string, any>] | [string, Record<string, any>, ((context: any) => [any[], Jqhtml_Component]) | Record<string, (context: any) => [any[], Jqhtml_Component]>];
|
||||
}
|
||||
export interface SlotInstruction {
|
||||
slot: [string, Record<string, any>, (context: any) => [any[], Jqhtml_Component]];
|
||||
|
||||
2
node_modules/@jqhtml/core/dist/instruction-processor.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/instruction-processor.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"instruction-processor.d.ts","sourceRoot":"","sources":["../src/instruction-processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAClH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAClF;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,GAAG,MAAM,CAAC;AAoB/G,wBAAgB,GAAG,IAAI,MAAM,CA2C5B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACtC,IAAI,CAwCN;AA8bD;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAW1F"}
|
||||
{"version":3,"file":"instruction-processor.d.ts","sourceRoot":"","sources":["../src/instruction-processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAClL;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAClF;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,GAAG,MAAM,CAAC;AAqB/G,wBAAgB,GAAG,IAAI,MAAM,CA2C5B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACtC,IAAI,CAwCN;AA8cD;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAW1F"}
|
||||
1471
node_modules/@jqhtml/core/dist/jqhtml-core.esm.js
generated
vendored
1471
node_modules/@jqhtml/core/dist/jqhtml-core.esm.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2
node_modules/@jqhtml/core/dist/jqhtml-core.esm.js.map
generated
vendored
2
node_modules/@jqhtml/core/dist/jqhtml-core.esm.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@jqhtml/core/dist/jquery-plugin.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/jquery-plugin.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"jquery-plugin.d.ts","sourceRoot":"","sources":["../src/jquery-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;WAEG;QACH,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAAC;QACrC,SAAS,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAC9F,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAE/E;;;;;;;WAOG;QACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KACvC;CACF;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA2WpD"}
|
||||
{"version":3,"file":"jquery-plugin.d.ts","sourceRoot":"","sources":["../src/jquery-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;WAEG;QACH,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAAC;QACrC,SAAS,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAC9F,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAE/E;;;;;;;WAOG;QACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KACvC;CACF;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA6XpD"}
|
||||
2
node_modules/@jqhtml/core/dist/lifecycle-manager.d.ts
generated
vendored
2
node_modules/@jqhtml/core/dist/lifecycle-manager.d.ts
generated
vendored
@@ -7,7 +7,7 @@
|
||||
* Lifecycle order:
|
||||
* 1. create() - Calls on_create() BEFORE first render
|
||||
* 2. render() - Creates DOM, instantiates child components, calls on_render()
|
||||
* 3. load() - Calls on_load(), may trigger re-render if this.data changes
|
||||
* 3. _load() - Calls on_load(), may trigger re-render if this.data changes
|
||||
* 4. ready() - Waits for children to be ready, calls on_ready()
|
||||
*/
|
||||
import type { Jqhtml_Component } from './component.js';
|
||||
|
||||
2
node_modules/@jqhtml/core/dist/lifecycle-manager.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/lifecycle-manager.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"lifecycle-manager.d.ts","sourceRoot":"","sources":["../src/lifecycle-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAE7D,MAAM,CAAC,YAAY,IAAI,gBAAgB;;IAevC;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDhE;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAIvD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAetC"}
|
||||
{"version":3,"file":"lifecycle-manager.d.ts","sourceRoot":"","sources":["../src/lifecycle-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAE7D,MAAM,CAAC,YAAY,IAAI,gBAAgB;;IAevC;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDhE;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAIvD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAetC"}
|
||||
79
node_modules/@jqhtml/core/dist/load-coordinator.d.ts
generated
vendored
Normal file
79
node_modules/@jqhtml/core/dist/load-coordinator.d.ts
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* Load Coordinator - Request deduplication for component on_load() calls
|
||||
*
|
||||
* Coordinates parallel component loading to prevent duplicate requests.
|
||||
* When multiple components with identical names and args load simultaneously,
|
||||
* only the first (leader) executes on_load(). Others (followers) wait for
|
||||
* the leader's result.
|
||||
*
|
||||
* Key Concepts:
|
||||
* - **INVOCATION_KEY**: Unique identifier for component name + args combination
|
||||
* - **Leader**: First component to reach on_load() for a given INVOCATION_KEY
|
||||
* - **Follower**: Subsequent components that wait for leader's result
|
||||
*
|
||||
* Lifecycle:
|
||||
* 1. Leader reaches on_load() → create coordination entry
|
||||
* 2. Followers reach on_load() → join waiting queue
|
||||
* 3. Leader completes → distribute data to all followers
|
||||
* 4. Clear coordination entry (no caching)
|
||||
*
|
||||
* @internal This class is not exposed in the public API
|
||||
*/
|
||||
import type { Jqhtml_Component } from './component.js';
|
||||
export interface InvocationKeyResult {
|
||||
key: string | null;
|
||||
uncacheable_property?: string;
|
||||
}
|
||||
export declare class Load_Coordinator {
|
||||
private static _registry;
|
||||
/**
|
||||
* Generate INVOCATION_KEY from component name and args
|
||||
* Uses deterministic JSON serialization (sorted keys)
|
||||
* Excludes internal properties (those starting with _)
|
||||
*
|
||||
* For functions/objects:
|
||||
* - Checks for ._jqhtml_cache_id property (assigned by RSpade)
|
||||
* - Falls back to .jqhtml_cache_id() method if property doesn't exist
|
||||
* - If neither exists, marks property as uncacheable
|
||||
*
|
||||
* Returns object with:
|
||||
* - key: Cache key string, or null if uncacheable
|
||||
* - uncacheable_property: Name of first property that prevented caching (for debugging)
|
||||
*/
|
||||
static generate_invocation_key(component_name: string, args: any): InvocationKeyResult;
|
||||
/**
|
||||
* Check if a component should execute on_load() or wait for existing request
|
||||
* Returns true if component should execute (is leader), false if should wait (is follower)
|
||||
*/
|
||||
static should_execute_on_load(component: Jqhtml_Component): boolean;
|
||||
/**
|
||||
* Register a leader component that will execute on_load()
|
||||
* Creates coordination entry and returns a function to call when on_load() completes
|
||||
*/
|
||||
static register_leader(component: Jqhtml_Component, on_load_promise: Promise<void>): () => void;
|
||||
/**
|
||||
* Get the coordination promise for a follower component
|
||||
* Returns a promise that resolves when the leader completes
|
||||
*/
|
||||
static get_coordination_promise(component: Jqhtml_Component): Promise<void> | null;
|
||||
/**
|
||||
* Complete coordination after leader's on_load() finishes
|
||||
* Distributes data to all waiting followers and cleans up entry
|
||||
* @private
|
||||
*/
|
||||
private static _complete_coordination;
|
||||
/**
|
||||
* Handle leader on_load() error
|
||||
* Propagates error to all followers and cleans up entry
|
||||
*/
|
||||
static handle_leader_error(component: Jqhtml_Component, error: Error): void;
|
||||
/**
|
||||
* Get current registry state (for debugging)
|
||||
*/
|
||||
static get_registry_state(): any;
|
||||
/**
|
||||
* Clear all coordination entries (for testing/debugging)
|
||||
*/
|
||||
static clear_all(): void;
|
||||
}
|
||||
//# sourceMappingURL=load-coordinator.d.ts.map
|
||||
1
node_modules/@jqhtml/core/dist/load-coordinator.d.ts.map
generated
vendored
Normal file
1
node_modules/@jqhtml/core/dist/load-coordinator.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"load-coordinator.d.ts","sourceRoot":"","sources":["../src/load-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAWvD,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6C;IAErE;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,mBAAmB;IAqEtF;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO;IAoBnE;;;OAGG;IACH,MAAM,CAAC,eAAe,CAClB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAC/B,MAAM,IAAI;IAkBb;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAWlF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA8CrC;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAuC3E;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,GAAG;IAahC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,IAAI;CAG3B"}
|
||||
147
node_modules/@jqhtml/core/dist/local-storage.d.ts
generated
vendored
Normal file
147
node_modules/@jqhtml/core/dist/local-storage.d.ts
generated
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Jqhtml_Local_Storage - Scoped local storage for JQHTML component caching
|
||||
*
|
||||
* Provides safe, scoped access to localStorage with automatic handling of
|
||||
* unavailable storage, quota exceeded errors, and scope invalidation.
|
||||
*
|
||||
* Key Features:
|
||||
* - **Manual scoping**: Cache key must be set via set_cache_key() before use
|
||||
* - **Graceful degradation**: Returns null when storage unavailable or cache key not set
|
||||
* - **Quota management**: Auto-clears storage when full and retries operation
|
||||
* - **Scope validation**: Clears storage when cache key changes
|
||||
* - **Developer-friendly keys**: Scoped suffix allows easy inspection in dev tools
|
||||
*
|
||||
* Scoping Strategy:
|
||||
* Storage is scoped by a user-provided cache key (typically a session identifier,
|
||||
* user ID, or combination of relevant scope factors). This scope is stored in
|
||||
* `_jqhtml_cache_key`. If the cache key changes between page loads, all JQHTML
|
||||
* storage is cleared to prevent stale data from different sessions/users.
|
||||
*
|
||||
* Key Format:
|
||||
* Keys are stored as: `jqhtml::developer_key::cache_key`
|
||||
* Example: `jqhtml::User_Profile_data::user_123`
|
||||
*
|
||||
* The `jqhtml::` prefix identifies JQHTML keys, allowing safe clearing of only our keys
|
||||
* without affecting other JavaScript libraries. This enables transparent coexistence
|
||||
* with third-party libraries that also use browser storage.
|
||||
*
|
||||
* Quota Exceeded Handling:
|
||||
* When storage quota is exceeded during a set operation, only JQHTML keys (prefixed with
|
||||
* `jqhtml::`) are cleared, preserving other libraries' data. The operation is then retried
|
||||
* once. This ensures the application continues functioning even when storage is full.
|
||||
*
|
||||
* Usage:
|
||||
* // Must set cache key first (typically done once on page load)
|
||||
* Jqhtml_Local_Storage.set_cache_key('user_123');
|
||||
*
|
||||
* // Then use storage normally
|
||||
* Jqhtml_Local_Storage.set('cached_component', {html: '...', timestamp: Date.now()});
|
||||
* const cached = Jqhtml_Local_Storage.get('cached_component');
|
||||
* Jqhtml_Local_Storage.remove('cached_component');
|
||||
*
|
||||
* IMPORTANT - Volatile Storage:
|
||||
* Storage can be cleared at any time due to:
|
||||
* - User clearing browser data
|
||||
* - Private browsing mode restrictions
|
||||
* - Quota exceeded errors
|
||||
* - Cache key changes
|
||||
* - Browser storage unavailable
|
||||
*
|
||||
* Therefore, NEVER store critical data. Only use for:
|
||||
* - Cached component HTML (performance optimization)
|
||||
* - Transient UI state (convenience, not required)
|
||||
*
|
||||
* @internal This class is not exposed in the public API
|
||||
*/
|
||||
export declare class Jqhtml_Local_Storage {
|
||||
private static _cache_key;
|
||||
private static _storage_available;
|
||||
private static _initialized;
|
||||
/**
|
||||
* Set the cache key and initialize storage
|
||||
* Must be called before any get/set operations
|
||||
* @param {string} cache_key - Unique identifier for this cache scope
|
||||
*/
|
||||
static set_cache_key(cache_key: string): void;
|
||||
/**
|
||||
* Check if cache key has been set
|
||||
* @returns {boolean} True if cache key is configured
|
||||
*/
|
||||
static has_cache_key(): boolean;
|
||||
/**
|
||||
* Initialize storage system and validate scope
|
||||
* Called automatically after cache key is set
|
||||
* @private
|
||||
*/
|
||||
private static _init;
|
||||
/**
|
||||
* Check if localStorage is available
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
*/
|
||||
private static _is_storage_available;
|
||||
/**
|
||||
* Validate storage scope and clear JQHTML keys if cache key changed
|
||||
* Only clears keys prefixed with 'jqhtml::' to preserve other libraries' data
|
||||
* @private
|
||||
*/
|
||||
private static _validate_scope;
|
||||
/**
|
||||
* Clear only JQHTML keys from storage (keys starting with 'jqhtml::')
|
||||
* Preserves keys from other libraries
|
||||
* @private
|
||||
*/
|
||||
private static _clear_jqhtml_keys;
|
||||
/**
|
||||
* Build scoped key with JQHTML namespace prefix
|
||||
* @param {string} key - Developer-provided key
|
||||
* @returns {string}
|
||||
* @private
|
||||
*/
|
||||
private static _build_key;
|
||||
/**
|
||||
* Check if storage is ready for use
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
*/
|
||||
private static _is_ready;
|
||||
/**
|
||||
* Set item in localStorage
|
||||
* @param {string} key - Storage key
|
||||
* @param {*} value - Value to store (will be JSON serialized)
|
||||
*/
|
||||
static set(key: string, value: any): void;
|
||||
/**
|
||||
* Get item from localStorage
|
||||
* @param {string} key - Storage key
|
||||
* @returns {*|null} Parsed value or null if not found/unavailable
|
||||
*/
|
||||
static get(key: string): any | null;
|
||||
/**
|
||||
* Remove item from localStorage
|
||||
* @param {string} key - Storage key
|
||||
*/
|
||||
static remove(key: string): void;
|
||||
/**
|
||||
* Internal set implementation with scope validation and quota handling
|
||||
* @param {string} key
|
||||
* @param {*} value - Original value (not used, kept for clarity)
|
||||
* @param {string} serialized - Pre-serialized JSON string
|
||||
* @private
|
||||
*/
|
||||
private static _set_item;
|
||||
/**
|
||||
* Internal get implementation
|
||||
* @param {string} key
|
||||
* @returns {*|null}
|
||||
* @private
|
||||
*/
|
||||
private static _get_item;
|
||||
/**
|
||||
* Internal remove implementation
|
||||
* @param {string} key
|
||||
* @private
|
||||
*/
|
||||
private static _remove_item;
|
||||
}
|
||||
//# sourceMappingURL=local-storage.d.ts.map
|
||||
1
node_modules/@jqhtml/core/dist/local-storage.d.ts.map
generated
vendored
Normal file
1
node_modules/@jqhtml/core/dist/local-storage.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../src/local-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAuB;IAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAwB;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkB;IAE7C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK7C;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;IAepB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAYpC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA4B9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2BjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAqBzC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAQnC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IA4BxB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAexB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;CAS9B"}
|
||||
2
node_modules/@jqhtml/core/dist/template-renderer.d.ts.map
generated
vendored
2
node_modules/@jqhtml/core/dist/template-renderer.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"template-renderer.d.ts","sourceRoot":"","sources":["../src/template-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA2EvD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC,CAqDf;AA8KD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C"}
|
||||
{"version":3,"file":"template-renderer.d.ts","sourceRoot":"","sources":["../src/template-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA2EvD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC,CAqDf;AA6KD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C"}
|
||||
2
node_modules/@jqhtml/core/package.json
generated
vendored
2
node_modules/@jqhtml/core/package.json
generated
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jqhtml/core",
|
||||
"version": "2.2.186",
|
||||
"version": "2.2.216",
|
||||
"description": "Core runtime library for JQHTML",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
21
node_modules/@jqhtml/parser/LLM_REFERENCE.md
generated
vendored
21
node_modules/@jqhtml/parser/LLM_REFERENCE.md
generated
vendored
@@ -123,26 +123,7 @@ Execute JavaScript code using `<% %>`. Regular JavaScript passes through unchang
|
||||
<% } %>
|
||||
```
|
||||
|
||||
**Design Rationale**: JavaScript code blocks pass through directly into the generated function. This allows developers to use any JavaScript construct without parser limitations. The parser only intervenes for template-specific syntax that isn't valid JavaScript (like the colon-style below).
|
||||
|
||||
### 4. Template Control Flow
|
||||
|
||||
For template-specific control flow, colon style provides PHP-like syntax:
|
||||
|
||||
```jqhtml
|
||||
<!-- Colon style (requires endif/endfor) -->
|
||||
<% if (condition): %>
|
||||
<p>True branch</p>
|
||||
<% else: %>
|
||||
<p>False branch</p>
|
||||
<% endif; %>
|
||||
|
||||
<% for (const item of items): %>
|
||||
<div><%= item.name %></div>
|
||||
<% endfor; %>
|
||||
```
|
||||
|
||||
Note: The brace style shown in Code Blocks above is regular JavaScript, not special template syntax.
|
||||
**Design Rationale**: JavaScript code blocks pass through directly into the generated function. This allows developers to use any JavaScript construct without parser limitations.
|
||||
|
||||
## Component Invocation
|
||||
|
||||
|
||||
20
node_modules/@jqhtml/parser/README.md
generated
vendored
20
node_modules/@jqhtml/parser/README.md
generated
vendored
@@ -131,10 +131,8 @@ The lexer is the first stage of the parser. It converts raw JQHTML template text
|
||||
|
||||
- `TEXT` - Plain HTML/text content
|
||||
- `EXPRESSION_START` - `<%=` opening tag
|
||||
- `CODE_START` - `<%` opening tag
|
||||
- `CODE_START` - `<%` opening tag
|
||||
- `TAG_END` - `%>` closing tag
|
||||
- `IF`, `ELSE`, `ELSEIF`, `ENDIF` - Conditional keywords
|
||||
- `FOR`, `ENDFOR` - Loop keywords
|
||||
- `DEFINE_START`, `DEFINE_END` - Component definition tags
|
||||
- `COMPONENT_NAME` - Component identifier
|
||||
- `JAVASCRIPT` - JavaScript code within tags
|
||||
@@ -147,9 +145,9 @@ import { Lexer } from '@jqhtml/parser';
|
||||
const template = `
|
||||
<Define:MyComponent>
|
||||
<h1><%= this.data.title %></h1>
|
||||
<% if (this.data.show): %>
|
||||
<% if (this.data.show) { %>
|
||||
<p>Content here</p>
|
||||
<% endif; %>
|
||||
<% } %>
|
||||
</Define:MyComponent>
|
||||
`;
|
||||
|
||||
@@ -223,9 +221,9 @@ const template = `
|
||||
<Define:Card>
|
||||
<div class="card">
|
||||
<h3><%= title %></h3>
|
||||
<% if (showContent): %>
|
||||
<% if (showContent) { %>
|
||||
<p><%= content %></p>
|
||||
<% endif; %>
|
||||
<% } %>
|
||||
</div>
|
||||
</Define:Card>
|
||||
`;
|
||||
@@ -308,13 +306,13 @@ import { Lexer, Parser, CodeGenerator } from '@jqhtml/parser';
|
||||
const template = `
|
||||
<Define:MyComponent>
|
||||
<h1><%= this.data.title %></h1>
|
||||
<% if (this.data.items): %>
|
||||
<% if (this.data.items) { %>
|
||||
<ul>
|
||||
<% for (const item of this.data.items): %>
|
||||
<% for (const item of this.data.items) { %>
|
||||
<li><%= item %></li>
|
||||
<% endfor; %>
|
||||
<% } %>
|
||||
</ul>
|
||||
<% endif; %>
|
||||
<% } %>
|
||||
</Define:MyComponent>
|
||||
`;
|
||||
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/codegen.d.ts.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/codegen.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,WAAW,EAUZ,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,UAAU,CAAc;IAGhC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAgB;IAGpC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,WAAW,CAA0E;IAG7F,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAgB;IAEnC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa;IA2BtF;;OAEG;IACH,qBAAqB,CACnB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,aAAa;IA2EhB,OAAO,CAAC,wCAAwC;IAmEhD,OAAO,CAAC,kBAAkB;IAgM1B,OAAO,CAAC,sBAAsB;IAiB9B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA0TnC,OAAO,CAAC,aAAa;IAsBrB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,mBAAmB;IAsC3B,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,mBAAmB;IAsG3B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,iBAAiB;IA2EzB,OAAO,CAAC,6BAA6B;IAkDrC,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qCAAqC;IAwB7C,OAAO,CAAC,0BAA0B;IAkJlC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,2BAA2B;IAiBnC;;OAEG;IACH,OAAO,CAAC,IAAI;IA8CZ;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACI,cAAc,IAAI,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAI3F;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlD;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,iBAAiB;CAwC1B;AAGD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,CAGrG"}
|
||||
12
node_modules/@jqhtml/parser/dist/codegen.js
generated
vendored
12
node_modules/@jqhtml/parser/dist/codegen.js
generated
vendored
@@ -755,9 +755,8 @@ export class CodeGenerator {
|
||||
return output;
|
||||
}
|
||||
generate_if(node) {
|
||||
// Clean up condition - remove trailing colon or opening brace
|
||||
// Clean up condition - remove trailing opening brace
|
||||
let condition = node.condition.trim();
|
||||
condition = condition.replace(/:\s*$/, ''); // Remove trailing colon
|
||||
condition = condition.replace(/\s*{\s*$/, ''); // Remove trailing brace
|
||||
// Generate consequent body inline
|
||||
const consequent_parts = [];
|
||||
@@ -787,8 +786,7 @@ export class CodeGenerator {
|
||||
return code;
|
||||
}
|
||||
generate_for(node) {
|
||||
// Remove trailing colon from iterator if present
|
||||
const iterator = node.iterator.trim().replace(/:\s*$/, '');
|
||||
const iterator = node.iterator.trim();
|
||||
// Generate body inline
|
||||
const body_parts = [];
|
||||
for (const child of node.body) {
|
||||
@@ -1111,8 +1109,8 @@ export class CodeGenerator {
|
||||
// It's an identifier - output as JavaScript expression
|
||||
return `"${attrKey}": ${value.value}`;
|
||||
}
|
||||
// Check if it's an event handler binding (data-on-*)
|
||||
if (key.startsWith('data-on-')) {
|
||||
// Check if it's an event handler binding (data-__-on-*)
|
||||
if (key.startsWith('data-__-on-')) {
|
||||
// Handle based on whether value was quoted or not
|
||||
if (typeof value === 'object' && value !== null) {
|
||||
if (value.quoted) {
|
||||
@@ -1343,7 +1341,7 @@ export class CodeGenerator {
|
||||
for (const [name, component] of this.components) {
|
||||
code += `// Component: ${name}\n`;
|
||||
code += `jqhtml_components.set('${name}', {\n`;
|
||||
code += ` _jqhtml_version: '2.2.186',\n`; // Version will be replaced during build
|
||||
code += ` _jqhtml_version: '2.2.216',\n`; // Version will be replaced during build
|
||||
code += ` name: '${name}',\n`;
|
||||
code += ` tag: '${component.tagName}',\n`;
|
||||
code += ` defaultAttributes: ${this.serializeAttributeObject(component.defaultAttributes)},\n`;
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/codegen.js.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/codegen.js.map
generated
vendored
File diff suppressed because one or more lines are too long
4
node_modules/@jqhtml/parser/dist/errors.js
generated
vendored
4
node_modules/@jqhtml/parser/dist/errors.js
generated
vendored
@@ -85,10 +85,10 @@ export function syntaxError(message, line, column, source, filename) {
|
||||
// Helpful suggestions for common mistakes
|
||||
export function getSuggestion(error) {
|
||||
if (error.includes('Unclosed if statement')) {
|
||||
return '\nDid you forget <% endif; %>?';
|
||||
return '\nDid you forget the closing <% } %>?';
|
||||
}
|
||||
if (error.includes('Unclosed for statement')) {
|
||||
return '\nDid you forget <% endfor; %>?';
|
||||
return '\nDid you forget the closing <% } %>?';
|
||||
}
|
||||
if (error.includes('Unclosed component definition')) {
|
||||
return '\nDid you forget the closing </Define:ComponentName> tag?';
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/errors.js.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/errors.js.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
||||
7
node_modules/@jqhtml/parser/dist/lexer.d.ts
generated
vendored
7
node_modules/@jqhtml/parser/dist/lexer.d.ts
generated
vendored
@@ -4,12 +4,6 @@ export declare enum TokenType {
|
||||
EXPRESSION_UNESCAPED = "EXPRESSION_UNESCAPED",// <%!=
|
||||
CODE_START = "CODE_START",// <%
|
||||
TAG_END = "TAG_END",// %>
|
||||
IF = "IF",
|
||||
ELSE = "ELSE",
|
||||
ELSEIF = "ELSEIF",
|
||||
ENDIF = "ENDIF",
|
||||
FOR = "FOR",
|
||||
ENDFOR = "ENDFOR",
|
||||
COMMENT = "COMMENT",// <%-- comment --%>
|
||||
DEFINE_START = "DEFINE_START",// <Define:
|
||||
DEFINE_END = "DEFINE_END",// </Define:
|
||||
@@ -119,7 +113,6 @@ export declare class Lexer {
|
||||
private scan_closing_tag;
|
||||
private scan_attributes;
|
||||
private is_attribute_start_char;
|
||||
private peek_for_colon;
|
||||
private scan_attribute;
|
||||
private scan_attribute_value;
|
||||
private validate_unquoted_value;
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/lexer.d.ts.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/lexer.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
|
||||
97
node_modules/@jqhtml/parser/dist/lexer.js
generated
vendored
97
node_modules/@jqhtml/parser/dist/lexer.js
generated
vendored
@@ -10,13 +10,6 @@ export var TokenType;
|
||||
TokenType["EXPRESSION_UNESCAPED"] = "EXPRESSION_UNESCAPED";
|
||||
TokenType["CODE_START"] = "CODE_START";
|
||||
TokenType["TAG_END"] = "TAG_END";
|
||||
// Control flow
|
||||
TokenType["IF"] = "IF";
|
||||
TokenType["ELSE"] = "ELSE";
|
||||
TokenType["ELSEIF"] = "ELSEIF";
|
||||
TokenType["ENDIF"] = "ENDIF";
|
||||
TokenType["FOR"] = "FOR";
|
||||
TokenType["ENDFOR"] = "ENDFOR";
|
||||
// Comments
|
||||
TokenType["COMMENT"] = "COMMENT";
|
||||
// Component definition
|
||||
@@ -59,8 +52,11 @@ export class Lexer {
|
||||
// Track saved positions for accurate token creation
|
||||
savedPosition = null;
|
||||
constructor(input) {
|
||||
// Preprocess: Normalize all line endings to \n (handles \r\n and \r)
|
||||
// This ensures the lexer only needs to handle \n throughout
|
||||
let processed = input.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
||||
// Preprocess: Replace JQHTML comments (<%-- --%) with equivalent newlines to preserve line mapping
|
||||
let processed = this.preprocessComments(input);
|
||||
processed = this.preprocessComments(processed);
|
||||
// Preprocess: Replace HTML comments (<!-- -->) outside Define tags with equivalent newlines
|
||||
processed = this.preprocessHTMLComments(processed);
|
||||
// Preprocess: Insert // for empty lines in code blocks to preserve line mapping
|
||||
@@ -538,56 +534,9 @@ export class Lexer {
|
||||
// Now skip whitespace to check for keywords
|
||||
this.skip_whitespace();
|
||||
const saved_position = this.position;
|
||||
// Check for control flow keywords only if they have colon syntax
|
||||
if (this.match_keyword('if') && this.peek_for_colon()) {
|
||||
// Rewind to capture keyword
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('if'); // consume again
|
||||
this.add_token(TokenType.IF, 'if', keyword_start, this.position);
|
||||
this.scan_javascript(); // Scan the condition
|
||||
}
|
||||
else if (this.match_keyword('else') &&
|
||||
(this.peek_for_colon() || this.peek_sequence(':') || this.peek_sequence('%>'))) {
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('else');
|
||||
this.add_token(TokenType.ELSE, 'else', keyword_start, this.position);
|
||||
this.scan_javascript(); // Might have trailing code
|
||||
}
|
||||
else if (this.match_keyword('elseif') && this.peek_for_colon()) {
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('elseif');
|
||||
this.add_token(TokenType.ELSEIF, 'elseif', keyword_start, this.position);
|
||||
this.scan_javascript(); // Scan the condition
|
||||
}
|
||||
else if (this.match_keyword('endif')) {
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('endif');
|
||||
this.add_token(TokenType.ENDIF, 'endif', keyword_start, this.position);
|
||||
this.scan_javascript(); // Might have semicolon
|
||||
}
|
||||
else if (this.match_keyword('for') && this.peek_for_colon()) {
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('for');
|
||||
this.add_token(TokenType.FOR, 'for', keyword_start, this.position);
|
||||
this.scan_javascript(); // Scan the loop expression
|
||||
}
|
||||
else if (this.match_keyword('endfor')) {
|
||||
this.position = saved_position;
|
||||
const keyword_start = this.position;
|
||||
this.match_keyword('endfor');
|
||||
this.add_token(TokenType.ENDFOR, 'endfor', keyword_start, this.position);
|
||||
this.scan_javascript(); // Might have semicolon
|
||||
}
|
||||
else {
|
||||
// It's regular JavaScript code - rewind to include whitespace
|
||||
this.position = position_with_whitespace;
|
||||
this.scan_javascript();
|
||||
}
|
||||
// It's regular JavaScript code - rewind to include whitespace
|
||||
this.position = position_with_whitespace;
|
||||
this.scan_javascript();
|
||||
}
|
||||
scan_comment() {
|
||||
// Scan comment from <%-- to --%>
|
||||
@@ -1063,38 +1012,6 @@ export class Lexer {
|
||||
return false;
|
||||
return this.is_tag_name_char(char) || char === '$' || char === ':' || char === '@';
|
||||
}
|
||||
peek_for_colon() {
|
||||
// Look ahead in the JavaScript to see if there's a colon before %>
|
||||
let pos = this.position;
|
||||
// Skip whitespace and look for either : or (condition):
|
||||
while (pos < this.input.length) {
|
||||
const char = this.input[pos];
|
||||
// Found %> before colon
|
||||
if (pos + 1 < this.input.length &&
|
||||
this.input[pos] === '%' && this.input[pos + 1] === '>') {
|
||||
return false;
|
||||
}
|
||||
// Found colon
|
||||
if (char === ':') {
|
||||
return true;
|
||||
}
|
||||
// Skip through parentheses
|
||||
if (char === '(') {
|
||||
let depth = 1;
|
||||
pos++;
|
||||
while (pos < this.input.length && depth > 0) {
|
||||
if (this.input[pos] === '(')
|
||||
depth++;
|
||||
if (this.input[pos] === ')')
|
||||
depth--;
|
||||
pos++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
scan_attribute() {
|
||||
const start = this.position;
|
||||
let name = '';
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/lexer.js.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/lexer.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@jqhtml/parser/dist/parser.d.ts
generated
vendored
2
node_modules/@jqhtml/parser/dist/parser.d.ts
generated
vendored
@@ -17,8 +17,6 @@ export declare class Parser {
|
||||
private parse_content;
|
||||
private parse_expression;
|
||||
private parse_code_block;
|
||||
private parse_if_statement;
|
||||
private parse_for_statement;
|
||||
private static readonly JAVASCRIPT_RESERVED_WORDS;
|
||||
private parse_slot;
|
||||
private parse_tag;
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/parser.d.ts.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/parser.d.ts.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAA6B,MAAM,YAAY,CAAC;AAC9D,OAAO,EAGL,WAAW,EAUZ,MAAM,UAAU,CAAC;AAUlB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAI1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAGlC;gBAES,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAM/D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0BhC,KAAK,IAAI,WAAW;IA0EpB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,0BAA0B;IAqNlC,OAAO,CAAC,aAAa;IA6DrB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IA+G1B,OAAO,CAAC,mBAAmB;IAsD3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAW9C;IAGH,OAAO,CAAC,UAAU;IAmGlB,OAAO,CAAC,SAAS;IAgNjB,OAAO,CAAC,gBAAgB;IA6ExB,OAAO,CAAC,2BAA2B;IAqGnC,OAAO,CAAC,qBAAqB;IA2E7B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,OAAO;IA4Cf,OAAO,CAAC,2BAA2B;IA+BnC;;;OAGG;IACH,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAkC7G"}
|
||||
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAA6B,MAAM,YAAY,CAAC;AAC9D,OAAO,EAGL,WAAW,EAUZ,MAAM,UAAU,CAAC;AAUlB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAI1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAGlC;gBAES,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAM/D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0BhC,KAAK,IAAI,WAAW;IA0EpB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,0BAA0B;IAqNlC,OAAO,CAAC,aAAa;IA6DrB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAW9C;IAGH,OAAO,CAAC,UAAU;IAmGlB,OAAO,CAAC,SAAS;IAgNjB,OAAO,CAAC,gBAAgB;IA+ExB,OAAO,CAAC,2BAA2B;IA4FnC,OAAO,CAAC,qBAAqB;IA2E7B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,OAAO;IA4Cf,OAAO,CAAC,2BAA2B;IA+BnC;;;OAGG;IACH,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAkC7G"}
|
||||
136
node_modules/@jqhtml/parser/dist/parser.js
generated
vendored
136
node_modules/@jqhtml/parser/dist/parser.js
generated
vendored
@@ -302,113 +302,6 @@ export class Parser {
|
||||
return createNode(NodeType.CODE_BLOCK, { tokens }, // Pass tokens array instead of concatenated code
|
||||
start_token.start, end_token.end, start_token.line, start_token.column, this.create_location(start_token, end_token));
|
||||
}
|
||||
// Parse if statement with colon style only
|
||||
parse_if_statement(start_token) {
|
||||
console.log('[Parser] Parsing if statement at line', start_token.line);
|
||||
this.consume(TokenType.IF, 'Expected if');
|
||||
const condition_token = this.consume(TokenType.JAVASCRIPT, 'Expected condition');
|
||||
console.log('[Parser] If condition:', condition_token.value);
|
||||
this.consume(TokenType.TAG_END, 'Expected %>');
|
||||
const consequent = [];
|
||||
let alternate = null;
|
||||
// Parse consequent branch
|
||||
while (!this.check_sequence(TokenType.CODE_START, TokenType.ELSE) &&
|
||||
!this.check_sequence(TokenType.CODE_START, TokenType.ENDIF)) {
|
||||
if (this.is_at_end()) {
|
||||
const error = unclosedError('if statement', `if (${condition_token.value})`, start_token.line, start_token.column, this.source, this.filename);
|
||||
error.message += getSuggestion(error.message);
|
||||
throw error;
|
||||
}
|
||||
const node = this.parse_content();
|
||||
if (node) {
|
||||
consequent.push(node);
|
||||
}
|
||||
}
|
||||
// Check for else branch
|
||||
if (this.check_sequence(TokenType.CODE_START, TokenType.ELSE)) {
|
||||
console.log('[Parser] Found else branch');
|
||||
this.advance(); // CODE_START
|
||||
this.advance(); // ELSE
|
||||
// Check if this is an "else if"
|
||||
if (this.check(TokenType.IF)) {
|
||||
console.log('[Parser] This is an else if statement');
|
||||
// This is an else if - put back the ELSE token and parse as new if statement
|
||||
this.current--; // Put back ELSE
|
||||
this.current--; // Put back CODE_START
|
||||
// Parse the else if as a new if statement
|
||||
alternate = [];
|
||||
const elseIfNode = this.parse_content();
|
||||
if (elseIfNode) {
|
||||
alternate.push(elseIfNode);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Regular else branch
|
||||
// Skip optional trailing code
|
||||
if (this.check(TokenType.JAVASCRIPT)) {
|
||||
this.advance();
|
||||
}
|
||||
this.consume(TokenType.TAG_END, 'Expected %>');
|
||||
alternate = [];
|
||||
// Parse else branch
|
||||
while (!this.check_sequence(TokenType.CODE_START, TokenType.ENDIF)) {
|
||||
if (this.is_at_end()) {
|
||||
const error = unclosedError('if statement (in else branch)', `if (${condition_token.value})`, start_token.line, start_token.column, this.source, this.filename);
|
||||
error.message += getSuggestion(error.message);
|
||||
throw error;
|
||||
}
|
||||
const node = this.parse_content();
|
||||
if (node) {
|
||||
alternate.push(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Consume endif
|
||||
this.consume(TokenType.CODE_START, 'Expected <%');
|
||||
this.consume(TokenType.ENDIF, 'Expected endif');
|
||||
// Skip optional semicolon
|
||||
if (this.check(TokenType.JAVASCRIPT)) {
|
||||
this.advance();
|
||||
}
|
||||
const end_token = this.consume(TokenType.TAG_END, 'Expected %>');
|
||||
return createNode(NodeType.IF_STATEMENT, {
|
||||
condition: condition_token.value,
|
||||
consequent,
|
||||
alternate
|
||||
}, start_token.start, end_token.end, start_token.line, start_token.column, this.create_location(start_token, end_token));
|
||||
}
|
||||
// Parse for loop
|
||||
parse_for_statement(start_token) {
|
||||
this.consume(TokenType.FOR, 'Expected for');
|
||||
const iterator_token = this.consume(TokenType.JAVASCRIPT, 'Expected iterator expression');
|
||||
this.consume(TokenType.TAG_END, 'Expected %>');
|
||||
const body = [];
|
||||
// Parse loop body
|
||||
while (!this.check_sequence(TokenType.CODE_START, TokenType.ENDFOR)) {
|
||||
if (this.is_at_end()) {
|
||||
const error = unclosedError('for statement', `for ${iterator_token.value}`, start_token.line, start_token.column, this.source, this.filename);
|
||||
error.message += getSuggestion(error.message);
|
||||
throw error;
|
||||
}
|
||||
const node = this.parse_content();
|
||||
if (node) {
|
||||
body.push(node);
|
||||
}
|
||||
}
|
||||
// Consume endfor
|
||||
this.consume(TokenType.CODE_START, 'Expected <%');
|
||||
this.consume(TokenType.ENDFOR, 'Expected endfor');
|
||||
// Skip optional semicolon
|
||||
if (this.check(TokenType.JAVASCRIPT)) {
|
||||
this.advance();
|
||||
}
|
||||
const end_token = this.consume(TokenType.TAG_END, 'Expected %>');
|
||||
return createNode(NodeType.FOR_STATEMENT, {
|
||||
iterator: iterator_token.value,
|
||||
body
|
||||
}, start_token.start, end_token.end, start_token.line, start_token.column, this.create_location(start_token, end_token));
|
||||
}
|
||||
// JavaScript reserved words that cannot be used as slot names
|
||||
static JAVASCRIPT_RESERVED_WORDS = new Set([
|
||||
// Keywords
|
||||
@@ -642,10 +535,12 @@ export class Parser {
|
||||
}
|
||||
// Handle special attribute prefixes
|
||||
if (name.startsWith('$')) {
|
||||
// General case: $property becomes data-property
|
||||
// This includes $id → data-id (for scoped IDs)
|
||||
// The distinction between data-id (scoped) and id (pass-through) is preserved
|
||||
name = 'data-' + name.substring(1);
|
||||
// Special case: $id becomes data-id (needed for scoped ID system)
|
||||
// All other $ attributes stay as-is (handled by instruction-processor.ts)
|
||||
if (name === '$id') {
|
||||
name = 'data-id';
|
||||
}
|
||||
// Keep $ prefix for other attributes - they get stored via .data() at runtime
|
||||
// Keep the value object intact to preserve quoted/unquoted distinction
|
||||
}
|
||||
else if (name.startsWith(':')) {
|
||||
@@ -655,9 +550,9 @@ export class Parser {
|
||||
// Keep the value object intact to preserve quoted/unquoted distinction
|
||||
}
|
||||
else if (name.startsWith('@')) {
|
||||
// Event binding: @click="handler" becomes data-on-click
|
||||
// Event binding: @click="handler" becomes data-__-on-click
|
||||
// Preserve whether value was quoted or not for proper code generation
|
||||
name = 'data-on-' + name.substring(1);
|
||||
name = 'data-__-on-' + name.substring(1);
|
||||
// Keep the value object intact to preserve quoted/unquoted distinction
|
||||
}
|
||||
attributes[name] = value;
|
||||
@@ -674,11 +569,8 @@ export class Parser {
|
||||
// Consume <%
|
||||
this.consume(TokenType.CODE_START, 'Expected <%');
|
||||
let condition;
|
||||
// Two possibilities:
|
||||
// 1. Brace style: CODE_START → JAVASCRIPT "if (condition) {" → TAG_END
|
||||
// 2. Colon style: CODE_START → IF → JAVASCRIPT "(condition)" → TAG_END
|
||||
// Only brace style supported: CODE_START → JAVASCRIPT "if (condition) {" → TAG_END
|
||||
if (this.check(TokenType.JAVASCRIPT)) {
|
||||
// Brace style
|
||||
const jsToken = this.consume(TokenType.JAVASCRIPT, 'Expected if statement');
|
||||
const jsCode = jsToken.value.trim();
|
||||
// Verify it starts with 'if' and contains both ( and {
|
||||
@@ -694,12 +586,6 @@ export class Parser {
|
||||
// Extract just the condition part (between parens, including parens)
|
||||
condition = jsCode.substring(openParen, closeBrace).trim();
|
||||
}
|
||||
else if (this.check(TokenType.IF)) {
|
||||
// Colon style
|
||||
this.advance(); // consume 'if'
|
||||
const jsToken = this.consume(TokenType.JAVASCRIPT, 'Expected condition after if');
|
||||
condition = jsToken.value.trim();
|
||||
}
|
||||
else {
|
||||
// Not an if statement
|
||||
throw syntaxError('Only if statements are allowed in attribute context. Use <% if (condition) { %>attr="value"<% } %>', this.peek().line, this.peek().column, this.source);
|
||||
@@ -783,8 +669,8 @@ export class Parser {
|
||||
// Return as an identifier expression (function call chain)
|
||||
return { identifier: true, value: value };
|
||||
}
|
||||
// Otherwise, treat as a literal string value
|
||||
return value;
|
||||
// Otherwise, treat as a JavaScript expression (includes numeric literals like 42, 3.14, etc.)
|
||||
return { expression: true, value: value };
|
||||
}
|
||||
// Any expression or multiple parts needs interpolation handling
|
||||
return { interpolated: true, parts };
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/parser.js.map
generated
vendored
2
node_modules/@jqhtml/parser/dist/parser.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@jqhtml/parser/package.json
generated
vendored
2
node_modules/@jqhtml/parser/package.json
generated
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jqhtml/parser",
|
||||
"version": "2.2.186",
|
||||
"version": "2.2.216",
|
||||
"description": "JQHTML template parser - converts templates to JavaScript",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
2
node_modules/@jqhtml/router/dist/jqhtml-router.esm.js
generated
vendored
2
node_modules/@jqhtml/router/dist/jqhtml-router.esm.js
generated
vendored
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* JQHTML Router v2.2.186
|
||||
* JQHTML Router v2.2.216
|
||||
* (c) 2025 JQHTML Team
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
2
node_modules/@jqhtml/router/package.json
generated
vendored
2
node_modules/@jqhtml/router/package.json
generated
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jqhtml/router",
|
||||
"version": "2.2.186",
|
||||
"version": "2.2.216",
|
||||
"description": "Client-side routing for JQHTML applications",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
2
node_modules/@jqhtml/vscode-extension/.version
generated
vendored
2
node_modules/@jqhtml/vscode-extension/.version
generated
vendored
@@ -1 +1 @@
|
||||
2.2.186
|
||||
2.2.216
|
||||
|
||||
62
node_modules/@jqhtml/vscode-extension/README.md
generated
vendored
62
node_modules/@jqhtml/vscode-extension/README.md
generated
vendored
@@ -10,9 +10,7 @@ Full syntax highlighting for all JQHTML constructs:
|
||||
|
||||
- **Component Definitions**: `<Define:ComponentName>`
|
||||
- **Template Expressions**: `<%= expression %>`
|
||||
- **Control Flow**: Both colon and brace styles
|
||||
- `<% if (condition): %> ... <% endif; %>`
|
||||
- `<% if (condition) { %> ... <% } %>`
|
||||
- **Control Flow**: `<% if (condition) { %> ... <% } %>`
|
||||
- **Slots**: `<#slotname>` with let:prop support
|
||||
- **Data Bindings**: `:property="value"`
|
||||
- **Event Handlers**: `@click="handler"`
|
||||
@@ -25,7 +23,7 @@ Full syntax highlighting for all JQHTML constructs:
|
||||
- **Auto-closing pairs**: Automatically close tags, brackets, and quotes
|
||||
- **Bracket matching**: Highlight matching brackets and tags
|
||||
- **Code folding**: Fold component definitions
|
||||
- **Smart indentation**: Handles both colon and brace control flow styles
|
||||
- **Smart indentation**: Handles control flow
|
||||
- **Comment toggling**: Use standard VS Code shortcuts to toggle comments
|
||||
|
||||
### Code Snippets
|
||||
@@ -36,11 +34,9 @@ Quick snippets for common patterns:
|
||||
|--------|-------------|
|
||||
| `define` | Component definition |
|
||||
| `definecomp` | Component with structure |
|
||||
| `if:` | If statement (colon style) |
|
||||
| `ifelse:` | If-else (colon style) |
|
||||
| `if{` | If statement (brace style) |
|
||||
| `for:` | For loop (colon style) |
|
||||
| `for{` | For loop (brace style) |
|
||||
| `if` | If statement |
|
||||
| `ifelse` | If-else |
|
||||
| `for` | For loop |
|
||||
| `exp` | Expression `<%= %>` |
|
||||
| `$id` | Scoped ID attribute |
|
||||
| `:prop` | Property binding |
|
||||
@@ -87,13 +83,13 @@ All JQHTML syntax is highlighted with semantic colors:
|
||||
<Define:UserCard>
|
||||
<div class="user-card" $id="card">
|
||||
<h2><%= this.data.name %></h2>
|
||||
|
||||
<% if (this.data.isAdmin): %>
|
||||
|
||||
<% if (this.data.isAdmin) { %>
|
||||
<span class="admin">Admin</span>
|
||||
<% endif; %>
|
||||
|
||||
<% } %>
|
||||
|
||||
<button @click="handleClick">Click Me</button>
|
||||
|
||||
|
||||
<% for (const skill of this.data.skills) { %>
|
||||
<div class="skill"><%= skill %></div>
|
||||
<% } %>
|
||||
@@ -117,7 +113,7 @@ Component definitions can be folded at the `<Define:>` level:
|
||||
|
||||
### Formatting Support
|
||||
|
||||
The extension respects VS Code's formatting settings and supports both colon and brace control flow styles without enforcing either.
|
||||
The extension respects VS Code's formatting settings.
|
||||
|
||||
## Configuration
|
||||
|
||||
@@ -156,7 +152,7 @@ The extension uses standard TextMate scopes and works with all VS Code themes. F
|
||||
|
||||
### Bracket Matching Errors with Split Control Flow
|
||||
|
||||
When using brace-style control flow split across multiple `<% %>` blocks, VS Code may show bracket matching errors:
|
||||
When using control flow split across multiple `<% %>` blocks, VS Code may show bracket matching errors:
|
||||
|
||||
```jqhtml
|
||||
<% if (condition) { %>
|
||||
@@ -168,30 +164,18 @@ When using brace-style control flow split across multiple `<% %>` blocks, VS Cod
|
||||
|
||||
**Why this happens:** VS Code's bracket matcher can't track bracket state across separate template blocks. It sees a closing `}` without a matching opening `{` in the same block.
|
||||
|
||||
**Solutions:**
|
||||
**Solution:** The extension automatically disables bracket colorization for `.jqhtml` files:
|
||||
|
||||
1. **Use colon syntax** (recommended for complex control flow):
|
||||
```jqhtml
|
||||
<% if (condition): %>
|
||||
<div>Content</div>
|
||||
<% else: %>
|
||||
<div>Other content</div>
|
||||
<% endif; %>
|
||||
```
|
||||
```json
|
||||
{
|
||||
"[jqhtml]": {
|
||||
"editor.bracketPairColorization.enabled": false,
|
||||
"editor.guides.bracketPairs": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. **Disable bracket colorization** (already set by default):
|
||||
```json
|
||||
{
|
||||
"[jqhtml]": {
|
||||
"editor.bracketPairColorization.enabled": false,
|
||||
"editor.guides.bracketPairs": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. **Ignore the visual errors** - they don't affect functionality, just appearance.
|
||||
|
||||
The extension automatically disables bracket colorization for `.jqhtml` files to minimize these false positives.
|
||||
These visual errors don't affect functionality.
|
||||
|
||||
### Other Known Issues
|
||||
|
||||
@@ -233,7 +217,7 @@ MIT License - See LICENSE file in the JQHTML repository
|
||||
### 2.0.0
|
||||
- Initial release
|
||||
- Full JQHTML v2 syntax support
|
||||
- Colon and brace control flow styles
|
||||
- Brace-style control flow
|
||||
- Slot syntax with let:prop
|
||||
- Data binding and event handlers
|
||||
- Component highlighting
|
||||
|
||||
Binary file not shown.
4
node_modules/@jqhtml/vscode-extension/language-configuration.json
generated
vendored
4
node_modules/@jqhtml/vscode-extension/language-configuration.json
generated
vendored
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)",
|
||||
"indentationRules": {
|
||||
"increaseIndentPattern": "^\\s*(<(?!\\/)(?!.*\\/[>\\s]).*>|<%(\\s)*(if|for|while|foreach)\\s*\\(.*\\)\\s*(:)?|\\{(?!.*\\}.*)|\\[(?!.*\\].*))\\s*$",
|
||||
"decreaseIndentPattern": "^\\s*(</.*>|<%\\s*(endif|endfor|endwhile|endforeach)\\s*;?\\s*%>|\\}|\\])"
|
||||
"increaseIndentPattern": "^\\s*(<(?!\\/)(?!.*\\/[>\\s]).*>|<%(\\s)*(if|for|while|foreach)\\s*\\(.*\\)\\s*\\{|\\{(?!.*\\}.*)|\\[(?!.*\\].*))\\s*$",
|
||||
"decreaseIndentPattern": "^\\s*(</.*>|<%\\s*\\}\\s*%>|\\}|\\])"
|
||||
}
|
||||
}
|
||||
103
node_modules/@jqhtml/vscode-extension/out/formatter.js
generated
vendored
103
node_modules/@jqhtml/vscode-extension/out/formatter.js
generated
vendored
@@ -42,20 +42,6 @@ class JqhtmlFormattingEditProvider {
|
||||
// This formatter uses string manipulation and indexOf for reliability
|
||||
// Regex should only be used in the syntax highlighter, not here
|
||||
// Based on the RS3 formatter (reformat_html.php) logic
|
||||
// Patterns that increase indent on the NEXT line
|
||||
this.indentIncrease = [': %>', ': ?>', '{ %>', '{ ?>'];
|
||||
// Patterns that decrease indent
|
||||
this.indentDecrease = [
|
||||
'<% end; %>',
|
||||
'<% endif; %>',
|
||||
'<% endfor; %>',
|
||||
'<% endforeach; %>',
|
||||
'<% endfunction; %>',
|
||||
'<% } %>',
|
||||
'<% }); %>',
|
||||
'<% } else',
|
||||
'<% else'
|
||||
];
|
||||
// Known self-closing HTML tags
|
||||
this.selfClosingTags = [
|
||||
'area', 'base', 'br', 'embed', 'hr', 'iframe',
|
||||
@@ -73,7 +59,24 @@ class JqhtmlFormattingEditProvider {
|
||||
const safeCode = [];
|
||||
let working = text;
|
||||
let reading = text;
|
||||
// Step 1: Escape HTML comments
|
||||
// Step 1: Escape JQHTML comments (<%-- --%>)
|
||||
working = '';
|
||||
while (reading.indexOf('<%--') !== -1) {
|
||||
const pos = reading.indexOf('<%--');
|
||||
working += reading.substring(0, pos);
|
||||
reading = reading.substring(pos);
|
||||
const closePos = reading.indexOf('--%>');
|
||||
if (closePos === -1) {
|
||||
// Parse error, return original
|
||||
return text;
|
||||
}
|
||||
safeCode.push(reading.substring(0, closePos + 4));
|
||||
reading = reading.substring(closePos + 4);
|
||||
working += '@@__SAFE__(' + (safeCode.length - 1) + ')';
|
||||
}
|
||||
working += reading;
|
||||
reading = working;
|
||||
// Step 2: Escape HTML comments (<!-- -->)
|
||||
working = '';
|
||||
while (reading.indexOf('<!--') !== -1) {
|
||||
const pos = reading.indexOf('<!--');
|
||||
@@ -90,7 +93,7 @@ class JqhtmlFormattingEditProvider {
|
||||
}
|
||||
working += reading;
|
||||
reading = working;
|
||||
// Step 2: Escape multiline <% %> blocks
|
||||
// Step 3: Escape multiline <% %> blocks
|
||||
working = '';
|
||||
while (reading.indexOf('<%') !== -1) {
|
||||
const pos = reading.indexOf('<%');
|
||||
@@ -114,48 +117,62 @@ class JqhtmlFormattingEditProvider {
|
||||
working += '@@__SAFE__(' + (safeCode.length - 1) + ')';
|
||||
}
|
||||
working += reading;
|
||||
// Step 3: Split into lines with indent levels
|
||||
// Step 4: Split into lines with indent levels
|
||||
const lines = [];
|
||||
const splitLines = working.split('\n');
|
||||
for (const line of splitLines) {
|
||||
lines.push([0, line.trim()]);
|
||||
}
|
||||
// Step 4: Handle JS/control flow indents (if:, endif;, etc)
|
||||
// Step 5: Handle JS/control flow indents by counting braces
|
||||
let jsIndent = 0;
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const trimmedLine = lines[i][1];
|
||||
let plus = 0;
|
||||
let minus = 0;
|
||||
// Check for indent increase patterns
|
||||
for (const pattern of this.indentIncrease) {
|
||||
if (trimmedLine.indexOf(pattern) !== -1) {
|
||||
plus++;
|
||||
}
|
||||
}
|
||||
// Check for indent decrease patterns
|
||||
for (const pattern of this.indentDecrease) {
|
||||
if (trimmedLine.indexOf(pattern) !== -1) {
|
||||
minus++;
|
||||
// Count opening and closing braces within <% %> blocks
|
||||
let openBraces = 0;
|
||||
let closeBraces = 0;
|
||||
// Find all <% %> blocks in the line
|
||||
let searchPos = 0;
|
||||
while (true) {
|
||||
const startPos = trimmedLine.indexOf('<%', searchPos);
|
||||
if (startPos === -1)
|
||||
break;
|
||||
const endPos = trimmedLine.indexOf('%>', startPos);
|
||||
if (endPos === -1)
|
||||
break;
|
||||
// Extract the code block content
|
||||
const codeBlock = trimmedLine.substring(startPos + 2, endPos);
|
||||
// Count braces in this code block
|
||||
for (let j = 0; j < codeBlock.length; j++) {
|
||||
if (codeBlock[j] === '{')
|
||||
openBraces++;
|
||||
if (codeBlock[j] === '}')
|
||||
closeBraces++;
|
||||
}
|
||||
searchPos = endPos + 2;
|
||||
}
|
||||
const netChange = openBraces - closeBraces;
|
||||
// Apply indent changes
|
||||
if (plus > minus) {
|
||||
if (netChange > 0) {
|
||||
// Opening braces - indent applies to next line
|
||||
lines[i][0] = jsIndent;
|
||||
jsIndent += netChange;
|
||||
}
|
||||
else if (netChange < 0) {
|
||||
// Closing braces - dedent this line
|
||||
jsIndent += netChange;
|
||||
lines[i][0] = jsIndent;
|
||||
jsIndent += plus;
|
||||
jsIndent -= minus;
|
||||
}
|
||||
else {
|
||||
jsIndent += plus;
|
||||
jsIndent -= minus;
|
||||
// No change
|
||||
lines[i][0] = jsIndent;
|
||||
}
|
||||
// Special handling for else statements
|
||||
if (trimmedLine.startsWith('<% else') ||
|
||||
trimmedLine.startsWith('<% } else')) {
|
||||
// Special handling for else statements - dedent by 1
|
||||
if (trimmedLine.indexOf('<% else') !== -1 ||
|
||||
trimmedLine.indexOf('<% } else') !== -1) {
|
||||
lines[i][0]--;
|
||||
}
|
||||
}
|
||||
// Step 5: Escape remaining single-line code blocks
|
||||
// Step 6: Escape remaining single-line code blocks
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
reading = lines[i][1];
|
||||
working = '';
|
||||
@@ -177,7 +194,7 @@ class JqhtmlFormattingEditProvider {
|
||||
working += reading;
|
||||
lines[i][1] = working;
|
||||
}
|
||||
// Step 6: Handle HTML tag indents
|
||||
// Step 7: Handle HTML tag indents
|
||||
let htmlIndent = 0;
|
||||
let openSelfClosingTag = null; // Track if we're inside a multiline self-closing tag
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
@@ -246,7 +263,7 @@ class JqhtmlFormattingEditProvider {
|
||||
lines[i][0]++;
|
||||
}
|
||||
}
|
||||
// Step 7: Build result with proper indentation
|
||||
// Step 8: Build result with proper indentation
|
||||
let result = '';
|
||||
for (const [indent, line] of lines) {
|
||||
const finalIndent = Math.max(0, indent);
|
||||
@@ -257,7 +274,7 @@ class JqhtmlFormattingEditProvider {
|
||||
result += '\n';
|
||||
}
|
||||
}
|
||||
// Step 8: Restore safe blocks
|
||||
// Step 9: Restore safe blocks
|
||||
for (let attempt = 0; attempt < 10; attempt++) {
|
||||
let hasChanges = false;
|
||||
for (let i = 0; i < safeCode.length; i++) {
|
||||
@@ -271,7 +288,7 @@ class JqhtmlFormattingEditProvider {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Step 9: Add blank lines around Define tag contents
|
||||
// Step 10: Add blank lines around Define tag contents
|
||||
result = this.addDefineTagSpacing(result);
|
||||
return result.trim();
|
||||
}
|
||||
|
||||
2
node_modules/@jqhtml/vscode-extension/out/formatter.js.map
generated
vendored
2
node_modules/@jqhtml/vscode-extension/out/formatter.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@jqhtml/vscode-extension/package.json
generated
vendored
2
node_modules/@jqhtml/vscode-extension/package.json
generated
vendored
@@ -2,7 +2,7 @@
|
||||
"name": "@jqhtml/vscode-extension",
|
||||
"displayName": "JQHTML",
|
||||
"description": "Syntax highlighting and language support for JQHTML template files",
|
||||
"version": "2.2.186",
|
||||
"version": "2.2.216",
|
||||
"publisher": "jqhtml",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
|
||||
18
node_modules/@jqhtml/vscode-extension/syntaxes/jqhtml.tmLanguage.json
generated
vendored
18
node_modules/@jqhtml/vscode-extension/syntaxes/jqhtml.tmLanguage.json
generated
vendored
@@ -229,20 +229,6 @@
|
||||
{ "include": "source.js" }
|
||||
]
|
||||
},
|
||||
"control-flow": {
|
||||
"comment": "Control flow keywords that support both colon and brace syntax",
|
||||
"patterns": [
|
||||
{
|
||||
"match": "\\b(if|else|elseif|endif|for|endfor|while|endwhile|foreach|endforeach)\\b",
|
||||
"name": "keyword.control.flow.jqhtml"
|
||||
},
|
||||
{
|
||||
"comment": "Colon at end of control flow statement (Python-style)",
|
||||
"match": "(:)\\s*$",
|
||||
"name": "punctuation.separator.key-value.jqhtml"
|
||||
}
|
||||
]
|
||||
},
|
||||
"html-tag": {
|
||||
"patterns": [
|
||||
{ "include": "#slot-tag" },
|
||||
@@ -260,7 +246,7 @@
|
||||
"captures": {
|
||||
"1": { "name": "punctuation.definition.tag.begin.jqhtml" },
|
||||
"2": { "name": "keyword.control.slot.jqhtml" },
|
||||
"3": { "name": "entity.name.tag.slot.jqhtml" },
|
||||
"3": { "name": "keyword.control.slot.jqhtml" },
|
||||
"4": {
|
||||
"patterns": [
|
||||
{ "include": "#tag-attributes" }
|
||||
@@ -276,7 +262,7 @@
|
||||
"captures": {
|
||||
"1": { "name": "punctuation.definition.tag.begin.jqhtml" },
|
||||
"2": { "name": "keyword.control.slot.jqhtml" },
|
||||
"3": { "name": "entity.name.tag.slot.jqhtml" },
|
||||
"3": { "name": "keyword.control.slot.jqhtml" },
|
||||
"4": { "name": "punctuation.definition.tag.end.jqhtml" }
|
||||
}
|
||||
}
|
||||
|
||||
4
node_modules/@jqhtml/webpack-loader/package.json
generated
vendored
4
node_modules/@jqhtml/webpack-loader/package.json
generated
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jqhtml/webpack-loader",
|
||||
"version": "2.2.186",
|
||||
"version": "2.2.216",
|
||||
"description": "Webpack loader for JQHTML templates",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
@@ -30,7 +30,7 @@
|
||||
"template"
|
||||
],
|
||||
"dependencies": {
|
||||
"@jqhtml/parser": "2.2.186",
|
||||
"@jqhtml/parser": "2.2.216",
|
||||
"@types/loader-utils": "^2.0.6",
|
||||
"@types/node": "^20.0.0",
|
||||
"@types/webpack": "^5.28.5",
|
||||
|
||||
Reference in New Issue
Block a user