@stratal/inertia 0.0.1 → 0.0.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratal/inertia",
3
- "version": "0.0.1",
3
+ "version": "0.0.18",
4
4
  "description": "Inertia.js v3 server adapter for Stratal framework — server-driven React SPAs",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public",
31
- "provenance": false
31
+ "provenance": true
32
32
  },
33
33
  "files": [
34
34
  "dist",
@@ -40,6 +40,14 @@
40
40
  "types": "./dist/index.d.mts",
41
41
  "import": "./dist/index.mjs"
42
42
  },
43
+ "./react": {
44
+ "types": "./dist/react.d.mts",
45
+ "import": "./dist/react.mjs"
46
+ },
47
+ "./testing": {
48
+ "types": "./dist/testing.d.mts",
49
+ "import": "./dist/testing.mjs"
50
+ },
43
51
  "./vite": {
44
52
  "types": "./dist/vite.d.mts",
45
53
  "import": "./dist/vite.mjs"
@@ -51,23 +59,31 @@
51
59
  "typecheck": "tsc --noEmit",
52
60
  "test": "vitest run",
53
61
  "test:watch": "vitest",
54
- "lint": "npx eslint .",
55
- "lint:fix": "npx eslint --fix ."
62
+ "lint": "npx oxlint .",
63
+ "lint:fix": "npx oxlint --fix ."
56
64
  },
57
65
  "dependencies": {
58
66
  "ts-morph": "^27.0.2"
59
67
  },
60
68
  "peerDependencies": {
69
+ "@cloudflare/vite-plugin": ">=1.0.0",
61
70
  "@inertiajs/core": "^3.0.0-beta.5",
62
71
  "@inertiajs/react": "^3.0.0-beta.5",
63
72
  "@inertiajs/vite": "^3.0.0-beta.5",
73
+ "@intlify/core-base": ">=11.0.0",
74
+ "@stratal/testing": ">=0.0.18",
64
75
  "hono": "^4.12.8",
65
76
  "react": "^19.0.0",
66
77
  "react-dom": "^19.0.0",
67
78
  "reflect-metadata": "^0.2.2",
68
- "stratal": "^0.0.17"
79
+ "stratal": "^0.0.18",
80
+ "vite": "^8.0.0",
81
+ "vitest": "^4.1.0"
69
82
  },
70
83
  "peerDependenciesMeta": {
84
+ "@cloudflare/vite-plugin": {
85
+ "optional": true
86
+ },
71
87
  "@inertiajs/core": {
72
88
  "optional": true
73
89
  },
@@ -77,31 +93,43 @@
77
93
  "@inertiajs/vite": {
78
94
  "optional": true
79
95
  },
96
+ "@intlify/core-base": {
97
+ "optional": true
98
+ },
99
+ "@stratal/testing": {
100
+ "optional": true
101
+ },
80
102
  "react": {
81
103
  "optional": true
82
104
  },
83
105
  "react-dom": {
84
106
  "optional": true
107
+ },
108
+ "vitest": {
109
+ "optional": true
85
110
  }
86
111
  },
87
112
  "devDependencies": {
113
+ "@cloudflare/vite-plugin": "^1.30.2",
88
114
  "@cloudflare/workers-types": "4.20260317.1",
89
- "@inertiajs/core": "^3.0.0-beta.5",
90
- "@inertiajs/vite": "^3.0.0-beta.5",
115
+ "@inertiajs/core": "^3.0.0",
116
+ "@inertiajs/react": "^3.0.0",
117
+ "@inertiajs/vite": "^3.0.0",
118
+ "@intlify/core-base": "^11.3.0",
91
119
  "@stratal/testing": "workspace:*",
92
120
  "@types/node": "^25.5.0",
93
121
  "@types/react": "^19.2.14",
94
122
  "@types/react-dom": "^19.2.3",
95
- "@vitest/runner": "~4.1.0",
96
- "@vitest/snapshot": "~4.1.0",
97
- "hono": "^4.12.8",
123
+ "@vitest/runner": "~4.1.2",
124
+ "@vitest/snapshot": "~4.1.2",
125
+ "hono": "^4.12.9",
98
126
  "react": "^19.2.4",
99
127
  "react-dom": "^19.2.4",
100
128
  "reflect-metadata": "^0.2.2",
101
129
  "stratal": "workspace:*",
102
- "tsdown": "^0.21.4",
103
- "typescript": "^5.9.3",
104
- "vite": "^8.0.1",
105
- "vitest": "~4.1.0"
130
+ "tsdown": "^0.21.6",
131
+ "typescript": "^6.0.2",
132
+ "vite": "^8.0.3",
133
+ "vitest": "~4.1.2"
106
134
  }
107
135
  }
package/dist/index.d.mts DELETED
@@ -1,259 +0,0 @@
1
- /// <reference path="../global.d.ts" />
2
- import { AsyncModuleOptions, DynamicModule, OnInitialize } from "stratal/module";
3
- import { Middleware, RouteConfig, RouterContext } from "stratal/router";
4
- import { Command } from "stratal/quarry";
5
- import { z } from "stratal/validation";
6
- import { MiddlewareConfigurable, MiddlewareConsumer } from "stratal/middleware";
7
- import { SharedPageProps } from "@inertiajs/core";
8
-
9
- //#region src/types.d.ts
10
- interface InertiaPageRegistry {}
11
- type InertiaSharedProps = SharedPageProps;
12
- type InertiaPageComponent = keyof InertiaPageRegistry extends never ? string : Extract<keyof InertiaPageRegistry, string>;
13
- type AllowInertiaWrappers<T> = { [K in keyof T]: T[K] | InertiaDeferredProp | InertiaMergeProp | InertiaOptionalProp };
14
- type ResolvedInertiaPageProps<C extends InertiaPageComponent> = C extends keyof InertiaPageRegistry ? AllowInertiaWrappers<InertiaPageRegistry[C]> : Record<string, unknown>;
15
- type InertiaFullPageProps<C extends InertiaPageComponent> = (C extends keyof InertiaPageRegistry ? InertiaPageRegistry[C] : Record<string, unknown>) & InertiaSharedProps;
16
- interface InertiaPage {
17
- component: string;
18
- props: Record<string, unknown>;
19
- url: string;
20
- version: string;
21
- mergeProps: string[];
22
- deferredProps: Record<string, string[]>;
23
- encryptHistory?: boolean;
24
- clearHistory?: boolean;
25
- }
26
- interface InertiaRenderOptions {
27
- encryptHistory?: boolean;
28
- clearHistory?: boolean;
29
- }
30
- interface InertiaSsrResult {
31
- head: string[];
32
- body: string;
33
- }
34
- interface InertiaSsrBundle {
35
- render(page: InertiaPage): Promise<InertiaSsrResult>;
36
- }
37
- type SharedDataResolver = (ctx: RouterContext) => any;
38
- interface ViteManifestEntry {
39
- file: string;
40
- css?: string[];
41
- isEntry?: boolean;
42
- imports?: string[];
43
- dynamicImports?: string[];
44
- src?: string;
45
- }
46
- type ViteManifest = Record<string, ViteManifestEntry>;
47
- declare const INERTIA_PROP_OPTIONAL: unique symbol;
48
- declare const INERTIA_PROP_DEFERRED: unique symbol;
49
- declare const INERTIA_PROP_MERGE: unique symbol;
50
- interface InertiaOptionalProp {
51
- [INERTIA_PROP_OPTIONAL]: true;
52
- callback: () => unknown;
53
- }
54
- interface InertiaDeferredProp {
55
- [INERTIA_PROP_DEFERRED]: true;
56
- callback: () => unknown;
57
- group: string;
58
- }
59
- interface InertiaMergeProp {
60
- [INERTIA_PROP_MERGE]: true;
61
- callback: () => unknown;
62
- }
63
- //#endregion
64
- //#region src/inertia.options.d.ts
65
- interface SsrBundleModule {
66
- render(page: InertiaPage): Promise<InertiaSsrResult>;
67
- }
68
- interface InertiaSsrOptions {
69
- bundle: () => Promise<SsrBundleModule | {
70
- default: SsrBundleModule;
71
- }>;
72
- /**
73
- * Route patterns where SSR is disabled (e.g., `"admin/*"`).
74
- * Uses simple glob matching against the request pathname.
75
- */
76
- disabled?: string[];
77
- }
78
- interface InertiaModuleOptions {
79
- rootView: string;
80
- version?: string;
81
- ssr?: InertiaSsrOptions;
82
- sharedData?: Record<string, unknown>;
83
- /**
84
- * Vite manifest for production builds. When omitted, dev mode is assumed
85
- * and Vite client + entry scripts are injected with same-origin paths.
86
- */
87
- manifest?: ViteManifest;
88
- /**
89
- * Client entry path relative to project root (default: `src/inertia/app.tsx`).
90
- * Used in dev mode to inject the entry script tag.
91
- */
92
- entryClientPath?: string;
93
- }
94
- //#endregion
95
- //#region src/inertia.module.d.ts
96
- declare class InertiaModule implements MiddlewareConfigurable, OnInitialize {
97
- static forRoot(options: InertiaModuleOptions): DynamicModule;
98
- static forRootAsync(options: AsyncModuleOptions<InertiaModuleOptions>): DynamicModule;
99
- configure(consumer: MiddlewareConsumer): void;
100
- onInitialize(): void;
101
- }
102
- //#endregion
103
- //#region src/inertia.tokens.d.ts
104
- declare const INERTIA_TOKENS: {
105
- readonly Options: symbol;
106
- readonly InertiaService: symbol;
107
- readonly TemplateService: symbol;
108
- readonly ManifestService: symbol;
109
- readonly SsrRenderer: symbol;
110
- };
111
- //#endregion
112
- //#region src/services/ssr-renderer.service.d.ts
113
- declare class SsrRendererService {
114
- private readonly options;
115
- private bundle;
116
- private loadPromise;
117
- constructor(options: InertiaModuleOptions);
118
- render(page: InertiaPage): Promise<InertiaSsrResult>;
119
- private ensureBundle;
120
- private loadBundle;
121
- }
122
- //#endregion
123
- //#region src/services/manifest.service.d.ts
124
- declare class ManifestService {
125
- private readonly manifest;
126
- private readonly entryClientPath;
127
- constructor(options: InertiaModuleOptions);
128
- private get isDev();
129
- getHeadTags(): string;
130
- getScriptTags(): string;
131
- }
132
- //#endregion
133
- //#region src/services/template.service.d.ts
134
- declare class TemplateService {
135
- private readonly options;
136
- private readonly manifest;
137
- constructor(options: InertiaModuleOptions, manifest: ManifestService);
138
- render(page: InertiaPage, ssrHead: string[], ssrBody: string): string;
139
- private buildClientOnlyBody;
140
- }
141
- //#endregion
142
- //#region src/services/inertia.service.d.ts
143
- declare class InertiaService {
144
- private readonly options;
145
- private readonly template;
146
- private readonly ssr;
147
- private sharedData;
148
- constructor(options: InertiaModuleOptions, template: TemplateService, ssr: SsrRendererService);
149
- share(key: string, value: unknown): void;
150
- location(url: string): Response;
151
- optional(callback: () => unknown): InertiaOptionalProp;
152
- defer(callback: () => unknown, group?: string): InertiaDeferredProp;
153
- merge(callback: () => unknown): InertiaMergeProp;
154
- render(ctx: RouterContext, component: string, props?: Record<string, unknown>, renderOptions?: InertiaRenderOptions): Promise<Response>;
155
- private resolveSharedData;
156
- private processProps;
157
- /**
158
- * Check if a prop key is requested — supports dot-notation (e.g., `user.permissions`
159
- * matches the top-level `user` key).
160
- */
161
- private isRequested;
162
- private isOptionalProp;
163
- private isDeferredProp;
164
- private isMergeProp;
165
- private isSsrDisabled;
166
- }
167
- //#endregion
168
- //#region src/decorators/inertia-route.decorator.d.ts
169
- type InertiaRouteConfig = Omit<RouteConfig, 'response' | 'statusCode' | 'hideFromDocs'> & {
170
- hideFromDocs?: boolean;
171
- };
172
- /**
173
- * Decorator for Inertia page routes.
174
- *
175
- * Wraps `@Route()` with:
176
- * - Auto-applied Inertia page response schema
177
- * - `hideFromDocs: true` by default (overridable)
178
- *
179
- * Accepts `query`, `params`, `body`, `tags`, `summary`, `description`, `security`.
180
- *
181
- * @example
182
- * ```typescript
183
- * @Controller('/notes')
184
- * export class NotesController implements IController {
185
- * @InertiaRoute({ query: z.object({ page: z.string().optional() }) })
186
- * async index(ctx: RouterContext) {
187
- * return ctx.inertia('notes/Index', { notes: [] })
188
- * }
189
- * }
190
- * ```
191
- */
192
- declare function InertiaRoute(config?: InertiaRouteConfig): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
193
- //#endregion
194
- //#region src/middleware/inertia.middleware.d.ts
195
- declare class InertiaMiddleware implements Middleware {
196
- private readonly options;
197
- constructor(options: InertiaModuleOptions);
198
- handle(ctx: RouterContext, next: () => Promise<void>): Promise<void>;
199
- }
200
- //#endregion
201
- //#region src/commands/inertia-build.command.d.ts
202
- declare class InertiaBuildCommand extends Command {
203
- static command: string;
204
- static description: string;
205
- handle(): Promise<number | undefined>;
206
- }
207
- //#endregion
208
- //#region src/commands/inertia-dev.command.d.ts
209
- declare class InertiaDevCommand extends Command {
210
- static command: string;
211
- static description: string;
212
- handle(): Promise<number | undefined>;
213
- }
214
- //#endregion
215
- //#region src/commands/inertia-install.command.d.ts
216
- declare class InertiaInstallCommand extends Command {
217
- static command: string;
218
- static description: string;
219
- handle(): Promise<number | undefined>;
220
- private updateAppModule;
221
- }
222
- //#endregion
223
- //#region src/commands/inertia-types.command.d.ts
224
- declare class InertiaTypesCommand extends Command {
225
- static command: string;
226
- static description: string;
227
- handle(): Promise<number | undefined>;
228
- private generate;
229
- private watchForChanges;
230
- }
231
- //#endregion
232
- //#region src/generator/type-generator.d.ts
233
- declare function runTypeGeneration(cwd: string): Promise<{
234
- outputPath: string;
235
- pageCount: number;
236
- }>;
237
- //#endregion
238
- //#region src/augment/router-context.d.ts
239
- declare module 'stratal/router' {
240
- interface RouterContext {
241
- inertia<C extends InertiaPageComponent>(component: C, ...args: keyof InertiaPageRegistry extends never ? [props?: Record<string, unknown>, options?: InertiaRenderOptions] : Record<string, never> extends ResolvedInertiaPageProps<C> ? [props?: ResolvedInertiaPageProps<C>, options?: InertiaRenderOptions] : [props: ResolvedInertiaPageProps<C>, options?: InertiaRenderOptions]): Promise<Response>;
242
- defer(callback: () => unknown, group?: string): InertiaDeferredProp;
243
- optional(callback: () => unknown): InertiaOptionalProp;
244
- merge(callback: () => unknown): InertiaMergeProp;
245
- withoutSsr(): void;
246
- }
247
- }
248
- //#endregion
249
- //#region src/augment/router-variables.d.ts
250
- declare module 'stratal/router' {
251
- interface RouterVariables {
252
- inertia: boolean;
253
- inertiaPrefetch: boolean;
254
- withoutSsr: boolean;
255
- }
256
- }
257
- //#endregion
258
- export { INERTIA_TOKENS, InertiaBuildCommand, type InertiaDeferredProp, InertiaDevCommand, type InertiaFullPageProps, InertiaInstallCommand, type InertiaMergeProp, InertiaMiddleware, InertiaModule, type InertiaModuleOptions, type InertiaOptionalProp, type InertiaPage, type InertiaPageComponent, type InertiaPageRegistry, type InertiaRenderOptions, InertiaRoute, type InertiaRouteConfig, InertiaService, type InertiaSharedProps, type InertiaSsrBundle, type InertiaSsrOptions, type InertiaSsrResult, InertiaTypesCommand, ManifestService, type ResolvedInertiaPageProps, type SharedDataResolver, SsrRendererService, TemplateService, type ViteManifest, type ViteManifestEntry, runTypeGeneration };
259
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/inertia.options.ts","../src/inertia.module.ts","../src/inertia.tokens.ts","../src/services/ssr-renderer.service.ts","../src/services/manifest.service.ts","../src/services/template.service.ts","../src/services/inertia.service.ts","../src/decorators/inertia-route.decorator.ts","../src/middleware/inertia.middleware.ts","../src/commands/inertia-build.command.ts","../src/commands/inertia-dev.command.ts","../src/commands/inertia-install.command.ts","../src/commands/inertia-types.command.ts","../src/generator/type-generator.ts","../src/augment/router-context.ts","../src/augment/router-variables.ts"],"mappings":"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"}