functional-examples 0.0.0-alpha.1
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 +148 -0
- package/dist/cli/commands/generate.d.ts +10 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +64 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +14 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +95 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +20 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +182 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +10 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +65 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/index.d.ts +88 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +43 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/plugin-commands.d.ts +17 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +45 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/index.spec.d.ts +5 -0
- package/dist/config/index.spec.d.ts.map +1 -0
- package/dist/config/index.spec.js +142 -0
- package/dist/config/index.spec.js.map +1 -0
- package/dist/config/loader.d.ts +7 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +85 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merger.d.ts +27 -0
- package/dist/config/merger.d.ts.map +1 -0
- package/dist/config/merger.js +41 -0
- package/dist/config/merger.js.map +1 -0
- package/dist/config/resolver.d.ts +28 -0
- package/dist/config/resolver.d.ts.map +1 -0
- package/dist/config/resolver.js +165 -0
- package/dist/config/resolver.js.map +1 -0
- package/dist/config/schema.d.ts +53 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +42 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +17 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +5 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validator.d.ts +6 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +17 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/extractors/index.d.ts +9 -0
- package/dist/extractors/index.d.ts.map +1 -0
- package/dist/extractors/index.js +9 -0
- package/dist/extractors/index.js.map +1 -0
- package/dist/extractors/loader.d.ts +19 -0
- package/dist/extractors/loader.d.ts.map +1 -0
- package/dist/extractors/loader.js +120 -0
- package/dist/extractors/loader.js.map +1 -0
- package/dist/extractors/meta-yml-fn.d.ts +19 -0
- package/dist/extractors/meta-yml-fn.d.ts.map +1 -0
- package/dist/extractors/meta-yml-fn.js +66 -0
- package/dist/extractors/meta-yml-fn.js.map +1 -0
- package/dist/extractors/meta-yml.d.ts +24 -0
- package/dist/extractors/meta-yml.d.ts.map +1 -0
- package/dist/extractors/meta-yml.js +65 -0
- package/dist/extractors/meta-yml.js.map +1 -0
- package/dist/extractors/registry.d.ts +58 -0
- package/dist/extractors/registry.d.ts.map +1 -0
- package/dist/extractors/registry.js +114 -0
- package/dist/extractors/registry.js.map +1 -0
- package/dist/extractors/registry.spec.d.ts +2 -0
- package/dist/extractors/registry.spec.d.ts.map +1 -0
- package/dist/extractors/registry.spec.js +102 -0
- package/dist/extractors/registry.spec.js.map +1 -0
- package/dist/extractors/types.d.ts +34 -0
- package/dist/extractors/types.d.ts.map +1 -0
- package/dist/extractors/types.js +8 -0
- package/dist/extractors/types.js.map +1 -0
- package/dist/extractors/yaml-frontmatter-fn.d.ts +18 -0
- package/dist/extractors/yaml-frontmatter-fn.d.ts.map +1 -0
- package/dist/extractors/yaml-frontmatter-fn.js +73 -0
- package/dist/extractors/yaml-frontmatter-fn.js.map +1 -0
- package/dist/extractors/yaml-frontmatter.d.ts +22 -0
- package/dist/extractors/yaml-frontmatter.d.ts.map +1 -0
- package/dist/extractors/yaml-frontmatter.js +83 -0
- package/dist/extractors/yaml-frontmatter.js.map +1 -0
- package/dist/extractors/yaml-frontmatter.spec.d.ts +2 -0
- package/dist/extractors/yaml-frontmatter.spec.d.ts.map +1 -0
- package/dist/extractors/yaml-frontmatter.spec.js +134 -0
- package/dist/extractors/yaml-frontmatter.spec.js.map +1 -0
- package/dist/files/index.d.ts +5 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +5 -0
- package/dist/files/index.js.map +1 -0
- package/dist/files/reader.d.ts +50 -0
- package/dist/files/reader.d.ts.map +1 -0
- package/dist/files/reader.js +62 -0
- package/dist/files/reader.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/index.d.ts +4 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/pipeline.d.ts +11 -0
- package/dist/plugins/pipeline.d.ts.map +1 -0
- package/dist/plugins/pipeline.js +24 -0
- package/dist/plugins/pipeline.js.map +1 -0
- package/dist/plugins/registry.d.ts +57 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +93 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/validation.d.ts +64 -0
- package/dist/plugins/validation.d.ts.map +1 -0
- package/dist/plugins/validation.js +55 -0
- package/dist/plugins/validation.js.map +1 -0
- package/dist/regions/index.d.ts +7 -0
- package/dist/regions/index.d.ts.map +1 -0
- package/dist/regions/index.js +6 -0
- package/dist/regions/index.js.map +1 -0
- package/dist/regions/languages.d.ts +15 -0
- package/dist/regions/languages.d.ts.map +1 -0
- package/dist/regions/languages.js +182 -0
- package/dist/regions/languages.js.map +1 -0
- package/dist/regions/parser.d.ts +63 -0
- package/dist/regions/parser.d.ts.map +1 -0
- package/dist/regions/parser.js +175 -0
- package/dist/regions/parser.js.map +1 -0
- package/dist/regions/parser.spec.d.ts +2 -0
- package/dist/regions/parser.spec.d.ts.map +1 -0
- package/dist/regions/parser.spec.js +190 -0
- package/dist/regions/parser.spec.js.map +1 -0
- package/dist/regions/types.d.ts +37 -0
- package/dist/regions/types.d.ts.map +1 -0
- package/dist/regions/types.js +5 -0
- package/dist/regions/types.js.map +1 -0
- package/dist/scanner/candidates.d.ts +24 -0
- package/dist/scanner/candidates.d.ts.map +1 -0
- package/dist/scanner/candidates.js +83 -0
- package/dist/scanner/candidates.js.map +1 -0
- package/dist/scanner/index.d.ts +8 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +6 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/scan.d.ts +40 -0
- package/dist/scanner/scan.d.ts.map +1 -0
- package/dist/scanner/scan.js +44 -0
- package/dist/scanner/scan.js.map +1 -0
- package/dist/scanner/scanner.d.ts +29 -0
- package/dist/scanner/scanner.d.ts.map +1 -0
- package/dist/scanner/scanner.js +296 -0
- package/dist/scanner/scanner.js.map +1 -0
- package/dist/scanner/scanner.spec.d.ts +2 -0
- package/dist/scanner/scanner.spec.d.ts.map +1 -0
- package/dist/scanner/scanner.spec.js +262 -0
- package/dist/scanner/scanner.spec.js.map +1 -0
- package/dist/scanner/types.d.ts +43 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +5 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +4 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/merger.d.ts +35 -0
- package/dist/schema/merger.d.ts.map +1 -0
- package/dist/schema/merger.js +161 -0
- package/dist/schema/merger.js.map +1 -0
- package/dist/schema/typegen.d.ts +13 -0
- package/dist/schema/typegen.d.ts.map +1 -0
- package/dist/schema/typegen.js +125 -0
- package/dist/schema/typegen.js.map +1 -0
- package/dist/schema/validator.d.ts +7 -0
- package/dist/schema/validator.d.ts.map +1 -0
- package/dist/schema/validator.js +32 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/types/default-map.d.ts +21 -0
- package/dist/types/default-map.d.ts.map +1 -0
- package/dist/types/default-map.js +32 -0
- package/dist/types/default-map.js.map +1 -0
- package/dist/types/extended-iterable.d.ts +197 -0
- package/dist/types/extended-iterable.d.ts.map +1 -0
- package/dist/types/extended-iterable.js +769 -0
- package/dist/types/extended-iterable.js.map +1 -0
- package/dist/types/guards.d.ts +2 -0
- package/dist/types/guards.d.ts.map +1 -0
- package/dist/types/guards.js +2 -0
- package/dist/types/guards.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate plugin options before extraction.
|
|
3
|
+
* Runs each plugin's options validator against its configured options.
|
|
4
|
+
*/
|
|
5
|
+
export function validatePluginOptions(context) {
|
|
6
|
+
const errors = [];
|
|
7
|
+
for (const { pluginName, validate } of context.validators) {
|
|
8
|
+
const options = context.pluginOptions.get(pluginName);
|
|
9
|
+
// Skip if no options provided for this plugin
|
|
10
|
+
if (options === undefined) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const result = validate(options);
|
|
14
|
+
if (!result.success) {
|
|
15
|
+
for (const error of result.errors) {
|
|
16
|
+
errors.push({
|
|
17
|
+
pluginName,
|
|
18
|
+
path: error.path,
|
|
19
|
+
message: error.message,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
success: errors.length === 0,
|
|
26
|
+
errors,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate example metadata after extraction.
|
|
31
|
+
* Runs all metadata validators against each example's metadata.
|
|
32
|
+
*/
|
|
33
|
+
export function validateExampleMetadata(context) {
|
|
34
|
+
const errors = [];
|
|
35
|
+
for (const example of context.examples) {
|
|
36
|
+
for (const { pluginName, validate } of context.validators) {
|
|
37
|
+
const result = validate(example.metadata);
|
|
38
|
+
if (!result.success) {
|
|
39
|
+
for (const error of result.errors) {
|
|
40
|
+
errors.push({
|
|
41
|
+
exampleId: example.id,
|
|
42
|
+
pluginName,
|
|
43
|
+
path: error.path,
|
|
44
|
+
message: error.message,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
success: errors.length === 0,
|
|
52
|
+
errors,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/plugins/validation.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAuC;IAEvC,MAAM,MAAM,GAA6B,EAAE,CAAC;IAE5C,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEtD,8CAA8C;QAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC;oBACV,UAAU;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;KACP,CAAC;AACJ,CAAC;AAoCD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAkC;IAElC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAE7C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC;wBACV,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,UAAU;wBACV,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region extraction system for code examples
|
|
3
|
+
*/
|
|
4
|
+
export type { RegionInfo, RegionMap, RegionOptions, LanguageConfig, } from './types.js';
|
|
5
|
+
export { LANGUAGE_CONFIGS, getLanguageConfig } from './languages.js';
|
|
6
|
+
export { parseRegions, extractRegion, stripRegionMarkers, listRegions, } from './parser.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/regions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/regions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language configuration for region markers
|
|
3
|
+
*/
|
|
4
|
+
import type { LanguageConfig } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Comment syntax configuration for various programming languages.
|
|
7
|
+
* Maps file extensions to their comment patterns.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LANGUAGE_CONFIGS: Record<string, LanguageConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* Get the language configuration for a file extension.
|
|
12
|
+
* Falls back to JavaScript-style comments if unknown.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getLanguageConfig(extension: string): LanguageConfig;
|
|
15
|
+
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../src/regions/languages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAgN3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAInE"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language configuration for region markers
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Comment syntax configuration for various programming languages.
|
|
6
|
+
* Maps file extensions to their comment patterns.
|
|
7
|
+
*/
|
|
8
|
+
export const LANGUAGE_CONFIGS = {
|
|
9
|
+
// JavaScript/TypeScript family
|
|
10
|
+
js: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
11
|
+
jsx: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
12
|
+
ts: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
13
|
+
tsx: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
14
|
+
mjs: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
15
|
+
cjs: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
16
|
+
mts: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
17
|
+
cts: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
18
|
+
// C family
|
|
19
|
+
c: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
20
|
+
h: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
21
|
+
cpp: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
22
|
+
hpp: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
23
|
+
cc: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
24
|
+
cxx: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
25
|
+
// Java/Kotlin/Scala
|
|
26
|
+
java: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
27
|
+
kt: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
28
|
+
kts: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
29
|
+
scala: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
30
|
+
groovy: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
31
|
+
// C#/F#
|
|
32
|
+
cs: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
33
|
+
fs: { lineComment: '//', blockComment: ['(*', '*)'] },
|
|
34
|
+
fsx: { lineComment: '//', blockComment: ['(*', '*)'] },
|
|
35
|
+
// Go/Rust/Swift
|
|
36
|
+
go: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
37
|
+
rs: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
38
|
+
swift: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
39
|
+
// PHP
|
|
40
|
+
php: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
41
|
+
// Python
|
|
42
|
+
py: { lineComment: '#' },
|
|
43
|
+
pyw: { lineComment: '#' },
|
|
44
|
+
pyi: { lineComment: '#' },
|
|
45
|
+
// Ruby
|
|
46
|
+
rb: { lineComment: '#' },
|
|
47
|
+
rake: { lineComment: '#' },
|
|
48
|
+
gemspec: { lineComment: '#' },
|
|
49
|
+
// Shell/Bash
|
|
50
|
+
sh: { lineComment: '#' },
|
|
51
|
+
bash: { lineComment: '#' },
|
|
52
|
+
zsh: { lineComment: '#' },
|
|
53
|
+
fish: { lineComment: '#' },
|
|
54
|
+
// PowerShell
|
|
55
|
+
ps1: { lineComment: '#', blockComment: ['<#', '#>'] },
|
|
56
|
+
psm1: { lineComment: '#', blockComment: ['<#', '#>'] },
|
|
57
|
+
// Perl
|
|
58
|
+
pl: { lineComment: '#' },
|
|
59
|
+
pm: { lineComment: '#' },
|
|
60
|
+
// R
|
|
61
|
+
r: { lineComment: '#' },
|
|
62
|
+
R: { lineComment: '#' },
|
|
63
|
+
// YAML/TOML
|
|
64
|
+
yml: { lineComment: '#' },
|
|
65
|
+
yaml: { lineComment: '#' },
|
|
66
|
+
toml: { lineComment: '#' },
|
|
67
|
+
// Config files
|
|
68
|
+
ini: { lineComment: ';' },
|
|
69
|
+
conf: { lineComment: '#' },
|
|
70
|
+
cfg: { lineComment: '#' },
|
|
71
|
+
// SQL
|
|
72
|
+
sql: { lineComment: '--', blockComment: ['/*', '*/'] },
|
|
73
|
+
// Lua
|
|
74
|
+
lua: { lineComment: '--', blockComment: ['--[[', ']]'] },
|
|
75
|
+
// Haskell
|
|
76
|
+
hs: { lineComment: '--', blockComment: ['{-', '-}'] },
|
|
77
|
+
lhs: { lineComment: '--', blockComment: ['{-', '-}'] },
|
|
78
|
+
// Elm
|
|
79
|
+
elm: { lineComment: '--', blockComment: ['{-', '-}'] },
|
|
80
|
+
// HTML/XML
|
|
81
|
+
html: { blockComment: ['<!--', '-->'] },
|
|
82
|
+
htm: { blockComment: ['<!--', '-->'] },
|
|
83
|
+
xml: { blockComment: ['<!--', '-->'] },
|
|
84
|
+
xhtml: { blockComment: ['<!--', '-->'] },
|
|
85
|
+
svg: { blockComment: ['<!--', '-->'] },
|
|
86
|
+
vue: { blockComment: ['<!--', '-->'] },
|
|
87
|
+
// CSS/SCSS/LESS
|
|
88
|
+
css: { blockComment: ['/*', '*/'] },
|
|
89
|
+
scss: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
90
|
+
sass: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
91
|
+
less: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
92
|
+
// Markdown (HTML comments)
|
|
93
|
+
md: { blockComment: ['<!--', '-->'] },
|
|
94
|
+
mdx: { blockComment: ['<!--', '-->'] },
|
|
95
|
+
// Dockerfile
|
|
96
|
+
dockerfile: { lineComment: '#' },
|
|
97
|
+
// Makefile
|
|
98
|
+
makefile: { lineComment: '#' },
|
|
99
|
+
mk: { lineComment: '#' },
|
|
100
|
+
// Terraform/HCL
|
|
101
|
+
tf: { lineComment: '#', blockComment: ['/*', '*/'] },
|
|
102
|
+
tfvars: { lineComment: '#', blockComment: ['/*', '*/'] },
|
|
103
|
+
hcl: { lineComment: '#', blockComment: ['/*', '*/'] },
|
|
104
|
+
// Nix
|
|
105
|
+
nix: { lineComment: '#', blockComment: ['/*', '*/'] },
|
|
106
|
+
// Zig
|
|
107
|
+
zig: { lineComment: '//' },
|
|
108
|
+
// V
|
|
109
|
+
v: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
110
|
+
// Nim
|
|
111
|
+
nim: { lineComment: '#', blockComment: ['#[', ']#'] },
|
|
112
|
+
// Julia
|
|
113
|
+
jl: { lineComment: '#', blockComment: ['#=', '=#'] },
|
|
114
|
+
// Clojure
|
|
115
|
+
clj: { lineComment: ';' },
|
|
116
|
+
cljs: { lineComment: ';' },
|
|
117
|
+
cljc: { lineComment: ';' },
|
|
118
|
+
edn: { lineComment: ';' },
|
|
119
|
+
// Lisp/Scheme
|
|
120
|
+
lisp: { lineComment: ';' },
|
|
121
|
+
el: { lineComment: ';' },
|
|
122
|
+
scm: { lineComment: ';' },
|
|
123
|
+
rkt: { lineComment: ';' },
|
|
124
|
+
// OCaml
|
|
125
|
+
ml: { blockComment: ['(*', '*)'] },
|
|
126
|
+
mli: { blockComment: ['(*', '*)'] },
|
|
127
|
+
// Erlang/Elixir
|
|
128
|
+
erl: { lineComment: '%' },
|
|
129
|
+
hrl: { lineComment: '%' },
|
|
130
|
+
ex: { lineComment: '#' },
|
|
131
|
+
exs: { lineComment: '#' },
|
|
132
|
+
// Prolog
|
|
133
|
+
pro: { lineComment: '%', blockComment: ['/*', '*/'] },
|
|
134
|
+
// Note: .pl is typically Perl, not Prolog
|
|
135
|
+
// Fortran
|
|
136
|
+
f90: { lineComment: '!' },
|
|
137
|
+
f95: { lineComment: '!' },
|
|
138
|
+
f03: { lineComment: '!' },
|
|
139
|
+
f08: { lineComment: '!' },
|
|
140
|
+
for: { lineComment: '!' },
|
|
141
|
+
// VHDL/Verilog
|
|
142
|
+
vhd: { lineComment: '--' },
|
|
143
|
+
vhdl: { lineComment: '--' },
|
|
144
|
+
// Note: .v is used by both V lang (above) and Verilog - keeping V lang definition
|
|
145
|
+
sv: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
146
|
+
// Assembly
|
|
147
|
+
asm: { lineComment: ';' },
|
|
148
|
+
s: { lineComment: ';' },
|
|
149
|
+
// Batch
|
|
150
|
+
bat: { lineComment: 'REM' },
|
|
151
|
+
cmd: { lineComment: 'REM' },
|
|
152
|
+
// AppleScript
|
|
153
|
+
applescript: { lineComment: '--', blockComment: ['(*', '*)'] },
|
|
154
|
+
// CoffeeScript
|
|
155
|
+
coffee: { lineComment: '#', blockComment: ['###', '###'] },
|
|
156
|
+
// Dart
|
|
157
|
+
dart: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
158
|
+
// GLSL/HLSL
|
|
159
|
+
glsl: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
160
|
+
hlsl: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
161
|
+
vert: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
162
|
+
frag: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
163
|
+
// Jsonnet
|
|
164
|
+
jsonnet: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
165
|
+
libsonnet: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
166
|
+
// Starlark/Bazel
|
|
167
|
+
bzl: { lineComment: '#' },
|
|
168
|
+
bazel: { lineComment: '#' },
|
|
169
|
+
BUILD: { lineComment: '#' },
|
|
170
|
+
// Protobuf
|
|
171
|
+
proto: { lineComment: '//', blockComment: ['/*', '*/'] },
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Get the language configuration for a file extension.
|
|
175
|
+
* Falls back to JavaScript-style comments if unknown.
|
|
176
|
+
*/
|
|
177
|
+
export function getLanguageConfig(extension) {
|
|
178
|
+
// Normalize extension (remove leading dot, lowercase)
|
|
179
|
+
const normalized = extension.replace(/^\./, '').toLowerCase();
|
|
180
|
+
return LANGUAGE_CONFIGS[normalized] ?? { lineComment: '//' };
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/regions/languages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region parsing implementation
|
|
3
|
+
*/
|
|
4
|
+
import type { RegionMap, RegionOptions } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Parse all #region/#endregion pairs from code.
|
|
7
|
+
* Supports nested regions and language-specific comment syntax.
|
|
8
|
+
*
|
|
9
|
+
* @param code - The source code to parse
|
|
10
|
+
* @param options - Options including file extension for language detection
|
|
11
|
+
* @returns Map of region IDs to their content
|
|
12
|
+
* @throws Error on unclosed or mismatched regions
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const regions = parseRegions(tsCode, { extension: 'ts' });
|
|
17
|
+
* const setupCode = regions['setup']?.content;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseRegions(code: string, options?: RegionOptions): RegionMap;
|
|
21
|
+
/**
|
|
22
|
+
* Extract a specific region's content by ID.
|
|
23
|
+
*
|
|
24
|
+
* @param code - The source code to parse
|
|
25
|
+
* @param regionId - The ID of the region to extract
|
|
26
|
+
* @param options - Options including file extension for language detection
|
|
27
|
+
* @returns The region's content
|
|
28
|
+
* @throws Error if region not found
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const setupCode = extractRegion(code, 'setup', { extension: 'py' });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractRegion(code: string, regionId: string, options?: RegionOptions): string;
|
|
36
|
+
/**
|
|
37
|
+
* Remove all region marker lines from code.
|
|
38
|
+
*
|
|
39
|
+
* @param code - The source code to clean
|
|
40
|
+
* @param options - Options including file extension for language detection
|
|
41
|
+
* @returns Code with all region markers removed
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const cleanCode = stripRegionMarkers(code, { extension: 'ts' });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function stripRegionMarkers(code: string, options?: RegionOptions): string;
|
|
49
|
+
/**
|
|
50
|
+
* List all region IDs found in code.
|
|
51
|
+
*
|
|
52
|
+
* @param code - The source code to scan
|
|
53
|
+
* @param options - Options including file extension for language detection
|
|
54
|
+
* @returns Array of region IDs
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const regionIds = listRegions(code, { extension: 'ts' });
|
|
59
|
+
* // ['setup', 'main', 'cleanup']
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function listRegions(code: string, options?: RegionOptions): string[];
|
|
63
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/regions/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAwE3D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,SAAS,CA4DX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAYR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,MAAM,EAAE,CAGV"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region parsing implementation
|
|
3
|
+
*/
|
|
4
|
+
import { getLanguageConfig } from './languages.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create regex patterns for region markers based on comment syntax
|
|
7
|
+
*/
|
|
8
|
+
function createRegionPatterns(lineComment, blockComment) {
|
|
9
|
+
const patterns = [];
|
|
10
|
+
// Line comment pattern: // #region name
|
|
11
|
+
if (lineComment) {
|
|
12
|
+
const escaped = escapeRegex(lineComment);
|
|
13
|
+
patterns.push(`^\\s*${escaped}\\s*#region\\s+(\\S+)\\s*$`);
|
|
14
|
+
}
|
|
15
|
+
// Block comment pattern: <!-- #region name -->
|
|
16
|
+
if (blockComment) {
|
|
17
|
+
const [start, end] = blockComment.map(escapeRegex);
|
|
18
|
+
patterns.push(`^\\s*${start}\\s*#region\\s+(\\S+)\\s*${end}\\s*$`);
|
|
19
|
+
}
|
|
20
|
+
// Combine patterns
|
|
21
|
+
const startPattern = patterns.length > 0
|
|
22
|
+
? new RegExp(patterns.join('|'))
|
|
23
|
+
: /^\s*\/\/\s*#region\s+(\S+)\s*$/;
|
|
24
|
+
// Create end patterns similarly
|
|
25
|
+
const endPatterns = [];
|
|
26
|
+
if (lineComment) {
|
|
27
|
+
const escaped = escapeRegex(lineComment);
|
|
28
|
+
endPatterns.push(`^\\s*${escaped}\\s*#endregion\\s+(\\S+)\\s*$`);
|
|
29
|
+
}
|
|
30
|
+
if (blockComment) {
|
|
31
|
+
const [start, end] = blockComment.map(escapeRegex);
|
|
32
|
+
endPatterns.push(`^\\s*${start}\\s*#endregion\\s+(\\S+)\\s*${end}\\s*$`);
|
|
33
|
+
}
|
|
34
|
+
const endPattern = endPatterns.length > 0
|
|
35
|
+
? new RegExp(endPatterns.join('|'))
|
|
36
|
+
: /^\s*\/\/\s*#endregion\s+(\S+)\s*$/;
|
|
37
|
+
return { start: startPattern, end: endPattern };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Escape special regex characters
|
|
41
|
+
*/
|
|
42
|
+
function escapeRegex(str) {
|
|
43
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract the region ID from a match result.
|
|
47
|
+
* Handles multiple capture groups from combined patterns.
|
|
48
|
+
*/
|
|
49
|
+
function extractRegionId(match) {
|
|
50
|
+
// Find the first non-undefined capture group
|
|
51
|
+
for (let i = 1; i < match.length; i++) {
|
|
52
|
+
if (match[i] !== undefined) {
|
|
53
|
+
return match[i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
throw new Error('No region ID captured');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse all #region/#endregion pairs from code.
|
|
60
|
+
* Supports nested regions and language-specific comment syntax.
|
|
61
|
+
*
|
|
62
|
+
* @param code - The source code to parse
|
|
63
|
+
* @param options - Options including file extension for language detection
|
|
64
|
+
* @returns Map of region IDs to their content
|
|
65
|
+
* @throws Error on unclosed or mismatched regions
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const regions = parseRegions(tsCode, { extension: 'ts' });
|
|
70
|
+
* const setupCode = regions['setup']?.content;
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function parseRegions(code, options = {}) {
|
|
74
|
+
const config = getLanguageConfig(options.extension ?? 'ts');
|
|
75
|
+
const { start: REGION_START, end: REGION_END } = createRegionPatterns(config.lineComment, config.blockComment);
|
|
76
|
+
const lines = code.split('\n');
|
|
77
|
+
const regions = {};
|
|
78
|
+
const stack = [];
|
|
79
|
+
for (let i = 0; i < lines.length; i++) {
|
|
80
|
+
const line = lines[i];
|
|
81
|
+
const startMatch = line.match(REGION_START);
|
|
82
|
+
if (startMatch) {
|
|
83
|
+
const id = extractRegionId(startMatch);
|
|
84
|
+
stack.push({ id, startLine: i + 1, startIndex: i });
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const endMatch = line.match(REGION_END);
|
|
88
|
+
if (endMatch) {
|
|
89
|
+
const endId = extractRegionId(endMatch);
|
|
90
|
+
const openRegion = stack.pop();
|
|
91
|
+
if (!openRegion) {
|
|
92
|
+
throw new Error(`Unexpected #endregion '${endId}' at line ${i + 1}`);
|
|
93
|
+
}
|
|
94
|
+
if (openRegion.id !== endId) {
|
|
95
|
+
throw new Error(`Mismatched region: opened '${openRegion.id}' at line ${openRegion.startLine}, closed '${endId}' at line ${i + 1}`);
|
|
96
|
+
}
|
|
97
|
+
// Extract content between markers (exclusive)
|
|
98
|
+
const contentLines = lines.slice(openRegion.startIndex + 1, i);
|
|
99
|
+
// Strip nested region markers from content
|
|
100
|
+
const content = stripRegionMarkers(contentLines.join('\n'), options);
|
|
101
|
+
regions[openRegion.id] = {
|
|
102
|
+
startLine: openRegion.startLine,
|
|
103
|
+
endLine: i + 1,
|
|
104
|
+
content: content.trim(),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (stack.length > 0) {
|
|
109
|
+
const unclosed = stack[stack.length - 1];
|
|
110
|
+
throw new Error(`Unclosed region '${unclosed.id}' starting at line ${unclosed.startLine}`);
|
|
111
|
+
}
|
|
112
|
+
return regions;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Extract a specific region's content by ID.
|
|
116
|
+
*
|
|
117
|
+
* @param code - The source code to parse
|
|
118
|
+
* @param regionId - The ID of the region to extract
|
|
119
|
+
* @param options - Options including file extension for language detection
|
|
120
|
+
* @returns The region's content
|
|
121
|
+
* @throws Error if region not found
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const setupCode = extractRegion(code, 'setup', { extension: 'py' });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export function extractRegion(code, regionId, options = {}) {
|
|
129
|
+
const regions = parseRegions(code, options);
|
|
130
|
+
if (!(regionId in regions)) {
|
|
131
|
+
const available = Object.keys(regions);
|
|
132
|
+
const hint = available.length > 0
|
|
133
|
+
? ` Available regions: ${available.join(', ')}`
|
|
134
|
+
: ' No regions found in code.';
|
|
135
|
+
throw new Error(`Region '${regionId}' not found.${hint}`);
|
|
136
|
+
}
|
|
137
|
+
return regions[regionId].content;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Remove all region marker lines from code.
|
|
141
|
+
*
|
|
142
|
+
* @param code - The source code to clean
|
|
143
|
+
* @param options - Options including file extension for language detection
|
|
144
|
+
* @returns Code with all region markers removed
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* const cleanCode = stripRegionMarkers(code, { extension: 'ts' });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export function stripRegionMarkers(code, options = {}) {
|
|
152
|
+
const config = getLanguageConfig(options.extension ?? 'ts');
|
|
153
|
+
const { start: REGION_START, end: REGION_END } = createRegionPatterns(config.lineComment, config.blockComment);
|
|
154
|
+
const lines = code.split('\n');
|
|
155
|
+
const filtered = lines.filter((line) => !REGION_START.test(line) && !REGION_END.test(line));
|
|
156
|
+
return filtered.join('\n');
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* List all region IDs found in code.
|
|
160
|
+
*
|
|
161
|
+
* @param code - The source code to scan
|
|
162
|
+
* @param options - Options including file extension for language detection
|
|
163
|
+
* @returns Array of region IDs
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* const regionIds = listRegions(code, { extension: 'ts' });
|
|
168
|
+
* // ['setup', 'main', 'cleanup']
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export function listRegions(code, options = {}) {
|
|
172
|
+
const regions = parseRegions(code, options);
|
|
173
|
+
return Object.keys(regions);
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/regions/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.spec.d.ts","sourceRoot":"","sources":["../../src/regions/parser.spec.ts"],"names":[],"mappings":""}
|