@kernlang/review 3.3.9 → 3.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.
Files changed (97) hide show
  1. package/dist/call-graph.d.ts +10 -0
  2. package/dist/call-graph.js +138 -9
  3. package/dist/call-graph.js.map +1 -1
  4. package/dist/concept-rules/auth-drift.js +2 -0
  5. package/dist/concept-rules/auth-drift.js.map +1 -1
  6. package/dist/concept-rules/auth-propagation-drift.js +2 -0
  7. package/dist/concept-rules/auth-propagation-drift.js.map +1 -1
  8. package/dist/concept-rules/body-shape-drift.d.ts +1 -1
  9. package/dist/concept-rules/body-shape-drift.js +5 -3
  10. package/dist/concept-rules/body-shape-drift.js.map +1 -1
  11. package/dist/concept-rules/contract-drift.js +3 -1
  12. package/dist/concept-rules/contract-drift.js.map +1 -1
  13. package/dist/concept-rules/contract-method-drift.js +2 -0
  14. package/dist/concept-rules/contract-method-drift.js.map +1 -1
  15. package/dist/concept-rules/index.js +2 -33
  16. package/dist/concept-rules/index.js.map +1 -1
  17. package/dist/concept-rules/request-validation-drift.js +3 -0
  18. package/dist/concept-rules/request-validation-drift.js.map +1 -1
  19. package/dist/concept-rules/root-cause.d.ts +4 -0
  20. package/dist/concept-rules/root-cause.js +31 -0
  21. package/dist/concept-rules/root-cause.js.map +1 -0
  22. package/dist/concept-rules/unbounded-collection-query.js +2 -0
  23. package/dist/concept-rules/unbounded-collection-query.js.map +1 -1
  24. package/dist/concept-rules/unhandled-api-error-shape.js +2 -0
  25. package/dist/concept-rules/unhandled-api-error-shape.js.map +1 -1
  26. package/dist/default-export.d.ts +41 -0
  27. package/dist/default-export.js +76 -0
  28. package/dist/default-export.js.map +1 -0
  29. package/dist/eval.d.ts +67 -0
  30. package/dist/eval.js +177 -0
  31. package/dist/eval.js.map +1 -0
  32. package/dist/file-context.js +32 -13
  33. package/dist/file-context.js.map +1 -1
  34. package/dist/file-role.d.ts +6 -0
  35. package/dist/file-role.js +27 -0
  36. package/dist/file-role.js.map +1 -1
  37. package/dist/framework-seeds.d.ts +46 -0
  38. package/dist/framework-seeds.js +245 -0
  39. package/dist/framework-seeds.js.map +1 -0
  40. package/dist/git-env.d.ts +1 -0
  41. package/dist/git-env.js +25 -0
  42. package/dist/git-env.js.map +1 -0
  43. package/dist/graph.js +246 -21
  44. package/dist/graph.js.map +1 -1
  45. package/dist/index.d.ts +10 -2
  46. package/dist/index.js +200 -56
  47. package/dist/index.js.map +1 -1
  48. package/dist/mappers/ts-concepts.js +87 -20
  49. package/dist/mappers/ts-concepts.js.map +1 -1
  50. package/dist/path-canonical.d.ts +34 -0
  51. package/dist/path-canonical.js +85 -0
  52. package/dist/path-canonical.js.map +1 -0
  53. package/dist/policy.d.ts +22 -0
  54. package/dist/policy.js +47 -0
  55. package/dist/policy.js.map +1 -0
  56. package/dist/project-context.d.ts +135 -0
  57. package/dist/project-context.js +563 -0
  58. package/dist/project-context.js.map +1 -0
  59. package/dist/public-api.d.ts +21 -0
  60. package/dist/public-api.js +17 -2
  61. package/dist/public-api.js.map +1 -1
  62. package/dist/reporter.js +22 -0
  63. package/dist/reporter.js.map +1 -1
  64. package/dist/rule-quality.d.ts +58 -0
  65. package/dist/rule-quality.js +357 -0
  66. package/dist/rule-quality.js.map +1 -0
  67. package/dist/rules/dead-code.d.ts +2 -2
  68. package/dist/rules/dead-code.js +88 -4
  69. package/dist/rules/dead-code.js.map +1 -1
  70. package/dist/rules/index.d.ts +22 -0
  71. package/dist/rules/index.js +32 -0
  72. package/dist/rules/index.js.map +1 -1
  73. package/dist/rules/kern-source.d.ts +4 -0
  74. package/dist/rules/kern-source.js +183 -0
  75. package/dist/rules/kern-source.js.map +1 -1
  76. package/dist/rules/react.js +52 -3
  77. package/dist/rules/react.js.map +1 -1
  78. package/dist/rules/suggest-kern-primitive.js +0 -1
  79. package/dist/rules/suggest-kern-primitive.js.map +1 -1
  80. package/dist/semantic-diff.js +2 -0
  81. package/dist/semantic-diff.js.map +1 -1
  82. package/dist/suppression/apply-suppression.js +2 -0
  83. package/dist/suppression/apply-suppression.js.map +1 -1
  84. package/dist/suppression/parse-directives.d.ts +13 -5
  85. package/dist/suppression/parse-directives.js +62 -8
  86. package/dist/suppression/parse-directives.js.map +1 -1
  87. package/dist/suppression/types.d.ts +9 -0
  88. package/dist/suppression/types.js +6 -1
  89. package/dist/suppression/types.js.map +1 -1
  90. package/dist/taint-crossfile.js +15 -8
  91. package/dist/taint-crossfile.js.map +1 -1
  92. package/dist/telemetry.d.ts +126 -0
  93. package/dist/telemetry.js +303 -0
  94. package/dist/telemetry.js.map +1 -0
  95. package/dist/types.d.ts +165 -1
  96. package/dist/types.js.map +1 -1
  97. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"file-context.js","sourceRoot":"","sources":["../src/file-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-context.js","sourceRoot":"","sources":["../src/file-context.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,9 @@ import { type SourceFile } from 'ts-morph';
8
8
  import type { FileRole } from './types.js';
9
9
  /** Classify a source file's role based on AST evidence and path heuristics. */
10
10
  export declare function classifyFileRole(sourceFile: SourceFile, filePath: string): FileRole;
11
+ /**
12
+ * Path-only role classifier for languages where we don't have a ts-morph SourceFile
13
+ * (Python, .kern). Recognizes test/codegen/example/rule-definition by path; everything
14
+ * else falls back to 'runtime'. Barrel detection is unavailable without an AST.
15
+ */
16
+ export declare function classifyFileRoleByPath(filePath: string): FileRole;
package/dist/file-role.js CHANGED
@@ -46,6 +46,33 @@ export function classifyFileRole(sourceFile, filePath) {
46
46
  // 6. Default
47
47
  return 'runtime';
48
48
  }
49
+ /**
50
+ * Path-only role classifier for languages where we don't have a ts-morph SourceFile
51
+ * (Python, .kern). Recognizes test/codegen/example/rule-definition by path; everything
52
+ * else falls back to 'runtime'. Barrel detection is unavailable without an AST.
53
+ */
54
+ export function classifyFileRoleByPath(filePath) {
55
+ if (/\.(test|spec)\.(tsx?|jsx?|py)$/.test(filePath) ||
56
+ /\/tests?\//.test(filePath) ||
57
+ /^test_/.test(filePath.split('/').pop() || '')) {
58
+ return 'test';
59
+ }
60
+ const lower = filePath.toLowerCase();
61
+ if (/\/(codegen|generated|__generated__|gen)\//i.test(lower) || /\/codegen-/.test(lower)) {
62
+ return 'codegen';
63
+ }
64
+ if (/\/rules?\//i.test(lower) && /\/review\//.test(lower)) {
65
+ return 'rule-definition';
66
+ }
67
+ const basename = lower.split('/').pop() || '';
68
+ if (/\/examples?\//i.test(lower) ||
69
+ /\/fixtures?\//i.test(lower) ||
70
+ /\/preview-/.test(basename) ||
71
+ /(?:^|[-_.])examples?\.(tsx?|jsx?|py)$/.test(basename)) {
72
+ return 'example';
73
+ }
74
+ return 'runtime';
75
+ }
49
76
  /** A barrel file has only import/export declarations and no executable statements. */
50
77
  function isBarrelFile(sourceFile) {
51
78
  const statements = sourceFile.getStatements();
@@ -1 +1 @@
1
- {"version":3,"file":"file-role.js","sourceRoot":"","sources":["../src/file-role.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-role.js","sourceRoot":"","sources":["../src/file-role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * KNOWN_FRAMEWORK_SEEDS — per-pattern, per-symbol public-API conventions.
3
+ *
4
+ * MAINTENANCE CONTRACT
5
+ *
6
+ * Every entry must be **symbol-scoped**. A whole-file "this file is public"
7
+ * seed is forbidden by Phase 4 design — a stale helper sitting next to a
8
+ * Next.js page would silently inherit public-API status, which was
9
+ * red-team CRITICAL #2 against Plan v3. Each pattern lists the EXACT
10
+ * export names the convention treats as runtime entry points; everything
11
+ * else stays subject to dead-export checks.
12
+ *
13
+ * Order matters. The first matching seed wins, so put more-specific
14
+ * patterns before more-general ones (e.g. `pages/api/**` before
15
+ * `pages/** /*.*`). The matcher uses POSIX-style globs from
16
+ * `public-api.ts:globToRegex`; patterns are matched against the input
17
+ * file path normalized to forward slashes.
18
+ *
19
+ * Step 7a covers the "stable" Next.js conventions documented in the
20
+ * official routing/file-convention docs and stable across versions
21
+ * 13–15. Edge cases — parallel-route slots, metadata image files,
22
+ * instrumentation, mdx-components, the v16 middleware → proxy rename —
23
+ * land in step 7b. Splitting keeps each commit a clear change set if
24
+ * one half regresses.
25
+ */
26
+ export interface FrameworkSeed {
27
+ /** Pattern this convention applies to (POSIX-style glob, no braces). */
28
+ pattern: string;
29
+ /** Public symbol names — runtime entry points ONLY. */
30
+ symbols: readonly string[];
31
+ /** Short description for diagnostics / future maintainers. */
32
+ why: string;
33
+ }
34
+ /**
35
+ * STABLE Next.js conventions (step 7a). Edge-case shapes (parallel routes,
36
+ * metadata files like icon/opengraph-image, instrumentation, proxy) live
37
+ * in step 7b — each commit stays a clean change set.
38
+ */
39
+ export declare const KNOWN_FRAMEWORK_SEEDS: readonly FrameworkSeed[];
40
+ /**
41
+ * Match a file path against KNOWN_FRAMEWORK_SEEDS. Returns the FIRST
42
+ * matching seed (more-specific patterns must be ordered before more-
43
+ * general ones — see the const above). Returns undefined when nothing
44
+ * matches; the caller falls back to package.json-driven seeding.
45
+ */
46
+ export declare function getFrameworkSeed(filePath: string): FrameworkSeed | undefined;
@@ -0,0 +1,245 @@
1
+ /**
2
+ * KNOWN_FRAMEWORK_SEEDS — per-pattern, per-symbol public-API conventions.
3
+ *
4
+ * MAINTENANCE CONTRACT
5
+ *
6
+ * Every entry must be **symbol-scoped**. A whole-file "this file is public"
7
+ * seed is forbidden by Phase 4 design — a stale helper sitting next to a
8
+ * Next.js page would silently inherit public-API status, which was
9
+ * red-team CRITICAL #2 against Plan v3. Each pattern lists the EXACT
10
+ * export names the convention treats as runtime entry points; everything
11
+ * else stays subject to dead-export checks.
12
+ *
13
+ * Order matters. The first matching seed wins, so put more-specific
14
+ * patterns before more-general ones (e.g. `pages/api/**` before
15
+ * `pages/** /*.*`). The matcher uses POSIX-style globs from
16
+ * `public-api.ts:globToRegex`; patterns are matched against the input
17
+ * file path normalized to forward slashes.
18
+ *
19
+ * Step 7a covers the "stable" Next.js conventions documented in the
20
+ * official routing/file-convention docs and stable across versions
21
+ * 13–15. Edge cases — parallel-route slots, metadata image files,
22
+ * instrumentation, mdx-components, the v16 middleware → proxy rename —
23
+ * land in step 7b. Splitting keeps each commit a clear change set if
24
+ * one half regresses.
25
+ */
26
+ import { globToRegex, toPosix } from './public-api.js';
27
+ /**
28
+ * Route-segment config exports valid on Next.js page/layout/route files.
29
+ * Listing them once lets the page/layout/route patterns share the same set.
30
+ * Source: Next.js routing/route-segment-config.
31
+ */
32
+ const ROUTE_SEGMENT_CONFIG = [
33
+ 'dynamic',
34
+ 'dynamicParams',
35
+ 'revalidate',
36
+ 'fetchCache',
37
+ 'runtime',
38
+ 'preferredRegion',
39
+ 'maxDuration',
40
+ ];
41
+ /**
42
+ * Metadata exports valid on page/layout files. `viewport` and
43
+ * `generateViewport` are post-13.6 additions; `generateStaticParams` is
44
+ * how dynamic routes pre-render at build time.
45
+ */
46
+ const PAGE_METADATA = ['metadata', 'generateMetadata', 'viewport', 'generateViewport', 'generateStaticParams'];
47
+ const PAGE_LIKE_SYMBOLS = ['default', ...PAGE_METADATA, ...ROUTE_SEGMENT_CONFIG];
48
+ const ROUTE_HANDLER_VERBS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'];
49
+ const APP_EXTS = ['ts', 'tsx', 'js', 'jsx'];
50
+ const SCRIPT_EXTS = ['ts', 'js'];
51
+ const PAGES_EXTS = ['tsx', 'ts', 'jsx', 'js'];
52
+ /**
53
+ * Symbol surface for app/ metadata image files (icon, apple-icon,
54
+ * opengraph-image, twitter-image). The dynamic forms (`.ts(x)`/`.js(x)`)
55
+ * export `default` (the image-generation function) plus optional
56
+ * `generateImageMetadata`, `alt`, `size`, `contentType`. Static forms
57
+ * (`.png`, `.svg`, etc.) have no JS exports so we skip those extensions.
58
+ * Source: Next.js metadata-files docs.
59
+ */
60
+ const IMAGE_METADATA_SYMBOLS = ['default', 'generateImageMetadata', 'alt', 'size', 'contentType'];
61
+ /**
62
+ * STABLE Next.js conventions (step 7a). Edge-case shapes (parallel routes,
63
+ * metadata files like icon/opengraph-image, instrumentation, proxy) live
64
+ * in step 7b — each commit stays a clean change set.
65
+ */
66
+ export const KNOWN_FRAMEWORK_SEEDS = [
67
+ // App Router: route handlers — HTTP verbs + segment config.
68
+ ...SCRIPT_EXTS.map((ext) => ({
69
+ pattern: `**/app/**/route.${ext}`,
70
+ symbols: [...ROUTE_HANDLER_VERBS, ...ROUTE_SEGMENT_CONFIG],
71
+ why: 'Next.js App Router route handler',
72
+ })),
73
+ // App Router: special files (template/loading/error/not-found/global-error)
74
+ // — `default` only.
75
+ ...APP_EXTS.flatMap((ext) => ['template', 'loading', 'error', 'not-found', 'global-error'].map((kind) => ({
76
+ pattern: `**/app/**/${kind}.${ext}`,
77
+ symbols: ['default'],
78
+ why: `Next.js App Router ${kind}`,
79
+ }))),
80
+ // App Router: page + layout — symmetric public surface (default render
81
+ // + metadata + segment config).
82
+ ...APP_EXTS.flatMap((ext) => [
83
+ {
84
+ pattern: `**/app/**/page.${ext}`,
85
+ symbols: PAGE_LIKE_SYMBOLS,
86
+ why: 'Next.js App Router page',
87
+ },
88
+ {
89
+ pattern: `**/app/**/layout.${ext}`,
90
+ symbols: PAGE_LIKE_SYMBOLS,
91
+ why: 'Next.js App Router layout',
92
+ },
93
+ ]),
94
+ // Pages Router: special files first (more specific patterns).
95
+ ...PAGES_EXTS.flatMap((ext) => [
96
+ {
97
+ pattern: `**/pages/_app.${ext}`,
98
+ symbols: ['default'],
99
+ why: 'Next.js Pages Router _app',
100
+ },
101
+ {
102
+ pattern: `**/pages/_document.${ext}`,
103
+ symbols: ['default'],
104
+ why: 'Next.js Pages Router _document',
105
+ },
106
+ ]),
107
+ // Pages Router: API routes — `default` (handler) + `config` (size limits,
108
+ // bodyParser, runtime). Must come BEFORE the general pages/**/*.* pattern
109
+ // so api files get the api-specific seed.
110
+ ...PAGES_EXTS.map((ext) => ({
111
+ pattern: `**/pages/api/**/*.${ext}`,
112
+ symbols: ['default', 'config'],
113
+ why: 'Next.js Pages Router API route',
114
+ })),
115
+ // Pages Router: data-fetching pages.
116
+ ...PAGES_EXTS.map((ext) => ({
117
+ pattern: `**/pages/**/*.${ext}`,
118
+ symbols: ['default', 'getServerSideProps', 'getStaticProps', 'getStaticPaths', 'config'],
119
+ why: 'Next.js Pages Router page',
120
+ })),
121
+ // Middleware: root or src/, with both ts and js.
122
+ ...SCRIPT_EXTS.flatMap((ext) => [
123
+ {
124
+ pattern: `**/middleware.${ext}`,
125
+ symbols: ['default', 'middleware', 'config'],
126
+ why: 'Next.js middleware',
127
+ },
128
+ ]),
129
+ // ── Step 7b — edge-case Next.js conventions ────────────────────────────
130
+ // Parallel-route slot fallback. `app/@slot/default.tsx` (and any nested
131
+ // `default.{ext}` under `app/`) is rendered when an unmatched parallel
132
+ // segment has no other match. Always exports `default` only.
133
+ ...APP_EXTS.map((ext) => ({
134
+ pattern: `**/app/**/default.${ext}`,
135
+ symbols: ['default'],
136
+ why: 'Next.js App Router parallel-route default',
137
+ })),
138
+ // Auth-flow special files (Next 15+): forbidden() and unauthorized()
139
+ // navigations resolve to dedicated UI files. Symmetric with not-found.
140
+ ...APP_EXTS.flatMap((ext) => ['forbidden', 'unauthorized', 'global-not-found'].map((kind) => ({
141
+ pattern: `**/app/**/${kind}.${ext}`,
142
+ symbols: ['default'],
143
+ why: `Next.js App Router ${kind}`,
144
+ }))),
145
+ // Metadata route handlers — sitemap, robots, manifest. Always at the
146
+ // app/ root or under a route group; export `default` (the generator).
147
+ // sitemap.{ext} also supports `generateSitemaps` for paginated sitemaps.
148
+ ...SCRIPT_EXTS.map((ext) => ({
149
+ pattern: `**/app/**/sitemap.${ext}`,
150
+ symbols: ['default', 'generateSitemaps'],
151
+ why: 'Next.js App Router sitemap',
152
+ })),
153
+ ...SCRIPT_EXTS.flatMap((ext) => ['robots', 'manifest'].map((kind) => ({
154
+ pattern: `**/app/**/${kind}.${ext}`,
155
+ symbols: ['default'],
156
+ why: `Next.js App Router ${kind}`,
157
+ }))),
158
+ // Image metadata files — dynamic generation forms only. Static images
159
+ // (`.png`, `.svg`, …) have no JS exports so we don't pattern those.
160
+ ...APP_EXTS.flatMap((ext) => ['icon', 'apple-icon', 'opengraph-image', 'twitter-image'].map((kind) => ({
161
+ pattern: `**/app/**/${kind}.${ext}`,
162
+ symbols: IMAGE_METADATA_SYMBOLS,
163
+ why: `Next.js App Router ${kind}`,
164
+ }))),
165
+ // instrumentation.{ts,js} — root-level (or src/-level) hooks. `register`
166
+ // runs at server start; `onRequestError` reports per-request errors.
167
+ ...SCRIPT_EXTS.map((ext) => ({
168
+ pattern: `**/instrumentation.${ext}`,
169
+ symbols: ['register', 'onRequestError'],
170
+ why: 'Next.js instrumentation',
171
+ })),
172
+ // instrumentation-client.{ts,js} — Next 15+ client-side companion.
173
+ // `onRouterTransitionStart` fires on route changes.
174
+ ...SCRIPT_EXTS.map((ext) => ({
175
+ pattern: `**/instrumentation-client.${ext}`,
176
+ symbols: ['onRouterTransitionStart'],
177
+ why: 'Next.js instrumentation-client',
178
+ })),
179
+ // mdx-components.{ts,tsx,js,jsx} — required at the project root for MDX
180
+ // pages to resolve component overrides via useMDXComponents.
181
+ ...APP_EXTS.map((ext) => ({
182
+ pattern: `**/mdx-components.${ext}`,
183
+ symbols: ['useMDXComponents'],
184
+ why: 'Next.js mdx-components',
185
+ })),
186
+ // Forward-compat: Next 16 renames `middleware` to `proxy`. Adding the
187
+ // pattern now means upgrading projects keep their seeds working without
188
+ // a kern-lang release. If Next walks back the rename, removing this
189
+ // pattern is a no-op for projects still on `middleware.{ts,js}`.
190
+ ...SCRIPT_EXTS.map((ext) => ({
191
+ pattern: `**/proxy.${ext}`,
192
+ symbols: ['default', 'proxy', 'config'],
193
+ why: 'Next.js proxy (v16 middleware rename)',
194
+ })),
195
+ // ── Nuxt 3+ conventions ────────────────────────────────────────────────
196
+ //
197
+ // SCOPE NOTE: only Nuxt-specific path shapes are seeded here. Generic
198
+ // top-level `middleware/`, `plugins/`, `modules/`, `composables/` dirs
199
+ // are NOT seeded because non-Nuxt projects with similarly-named dirs
200
+ // would get over-marked: a stale plugin in `plugins/legacy.ts` of an
201
+ // arbitrary project would inherit public-API status. The `**/server/**`
202
+ // patterns ARE Nuxt-specific (Nitro server routes), so seeding them is
203
+ // safe. `nuxt.config.{ts,js}` is uniquely identifying.
204
+ //
205
+ // SFC files (`.vue`) are not reviewed — symbols inside `<script setup>`
206
+ // never reach the dead-export rule — so Vue's `pages/**/*.vue`,
207
+ // `layouts/**/*.vue`, `components/**/*.vue` are intentionally absent.
208
+ // Nuxt server routes — defineEventHandler default-export the handler
209
+ // factory. Symbol-scoped to `default`; siblings stay subject to
210
+ // dead-export checks.
211
+ ...SCRIPT_EXTS.flatMap((ext) => ['api', 'middleware', 'plugins', 'routes'].map((kind) => ({
212
+ pattern: `**/server/${kind}/**/*.${ext}`,
213
+ symbols: ['default'],
214
+ why: `Nuxt server/${kind} handler`,
215
+ }))),
216
+ // nuxt.config — defineNuxtConfig default export. Uniquely Nuxt-named.
217
+ ...SCRIPT_EXTS.map((ext) => ({
218
+ pattern: `**/nuxt.config.${ext}`,
219
+ symbols: ['default'],
220
+ why: 'Nuxt config',
221
+ })),
222
+ ];
223
+ /**
224
+ * Compiled regex per seed. globToRegex is non-trivial; cache once per
225
+ * process — KNOWN_FRAMEWORK_SEEDS is `as const` so the cache is sound.
226
+ */
227
+ const compiled = KNOWN_FRAMEWORK_SEEDS.map((seed) => ({
228
+ regex: globToRegex(seed.pattern),
229
+ seed,
230
+ }));
231
+ /**
232
+ * Match a file path against KNOWN_FRAMEWORK_SEEDS. Returns the FIRST
233
+ * matching seed (more-specific patterns must be ordered before more-
234
+ * general ones — see the const above). Returns undefined when nothing
235
+ * matches; the caller falls back to package.json-driven seeding.
236
+ */
237
+ export function getFrameworkSeed(filePath) {
238
+ const posix = toPosix(filePath);
239
+ for (const { regex, seed } of compiled) {
240
+ if (regex.test(posix))
241
+ return seed;
242
+ }
243
+ return undefined;
244
+ }
245
+ //# sourceMappingURL=framework-seeds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-seeds.js","sourceRoot":"","sources":["../src/framework-seeds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function withoutLocalGitEnv(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
@@ -0,0 +1,25 @@
1
+ const LOCAL_GIT_ENV_VARS = [
2
+ 'GIT_ALTERNATE_OBJECT_DIRECTORIES',
3
+ 'GIT_COMMON_DIR',
4
+ 'GIT_CONFIG',
5
+ 'GIT_CONFIG_COUNT',
6
+ 'GIT_CONFIG_PARAMETERS',
7
+ 'GIT_DIR',
8
+ 'GIT_GRAFT_FILE',
9
+ 'GIT_IMPLICIT_WORK_TREE',
10
+ 'GIT_INDEX_FILE',
11
+ 'GIT_NO_REPLACE_OBJECTS',
12
+ 'GIT_OBJECT_DIRECTORY',
13
+ 'GIT_PREFIX',
14
+ 'GIT_REPLACE_REF_BASE',
15
+ 'GIT_SHALLOW_FILE',
16
+ 'GIT_WORK_TREE',
17
+ ];
18
+ export function withoutLocalGitEnv(env = process.env) {
19
+ const clean = { ...env };
20
+ for (const key of LOCAL_GIT_ENV_VARS) {
21
+ delete clean[key];
22
+ }
23
+ return clean;
24
+ }
25
+ //# sourceMappingURL=git-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-env.js","sourceRoot":"","sources":["../src/git-env.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG;IACzB,kCAAkC;IAClC,gBAAgB;IAChB,YAAY;IACZ,kBAAkB;IAClB,uBAAuB;IACvB,SAAS;IACT,gBAAgB;IAChB,wBAAwB;IACxB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,YAAY;IACZ,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;CACP,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACrE,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}