@emkodev/emroute 1.6.2 → 1.6.4

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 (128) hide show
  1. package/README.md +6 -6
  2. package/dist/runtime/abstract.runtime.d.ts +94 -0
  3. package/dist/runtime/abstract.runtime.js +339 -0
  4. package/dist/runtime/abstract.runtime.js.map +1 -0
  5. package/dist/runtime/bun/esbuild-runtime-loader.plugin.d.ts +25 -0
  6. package/dist/runtime/bun/esbuild-runtime-loader.plugin.js +72 -0
  7. package/dist/runtime/bun/esbuild-runtime-loader.plugin.js.map +1 -0
  8. package/dist/runtime/bun/fs/bun-fs.runtime.d.ts +21 -0
  9. package/dist/runtime/bun/fs/bun-fs.runtime.js +205 -0
  10. package/dist/runtime/bun/fs/bun-fs.runtime.js.map +1 -0
  11. package/dist/runtime/bun/sqlite/bun-sqlite.runtime.d.ts +27 -0
  12. package/dist/runtime/bun/sqlite/bun-sqlite.runtime.js +234 -0
  13. package/dist/runtime/bun/sqlite/bun-sqlite.runtime.js.map +1 -0
  14. package/dist/runtime/sitemap.generator.d.ts +58 -0
  15. package/dist/runtime/sitemap.generator.js +107 -0
  16. package/dist/runtime/sitemap.generator.js.map +1 -0
  17. package/dist/runtime/universal/fs/universal-fs.runtime.d.ts +29 -0
  18. package/dist/runtime/universal/fs/universal-fs.runtime.js +213 -0
  19. package/dist/runtime/universal/fs/universal-fs.runtime.js.map +1 -0
  20. package/dist/server/codegen.util.d.ts +16 -0
  21. package/dist/server/codegen.util.js +46 -0
  22. package/dist/server/codegen.util.js.map +1 -0
  23. package/dist/server/emroute.server.d.ts +37 -0
  24. package/dist/server/emroute.server.js +314 -0
  25. package/dist/server/emroute.server.js.map +1 -0
  26. package/dist/server/esbuild-manifest.plugin.d.ts +26 -0
  27. package/dist/server/esbuild-manifest.plugin.js +187 -0
  28. package/dist/server/esbuild-manifest.plugin.js.map +1 -0
  29. package/dist/server/scanner.util.d.ts +22 -0
  30. package/dist/server/scanner.util.js +194 -0
  31. package/dist/server/scanner.util.js.map +1 -0
  32. package/dist/server/server-api.type.d.ts +71 -0
  33. package/dist/server/server-api.type.js +9 -0
  34. package/dist/server/server-api.type.js.map +1 -0
  35. package/dist/src/component/abstract.component.d.ts +197 -0
  36. package/dist/src/component/abstract.component.js +84 -0
  37. package/dist/src/component/abstract.component.js.map +1 -0
  38. package/dist/src/component/page.component.d.ts +74 -0
  39. package/dist/src/component/page.component.js +107 -0
  40. package/dist/src/component/page.component.js.map +1 -0
  41. package/dist/src/component/widget.component.d.ts +47 -0
  42. package/dist/src/component/widget.component.js +69 -0
  43. package/dist/src/component/widget.component.js.map +1 -0
  44. package/dist/src/element/component.element.d.ts +79 -0
  45. package/dist/src/element/component.element.js +293 -0
  46. package/dist/src/element/component.element.js.map +1 -0
  47. package/dist/src/element/markdown.element.d.ts +36 -0
  48. package/dist/src/element/markdown.element.js +93 -0
  49. package/dist/src/element/markdown.element.js.map +1 -0
  50. package/dist/src/element/slot.element.d.ts +30 -0
  51. package/dist/src/element/slot.element.js +31 -0
  52. package/dist/src/element/slot.element.js.map +1 -0
  53. package/dist/src/index.d.ts +23 -0
  54. package/dist/src/index.js +24 -0
  55. package/dist/src/index.js.map +1 -0
  56. package/dist/src/overlay/mod.d.ts +9 -0
  57. package/dist/src/overlay/mod.js +9 -0
  58. package/dist/src/overlay/mod.js.map +1 -0
  59. package/dist/src/overlay/overlay.css.d.ts +8 -0
  60. package/dist/src/overlay/overlay.css.js +170 -0
  61. package/dist/src/overlay/overlay.css.js.map +1 -0
  62. package/dist/src/overlay/overlay.service.d.ts +14 -0
  63. package/dist/src/overlay/overlay.service.js +307 -0
  64. package/dist/src/overlay/overlay.service.js.map +1 -0
  65. package/dist/src/overlay/overlay.type.d.ts +33 -0
  66. package/dist/src/overlay/overlay.type.js +11 -0
  67. package/dist/src/overlay/overlay.type.js.map +1 -0
  68. package/dist/src/renderer/spa/base.renderer.d.ts +39 -0
  69. package/dist/src/renderer/spa/base.renderer.js +149 -0
  70. package/dist/src/renderer/spa/base.renderer.js.map +1 -0
  71. package/dist/src/renderer/spa/hash.renderer.d.ts +78 -0
  72. package/dist/src/renderer/spa/hash.renderer.js +162 -0
  73. package/dist/src/renderer/spa/hash.renderer.js.map +1 -0
  74. package/dist/src/renderer/spa/html.renderer.d.ts +81 -0
  75. package/dist/src/renderer/spa/html.renderer.js +304 -0
  76. package/dist/src/renderer/spa/html.renderer.js.map +1 -0
  77. package/dist/src/renderer/spa/mod.d.ts +30 -0
  78. package/dist/src/renderer/spa/mod.js +35 -0
  79. package/dist/src/renderer/spa/mod.js.map +1 -0
  80. package/dist/src/renderer/ssr/html.renderer.d.ts +49 -0
  81. package/dist/src/renderer/ssr/html.renderer.js +108 -0
  82. package/dist/src/renderer/ssr/html.renderer.js.map +1 -0
  83. package/dist/src/renderer/ssr/md.renderer.d.ts +40 -0
  84. package/dist/src/renderer/ssr/md.renderer.js +100 -0
  85. package/dist/src/renderer/ssr/md.renderer.js.map +1 -0
  86. package/dist/src/renderer/ssr/ssr.renderer.d.ts +74 -0
  87. package/dist/src/renderer/ssr/ssr.renderer.js +185 -0
  88. package/dist/src/renderer/ssr/ssr.renderer.js.map +1 -0
  89. package/dist/src/route/route.core.d.ts +129 -0
  90. package/dist/src/route/route.core.js +255 -0
  91. package/dist/src/route/route.core.js.map +1 -0
  92. package/dist/src/route/route.matcher.d.ts +86 -0
  93. package/dist/src/route/route.matcher.js +214 -0
  94. package/dist/src/route/route.matcher.js.map +1 -0
  95. package/dist/src/type/logger.type.d.ts +17 -0
  96. package/dist/src/type/logger.type.js +9 -0
  97. package/dist/src/type/logger.type.js.map +1 -0
  98. package/dist/src/type/markdown.type.d.ts +20 -0
  99. package/dist/src/type/markdown.type.js +2 -0
  100. package/dist/src/type/markdown.type.js.map +1 -0
  101. package/dist/src/type/route.type.d.ts +112 -0
  102. package/dist/src/type/route.type.js +8 -0
  103. package/dist/src/type/route.type.js.map +1 -0
  104. package/dist/src/type/widget.type.d.ts +55 -0
  105. package/dist/src/type/widget.type.js +10 -0
  106. package/dist/src/type/widget.type.js.map +1 -0
  107. package/dist/src/util/html.util.d.ts +29 -0
  108. package/dist/src/util/html.util.js +158 -0
  109. package/dist/src/util/html.util.js.map +1 -0
  110. package/dist/src/util/logger.util.d.ts +26 -0
  111. package/dist/src/util/logger.util.js +80 -0
  112. package/dist/src/util/logger.util.js.map +1 -0
  113. package/dist/src/util/widget-resolve.util.d.ts +52 -0
  114. package/dist/src/util/widget-resolve.util.js +149 -0
  115. package/dist/src/util/widget-resolve.util.js.map +1 -0
  116. package/dist/src/widget/breadcrumb.widget.d.ts +48 -0
  117. package/dist/src/widget/breadcrumb.widget.js +72 -0
  118. package/dist/src/widget/breadcrumb.widget.js.map +1 -0
  119. package/dist/src/widget/page-title.widget.d.ts +33 -0
  120. package/dist/src/widget/page-title.widget.js +33 -0
  121. package/dist/src/widget/page-title.widget.js.map +1 -0
  122. package/dist/src/widget/widget.parser.d.ts +26 -0
  123. package/dist/src/widget/widget.parser.js +76 -0
  124. package/dist/src/widget/widget.parser.js.map +1 -0
  125. package/dist/src/widget/widget.registry.d.ts +23 -0
  126. package/dist/src/widget/widget.registry.js +42 -0
  127. package/dist/src/widget/widget.registry.js.map +1 -0
  128. package/package.json +63 -13
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Widget Registry
3
+ *
4
+ * Canonical registry where all widgets live. Used by all renderers:
5
+ * - SSR HTML: resolves widgets by name, calls getData() + renderHTML()
6
+ * - SSR Markdown: resolves widgets by name, calls getData() + renderMarkdown()
7
+ * - SPA: registers custom elements for each widget
8
+ *
9
+ * Pages are NOT in this registry — they live in the routes manifest.
10
+ */
11
+ export class WidgetRegistry {
12
+ widgets = new Map();
13
+ /** Register a widget by its name. */
14
+ add(widget) {
15
+ this.widgets.set(widget.name, widget);
16
+ }
17
+ /** Look up a widget by name. */
18
+ get(name) {
19
+ return this.widgets.get(name);
20
+ }
21
+ /** Iterate all registered widgets. */
22
+ [Symbol.iterator]() {
23
+ return this.widgets.values();
24
+ }
25
+ /** Emit a WidgetsManifest from registered widgets. */
26
+ toManifest() {
27
+ const widgets = [];
28
+ const moduleLoaders = {};
29
+ for (const [name, widget] of this.widgets) {
30
+ const entry = {
31
+ name,
32
+ modulePath: name,
33
+ tagName: `widget-${name}`,
34
+ files: widget.files,
35
+ };
36
+ widgets.push(entry);
37
+ moduleLoaders[name] = () => Promise.resolve({ default: widget.constructor });
38
+ }
39
+ return { widgets, moduleLoaders };
40
+ }
41
+ }
42
+ //# sourceMappingURL=widget.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.registry.js","sourceRoot":"","sources":["../../../src/widget/widget.registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,OAAO,cAAc;IACjB,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErD,qCAAqC;IACrC,GAAG,CAAC,MAAuB;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,gCAAgC;IAChC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,sCAAsC;IACtC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,sDAAsD;IACtD,UAAU;QACR,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,aAAa,GAA2C,EAAE,CAAC;QAEjE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAwB;gBACjC,IAAI;gBACJ,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,UAAU,IAAI,EAAE;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@emkodev/emroute",
3
- "version": "1.6.2",
4
- "description": "File-based router with triple rendering (SPA, SSR HTML, SSR Markdown). Zero dependencies.",
3
+ "version": "1.6.4",
4
+ "description": "File-based (but storage-agnostic) router with triple rendering (SPA, SSR HTML, SSR Markdown). Zero dependencies.",
5
5
  "license": "BSD-3-Clause",
6
6
  "author": "emko.dev",
7
7
  "type": "module",
@@ -13,6 +13,8 @@
13
13
  "file-based",
14
14
  "framework",
15
15
  "bun",
16
+ "deno",
17
+ "node",
16
18
  "typescript",
17
19
  "markdown"
18
20
  ],
@@ -24,21 +26,66 @@
24
26
  "src/",
25
27
  "server/*.ts",
26
28
  "runtime/",
29
+ "dist/",
27
30
  "LICENSE",
28
31
  "README.md"
29
32
  ],
30
33
  "exports": {
31
- ".": "./src/index.ts",
32
- "./spa": "./src/renderer/spa/mod.ts",
33
- "./overlay": "./src/overlay/mod.ts",
34
- "./ssr/html": "./src/renderer/ssr/html.renderer.ts",
35
- "./ssr/md": "./src/renderer/ssr/md.renderer.ts",
36
- "./server": "./server/emroute.server.ts",
37
- "./runtime": "./runtime/abstract.runtime.ts",
38
- "./runtime/sitemap": "./runtime/sitemap.generator.ts",
39
- "./runtime/bun/fs": "./runtime/bun/fs/bun-fs.runtime.ts",
40
- "./runtime/bun/sqlite": "./runtime/bun/sqlite/bun-sqlite.runtime.ts",
41
- "./runtime/universal/fs": "./runtime/universal/fs/universal-fs.runtime.ts"
34
+ ".": {
35
+ "bun": "./src/index.ts",
36
+ "types": "./dist/src/index.d.ts",
37
+ "default": "./dist/src/index.js"
38
+ },
39
+ "./spa": {
40
+ "bun": "./src/renderer/spa/mod.ts",
41
+ "types": "./dist/src/renderer/spa/mod.d.ts",
42
+ "default": "./dist/src/renderer/spa/mod.js"
43
+ },
44
+ "./overlay": {
45
+ "bun": "./src/overlay/mod.ts",
46
+ "types": "./dist/src/overlay/mod.d.ts",
47
+ "default": "./dist/src/overlay/mod.js"
48
+ },
49
+ "./ssr/html": {
50
+ "bun": "./src/renderer/ssr/html.renderer.ts",
51
+ "types": "./dist/src/renderer/ssr/html.renderer.d.ts",
52
+ "default": "./dist/src/renderer/ssr/html.renderer.js"
53
+ },
54
+ "./ssr/md": {
55
+ "bun": "./src/renderer/ssr/md.renderer.ts",
56
+ "types": "./dist/src/renderer/ssr/md.renderer.d.ts",
57
+ "default": "./dist/src/renderer/ssr/md.renderer.js"
58
+ },
59
+ "./server": {
60
+ "bun": "./server/emroute.server.ts",
61
+ "types": "./dist/server/emroute.server.d.ts",
62
+ "default": "./dist/server/emroute.server.js"
63
+ },
64
+ "./runtime": {
65
+ "bun": "./runtime/abstract.runtime.ts",
66
+ "types": "./dist/runtime/abstract.runtime.d.ts",
67
+ "default": "./dist/runtime/abstract.runtime.js"
68
+ },
69
+ "./runtime/sitemap": {
70
+ "bun": "./runtime/sitemap.generator.ts",
71
+ "types": "./dist/runtime/sitemap.generator.d.ts",
72
+ "default": "./dist/runtime/sitemap.generator.js"
73
+ },
74
+ "./runtime/bun/fs": {
75
+ "bun": "./runtime/bun/fs/bun-fs.runtime.ts",
76
+ "types": "./dist/runtime/bun/fs/bun-fs.runtime.d.ts",
77
+ "default": "./dist/runtime/bun/fs/bun-fs.runtime.js"
78
+ },
79
+ "./runtime/bun/sqlite": {
80
+ "bun": "./runtime/bun/sqlite/bun-sqlite.runtime.ts",
81
+ "types": "./dist/runtime/bun/sqlite/bun-sqlite.runtime.d.ts",
82
+ "default": "./dist/runtime/bun/sqlite/bun-sqlite.runtime.js"
83
+ },
84
+ "./runtime/universal/fs": {
85
+ "bun": "./runtime/universal/fs/universal-fs.runtime.ts",
86
+ "types": "./dist/runtime/universal/fs/universal-fs.runtime.d.ts",
87
+ "default": "./dist/runtime/universal/fs/universal-fs.runtime.js"
88
+ }
42
89
  },
43
90
  "devDependencies": {
44
91
  "@eslint/js": "^10.0.1",
@@ -46,9 +93,12 @@
46
93
  "esbuild": "^0.27.3",
47
94
  "eslint": "^10.0.2",
48
95
  "playwright": "^1.58.2",
96
+ "typescript": "^5.9.3",
49
97
  "typescript-eslint": "^8.56.1"
50
98
  },
51
99
  "scripts": {
100
+ "build": "tsc -p tsconfig.build.json",
101
+ "prepublishOnly": "bun run build",
52
102
  "check": "bun x tsc --noEmit",
53
103
  "test": "bun test test/unit",
54
104
  "test:unit": "bun test test/unit",