olova 2.0.49 → 2.0.50

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.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Re-export @unpic/react for optimized image handling
3
+ * Usage: import { Image } from "olova/image";
4
+ */
5
+ export * from "@unpic/react";
6
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
package/dist/image.js ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Re-export @unpic/react for optimized image handling
3
+ * Usage: import { Image } from "olova/image";
4
+ */
5
+ export * from "@unpic/react";
6
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { OlovaConfig } from '../core/index.js';
2
+ export declare function loadOlovaConfig(): Promise<OlovaConfig>;
3
+ export declare function getConfig(): OlovaConfig;
4
+ export declare function setUserConfig(config: OlovaConfig): void;
5
+ export declare function getUserConfig(): OlovaConfig;
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAiD5D;AAED,wBAAgB,SAAS,IAAI,WAAW,CAgBvC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,QAEhD;AAED,wBAAgB,aAAa,IAAI,WAAW,CAE3C"}
@@ -0,0 +1,72 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { pathToFileURL } from 'url';
4
+ import { createRequire } from 'module';
5
+ let userConfig = {};
6
+ export async function loadOlovaConfig() {
7
+ const configPath = path.resolve(process.cwd(), 'olova.config.ts');
8
+ if (!fs.existsSync(configPath)) {
9
+ console.log(' ⚠ No olova.config.ts found, using defaults');
10
+ return {};
11
+ }
12
+ try {
13
+ const require = createRequire(import.meta.url);
14
+ const esbuild = require('esbuild');
15
+ const result = await esbuild.build({
16
+ entryPoints: [configPath],
17
+ bundle: true,
18
+ platform: 'node',
19
+ format: 'cjs',
20
+ write: false,
21
+ external: [
22
+ 'vite',
23
+ 'esbuild',
24
+ 'util', 'path', 'fs', 'url', 'os', 'crypto', 'stream', 'events',
25
+ 'buffer', 'querystring', 'http', 'https', 'net', 'tls', 'child_process',
26
+ 'cluster', 'dgram', 'dns', 'domain', 'readline', 'repl', 'tty', 'v8',
27
+ 'vm', 'zlib', 'assert', 'async_hooks', 'console', 'constants', 'module',
28
+ 'perf_hooks', 'process', 'string_decoder', 'timers', 'trace_events',
29
+ 'worker_threads',
30
+ ],
31
+ });
32
+ const code = result.outputFiles[0].text;
33
+ const tempPath = path.resolve(process.cwd(), '.olova/temp-config.cjs');
34
+ const olovaDir = path.resolve(process.cwd(), '.olova');
35
+ if (!fs.existsSync(olovaDir)) {
36
+ fs.mkdirSync(olovaDir, { recursive: true });
37
+ }
38
+ fs.writeFileSync(tempPath, code);
39
+ const mod = await import(pathToFileURL(tempPath).href);
40
+ fs.unlinkSync(tempPath);
41
+ userConfig = mod.default?.default || mod.default || {};
42
+ return userConfig;
43
+ }
44
+ catch (err) {
45
+ console.error(' ⚠ Failed to load olova.config.ts:', err.message);
46
+ return {};
47
+ }
48
+ }
49
+ export function getConfig() {
50
+ return {
51
+ outDir: '.olova/dist',
52
+ basePath: '/',
53
+ trailingSlash: false,
54
+ experimental: {
55
+ prefetch: true,
56
+ ...userConfig.experimental,
57
+ },
58
+ staticGeneration: {
59
+ timeout: 30000,
60
+ fallback: 'blocking',
61
+ ...userConfig.staticGeneration,
62
+ },
63
+ ...userConfig,
64
+ };
65
+ }
66
+ export function setUserConfig(config) {
67
+ userConfig = config;
68
+ }
69
+ export function getUserConfig() {
70
+ return userConfig;
71
+ }
72
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare const HTML_MINIFY_OPTIONS: {
2
+ collapseWhitespace: boolean;
3
+ removeComments: boolean;
4
+ removeRedundantAttributes: boolean;
5
+ removeScriptTypeAttributes: boolean;
6
+ removeStyleLinkTypeAttributes: boolean;
7
+ useShortDoctype: boolean;
8
+ minifyCSS: boolean;
9
+ minifyJS: boolean;
10
+ sortAttributes: boolean;
11
+ sortClassName: boolean;
12
+ };
13
+ export declare const ENTRY_CLIENT_CODE = "\nimport React from 'react';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\nimport { Router, HeadProvider } from 'olova/client';\nimport { routes } from 'virtual:olova-routes';\nimport Layout from '@/layout';\n\n// Global CSS imports (auto-detected from src directory)\nimport '@/index.css';\n\nfunction getOlovaData() {\n if (typeof document === 'undefined') return null;\n try {\n const script = document.getElementById('__OLOVA_DATA__');\n if (!script) return null;\n return JSON.parse(script.textContent || '{}');\n } catch (error) {\n console.error('[Olova] Failed to parse __OLOVA_DATA__:', error);\n return null;\n }\n}\n\nfunction getFlightPayload() {\n try {\n const olovaData = getOlovaData();\n if (olovaData?.flight && olovaData.flight.v === 1) {\n return olovaData.flight;\n }\n return null;\n } catch (error) {\n console.error('[Olova] Failed to parse Flight payload:', error);\n return null;\n }\n}\n\nfunction progressiveHydrate(rootElement, app, payload) {\n try {\n hydrateRoot(rootElement, app, {\n onRecoverableError(error) {\n console.warn('[Olova] Hydration mismatch:', error);\n },\n });\n requestAnimationFrame(() => {\n document.documentElement.classList.add('olova-hydrated');\n window.dispatchEvent(new CustomEvent('olova:ready'));\n });\n } catch (error) {\n console.error('[Olova] Hydration failed:', error);\n createRoot(rootElement).render(app);\n }\n}\n\nwindow.__OLOVA_ROUTES__ = routes;\n\nconst App = () => React.createElement(\n HeadProvider,\n null,\n React.createElement(\n Layout,\n null,\n React.createElement(Router, { routes: routes })\n )\n);\n\nconst rootElement = document.getElementById('root');\nconst flightPayload = getFlightPayload();\nconst hasServerContent = rootElement.innerHTML.trim().length > 0;\n\nif (hasServerContent) {\n console.log('[Olova] Hydrating');\n progressiveHydrate(rootElement, React.createElement(App), flightPayload);\n} else {\n console.log('[Olova] Client-side rendering');\n createRoot(rootElement).render(React.createElement(App));\n requestAnimationFrame(() => {\n document.documentElement.classList.add('olova-hydrated');\n window.dispatchEvent(new CustomEvent('olova:ready'));\n });\n}\n\nif (import.meta.hot) {\n import.meta.hot.accept();\n}\n";
14
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/plugin/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAW/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,2zEAmF7B,CAAC"}
@@ -0,0 +1,99 @@
1
+ export const HTML_MINIFY_OPTIONS = {
2
+ collapseWhitespace: true,
3
+ removeComments: true,
4
+ removeRedundantAttributes: true,
5
+ removeScriptTypeAttributes: true,
6
+ removeStyleLinkTypeAttributes: true,
7
+ useShortDoctype: true,
8
+ minifyCSS: true,
9
+ minifyJS: true,
10
+ sortAttributes: true,
11
+ sortClassName: true,
12
+ };
13
+ // Virtual entry-client code - served by the plugin
14
+ // Using React.createElement instead of JSX to avoid transform issues
15
+ export const ENTRY_CLIENT_CODE = `
16
+ import React from 'react';
17
+ import { createRoot, hydrateRoot } from 'react-dom/client';
18
+ import { Router, HeadProvider } from 'olova/client';
19
+ import { routes } from 'virtual:olova-routes';
20
+ import Layout from '@/layout';
21
+
22
+ // Global CSS imports (auto-detected from src directory)
23
+ import '@/index.css';
24
+
25
+ function getOlovaData() {
26
+ if (typeof document === 'undefined') return null;
27
+ try {
28
+ const script = document.getElementById('__OLOVA_DATA__');
29
+ if (!script) return null;
30
+ return JSON.parse(script.textContent || '{}');
31
+ } catch (error) {
32
+ console.error('[Olova] Failed to parse __OLOVA_DATA__:', error);
33
+ return null;
34
+ }
35
+ }
36
+
37
+ function getFlightPayload() {
38
+ try {
39
+ const olovaData = getOlovaData();
40
+ if (olovaData?.flight && olovaData.flight.v === 1) {
41
+ return olovaData.flight;
42
+ }
43
+ return null;
44
+ } catch (error) {
45
+ console.error('[Olova] Failed to parse Flight payload:', error);
46
+ return null;
47
+ }
48
+ }
49
+
50
+ function progressiveHydrate(rootElement, app, payload) {
51
+ try {
52
+ hydrateRoot(rootElement, app, {
53
+ onRecoverableError(error) {
54
+ console.warn('[Olova] Hydration mismatch:', error);
55
+ },
56
+ });
57
+ requestAnimationFrame(() => {
58
+ document.documentElement.classList.add('olova-hydrated');
59
+ window.dispatchEvent(new CustomEvent('olova:ready'));
60
+ });
61
+ } catch (error) {
62
+ console.error('[Olova] Hydration failed:', error);
63
+ createRoot(rootElement).render(app);
64
+ }
65
+ }
66
+
67
+ window.__OLOVA_ROUTES__ = routes;
68
+
69
+ const App = () => React.createElement(
70
+ HeadProvider,
71
+ null,
72
+ React.createElement(
73
+ Layout,
74
+ null,
75
+ React.createElement(Router, { routes: routes })
76
+ )
77
+ );
78
+
79
+ const rootElement = document.getElementById('root');
80
+ const flightPayload = getFlightPayload();
81
+ const hasServerContent = rootElement.innerHTML.trim().length > 0;
82
+
83
+ if (hasServerContent) {
84
+ console.log('[Olova] Hydrating');
85
+ progressiveHydrate(rootElement, React.createElement(App), flightPayload);
86
+ } else {
87
+ console.log('[Olova] Client-side rendering');
88
+ createRoot(rootElement).render(React.createElement(App));
89
+ requestAnimationFrame(() => {
90
+ document.documentElement.classList.add('olova-hydrated');
91
+ window.dispatchEvent(new CustomEvent('olova:ready'));
92
+ });
93
+ }
94
+
95
+ if (import.meta.hot) {
96
+ import.meta.hot.accept();
97
+ }
98
+ `;
99
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/plugin/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,yBAAyB,EAAE,IAAI;IAC/B,0BAA0B,EAAE,IAAI;IAChC,6BAA6B,EAAE,IAAI;IACnC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,mDAAmD;AACnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PageMetadata } from './types.js';
2
+ export declare function generateHtmlTemplate(content: string, scriptPath: string, cssLinks?: string[], pageData?: any, metadata?: PageMetadata, flightPayload?: any): string;
3
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/plugin/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAM,EAAO,EACvB,QAAQ,CAAC,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,YAAY,EACvB,aAAa,CAAC,EAAE,GAAG,UA+EpB"}
@@ -0,0 +1,83 @@
1
+ export function generateHtmlTemplate(content, scriptPath, cssLinks = [], pageData, metadata, flightPayload) {
2
+ let metaTags = '';
3
+ if (metadata) {
4
+ if (metadata.description) {
5
+ metaTags += ` <meta name="description" content="${metadata.description}" />\n`;
6
+ }
7
+ if (metadata.keywords) {
8
+ metaTags += ` <meta name="keywords" content="${metadata.keywords}" />\n`;
9
+ }
10
+ if (metadata.author) {
11
+ metaTags += ` <meta name="author" content="${metadata.author}" />\n`;
12
+ }
13
+ if (metadata.robots) {
14
+ metaTags += ` <meta name="robots" content="${metadata.robots}" />\n`;
15
+ }
16
+ if (metadata.canonical) {
17
+ metaTags += ` <link rel="canonical" href="${metadata.canonical}" />\n`;
18
+ }
19
+ if (metadata.openGraph) {
20
+ const og = metadata.openGraph;
21
+ if (og.title)
22
+ metaTags += ` <meta property="og:title" content="${og.title}" />\n`;
23
+ if (og.description)
24
+ metaTags += ` <meta property="og:description" content="${og.description}" />\n`;
25
+ if (og.type)
26
+ metaTags += ` <meta property="og:type" content="${og.type}" />\n`;
27
+ if (og.url)
28
+ metaTags += ` <meta property="og:url" content="${og.url}" />\n`;
29
+ if (og.image)
30
+ metaTags += ` <meta property="og:image" content="${og.image}" />\n`;
31
+ }
32
+ if (metadata.twitter) {
33
+ const tw = metadata.twitter;
34
+ if (tw.card)
35
+ metaTags += ` <meta name="twitter:card" content="${tw.card}" />\n`;
36
+ if (tw.site)
37
+ metaTags += ` <meta name="twitter:site" content="${tw.site}" />\n`;
38
+ if (tw.title)
39
+ metaTags += ` <meta name="twitter:title" content="${tw.title}" />\n`;
40
+ if (tw.description)
41
+ metaTags += ` <meta name="twitter:description" content="${tw.description}" />\n`;
42
+ if (tw.image)
43
+ metaTags += ` <meta name="twitter:image" content="${tw.image}" />\n`;
44
+ }
45
+ }
46
+ const buildId = Date.now().toString(36);
47
+ const olovaData = {
48
+ props: {
49
+ pageProps: pageData || {},
50
+ },
51
+ page: flightPayload?.route || '/',
52
+ query: {},
53
+ buildId,
54
+ flight: flightPayload || null,
55
+ runtimeConfig: {},
56
+ isFallback: false,
57
+ gsp: !!pageData,
58
+ gssp: false,
59
+ };
60
+ const olovaDataScript = `<script id="__OLOVA_DATA__" type="application/json">${JSON.stringify(olovaData)
61
+ .replace(/</g, '\\u003c')
62
+ .replace(/>/g, '\\u003e')
63
+ .replace(/&/g, '\\u0026')
64
+ .replace(/'/g, '\\u0027')}</script>`;
65
+ // Generate CSS link tags
66
+ const cssLinkTags = cssLinks.length > 0
67
+ ? cssLinks.map(href => ` <link rel="stylesheet" href="${href}" />`).join('\n')
68
+ : '';
69
+ return `<!DOCTYPE html>
70
+ <html lang="en">
71
+ <head>
72
+ <meta charset="UTF-8" />
73
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
74
+ <title>${metadata?.title || 'Olova App'}</title>
75
+ ${metaTags}${cssLinkTags ? cssLinkTags + '\n' : ''} </head>
76
+ <body>
77
+ <div id="root">${content}</div>
78
+ ${olovaDataScript}
79
+ <script type="module" src="${scriptPath}"></script>
80
+ </body>
81
+ </html>`;
82
+ }
83
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/plugin/html.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,3 @@
1
1
  import type { Plugin } from 'vite';
2
- export interface PageMetadata {
3
- title?: string;
4
- description?: string;
5
- keywords?: string;
6
- author?: string;
7
- openGraph?: {
8
- title?: string;
9
- description?: string;
10
- type?: string;
11
- url?: string;
12
- image?: string;
13
- };
14
- twitter?: {
15
- card?: string;
16
- site?: string;
17
- title?: string;
18
- description?: string;
19
- image?: string;
20
- };
21
- robots?: string;
22
- canonical?: string;
23
- }
24
2
  export declare function olova(): Plugin;
25
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AA2GnD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgLD,wBAAgB,KAAK,IAAI,MAAM,CA6c9B"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AA+BnD,wBAAgB,KAAK,IAAI,MAAM,CA0X9B"}