@flagshark/core 1.3.0 → 1.4.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 +124 -18
- package/dist/config/excluder.d.ts.map +1 -1
- package/dist/config/excluder.js +1 -0
- package/dist/config/excluder.js.map +1 -1
- package/dist/config/loader.js +1 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +25 -12
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/detection/detectors/cpp.d.ts.map +1 -1
- package/dist/detection/detectors/cpp.js +6 -2
- package/dist/detection/detectors/cpp.js.map +1 -1
- package/dist/detection/detectors/go.d.ts +2 -2
- package/dist/detection/detectors/go.d.ts.map +1 -1
- package/dist/detection/detectors/javascript.d.ts +2 -2
- package/dist/detection/detectors/javascript.d.ts.map +1 -1
- package/dist/detection/detectors/javascript.js +6 -2
- package/dist/detection/detectors/javascript.js.map +1 -1
- package/dist/detection/detectors/php.d.ts.map +1 -1
- package/dist/detection/detectors/php.js +6 -2
- package/dist/detection/detectors/php.js.map +1 -1
- package/dist/detection/detectors/python.d.ts +2 -2
- package/dist/detection/detectors/python.d.ts.map +1 -1
- package/dist/detection/detectors/python.js +6 -2
- package/dist/detection/detectors/python.js.map +1 -1
- package/dist/detection/detectors/ruby.d.ts.map +1 -1
- package/dist/detection/detectors/ruby.js +7 -4
- package/dist/detection/detectors/ruby.js.map +1 -1
- package/dist/detection/detectors/typescript.d.ts +2 -2
- package/dist/detection/detectors/typescript.d.ts.map +1 -1
- package/dist/detection/detectors/typescript.js +6 -2
- package/dist/detection/detectors/typescript.js.map +1 -1
- package/dist/detection/feature-flag.d.ts.map +1 -1
- package/dist/detection/helpers.d.ts.map +1 -1
- package/dist/detection/helpers.js +11 -1
- package/dist/detection/helpers.js.map +1 -1
- package/dist/detection/index.d.ts +1 -1
- package/dist/detection/index.d.ts.map +1 -1
- package/dist/detection/interface.d.ts +2 -0
- package/dist/detection/interface.d.ts.map +1 -1
- package/dist/detection/polyglot-analyzer.d.ts.map +1 -1
- package/dist/detection/polyglot-analyzer.js +50 -0
- package/dist/detection/polyglot-analyzer.js.map +1 -1
- package/dist/detection/tree-sitter/const-resolver.d.ts.map +1 -1
- package/dist/detection/tree-sitter/const-resolver.js +2 -2
- package/dist/detection/tree-sitter/const-resolver.js.map +1 -1
- package/dist/detection/tree-sitter/engine.d.ts.map +1 -1
- package/dist/detection/tree-sitter/engine.js +2 -14
- package/dist/detection/tree-sitter/engine.js.map +1 -1
- package/dist/detection/tree-sitter/module-url.d.ts +25 -0
- package/dist/detection/tree-sitter/module-url.d.ts.map +1 -0
- package/dist/detection/tree-sitter/module-url.js +38 -0
- package/dist/detection/tree-sitter/module-url.js.map +1 -0
- package/dist/detection/tree-sitter/parser-cache.d.ts +4 -0
- package/dist/detection/tree-sitter/parser-cache.d.ts.map +1 -1
- package/dist/detection/tree-sitter/parser-cache.js +30 -6
- package/dist/detection/tree-sitter/parser-cache.js.map +1 -1
- package/dist/detection/tree-sitter/queries-inline.d.ts +13 -0
- package/dist/detection/tree-sitter/queries-inline.d.ts.map +1 -0
- package/dist/detection/tree-sitter/queries-inline.js +17 -0
- package/dist/detection/tree-sitter/queries-inline.js.map +1 -0
- package/dist/detection/tree-sitter/query-runner.d.ts +14 -1
- package/dist/detection/tree-sitter/query-runner.d.ts.map +1 -1
- package/dist/detection/tree-sitter/query-runner.js +28 -11
- package/dist/detection/tree-sitter/query-runner.js.map +1 -1
- package/dist/detection/yaml-config.js +2 -2
- package/dist/detection/yaml-config.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/output/csv.d.ts +9 -0
- package/dist/output/csv.d.ts.map +1 -0
- package/dist/output/csv.js +31 -0
- package/dist/output/csv.js.map +1 -0
- package/dist/output/index.d.ts +8 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +8 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/json.d.ts +13 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +43 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/markdown.d.ts +23 -0
- package/dist/output/markdown.d.ts.map +1 -0
- package/dist/output/markdown.js +94 -0
- package/dist/output/markdown.js.map +1 -0
- package/dist/output/sarif.d.ts +16 -0
- package/dist/output/sarif.d.ts.map +1 -0
- package/dist/output/sarif.js +104 -0
- package/dist/output/sarif.js.map +1 -0
- package/dist/output/select.d.ts +23 -0
- package/dist/output/select.d.ts.map +1 -0
- package/dist/output/select.js +36 -0
- package/dist/output/select.js.map +1 -0
- package/dist/output/shared.d.ts +13 -0
- package/dist/output/shared.d.ts.map +1 -0
- package/dist/output/shared.js +28 -0
- package/dist/output/shared.js.map +1 -0
- package/dist/output/text.d.ts +11 -0
- package/dist/output/text.d.ts.map +1 -0
- package/dist/output/text.js +104 -0
- package/dist/output/text.js.map +1 -0
- package/dist/providers/cache.d.ts +28 -0
- package/dist/providers/cache.d.ts.map +1 -0
- package/dist/providers/cache.js +84 -0
- package/dist/providers/cache.js.map +1 -0
- package/dist/providers/cross-reference.d.ts +19 -0
- package/dist/providers/cross-reference.d.ts.map +1 -0
- package/dist/providers/cross-reference.js +48 -0
- package/dist/providers/cross-reference.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +37 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +2 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/launchdarkly/client.d.ts +13 -0
- package/dist/providers/launchdarkly/client.d.ts.map +1 -0
- package/dist/providers/launchdarkly/client.js +44 -0
- package/dist/providers/launchdarkly/client.js.map +1 -0
- package/dist/providers/launchdarkly/definition.d.ts +22 -0
- package/dist/providers/launchdarkly/definition.d.ts.map +1 -0
- package/dist/providers/launchdarkly/definition.js +24 -0
- package/dist/providers/launchdarkly/definition.js.map +1 -0
- package/dist/providers/launchdarkly/errors.d.ts +5 -0
- package/dist/providers/launchdarkly/errors.d.ts.map +1 -0
- package/dist/providers/launchdarkly/errors.js +9 -0
- package/dist/providers/launchdarkly/errors.js.map +1 -0
- package/dist/providers/launchdarkly/types.d.ts +154 -0
- package/dist/providers/launchdarkly/types.d.ts.map +1 -0
- package/dist/providers/launchdarkly/types.js +17 -0
- package/dist/providers/launchdarkly/types.js.map +1 -0
- package/dist/providers/orchestrate.d.ts +24 -0
- package/dist/providers/orchestrate.d.ts.map +1 -0
- package/dist/providers/orchestrate.js +44 -0
- package/dist/providers/orchestrate.js.map +1 -0
- package/dist/providers/registry.d.ts +8 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +15 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/scan-repo.d.ts +2 -0
- package/dist/scan-repo.d.ts.map +1 -1
- package/dist/scan-repo.js +15 -6
- package/dist/scan-repo.js.map +1 -1
- package/dist/staleness.d.ts +4 -1
- package/dist/staleness.d.ts.map +1 -1
- package/dist/staleness.js +15 -11
- package/dist/staleness.js.map +1 -1
- package/package.json +6 -2
- package/dist/detection/tree-sitter/query-builder.d.ts +0 -3
- package/dist/detection/tree-sitter/query-builder.d.ts.map +0 -1
- package/dist/detection/tree-sitter/query-builder.js +0 -7
- package/dist/detection/tree-sitter/query-builder.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @flagshark/core
|
|
2
2
|
|
|
3
|
-
The detection engine behind [FlagShark](https://github.com/FlagShark/flagshark) — finds feature flag references across 13 languages and
|
|
3
|
+
The detection engine behind [FlagShark](https://github.com/FlagShark/flagshark) — finds feature flag references across 13 languages and 13 providers, and identifies stale flags via git blame.
|
|
4
4
|
|
|
5
|
-
This is the **library**.
|
|
5
|
+
This is the **library**. For a CLI or GitHub Action, install [`flagshark`](https://www.npmjs.com/package/flagshark) instead.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -25,18 +25,50 @@ console.log(`Health score: ${result.healthScore}/100`)
|
|
|
25
25
|
console.log(`Languages: ${Object.keys(result.languageBreakdown).join(', ')}`)
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Detection
|
|
29
|
+
|
|
30
|
+
For tier-1 languages (TypeScript, JavaScript, Go, Python), detection uses [tree-sitter](https://tree-sitter.github.io/) (via WASM) to parse files into a real AST. That eliminates the false-positive class where regex matched flag-shaped strings inside comments, string literals, or unrelated call expressions. It also handles multi-line calls and resolves const-bound flag keys (`const FLAG = 'X'; client.variation(FLAG, …)`) in TS/JS.
|
|
31
|
+
|
|
32
|
+
The remaining 9 languages currently use regex-based detection; each migrates to tree-sitter in future releases (no API break).
|
|
33
|
+
|
|
34
|
+
The engine is a runtime concern, not a public API surface. Consumers calling `scanRepo()` or `createDefaultRegistry()` get the right engine per-language automatically. Override per-detector if needed (see below).
|
|
35
|
+
|
|
36
|
+
## Bundling and WASM resolution
|
|
37
|
+
|
|
38
|
+
Detection has two runtime asset dependencies: the four tree-sitter grammar WASMs (~2.5 MB total, binary, must be external) and the four `.scm` query files (~1.4 KB total, text, **inlined into the JS bundle**). The `.scm` files come along for free because we ship them as TypeScript string constants — there is nothing for you to copy, no env var to set, no resolution path that can break. Only the WASMs need attention.
|
|
39
|
+
|
|
40
|
+
For the WASM grammars (`tree-sitter-typescript.wasm`, `tree-sitter-javascript.wasm`, `tree-sitter-go.wasm`, `tree-sitter-python.wasm`), `parser-cache` calls `createRequire(...).resolve(...)` against `node_modules/tree-sitter-*`. The four grammar packages are declared as runtime dependencies of `@flagshark/core` — under normal `npm install` / `bun install` use you don't need to do anything; the grammars sit next to your `node_modules` copy of `@flagshark/core` and resolution Just Works.
|
|
41
|
+
|
|
42
|
+
If you're bundling `@flagshark/core` into a Lambda, container, edge function, or any other distributable artifact, three resolution paths exist:
|
|
43
|
+
|
|
44
|
+
**1. Node target, grammars external (recommended).** Mark the four `tree-sitter-*` packages as external in your bundler and install them next to the bundle. AWS CDK's `lambdaNodejs.NodejsFunction` does this via `nodeModules: ['tree-sitter-typescript', …]`; esbuild does it via `external: [...]` plus a side-by-side `package.json`. The grammars stay on disk in `node_modules/tree-sitter-*` and `parser-cache` resolves them through `__filename` (CJS bundles) or `import.meta.url` (ESM bundles).
|
|
45
|
+
|
|
46
|
+
**2. Node target, grammars flattened.** If your bundling pipeline puts grammars in a custom location, set `FLAGSHARK_WASM_DIR` to that directory and `parser-cache` will read `${FLAGSHARK_WASM_DIR}/<basename>.wasm` directly — bypassing `require.resolve` entirely. The four files must be there with their exact `tree-sitter-<lang>.wasm` names. This is what the GitHub Action uses (`packages/action/scripts/build.mjs` copies them at build time and the entry point exports `FLAGSHARK_WASM_DIR` before importing the engine).
|
|
47
|
+
|
|
48
|
+
**3. Non-Node target (edge runtimes, browsers).** Same as path 2: ship the four WASM files alongside your bundle and set `FLAGSHARK_WASM_DIR` to that directory. There is no working "do nothing" path here — `createRequire` doesn't exist on Workers/Deno/browsers, and the tree-sitter engine has to find the grammars somehow.
|
|
49
|
+
|
|
50
|
+
If neither `import.meta.url` nor `__filename` is available and `FLAGSHARK_WASM_DIR` is unset, `parser-cache` throws with a pointer at this section.
|
|
51
|
+
|
|
52
|
+
`FLAGSHARK_QUERIES_DIR` also exists as an escape hatch for consumers who want to swap out the inlined queries at runtime (custom detection rules, vendored variants). When set, `loadQueryText` reads `${dir}/${lang}.scm` from disk instead of using the inlined string. Most consumers will never need this — the inlined defaults are the same `.scm` files we publish to `dist/detection/tree-sitter/queries/`.
|
|
53
|
+
|
|
54
|
+
### Visibility into detection failures
|
|
55
|
+
|
|
56
|
+
Every analysis run that produces parse errors emits a deduplicated sample at WARN, alongside the existing `Polyglot analysis completed` summary. If grammar resolution breaks, a WASM file is missing, or a detector throws, you see the underlying error message in the log — not just a `filesWithErrors: N` counter. The per-file `try/catch` in `analyzeFile` stays (one bad file shouldn't fail an entire scan), but the errors no longer disappear into a counter.
|
|
57
|
+
|
|
58
|
+
Pass any `ScanLogger` to `new PolyglotAnalyzer(registry, logger)` and the sample lands on `logger.warn('Parse errors during analysis', { uniqueErrors, sample })`. The top 5 unique error messages are reported with up to 3 example file paths each.
|
|
59
|
+
|
|
28
60
|
## API
|
|
29
61
|
|
|
30
62
|
### `scanRepo(options) → Promise<ScanRepoResult>`
|
|
31
63
|
|
|
32
|
-
Top-level orchestrator. Walks a checked-out repository, detects flags,
|
|
64
|
+
Top-level orchestrator. Walks a checked-out repository, detects flags, runs staleness analysis, and returns a summary.
|
|
33
65
|
|
|
34
66
|
```ts
|
|
35
67
|
interface ScanRepoOptions {
|
|
36
68
|
/** Absolute path to the repository being scanned. */
|
|
37
69
|
cwd: string
|
|
38
70
|
|
|
39
|
-
/** Staleness threshold in months.
|
|
71
|
+
/** Staleness threshold in months. Overridden by `config.threshold` if config is supplied. */
|
|
40
72
|
threshold?: number
|
|
41
73
|
|
|
42
74
|
/** If set, only scan files changed since this git ref (e.g. `origin/main`). */
|
|
@@ -48,20 +80,85 @@ interface ScanRepoOptions {
|
|
|
48
80
|
|
|
49
81
|
/** Optional `{ debug, info, warn, error }` logger. Defaults to no-op. */
|
|
50
82
|
logger?: ScanLogger
|
|
83
|
+
|
|
84
|
+
/** Explicit FlagsharkConfig. If undefined, scanRepo auto-discovers
|
|
85
|
+
* `.flagshark.yml` walking upward from `cwd`. */
|
|
86
|
+
config?: FlagsharkConfig
|
|
87
|
+
|
|
88
|
+
/** Skip `.flagshark.yml` discovery entirely. */
|
|
89
|
+
noConfig?: boolean
|
|
90
|
+
|
|
91
|
+
/** Skip `.flagsharkignore` discovery entirely. */
|
|
92
|
+
noIgnoreFile?: boolean
|
|
93
|
+
|
|
94
|
+
/** Populate `result.excludedPaths` with the full list of skipped file paths.
|
|
95
|
+
* Off by default — counts only. */
|
|
96
|
+
collectExcludedPaths?: boolean
|
|
51
97
|
}
|
|
52
98
|
|
|
53
99
|
interface ScanRepoResult {
|
|
54
100
|
totalFlags: number
|
|
55
|
-
filesScanned: number
|
|
56
101
|
staleFlags: StaleFlag[]
|
|
57
102
|
detectedProviders: string[]
|
|
58
103
|
languageBreakdown: Record<string, number>
|
|
59
|
-
healthScore: number
|
|
60
|
-
scanDuration: number
|
|
104
|
+
healthScore: number // 0–100
|
|
105
|
+
scanDuration: number // ms
|
|
106
|
+
excludedCount?: number // files skipped by config + .flagsharkignore
|
|
107
|
+
excludedPaths?: string[] // set when collectExcludedPaths: true
|
|
108
|
+
effectiveExcludes?: EffectiveRules // for debug/verbose output
|
|
61
109
|
}
|
|
62
110
|
```
|
|
63
111
|
|
|
64
|
-
`scanRepo` walks the local filesystem. If you can't run a git checkout (e.g., serverless function reading from an API), use the lower-level primitives below.
|
|
112
|
+
`scanRepo` walks the local filesystem. If you can't run a git checkout (e.g., a serverless function reading from an API), use the lower-level primitives below.
|
|
113
|
+
|
|
114
|
+
### Config module
|
|
115
|
+
|
|
116
|
+
The same config used by the CLI is exported as a building block:
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
import {
|
|
120
|
+
buildDefaultConfig,
|
|
121
|
+
loadConfigFile,
|
|
122
|
+
loadIgnoreFile,
|
|
123
|
+
buildExcluder,
|
|
124
|
+
expandPresets,
|
|
125
|
+
PRESETS,
|
|
126
|
+
FlagsharkConfigSchema,
|
|
127
|
+
type FlagsharkConfig,
|
|
128
|
+
} from '@flagshark/core'
|
|
129
|
+
|
|
130
|
+
// Load a .flagshark.yml from disk (validated via zod)
|
|
131
|
+
const loaded = await loadConfigFile('/path/to/repo')
|
|
132
|
+
const config = loaded?.config ?? buildDefaultConfig()
|
|
133
|
+
|
|
134
|
+
// Load a .flagsharkignore (separate file at repo root)
|
|
135
|
+
const ignoreFile = await loadIgnoreFile('/path/to/repo')
|
|
136
|
+
|
|
137
|
+
// Build a unified excluder from all sources
|
|
138
|
+
const excluder = buildExcluder({
|
|
139
|
+
config,
|
|
140
|
+
ignoreFilePatterns: ignoreFile?.patterns ?? [],
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
// Use it directly:
|
|
144
|
+
excluder.shouldExclude('examples/demo.ts') // true
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The schema accepts:
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
threshold: 6
|
|
151
|
+
excludes:
|
|
152
|
+
paths: [] # gitignore-style globs
|
|
153
|
+
files: [] # same — split is purely organizational
|
|
154
|
+
presets: [] # ['test-files', 'snapshots', 'examples', 'stories', 'fixtures', 'generated']
|
|
155
|
+
suppress:
|
|
156
|
+
flags: [] # flag-name globs (post-detection filter)
|
|
157
|
+
paths:
|
|
158
|
+
- match: 'src/critical/**'
|
|
159
|
+
threshold: 3
|
|
160
|
+
providers: [] # custom provider definitions (see Custom Detectors)
|
|
161
|
+
```
|
|
65
162
|
|
|
66
163
|
### Lower-level primitives
|
|
67
164
|
|
|
@@ -71,7 +168,7 @@ For consumers that fetch file contents elsewhere (GitHub API, S3, in-memory, etc
|
|
|
71
168
|
import { createDefaultRegistry, PolyglotAnalyzer } from '@flagshark/core'
|
|
72
169
|
|
|
73
170
|
const registry = createDefaultRegistry() // 13 detectors pre-registered
|
|
74
|
-
const analyzer = new PolyglotAnalyzer(registry)
|
|
171
|
+
const analyzer = new PolyglotAnalyzer(registry, logger)
|
|
75
172
|
|
|
76
173
|
// `files` is a Map<filePath, content>
|
|
77
174
|
const result = await analyzer.analyzeFiles(files)
|
|
@@ -101,34 +198,43 @@ const registry = createDefaultRegistry()
|
|
|
101
198
|
registry.register(new MyCustomDetector())
|
|
102
199
|
```
|
|
103
200
|
|
|
104
|
-
Or import individual detectors and compose your own registry:
|
|
201
|
+
Or import individual detectors and compose your own registry. Each tier-1 detector accepts `{ engine: 'regex' | 'tree-sitter' }`:
|
|
105
202
|
|
|
106
203
|
```ts
|
|
107
|
-
import {
|
|
204
|
+
import {
|
|
205
|
+
LanguageRegistry,
|
|
206
|
+
TypeScriptDetector,
|
|
207
|
+
GoDetector,
|
|
208
|
+
type DetectorEngine,
|
|
209
|
+
} from '@flagshark/core'
|
|
108
210
|
|
|
109
211
|
const registry = new LanguageRegistry()
|
|
110
|
-
registry.register(new
|
|
111
|
-
registry.register(new
|
|
212
|
+
registry.register(new TypeScriptDetector({ engine: 'tree-sitter' }))
|
|
213
|
+
registry.register(new GoDetector({ engine: 'regex' })) // opt back to regex
|
|
112
214
|
```
|
|
113
215
|
|
|
114
216
|
## Supported languages
|
|
115
217
|
|
|
116
|
-
TypeScript
|
|
218
|
+
TypeScript, JavaScript, Go, Python, Java, Kotlin, Swift, Ruby, C#, PHP, Rust, C/C++, Objective-C.
|
|
117
219
|
|
|
118
220
|
## Supported providers
|
|
119
221
|
|
|
120
|
-
Auto-detected from imports — no configuration needed:
|
|
222
|
+
Auto-detected from imports — no configuration needed:
|
|
223
|
+
|
|
224
|
+
LaunchDarkly · Unleash · Flipt · Split.io · PostHog · Flagsmith · ConfigCat · Statsig · GrowthBook · DevCycle · Eppo · Optimizely · plus generic custom-flag patterns.
|
|
121
225
|
|
|
122
226
|
## How detection works
|
|
123
227
|
|
|
124
|
-
|
|
228
|
+
FlagShark only scans files that actually import a flag SDK. A function called `isEnabled()` in a file that doesn't import LaunchDarkly/Unleash/etc. won't be flagged — this prevents false positives from generic identifier names.
|
|
229
|
+
|
|
230
|
+
Once a file qualifies, the engine (tree-sitter for tier-1, regex for the rest) walks call expressions and extracts the flag-key argument at the configured position for each provider's method signatures. Provider attribution and source location come along automatically.
|
|
125
231
|
|
|
126
232
|
## How staleness works
|
|
127
233
|
|
|
128
234
|
A flag is marked stale if **any** signal fires:
|
|
129
235
|
|
|
130
|
-
1.
|
|
131
|
-
2.
|
|
236
|
+
1. **`age`** — `git blame` shows the flag's line was last modified more than `threshold` months ago.
|
|
237
|
+
2. **`low-usage`** — The flag name appears in only one file across the repo, suggesting a completed rollout.
|
|
132
238
|
|
|
133
239
|
## License
|
|
134
240
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excluder.d.ts","sourceRoot":"","sources":["../../src/config/excluder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"excluder.d.ts","sourceRoot":"","sources":["../../src/config/excluder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAA;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B;AAwBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CA4BjE"}
|
package/dist/config/excluder.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ignoreModule from 'ignore';
|
|
2
2
|
import { expandPresets } from './presets.js';
|
|
3
|
+
/* v8 ignore next -- CJS/ESM interop shim; one branch is always taken depending on bundler */
|
|
3
4
|
const ignore = ignoreModule.default ?? ignoreModule;
|
|
4
5
|
/**
|
|
5
6
|
* Convert trailing-slash directory patterns (`examples/`) to recursive globs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excluder.js","sourceRoot":"","sources":["../../src/config/excluder.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,MAAM,MAAM,GAAI,YAA6D,CAAC,OAAO,IAAI,YAAY,CAAA;AAoBrG;;;;;;;;;;;;;;GAcG;AACH,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,IAAI,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAE5C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE7D,MAAM,WAAW,GAAa;QAC5B,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK;QACxB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK;QACxB,GAAG,cAAc;QACjB,GAAG,kBAAkB;KACtB,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAE/D,OAAO;QACL,aAAa,CAAC,IAAY;YACxB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACpC,CAAC;QACD,cAAc,EAAE;YACd,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrC,cAAc;YACd,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC;SACpC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"excluder.js","sourceRoot":"","sources":["../../src/config/excluder.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,6FAA6F;AAC7F,MAAM,MAAM,GAAI,YAA6D,CAAC,OAAO,IAAI,YAAY,CAAA;AAoBrG;;;;;;;;;;;;;;GAcG;AACH,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,IAAI,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAE5C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE7D,MAAM,WAAW,GAAa;QAC5B,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK;QACxB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK;QACxB,GAAG,cAAc;QACjB,GAAG,kBAAkB;KACtB,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAE/D,OAAO;QACL,aAAa,CAAC,IAAY;YACxB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACpC,CAAC;QACD,cAAc,EAAE;YACd,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrC,cAAc;YACd,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC;SACpC;KACF,CAAA;AACH,CAAC"}
|
package/dist/config/loader.js
CHANGED
|
@@ -27,6 +27,7 @@ function readAndValidate(path) {
|
|
|
27
27
|
parsed = parseYaml(raw);
|
|
28
28
|
}
|
|
29
29
|
catch (err) {
|
|
30
|
+
/* v8 ignore next 5 -- yaml library only throws YAMLParseError; the else-branch is unreachable */
|
|
30
31
|
if (err instanceof YAMLParseError) {
|
|
31
32
|
throw new Error(`Invalid YAML in ${path}: ${err.message}`);
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAwB,MAAM,aAAa,CAAA;AAEzE,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;AAOvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE3B,SAAS,CAAC;QACR,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAC9D,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEvC,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAwB,MAAM,aAAa,CAAA;AAEzE,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;AAOvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE3B,SAAS,CAAC;QACR,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAC9D,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEvC,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iGAAiG;QACjG,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA;AACtC,CAAC"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -6,12 +6,12 @@ export declare const ExcludesSchema: z.ZodDefault<z.ZodObject<{
|
|
|
6
6
|
files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
7
7
|
presets: z.ZodDefault<z.ZodArray<z.ZodEnum<["test-files", "snapshots", "examples", "stories", "fixtures", "generated"]>, "many">>;
|
|
8
8
|
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
paths: string[];
|
|
10
9
|
files: string[];
|
|
10
|
+
paths: string[];
|
|
11
11
|
presets: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[];
|
|
12
12
|
}, {
|
|
13
|
-
paths?: string[] | undefined;
|
|
14
13
|
files?: string[] | undefined;
|
|
14
|
+
paths?: string[] | undefined;
|
|
15
15
|
presets?: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[] | undefined;
|
|
16
16
|
}>>;
|
|
17
17
|
export declare const SuppressSchema: z.ZodDefault<z.ZodObject<{
|
|
@@ -84,13 +84,13 @@ export declare const OutputConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
84
84
|
}, "strip", z.ZodTypeAny, {
|
|
85
85
|
format: "json" | "text" | "sarif" | "markdown" | "csv";
|
|
86
86
|
groupBy: "provider" | "file" | "signal" | "none";
|
|
87
|
-
sortBy: "name" | "
|
|
87
|
+
sortBy: "name" | "count" | "age";
|
|
88
88
|
color: "never" | "auto" | "always";
|
|
89
89
|
maxDisplay: number;
|
|
90
90
|
}, {
|
|
91
91
|
format?: "json" | "text" | "sarif" | "markdown" | "csv" | undefined;
|
|
92
92
|
groupBy?: "provider" | "file" | "signal" | "none" | undefined;
|
|
93
|
-
sortBy?: "name" | "
|
|
93
|
+
sortBy?: "name" | "count" | "age" | undefined;
|
|
94
94
|
color?: "never" | "auto" | "always" | undefined;
|
|
95
95
|
maxDisplay?: number | undefined;
|
|
96
96
|
}>>;
|
|
@@ -129,12 +129,12 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
129
129
|
files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
130
130
|
presets: z.ZodDefault<z.ZodArray<z.ZodEnum<["test-files", "snapshots", "examples", "stories", "fixtures", "generated"]>, "many">>;
|
|
131
131
|
}, "strip", z.ZodTypeAny, {
|
|
132
|
-
paths: string[];
|
|
133
132
|
files: string[];
|
|
133
|
+
paths: string[];
|
|
134
134
|
presets: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[];
|
|
135
135
|
}, {
|
|
136
|
-
paths?: string[] | undefined;
|
|
137
136
|
files?: string[] | undefined;
|
|
137
|
+
paths?: string[] | undefined;
|
|
138
138
|
presets?: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[] | undefined;
|
|
139
139
|
}>>;
|
|
140
140
|
suppress: z.ZodDefault<z.ZodObject<{
|
|
@@ -197,13 +197,13 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
197
197
|
}, "strip", z.ZodTypeAny, {
|
|
198
198
|
format: "json" | "text" | "sarif" | "markdown" | "csv";
|
|
199
199
|
groupBy: "provider" | "file" | "signal" | "none";
|
|
200
|
-
sortBy: "name" | "
|
|
200
|
+
sortBy: "name" | "count" | "age";
|
|
201
201
|
color: "never" | "auto" | "always";
|
|
202
202
|
maxDisplay: number;
|
|
203
203
|
}, {
|
|
204
204
|
format?: "json" | "text" | "sarif" | "markdown" | "csv" | undefined;
|
|
205
205
|
groupBy?: "provider" | "file" | "signal" | "none" | undefined;
|
|
206
|
-
sortBy?: "name" | "
|
|
206
|
+
sortBy?: "name" | "count" | "age" | undefined;
|
|
207
207
|
color?: "never" | "auto" | "always" | undefined;
|
|
208
208
|
maxDisplay?: number | undefined;
|
|
209
209
|
}>>;
|
|
@@ -235,6 +235,13 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
235
235
|
} | undefined;
|
|
236
236
|
}>>;
|
|
237
237
|
engine: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["regex", "tree-sitter"]>>>;
|
|
238
|
+
platforms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
239
|
+
token_env: z.ZodOptional<z.ZodString>;
|
|
240
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
241
|
+
token_env: z.ZodOptional<z.ZodString>;
|
|
242
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
243
|
+
token_env: z.ZodOptional<z.ZodString>;
|
|
244
|
+
}, z.ZodTypeAny, "passthrough">>>>;
|
|
238
245
|
}, "strict", z.ZodTypeAny, {
|
|
239
246
|
providers: {
|
|
240
247
|
name: string;
|
|
@@ -253,8 +260,8 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
253
260
|
}[];
|
|
254
261
|
threshold: number;
|
|
255
262
|
excludes: {
|
|
256
|
-
paths: string[];
|
|
257
263
|
files: string[];
|
|
264
|
+
paths: string[];
|
|
258
265
|
presets: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[];
|
|
259
266
|
};
|
|
260
267
|
suppress: {
|
|
@@ -263,7 +270,7 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
263
270
|
output: {
|
|
264
271
|
format: "json" | "text" | "sarif" | "markdown" | "csv";
|
|
265
272
|
groupBy: "provider" | "file" | "signal" | "none";
|
|
266
|
-
sortBy: "name" | "
|
|
273
|
+
sortBy: "name" | "count" | "age";
|
|
267
274
|
color: "never" | "auto" | "always";
|
|
268
275
|
maxDisplay: number;
|
|
269
276
|
};
|
|
@@ -274,6 +281,9 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
274
281
|
lowUsage: number;
|
|
275
282
|
};
|
|
276
283
|
};
|
|
284
|
+
platforms?: Record<string, z.objectOutputType<{
|
|
285
|
+
token_env: z.ZodOptional<z.ZodString>;
|
|
286
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
277
287
|
}, {
|
|
278
288
|
providers?: {
|
|
279
289
|
name: string;
|
|
@@ -292,8 +302,8 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
292
302
|
}[] | undefined;
|
|
293
303
|
threshold?: number | undefined;
|
|
294
304
|
excludes?: {
|
|
295
|
-
paths?: string[] | undefined;
|
|
296
305
|
files?: string[] | undefined;
|
|
306
|
+
paths?: string[] | undefined;
|
|
297
307
|
presets?: ("examples" | "test-files" | "snapshots" | "stories" | "fixtures" | "generated")[] | undefined;
|
|
298
308
|
} | undefined;
|
|
299
309
|
suppress?: {
|
|
@@ -302,7 +312,7 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
302
312
|
output?: {
|
|
303
313
|
format?: "json" | "text" | "sarif" | "markdown" | "csv" | undefined;
|
|
304
314
|
groupBy?: "provider" | "file" | "signal" | "none" | undefined;
|
|
305
|
-
sortBy?: "name" | "
|
|
315
|
+
sortBy?: "name" | "count" | "age" | undefined;
|
|
306
316
|
color?: "never" | "auto" | "always" | undefined;
|
|
307
317
|
maxDisplay?: number | undefined;
|
|
308
318
|
} | undefined;
|
|
@@ -313,6 +323,9 @@ export declare const FlagsharkConfigSchema: z.ZodObject<{
|
|
|
313
323
|
lowUsage?: number | undefined;
|
|
314
324
|
} | undefined;
|
|
315
325
|
} | undefined;
|
|
326
|
+
platforms?: Record<string, z.objectInputType<{
|
|
327
|
+
token_env: z.ZodOptional<z.ZodString>;
|
|
328
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
316
329
|
}>;
|
|
317
330
|
export type FlagsharkConfig = z.infer<typeof FlagsharkConfigSchema>;
|
|
318
331
|
export type ExcludesConfig = z.infer<typeof ExcludesSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,eAAO,MAAM,gBAAgB,wFAAuB,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,cAAc;;;;;;;;;;;;GAIb,CAAA;AAEd,eAAO,MAAM,cAAc;;;;;;GAEb,CAAA;AAEd,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;GAMjB,CAAA;AAEd,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;GAMhB,CAAA;AAEd,eAAO,MAAM,YAAY,6EAGZ,CAAA;AAEb,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,eAAO,MAAM,gBAAgB,wFAAuB,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,cAAc;;;;;;;;;;;;GAIb,CAAA;AAEd,eAAO,MAAM,cAAc;;;;;;GAEb,CAAA;AAEd,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;GAMjB,CAAA;AAEd,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;GAMhB,CAAA;AAEd,eAAO,MAAM,YAAY,6EAGZ,CAAA;AAEb,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAA;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
|
package/dist/config/schema.js
CHANGED
|
@@ -59,5 +59,6 @@ export const FlagsharkConfigSchema = z.object({
|
|
|
59
59
|
output: OutputConfigSchema,
|
|
60
60
|
healthScore: HealthScoreSchema,
|
|
61
61
|
engine: EngineSchema,
|
|
62
|
+
platforms: z.record(z.string(), z.object({ token_env: z.string().optional() }).passthrough()).optional(),
|
|
62
63
|
}).strict();
|
|
63
64
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/cpp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,qBAAa,WAAY,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAErC,SAAS,CAAC,EAAE,mBAAmB,EAAE;IAI7C,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/cpp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,qBAAa,WAAY,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAErC,SAAS,CAAC,EAAE,mBAAmB,EAAE;IAI7C,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAI7D,YAAY,IAAI,mBAAmB,EAAE;CAGtC;AAED,wBAAgB,mBAAmB,IAAI,mBAAmB,EAAE,CAmF3D"}
|
|
@@ -16,8 +16,12 @@ export class CPPDetector {
|
|
|
16
16
|
return ['.cpp', '.cc', '.cxx', '.c++', '.hpp', '.hh', '.hxx', '.h++', '.h', '.c'];
|
|
17
17
|
}
|
|
18
18
|
supportsFile(filename) {
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const lower = filename.toLowerCase();
|
|
20
|
+
const dotIdx = lower.lastIndexOf('.');
|
|
21
|
+
if (dotIdx === -1)
|
|
22
|
+
return false;
|
|
23
|
+
const ext = lower.slice(dotIdx + 1);
|
|
24
|
+
return ['cpp', 'cc', 'cxx', 'c++', 'hpp', 'hh', 'hxx', 'h++', 'h', 'c'].includes(ext);
|
|
21
25
|
}
|
|
22
26
|
detectFlags(filename, content) {
|
|
23
27
|
return detectFlagsWithRegex(filename, content, this.language(), this.providers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/detection/detectors/cpp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAK3C,MAAM,OAAO,WAAW;IACL,SAAS,CAAuB;IAEjD,YAAY,SAAiC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,mBAAmB,EAAE,CAAA;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,GAAG,CAAA;IACtB,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnF,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/detection/detectors/cpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Ported from Go: internal/languages/golang/detector.go
|
|
4
4
|
*/
|
|
5
5
|
import type { FeatureFlag } from '../feature-flag.js';
|
|
6
|
-
import type { FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
7
|
-
export type DetectorEngine
|
|
6
|
+
import type { DetectorEngine, FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
7
|
+
export type { DetectorEngine };
|
|
8
8
|
export interface GoDetectorOptions {
|
|
9
9
|
providers?: FeatureFlagProvider[];
|
|
10
10
|
engine?: DetectorEngine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/go.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/go.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtG,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,IAAI,GAAE,iBAAsB;IAKxC,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOtF,YAAY,IAAI,mBAAmB,EAAE;CAGtC;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAkS1D"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* but reports the language as "javascript".
|
|
6
6
|
*/
|
|
7
7
|
import type { FeatureFlag } from '../feature-flag.js';
|
|
8
|
-
import type { FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
9
|
-
export type DetectorEngine
|
|
8
|
+
import type { DetectorEngine, FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
9
|
+
export type { DetectorEngine };
|
|
10
10
|
export interface JavaScriptDetectorOptions {
|
|
11
11
|
providers?: FeatureFlagProvider[];
|
|
12
12
|
engine?: DetectorEngine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/javascript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/javascript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtG,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,IAAI,GAAE,yBAA8B;IAKhD,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOtF,YAAY,IAAI,mBAAmB,EAAE;CAGtC"}
|
|
@@ -22,8 +22,12 @@ export class JavaScriptDetector {
|
|
|
22
22
|
return ['.js', '.jsx', '.mjs', '.cjs'];
|
|
23
23
|
}
|
|
24
24
|
supportsFile(filename) {
|
|
25
|
-
const
|
|
26
|
-
|
|
25
|
+
const lower = filename.toLowerCase();
|
|
26
|
+
const dotIdx = lower.lastIndexOf('.');
|
|
27
|
+
if (dotIdx === -1)
|
|
28
|
+
return false;
|
|
29
|
+
const ext = lower.slice(dotIdx + 1);
|
|
30
|
+
return ['js', 'jsx', 'mjs', 'cjs'].includes(ext);
|
|
27
31
|
}
|
|
28
32
|
detectFlags(filename, content) {
|
|
29
33
|
if (this.engine === 'tree-sitter') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/detection/detectors/javascript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAEpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAY5D,MAAM,OAAO,kBAAkB;IACZ,SAAS,CAAuB;IAChC,MAAM,CAAgB;IAEvC,YAAY,OAAkC,EAAE;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,0BAA0B,EAAE,CAAA;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAA;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,UAAU,CAAA;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/detection/detectors/javascript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAEpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAY5D,MAAM,OAAO,kBAAkB;IACZ,SAAS,CAAuB;IAChC,MAAM,CAAgB;IAEvC,YAAY,OAAkC,EAAE;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,0BAA0B,EAAE,CAAA;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAA;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,UAAU,CAAA;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAClD,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,OAAe;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACjF,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/php.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,qBAAa,WAAY,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAErC,SAAS,CAAC,EAAE,mBAAmB,EAAE;IAI7C,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/php.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,qBAAa,WAAY,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAErC,SAAS,CAAC,EAAE,mBAAmB,EAAE;IAI7C,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAI7D,YAAY,IAAI,mBAAmB,EAAE;CAGtC;AAED,wBAAgB,mBAAmB,IAAI,mBAAmB,EAAE,CAoL3D"}
|
|
@@ -16,8 +16,12 @@ export class PHPDetector {
|
|
|
16
16
|
return ['.php', '.phtml', '.php3', '.php4', '.php5', '.phps'];
|
|
17
17
|
}
|
|
18
18
|
supportsFile(filename) {
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const lower = filename.toLowerCase();
|
|
20
|
+
const dotIdx = lower.lastIndexOf('.');
|
|
21
|
+
if (dotIdx === -1)
|
|
22
|
+
return false;
|
|
23
|
+
const ext = lower.slice(dotIdx + 1);
|
|
24
|
+
return ['php', 'phtml', 'php3', 'php4', 'php5', 'phps'].includes(ext);
|
|
21
25
|
}
|
|
22
26
|
detectFlags(filename, content) {
|
|
23
27
|
return detectFlagsWithRegex(filename, content, this.language(), this.providers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/detection/detectors/php.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAK3C,MAAM,OAAO,WAAW;IACL,SAAS,CAAuB;IAEjD,YAAY,SAAiC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,mBAAmB,EAAE,CAAA;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,GAAG,CAAA;IACtB,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/detection/detectors/php.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Ported from Go: internal/languages/python/detector.go
|
|
4
4
|
*/
|
|
5
5
|
import type { FeatureFlag } from '../feature-flag.js';
|
|
6
|
-
import type { FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
7
|
-
export type DetectorEngine
|
|
6
|
+
import type { DetectorEngine, FeatureFlagProvider, Language, LanguageDetector } from '../interface.js';
|
|
7
|
+
export type { DetectorEngine };
|
|
8
8
|
export interface PythonDetectorOptions {
|
|
9
9
|
providers?: FeatureFlagProvider[];
|
|
10
10
|
engine?: DetectorEngine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/detection/detectors/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtG,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,qBAAa,cAAe,YAAW,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,IAAI,GAAE,qBAA0B;IAK5C,QAAQ,IAAI,QAAQ;IAIpB,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOtF,YAAY,IAAI,mBAAmB,EAAE;CAGtC;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,EAAE,CA8P9D"}
|
|
@@ -19,8 +19,12 @@ export class PythonDetector {
|
|
|
19
19
|
return ['.py', '.pyw', '.pyx', '.pyi'];
|
|
20
20
|
}
|
|
21
21
|
supportsFile(filename) {
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const lower = filename.toLowerCase();
|
|
23
|
+
const dotIdx = lower.lastIndexOf('.');
|
|
24
|
+
if (dotIdx === -1)
|
|
25
|
+
return false;
|
|
26
|
+
const ext = lower.slice(dotIdx + 1);
|
|
27
|
+
return ['py', 'pyw', 'pyx', 'pyi'].includes(ext);
|
|
24
28
|
}
|
|
25
29
|
detectFlags(filename, content) {
|
|
26
30
|
if (this.engine === 'tree-sitter') {
|