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.
- package/README.md +64 -0
- package/cli.js +10 -0
- package/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/api-contract.cjs +172 -0
- package/dist/api-contract.cjs.map +1 -0
- package/dist/api-contract.mjs +171 -0
- package/dist/api-contract.mjs.map +1 -0
- package/dist/api.cjs +124 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.cts +36 -0
- package/dist/api.d.cts.map +1 -0
- package/dist/api.d.mts +36 -0
- package/dist/api.d.mts.map +1 -0
- package/dist/api.mjs +119 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app.cjs +156 -0
- package/dist/app.cjs.map +1 -0
- package/dist/app.mjs +153 -0
- package/dist/app.mjs.map +1 -0
- package/dist/cli/catalog.cjs +30 -0
- package/dist/cli/catalog.cjs.map +1 -0
- package/dist/cli/catalog.mjs +29 -0
- package/dist/cli/catalog.mjs.map +1 -0
- package/dist/cli/help.cjs +16 -0
- package/dist/cli/help.cjs.map +1 -0
- package/dist/cli/help.mjs +16 -0
- package/dist/cli/help.mjs.map +1 -0
- package/dist/cli/init.cjs +317 -0
- package/dist/cli/init.cjs.map +1 -0
- package/dist/cli/init.d.cts +36 -0
- package/dist/cli/init.d.cts.map +1 -0
- package/dist/cli/init.d.mts +36 -0
- package/dist/cli/init.d.mts.map +1 -0
- package/dist/cli/init.mjs +309 -0
- package/dist/cli/init.mjs.map +1 -0
- package/dist/cli/parse.cjs +96 -0
- package/dist/cli/parse.cjs.map +1 -0
- package/dist/cli/parse.mjs +95 -0
- package/dist/cli/parse.mjs.map +1 -0
- package/dist/cli/prompts.cjs +42 -0
- package/dist/cli/prompts.cjs.map +1 -0
- package/dist/cli/prompts.mjs +41 -0
- package/dist/cli/prompts.mjs.map +1 -0
- package/dist/cli.cjs +167 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +166 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/components/dev-view.cjs +307 -0
- package/dist/components/dev-view.cjs.map +1 -0
- package/dist/components/dev-view.mjs +306 -0
- package/dist/components/dev-view.mjs.map +1 -0
- package/dist/components/streaming-view.cjs +146 -0
- package/dist/components/streaming-view.cjs.map +1 -0
- package/dist/components/streaming-view.mjs +144 -0
- package/dist/components/streaming-view.mjs.map +1 -0
- package/dist/config.cjs +280 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +35 -0
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.mts +35 -0
- package/dist/config.d.mts.map +1 -0
- package/dist/config.mjs +266 -0
- package/dist/config.mjs.map +1 -0
- package/dist/contract.cjs +209 -0
- package/dist/contract.cjs.map +1 -0
- package/dist/contract.d.cts +490 -0
- package/dist/contract.d.cts.map +1 -0
- package/dist/contract.d.mts +490 -0
- package/dist/contract.d.mts.map +1 -0
- package/dist/contract.meta.cjs +104 -0
- package/dist/contract.meta.cjs.map +1 -0
- package/dist/contract.meta.d.cts +141 -0
- package/dist/contract.meta.d.cts.map +1 -0
- package/dist/contract.meta.d.mts +141 -0
- package/dist/contract.meta.d.mts.map +1 -0
- package/dist/contract.meta.mjs +102 -0
- package/dist/contract.meta.mjs.map +1 -0
- package/dist/contract.mjs +186 -0
- package/dist/contract.mjs.map +1 -0
- package/dist/dev-logs.cjs +53 -0
- package/dist/dev-logs.cjs.map +1 -0
- package/dist/dev-logs.mjs +51 -0
- package/dist/dev-logs.mjs.map +1 -0
- package/dist/dev-session.cjs +195 -0
- package/dist/dev-session.cjs.map +1 -0
- package/dist/dev-session.mjs +194 -0
- package/dist/dev-session.mjs.map +1 -0
- package/dist/fastkv.cjs +89 -0
- package/dist/fastkv.cjs.map +1 -0
- package/dist/fastkv.d.cts +11 -0
- package/dist/fastkv.d.cts.map +1 -0
- package/dist/fastkv.d.mts +11 -0
- package/dist/fastkv.d.mts.map +1 -0
- package/dist/fastkv.mjs +82 -0
- package/dist/fastkv.mjs.map +1 -0
- package/dist/federation.server.cjs +27 -0
- package/dist/federation.server.cjs.map +1 -0
- package/dist/federation.server.mjs +27 -0
- package/dist/federation.server.mjs.map +1 -0
- package/dist/host.cjs +367 -0
- package/dist/host.cjs.map +1 -0
- package/dist/host.d.cts +22 -0
- package/dist/host.d.cts.map +1 -0
- package/dist/host.d.mts +22 -0
- package/dist/host.d.mts.map +1 -0
- package/dist/host.mjs +364 -0
- package/dist/host.mjs.map +1 -0
- package/dist/index.cjs +122 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.mjs +9 -0
- package/dist/integrity.cjs +39 -0
- package/dist/integrity.cjs.map +1 -0
- package/dist/integrity.d.cts +7 -0
- package/dist/integrity.d.cts.map +1 -0
- package/dist/integrity.d.mts +7 -0
- package/dist/integrity.d.mts.map +1 -0
- package/dist/integrity.mjs +35 -0
- package/dist/integrity.mjs.map +1 -0
- package/dist/mf.cjs +77 -0
- package/dist/mf.cjs.map +1 -0
- package/dist/mf.d.cts +19 -0
- package/dist/mf.d.cts.map +1 -0
- package/dist/mf.d.mts +19 -0
- package/dist/mf.d.mts.map +1 -0
- package/dist/mf.mjs +71 -0
- package/dist/mf.mjs.map +1 -0
- package/dist/near-cli.cjs +196 -0
- package/dist/near-cli.cjs.map +1 -0
- package/dist/near-cli.mjs +193 -0
- package/dist/near-cli.mjs.map +1 -0
- package/dist/network.cjs +9 -0
- package/dist/network.cjs.map +1 -0
- package/dist/network.mjs +8 -0
- package/dist/network.mjs.map +1 -0
- package/dist/orchestrator.cjs +441 -0
- package/dist/orchestrator.cjs.map +1 -0
- package/dist/orchestrator.d.cts +40 -0
- package/dist/orchestrator.d.cts.map +1 -0
- package/dist/orchestrator.d.mts +40 -0
- package/dist/orchestrator.d.mts.map +1 -0
- package/dist/orchestrator.mjs +436 -0
- package/dist/orchestrator.mjs.map +1 -0
- package/dist/plugin.cjs +825 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.cts +347 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.mts +348 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +822 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/process-registry.cjs +120 -0
- package/dist/process-registry.cjs.map +1 -0
- package/dist/process-registry.d.cts +25 -0
- package/dist/process-registry.d.cts.map +1 -0
- package/dist/process-registry.d.mts +25 -0
- package/dist/process-registry.d.mts.map +1 -0
- package/dist/process-registry.mjs +119 -0
- package/dist/process-registry.mjs.map +1 -0
- package/dist/sdk.cjs +61 -0
- package/dist/sdk.d.cts +5 -0
- package/dist/sdk.d.mts +5 -0
- package/dist/sdk.mjs +6 -0
- package/dist/shared.cjs +143 -0
- package/dist/shared.cjs.map +1 -0
- package/dist/shared.d.cts +33 -0
- package/dist/shared.d.cts.map +1 -0
- package/dist/shared.d.mts +33 -0
- package/dist/shared.d.mts.map +1 -0
- package/dist/shared.mjs +140 -0
- package/dist/shared.mjs.map +1 -0
- package/dist/types.cjs +160 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +269 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +269 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +144 -0
- package/dist/types.mjs.map +1 -0
- package/dist/ui/head.cjs +67 -0
- package/dist/ui/head.cjs.map +1 -0
- package/dist/ui/head.d.cts +19 -0
- package/dist/ui/head.d.cts.map +1 -0
- package/dist/ui/head.d.mts +19 -0
- package/dist/ui/head.d.mts.map +1 -0
- package/dist/ui/head.mjs +61 -0
- package/dist/ui/head.mjs.map +1 -0
- package/dist/ui/index.cjs +32 -0
- package/dist/ui/index.d.cts +7 -0
- package/dist/ui/index.d.mts +7 -0
- package/dist/ui/index.mjs +6 -0
- package/dist/ui/metadata.cjs +106 -0
- package/dist/ui/metadata.cjs.map +1 -0
- package/dist/ui/metadata.d.cts +35 -0
- package/dist/ui/metadata.d.cts.map +1 -0
- package/dist/ui/metadata.d.mts +35 -0
- package/dist/ui/metadata.d.mts.map +1 -0
- package/dist/ui/metadata.mjs +100 -0
- package/dist/ui/metadata.mjs.map +1 -0
- package/dist/ui/router.cjs +56 -0
- package/dist/ui/router.cjs.map +1 -0
- package/dist/ui/router.d.cts +11 -0
- package/dist/ui/router.d.cts.map +1 -0
- package/dist/ui/router.d.mts +11 -0
- package/dist/ui/router.d.mts.map +1 -0
- package/dist/ui/router.mjs +51 -0
- package/dist/ui/router.mjs.map +1 -0
- package/dist/ui/runtime.cjs +65 -0
- package/dist/ui/runtime.cjs.map +1 -0
- package/dist/ui/runtime.d.cts +29 -0
- package/dist/ui/runtime.d.cts.map +1 -0
- package/dist/ui/runtime.d.mts +29 -0
- package/dist/ui/runtime.d.mts.map +1 -0
- package/dist/ui/runtime.mjs +53 -0
- package/dist/ui/runtime.mjs.map +1 -0
- package/dist/ui/types.cjs +0 -0
- package/dist/ui/types.d.cts +52 -0
- package/dist/ui/types.d.cts.map +1 -0
- package/dist/ui/types.d.mts +52 -0
- package/dist/ui/types.d.mts.map +1 -0
- package/dist/ui/types.mjs +1 -0
- package/dist/utils/banner.cjs +24 -0
- package/dist/utils/banner.cjs.map +1 -0
- package/dist/utils/banner.mjs +23 -0
- package/dist/utils/banner.mjs.map +1 -0
- package/dist/utils/linkify.cjs +15 -0
- package/dist/utils/linkify.cjs.map +1 -0
- package/dist/utils/linkify.mjs +14 -0
- package/dist/utils/linkify.mjs.map +1 -0
- package/dist/utils/run.cjs +40 -0
- package/dist/utils/run.cjs.map +1 -0
- package/dist/utils/run.mjs +39 -0
- package/dist/utils/run.mjs.map +1 -0
- package/dist/utils/theme.cjs +44 -0
- package/dist/utils/theme.cjs.map +1 -0
- package/dist/utils/theme.mjs +37 -0
- package/dist/utils/theme.mjs.map +1 -0
- package/package.json +269 -80
- package/src/api-contract.ts +309 -0
- package/src/api.ts +181 -0
- package/src/app.ts +346 -0
- package/src/cli/catalog.ts +49 -0
- package/src/cli/help.ts +13 -0
- package/src/cli/init.ts +415 -0
- package/src/cli/parse.ts +130 -0
- package/src/cli/prompts.ts +64 -0
- package/src/cli.ts +203 -1507
- package/src/components/dev-view.tsx +104 -41
- package/src/components/streaming-view.ts +89 -22
- package/src/config.ts +462 -532
- package/src/contract.meta.ts +96 -0
- package/src/contract.ts +164 -561
- package/src/dev-logs.ts +85 -0
- package/src/dev-session.ts +318 -0
- package/src/fastkv.ts +153 -0
- package/src/federation.server.ts +43 -0
- package/src/host.ts +526 -0
- package/src/index.ts +6 -3
- package/src/integrity.ts +54 -0
- package/src/mf.ts +105 -0
- package/src/near-cli.ts +284 -0
- package/src/network.ts +3 -0
- package/src/orchestrator.ts +648 -0
- package/src/plugin.ts +1116 -2303
- package/src/process-registry.ts +154 -0
- package/src/scripts/sync-api-contract.ts +24 -0
- package/src/sdk.ts +14 -0
- package/src/shared.ts +206 -0
- package/src/types.ts +152 -206
- package/src/ui/head.ts +34 -27
- package/src/ui/index.ts +3 -3
- package/src/ui/metadata.ts +95 -0
- package/src/ui/router.ts +22 -6
- package/src/ui/runtime.ts +55 -6
- package/src/ui/types.ts +24 -11
- package/src/utils/banner.ts +10 -6
- package/src/utils/run.ts +26 -27
- package/src/utils/theme.ts +3 -66
- package/src/components/monitor-view.tsx +0 -475
- package/src/components/status-view.tsx +0 -173
- package/src/lib/env.ts +0 -109
- package/src/lib/near-cli.ts +0 -289
- package/src/lib/nova.ts +0 -266
- package/src/lib/orchestrator.ts +0 -276
- package/src/lib/process-registry.ts +0 -166
- package/src/lib/process.ts +0 -549
- package/src/lib/resource-monitor/assertions.ts +0 -234
- package/src/lib/resource-monitor/command.ts +0 -283
- package/src/lib/resource-monitor/diff.ts +0 -157
- package/src/lib/resource-monitor/errors.ts +0 -127
- package/src/lib/resource-monitor/index.ts +0 -305
- package/src/lib/resource-monitor/platform/darwin.ts +0 -306
- package/src/lib/resource-monitor/platform/index.ts +0 -35
- package/src/lib/resource-monitor/platform/linux.ts +0 -332
- package/src/lib/resource-monitor/platform/windows.ts +0 -298
- package/src/lib/resource-monitor/snapshot.ts +0 -217
- package/src/lib/resource-monitor/types.ts +0 -74
- package/src/lib/session-recorder/errors.ts +0 -102
- package/src/lib/session-recorder/flows/login.ts +0 -210
- package/src/lib/session-recorder/index.ts +0 -361
- package/src/lib/session-recorder/playwright.ts +0 -257
- package/src/lib/session-recorder/report.ts +0 -353
- package/src/lib/session-recorder/server.ts +0 -267
- package/src/lib/session-recorder/types.ts +0 -115
- package/src/lib/sync.ts +0 -1
- 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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"}
|
package/dist/ui/head.cjs
ADDED
|
@@ -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"}
|
package/dist/ui/head.mjs
ADDED
|
@@ -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
|