@emberkit/core 0.2.0 → 0.2.3

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 (149) 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/cache/index.js +24 -22
  13. package/dist/compiler/compiler.d.ts +6 -0
  14. package/dist/compiler/compiler.d.ts.map +1 -0
  15. package/dist/compiler/helpers/attributes.d.ts +4 -0
  16. package/dist/compiler/helpers/attributes.d.ts.map +1 -0
  17. package/dist/compiler/helpers/utils.d.ts +10 -0
  18. package/dist/compiler/helpers/utils.d.ts.map +1 -0
  19. package/dist/compiler/index.d.ts +5 -0
  20. package/dist/compiler/index.d.ts.map +1 -0
  21. package/dist/compiler/types.d.ts +40 -0
  22. package/dist/compiler/types.d.ts.map +1 -0
  23. package/dist/context/index.d.ts +34 -0
  24. package/dist/context/index.d.ts.map +1 -0
  25. package/dist/context/types.d.ts +10 -0
  26. package/dist/context/types.d.ts.map +1 -0
  27. package/dist/dev-server/index.d.ts +30 -0
  28. package/dist/dev-server/index.d.ts.map +1 -0
  29. package/dist/dev-server/index.js +27 -27
  30. package/dist/forms/index.d.ts +58 -0
  31. package/dist/forms/index.d.ts.map +1 -0
  32. package/dist/forms/index.js +1 -1
  33. package/dist/forms/mutations.d.ts +48 -0
  34. package/dist/forms/mutations.d.ts.map +1 -0
  35. package/dist/forms/mutations.js +4 -1
  36. package/dist/hmr/client.d.ts +18 -0
  37. package/dist/hmr/client.d.ts.map +1 -0
  38. package/dist/hmr/client.js +1 -1
  39. package/dist/hmr/index.d.ts +3 -0
  40. package/dist/hmr/index.d.ts.map +1 -0
  41. package/dist/hmr/types.d.ts +42 -0
  42. package/dist/hmr/types.d.ts.map +1 -0
  43. package/dist/hmr/types.js +7 -7
  44. package/dist/hydration/helpers/analyzer.d.ts +9 -0
  45. package/dist/hydration/helpers/analyzer.d.ts.map +1 -0
  46. package/dist/hydration/helpers/hydration.d.ts +19 -0
  47. package/dist/hydration/helpers/hydration.d.ts.map +1 -0
  48. package/dist/hydration/helpers/hydration.js +1 -1
  49. package/dist/hydration/index.d.ts +4 -0
  50. package/dist/hydration/index.d.ts.map +1 -0
  51. package/dist/hydration/types.d.ts +27 -0
  52. package/dist/hydration/types.d.ts.map +1 -0
  53. package/dist/hydration/types.js +32 -8
  54. package/dist/image/index.d.ts +9 -0
  55. package/dist/image/index.d.ts.map +1 -0
  56. package/dist/image/index.js +1 -1
  57. package/dist/image/processor.d.ts +57 -0
  58. package/dist/image/processor.d.ts.map +1 -0
  59. package/dist/image/processor.js +20 -15
  60. package/dist/index.d.ts +20 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +2 -2
  63. package/dist/jsx-dev-runtime.d.ts +11 -0
  64. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  65. package/dist/jsx-runtime.d.ts +11 -0
  66. package/dist/jsx-runtime.d.ts.map +1 -0
  67. package/dist/loader/helpers/loader.d.ts +6 -0
  68. package/dist/loader/helpers/loader.d.ts.map +1 -0
  69. package/dist/loader/index.d.ts +3 -0
  70. package/dist/loader/index.d.ts.map +1 -0
  71. package/dist/loader/types.d.ts +34 -0
  72. package/dist/loader/types.d.ts.map +1 -0
  73. package/dist/markdown/index.d.ts +77 -0
  74. package/dist/markdown/index.d.ts.map +1 -0
  75. package/dist/markdown/index.js +178 -172
  76. package/dist/mdx/index.d.ts +43 -0
  77. package/dist/mdx/index.d.ts.map +1 -0
  78. package/dist/mdx/index.js +46 -40
  79. package/dist/mdx/loader.d.ts +3 -0
  80. package/dist/mdx/loader.d.ts.map +1 -0
  81. package/dist/meta/head-registry.d.ts +5 -0
  82. package/dist/meta/head-registry.d.ts.map +1 -0
  83. package/dist/meta/head.d.ts +29 -0
  84. package/dist/meta/head.d.ts.map +1 -0
  85. package/dist/meta/index.d.ts +91 -0
  86. package/dist/meta/index.d.ts.map +1 -0
  87. package/dist/meta/index.js +16 -16
  88. package/dist/navigation/helpers/navigation.d.ts +15 -0
  89. package/dist/navigation/helpers/navigation.d.ts.map +1 -0
  90. package/dist/navigation/helpers/navigation.js +4 -4
  91. package/dist/navigation/helpers/useNavigate.d.ts +6 -0
  92. package/dist/navigation/helpers/useNavigate.d.ts.map +1 -0
  93. package/dist/navigation/index.d.ts +5 -0
  94. package/dist/navigation/index.d.ts.map +1 -0
  95. package/dist/navigation/types.d.ts +24 -0
  96. package/dist/navigation/types.d.ts.map +1 -0
  97. package/dist/navigation/types.js +1 -2
  98. package/dist/plugin/index.d.ts +73 -0
  99. package/dist/plugin/index.d.ts.map +1 -0
  100. package/dist/plugin/index.js +4 -4
  101. package/dist/router/helpers/path.d.ts +15 -0
  102. package/dist/router/helpers/path.d.ts.map +1 -0
  103. package/dist/router/helpers/route.d.ts +6 -0
  104. package/dist/router/helpers/route.d.ts.map +1 -0
  105. package/dist/router/helpers/route.js +10 -3
  106. package/dist/router/index.d.ts +35 -0
  107. package/dist/router/index.d.ts.map +1 -0
  108. package/dist/router/types.d.ts +30 -0
  109. package/dist/router/types.d.ts.map +1 -0
  110. package/dist/router/types.js +1 -3
  111. package/dist/runtime/helpers/element.d.ts +7 -0
  112. package/dist/runtime/helpers/element.d.ts.map +1 -0
  113. package/dist/runtime/helpers/render.d.ts +8 -0
  114. package/dist/runtime/helpers/render.d.ts.map +1 -0
  115. package/dist/runtime/helpers/render.js +37 -8
  116. package/dist/runtime/index.d.ts +16 -0
  117. package/dist/runtime/index.d.ts.map +1 -0
  118. package/dist/runtime/index.js +63 -7
  119. package/dist/runtime/types.d.ts +65 -0
  120. package/dist/runtime/types.d.ts.map +1 -0
  121. package/dist/signals/helpers/core.d.ts +11 -0
  122. package/dist/signals/helpers/core.d.ts.map +1 -0
  123. package/dist/signals/helpers/core.js +34 -12
  124. package/dist/signals/helpers/utils.d.ts +7 -0
  125. package/dist/signals/helpers/utils.d.ts.map +1 -0
  126. package/dist/signals/index.d.ts +4 -0
  127. package/dist/signals/index.d.ts.map +1 -0
  128. package/dist/signals/types.d.ts +23 -0
  129. package/dist/signals/types.d.ts.map +1 -0
  130. package/dist/ssg/index.d.ts +38 -0
  131. package/dist/ssg/index.d.ts.map +1 -0
  132. package/dist/ssg/index.js +8 -15
  133. package/dist/ssr/helpers/render-html.d.ts +16 -0
  134. package/dist/ssr/helpers/render-html.d.ts.map +1 -0
  135. package/dist/ssr/helpers/render-html.js +3 -2
  136. package/dist/ssr/helpers/ssr.d.ts +14 -0
  137. package/dist/ssr/helpers/ssr.d.ts.map +1 -0
  138. package/dist/ssr/helpers/ssr.js +3 -1
  139. package/dist/ssr/index.d.ts +4 -0
  140. package/dist/ssr/index.d.ts.map +1 -0
  141. package/dist/ssr/types.d.ts +29 -0
  142. package/dist/ssr/types.d.ts.map +1 -0
  143. package/dist/vite-plugin/index.d.ts +5 -0
  144. package/dist/vite-plugin/index.d.ts.map +1 -0
  145. package/dist/vite-plugin/index.js +207 -28
  146. package/dist/vite-plugin/types.d.ts +44 -0
  147. package/dist/vite-plugin/types.d.ts.map +1 -0
  148. package/dist/vite-plugin/types.js +4 -0
  149. package/package.json +12 -10
@@ -11,9 +11,20 @@ export class ImageProcessor {
11
11
  placeholder: config.placeholder ?? 'blur',
12
12
  };
13
13
  }
14
+ analyze(stats) {
15
+ const savingsPercent = parseFloat(((stats.savings / stats.originalSize) * 100).toFixed(1));
16
+ if (savingsPercent > 50) {
17
+ console.log(`[Image] Significant savings: ${savingsPercent}% reduction`);
18
+ }
19
+ }
14
20
  transform(src, options = {}) {
15
21
  const { width = 800, height, format = 'webp', quality } = options;
16
- const url = this.buildUrl(src, { width, height, format, quality: quality ?? this.config.quality });
22
+ const url = this.buildUrl(src, {
23
+ width,
24
+ height,
25
+ format,
26
+ quality: quality ?? this.config.quality,
27
+ });
17
28
  const srcset = this.buildSrcset(src, {
18
29
  format,
19
30
  quality: quality ?? this.config.quality,
@@ -27,6 +38,14 @@ export class ImageProcessor {
27
38
  blurDataURL: this.config.placeholder !== 'none' ? this.generatePlaceholder() : undefined,
28
39
  };
29
40
  }
41
+ buildSrcset(src, params) {
42
+ return this.config.sizes
43
+ .map((size) => {
44
+ const url = this.buildUrl(src, { width: size, ...params });
45
+ return `${url} ${size}w`;
46
+ })
47
+ .join(', ');
48
+ }
30
49
  buildUrl(src, params) {
31
50
  const url = new URL(src, this.config.baseUrl || 'https://example.com');
32
51
  if (params.width)
@@ -39,23 +58,9 @@ export class ImageProcessor {
39
58
  url.searchParams.set('q', String(params.quality));
40
59
  return url.toString();
41
60
  }
42
- buildSrcset(src, params) {
43
- return this.config.sizes
44
- .map((size) => {
45
- const url = this.buildUrl(src, { width: size, ...params });
46
- return `${url} ${size}w`;
47
- })
48
- .join(', ');
49
- }
50
61
  generatePlaceholder() {
51
62
  return 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj48L3JlY3Q+PC9zdmc+';
52
63
  }
53
- analyze(stats) {
54
- const savingsPercent = parseFloat(((stats.savings / stats.originalSize) * 100).toFixed(1));
55
- if (savingsPercent > 50) {
56
- console.log(`[Image] Significant savings: ${savingsPercent}% reduction`);
57
- }
58
- }
59
64
  }
60
65
  export function createImageProcessor(config) {
61
66
  return new ImageProcessor(config);
@@ -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,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,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,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,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"}
package/dist/index.js CHANGED
@@ -6,11 +6,11 @@ export { navigate, preload, useNavigate } from './navigation/index.js';
6
6
  export { createRouter, matchRoute } from './router/index.js';
7
7
  export { createLoaderData } from './loader/index.js';
8
8
  export { createErrorBoundary, createLoadingBoundary } from './boundaries/index.js';
9
- export { createMarkdownParser, parseMarkdown, renderMarkdown, extractFrontmatter } from './markdown/index.js';
9
+ export { createMarkdownParser, parseMarkdown, renderMarkdown, extractFrontmatter, } from './markdown/index.js';
10
10
  export { compileMDX, compileSync, useMDX } from './mdx/index.js';
11
11
  export { DataCache, createCache, getCached, setCache, prefetch } from './cache/index.js';
12
12
  export { Head } from './meta/index.js';
13
- export { generateMeta, generateBreadcrumbs, generateArticleSchema, generateProductSchema } from './meta/index.js';
13
+ export { generateMeta, generateBreadcrumbs, generateArticleSchema, generateProductSchema, } from './meta/index.js';
14
14
  export function defineConfig(config) {
15
15
  return config;
16
16
  }
@@ -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,CACpB,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAET;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,CACjB,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAET;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,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAuBnF"}
@@ -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 escapeHtml;
45
+ private extractCodeBlocks;
46
+ private extractFrontmatter;
47
+ private extractHeadings;
48
+ private extractImages;
49
+ private extractLinks;
50
+ private processBlockquotes;
51
+ private processComponents;
52
+ private processEmphasis;
53
+ private processHeadings;
54
+ private processHorizontalRules;
55
+ private processImages;
56
+ private processLineBreaks;
57
+ private processLinks;
58
+ private processLists;
59
+ private processTables;
60
+ private processTaskLists;
61
+ private removeFrontmatter;
62
+ private renderMarkdown;
63
+ private slugify;
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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"}