Version not found. Please check the version and try again.

proteum 2.1.9-8 → 2.2.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 (35) hide show
  1. package/README.md +11 -8
  2. package/agents/project/AGENTS.md +7 -7
  3. package/agents/project/CODING_STYLE.md +1 -1
  4. package/agents/project/client/AGENTS.md +1 -1
  5. package/agents/project/client/pages/AGENTS.md +10 -10
  6. package/agents/project/optimizations.md +5 -6
  7. package/agents/project/root/AGENTS.md +7 -7
  8. package/cli/commands/migrate.ts +51 -0
  9. package/cli/compiler/artifacts/manifest.ts +4 -4
  10. package/cli/compiler/artifacts/routing.ts +2 -2
  11. package/cli/compiler/common/generatedRouteModules.ts +31 -38
  12. package/cli/context.ts +1 -1
  13. package/cli/migrate/pageContract.ts +516 -0
  14. package/cli/presentation/commands.ts +27 -1
  15. package/cli/runtime/commands.ts +25 -0
  16. package/cli/scaffold/templates.ts +4 -2
  17. package/client/dev/profiler/index.tsx +1 -2
  18. package/client/services/router/index.tsx +6 -22
  19. package/common/dev/console.ts +1 -0
  20. package/common/dev/diagnostics.ts +4 -4
  21. package/common/dev/inspection.ts +1 -1
  22. package/common/dev/proteumManifest.ts +4 -4
  23. package/common/dev/requestTrace.ts +0 -1
  24. package/common/router/contracts.ts +8 -11
  25. package/common/router/index.ts +2 -2
  26. package/common/router/pageData.ts +72 -0
  27. package/common/router/register.ts +10 -46
  28. package/common/router/response/page.ts +28 -16
  29. package/package.json +5 -1
  30. package/server/services/router/index.ts +48 -14
  31. package/server/services/router/request/api.ts +1 -1
  32. package/server/services/router/response/index.ts +0 -27
  33. package/types/global/vendors.d.ts +12 -0
  34. package/types/vendors.d.ts +12 -0
  35. package/common/router/pageSetup.ts +0 -51
@@ -17,7 +17,6 @@ import ServerRequest from '@server/services/router/request';
17
17
  import { TMatchedRoute, TRoute, TAnyRoute } from '@common/router';
18
18
  import { NotFound, Forbidden, Anomaly } from '@common/errors';
19
19
  import BaseResponse, { TResponseData } from '@common/router/response';
20
- import { splitRouteSetupResult } from '@common/router/pageSetup';
21
20
  import Page from './page';
22
21
  import createControllers from '@generated/common/controllers';
23
22
  import type { TControllers } from '@generated/common/controllers';
@@ -220,32 +219,6 @@ export default class ServerResponse<
220
219
  - INTERNAL
221
220
  ----------------------------------*/
222
221
 
223
- public async resolveRouteOptions(
224
- route: TMatchedRoute<TRouterContext<TRouter>>,
225
- ): Promise<TMatchedRoute<TRouterContext<TRouter>>> {
226
- const setup = route.options.setup;
227
- if (!setup) return route;
228
-
229
- const requestContext = await this.createContext(route);
230
- const { options } = splitRouteSetupResult(((setup as any)({ ...requestContext, data: this.request.data }) as {}) || {});
231
-
232
- this.app.container.Trace.record(
233
- this.request.id,
234
- 'setup.options',
235
- {
236
- optionKeys: Object.keys(options),
237
- source: {
238
- filepath: route.options.filepath || '',
239
- line: route.options.sourceLocation?.line || 0,
240
- column: route.options.sourceLocation?.column || 0,
241
- },
242
- },
243
- 'resolve',
244
- );
245
-
246
- return { ...route, options: { ...route.options, ...options } };
247
- }
248
-
249
222
  // Start controller services
250
223
  private async createContext(route: TAnyRoute<TRouterContext<TRouter>>): Promise<TRequestContext> {
251
224
  const contextServices = this.router.createContextServices(this.request);
@@ -3,6 +3,18 @@ declare module 'accepts' {
3
3
  export default accepts;
4
4
  }
5
5
 
6
+ declare module '@babel/generator' {
7
+ const generate: any;
8
+ export default generate;
9
+ }
10
+
11
+ declare module '@babel/traverse' {
12
+ export type Binding = any;
13
+ export type NodePath<T = any> = any;
14
+ const traverse: any;
15
+ export default traverse;
16
+ }
17
+
6
18
  declare module 'bytes' {
7
19
  const bytes: (value: string | number) => number;
8
20
  export default bytes;
@@ -3,6 +3,18 @@ declare module 'accepts' {
3
3
  export default accepts;
4
4
  }
5
5
 
6
+ declare module '@babel/generator' {
7
+ const generate: any;
8
+ export default generate;
9
+ }
10
+
11
+ declare module '@babel/traverse' {
12
+ export type Binding = any;
13
+ export type NodePath<T = any> = any;
14
+ const traverse: any;
15
+ export default traverse;
16
+ }
17
+
6
18
  declare module 'bytes' {
7
19
  const bytes: (value: string | number) => number;
8
20
  export default bytes;
@@ -1,51 +0,0 @@
1
- /*----------------------------------
2
- - TYPES
3
- ----------------------------------*/
4
-
5
- import type { TRouteOptions } from '.';
6
-
7
- export const routeSetupOptionKeys = [
8
- 'priority',
9
- 'preload',
10
- 'domain',
11
- 'accept',
12
- 'raw',
13
- 'auth',
14
- 'authTracking',
15
- 'redirectLogged',
16
- 'static',
17
- 'whenStatic',
18
- 'canonicalParams',
19
- 'layout',
20
- 'TESTING',
21
- 'logging',
22
- ] as const satisfies (keyof TRouteOptions)[];
23
-
24
- export const reservedRouteSetupKeys = ['id', 'filepath', 'bodyId', 'data', 'setup'] as const;
25
-
26
- const routeSetupOptionKeysSet = new Set<string>(routeSetupOptionKeys);
27
- const reservedRouteSetupKeysSet = new Set<string>(reservedRouteSetupKeys);
28
-
29
- export const getRouteSetupOptionKey = (key: string) => {
30
- const normalizedKey = key.startsWith('_') ? key.substring(1) : key;
31
-
32
- if (reservedRouteSetupKeysSet.has(normalizedKey)) throw new Error(`"${key}" is a reserved Router.page setup key.`);
33
-
34
- return routeSetupOptionKeysSet.has(normalizedKey) ? (normalizedKey as keyof TRouteOptions) : null;
35
- };
36
-
37
- export const splitRouteSetupResult = (result: TObjetDonnees | undefined) => {
38
- const options: Partial<TRouteOptions> = {};
39
- const data: TObjetDonnees = {};
40
-
41
- if (!result) return { options, data };
42
-
43
- for (const key in result) {
44
- const optionKey = getRouteSetupOptionKey(key);
45
-
46
- if (optionKey) options[optionKey] = result[key];
47
- else data[key] = result[key];
48
- }
49
-
50
- return { options, data };
51
- };