frontend-hamroun 1.2.84 → 1.2.88
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/dist/batch.d.ts +4 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +22 -0
- package/dist/client-router.d.ts +61 -0
- package/dist/client-router.d.ts.map +1 -0
- package/dist/client-router.js +209 -0
- package/dist/component.d.ts +15 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +84 -0
- package/dist/components/Counter.d.ts +1 -0
- package/dist/components/Counter.d.ts.map +1 -0
- package/dist/components/Counter.js +2 -0
- package/dist/context.d.ts +5 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +23 -0
- package/dist/event-bus.d.ts +24 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +74 -0
- package/dist/forms.d.ts +41 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +147 -0
- package/dist/hooks.d.ts +12 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +142 -0
- package/dist/index.cjs +1118 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.client.d.ts +13 -0
- package/dist/index.client.d.ts.map +1 -0
- package/dist/index.client.js +12 -25
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1040 -264
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.cjs +102 -0
- package/dist/jsx-dev-runtime.cjs.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +3 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.js +96 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime/jsx-runtime.d.ts +5 -0
- package/dist/jsx-runtime/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime/jsx-runtime.js +40 -0
- package/dist/jsx-runtime.cjs +112 -1
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.d.ts +18 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +90 -79
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/lifecycle-events.d.ts +109 -0
- package/dist/lifecycle-events.d.ts.map +1 -0
- package/dist/lifecycle-events.js +176 -0
- package/dist/renderComponent.d.ts +14 -0
- package/dist/renderComponent.d.ts.map +1 -0
- package/dist/renderComponent.js +29 -0
- package/dist/renderer.d.ts +4 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +49 -0
- package/dist/router.d.ts +56 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +165 -0
- package/dist/server-renderer.d.ts +2 -0
- package/dist/server-renderer.d.ts.map +1 -0
- package/dist/server-renderer.js +111 -5
- package/dist/server-types.d.ts +43 -0
- package/dist/server-types.d.ts.map +1 -0
- package/dist/server-types.js +5 -0
- package/dist/store.d.ts +42 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +98 -0
- package/dist/types.d.ts +272 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts +47 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +143 -0
- package/dist/vdom.d.ts +9 -0
- package/dist/vdom.d.ts.map +1 -0
- package/dist/vdom.js +21 -0
- package/dist/wasm.d.ts +37 -0
- package/dist/wasm.d.ts.map +1 -0
- package/dist/wasm.js +158 -0
- package/package.json +54 -83
- package/templates/basic-app/build.d.ts +2 -0
- package/templates/basic-app/build.d.ts.map +1 -0
- package/templates/basic-app/dev.d.ts +2 -0
- package/templates/basic-app/dev.d.ts.map +1 -0
- package/templates/basic-app/esbuild.config.d.ts +2 -0
- package/templates/basic-app/esbuild.config.d.ts.map +1 -0
- package/templates/basic-app/postcss.config.d.ts +8 -0
- package/templates/basic-app/postcss.config.d.ts.map +1 -0
- package/templates/basic-app/server.d.ts +2 -0
- package/templates/basic-app/server.d.ts.map +1 -0
- package/templates/basic-app/src/App.d.ts +2 -0
- package/templates/basic-app/src/App.d.ts.map +1 -0
- package/templates/basic-app/src/App.js +148 -0
- package/templates/basic-app/src/client.d.ts +2 -0
- package/templates/basic-app/src/client.d.ts.map +1 -0
- package/templates/basic-app/src/client.js +6 -0
- package/templates/basic-app/src/components/Counter.d.ts +4 -0
- package/templates/basic-app/src/components/Counter.d.ts.map +1 -0
- package/templates/basic-app/src/components/Counter.js +9 -0
- package/templates/basic-app/src/jsx-shim.d.ts +8 -0
- package/templates/basic-app/src/jsx-shim.d.ts.map +1 -0
- package/templates/basic-app/src/main.d.ts +2 -0
- package/templates/basic-app/src/main.d.ts.map +1 -0
- package/templates/basic-app/src/main.js +57 -0
- package/templates/basic-app/src/server.d.ts +2 -0
- package/templates/basic-app/src/server.d.ts.map +1 -0
- package/templates/basic-app/tailwind.config.d.ts +9 -0
- package/templates/basic-app/tailwind.config.d.ts.map +1 -0
- package/templates/basic-app/vite.config.d.ts +3 -0
- package/templates/basic-app/vite.config.d.ts.map +1 -0
- package/templates/basic-app/vite.config.js +7 -0
- package/templates/complete-app/api/hello.d.ts +1 -0
- package/templates/complete-app/api/hello.d.ts.map +1 -0
- package/templates/complete-app/client.d.ts +2 -0
- package/templates/complete-app/client.d.ts.map +1 -0
- package/templates/complete-app/lib/frontend-hamroun.d.ts +18 -0
- package/templates/complete-app/lib/frontend-hamroun.d.ts.map +1 -0
- package/templates/complete-app/pages/about.d.ts +7 -0
- package/templates/complete-app/pages/about.d.ts.map +1 -0
- package/templates/complete-app/pages/index.d.ts +7 -0
- package/templates/complete-app/pages/index.d.ts.map +1 -0
- package/templates/complete-app/pages/wasm-demo.d.ts +7 -0
- package/templates/complete-app/pages/wasm-demo.d.ts.map +1 -0
- package/templates/complete-app/public/client.d.ts +17 -0
- package/templates/complete-app/public/client.d.ts.map +1 -0
- package/templates/complete-app/server.d.ts +2 -0
- package/templates/complete-app/server.d.ts.map +1 -0
- package/templates/complete-app/server.js +236 -218
- package/templates/complete-app/src/App.d.ts +2 -0
- package/templates/complete-app/src/App.d.ts.map +1 -0
- package/templates/complete-app/src/App.js +27 -0
- package/templates/complete-app/src/client.d.ts +2 -0
- package/templates/complete-app/src/client.d.ts.map +1 -0
- package/templates/complete-app/src/client.js +52 -0
- package/templates/complete-app/src/pages/index.d.ts +2 -0
- package/templates/complete-app/src/pages/index.d.ts.map +1 -0
- package/templates/complete-app/src/pages/index.js +19 -0
- package/templates/complete-app/src/server.d.ts +2 -0
- package/templates/complete-app/src/server.d.ts.map +1 -0
- package/templates/complete-app/src/server.js +192 -0
- package/templates/complete-app/vite.config.d.ts +3 -0
- package/templates/complete-app/vite.config.d.ts.map +1 -0
- package/templates/complete-app/vite.config.js +29 -57
- package/templates/fullstack-app/api/hello.d.ts +4 -0
- package/templates/fullstack-app/api/hello.d.ts.map +1 -0
- package/templates/fullstack-app/api/hello.js +14 -11
- package/templates/fullstack-app/api/users/[id].d.ts +5 -0
- package/templates/fullstack-app/api/users/[id].d.ts.map +1 -0
- package/templates/fullstack-app/api/users/[id].js +52 -0
- package/templates/fullstack-app/api/users/index.d.ts +4 -0
- package/templates/fullstack-app/api/users/index.d.ts.map +1 -0
- package/templates/fullstack-app/api/users/index.js +25 -0
- package/templates/fullstack-app/build/main.d.ts +211 -0
- package/templates/fullstack-app/build/main.d.ts.map +1 -0
- package/templates/fullstack-app/build.d.ts +2 -0
- package/templates/fullstack-app/build.d.ts.map +1 -0
- package/templates/fullstack-app/build.js +190 -0
- package/templates/fullstack-app/postcss.config.d.ts +5 -0
- package/templates/fullstack-app/postcss.config.d.ts.map +1 -0
- package/templates/fullstack-app/process-tailwind.d.ts +2 -0
- package/templates/fullstack-app/process-tailwind.d.ts.map +1 -0
- package/templates/fullstack-app/public/route-handler.d.ts +1 -0
- package/templates/fullstack-app/public/route-handler.d.ts.map +1 -0
- package/templates/fullstack-app/server.d.ts +2 -0
- package/templates/fullstack-app/server.d.ts.map +1 -0
- package/templates/fullstack-app/server.js +428 -266
- package/templates/fullstack-app/src/client.d.ts +2 -0
- package/templates/fullstack-app/src/client.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/ClientHome.d.ts +1 -0
- package/templates/fullstack-app/src/components/ClientHome.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/ClientHome.js +1 -0
- package/templates/fullstack-app/src/components/ErrorBoundary.d.ts +7 -0
- package/templates/fullstack-app/src/components/ErrorBoundary.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/ErrorBoundary.js +12 -0
- package/templates/fullstack-app/src/components/Layout.d.ts +7 -0
- package/templates/fullstack-app/src/components/Layout.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/Layout.js +4 -0
- package/templates/fullstack-app/src/components/StateDemo.d.ts +2 -0
- package/templates/fullstack-app/src/components/StateDemo.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/StateDemo.js +86 -0
- package/templates/fullstack-app/src/components/UserList.d.ts +11 -0
- package/templates/fullstack-app/src/components/UserList.d.ts.map +1 -0
- package/templates/fullstack-app/src/components/UserList.js +7 -0
- package/templates/fullstack-app/src/config.d.ts +29 -0
- package/templates/fullstack-app/src/config.d.ts.map +1 -0
- package/templates/fullstack-app/src/config.js +36 -0
- package/templates/fullstack-app/src/data/api.d.ts +35 -0
- package/templates/fullstack-app/src/data/api.d.ts.map +1 -0
- package/templates/fullstack-app/src/data/api.js +173 -0
- package/templates/fullstack-app/src/main.d.ts +7 -0
- package/templates/fullstack-app/src/main.d.ts.map +1 -0
- package/templates/fullstack-app/src/main.js +130 -0
- package/templates/fullstack-app/src/middleware.d.ts +10 -0
- package/templates/fullstack-app/src/middleware.d.ts.map +1 -0
- package/templates/fullstack-app/src/middleware.js +14 -0
- package/templates/fullstack-app/src/pages/404.d.ts +4 -0
- package/templates/fullstack-app/src/pages/404.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/404.js +4 -0
- package/templates/fullstack-app/src/pages/[id].d.ts +1 -0
- package/templates/fullstack-app/src/pages/[id].d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/[id].js +1 -0
- package/templates/fullstack-app/src/pages/_app.d.ts +6 -0
- package/templates/fullstack-app/src/pages/_app.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/_app.js +6 -0
- package/templates/fullstack-app/src/pages/_document.d.ts +7 -0
- package/templates/fullstack-app/src/pages/_document.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/_document.js +4 -0
- package/templates/fullstack-app/src/pages/_error.d.ts +4 -0
- package/templates/fullstack-app/src/pages/_error.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/_error.js +8 -0
- package/templates/fullstack-app/src/pages/about/index.d.ts +5 -0
- package/templates/fullstack-app/src/pages/about/index.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/about/index.js +6 -0
- package/templates/fullstack-app/src/pages/about.d.ts +10 -0
- package/templates/fullstack-app/src/pages/about.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/about.js +21 -0
- package/templates/fullstack-app/src/pages/api/users/[id].d.ts +6 -0
- package/templates/fullstack-app/src/pages/api/users/[id].d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/api/users/[id].js +51 -0
- package/templates/fullstack-app/src/pages/api/users/index.d.ts +4 -0
- package/templates/fullstack-app/src/pages/api/users/index.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/api/users/index.js +33 -0
- package/templates/fullstack-app/src/pages/index.d.ts +21 -0
- package/templates/fullstack-app/src/pages/index.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/index.js +66 -0
- package/templates/fullstack-app/src/pages/users/[id].d.ts +38 -0
- package/templates/fullstack-app/src/pages/users/[id].d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/users/[id].js +79 -0
- package/templates/fullstack-app/src/pages/users.d.ts +14 -0
- package/templates/fullstack-app/src/pages/users.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/users.js +14 -0
- package/templates/fullstack-app/src/pages/wasm-demo.d.ts +1 -0
- package/templates/fullstack-app/src/pages/wasm-demo.d.ts.map +1 -0
- package/templates/fullstack-app/src/pages/wasm-demo.js +2 -0
- package/templates/fullstack-app/src/router.d.ts +22 -0
- package/templates/fullstack-app/src/router.d.ts.map +1 -0
- package/templates/fullstack-app/src/router.js +210 -0
- package/templates/fullstack-app/tailwind.config.d.ts +3 -0
- package/templates/fullstack-app/tailwind.config.d.ts.map +1 -0
- package/templates/fullstack-app/vite.config.d.ts +3 -0
- package/templates/fullstack-app/vite.config.d.ts.map +1 -0
- package/templates/ssr-template/dist/client/assets/main-D-VH3xOb.d.ts +2 -0
- package/templates/ssr-template/dist/client/assets/main-D-VH3xOb.d.ts.map +1 -0
- package/templates/ssr-template/dist/client.d.ts +85 -0
- package/templates/ssr-template/dist/client.d.ts.map +1 -0
- package/templates/ssr-template/dist/server.d.ts +2 -0
- package/templates/ssr-template/dist/server.d.ts.map +1 -0
- package/templates/ssr-template/esbuild.config.d.ts +2 -0
- package/templates/ssr-template/esbuild.config.d.ts.map +1 -0
- package/templates/ssr-template/jsx-shim.d.ts +2 -0
- package/templates/ssr-template/jsx-shim.d.ts.map +1 -0
- package/templates/ssr-template/src/App.d.ts +2 -0
- package/templates/ssr-template/src/App.d.ts.map +1 -0
- package/templates/ssr-template/src/App.js +625 -0
- package/templates/ssr-template/src/client.d.ts +2 -0
- package/templates/ssr-template/src/client.d.ts.map +1 -0
- package/templates/ssr-template/src/client.js +3 -0
- package/templates/ssr-template/src/server.d.ts +2 -0
- package/templates/ssr-template/src/server.d.ts.map +1 -0
- package/templates/ssr-template/src/server.js +29 -0
- package/templates/ssr-template/vite.config.d.ts +3 -0
- package/templates/ssr-template/vite.config.d.ts.map +1 -0
- package/templates/ssr-template/vite.config.js +30 -0
- package/templates/wasm/build-wasm.d.ts +2 -0
- package/templates/wasm/build-wasm.d.ts.map +1 -0
- package/templates/wasm/dist/assets/index-BNqTDBdE.d.ts +30 -0
- package/templates/wasm/dist/assets/index-BNqTDBdE.d.ts.map +1 -0
- package/templates/wasm/dist/wasm_exec.d.ts +1 -0
- package/templates/wasm/dist/wasm_exec.d.ts.map +1 -0
- package/templates/wasm/esbuild.config.d.ts +2 -0
- package/templates/wasm/esbuild.config.d.ts.map +1 -0
- package/templates/wasm/go/wasm_exec.d.ts +1 -0
- package/templates/wasm/go/wasm_exec.d.ts.map +1 -0
- package/templates/wasm/jsx-shim.d.ts +5 -0
- package/templates/wasm/jsx-shim.d.ts.map +1 -0
- package/templates/wasm/public/wasm_exec.d.ts +1 -0
- package/templates/wasm/public/wasm_exec.d.ts.map +1 -0
- package/templates/wasm/src/App.d.ts +2 -0
- package/templates/wasm/src/App.d.ts.map +1 -0
- package/templates/wasm/src/App.js +381 -0
- package/templates/wasm/src/client.d.ts +2 -0
- package/templates/wasm/src/client.d.ts.map +1 -0
- package/templates/wasm/src/client.js +210 -0
- package/templates/wasm/src/index.d.ts +2 -0
- package/templates/wasm/src/index.d.ts.map +1 -0
- package/templates/wasm/src/index.js +20 -0
- package/templates/wasm/src/server.d.ts +2 -0
- package/templates/wasm/src/server.d.ts.map +1 -0
- package/templates/wasm/src/server.js +131 -0
- package/templates/wasm/vite.config.d.ts +3 -0
- package/templates/wasm/vite.config.d.ts.map +1 -0
- package/templates/wasm/vite.config.js +36 -0
- package/templates/wasm/wasm-loader.d.ts +6 -0
- package/templates/wasm/wasm-loader.d.ts.map +1 -0
- package/dist/index.client.cjs +0 -2
- package/dist/index.client.cjs.map +0 -1
- package/dist/index.client.js.map +0 -1
- package/dist/renderer-DaVfBeVi.cjs +0 -2
- package/dist/renderer-DaVfBeVi.cjs.map +0 -1
- package/dist/renderer-nfT7XSpo.js +0 -61
- package/dist/renderer-nfT7XSpo.js.map +0 -1
- package/dist/server-renderer-B5b0Q0ck.cjs +0 -2
- package/dist/server-renderer-B5b0Q0ck.cjs.map +0 -1
- package/dist/server-renderer-C4MB-jAp.js +0 -248
- package/dist/server-renderer-C4MB-jAp.js.map +0 -1
- package/dist/server-renderer.cjs +0 -2
- package/dist/server-renderer.cjs.map +0 -1
- package/dist/server-renderer.js.map +0 -1
@@ -0,0 +1,192 @@
|
|
1
|
+
import express from 'express';
|
2
|
+
import path from 'path';
|
3
|
+
import { fileURLToPath } from 'url';
|
4
|
+
import { renderToString, jsx } from 'frontend-hamroun';
|
5
|
+
import fs from 'fs';
|
6
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
7
|
+
const app = express();
|
8
|
+
const port = 3000;
|
9
|
+
// Find the client entry file
|
10
|
+
const getClientEntry = () => {
|
11
|
+
const assetsDir = path.join(__dirname, './');
|
12
|
+
const files = fs.readdirSync(assetsDir);
|
13
|
+
return files.find(file => file.startsWith("client") && file.endsWith('.js'));
|
14
|
+
};
|
15
|
+
// Serve static files from dist/assets
|
16
|
+
app.use('/assets', express.static(path.join(__dirname, './')));
|
17
|
+
// Serve static files from dist
|
18
|
+
app.use(express.static(path.join(__dirname, 'dist')));
|
19
|
+
// Auto-routing middleware - scans the pages directory for components
|
20
|
+
const getPagesDirectory = () => {
|
21
|
+
return path.join(__dirname, 'pages');
|
22
|
+
};
|
23
|
+
// Helper to check if a file exists
|
24
|
+
const fileExists = async (filePath) => {
|
25
|
+
try {
|
26
|
+
await fs.promises.access(filePath);
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
catch {
|
30
|
+
return false;
|
31
|
+
}
|
32
|
+
};
|
33
|
+
// Map URL path to component path
|
34
|
+
const getComponentPath = async (urlPath) => {
|
35
|
+
const pagesDir = getPagesDirectory();
|
36
|
+
// Handle root path
|
37
|
+
if (urlPath === '/') {
|
38
|
+
const indexPath = path.join(pagesDir, 'index.js');
|
39
|
+
if (await fileExists(indexPath)) {
|
40
|
+
return {
|
41
|
+
componentPath: indexPath,
|
42
|
+
params: {}
|
43
|
+
};
|
44
|
+
}
|
45
|
+
}
|
46
|
+
// Try direct match (e.g., /about -> /pages/about.js)
|
47
|
+
const directPath = path.join(pagesDir, `${urlPath.slice(1)}.js`);
|
48
|
+
if (await fileExists(directPath)) {
|
49
|
+
return {
|
50
|
+
componentPath: directPath,
|
51
|
+
params: {}
|
52
|
+
};
|
53
|
+
}
|
54
|
+
// Try directory index (e.g., /about -> /pages/about/index.js)
|
55
|
+
const dirIndexPath = path.join(pagesDir, urlPath.slice(1), 'index.js');
|
56
|
+
if (await fileExists(dirIndexPath)) {
|
57
|
+
return {
|
58
|
+
componentPath: dirIndexPath,
|
59
|
+
params: {}
|
60
|
+
};
|
61
|
+
}
|
62
|
+
// Look for dynamic routes (with [param] in filename)
|
63
|
+
const segments = urlPath.split('/').filter(Boolean);
|
64
|
+
const dynamicRoutes = [];
|
65
|
+
// Recursively scan pages directory for all files
|
66
|
+
const scanDir = (dir, basePath = '') => {
|
67
|
+
const items = fs.readdirSync(dir, { withFileTypes: true });
|
68
|
+
for (const item of items) {
|
69
|
+
const itemPath = path.join(dir, item.name);
|
70
|
+
const routePath = path.join(basePath, item.name);
|
71
|
+
if (item.isDirectory()) {
|
72
|
+
scanDir(itemPath, routePath);
|
73
|
+
}
|
74
|
+
else if (item.name.endsWith('.js') && item.name.includes('[')) {
|
75
|
+
// This is a dynamic route file
|
76
|
+
const urlPattern = routePath
|
77
|
+
.replace(/\.js$/, '')
|
78
|
+
.replace(/\[([^\]]+)\]/g, ':$1');
|
79
|
+
dynamicRoutes.push({
|
80
|
+
pattern: urlPattern,
|
81
|
+
componentPath: itemPath
|
82
|
+
});
|
83
|
+
}
|
84
|
+
}
|
85
|
+
};
|
86
|
+
scanDir(pagesDir);
|
87
|
+
// Check if any dynamic routes match
|
88
|
+
for (const route of dynamicRoutes) {
|
89
|
+
const routeSegments = route.pattern.split('/').filter(Boolean);
|
90
|
+
if (routeSegments.length !== segments.length)
|
91
|
+
continue;
|
92
|
+
const params = {};
|
93
|
+
let matches = true;
|
94
|
+
for (let i = 0; i < segments.length; i++) {
|
95
|
+
const routeSeg = routeSegments[i];
|
96
|
+
const urlSeg = segments[i];
|
97
|
+
if (routeSeg.startsWith(':')) {
|
98
|
+
// This is a parameter
|
99
|
+
const paramName = routeSeg.slice(1);
|
100
|
+
params[paramName] = urlSeg;
|
101
|
+
}
|
102
|
+
else if (routeSeg !== urlSeg) {
|
103
|
+
matches = false;
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
if (matches) {
|
108
|
+
return {
|
109
|
+
componentPath: route.componentPath,
|
110
|
+
params
|
111
|
+
};
|
112
|
+
}
|
113
|
+
}
|
114
|
+
// No match found
|
115
|
+
return null;
|
116
|
+
};
|
117
|
+
// Handle all routes with auto-routing
|
118
|
+
app.get('*', async (req, res) => {
|
119
|
+
try {
|
120
|
+
const clientEntry = getClientEntry();
|
121
|
+
const routeResult = await getComponentPath(req.path);
|
122
|
+
if (!routeResult) {
|
123
|
+
return res.status(404).send(`
|
124
|
+
<!DOCTYPE html>
|
125
|
+
<html>
|
126
|
+
<head>
|
127
|
+
<title>404 - Page Not Found</title>
|
128
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
129
|
+
</head>
|
130
|
+
<body>
|
131
|
+
<div id="root">
|
132
|
+
<h1>404 - Page Not Found</h1>
|
133
|
+
<p>The page you requested could not be found.</p>
|
134
|
+
</div>
|
135
|
+
<script type="module" src="/assets/${clientEntry}"></script>
|
136
|
+
</body>
|
137
|
+
</html>
|
138
|
+
`);
|
139
|
+
}
|
140
|
+
// Import the component dynamically
|
141
|
+
const { default: PageComponent } = await import(routeResult.componentPath);
|
142
|
+
if (!PageComponent) {
|
143
|
+
throw new Error(`Invalid component in ${routeResult.componentPath}`);
|
144
|
+
}
|
145
|
+
// Render the component with params
|
146
|
+
const html = await renderToString(jsx(PageComponent, { params: routeResult.params }));
|
147
|
+
// Create route data for client hydration
|
148
|
+
const initialState = {
|
149
|
+
route: req.path,
|
150
|
+
params: routeResult.params,
|
151
|
+
timestamp: new Date().toISOString()
|
152
|
+
};
|
153
|
+
res.send(`
|
154
|
+
<!DOCTYPE html>
|
155
|
+
<html>
|
156
|
+
<head>
|
157
|
+
<title>Frontend Hamroun SSR</title>
|
158
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
159
|
+
<meta charset="UTF-8">
|
160
|
+
</head>
|
161
|
+
<body>
|
162
|
+
<div id="root">${html}</div>
|
163
|
+
<script>window.__INITIAL_STATE__ = ${JSON.stringify(initialState)}</script>
|
164
|
+
<script type="module" src="/assets/${clientEntry}"></script>
|
165
|
+
</body>
|
166
|
+
</html>
|
167
|
+
`);
|
168
|
+
}
|
169
|
+
catch (error) {
|
170
|
+
console.error('Rendering error:', error);
|
171
|
+
res.status(500).send(`
|
172
|
+
<!DOCTYPE html>
|
173
|
+
<html>
|
174
|
+
<head>
|
175
|
+
<title>500 - Server Error</title>
|
176
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
177
|
+
</head>
|
178
|
+
<body>
|
179
|
+
<div id="root">
|
180
|
+
<h1>500 - Server Error</h1>
|
181
|
+
<p>Something went wrong on the server.</p>
|
182
|
+
<pre>${process.env.NODE_ENV === 'production' ? '' : error.stack}</pre>
|
183
|
+
</div>
|
184
|
+
<script type="module" src="/assets/${clientEntry}"></script>
|
185
|
+
</body>
|
186
|
+
</html>
|
187
|
+
`);
|
188
|
+
}
|
189
|
+
});
|
190
|
+
app.listen(port, () => {
|
191
|
+
console.log(`Server running at http://localhost:${port}`);
|
192
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["vite.config.ts"],"names":[],"mappings":";AAGA,wBA0BG"}
|
@@ -1,57 +1,29 @@
|
|
1
|
-
import { defineConfig } from 'vite';
|
2
|
-
import
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
}
|
28
|
-
|
29
|
-
|
30
|
-
entryFileNames: 'assets/[name].js',
|
31
|
-
chunkFileNames: 'assets/[name]-[hash].js',
|
32
|
-
assetFileNames: 'assets/[name]-[hash].[ext]',
|
33
|
-
format: 'cjs',
|
34
|
-
}
|
35
|
-
]
|
36
|
-
}
|
37
|
-
},
|
38
|
-
|
39
|
-
// Add optimizations for frontend-hamroun
|
40
|
-
optimizeDeps: {
|
41
|
-
include: ['frontend-hamroun']
|
42
|
-
},
|
43
|
-
|
44
|
-
// Resolve aliases for better imports
|
45
|
-
resolve: {
|
46
|
-
alias: {
|
47
|
-
'@': resolve(__dirname, 'src')
|
48
|
-
}
|
49
|
-
},
|
50
|
-
|
51
|
-
// Development server
|
52
|
-
server: {
|
53
|
-
proxy: {
|
54
|
-
'/api': 'http://localhost:3000'
|
55
|
-
}
|
56
|
-
}
|
57
|
-
});
|
1
|
+
import { defineConfig } from 'vite';
|
2
|
+
import path from 'path';
|
3
|
+
export default defineConfig({
|
4
|
+
resolve: {
|
5
|
+
alias: {
|
6
|
+
'frontend-hamroun': path.resolve(__dirname, 'node_modules/frontend-hamroun')
|
7
|
+
}
|
8
|
+
},
|
9
|
+
build: {
|
10
|
+
outDir: 'dist',
|
11
|
+
ssr: 'src/server.ts',
|
12
|
+
rollupOptions: {
|
13
|
+
input: {
|
14
|
+
client: './src/client.tsx',
|
15
|
+
server: './src/server.ts'
|
16
|
+
},
|
17
|
+
output: {
|
18
|
+
entryFileNames: '[name].js',
|
19
|
+
chunkFileNames: 'assets/[name]-[hash].js',
|
20
|
+
assetFileNames: 'assets/[name]-[hash].[ext]'
|
21
|
+
}
|
22
|
+
}
|
23
|
+
},
|
24
|
+
esbuild: {
|
25
|
+
jsxFactory: '_jsx',
|
26
|
+
jsxFragment: '_Fragment',
|
27
|
+
jsxInject: `import { jsx as _jsx, Fragment as _Fragment } from 'frontend-hamroun'`
|
28
|
+
}
|
29
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,GAAG,QAAS,OAAO,OAAO,QAAQ,SAK9C,CAAC;AAEF,eAAO,MAAM,IAAI,QAAS,OAAO,OAAO,QAAQ,SAQ/C,CAAC"}
|
@@ -1,11 +1,14 @@
|
|
1
|
-
export const get = (req, res) => {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
export const get = (req, res) => {
|
2
|
+
res.json({
|
3
|
+
message: 'Hello from the API!',
|
4
|
+
timestamp: new Date().toISOString()
|
5
|
+
});
|
6
|
+
};
|
7
|
+
export const post = (req, res) => {
|
8
|
+
const { name = 'Guest' } = req.body;
|
9
|
+
res.json({
|
10
|
+
message: `Hello, ${name}!`,
|
11
|
+
timestamp: new Date().toISOString(),
|
12
|
+
receivedData: req.body
|
13
|
+
});
|
14
|
+
};
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { Request, Response } from 'express';
|
2
|
+
export declare const get: (req: Request, res: Response) => Response<any, Record<string, any>> | undefined;
|
3
|
+
export declare const put: (req: Request, res: Response) => Response<any, Record<string, any>> | undefined;
|
4
|
+
export declare const delete_: (req: Request, res: Response) => Response<any, Record<string, any>> | undefined;
|
5
|
+
//# sourceMappingURL=%5Bid%5D.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"[id].d.ts","sourceRoot":"","sources":["[id].ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS5C,eAAO,MAAM,GAAG,QAAS,OAAO,OAAO,QAAQ,mDAc9C,CAAC;AAEF,eAAO,MAAM,GAAG,QAAS,OAAO,OAAO,QAAQ,mDA2B9C,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,OAAO,OAAO,QAAQ,mDAkBlD,CAAC"}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
// Mock user database - same as in index.ts for simplicity
|
2
|
+
const users = [
|
3
|
+
{ id: 1, name: 'User 1', email: 'user1@example.com' },
|
4
|
+
{ id: 2, name: 'User 2', email: 'user2@example.com' },
|
5
|
+
{ id: 3, name: 'User 3', email: 'user3@example.com' }
|
6
|
+
];
|
7
|
+
export const get = (req, res) => {
|
8
|
+
const userId = parseInt(req.params.id);
|
9
|
+
if (isNaN(userId)) {
|
10
|
+
return res.status(400).json({ error: 'Invalid user ID' });
|
11
|
+
}
|
12
|
+
const user = users.find(u => u.id === userId);
|
13
|
+
if (!user) {
|
14
|
+
return res.status(404).json({ error: 'User not found' });
|
15
|
+
}
|
16
|
+
res.json(user);
|
17
|
+
};
|
18
|
+
export const put = (req, res) => {
|
19
|
+
const userId = parseInt(req.params.id);
|
20
|
+
if (isNaN(userId)) {
|
21
|
+
return res.status(400).json({ error: 'Invalid user ID' });
|
22
|
+
}
|
23
|
+
const userIndex = users.findIndex(u => u.id === userId);
|
24
|
+
if (userIndex === -1) {
|
25
|
+
return res.status(404).json({ error: 'User not found' });
|
26
|
+
}
|
27
|
+
const { name, email } = req.body;
|
28
|
+
if (!name && !email) {
|
29
|
+
return res.status(400).json({ error: 'Name or email must be provided' });
|
30
|
+
}
|
31
|
+
// Update the user
|
32
|
+
users[userIndex] = {
|
33
|
+
...users[userIndex],
|
34
|
+
...(name && { name }),
|
35
|
+
...(email && { email })
|
36
|
+
};
|
37
|
+
res.json(users[userIndex]);
|
38
|
+
};
|
39
|
+
export const delete_ = (req, res) => {
|
40
|
+
const userId = parseInt(req.params.id);
|
41
|
+
if (isNaN(userId)) {
|
42
|
+
return res.status(400).json({ error: 'Invalid user ID' });
|
43
|
+
}
|
44
|
+
const userIndex = users.findIndex(u => u.id === userId);
|
45
|
+
if (userIndex === -1) {
|
46
|
+
return res.status(404).json({ error: 'User not found' });
|
47
|
+
}
|
48
|
+
// Remove the user
|
49
|
+
const deletedUser = users[userIndex];
|
50
|
+
users.splice(userIndex, 1);
|
51
|
+
res.json({ success: true, deletedUser });
|
52
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS5C,eAAO,MAAM,GAAG,QAAS,OAAO,OAAO,QAAQ,SAI9C,CAAC;AAEF,eAAO,MAAM,IAAI,QAAS,OAAO,OAAO,QAAQ,mDAgB/C,CAAC"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
// Mock user database
|
2
|
+
const users = [
|
3
|
+
{ id: 1, name: 'User 1', email: 'user1@example.com' },
|
4
|
+
{ id: 2, name: 'User 2', email: 'user2@example.com' },
|
5
|
+
{ id: 3, name: 'User 3', email: 'user3@example.com' }
|
6
|
+
];
|
7
|
+
export const get = (req, res) => {
|
8
|
+
// Return users without sensitive information
|
9
|
+
const safeUsers = users.map(({ id, name, email }) => ({ id, name, email }));
|
10
|
+
res.json(safeUsers);
|
11
|
+
};
|
12
|
+
export const post = (req, res) => {
|
13
|
+
const { name, email } = req.body;
|
14
|
+
if (!name || !email) {
|
15
|
+
return res.status(400).json({ error: 'Name and email are required' });
|
16
|
+
}
|
17
|
+
// In a real app, validate data and save to database
|
18
|
+
const newUser = {
|
19
|
+
id: users.length + 1,
|
20
|
+
name,
|
21
|
+
email
|
22
|
+
};
|
23
|
+
users.push(newUser);
|
24
|
+
res.status(201).json(newUser);
|
25
|
+
};
|
@@ -0,0 +1,211 @@
|
|
1
|
+
declare function jsx(type: any, props: any, ...children: any[]): {
|
2
|
+
type: any;
|
3
|
+
props: any;
|
4
|
+
};
|
5
|
+
declare function jsx(type: any, props: any, ...args: any[]): {
|
6
|
+
type: any;
|
7
|
+
props: any;
|
8
|
+
};
|
9
|
+
declare function jsx(type: any, props: any, ...args: any[]): {
|
10
|
+
type: any;
|
11
|
+
props: any;
|
12
|
+
};
|
13
|
+
declare function createElement(vnode: any): Promise<any>;
|
14
|
+
declare function createElement(vnode: any): any;
|
15
|
+
declare function batchUpdates(fn: any): void;
|
16
|
+
declare function batchUpdates(fn: any): void;
|
17
|
+
declare function setRenderCallback(callback: any, element: any, container: any): void;
|
18
|
+
declare function setRenderCallback(callback: any, element: any, container: any): void;
|
19
|
+
declare function prepareRender(): any;
|
20
|
+
declare function prepareRender(): any;
|
21
|
+
declare function finishRender(): void;
|
22
|
+
declare function finishRender(): void;
|
23
|
+
declare function useState(initial: any): any[];
|
24
|
+
declare function useState(initial: any): any[];
|
25
|
+
declare function useEffect(callback: any, deps: any): void;
|
26
|
+
declare function useEffect(callback: any, deps: any): void;
|
27
|
+
declare function useMemo(factory: any, deps: any): any;
|
28
|
+
declare function useMemo(factory: any, deps: any): any;
|
29
|
+
declare function rerender(rendererId: any): Promise<void>;
|
30
|
+
declare function rerender(rendererId: any): Promise<void>;
|
31
|
+
declare function useErrorBoundary(): any[];
|
32
|
+
declare function useErrorBoundary(): any[];
|
33
|
+
declare function hydrate(element: any, container: any): void;
|
34
|
+
declare function hydrate(element: any, container: any): Promise<void>;
|
35
|
+
declare function hydrate(element: any, container: any): Promise<void>;
|
36
|
+
declare function render(element: any, container: any): Promise<void>;
|
37
|
+
declare function render(element: any, container: any): Promise<void>;
|
38
|
+
declare function NotFound({ initialState: initialState2 }: {
|
39
|
+
initialState: any;
|
40
|
+
}): {
|
41
|
+
type: any;
|
42
|
+
props: any;
|
43
|
+
};
|
44
|
+
declare function Layout({ children, title }: {
|
45
|
+
children: any;
|
46
|
+
title?: string | undefined;
|
47
|
+
}): {
|
48
|
+
type: any;
|
49
|
+
props: any;
|
50
|
+
};
|
51
|
+
declare function App({ Component, pageProps, initialState: initialState2 }: {
|
52
|
+
Component: any;
|
53
|
+
pageProps: any;
|
54
|
+
initialState: any;
|
55
|
+
}): {
|
56
|
+
type: any;
|
57
|
+
props: any;
|
58
|
+
};
|
59
|
+
declare function App(): {
|
60
|
+
type: any;
|
61
|
+
props: any;
|
62
|
+
};
|
63
|
+
declare function Document({ title, headContent, bodyContent, scripts }: {
|
64
|
+
title?: string | undefined;
|
65
|
+
headContent: any;
|
66
|
+
bodyContent: any;
|
67
|
+
scripts: any;
|
68
|
+
}): {
|
69
|
+
type: any;
|
70
|
+
props: any;
|
71
|
+
};
|
72
|
+
declare function ErrorPage({ initialState: initialState2 }: {
|
73
|
+
initialState: any;
|
74
|
+
}): {
|
75
|
+
type: any;
|
76
|
+
props: any;
|
77
|
+
};
|
78
|
+
declare function AboutPage({ initialState: initialState2 }: {
|
79
|
+
initialState: any;
|
80
|
+
}): {
|
81
|
+
type: any;
|
82
|
+
props: any;
|
83
|
+
};
|
84
|
+
declare function getServerSideProps(): Promise<{
|
85
|
+
props: {
|
86
|
+
pageTitle: string;
|
87
|
+
description: string;
|
88
|
+
};
|
89
|
+
}>;
|
90
|
+
declare function UserList({ users }: {
|
91
|
+
users: any;
|
92
|
+
}): {
|
93
|
+
type: any;
|
94
|
+
props: any;
|
95
|
+
};
|
96
|
+
declare function StateDemo(): {
|
97
|
+
type: any;
|
98
|
+
props: any;
|
99
|
+
};
|
100
|
+
declare function ErrorBoundary({ children, fallback }: {
|
101
|
+
children: any;
|
102
|
+
fallback: any;
|
103
|
+
}): any;
|
104
|
+
declare function HomePage({ users, posts, initialState: initialState2 }: {
|
105
|
+
users: any;
|
106
|
+
posts: any;
|
107
|
+
initialState: any;
|
108
|
+
}): {
|
109
|
+
type: any;
|
110
|
+
props: any;
|
111
|
+
};
|
112
|
+
declare function getServerSideProps2(): Promise<{
|
113
|
+
props: {
|
114
|
+
users: any;
|
115
|
+
posts: any;
|
116
|
+
};
|
117
|
+
}>;
|
118
|
+
declare function UserDetail({ user, posts, initialState: initialState2 }: {
|
119
|
+
user: any;
|
120
|
+
posts: any;
|
121
|
+
initialState: any;
|
122
|
+
}): {
|
123
|
+
type: any;
|
124
|
+
props: any;
|
125
|
+
};
|
126
|
+
declare function getServerSideProps3({ params }: {
|
127
|
+
params: any;
|
128
|
+
}): Promise<{
|
129
|
+
notFound: boolean;
|
130
|
+
props?: undefined;
|
131
|
+
} | {
|
132
|
+
props: {
|
133
|
+
user: any;
|
134
|
+
posts: any;
|
135
|
+
error?: undefined;
|
136
|
+
};
|
137
|
+
notFound?: undefined;
|
138
|
+
} | {
|
139
|
+
props: {
|
140
|
+
error: {
|
141
|
+
message: any;
|
142
|
+
status: any;
|
143
|
+
};
|
144
|
+
user: null;
|
145
|
+
posts: never[];
|
146
|
+
};
|
147
|
+
notFound?: undefined;
|
148
|
+
}>;
|
149
|
+
declare function handleRouteChange(path: any, isPushState?: boolean): Promise<void>;
|
150
|
+
declare var __defProp: <T>(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) => T;
|
151
|
+
declare var __getOwnPropNames: (o: any) => string[];
|
152
|
+
declare function __glob(map: any): (path: any) => any;
|
153
|
+
declare function __esm(fn: any, res: any): () => any;
|
154
|
+
declare function __export(target: any, all: any): void;
|
155
|
+
declare function init_jsx_runtime(): any;
|
156
|
+
declare var isBatching: any;
|
157
|
+
declare var queue: any;
|
158
|
+
declare var currentRender: any;
|
159
|
+
declare var states: any;
|
160
|
+
declare var stateIndices: any;
|
161
|
+
declare var effects: any;
|
162
|
+
declare var memos: any;
|
163
|
+
declare var isServer: any;
|
164
|
+
declare var serverStates: any;
|
165
|
+
declare var globalRenderCallback: any;
|
166
|
+
declare var globalContainer: any;
|
167
|
+
declare var currentElement: any;
|
168
|
+
declare function init_server_renderer_QHt45Ip2(): any;
|
169
|
+
declare var isHydrating: any;
|
170
|
+
declare function init_renderer_Bo9zkUZ(): any;
|
171
|
+
declare function init_dist(): any;
|
172
|
+
declare var __exports: {};
|
173
|
+
declare function init__(): any;
|
174
|
+
declare var id_exports: {};
|
175
|
+
declare function init_id(): any;
|
176
|
+
declare function init_Layout(): any;
|
177
|
+
declare var app_exports: {};
|
178
|
+
declare function init_app(): any;
|
179
|
+
declare var document_exports: {};
|
180
|
+
declare function init_document(): any;
|
181
|
+
declare var error_exports: {};
|
182
|
+
declare function init_error(): any;
|
183
|
+
declare var about_exports: {};
|
184
|
+
declare function init_about(): any;
|
185
|
+
declare var about_exports2: {};
|
186
|
+
declare var AboutPage2: any;
|
187
|
+
declare var about_default: any;
|
188
|
+
declare function init_about2(): any;
|
189
|
+
declare function init_UserList(): any;
|
190
|
+
declare function init_StateDemo(): any;
|
191
|
+
declare function init_ErrorBoundary(): any;
|
192
|
+
declare var sampleUsers: any;
|
193
|
+
declare var samplePosts: any;
|
194
|
+
declare var delay: any;
|
195
|
+
declare var UserApi: any;
|
196
|
+
declare function init_api(): any;
|
197
|
+
declare var pages_exports: {};
|
198
|
+
declare function init_pages(): any;
|
199
|
+
declare var users_exports: {};
|
200
|
+
declare var UsersPage: any;
|
201
|
+
declare var users_default: any;
|
202
|
+
declare function init_users(): any;
|
203
|
+
declare var id_exports2: {};
|
204
|
+
declare function init_id2(): any;
|
205
|
+
declare var wasm_demo_exports: {};
|
206
|
+
declare function init_wasm_demo(): any;
|
207
|
+
declare function globImport_pages_tsx(path: any): any;
|
208
|
+
declare function globImport_pages_index_tsx(path: any): any;
|
209
|
+
declare var initialState: any;
|
210
|
+
declare var isHydrating2: boolean;
|
211
|
+
//# sourceMappingURL=main.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["main.js"],"names":[],"mappings":";;;;AAiBA;;;EAOC;;;;;AACD,yDAoEC;;AAOD,6CAeC;;AACD,sFAIC;;AACD,sCAIC;;AACD,sCAKC;;AACD,+CAyCC;;AACD,2DAwBC;;AACD,uDAiBC;;AACD,0DAgBC;;AACD,2CAGC;;;AAoBD,sEAOC;;AACD,qEAeC;;AAyBD;;;;;EASC;AAiBD;;;;;;EAEC;AAaD;;;;;;;EAEC;;;;;AAcD;;;;;;;;EAOC;AAaD;;;;;EAoBC;AAcD;;;;;EASC;AACD;;;;;GAOC;AA4BD;;;;;EAYC;AASD;;;EA2GC;AASD;;;QAgBC;AAwED;;;;;;;EAwCC;AACD;;;;;GAmBC;AA2CD;;;;;;;EAiCC;AACD;;;;;;;;;;;;;;;;;;;;;;GA+BC;AAoDD,oFAgEC;AA18BD,sGAAsC;AACtC,oDAAmD;AACnD,sDAKC;AACD,qDAEC;AACD,uDAGC;AANwB,yCAExB;AAoOG,4BAAU;AAAE,uBAAK;AAAE,+BAAa;AAAE,wBAAM;AAAE,8BAAY;AAAE,yBAAO;AAAE,uBAAK;AAAE,0BAAQ;AAAE,8BAAY;AAAE,sCAAoB;AAAE,iCAAe;AAAE,gCAAc;AAtOhI,sDAExB;AA+QD,6BAAgB;AAjRS,8CAExB;AAFwB,kCAExB;AAmSD,0BAAmB;AArSM,+BAExB;AAyTD,2BAAoB;AA3TK,gCAExB;AAFwB,oCAExB;AA4UD,4BAAqB;AA9UI,iCAExB;AA4VD,iCAA0B;AA9VD,sCAExB;AAgXD,8BAAuB;AAlXE,mCAExB;AAiZD,8BAAuB;AAnZE,mCAExB;AAibD,+BAAwB;AAIpB,4BAAU;AAAE,+BAAa;AAvbJ,oCAExB;AAFwB,sCAExB;AAFwB,uCAExB;AAFwB,2CAExB;AAqmBG,6BAAW;AAAE,6BAAW;AAAE,uBAAK;AAAE,yBAAO;AAvmBnB,iCAExB;AA+pBD,8BAAuB;AAjqBE,mCAExB;AA6uBD,8BAAuB;AAInB,2BAAS;AAAE,+BAAa;AAnvBH,mCAExB;AAswBD,4BAAqB;AAxwBI,iCAExB;AAs1BD,kCAA2B;AAx1BF,uCAExB;AARqB,sDAKrB;AALqB,4DAKrB;AAw3BD,8BAQE;AAEF,kCAA4E"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":""}
|