frontend-hamroun 1.2.79 → 1.2.82
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/LICENSE +21 -0
- package/README.md +129 -1513
- package/bin/cli.js +506 -145
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.client.cjs +2 -0
- package/dist/index.client.cjs.map +1 -0
- package/dist/index.client.js +26 -0
- package/dist/index.client.js.map +1 -0
- package/dist/index.js +299 -1
- package/dist/index.js.map +1 -0
- package/dist/jsx-runtime.cjs +2 -0
- package/dist/jsx-runtime.cjs.map +1 -0
- package/dist/jsx-runtime.js +93 -1
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/renderer-Bo9zkUZ_.js +52 -0
- package/dist/renderer-Bo9zkUZ_.js.map +1 -0
- package/dist/renderer-Din1y3YM.cjs +2 -0
- package/dist/renderer-Din1y3YM.cjs.map +1 -0
- package/dist/server-renderer-CqIpQ-od.cjs +2 -0
- package/dist/server-renderer-CqIpQ-od.cjs.map +1 -0
- package/dist/server-renderer-QHt45Ip2.js +255 -0
- package/dist/server-renderer-QHt45Ip2.js.map +1 -0
- package/dist/server-renderer.cjs +2 -0
- package/dist/server-renderer.cjs.map +1 -0
- package/dist/server-renderer.js +5 -1
- package/dist/server-renderer.js.map +1 -0
- package/package.json +77 -120
- package/templates/basic-app/build.js +22 -0
- package/templates/basic-app/dev.js +27 -0
- package/templates/basic-app/esbuild.config.js +28 -0
- package/templates/basic-app/index.html +1 -1
- package/templates/basic-app/package.json +29 -28
- package/templates/basic-app/server.js +24 -0
- package/templates/basic-app/src/App.jsx +16 -0
- package/templates/basic-app/src/App.tsx +26 -0
- package/templates/basic-app/src/client.jsx +5 -0
- package/templates/basic-app/src/client.tsx +11 -0
- package/templates/basic-app/src/components/Counter.jsx +13 -0
- package/templates/basic-app/src/components/Counter.tsx +18 -0
- package/templates/basic-app/src/jsx-shim.js +3 -0
- package/templates/basic-app/src/jsx-shim.ts +11 -0
- package/templates/basic-app/src/main.jsx +98 -0
- package/templates/basic-app/src/main.tsx +0 -1
- package/templates/basic-app/src/server.js +47 -0
- package/templates/basic-app/src/server.ts +52 -0
- package/templates/basic-app/tsconfig.server.json +11 -0
- package/templates/complete-app/lib/frontend-hamroun.js +182 -0
- package/templates/complete-app/package.json +2 -1
- package/templates/complete-app/pages/about.jsx +0 -0
- package/templates/complete-app/pages/index.jsx +0 -0
- package/templates/complete-app/pages/wasm-demo.jsx +0 -0
- package/templates/complete-app/public/client.js +58 -49
- package/templates/complete-app/public/index.html +88 -17
- package/templates/complete-app/public/styles.css +30 -533
- package/templates/complete-app/server.js +31 -222
- package/templates/complete-app/wasm/build.bat +0 -0
- package/templates/complete-app/wasm/build.sh +0 -0
- package/templates/complete-app/wasm/example.go +0 -0
- package/templates/fullstack-app/build/main.js +130 -101
- package/templates/fullstack-app/build/main.js.map +4 -4
- package/templates/fullstack-app/package-lock.json +1773 -566
- package/templates/ssr-template/esbuild.config.js +33 -0
- package/templates/ssr-template/jsx-shim.js +1 -0
- package/templates/ssr-template/package.json +22 -16
- package/templates/ssr-template/src/App.tsx +12 -52
- package/templates/ssr-template/src/client.tsx +3 -17
- package/templates/ssr-template/src/server.ts +21 -204
- package/templates/ssr-template/tsconfig.json +10 -13
- package/templates/ssr-template/tsconfig.server.json +6 -14
- package/templates/wasm/build-wasm.js +228 -0
- package/templates/wasm/esbuild.config.js +63 -0
- package/templates/wasm/go/main.go +256 -0
- package/templates/wasm/go/wasm_exec.js +0 -0
- package/templates/wasm/index.html +97 -0
- package/templates/wasm/jsx-shim.js +9 -0
- package/templates/{go-wasm-app → wasm}/package-lock.json +5307 -3732
- package/templates/wasm/package.json +42 -0
- package/templates/wasm/public/example.wasm +0 -0
- package/templates/wasm/src/App.tsx +564 -0
- package/templates/wasm/src/client.tsx +220 -0
- package/templates/wasm/src/index.tsx +21 -0
- package/templates/wasm/src/server.ts +145 -0
- package/templates/wasm/tsconfig.json +21 -0
- package/templates/wasm/tsconfig.node.json +13 -0
- package/templates/wasm/tsconfig.server.json +23 -0
- package/templates/wasm/vite.config.ts +56 -0
- package/templates/wasm/wasm-loader.js +103 -0
- package/dist/batch/package.json +0 -16
- package/dist/client-router/package.json +0 -16
- package/dist/component/package.json +0 -16
- package/dist/context/package.json +0 -16
- package/dist/event-bus/package.json +0 -16
- package/dist/forms/package.json +0 -16
- package/dist/hooks/package.json +0 -16
- package/dist/hooks-0728361a.cjs +0 -1
- package/dist/hooks-b58f947c.js +0 -133
- package/dist/hooks.js +0 -1
- package/dist/hooks.mjs +0 -13
- package/dist/index.mjs +0 -137
- package/dist/jsx-runtime/package.json +0 -16
- package/dist/jsx-runtime.mjs +0 -64
- package/dist/lifecycle-events/package.json +0 -16
- package/dist/package.json +0 -71
- package/dist/render-component/package.json +0 -16
- package/dist/renderer/package.json +0 -16
- package/dist/renderer.js +0 -1
- package/dist/renderer.mjs +0 -27
- package/dist/router/package.json +0 -16
- package/dist/server/package.json +0 -17
- package/dist/server/src/batch.d.ts +0 -3
- package/dist/server/src/batch.js +0 -23
- package/dist/server/src/batch.js.map +0 -1
- package/dist/server/src/client-router.d.ts +0 -60
- package/dist/server/src/client-router.js +0 -210
- package/dist/server/src/client-router.js.map +0 -1
- package/dist/server/src/component.d.ts +0 -14
- package/dist/server/src/component.js +0 -106
- package/dist/server/src/component.js.map +0 -1
- package/dist/server/src/context.d.ts +0 -13
- package/dist/server/src/context.js +0 -21
- package/dist/server/src/context.js.map +0 -1
- package/dist/server/src/event-bus.d.ts +0 -23
- package/dist/server/src/event-bus.js +0 -75
- package/dist/server/src/event-bus.js.map +0 -1
- package/dist/server/src/forms.d.ts +0 -40
- package/dist/server/src/forms.js +0 -148
- package/dist/server/src/forms.js.map +0 -1
- package/dist/server/src/hooks.d.ts +0 -12
- package/dist/server/src/hooks.js +0 -170
- package/dist/server/src/hooks.js.map +0 -1
- package/dist/server/src/index.client.d.ts +0 -12
- package/dist/server/src/index.client.js +0 -14
- package/dist/server/src/index.client.js.map +0 -1
- package/dist/server/src/index.d.ts +0 -88
- package/dist/server/src/index.js +0 -79
- package/dist/server/src/index.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
- package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
- package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime.d.ts +0 -20
- package/dist/server/src/jsx-runtime.js +0 -105
- package/dist/server/src/jsx-runtime.js.map +0 -1
- package/dist/server/src/lifecycle-events.d.ts +0 -108
- package/dist/server/src/lifecycle-events.js +0 -177
- package/dist/server/src/lifecycle-events.js.map +0 -1
- package/dist/server/src/renderComponent.d.ts +0 -13
- package/dist/server/src/renderComponent.js +0 -30
- package/dist/server/src/renderComponent.js.map +0 -1
- package/dist/server/src/renderer.d.ts +0 -2
- package/dist/server/src/renderer.js +0 -31
- package/dist/server/src/renderer.js.map +0 -1
- package/dist/server/src/router.d.ts +0 -55
- package/dist/server/src/router.js +0 -166
- package/dist/server/src/router.js.map +0 -1
- package/dist/server/src/server/api-router.d.ts +0 -15
- package/dist/server/src/server/api-router.js +0 -111
- package/dist/server/src/server/api-router.js.map +0 -1
- package/dist/server/src/server/auth.d.ts +0 -32
- package/dist/server/src/server/auth.js +0 -80
- package/dist/server/src/server/auth.js.map +0 -1
- package/dist/server/src/server/database.d.ts +0 -24
- package/dist/server/src/server/database.js +0 -135
- package/dist/server/src/server/database.js.map +0 -1
- package/dist/server/src/server/index.d.ts +0 -116
- package/dist/server/src/server/index.js +0 -508
- package/dist/server/src/server/index.js.map +0 -1
- package/dist/server/src/server/middleware.d.ts +0 -11
- package/dist/server/src/server/middleware.js +0 -46
- package/dist/server/src/server/middleware.js.map +0 -1
- package/dist/server/src/server/server.d.ts +0 -9
- package/dist/server/src/server/server.js +0 -87
- package/dist/server/src/server/server.js.map +0 -1
- package/dist/server/src/server/templates.d.ts +0 -30
- package/dist/server/src/server/templates.js +0 -208
- package/dist/server/src/server/templates.js.map +0 -1
- package/dist/server/src/server/types.d.ts +0 -38
- package/dist/server/src/server/types.js +0 -4
- package/dist/server/src/server/types.js.map +0 -1
- package/dist/server/src/server/utils.d.ts +0 -70
- package/dist/server/src/server/utils.js +0 -156
- package/dist/server/src/server/utils.js.map +0 -1
- package/dist/server/src/server/wasm.d.ts +0 -9
- package/dist/server/src/server/wasm.js +0 -117
- package/dist/server/src/server/wasm.js.map +0 -1
- package/dist/server/src/server-renderer.d.ts +0 -5
- package/dist/server/src/server-renderer.js +0 -106
- package/dist/server/src/server-renderer.js.map +0 -1
- package/dist/server/src/server-types.d.ts +0 -42
- package/dist/server/src/server-types.js +0 -6
- package/dist/server/src/server-types.js.map +0 -1
- package/dist/server/src/store.d.ts +0 -41
- package/dist/server/src/store.js +0 -99
- package/dist/server/src/store.js.map +0 -1
- package/dist/server/src/types.d.ts +0 -19
- package/dist/server/src/types.js +0 -2
- package/dist/server/src/types.js.map +0 -1
- package/dist/server/src/utils.d.ts +0 -46
- package/dist/server/src/utils.js +0 -144
- package/dist/server/src/utils.js.map +0 -1
- package/dist/server/src/vdom.d.ts +0 -8
- package/dist/server/src/vdom.js +0 -22
- package/dist/server/src/vdom.js.map +0 -1
- package/dist/server/src/wasm.d.ts +0 -36
- package/dist/server/src/wasm.js +0 -159
- package/dist/server/src/wasm.js.map +0 -1
- package/dist/server/tsconfig.server.tsbuildinfo +0 -1
- package/dist/server-renderer/package.json +0 -16
- package/dist/server-renderer.mjs +0 -64
- package/dist/store/package.json +0 -16
- package/dist/types/package.json +0 -16
- package/dist/utils/package.json +0 -16
- package/dist/vdom/package.json +0 -16
- package/dist/wasm/package.json +0 -16
- package/dist/wasm.js +0 -1
- package/dist/wasm.mjs +0 -103
- package/templates/basic-app/docs/rapport_pfe.aux +0 -27
- package/templates/basic-app/docs/rapport_pfe.log +0 -399
- package/templates/basic-app/docs/rapport_pfe.out +0 -10
- package/templates/basic-app/docs/rapport_pfe.pdf +0 -0
- package/templates/basic-app/docs/rapport_pfe.tex +0 -68
- package/templates/basic-app/docs/rapport_pfe.toc +0 -14
- package/templates/complete-app/package-lock.json +0 -2536
- package/templates/go-wasm-app/README.md +0 -38
- package/templates/go-wasm-app/babel.config.js +0 -21
- package/templates/go-wasm-app/build-client.js +0 -49
- package/templates/go-wasm-app/build-wasm.js +0 -237
- package/templates/go-wasm-app/build.config.js +0 -62
- package/templates/go-wasm-app/build.js +0 -218
- package/templates/go-wasm-app/package.json +0 -32
- package/templates/go-wasm-app/public/index.html +0 -128
- package/templates/go-wasm-app/public/styles.css +0 -197
- package/templates/go-wasm-app/public/wasm/example.wasm +0 -0
- package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +0 -39
- package/templates/go-wasm-app/server.js +0 -70
- package/templates/go-wasm-app/src/App.jsx +0 -38
- package/templates/go-wasm-app/src/app.js +0 -173
- package/templates/go-wasm-app/src/client.js +0 -57
- package/templates/go-wasm-app/src/components/Footer.jsx +0 -13
- package/templates/go-wasm-app/src/components/Header.jsx +0 -19
- package/templates/go-wasm-app/src/components/WasmDemo.jsx +0 -120
- package/templates/go-wasm-app/src/main.jsx +0 -12
- package/templates/go-wasm-app/src/wasm/example.go +0 -75
- package/templates/go-wasm-app/tsconfig.server.json +0 -18
- package/templates/go-wasm-app/vite.config.js +0 -45
- package/templates/ssr-template/client.js +0 -58
- package/templates/ssr-template/package-lock.json +0 -2478
- package/templates/ssr-template/public/index.html +0 -47
- package/templates/ssr-template/readme.md +0 -188
- package/templates/ssr-template/server.js +0 -369
- package/templates/ssr-template/server.ts +0 -275
- package/templates/ssr-template/src/client.ts +0 -61
- package/templates/ssr-template/src/pages/index.tsx +0 -51
- package/templates/ssr-template/vite.config.js +0 -57
- /package/{dist/Counter.d.ts → templates/complete-app/api/hello.js} +0 -0
- /package/templates/{go-wasm-app/public/wasm → wasm/public}/wasm_exec.js +0 -0
@@ -1,60 +0,0 @@
|
|
1
|
-
export interface Route {
|
2
|
-
path: string;
|
3
|
-
component: any;
|
4
|
-
props?: Record<string, any>;
|
5
|
-
exact?: boolean;
|
6
|
-
}
|
7
|
-
export interface RouterState {
|
8
|
-
location: {
|
9
|
-
pathname: string;
|
10
|
-
search: string;
|
11
|
-
hash: string;
|
12
|
-
};
|
13
|
-
params: Record<string, string>;
|
14
|
-
navigate: (to: string, options?: NavigateOptions) => void;
|
15
|
-
match: (path: string) => boolean;
|
16
|
-
}
|
17
|
-
export interface NavigateOptions {
|
18
|
-
replace?: boolean;
|
19
|
-
state?: any;
|
20
|
-
}
|
21
|
-
export declare const RouterContext: import("./context.js").Context<RouterState>;
|
22
|
-
export declare function RouterProvider({ routes, children }: {
|
23
|
-
routes: Route[];
|
24
|
-
children: any;
|
25
|
-
}): any;
|
26
|
-
export declare function Route({ path, component: Component, props }: Route): any;
|
27
|
-
export declare function Switch({ children }: {
|
28
|
-
children: any;
|
29
|
-
}): any;
|
30
|
-
export declare function Link({ to, replace, state, className, activeClassName, children, ...rest }: {
|
31
|
-
to: string;
|
32
|
-
replace?: boolean;
|
33
|
-
state?: any;
|
34
|
-
className?: string;
|
35
|
-
activeClassName?: string;
|
36
|
-
children: any;
|
37
|
-
[key: string]: any;
|
38
|
-
}): any;
|
39
|
-
export declare function Redirect({ to, replace }: {
|
40
|
-
to: string;
|
41
|
-
replace?: boolean;
|
42
|
-
}): null;
|
43
|
-
export declare function useLocation(): {
|
44
|
-
pathname: string;
|
45
|
-
search: string;
|
46
|
-
hash: string;
|
47
|
-
};
|
48
|
-
export declare function useParams(): Record<string, string>;
|
49
|
-
export declare function useNavigate(): (to: string, options?: NavigateOptions) => void;
|
50
|
-
declare const _default: {
|
51
|
-
RouterProvider: typeof RouterProvider;
|
52
|
-
Route: typeof Route;
|
53
|
-
Switch: typeof Switch;
|
54
|
-
Link: typeof Link;
|
55
|
-
Redirect: typeof Redirect;
|
56
|
-
useLocation: typeof useLocation;
|
57
|
-
useParams: typeof useParams;
|
58
|
-
useNavigate: typeof useNavigate;
|
59
|
-
};
|
60
|
-
export default _default;
|
@@ -1,210 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Client-side router for single-page applications
|
3
|
-
*/
|
4
|
-
import { useState, useEffect } from './hooks';
|
5
|
-
import { createContext, useContext } from './context';
|
6
|
-
import { jsx } from './jsx-runtime';
|
7
|
-
// Create context for router
|
8
|
-
export const RouterContext = createContext({
|
9
|
-
location: {
|
10
|
-
pathname: '/',
|
11
|
-
search: '',
|
12
|
-
hash: ''
|
13
|
-
},
|
14
|
-
params: {},
|
15
|
-
navigate: () => { },
|
16
|
-
match: () => false
|
17
|
-
});
|
18
|
-
// Parse path pattern into regex
|
19
|
-
function parsePath(path) {
|
20
|
-
// Convert :param syntax to capture groups
|
21
|
-
const pattern = path
|
22
|
-
.replace(/\/+$/, '') // Remove trailing slashes
|
23
|
-
.replace(/^\/+/, '/') // Ensure leading slash
|
24
|
-
.replace(/\/:([^/]+)/g, '/([^/]+)');
|
25
|
-
// Get param names
|
26
|
-
const paramNames = [];
|
27
|
-
path.replace(/\/:([^/]+)/g, (_, paramName) => {
|
28
|
-
paramNames.push(paramName);
|
29
|
-
return '';
|
30
|
-
});
|
31
|
-
return { pattern, paramNames };
|
32
|
-
}
|
33
|
-
// Match a path against a pattern
|
34
|
-
function matchPath(pathname, route) {
|
35
|
-
const { path, exact = false } = route;
|
36
|
-
const { pattern, paramNames } = parsePath(path);
|
37
|
-
// Create regex with or without exact matching
|
38
|
-
const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
|
39
|
-
const match = pathname.match(regex);
|
40
|
-
if (!match)
|
41
|
-
return null;
|
42
|
-
// Extract params
|
43
|
-
const params = {};
|
44
|
-
paramNames.forEach((name, index) => {
|
45
|
-
params[name] = match[index + 1];
|
46
|
-
});
|
47
|
-
return params;
|
48
|
-
}
|
49
|
-
// Router Provider component
|
50
|
-
export function RouterProvider({ routes, children }) {
|
51
|
-
// Get initial location from window if available
|
52
|
-
const getInitialLocation = () => {
|
53
|
-
if (typeof window === 'undefined') {
|
54
|
-
return { pathname: '/', search: '', hash: '' };
|
55
|
-
}
|
56
|
-
return {
|
57
|
-
pathname: window.location.pathname,
|
58
|
-
search: window.location.search,
|
59
|
-
hash: window.location.hash
|
60
|
-
};
|
61
|
-
};
|
62
|
-
// Fix: Call the function to get the initial value instead of passing the function itself
|
63
|
-
const [location, setLocation] = useState(getInitialLocation());
|
64
|
-
const [params, setParams] = useState({});
|
65
|
-
// Update params when location changes
|
66
|
-
useEffect(() => {
|
67
|
-
for (const route of routes) {
|
68
|
-
const matchedParams = matchPath(location.pathname, route);
|
69
|
-
if (matchedParams) {
|
70
|
-
setParams(matchedParams);
|
71
|
-
break;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
}, [location, routes]);
|
75
|
-
// Listen for popstate events
|
76
|
-
useEffect(() => {
|
77
|
-
if (typeof window === 'undefined')
|
78
|
-
return;
|
79
|
-
const handlePopState = () => {
|
80
|
-
setLocation({
|
81
|
-
pathname: window.location.pathname,
|
82
|
-
search: window.location.search,
|
83
|
-
hash: window.location.hash
|
84
|
-
});
|
85
|
-
};
|
86
|
-
window.addEventListener('popstate', handlePopState);
|
87
|
-
return () => window.removeEventListener('popstate', handlePopState);
|
88
|
-
}, []);
|
89
|
-
// Navigation function
|
90
|
-
const navigate = (to, options = {}) => {
|
91
|
-
if (typeof window === 'undefined')
|
92
|
-
return;
|
93
|
-
const { replace = false, state = null } = options;
|
94
|
-
if (replace) {
|
95
|
-
window.history.replaceState(state, '', to);
|
96
|
-
}
|
97
|
-
else {
|
98
|
-
window.history.pushState(state, '', to);
|
99
|
-
}
|
100
|
-
// Update location
|
101
|
-
setLocation({
|
102
|
-
pathname: window.location.pathname,
|
103
|
-
search: window.location.search,
|
104
|
-
hash: window.location.hash
|
105
|
-
});
|
106
|
-
};
|
107
|
-
// Match function to test if a path matches the current location
|
108
|
-
const match = (path) => {
|
109
|
-
const { pattern } = parsePath(path);
|
110
|
-
const regex = new RegExp(`^${pattern}`);
|
111
|
-
return regex.test(location.pathname);
|
112
|
-
};
|
113
|
-
// Router context value
|
114
|
-
const routerValue = {
|
115
|
-
location: {
|
116
|
-
pathname: location.pathname,
|
117
|
-
search: location.search,
|
118
|
-
hash: location.hash
|
119
|
-
},
|
120
|
-
params,
|
121
|
-
navigate,
|
122
|
-
match
|
123
|
-
};
|
124
|
-
return jsx(RouterContext.Provider, { value: routerValue, children });
|
125
|
-
}
|
126
|
-
// Route component
|
127
|
-
export function Route({ path, component: Component, props = {} }) {
|
128
|
-
const context = useContext(RouterContext);
|
129
|
-
const params = context.params;
|
130
|
-
const locationPathname = context.location.pathname;
|
131
|
-
const routeToMatch = { path, component: Component };
|
132
|
-
const match = matchPath(locationPathname, routeToMatch);
|
133
|
-
if (!match)
|
134
|
-
return null;
|
135
|
-
return jsx(Component, { ...props, params });
|
136
|
-
}
|
137
|
-
// Switch component
|
138
|
-
export function Switch({ children }) {
|
139
|
-
const context = useContext(RouterContext);
|
140
|
-
const locationPathname = context.location.pathname;
|
141
|
-
// Find the first matching route
|
142
|
-
const child = Array.isArray(children)
|
143
|
-
? children.find(child => {
|
144
|
-
if (!child || typeof child.type !== 'function' || !child.props.path)
|
145
|
-
return false;
|
146
|
-
const routeObj = {
|
147
|
-
path: child.props.path,
|
148
|
-
component: child.type,
|
149
|
-
exact: child.props.exact || false
|
150
|
-
};
|
151
|
-
return matchPath(locationPathname, routeObj);
|
152
|
-
})
|
153
|
-
: children;
|
154
|
-
return child || null;
|
155
|
-
}
|
156
|
-
// Link component
|
157
|
-
export function Link({ to, replace = false, state = null, className = '', activeClassName = '', children, ...rest }) {
|
158
|
-
const context = useContext(RouterContext);
|
159
|
-
const navigate = context.navigate;
|
160
|
-
const match = context.match;
|
161
|
-
const handleClick = (e) => {
|
162
|
-
e.preventDefault();
|
163
|
-
navigate(to, { replace, state });
|
164
|
-
};
|
165
|
-
const isActive = match(to);
|
166
|
-
const classes = [
|
167
|
-
className,
|
168
|
-
isActive ? activeClassName : ''
|
169
|
-
].filter(Boolean).join(' ');
|
170
|
-
return jsx('a', {
|
171
|
-
href: to,
|
172
|
-
className: classes || undefined,
|
173
|
-
onClick: handleClick,
|
174
|
-
...rest,
|
175
|
-
children
|
176
|
-
});
|
177
|
-
}
|
178
|
-
// Redirect component
|
179
|
-
export function Redirect({ to, replace = true }) {
|
180
|
-
const context = useContext(RouterContext);
|
181
|
-
const navigate = context.navigate;
|
182
|
-
useEffect(() => {
|
183
|
-
navigate(to, { replace });
|
184
|
-
}, [to]);
|
185
|
-
return null;
|
186
|
-
}
|
187
|
-
// Hooks
|
188
|
-
export function useLocation() {
|
189
|
-
const context = useContext(RouterContext);
|
190
|
-
return context.location;
|
191
|
-
}
|
192
|
-
export function useParams() {
|
193
|
-
const context = useContext(RouterContext);
|
194
|
-
return context.params;
|
195
|
-
}
|
196
|
-
export function useNavigate() {
|
197
|
-
const context = useContext(RouterContext);
|
198
|
-
return context.navigate;
|
199
|
-
}
|
200
|
-
export default {
|
201
|
-
RouterProvider,
|
202
|
-
Route,
|
203
|
-
Switch,
|
204
|
-
Link,
|
205
|
-
Redirect,
|
206
|
-
useLocation,
|
207
|
-
useParams,
|
208
|
-
useNavigate
|
209
|
-
};
|
210
|
-
//# sourceMappingURL=client-router.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"client-router.js","sourceRoot":"","sources":["../../../src/client-router.ts"],"names":[],"mappings":"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"}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
export declare class Component {
|
2
|
-
state: any;
|
3
|
-
props: any;
|
4
|
-
element: HTMLElement | null;
|
5
|
-
private _mounted;
|
6
|
-
constructor(props?: any);
|
7
|
-
componentDidMount(): void;
|
8
|
-
setState(newState: any): Promise<void>;
|
9
|
-
private _replayEvents;
|
10
|
-
private _deepCloneWithEvents;
|
11
|
-
update(): Promise<HTMLElement | Text>;
|
12
|
-
private _updateElement;
|
13
|
-
render(): any;
|
14
|
-
}
|
@@ -1,106 +0,0 @@
|
|
1
|
-
import { createElement } from './jsx-runtime';
|
2
|
-
export class Component {
|
3
|
-
constructor(props = {}) {
|
4
|
-
Object.defineProperty(this, "state", {
|
5
|
-
enumerable: true,
|
6
|
-
configurable: true,
|
7
|
-
writable: true,
|
8
|
-
value: {}
|
9
|
-
});
|
10
|
-
Object.defineProperty(this, "props", {
|
11
|
-
enumerable: true,
|
12
|
-
configurable: true,
|
13
|
-
writable: true,
|
14
|
-
value: void 0
|
15
|
-
});
|
16
|
-
Object.defineProperty(this, "element", {
|
17
|
-
enumerable: true,
|
18
|
-
configurable: true,
|
19
|
-
writable: true,
|
20
|
-
value: null
|
21
|
-
});
|
22
|
-
Object.defineProperty(this, "_mounted", {
|
23
|
-
enumerable: true,
|
24
|
-
configurable: true,
|
25
|
-
writable: true,
|
26
|
-
value: false
|
27
|
-
});
|
28
|
-
this.props = props;
|
29
|
-
}
|
30
|
-
componentDidMount() {
|
31
|
-
// Hook for after component is mounted
|
32
|
-
}
|
33
|
-
async setState(newState) {
|
34
|
-
const prevState = { ...this.state };
|
35
|
-
this.state = { ...prevState, ...newState };
|
36
|
-
console.log(`${this.constructor.name} state updated:`, {
|
37
|
-
prev: prevState,
|
38
|
-
next: this.state
|
39
|
-
});
|
40
|
-
await Promise.resolve(); // Ensure state is updated before re-render
|
41
|
-
if (this._mounted) {
|
42
|
-
await this.update();
|
43
|
-
}
|
44
|
-
else {
|
45
|
-
await this.update();
|
46
|
-
}
|
47
|
-
}
|
48
|
-
_replayEvents(oldElement, newElement) {
|
49
|
-
const oldEvents = oldElement.__events || {};
|
50
|
-
Object.entries(oldEvents).forEach(([event, handler]) => {
|
51
|
-
newElement.addEventListener(event, handler);
|
52
|
-
});
|
53
|
-
newElement.__events = oldEvents;
|
54
|
-
}
|
55
|
-
_deepCloneWithEvents(node) {
|
56
|
-
const clone = node.cloneNode(false);
|
57
|
-
// Copy events from original element
|
58
|
-
const events = node.__events || {};
|
59
|
-
clone.__events = events;
|
60
|
-
Object.entries(events).forEach(([event, handler]) => {
|
61
|
-
clone.addEventListener(event, handler);
|
62
|
-
});
|
63
|
-
// Clone children
|
64
|
-
Array.from(node.childNodes).forEach(child => {
|
65
|
-
if (child instanceof HTMLElement) {
|
66
|
-
clone.appendChild(this._deepCloneWithEvents(child));
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
clone.appendChild(child.cloneNode(true));
|
70
|
-
}
|
71
|
-
});
|
72
|
-
return clone;
|
73
|
-
}
|
74
|
-
async update() {
|
75
|
-
const vdom = this.render();
|
76
|
-
if (!vdom)
|
77
|
-
return document.createTextNode('');
|
78
|
-
const rendered = await createElement(vdom);
|
79
|
-
if (rendered instanceof HTMLElement) {
|
80
|
-
return this._updateElement(rendered);
|
81
|
-
}
|
82
|
-
const wrapper = document.createElement('div');
|
83
|
-
wrapper.appendChild(rendered);
|
84
|
-
return this._updateElement(wrapper);
|
85
|
-
}
|
86
|
-
async _updateElement(rendered) {
|
87
|
-
const newElement = this._deepCloneWithEvents(rendered);
|
88
|
-
newElement.__instance = this;
|
89
|
-
if (!this.element) {
|
90
|
-
this.element = newElement;
|
91
|
-
if (!this._mounted) {
|
92
|
-
this._mounted = true;
|
93
|
-
queueMicrotask(() => this.componentDidMount());
|
94
|
-
}
|
95
|
-
}
|
96
|
-
else if (this.element.parentNode) {
|
97
|
-
this.element.parentNode.replaceChild(newElement, this.element);
|
98
|
-
this.element = newElement;
|
99
|
-
}
|
100
|
-
return this.element;
|
101
|
-
}
|
102
|
-
render() {
|
103
|
-
throw new Error('Component must implement render() method');
|
104
|
-
}
|
105
|
-
}
|
106
|
-
//# sourceMappingURL=component.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/component.ts"],"names":[],"mappings":"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"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
export interface Context<T> {
|
2
|
-
Provider: (props: {
|
3
|
-
value: T;
|
4
|
-
children?: any;
|
5
|
-
}) => any;
|
6
|
-
Consumer: (props: {
|
7
|
-
children: (value: T) => any;
|
8
|
-
}) => any;
|
9
|
-
_id: symbol;
|
10
|
-
useSelector: <S>(selector: (state: T) => S) => S;
|
11
|
-
}
|
12
|
-
export declare function createContext<T>(defaultValue: T): Context<T>;
|
13
|
-
export declare function useContext<T>(context: any): T;
|
@@ -1,21 +0,0 @@
|
|
1
|
-
const contexts = new Map();
|
2
|
-
let currentRender = null;
|
3
|
-
export function createContext(defaultValue) {
|
4
|
-
const context = {
|
5
|
-
Provider: ({ value, children }) => {
|
6
|
-
return children;
|
7
|
-
},
|
8
|
-
Consumer: ({ children }) => {
|
9
|
-
return children(defaultValue);
|
10
|
-
},
|
11
|
-
_id: Symbol(),
|
12
|
-
useSelector: (selector) => {
|
13
|
-
return selector(defaultValue);
|
14
|
-
}
|
15
|
-
};
|
16
|
-
return context;
|
17
|
-
}
|
18
|
-
export function useContext(context) {
|
19
|
-
return context;
|
20
|
-
}
|
21
|
-
//# sourceMappingURL=context.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;AACxC,IAAI,aAAa,GAAoB,IAAI,CAAC;AAS1C,MAAM,UAAU,aAAa,CAAI,YAAe;IAC9C,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgC,EAAE,EAAE;YAC9D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAmC,EAAE,EAAE;YAC1D,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,EAAE,MAAM,EAAE;QACb,WAAW,EAAE,CAAI,QAAyB,EAAE,EAAE;YAC5C,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,OAAY;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Event bus for communication between components
|
3
|
-
*/
|
4
|
-
export type EventHandler = (...args: any[]) => void;
|
5
|
-
export interface EventBus {
|
6
|
-
on(event: string, handler: EventHandler): () => void;
|
7
|
-
once(event: string, handler: EventHandler): () => void;
|
8
|
-
off(event: string, handler?: EventHandler): void;
|
9
|
-
emit(event: string, ...args: any[]): void;
|
10
|
-
clear(event?: string): void;
|
11
|
-
}
|
12
|
-
export declare function createEventBus(): EventBus;
|
13
|
-
declare const globalEventBus: EventBus;
|
14
|
-
export declare function useEvent(event: string, handler: EventHandler, options?: {
|
15
|
-
once?: boolean;
|
16
|
-
}): () => void;
|
17
|
-
export { globalEventBus as eventBus };
|
18
|
-
declare const _default: {
|
19
|
-
createEventBus: typeof createEventBus;
|
20
|
-
eventBus: EventBus;
|
21
|
-
useEvent: typeof useEvent;
|
22
|
-
};
|
23
|
-
export default _default;
|
@@ -1,75 +0,0 @@
|
|
1
|
-
export function createEventBus() {
|
2
|
-
const events = new Map();
|
3
|
-
const onceHandlers = new WeakMap();
|
4
|
-
const on = (event, handler) => {
|
5
|
-
if (!events.has(event)) {
|
6
|
-
events.set(event, new Set());
|
7
|
-
}
|
8
|
-
events.get(event).add(handler);
|
9
|
-
// Return a function to remove this handler
|
10
|
-
return () => off(event, handler);
|
11
|
-
};
|
12
|
-
const once = (event, handler) => {
|
13
|
-
// Create a wrapper that will call the handler and remove itself
|
14
|
-
const onceWrapper = (...args) => {
|
15
|
-
off(event, onceWrapper);
|
16
|
-
handler(...args);
|
17
|
-
};
|
18
|
-
// Store the mapping between the original handler and the wrapper
|
19
|
-
onceHandlers.set(handler, onceWrapper);
|
20
|
-
// Register the wrapper
|
21
|
-
return on(event, onceWrapper);
|
22
|
-
};
|
23
|
-
const off = (event, handler) => {
|
24
|
-
// If no handler is provided, remove all handlers for the event
|
25
|
-
if (!handler) {
|
26
|
-
events.delete(event);
|
27
|
-
return;
|
28
|
-
}
|
29
|
-
// Check if it's a once handler wrapper
|
30
|
-
const wrappedHandler = onceHandlers.get(handler);
|
31
|
-
const handlerToRemove = wrappedHandler || handler;
|
32
|
-
if (events.has(event)) {
|
33
|
-
events.get(event).delete(handlerToRemove);
|
34
|
-
// Clean up empty event sets
|
35
|
-
if (events.get(event).size === 0) {
|
36
|
-
events.delete(event);
|
37
|
-
}
|
38
|
-
}
|
39
|
-
};
|
40
|
-
const emit = (event, ...args) => {
|
41
|
-
if (!events.has(event)) {
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
// Create a copy of the handlers to avoid issues if handlers modify the set
|
45
|
-
const handlers = Array.from(events.get(event));
|
46
|
-
// Call each handler with the arguments
|
47
|
-
for (const handler of handlers) {
|
48
|
-
handler(...args);
|
49
|
-
}
|
50
|
-
};
|
51
|
-
const clear = (event) => {
|
52
|
-
if (event) {
|
53
|
-
events.delete(event);
|
54
|
-
}
|
55
|
-
else {
|
56
|
-
events.clear();
|
57
|
-
}
|
58
|
-
};
|
59
|
-
return { on, once, off, emit, clear };
|
60
|
-
}
|
61
|
-
// Create a global event bus instance
|
62
|
-
const globalEventBus = createEventBus();
|
63
|
-
// Hook to use the event bus in components
|
64
|
-
export function useEvent(event, handler, options = {}) {
|
65
|
-
return options.once
|
66
|
-
? globalEventBus.once(event, handler)
|
67
|
-
: globalEventBus.on(event, handler);
|
68
|
-
}
|
69
|
-
export { globalEventBus as eventBus };
|
70
|
-
export default {
|
71
|
-
createEventBus,
|
72
|
-
eventBus: globalEventBus,
|
73
|
-
useEvent
|
74
|
-
};
|
75
|
-
//# sourceMappingURL=event-bus.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/event-bus.ts"],"names":[],"mappings":"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"}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
export interface FormField {
|
2
|
-
value: any;
|
3
|
-
error?: string;
|
4
|
-
touched: boolean;
|
5
|
-
dirty: boolean;
|
6
|
-
}
|
7
|
-
export interface FormState {
|
8
|
-
fields: Record<string, FormField>;
|
9
|
-
isValid: boolean;
|
10
|
-
isDirty: boolean;
|
11
|
-
isSubmitting: boolean;
|
12
|
-
submitCount: number;
|
13
|
-
}
|
14
|
-
export interface FormOptions<T> {
|
15
|
-
initialValues: T;
|
16
|
-
validate?: (values: T) => Record<string, string>;
|
17
|
-
onSubmit?: (values: T, form: FormState) => void | Promise<void>;
|
18
|
-
}
|
19
|
-
export interface FormConfig<T> {
|
20
|
-
values: T;
|
21
|
-
errors: Record<string, string>;
|
22
|
-
touched: Record<string, boolean>;
|
23
|
-
dirty: Record<string, boolean>;
|
24
|
-
isValid: boolean;
|
25
|
-
isDirty: boolean;
|
26
|
-
isSubmitting: boolean;
|
27
|
-
submitCount: number;
|
28
|
-
handleChange: (e: any) => void;
|
29
|
-
handleBlur: (e: any) => void;
|
30
|
-
handleSubmit: (e: any) => void;
|
31
|
-
setFieldValue: (field: string, value: any) => void;
|
32
|
-
setFieldError: (field: string, error: string) => void;
|
33
|
-
setValues: (values: Partial<T>) => void;
|
34
|
-
resetForm: () => void;
|
35
|
-
}
|
36
|
-
export declare function useForm<T extends Record<string, any>>(options: FormOptions<T>): FormConfig<T>;
|
37
|
-
declare const _default: {
|
38
|
-
useForm: typeof useForm;
|
39
|
-
};
|
40
|
-
export default _default;
|