@shibanet0/datamitsu-config 0.0.2-alpha-1 → 0.0.3-alpha-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/.oxlintrc.json +19 -0
- package/README.md +0 -10
- package/bin/{datamitsu.mjs → datamitsu.js} +3 -10
- package/bin/{tsc.mjs → tsc.js} +1 -1
- package/bin/{tsx.mjs → tsx.js} +1 -1
- package/dist/datamitsu-config/agents.md.d.ts +1 -0
- package/dist/datamitsu-config/app.eslint.d.ts +1 -0
- package/dist/datamitsu-config/constants.d.ts +4 -0
- package/dist/datamitsu-config/ignore.d.ts +1 -1
- package/dist/datamitsu-config/inline-config/eslint.d.ts +1 -0
- package/dist/datamitsu.d.ts +307 -36
- package/dist/s0/index.js +1 -1
- package/package.json +12 -79
- package/bin/mitsu.mjs +0 -52
- package/datamitsu.js +0 -3553
- package/dist/arrayFunc-E2CQDPH7.js +0 -24
- package/dist/arrow-return-style-QXEK7JRB.js +0 -8
- package/dist/boundaries-7E4X4KF5.js +0 -19
- package/dist/chunk-OYKSRJ7A.js +0 -54
- package/dist/clsx-M6OKU3PA.js +0 -8
- package/dist/command-3BA63SHO.js +0 -8
- package/dist/compat-6O7XHMYR.js +0 -8
- package/dist/cspell-NJAMCYWA.js +0 -8
- package/dist/deMorgan-X5NIQJEB.js +0 -18
- package/dist/depend-4TLGRJ4A.js +0 -8
- package/dist/escompat-2HZB2VKK.js +0 -8
- package/dist/eslint/index.js +0 -216
- package/dist/fsecond-U7QFID4J.js +0 -16
- package/dist/html-Q7HLWKMH.js +0 -17
- package/dist/i18next-XPRQSLOK.js +0 -8
- package/dist/import-MT776CTN.js +0 -31
- package/dist/javascript-KSG5RSYY.js +0 -36
- package/dist/jsdoc-T3RUTVU2.js +0 -8
- package/dist/json-ADTCTMIQ.js +0 -28
- package/dist/json-schema-validator-KJQPYPV7.js +0 -19
- package/dist/jsonc-5WI2LEKI.js +0 -11
- package/dist/jsx-a11y-36UJHF7N.js +0 -26
- package/dist/n-CF27VQ2A.js +0 -19
- package/dist/no-unsanitized-2CVGQCKY.js +0 -8
- package/dist/no-use-extend-native-W3ODJIMY.js +0 -19
- package/dist/oxlint-Z37R6LWE.js +0 -64
- package/dist/perfectionist-VM3ULM44.js +0 -104
- package/dist/playwright-MAN5QZRB.js +0 -19
- package/dist/pnpm-KEJEST6B.js +0 -15
- package/dist/prettier-3BKAYVNG.js +0 -18
- package/dist/promise-IOLHNOYU.js +0 -25
- package/dist/react-ZSFMBR63.js +0 -66
- package/dist/react-hooks-E3N7RURQ.js +0 -18
- package/dist/react-perf-3ZUXZLBE.js +0 -18
- package/dist/react-prefer-function-component-NSMHVGIJ.js +0 -19
- package/dist/react-refresh-RTFXBPGX.js +0 -18
- package/dist/react-you-might-not-need-an-effect-7LQCVBLO.js +0 -8
- package/dist/regexp-D6CKMCXH.js +0 -8
- package/dist/security-4AI7Q2BJ.js +0 -24
- package/dist/sonarjs-TX6OBUY7.js +0 -42
- package/dist/storybook-JDINFFX5.js +0 -19
- package/dist/stylistic-ID5P6T22.js +0 -18
- package/dist/toml-LIBZFTGW.js +0 -19
- package/dist/turbo-3YMDV64X.js +0 -19
- package/dist/typescript-KIXWXTZM.js +0 -42
- package/dist/unicorn-DIQEKCM2.js +0 -62
- package/dist/unused-imports-KTOMG7GT.js +0 -29
- package/dist/vanilla-extract-3GUV75D2.js +0 -21
- package/dist/vitest-OL2AMOGF.js +0 -20
- package/dist/yml-EIKYT3P5.js +0 -25
- /package/bin/{s0.mjs → s0.js} +0 -0
- /package/bin/{utils.mjs → utils.js} +0 -0
- /package/dist/datamitsu-config/{main.d.ts → datamitsu.config.d.ts} +0 -0
package/.oxlintrc.json
CHANGED
|
@@ -9,21 +9,40 @@
|
|
|
9
9
|
},
|
|
10
10
|
"rules": {
|
|
11
11
|
"sort-keys": "off",
|
|
12
|
+
"no-duplicate-imports": "off",
|
|
12
13
|
"unicorn/prefer-query-selector": "off",
|
|
14
|
+
"no-lonely-if": "off",
|
|
13
15
|
"unicorn/prefer-string-raw": "off",
|
|
14
16
|
"array-type": "off",
|
|
17
|
+
"no-negated-condition": "off",
|
|
15
18
|
"arrow-body-style": "off",
|
|
19
|
+
"unicorn/prefer-global-this": "off",
|
|
20
|
+
"unicorn/consistent-function-scoping": "off",
|
|
21
|
+
"array-callback-return": "off",
|
|
22
|
+
"new-cap": "off",
|
|
23
|
+
"prefer-exponentiation-operator": "off",
|
|
24
|
+
"typescript-eslint/ban-types": "off",
|
|
25
|
+
"unicorn/prefer-top-level-await": "off",
|
|
26
|
+
"max-params": "off",
|
|
27
|
+
"no-promise-executor-return": "off",
|
|
28
|
+
"unicorn/no-useless-collection-argument": "off",
|
|
29
|
+
"unicorn/no-lonely-if": "off",
|
|
30
|
+
"no-map-spread": "off",
|
|
16
31
|
"capitalized-comments": "off",
|
|
32
|
+
"unicorn/prefer-array-some": "off",
|
|
17
33
|
"eqeqeq": "off",
|
|
34
|
+
"func-names": "off",
|
|
18
35
|
"func-style": "off",
|
|
19
36
|
"id-length": "off",
|
|
20
37
|
"init-declarations": "off",
|
|
21
38
|
"max-lines": "off",
|
|
22
39
|
"max-lines-per-function": "off",
|
|
40
|
+
"max-statements": "off",
|
|
23
41
|
"no-await-in-loop": "off",
|
|
24
42
|
"no-inline-comments": "off",
|
|
25
43
|
"no-magic-numbers": "off",
|
|
26
44
|
"no-ternary": "off",
|
|
45
|
+
"no-unused-vars": "off",
|
|
27
46
|
"no-warning-comments": "off",
|
|
28
47
|
"prefer-destructuring": "off",
|
|
29
48
|
"prefer-template": "off",
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
|
|
6
|
-
import { getBinaryFilepath } from "./utils.
|
|
6
|
+
import { getBinaryFilepath } from "./utils.js";
|
|
7
7
|
|
|
8
8
|
const arguments_ = process.argv.slice(2);
|
|
9
9
|
|
|
@@ -15,23 +15,16 @@ const child = spawn(
|
|
|
15
15
|
"node",
|
|
16
16
|
[
|
|
17
17
|
getBinaryFilepath("@datamitsu/datamitsu/package.json", "../bin/index.js"),
|
|
18
|
-
"--config",
|
|
19
|
-
join(import.meta.dirname, "../datamitsu.js"),
|
|
18
|
+
"--before-config",
|
|
19
|
+
join(import.meta.dirname, "../datamitsu.config.js"),
|
|
20
20
|
...arguments_,
|
|
21
21
|
],
|
|
22
22
|
{
|
|
23
23
|
env: {
|
|
24
24
|
...process.env,
|
|
25
25
|
DATAMITSU_APP_COMMITLINT_BINARY_FILEPATH: getBinaryFilepath("@commitlint/cli", "../cli.js"),
|
|
26
|
-
DATAMITSU_APP_ESLINT_BINARY_FILEPATH: getBinaryFilepath("eslint", "../../bin/eslint.js"),
|
|
27
|
-
DATAMITSU_APP_KNIP_BINARY_FILEPATH: getBinaryFilepath("knip", "../../bin/knip.js"),
|
|
28
26
|
DATAMITSU_APP_OXLINT_BINARY_FILEPATH: getBinaryFilepath("oxlint", "../../bin/oxlint"),
|
|
29
27
|
DATAMITSU_APP_PRETTIER_BINARY_FILEPATH: getBinaryFilepath("prettier", "../bin/prettier.cjs"),
|
|
30
|
-
DATAMITSU_APP_SORT_PACKAGE_JSON_BINARY_FILEPATH: getBinaryFilepath(
|
|
31
|
-
"sort-package-json",
|
|
32
|
-
"../cli.js",
|
|
33
|
-
),
|
|
34
|
-
DATAMITSU_APP_SYNCPACK_BINARY_FILEPATH: getBinaryFilepath("syncpack/index.cjs", ""),
|
|
35
28
|
DATAMITSU_APP_TSC_BINARY_FILEPATH: getBinaryFilepath("typescript/package.json", "../bin/tsc"),
|
|
36
29
|
DATAMITSU_PACKAGE_NAME: process.env.DATAMITSU_PACKAGE_NAME || "@shibanet0/datamitsu-config",
|
|
37
30
|
},
|
package/bin/{tsc.mjs → tsc.js}
RENAMED
package/bin/{tsx.mjs → tsx.js}
RENAMED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const AGENTS_MD: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const eslintApp: BinManager.App;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const ignoreGroups: tools.Ignore.IgnoreMap<"Build outputs" | "Cache & temporary files" | "Dependencies" | "Environment" | "Golang specific" | "IDE & OS" | "Logs" | "Other" | "Pulumi" | "Security & Secrets" | "Testing">;
|
|
1
|
+
export declare const ignoreGroups: tools.Ignore.IgnoreMap<"Build outputs" | "Cache & temporary files" | "Claude Code project files" | "Dependencies" | "Environment" | "Golang specific" | "IDE & OS" | "Logs" | "Other" | "Pulumi" | "ralphex progress logs" | "Security & Secrets" | "Testing">;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const data = "tar.br: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";
|
package/dist/datamitsu.d.ts
CHANGED
|
@@ -1,7 +1,77 @@
|
|
|
1
1
|
// prettier-ignore
|
|
2
2
|
declare global {
|
|
3
|
+
/**
|
|
4
|
+
* Color functions for terminal output. All functions accept any number of arguments,
|
|
5
|
+
* join them with spaces, and return a string with ANSI color codes applied.
|
|
6
|
+
* Respects NO_COLOR, FORCE_COLOR, and CLICOLOR environment variables.
|
|
7
|
+
* Colors are composable: `colors.bold(colors.red("error"))`.
|
|
8
|
+
*/
|
|
9
|
+
const colors: {
|
|
10
|
+
// Background colors
|
|
11
|
+
bgBlack(...args: unknown[]): string;
|
|
12
|
+
bgBlue(...args: unknown[]): string;
|
|
13
|
+
bgCyan(...args: unknown[]): string;
|
|
14
|
+
bgGreen(...args: unknown[]): string;
|
|
15
|
+
// Bright background colors
|
|
16
|
+
bgHiBlack(...args: unknown[]): string;
|
|
17
|
+
bgHiBlue(...args: unknown[]): string;
|
|
18
|
+
bgHiCyan(...args: unknown[]): string;
|
|
19
|
+
bgHiGreen(...args: unknown[]): string;
|
|
20
|
+
|
|
21
|
+
bgHiMagenta(...args: unknown[]): string;
|
|
22
|
+
bgHiRed(...args: unknown[]): string;
|
|
23
|
+
bgHiWhite(...args: unknown[]): string;
|
|
24
|
+
bgHiYellow(...args: unknown[]): string;
|
|
25
|
+
bgMagenta(...args: unknown[]): string;
|
|
26
|
+
bgRed(...args: unknown[]): string;
|
|
27
|
+
bgWhite(...args: unknown[]): string;
|
|
28
|
+
bgYellow(...args: unknown[]): string;
|
|
29
|
+
|
|
30
|
+
// Foreground colors
|
|
31
|
+
black(...args: unknown[]): string;
|
|
32
|
+
blink(...args: unknown[]): string;
|
|
33
|
+
blinkRapid(...args: unknown[]): string;
|
|
34
|
+
blue(...args: unknown[]): string;
|
|
35
|
+
// Text attributes
|
|
36
|
+
bold(...args: unknown[]): string;
|
|
37
|
+
concealed(...args: unknown[]): string;
|
|
38
|
+
cyan(...args: unknown[]): string;
|
|
39
|
+
faint(...args: unknown[]): string;
|
|
40
|
+
green(...args: unknown[]): string;
|
|
41
|
+
|
|
42
|
+
// Bright foreground colors
|
|
43
|
+
hiBlack(...args: unknown[]): string;
|
|
44
|
+
hiBlue(...args: unknown[]): string;
|
|
45
|
+
hiCyan(...args: unknown[]): string;
|
|
46
|
+
hiGreen(...args: unknown[]): string;
|
|
47
|
+
hiMagenta(...args: unknown[]): string;
|
|
48
|
+
hiRed(...args: unknown[]): string;
|
|
49
|
+
hiWhite(...args: unknown[]): string;
|
|
50
|
+
hiYellow(...args: unknown[]): string;
|
|
51
|
+
|
|
52
|
+
italic(...args: unknown[]): string;
|
|
53
|
+
magenta(...args: unknown[]): string;
|
|
54
|
+
red(...args: unknown[]): string;
|
|
55
|
+
reverse(...args: unknown[]): string;
|
|
56
|
+
strikethrough(...args: unknown[]): string;
|
|
57
|
+
underline(...args: unknown[]): string;
|
|
58
|
+
white(...args: unknown[]): string;
|
|
59
|
+
yellow(...args: unknown[]): string;
|
|
60
|
+
};
|
|
61
|
+
|
|
3
62
|
function getConfig(config: config.Config): config.Config;
|
|
4
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Optional export. Declares remote parent configs to load before this config.
|
|
66
|
+
* Remote configs are resolved depth-first and their results are chained as input.
|
|
67
|
+
* Hash is REQUIRED for every entry — missing or empty hash causes an immediate error.
|
|
68
|
+
* @example
|
|
69
|
+
* function getRemoteConfigs() {
|
|
70
|
+
* return [{ url: "https://example.com/base-config.ts", hash: "sha256:abcdef..." }];
|
|
71
|
+
* }
|
|
72
|
+
*/
|
|
73
|
+
function getRemoteConfigs(): Array<{ hash: string; url: string }>;
|
|
74
|
+
|
|
5
75
|
namespace SysList {
|
|
6
76
|
type ArchType = "aarch64" | "amd64" | "arm64";
|
|
7
77
|
|
|
@@ -40,13 +110,13 @@ declare global {
|
|
|
40
110
|
/**
|
|
41
111
|
* Get relative path from base to target
|
|
42
112
|
* @param targetPath - Target path
|
|
43
|
-
* @param basePath - Base path (defaults to
|
|
113
|
+
* @param basePath - Base path (defaults to git repository root, or cwd if not in a git repo)
|
|
44
114
|
* @returns Relative path from base to target
|
|
45
115
|
* @throws Error if relative path cannot be computed
|
|
46
116
|
* @example
|
|
47
|
-
* // Relative to
|
|
117
|
+
* // Relative to rootPath (git root)
|
|
48
118
|
* const relPath = tools.Path.rel("/home/user/project/file.txt");
|
|
49
|
-
* // If
|
|
119
|
+
* // If rootPath is "/home/user/project", returns: "file.txt"
|
|
50
120
|
*
|
|
51
121
|
* @example
|
|
52
122
|
* // Relative to custom base
|
|
@@ -118,6 +188,21 @@ declare global {
|
|
|
118
188
|
*/
|
|
119
189
|
function stringify<T extends string>(groups: IgnoreMap<T>, groupOrder?: T[]): string;
|
|
120
190
|
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Config link utilities for referencing managed config files in .datamitsu/
|
|
194
|
+
*/
|
|
195
|
+
namespace Config {
|
|
196
|
+
/**
|
|
197
|
+
* Get relative path from a directory to a managed config link in .datamitsu/
|
|
198
|
+
* @param appName - The app that owns the link
|
|
199
|
+
* @param linkName - The link name in .datamitsu/
|
|
200
|
+
* @param fromPath - The directory to compute the relative path from
|
|
201
|
+
* @returns Relative path from fromPath to .datamitsu/linkName
|
|
202
|
+
* @throws TypeError if linkName is not found or doesn't belong to appName
|
|
203
|
+
*/
|
|
204
|
+
function linkPath(appName: string, linkName: string, fromPath: string): string;
|
|
205
|
+
}
|
|
121
206
|
}
|
|
122
207
|
|
|
123
208
|
namespace config {
|
|
@@ -131,6 +216,14 @@ declare global {
|
|
|
131
216
|
*/
|
|
132
217
|
apps?: BinManager.MapOfApps;
|
|
133
218
|
|
|
219
|
+
/**
|
|
220
|
+
* Ignore rules in .datamitsuignore syntax.
|
|
221
|
+
* Applied alongside file-based .datamitsuignore rules.
|
|
222
|
+
* Rules from multiple configs are concatenated (append).
|
|
223
|
+
* @example ["**\/*.generated.ts: eslint, prettier", "vendor/**: *"]
|
|
224
|
+
*/
|
|
225
|
+
ignoreRules?: string[];
|
|
226
|
+
|
|
134
227
|
/**
|
|
135
228
|
* Config file initialization
|
|
136
229
|
*/
|
|
@@ -146,6 +239,11 @@ declare global {
|
|
|
146
239
|
*/
|
|
147
240
|
projectTypes?: MapOfProjectTypes;
|
|
148
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Runtime definitions for managed package managers (UV, PNPM)
|
|
244
|
+
*/
|
|
245
|
+
runtimes?: BinManager.MapOfRuntimes;
|
|
246
|
+
|
|
149
247
|
/**
|
|
150
248
|
* Tool definitions
|
|
151
249
|
*/
|
|
@@ -205,7 +303,7 @@ declare global {
|
|
|
205
303
|
/**
|
|
206
304
|
* Function that generates file content
|
|
207
305
|
* Receives context about the project including existing file content if present
|
|
208
|
-
* Optional when deleteOnly is true
|
|
306
|
+
* Optional when deleteOnly is true or linkTarget is set
|
|
209
307
|
*/
|
|
210
308
|
content?: (context: ConfigContext) => string;
|
|
211
309
|
|
|
@@ -216,6 +314,15 @@ declare global {
|
|
|
216
314
|
*/
|
|
217
315
|
deleteOnly?: boolean;
|
|
218
316
|
|
|
317
|
+
/**
|
|
318
|
+
* Relative path to the symlink target, resolved from the directory of the symlink itself.
|
|
319
|
+
* When set, creates a symlink instead of writing file content.
|
|
320
|
+
* Content function is ignored when linkTarget is set.
|
|
321
|
+
* @example "AGENTS.md" // symlink in same directory
|
|
322
|
+
* @example "../AGENTS.md" // symlink to parent directory
|
|
323
|
+
*/
|
|
324
|
+
linkTarget?: string;
|
|
325
|
+
|
|
219
326
|
/**
|
|
220
327
|
* All other known filenames for this config
|
|
221
328
|
* These will be DELETED during install to avoid conflicts
|
|
@@ -348,13 +455,16 @@ declare global {
|
|
|
348
455
|
*/
|
|
349
456
|
interface ToolOperation {
|
|
350
457
|
/**
|
|
351
|
-
* Arguments to pass to the command
|
|
352
|
-
*
|
|
353
|
-
* - {file} -
|
|
354
|
-
* - {files} -
|
|
355
|
-
* - {root} -
|
|
458
|
+
* Arguments to pass to the command.
|
|
459
|
+
* Template placeholders are expanded by the executor before execution:
|
|
460
|
+
* - {file} - single file path (per-file scope)
|
|
461
|
+
* - {files} - space-separated file list (batch mode)
|
|
462
|
+
* - {root} - git repository root (or cwd if not in a git repo)
|
|
463
|
+
* - {cwd} - per-project working directory
|
|
464
|
+
* - {toolCache} - per-project, per-tool cache directory (cache/{projectPath}/{toolName}/)
|
|
356
465
|
* @example ["--fix", "{file}"]
|
|
357
466
|
* @example ["--noEmit", "--project", "{root}"]
|
|
467
|
+
* @example ["--cache-location", "{toolCache}/eslint"]
|
|
358
468
|
*/
|
|
359
469
|
args: string[];
|
|
360
470
|
|
|
@@ -366,9 +476,9 @@ declare global {
|
|
|
366
476
|
batch?: boolean;
|
|
367
477
|
|
|
368
478
|
/**
|
|
369
|
-
*
|
|
479
|
+
* App to execute (app name from MapOfApps)
|
|
370
480
|
*/
|
|
371
|
-
|
|
481
|
+
app: string;
|
|
372
482
|
|
|
373
483
|
/**
|
|
374
484
|
* Extra environment variables for this operation
|
|
@@ -412,7 +522,7 @@ declare global {
|
|
|
412
522
|
* // ESLint - runs in each project
|
|
413
523
|
* {
|
|
414
524
|
* scope: "per-project",
|
|
415
|
-
*
|
|
525
|
+
* app: "eslint",
|
|
416
526
|
* args: ["--quiet", "{files}"],
|
|
417
527
|
* globs: ["**\/*.ts", "**\/*.js"]
|
|
418
528
|
* }
|
|
@@ -420,7 +530,7 @@ declare global {
|
|
|
420
530
|
* // syncpack - runs once for the entire monorepo
|
|
421
531
|
* {
|
|
422
532
|
* scope: "repository",
|
|
423
|
-
*
|
|
533
|
+
* app: "syncpack",
|
|
424
534
|
* args: ["lint"],
|
|
425
535
|
* globs: ["**\/package.json"]
|
|
426
536
|
* }
|
|
@@ -428,7 +538,7 @@ declare global {
|
|
|
428
538
|
* // shfmt - formats each shell file separately
|
|
429
539
|
* {
|
|
430
540
|
* scope: "per-file",
|
|
431
|
-
*
|
|
541
|
+
* app: "shfmt",
|
|
432
542
|
* args: ["-w", "{file}"],
|
|
433
543
|
* globs: ["**\/*.sh"]
|
|
434
544
|
* }
|
|
@@ -451,19 +561,67 @@ declare global {
|
|
|
451
561
|
|
|
452
562
|
namespace BinManager {
|
|
453
563
|
interface App {
|
|
564
|
+
/**
|
|
565
|
+
* Named archives to extract into the app's install directory.
|
|
566
|
+
* Archive names can be referenced in Links to create symlinks.
|
|
567
|
+
* Archives are extracted before Files are written, allowing Files to override.
|
|
568
|
+
*/
|
|
569
|
+
archives?: Record<string, ArchiveSpec>;
|
|
454
570
|
binary?: AppConfigBinary;
|
|
455
|
-
|
|
571
|
+
/**
|
|
572
|
+
* Human-readable description of the app, shown in exec listing.
|
|
573
|
+
*/
|
|
574
|
+
description?: string;
|
|
575
|
+
files?: Record<string, string>;
|
|
576
|
+
fnm?: AppConfigFNM;
|
|
577
|
+
jvm?: AppConfigJVM;
|
|
578
|
+
/**
|
|
579
|
+
* Symlinks to create in .datamitsu/ directory, mapping link name to relative path in install directory.
|
|
580
|
+
*/
|
|
581
|
+
links?: Record<string, string>;
|
|
456
582
|
required?: boolean;
|
|
457
583
|
shell?: AppConfigShell;
|
|
458
|
-
|
|
584
|
+
uv?: AppConfigUV;
|
|
585
|
+
/**
|
|
586
|
+
* Version check configuration for verify-all command.
|
|
587
|
+
* Absent: use default ["--version"] args.
|
|
588
|
+
* { disabled: true }: skip version check.
|
|
589
|
+
* { args: ["version"] }: use custom args.
|
|
590
|
+
*/
|
|
591
|
+
versionCheck?: AppVersionCheck;
|
|
459
592
|
}
|
|
460
593
|
|
|
461
594
|
interface AppConfigBinary {
|
|
462
595
|
binaries: MapOfBinaries;
|
|
596
|
+
/**
|
|
597
|
+
* Version string for display purposes (e.g. from GitHub release tag).
|
|
598
|
+
*/
|
|
599
|
+
version?: string;
|
|
463
600
|
}
|
|
464
601
|
|
|
465
|
-
interface
|
|
602
|
+
interface AppConfigFNM {
|
|
603
|
+
binPath: string;
|
|
604
|
+
dependencies?: Record<string, string>;
|
|
605
|
+
/**
|
|
606
|
+
* Lock file content for reproducible installs.
|
|
607
|
+
* When prefixed with "br:", the content is brotli-compressed and base64-encoded.
|
|
608
|
+
* Plain text is also accepted for backward compatibility.
|
|
609
|
+
* Generate via: datamitsu config lockfile <appName>
|
|
610
|
+
*/
|
|
611
|
+
lockFile?: string;
|
|
466
612
|
packageName: string;
|
|
613
|
+
runtime?: string;
|
|
614
|
+
version: string;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
interface AppConfigJVM {
|
|
618
|
+
jarHash: string;
|
|
619
|
+
jarUrl: string;
|
|
620
|
+
/**
|
|
621
|
+
* Optional main class for JARs that aren't executable.
|
|
622
|
+
*/
|
|
623
|
+
mainClass?: string;
|
|
624
|
+
runtime?: string;
|
|
467
625
|
version: string;
|
|
468
626
|
}
|
|
469
627
|
|
|
@@ -473,14 +631,73 @@ declare global {
|
|
|
473
631
|
name: string;
|
|
474
632
|
}
|
|
475
633
|
|
|
476
|
-
interface
|
|
634
|
+
interface AppConfigUV {
|
|
635
|
+
/**
|
|
636
|
+
* Lock file content for reproducible installs.
|
|
637
|
+
* When prefixed with "br:", the content is brotli-compressed and base64-encoded.
|
|
638
|
+
* Plain text is also accepted for backward compatibility.
|
|
639
|
+
* Generate via: datamitsu config lockfile <appName>
|
|
640
|
+
*/
|
|
641
|
+
lockFile?: string;
|
|
477
642
|
packageName: string;
|
|
643
|
+
/**
|
|
644
|
+
* Python version constraint for pyproject.toml requires-python field.
|
|
645
|
+
* If not set, defaults to ">=3.12".
|
|
646
|
+
* @example ">=3.10"
|
|
647
|
+
*/
|
|
648
|
+
requiresPython?: string;
|
|
649
|
+
runtime?: string;
|
|
478
650
|
version: string;
|
|
479
651
|
}
|
|
480
652
|
|
|
653
|
+
interface AppVersionCheck {
|
|
654
|
+
/**
|
|
655
|
+
* Custom arguments for version check. Defaults to ["--version"] if absent.
|
|
656
|
+
*/
|
|
657
|
+
args?: string[];
|
|
658
|
+
/**
|
|
659
|
+
* Skip version check for this app.
|
|
660
|
+
*/
|
|
661
|
+
disabled?: boolean;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
/**
|
|
665
|
+
* Archive specification for bundling directory trees with apps.
|
|
666
|
+
* Supports inline (brotli-compressed tar) and external (URL) formats.
|
|
667
|
+
* Archives are extracted before Files are written, allowing Files to override.
|
|
668
|
+
*/
|
|
669
|
+
interface ArchiveSpec {
|
|
670
|
+
/** Archive format (tar-based only) */
|
|
671
|
+
format?: "tar" | "tar.bz2" | "tar.gz" | "tar.xz" | "tar.zst";
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* SHA-256 hash (64 lowercase hex characters).
|
|
675
|
+
* Required for external archives per security policy.
|
|
676
|
+
*/
|
|
677
|
+
hash?: string;
|
|
678
|
+
|
|
679
|
+
/**
|
|
680
|
+
* Inline archive: brotli-compressed tar + base64 with "tar.br:" prefix.
|
|
681
|
+
* Maximum decompressed size: 50 MiB.
|
|
682
|
+
* @example "tar.br:GxsAACBdU6xBxGN0YXIg..."
|
|
683
|
+
*/
|
|
684
|
+
inline?: string;
|
|
685
|
+
|
|
686
|
+
/**
|
|
687
|
+
* External archive URL (requires hash and format).
|
|
688
|
+
* Downloaded and SHA-256 verified before extraction.
|
|
689
|
+
*/
|
|
690
|
+
url?: string;
|
|
691
|
+
}
|
|
692
|
+
|
|
481
693
|
interface BinaryOsArchInfo {
|
|
482
694
|
binaryPath?: string;
|
|
483
695
|
contentType: BinContentType;
|
|
696
|
+
/**
|
|
697
|
+
* When true, extracts the entire archive to a directory instead of a single binary.
|
|
698
|
+
* Used for runtimes like JDK that need the full directory tree (bin/, lib/, etc.).
|
|
699
|
+
*/
|
|
700
|
+
extractDir?: boolean;
|
|
484
701
|
|
|
485
702
|
hash: string;
|
|
486
703
|
/** @default sha256 */
|
|
@@ -508,11 +725,81 @@ declare global {
|
|
|
508
725
|
type MapOfBinaries = Partial<
|
|
509
726
|
Record<SysList.OsType, Partial<Record<SysList.ArchType, BinaryOsArchInfo>>>
|
|
510
727
|
>;
|
|
728
|
+
|
|
729
|
+
type MapOfRuntimes = Record<string, RuntimeConfig>;
|
|
730
|
+
|
|
731
|
+
interface RuntimeConfig {
|
|
732
|
+
/**
|
|
733
|
+
* FNM-specific runtime configuration (nodeVersion, pnpmVersion).
|
|
734
|
+
* Required when kind is "fnm".
|
|
735
|
+
*/
|
|
736
|
+
fnm?: RuntimeConfigFNM;
|
|
737
|
+
/**
|
|
738
|
+
* JVM-specific runtime configuration (javaVersion).
|
|
739
|
+
* Required when kind is "jvm".
|
|
740
|
+
*/
|
|
741
|
+
jvm?: RuntimeConfigJVM;
|
|
742
|
+
kind: RuntimeKind;
|
|
743
|
+
managed?: RuntimeConfigManaged;
|
|
744
|
+
mode: RuntimeMode;
|
|
745
|
+
/**
|
|
746
|
+
* When true, all apps using this runtime must have a lockFile configured.
|
|
747
|
+
* Validation fails if an app references this runtime without a lockFile.
|
|
748
|
+
* @default false
|
|
749
|
+
*/
|
|
750
|
+
requireLockfile?: boolean;
|
|
751
|
+
system?: RuntimeConfigSystem;
|
|
752
|
+
/**
|
|
753
|
+
* UV-specific runtime configuration (pythonVersion).
|
|
754
|
+
* Optional when kind is "uv".
|
|
755
|
+
*/
|
|
756
|
+
uv?: RuntimeConfigUV;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
interface RuntimeConfigFNM {
|
|
760
|
+
nodeVersion: string;
|
|
761
|
+
/**
|
|
762
|
+
* SHA-256 hash of the PNPM tarball for integrity verification.
|
|
763
|
+
* Required per security policy: all downloads must have a pinned hash.
|
|
764
|
+
*/
|
|
765
|
+
pnpmHash: string;
|
|
766
|
+
pnpmVersion: string;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
interface RuntimeConfigJVM {
|
|
770
|
+
javaVersion: string;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
interface RuntimeConfigManaged {
|
|
774
|
+
binaries: MapOfBinaries;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
interface RuntimeConfigSystem {
|
|
778
|
+
command: string;
|
|
779
|
+
/**
|
|
780
|
+
* Optional version string for manual cache invalidation when system runtime version changes.
|
|
781
|
+
*/
|
|
782
|
+
systemVersion?: string;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
interface RuntimeConfigUV {
|
|
786
|
+
pythonVersion?: string;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
type RuntimeKind = "fnm" | "jvm" | "uv";
|
|
790
|
+
|
|
791
|
+
type RuntimeMode = "managed" | "system";
|
|
511
792
|
}
|
|
512
793
|
|
|
513
794
|
/**
|
|
514
|
-
* Facts about the project environment
|
|
515
|
-
* Collected automatically on engine initialization
|
|
795
|
+
* Facts about the project environment.
|
|
796
|
+
* Collected automatically on engine initialization.
|
|
797
|
+
*
|
|
798
|
+
* Path-related fields have been removed. Use template placeholders in tool
|
|
799
|
+
* operation args instead:
|
|
800
|
+
* - `{cwd}` - current working directory
|
|
801
|
+
* - `{root}` - git repository root (or cwd if not in git)
|
|
802
|
+
* - `{toolCache}` - per-project, per-tool cache directory (cache/{projectPath}/{toolName}/)
|
|
516
803
|
*/
|
|
517
804
|
interface Facts {
|
|
518
805
|
/**
|
|
@@ -531,11 +818,6 @@ declare global {
|
|
|
531
818
|
*/
|
|
532
819
|
binaryPath: string;
|
|
533
820
|
|
|
534
|
-
/**
|
|
535
|
-
* Current working directory where the tool was invoked
|
|
536
|
-
*/
|
|
537
|
-
cwd: string;
|
|
538
|
-
|
|
539
821
|
/**
|
|
540
822
|
* Environment variables with the package prefix (e.g., CHANGE_ME_*)
|
|
541
823
|
* Only includes variables that start with the prefix defined in ldflags.EnvPrefix
|
|
@@ -543,12 +825,6 @@ declare global {
|
|
|
543
825
|
*/
|
|
544
826
|
env: Record<string, string>;
|
|
545
827
|
|
|
546
|
-
/**
|
|
547
|
-
* Root directory of the git repository (handles submodules)
|
|
548
|
-
* Empty string if not in a git repository
|
|
549
|
-
*/
|
|
550
|
-
gitRoot: string;
|
|
551
|
-
|
|
552
828
|
/**
|
|
553
829
|
* Whether we're inside a git repository
|
|
554
830
|
*/
|
|
@@ -568,11 +844,6 @@ declare global {
|
|
|
568
844
|
* Package name from ldflags
|
|
569
845
|
*/
|
|
570
846
|
packageName: string;
|
|
571
|
-
|
|
572
|
-
/**
|
|
573
|
-
* Project root (same as gitRoot or cwd if not in git)
|
|
574
|
-
*/
|
|
575
|
-
projectRoot: string;
|
|
576
847
|
}
|
|
577
848
|
|
|
578
849
|
/**
|
package/dist/s0/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { execa } from "execa";
|
|
|
15
15
|
import { fileURLToPath } from "url";
|
|
16
16
|
var Datamitsu = class {
|
|
17
17
|
get binaryPath() {
|
|
18
|
-
return fileURLToPath(import.meta.resolve("../../bin/datamitsu.
|
|
18
|
+
return fileURLToPath(import.meta.resolve("../../bin/datamitsu.js"));
|
|
19
19
|
}
|
|
20
20
|
get globalFlags() {
|
|
21
21
|
const flags = [];
|