polen 0.11.0-next.6 → 0.11.0-next.8

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 (48) hide show
  1. package/build/api/config/configurator.d.ts +35 -4
  2. package/build/api/config/configurator.d.ts.map +1 -1
  3. package/build/api/config/configurator.js.map +1 -1
  4. package/build/api/schema/data-sources/data-sources.d.ts +1 -0
  5. package/build/api/schema/data-sources/data-sources.d.ts.map +1 -1
  6. package/build/api/schema/data-sources/data-sources.js +1 -0
  7. package/build/api/schema/data-sources/data-sources.js.map +1 -1
  8. package/build/api/schema/data-sources/introspection/introspection.d.ts +83 -0
  9. package/build/api/schema/data-sources/introspection/introspection.d.ts.map +1 -0
  10. package/build/api/schema/data-sources/introspection/introspection.js +110 -0
  11. package/build/api/schema/data-sources/introspection/introspection.js.map +1 -0
  12. package/build/api/schema/read.d.ts +83 -9
  13. package/build/api/schema/read.d.ts.map +1 -1
  14. package/build/api/schema/read.js +15 -6
  15. package/build/api/schema/read.js.map +1 -1
  16. package/build/api/schema-source/schema-source.d.ts +1 -1
  17. package/build/api/schema-source/schema-source.d.ts.map +1 -1
  18. package/build/api/schema-source/schema-source.js.map +1 -1
  19. package/build/api/vite/plugins/core.js +8 -8
  20. package/build/api/vite/plugins/core.js.map +1 -1
  21. package/build/api/vite/plugins/schema-assets.d.ts.map +1 -1
  22. package/build/api/vite/plugins/schema-assets.js +52 -11
  23. package/build/api/vite/plugins/schema-assets.js.map +1 -1
  24. package/build/cli/commands/open.js +1 -1
  25. package/build/cli/commands/open.js.map +1 -1
  26. package/build/lib/grafaid/schema/schema.d.ts +1 -1
  27. package/build/lib/grafaid/schema/schema.d.ts.map +1 -1
  28. package/build/lib/grafaid/schema/schema.js +1 -1
  29. package/build/lib/grafaid/schema/schema.js.map +1 -1
  30. package/build/lib/kit-temp.js +2 -2
  31. package/build/lib/kit-temp.js.map +1 -1
  32. package/build/template/sources/schema-source.d.ts +1 -1
  33. package/build/template/sources/schema-source.d.ts.map +1 -1
  34. package/build/template/sources/schema-source.js +3 -11
  35. package/build/template/sources/schema-source.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/api/config/configurator.ts +35 -4
  38. package/src/api/schema/data-sources/data-sources.ts +1 -0
  39. package/src/api/schema/data-sources/introspection/introspection.ts +213 -0
  40. package/src/api/schema/read.ts +107 -16
  41. package/src/api/schema-source/schema-source.ts +3 -3
  42. package/src/api/vite/plugins/core.ts +8 -8
  43. package/src/api/vite/plugins/schema-assets.ts +59 -12
  44. package/src/cli/commands/open.ts +1 -1
  45. package/src/lib/grafaid/schema/schema.ts +1 -0
  46. package/src/lib/kit-temp.ts +2 -2
  47. package/src/lib/mask/$.test.ts +3 -3
  48. package/src/template/sources/schema-source.ts +3 -14
@@ -28,25 +28,56 @@ export interface ConfigInput {
28
28
  * - `file` - Load from a single SDL file (default: schema.graphql)
29
29
  * - `directory` - Load multiple SDL files with date prefixes (enables changelog)
30
30
  * - `memory` - Define schemas programmatically in configuration
31
+ * - `introspection` - Fetch schema from a GraphQL endpoint
32
+ * - `data` - Use pre-built schema objects
31
33
  *
32
34
  * @example
33
35
  * ```ts
34
- * // Single file
36
+ * // Default: looks for schema.graphql
37
+ * schema: {}
38
+ *
39
+ * // Load via introspection
35
40
  * schema: {
36
- * useDataSources: 'file',
37
41
  * dataSources: {
38
- * file: { path: './my-schema.graphql' }
42
+ * introspection: {
43
+ * url: 'https://api.example.com/graphql',
44
+ * headers: { 'Authorization': `Bearer ${process.env.API_TOKEN}` }
45
+ * }
39
46
  * }
40
47
  * }
41
48
  *
42
49
  * // Multiple versions for changelog
43
50
  * schema: {
44
- * useDataSources: 'directory',
45
51
  * dataSources: {
46
52
  * directory: { path: './schema' }
47
53
  * }
48
54
  * }
55
+ *
56
+ * // Custom source order
57
+ * schema: {
58
+ * useDataSources: ['introspection', 'file'],
59
+ * dataSources: {
60
+ * introspection: { url: 'https://api.example.com/graphql' },
61
+ * file: { path: './fallback.graphql' }
62
+ * }
63
+ * }
49
64
  * ```
65
+ *
66
+ * **Two introspection features**:
67
+ * 1. **File Convention**: Polen auto-detects `schema.introspection.json` files
68
+ * 2. **Config-driven**: Polen fetches and caches introspection for you
69
+ *
70
+ * **Interoperability**: The `schema.introspection.json` file uses the standard
71
+ * GraphQL introspection format, compatible with GraphQL Codegen, Apollo CLI, etc.
72
+ *
73
+ * **Lifecycle**:
74
+ * - First run: Fetches from endpoint, saves to `schema.introspection.json`
75
+ * - Subsequent runs: Loads from JSON file (no network request)
76
+ * - To refresh: Delete the JSON file
77
+ * - Runs during `polen dev` and `polen build`, never at runtime
78
+ *
79
+ * **Query details**: Uses the standard introspection query from the GraphQL spec
80
+ * @see https://spec.graphql.org/draft/#sec-Introspection
50
81
  */
51
82
  schema?: SchemaConfigInput;
52
83
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.d.ts","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurator.d.ts","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../../src/api/config/configurator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * as Introspection from './introspection/introspection.js';
1
2
  export * as Memory from './memory/memory.js';
2
3
  export * as SchemaDirectory from './schema-directory/schema-directory.js';
3
4
  export * as SchemaFile from './schema-file/schema-file.js';
@@ -1 +1 @@
1
- {"version":3,"file":"data-sources.d.ts","sourceRoot":"","sources":["../../../../src/api/schema/data-sources/data-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"data-sources.d.ts","sourceRoot":"","sources":["../../../../src/api/schema/data-sources/data-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * as Introspection from './introspection/introspection.js';
1
2
  export * as Memory from './memory/memory.js';
2
3
  export * as SchemaDirectory from './schema-directory/schema-directory.js';
3
4
  export * as SchemaFile from './schema-file/schema-file.js';
@@ -1 +1 @@
1
- {"version":3,"file":"data-sources.js","sourceRoot":"","sources":["../../../../src/api/schema/data-sources/data-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"data-sources.js","sourceRoot":"","sources":["../../../../src/api/schema/data-sources/data-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA"}
@@ -0,0 +1,83 @@
1
+ import { Grafaid } from '#lib/grafaid/index';
2
+ import type { NonEmptyChangeSets, SchemaReadResult } from '../../schema.js';
3
+ /**
4
+ * Configuration for loading schema via GraphQL introspection.
5
+ *
6
+ * Polen supports two introspection features:
7
+ * 1. **File Convention**: Automatically detects `schema.introspection.json` if present
8
+ * 2. **Automatic Introspection**: Fetches from your endpoint and creates the file
9
+ *
10
+ * When configured, Polen will:
11
+ * - Execute the standard GraphQL introspection query against your endpoint
12
+ * - Save the result to `schema.introspection.json` in your project root
13
+ * - Use this cached file for subsequent builds (no network requests)
14
+ *
15
+ * The saved file contains a standard GraphQL introspection query result as defined
16
+ * in the GraphQL specification, making it compatible with any tool that works with
17
+ * introspection data (GraphQL Codegen, Apollo CLI, etc.).
18
+ *
19
+ * To refresh the schema, delete `schema.introspection.json` and rebuild.
20
+ *
21
+ * **Technical details**:
22
+ * - Uses Graffle's introspection extension
23
+ * - Performs the full introspection query (all types, fields, descriptions, etc.)
24
+ * - No customization of the query is currently supported
25
+ *
26
+ * @see https://spec.graphql.org/draft/#sec-Introspection - GraphQL Introspection spec
27
+ * @see https://github.com/graphql/graphql-js/blob/main/src/utilities/getIntrospectionQuery.ts - Reference implementation
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * // Basic introspection
32
+ * introspection: {
33
+ * url: 'https://api.example.com/graphql'
34
+ * }
35
+ *
36
+ * // With authentication
37
+ * introspection: {
38
+ * url: 'https://api.example.com/graphql',
39
+ * headers: {
40
+ * 'Authorization': `Bearer ${process.env.API_TOKEN}`
41
+ * }
42
+ * }
43
+ * ```
44
+ */
45
+ export interface ConfigInput {
46
+ /**
47
+ * The GraphQL endpoint URL to introspect.
48
+ *
49
+ * Must be a valid GraphQL endpoint that supports introspection queries.
50
+ *
51
+ * @example 'https://api.example.com/graphql'
52
+ */
53
+ url?: string;
54
+ /**
55
+ * Optional headers to include in the introspection request.
56
+ *
57
+ * Use this for authentication, API keys, or any custom headers
58
+ * required by your GraphQL endpoint.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * headers: {
63
+ * 'Authorization': `Bearer ${process.env.API_TOKEN}`,
64
+ * 'X-API-Key': process.env.API_KEY
65
+ * }
66
+ * ```
67
+ */
68
+ headers?: Record<string, string>;
69
+ projectRoot?: string;
70
+ }
71
+ export interface Config {
72
+ url: string;
73
+ headers?: Record<string, string>;
74
+ projectRoot: string;
75
+ }
76
+ export declare const normalizeConfig: (configInput: ConfigInput) => Config;
77
+ export declare const readOrThrow: (configInput: ConfigInput) => Promise<SchemaReadResult>;
78
+ /**
79
+ * Create a single changeset from a schema object.
80
+ * This is the core logic for handling single (unversioned) schemas from introspection.
81
+ */
82
+ export declare const createSingleSchemaChangeset: (schema: Grafaid.Schema.Schema) => Promise<NonEmptyChangeSets>;
83
+ //# sourceMappingURL=introspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../../../../src/api/schema/data-sources/introspection/introspection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAK5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,WAAW,KAAG,MAgB1D,CAAA;AAQD,eAAO,MAAM,WAAW,GACtB,aAAa,WAAW,KACvB,OAAO,CAAC,gBAAgB,CA+E1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAmB3G,CAAA"}
@@ -0,0 +1,110 @@
1
+ import { Grafaid } from '#lib/grafaid/index';
2
+ import { GraphqlChange } from '#lib/graphql-change/index';
3
+ import { GraphqlSchemaLoader } from '#lib/graphql-schema-loader/index';
4
+ import { Fs, Json, Path } from '@wollybeard/kit';
5
+ export const normalizeConfig = (configInput) => {
6
+ if (!configInput.url) {
7
+ throw new Error(`Introspection data source requires a URL`);
8
+ }
9
+ if (!configInput.projectRoot) {
10
+ throw new Error(`Introspection data source requires a projectRoot`);
11
+ }
12
+ const config = {
13
+ url: configInput.url,
14
+ headers: configInput.headers,
15
+ projectRoot: configInput.projectRoot,
16
+ };
17
+ return config;
18
+ };
19
+ const INTROSPECTION_FILE_NAME = `schema.introspection.json`;
20
+ const getIntrospectionFilePath = (projectRoot) => {
21
+ return Path.join(projectRoot, INTROSPECTION_FILE_NAME);
22
+ };
23
+ export const readOrThrow = async (configInput) => {
24
+ const config = normalizeConfig(configInput);
25
+ const introspectionFilePath = getIntrospectionFilePath(config.projectRoot);
26
+ // Check if introspection file exists
27
+ const introspectionFileContent = await Fs.read(introspectionFilePath);
28
+ let schema;
29
+ if (introspectionFileContent) {
30
+ // Load from existing file - no reCreate capability
31
+ try {
32
+ const introspectionData = Json.codec.decode(introspectionFileContent);
33
+ // Validate introspection data structure before passing to fromIntrospectionQuery
34
+ if (!introspectionData || typeof introspectionData !== 'object') {
35
+ throw new Error('Introspection data must be a valid JSON object');
36
+ }
37
+ // Allow fromIntrospectionQuery to handle validation of the introspection format
38
+ // It will provide more specific GraphQL-related error messages
39
+ if (!('data' in introspectionData)) {
40
+ throw new Error('Introspection data missing required "data" property (expected GraphQL introspection result format)');
41
+ }
42
+ schema = Grafaid.Schema.fromIntrospectionQuery(introspectionData);
43
+ }
44
+ catch (error) {
45
+ if (error instanceof SyntaxError) {
46
+ throw new Error(`Invalid JSON in ${introspectionFilePath}: ${error.message}`);
47
+ }
48
+ else {
49
+ throw new Error(`Invalid introspection data in ${introspectionFilePath}: ${error instanceof Error ? error.message : String(error)}. Delete this file to fetch fresh introspection data.`);
50
+ }
51
+ }
52
+ const schemaData = await createSingleSchemaChangeset(schema);
53
+ return {
54
+ data: schemaData,
55
+ source: { type: 'introspectionFile' },
56
+ };
57
+ }
58
+ else {
59
+ // Fetch via introspection - can reCreate
60
+ const introspectionResult = await GraphqlSchemaLoader.load({
61
+ type: `introspect`,
62
+ url: config.url,
63
+ headers: config.headers,
64
+ });
65
+ schema = introspectionResult;
66
+ // Get the raw introspection result for saving
67
+ const __schema = Grafaid.Schema.toIntrospectionQuery(schema);
68
+ // Wrap in GraphQL response format for consistency with API responses
69
+ const introspectionData = { data: { __schema } };
70
+ // Write to file
71
+ await Fs.write({
72
+ path: introspectionFilePath,
73
+ content: Json.codec.encode(introspectionData),
74
+ });
75
+ const schemaData = await createSingleSchemaChangeset(schema);
76
+ return {
77
+ data: schemaData,
78
+ source: {
79
+ type: 'introspectionAuto',
80
+ reCreate: async () => {
81
+ // Re-fetch using captured config - capture closure
82
+ const result = await readOrThrow(configInput);
83
+ return result.data;
84
+ },
85
+ },
86
+ };
87
+ }
88
+ };
89
+ /**
90
+ * Create a single changeset from a schema object.
91
+ * This is the core logic for handling single (unversioned) schemas from introspection.
92
+ */
93
+ export const createSingleSchemaChangeset = async (schema) => {
94
+ const date = new Date(); // Generate date here for unversioned schema
95
+ const after = schema;
96
+ const before = Grafaid.Schema.empty;
97
+ const changes = await GraphqlChange.calcChangeset({
98
+ before,
99
+ after,
100
+ });
101
+ const changeset = {
102
+ date,
103
+ after,
104
+ before,
105
+ changes,
106
+ };
107
+ const result = [changeset];
108
+ return result;
109
+ };
110
+ //# sourceMappingURL=introspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspection.js","sourceRoot":"","sources":["../../../../../src/api/schema/data-sources/introspection/introspection.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,94 @@
1
1
  import { Arr } from '@wollybeard/kit';
2
2
  import * as DataSources from './data-sources/data-sources.js';
3
3
  import type { NonEmptyChangeSets } from './schema.js';
4
- export type DataSourceType = `file` | `directory` | `memory` | `data`;
4
+ export type DataSourceType = `file` | `directory` | `memory` | `data` | `introspection` | `introspectionFile` | `introspectionAuto`;
5
+ /**
6
+ * Result of schema reading with provenance tracking for file watching and debugging.
7
+ */
8
+ export interface SchemaReadResult {
9
+ data: NonEmptyChangeSets | null;
10
+ source: {
11
+ type: DataSourceType;
12
+ /**
13
+ * Recreate the schema data and file after it has been deleted.
14
+ *
15
+ * This function re-fetches data from the original source and recreates
16
+ * the schema file on disk. Only called by file watchers after deletion.
17
+ *
18
+ * @returns Promise resolving to the recreated schema data, or null if recreation fails
19
+ */
20
+ reCreate?: () => Promise<NonEmptyChangeSets | null>;
21
+ };
22
+ }
5
23
  /**
6
24
  * Schema configuration for Polen.
25
+ *
26
+ * Polen supports multiple ways to load your GraphQL schema, from simple files
27
+ * to dynamic introspection. Configure which sources to use and in what order.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * // Load from a file (default)
32
+ * schema: {} // Looks for schema.graphql
33
+ *
34
+ * // Load via introspection
35
+ * schema: {
36
+ * dataSources: {
37
+ * introspection: {
38
+ * url: 'https://api.example.com/graphql',
39
+ * headers: { 'Authorization': 'Bearer token' }
40
+ * }
41
+ * }
42
+ * }
43
+ *
44
+ * // Try multiple sources in order
45
+ * schema: {
46
+ * useDataSources: ['introspection', 'file'],
47
+ * dataSources: {
48
+ * introspection: { url: 'https://api.example.com/graphql' },
49
+ * file: { path: './fallback-schema.graphql' }
50
+ * }
51
+ * }
52
+ * ```
7
53
  */
8
54
  export interface Config {
9
55
  /**
10
56
  * Whether to enable schema loading.
11
57
  *
12
- * Set to `false` to disable schema features entirely.
58
+ * Set to `false` to disable schema features entirely. This removes
59
+ * the Reference and Changelog pages from your portal.
60
+ *
61
+ * @default true
13
62
  *
14
- * @default `true`
63
+ * @example
64
+ * ```ts
65
+ * // Disable schema features
66
+ * schema: { enabled: false }
67
+ * ```
15
68
  */
16
69
  enabled?: boolean;
17
70
  /**
18
71
  * Which data sources to use for loading schemas.
19
72
  *
20
- * - `file` - Load from a single SDL file
21
- * - `directory` - Load multiple SDL files from a directory
73
+ * - `file` - Load from a single SDL file (default: `./schema.graphql`)
74
+ * - `directory` - Load multiple SDL files from a directory (default: `./schema/`)
22
75
  * - `memory` - Use schemas defined in configuration
23
76
  * - `data` - Use a pre-built schema object
77
+ * - `introspection` - Load schema via GraphQL introspection
24
78
  *
25
- * If not specified, Polen will try all sources in order until one succeeds.
79
+ * If not specified, Polen tries all sources in this order:
80
+ * 1. `data` 2. `directory` 3. `file` 4. `memory` 5. `introspection`
26
81
  *
27
82
  * @example
28
83
  * ```ts
29
84
  * // Use only file source
30
85
  * useDataSources: 'file'
31
86
  *
32
- * // Try multiple sources
33
- * useDataSources: ['directory', 'file']
87
+ * // Try multiple sources in custom order
88
+ * useDataSources: ['introspection', 'file']
89
+ *
90
+ * // Default behavior (try all sources)
91
+ * // useDataSources: undefined
34
92
  * ```
35
93
  */
36
94
  useDataSources?: Arr.Maybe<DataSourceType>;
@@ -54,8 +112,24 @@ export interface Config {
54
112
  * Pre-built schema object to use directly.
55
113
  */
56
114
  data?: NonEmptyChangeSets;
115
+ /**
116
+ * Configuration for loading schema via GraphQL introspection.
117
+ *
118
+ * Introspection fetches your schema directly from a running GraphQL endpoint.
119
+ * The schema is saved to `schema.introspection.json` in your project root.
120
+ * Delete this file to force a fresh introspection on the next build.
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * introspection: {
125
+ * url: 'https://api.example.com/graphql',
126
+ * headers: { 'Authorization': 'Bearer token' }
127
+ * }
128
+ * ```
129
+ */
130
+ introspection?: DataSources.Introspection.ConfigInput;
57
131
  };
58
132
  projectRoot: string;
59
133
  }
60
- export declare const readOrThrow: (config: Config) => Promise<null | NonEmptyChangeSets>;
134
+ export declare const readOrThrow: (config: Config) => Promise<SchemaReadResult>;
61
135
  //# sourceMappingURL=read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/api/schema/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC1C;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ;;WAEG;QACH,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,CAAA;QACzC;;WAEG;QACH,SAAS,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAA;QACnD;;WAEG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAA;QACvC;;WAEG;QACH,IAAI,CAAC,EAAE,kBAAkB,CAAA;KAC1B,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAwCnC,CAAA"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/api/schema/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,MAAM,GACN,eAAe,GACf,mBAAmB,GACnB,mBAAmB,CAAA;AAEvB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,cAAc,CAAA;QACpB;;;;;;;WAOG;QACH,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;KACpD,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC1C;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ;;WAEG;QACH,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,CAAA;QACzC;;WAEG;QACH,SAAS,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAA;QACnD;;WAEG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAA;QACvC;;WAEG;QACH,IAAI,CAAC,EAAE,kBAAkB,CAAA;QACzB;;;;;;;;;;;;;;WAcG;QACH,aAAa,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,WAAW,CAAA;KACtD,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,KACb,OAAO,CAAC,gBAAgB,CAiD1B,CAAA"}
@@ -1,13 +1,13 @@
1
- import { Arr } from '@wollybeard/kit';
1
+ import { Arr, Fs, Path } from '@wollybeard/kit';
2
2
  import * as DataSources from './data-sources/data-sources.js';
3
3
  export const readOrThrow = async (config) => {
4
4
  if (config.enabled === false) {
5
- return null;
5
+ return { data: null, source: { type: 'data' } };
6
6
  }
7
7
  const useDataSources = config.useDataSources ? Arr.sure(config.useDataSources) : null;
8
8
  const usingDataSource = (dataSource) => useDataSources === null || useDataSources.includes(dataSource);
9
9
  if (usingDataSource(`data`) && config.dataSources?.data) {
10
- return config.dataSources.data;
10
+ return { data: config.dataSources.data, source: { type: 'data' } };
11
11
  }
12
12
  if (usingDataSource(`directory`)) {
13
13
  const directoryConfig = {
@@ -16,7 +16,7 @@ export const readOrThrow = async (config) => {
16
16
  };
17
17
  const result = await DataSources.SchemaDirectory.readOrThrow(directoryConfig);
18
18
  if (result)
19
- return result;
19
+ return { data: result, source: { type: 'directory' } };
20
20
  }
21
21
  if (usingDataSource(`file`)) {
22
22
  const fileConfig = {
@@ -25,7 +25,7 @@ export const readOrThrow = async (config) => {
25
25
  };
26
26
  const result = await DataSources.SchemaFile.readOrThrow(fileConfig);
27
27
  if (result)
28
- return result;
28
+ return { data: result, source: { type: 'file' } };
29
29
  }
30
30
  if (usingDataSource(`memory`) && config.dataSources?.memory) {
31
31
  const memoryConfig = {
@@ -34,8 +34,17 @@ export const readOrThrow = async (config) => {
34
34
  };
35
35
  const result = await DataSources.Memory.read(memoryConfig);
36
36
  if (result)
37
+ return { data: result, source: { type: 'memory' } };
38
+ }
39
+ if (usingDataSource(`introspection`) && config.dataSources?.introspection) {
40
+ const introspectionConfig = {
41
+ projectRoot: config.projectRoot,
42
+ ...config.dataSources.introspection,
43
+ };
44
+ const result = await DataSources.Introspection.readOrThrow(introspectionConfig);
45
+ if (result.data)
37
46
  return result;
38
47
  }
39
- return null;
48
+ return { data: null, source: { type: 'data' } };
40
49
  };
41
50
  //# sourceMappingURL=read.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/api/schema/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAA;AA6D7D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,MAAc,EACsB,EAAE;IACtC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrF,MAAM,eAAe,GAAG,CAAC,UAA0B,EAAE,EAAE,CAAC,cAAc,KAAK,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEtH,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA;IAChC,CAAC;IAED,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,WAAW,EAAE,SAAS;SACjC,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;QAC7E,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;IAC3B,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI;SAC5B,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;IAC3B,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM;SAC7B,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;IAC3B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/api/schema/read.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export declare const createSchemaSource: (config: SchemaSourceConfig) => {
27
27
  clearAllAssets: () => Promise<void>;
28
28
  removeAsset: (version: string) => Promise<void>;
29
29
  writeMetadata: (metadata: Schema.SchemaMetadata) => Promise<void>;
30
- writeAllAssets: (schemaData: Awaited<ReturnType<typeof Schema.readOrThrow>>, metadata: Schema.SchemaMetadata) => Promise<void>;
30
+ writeAllAssets: (schemaData: Awaited<ReturnType<typeof Schema.readOrThrow>>["data"], metadata: Schema.SchemaMetadata) => Promise<void>;
31
31
  };
32
32
  export {};
33
33
  //# sourceMappingURL=schema-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-source.d.ts","sourceRoot":"","sources":["../../../src/api/schema-source/schema-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjE,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErD,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAcjD,UAAU,kBAAkB;IAC1B,EAAE,EAAE;QACF,IAAI,EAAE,QAAQ,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,CAAA;QACjB,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;KACxB,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB;;;mBAgB/B,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;4BAOtB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;4BAKxC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;;2BA4DzC,MAAM,UAAU,aAAa;8BAK1B,MAAM,aAAa,MAAM,CAAC,aAAa;;2BAS1C,MAAM;8BAcH,MAAM,CAAC,cAAc;iCAKvC,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,YAChD,MAAM,CAAC,cAAc;CA4BpC,CAAA"}
1
+ {"version":3,"file":"schema-source.d.ts","sourceRoot":"","sources":["../../../src/api/schema-source/schema-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjE,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErD,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAcjD,UAAU,kBAAkB;IAC1B,EAAE,EAAE;QACF,IAAI,EAAE,QAAQ,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,CAAA;QACjB,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;KACxB,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB;;;mBAgB/B,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;4BAOtB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;4BAKxC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;;2BA4DzC,MAAM,UAAU,aAAa;8BAK1B,MAAM,aAAa,MAAM,CAAC,aAAa;;2BAS1C,MAAM;8BAcH,MAAM,CAAC,cAAc;iCAKvC,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,YACxD,MAAM,CAAC,cAAc;CA4BpC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-source.js","sourceRoot":"","sources":["../../../src/api/schema-source/schema-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-source.js","sourceRoot":"","sources":["../../../src/api/schema-source/schema-source.ts"],"names":[],"mappings":"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"}
@@ -24,15 +24,15 @@ export const Core = (config) => {
24
24
  let schemaCache = null;
25
25
  const readSchema = async () => {
26
26
  if (schemaCache === null) {
27
- const schema = await Schema.readOrThrow({
27
+ const schemaResult = await Schema.readOrThrow({
28
28
  ...config.schema,
29
29
  projectRoot: config.paths.project.rootDir,
30
30
  });
31
31
  // todo: augmentations scoped to a version
32
- schema?.forEach(version => {
32
+ schemaResult.data?.forEach(version => {
33
33
  SchemaAugmentation.apply(version.after, config.schemaAugmentations);
34
34
  });
35
- schemaCache = schema;
35
+ schemaCache = schemaResult;
36
36
  }
37
37
  return schemaCache;
38
38
  };
@@ -142,8 +142,8 @@ export const Core = (config) => {
142
142
  async loader() {
143
143
  const debug = debugPolen.sub(`module-project-schema`);
144
144
  debug(`load`, { id: viProjectSchema.id });
145
- const schema = await readSchema();
146
- return superjson.stringify(schema);
145
+ const schemaResult = await readSchema();
146
+ return superjson.stringify(schemaResult.data);
147
147
  },
148
148
  }, {
149
149
  identifier: viTemplateVariables,
@@ -162,16 +162,16 @@ export const Core = (config) => {
162
162
  async loader() {
163
163
  const debug = debugPolen.sub(`module-project-data`);
164
164
  debug(`load`, { id: viProjectData.id });
165
- const schema = await readSchema();
165
+ const schemaResult = await readSchema();
166
166
  const navbar = [];
167
167
  // ━ Schema presence causes adding some navbar items
168
- if (schema) {
168
+ if (schemaResult.data) {
169
169
  // IMPORTANT: Always ensure paths start with '/' for React Router compatibility.
170
170
  // Without the leading slash, React Router treats paths as relative, which causes
171
171
  // hydration mismatches between SSR (where base path is prepended) and client
172
172
  // (where basename is configured). This ensures consistent behavior.
173
173
  navbar.push({ pathExp: `/reference`, title: `Reference` });
174
- if (schema.length > 1) {
174
+ if (schemaResult.data.length > 1) {
175
175
  navbar.push({ pathExp: `/changelog`, title: `Changelog` });
176
176
  }
177
177
  }