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.
Files changed (84) hide show
  1. package/README.md +63 -44
  2. package/README.md.template +28 -54
  3. package/dist/cli/commands/scan.d.ts +1 -1
  4. package/dist/cli/index.d.ts +2 -2
  5. package/dist/config/resolver.d.ts.map +1 -1
  6. package/dist/config/resolver.js +25 -2
  7. package/dist/config/resolver.js.map +1 -1
  8. package/dist/config/schema.d.ts +10 -0
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +6 -0
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/files/reader.d.ts +4 -20
  13. package/dist/files/reader.d.ts.map +1 -1
  14. package/dist/files/reader.js +6 -22
  15. package/dist/files/reader.js.map +1 -1
  16. package/dist/index.d.ts +2 -3
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/plugins/pipeline.d.ts +2 -1
  21. package/dist/plugins/pipeline.d.ts.map +1 -1
  22. package/dist/plugins/pipeline.js +4 -3
  23. package/dist/plugins/pipeline.js.map +1 -1
  24. package/dist/regions/defaults.d.ts +11 -0
  25. package/dist/regions/defaults.d.ts.map +1 -0
  26. package/dist/regions/defaults.js +20 -0
  27. package/dist/regions/defaults.js.map +1 -0
  28. package/dist/regions/parser.d.ts +18 -56
  29. package/dist/regions/parser.d.ts.map +1 -1
  30. package/dist/regions/parser.js +81 -149
  31. package/dist/regions/parser.js.map +1 -1
  32. package/dist/scanner/scanner.d.ts.map +1 -1
  33. package/dist/scanner/scanner.js +14 -5
  34. package/dist/scanner/scanner.js.map +1 -1
  35. package/dist/types/index.d.ts +2 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/index.js +2 -0
  38. package/dist/types/index.js.map +1 -1
  39. package/package.json +2 -2
  40. package/dist/config/index.spec.d.ts.map +0 -1
  41. package/dist/config/index.spec.js +0 -142
  42. package/dist/config/index.spec.js.map +0 -1
  43. package/dist/extractors/loader.d.ts.map +0 -1
  44. package/dist/extractors/loader.js +0 -120
  45. package/dist/extractors/loader.js.map +0 -1
  46. package/dist/extractors/meta-yml-fn.d.ts.map +0 -1
  47. package/dist/extractors/meta-yml-fn.js +0 -66
  48. package/dist/extractors/meta-yml-fn.js.map +0 -1
  49. package/dist/extractors/meta-yml.d.ts.map +0 -1
  50. package/dist/extractors/meta-yml.js +0 -65
  51. package/dist/extractors/meta-yml.js.map +0 -1
  52. package/dist/extractors/registry.d.ts.map +0 -1
  53. package/dist/extractors/registry.js +0 -114
  54. package/dist/extractors/registry.js.map +0 -1
  55. package/dist/extractors/registry.spec.d.ts.map +0 -1
  56. package/dist/extractors/registry.spec.js +0 -102
  57. package/dist/extractors/registry.spec.js.map +0 -1
  58. package/dist/extractors/yaml-frontmatter-fn.d.ts.map +0 -1
  59. package/dist/extractors/yaml-frontmatter-fn.js +0 -73
  60. package/dist/extractors/yaml-frontmatter-fn.js.map +0 -1
  61. package/dist/extractors/yaml-frontmatter.d.ts.map +0 -1
  62. package/dist/extractors/yaml-frontmatter.js +0 -83
  63. package/dist/extractors/yaml-frontmatter.js.map +0 -1
  64. package/dist/extractors/yaml-frontmatter.spec.d.ts.map +0 -1
  65. package/dist/extractors/yaml-frontmatter.spec.js +0 -134
  66. package/dist/extractors/yaml-frontmatter.spec.js.map +0 -1
  67. package/dist/regions/index.d.ts +0 -7
  68. package/dist/regions/index.d.ts.map +0 -1
  69. package/dist/regions/index.js +0 -6
  70. package/dist/regions/index.js.map +0 -1
  71. package/dist/regions/languages.d.ts +0 -15
  72. package/dist/regions/languages.d.ts.map +0 -1
  73. package/dist/regions/languages.js +0 -182
  74. package/dist/regions/languages.js.map +0 -1
  75. package/dist/regions/parser.spec.d.ts.map +0 -1
  76. package/dist/regions/parser.spec.js +0 -190
  77. package/dist/regions/parser.spec.js.map +0 -1
  78. package/dist/regions/types.d.ts +0 -37
  79. package/dist/regions/types.d.ts.map +0 -1
  80. package/dist/regions/types.js +0 -5
  81. package/dist/regions/types.js.map +0 -1
  82. package/dist/scanner/scanner.spec.d.ts.map +0 -1
  83. package/dist/scanner/scanner.spec.js +0 -262
  84. package/dist/scanner/scanner.spec.js.map +0 -1
@@ -1,182 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/regions/languages.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.spec.d.ts","sourceRoot":"","sources":["../../src/regions/parser.spec.ts"],"names":[],"mappings":""}
@@ -1,190 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { parseRegions, extractRegion, stripRegionMarkers, listRegions } from './parser.js';
3
- describe('parseRegions', () => {
4
- describe('JavaScript/TypeScript style', () => {
5
- it('parses single region', () => {
6
- const code = `
7
- const before = 1;
8
- // #region setup
9
- const x = 1;
10
- const y = 2;
11
- // #endregion setup
12
- const after = 2;
13
- `;
14
- const regions = parseRegions(code, { extension: 'ts' });
15
- expect(regions.setup).toBeDefined();
16
- expect(regions.setup.content).toBe('const x = 1;\nconst y = 2;');
17
- expect(regions.setup.startLine).toBe(3);
18
- expect(regions.setup.endLine).toBe(6);
19
- });
20
- it('parses multiple regions', () => {
21
- const code = `
22
- // #region imports
23
- import { foo } from 'bar';
24
- // #endregion imports
25
- // #region main
26
- console.log('hello');
27
- // #endregion main
28
- `;
29
- const regions = parseRegions(code, { extension: 'js' });
30
- expect(Object.keys(regions)).toEqual(['imports', 'main']);
31
- expect(regions.imports.content).toBe("import { foo } from 'bar';");
32
- expect(regions.main.content).toBe("console.log('hello');");
33
- });
34
- it('parses nested regions', () => {
35
- const code = `
36
- // #region outer
37
- const a = 1;
38
- // #region inner
39
- const b = 2;
40
- // #endregion inner
41
- const c = 3;
42
- // #endregion outer
43
- `;
44
- const regions = parseRegions(code, { extension: 'ts' });
45
- expect(regions.outer.content).toBe('const a = 1;\nconst b = 2;\nconst c = 3;');
46
- expect(regions.inner.content).toBe('const b = 2;');
47
- });
48
- it('throws on unclosed region', () => {
49
- const code = `
50
- // #region unclosed
51
- const x = 1;
52
- `;
53
- expect(() => parseRegions(code, { extension: 'ts' })).toThrow("Unclosed region 'unclosed'");
54
- });
55
- it('throws on mismatched region', () => {
56
- const code = `
57
- // #region foo
58
- // #endregion bar
59
- `;
60
- expect(() => parseRegions(code, { extension: 'ts' })).toThrow("Mismatched region: opened 'foo'");
61
- });
62
- it('throws on unexpected endregion', () => {
63
- const code = `
64
- // #endregion orphan
65
- `;
66
- expect(() => parseRegions(code, { extension: 'ts' })).toThrow("Unexpected #endregion 'orphan'");
67
- });
68
- });
69
- describe('Python style', () => {
70
- it('parses regions with hash comments', () => {
71
- const code = `
72
- import os
73
- # #region setup
74
- db = create_connection()
75
- # #endregion setup
76
- `;
77
- const regions = parseRegions(code, { extension: 'py' });
78
- expect(regions.setup.content).toBe('db = create_connection()');
79
- });
80
- });
81
- describe('SQL style', () => {
82
- it('parses regions with double-dash comments', () => {
83
- const code = `
84
- SELECT * FROM users;
85
- -- #region migration
86
- ALTER TABLE users ADD COLUMN email VARCHAR(255);
87
- -- #endregion migration
88
- `;
89
- const regions = parseRegions(code, { extension: 'sql' });
90
- expect(regions.migration.content).toBe('ALTER TABLE users ADD COLUMN email VARCHAR(255);');
91
- });
92
- });
93
- describe('HTML style', () => {
94
- it('parses regions with HTML comments', () => {
95
- const code = `
96
- <html>
97
- <!-- #region header -->
98
- <head><title>Test</title></head>
99
- <!-- #endregion header -->
100
- </html>
101
- `;
102
- const regions = parseRegions(code, { extension: 'html' });
103
- expect(regions.header.content).toBe('<head><title>Test</title></head>');
104
- });
105
- });
106
- describe('CSS style', () => {
107
- it('parses regions with block comments', () => {
108
- const code = `
109
- body { margin: 0; }
110
- /* #region theme */
111
- .dark { background: black; }
112
- /* #endregion theme */
113
- `;
114
- const regions = parseRegions(code, { extension: 'css' });
115
- expect(regions.theme.content).toBe('.dark { background: black; }');
116
- });
117
- });
118
- });
119
- describe('extractRegion', () => {
120
- it('extracts specific region', () => {
121
- const code = `
122
- // #region setup
123
- const x = 1;
124
- // #endregion setup
125
- // #region main
126
- const y = 2;
127
- // #endregion main
128
- `;
129
- const setup = extractRegion(code, 'setup', { extension: 'ts' });
130
- expect(setup).toBe('const x = 1;');
131
- });
132
- it('throws with helpful message when region not found', () => {
133
- const code = `
134
- // #region existing
135
- code();
136
- // #endregion existing
137
- `;
138
- expect(() => extractRegion(code, 'missing', { extension: 'ts' })).toThrow("Region 'missing' not found. Available regions: existing");
139
- });
140
- it('provides hint when no regions exist', () => {
141
- const code = `const x = 1;`;
142
- expect(() => extractRegion(code, 'missing', { extension: 'ts' })).toThrow('No regions found in code');
143
- });
144
- });
145
- describe('stripRegionMarkers', () => {
146
- it('removes all region markers', () => {
147
- const code = `
148
- const before = 1;
149
- // #region setup
150
- const x = 1;
151
- // #endregion setup
152
- const after = 2;
153
- `;
154
- const stripped = stripRegionMarkers(code, { extension: 'ts' });
155
- expect(stripped).not.toContain('#region');
156
- expect(stripped).not.toContain('#endregion');
157
- expect(stripped).toContain('const x = 1;');
158
- expect(stripped).toContain('const before = 1;');
159
- expect(stripped).toContain('const after = 2;');
160
- });
161
- it('handles multiple language styles', () => {
162
- const pyCode = `
163
- # #region test
164
- code()
165
- # #endregion test
166
- `;
167
- const stripped = stripRegionMarkers(pyCode, { extension: 'py' });
168
- expect(stripped.trim()).toBe('code()');
169
- });
170
- });
171
- describe('listRegions', () => {
172
- it('returns all region IDs', () => {
173
- const code = `
174
- // #region a
175
- // #endregion a
176
- // #region b
177
- // #endregion b
178
- // #region c
179
- // #endregion c
180
- `;
181
- const ids = listRegions(code, { extension: 'ts' });
182
- expect(ids).toEqual(['a', 'b', 'c']);
183
- });
184
- it('returns empty array when no regions', () => {
185
- const code = `const x = 1;`;
186
- const ids = listRegions(code, { extension: 'ts' });
187
- expect(ids).toEqual([]);
188
- });
189
- });
190
- //# sourceMappingURL=parser.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.spec.js","sourceRoot":"","sources":["../../src/regions/parser.spec.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Types for region extraction
3
- */
4
- /**
5
- * Information about a parsed region
6
- */
7
- export interface RegionInfo {
8
- /** 1-based line number where the region starts */
9
- startLine: number;
10
- /** 1-based line number where the region ends */
11
- endLine: number;
12
- /** Content within the region (markers excluded) */
13
- content: string;
14
- }
15
- /**
16
- * Map of region IDs to their information
17
- */
18
- export type RegionMap = Record<string, RegionInfo>;
19
- /**
20
- * Options for region parsing
21
- */
22
- export interface RegionOptions {
23
- /** File extension to determine comment syntax (e.g., 'ts', 'py') */
24
- extension?: string;
25
- /** Language name override (e.g., 'typescript', 'python') */
26
- language?: string;
27
- }
28
- /**
29
- * Configuration for a programming language's comment syntax
30
- */
31
- export interface LanguageConfig {
32
- /** Line comment prefix (e.g., '//' for JS, '#' for Python) */
33
- lineComment?: string;
34
- /** Block comment delimiters [start, end] */
35
- blockComment?: [string, string];
36
- }
37
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/regions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Types for region extraction
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/regions/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.spec.d.ts","sourceRoot":"","sources":["../../src/scanner/scanner.spec.ts"],"names":[],"mappings":""}