zylaris 1.0.2 → 1.0.4
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/components.d.ts +73 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +90 -0
- package/dist/components.js.map +1 -0
- package/dist/components.test.d.ts +2 -0
- package/dist/components.test.d.ts.map +1 -0
- package/dist/components.test.js +113 -0
- package/dist/components.test.js.map +1 -0
- package/dist/config.d.ts +143 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +80 -0
- package/dist/config.js.map +1 -0
- package/dist/hooks.d.ts +30 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +109 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx-runtime.d.ts +13 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +17 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/package.json +46 -25
- package/LICENSE +0 -21
- package/README.md +0 -558
- package/Zylaris.js.png +0 -0
- package/examples/default/index.html +0 -13
- package/examples/default/package.json +0 -23
- package/examples/default/src/app/about/page.tsx +0 -18
- package/examples/default/src/app/counter/page.tsx +0 -22
- package/examples/default/src/app/global.css +0 -225
- package/examples/default/src/app/layout.tsx +0 -33
- package/examples/default/src/app/page.tsx +0 -14
- package/examples/default/src/entry-client.tsx +0 -87
- package/examples/default/src/entry-server.tsx +0 -52
- package/examples/default/src/router.ts +0 -60
- package/examples/default/tsconfig.json +0 -28
- package/examples/default/zylaris.config.ts +0 -24
- package/packages/adapter/package.json +0 -59
- package/packages/adapter/src/adapters/bun.ts +0 -215
- package/packages/adapter/src/adapters/cloudflare.ts +0 -278
- package/packages/adapter/src/adapters/deno.ts +0 -219
- package/packages/adapter/src/adapters/netlify.ts +0 -274
- package/packages/adapter/src/adapters/node.ts +0 -155
- package/packages/adapter/src/adapters/static.ts +0 -134
- package/packages/adapter/src/adapters/vercel.ts +0 -239
- package/packages/adapter/src/index.ts +0 -115
- package/packages/adapter/src/lib/builder.ts +0 -361
- package/packages/adapter/src/types.ts +0 -191
- package/packages/adapter/tsconfig.json +0 -8
- package/packages/cli/package.json +0 -43
- package/packages/cli/src/bin.ts +0 -107
- package/packages/cli/src/commands/build.ts +0 -197
- package/packages/cli/src/commands/create.ts +0 -222
- package/packages/cli/src/commands/deploy.ts +0 -90
- package/packages/cli/src/commands/dev.ts +0 -108
- package/packages/cli/src/index.ts +0 -6
- package/packages/cli/tsconfig.json +0 -9
- package/packages/compiler/package.json +0 -39
- package/packages/compiler/src/index.ts +0 -210
- package/packages/compiler/src/jit.ts +0 -187
- package/packages/compiler/tsconfig.json +0 -9
- package/packages/core/package.json +0 -55
- package/packages/core/src/components.test.ts +0 -125
- package/packages/core/src/components.ts +0 -181
- package/packages/core/src/config.ts +0 -204
- package/packages/core/src/hooks.ts +0 -142
- package/packages/core/src/index.ts +0 -59
- package/packages/core/src/jsx-runtime.ts +0 -46
- package/packages/core/tsconfig.json +0 -16
- package/packages/dev-server/package.json +0 -51
- package/packages/dev-server/src/index.ts +0 -306
- package/packages/dev-server/src/jit-middleware.ts +0 -78
- package/packages/dev-server/tsconfig.json +0 -9
- package/packages/plugins/package.json +0 -44
- package/packages/plugins/src/cdn/loader.ts +0 -275
- package/packages/plugins/src/index.ts +0 -238
- package/packages/plugins/src/loaders/auto-import.ts +0 -219
- package/packages/plugins/src/loaders/external.ts +0 -332
- package/packages/plugins/src/transforms/index.ts +0 -407
- package/packages/plugins/src/types.ts +0 -296
- package/packages/plugins/tsconfig.json +0 -8
- package/packages/reactivity/package.json +0 -36
- package/packages/reactivity/src/computed.d.ts +0 -3
- package/packages/reactivity/src/computed.d.ts.map +0 -1
- package/packages/reactivity/src/computed.js +0 -64
- package/packages/reactivity/src/computed.js.map +0 -1
- package/packages/reactivity/src/computed.test.ts +0 -83
- package/packages/reactivity/src/computed.ts +0 -69
- package/packages/reactivity/src/index.d.ts +0 -6
- package/packages/reactivity/src/index.d.ts.map +0 -1
- package/packages/reactivity/src/index.js +0 -7
- package/packages/reactivity/src/index.js.map +0 -1
- package/packages/reactivity/src/index.ts +0 -18
- package/packages/reactivity/src/resource.d.ts +0 -6
- package/packages/reactivity/src/resource.d.ts.map +0 -1
- package/packages/reactivity/src/resource.js +0 -43
- package/packages/reactivity/src/resource.js.map +0 -1
- package/packages/reactivity/src/resource.test.ts +0 -70
- package/packages/reactivity/src/resource.ts +0 -59
- package/packages/reactivity/src/signal.d.ts +0 -7
- package/packages/reactivity/src/signal.d.ts.map +0 -1
- package/packages/reactivity/src/signal.js +0 -145
- package/packages/reactivity/src/signal.js.map +0 -1
- package/packages/reactivity/src/signal.test.ts +0 -130
- package/packages/reactivity/src/signal.ts +0 -207
- package/packages/reactivity/src/store.d.ts +0 -4
- package/packages/reactivity/src/store.d.ts.map +0 -1
- package/packages/reactivity/src/store.js +0 -62
- package/packages/reactivity/src/store.js.map +0 -1
- package/packages/reactivity/src/store.test.ts +0 -38
- package/packages/reactivity/src/store.ts +0 -111
- package/packages/reactivity/src/types.d.ts +0 -43
- package/packages/reactivity/src/types.d.ts.map +0 -1
- package/packages/reactivity/src/types.js +0 -3
- package/packages/reactivity/src/types.js.map +0 -1
- package/packages/reactivity/src/types.ts +0 -43
- package/packages/reactivity/tsconfig.json +0 -9
- package/packages/router/package.json +0 -44
- package/packages/router/src/components.tsx +0 -150
- package/packages/router/src/fs-router.ts +0 -163
- package/packages/router/src/index.ts +0 -22
- package/packages/router/src/router.test.ts +0 -111
- package/packages/router/src/router.ts +0 -112
- package/packages/router/src/types.ts +0 -69
- package/packages/router/tsconfig.json +0 -10
- package/packages/server/package.json +0 -41
- package/packages/server/src/action.test.ts +0 -102
- package/packages/server/src/action.ts +0 -201
- package/packages/server/src/api.ts +0 -143
- package/packages/server/src/index.ts +0 -18
- package/packages/server/src/types.ts +0 -72
- package/packages/server/tsconfig.json +0 -9
- package/pnpm-workspace.yaml +0 -4
- package/scripts/publish.ps1 +0 -138
- package/scripts/publish.sh +0 -142
- package/tsconfig.json +0 -28
- package/turbo.json +0 -24
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Signal } from '@zylaris/reactivity';
|
|
2
|
+
interface ShowProps<T> {
|
|
3
|
+
when: T | Signal<T> | null | undefined | false;
|
|
4
|
+
fallback?: JSX.Element;
|
|
5
|
+
children: ((item: T) => JSX.Element) | JSX.Element;
|
|
6
|
+
}
|
|
7
|
+
export declare function Show<T>(props: ShowProps<T>): JSX.Element;
|
|
8
|
+
interface ForProps<T> {
|
|
9
|
+
each: T[] | Signal<T[]>;
|
|
10
|
+
children: (item: T, index: () => number) => JSX.Element;
|
|
11
|
+
fallback?: JSX.Element;
|
|
12
|
+
}
|
|
13
|
+
export declare function For<T>(props: ForProps<T>): JSX.Element[];
|
|
14
|
+
interface SwitchProps {
|
|
15
|
+
fallback?: JSX.Element;
|
|
16
|
+
children: JSX.Element | JSX.Element[];
|
|
17
|
+
}
|
|
18
|
+
interface MatchProps {
|
|
19
|
+
when: boolean | Signal<boolean>;
|
|
20
|
+
children: JSX.Element | (() => JSX.Element);
|
|
21
|
+
}
|
|
22
|
+
export declare function Switch(props: SwitchProps): JSX.Element;
|
|
23
|
+
export declare function Match(props: MatchProps): {
|
|
24
|
+
type: 'match';
|
|
25
|
+
props: MatchProps;
|
|
26
|
+
};
|
|
27
|
+
interface SuspenseProps {
|
|
28
|
+
fallback: JSX.Element;
|
|
29
|
+
children: JSX.Element;
|
|
30
|
+
}
|
|
31
|
+
export declare function Suspense(props: SuspenseProps): JSX.Element;
|
|
32
|
+
interface DynamicProps<T> {
|
|
33
|
+
component: (props: T) => JSX.Element;
|
|
34
|
+
props?: T;
|
|
35
|
+
}
|
|
36
|
+
export declare function Dynamic<T extends object>(props: DynamicProps<T>): JSX.Element;
|
|
37
|
+
interface PortalProps {
|
|
38
|
+
mount?: HTMLElement;
|
|
39
|
+
children: JSX.Element;
|
|
40
|
+
}
|
|
41
|
+
export declare function Portal(props: PortalProps): JSX.Element;
|
|
42
|
+
interface ErrorBoundaryProps {
|
|
43
|
+
fallback: (error: Error, reset: () => void) => JSX.Element;
|
|
44
|
+
children: JSX.Element;
|
|
45
|
+
}
|
|
46
|
+
interface ErrorBoundaryState {
|
|
47
|
+
error: Error | null;
|
|
48
|
+
}
|
|
49
|
+
declare global {
|
|
50
|
+
namespace JSX {
|
|
51
|
+
interface Element {
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
interface ReactLikeComponent<P, S> {
|
|
56
|
+
props: P;
|
|
57
|
+
state: S;
|
|
58
|
+
setState(state: Partial<S>): void;
|
|
59
|
+
}
|
|
60
|
+
export declare class ErrorBoundary implements ReactLikeComponent<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
61
|
+
props: ErrorBoundaryProps;
|
|
62
|
+
state: ErrorBoundaryState;
|
|
63
|
+
constructor(props: ErrorBoundaryProps);
|
|
64
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
65
|
+
setState(state: Partial<ErrorBoundaryState>): void;
|
|
66
|
+
reset: () => void;
|
|
67
|
+
render(): JSX.Element;
|
|
68
|
+
}
|
|
69
|
+
export declare function lazy<T extends object>(loader: () => Promise<{
|
|
70
|
+
default: (props: T) => JSX.Element;
|
|
71
|
+
}>): (props: T) => JSX.Element;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { isSignal } from './jsx-runtime.js';
|
|
2
|
+
export function Show(props) {
|
|
3
|
+
const when = isSignal(props.when) ? props.when() : props.when;
|
|
4
|
+
if (!when) {
|
|
5
|
+
return props.fallback || null;
|
|
6
|
+
}
|
|
7
|
+
if (typeof props.children === 'function') {
|
|
8
|
+
return props.children(when);
|
|
9
|
+
}
|
|
10
|
+
return props.children;
|
|
11
|
+
}
|
|
12
|
+
export function For(props) {
|
|
13
|
+
const items = isSignal(props.each) ? props.each() : props.each;
|
|
14
|
+
if (!items || items.length === 0) {
|
|
15
|
+
return props.fallback ? [props.fallback] : [];
|
|
16
|
+
}
|
|
17
|
+
return items.map((item, index) => props.children(item, () => index));
|
|
18
|
+
}
|
|
19
|
+
export function Switch(props) {
|
|
20
|
+
const children = Array.isArray(props.children) ? props.children : [props.children];
|
|
21
|
+
for (const child of children) {
|
|
22
|
+
// Check if it's a Match marker object
|
|
23
|
+
if (child && typeof child === 'object' && 'type' in child && child.type === 'match' && 'props' in child) {
|
|
24
|
+
const matchProps = child.props;
|
|
25
|
+
const when = isSignal(matchProps.when) ? matchProps.when() : matchProps.when;
|
|
26
|
+
if (when) {
|
|
27
|
+
return typeof matchProps.children === 'function'
|
|
28
|
+
? matchProps.children()
|
|
29
|
+
: matchProps.children;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return props.fallback || null;
|
|
34
|
+
}
|
|
35
|
+
// Match marker object for Switch
|
|
36
|
+
export function Match(props) {
|
|
37
|
+
// Return a marker object that Switch can identify
|
|
38
|
+
return { type: 'match', props };
|
|
39
|
+
}
|
|
40
|
+
export function Suspense(props) {
|
|
41
|
+
// In real implementation, this would integrate with resource signals
|
|
42
|
+
return props.children;
|
|
43
|
+
}
|
|
44
|
+
export function Dynamic(props) {
|
|
45
|
+
return props.component(props.props || {});
|
|
46
|
+
}
|
|
47
|
+
export function Portal(props) {
|
|
48
|
+
// In real implementation, this would render to a different DOM node
|
|
49
|
+
return props.children;
|
|
50
|
+
}
|
|
51
|
+
export class ErrorBoundary {
|
|
52
|
+
props;
|
|
53
|
+
state;
|
|
54
|
+
constructor(props) {
|
|
55
|
+
this.props = props;
|
|
56
|
+
this.state = { error: null };
|
|
57
|
+
}
|
|
58
|
+
static getDerivedStateFromError(error) {
|
|
59
|
+
return { error };
|
|
60
|
+
}
|
|
61
|
+
setState(state) {
|
|
62
|
+
this.state = { ...this.state, ...state };
|
|
63
|
+
}
|
|
64
|
+
reset = () => {
|
|
65
|
+
this.setState({ error: null });
|
|
66
|
+
};
|
|
67
|
+
render() {
|
|
68
|
+
if (this.state.error) {
|
|
69
|
+
return this.props.fallback(this.state.error, this.reset);
|
|
70
|
+
}
|
|
71
|
+
return this.props.children;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Lazy component
|
|
75
|
+
export function lazy(loader) {
|
|
76
|
+
let Component = null;
|
|
77
|
+
let promise = null;
|
|
78
|
+
return function LazyComponent(props) {
|
|
79
|
+
if (!Component) {
|
|
80
|
+
if (!promise) {
|
|
81
|
+
promise = loader().then((module) => {
|
|
82
|
+
Component = module.default;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
throw promise;
|
|
86
|
+
}
|
|
87
|
+
return Component(props);
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.test.d.ts","sourceRoot":"","sources":["../src/components.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { Show, For, Switch, Match } from './components.js';
|
|
3
|
+
import { signal } from '@zylaris/reactivity';
|
|
4
|
+
describe('Show', () => {
|
|
5
|
+
it('should render children when condition is true', () => {
|
|
6
|
+
const result = Show({
|
|
7
|
+
when: true,
|
|
8
|
+
children: 'Content'
|
|
9
|
+
});
|
|
10
|
+
expect(result).toBe('Content');
|
|
11
|
+
});
|
|
12
|
+
it('should render fallback when condition is false', () => {
|
|
13
|
+
const result = Show({
|
|
14
|
+
when: false,
|
|
15
|
+
fallback: 'Fallback',
|
|
16
|
+
children: 'Content'
|
|
17
|
+
});
|
|
18
|
+
expect(result).toBe('Fallback');
|
|
19
|
+
});
|
|
20
|
+
it('should render null when no fallback and condition is false', () => {
|
|
21
|
+
const result = Show({
|
|
22
|
+
when: false,
|
|
23
|
+
children: 'Content'
|
|
24
|
+
});
|
|
25
|
+
expect(result).toBeNull();
|
|
26
|
+
});
|
|
27
|
+
it('should work with signal', () => {
|
|
28
|
+
const s = signal(true);
|
|
29
|
+
const result = Show({
|
|
30
|
+
when: s,
|
|
31
|
+
children: 'Content'
|
|
32
|
+
});
|
|
33
|
+
expect(result).toBe('Content');
|
|
34
|
+
});
|
|
35
|
+
it('should call children as function with value', () => {
|
|
36
|
+
const result = Show({
|
|
37
|
+
when: 'hello',
|
|
38
|
+
children: ((value) => `Value: ${value}`)
|
|
39
|
+
});
|
|
40
|
+
expect(result).toBe('Value: hello');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('For', () => {
|
|
44
|
+
it('should render array items', () => {
|
|
45
|
+
const items = [1, 2, 3];
|
|
46
|
+
const result = For({
|
|
47
|
+
each: items,
|
|
48
|
+
children: ((item) => item * 2)
|
|
49
|
+
});
|
|
50
|
+
expect(result).toEqual([2, 4, 6]);
|
|
51
|
+
});
|
|
52
|
+
it('should return empty array for empty input', () => {
|
|
53
|
+
const result = For({
|
|
54
|
+
each: [],
|
|
55
|
+
children: ((item) => item)
|
|
56
|
+
});
|
|
57
|
+
expect(result).toEqual([]);
|
|
58
|
+
});
|
|
59
|
+
it('should return fallback for empty array', () => {
|
|
60
|
+
const result = For({
|
|
61
|
+
each: [],
|
|
62
|
+
fallback: 'No items',
|
|
63
|
+
children: ((item) => item)
|
|
64
|
+
});
|
|
65
|
+
expect(result).toEqual(['No items']);
|
|
66
|
+
});
|
|
67
|
+
it('should work with signal', () => {
|
|
68
|
+
const s = signal([1, 2, 3]);
|
|
69
|
+
const result = For({
|
|
70
|
+
each: s,
|
|
71
|
+
children: ((item) => item * 2)
|
|
72
|
+
});
|
|
73
|
+
expect(result).toEqual([2, 4, 6]);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('Switch/Match', () => {
|
|
77
|
+
it('should render first matching case', () => {
|
|
78
|
+
const result = Switch({
|
|
79
|
+
children: [
|
|
80
|
+
Match({ when: false, children: 'First' }),
|
|
81
|
+
Match({ when: true, children: 'Second' }),
|
|
82
|
+
Match({ when: true, children: 'Third' })
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
expect(result).toBe('Second');
|
|
86
|
+
});
|
|
87
|
+
it('should render fallback when no match', () => {
|
|
88
|
+
const result = Switch({
|
|
89
|
+
fallback: 'No match',
|
|
90
|
+
children: [
|
|
91
|
+
Match({ when: false, children: 'First' })
|
|
92
|
+
]
|
|
93
|
+
});
|
|
94
|
+
expect(result).toBe('No match');
|
|
95
|
+
});
|
|
96
|
+
it('should render null when no match and no fallback', () => {
|
|
97
|
+
const result = Switch({
|
|
98
|
+
children: [
|
|
99
|
+
Match({ when: false, children: 'First' })
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
expect(result).toBeNull();
|
|
103
|
+
});
|
|
104
|
+
it('should call children as function', () => {
|
|
105
|
+
const result = Switch({
|
|
106
|
+
children: [
|
|
107
|
+
Match({ when: true, children: (() => 'Dynamic') })
|
|
108
|
+
]
|
|
109
|
+
});
|
|
110
|
+
expect(result).toBe('Dynamic');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=components.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.test.js","sourceRoot":"","sources":["../src/components.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/** Deployment target platforms */
|
|
2
|
+
export type DeploymentTarget = 'static' | 'node' | 'vercel' | 'netlify' | 'cloudflare' | 'deno' | 'bun';
|
|
3
|
+
/** Serverless/Edge function config */
|
|
4
|
+
export interface FunctionConfig {
|
|
5
|
+
/** Function name */
|
|
6
|
+
name?: string;
|
|
7
|
+
/** Route pattern */
|
|
8
|
+
route?: string;
|
|
9
|
+
/** Memory allocation (MB) */
|
|
10
|
+
memory?: number;
|
|
11
|
+
/** Timeout (seconds) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
/** Regions to deploy */
|
|
14
|
+
regions?: string[];
|
|
15
|
+
/** Edge function flag */
|
|
16
|
+
edge?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Static generation options */
|
|
19
|
+
export interface StaticOptions {
|
|
20
|
+
/** Routes to pre-render */
|
|
21
|
+
routes?: string[];
|
|
22
|
+
/** 404 page path */
|
|
23
|
+
fallback?: string;
|
|
24
|
+
/** Crawl dynamic routes */
|
|
25
|
+
crawl?: boolean;
|
|
26
|
+
/** Base path for assets */
|
|
27
|
+
base?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Adapter configuration */
|
|
30
|
+
export interface AdapterConfig {
|
|
31
|
+
/** Target platform */
|
|
32
|
+
target: DeploymentTarget;
|
|
33
|
+
/** Entry point */
|
|
34
|
+
entry?: string;
|
|
35
|
+
/** Output directory */
|
|
36
|
+
outDir?: string;
|
|
37
|
+
/** Static generation options */
|
|
38
|
+
static?: StaticOptions;
|
|
39
|
+
/** Serverless function config */
|
|
40
|
+
function?: FunctionConfig;
|
|
41
|
+
/** Environment variables to include */
|
|
42
|
+
env?: Record<string, string>;
|
|
43
|
+
/** Headers for HTTP responses */
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
/** Redirects configuration */
|
|
46
|
+
redirects?: Array<{
|
|
47
|
+
from: string;
|
|
48
|
+
to: string;
|
|
49
|
+
status?: number;
|
|
50
|
+
}>;
|
|
51
|
+
/** Rewrites configuration */
|
|
52
|
+
rewrites?: Array<{
|
|
53
|
+
from: string;
|
|
54
|
+
to: string;
|
|
55
|
+
}>;
|
|
56
|
+
/** Trailing slash handling */
|
|
57
|
+
trailingSlash?: 'always' | 'never' | 'ignore';
|
|
58
|
+
/** Clean URLs (no .html extension) */
|
|
59
|
+
cleanUrls?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface ZylarisConfig {
|
|
62
|
+
/** Deployment target */
|
|
63
|
+
adapter?: DeploymentTarget | AdapterConfig;
|
|
64
|
+
/** Runtime environment */
|
|
65
|
+
runtime?: 'node' | 'edge' | 'deno' | 'bun';
|
|
66
|
+
/** Rendering configuration */
|
|
67
|
+
rendering?: {
|
|
68
|
+
default?: 'ssr' | 'csr' | 'ssg';
|
|
69
|
+
dynamicRoutes?: string[];
|
|
70
|
+
staticPaths?: string[];
|
|
71
|
+
};
|
|
72
|
+
/** Islands architecture */
|
|
73
|
+
islands?: {
|
|
74
|
+
mode?: 'auto' | 'manual' | 'off';
|
|
75
|
+
components?: string[];
|
|
76
|
+
};
|
|
77
|
+
/** Compiler options */
|
|
78
|
+
compiler?: {
|
|
79
|
+
target?: 'es2020' | 'es2022' | 'esnext';
|
|
80
|
+
minify?: boolean;
|
|
81
|
+
sourceMap?: boolean;
|
|
82
|
+
};
|
|
83
|
+
/** Server configuration */
|
|
84
|
+
server?: {
|
|
85
|
+
port?: number;
|
|
86
|
+
host?: string;
|
|
87
|
+
};
|
|
88
|
+
/** Styling options */
|
|
89
|
+
styling?: {
|
|
90
|
+
tailwind?: boolean;
|
|
91
|
+
cssModules?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/** TypeScript options */
|
|
94
|
+
typescript?: {
|
|
95
|
+
strict?: boolean;
|
|
96
|
+
};
|
|
97
|
+
/** Build output */
|
|
98
|
+
build?: {
|
|
99
|
+
outDir?: string;
|
|
100
|
+
analyze?: boolean;
|
|
101
|
+
};
|
|
102
|
+
/** Deployment configuration */
|
|
103
|
+
deploy?: {
|
|
104
|
+
function?: FunctionConfig;
|
|
105
|
+
headers?: Record<string, string>;
|
|
106
|
+
redirects?: Array<{
|
|
107
|
+
from: string;
|
|
108
|
+
to: string;
|
|
109
|
+
status?: number;
|
|
110
|
+
}>;
|
|
111
|
+
rewrites?: Array<{
|
|
112
|
+
from: string;
|
|
113
|
+
to: string;
|
|
114
|
+
}>;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Define Zylaris configuration with type checking
|
|
119
|
+
*/
|
|
120
|
+
export declare function defineConfig(config: ZylarisConfig): ZylarisConfig;
|
|
121
|
+
/** Preset configurations for common setups */
|
|
122
|
+
export declare const presets: {
|
|
123
|
+
/** Static site (GitHub Pages, Netlify Static, etc.) */
|
|
124
|
+
static: ZylarisConfig;
|
|
125
|
+
/** Node.js server */
|
|
126
|
+
node: ZylarisConfig;
|
|
127
|
+
/** Vercel Serverless */
|
|
128
|
+
vercel: ZylarisConfig;
|
|
129
|
+
/** Vercel Edge */
|
|
130
|
+
vercelEdge: ZylarisConfig;
|
|
131
|
+
/** Netlify Functions */
|
|
132
|
+
netlify: ZylarisConfig;
|
|
133
|
+
/** Netlify Edge */
|
|
134
|
+
netlifyEdge: ZylarisConfig;
|
|
135
|
+
/** Cloudflare Pages */
|
|
136
|
+
cloudflare: ZylarisConfig;
|
|
137
|
+
/** Deno Deploy */
|
|
138
|
+
deno: ZylarisConfig;
|
|
139
|
+
/** Bun runtime */
|
|
140
|
+
bun: ZylarisConfig;
|
|
141
|
+
};
|
|
142
|
+
export default defineConfig;
|
|
143
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Configuration types and helper for Zylaris
|
|
2
|
+
/**
|
|
3
|
+
* Define Zylaris configuration with type checking
|
|
4
|
+
*/
|
|
5
|
+
export function defineConfig(config) {
|
|
6
|
+
return config;
|
|
7
|
+
}
|
|
8
|
+
/** Preset configurations for common setups */
|
|
9
|
+
export const presets = {
|
|
10
|
+
/** Static site (GitHub Pages, Netlify Static, etc.) */
|
|
11
|
+
static: defineConfig({
|
|
12
|
+
adapter: 'static',
|
|
13
|
+
rendering: { default: 'ssg' },
|
|
14
|
+
islands: { mode: 'off' },
|
|
15
|
+
}),
|
|
16
|
+
/** Node.js server */
|
|
17
|
+
node: defineConfig({
|
|
18
|
+
adapter: 'node',
|
|
19
|
+
runtime: 'node',
|
|
20
|
+
rendering: { default: 'ssr' },
|
|
21
|
+
islands: { mode: 'auto' },
|
|
22
|
+
}),
|
|
23
|
+
/** Vercel Serverless */
|
|
24
|
+
vercel: defineConfig({
|
|
25
|
+
adapter: 'vercel',
|
|
26
|
+
runtime: 'edge',
|
|
27
|
+
rendering: { default: 'ssr' },
|
|
28
|
+
islands: { mode: 'auto' },
|
|
29
|
+
}),
|
|
30
|
+
/** Vercel Edge */
|
|
31
|
+
vercelEdge: defineConfig({
|
|
32
|
+
adapter: {
|
|
33
|
+
target: 'vercel',
|
|
34
|
+
function: { edge: true },
|
|
35
|
+
},
|
|
36
|
+
runtime: 'edge',
|
|
37
|
+
rendering: { default: 'ssr' },
|
|
38
|
+
islands: { mode: 'auto' },
|
|
39
|
+
}),
|
|
40
|
+
/** Netlify Functions */
|
|
41
|
+
netlify: defineConfig({
|
|
42
|
+
adapter: 'netlify',
|
|
43
|
+
runtime: 'node',
|
|
44
|
+
rendering: { default: 'ssr' },
|
|
45
|
+
islands: { mode: 'auto' },
|
|
46
|
+
}),
|
|
47
|
+
/** Netlify Edge */
|
|
48
|
+
netlifyEdge: defineConfig({
|
|
49
|
+
adapter: {
|
|
50
|
+
target: 'netlify',
|
|
51
|
+
function: { edge: true },
|
|
52
|
+
},
|
|
53
|
+
runtime: 'edge',
|
|
54
|
+
rendering: { default: 'ssr' },
|
|
55
|
+
islands: { mode: 'auto' },
|
|
56
|
+
}),
|
|
57
|
+
/** Cloudflare Pages */
|
|
58
|
+
cloudflare: defineConfig({
|
|
59
|
+
adapter: 'cloudflare',
|
|
60
|
+
runtime: 'edge',
|
|
61
|
+
rendering: { default: 'ssr' },
|
|
62
|
+
islands: { mode: 'auto' },
|
|
63
|
+
}),
|
|
64
|
+
/** Deno Deploy */
|
|
65
|
+
deno: defineConfig({
|
|
66
|
+
adapter: 'deno',
|
|
67
|
+
runtime: 'deno',
|
|
68
|
+
rendering: { default: 'ssr' },
|
|
69
|
+
islands: { mode: 'auto' },
|
|
70
|
+
}),
|
|
71
|
+
/** Bun runtime */
|
|
72
|
+
bun: defineConfig({
|
|
73
|
+
adapter: 'bun',
|
|
74
|
+
runtime: 'bun',
|
|
75
|
+
rendering: { default: 'ssr' },
|
|
76
|
+
islands: { mode: 'auto' },
|
|
77
|
+
}),
|
|
78
|
+
};
|
|
79
|
+
export default defineConfig;
|
|
80
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAoH7C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,uDAAuD;IACvD,MAAM,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;KACzB,CAAC;IAEF,qBAAqB;IACrB,IAAI,EAAE,YAAY,CAAC;QACjB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,wBAAwB;IACxB,MAAM,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,kBAAkB;IAClB,UAAU,EAAE,YAAY,CAAC;QACvB,OAAO,EAAE;YACP,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACzB;QACD,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,wBAAwB;IACxB,OAAO,EAAE,YAAY,CAAC;QACpB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,mBAAmB;IACnB,WAAW,EAAE,YAAY,CAAC;QACxB,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACzB;QACD,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,uBAAuB;IACvB,UAAU,EAAE,YAAY,CAAC;QACvB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,kBAAkB;IAClB,IAAI,EAAE,YAAY,CAAC;QACjB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;IAEF,kBAAkB;IAClB,GAAG,EAAE,YAAY,CAAC;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAC;CACH,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import type { Signal } from '@zylaris/reactivity';
|
|
3
|
+
export declare function useSignal<T>(initialValue: T): Signal<T>;
|
|
4
|
+
export declare function useComputed<T>(fn: () => T): T;
|
|
5
|
+
export declare function useResource<T>(fetcher: () => Promise<T>): {
|
|
6
|
+
refetch: () => Promise<void>;
|
|
7
|
+
mutate: (data: T) => void;
|
|
8
|
+
status: "pending";
|
|
9
|
+
data?: undefined;
|
|
10
|
+
error?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
refetch: () => Promise<void>;
|
|
13
|
+
mutate: (data: T) => void;
|
|
14
|
+
status: "error";
|
|
15
|
+
data?: undefined;
|
|
16
|
+
error: Error;
|
|
17
|
+
} | {
|
|
18
|
+
refetch: () => Promise<void>;
|
|
19
|
+
mutate: (data: T) => void;
|
|
20
|
+
status: "success";
|
|
21
|
+
data: T;
|
|
22
|
+
error?: undefined;
|
|
23
|
+
};
|
|
24
|
+
export declare function useStore<T extends object>(store: T): T;
|
|
25
|
+
export declare const useIsomorphicLayoutEffect: typeof useEffect;
|
|
26
|
+
export declare function useEventListener(eventName: string, handler: (event: Event) => void, element?: HTMLElement | Window): void;
|
|
27
|
+
export declare function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T) => void];
|
|
28
|
+
export declare function useDebounce<T>(value: T, delay: number): T;
|
|
29
|
+
export declare function useThrottle<T extends (...args: unknown[]) => unknown>(fn: T, limit: number): T;
|
|
30
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAGvD;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAU7C;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;EAcvD;AAGD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAStD;AAGD,eAAO,MAAM,yBAAyB,kBACgB,CAAC;AAGvD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC/B,OAAO,GAAE,WAAW,GAAG,MAAe,QAmBvC;AAGD,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAuBxF;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAYzD;AAGD,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACnE,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACZ,CAAC,CAaH"}
|