@nivora/matrix 0.1.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.
Potentially problematic release.
This version of @nivora/matrix might be problematic. Click here for more details.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +12 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +66 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +90 -0
- package/.next/react-loadable-manifest.json +1 -0
- package/.next/required-server-files.js +165 -0
- package/.next/required-server-files.json +165 -0
- package/.next/routes-manifest.json +109 -0
- package/.next/server/app/_global-error/page.js +3 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +2 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +12 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +4 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +15 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/builder/page.js +24 -0
- package/.next/server/app/builder/page.js.nft.json +1 -0
- package/.next/server/app/builder/page_client-reference-manifest.js +1 -0
- package/.next/server/app/favicon.ico/route.js +1 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/guide/page.js +2 -0
- package/.next/server/app/guide/page.js.nft.json +1 -0
- package/.next/server/app/guide/page_client-reference-manifest.js +1 -0
- package/.next/server/app/matrix/page.js +2 -0
- package/.next/server/app/matrix/page.js.nft.json +1 -0
- package/.next/server/app/matrix/page_client-reference-manifest.js +1 -0
- package/.next/server/app/page.js +2 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app/releases/[id]/page.js +51 -0
- package/.next/server/app/releases/[id]/page.js.nft.json +1 -0
- package/.next/server/app/releases/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/releases/page.js +34 -0
- package/.next/server/app/releases/page.js.nft.json +1 -0
- package/.next/server/app/releases/page_client-reference-manifest.js +1 -0
- package/.next/server/app/specs/[id]/page.js +2 -0
- package/.next/server/app/specs/[id]/page.js.nft.json +1 -0
- package/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +12 -0
- package/.next/server/chunks/13.js +1 -0
- package/.next/server/chunks/135.js +34 -0
- package/.next/server/chunks/390.js +1 -0
- package/.next/server/chunks/445.js +22 -0
- package/.next/server/chunks/471.js +13 -0
- package/.next/server/chunks/476.js +23 -0
- package/.next/server/chunks/530.js +72 -0
- package/.next/server/chunks/870.js +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +2 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/8ZUFcYHRSRlY1FYWZ33gH/_buildManifest.js +1 -0
- package/.next/static/8ZUFcYHRSRlY1FYWZ33gH/_ssgManifest.js +1 -0
- package/.next/static/chunks/4bd1b696-67e30520d621c4dd.js +1 -0
- package/.next/static/chunks/500-b84d19d842172eba.js +1 -0
- package/.next/static/chunks/794-9353bb3ab9a73e90.js +2 -0
- package/.next/static/chunks/app/_global-error/page-aba28f88d5781771.js +1 -0
- package/.next/static/chunks/app/_not-found/page-90fe62e7982fba87.js +1 -0
- package/.next/static/chunks/app/builder/page-e10754eb65a4f784.js +10 -0
- package/.next/static/chunks/app/guide/page-9c9dff9c5e3ddefe.js +1 -0
- package/.next/static/chunks/app/layout-550e25f5579f1a32.js +1 -0
- package/.next/static/chunks/app/matrix/page-b2418abb52a7acd8.js +1 -0
- package/.next/static/chunks/app/page-9c9dff9c5e3ddefe.js +1 -0
- package/.next/static/chunks/app/releases/[id]/page-d8069a1802686478.js +1 -0
- package/.next/static/chunks/app/releases/page-26a520d9789e69f5.js +1 -0
- package/.next/static/chunks/app/specs/[id]/page-7065af5d4d103f16.js +1 -0
- package/.next/static/chunks/framework-d7de93249215fb06.js +1 -0
- package/.next/static/chunks/main-17e3a04cf2f94dca.js +5 -0
- package/.next/static/chunks/main-app-6d93e914b4a54c7e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-aba28f88d5781771.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-aba28f88d5781771.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-ebbdf863aa6a4349.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-aba28f88d5781771.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aba28f88d5781771.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-650bc85863e2a9e7.js +1 -0
- package/.next/static/css/f29e518c867dffaa.css +1 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/builder/page.ts +86 -0
- package/.next/types/app/guide/page.ts +86 -0
- package/.next/types/app/layout.ts +86 -0
- package/.next/types/app/matrix/page.ts +86 -0
- package/.next/types/app/page.ts +86 -0
- package/.next/types/app/releases/[id]/page.ts +86 -0
- package/.next/types/app/releases/page.ts +86 -0
- package/.next/types/app/specs/[id]/page.ts +86 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +63 -0
- package/.next/types/validator.ts +115 -0
- package/README.md +185 -0
- package/bin/cli.js +3650 -0
- package/bin/cli.ts +170 -0
- package/next.config.ts +11 -0
- package/package.json +59 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/next.svg +1 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/layout.tsx
|
|
2
|
+
import * as entry from '../../../src/app/layout.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../src/app/layout.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<LayoutProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/matrix/page.tsx
|
|
2
|
+
import * as entry from '../../../../src/app/matrix/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../src/app/matrix/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/page.tsx
|
|
2
|
+
import * as entry from '../../../src/app/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../src/app/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/page.tsx
|
|
2
|
+
import * as entry from '../../../../../src/app/releases/[id]/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../../src/app/releases/[id]/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/releases/page.tsx
|
|
2
|
+
import * as entry from '../../../../src/app/releases/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../src/app/releases/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// File: /Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/page.tsx
|
|
2
|
+
import * as entry from '../../../../../src/app/specs/[id]/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../../src/app/specs/[id]/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_prefetch?: PrefetchForTypeCheckInternal
|
|
19
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
20
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
21
|
+
dynamicParams?: boolean
|
|
22
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
23
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
24
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
25
|
+
maxDuration?: number
|
|
26
|
+
|
|
27
|
+
metadata?: any
|
|
28
|
+
generateMetadata?: Function
|
|
29
|
+
viewport?: any
|
|
30
|
+
generateViewport?: Function
|
|
31
|
+
|
|
32
|
+
}, TEntry, ''>>()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Check the prop type of the entry function
|
|
36
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
37
|
+
|
|
38
|
+
// Check the arguments and return type of the generateMetadata function
|
|
39
|
+
if ('generateMetadata' in entry) {
|
|
40
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
41
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check the arguments and return type of the generateViewport function
|
|
45
|
+
if ('generateViewport' in entry) {
|
|
46
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
47
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
51
|
+
if ('generateStaticParams' in entry) {
|
|
52
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
53
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface PageProps {
|
|
57
|
+
params?: Promise<SegmentParams>
|
|
58
|
+
searchParams?: Promise<any>
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutProps {
|
|
61
|
+
children?: React.ReactNode
|
|
62
|
+
|
|
63
|
+
params?: Promise<SegmentParams>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// =============
|
|
67
|
+
// Utility types
|
|
68
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
69
|
+
|
|
70
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
71
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
72
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
73
|
+
|
|
74
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
75
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
81
|
+
|
|
82
|
+
// https://github.com/sindresorhus/type-fest
|
|
83
|
+
type Numeric = number | bigint
|
|
84
|
+
type Zero = 0 | 0n
|
|
85
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
86
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// This file is generated automatically by Next.js
|
|
2
|
+
// Do not edit this file manually
|
|
3
|
+
|
|
4
|
+
type AppRoutes = "/" | "/builder" | "/guide" | "/matrix" | "/releases" | "/releases/[id]" | "/specs/[id]"
|
|
5
|
+
type PageRoutes = never
|
|
6
|
+
type LayoutRoutes = "/"
|
|
7
|
+
type RedirectRoutes = never
|
|
8
|
+
type RewriteRoutes = never
|
|
9
|
+
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
interface ParamMap {
|
|
13
|
+
"/": {}
|
|
14
|
+
"/builder": {}
|
|
15
|
+
"/guide": {}
|
|
16
|
+
"/matrix": {}
|
|
17
|
+
"/releases": {}
|
|
18
|
+
"/releases/[id]": { "id": string; }
|
|
19
|
+
"/specs/[id]": { "id": string; }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
export type ParamsOf<Route extends Routes> = ParamMap[Route]
|
|
24
|
+
|
|
25
|
+
interface LayoutSlotMap {
|
|
26
|
+
"/": never
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap }
|
|
31
|
+
|
|
32
|
+
declare global {
|
|
33
|
+
/**
|
|
34
|
+
* Props for Next.js App Router page components
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* export default function Page(props: PageProps<'/blog/[slug]'>) {
|
|
38
|
+
* const { slug } = await props.params
|
|
39
|
+
* return <div>Blog post: {slug}</div>
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
interface PageProps<AppRoute extends AppRoutes> {
|
|
44
|
+
params: Promise<ParamMap[AppRoute]>
|
|
45
|
+
searchParams: Promise<Record<string, string | string[] | undefined>>
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Props for Next.js App Router layout components
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* export default function Layout(props: LayoutProps<'/dashboard'>) {
|
|
53
|
+
* return <div>{props.children}</div>
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
type LayoutProps<LayoutRoute extends LayoutRoutes> = {
|
|
58
|
+
params: Promise<ParamMap[LayoutRoute]>
|
|
59
|
+
children: React.ReactNode
|
|
60
|
+
} & {
|
|
61
|
+
[K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
|
|
62
|
+
}
|
|
63
|
+
}
|