polen 0.11.0-next.26 → 0.11.0-next.28
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/build/api/builder/ssg/generate.d.ts.map +1 -1
- package/build/api/builder/ssg/generate.js +76 -50
- package/build/api/builder/ssg/generate.js.map +1 -1
- package/build/api/builder/ssg/page-generator.worker.js +59 -55
- package/build/api/builder/ssg/page-generator.worker.js.map +1 -1
- package/build/api/builder/ssg/server-runner.worker.js +34 -40
- package/build/api/builder/ssg/server-runner.worker.js.map +1 -1
- package/build/api/builder/ssg/worker-messages.d.ts +10 -0
- package/build/api/builder/ssg/worker-messages.d.ts.map +1 -1
- package/build/api/builder/ssg/worker-messages.js +7 -1
- package/build/api/builder/ssg/worker-messages.js.map +1 -1
- package/build/template/components/ReferenceLink.d.ts +1 -0
- package/build/template/components/ReferenceLink.d.ts.map +1 -1
- package/build/template/components/ReferenceLink.js.map +1 -1
- package/build/template/components/graphql/type-link.d.ts.map +1 -1
- package/build/template/components/graphql/type-link.js +7 -6
- package/build/template/components/graphql/type-link.js.map +1 -1
- package/build/vite/plugins/routes-manifest.d.ts.map +1 -1
- package/build/vite/plugins/routes-manifest.js +5 -2
- package/build/vite/plugins/routes-manifest.js.map +1 -1
- package/package.json +38 -48
- package/src/api/builder/ssg/generate.ts +111 -71
- package/src/api/builder/ssg/page-generator.worker.ts +106 -74
- package/src/api/builder/ssg/server-runner.worker.ts +39 -44
- package/src/api/builder/ssg/worker-messages.ts +11 -1
- package/src/template/components/ReferenceLink.tsx +1 -0
- package/src/template/components/graphql/type-link.tsx +21 -9
- package/src/vite/plugins/routes-manifest.ts +5 -2
- package/build/lib/extensible-data/$.d.ts +0 -2
- package/build/lib/extensible-data/$.d.ts.map +0 -1
- package/build/lib/extensible-data/$.js +0 -2
- package/build/lib/extensible-data/$.js.map +0 -1
- package/build/lib/extensible-data/extensible-data.d.ts +0 -17
- package/build/lib/extensible-data/extensible-data.d.ts.map +0 -1
- package/build/lib/extensible-data/extensible-data.js +0 -24
- package/build/lib/extensible-data/extensible-data.js.map +0 -1
- package/build/lib/vite-plugin-reactive-data/$.d.ts +0 -2
- package/build/lib/vite-plugin-reactive-data/$.d.ts.map +0 -1
- package/build/lib/vite-plugin-reactive-data/$.js +0 -2
- package/build/lib/vite-plugin-reactive-data/$.js.map +0 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +0 -32
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +0 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +0 -85
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +0 -1
- package/src/lib/extensible-data/$.ts +0 -1
- package/src/lib/extensible-data/extensible-data.ts +0 -38
- package/src/lib/vite-plugin-reactive-data/$.ts +0 -1
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +0 -124
@@ -12,6 +12,10 @@ const GenerateResultSchema = S.Struct({
|
|
12
12
|
duration: S.Number,
|
13
13
|
memoryUsed: S.Number,
|
14
14
|
error: S.optional(S.String),
|
15
|
+
failures: S.optional(S.Array(S.Struct({
|
16
|
+
route: S.String,
|
17
|
+
error: S.String,
|
18
|
+
}))),
|
15
19
|
});
|
16
20
|
// ============================================================================
|
17
21
|
// Server Messages
|
@@ -27,7 +31,9 @@ export class StartServerMessage extends S.TaggedRequest()('StartServer', {
|
|
27
31
|
}
|
28
32
|
export class StopServerMessage extends S.TaggedRequest()('StopServer', {
|
29
33
|
failure: S.Never,
|
30
|
-
payload: {
|
34
|
+
payload: {
|
35
|
+
port: S.optional(S.Number),
|
36
|
+
},
|
31
37
|
success: S.Void,
|
32
38
|
}) {
|
33
39
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worker-messages.js","sourceRoot":"","sources":["../../../../src/api/builder/ssg/worker-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAExC,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAA;AAE5B,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO;IAClB,cAAc,EAAE,CAAC,CAAC,MAAM;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM;IACpB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"worker-messages.js","sourceRoot":"","sources":["../../../../src/api/builder/ssg/worker-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAExC,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAA;AAE5B,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO;IAClB,cAAc,EAAE,CAAC,CAAC,MAAM;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM;IACpB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClB,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM;QACf,KAAK,EAAE,CAAC,CAAC,MAAM;KAChB,CAAC,CACH,CACF;CACF,CAAC,CAAA;AAIF,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,OAAO,kBAAmB,SAAQ,CAAC,CAAC,aAAa,EAAsB,CAC3E,aAAa,EACb;IACE,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,OAAO,EAAE;QACP,UAAU,EAAE,CAAC,CAAC,MAAM;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM;KACf;IACD,OAAO,EAAE,CAAC,CAAC,IAAI;CAChB,CACF;CAAG;AAEJ,MAAM,OAAO,iBAAkB,SAAQ,CAAC,CAAC,aAAa,EAAqB,CACzE,YAAY,EACZ;IACE,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;KAC3B;IACD,OAAO,EAAE,CAAC,CAAC,IAAI;CAChB,CACF;CAAG;AAGJ,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AAE3E,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,MAAM,OAAO,oBAAqB,SAAQ,CAAC,CAAC,aAAa,EAAwB,CAC/E,eAAe,EACf;IACE,OAAO,EAAE,CAAC,CAAC,MAAM;IACjB,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,MAAM;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM;KACpB;IACD,OAAO,EAAE,oBAAoB;CAC9B,CACF;CAAG;AAGJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA"}
|
@@ -7,6 +7,7 @@ import type { React } from '#dep/react/index';
|
|
7
7
|
* <ReferenceLink type="User" field="name">User.name</ReferenceLink>
|
8
8
|
*/
|
9
9
|
export declare const ReferenceLink: React.ForwardRefExoticComponent<{
|
10
|
+
className?: string;
|
10
11
|
/** The GraphQL type name */
|
11
12
|
type: string;
|
12
13
|
/** Optional field name for field-specific links */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ReferenceLink.d.ts","sourceRoot":"","sources":["../../../src/template/components/ReferenceLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAK7C;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;
|
1
|
+
{"version":3,"file":"ReferenceLink.d.ts","sourceRoot":"","sources":["../../../src/template/components/ReferenceLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAK7C;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;gBAGV,MAAM;IAClB,4BAA4B;UACtB,MAAM;IACZ,mDAAmD;YAC3C,MAAM;IACd,mBAAmB;cACT,KAAK,CAAC,SAAS;2CAiB3B,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ReferenceLink.js","sourceRoot":"","sources":["../../../src/template/components/ReferenceLink.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,
|
1
|
+
{"version":3,"file":"ReferenceLink.js","sourceRoot":"","sources":["../../../src/template/components/ReferenceLink.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAWrC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC7C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAClD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAC5C,WAAW,EACX,IAAI,EACJ,KAAK,CACN,CAAA;IAED,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAM,KAAK,YAChC,QAAQ,GACJ,CACR,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"type-link.d.ts","sourceRoot":"","sources":["../../../../src/template/components/graphql/type-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAA;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,
|
1
|
+
{"version":3,"file":"type-link.d.ts","sourceRoot":"","sources":["../../../../src/template/components/graphql/type-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAA;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAkDA,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
2
|
import { Grafaid } from '#lib/grafaid';
|
3
3
|
import { Code, Flex, HoverCard, Text } from '@radix-ui/themes';
|
4
4
|
import React from 'react';
|
@@ -9,11 +9,12 @@ import { typeKindTokensIndex } from './type-kind-tokens.js';
|
|
9
9
|
export const TypeLink = ({ type, showDescription = false }) => {
|
10
10
|
const kind = Grafaid.Schema.typeKindFromClass(type);
|
11
11
|
const hasDescription = type.description && type.description.trim() !== '';
|
12
|
-
const linkContent = (
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
const linkContent = (_jsxs(_Fragment, { children: [_jsx("style", { children: `
|
13
|
+
.type-link-content:hover code:not(:first-child) {
|
14
|
+
text-decoration: underline;
|
15
|
+
text-underline-offset: 2px;
|
16
|
+
}
|
17
|
+
` }), _jsx(ReferenceLink, { type: type.name, className: 'type-link-content', children: _jsxs(Flex, { align: 'center', gap: '1', display: 'inline-flex', children: [_jsx(TypeKindIcon, { kind: kind }), ` `, _jsx(Code, { color: typeKindTokensIndex[kind].color, variant: 'ghost', children: type.name })] }) })] }));
|
17
18
|
// Only show HoverCard if showDescription is true AND description exists
|
18
19
|
if (!showDescription || !hasDescription) {
|
19
20
|
return linkContent;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"type-link.js","sourceRoot":"","sources":["../../../../src/template/components/graphql/type-link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAGhB,CAAC,EAAE,IAAI,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAEzE,MAAM,WAAW,GAAG
|
1
|
+
{"version":3,"file":"type-link.js","sourceRoot":"","sources":["../../../../src/template/components/graphql/type-link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAGhB,CAAC,EAAE,IAAI,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAEzE,MAAM,WAAW,GAAG,CAClB,8BACE,0BACG;;;;;SAKA,GACK,EACR,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,mBAAmB,YAC3D,MAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,GAAG,EACP,OAAO,EAAC,aAAa,aAErB,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,GAAI,EAC3B,GAAG,EACJ,KAAC,IAAI,IAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAC,OAAO,YAAE,IAAI,CAAC,IAAI,GAAQ,IAC3E,GACO,IACf,CACJ,CAAA;IAED,wEAAwE;IACxE,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,OAAO,CACL,MAAC,SAAS,CAAC,IAAI,eACb,KAAC,SAAS,CAAC,OAAO,cACf,WAAW,GACM,EACpB,KAAC,SAAS,CAAC,OAAO,IAChB,IAAI,EAAC,GAAG,EACR,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,KAAK,EACV,KAAK,EAAC,QAAQ,YAEd,KAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,YACzB,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,GACtB,GACW,IACL,CAClB,CAAA;AACH,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"routes-manifest.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;
|
1
|
+
{"version":3,"file":"routes-manifest.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAWtC;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,KAAG,IAAI,CAAC,MAgF/D,CAAA"}
|
@@ -3,6 +3,7 @@ import { Vite } from '#dep/vite/index';
|
|
3
3
|
import { Catalog } from '#lib/catalog/$';
|
4
4
|
import { FileRouter } from '#lib/file-router/$';
|
5
5
|
import { SchemaDefinition } from '#lib/schema-definition/$';
|
6
|
+
import { Version } from '#lib/version/$';
|
6
7
|
import { debugPolen } from '#singletons/debug';
|
7
8
|
import * as NodeFileSystem from '@effect/platform-node/NodeFileSystem';
|
8
9
|
import consola from 'consola';
|
@@ -66,8 +67,10 @@ export const RoutesManifest = (config) => {
|
|
66
67
|
function processVersionedCatalog(catalog, routes) {
|
67
68
|
for (const schema of Catalog.Versioned.getAll(catalog)) {
|
68
69
|
const version = schema.version;
|
69
|
-
|
70
|
-
|
70
|
+
// Properly encode the version to its string representation
|
71
|
+
const versionValue = Version.encodeSync(version);
|
72
|
+
routes.push(`/reference/version/${versionValue}`);
|
73
|
+
processSchemaDefinition(schema.definition, routes, `/reference/version/${versionValue}`);
|
71
74
|
}
|
72
75
|
}
|
73
76
|
function processUnversionedCatalog(catalog, routes) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"routes-manifest.js","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"routes-manifest.js","sourceRoot":"","sources":["../../../src/vite/plugins/routes-manifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "polen",
|
3
|
-
"version": "0.11.0-next.
|
3
|
+
"version": "0.11.0-next.28",
|
4
4
|
"type": "module",
|
5
5
|
"description": "A framework for delightful GraphQL developer portals",
|
6
6
|
"author": {
|
@@ -55,9 +55,6 @@
|
|
55
55
|
"#lib/version/version": {
|
56
56
|
"default": "./build/lib/version/$$.js"
|
57
57
|
},
|
58
|
-
"#lib/extensible-data": {
|
59
|
-
"default": "./build/lib/extensible-data/$.js"
|
60
|
-
},
|
61
58
|
"#lib/favicon": {
|
62
59
|
"default": "./build/lib/favicon/$.js"
|
63
60
|
},
|
@@ -217,9 +214,6 @@
|
|
217
214
|
"#lib/vite-plugin-mdx": {
|
218
215
|
"default": "./build/lib/vite-plugin-mdx/$.js"
|
219
216
|
},
|
220
|
-
"#lib/vite-plugin-reactive-data": {
|
221
|
-
"default": "./build/lib/vite-plugin-reactive-data/$.js"
|
222
|
-
},
|
223
217
|
"#lib/vite-plugins": {
|
224
218
|
"default": "./build/lib/vite-plugins/$.js"
|
225
219
|
},
|
@@ -277,28 +271,27 @@
|
|
277
271
|
"README.md"
|
278
272
|
],
|
279
273
|
"dependencies": {
|
280
|
-
"@0no-co/graphql.web": "^1.
|
281
|
-
"@effect/cli": "^0.
|
282
|
-
"@effect/platform": "^0.90.
|
283
|
-
"@effect/platform-node": "^0.
|
274
|
+
"@0no-co/graphql.web": "^1.2.0",
|
275
|
+
"@effect/cli": "^0.69.2",
|
276
|
+
"@effect/platform": "^0.90.7",
|
277
|
+
"@effect/platform-node": "^0.96.1",
|
284
278
|
"@effect/printer-ansi": "^0.45.0",
|
285
279
|
"@graphql-inspector/core": "^6.2.1",
|
286
280
|
"@graphql-tools/load": "^8.1.2",
|
287
281
|
"@hiogawa/vite-plugin-ssr-css": "^0.0.1",
|
288
|
-
"@hono/node-server": "^1.
|
289
|
-
"@mdx-js/mdx": "^3.1.
|
290
|
-
"@mdx-js/react": "^3.1.
|
291
|
-
"@mdx-js/rollup": "^3.1.
|
282
|
+
"@hono/node-server": "^1.19.1",
|
283
|
+
"@mdx-js/mdx": "^3.1.1",
|
284
|
+
"@mdx-js/react": "^3.1.1",
|
285
|
+
"@mdx-js/rollup": "^3.1.1",
|
292
286
|
"@radix-ui/react-icons": "^1.3.2",
|
293
287
|
"@radix-ui/react-slot": "^1.2.3",
|
294
288
|
"@radix-ui/themes": "^3.2.1",
|
295
|
-
"@rolldown/pluginutils": "1.0.0-beta.
|
296
|
-
"@rollup/pluginutils": "^5.
|
289
|
+
"@rolldown/pluginutils": "1.0.0-beta.36",
|
290
|
+
"@rollup/pluginutils": "^5.3.0",
|
297
291
|
"@types/jsesc": "^3.0.3",
|
298
|
-
"@vitejs/plugin-react": "^
|
299
|
-
"@vitejs/plugin-react-oxc": "^0.
|
300
|
-
"@vltpkg/semver": "0.0.0-
|
301
|
-
"@vue/reactivity": "^3.5.17",
|
292
|
+
"@vitejs/plugin-react": "^5.0.2",
|
293
|
+
"@vitejs/plugin-react-oxc": "^0.4.1",
|
294
|
+
"@vltpkg/semver": "0.0.0-29",
|
302
295
|
"@wollybeard/kit": "^0.41.0",
|
303
296
|
"@wollybeard/projector": "^0.3.0",
|
304
297
|
"ansis": "^4.1.0",
|
@@ -306,20 +299,20 @@
|
|
306
299
|
"codehike": "^1.0.7",
|
307
300
|
"consola": "^3.4.2",
|
308
301
|
"defu": "^6.1.4",
|
309
|
-
"effect": "^3.17.
|
302
|
+
"effect": "^3.17.13",
|
310
303
|
"embla-carousel-react": "^8.6.0",
|
311
|
-
"es-toolkit": "^1.39.
|
304
|
+
"es-toolkit": "^1.39.10",
|
312
305
|
"fuse.js": "^7.1.0",
|
313
306
|
"get-port": "^7.1.0",
|
314
307
|
"graffle": "8.0.0-next.163",
|
315
308
|
"graphql": "^16.11.0",
|
316
309
|
"gray-matter": "^4.0.3",
|
317
|
-
"hono": "^4.
|
310
|
+
"hono": "^4.9.6",
|
318
311
|
"jsesc": "^3.1.0",
|
319
312
|
"jsonc-parser": "^3.3.1",
|
320
|
-
"react": "^19.1.
|
321
|
-
"react-dom": "^19.1.
|
322
|
-
"react-router": "^7.
|
313
|
+
"react": "^19.1.1",
|
314
|
+
"react-dom": "^19.1.1",
|
315
|
+
"react-router": "^7.8.2",
|
323
316
|
"rehype-stringify": "^10.0.1",
|
324
317
|
"remark": "^15.0.1",
|
325
318
|
"remark-frontmatter": "^5.0.0",
|
@@ -328,23 +321,22 @@
|
|
328
321
|
"remark-parse": "^11.0.0",
|
329
322
|
"remark-rehype": "^11.1.2",
|
330
323
|
"resolve.imports": "^2.0.3",
|
331
|
-
"rolldown": "1.0.0-beta.
|
324
|
+
"rolldown": "1.0.0-beta.36",
|
332
325
|
"simple-git": "^3.28.0",
|
333
|
-
"source-map": "^0.7.
|
326
|
+
"source-map": "^0.7.6",
|
334
327
|
"superjson": "^2.2.2",
|
335
|
-
"tinyglobby": "^0.2.
|
328
|
+
"tinyglobby": "^0.2.15",
|
336
329
|
"tree-sitter-graphql-grammar-wasm": "^1.1.0",
|
337
|
-
"tsx": "^4.20.
|
330
|
+
"tsx": "^4.20.5",
|
338
331
|
"type-fest": "^4.41.0",
|
339
|
-
"typescript": "^5.9.2",
|
340
332
|
"unified": "^11.0.5",
|
341
|
-
"valtio": "^2.1.
|
333
|
+
"valtio": "^2.1.7",
|
342
334
|
"vfile": "^6.0.3",
|
343
335
|
"vite": "npm:rolldown-vite@^7.0.10",
|
344
|
-
"vite-plugin-inspect": "^11.3.
|
345
|
-
"web-tree-sitter": "^0.25.
|
336
|
+
"vite-plugin-inspect": "^11.3.3",
|
337
|
+
"web-tree-sitter": "^0.25.9",
|
346
338
|
"youch-core": "^0.3.3",
|
347
|
-
"zx": "8.
|
339
|
+
"zx": "8.8.1"
|
348
340
|
},
|
349
341
|
"devDependencies": {
|
350
342
|
"@actions/core": "^1.11.1",
|
@@ -352,33 +344,31 @@
|
|
352
344
|
"@actions/github": "^6.0.1",
|
353
345
|
"@actions/glob": "^0.5.0",
|
354
346
|
"@actions/io": "^1.1.3",
|
355
|
-
"@changesets/cli": "^2.29.
|
356
|
-
"@effect/vitest": "^0.25.
|
347
|
+
"@changesets/cli": "^2.29.6",
|
348
|
+
"@effect/vitest": "^0.25.1",
|
357
349
|
"@molt/command": "^0.9.0",
|
358
350
|
"@octokit/core": "^7.0.3",
|
359
351
|
"@octokit/types": "^14.1.0",
|
360
|
-
"@playwright/browser-chromium": "^1.
|
352
|
+
"@playwright/browser-chromium": "^1.55.0",
|
361
353
|
"@testing-library/react": "^16.3.0",
|
362
354
|
"@tsconfig/node-lts": "^22.0.2",
|
363
355
|
"@tsconfig/node22": "^22.0.2",
|
364
356
|
"@tsconfig/strictest": "^2.0.5",
|
365
357
|
"@types/jsdom": "^21.1.7",
|
366
|
-
"@types/node": "^24.1
|
367
|
-
"@types/react": "^19.1.
|
368
|
-
"@types/react-dom": "^19.1.
|
369
|
-
"@types/semver": "^7.7.0",
|
358
|
+
"@types/node": "^24.3.1",
|
359
|
+
"@types/react": "^19.1.12",
|
360
|
+
"@types/react-dom": "^19.1.9",
|
370
361
|
"dprint": "^0.50.1",
|
371
362
|
"dripip": "^0.10.0",
|
372
|
-
"fast-check": "^4.
|
363
|
+
"fast-check": "^4.3.0",
|
373
364
|
"fs-jetpack": "^5.1.0",
|
374
365
|
"get-port-please": "^3.2.0",
|
375
366
|
"globals": "^16.3.0",
|
376
367
|
"jsdom": "^26.1.0",
|
377
|
-
"playwright": "1.
|
368
|
+
"playwright": "1.55.0",
|
378
369
|
"publint": "^0.3.12",
|
379
|
-
"
|
380
|
-
"
|
381
|
-
"typescript": "^5.8.3",
|
370
|
+
"strip-ansi": "^7.1.2",
|
371
|
+
"typescript": "^5.9.2",
|
382
372
|
"vite-tsconfig-paths": "^5.1.4",
|
383
373
|
"vitest": "^3.2.4",
|
384
374
|
"zod": "3.25.74"
|
@@ -1,12 +1,11 @@
|
|
1
1
|
import type { Config } from '#api/config/$'
|
2
2
|
import { Routes } from '#api/routes/$'
|
3
|
-
import { debugPolen } from '#singletons/debug'
|
4
3
|
import { Worker } from '@effect/platform'
|
5
4
|
import { NodeContext, NodeWorker } from '@effect/platform-node'
|
6
5
|
import { FileSystem } from '@effect/platform/FileSystem'
|
7
6
|
import { Path } from '@wollybeard/kit'
|
8
7
|
import consola from 'consola'
|
9
|
-
import { Array, Chunk, Effect, Layer } from 'effect'
|
8
|
+
import { Array, Chunk, Duration, Effect, Either, Layer, Logger, Ref } from 'effect'
|
10
9
|
import getPort from 'get-port'
|
11
10
|
import { cpus, totalmem } from 'node:os'
|
12
11
|
import {
|
@@ -18,8 +17,6 @@ import {
|
|
18
17
|
} from './worker-messages.js'
|
19
18
|
import { createPageSpawner, createServerSpawner } from './worker-spawners.js'
|
20
19
|
|
21
|
-
const debug = debugPolen.sub(`api:ssg:generate`)
|
22
|
-
|
23
20
|
export const generate = (config: Config.Config): Effect.Effect<void, Error, FileSystem> =>
|
24
21
|
Effect.gen(function*() {
|
25
22
|
// Read routes from the manifest generated during build
|
@@ -55,14 +52,16 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
55
52
|
consola.info(` Distribution: ${batches.length} batches × ~${batchSize} pages each`)
|
56
53
|
consola.info(` System: ${cpuCount} CPUs, ${memoryGB.toFixed(1)}GB RAM`)
|
57
54
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
55
|
+
yield* Effect.logDebug(`SSG configuration`).pipe(
|
56
|
+
Effect.annotateLogs({
|
57
|
+
totalRoutes,
|
58
|
+
optimalWorkers,
|
59
|
+
cpuCount,
|
60
|
+
memoryGB,
|
61
|
+
batchSize,
|
62
|
+
totalBatches: batches.length,
|
63
|
+
}),
|
64
|
+
)
|
66
65
|
|
67
66
|
// Create worker spawner layers
|
68
67
|
const serverPath = config.paths.project.absolute.build.serverEntrypoint
|
@@ -76,7 +75,7 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
76
75
|
'api/builder/ssg/page-generator.worker' + config.paths.framework.sourceExtension,
|
77
76
|
)
|
78
77
|
|
79
|
-
|
78
|
+
yield* Effect.logDebug(`Creating worker pools with ${optimalWorkers} workers each`)
|
80
79
|
|
81
80
|
// Create and use worker pools within a scoped context
|
82
81
|
yield* Effect.scoped(
|
@@ -106,7 +105,7 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
106
105
|
|
107
106
|
consola.info(`\nStarting SSG infrastructure:`)
|
108
107
|
consola.info(` Launching ${optimalWorkers} Polen app instances...`)
|
109
|
-
|
108
|
+
yield* Effect.logDebug(`Finding available ports for servers`)
|
110
109
|
|
111
110
|
// Get available ports
|
112
111
|
for (let i = 0; i < optimalWorkers; i++) {
|
@@ -116,7 +115,7 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
116
115
|
})
|
117
116
|
serverPorts.push(port)
|
118
117
|
}
|
119
|
-
|
118
|
+
yield* Effect.logDebug(`Using ports: ${serverPorts.join(', ')}`)
|
120
119
|
|
121
120
|
// Start servers using Effect
|
122
121
|
yield* Effect.all(
|
@@ -131,13 +130,12 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
131
130
|
{ concurrency: 'unbounded' },
|
132
131
|
)
|
133
132
|
consola.success(` All ${optimalWorkers} app instances ready on ports: ${serverPorts.join(', ')}`)
|
134
|
-
|
133
|
+
yield* Effect.logDebug(`All servers started successfully`)
|
135
134
|
|
136
135
|
// Prepare page generation configs
|
137
136
|
// Each batch is assigned to a server in round-robin fashion
|
138
137
|
const generateConfigs = batches.map((batch, index) => {
|
139
138
|
const assignedPort = serverPorts[index % serverPorts.length]!
|
140
|
-
debug(`Batch ${index + 1}: ${batch.length} routes → server on port ${assignedPort}`)
|
141
139
|
return {
|
142
140
|
batch,
|
143
141
|
assignedPort,
|
@@ -151,14 +149,12 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
151
149
|
|
152
150
|
// Process batches
|
153
151
|
consola.info(`\nGenerating pages...`)
|
154
|
-
const
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
generateConfigs,
|
161
|
-
({ batch, assignedPort, index }) =>
|
152
|
+
const completedBatchesRef = yield* Ref.make(0)
|
153
|
+
const totalPagesProcessedRef = yield* Ref.make(0)
|
154
|
+
|
155
|
+
// Process batches using Effect.all with timing
|
156
|
+
const [elapsedTime, results] = yield* Effect.all(
|
157
|
+
generateConfigs.map(({ batch, assignedPort, index }) =>
|
162
158
|
pagePool
|
163
159
|
.executeEffect(
|
164
160
|
new GeneratePagesMessage({
|
@@ -169,61 +165,105 @@ export const generate = (config: Config.Config): Effect.Effect<void, Error, File
|
|
169
165
|
)
|
170
166
|
.pipe(
|
171
167
|
Effect.tap((result) =>
|
172
|
-
Effect.
|
173
|
-
completedBatches
|
174
|
-
totalPagesProcessed
|
175
|
-
|
176
|
-
|
177
|
-
const pagesPerSec = elapsed > 0 ? (totalPagesProcessed / elapsed).toFixed(1) : '0'
|
168
|
+
Effect.gen(function*() {
|
169
|
+
const completedBatches = yield* Ref.updateAndGet(completedBatchesRef, n => n + 1)
|
170
|
+
const totalPagesProcessed = yield* Ref.updateAndGet(totalPagesProcessedRef, n =>
|
171
|
+
n + result.processedCount)
|
172
|
+
// Still use process.stdout.write for progress bar - this is UI, not logging
|
178
173
|
const progress = Math.floor((completedBatches / batches.length) * 100)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
174
|
+
yield* Effect.sync(() => {
|
175
|
+
process.stdout.write(
|
176
|
+
`\r Progress: ${completedBatches}/${batches.length} batches (${progress}%) • ${totalPagesProcessed}/${totalRoutes} pages`,
|
177
|
+
)
|
178
|
+
})
|
183
179
|
})
|
184
180
|
),
|
185
|
-
Effect.
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
},
|
195
|
-
)
|
181
|
+
Effect.tapError((error) =>
|
182
|
+
Effect.logError(`Batch ${index} failed`).pipe(
|
183
|
+
Effect.annotateLogs({ error: String(error), batch }),
|
184
|
+
)
|
185
|
+
),
|
186
|
+
Effect.map((result) => ({ ...result, batchIndex: index })),
|
187
|
+
Effect.either, // Convert to Either to capture both success and failure
|
188
|
+
)
|
189
|
+
),
|
190
|
+
{ concurrency: optimalWorkers },
|
191
|
+
).pipe(Effect.timed)
|
196
192
|
|
197
|
-
|
193
|
+
// Partition results into successes and failures
|
194
|
+
const [lefts, rights] = Array.partition(results, Either.isRight)
|
195
|
+
const successfulResults = rights.map(r =>
|
196
|
+
r.right
|
197
|
+
)
|
198
|
+
const failedBatches = lefts.map(r => ({
|
199
|
+
error: r.left instanceof Error ? r.left.message : String(r.left),
|
200
|
+
}))
|
198
201
|
|
199
202
|
// Final stats using successful results
|
200
|
-
const totalTime = (
|
201
|
-
const
|
202
|
-
const
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
203
|
+
const totalTime = (Duration.toMillis(elapsedTime) / 1000).toFixed(1)
|
204
|
+
const actualPagesGenerated = yield* Ref.get(totalPagesProcessedRef)
|
205
|
+
const totalFailures = totalRoutes - actualPagesGenerated
|
206
|
+
|
207
|
+
if (successfulResults.length > 0) {
|
208
|
+
const totalMemoryMB = Array.reduce(successfulResults, 0, (sum, r) => sum + r.memoryUsed) / (1024 * 1024)
|
209
|
+
const avgTimePerBatch = Array.reduce(successfulResults, 0, (sum, r) => sum + r.duration)
|
210
|
+
/ successfulResults.length
|
211
|
+
/ 1000
|
212
|
+
|
213
|
+
if (totalFailures === 0) {
|
214
|
+
consola.success(`\n\nSSG Complete!`)
|
215
|
+
consola.info(` Generated: ${actualPagesGenerated} pages in ${totalTime}s`)
|
216
|
+
consola.info(` Performance: ${(actualPagesGenerated / parseFloat(totalTime)).toFixed(1)} pages/sec`)
|
217
|
+
consola.info(` Avg batch time: ${avgTimePerBatch.toFixed(1)}s`)
|
218
|
+
consola.info(` Peak memory: ${totalMemoryMB.toFixed(0)}MB`)
|
219
|
+
} else {
|
220
|
+
consola.warn(`\n\nSSG Completed with Errors`)
|
221
|
+
consola.info(` Generated: ${actualPagesGenerated} out of ${totalRoutes} pages`)
|
222
|
+
consola.error(` Failed: ${totalFailures} pages`)
|
223
|
+
consola.info(` Time: ${totalTime}s`)
|
224
|
+
consola.info(` Performance: ${(actualPagesGenerated / parseFloat(totalTime)).toFixed(1)} pages/sec`)
|
225
|
+
consola.info(` Avg batch time: ${avgTimePerBatch.toFixed(1)}s`)
|
226
|
+
consola.info(` Peak memory: ${totalMemoryMB.toFixed(0)}MB`)
|
227
|
+
|
228
|
+
// Log details of failures from each batch
|
229
|
+
const allFailures = successfulResults.flatMap(r => r.failures ?? [])
|
230
|
+
if (allFailures.length > 0) {
|
231
|
+
consola.error(`\n Failed routes:`)
|
232
|
+
for (const failure of allFailures.slice(0, 10)) {
|
233
|
+
consola.error(` - ${failure.route}: ${failure.error}`)
|
234
|
+
}
|
235
|
+
if (allFailures.length > 10) {
|
236
|
+
consola.error(` ... and ${allFailures.length - 10} more`)
|
237
|
+
}
|
238
|
+
}
|
239
|
+
|
240
|
+
// Fail the effect to indicate error
|
241
|
+
yield* Effect.fail(new Error(`SSG failed: ${totalFailures} pages could not be generated`))
|
242
|
+
}
|
243
|
+
} else {
|
244
|
+
consola.error(`\n\nSSG Failed Completely`)
|
245
|
+
consola.error(` No pages were generated out of ${totalRoutes} total`)
|
246
|
+
yield* Effect.fail(new Error(`SSG failed: No pages could be generated`))
|
247
|
+
}
|
248
|
+
|
249
|
+
yield* Effect.logDebug(`SSG generation complete`).pipe(
|
250
|
+
Effect.annotateLogs({
|
251
|
+
totalTime,
|
252
|
+
successfulBatches: successfulResults.length,
|
253
|
+
}),
|
254
|
+
)
|
220
255
|
}).pipe(
|
221
256
|
// Provide NodeContext for Path service used in page generator
|
222
257
|
Effect.provide(NodeContext.layer),
|
223
258
|
),
|
259
|
+
).pipe(
|
260
|
+
// After scoped resources are released
|
261
|
+
Effect.tap(() =>
|
262
|
+
Effect.sync(() => {
|
263
|
+
consola.info('\nShutting down...')
|
264
|
+
consola.success('Cleanup complete.')
|
265
|
+
})
|
266
|
+
),
|
267
|
+
Effect.tap(() => Effect.logDebug(`All resources cleaned up`)),
|
224
268
|
)
|
225
|
-
|
226
|
-
consola.info('\nShutting down...')
|
227
|
-
consola.success('Cleanup complete.')
|
228
|
-
debug(`All resources cleaned up`)
|
229
269
|
})
|