everything-dev 0.3.3 → 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 +307 -255
  251. package/src/components/streaming-view.ts +164 -128
  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 +1115 -2309
  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 -550
  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 -268
  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