@plumile/site 0.2.3 → 0.2.6

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 (53) hide show
  1. package/README.md +102 -29
  2. package/lib/esm/node/httpResponse.d.ts +4 -0
  3. package/lib/esm/node/httpResponse.d.ts.map +1 -0
  4. package/lib/esm/node/httpResponse.js +29 -0
  5. package/lib/esm/node/index.d.ts +4 -48
  6. package/lib/esm/node/index.d.ts.map +1 -1
  7. package/lib/esm/node/index.js +4 -102
  8. package/lib/esm/node/renderSiteRequest.d.ts +4 -0
  9. package/lib/esm/node/renderSiteRequest.d.ts.map +1 -0
  10. package/lib/esm/node/renderSiteRequest.js +293 -0
  11. package/lib/esm/node/types.d.ts +106 -0
  12. package/lib/esm/node/types.d.ts.map +1 -0
  13. package/lib/esm/node/types.js +2 -0
  14. package/lib/esm/node/writeStaticSite.d.ts +3 -0
  15. package/lib/esm/node/writeStaticSite.d.ts.map +1 -0
  16. package/lib/esm/node/writeStaticSite.js +77 -0
  17. package/lib/esm/runtime/hydrationPayload.d.ts +8 -0
  18. package/lib/esm/runtime/hydrationPayload.d.ts.map +1 -0
  19. package/lib/esm/runtime/hydrationPayload.js +81 -0
  20. package/lib/esm/runtime/index.d.ts +36 -28
  21. package/lib/esm/runtime/index.d.ts.map +1 -1
  22. package/lib/esm/runtime/index.js +92 -78
  23. package/lib/esm/runtime/scrollRestoration.d.ts +12 -0
  24. package/lib/esm/runtime/scrollRestoration.d.ts.map +1 -0
  25. package/lib/esm/runtime/scrollRestoration.js +66 -0
  26. package/lib/esm/vite/index.d.ts +3 -1
  27. package/lib/esm/vite/index.d.ts.map +1 -1
  28. package/lib/esm/vite/index.js +23 -5
  29. package/lib/esm/vite/resolveSiteAssetsFromViteManifest.d.ts +14 -0
  30. package/lib/esm/vite/resolveSiteAssetsFromViteManifest.d.ts.map +1 -0
  31. package/lib/esm/vite/resolveSiteAssetsFromViteManifest.js +81 -0
  32. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  33. package/lib/types/node/httpResponse.d.ts +4 -0
  34. package/lib/types/node/httpResponse.d.ts.map +1 -0
  35. package/lib/types/node/index.d.ts +4 -48
  36. package/lib/types/node/index.d.ts.map +1 -1
  37. package/lib/types/node/renderSiteRequest.d.ts +4 -0
  38. package/lib/types/node/renderSiteRequest.d.ts.map +1 -0
  39. package/lib/types/node/types.d.ts +106 -0
  40. package/lib/types/node/types.d.ts.map +1 -0
  41. package/lib/types/node/writeStaticSite.d.ts +3 -0
  42. package/lib/types/node/writeStaticSite.d.ts.map +1 -0
  43. package/lib/types/runtime/hydrationPayload.d.ts +8 -0
  44. package/lib/types/runtime/hydrationPayload.d.ts.map +1 -0
  45. package/lib/types/runtime/index.d.ts +36 -28
  46. package/lib/types/runtime/index.d.ts.map +1 -1
  47. package/lib/types/runtime/scrollRestoration.d.ts +12 -0
  48. package/lib/types/runtime/scrollRestoration.d.ts.map +1 -0
  49. package/lib/types/vite/index.d.ts +3 -1
  50. package/lib/types/vite/index.d.ts.map +1 -1
  51. package/lib/types/vite/resolveSiteAssetsFromViteManifest.d.ts +14 -0
  52. package/lib/types/vite/resolveSiteAssetsFromViteManifest.d.ts.map +1 -0
  53. package/package.json +5 -5
@@ -0,0 +1,106 @@
1
+ import type { createStaticRouter } from '@plumile/router/routing/createStaticRouter.js';
2
+ import type RouterRenderer from '@plumile/router/routing/RouterRenderer.js';
3
+ import type RoutingContext from '@plumile/router/routing/RoutingContext.js';
4
+ import type { createRouterHydrationSnapshot } from '@plumile/router/routing/routerHydration.js';
5
+ import type { RouteNode, RouterHydrationSnapshot, RouterRedirectStatus, RouterRenderStatus } from '@plumile/router/types.js';
6
+ export type SiteMetaDescriptor = {
7
+ name: string;
8
+ content: string;
9
+ media?: string;
10
+ } | {
11
+ property: string;
12
+ content: string;
13
+ media?: string;
14
+ };
15
+ export type SiteLinkDescriptor = {
16
+ rel: string;
17
+ href: string;
18
+ as?: string;
19
+ color?: string;
20
+ crossOrigin?: 'anonymous' | 'use-credentials';
21
+ hrefLang?: string;
22
+ media?: string;
23
+ sizes?: string;
24
+ type?: string;
25
+ };
26
+ export type SiteScriptDescriptor = {
27
+ src: string;
28
+ async?: boolean;
29
+ defer?: boolean;
30
+ type?: 'module';
31
+ attributes?: Readonly<Record<string, string>>;
32
+ };
33
+ export type SiteHead = {
34
+ title: string;
35
+ meta?: readonly SiteMetaDescriptor[];
36
+ links?: readonly SiteLinkDescriptor[];
37
+ scripts?: readonly SiteScriptDescriptor[];
38
+ };
39
+ export type SitePageDefinition<TContext> = {
40
+ path: string;
41
+ locale: string;
42
+ hydrate: boolean;
43
+ head: (context: TContext) => SiteHead;
44
+ };
45
+ export type SiteResolvedAssets = {
46
+ stylesheets: readonly string[];
47
+ modulePreloads: readonly string[];
48
+ clientEntry: string | null;
49
+ };
50
+ export type PlumileSiteHydrationPayload = {
51
+ version: 1;
52
+ routePath: string;
53
+ router: RouterHydrationSnapshot;
54
+ };
55
+ export type SiteRouterModule<TContext> = {
56
+ createStaticRouter: typeof createStaticRouter<TContext>;
57
+ createRouterHydrationSnapshot: typeof createRouterHydrationSnapshot;
58
+ RouterRenderer: typeof RouterRenderer;
59
+ RoutingContext: typeof RoutingContext;
60
+ };
61
+ export type RenderSiteRequestOptions<TContext> = {
62
+ location: {
63
+ pathname: string;
64
+ search?: string;
65
+ hash?: string;
66
+ };
67
+ routes: RouteNode[];
68
+ context: TContext;
69
+ page: SitePageDefinition<TContext>;
70
+ assets: SiteResolvedAssets;
71
+ documentLinks?: readonly SiteLinkDescriptor[];
72
+ documentMeta?: readonly SiteMetaDescriptor[];
73
+ documentScripts?: readonly SiteScriptDescriptor[];
74
+ routerModule?: SiteRouterModule<TContext>;
75
+ };
76
+ export type SiteHtmlResponse = {
77
+ kind: 'html';
78
+ status: RouterRenderStatus;
79
+ html: string;
80
+ routePath: string;
81
+ };
82
+ export type SiteRedirectResponse = {
83
+ kind: 'redirect';
84
+ status: RouterRedirectStatus;
85
+ location: string;
86
+ };
87
+ export type SiteNotFoundResponse = {
88
+ kind: 'not-found';
89
+ status: 404;
90
+ };
91
+ export type SiteResponse = SiteHtmlResponse | SiteRedirectResponse | SiteNotFoundResponse;
92
+ export type WriteStaticSiteOptions<TContext> = {
93
+ pages: readonly SitePageDefinition<TContext>[];
94
+ render: (page: SitePageDefinition<TContext>) => Promise<SiteResponse>;
95
+ outDir: string;
96
+ notFoundPages?: readonly {
97
+ output: string;
98
+ render: () => Promise<SiteResponse>;
99
+ }[];
100
+ };
101
+ export type SiteHttpResponse = {
102
+ status: number;
103
+ headers: Readonly<Record<string, string>>;
104
+ body: string;
105
+ };
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/node/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { WriteStaticSiteOptions } from './types.js';
2
+ export declare function writeStaticSite<TContext>(options: WriteStaticSiteOptions<TContext>): Promise<void>;
3
+ //# sourceMappingURL=writeStaticSite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeStaticSite.d.ts","sourceRoot":"","sources":["../../../src/node/writeStaticSite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAsB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG7E,wBAAsB,eAAe,CAAC,QAAQ,EAC5C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,CAqCf"}
@@ -0,0 +1,8 @@
1
+ import type { RouterHydrationSnapshot } from '@plumile/router/types.js';
2
+ export type PlumileSiteHydrationPayload = {
3
+ version: 1;
4
+ routePath: string;
5
+ router: RouterHydrationSnapshot;
6
+ };
7
+ export declare function readHydrationPayload(document: Document): PlumileSiteHydrationPayload;
8
+ //# sourceMappingURL=hydrationPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrationPayload.d.ts","sourceRoot":"","sources":["../../../src/runtime/hydrationPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAGF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,GACjB,2BAA2B,CAiB7B"}
@@ -1,35 +1,26 @@
1
- import { type PlumileSiteManifest } from '../manifest/index.js';
2
1
  import type { ComponentType, ReactElement, ReactNode, createElement } from 'react';
3
2
  import type { hydrateRoot } from 'react-dom/client';
4
- export type InternalLinkDecision = {
5
- external: boolean;
6
- hashOnly: boolean;
7
- modified: boolean;
8
- shouldHandle: boolean;
9
- };
10
- export type LinkClickLike = {
11
- altKey?: boolean;
12
- button?: number;
13
- ctrlKey?: boolean;
14
- metaKey?: boolean;
15
- shiftKey?: boolean;
16
- };
17
- export type BrowserNavigationEvent = LinkClickLike & {
18
- currentTarget?: EventTarget | null;
19
- preventDefault?: () => void;
20
- };
3
+ import type { ParamData } from 'path-to-regexp';
4
+ import type { RouteEntry, RouteNode, RouterHydrationSnapshot } from '@plumile/router/types.js';
5
+ import { type PlumileSiteHydrationPayload } from './hydrationPayload.js';
6
+ export type { PlumileSiteHydrationPayload } from './hydrationPayload.js';
7
+ export { createScrollRestoration, type SiteScrollRestoration, } from './scrollRestoration.js';
21
8
  export type HydrateSiteRuntime = {
22
9
  createElement: typeof createElement;
23
10
  hydrateRoot: typeof hydrateRoot;
24
11
  };
25
12
  export type HydrateSiteRouterModule<TContext> = {
26
- createRouter: (routes: unknown[], options?: {
13
+ createRouter: (routes: RouteNode[], options: {
27
14
  context?: TContext;
15
+ getContext?: () => TContext;
16
+ hydrationSnapshot: RouterHydrationSnapshot;
28
17
  }) => {
29
18
  context: unknown;
19
+ cleanup?: () => void;
30
20
  };
31
21
  RouterRenderer: ComponentType<{
32
22
  fallback?: ReactNode;
23
+ onRouteCommit?: (entry: RouteEntry<ParamData>) => void;
33
24
  }>;
34
25
  RoutingContext: {
35
26
  Provider: ComponentType<{
@@ -38,21 +29,38 @@ export type HydrateSiteRouterModule<TContext> = {
38
29
  }>;
39
30
  };
40
31
  };
41
- export type HydrateSiteOptions<TContext = unknown> = {
42
- container?: Element | null;
32
+ export type HydrateSiteOptions<TContext> = {
33
+ routes: RouteNode[];
43
34
  context?: TContext;
44
- document?: Document;
35
+ getContext?: () => TContext;
45
36
  fallback?: ReactElement | string | null;
46
- manifest?: PlumileSiteManifest;
47
- manifestGlobalName?: string;
37
+ container?: Element;
38
+ document?: Document;
48
39
  runtime?: HydrateSiteRuntime;
49
40
  routerModule?: HydrateSiteRouterModule<TContext>;
50
- routes: unknown[];
51
- window?: Window;
41
+ onRouteCommit?: (entry: RouteEntry<ParamData>) => void;
52
42
  };
53
43
  export type HydrateSiteResult = {
54
- manifest: PlumileSiteManifest;
44
+ payload: PlumileSiteHydrationPayload;
55
45
  routerContext: unknown;
46
+ cleanup?: () => void;
47
+ };
48
+ export type InternalLinkDecision = {
49
+ external: boolean;
50
+ hashOnly: boolean;
51
+ modified: boolean;
52
+ shouldHandle: boolean;
53
+ };
54
+ export type LinkClickLike = {
55
+ altKey?: boolean;
56
+ button?: number;
57
+ ctrlKey?: boolean;
58
+ metaKey?: boolean;
59
+ shiftKey?: boolean;
60
+ };
61
+ export type BrowserNavigationEvent = LinkClickLike & {
62
+ currentTarget?: EventTarget | null;
63
+ preventDefault?: () => void;
56
64
  };
57
65
  export type SiteSearchIndexEntry = {
58
66
  content?: string;
@@ -70,13 +78,13 @@ export type SiteSearchIndex = {
70
78
  export type SiteSearchResult = SiteSearchIndexEntry & {
71
79
  score: number;
72
80
  };
81
+ export declare function hydratePlumileSite<TContext = unknown>(options: HydrateSiteOptions<TContext>): Promise<HydrateSiteResult>;
73
82
  export declare function shouldHandleSiteNavigation(href: string, currentUrl: string, event?: LinkClickLike): InternalLinkDecision;
74
83
  export declare function normalizeSitePath(pathname: string): string;
75
84
  export declare function searchSiteIndex(index: SiteSearchIndex, query: string, options?: {
76
85
  locale?: string;
77
86
  limit?: number;
78
87
  }): SiteSearchResult[];
79
- export declare function hydratePlumileSite<TContext = unknown>(options: HydrateSiteOptions<TContext>): Promise<HydrateSiteResult>;
80
88
  export declare function attachSiteNavigationHandler(input: {
81
89
  currentUrl: string;
82
90
  event: BrowserNavigationEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ParamData } from 'path-to-regexp';
2
+ import type { RouteEntry } from '@plumile/router/types.js';
3
+ export type SiteScrollRestoration = {
4
+ beforeRouteChange: (current: RouteEntry<ParamData>) => void;
5
+ onRouteCommit: (next: RouteEntry<ParamData>) => void;
6
+ dispose: () => void;
7
+ };
8
+ export declare function createScrollRestoration(options: {
9
+ window?: Window;
10
+ document?: Document;
11
+ }): SiteScrollRestoration;
12
+ //# sourceMappingURL=scrollRestoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollRestoration.d.ts","sourceRoot":"","sources":["../../../src/runtime/scrollRestoration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC5D,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAGF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GAAG,qBAAqB,CA4DxB"}
@@ -1,6 +1,8 @@
1
1
  import type { PluginOption } from 'vite';
2
+ export { resolveSiteAssetsFromViteManifest, type ResolveSiteAssetsOptions, type ViteManifestChunk, } from './resolveSiteAssetsFromViteManifest.js';
2
3
  export type PlumileSiteVitePluginOptions = {
4
+ clientEntry: string;
3
5
  manifestPath?: string;
4
6
  };
5
- export declare function plumileSiteVitePlugin(options?: PlumileSiteVitePluginOptions): PluginOption;
7
+ export declare function plumileSiteVitePlugin(options: PlumileSiteVitePluginOptions): PluginOption;
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAKF,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,YAAY,CAad"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,MAAM,CAAC;AACrD,OAAO,EACL,iCAAiC,EACjC,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,YAAY,CA8Bd"}
@@ -0,0 +1,14 @@
1
+ import type { SiteResolvedAssets } from '../node/types.js';
2
+ export type ViteManifestChunk = {
3
+ file: string;
4
+ css?: readonly string[];
5
+ imports?: readonly string[];
6
+ isEntry?: boolean;
7
+ isDynamicEntry?: boolean;
8
+ };
9
+ export type ResolveSiteAssetsOptions = {
10
+ clientEntry: string;
11
+ routeEntries: readonly string[];
12
+ };
13
+ export declare function resolveSiteAssetsFromViteManifest(manifest: Readonly<Record<string, ViteManifestChunk>>, options: ResolveSiteAssetsOptions): SiteResolvedAssets;
14
+ //# sourceMappingURL=resolveSiteAssetsFromViteManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveSiteAssetsFromViteManifest.d.ts","sourceRoot":"","sources":["../../../src/vite/resolveSiteAssetsFromViteManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAGF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EACrD,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAkDpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumile/site",
3
- "version": "0.2.3",
3
+ "version": "0.2.6",
4
4
  "description": "Static-SPA site framework for Plumile React documentation and marketing sites",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -90,10 +90,10 @@
90
90
  "tslib": "^2.8.1"
91
91
  },
92
92
  "devDependencies": {
93
- "@plumile/router": "^0.2.3",
94
- "@types/node": "26.4.0",
93
+ "@plumile/router": "^0.2.6",
94
+ "@types/node": "26.4.1",
95
95
  "@types/react": "19.2.18",
96
- "@types/react-dom": "19.2.5",
96
+ "@types/react-dom": "19.2.7",
97
97
  "@typescript/native": "npm:typescript@7.0.2",
98
98
  "react": "19.2.8",
99
99
  "react-dom": "19.2.8",
@@ -102,7 +102,7 @@
102
102
  "vitest": "4.1.11"
103
103
  },
104
104
  "peerDependencies": {
105
- "@plumile/router": "^0.2.2",
105
+ "@plumile/router": "^0.2.5",
106
106
  "react": "^19.2.8",
107
107
  "react-dom": "^19.2.8",
108
108
  "vite": "^8.2.2"