everything-dev 0.3.2 → 1.3.2

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 (308) hide show
  1. package/README.md +64 -0
  2. package/cli.js +10 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/api-contract.cjs +172 -0
  5. package/dist/api-contract.cjs.map +1 -0
  6. package/dist/api-contract.mjs +171 -0
  7. package/dist/api-contract.mjs.map +1 -0
  8. package/dist/api.cjs +124 -0
  9. package/dist/api.cjs.map +1 -0
  10. package/dist/api.d.cts +36 -0
  11. package/dist/api.d.cts.map +1 -0
  12. package/dist/api.d.mts +36 -0
  13. package/dist/api.d.mts.map +1 -0
  14. package/dist/api.mjs +119 -0
  15. package/dist/api.mjs.map +1 -0
  16. package/dist/app.cjs +156 -0
  17. package/dist/app.cjs.map +1 -0
  18. package/dist/app.mjs +153 -0
  19. package/dist/app.mjs.map +1 -0
  20. package/dist/cli/catalog.cjs +30 -0
  21. package/dist/cli/catalog.cjs.map +1 -0
  22. package/dist/cli/catalog.mjs +29 -0
  23. package/dist/cli/catalog.mjs.map +1 -0
  24. package/dist/cli/help.cjs +16 -0
  25. package/dist/cli/help.cjs.map +1 -0
  26. package/dist/cli/help.mjs +16 -0
  27. package/dist/cli/help.mjs.map +1 -0
  28. package/dist/cli/init.cjs +317 -0
  29. package/dist/cli/init.cjs.map +1 -0
  30. package/dist/cli/init.d.cts +36 -0
  31. package/dist/cli/init.d.cts.map +1 -0
  32. package/dist/cli/init.d.mts +36 -0
  33. package/dist/cli/init.d.mts.map +1 -0
  34. package/dist/cli/init.mjs +309 -0
  35. package/dist/cli/init.mjs.map +1 -0
  36. package/dist/cli/parse.cjs +96 -0
  37. package/dist/cli/parse.cjs.map +1 -0
  38. package/dist/cli/parse.mjs +95 -0
  39. package/dist/cli/parse.mjs.map +1 -0
  40. package/dist/cli/prompts.cjs +42 -0
  41. package/dist/cli/prompts.cjs.map +1 -0
  42. package/dist/cli/prompts.mjs +41 -0
  43. package/dist/cli/prompts.mjs.map +1 -0
  44. package/dist/cli.cjs +167 -0
  45. package/dist/cli.cjs.map +1 -0
  46. package/dist/cli.d.cts +1 -0
  47. package/dist/cli.d.mts +1 -0
  48. package/dist/cli.mjs +166 -0
  49. package/dist/cli.mjs.map +1 -0
  50. package/dist/components/dev-view.cjs +307 -0
  51. package/dist/components/dev-view.cjs.map +1 -0
  52. package/dist/components/dev-view.mjs +306 -0
  53. package/dist/components/dev-view.mjs.map +1 -0
  54. package/dist/components/streaming-view.cjs +146 -0
  55. package/dist/components/streaming-view.cjs.map +1 -0
  56. package/dist/components/streaming-view.mjs +144 -0
  57. package/dist/components/streaming-view.mjs.map +1 -0
  58. package/dist/config.cjs +280 -0
  59. package/dist/config.cjs.map +1 -0
  60. package/dist/config.d.cts +35 -0
  61. package/dist/config.d.cts.map +1 -0
  62. package/dist/config.d.mts +35 -0
  63. package/dist/config.d.mts.map +1 -0
  64. package/dist/config.mjs +266 -0
  65. package/dist/config.mjs.map +1 -0
  66. package/dist/contract.cjs +209 -0
  67. package/dist/contract.cjs.map +1 -0
  68. package/dist/contract.d.cts +490 -0
  69. package/dist/contract.d.cts.map +1 -0
  70. package/dist/contract.d.mts +490 -0
  71. package/dist/contract.d.mts.map +1 -0
  72. package/dist/contract.meta.cjs +104 -0
  73. package/dist/contract.meta.cjs.map +1 -0
  74. package/dist/contract.meta.d.cts +141 -0
  75. package/dist/contract.meta.d.cts.map +1 -0
  76. package/dist/contract.meta.d.mts +141 -0
  77. package/dist/contract.meta.d.mts.map +1 -0
  78. package/dist/contract.meta.mjs +102 -0
  79. package/dist/contract.meta.mjs.map +1 -0
  80. package/dist/contract.mjs +186 -0
  81. package/dist/contract.mjs.map +1 -0
  82. package/dist/dev-logs.cjs +53 -0
  83. package/dist/dev-logs.cjs.map +1 -0
  84. package/dist/dev-logs.mjs +51 -0
  85. package/dist/dev-logs.mjs.map +1 -0
  86. package/dist/dev-session.cjs +195 -0
  87. package/dist/dev-session.cjs.map +1 -0
  88. package/dist/dev-session.mjs +194 -0
  89. package/dist/dev-session.mjs.map +1 -0
  90. package/dist/fastkv.cjs +89 -0
  91. package/dist/fastkv.cjs.map +1 -0
  92. package/dist/fastkv.d.cts +11 -0
  93. package/dist/fastkv.d.cts.map +1 -0
  94. package/dist/fastkv.d.mts +11 -0
  95. package/dist/fastkv.d.mts.map +1 -0
  96. package/dist/fastkv.mjs +82 -0
  97. package/dist/fastkv.mjs.map +1 -0
  98. package/dist/federation.server.cjs +27 -0
  99. package/dist/federation.server.cjs.map +1 -0
  100. package/dist/federation.server.mjs +27 -0
  101. package/dist/federation.server.mjs.map +1 -0
  102. package/dist/host.cjs +367 -0
  103. package/dist/host.cjs.map +1 -0
  104. package/dist/host.d.cts +22 -0
  105. package/dist/host.d.cts.map +1 -0
  106. package/dist/host.d.mts +22 -0
  107. package/dist/host.d.mts.map +1 -0
  108. package/dist/host.mjs +364 -0
  109. package/dist/host.mjs.map +1 -0
  110. package/dist/index.cjs +122 -0
  111. package/dist/index.d.cts +7 -0
  112. package/dist/index.d.mts +7 -0
  113. package/dist/index.mjs +9 -0
  114. package/dist/integrity.cjs +39 -0
  115. package/dist/integrity.cjs.map +1 -0
  116. package/dist/integrity.d.cts +7 -0
  117. package/dist/integrity.d.cts.map +1 -0
  118. package/dist/integrity.d.mts +7 -0
  119. package/dist/integrity.d.mts.map +1 -0
  120. package/dist/integrity.mjs +35 -0
  121. package/dist/integrity.mjs.map +1 -0
  122. package/dist/mf.cjs +77 -0
  123. package/dist/mf.cjs.map +1 -0
  124. package/dist/mf.d.cts +19 -0
  125. package/dist/mf.d.cts.map +1 -0
  126. package/dist/mf.d.mts +19 -0
  127. package/dist/mf.d.mts.map +1 -0
  128. package/dist/mf.mjs +71 -0
  129. package/dist/mf.mjs.map +1 -0
  130. package/dist/near-cli.cjs +196 -0
  131. package/dist/near-cli.cjs.map +1 -0
  132. package/dist/near-cli.mjs +193 -0
  133. package/dist/near-cli.mjs.map +1 -0
  134. package/dist/network.cjs +9 -0
  135. package/dist/network.cjs.map +1 -0
  136. package/dist/network.mjs +8 -0
  137. package/dist/network.mjs.map +1 -0
  138. package/dist/orchestrator.cjs +441 -0
  139. package/dist/orchestrator.cjs.map +1 -0
  140. package/dist/orchestrator.d.cts +40 -0
  141. package/dist/orchestrator.d.cts.map +1 -0
  142. package/dist/orchestrator.d.mts +40 -0
  143. package/dist/orchestrator.d.mts.map +1 -0
  144. package/dist/orchestrator.mjs +436 -0
  145. package/dist/orchestrator.mjs.map +1 -0
  146. package/dist/plugin.cjs +825 -0
  147. package/dist/plugin.cjs.map +1 -0
  148. package/dist/plugin.d.cts +347 -0
  149. package/dist/plugin.d.cts.map +1 -0
  150. package/dist/plugin.d.mts +348 -0
  151. package/dist/plugin.d.mts.map +1 -0
  152. package/dist/plugin.mjs +822 -0
  153. package/dist/plugin.mjs.map +1 -0
  154. package/dist/process-registry.cjs +120 -0
  155. package/dist/process-registry.cjs.map +1 -0
  156. package/dist/process-registry.d.cts +25 -0
  157. package/dist/process-registry.d.cts.map +1 -0
  158. package/dist/process-registry.d.mts +25 -0
  159. package/dist/process-registry.d.mts.map +1 -0
  160. package/dist/process-registry.mjs +119 -0
  161. package/dist/process-registry.mjs.map +1 -0
  162. package/dist/sdk.cjs +61 -0
  163. package/dist/sdk.d.cts +5 -0
  164. package/dist/sdk.d.mts +5 -0
  165. package/dist/sdk.mjs +6 -0
  166. package/dist/shared.cjs +143 -0
  167. package/dist/shared.cjs.map +1 -0
  168. package/dist/shared.d.cts +33 -0
  169. package/dist/shared.d.cts.map +1 -0
  170. package/dist/shared.d.mts +33 -0
  171. package/dist/shared.d.mts.map +1 -0
  172. package/dist/shared.mjs +140 -0
  173. package/dist/shared.mjs.map +1 -0
  174. package/dist/types.cjs +160 -0
  175. package/dist/types.cjs.map +1 -0
  176. package/dist/types.d.cts +269 -0
  177. package/dist/types.d.cts.map +1 -0
  178. package/dist/types.d.mts +269 -0
  179. package/dist/types.d.mts.map +1 -0
  180. package/dist/types.mjs +144 -0
  181. package/dist/types.mjs.map +1 -0
  182. package/dist/ui/head.cjs +67 -0
  183. package/dist/ui/head.cjs.map +1 -0
  184. package/dist/ui/head.d.cts +19 -0
  185. package/dist/ui/head.d.cts.map +1 -0
  186. package/dist/ui/head.d.mts +19 -0
  187. package/dist/ui/head.d.mts.map +1 -0
  188. package/dist/ui/head.mjs +61 -0
  189. package/dist/ui/head.mjs.map +1 -0
  190. package/dist/ui/index.cjs +32 -0
  191. package/dist/ui/index.d.cts +7 -0
  192. package/dist/ui/index.d.mts +7 -0
  193. package/dist/ui/index.mjs +6 -0
  194. package/dist/ui/metadata.cjs +106 -0
  195. package/dist/ui/metadata.cjs.map +1 -0
  196. package/dist/ui/metadata.d.cts +35 -0
  197. package/dist/ui/metadata.d.cts.map +1 -0
  198. package/dist/ui/metadata.d.mts +35 -0
  199. package/dist/ui/metadata.d.mts.map +1 -0
  200. package/dist/ui/metadata.mjs +100 -0
  201. package/dist/ui/metadata.mjs.map +1 -0
  202. package/dist/ui/router.cjs +56 -0
  203. package/dist/ui/router.cjs.map +1 -0
  204. package/dist/ui/router.d.cts +11 -0
  205. package/dist/ui/router.d.cts.map +1 -0
  206. package/dist/ui/router.d.mts +11 -0
  207. package/dist/ui/router.d.mts.map +1 -0
  208. package/dist/ui/router.mjs +51 -0
  209. package/dist/ui/router.mjs.map +1 -0
  210. package/dist/ui/runtime.cjs +65 -0
  211. package/dist/ui/runtime.cjs.map +1 -0
  212. package/dist/ui/runtime.d.cts +29 -0
  213. package/dist/ui/runtime.d.cts.map +1 -0
  214. package/dist/ui/runtime.d.mts +29 -0
  215. package/dist/ui/runtime.d.mts.map +1 -0
  216. package/dist/ui/runtime.mjs +53 -0
  217. package/dist/ui/runtime.mjs.map +1 -0
  218. package/dist/ui/types.cjs +0 -0
  219. package/dist/ui/types.d.cts +52 -0
  220. package/dist/ui/types.d.cts.map +1 -0
  221. package/dist/ui/types.d.mts +52 -0
  222. package/dist/ui/types.d.mts.map +1 -0
  223. package/dist/ui/types.mjs +1 -0
  224. package/dist/utils/banner.cjs +24 -0
  225. package/dist/utils/banner.cjs.map +1 -0
  226. package/dist/utils/banner.mjs +23 -0
  227. package/dist/utils/banner.mjs.map +1 -0
  228. package/dist/utils/linkify.cjs +15 -0
  229. package/dist/utils/linkify.cjs.map +1 -0
  230. package/dist/utils/linkify.mjs +14 -0
  231. package/dist/utils/linkify.mjs.map +1 -0
  232. package/dist/utils/run.cjs +40 -0
  233. package/dist/utils/run.cjs.map +1 -0
  234. package/dist/utils/run.mjs +39 -0
  235. package/dist/utils/run.mjs.map +1 -0
  236. package/dist/utils/theme.cjs +44 -0
  237. package/dist/utils/theme.cjs.map +1 -0
  238. package/dist/utils/theme.mjs +37 -0
  239. package/dist/utils/theme.mjs.map +1 -0
  240. package/package.json +269 -80
  241. package/src/api-contract.ts +309 -0
  242. package/src/api.ts +181 -0
  243. package/src/app.ts +346 -0
  244. package/src/cli/catalog.ts +49 -0
  245. package/src/cli/help.ts +13 -0
  246. package/src/cli/init.ts +415 -0
  247. package/src/cli/parse.ts +130 -0
  248. package/src/cli/prompts.ts +64 -0
  249. package/src/cli.ts +203 -1507
  250. package/src/components/dev-view.tsx +104 -41
  251. package/src/components/streaming-view.ts +89 -22
  252. package/src/config.ts +462 -532
  253. package/src/contract.meta.ts +96 -0
  254. package/src/contract.ts +164 -561
  255. package/src/dev-logs.ts +85 -0
  256. package/src/dev-session.ts +318 -0
  257. package/src/fastkv.ts +153 -0
  258. package/src/federation.server.ts +43 -0
  259. package/src/host.ts +526 -0
  260. package/src/index.ts +6 -3
  261. package/src/integrity.ts +54 -0
  262. package/src/mf.ts +105 -0
  263. package/src/near-cli.ts +284 -0
  264. package/src/network.ts +3 -0
  265. package/src/orchestrator.ts +648 -0
  266. package/src/plugin.ts +1116 -2303
  267. package/src/process-registry.ts +154 -0
  268. package/src/scripts/sync-api-contract.ts +24 -0
  269. package/src/sdk.ts +14 -0
  270. package/src/shared.ts +206 -0
  271. package/src/types.ts +152 -206
  272. package/src/ui/head.ts +34 -27
  273. package/src/ui/index.ts +3 -3
  274. package/src/ui/metadata.ts +95 -0
  275. package/src/ui/router.ts +22 -6
  276. package/src/ui/runtime.ts +55 -6
  277. package/src/ui/types.ts +24 -11
  278. package/src/utils/banner.ts +10 -6
  279. package/src/utils/run.ts +26 -27
  280. package/src/utils/theme.ts +3 -66
  281. package/src/components/monitor-view.tsx +0 -475
  282. package/src/components/status-view.tsx +0 -173
  283. package/src/lib/env.ts +0 -109
  284. package/src/lib/near-cli.ts +0 -289
  285. package/src/lib/nova.ts +0 -266
  286. package/src/lib/orchestrator.ts +0 -276
  287. package/src/lib/process-registry.ts +0 -166
  288. package/src/lib/process.ts +0 -549
  289. package/src/lib/resource-monitor/assertions.ts +0 -234
  290. package/src/lib/resource-monitor/command.ts +0 -283
  291. package/src/lib/resource-monitor/diff.ts +0 -157
  292. package/src/lib/resource-monitor/errors.ts +0 -127
  293. package/src/lib/resource-monitor/index.ts +0 -305
  294. package/src/lib/resource-monitor/platform/darwin.ts +0 -306
  295. package/src/lib/resource-monitor/platform/index.ts +0 -35
  296. package/src/lib/resource-monitor/platform/linux.ts +0 -332
  297. package/src/lib/resource-monitor/platform/windows.ts +0 -298
  298. package/src/lib/resource-monitor/snapshot.ts +0 -217
  299. package/src/lib/resource-monitor/types.ts +0 -74
  300. package/src/lib/session-recorder/errors.ts +0 -102
  301. package/src/lib/session-recorder/flows/login.ts +0 -210
  302. package/src/lib/session-recorder/index.ts +0 -361
  303. package/src/lib/session-recorder/playwright.ts +0 -257
  304. package/src/lib/session-recorder/report.ts +0 -353
  305. package/src/lib/session-recorder/server.ts +0 -267
  306. package/src/lib/session-recorder/types.ts +0 -115
  307. package/src/lib/sync.ts +0 -1
  308. package/src/ui/files.ts +0 -134
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import { z } from \"./sdk\";\n\nexport const SourceModeSchema = z.enum([\"local\", \"remote\"]);\nexport type SourceMode = z.infer<typeof SourceModeSchema>;\n\nexport const SharedConfigSchema = z.object({\n version: z.string(),\n requiredVersion: z.string().optional(),\n singleton: z.boolean().optional(),\n eager: z.boolean().optional(),\n strictVersion: z.boolean().optional(),\n shareScope: z.string().optional(),\n});\nexport type SharedConfig = z.infer<typeof SharedConfigSchema>;\nexport type SharedDepConfig = SharedConfig;\nexport const SharedDepConfigSchema = SharedConfigSchema;\n\nexport const FederationEntrySchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n});\nexport type FederationEntry = z.infer<typeof FederationEntrySchema>;\n\nexport const ApiPluginConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type ApiPluginConfig = z.infer<typeof ApiPluginConfigSchema>;\n\nexport const BosPluginRefSchema = z.object({\n extends: z.string().optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type BosPluginRef = z.infer<typeof BosPluginRefSchema>;\n\nexport const RuntimePluginConfigSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n integrity: z.string().optional(),\n});\nexport type RuntimePluginConfig = z.infer<typeof RuntimePluginConfigSchema>;\n\nexport const UiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n ssr: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n});\nexport type UiConfig = z.infer<typeof UiConfigSchema>;\n\nexport const HostConfigSchema = z.object({\n development: z.string(),\n production: z.string(),\n productionIntegrity: z.string().optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type HostConfig = z.infer<typeof HostConfigSchema>;\n\nexport const ClientRuntimeInfoSchema = z.object({\n accountId: z.string(),\n gatewayId: z.string(),\n runtimeBasePath: z.string(),\n title: z.string().nullable(),\n hostUrl: z.string().nullable(),\n});\nexport type ClientRuntimeInfo = z.infer<typeof ClientRuntimeInfoSchema>;\n\nexport const BosStagingSchema = z.object({\n domain: z.string(),\n});\nexport type BosStaging = z.infer<typeof BosStagingSchema>;\n\nexport const BosConfigSchema = z.object({\n account: z.string(),\n extends: z.string().optional(),\n domain: z.string().optional(),\n testnet: z.string().optional(),\n staging: BosStagingSchema.optional(),\n repository: z.string().optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), BosPluginRefSchema).optional(),\n app: z.object({\n host: HostConfigSchema,\n ui: UiConfigSchema,\n api: ApiPluginConfigSchema,\n }),\n});\nexport type BosConfig = z.infer<typeof BosConfigSchema>;\n\nexport const RuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\"]),\n account: z.string(),\n domain: z.string().optional(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n title: z.string().optional(),\n repository: z.string().optional(),\n hostUrl: z.string(),\n shared: z\n .object({\n ui: z.record(z.string(), SharedConfigSchema).optional(),\n })\n .optional(),\n ui: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n ssrUrl: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n }),\n api: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n }),\n plugins: z.record(z.string(), RuntimePluginConfigSchema).optional(),\n});\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\n\nexport const ClientRuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\"]),\n account: z.string(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n hostUrl: z.string().optional(),\n assetsUrl: z.string(),\n apiBase: z.string(),\n rpcBase: z.string(),\n repository: z.string().optional(),\n runtime: ClientRuntimeInfoSchema.optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n api: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n plugins: z\n .record(\n z.string(),\n z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n }),\n )\n .optional(),\n});\nexport type ClientRuntimeConfig = z.infer<typeof ClientRuntimeConfigSchema>;\n"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/ui/head.ts
4
+ function getRemoteEntryScript(assetsUrl, integrity) {
5
+ const script = { src: `${assetsUrl}/remoteEntry.js` };
6
+ if (integrity) {
7
+ script.integrity = integrity;
8
+ script.crossOrigin = "anonymous";
9
+ }
10
+ return script;
11
+ }
12
+ function getThemeInitScript() {
13
+ return { children: "(function(){var t=localStorage.getItem('theme');if(t==='dark'||(!t&&window.matchMedia('(prefers-color-scheme: dark)').matches)){document.documentElement.classList.add('dark');}})();" };
14
+ }
15
+ function getHydrateScript(runtimeConfig, containerName = "ui", hydratePath = "./Hydrate") {
16
+ return { children: `
17
+ window.__RUNTIME_CONFIG__=${JSON.stringify(runtimeConfig)};
18
+ function __hydrate(){
19
+ var container = window['${containerName}'];
20
+ if (!container) {
21
+ console.warn('[Hydrate] Container not ready yet, waiting...');
22
+ window.__hydrateRetry = window.__hydrateRetry || 0;
23
+ if (window.__hydrateRetry < 10) {
24
+ window.__hydrateRetry++;
25
+ setTimeout(__hydrate, 100);
26
+ return;
27
+ }
28
+ console.error('[Hydrate] Container not found after 10 retries');
29
+ return;
30
+ }
31
+ console.log('[Hydrate] Container available, starting init...');
32
+ container.init({}).then(function(){
33
+ return container.get('${hydratePath}');
34
+ }).then(function(mod){
35
+ return mod().hydrate();
36
+ }).catch(function(e){
37
+ console.error('[Hydrate] Failed:', e);
38
+ });
39
+ }
40
+ if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',__hydrate);}else{__hydrate();}
41
+ `.trim() };
42
+ }
43
+ function getRemoteScripts(options) {
44
+ const { assetsUrl, runtimeConfig, containerName, hydratePath, integrity } = options;
45
+ return [
46
+ getRemoteEntryScript(assetsUrl, integrity),
47
+ getThemeInitScript(),
48
+ getHydrateScript(runtimeConfig, containerName, hydratePath)
49
+ ];
50
+ }
51
+ function getBaseStyles() {
52
+ return `
53
+ *, *::before, *::after { box-sizing: border-box; }
54
+ html { height: 100%; height: 100dvh; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light dark; }
55
+ body { min-height: 100%; min-height: 100dvh; margin: 0; background-color: var(--background); color: var(--foreground); -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
56
+ #root { min-height: 100vh; }
57
+ @supports (min-height: 100dvh) { #root { min-height: 100dvh; } }
58
+ `.trim();
59
+ }
60
+
61
+ //#endregion
62
+ exports.getBaseStyles = getBaseStyles;
63
+ exports.getHydrateScript = getHydrateScript;
64
+ exports.getRemoteEntryScript = getRemoteEntryScript;
65
+ exports.getRemoteScripts = getRemoteScripts;
66
+ exports.getThemeInitScript = getThemeInitScript;
67
+ //# sourceMappingURL=head.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.cjs","names":[],"sources":["../../src/ui/head.ts"],"sourcesContent":["import type { ClientRuntimeConfig } from \"../types\";\nimport type { HeadScript } from \"./types\";\n\nexport interface RemoteScriptsOptions {\n assetsUrl: string;\n runtimeConfig?: Partial<ClientRuntimeConfig>;\n containerName?: string;\n hydratePath?: string;\n integrity?: string;\n}\n\nexport function getRemoteEntryScript(assetsUrl: string, integrity?: string): HeadScript {\n const script: HeadScript = {\n src: `${assetsUrl}/remoteEntry.js`,\n };\n if (integrity) {\n script.integrity = integrity;\n script.crossOrigin = \"anonymous\";\n }\n return script;\n}\n\nexport function getThemeInitScript(): HeadScript {\n return {\n children:\n \"(function(){var t=localStorage.getItem('theme');if(t==='dark'||(!t&&window.matchMedia('(prefers-color-scheme: dark)').matches)){document.documentElement.classList.add('dark');}})();\",\n };\n}\n\nexport function getHydrateScript(\n runtimeConfig: Partial<ClientRuntimeConfig> | undefined,\n containerName = \"ui\",\n hydratePath = \"./Hydrate\",\n): HeadScript {\n return {\n children: `\n window.__RUNTIME_CONFIG__=${JSON.stringify(runtimeConfig)};\n function __hydrate(){\n var container = window['${containerName}'];\n if (!container) {\n console.warn('[Hydrate] Container not ready yet, waiting...');\n window.__hydrateRetry = window.__hydrateRetry || 0;\n if (window.__hydrateRetry < 10) {\n window.__hydrateRetry++;\n setTimeout(__hydrate, 100);\n return;\n }\n console.error('[Hydrate] Container not found after 10 retries');\n return;\n }\n console.log('[Hydrate] Container available, starting init...');\n container.init({}).then(function(){\n return container.get('${hydratePath}');\n }).then(function(mod){\n return mod().hydrate();\n }).catch(function(e){\n console.error('[Hydrate] Failed:', e);\n });\n }\n if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',__hydrate);}else{__hydrate();}\n \t\t`.trim(),\n };\n}\n\nexport function getRemoteScripts(options: RemoteScriptsOptions): HeadScript[] {\n const { assetsUrl, runtimeConfig, containerName, hydratePath, integrity } = options;\n\n return [\n getRemoteEntryScript(assetsUrl, integrity),\n getThemeInitScript(),\n getHydrateScript(runtimeConfig, containerName, hydratePath),\n ];\n}\n\nexport function getBaseStyles(): string {\n return `\n*, *::before, *::after { box-sizing: border-box; }\nhtml { height: 100%; height: 100dvh; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light dark; }\nbody { min-height: 100%; min-height: 100dvh; margin: 0; background-color: var(--background); color: var(--foreground); -webkit-tap-highlight-color: transparent; touch-action: manipulation; }\n#root { min-height: 100vh; }\n@supports (min-height: 100dvh) { #root { min-height: 100dvh; } }\n `.trim();\n}\n"],"mappings":";;;AAWA,SAAgB,qBAAqB,WAAmB,WAAgC;CACtF,MAAM,SAAqB,EACzB,KAAK,GAAG,UAAU,kBACnB;AACD,KAAI,WAAW;AACb,SAAO,YAAY;AACnB,SAAO,cAAc;;AAEvB,QAAO;;AAGT,SAAgB,qBAAiC;AAC/C,QAAO,EACL,UACE,yLACH;;AAGH,SAAgB,iBACd,eACA,gBAAgB,MAChB,cAAc,aACF;AACZ,QAAO,EACL,UAAU;6BACe,KAAK,UAAU,cAAc,CAAC;;4BAE/B,cAAc;;;;;;;;;;;;;;4BAcd,YAAY;;;;;;;;KAQnC,MAAM,EACR;;AAGH,SAAgB,iBAAiB,SAA6C;CAC5E,MAAM,EAAE,WAAW,eAAe,eAAe,aAAa,cAAc;AAE5E,QAAO;EACL,qBAAqB,WAAW,UAAU;EAC1C,oBAAoB;EACpB,iBAAiB,eAAe,eAAe,YAAY;EAC5D;;AAGH,SAAgB,gBAAwB;AACtC,QAAO;;;;;;IAML,MAAM"}
@@ -0,0 +1,19 @@
1
+ import { ClientRuntimeConfig } from "../types.cjs";
2
+ import { HeadScript } from "./types.cjs";
3
+
4
+ //#region src/ui/head.d.ts
5
+ interface RemoteScriptsOptions {
6
+ assetsUrl: string;
7
+ runtimeConfig?: Partial<ClientRuntimeConfig>;
8
+ containerName?: string;
9
+ hydratePath?: string;
10
+ integrity?: string;
11
+ }
12
+ declare function getRemoteEntryScript(assetsUrl: string, integrity?: string): HeadScript;
13
+ declare function getThemeInitScript(): HeadScript;
14
+ declare function getHydrateScript(runtimeConfig: Partial<ClientRuntimeConfig> | undefined, containerName?: string, hydratePath?: string): HeadScript;
15
+ declare function getRemoteScripts(options: RemoteScriptsOptions): HeadScript[];
16
+ declare function getBaseStyles(): string;
17
+ //#endregion
18
+ export { RemoteScriptsOptions, getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript };
19
+ //# sourceMappingURL=head.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.d.cts","names":[],"sources":["../../src/ui/head.ts"],"mappings":";;;;UAGiB,oBAAA;EACf,SAAA;EACA,aAAA,GAAgB,OAAA,CAAQ,mBAAA;EACxB,aAAA;EACA,WAAA;EACA,SAAA;AAAA;AAAA,iBAGc,oBAAA,CAAqB,SAAA,UAAmB,SAAA,YAAqB,UAAA;AAAA,iBAW7D,kBAAA,CAAA,GAAsB,UAAA;AAAA,iBAOtB,gBAAA,CACd,aAAA,EAAe,OAAA,CAAQ,mBAAA,eACvB,aAAA,WACA,WAAA,YACC,UAAA;AAAA,iBA+Ba,gBAAA,CAAiB,OAAA,EAAS,oBAAA,GAAuB,UAAA;AAAA,iBAUjD,aAAA,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { ClientRuntimeConfig } from "../types.mjs";
2
+ import { HeadScript } from "./types.mjs";
3
+
4
+ //#region src/ui/head.d.ts
5
+ interface RemoteScriptsOptions {
6
+ assetsUrl: string;
7
+ runtimeConfig?: Partial<ClientRuntimeConfig>;
8
+ containerName?: string;
9
+ hydratePath?: string;
10
+ integrity?: string;
11
+ }
12
+ declare function getRemoteEntryScript(assetsUrl: string, integrity?: string): HeadScript;
13
+ declare function getThemeInitScript(): HeadScript;
14
+ declare function getHydrateScript(runtimeConfig: Partial<ClientRuntimeConfig> | undefined, containerName?: string, hydratePath?: string): HeadScript;
15
+ declare function getRemoteScripts(options: RemoteScriptsOptions): HeadScript[];
16
+ declare function getBaseStyles(): string;
17
+ //#endregion
18
+ export { RemoteScriptsOptions, getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript };
19
+ //# sourceMappingURL=head.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.d.mts","names":[],"sources":["../../src/ui/head.ts"],"mappings":";;;;UAGiB,oBAAA;EACf,SAAA;EACA,aAAA,GAAgB,OAAA,CAAQ,mBAAA;EACxB,aAAA;EACA,WAAA;EACA,SAAA;AAAA;AAAA,iBAGc,oBAAA,CAAqB,SAAA,UAAmB,SAAA,YAAqB,UAAA;AAAA,iBAW7D,kBAAA,CAAA,GAAsB,UAAA;AAAA,iBAOtB,gBAAA,CACd,aAAA,EAAe,OAAA,CAAQ,mBAAA,eACvB,aAAA,WACA,WAAA,YACC,UAAA;AAAA,iBA+Ba,gBAAA,CAAiB,OAAA,EAAS,oBAAA,GAAuB,UAAA;AAAA,iBAUjD,aAAA,CAAA"}
@@ -0,0 +1,61 @@
1
+ //#region src/ui/head.ts
2
+ function getRemoteEntryScript(assetsUrl, integrity) {
3
+ const script = { src: `${assetsUrl}/remoteEntry.js` };
4
+ if (integrity) {
5
+ script.integrity = integrity;
6
+ script.crossOrigin = "anonymous";
7
+ }
8
+ return script;
9
+ }
10
+ function getThemeInitScript() {
11
+ return { children: "(function(){var t=localStorage.getItem('theme');if(t==='dark'||(!t&&window.matchMedia('(prefers-color-scheme: dark)').matches)){document.documentElement.classList.add('dark');}})();" };
12
+ }
13
+ function getHydrateScript(runtimeConfig, containerName = "ui", hydratePath = "./Hydrate") {
14
+ return { children: `
15
+ window.__RUNTIME_CONFIG__=${JSON.stringify(runtimeConfig)};
16
+ function __hydrate(){
17
+ var container = window['${containerName}'];
18
+ if (!container) {
19
+ console.warn('[Hydrate] Container not ready yet, waiting...');
20
+ window.__hydrateRetry = window.__hydrateRetry || 0;
21
+ if (window.__hydrateRetry < 10) {
22
+ window.__hydrateRetry++;
23
+ setTimeout(__hydrate, 100);
24
+ return;
25
+ }
26
+ console.error('[Hydrate] Container not found after 10 retries');
27
+ return;
28
+ }
29
+ console.log('[Hydrate] Container available, starting init...');
30
+ container.init({}).then(function(){
31
+ return container.get('${hydratePath}');
32
+ }).then(function(mod){
33
+ return mod().hydrate();
34
+ }).catch(function(e){
35
+ console.error('[Hydrate] Failed:', e);
36
+ });
37
+ }
38
+ if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',__hydrate);}else{__hydrate();}
39
+ `.trim() };
40
+ }
41
+ function getRemoteScripts(options) {
42
+ const { assetsUrl, runtimeConfig, containerName, hydratePath, integrity } = options;
43
+ return [
44
+ getRemoteEntryScript(assetsUrl, integrity),
45
+ getThemeInitScript(),
46
+ getHydrateScript(runtimeConfig, containerName, hydratePath)
47
+ ];
48
+ }
49
+ function getBaseStyles() {
50
+ return `
51
+ *, *::before, *::after { box-sizing: border-box; }
52
+ html { height: 100%; height: 100dvh; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light dark; }
53
+ body { min-height: 100%; min-height: 100dvh; margin: 0; background-color: var(--background); color: var(--foreground); -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
54
+ #root { min-height: 100vh; }
55
+ @supports (min-height: 100dvh) { #root { min-height: 100dvh; } }
56
+ `.trim();
57
+ }
58
+
59
+ //#endregion
60
+ export { getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript };
61
+ //# sourceMappingURL=head.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.mjs","names":[],"sources":["../../src/ui/head.ts"],"sourcesContent":["import type { ClientRuntimeConfig } from \"../types\";\nimport type { HeadScript } from \"./types\";\n\nexport interface RemoteScriptsOptions {\n assetsUrl: string;\n runtimeConfig?: Partial<ClientRuntimeConfig>;\n containerName?: string;\n hydratePath?: string;\n integrity?: string;\n}\n\nexport function getRemoteEntryScript(assetsUrl: string, integrity?: string): HeadScript {\n const script: HeadScript = {\n src: `${assetsUrl}/remoteEntry.js`,\n };\n if (integrity) {\n script.integrity = integrity;\n script.crossOrigin = \"anonymous\";\n }\n return script;\n}\n\nexport function getThemeInitScript(): HeadScript {\n return {\n children:\n \"(function(){var t=localStorage.getItem('theme');if(t==='dark'||(!t&&window.matchMedia('(prefers-color-scheme: dark)').matches)){document.documentElement.classList.add('dark');}})();\",\n };\n}\n\nexport function getHydrateScript(\n runtimeConfig: Partial<ClientRuntimeConfig> | undefined,\n containerName = \"ui\",\n hydratePath = \"./Hydrate\",\n): HeadScript {\n return {\n children: `\n window.__RUNTIME_CONFIG__=${JSON.stringify(runtimeConfig)};\n function __hydrate(){\n var container = window['${containerName}'];\n if (!container) {\n console.warn('[Hydrate] Container not ready yet, waiting...');\n window.__hydrateRetry = window.__hydrateRetry || 0;\n if (window.__hydrateRetry < 10) {\n window.__hydrateRetry++;\n setTimeout(__hydrate, 100);\n return;\n }\n console.error('[Hydrate] Container not found after 10 retries');\n return;\n }\n console.log('[Hydrate] Container available, starting init...');\n container.init({}).then(function(){\n return container.get('${hydratePath}');\n }).then(function(mod){\n return mod().hydrate();\n }).catch(function(e){\n console.error('[Hydrate] Failed:', e);\n });\n }\n if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',__hydrate);}else{__hydrate();}\n \t\t`.trim(),\n };\n}\n\nexport function getRemoteScripts(options: RemoteScriptsOptions): HeadScript[] {\n const { assetsUrl, runtimeConfig, containerName, hydratePath, integrity } = options;\n\n return [\n getRemoteEntryScript(assetsUrl, integrity),\n getThemeInitScript(),\n getHydrateScript(runtimeConfig, containerName, hydratePath),\n ];\n}\n\nexport function getBaseStyles(): string {\n return `\n*, *::before, *::after { box-sizing: border-box; }\nhtml { height: 100%; height: 100dvh; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light dark; }\nbody { min-height: 100%; min-height: 100dvh; margin: 0; background-color: var(--background); color: var(--foreground); -webkit-tap-highlight-color: transparent; touch-action: manipulation; }\n#root { min-height: 100vh; }\n@supports (min-height: 100dvh) { #root { min-height: 100dvh; } }\n `.trim();\n}\n"],"mappings":";AAWA,SAAgB,qBAAqB,WAAmB,WAAgC;CACtF,MAAM,SAAqB,EACzB,KAAK,GAAG,UAAU,kBACnB;AACD,KAAI,WAAW;AACb,SAAO,YAAY;AACnB,SAAO,cAAc;;AAEvB,QAAO;;AAGT,SAAgB,qBAAiC;AAC/C,QAAO,EACL,UACE,yLACH;;AAGH,SAAgB,iBACd,eACA,gBAAgB,MAChB,cAAc,aACF;AACZ,QAAO,EACL,UAAU;6BACe,KAAK,UAAU,cAAc,CAAC;;4BAE/B,cAAc;;;;;;;;;;;;;;4BAcd,YAAY;;;;;;;;KAQnC,MAAM,EACR;;AAGH,SAAgB,iBAAiB,SAA6C;CAC5E,MAAM,EAAE,WAAW,eAAe,eAAe,aAAa,cAAc;AAE5E,QAAO;EACL,qBAAqB,WAAW,UAAU;EAC1C,oBAAoB;EACpB,iBAAiB,eAAe,eAAe,YAAY;EAC5D;;AAGH,SAAgB,gBAAwB;AACtC,QAAO;;;;;;IAML,MAAM"}
@@ -0,0 +1,32 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_ui_head = require('./head.cjs');
3
+ const require_ui_metadata = require('./metadata.cjs');
4
+ const require_ui_router = require('./router.cjs');
5
+ const require_ui_runtime = require('./runtime.cjs');
6
+
7
+ exports.SOCIAL_IMAGE_HEIGHT = require_ui_metadata.SOCIAL_IMAGE_HEIGHT;
8
+ exports.SOCIAL_IMAGE_WIDTH = require_ui_metadata.SOCIAL_IMAGE_WIDTH;
9
+ exports.buildPublishedAccountHref = require_ui_runtime.buildPublishedAccountHref;
10
+ exports.buildPublishedGatewayHref = require_ui_runtime.buildPublishedGatewayHref;
11
+ exports.buildRuntimeHref = require_ui_runtime.buildRuntimeHref;
12
+ exports.collectHeadData = require_ui_router.collectHeadData;
13
+ exports.createDotIconSvg = require_ui_metadata.createDotIconSvg;
14
+ exports.createPngIcoBuffer = require_ui_metadata.createPngIcoBuffer;
15
+ exports.getAccount = require_ui_runtime.getAccount;
16
+ exports.getActiveRuntime = require_ui_runtime.getActiveRuntime;
17
+ exports.getApiBaseUrl = require_ui_runtime.getApiBaseUrl;
18
+ exports.getAssetsUrl = require_ui_runtime.getAssetsUrl;
19
+ exports.getBaseStyles = require_ui_head.getBaseStyles;
20
+ exports.getHostUrl = require_ui_runtime.getHostUrl;
21
+ exports.getHydrateScript = require_ui_head.getHydrateScript;
22
+ exports.getLinkKey = require_ui_router.getLinkKey;
23
+ exports.getMetaKey = require_ui_router.getMetaKey;
24
+ exports.getNetworkId = require_ui_runtime.getNetworkId;
25
+ exports.getRemoteEntryScript = require_ui_head.getRemoteEntryScript;
26
+ exports.getRemoteScripts = require_ui_head.getRemoteScripts;
27
+ exports.getRepository = require_ui_runtime.getRepository;
28
+ exports.getRuntimeBasePath = require_ui_runtime.getRuntimeBasePath;
29
+ exports.getRuntimeConfig = require_ui_runtime.getRuntimeConfig;
30
+ exports.getScriptKey = require_ui_router.getScriptKey;
31
+ exports.getSocialImageMeta = require_ui_metadata.getSocialImageMeta;
32
+ exports.getThemeInitScript = require_ui_head.getThemeInitScript;
@@ -0,0 +1,7 @@
1
+ import { ClientRuntimeInfo } from "../types.cjs";
2
+ import { CreateRouterOptions, HeadData, HeadLink, HeadMeta, HeadScript, RenderOptions, RenderOptionsWithApi, RenderResult, RouterContext, RouterContextWithApi, RouterModule } from "./types.cjs";
3
+ import { RemoteScriptsOptions, getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript } from "./head.cjs";
4
+ import { DotIconSvgOptions, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta } from "./metadata.cjs";
5
+ import { collectHeadData, getLinkKey, getMetaKey, getScriptKey } from "./router.cjs";
6
+ import { buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getHostUrl, getNetworkId, getRepository, getRuntimeBasePath, getRuntimeConfig } from "./runtime.cjs";
7
+ export { ClientRuntimeInfo, CreateRouterOptions, DotIconSvgOptions, HeadData, HeadLink, HeadMeta, HeadScript, RemoteScriptsOptions, RenderOptions, RenderOptionsWithApi, RenderResult, RouterContext, RouterContextWithApi, RouterModule, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, collectHeadData, createDotIconSvg, createPngIcoBuffer, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getBaseStyles, getHostUrl, getHydrateScript, getLinkKey, getMetaKey, getNetworkId, getRemoteEntryScript, getRemoteScripts, getRepository, getRuntimeBasePath, getRuntimeConfig, getScriptKey, getSocialImageMeta, getThemeInitScript };
@@ -0,0 +1,7 @@
1
+ import { ClientRuntimeInfo } from "../types.mjs";
2
+ import { CreateRouterOptions, HeadData, HeadLink, HeadMeta, HeadScript, RenderOptions, RenderOptionsWithApi, RenderResult, RouterContext, RouterContextWithApi, RouterModule } from "./types.mjs";
3
+ import { RemoteScriptsOptions, getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript } from "./head.mjs";
4
+ import { DotIconSvgOptions, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta } from "./metadata.mjs";
5
+ import { collectHeadData, getLinkKey, getMetaKey, getScriptKey } from "./router.mjs";
6
+ import { buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getHostUrl, getNetworkId, getRepository, getRuntimeBasePath, getRuntimeConfig } from "./runtime.mjs";
7
+ export { ClientRuntimeInfo, CreateRouterOptions, DotIconSvgOptions, HeadData, HeadLink, HeadMeta, HeadScript, RemoteScriptsOptions, RenderOptions, RenderOptionsWithApi, RenderResult, RouterContext, RouterContextWithApi, RouterModule, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, collectHeadData, createDotIconSvg, createPngIcoBuffer, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getBaseStyles, getHostUrl, getHydrateScript, getLinkKey, getMetaKey, getNetworkId, getRemoteEntryScript, getRemoteScripts, getRepository, getRuntimeBasePath, getRuntimeConfig, getScriptKey, getSocialImageMeta, getThemeInitScript };
@@ -0,0 +1,6 @@
1
+ import { getBaseStyles, getHydrateScript, getRemoteEntryScript, getRemoteScripts, getThemeInitScript } from "./head.mjs";
2
+ import { SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta } from "./metadata.mjs";
3
+ import { collectHeadData, getLinkKey, getMetaKey, getScriptKey } from "./router.mjs";
4
+ import { buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getHostUrl, getNetworkId, getRepository, getRuntimeBasePath, getRuntimeConfig } from "./runtime.mjs";
5
+
6
+ export { SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, buildPublishedAccountHref, buildPublishedGatewayHref, buildRuntimeHref, collectHeadData, createDotIconSvg, createPngIcoBuffer, getAccount, getActiveRuntime, getApiBaseUrl, getAssetsUrl, getBaseStyles, getHostUrl, getHydrateScript, getLinkKey, getMetaKey, getNetworkId, getRemoteEntryScript, getRemoteScripts, getRepository, getRuntimeBasePath, getRuntimeConfig, getScriptKey, getSocialImageMeta, getThemeInitScript };
@@ -0,0 +1,106 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/ui/metadata.ts
4
+ const SOCIAL_IMAGE_WIDTH = 1200;
5
+ const SOCIAL_IMAGE_HEIGHT = 630;
6
+ function getSocialImageMeta(options) {
7
+ const { imageUrl, title, description, siteName, siteUrl, type = "website", alt, width = SOCIAL_IMAGE_WIDTH, height = 630, mimeType = "image/png" } = options;
8
+ return [
9
+ {
10
+ property: "og:title",
11
+ content: title
12
+ },
13
+ {
14
+ property: "og:description",
15
+ content: description
16
+ },
17
+ {
18
+ property: "og:type",
19
+ content: type
20
+ },
21
+ {
22
+ property: "og:image",
23
+ content: imageUrl
24
+ },
25
+ {
26
+ property: "og:image:type",
27
+ content: mimeType
28
+ },
29
+ {
30
+ property: "og:image:width",
31
+ content: String(width)
32
+ },
33
+ {
34
+ property: "og:image:height",
35
+ content: String(height)
36
+ },
37
+ ...alt ? [{
38
+ property: "og:image:alt",
39
+ content: alt
40
+ }] : [],
41
+ ...siteName ? [{
42
+ property: "og:site_name",
43
+ content: siteName
44
+ }] : [],
45
+ ...siteUrl ? [{
46
+ property: "og:url",
47
+ content: siteUrl
48
+ }] : [],
49
+ {
50
+ name: "twitter:card",
51
+ content: "summary_large_image"
52
+ },
53
+ {
54
+ name: "twitter:title",
55
+ content: title
56
+ },
57
+ {
58
+ name: "twitter:description",
59
+ content: description
60
+ },
61
+ {
62
+ name: "twitter:image",
63
+ content: imageUrl
64
+ },
65
+ ...alt ? [{
66
+ name: "twitter:image:alt",
67
+ content: alt
68
+ }] : []
69
+ ];
70
+ }
71
+ function createDotIconSvg(options = {}) {
72
+ const { size = 64, color = "#111111", radius = size * .34, background = "transparent" } = options;
73
+ const center = size / 2;
74
+ return `<?xml version="1.0" encoding="UTF-8"?>
75
+ <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
76
+ <rect width="${size}" height="${size}" fill="${background}" />
77
+ <circle cx="${center}" cy="${center}" r="${radius}" fill="${color}" />
78
+ </svg>`;
79
+ }
80
+ function createPngIcoBuffer(png, width, height) {
81
+ const header = new Uint8Array(22);
82
+ const view = new DataView(header.buffer);
83
+ view.setUint16(0, 0, true);
84
+ view.setUint16(2, 1, true);
85
+ view.setUint16(4, 1, true);
86
+ header[6] = width >= 256 ? 0 : width;
87
+ header[7] = height >= 256 ? 0 : height;
88
+ header[8] = 0;
89
+ header[9] = 0;
90
+ view.setUint16(10, 1, true);
91
+ view.setUint16(12, 32, true);
92
+ view.setUint32(14, png.byteLength, true);
93
+ view.setUint32(18, 22, true);
94
+ const ico = new Uint8Array(22 + png.byteLength);
95
+ ico.set(header, 0);
96
+ ico.set(png, 22);
97
+ return ico;
98
+ }
99
+
100
+ //#endregion
101
+ exports.SOCIAL_IMAGE_HEIGHT = SOCIAL_IMAGE_HEIGHT;
102
+ exports.SOCIAL_IMAGE_WIDTH = SOCIAL_IMAGE_WIDTH;
103
+ exports.createDotIconSvg = createDotIconSvg;
104
+ exports.createPngIcoBuffer = createPngIcoBuffer;
105
+ exports.getSocialImageMeta = getSocialImageMeta;
106
+ //# sourceMappingURL=metadata.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.cjs","names":[],"sources":["../../src/ui/metadata.ts"],"sourcesContent":["export const SOCIAL_IMAGE_WIDTH = 1200;\nexport const SOCIAL_IMAGE_HEIGHT = 630;\n\nexport interface SocialImageMetaOptions {\n imageUrl: string;\n title: string;\n description: string;\n siteName?: string;\n siteUrl?: string;\n type?: string;\n alt?: string;\n width?: number;\n height?: number;\n mimeType?: string;\n}\n\nexport function getSocialImageMeta(options: SocialImageMetaOptions) {\n const {\n imageUrl,\n title,\n description,\n siteName,\n siteUrl,\n type = \"website\",\n alt,\n width = SOCIAL_IMAGE_WIDTH,\n height = SOCIAL_IMAGE_HEIGHT,\n mimeType = \"image/png\",\n } = options;\n\n return [\n { property: \"og:title\", content: title },\n { property: \"og:description\", content: description },\n { property: \"og:type\", content: type },\n { property: \"og:image\", content: imageUrl },\n { property: \"og:image:type\", content: mimeType },\n { property: \"og:image:width\", content: String(width) },\n { property: \"og:image:height\", content: String(height) },\n ...(alt ? [{ property: \"og:image:alt\", content: alt }] : []),\n ...(siteName ? [{ property: \"og:site_name\", content: siteName }] : []),\n ...(siteUrl ? [{ property: \"og:url\", content: siteUrl }] : []),\n { name: \"twitter:card\", content: \"summary_large_image\" },\n { name: \"twitter:title\", content: title },\n { name: \"twitter:description\", content: description },\n { name: \"twitter:image\", content: imageUrl },\n ...(alt ? [{ name: \"twitter:image:alt\", content: alt }] : []),\n ];\n}\n\nexport interface DotIconSvgOptions {\n size?: number;\n color?: string;\n radius?: number;\n background?: string;\n}\n\nexport function createDotIconSvg(options: DotIconSvgOptions = {}) {\n const {\n size = 64,\n color = \"#111111\",\n radius = size * 0.34,\n background = \"transparent\",\n } = options;\n const center = size / 2;\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\n <rect width=\"${size}\" height=\"${size}\" fill=\"${background}\" />\n <circle cx=\"${center}\" cy=\"${center}\" r=\"${radius}\" fill=\"${color}\" />\n</svg>`;\n}\n\nexport function createPngIcoBuffer(png: Uint8Array, width: number, height: number) {\n const header = new Uint8Array(22);\n const view = new DataView(header.buffer);\n\n view.setUint16(0, 0, true);\n view.setUint16(2, 1, true);\n view.setUint16(4, 1, true);\n\n header[6] = width >= 256 ? 0 : width;\n header[7] = height >= 256 ? 0 : height;\n header[8] = 0;\n header[9] = 0;\n\n view.setUint16(10, 1, true);\n view.setUint16(12, 32, true);\n view.setUint32(14, png.byteLength, true);\n view.setUint32(18, 22, true);\n\n const ico = new Uint8Array(22 + png.byteLength);\n ico.set(header, 0);\n ico.set(png, 22);\n return ico;\n}\n"],"mappings":";;;AAAA,MAAa,qBAAqB;AAClC,MAAa,sBAAsB;AAenC,SAAgB,mBAAmB,SAAiC;CAClE,MAAM,EACJ,UACA,OACA,aACA,UACA,SACA,OAAO,WACP,KACA,QAAQ,oBACR,cACA,WAAW,gBACT;AAEJ,QAAO;EACL;GAAE,UAAU;GAAY,SAAS;GAAO;EACxC;GAAE,UAAU;GAAkB,SAAS;GAAa;EACpD;GAAE,UAAU;GAAW,SAAS;GAAM;EACtC;GAAE,UAAU;GAAY,SAAS;GAAU;EAC3C;GAAE,UAAU;GAAiB,SAAS;GAAU;EAChD;GAAE,UAAU;GAAkB,SAAS,OAAO,MAAM;GAAE;EACtD;GAAE,UAAU;GAAmB,SAAS,OAAO,OAAO;GAAE;EACxD,GAAI,MAAM,CAAC;GAAE,UAAU;GAAgB,SAAS;GAAK,CAAC,GAAG,EAAE;EAC3D,GAAI,WAAW,CAAC;GAAE,UAAU;GAAgB,SAAS;GAAU,CAAC,GAAG,EAAE;EACrE,GAAI,UAAU,CAAC;GAAE,UAAU;GAAU,SAAS;GAAS,CAAC,GAAG,EAAE;EAC7D;GAAE,MAAM;GAAgB,SAAS;GAAuB;EACxD;GAAE,MAAM;GAAiB,SAAS;GAAO;EACzC;GAAE,MAAM;GAAuB,SAAS;GAAa;EACrD;GAAE,MAAM;GAAiB,SAAS;GAAU;EAC5C,GAAI,MAAM,CAAC;GAAE,MAAM;GAAqB,SAAS;GAAK,CAAC,GAAG,EAAE;EAC7D;;AAUH,SAAgB,iBAAiB,UAA6B,EAAE,EAAE;CAChE,MAAM,EACJ,OAAO,IACP,QAAQ,WACR,SAAS,OAAO,KAChB,aAAa,kBACX;CACJ,MAAM,SAAS,OAAO;AAEtB,QAAO;iDACwC,KAAK,YAAY,KAAK,iBAAiB,KAAK,GAAG,KAAK;iBACpF,KAAK,YAAY,KAAK,UAAU,WAAW;gBAC5C,OAAO,QAAQ,OAAO,OAAO,OAAO,UAAU,MAAM;;;AAIpE,SAAgB,mBAAmB,KAAiB,OAAe,QAAgB;CACjF,MAAM,SAAS,IAAI,WAAW,GAAG;CACjC,MAAM,OAAO,IAAI,SAAS,OAAO,OAAO;AAExC,MAAK,UAAU,GAAG,GAAG,KAAK;AAC1B,MAAK,UAAU,GAAG,GAAG,KAAK;AAC1B,MAAK,UAAU,GAAG,GAAG,KAAK;AAE1B,QAAO,KAAK,SAAS,MAAM,IAAI;AAC/B,QAAO,KAAK,UAAU,MAAM,IAAI;AAChC,QAAO,KAAK;AACZ,QAAO,KAAK;AAEZ,MAAK,UAAU,IAAI,GAAG,KAAK;AAC3B,MAAK,UAAU,IAAI,IAAI,KAAK;AAC5B,MAAK,UAAU,IAAI,IAAI,YAAY,KAAK;AACxC,MAAK,UAAU,IAAI,IAAI,KAAK;CAE5B,MAAM,MAAM,IAAI,WAAW,KAAK,IAAI,WAAW;AAC/C,KAAI,IAAI,QAAQ,EAAE;AAClB,KAAI,IAAI,KAAK,GAAG;AAChB,QAAO"}
@@ -0,0 +1,35 @@
1
+ //#region src/ui/metadata.d.ts
2
+ declare const SOCIAL_IMAGE_WIDTH = 1200;
3
+ declare const SOCIAL_IMAGE_HEIGHT = 630;
4
+ interface SocialImageMetaOptions {
5
+ imageUrl: string;
6
+ title: string;
7
+ description: string;
8
+ siteName?: string;
9
+ siteUrl?: string;
10
+ type?: string;
11
+ alt?: string;
12
+ width?: number;
13
+ height?: number;
14
+ mimeType?: string;
15
+ }
16
+ declare function getSocialImageMeta(options: SocialImageMetaOptions): ({
17
+ property: string;
18
+ content: string;
19
+ name?: undefined;
20
+ } | {
21
+ name: string;
22
+ content: string;
23
+ property?: undefined;
24
+ })[];
25
+ interface DotIconSvgOptions {
26
+ size?: number;
27
+ color?: string;
28
+ radius?: number;
29
+ background?: string;
30
+ }
31
+ declare function createDotIconSvg(options?: DotIconSvgOptions): string;
32
+ declare function createPngIcoBuffer(png: Uint8Array, width: number, height: number): Uint8Array<ArrayBuffer>;
33
+ //#endregion
34
+ export { DotIconSvgOptions, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta };
35
+ //# sourceMappingURL=metadata.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.cts","names":[],"sources":["../../src/ui/metadata.ts"],"mappings":";cAAa,kBAAA;AAAA,cACA,mBAAA;AAAA,UAEI,sBAAA;EACf,QAAA;EACA,KAAA;EACA,WAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA;EACA,GAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,OAAA,EAAS,sBAAA;;;;;;;;;UAiC3B,iBAAA;EACf,IAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;AAAA;AAAA,iBAGc,gBAAA,CAAiB,OAAA,GAAS,iBAAA;AAAA,iBAgB1B,kBAAA,CAAmB,GAAA,EAAK,UAAA,EAAY,KAAA,UAAe,MAAA,WAAc,UAAA,CAAA,WAAA"}
@@ -0,0 +1,35 @@
1
+ //#region src/ui/metadata.d.ts
2
+ declare const SOCIAL_IMAGE_WIDTH = 1200;
3
+ declare const SOCIAL_IMAGE_HEIGHT = 630;
4
+ interface SocialImageMetaOptions {
5
+ imageUrl: string;
6
+ title: string;
7
+ description: string;
8
+ siteName?: string;
9
+ siteUrl?: string;
10
+ type?: string;
11
+ alt?: string;
12
+ width?: number;
13
+ height?: number;
14
+ mimeType?: string;
15
+ }
16
+ declare function getSocialImageMeta(options: SocialImageMetaOptions): ({
17
+ property: string;
18
+ content: string;
19
+ name?: undefined;
20
+ } | {
21
+ name: string;
22
+ content: string;
23
+ property?: undefined;
24
+ })[];
25
+ interface DotIconSvgOptions {
26
+ size?: number;
27
+ color?: string;
28
+ radius?: number;
29
+ background?: string;
30
+ }
31
+ declare function createDotIconSvg(options?: DotIconSvgOptions): string;
32
+ declare function createPngIcoBuffer(png: Uint8Array, width: number, height: number): Uint8Array<ArrayBuffer>;
33
+ //#endregion
34
+ export { DotIconSvgOptions, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, SocialImageMetaOptions, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta };
35
+ //# sourceMappingURL=metadata.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.mts","names":[],"sources":["../../src/ui/metadata.ts"],"mappings":";cAAa,kBAAA;AAAA,cACA,mBAAA;AAAA,UAEI,sBAAA;EACf,QAAA;EACA,KAAA;EACA,WAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA;EACA,GAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,OAAA,EAAS,sBAAA;;;;;;;;;UAiC3B,iBAAA;EACf,IAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;AAAA;AAAA,iBAGc,gBAAA,CAAiB,OAAA,GAAS,iBAAA;AAAA,iBAgB1B,kBAAA,CAAmB,GAAA,EAAK,UAAA,EAAY,KAAA,UAAe,MAAA,WAAc,UAAA,CAAA,WAAA"}
@@ -0,0 +1,100 @@
1
+ //#region src/ui/metadata.ts
2
+ const SOCIAL_IMAGE_WIDTH = 1200;
3
+ const SOCIAL_IMAGE_HEIGHT = 630;
4
+ function getSocialImageMeta(options) {
5
+ const { imageUrl, title, description, siteName, siteUrl, type = "website", alt, width = SOCIAL_IMAGE_WIDTH, height = 630, mimeType = "image/png" } = options;
6
+ return [
7
+ {
8
+ property: "og:title",
9
+ content: title
10
+ },
11
+ {
12
+ property: "og:description",
13
+ content: description
14
+ },
15
+ {
16
+ property: "og:type",
17
+ content: type
18
+ },
19
+ {
20
+ property: "og:image",
21
+ content: imageUrl
22
+ },
23
+ {
24
+ property: "og:image:type",
25
+ content: mimeType
26
+ },
27
+ {
28
+ property: "og:image:width",
29
+ content: String(width)
30
+ },
31
+ {
32
+ property: "og:image:height",
33
+ content: String(height)
34
+ },
35
+ ...alt ? [{
36
+ property: "og:image:alt",
37
+ content: alt
38
+ }] : [],
39
+ ...siteName ? [{
40
+ property: "og:site_name",
41
+ content: siteName
42
+ }] : [],
43
+ ...siteUrl ? [{
44
+ property: "og:url",
45
+ content: siteUrl
46
+ }] : [],
47
+ {
48
+ name: "twitter:card",
49
+ content: "summary_large_image"
50
+ },
51
+ {
52
+ name: "twitter:title",
53
+ content: title
54
+ },
55
+ {
56
+ name: "twitter:description",
57
+ content: description
58
+ },
59
+ {
60
+ name: "twitter:image",
61
+ content: imageUrl
62
+ },
63
+ ...alt ? [{
64
+ name: "twitter:image:alt",
65
+ content: alt
66
+ }] : []
67
+ ];
68
+ }
69
+ function createDotIconSvg(options = {}) {
70
+ const { size = 64, color = "#111111", radius = size * .34, background = "transparent" } = options;
71
+ const center = size / 2;
72
+ return `<?xml version="1.0" encoding="UTF-8"?>
73
+ <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
74
+ <rect width="${size}" height="${size}" fill="${background}" />
75
+ <circle cx="${center}" cy="${center}" r="${radius}" fill="${color}" />
76
+ </svg>`;
77
+ }
78
+ function createPngIcoBuffer(png, width, height) {
79
+ const header = new Uint8Array(22);
80
+ const view = new DataView(header.buffer);
81
+ view.setUint16(0, 0, true);
82
+ view.setUint16(2, 1, true);
83
+ view.setUint16(4, 1, true);
84
+ header[6] = width >= 256 ? 0 : width;
85
+ header[7] = height >= 256 ? 0 : height;
86
+ header[8] = 0;
87
+ header[9] = 0;
88
+ view.setUint16(10, 1, true);
89
+ view.setUint16(12, 32, true);
90
+ view.setUint32(14, png.byteLength, true);
91
+ view.setUint32(18, 22, true);
92
+ const ico = new Uint8Array(22 + png.byteLength);
93
+ ico.set(header, 0);
94
+ ico.set(png, 22);
95
+ return ico;
96
+ }
97
+
98
+ //#endregion
99
+ export { SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, createDotIconSvg, createPngIcoBuffer, getSocialImageMeta };
100
+ //# sourceMappingURL=metadata.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.mjs","names":[],"sources":["../../src/ui/metadata.ts"],"sourcesContent":["export const SOCIAL_IMAGE_WIDTH = 1200;\nexport const SOCIAL_IMAGE_HEIGHT = 630;\n\nexport interface SocialImageMetaOptions {\n imageUrl: string;\n title: string;\n description: string;\n siteName?: string;\n siteUrl?: string;\n type?: string;\n alt?: string;\n width?: number;\n height?: number;\n mimeType?: string;\n}\n\nexport function getSocialImageMeta(options: SocialImageMetaOptions) {\n const {\n imageUrl,\n title,\n description,\n siteName,\n siteUrl,\n type = \"website\",\n alt,\n width = SOCIAL_IMAGE_WIDTH,\n height = SOCIAL_IMAGE_HEIGHT,\n mimeType = \"image/png\",\n } = options;\n\n return [\n { property: \"og:title\", content: title },\n { property: \"og:description\", content: description },\n { property: \"og:type\", content: type },\n { property: \"og:image\", content: imageUrl },\n { property: \"og:image:type\", content: mimeType },\n { property: \"og:image:width\", content: String(width) },\n { property: \"og:image:height\", content: String(height) },\n ...(alt ? [{ property: \"og:image:alt\", content: alt }] : []),\n ...(siteName ? [{ property: \"og:site_name\", content: siteName }] : []),\n ...(siteUrl ? [{ property: \"og:url\", content: siteUrl }] : []),\n { name: \"twitter:card\", content: \"summary_large_image\" },\n { name: \"twitter:title\", content: title },\n { name: \"twitter:description\", content: description },\n { name: \"twitter:image\", content: imageUrl },\n ...(alt ? [{ name: \"twitter:image:alt\", content: alt }] : []),\n ];\n}\n\nexport interface DotIconSvgOptions {\n size?: number;\n color?: string;\n radius?: number;\n background?: string;\n}\n\nexport function createDotIconSvg(options: DotIconSvgOptions = {}) {\n const {\n size = 64,\n color = \"#111111\",\n radius = size * 0.34,\n background = \"transparent\",\n } = options;\n const center = size / 2;\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\n <rect width=\"${size}\" height=\"${size}\" fill=\"${background}\" />\n <circle cx=\"${center}\" cy=\"${center}\" r=\"${radius}\" fill=\"${color}\" />\n</svg>`;\n}\n\nexport function createPngIcoBuffer(png: Uint8Array, width: number, height: number) {\n const header = new Uint8Array(22);\n const view = new DataView(header.buffer);\n\n view.setUint16(0, 0, true);\n view.setUint16(2, 1, true);\n view.setUint16(4, 1, true);\n\n header[6] = width >= 256 ? 0 : width;\n header[7] = height >= 256 ? 0 : height;\n header[8] = 0;\n header[9] = 0;\n\n view.setUint16(10, 1, true);\n view.setUint16(12, 32, true);\n view.setUint32(14, png.byteLength, true);\n view.setUint32(18, 22, true);\n\n const ico = new Uint8Array(22 + png.byteLength);\n ico.set(header, 0);\n ico.set(png, 22);\n return ico;\n}\n"],"mappings":";AAAA,MAAa,qBAAqB;AAClC,MAAa,sBAAsB;AAenC,SAAgB,mBAAmB,SAAiC;CAClE,MAAM,EACJ,UACA,OACA,aACA,UACA,SACA,OAAO,WACP,KACA,QAAQ,oBACR,cACA,WAAW,gBACT;AAEJ,QAAO;EACL;GAAE,UAAU;GAAY,SAAS;GAAO;EACxC;GAAE,UAAU;GAAkB,SAAS;GAAa;EACpD;GAAE,UAAU;GAAW,SAAS;GAAM;EACtC;GAAE,UAAU;GAAY,SAAS;GAAU;EAC3C;GAAE,UAAU;GAAiB,SAAS;GAAU;EAChD;GAAE,UAAU;GAAkB,SAAS,OAAO,MAAM;GAAE;EACtD;GAAE,UAAU;GAAmB,SAAS,OAAO,OAAO;GAAE;EACxD,GAAI,MAAM,CAAC;GAAE,UAAU;GAAgB,SAAS;GAAK,CAAC,GAAG,EAAE;EAC3D,GAAI,WAAW,CAAC;GAAE,UAAU;GAAgB,SAAS;GAAU,CAAC,GAAG,EAAE;EACrE,GAAI,UAAU,CAAC;GAAE,UAAU;GAAU,SAAS;GAAS,CAAC,GAAG,EAAE;EAC7D;GAAE,MAAM;GAAgB,SAAS;GAAuB;EACxD;GAAE,MAAM;GAAiB,SAAS;GAAO;EACzC;GAAE,MAAM;GAAuB,SAAS;GAAa;EACrD;GAAE,MAAM;GAAiB,SAAS;GAAU;EAC5C,GAAI,MAAM,CAAC;GAAE,MAAM;GAAqB,SAAS;GAAK,CAAC,GAAG,EAAE;EAC7D;;AAUH,SAAgB,iBAAiB,UAA6B,EAAE,EAAE;CAChE,MAAM,EACJ,OAAO,IACP,QAAQ,WACR,SAAS,OAAO,KAChB,aAAa,kBACX;CACJ,MAAM,SAAS,OAAO;AAEtB,QAAO;iDACwC,KAAK,YAAY,KAAK,iBAAiB,KAAK,GAAG,KAAK;iBACpF,KAAK,YAAY,KAAK,UAAU,WAAW;gBAC5C,OAAO,QAAQ,OAAO,OAAO,OAAO,UAAU,MAAM;;;AAIpE,SAAgB,mBAAmB,KAAiB,OAAe,QAAgB;CACjF,MAAM,SAAS,IAAI,WAAW,GAAG;CACjC,MAAM,OAAO,IAAI,SAAS,OAAO,OAAO;AAExC,MAAK,UAAU,GAAG,GAAG,KAAK;AAC1B,MAAK,UAAU,GAAG,GAAG,KAAK;AAC1B,MAAK,UAAU,GAAG,GAAG,KAAK;AAE1B,QAAO,KAAK,SAAS,MAAM,IAAI;AAC/B,QAAO,KAAK,UAAU,MAAM,IAAI;AAChC,QAAO,KAAK;AACZ,QAAO,KAAK;AAEZ,MAAK,UAAU,IAAI,GAAG,KAAK;AAC3B,MAAK,UAAU,IAAI,IAAI,KAAK;AAC5B,MAAK,UAAU,IAAI,IAAI,YAAY,KAAK;AACxC,MAAK,UAAU,IAAI,IAAI,KAAK;CAE5B,MAAM,MAAM,IAAI,WAAW,KAAK,IAAI,WAAW;AAC/C,KAAI,IAAI,QAAQ,EAAE;AAClB,KAAI,IAAI,KAAK,GAAG;AAChB,QAAO"}
@@ -0,0 +1,56 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/ui/router.ts
4
+ function getMetaKey(meta) {
5
+ if (!meta) return "null";
6
+ if ("title" in meta) return "title";
7
+ if ("charSet" in meta) return "charSet";
8
+ if ("name" in meta) return `name:${meta.name}`;
9
+ if ("property" in meta) return `property:${meta.property}`;
10
+ if ("httpEquiv" in meta) return `httpEquiv:${meta.httpEquiv}`;
11
+ return JSON.stringify(meta);
12
+ }
13
+ function getLinkKey(link) {
14
+ return `${link.rel ?? ""}:${link.href ?? ""}`;
15
+ }
16
+ function getScriptKey(script) {
17
+ if (!script) return "null";
18
+ if ("src" in script && script.src) return `src:${script.src}`;
19
+ if ("children" in script && script.children) return `children:${typeof script.children === "string" ? script.children : JSON.stringify(script.children)}`;
20
+ return JSON.stringify(script);
21
+ }
22
+ async function collectHeadData(router) {
23
+ await router.load();
24
+ const metaMap = /* @__PURE__ */ new Map();
25
+ const linkMap = /* @__PURE__ */ new Map();
26
+ const scriptMap = /* @__PURE__ */ new Map();
27
+ for (const match of router.state.matches) {
28
+ const headFn = (router.routesById?.[match.routeId] ?? match.route)?.options?.head;
29
+ if (!headFn) continue;
30
+ try {
31
+ const headResult = await headFn({
32
+ loaderData: match.loaderData,
33
+ matches: router.state.matches,
34
+ match,
35
+ params: match.params
36
+ });
37
+ if (headResult?.meta) for (const meta of headResult.meta) metaMap.set(getMetaKey(meta), meta);
38
+ if (headResult?.links) for (const link of headResult.links) linkMap.set(getLinkKey(link), link);
39
+ if (headResult?.scripts) for (const script of headResult.scripts) scriptMap.set(getScriptKey(script), script);
40
+ } catch (error) {
41
+ console.warn(`[collectHeadData] head() failed for ${match.routeId}:`, error);
42
+ }
43
+ }
44
+ return {
45
+ meta: [...metaMap.values()],
46
+ links: [...linkMap.values()],
47
+ scripts: [...scriptMap.values()]
48
+ };
49
+ }
50
+
51
+ //#endregion
52
+ exports.collectHeadData = collectHeadData;
53
+ exports.getLinkKey = getLinkKey;
54
+ exports.getMetaKey = getMetaKey;
55
+ exports.getScriptKey = getScriptKey;
56
+ //# sourceMappingURL=router.cjs.map