satset-react 0.0.1-beta.0

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 (141) hide show
  1. package/dist/adapter/index.d.ts +4 -0
  2. package/dist/adapter/index.d.ts.map +1 -0
  3. package/dist/adapter/index.js +8 -0
  4. package/dist/adapter/index.js.map +1 -0
  5. package/dist/adapter/node.d.ts +3 -0
  6. package/dist/adapter/node.d.ts.map +1 -0
  7. package/dist/adapter/node.js +244 -0
  8. package/dist/adapter/node.js.map +1 -0
  9. package/dist/adapter/types.d.ts +24 -0
  10. package/dist/adapter/types.d.ts.map +1 -0
  11. package/dist/adapter/types.js +3 -0
  12. package/dist/adapter/types.js.map +1 -0
  13. package/dist/adapter/vercel.d.ts +3 -0
  14. package/dist/adapter/vercel.d.ts.map +1 -0
  15. package/dist/adapter/vercel.js +173 -0
  16. package/dist/adapter/vercel.js.map +1 -0
  17. package/dist/assets/favicon.d.ts +2 -0
  18. package/dist/assets/favicon.d.ts.map +1 -0
  19. package/dist/assets/favicon.js +67 -0
  20. package/dist/assets/favicon.js.map +1 -0
  21. package/dist/assets/index.d.ts +6 -0
  22. package/dist/assets/index.d.ts.map +1 -0
  23. package/dist/assets/index.js +14 -0
  24. package/dist/assets/index.js.map +1 -0
  25. package/dist/assets/metadata.d.ts +23 -0
  26. package/dist/assets/metadata.d.ts.map +1 -0
  27. package/dist/assets/metadata.js +55 -0
  28. package/dist/assets/metadata.js.map +1 -0
  29. package/dist/assets/robots.d.ts +11 -0
  30. package/dist/assets/robots.d.ts.map +1 -0
  31. package/dist/assets/robots.js +70 -0
  32. package/dist/assets/robots.js.map +1 -0
  33. package/dist/assets/sitemap.d.ts +12 -0
  34. package/dist/assets/sitemap.d.ts.map +1 -0
  35. package/dist/assets/sitemap.js +71 -0
  36. package/dist/assets/sitemap.js.map +1 -0
  37. package/dist/cli/commands.d.ts +4 -0
  38. package/dist/cli/commands.d.ts.map +1 -0
  39. package/dist/cli/commands.js +74 -0
  40. package/dist/cli/commands.js.map +1 -0
  41. package/dist/cli/index.d.ts +3 -0
  42. package/dist/cli/index.d.ts.map +1 -0
  43. package/dist/cli/index.js +32 -0
  44. package/dist/cli/index.js.map +1 -0
  45. package/dist/components/ErrorBoundary.d.ts +22 -0
  46. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  47. package/dist/components/ErrorBoundary.js +56 -0
  48. package/dist/components/ErrorBoundary.js.map +1 -0
  49. package/dist/components/Image.d.ts +15 -0
  50. package/dist/components/Image.d.ts.map +1 -0
  51. package/dist/components/Image.js +65 -0
  52. package/dist/components/Image.js.map +1 -0
  53. package/dist/components/Link.d.ts +14 -0
  54. package/dist/components/Link.d.ts.map +1 -0
  55. package/dist/components/Link.js +67 -0
  56. package/dist/components/Link.js.map +1 -0
  57. package/dist/components/Script.d.ts +10 -0
  58. package/dist/components/Script.d.ts.map +1 -0
  59. package/dist/components/Script.js +60 -0
  60. package/dist/components/Script.js.map +1 -0
  61. package/dist/components/index.d.ts +5 -0
  62. package/dist/components/index.d.ts.map +1 -0
  63. package/dist/components/index.js +15 -0
  64. package/dist/components/index.js.map +1 -0
  65. package/dist/core/hydrate.d.ts +8 -0
  66. package/dist/core/hydrate.d.ts.map +1 -0
  67. package/dist/core/hydrate.js +73 -0
  68. package/dist/core/hydrate.js.map +1 -0
  69. package/dist/core/index.d.ts +8 -0
  70. package/dist/core/index.d.ts.map +1 -0
  71. package/dist/core/index.js +19 -0
  72. package/dist/core/index.js.map +1 -0
  73. package/dist/core/ssr.d.ts +28 -0
  74. package/dist/core/ssr.d.ts.map +1 -0
  75. package/dist/core/ssr.js +91 -0
  76. package/dist/core/ssr.js.map +1 -0
  77. package/dist/core/types.d.ts +24 -0
  78. package/dist/core/types.d.ts.map +1 -0
  79. package/dist/core/types.js +3 -0
  80. package/dist/core/types.js.map +1 -0
  81. package/dist/index.d.ts +8 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +27 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/navigation/notFound.d.ts +2 -0
  86. package/dist/navigation/notFound.d.ts.map +1 -0
  87. package/dist/navigation/notFound.js +9 -0
  88. package/dist/navigation/notFound.js.map +1 -0
  89. package/dist/router/file-system.d.ts +19 -0
  90. package/dist/router/file-system.d.ts.map +1 -0
  91. package/dist/router/file-system.js +332 -0
  92. package/dist/router/file-system.js.map +1 -0
  93. package/dist/router/index.d.ts +4 -0
  94. package/dist/router/index.d.ts.map +1 -0
  95. package/dist/router/index.js +12 -0
  96. package/dist/router/index.js.map +1 -0
  97. package/dist/router/router.d.ts +17 -0
  98. package/dist/router/router.d.ts.map +1 -0
  99. package/dist/router/router.js +138 -0
  100. package/dist/router/router.js.map +1 -0
  101. package/dist/router/types.d.ts +11 -0
  102. package/dist/router/types.d.ts.map +1 -0
  103. package/dist/router/types.js +3 -0
  104. package/dist/router/types.js.map +1 -0
  105. package/dist/server/build.d.ts +5 -0
  106. package/dist/server/build.d.ts.map +1 -0
  107. package/dist/server/build.js +449 -0
  108. package/dist/server/build.js.map +1 -0
  109. package/dist/server/bundler.d.ts +27 -0
  110. package/dist/server/bundler.d.ts.map +1 -0
  111. package/dist/server/bundler.js +213 -0
  112. package/dist/server/bundler.js.map +1 -0
  113. package/dist/server/dev.d.ts +11 -0
  114. package/dist/server/dev.d.ts.map +1 -0
  115. package/dist/server/dev.js +1052 -0
  116. package/dist/server/dev.js.map +1 -0
  117. package/dist/server/env.d.ts +10 -0
  118. package/dist/server/env.d.ts.map +1 -0
  119. package/dist/server/env.js +102 -0
  120. package/dist/server/env.js.map +1 -0
  121. package/dist/server/error-overlay.d.ts +11 -0
  122. package/dist/server/error-overlay.d.ts.map +1 -0
  123. package/dist/server/error-overlay.js +395 -0
  124. package/dist/server/error-overlay.js.map +1 -0
  125. package/dist/server/hmr.d.ts +8 -0
  126. package/dist/server/hmr.d.ts.map +1 -0
  127. package/dist/server/hmr.js +166 -0
  128. package/dist/server/hmr.js.map +1 -0
  129. package/dist/server/index.d.ts +5 -0
  130. package/dist/server/index.d.ts.map +1 -0
  131. package/dist/server/index.js +10 -0
  132. package/dist/server/index.js.map +1 -0
  133. package/dist/server/response.d.ts +38 -0
  134. package/dist/server/response.d.ts.map +1 -0
  135. package/dist/server/response.js +142 -0
  136. package/dist/server/response.js.map +1 -0
  137. package/dist/server/types.d.ts +13 -0
  138. package/dist/server/types.d.ts.map +1 -0
  139. package/dist/server/types.js +3 -0
  140. package/dist/server/types.js.map +1 -0
  141. package/package.json +70 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getRoutes = getRoutes;
7
+ exports.matchRoute = matchRoute;
8
+ exports.generateRouteManifest = generateRouteManifest;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ function getRoutes(appDir) {
12
+ const routes = [];
13
+ const apiRoutes = [];
14
+ // Debug: log which folders exist
15
+ const appPath = path_1.default.join(appDir, 'src', 'app');
16
+ const pagesPath = path_1.default.join(appDir, 'src', 'pages');
17
+ const srcPath = path_1.default.join(appDir, 'src');
18
+ console.debug('[file-system] checking paths:', { appPathExists: fs_1.default.existsSync(appPath), pagesPathExists: fs_1.default.existsSync(pagesPath), srcPathExists: fs_1.default.existsSync(srcPath) });
19
+ // Check for app router (src/app)
20
+ if (fs_1.default.existsSync(appPath)) {
21
+ console.debug('[file-system] scanning appPath', appPath);
22
+ scanDirectory(appPath, '', routes, apiRoutes, 'app');
23
+ }
24
+ // Check for pages router (src/pages)
25
+ if (fs_1.default.existsSync(pagesPath)) {
26
+ console.debug('[file-system] scanning pagesPath', pagesPath);
27
+ scanDirectory(pagesPath, '', routes, apiRoutes, 'pages');
28
+ }
29
+ // Fallback: support flat `src/` layout (no `app` or `pages` folders),
30
+ // or when `src/app` or `src/pages` exists but contains no page routes.
31
+ // Note: we only require there be no discovered page routes — api routes should not prevent
32
+ // scanning the top-level `src` for pages (e.g., projects that colocate APIs and pages).
33
+ if (fs_1.default.existsSync(srcPath) && routes.length === 0) {
34
+ console.debug('[file-system] fallback scanning srcPath', srcPath);
35
+ // Treat top-level src like a pages router for compatibility with simple projects
36
+ scanDirectory(srcPath, '', routes, apiRoutes, 'pages');
37
+ }
38
+ console.debug('[file-system] found routes', routes.map(r => r.path), 'apiRoutes', apiRoutes.map(r => r.path));
39
+ // Persist a small debug file so CI or environments with silent consoles can inspect the discovery
40
+ try {
41
+ const debugDir = path_1.default.join(appDir, '.satset');
42
+ if (!fs_1.default.existsSync(debugDir))
43
+ fs_1.default.mkdirSync(debugDir, { recursive: true });
44
+ fs_1.default.writeFileSync(path_1.default.join(debugDir, 'routes-debug.json'), JSON.stringify({
45
+ appPath: appPath,
46
+ pagesPath: pagesPath,
47
+ srcPath: srcPath,
48
+ appPathExists: fs_1.default.existsSync(appPath),
49
+ pagesPathExists: fs_1.default.existsSync(pagesPath),
50
+ srcPathExists: fs_1.default.existsSync(srcPath),
51
+ routes: routes.map(r => ({ path: r.path, component: r.component })),
52
+ apiRoutes: apiRoutes.map(r => ({ path: r.path, component: r.component }))
53
+ }, null, 2));
54
+ }
55
+ catch (e) {
56
+ // ignore write errors
57
+ }
58
+ return { routes, apiRoutes };
59
+ }
60
+ function scanDirectory(dir, prefix, routes, apiRoutes, type) {
61
+ const files = fs_1.default.readdirSync(dir);
62
+ for (const file of files) {
63
+ const fullPath = path_1.default.join(dir, file);
64
+ const stat = fs_1.default.statSync(fullPath);
65
+ if (stat.isDirectory()) {
66
+ // Skip utility folders that are not pages
67
+ if (file === 'lib' || file === 'styles' || file === 'assets' || file === 'types') {
68
+ // Also skip TypeScript declaration files under `src/types` that should never be pages
69
+ continue;
70
+ }
71
+ // Special handling for api routes
72
+ if (file === 'api') {
73
+ scanApiDirectory(fullPath, '/api', apiRoutes);
74
+ continue;
75
+ }
76
+ // Skip route groups (folders with parentheses)
77
+ if (file.startsWith('(') && file.endsWith(')')) {
78
+ scanDirectory(fullPath, prefix, routes, apiRoutes, type);
79
+ continue;
80
+ }
81
+ // Handle optional catch-all routes [[...param]]
82
+ if (file.startsWith('[[...') && file.endsWith(']]')) {
83
+ const paramName = file.slice(5, -2);
84
+ // We include a small marker (? after the *) in the prefix so that when
85
+ // a page file is found we can mark the resulting route as optional.
86
+ const newPrefix = prefix + '/*?' + paramName;
87
+ scanDirectory(fullPath, newPrefix, routes, apiRoutes, type);
88
+ continue;
89
+ }
90
+ // Handle catch-all routes [...param]
91
+ if (file.startsWith('[...') && file.endsWith(']')) {
92
+ const paramName = file.slice(4, -1);
93
+ const newPrefix = prefix + '/*' + paramName;
94
+ scanDirectory(fullPath, newPrefix, routes, apiRoutes, type);
95
+ continue;
96
+ }
97
+ // Handle dynamic routes [param]
98
+ if (file.startsWith('[') && file.endsWith(']')) {
99
+ const paramName = file.slice(1, -1);
100
+ const newPrefix = prefix + '/:' + paramName;
101
+ scanDirectory(fullPath, newPrefix, routes, apiRoutes, type);
102
+ continue;
103
+ }
104
+ // Regular folder
105
+ const newPrefix = prefix + '/' + file;
106
+ scanDirectory(fullPath, newPrefix, routes, apiRoutes, type);
107
+ }
108
+ else if (file === 'page.tsx' || file === 'page.jsx' || file === 'page.ts' || file === 'page.js') {
109
+ // Main page file
110
+ let routePath = prefix === '' ? '/' : prefix;
111
+ // Detect our optional catch-all marker and normalize the path while capturing the flag
112
+ let catchAllOptional = false;
113
+ if (routePath.includes('/*?')) {
114
+ routePath = routePath.replace('/*?', '/*');
115
+ catchAllOptional = true;
116
+ }
117
+ const isDynamic = routePath.includes(':') || routePath.includes('*');
118
+ const params = extractParams(routePath);
119
+ routes.push({
120
+ path: routePath,
121
+ component: fullPath,
122
+ exact: !isDynamic,
123
+ dynamic: isDynamic,
124
+ params,
125
+ catchAllOptional,
126
+ });
127
+ }
128
+ else if (type === 'pages' &&
129
+ (file.endsWith('.tsx') || file.endsWith('.jsx') || file.endsWith('.ts') || file.endsWith('.js')) &&
130
+ !file.startsWith('_') &&
131
+ !file.endsWith('.d.ts')) {
132
+ // Pages router style
133
+ const fileName = file.replace(/\.(tsx|jsx|ts|js)$/, '');
134
+ // Handle dynamic routes and catch-alls in pages router
135
+ if (fileName.startsWith('[') && fileName.endsWith(']') && !fileName.startsWith('[...')) {
136
+ const paramName = fileName.slice(1, -1);
137
+ const routePath = prefix + '/:' + paramName;
138
+ routes.push({
139
+ path: routePath,
140
+ component: fullPath,
141
+ exact: false,
142
+ dynamic: true,
143
+ params: [paramName],
144
+ });
145
+ }
146
+ else if (fileName.startsWith('[...') && fileName.endsWith(']')) {
147
+ const paramName = fileName.slice(4, -1);
148
+ const routePath = prefix + '/*' + paramName;
149
+ routes.push({
150
+ path: routePath,
151
+ component: fullPath,
152
+ exact: false,
153
+ dynamic: true,
154
+ params: [paramName],
155
+ });
156
+ }
157
+ else if (fileName.startsWith('[[...') && fileName.endsWith(']]')) {
158
+ const paramName = fileName.slice(5, -2);
159
+ const routePath = prefix + '/*' + paramName;
160
+ routes.push({
161
+ path: routePath,
162
+ component: fullPath,
163
+ exact: false,
164
+ dynamic: true,
165
+ params: [paramName],
166
+ catchAllOptional: true,
167
+ });
168
+ }
169
+ else {
170
+ const routePath = prefix + '/' + fileName;
171
+ routes.push({
172
+ path: routePath === '/index' ? '/' : routePath,
173
+ component: fullPath,
174
+ exact: true,
175
+ });
176
+ }
177
+ }
178
+ }
179
+ }
180
+ function scanApiDirectory(dir, prefix, apiRoutes) {
181
+ const files = fs_1.default.readdirSync(dir);
182
+ for (const file of files) {
183
+ const fullPath = path_1.default.join(dir, file);
184
+ const stat = fs_1.default.statSync(fullPath);
185
+ if (stat.isDirectory()) {
186
+ // Handle optional catch-all API route directories [[...param]]
187
+ if (file.startsWith('[[...') && file.endsWith(']]')) {
188
+ const paramName = file.slice(5, -2);
189
+ const newPrefix = prefix + '/*?' + paramName;
190
+ scanApiDirectory(fullPath, newPrefix, apiRoutes);
191
+ continue;
192
+ }
193
+ // Handle catch-all API route directories [...param]
194
+ if (file.startsWith('[...') && file.endsWith(']')) {
195
+ const paramName = file.slice(4, -1);
196
+ const newPrefix = prefix + '/*' + paramName;
197
+ scanApiDirectory(fullPath, newPrefix, apiRoutes);
198
+ continue;
199
+ }
200
+ // Handle dynamic API route directories [param]
201
+ if (file.startsWith('[') && file.endsWith(']')) {
202
+ const paramName = file.slice(1, -1);
203
+ const newPrefix = prefix + '/:' + paramName;
204
+ scanApiDirectory(fullPath, newPrefix, apiRoutes);
205
+ continue;
206
+ }
207
+ const newPrefix = prefix + '/' + file;
208
+ scanApiDirectory(fullPath, newPrefix, apiRoutes);
209
+ }
210
+ else if ((file.endsWith('.ts') || file.endsWith('.js')) && !file.endsWith('.d.ts')) {
211
+ const fileName = file.replace(/\.(ts|js)$/, '');
212
+ const isDynamic = fileName.startsWith('[') && fileName.endsWith(']');
213
+ let routePath;
214
+ let params = [];
215
+ if (isDynamic && fileName.startsWith('[') && fileName.endsWith(']') && !fileName.startsWith('[...')) {
216
+ const paramName = fileName.slice(1, -1);
217
+ routePath = prefix + '/:' + paramName;
218
+ params = [paramName];
219
+ }
220
+ else if (fileName.startsWith('[...') && fileName.endsWith(']')) {
221
+ const paramName = fileName.slice(4, -1);
222
+ routePath = prefix + '/*' + paramName;
223
+ params = [paramName];
224
+ }
225
+ else if (fileName.startsWith('[[...') && fileName.endsWith(']]')) {
226
+ const paramName = fileName.slice(5, -2);
227
+ routePath = prefix + '/*' + paramName;
228
+ params = [paramName];
229
+ }
230
+ else {
231
+ routePath = prefix + '/' + fileName;
232
+ }
233
+ apiRoutes.push({
234
+ path: routePath,
235
+ component: fullPath,
236
+ dynamic: isDynamic,
237
+ params,
238
+ });
239
+ }
240
+ }
241
+ }
242
+ function extractParams(routePath) {
243
+ const params = [];
244
+ const segments = routePath.split('/');
245
+ for (const segment of segments) {
246
+ if (segment.startsWith(':')) {
247
+ params.push(segment.slice(1));
248
+ }
249
+ else if (segment.startsWith('*')) {
250
+ params.push(segment.slice(1));
251
+ }
252
+ }
253
+ return params;
254
+ }
255
+ function matchRoute(pathname, routes) {
256
+ for (const route of routes) {
257
+ if (route.dynamic) {
258
+ const match = matchDynamicRoute(pathname, route.path, !!route.catchAllOptional);
259
+ if (match) {
260
+ return { route, params: match };
261
+ }
262
+ }
263
+ else {
264
+ if (route.exact) {
265
+ if (pathname === route.path) {
266
+ return { route, params: {} };
267
+ }
268
+ }
269
+ else {
270
+ if (pathname.startsWith(route.path)) {
271
+ return { route, params: {} };
272
+ }
273
+ }
274
+ }
275
+ }
276
+ return null;
277
+ }
278
+ function matchDynamicRoute(pathname, routePath, catchAllOptional = false) {
279
+ const pathSegments = pathname.split('/').filter(Boolean);
280
+ const routeSegments = routePath.split('/').filter(Boolean);
281
+ // Handle catch-all routes
282
+ if (routePath.includes('*')) {
283
+ const params = {};
284
+ const catchAllIndex = routeSegments.findIndex(s => s.startsWith('*'));
285
+ // Verify that static prefix segments match the incoming path
286
+ for (let i = 0; i < catchAllIndex; i++) {
287
+ if (pathSegments[i] !== routeSegments[i]) {
288
+ return null;
289
+ }
290
+ }
291
+ // Normalize parameter name (support '*?name' marker from scan)
292
+ let paramName = routeSegments[catchAllIndex].slice(1);
293
+ if (paramName.startsWith('?'))
294
+ paramName = paramName.slice(1);
295
+ // If path has fewer segments than the catch-all index, allow match for optional catch-all
296
+ if (pathSegments.length <= catchAllIndex && catchAllOptional) {
297
+ params[paramName] = '';
298
+ return params;
299
+ }
300
+ params[paramName] = pathSegments.slice(catchAllIndex).join('/');
301
+ return params;
302
+ }
303
+ // Must have same number of segments
304
+ if (pathSegments.length !== routeSegments.length) {
305
+ return null;
306
+ }
307
+ const params = {};
308
+ for (let i = 0; i < routeSegments.length; i++) {
309
+ const routeSegment = routeSegments[i];
310
+ const pathSegment = pathSegments[i];
311
+ if (routeSegment.startsWith(':')) {
312
+ // Dynamic segment
313
+ const paramName = routeSegment.slice(1);
314
+ params[paramName] = pathSegment;
315
+ }
316
+ else if (routeSegment !== pathSegment) {
317
+ // Static segment doesn't match
318
+ return null;
319
+ }
320
+ }
321
+ return params;
322
+ }
323
+ function generateRouteManifest(routes) {
324
+ const manifest = routes.map(route => ({
325
+ path: route.path,
326
+ component: route.component,
327
+ dynamic: route.dynamic,
328
+ params: route.params,
329
+ }));
330
+ return JSON.stringify(manifest, null, 2);
331
+ }
332
+ //# sourceMappingURL=file-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/router/file-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { useRouter, useParams, useSearchParams, usePathname, useNavigate } from './router';
2
+ export { getRoutes } from './file-system';
3
+ export type { Route, RouterContext } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRoutes = exports.useNavigate = exports.usePathname = exports.useSearchParams = exports.useParams = exports.useRouter = void 0;
4
+ var router_1 = require("./router");
5
+ Object.defineProperty(exports, "useRouter", { enumerable: true, get: function () { return router_1.useRouter; } });
6
+ Object.defineProperty(exports, "useParams", { enumerable: true, get: function () { return router_1.useParams; } });
7
+ Object.defineProperty(exports, "useSearchParams", { enumerable: true, get: function () { return router_1.useSearchParams; } });
8
+ Object.defineProperty(exports, "usePathname", { enumerable: true, get: function () { return router_1.usePathname; } });
9
+ Object.defineProperty(exports, "useNavigate", { enumerable: true, get: function () { return router_1.useNavigate; } });
10
+ var file_system_1 = require("./file-system");
11
+ Object.defineProperty(exports, "getRoutes", { enumerable: true, get: function () { return file_system_1.getRoutes; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;AAAA,mCAA2F;AAAlF,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,qGAAA,WAAW,OAAA;AACxE,6CAA0C;AAAjC,wGAAA,SAAS,OAAA"}
@@ -0,0 +1,17 @@
1
+ export interface RouterContext {
2
+ pathname: string;
3
+ query: Record<string, string>;
4
+ params: Record<string, string>;
5
+ push: (path: string) => void;
6
+ replace: (path: string) => void;
7
+ back: () => void;
8
+ forward: () => void;
9
+ }
10
+ export declare function useRouter(): RouterContext;
11
+ export declare function useParams(): Record<string, string>;
12
+ export declare function useSearchParams(): URLSearchParams;
13
+ export declare function usePathname(): string;
14
+ export declare function useNavigate(): (to: string, opts?: {
15
+ replace?: boolean;
16
+ }) => void;
17
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsDD,wBAAgB,SAAS,IAAI,aAAa,CAgEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlD;AAED,wBAAgB,eAAe,IAAI,eAAe,CAGjD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED,wBAAgB,WAAW,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,CAMhF"}
@@ -0,0 +1,138 @@
1
+ "use client";
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.useRouter = useRouter;
8
+ exports.useParams = useParams;
9
+ exports.useSearchParams = useSearchParams;
10
+ exports.usePathname = usePathname;
11
+ exports.useNavigate = useNavigate;
12
+ const react_1 = __importDefault(require("react"));
13
+ const RouterContextObj = react_1.default.createContext(null);
14
+ // Router provider removed: hooks are self-contained now
15
+ // Internal parse params helper reused by the hook
16
+ function parseParamsFromPath(path) {
17
+ const urlParams = new URLSearchParams(window.location.search);
18
+ const queryParams = {};
19
+ urlParams.forEach((value, key) => {
20
+ queryParams[key] = value;
21
+ });
22
+ const routePaths = window.__SATSET_ROUTES__;
23
+ if (!Array.isArray(routePaths))
24
+ return queryParams;
25
+ const pathSegments = path.split('/').filter(Boolean);
26
+ for (const routePath of routePaths) {
27
+ const routeSegments = routePath.split('/').filter(Boolean);
28
+ // catch-all
29
+ if (routePath.includes('*')) {
30
+ const catchIndex = routeSegments.findIndex(s => s.startsWith('*'));
31
+ const paramName = routeSegments[catchIndex].slice(1);
32
+ const params = {};
33
+ params[paramName] = pathSegments.slice(catchIndex).join('/');
34
+ return { ...queryParams, ...params };
35
+ }
36
+ if (routeSegments.length !== pathSegments.length)
37
+ continue;
38
+ let matched = true;
39
+ const params = {};
40
+ for (let i = 0; i < routeSegments.length; i++) {
41
+ const rs = routeSegments[i];
42
+ const ps = pathSegments[i];
43
+ if (rs.startsWith(':')) {
44
+ params[rs.slice(1)] = ps;
45
+ }
46
+ else if (rs !== ps) {
47
+ matched = false;
48
+ break;
49
+ }
50
+ }
51
+ if (matched)
52
+ return { ...queryParams, ...params };
53
+ }
54
+ return queryParams;
55
+ }
56
+ function useRouter() {
57
+ // SSR-safe initial values
58
+ const isClient = typeof window !== 'undefined';
59
+ const [pathname, setPathname] = react_1.default.useState(isClient ? window.location.pathname : '/');
60
+ const [params, setParams] = react_1.default.useState(() => (isClient ? parseParamsFromPath(window.location.pathname) : {}));
61
+ react_1.default.useEffect(() => {
62
+ if (!isClient)
63
+ return;
64
+ const handlePopState = () => {
65
+ setPathname(window.location.pathname);
66
+ setParams(parseParamsFromPath(window.location.pathname));
67
+ };
68
+ handlePopState();
69
+ window.addEventListener('popstate', handlePopState);
70
+ return () => window.removeEventListener('popstate', handlePopState);
71
+ }, [isClient]);
72
+ const push = react_1.default.useCallback((path) => {
73
+ if (!isClient)
74
+ return;
75
+ window.history.pushState({}, '', path);
76
+ setPathname(path);
77
+ setParams(parseParamsFromPath(path));
78
+ window.dispatchEvent(new PopStateEvent('popstate'));
79
+ }, [isClient]);
80
+ const replace = react_1.default.useCallback((path) => {
81
+ if (!isClient)
82
+ return;
83
+ window.history.replaceState({}, '', path);
84
+ setPathname(path);
85
+ setParams(parseParamsFromPath(path));
86
+ window.dispatchEvent(new PopStateEvent('popstate'));
87
+ }, [isClient]);
88
+ const back = react_1.default.useCallback(() => {
89
+ if (!isClient)
90
+ return;
91
+ window.history.back();
92
+ }, [isClient]);
93
+ const forward = react_1.default.useCallback(() => {
94
+ if (!isClient)
95
+ return;
96
+ window.history.forward();
97
+ }, [isClient]);
98
+ const query = react_1.default.useMemo(() => {
99
+ if (!isClient)
100
+ return {};
101
+ const urlParams = new URLSearchParams(window.location.search);
102
+ const queryObj = {};
103
+ urlParams.forEach((value, key) => {
104
+ queryObj[key] = value;
105
+ });
106
+ return queryObj;
107
+ }, [pathname, isClient]);
108
+ return {
109
+ pathname,
110
+ query,
111
+ params,
112
+ push,
113
+ replace,
114
+ back,
115
+ forward,
116
+ };
117
+ }
118
+ function useParams() {
119
+ const router = useRouter();
120
+ return router.params;
121
+ }
122
+ function useSearchParams() {
123
+ const router = useRouter();
124
+ return new URLSearchParams(window.location.search);
125
+ }
126
+ function usePathname() {
127
+ const router = useRouter();
128
+ return router.pathname;
129
+ }
130
+ function useNavigate() {
131
+ const { push, replace } = useRouter();
132
+ return (to, opts = {}) => {
133
+ if (opts.replace)
134
+ return replace(to);
135
+ return push(to);
136
+ };
137
+ }
138
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAiEb,8BAgEC;AAED,8BAGC;AAED,0CAGC;AAED,kCAGC;AAED,kCAMC;AAvJD,kDAA0B;AAY1B,MAAM,gBAAgB,GAAG,eAAK,CAAC,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEzE,wDAAwD;AAExD,kDAAkD;AAClD,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAA0B,MAAc,CAAC,iBAAiB,CAAC;IAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;IAEnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE3D,YAAY;QACZ,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;YAAE,SAAS;QAE3D,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;iBAAM,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO;YAAE,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,SAAS;IACvB,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAS,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAyB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1I,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtC,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,cAAc,EAAE,CAAC;QACjB,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,eAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,KAAK,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzB,OAAO;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;IACtC,OAAO,CAAC,EAAU,EAAE,OAA8B,EAAE,EAAE,EAAE;QACtD,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface Route {
2
+ path: string;
3
+ component: string;
4
+ exact?: boolean;
5
+ }
6
+ export interface RouterContext {
7
+ pathname: string;
8
+ query: Record<string, string>;
9
+ push: (path: string) => void;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { BuildOptions } from './types';
2
+ export declare function build(options: BuildOptions): Promise<{
3
+ outDir: string;
4
+ }>;
5
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/server/build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY;;GAqFhD"}