functional-examples 0.0.0-alpha.1 → 0.0.0-alpha.3
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/README.md +168 -26
- package/README.md.template +106 -0
- package/dist/cli/commands/validate.d.ts +2 -2
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +92 -25
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/config/resolver.d.ts +10 -10
- package/dist/config/resolver.d.ts.map +1 -1
- package/dist/config/resolver.js +156 -57
- package/dist/config/resolver.js.map +1 -1
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/plugins/pipeline.d.ts +4 -0
- package/dist/plugins/pipeline.d.ts.map +1 -1
- package/dist/plugins/pipeline.js +10 -1
- package/dist/plugins/pipeline.js.map +1 -1
- package/dist/plugins/registry.d.ts +1 -0
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +2 -3
- package/dist/plugins/registry.js.map +1 -1
- package/dist/scanner/scan.d.ts +3 -3
- package/dist/scanner/scan.d.ts.map +1 -1
- package/dist/scanner/scan.js.map +1 -1
- package/dist/scanner/scanner.d.ts.map +1 -1
- package/dist/scanner/scanner.js +5 -5
- package/dist/scanner/scanner.js.map +1 -1
- package/dist/schema/merger.d.ts.map +1 -1
- package/dist/schema/merger.js +75 -20
- package/dist/schema/merger.js.map +1 -1
- package/dist/schema/validator.d.ts.map +1 -1
- package/dist/schema/validator.js +7 -1
- package/dist/schema/validator.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/config/index.spec.d.ts +0 -5
- package/dist/extractors/loader.d.ts +0 -19
- package/dist/extractors/meta-yml-fn.d.ts +0 -19
- package/dist/extractors/meta-yml.d.ts +0 -24
- package/dist/extractors/registry.d.ts +0 -58
- package/dist/extractors/registry.spec.d.ts +0 -2
- package/dist/extractors/yaml-frontmatter-fn.d.ts +0 -18
- package/dist/extractors/yaml-frontmatter.d.ts +0 -22
- package/dist/extractors/yaml-frontmatter.spec.d.ts +0 -2
- package/dist/regions/parser.spec.d.ts +0 -2
- package/dist/scanner/scanner.spec.d.ts +0 -2
package/dist/config/resolver.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configuration resolver - converts config references to actual extractors
|
|
2
|
+
* Configuration resolver - converts config references to actual plugins/extractors
|
|
3
3
|
*/
|
|
4
4
|
import { resolve } from 'node:path';
|
|
5
5
|
import { PluginRegistry } from '../plugins/registry.js';
|
|
6
6
|
import { validatePluginOptions } from '../plugins/validation.js';
|
|
7
7
|
import { getDefaultIncludePattern } from '../scanner/candidates.js';
|
|
8
8
|
/**
|
|
9
|
-
* Known
|
|
9
|
+
* Known plugin packages that can be auto-detected when no plugins are specified.
|
|
10
|
+
* Each entry maps to a package that exports a `createXxxPlugin()` factory function.
|
|
10
11
|
*/
|
|
11
|
-
const
|
|
12
|
-
'@functional-examples/
|
|
12
|
+
const KNOWN_PLUGINS = [
|
|
13
|
+
'@functional-examples/javascript',
|
|
13
14
|
'@functional-examples/yaml-manifest',
|
|
14
15
|
];
|
|
15
16
|
/**
|
|
@@ -20,38 +21,46 @@ const DEFAULT_SCAN = {
|
|
|
20
21
|
root: '.',
|
|
21
22
|
};
|
|
22
23
|
/**
|
|
23
|
-
* Resolve a configuration to actual extractor instances.
|
|
24
|
+
* Resolve a configuration to actual plugin and extractor instances.
|
|
24
25
|
*
|
|
25
|
-
*
|
|
26
|
+
* Plugin resolution follows this priority:
|
|
27
|
+
* 1. If `config.plugins` contains Plugin instances (from TS configs), use directly
|
|
28
|
+
* 2. If `config.plugins` contains string/tuple references (from JSON configs),
|
|
29
|
+
* resolve them by dynamically importing the package and calling its factory
|
|
30
|
+
* 3. If no plugins specified at all, auto-detect installed plugin packages
|
|
26
31
|
*
|
|
27
32
|
* @example
|
|
28
33
|
* ```typescript
|
|
29
34
|
* import { resolveConfig } from 'functional-examples';
|
|
30
35
|
*
|
|
31
|
-
* // Auto-detect
|
|
32
|
-
* const config = await resolveConfig({});
|
|
36
|
+
* // Auto-detect plugins from installed packages
|
|
37
|
+
* const config = await resolveConfig({ root: './examples' });
|
|
33
38
|
*
|
|
34
39
|
* // Use with scanExamples
|
|
35
|
-
* const result = await scanExamples(
|
|
36
|
-
* root: './examples',
|
|
37
|
-
* extractors: config.extractors,
|
|
38
|
-
* pathMappings: config.pathMappings,
|
|
39
|
-
* });
|
|
40
|
+
* const result = await scanExamples(config);
|
|
40
41
|
* ```
|
|
41
42
|
*/
|
|
42
43
|
export async function resolveConfig(config) {
|
|
43
44
|
const validationErrors = [];
|
|
44
|
-
//
|
|
45
|
+
// Step 1: Resolve plugins (from config entries or auto-detection)
|
|
45
46
|
const registry = new PluginRegistry();
|
|
46
|
-
|
|
47
|
+
let plugins;
|
|
48
|
+
const configPlugins = config.plugins ?? [];
|
|
49
|
+
if (configPlugins.length > 0) {
|
|
50
|
+
// Resolve any string/tuple references to actual Plugin instances
|
|
51
|
+
plugins = await resolvePluginEntries(configPlugins);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Auto-detect installed plugin packages
|
|
55
|
+
plugins = await autoDetectPlugins();
|
|
56
|
+
}
|
|
57
|
+
// Register all resolved plugins in the registry
|
|
47
58
|
for (const plugin of plugins) {
|
|
48
|
-
// Cast to base Plugin type for registry (generics are erased at runtime)
|
|
49
59
|
registry.register(plugin);
|
|
50
60
|
}
|
|
51
|
-
// Run options validation for plugins that have validators
|
|
61
|
+
// Step 2: Run options validation for plugins that have validators
|
|
52
62
|
const optionsValidators = registry.getOptionsValidators();
|
|
53
63
|
if (optionsValidators.length > 0) {
|
|
54
|
-
// Build plugin options map from plugins that expose _options
|
|
55
64
|
const pluginOptions = new Map();
|
|
56
65
|
for (const plugin of plugins) {
|
|
57
66
|
if ('_options' in plugin && plugin._options !== undefined) {
|
|
@@ -71,25 +80,16 @@ export async function resolveConfig(config) {
|
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
}
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
extractors = pluginExtractors;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
// Auto-detect installed extractors
|
|
84
|
-
extractors = await autoDetectExtractors();
|
|
85
|
-
}
|
|
86
|
-
if (config.scan?.root) {
|
|
87
|
-
config.scan.root = resolve(config.root, config.scan.root);
|
|
88
|
-
}
|
|
83
|
+
// Step 3: Extract extractors from the registry
|
|
84
|
+
const extractors = registry.getExtractors();
|
|
85
|
+
// Resolve scan root to an absolute path (defaults to config root)
|
|
86
|
+
const scanRoot = config.scan?.root
|
|
87
|
+
? resolve(config.root, config.scan.root)
|
|
88
|
+
: config.root;
|
|
89
89
|
// Determine effective include pattern (smart default detection)
|
|
90
90
|
const effectiveInclude = config.scan?.include?.length
|
|
91
91
|
? config.scan.include
|
|
92
|
-
: await getDefaultIncludePattern(
|
|
92
|
+
: await getDefaultIncludePattern(scanRoot);
|
|
93
93
|
return {
|
|
94
94
|
...config,
|
|
95
95
|
extractors,
|
|
@@ -99,49 +99,98 @@ export async function resolveConfig(config) {
|
|
|
99
99
|
scan: {
|
|
100
100
|
...DEFAULT_SCAN,
|
|
101
101
|
...config.scan,
|
|
102
|
+
root: scanRoot,
|
|
102
103
|
include: effectiveInclude,
|
|
103
104
|
},
|
|
104
105
|
validationErrors,
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
108
|
/**
|
|
108
|
-
*
|
|
109
|
+
* Resolve an array of plugin entries (instances, strings, or tuples)
|
|
110
|
+
* into actual Plugin instances.
|
|
109
111
|
*/
|
|
110
|
-
async function
|
|
111
|
-
const
|
|
112
|
-
for (const
|
|
112
|
+
async function resolvePluginEntries(entries) {
|
|
113
|
+
const plugins = [];
|
|
114
|
+
for (const entry of entries) {
|
|
115
|
+
if (isPluginInstance(entry)) {
|
|
116
|
+
// Already a Plugin instance (from TS config)
|
|
117
|
+
plugins.push(entry);
|
|
118
|
+
}
|
|
119
|
+
else if (typeof entry === 'string') {
|
|
120
|
+
// String reference: "@functional-examples/yaml-manifest"
|
|
121
|
+
const plugin = await loadPluginFromPackage(entry);
|
|
122
|
+
if (plugin) {
|
|
123
|
+
plugins.push(plugin);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (Array.isArray(entry) && entry.length >= 1) {
|
|
127
|
+
// Tuple reference: ["@functional-examples/javascript", { regionTag: "#_" }]
|
|
128
|
+
const [packageName, options] = entry;
|
|
129
|
+
const plugin = await loadPluginFromPackage(packageName, options);
|
|
130
|
+
if (plugin) {
|
|
131
|
+
plugins.push(plugin);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return plugins;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Auto-detect installed plugin packages.
|
|
139
|
+
* Tries to import each known plugin package and call its factory function.
|
|
140
|
+
*/
|
|
141
|
+
async function autoDetectPlugins() {
|
|
142
|
+
const plugins = [];
|
|
143
|
+
for (const packageName of KNOWN_PLUGINS) {
|
|
113
144
|
try {
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
116
|
-
|
|
145
|
+
const plugin = await loadPluginFromPackage(packageName);
|
|
146
|
+
if (plugin) {
|
|
147
|
+
plugins.push(plugin);
|
|
117
148
|
}
|
|
118
149
|
}
|
|
119
150
|
catch {
|
|
120
151
|
// Package not installed, skip silently
|
|
121
152
|
}
|
|
122
153
|
}
|
|
123
|
-
return
|
|
154
|
+
return plugins;
|
|
124
155
|
}
|
|
125
156
|
/**
|
|
126
|
-
* Load
|
|
157
|
+
* Load a plugin from a package by dynamically importing it and calling
|
|
158
|
+
* its factory function. Looks for common export patterns:
|
|
159
|
+
*
|
|
160
|
+
* - `createXxxPlugin(options)` — preferred factory pattern
|
|
161
|
+
* - `module.default` — default export as Plugin instance
|
|
162
|
+
*
|
|
163
|
+
* Falls back to loading just an extractor if no plugin factory is found,
|
|
164
|
+
* wrapping it in a minimal Plugin for backward compatibility.
|
|
127
165
|
*/
|
|
128
|
-
async function
|
|
166
|
+
async function loadPluginFromPackage(packageName, options) {
|
|
129
167
|
try {
|
|
130
168
|
const module = await import(packageName);
|
|
131
|
-
//
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
module.createExtractor ??
|
|
136
|
-
module.default?.createExtractor ??
|
|
137
|
-
module.default;
|
|
138
|
-
if (typeof factory === 'function') {
|
|
139
|
-
return factory(options);
|
|
169
|
+
// Look for createXxxPlugin factory functions first
|
|
170
|
+
const pluginFactory = findPluginFactory(module);
|
|
171
|
+
if (pluginFactory) {
|
|
172
|
+
return pluginFactory(options);
|
|
140
173
|
}
|
|
141
|
-
//
|
|
142
|
-
if (
|
|
174
|
+
// Check if default export is already a Plugin instance
|
|
175
|
+
if (isPluginInstance(module.default)) {
|
|
143
176
|
return module.default;
|
|
144
177
|
}
|
|
178
|
+
// Fall back to extractor-only patterns (backward compatibility)
|
|
179
|
+
const extractorFactory = findExtractorFactory(module);
|
|
180
|
+
if (extractorFactory) {
|
|
181
|
+
const extractor = extractorFactory(options);
|
|
182
|
+
return {
|
|
183
|
+
name: extractor.name,
|
|
184
|
+
extractor,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
if (isExtractorInstance(module.default)) {
|
|
188
|
+
const extractor = module.default;
|
|
189
|
+
return {
|
|
190
|
+
name: extractor.name,
|
|
191
|
+
extractor,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
145
194
|
return null;
|
|
146
195
|
}
|
|
147
196
|
catch {
|
|
@@ -149,10 +198,60 @@ async function loadExtractorFromPackage(packageName, options) {
|
|
|
149
198
|
}
|
|
150
199
|
}
|
|
151
200
|
/**
|
|
152
|
-
*
|
|
201
|
+
* Find a plugin factory function in a module's exports.
|
|
202
|
+
* Matches the pattern `createXxxPlugin`.
|
|
153
203
|
*/
|
|
204
|
+
function findPluginFactory(module) {
|
|
205
|
+
// Check named exports for createXxxPlugin pattern
|
|
206
|
+
for (const key of Object.keys(module)) {
|
|
207
|
+
if (key.endsWith('Plugin') && key.startsWith('create')) {
|
|
208
|
+
const value = module[key];
|
|
209
|
+
if (typeof value === 'function') {
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Check default export
|
|
215
|
+
if (module.default && typeof module.default === 'object') {
|
|
216
|
+
const defaultObj = module.default;
|
|
217
|
+
for (const key of Object.keys(defaultObj)) {
|
|
218
|
+
if (key.endsWith('Plugin') && key.startsWith('create')) {
|
|
219
|
+
const value = defaultObj[key];
|
|
220
|
+
if (typeof value === 'function') {
|
|
221
|
+
return value;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Find an extractor factory function in a module's exports.
|
|
230
|
+
* For backward compatibility with packages that only export extractors.
|
|
231
|
+
*/
|
|
232
|
+
function findExtractorFactory(module) {
|
|
233
|
+
for (const key of Object.keys(module)) {
|
|
234
|
+
if (key.startsWith('create') && key.endsWith('Extractor')) {
|
|
235
|
+
const value = module[key];
|
|
236
|
+
if (typeof value === 'function') {
|
|
237
|
+
return value;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Check if a value is a Plugin instance (has name: string).
|
|
245
|
+
*/
|
|
246
|
+
function isPluginInstance(value) {
|
|
247
|
+
return (typeof value === 'object' &&
|
|
248
|
+
value !== null &&
|
|
249
|
+
'name' in value &&
|
|
250
|
+
typeof value.name === 'string' &&
|
|
251
|
+
!Array.isArray(value));
|
|
252
|
+
}
|
|
154
253
|
/**
|
|
155
|
-
* Check if value is an
|
|
254
|
+
* Check if value is an Extractor instance
|
|
156
255
|
*/
|
|
157
256
|
function isExtractorInstance(value) {
|
|
158
257
|
return (typeof value === 'object' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/config/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/config/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration types - re-exported from devkit for backwards compatibility
|
|
3
3
|
*/
|
|
4
4
|
import type { BaseMetadata } from '@functional-examples/devkit';
|
|
5
|
-
export type { BaseMetadata, Config, ConfigWithRoot, Extractor, ExtractorConfig, ExtractorConfigOrFunction, ExtractorReference, GenerateConfig, JSONSchemaObject, PathMapping, Plugin, ScanConfig, } from '@functional-examples/devkit';
|
|
5
|
+
export type { BaseMetadata, Config, ConfigWithRoot, Extractor, ExtractorConfig, ExtractorConfigOrFunction, ExtractorReference, GenerateConfig, JSONSchemaObject, PathMapping, Plugin, PluginReference, ScanConfig, } from '@functional-examples/devkit';
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated Use Extractor from @functional-examples/devkit
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,YAAY,EACV,YAAY,EACZ,MAAM,EACN,cAAc,EACd,SAAS,EACT,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,UAAU,GACX,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,yBAAyB,CACxC,SAAS,SAAS,YAAY,GAAG,YAAY;IAE7C,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAC7D,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,YAAY,EACV,YAAY,EACZ,MAAM,EACN,cAAc,EACd,SAAS,EACT,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,eAAe,EACf,UAAU,GACX,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,yBAAyB,CACxC,SAAS,SAAS,YAAY,GAAG,YAAY;IAE7C,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAC7D,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D"}
|
|
@@ -6,6 +6,10 @@ export declare function createInitialContext(filePath: string, content: string):
|
|
|
6
6
|
/**
|
|
7
7
|
* Run file content through a parser pipeline.
|
|
8
8
|
* Parsers execute in order, each receiving the output of the previous.
|
|
9
|
+
*
|
|
10
|
+
* Hunks are accumulated across parsers automatically. Each parser receives
|
|
11
|
+
* an empty hunks array and only needs to return its own hunks. The pipeline
|
|
12
|
+
* merges them in order so parsers don't need to preserve earlier hunks.
|
|
9
13
|
*/
|
|
10
14
|
export declare function runParsePipeline(context: FileParseContext, parsers: FileContentsParser[]): Promise<FileParseContext>;
|
|
11
15
|
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/plugins/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/plugins/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,kBAAkB,EAAE,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAa3B"}
|
package/dist/plugins/pipeline.js
CHANGED
|
@@ -13,11 +13,20 @@ export function createInitialContext(filePath, content) {
|
|
|
13
13
|
/**
|
|
14
14
|
* Run file content through a parser pipeline.
|
|
15
15
|
* Parsers execute in order, each receiving the output of the previous.
|
|
16
|
+
*
|
|
17
|
+
* Hunks are accumulated across parsers automatically. Each parser receives
|
|
18
|
+
* an empty hunks array and only needs to return its own hunks. The pipeline
|
|
19
|
+
* merges them in order so parsers don't need to preserve earlier hunks.
|
|
16
20
|
*/
|
|
17
21
|
export async function runParsePipeline(context, parsers) {
|
|
18
22
|
let result = context;
|
|
19
23
|
for (const parser of parsers) {
|
|
20
|
-
|
|
24
|
+
const accumulatedHunks = result.hunks ?? [];
|
|
25
|
+
result = await parser.parse({ ...result, hunks: [] });
|
|
26
|
+
result = {
|
|
27
|
+
...result,
|
|
28
|
+
hunks: [...accumulatedHunks, ...(result.hunks ?? [])],
|
|
29
|
+
};
|
|
21
30
|
}
|
|
22
31
|
return result;
|
|
23
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/plugins/pipeline.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,OAAe;IAEf,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/plugins/pipeline.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,OAAe;IAEf,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyB,EACzB,OAA6B;IAE7B,IAAI,MAAM,GAAG,OAAO,CAAC;IAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,GAAG;YACP,GAAG,MAAM;YACT,KAAK,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -39,6 +39,7 @@ export declare class PluginRegistry {
|
|
|
39
39
|
getExtractors(): Extractor[];
|
|
40
40
|
/**
|
|
41
41
|
* Get parsers for files with given extension, in registration order.
|
|
42
|
+
* Parsers from each plugin are flattened into a single ordered list.
|
|
42
43
|
*/
|
|
43
44
|
getParsersForExtension(extension: string): FileContentsParser[];
|
|
44
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,gBAAgB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAoC;IAExD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB9B;;OAEG;IACH,UAAU,IAAI,SAAS,MAAM,EAAE;IAI/B;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAQ5B
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,gBAAgB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAoC;IAExD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB9B;;OAEG;IACH,UAAU,IAAI,SAAS,MAAM,EAAE;IAI/B;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAQ5B;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAM/D;;OAEG;IACH,oBAAoB,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;IAQlD;;OAEG;IACH,qBAAqB,IAAI,eAAe,EAAE;IAQ1C;;OAEG;IACH,UAAU,IAAI,iBAAiB,EAAE;CAalC"}
|
package/dist/plugins/registry.js
CHANGED
|
@@ -44,11 +44,10 @@ export class PluginRegistry {
|
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Get parsers for files with given extension, in registration order.
|
|
47
|
+
* Parsers from each plugin are flattened into a single ordered list.
|
|
47
48
|
*/
|
|
48
49
|
getParsersForExtension(extension) {
|
|
49
|
-
return this.getPluginsForExtension(extension)
|
|
50
|
-
.filter((p) => p.fileContentsParser !== undefined)
|
|
51
|
-
.map((p) => p.fileContentsParser);
|
|
50
|
+
return this.getPluginsForExtension(extension).flatMap((p) => p.fileContentsParsers ?? []);
|
|
52
51
|
}
|
|
53
52
|
/**
|
|
54
53
|
* Get all options validators from registered plugins.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,OAAO,GAAa,EAAE,CAAC;IACvB,YAAY,GAA0B,IAAI,GAAG,EAAE,CAAC;IAExD;;;OAGG;IACH,QAAQ,CAAC,MAAc;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1B,sBAAsB;QACtB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CACL,CAAC,CAAC,EAA0C,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CACzE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner/scan.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ import type { ScanResult } from './types.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Options for the convenience `scan()` function.
|
|
11
11
|
*/
|
|
12
|
-
export interface ScanOptions {
|
|
12
|
+
export interface ScanOptions<T = Record<string, unknown>> {
|
|
13
13
|
/** Working directory to search for config. Defaults to process.cwd() */
|
|
14
14
|
root?: string;
|
|
15
15
|
/** Pre-built config — skips file discovery + loading */
|
|
16
|
-
config?: ResolvedConfig
|
|
16
|
+
config?: ResolvedConfig<T>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Scan for examples using automatic config discovery.
|
|
@@ -36,5 +36,5 @@ export interface ScanOptions {
|
|
|
36
36
|
* const result = await scan({ config: myResolvedConfig });
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
|
-
export declare function scan(options?: ScanOptions): Promise<ScanResult
|
|
39
|
+
export declare function scan<TMetadata = Record<string, unknown>>(options?: ScanOptions<TMetadata>): Promise<ScanResult<TMetadata>>;
|
|
40
40
|
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAiBhC"}
|
package/dist/scanner/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAa5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,OAAgC;IAEhC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,YAAY,CAAY,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,UAAU,CAAY,UAAU,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAY,SAAS,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAY,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAOL,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAA6B,UAAU,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAOL,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAA6B,UAAU,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CA4MhC"}
|
package/dist/scanner/scanner.js
CHANGED
|
@@ -36,11 +36,9 @@ export async function scanExamples(config) {
|
|
|
36
36
|
const { root: configRoot, pathMappings = [], registry, metadata: metadataSchema, } = config;
|
|
37
37
|
const { include, exclude, root: scanRoot } = config.scan;
|
|
38
38
|
const root = scanRoot ?? configRoot;
|
|
39
|
-
console.log({ root, scanRoot, configRoot });
|
|
40
39
|
// Resolve candidates from include/exclude patterns
|
|
41
40
|
// Default to '*' if no include patterns specified (match direct children)
|
|
42
41
|
const candidates = await resolveCandidates(root, include.length > 0 ? include : ['*'], exclude);
|
|
43
|
-
// Collect all extractors from the registry
|
|
44
42
|
const allExtractors = registry.getExtractors();
|
|
45
43
|
if (allExtractors.length === 0) {
|
|
46
44
|
return {
|
|
@@ -69,7 +67,7 @@ export async function scanExamples(config) {
|
|
|
69
67
|
// Step 2: Build file claim map (file -> [extractor names])
|
|
70
68
|
const fileClaimMap = buildFileClaimMap(extractorResults);
|
|
71
69
|
// Step 3: Detect and resolve conflicts
|
|
72
|
-
const { conflicts, resolvedConflicts, unresolvedConflicts } = resolveConflicts(fileClaimMap, pathMappings);
|
|
70
|
+
const { conflicts, resolvedConflicts, unresolvedConflicts } = resolveConflicts(fileClaimMap, pathMappings, root);
|
|
73
71
|
// Step 4: Filter examples based on conflict resolution
|
|
74
72
|
const allExamples = extractorResults.flatMap((r) => r.examples);
|
|
75
73
|
const filteredExamples = filterExamplesByConflicts(allExamples, unresolvedConflicts, resolvedConflicts);
|
|
@@ -225,7 +223,7 @@ function buildFileClaimMap(results) {
|
|
|
225
223
|
/**
|
|
226
224
|
* Detect conflicts and attempt resolution via path mappings
|
|
227
225
|
*/
|
|
228
|
-
function resolveConflicts(fileClaimMap, pathMappings) {
|
|
226
|
+
function resolveConflicts(fileClaimMap, pathMappings, root) {
|
|
229
227
|
const conflicts = [];
|
|
230
228
|
const resolvedConflicts = [];
|
|
231
229
|
const unresolvedConflicts = [];
|
|
@@ -233,9 +231,11 @@ function resolveConflicts(fileClaimMap, pathMappings) {
|
|
|
233
231
|
if (claimants.length <= 1)
|
|
234
232
|
continue;
|
|
235
233
|
// This is a conflict - try to resolve via path mappings
|
|
234
|
+
// Use relative path for matching since pathMapping patterns are relative to root
|
|
235
|
+
const relativePath = path.relative(root, filePath);
|
|
236
236
|
let resolved = false;
|
|
237
237
|
for (const mapping of pathMappings) {
|
|
238
|
-
if (minimatch(
|
|
238
|
+
if (minimatch(relativePath, mapping.pattern)) {
|
|
239
239
|
if (claimants.includes(mapping.extractor)) {
|
|
240
240
|
const conflict = {
|
|
241
241
|
filePath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,IAAI,GAOL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,EACJ,IAAI,EAAE,UAAU,EAChB,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,EAAE,cAAc,GACzB,GAAG,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACzD,MAAM,IAAI,GAAG,QAAQ,IAAI,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../../src/schema/merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AA6DD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../../src/schema/merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AA6DD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,CAkE/E;AA2ED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,UAAU,CA6BZ"}
|