functional-examples 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -44
- package/README.md.template +28 -54
- package/dist/cli/commands/scan.d.ts +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/config/resolver.d.ts.map +1 -1
- package/dist/config/resolver.js +25 -2
- package/dist/config/resolver.js.map +1 -1
- package/dist/config/schema.d.ts +10 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/files/reader.d.ts +4 -20
- package/dist/files/reader.d.ts.map +1 -1
- package/dist/files/reader.js +6 -22
- package/dist/files/reader.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/pipeline.d.ts +2 -1
- package/dist/plugins/pipeline.d.ts.map +1 -1
- package/dist/plugins/pipeline.js +4 -3
- package/dist/plugins/pipeline.js.map +1 -1
- package/dist/regions/defaults.d.ts +11 -0
- package/dist/regions/defaults.d.ts.map +1 -0
- package/dist/regions/defaults.js +20 -0
- package/dist/regions/defaults.js.map +1 -0
- package/dist/regions/parser.d.ts +18 -56
- package/dist/regions/parser.d.ts.map +1 -1
- package/dist/regions/parser.js +81 -149
- package/dist/regions/parser.js.map +1 -1
- package/dist/scanner/scanner.d.ts.map +1 -1
- package/dist/scanner/scanner.js +14 -5
- package/dist/scanner/scanner.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/config/index.spec.d.ts.map +0 -1
- package/dist/config/index.spec.js +0 -142
- package/dist/config/index.spec.js.map +0 -1
- package/dist/extractors/loader.d.ts.map +0 -1
- package/dist/extractors/loader.js +0 -120
- package/dist/extractors/loader.js.map +0 -1
- package/dist/extractors/meta-yml-fn.d.ts.map +0 -1
- package/dist/extractors/meta-yml-fn.js +0 -66
- package/dist/extractors/meta-yml-fn.js.map +0 -1
- package/dist/extractors/meta-yml.d.ts.map +0 -1
- package/dist/extractors/meta-yml.js +0 -65
- package/dist/extractors/meta-yml.js.map +0 -1
- package/dist/extractors/registry.d.ts.map +0 -1
- package/dist/extractors/registry.js +0 -114
- package/dist/extractors/registry.js.map +0 -1
- package/dist/extractors/registry.spec.d.ts.map +0 -1
- package/dist/extractors/registry.spec.js +0 -102
- package/dist/extractors/registry.spec.js.map +0 -1
- package/dist/extractors/yaml-frontmatter-fn.d.ts.map +0 -1
- package/dist/extractors/yaml-frontmatter-fn.js +0 -73
- package/dist/extractors/yaml-frontmatter-fn.js.map +0 -1
- package/dist/extractors/yaml-frontmatter.d.ts.map +0 -1
- package/dist/extractors/yaml-frontmatter.js +0 -83
- package/dist/extractors/yaml-frontmatter.js.map +0 -1
- package/dist/extractors/yaml-frontmatter.spec.d.ts.map +0 -1
- package/dist/extractors/yaml-frontmatter.spec.js +0 -134
- package/dist/extractors/yaml-frontmatter.spec.js.map +0 -1
- package/dist/regions/index.d.ts +0 -7
- package/dist/regions/index.d.ts.map +0 -1
- package/dist/regions/index.js +0 -6
- package/dist/regions/index.js.map +0 -1
- package/dist/regions/languages.d.ts +0 -15
- package/dist/regions/languages.d.ts.map +0 -1
- package/dist/regions/languages.js +0 -182
- package/dist/regions/languages.js.map +0 -1
- package/dist/regions/parser.spec.d.ts.map +0 -1
- package/dist/regions/parser.spec.js +0 -190
- package/dist/regions/parser.spec.js.map +0 -1
- package/dist/regions/types.d.ts +0 -37
- package/dist/regions/types.d.ts.map +0 -1
- package/dist/regions/types.js +0 -5
- package/dist/regions/types.js.map +0 -1
- package/dist/scanner/scanner.spec.d.ts.map +0 -1
- package/dist/scanner/scanner.spec.js +0 -262
- package/dist/scanner/scanner.spec.js.map +0 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ npm install functional-examples
|
|
|
17
17
|
pnpm add functional-examples
|
|
18
18
|
# or
|
|
19
19
|
yarn add functional-examples
|
|
20
|
+
|
|
20
21
|
```
|
|
21
22
|
|
|
22
23
|
## Quick Start
|
|
@@ -25,16 +26,13 @@ yarn add functional-examples
|
|
|
25
26
|
|
|
26
27
|
```typescript
|
|
27
28
|
/**
|
|
28
|
-
* Basic example: Scanning for examples
|
|
29
|
+
* Basic example: Scanning for examples programmatically
|
|
29
30
|
*/
|
|
30
|
-
import {
|
|
31
|
+
import { scan } from 'functional-examples';
|
|
31
32
|
|
|
32
33
|
async function main() {
|
|
33
|
-
//
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
// Scan for examples
|
|
37
|
-
const result = await scanExamples(config);
|
|
34
|
+
// scan() auto-discovers config and plugins
|
|
35
|
+
const result = await scan();
|
|
38
36
|
|
|
39
37
|
console.log(`Found ${result.examples.length} examples:`);
|
|
40
38
|
for (const example of result.examples) {
|
|
@@ -57,44 +55,55 @@ main().catch(console.error);
|
|
|
57
55
|
|
|
58
56
|
### Directory-based (meta.yml)
|
|
59
57
|
|
|
60
|
-
```
|
|
61
|
-
examples/
|
|
62
|
-
my-example/
|
|
63
|
-
meta.yml
|
|
64
|
-
main.ts
|
|
65
|
-
helper.ts
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**meta.yml:**
|
|
69
58
|
```yaml
|
|
70
|
-
id:
|
|
71
|
-
title:
|
|
72
|
-
description:
|
|
59
|
+
id: basic-usage
|
|
60
|
+
title: Basic Usage
|
|
61
|
+
description: |
|
|
62
|
+
Demonstrates scanning for examples in a directory
|
|
63
|
+
using the functional-examples library.
|
|
64
|
+
tags:
|
|
65
|
+
- getting-started
|
|
66
|
+
- api
|
|
67
|
+
|
|
73
68
|
```
|
|
74
69
|
|
|
70
|
+
This `meta.yml` defines metadata for one example directory.
|
|
71
|
+
|
|
75
72
|
### File-based (YAML frontmatter)
|
|
76
73
|
|
|
77
74
|
```typescript
|
|
78
75
|
// ---
|
|
79
|
-
//
|
|
80
|
-
//
|
|
76
|
+
// id: hello
|
|
77
|
+
// title: Hello World
|
|
78
|
+
// description: A minimal example
|
|
81
79
|
// ---
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
export function hello() {
|
|
82
|
+
return 'Hello from functional-examples!';
|
|
83
|
+
}
|
|
84
|
+
|
|
84
85
|
```
|
|
85
86
|
|
|
86
87
|
## Region Markers
|
|
87
88
|
|
|
88
|
-
Mark regions in your code for extraction:
|
|
89
|
-
|
|
90
89
|
```typescript
|
|
90
|
+
/**
|
|
91
|
+
* ---
|
|
92
|
+
* id: region-markers
|
|
93
|
+
* title: Region Markers Demo
|
|
94
|
+
* ---
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
import { scan } from 'functional-examples';
|
|
98
|
+
|
|
91
99
|
// #region setup
|
|
92
|
-
const
|
|
93
|
-
// #endregion
|
|
100
|
+
const result = await scan();
|
|
101
|
+
// #endregion
|
|
102
|
+
|
|
103
|
+
// #region execution
|
|
104
|
+
console.log(result.examples);
|
|
105
|
+
// #endregion
|
|
94
106
|
|
|
95
|
-
// #region main
|
|
96
|
-
await db.query('SELECT * FROM users');
|
|
97
|
-
// #endregion main
|
|
98
107
|
```
|
|
99
108
|
|
|
100
109
|
Supports 30+ languages with automatic comment syntax detection.
|
|
@@ -111,6 +120,7 @@ Supports 30+ languages with automatic comment syntax detection.
|
|
|
111
120
|
* 3. Claims files and returns Example objects
|
|
112
121
|
*/
|
|
113
122
|
import {
|
|
123
|
+
ExampleFile,
|
|
114
124
|
type Example,
|
|
115
125
|
type Extractor,
|
|
116
126
|
type ExtractorResult,
|
|
@@ -128,6 +138,7 @@ export interface TomlMetadata {
|
|
|
128
138
|
title: string;
|
|
129
139
|
description?: string;
|
|
130
140
|
author?: string;
|
|
141
|
+
[key: string]: unknown;
|
|
131
142
|
}
|
|
132
143
|
|
|
133
144
|
/**
|
|
@@ -190,7 +201,7 @@ export function createTomlExtractor(): Extractor<TomlMetadata> {
|
|
|
190
201
|
title: metadata.title,
|
|
191
202
|
description: metadata.description,
|
|
192
203
|
rootPath: exampleDir,
|
|
193
|
-
files: files.map((f) => ({
|
|
204
|
+
files: files.map((f) => new ExampleFile({
|
|
194
205
|
absolutePath: f,
|
|
195
206
|
relativePath: path.relative(exampleDir, f),
|
|
196
207
|
})),
|
|
@@ -263,27 +274,35 @@ function collectExampleFiles(root: string) {
|
|
|
263
274
|
|
|
264
275
|
### Scanner
|
|
265
276
|
|
|
266
|
-
- `
|
|
267
|
-
- `
|
|
277
|
+
- `scan(options?)` - Discover config and scan in one call
|
|
278
|
+
- `scanExamples(resolvedConfig)` - Scan with a pre-resolved config
|
|
268
279
|
|
|
269
|
-
###
|
|
280
|
+
### Configuration
|
|
270
281
|
|
|
271
|
-
- `
|
|
272
|
-
- `
|
|
273
|
-
- `
|
|
282
|
+
- `findConfigFile(root?)`
|
|
283
|
+
- `loadConfig(configPath)`
|
|
284
|
+
- `resolveConfig(config)`
|
|
285
|
+
- `validateConfig(config)`
|
|
286
|
+
- `mergeConfigs(...configs)`
|
|
274
287
|
|
|
275
|
-
###
|
|
288
|
+
### Plugins and Validation
|
|
276
289
|
|
|
277
|
-
- `
|
|
278
|
-
- `
|
|
279
|
-
- `
|
|
280
|
-
- `
|
|
281
|
-
- `
|
|
290
|
+
- `PluginRegistry`
|
|
291
|
+
- `createInitialContext(context)`
|
|
292
|
+
- `runParsePipeline(context, parsers)`
|
|
293
|
+
- `validatePluginOptions(context)`
|
|
294
|
+
- `validateExampleMetadata(context)`
|
|
282
295
|
|
|
283
296
|
### File Helpers
|
|
284
297
|
|
|
285
|
-
- `readExampleFile(path, options?)`
|
|
286
|
-
- `readExampleFiles(
|
|
298
|
+
- `readExampleFile(path, options?)`
|
|
299
|
+
- `readExampleFiles(root, files)`
|
|
300
|
+
|
|
301
|
+
### Schema Utilities
|
|
302
|
+
|
|
303
|
+
- `mergeConfigSchema(...)`
|
|
304
|
+
- `mergeMetadataSchemas(...)`
|
|
305
|
+
- `generateTypes(...)`
|
|
287
306
|
|
|
288
307
|
## License
|
|
289
308
|
|
package/README.md.template
CHANGED
|
@@ -11,13 +11,7 @@ A language-agnostic library for treating code examples as first-class citizens.
|
|
|
11
11
|
|
|
12
12
|
## Installation
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
npm install functional-examples
|
|
16
|
-
# or
|
|
17
|
-
pnpm add functional-examples
|
|
18
|
-
# or
|
|
19
|
-
yarn add functional-examples
|
|
20
|
-
```
|
|
14
|
+
<%= example('devkit-readme').file('snippets/install-functional-examples.sh') %>
|
|
21
15
|
|
|
22
16
|
## Quick Start
|
|
23
17
|
|
|
@@ -29,45 +23,17 @@ yarn add functional-examples
|
|
|
29
23
|
|
|
30
24
|
### Directory-based (meta.yml)
|
|
31
25
|
|
|
32
|
-
|
|
33
|
-
examples/
|
|
34
|
-
my-example/
|
|
35
|
-
meta.yml
|
|
36
|
-
main.ts
|
|
37
|
-
helper.ts
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**meta.yml:**
|
|
41
|
-
```yaml
|
|
42
|
-
id: my-example
|
|
43
|
-
title: My Example
|
|
44
|
-
description: Demonstrates something useful
|
|
45
|
-
```
|
|
26
|
+
<%= example('yaml-manifest').file('examples/basic-usage/meta.yml') %>
|
|
46
27
|
|
|
47
|
-
|
|
28
|
+
This `meta.yml` defines metadata for one example directory.
|
|
48
29
|
|
|
49
|
-
|
|
50
|
-
// ---
|
|
51
|
-
// title: My Example
|
|
52
|
-
// description: A single-file example
|
|
53
|
-
// ---
|
|
30
|
+
### File-based (YAML frontmatter)
|
|
54
31
|
|
|
55
|
-
|
|
56
|
-
```
|
|
32
|
+
<%= example('getting-started').file('src/hello.ts') %>
|
|
57
33
|
|
|
58
34
|
## Region Markers
|
|
59
35
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
```typescript
|
|
63
|
-
// #region setup
|
|
64
|
-
const db = createDatabase();
|
|
65
|
-
// #endregion setup
|
|
66
|
-
|
|
67
|
-
// #region main
|
|
68
|
-
await db.query('SELECT * FROM users');
|
|
69
|
-
// #endregion main
|
|
70
|
-
```
|
|
36
|
+
<%= example('region-markers').file('src/regions-demo.ts') %>
|
|
71
37
|
|
|
72
38
|
Supports 30+ languages with automatic comment syntax detection.
|
|
73
39
|
|
|
@@ -79,27 +45,35 @@ Supports 30+ languages with automatic comment syntax detection.
|
|
|
79
45
|
|
|
80
46
|
### Scanner
|
|
81
47
|
|
|
82
|
-
- `
|
|
83
|
-
- `
|
|
48
|
+
- `scan(options?)` - Discover config and scan in one call
|
|
49
|
+
- `scanExamples(resolvedConfig)` - Scan with a pre-resolved config
|
|
84
50
|
|
|
85
|
-
###
|
|
51
|
+
### Configuration
|
|
86
52
|
|
|
87
|
-
- `
|
|
88
|
-
- `
|
|
89
|
-
- `
|
|
53
|
+
- `findConfigFile(root?)`
|
|
54
|
+
- `loadConfig(configPath)`
|
|
55
|
+
- `resolveConfig(config)`
|
|
56
|
+
- `validateConfig(config)`
|
|
57
|
+
- `mergeConfigs(...configs)`
|
|
90
58
|
|
|
91
|
-
###
|
|
59
|
+
### Plugins and Validation
|
|
92
60
|
|
|
93
|
-
- `
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
96
|
-
- `
|
|
97
|
-
- `
|
|
61
|
+
- `PluginRegistry`
|
|
62
|
+
- `createInitialContext(context)`
|
|
63
|
+
- `runParsePipeline(context, parsers)`
|
|
64
|
+
- `validatePluginOptions(context)`
|
|
65
|
+
- `validateExampleMetadata(context)`
|
|
98
66
|
|
|
99
67
|
### File Helpers
|
|
100
68
|
|
|
101
|
-
- `readExampleFile(path, options?)`
|
|
102
|
-
- `readExampleFiles(
|
|
69
|
+
- `readExampleFile(path, options?)`
|
|
70
|
+
- `readExampleFiles(root, files)`
|
|
71
|
+
|
|
72
|
+
### Schema Utilities
|
|
73
|
+
|
|
74
|
+
- `mergeConfigSchema(...)`
|
|
75
|
+
- `mergeMetadataSchemas(...)`
|
|
76
|
+
- `generateTypes(...)`
|
|
103
77
|
|
|
104
78
|
## License
|
|
105
79
|
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ declare const app: import("cli-forge").CLI<{
|
|
|
17
17
|
} & {
|
|
18
18
|
config?: string | undefined;
|
|
19
19
|
} & {} & {} & {
|
|
20
|
-
format: "
|
|
20
|
+
format: "json" | "table" | "yaml";
|
|
21
21
|
} & {
|
|
22
22
|
output?: string | undefined;
|
|
23
23
|
} & {} & {} & {
|
|
@@ -53,7 +53,7 @@ declare const app: import("cli-forge").CLI<{
|
|
|
53
53
|
unmatched: string[];
|
|
54
54
|
'--'?: string[];
|
|
55
55
|
} & {} & {
|
|
56
|
-
format: "
|
|
56
|
+
format: "ts" | "json";
|
|
57
57
|
} & {
|
|
58
58
|
output?: string | undefined;
|
|
59
59
|
} & {} & {} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/config/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAEV,eAAe,EAIf,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/config/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAEV,eAAe,EAIf,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8B/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CAAC,SAAS,GAAG,eAAe,EAC7D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAoFpC"}
|
package/dist/config/resolver.js
CHANGED
|
@@ -5,6 +5,7 @@ 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
|
+
import { DEFAULT_REGION_EXTENSION_MAP } from '../regions/defaults.js';
|
|
8
9
|
/**
|
|
9
10
|
* Known plugin packages that can be auto-detected when no plugins are specified.
|
|
10
11
|
* Each entry maps to a package that exports a `createXxxPlugin()` factory function.
|
|
@@ -20,6 +21,13 @@ const DEFAULT_SCAN = {
|
|
|
20
21
|
exclude: ['**/node_modules/**', '**/dist/**', '**/.git/**'],
|
|
21
22
|
root: '.',
|
|
22
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Default region tag configuration
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_REGION_TAG = {
|
|
28
|
+
startTag: '#region',
|
|
29
|
+
endTag: '#endregion',
|
|
30
|
+
};
|
|
23
31
|
/**
|
|
24
32
|
* Resolve a configuration to actual plugin and extractor instances.
|
|
25
33
|
*
|
|
@@ -90,8 +98,17 @@ export async function resolveConfig(config) {
|
|
|
90
98
|
const effectiveInclude = config.scan?.include?.length
|
|
91
99
|
? config.scan.include
|
|
92
100
|
: await getDefaultIncludePattern(scanRoot);
|
|
101
|
+
const resolvedRegion = {
|
|
102
|
+
startTag: config.region?.startTag ?? DEFAULT_REGION_TAG.startTag,
|
|
103
|
+
endTag: config.region?.endTag ?? DEFAULT_REGION_TAG.endTag,
|
|
104
|
+
fileExtensionMap: {
|
|
105
|
+
...DEFAULT_REGION_EXTENSION_MAP,
|
|
106
|
+
...(config.region?.fileExtensionMap ?? {}),
|
|
107
|
+
},
|
|
108
|
+
};
|
|
93
109
|
return {
|
|
94
110
|
...config,
|
|
111
|
+
region: resolvedRegion,
|
|
95
112
|
extractors,
|
|
96
113
|
plugins,
|
|
97
114
|
registry,
|
|
@@ -128,7 +145,10 @@ async function resolvePluginEntries(entries) {
|
|
|
128
145
|
const [packageName, options] = entry;
|
|
129
146
|
const plugin = await loadPluginFromPackage(packageName, options);
|
|
130
147
|
if (plugin) {
|
|
131
|
-
plugins.push({
|
|
148
|
+
plugins.push({
|
|
149
|
+
...plugin,
|
|
150
|
+
_packageName: packageName,
|
|
151
|
+
});
|
|
132
152
|
}
|
|
133
153
|
}
|
|
134
154
|
}
|
|
@@ -144,7 +164,10 @@ async function autoDetectPlugins() {
|
|
|
144
164
|
try {
|
|
145
165
|
const plugin = await loadPluginFromPackage(packageName);
|
|
146
166
|
if (plugin) {
|
|
147
|
-
plugins.push({
|
|
167
|
+
plugins.push({
|
|
168
|
+
...plugin,
|
|
169
|
+
_packageName: packageName,
|
|
170
|
+
});
|
|
148
171
|
}
|
|
149
172
|
}
|
|
150
173
|
catch {
|
|
@@ -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/schema.d.ts
CHANGED
|
@@ -28,6 +28,11 @@ export declare const ScanConfigSchema: z.ZodObject<{
|
|
|
28
28
|
recursive: z.ZodOptional<z.ZodBoolean>;
|
|
29
29
|
fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
30
|
}, z.core.$strip>;
|
|
31
|
+
export declare const RegionConfigSchema: z.ZodObject<{
|
|
32
|
+
startTag: z.ZodOptional<z.ZodString>;
|
|
33
|
+
endTag: z.ZodOptional<z.ZodString>;
|
|
34
|
+
fileExtensionMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>>>;
|
|
35
|
+
}, z.core.$strip>;
|
|
31
36
|
export declare const ConfigSchema: () => z.ZodObject<{
|
|
32
37
|
extractors: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
33
38
|
name: z.ZodString;
|
|
@@ -44,6 +49,11 @@ export declare const ConfigSchema: () => z.ZodObject<{
|
|
|
44
49
|
recursive: z.ZodOptional<z.ZodBoolean>;
|
|
45
50
|
fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
51
|
}, z.core.$strip>>;
|
|
52
|
+
region: z.ZodOptional<z.ZodObject<{
|
|
53
|
+
startTag: z.ZodOptional<z.ZodString>;
|
|
54
|
+
endTag: z.ZodOptional<z.ZodString>;
|
|
55
|
+
fileExtensionMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>>>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
47
57
|
pathMappings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
48
58
|
pattern: z.ZodString;
|
|
49
59
|
extractor: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAGjE,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;mBAIrC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AAEH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAGjE,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;mBAIrC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAarB,CAAC;AAEL,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC"}
|
package/dist/config/schema.js
CHANGED
|
@@ -29,9 +29,15 @@ export const ScanConfigSchema = z.object({
|
|
|
29
29
|
recursive: z.boolean().optional(),
|
|
30
30
|
fileExtensions: z.array(z.string().min(1)).optional(),
|
|
31
31
|
});
|
|
32
|
+
export const RegionConfigSchema = z.object({
|
|
33
|
+
startTag: z.string().min(1).optional(),
|
|
34
|
+
endTag: z.string().min(1).optional(),
|
|
35
|
+
fileExtensionMap: z.record(z.string(), z.array(z.union([z.string(), z.instanceof(RegExp)]))).optional(),
|
|
36
|
+
});
|
|
32
37
|
export const ConfigSchema = () => z.object({
|
|
33
38
|
extractors: z.array(ExtractorOrReferenceSchema).optional(),
|
|
34
39
|
scan: ScanConfigSchema.optional(),
|
|
40
|
+
region: RegionConfigSchema.optional(),
|
|
35
41
|
pathMappings: z
|
|
36
42
|
.array(z.object({
|
|
37
43
|
pattern: z.string().min(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC,CAAC,KAAK,CAAC;IAC7E,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjB,qBAAqB;CACtB,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjB,qBAAqB;IACrB,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAC/B,CAAC,CAAC,MAAM,CAAC;IACP,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;IAC1D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/files/reader.d.ts
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* File reading utilities for examples
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import { ExampleFile } from '../types/index.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
export interface ReadFileOptions {
|
|
9
|
-
/** Extract only this region from the file */
|
|
10
|
-
region?: string;
|
|
11
|
-
/** File extension override for region parsing */
|
|
12
|
-
extension?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Read an example file, optionally extracting a specific region.
|
|
6
|
+
* Read an example file's contents.
|
|
16
7
|
*
|
|
17
8
|
* @param filePath - Path to the file to read
|
|
18
|
-
* @
|
|
19
|
-
* @returns The file contents (or region contents if specified)
|
|
9
|
+
* @returns The file contents
|
|
20
10
|
*
|
|
21
11
|
* @example
|
|
22
12
|
* ```typescript
|
|
23
|
-
* // Read entire file
|
|
24
13
|
* const content = await readExampleFile('./examples/basic/main.ts');
|
|
25
|
-
*
|
|
26
|
-
* // Read specific region
|
|
27
|
-
* const setup = await readExampleFile('./examples/basic/main.ts', {
|
|
28
|
-
* region: 'setup'
|
|
29
|
-
* });
|
|
30
14
|
* ```
|
|
31
15
|
*/
|
|
32
|
-
export declare function readExampleFile(filePath: string
|
|
16
|
+
export declare function readExampleFile(filePath: string): Promise<string>;
|
|
33
17
|
/**
|
|
34
18
|
* Read multiple files from an example directory.
|
|
35
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/files/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/files/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxB"}
|
package/dist/files/reader.js
CHANGED
|
@@ -3,32 +3,20 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import fs from 'node:fs/promises';
|
|
5
5
|
import path from 'node:path';
|
|
6
|
-
import {
|
|
6
|
+
import { ExampleFile } from '../types/index.js';
|
|
7
7
|
/**
|
|
8
|
-
* Read an example file
|
|
8
|
+
* Read an example file's contents.
|
|
9
9
|
*
|
|
10
10
|
* @param filePath - Path to the file to read
|
|
11
|
-
* @
|
|
12
|
-
* @returns The file contents (or region contents if specified)
|
|
11
|
+
* @returns The file contents
|
|
13
12
|
*
|
|
14
13
|
* @example
|
|
15
14
|
* ```typescript
|
|
16
|
-
* // Read entire file
|
|
17
15
|
* const content = await readExampleFile('./examples/basic/main.ts');
|
|
18
|
-
*
|
|
19
|
-
* // Read specific region
|
|
20
|
-
* const setup = await readExampleFile('./examples/basic/main.ts', {
|
|
21
|
-
* region: 'setup'
|
|
22
|
-
* });
|
|
23
16
|
* ```
|
|
24
17
|
*/
|
|
25
|
-
export async function readExampleFile(filePath
|
|
26
|
-
|
|
27
|
-
if (options.region) {
|
|
28
|
-
const ext = options.extension ?? path.extname(filePath).slice(1);
|
|
29
|
-
return extractRegion(content, options.region, { extension: ext });
|
|
30
|
-
}
|
|
31
|
-
return content;
|
|
18
|
+
export async function readExampleFile(filePath) {
|
|
19
|
+
return fs.readFile(filePath, 'utf-8');
|
|
32
20
|
}
|
|
33
21
|
/**
|
|
34
22
|
* Read multiple files from an example directory.
|
|
@@ -51,11 +39,7 @@ export async function readExampleFiles(directory, files) {
|
|
|
51
39
|
for (const relativePath of files) {
|
|
52
40
|
const fullPath = path.join(directory, relativePath);
|
|
53
41
|
const raw = await fs.readFile(fullPath, 'utf-8');
|
|
54
|
-
results.push({
|
|
55
|
-
absolutePath: path.resolve(fullPath),
|
|
56
|
-
relativePath,
|
|
57
|
-
raw,
|
|
58
|
-
});
|
|
42
|
+
results.push(new ExampleFile({ absolutePath: path.resolve(fullPath), relativePath, raw }));
|
|
59
43
|
}
|
|
60
44
|
return results;
|
|
61
45
|
}
|
package/dist/files/reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/files/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/files/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,KAAe;IAEf,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CACV,IAAI,WAAW,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export { ExampleFile, ScannedExample } from './types/index.js';
|
|
7
|
+
export type { BaseMetadata, Example, ExampleMetadata, ExampleMetadataRegistry, Extractor, ExtractorFactory, ExtractorError, ExtractorOptions, ExtractorResult, } from './types/index.js';
|
|
7
8
|
export type { Plugin, PluginCommands, FileContentsParser, FileParseContext, ParsedRegion, PluginSchemas, PluginValidators, } from './types/index.js';
|
|
8
9
|
export type { ValidationResult, ValidationError, } from './types/index.js';
|
|
9
10
|
export { scanExamples } from './scanner/index.js';
|
|
10
11
|
export { scan } from './scanner/index.js';
|
|
11
12
|
export type { ScanOptions } from './scanner/index.js';
|
|
12
13
|
export type { FileConflict, PathMapping, ScanResult, } from './scanner/index.js';
|
|
13
|
-
export type { RegionInfo, RegionMap, RegionOptions } from './regions/index.js';
|
|
14
|
-
export { parseRegions, extractRegion, stripRegionMarkers, listRegions, LANGUAGE_CONFIGS, } from './regions/index.js';
|
|
15
14
|
export { readExampleFile, readExampleFiles } from './files/index.js';
|
|
16
15
|
export type { Config, ExtractorConfig, ExtractorConfigOrFunction, ExtractorReference, ScanConfig, } from './config/types.js';
|
|
17
16
|
export type { ConfigValidationError, ResolvedConfig, } from './types/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,YAAY,EACZ,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGrE,YAAY,EACV,MAAM,EACN,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,8BAA8B,EAC9B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,UAAU,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
|
+
// Core Types
|
|
7
|
+
export { ExampleFile, ScannedExample } from './types/index.js';
|
|
6
8
|
// Scanner
|
|
7
9
|
export { scanExamples } from './scanner/index.js';
|
|
8
10
|
export { scan } from './scanner/index.js';
|
|
9
|
-
export { parseRegions, extractRegion, stripRegionMarkers, listRegions, LANGUAGE_CONFIGS, } from './regions/index.js';
|
|
10
11
|
// File helpers
|
|
11
12
|
export { readExampleFile, readExampleFiles } from './files/index.js';
|
|
12
13
|
export { findConfigFile, loadConfig } from './config/loader.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA8B/D,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAQ1C,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAcrE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAcjC,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|