wexts 4.1.0 → 4.1.5

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.
Files changed (199) hide show
  1. package/README.md +49 -49
  2. package/bin/wexts.cjs +2 -2
  3. package/package.json +153 -148
  4. package/templates/.dockerignore +43 -43
  5. package/templates/.env.example +17 -17
  6. package/templates/Dockerfile +60 -60
  7. package/templates/Procfile +1 -1
  8. package/templates/README.md +67 -67
  9. package/templates/api-sdk.ts +115 -115
  10. package/templates/docker-compose.yml +34 -34
  11. package/templates/nestjs-api/.env.example +3 -3
  12. package/templates/nestjs-api/README.md +87 -87
  13. package/templates/nestjs-api/nest-cli.json +6 -6
  14. package/templates/nestjs-api/package.json +40 -40
  15. package/templates/nestjs-api/prisma/migrations/20251123205437_init/migration.sql +24 -24
  16. package/templates/nestjs-api/prisma/migrations/migration_lock.toml +3 -3
  17. package/templates/nestjs-api/prisma/schema.prisma +29 -29
  18. package/templates/nestjs-api/src/app.module.ts +17 -17
  19. package/templates/nestjs-api/src/auth/auth.controller.ts +27 -27
  20. package/templates/nestjs-api/src/auth/auth.module.ts +37 -37
  21. package/templates/nestjs-api/src/auth/auth.service.ts +86 -86
  22. package/templates/nestjs-api/src/auth/dto/auth.dto.ts +22 -22
  23. package/templates/nestjs-api/src/auth/guards/jwt-auth.guard.ts +5 -5
  24. package/templates/nestjs-api/src/auth/strategies/jwt.strategy.ts +27 -27
  25. package/templates/nestjs-api/src/main.ts +32 -32
  26. package/templates/nestjs-api/src/prisma/prisma.module.ts +9 -9
  27. package/templates/nestjs-api/src/prisma/prisma.service.ts +14 -14
  28. package/templates/nestjs-api/src/todos/dto/todo.dto.ts +24 -24
  29. package/templates/nestjs-api/src/todos/todos.controller.ts +39 -39
  30. package/templates/nestjs-api/src/todos/todos.module.ts +11 -11
  31. package/templates/nestjs-api/src/todos/todos.service.ts +53 -53
  32. package/templates/nestjs-api/src/users/users.controller.ts +14 -14
  33. package/templates/nestjs-api/src/users/users.module.ts +12 -12
  34. package/templates/nestjs-api/src/users/users.service.ts +19 -19
  35. package/templates/nestjs-api/tsconfig.json +39 -39
  36. package/templates/nextjs-web/README.md +76 -76
  37. package/templates/nextjs-web/app/actions/auth.ts +108 -108
  38. package/templates/nextjs-web/app/dashboard/error.tsx +39 -39
  39. package/templates/nextjs-web/app/dashboard/loading.tsx +14 -14
  40. package/templates/nextjs-web/app/dashboard/page.tsx +5 -5
  41. package/templates/nextjs-web/app/globals.css +93 -93
  42. package/templates/nextjs-web/app/layout.tsx +29 -29
  43. package/templates/nextjs-web/app/login/page.tsx +5 -5
  44. package/templates/nextjs-web/app/page.tsx +28 -28
  45. package/templates/nextjs-web/app/register/page.tsx +5 -5
  46. package/templates/nextjs-web/components/ui/button.tsx +56 -56
  47. package/templates/nextjs-web/components/ui/card.tsx +79 -79
  48. package/templates/nextjs-web/components/ui/input.tsx +25 -25
  49. package/templates/nextjs-web/components/ui/label.tsx +24 -24
  50. package/templates/nextjs-web/features/auth/LoginForm.tsx +140 -140
  51. package/templates/nextjs-web/features/auth/RegisterForm.tsx +159 -159
  52. package/templates/nextjs-web/features/auth/api.ts +35 -35
  53. package/templates/nextjs-web/features/auth/index.ts +3 -3
  54. package/templates/nextjs-web/features/dashboard/DashboardView.tsx +204 -204
  55. package/templates/nextjs-web/features/dashboard/api.ts +9 -9
  56. package/templates/nextjs-web/features/dashboard/components.tsx +74 -74
  57. package/templates/nextjs-web/features/dashboard/index.ts +3 -3
  58. package/templates/nextjs-web/hooks/index.ts +4 -4
  59. package/templates/nextjs-web/lib/api-client.ts +89 -89
  60. package/templates/nextjs-web/lib/api.ts +115 -115
  61. package/templates/nextjs-web/lib/axios-global-config.ts +17 -17
  62. package/templates/nextjs-web/lib/utils.ts +6 -6
  63. package/templates/nextjs-web/lib/wexts-client.ts +4 -4
  64. package/templates/nextjs-web/next-env.d.ts +6 -6
  65. package/templates/nextjs-web/next.config.ts +20 -20
  66. package/templates/nextjs-web/package.json +37 -37
  67. package/templates/nextjs-web/postcss.config.js +6 -6
  68. package/templates/nextjs-web/tailwind.config.ts +69 -69
  69. package/templates/nextjs-web/tsconfig.json +41 -41
  70. package/templates/nixpacks.toml +11 -11
  71. package/templates/root-package.json +31 -31
  72. package/templates/server.ts +66 -66
  73. package/templates/tsconfig.json +30 -30
  74. package/dist/chunk-2KAQYLVN.js +0 -1
  75. package/dist/chunk-2KAQYLVN.js.map +0 -1
  76. package/dist/chunk-2LJVUMXW.js +0 -228
  77. package/dist/chunk-2LJVUMXW.js.map +0 -1
  78. package/dist/chunk-342VRT25.mjs +0 -504
  79. package/dist/chunk-342VRT25.mjs.map +0 -1
  80. package/dist/chunk-7HNQWJWV.js +0 -504
  81. package/dist/chunk-7HNQWJWV.js.map +0 -1
  82. package/dist/chunk-7QKLIVRF.js +0 -94
  83. package/dist/chunk-7QKLIVRF.js.map +0 -1
  84. package/dist/chunk-7SSCNCTW.mjs +0 -137
  85. package/dist/chunk-7SSCNCTW.mjs.map +0 -1
  86. package/dist/chunk-7TLSPR65.mjs +0 -95
  87. package/dist/chunk-7TLSPR65.mjs.map +0 -1
  88. package/dist/chunk-7WULUGLH.mjs +0 -22
  89. package/dist/chunk-7WULUGLH.mjs.map +0 -1
  90. package/dist/chunk-AVMQJWYD.js +0 -95
  91. package/dist/chunk-AVMQJWYD.js.map +0 -1
  92. package/dist/chunk-BG56B4DE.js +0 -106
  93. package/dist/chunk-BG56B4DE.js.map +0 -1
  94. package/dist/chunk-CLM5PNSG.mjs +0 -496
  95. package/dist/chunk-CLM5PNSG.mjs.map +0 -1
  96. package/dist/chunk-DNLGCKTT.js +0 -31
  97. package/dist/chunk-DNLGCKTT.js.map +0 -1
  98. package/dist/chunk-JHOVXH3X.mjs +0 -65
  99. package/dist/chunk-JHOVXH3X.mjs.map +0 -1
  100. package/dist/chunk-MXINIFPC.js +0 -105
  101. package/dist/chunk-MXINIFPC.js.map +0 -1
  102. package/dist/chunk-O4II6N34.js +0 -137
  103. package/dist/chunk-O4II6N34.js.map +0 -1
  104. package/dist/chunk-SE32ZPOZ.js +0 -496
  105. package/dist/chunk-SE32ZPOZ.js.map +0 -1
  106. package/dist/chunk-UAL54DVV.mjs +0 -106
  107. package/dist/chunk-UAL54DVV.mjs.map +0 -1
  108. package/dist/chunk-WCKSKU3C.js +0 -65
  109. package/dist/chunk-WCKSKU3C.js.map +0 -1
  110. package/dist/chunk-WU6FW77M.mjs +0 -105
  111. package/dist/chunk-WU6FW77M.mjs.map +0 -1
  112. package/dist/chunk-XE4OXN2W.js +0 -12
  113. package/dist/chunk-XE4OXN2W.js.map +0 -1
  114. package/dist/chunk-YBM3IJEA.mjs +0 -94
  115. package/dist/chunk-YBM3IJEA.mjs.map +0 -1
  116. package/dist/chunk-YN6WIWNQ.mjs +0 -228
  117. package/dist/chunk-YN6WIWNQ.mjs.map +0 -1
  118. package/dist/chunk-YSLEF5C5.mjs +0 -1
  119. package/dist/chunk-YSLEF5C5.mjs.map +0 -1
  120. package/dist/chunk-ZX7QIN24.mjs +0 -31
  121. package/dist/chunk-ZX7QIN24.mjs.map +0 -1
  122. package/dist/cli/index.d.mts +0 -23
  123. package/dist/cli/index.d.ts +0 -23
  124. package/dist/cli/index.js +0 -716
  125. package/dist/cli/index.js.map +0 -1
  126. package/dist/cli/index.mjs +0 -718
  127. package/dist/cli/index.mjs.map +0 -1
  128. package/dist/client/index.d.mts +0 -21
  129. package/dist/client/index.d.ts +0 -21
  130. package/dist/client/index.js +0 -13
  131. package/dist/client/index.js.map +0 -1
  132. package/dist/client/index.mjs +0 -13
  133. package/dist/client/index.mjs.map +0 -1
  134. package/dist/codegen/index.d.mts +0 -2
  135. package/dist/codegen/index.d.ts +0 -2
  136. package/dist/codegen/index.js +0 -16
  137. package/dist/codegen/index.js.map +0 -1
  138. package/dist/codegen/index.mjs +0 -16
  139. package/dist/codegen/index.mjs.map +0 -1
  140. package/dist/decorators-BT1FFqN0.d.mts +0 -29
  141. package/dist/decorators-DvS58PqC.d.ts +0 -29
  142. package/dist/dev-server/index.d.mts +0 -1
  143. package/dist/dev-server/index.d.ts +0 -1
  144. package/dist/dev-server/index.js +0 -13
  145. package/dist/dev-server/index.js.map +0 -1
  146. package/dist/dev-server/index.mjs +0 -13
  147. package/dist/dev-server/index.mjs.map +0 -1
  148. package/dist/index-7QeQEf37.d.ts +0 -92
  149. package/dist/index-7RvU-jGE.d.mts +0 -66
  150. package/dist/index-7RvU-jGE.d.ts +0 -66
  151. package/dist/index-8nzxy0NN.d.mts +0 -92
  152. package/dist/index-Co5ZsLqq.d.ts +0 -58
  153. package/dist/index-D94W1__r.d.mts +0 -58
  154. package/dist/index-DQmyVp6F.d.mts +0 -27
  155. package/dist/index-KL_1BrQb.d.ts +0 -27
  156. package/dist/index.d.mts +0 -294
  157. package/dist/index.d.ts +0 -294
  158. package/dist/index.js +0 -424
  159. package/dist/index.js.map +0 -1
  160. package/dist/index.mjs +0 -424
  161. package/dist/index.mjs.map +0 -1
  162. package/dist/nest/index.d.mts +0 -3
  163. package/dist/nest/index.d.ts +0 -3
  164. package/dist/nest/index.js +0 -38
  165. package/dist/nest/index.js.map +0 -1
  166. package/dist/nest/index.mjs +0 -38
  167. package/dist/nest/index.mjs.map +0 -1
  168. package/dist/next/index.d.mts +0 -66
  169. package/dist/next/index.d.ts +0 -66
  170. package/dist/next/index.js +0 -289
  171. package/dist/next/index.js.map +0 -1
  172. package/dist/next/index.mjs +0 -251
  173. package/dist/next/index.mjs.map +0 -1
  174. package/dist/rpc/index.d.mts +0 -2
  175. package/dist/rpc/index.d.ts +0 -2
  176. package/dist/rpc/index.js +0 -23
  177. package/dist/rpc/index.js.map +0 -1
  178. package/dist/rpc/index.mjs +0 -23
  179. package/dist/rpc/index.mjs.map +0 -1
  180. package/dist/runtime/index.d.mts +0 -55
  181. package/dist/runtime/index.d.ts +0 -55
  182. package/dist/runtime/index.js +0 -221
  183. package/dist/runtime/index.js.map +0 -1
  184. package/dist/runtime/index.mjs +0 -221
  185. package/dist/runtime/index.mjs.map +0 -1
  186. package/dist/types/index.d.mts +0 -12
  187. package/dist/types/index.d.ts +0 -12
  188. package/dist/types/index.js +0 -2
  189. package/dist/types/index.js.map +0 -1
  190. package/dist/types/index.mjs +0 -3
  191. package/dist/types/index.mjs.map +0 -1
  192. package/dist/types-7d_fC-C3.d.mts +0 -32
  193. package/dist/types-7d_fC-C3.d.ts +0 -32
  194. package/dist/vercel-builder/index.d.mts +0 -58
  195. package/dist/vercel-builder/index.d.ts +0 -58
  196. package/dist/vercel-builder/index.js +0 -330
  197. package/dist/vercel-builder/index.js.map +0 -1
  198. package/dist/vercel-builder/index.mjs +0 -330
  199. package/dist/vercel-builder/index.mjs.map +0 -1
package/dist/index.d.ts DELETED
@@ -1,294 +0,0 @@
1
- export { i as Codegen } from './index-7QeQEf37.js';
2
- export { i as DevServer } from './index-7RvU-jGE.js';
3
- export { i as Nest } from './index-Co5ZsLqq.js';
4
- import React, { ReactNode } from 'react';
5
- import { FusionFetcher, WextsRpcClient } from './client/index.js';
6
- export { i as Rpc } from './index-KL_1BrQb.js';
7
- export { Todo, User } from './types/index.js';
8
- import './types-7d_fC-C3.js';
9
- import './decorators-DvS58PqC.js';
10
-
11
- interface FusionConfig {
12
- [key: string]: any;
13
- }
14
- declare class ConfigLoader {
15
- private config;
16
- private configDir;
17
- constructor(configDir?: string);
18
- /**
19
- * Load configuration from file or environment
20
- */
21
- load(key: string, defaultValue?: any): any;
22
- /**
23
- * Set configuration value
24
- */
25
- set(key: string, value: any): void;
26
- /**
27
- * Get all configuration
28
- */
29
- getAll(): FusionConfig;
30
- /**
31
- * Parse environment value (handles JSON strings)
32
- */
33
- private parseEnvValue;
34
- }
35
- declare const config: ConfigLoader;
36
- declare function load(key: string, defaultValue?: any): any;
37
-
38
- declare enum LogLevel {
39
- DEBUG = 0,
40
- INFO = 1,
41
- WARN = 2,
42
- ERROR = 3
43
- }
44
- interface LoggerOptions {
45
- level?: LogLevel;
46
- prefix?: string;
47
- timestamp?: boolean;
48
- }
49
- declare class Logger {
50
- private level;
51
- private prefix;
52
- private timestamp;
53
- constructor(options?: LoggerOptions);
54
- private formatMessage;
55
- debug(...args: any[]): void;
56
- info(...args: any[]): void;
57
- warn(...args: any[]): void;
58
- error(...args: any[]): void;
59
- success(...args: any[]): void;
60
- }
61
- declare const logger: Logger;
62
- declare function createLogger(options: LoggerOptions): Logger;
63
-
64
- declare class FileSystem {
65
- /**
66
- * Read file as string
67
- */
68
- readFile(filePath: string, encoding?: BufferEncoding): Promise<string>;
69
- /**
70
- * Write file
71
- */
72
- writeFile(filePath: string, content: string): Promise<void>;
73
- /**
74
- * Read JSON file
75
- */
76
- readJSON<T = any>(filePath: string): Promise<T>;
77
- /**
78
- * Write JSON file
79
- */
80
- writeJSON(filePath: string, data: any, pretty?: boolean): Promise<void>;
81
- /**
82
- * Check if file/directory exists
83
- */
84
- exists(filePath: string): Promise<boolean>;
85
- /**
86
- * Ensure directory exists (create if not)
87
- */
88
- ensureDir(dirPath: string): Promise<void>;
89
- /**
90
- * Copy file
91
- */
92
- copyFile(src: string, dest: string): Promise<void>;
93
- /**
94
- * Read directory
95
- */
96
- readDir(dirPath: string): Promise<string[]>;
97
- }
98
- declare const filesystem: FileSystem;
99
-
100
- declare class ProcessManager {
101
- /**
102
- * Setup process error handlers
103
- */
104
- static initialize(): void;
105
- /**
106
- * Graceful shutdown helper
107
- */
108
- static shutdown(cleanup: () => Promise<void>): Promise<void>;
109
- }
110
-
111
- declare class FusionError extends Error {
112
- code?: string | undefined;
113
- constructor(message: string, code?: string | undefined);
114
- }
115
- declare class ConfigError extends FusionError {
116
- constructor(message: string);
117
- }
118
- declare class ValidationError extends FusionError {
119
- constructor(message: string);
120
- }
121
- declare class APIError extends FusionError {
122
- statusCode?: number | undefined;
123
- constructor(message: string, statusCode?: number | undefined);
124
- }
125
-
126
- type index$4_APIError = APIError;
127
- declare const index$4_APIError: typeof APIError;
128
- type index$4_ConfigError = ConfigError;
129
- declare const index$4_ConfigError: typeof ConfigError;
130
- type index$4_ConfigLoader = ConfigLoader;
131
- declare const index$4_ConfigLoader: typeof ConfigLoader;
132
- type index$4_FileSystem = FileSystem;
133
- declare const index$4_FileSystem: typeof FileSystem;
134
- type index$4_FusionConfig = FusionConfig;
135
- type index$4_FusionError = FusionError;
136
- declare const index$4_FusionError: typeof FusionError;
137
- type index$4_LogLevel = LogLevel;
138
- declare const index$4_LogLevel: typeof LogLevel;
139
- type index$4_Logger = Logger;
140
- declare const index$4_Logger: typeof Logger;
141
- type index$4_LoggerOptions = LoggerOptions;
142
- type index$4_ProcessManager = ProcessManager;
143
- declare const index$4_ProcessManager: typeof ProcessManager;
144
- type index$4_ValidationError = ValidationError;
145
- declare const index$4_ValidationError: typeof ValidationError;
146
- declare const index$4_config: typeof config;
147
- declare const index$4_createLogger: typeof createLogger;
148
- declare const index$4_filesystem: typeof filesystem;
149
- declare const index$4_load: typeof load;
150
- declare const index$4_logger: typeof logger;
151
- declare namespace index$4 {
152
- export { index$4_APIError as APIError, index$4_ConfigError as ConfigError, index$4_ConfigLoader as ConfigLoader, index$4_FileSystem as FileSystem, type index$4_FusionConfig as FusionConfig, index$4_FusionError as FusionError, index$4_LogLevel as LogLevel, index$4_Logger as Logger, type index$4_LoggerOptions as LoggerOptions, index$4_ProcessManager as ProcessManager, index$4_ValidationError as ValidationError, index$4_config as config, index$4_createLogger as createLogger, index$4_filesystem as filesystem, index$4_load as load, index$4_logger as logger };
153
- }
154
-
155
- declare const loader: {
156
- load: () => {};
157
- };
158
-
159
- declare const index$3_loader: typeof loader;
160
- declare namespace index$3 {
161
- export { index$3_loader as loader };
162
- }
163
-
164
- declare const server: {
165
- start: () => void;
166
- };
167
-
168
- declare const index$2_server: typeof server;
169
- declare namespace index$2 {
170
- export { index$2_server as server };
171
- }
172
-
173
- interface ScaffoldOptions {
174
- projectName: string;
175
- template: 'monorepo' | 'api' | 'web';
176
- packageManager?: 'npm' | 'pnpm' | 'yarn';
177
- }
178
- /**
179
- * @deprecated Use the `wexts create` CLI and `examples/hello-rpc` canonical scaffold instead.
180
- */
181
- declare class ProjectScaffolder {
182
- scaffold(options: ScaffoldOptions): Promise<void>;
183
- private createMonorepo;
184
- private createNestJSApp;
185
- private createNextJSApp;
186
- }
187
-
188
- type index$1_ProjectScaffolder = ProjectScaffolder;
189
- declare const index$1_ProjectScaffolder: typeof ProjectScaffolder;
190
- type index$1_ScaffoldOptions = ScaffoldOptions;
191
- declare namespace index$1 {
192
- export { index$1_ProjectScaffolder as ProjectScaffolder, type index$1_ScaffoldOptions as ScaffoldOptions };
193
- }
194
-
195
- interface FusionContextType {
196
- client: FusionFetcher;
197
- wexts: WextsRpcClient;
198
- }
199
- interface FusionProviderProps {
200
- children: ReactNode;
201
- baseUrl?: string;
202
- rpcBaseUrl?: string;
203
- rpcClient?: object;
204
- }
205
- /**
206
- * FusionProvider - Provides API client to React components
207
- * Usage:
208
- * ```tsx
209
- * <FusionProvider baseUrl="/api">
210
- * <App />
211
- * </FusionProvider>
212
- * ```
213
- */
214
- declare function FusionProvider({ children, baseUrl, rpcBaseUrl, rpcClient }: FusionProviderProps): React.JSX.Element;
215
- /**
216
- * useFusion hook - Access API client in components
217
- * Usage:
218
- * ```tsx
219
- * const { client } = useFusion();
220
- * const data = await client.get('/users');
221
- * ```
222
- */
223
- declare function useFusion(): FusionContextType;
224
- declare function useWexts<TClient = WextsRpcClient>(): TClient;
225
-
226
- interface AuthUser {
227
- id: string;
228
- email: string;
229
- name?: string;
230
- }
231
- interface UseAuthReturn {
232
- user: AuthUser | null;
233
- loading: boolean;
234
- login: (email: string, password: string) => Promise<void>;
235
- logout: () => Promise<void>;
236
- isAuthenticated: boolean;
237
- }
238
- /**
239
- * useAuth hook - Authentication state management
240
- * Usage:
241
- * ```tsx
242
- * const { user, login, logout, isAuthenticated } = useAuth();
243
- * ```
244
- */
245
- declare function useAuth(): UseAuthReturn;
246
-
247
- type index_AuthUser = AuthUser;
248
- declare const index_FusionProvider: typeof FusionProvider;
249
- type index_FusionProviderProps = FusionProviderProps;
250
- type index_UseAuthReturn = UseAuthReturn;
251
- declare const index_useAuth: typeof useAuth;
252
- declare const index_useFusion: typeof useFusion;
253
- declare const index_useWexts: typeof useWexts;
254
- declare namespace index {
255
- export { type index_AuthUser as AuthUser, index_FusionProvider as FusionProvider, type index_FusionProviderProps as FusionProviderProps, type index_UseAuthReturn as UseAuthReturn, index_useAuth as useAuth, index_useFusion as useFusion, index_useWexts as useWexts };
256
- }
257
-
258
- interface WextsErrorOptions {
259
- code: string;
260
- message: string;
261
- cause?: unknown;
262
- suggestedFix?: string;
263
- docsSlug?: string;
264
- }
265
- declare class WextsError extends Error {
266
- readonly code: string;
267
- readonly suggestedFix?: string;
268
- readonly docsSlug?: string;
269
- constructor(options: WextsErrorOptions);
270
- get docsUrl(): string | undefined;
271
- }
272
- declare class WextsRpcError extends WextsError {
273
- constructor(options: Omit<WextsErrorOptions, 'code'> & {
274
- code?: string;
275
- });
276
- }
277
- declare class WextsCodegenError extends WextsError {
278
- constructor(options: Omit<WextsErrorOptions, 'code'> & {
279
- code?: string;
280
- });
281
- }
282
- declare class WextsRuntimeError extends WextsError {
283
- constructor(options: Omit<WextsErrorOptions, 'code'> & {
284
- code?: string;
285
- });
286
- }
287
- declare class WextsSecurityError extends WextsError {
288
- constructor(options: Omit<WextsErrorOptions, 'code'> & {
289
- code?: string;
290
- });
291
- }
292
- declare function formatWextsError(error: unknown): string;
293
-
294
- export { index$3 as Config, index$4 as Core, index$1 as CreateFusion, index$2 as Insight, index as Next, WextsCodegenError, WextsError, type WextsErrorOptions, WextsRpcError, WextsRuntimeError, WextsSecurityError, formatWextsError };
package/dist/index.js DELETED
@@ -1,424 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;
2
-
3
- var _chunk2LJVUMXWjs = require('./chunk-2LJVUMXW.js');
4
-
5
-
6
-
7
- var _chunkO4II6N34js = require('./chunk-O4II6N34.js');
8
-
9
-
10
- var _chunkBG56B4DEjs = require('./chunk-BG56B4DE.js');
11
-
12
-
13
- var _chunkDNLGCKTTjs = require('./chunk-DNLGCKTT.js');
14
- require('./chunk-7QKLIVRF.js');
15
- require('./chunk-2KAQYLVN.js');
16
-
17
-
18
-
19
-
20
- var _chunk7HNQWJWVjs = require('./chunk-7HNQWJWV.js');
21
-
22
-
23
-
24
-
25
-
26
- var _chunkWCKSKU3Cjs = require('./chunk-WCKSKU3C.js');
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
- var _chunkAVMQJWYDjs = require('./chunk-AVMQJWYD.js');
35
-
36
-
37
-
38
- var _chunkXE4OXN2Wjs = require('./chunk-XE4OXN2W.js');
39
-
40
- // src/core/index.ts
41
- var core_exports = {};
42
- _chunkXE4OXN2Wjs.__export.call(void 0, core_exports, {
43
- APIError: () => APIError,
44
- ConfigError: () => ConfigError,
45
- ConfigLoader: () => ConfigLoader,
46
- FileSystem: () => _chunk7HNQWJWVjs.FileSystem,
47
- FusionError: () => FusionError,
48
- LogLevel: () => _chunkWCKSKU3Cjs.LogLevel,
49
- Logger: () => _chunkWCKSKU3Cjs.Logger,
50
- ProcessManager: () => ProcessManager,
51
- ValidationError: () => ValidationError,
52
- config: () => config,
53
- createLogger: () => _chunkWCKSKU3Cjs.createLogger,
54
- filesystem: () => _chunk7HNQWJWVjs.filesystem,
55
- load: () => load,
56
- logger: () => _chunkWCKSKU3Cjs.logger
57
- });
58
-
59
- // src/core/config.ts
60
- var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
61
- var _path = require('path'); var path = _interopRequireWildcard(_path);
62
- var ConfigLoader = (_class = class {
63
- static {
64
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "ConfigLoader");
65
- }
66
- __init() {this.config = /* @__PURE__ */ new Map()}
67
-
68
- constructor(configDir = process.cwd()) {;_class.prototype.__init.call(this);
69
- this.configDir = configDir;
70
- }
71
- /**
72
- * Load configuration from file or environment
73
- */
74
- load(key, defaultValue) {
75
- if (this.config.has(key)) {
76
- return this.config.get(key);
77
- }
78
- const envKey = `FUSION_${key.toUpperCase()}`;
79
- if (process.env[envKey]) {
80
- const value = this.parseEnvValue(process.env[envKey]);
81
- this.config.set(key, value);
82
- return value;
83
- }
84
- const configPath = path.join(this.configDir, "fusion.config.json");
85
- if (fs.existsSync(configPath)) {
86
- try {
87
- const fileConfig = JSON.parse(fs.readFileSync(configPath, "utf-8"));
88
- if (fileConfig[key] !== void 0) {
89
- this.config.set(key, fileConfig[key]);
90
- return fileConfig[key];
91
- }
92
- } catch (error) {
93
- }
94
- }
95
- return defaultValue;
96
- }
97
- /**
98
- * Set configuration value
99
- */
100
- set(key, value) {
101
- this.config.set(key, value);
102
- }
103
- /**
104
- * Get all configuration
105
- */
106
- getAll() {
107
- return Object.fromEntries(this.config);
108
- }
109
- /**
110
- * Parse environment value (handles JSON strings)
111
- */
112
- parseEnvValue(value) {
113
- try {
114
- return JSON.parse(value);
115
- } catch (e) {
116
- return value;
117
- }
118
- }
119
- }, _class);
120
- var config = new ConfigLoader();
121
- function load(key, defaultValue) {
122
- return config.load(key, defaultValue);
123
- }
124
- _chunkXE4OXN2Wjs.__name.call(void 0, load, "load");
125
-
126
- // src/core/process-manager.ts
127
- var ProcessManager = class {
128
- static {
129
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "ProcessManager");
130
- }
131
- /**
132
- * Setup process error handlers
133
- */
134
- static initialize() {
135
- process.on("uncaughtException", (error) => {
136
- console.error("[Fusion] Uncaught Exception:", error);
137
- process.exit(1);
138
- });
139
- process.on("unhandledRejection", (reason, promise) => {
140
- console.error("[Fusion] Unhandled Rejection at:", promise, "reason:", reason);
141
- });
142
- process.on("SIGTERM", () => {
143
- console.log("[Fusion] SIGTERM received, shutting down gracefully");
144
- process.exit(0);
145
- });
146
- process.on("SIGINT", () => {
147
- console.log("[Fusion] SIGINT received, shutting down gracefully");
148
- process.exit(0);
149
- });
150
- }
151
- /**
152
- * Graceful shutdown helper
153
- */
154
- static async shutdown(cleanup) {
155
- try {
156
- await cleanup();
157
- process.exit(0);
158
- } catch (error) {
159
- console.error("[Fusion] Error during shutdown:", error);
160
- process.exit(1);
161
- }
162
- }
163
- };
164
-
165
- // src/core/errors.ts
166
- var FusionError = class extends Error {
167
- static {
168
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "FusionError");
169
- }
170
-
171
- constructor(message, code) {
172
- super(message), this.code = code;
173
- this.name = "FusionError";
174
- }
175
- };
176
- var ConfigError = class extends FusionError {
177
- static {
178
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "ConfigError");
179
- }
180
- constructor(message) {
181
- super(message, "CONFIG_ERROR");
182
- this.name = "ConfigError";
183
- }
184
- };
185
- var ValidationError = class extends FusionError {
186
- static {
187
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "ValidationError");
188
- }
189
- constructor(message) {
190
- super(message, "VALIDATION_ERROR");
191
- this.name = "ValidationError";
192
- }
193
- };
194
- var APIError = class extends FusionError {
195
- static {
196
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "APIError");
197
- }
198
-
199
- constructor(message, statusCode) {
200
- super(message, "API_ERROR"), this.statusCode = statusCode;
201
- this.name = "APIError";
202
- }
203
- };
204
-
205
- // src/config/index.ts
206
- var config_exports = {};
207
- _chunkXE4OXN2Wjs.__export.call(void 0, config_exports, {
208
- loader: () => loader
209
- });
210
-
211
- // src/config/loader.ts
212
- var loader = {
213
- load: /* @__PURE__ */ _chunkXE4OXN2Wjs.__name.call(void 0, () => ({}), "load")
214
- };
215
-
216
- // src/insight/index.ts
217
- var insight_exports = {};
218
- _chunkXE4OXN2Wjs.__export.call(void 0, insight_exports, {
219
- server: () => server
220
- });
221
-
222
- // src/insight/server.ts
223
- var server = {
224
- start: /* @__PURE__ */ _chunkXE4OXN2Wjs.__name.call(void 0, () => console.log("Insight server started"), "start")
225
- };
226
-
227
- // src/create-fusion/index.ts
228
- var create_fusion_exports = {};
229
- _chunkXE4OXN2Wjs.__export.call(void 0, create_fusion_exports, {
230
- ProjectScaffolder: () => ProjectScaffolder
231
- });
232
-
233
- // src/create-fusion/scaffold.ts
234
- var _promises = require('fs/promises');
235
-
236
- var ProjectScaffolder = class {
237
- static {
238
- _chunkXE4OXN2Wjs.__name.call(void 0, this, "ProjectScaffolder");
239
- }
240
- async scaffold(options) {
241
- const { projectName, template } = options;
242
- const projectPath = _path.join.call(void 0, process.cwd(), projectName);
243
- _chunkWCKSKU3Cjs.logger.info(`Creating project at: ${projectPath}`);
244
- await _promises.mkdir.call(void 0, projectPath, {
245
- recursive: true
246
- });
247
- if (template === "monorepo") {
248
- await this.createMonorepo(projectPath, projectName);
249
- } else if (template === "api") {
250
- await this.createNestJSApp(projectPath, projectName);
251
- } else if (template === "web") {
252
- await this.createNextJSApp(projectPath, projectName);
253
- }
254
- _chunkWCKSKU3Cjs.logger.success(`Project ${projectName} created successfully!`);
255
- _chunkWCKSKU3Cjs.logger.info(`
256
- Next steps:`);
257
- _chunkWCKSKU3Cjs.logger.info(` cd ${projectName}`);
258
- _chunkWCKSKU3Cjs.logger.info(` wexts dev`);
259
- }
260
- async createMonorepo(projectPath, projectName) {
261
- await _promises.mkdir.call(void 0, _path.join.call(void 0, projectPath, "apps", "api"), {
262
- recursive: true
263
- });
264
- await _promises.mkdir.call(void 0, _path.join.call(void 0, projectPath, "apps", "web"), {
265
- recursive: true
266
- });
267
- await _promises.mkdir.call(void 0, _path.join.call(void 0, projectPath, "packages", "types"), {
268
- recursive: true
269
- });
270
- await _promises.mkdir.call(void 0, _path.join.call(void 0, projectPath, "packages", "api-client"), {
271
- recursive: true
272
- });
273
- const packageJson = {
274
- name: projectName,
275
- version: "0.0.1",
276
- private: true,
277
- workspaces: [
278
- "apps/*",
279
- "packages/*"
280
- ],
281
- scripts: {
282
- dev: "wexts dev",
283
- build: "wexts build"
284
- },
285
- devDependencies: {
286
- "wexts": "^4.0.0"
287
- }
288
- };
289
- await _promises.writeFile.call(void 0, _path.join.call(void 0, projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
290
- const readme = `# ${projectName}
291
-
292
- Created with the deprecated ProjectScaffolder compatibility API.
293
-
294
- Use examples/hello-rpc as the canonical Wexts reference.
295
-
296
- ## Getting Started
297
-
298
- \`\`\`bash
299
- wexts dev
300
- \`\`\`
301
- `;
302
- await _promises.writeFile.call(void 0, _path.join.call(void 0, projectPath, "README.md"), readme);
303
- }
304
- async createNestJSApp(projectPath, projectName) {
305
- await _promises.writeFile.call(void 0, _path.join.call(void 0, projectPath, "README.md"), `# ${projectName}
306
-
307
- Standalone API scaffolding through ProjectScaffolder is deprecated. Use examples/hello-rpc or wexts create for the canonical path.
308
- `);
309
- }
310
- async createNextJSApp(projectPath, projectName) {
311
- await _promises.writeFile.call(void 0, _path.join.call(void 0, projectPath, "README.md"), `# ${projectName}
312
-
313
- Standalone web scaffolding through ProjectScaffolder is deprecated. Use examples/hello-rpc or wexts create for the canonical path.
314
- `);
315
- }
316
- };
317
-
318
- // src/next/index.ts
319
- var next_exports = {};
320
- _chunkXE4OXN2Wjs.__export.call(void 0, next_exports, {
321
- FusionProvider: () => FusionProvider,
322
- useAuth: () => useAuth,
323
- useFusion: () => useFusion,
324
- useWexts: () => useWexts
325
- });
326
-
327
- // src/next/provider.tsx
328
- var _react = require('react'); var _react2 = _interopRequireDefault(_react);
329
- var FusionContext = /* @__PURE__ */ _react.createContext.call(void 0, null);
330
- function FusionProvider({ children, baseUrl = "/api", rpcBaseUrl = "/rpc", rpcClient }) {
331
- const client = _react2.default.useMemo(() => new (0, _chunkO4II6N34js.FusionFetcher)(baseUrl), [
332
- baseUrl
333
- ]);
334
- const wexts = _react2.default.useMemo(() => _nullishCoalesce(rpcClient, () => ( _chunkO4II6N34js.createWextsRpcClient.call(void 0, void 0, {
335
- baseUrl: rpcBaseUrl
336
- }))), [
337
- rpcBaseUrl,
338
- rpcClient
339
- ]);
340
- return /* @__PURE__ */ _react2.default.createElement(FusionContext.Provider, {
341
- value: {
342
- client,
343
- wexts
344
- }
345
- }, children);
346
- }
347
- _chunkXE4OXN2Wjs.__name.call(void 0, FusionProvider, "FusionProvider");
348
- function useFusion() {
349
- const context = _react.useContext.call(void 0, FusionContext);
350
- if (!context) {
351
- throw new Error("useFusion must be used within FusionProvider");
352
- }
353
- return context;
354
- }
355
- _chunkXE4OXN2Wjs.__name.call(void 0, useFusion, "useFusion");
356
- function useWexts() {
357
- const context = useFusion();
358
- return context.wexts;
359
- }
360
- _chunkXE4OXN2Wjs.__name.call(void 0, useWexts, "useWexts");
361
-
362
- // src/next/useAuth.ts
363
-
364
- function useAuth() {
365
- const { client } = useFusion();
366
- const [user, setUser] = _react.useState.call(void 0, null);
367
- const [loading, setLoading] = _react.useState.call(void 0, true);
368
- _react.useEffect.call(void 0, () => {
369
- const token = localStorage.getItem("fusion_token");
370
- if (token) {
371
- loadUser();
372
- } else {
373
- setLoading(false);
374
- }
375
- }, []);
376
- const loadUser = /* @__PURE__ */ _chunkXE4OXN2Wjs.__name.call(void 0, async () => {
377
- try {
378
- const userData = await client.get("/auth/me");
379
- setUser(userData);
380
- } catch (error) {
381
- localStorage.removeItem("fusion_token");
382
- } finally {
383
- setLoading(false);
384
- }
385
- }, "loadUser");
386
- const login = /* @__PURE__ */ _chunkXE4OXN2Wjs.__name.call(void 0, async (email, password) => {
387
- const response = await client.post("/auth/login", {
388
- email,
389
- password
390
- });
391
- localStorage.setItem("fusion_token", response.token);
392
- setUser(response.user);
393
- }, "login");
394
- const logout = /* @__PURE__ */ _chunkXE4OXN2Wjs.__name.call(void 0, async () => {
395
- localStorage.removeItem("fusion_token");
396
- setUser(null);
397
- }, "logout");
398
- return {
399
- user,
400
- loading,
401
- login,
402
- logout,
403
- isAuthenticated: !!user
404
- };
405
- }
406
- _chunkXE4OXN2Wjs.__name.call(void 0, useAuth, "useAuth");
407
-
408
-
409
-
410
-
411
-
412
-
413
-
414
-
415
-
416
-
417
-
418
-
419
-
420
-
421
-
422
-
423
- exports.Codegen = _chunk7HNQWJWVjs.codegen_exports; exports.Config = config_exports; exports.Core = core_exports; exports.CreateFusion = create_fusion_exports; exports.DevServer = _chunk2LJVUMXWjs.dev_server_exports; exports.Insight = insight_exports; exports.Nest = _chunkBG56B4DEjs.nest_exports; exports.Next = next_exports; exports.Rpc = _chunkDNLGCKTTjs.rpc_exports; exports.WextsCodegenError = _chunkAVMQJWYDjs.WextsCodegenError; exports.WextsError = _chunkAVMQJWYDjs.WextsError; exports.WextsRpcError = _chunkAVMQJWYDjs.WextsRpcError; exports.WextsRuntimeError = _chunkAVMQJWYDjs.WextsRuntimeError; exports.WextsSecurityError = _chunkAVMQJWYDjs.WextsSecurityError; exports.formatWextsError = _chunkAVMQJWYDjs.formatWextsError;
424
- //# sourceMappingURL=index.js.map