@emberkit/core 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/LICENSE +199 -0
  2. package/dist/boundaries/error-boundary.d.ts +29 -0
  3. package/dist/boundaries/error-boundary.d.ts.map +1 -0
  4. package/dist/boundaries/errors.d.ts +39 -0
  5. package/dist/boundaries/errors.d.ts.map +1 -0
  6. package/dist/boundaries/index.d.ts +5 -0
  7. package/dist/boundaries/index.d.ts.map +1 -0
  8. package/dist/boundaries/loading-boundary.d.ts +42 -0
  9. package/dist/boundaries/loading-boundary.d.ts.map +1 -0
  10. package/dist/cache/index.d.ts +60 -0
  11. package/dist/cache/index.d.ts.map +1 -0
  12. package/dist/compiler/compiler.d.ts +6 -0
  13. package/dist/compiler/compiler.d.ts.map +1 -0
  14. package/dist/compiler/helpers/attributes.d.ts +4 -0
  15. package/dist/compiler/helpers/attributes.d.ts.map +1 -0
  16. package/dist/compiler/helpers/utils.d.ts +10 -0
  17. package/dist/compiler/helpers/utils.d.ts.map +1 -0
  18. package/dist/compiler/index.d.ts +5 -0
  19. package/dist/compiler/index.d.ts.map +1 -0
  20. package/dist/compiler/types.d.ts +40 -0
  21. package/dist/compiler/types.d.ts.map +1 -0
  22. package/dist/context/index.d.ts +34 -0
  23. package/dist/context/index.d.ts.map +1 -0
  24. package/dist/context/types.d.ts +10 -0
  25. package/dist/context/types.d.ts.map +1 -0
  26. package/dist/dev-server/index.d.ts +30 -0
  27. package/dist/dev-server/index.d.ts.map +1 -0
  28. package/dist/forms/index.d.ts +58 -0
  29. package/dist/forms/index.d.ts.map +1 -0
  30. package/dist/forms/mutations.d.ts +48 -0
  31. package/dist/forms/mutations.d.ts.map +1 -0
  32. package/dist/hmr/client.d.ts +18 -0
  33. package/dist/hmr/client.d.ts.map +1 -0
  34. package/dist/hmr/index.d.ts +3 -0
  35. package/dist/hmr/index.d.ts.map +1 -0
  36. package/dist/hmr/types.d.ts +42 -0
  37. package/dist/hmr/types.d.ts.map +1 -0
  38. package/dist/hydration/helpers/analyzer.d.ts +9 -0
  39. package/dist/hydration/helpers/analyzer.d.ts.map +1 -0
  40. package/dist/hydration/helpers/hydration.d.ts +19 -0
  41. package/dist/hydration/helpers/hydration.d.ts.map +1 -0
  42. package/dist/hydration/index.d.ts +4 -0
  43. package/dist/hydration/index.d.ts.map +1 -0
  44. package/dist/hydration/types.d.ts +27 -0
  45. package/dist/hydration/types.d.ts.map +1 -0
  46. package/dist/image/index.d.ts +9 -0
  47. package/dist/image/index.d.ts.map +1 -0
  48. package/dist/image/processor.d.ts +57 -0
  49. package/dist/image/processor.d.ts.map +1 -0
  50. package/dist/index.d.ts +20 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/jsx-dev-runtime.d.ts +11 -0
  53. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  54. package/dist/jsx-runtime.d.ts +11 -0
  55. package/dist/jsx-runtime.d.ts.map +1 -0
  56. package/dist/loader/helpers/loader.d.ts +6 -0
  57. package/dist/loader/helpers/loader.d.ts.map +1 -0
  58. package/dist/loader/index.d.ts +3 -0
  59. package/dist/loader/index.d.ts.map +1 -0
  60. package/dist/loader/types.d.ts +34 -0
  61. package/dist/loader/types.d.ts.map +1 -0
  62. package/dist/markdown/index.d.ts +77 -0
  63. package/dist/markdown/index.d.ts.map +1 -0
  64. package/dist/mdx/index.d.ts +43 -0
  65. package/dist/mdx/index.d.ts.map +1 -0
  66. package/dist/mdx/loader.d.ts +3 -0
  67. package/dist/mdx/loader.d.ts.map +1 -0
  68. package/dist/meta/head-registry.d.ts +5 -0
  69. package/dist/meta/head-registry.d.ts.map +1 -0
  70. package/dist/meta/head.d.ts +29 -0
  71. package/dist/meta/head.d.ts.map +1 -0
  72. package/dist/meta/index.d.ts +91 -0
  73. package/dist/meta/index.d.ts.map +1 -0
  74. package/dist/navigation/helpers/navigation.d.ts +15 -0
  75. package/dist/navigation/helpers/navigation.d.ts.map +1 -0
  76. package/dist/navigation/helpers/useNavigate.d.ts +6 -0
  77. package/dist/navigation/helpers/useNavigate.d.ts.map +1 -0
  78. package/dist/navigation/index.d.ts +5 -0
  79. package/dist/navigation/index.d.ts.map +1 -0
  80. package/dist/navigation/types.d.ts +24 -0
  81. package/dist/navigation/types.d.ts.map +1 -0
  82. package/dist/plugin/index.d.ts +73 -0
  83. package/dist/plugin/index.d.ts.map +1 -0
  84. package/dist/router/helpers/path.d.ts +15 -0
  85. package/dist/router/helpers/path.d.ts.map +1 -0
  86. package/dist/router/helpers/route.d.ts +6 -0
  87. package/dist/router/helpers/route.d.ts.map +1 -0
  88. package/dist/router/index.d.ts +35 -0
  89. package/dist/router/index.d.ts.map +1 -0
  90. package/dist/router/types.d.ts +30 -0
  91. package/dist/router/types.d.ts.map +1 -0
  92. package/dist/runtime/helpers/element.d.ts +7 -0
  93. package/dist/runtime/helpers/element.d.ts.map +1 -0
  94. package/dist/runtime/helpers/render.d.ts +8 -0
  95. package/dist/runtime/helpers/render.d.ts.map +1 -0
  96. package/dist/runtime/helpers/render.js +17 -2
  97. package/dist/runtime/index.d.ts +16 -0
  98. package/dist/runtime/index.d.ts.map +1 -0
  99. package/dist/runtime/index.js +53 -0
  100. package/dist/runtime/types.d.ts +65 -0
  101. package/dist/runtime/types.d.ts.map +1 -0
  102. package/dist/signals/helpers/core.d.ts +11 -0
  103. package/dist/signals/helpers/core.d.ts.map +1 -0
  104. package/dist/signals/helpers/core.js +32 -12
  105. package/dist/signals/helpers/utils.d.ts +7 -0
  106. package/dist/signals/helpers/utils.d.ts.map +1 -0
  107. package/dist/signals/index.d.ts +4 -0
  108. package/dist/signals/index.d.ts.map +1 -0
  109. package/dist/signals/types.d.ts +23 -0
  110. package/dist/signals/types.d.ts.map +1 -0
  111. package/dist/ssg/index.d.ts +38 -0
  112. package/dist/ssg/index.d.ts.map +1 -0
  113. package/dist/ssr/helpers/render-html.d.ts +16 -0
  114. package/dist/ssr/helpers/render-html.d.ts.map +1 -0
  115. package/dist/ssr/helpers/ssr.d.ts +14 -0
  116. package/dist/ssr/helpers/ssr.d.ts.map +1 -0
  117. package/dist/ssr/index.d.ts +4 -0
  118. package/dist/ssr/index.d.ts.map +1 -0
  119. package/dist/ssr/types.d.ts +29 -0
  120. package/dist/ssr/types.d.ts.map +1 -0
  121. package/dist/vite-plugin/index.d.ts +5 -0
  122. package/dist/vite-plugin/index.d.ts.map +1 -0
  123. package/dist/vite-plugin/types.d.ts +36 -0
  124. package/dist/vite-plugin/types.d.ts.map +1 -0
  125. package/package.json +10 -10
@@ -0,0 +1,58 @@
1
+ export interface FormConfig {
2
+ action?: string;
3
+ method?: 'get' | 'post' | 'put' | 'delete' | 'patch';
4
+ encType?: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
5
+ validation?: ValidationSchema;
6
+ onSubmit?: FormSubmitHandler;
7
+ onError?: FormErrorHandler;
8
+ }
9
+ export interface ValidationSchema {
10
+ fields: Record<string, FieldValidator>;
11
+ validateOnSubmit?: boolean;
12
+ validateOnBlur?: boolean;
13
+ }
14
+ export interface FieldValidator {
15
+ required?: boolean;
16
+ minLength?: number;
17
+ maxLength?: number;
18
+ pattern?: RegExp;
19
+ custom?: (value: unknown) => string | null;
20
+ }
21
+ export type FormSubmitHandler = (data: FormData, event: SubmitEvent) => Promise<void> | void;
22
+ export type FormErrorHandler = (errors: FormErrors, event: SubmitEvent) => void;
23
+ export interface FormErrors {
24
+ [field: string]: string | undefined;
25
+ }
26
+ export interface FormState {
27
+ values: Record<string, unknown>;
28
+ errors: FormErrors;
29
+ touched: Set<string>;
30
+ dirty: boolean;
31
+ submitting: boolean;
32
+ submitted: boolean;
33
+ }
34
+ export declare class FormValidator {
35
+ private schema;
36
+ constructor(schema: ValidationSchema);
37
+ validate(data: Record<string, unknown>): FormErrors;
38
+ validateField(name: string, value: unknown, validator: FieldValidator): string | undefined;
39
+ validateFieldOnly(name: string, value: unknown): string | undefined;
40
+ }
41
+ export declare function createFormValidator(schema: ValidationSchema): FormValidator;
42
+ export declare function parseFormData(form: HTMLFormElement): Record<string, unknown>;
43
+ export declare function createFormState(initial?: Record<string, unknown>): FormState;
44
+ export declare function updateFormState(state: FormState, updates: Partial<FormState>): FormState;
45
+ export declare function getFieldValue(state: FormState, name: string): unknown;
46
+ export declare function setFieldValue(state: FormState, name: string, value: unknown): FormState;
47
+ export declare function setFieldError(state: FormState, name: string, error: string | undefined): FormState;
48
+ export declare function clearFormState(state: FormState): FormState;
49
+ export declare function handleFormSubmit(event: SubmitEvent, config: FormConfig): Promise<boolean>;
50
+ export declare const DEFAULT_VALIDATORS: Record<string, FieldValidator>;
51
+ export declare function applyDefaultValidator(field: string, validator: FieldValidator): FieldValidator;
52
+ export interface FormSubmitOptions {
53
+ method?: string;
54
+ action?: string;
55
+ target?: string;
56
+ }
57
+ export declare function buildFormAction(action: string, method: string, params?: Record<string, string>): string;
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/forms/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export interface MutationOptions<TData, TVariables> {
2
+ onMutate?: (variables: TVariables) => TData | Promise<TData>;
3
+ onSuccess?: (data: TData, variables: TVariables) => void;
4
+ onError?: (error: Error, variables: TVariables) => void;
5
+ onSettled?: (data?: TData, error?: Error) => void;
6
+ }
7
+ export interface MutationResult<TData> {
8
+ data: TData | null;
9
+ error: Error | null;
10
+ status: 'idle' | 'pending' | 'success' | 'error';
11
+ isPending: boolean;
12
+ isSuccess: boolean;
13
+ isError: boolean;
14
+ }
15
+ export interface ActionContext {
16
+ request: Request;
17
+ params: Record<string, string>;
18
+ query: URLSearchParams;
19
+ }
20
+ export type ActionHandler<TData = unknown, TVariables = Record<string, unknown>> = (variables: TVariables, context: ActionContext) => TData | Promise<TData>;
21
+ export interface ActionResult<TData> {
22
+ data: TData | null;
23
+ error: string | null;
24
+ status: number;
25
+ headers?: Record<string, string>;
26
+ }
27
+ export declare function createAction<TData, TVariables>(handler: ActionHandler<TData, TVariables>, options?: MutationOptions<TData, TVariables>): (variables: TVariables, context?: Partial<ActionContext>) => Promise<ActionResult<TData>>;
28
+ export declare function createMutation<TData, TVariables>(handler: ActionHandler<TData, TVariables>, options?: MutationOptions<TData, TVariables>): {
29
+ mutate: (variables: TVariables) => Promise<ActionResult<TData>>;
30
+ subscribe: (listener: (state: MutationResult<TData>) => void) => () => boolean;
31
+ getState: () => MutationResult<TData>;
32
+ reset: () => void;
33
+ };
34
+ export declare function handleAction(handler: ActionHandler, request: Request): Promise<Response>;
35
+ export declare function createActionHandler(handler: ActionHandler): (request: Request) => Promise<Response>;
36
+ export type MutationKey = string;
37
+ export declare const mutationCache: Map<string, MutationResult<unknown>>;
38
+ export declare function getCachedMutation(key: MutationKey): MutationResult<unknown> | undefined;
39
+ export declare function setCachedMutation<T>(key: MutationKey, result: MutationResult<T>): void;
40
+ export declare function invalidateMutation(key: MutationKey): void;
41
+ export declare function clearMutationCache(): void;
42
+ export interface UseMutationReturn<TData, TVariables> {
43
+ mutate: (variables: TVariables) => Promise<ActionResult<TData>>;
44
+ state: MutationResult<TData>;
45
+ reset: () => void;
46
+ }
47
+ export declare function useMutation<TData, TVariables>(action: ActionHandler<TData, TVariables>, options?: MutationOptions<TData, TVariables>): UseMutationReturn<TData, TVariables>;
48
+ //# sourceMappingURL=mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/forms/mutations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { HMRContext } from './types.js';
2
+ declare global {
3
+ interface ImportMeta {
4
+ readonly hot?: HotModuleAPI;
5
+ }
6
+ }
7
+ export interface HotModuleAPI {
8
+ accept(deps?: string | string[], callback?: () => void): void;
9
+ decline(): void;
10
+ dispose(callback: () => void): void;
11
+ data: Record<string, unknown>;
12
+ on(event: string, callback: (data: unknown) => void): void;
13
+ send(event: string, data: unknown): void;
14
+ }
15
+ export declare function createHotAPI(context: HMRContext, moduleId: string, moduleUrl: string): HotModuleAPI;
16
+ export declare function setupHMRClient(context: HMRContext): void;
17
+ export declare function cleanupHMRClient(): void;
18
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/hmr/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAOxD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;KAC7B;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,YAAY,CAsDd;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAkCxD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
@@ -0,0 +1,3 @@
1
+ export * from './client.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hmr/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,42 @@
1
+ export interface DevServerConfig {
2
+ port: number;
3
+ host: string;
4
+ hmr: boolean;
5
+ open: boolean;
6
+ cors: boolean;
7
+ }
8
+ export interface HotModule {
9
+ id: string;
10
+ url: string;
11
+ needsAccept: boolean;
12
+ acceptCallbacks: Array<() => void>;
13
+ disposeCallbacks: Array<() => void>;
14
+ }
15
+ export interface HMRContext {
16
+ connections: Map<string, WebSocket>;
17
+ modules: Map<string, HotModule>;
18
+ listeners: Array<(event: HMREvent) => void>;
19
+ }
20
+ export interface HMREvent {
21
+ type: 'connected' | 'disconnected' | 'update' | 'error';
22
+ moduleId?: string;
23
+ timestamp: number;
24
+ payload?: unknown;
25
+ }
26
+ export declare class HMRConnection {
27
+ private ws;
28
+ private readonly url;
29
+ constructor(url: string);
30
+ connect(onMessage: (data: unknown) => void): void;
31
+ private reconnect;
32
+ send(data: unknown): void;
33
+ close(): void;
34
+ }
35
+ export declare function createHMRContext(): HMRContext;
36
+ export declare function subscribeToHMR(context: HMRContext, callback: (event: HMREvent) => void): () => void;
37
+ export declare function emitHMREvent(context: HMRContext, event: HMREvent): void;
38
+ export declare function handleHMRMessage(context: HMRContext, data: Record<string, unknown>): Promise<void>;
39
+ export declare function getHotModule(context: HMRContext, id: string): HotModule | undefined;
40
+ export declare function registerHotModule(context: HMRContext, module: HotModule): void;
41
+ export declare function disposeHotModule(context: HMRContext, id: string): void;
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hmr/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,gBAAgB,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,GAAG,EAAE,MAAM;IAIvB,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IA+BjD,OAAO,CAAC,SAAS;IAKjB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAMzB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAM7C;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAClC,MAAM,IAAI,CASZ;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,QAAQ,GACd,IAAI,CAIN;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAaf;AA0CD,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEnF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,SAAS,GAChB,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,EAAE,EAAE,MAAM,GACT,IAAI,CAYN"}
@@ -0,0 +1,9 @@
1
+ import type { DOMElement } from '../../runtime/types.js';
2
+ import { type InteractiveElement, type HydrationManifest, type HydrationStrategy } from '../types.js';
3
+ export declare function analyzeElement(element: DOMElement): InteractiveElement | null;
4
+ export declare function extractEventHandlers(props: Record<string, unknown>): Set<string>;
5
+ export declare function buildSelector(tagName: string, props: Record<string, unknown>): string;
6
+ export declare function determineHydrationStrategy(tagName: string, props: Record<string, unknown>): HydrationStrategy;
7
+ export declare function analyzeTree(element: DOMElement | null): HydrationManifest;
8
+ export declare function getHydrationCandidates(manifest: HydrationManifest, strategy: HydrationStrategy['type']): InteractiveElement[];
9
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/hydration/helpers/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAkB7E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAUhF;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAaR;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,iBAAiB,CAwBnB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,iBAAiB,CAoCnB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAClC,kBAAkB,EAAE,CAEtB"}
@@ -0,0 +1,19 @@
1
+ import type { DOMElement } from '../../runtime/types.js';
2
+ import type { InteractiveElement } from '../types.js';
3
+ export interface HydrationOptions {
4
+ hydrateInteractive?: boolean;
5
+ rootSelector?: string;
6
+ timeout?: number;
7
+ onHydrated?: (element: InteractiveElement) => void;
8
+ onError?: (element: InteractiveElement, error: Error) => void;
9
+ }
10
+ export declare function hydrateSelective(container: Element | string, element: DOMElement | null, options?: HydrationOptions): Promise<void>;
11
+ export declare function attachEventHandlers(element: Element, handlers: Set<string>): void;
12
+ export declare function createLazyHydration<T>(loader: () => Promise<T>, options?: {
13
+ fallback?: DOMElement | null;
14
+ timeout?: number;
15
+ onLoaded?: (value: T) => void;
16
+ onError?: (error: Error) => void;
17
+ }): DOMElement;
18
+ export declare function clearHydrationCache(): void;
19
+ //# sourceMappingURL=hydration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../../src/hydration/helpers/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/D;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,OAAO,GAAG,MAAM,EAC3B,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuBf;AA4CD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,IAAI,CAcN;AAgCD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,GACL,UAAU,CAsBZ;AAwCD,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -0,0 +1,4 @@
1
+ export * from './types.js';
2
+ export * from './helpers/analyzer.js';
3
+ export * from './helpers/hydration.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hydration/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface HydrationConfig {
2
+ hydrateInteractive?: boolean;
3
+ lazyComponents?: boolean;
4
+ streaming?: boolean;
5
+ }
6
+ export interface HydrationStrategy {
7
+ type: 'eager' | 'lazy' | 'deferred' | 'none';
8
+ priority?: 'high' | 'medium' | 'low';
9
+ timeout?: number;
10
+ }
11
+ export interface InteractiveElement {
12
+ selector: string;
13
+ eventHandlers: Set<string>;
14
+ needsHydration: boolean;
15
+ strategy: HydrationStrategy;
16
+ }
17
+ export interface HydrationManifest {
18
+ elements: InteractiveElement[];
19
+ totalElements: number;
20
+ hydrationRequired: number;
21
+ hydrationSkipped: number;
22
+ }
23
+ export declare const INTERACTIVE_ATTRIBUTES: Set<string>;
24
+ export declare const HYDRATABLE_TAGS: Set<string>;
25
+ export declare function isInteractiveTag(tagName: string): boolean;
26
+ export declare function hasEventHandlers(props: Record<string, unknown>): boolean;
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hydration/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,aAOjC,CAAC;AAEH,eAAO,MAAM,eAAe,aAG1B,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAExE"}
@@ -0,0 +1,9 @@
1
+ import type { Plugin } from '../plugin/index.js';
2
+ import { type ImageConfig } from './processor.js';
3
+ export interface ImagePluginConfig extends ImageConfig {
4
+ watchDir?: string;
5
+ }
6
+ export declare function imagePlugin(config?: ImagePluginConfig): Plugin;
7
+ export declare function createImageVitePlugin(config?: ImagePluginConfig): Plugin;
8
+ export { createImageProcessor, type ImageConfig, type ImageStats, type TransformedImage } from './processor.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,MAAM,GAAE,iBAAsB,GAAG,MAAM,CAelE;AAoBD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAExE;AAED,OAAO,EAAE,oBAAoB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,57 @@
1
+ export interface ImageConfig {
2
+ provider?: 'none' | 'cloudflare' | 'imgix' | 'ipx';
3
+ baseUrl?: string;
4
+ quality?: number;
5
+ formats?: Array<'webp' | 'avif' | 'png' | 'jpeg'>;
6
+ sizes?: Array<number>;
7
+ lazy?: boolean;
8
+ placeholder?: 'blur' | 'dominant' | 'none';
9
+ }
10
+ export interface ImageStats {
11
+ originalSize: number;
12
+ optimizedSize: number;
13
+ savings: number;
14
+ format: string;
15
+ }
16
+ export interface TransformedImage {
17
+ src: string;
18
+ srcset: string;
19
+ width: number;
20
+ height: number;
21
+ format: string;
22
+ blurDataURL?: string;
23
+ }
24
+ export declare class ImageProcessor {
25
+ private config;
26
+ constructor(config?: ImageConfig);
27
+ transform(src: string, options?: {
28
+ width?: number;
29
+ height?: number;
30
+ format?: string;
31
+ quality?: number;
32
+ }): TransformedImage;
33
+ private buildUrl;
34
+ private buildSrcset;
35
+ private generatePlaceholder;
36
+ analyze(stats: ImageStats): void;
37
+ }
38
+ export declare function createImageProcessor(config?: ImageConfig): ImageProcessor;
39
+ export declare function getOptimalFormat(acceptHeader: string): string;
40
+ export declare function calculateSizes(sizes: string, viewport: number): string;
41
+ export declare const ASPECT_RATIOS: Map<string, number>;
42
+ export declare function calculateDimensions(width: number, aspectRatio?: string): {
43
+ width: number;
44
+ height: number;
45
+ };
46
+ export declare const LOW_QUALITY_IMAGE_SIZES: number[];
47
+ export declare function generatePlaceholderSVG(width: number, height: number, color?: string): string;
48
+ export declare function createPictureElement(image: TransformedImage, alt: string, options?: {
49
+ lazy?: boolean;
50
+ loading?: 'lazy' | 'eager';
51
+ fetchpriority?: 'high' | 'low' | 'auto';
52
+ }): string;
53
+ export declare function parseImageSrc(src: string): {
54
+ path: string;
55
+ params: Record<string, string>;
56
+ };
57
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/image/processor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,GAAE,WAAgB;IAYpC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,gBAAgB;IAoBzB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAOjC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,eAAO,MAAM,aAAa,qBAOxB,CAAC;AAEH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOnC;AAED,eAAO,MAAM,uBAAuB,UAAe,CAAC;AAEpD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,SAAY,GAChB,MAAM,CAOR;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;CAAO,GACpG,MAAM,CAyBR;AAYD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAcA"}
@@ -0,0 +1,20 @@
1
+ export declare const VERSION = "0.1.0";
2
+ export { createElement, render, hydrate } from './runtime/index.js';
3
+ export { createSignal, createMemo, createEffect, batch, untrack } from './signals/index.js';
4
+ export { createContext, useContext } from './context/index.js';
5
+ export { navigate, preload, useNavigate } from './navigation/index.js';
6
+ export { createRouter, matchRoute } from './router/index.js';
7
+ export { createLoaderData, type LoaderResult } from './loader/index.js';
8
+ export { createErrorBoundary, createLoadingBoundary } from './boundaries/index.js';
9
+ export type { JSXElement, DOMElement } from './runtime/types.js';
10
+ export type { Signal, WritableSignal, ReadonlySignal } from './signals/index.js';
11
+ export { createMarkdownParser, parseMarkdown, renderMarkdown, extractFrontmatter } from './markdown/index.js';
12
+ export { compileMDX, compileSync, useMDX } from './mdx/index.js';
13
+ export { DataCache, createCache, getCached, setCache, prefetch } from './cache/index.js';
14
+ export { Head } from './meta/index.js';
15
+ export type { HeadProps } from './meta/index.js';
16
+ export { generateMeta, generateBreadcrumbs, generateArticleSchema, generateProductSchema } from './meta/index.js';
17
+ export type { MetaData, OpenGraphData, TwitterCardData } from './meta/index.js';
18
+ export type { FC, RouteComponent, RouteChildren } from './runtime/types.js';
19
+ export declare function defineConfig(config: Record<string, unknown>): Record<string, unknown>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnF,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAClH,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhF,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErF"}
@@ -0,0 +1,11 @@
1
+ interface JSXNode {
2
+ type: string | ((props: Record<string, unknown>) => unknown);
3
+ props: Record<string, unknown>;
4
+ }
5
+ export declare function jsxDEV(type: string | ((props: Record<string, unknown>) => unknown), props: Record<string, unknown>): JSXNode;
6
+ export declare const Fragment: ({ children }: {
7
+ children?: unknown[];
8
+ }) => unknown[];
9
+ export declare const jsxs: typeof jsxDEV;
10
+ export {};
11
+ //# sourceMappingURL=jsx-dev-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAE5H;AAED,eAAO,MAAM,QAAQ,GAAI,cAAc;IAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,cAE9D,CAAC;AAEF,eAAO,MAAM,IAAI,eAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface JSXNode {
2
+ type: string | ((props: Record<string, unknown>) => unknown);
3
+ props: Record<string, unknown>;
4
+ }
5
+ export declare function jsx(type: string | ((props: Record<string, unknown>) => unknown), props: Record<string, unknown>): JSXNode;
6
+ export declare const Fragment: ({ children }: {
7
+ children?: unknown[];
8
+ }) => unknown[];
9
+ export declare const jsxs: typeof jsx;
10
+ export {};
11
+ //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEzH;AAED,eAAO,MAAM,QAAQ,GAAI,cAAc;IAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,cAE9D,CAAC;AAEF,eAAO,MAAM,IAAI,YAAM,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LoaderContext, LoaderResult, LoaderError } from '../types.js';
2
+ export declare function runLoader<T>(loader: ((context: LoaderContext) => Promise<LoaderResult<T>> | LoaderResult<T>) | undefined, context: LoaderContext): Promise<LoaderResult<T>>;
3
+ export declare function extractLoaderData<T>(result: LoaderResult<T>): T | null;
4
+ export declare function extractLoaderError(result: LoaderResult<unknown>): LoaderError | null;
5
+ export declare function mergeLoaderResults<T>(results: LoaderResult<T>[]): LoaderResult<T[]>;
6
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/loader/helpers/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5E,wBAAsB,SAAS,CAAC,CAAC,EAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAC5F,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA0B1B;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAKtE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,IAAI,CAKpF;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GACzB,YAAY,CAAC,CAAC,EAAE,CAAC,CAuBnB"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './helpers/loader.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,34 @@
1
+ export interface RouteParams<T extends Record<string, string> = Record<string, string>> {
2
+ params: T;
3
+ query: Record<string, string | string[]>;
4
+ request: Request;
5
+ }
6
+ export interface LoaderData<T> {
7
+ data: T;
8
+ error?: never;
9
+ }
10
+ export interface LoaderError {
11
+ data?: never;
12
+ error: {
13
+ code: string;
14
+ message: string;
15
+ status: number;
16
+ };
17
+ }
18
+ export type LoaderResult<T> = LoaderData<T> | LoaderError;
19
+ export interface LoaderContext {
20
+ params: Record<string, string>;
21
+ query: Record<string, string | string[]>;
22
+ request: Request;
23
+ }
24
+ export type LoaderFunction<T = unknown> = (context: LoaderContext) => Promise<LoaderResult<T>> | LoaderResult<T>;
25
+ export interface ActionContext {
26
+ params: Record<string, string>;
27
+ request: Request;
28
+ }
29
+ export type ActionFunction<T = unknown> = (context: ActionContext) => Promise<LoaderResult<T>> | LoaderResult<T>;
30
+ export declare function isLoaderError<T>(result: LoaderResult<T>): result is LoaderError;
31
+ export declare function isLoaderData<T>(result: LoaderResult<T>): result is LoaderData<T>;
32
+ export declare function createLoaderError(code: string, message: string, status?: number): LoaderError;
33
+ export declare function createLoaderData<T>(data: T): LoaderData<T>;
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/loader/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEhD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAE/E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAEhF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAY,GACnB,WAAW,CAIb;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAE1D"}
@@ -0,0 +1,77 @@
1
+ export interface MarkdownConfig {
2
+ gfm?: boolean;
3
+ breaks?: boolean;
4
+ remarkPlugins?: unknown[];
5
+ rehypePlugins?: unknown[];
6
+ components?: Record<string, string>;
7
+ }
8
+ export interface MarkdownOptions extends MarkdownConfig {
9
+ html?: boolean;
10
+ tables?: boolean;
11
+ taskLists?: boolean;
12
+ footnotes?: boolean;
13
+ }
14
+ export interface ParsedMarkdown {
15
+ html: string;
16
+ frontmatter?: Record<string, unknown>;
17
+ headings: Heading[];
18
+ links: string[];
19
+ images: ImageInfo[];
20
+ codeBlocks: CodeBlock[];
21
+ }
22
+ export interface Heading {
23
+ level: number;
24
+ text: string;
25
+ id: string;
26
+ }
27
+ export interface ImageInfo {
28
+ src: string;
29
+ alt: string;
30
+ title?: string;
31
+ }
32
+ export interface CodeBlock {
33
+ lang: string;
34
+ code: string;
35
+ }
36
+ export interface MarkdownPlugin {
37
+ name: string;
38
+ process: (content: string, options: MarkdownOptions) => string;
39
+ }
40
+ declare class MarkdownParser {
41
+ private config;
42
+ constructor(config?: MarkdownOptions);
43
+ parse(markdown: string): ParsedMarkdown;
44
+ private extractFrontmatter;
45
+ private removeFrontmatter;
46
+ private renderMarkdown;
47
+ private processHeadings;
48
+ private processLists;
49
+ private processTaskLists;
50
+ private processTables;
51
+ private processLinks;
52
+ private processImages;
53
+ private processBlockquotes;
54
+ private processEmphasis;
55
+ private processHorizontalRules;
56
+ private processLineBreaks;
57
+ private processComponents;
58
+ private extractHeadings;
59
+ private extractLinks;
60
+ private extractImages;
61
+ private extractCodeBlocks;
62
+ private slugify;
63
+ private escapeHtml;
64
+ }
65
+ export declare function createMarkdownParser(options?: MarkdownOptions): MarkdownParser;
66
+ export declare function parseMarkdown(content: string, options?: MarkdownOptions): ParsedMarkdown;
67
+ export declare function renderMarkdown(content: string, options?: MarkdownOptions): string;
68
+ export declare function extractFrontmatter(content: string): {
69
+ data: Record<string, unknown>;
70
+ content: string;
71
+ } | null;
72
+ export declare function markdownToPlainText(markdown: string): string;
73
+ export declare function getReadingTime(text: string, wpm?: number): number;
74
+ export declare function getWordCount(text: string): number;
75
+ export declare function getCharacterCount(text: string, includeSpaces?: boolean): number;
76
+ export {};
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { JSXElement } from '../runtime/types.js';
2
+ import { parseMarkdown } from '../markdown/index.js';
3
+ export interface MDXConfig {
4
+ gfm?: boolean;
5
+ breaks?: boolean;
6
+ tables?: boolean;
7
+ components?: Record<string, (props: Record<string, unknown>) => JSXElement>;
8
+ scope?: Record<string, unknown>;
9
+ }
10
+ export interface MDXComponent {
11
+ (props: Record<string, unknown>): JSXElement;
12
+ frontmatter?: Record<string, unknown>;
13
+ metadata?: MDXMetadata;
14
+ }
15
+ export interface MDXMetadata {
16
+ title?: string;
17
+ description?: string;
18
+ author?: string;
19
+ date?: string;
20
+ tags?: string[];
21
+ readingTime?: number;
22
+ }
23
+ declare class MDXCompiler {
24
+ private config;
25
+ private components;
26
+ constructor(config?: MDXConfig);
27
+ compile(source: string): (props: Record<string, unknown>) => JSXElement;
28
+ private generateComponent;
29
+ private extractHeadingIds;
30
+ private splitParagraphs;
31
+ private createComponent;
32
+ registerComponent(name: string, component: (props: Record<string, unknown>) => JSXElement): void;
33
+ unregisterComponent(name: string): void;
34
+ getComponent(name: string): ((props: Record<string, unknown>) => JSXElement) | undefined;
35
+ }
36
+ export declare function createMDXCompiler(config?: MDXConfig): MDXCompiler;
37
+ export declare function compileMDX(source: string, options?: MDXConfig): Promise<MDXComponent>;
38
+ export declare function compileSync(source: string, options?: MDXConfig): MDXComponent;
39
+ export declare function useMDX(source: string, options?: MDXConfig): MDXComponent;
40
+ export declare const DEFAULT_COMPONENTS: Record<string, (props: Record<string, unknown>) => JSXElement>;
41
+ export declare function mergeComponents(base: Record<string, (props: Record<string, unknown>) => JSXElement>, override: Record<string, (props: Record<string, unknown>) => JSXElement>): Record<string, (props: Record<string, unknown>) => JSXElement>;
42
+ export { parseMarkdown };
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mdx/index.ts"],"names":[],"mappings":"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"}