@maple-dev/changesets 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +48 -0
- package/README.md +63 -2
- package/dist/bin.d.mts +1 -0
- package/dist/bin.mjs +7 -0
- package/dist/cli-_8EGJc1S.mjs +2566 -0
- package/dist/index.d.mts +255 -0
- package/dist/index.mjs +1 -0
- package/package.json +66 -5
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { Context, Effect, FileSystem, Layer, Option, Path, Result, Schema } from "effect";
|
|
2
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
3
|
+
import { Command, Prompt } from "effect/cli";
|
|
4
|
+
type BumpType = "major" | "minor" | "patch";
|
|
5
|
+
type VersionType = BumpType | "none";
|
|
6
|
+
interface Release {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly type: VersionType;
|
|
9
|
+
}
|
|
10
|
+
interface Changeset {
|
|
11
|
+
readonly releases: ReadonlyArray<Release>;
|
|
12
|
+
readonly summary: string;
|
|
13
|
+
}
|
|
14
|
+
interface NewChangeset extends Changeset {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
}
|
|
17
|
+
interface NewChangesetWithCommit extends NewChangeset {
|
|
18
|
+
readonly commit: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
type DependencyRanges = Readonly<Record<string, string>>;
|
|
21
|
+
interface PackageJson {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly version?: string;
|
|
24
|
+
readonly private?: boolean;
|
|
25
|
+
readonly dependencies?: DependencyRanges;
|
|
26
|
+
readonly devDependencies?: DependencyRanges;
|
|
27
|
+
readonly peerDependencies?: DependencyRanges;
|
|
28
|
+
readonly optionalDependencies?: DependencyRanges;
|
|
29
|
+
}
|
|
30
|
+
interface Package {
|
|
31
|
+
readonly dir: string;
|
|
32
|
+
readonly relativeDir: string;
|
|
33
|
+
readonly packageJson: PackageJson;
|
|
34
|
+
}
|
|
35
|
+
interface Packages {
|
|
36
|
+
readonly rootDir: string;
|
|
37
|
+
readonly rootPackage: Package;
|
|
38
|
+
readonly packages: ReadonlyArray<Package>;
|
|
39
|
+
}
|
|
40
|
+
interface ComprehensiveRelease {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly type: VersionType;
|
|
43
|
+
readonly oldVersion: string | undefined;
|
|
44
|
+
readonly changesets: ReadonlyArray<string>;
|
|
45
|
+
readonly newVersion: string | undefined;
|
|
46
|
+
}
|
|
47
|
+
interface ReleasePlan {
|
|
48
|
+
readonly changesets: ReadonlyArray<NewChangeset>;
|
|
49
|
+
readonly releases: ReadonlyArray<ComprehensiveRelease>;
|
|
50
|
+
}
|
|
51
|
+
declare const DEPENDENCY_TYPES: readonly ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
|
|
52
|
+
type DependencyType = (typeof DEPENDENCY_TYPES)[number];
|
|
53
|
+
declare const ChangesetParseError_base: Schema.Class<ChangesetParseError, Schema.TaggedStruct<"@maple-dev/changesets/ChangesetParseError", {
|
|
54
|
+
readonly message: Schema.String;
|
|
55
|
+
readonly file: Schema.String;
|
|
56
|
+
}>, import("effect/Cause").YieldableError>;
|
|
57
|
+
/** A `.changeset/*.md` file that changesets itself would also reject. */
|
|
58
|
+
export declare class ChangesetParseError extends ChangesetParseError_base {}
|
|
59
|
+
declare const ConfigError_base: Schema.Class<ConfigError, Schema.TaggedStruct<"@maple-dev/changesets/ConfigError", {
|
|
60
|
+
readonly message: Schema.String;
|
|
61
|
+
readonly problems: Schema.$Array<Schema.String>;
|
|
62
|
+
}>, import("effect/Cause").YieldableError>;
|
|
63
|
+
/** `.changeset/config.json` is missing, malformed, or breaks one of the config rules. */
|
|
64
|
+
export declare class ConfigError extends ConfigError_base {}
|
|
65
|
+
declare const WorkspaceError_base: Schema.Class<WorkspaceError, Schema.TaggedStruct<"@maple-dev/changesets/WorkspaceError", {
|
|
66
|
+
readonly message: Schema.String;
|
|
67
|
+
readonly path: Schema.String;
|
|
68
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
69
|
+
}>, import("effect/Cause").YieldableError>;
|
|
70
|
+
/** The workspace root or one of its package manifests could not be read. */
|
|
71
|
+
export declare class WorkspaceError extends WorkspaceError_base {}
|
|
72
|
+
declare const ReleasePlanError_base: Schema.Class<ReleasePlanError, Schema.TaggedStruct<"@maple-dev/changesets/ReleasePlanError", {
|
|
73
|
+
readonly message: Schema.String;
|
|
74
|
+
}>, import("effect/Cause").YieldableError>;
|
|
75
|
+
/** The changesets and the workspace disagree, e.g. a changeset names an unknown package. */
|
|
76
|
+
export declare class ReleasePlanError extends ReleasePlanError_base {}
|
|
77
|
+
declare const GitError_base: Schema.Class<GitError, Schema.TaggedStruct<"@maple-dev/changesets/GitError", {
|
|
78
|
+
readonly message: Schema.String;
|
|
79
|
+
readonly args: Schema.$Array<Schema.String>;
|
|
80
|
+
readonly stderr: Schema.String;
|
|
81
|
+
}>, import("effect/Cause").YieldableError>;
|
|
82
|
+
export declare class GitError extends GitError_base {}
|
|
83
|
+
declare const FormatterError_base: Schema.Class<FormatterError, Schema.TaggedStruct<"@maple-dev/changesets/FormatterError", {
|
|
84
|
+
readonly message: Schema.String;
|
|
85
|
+
readonly formatter: Schema.String;
|
|
86
|
+
readonly stderr: Schema.String;
|
|
87
|
+
}>, import("effect/Cause").YieldableError>;
|
|
88
|
+
export declare class FormatterError extends FormatterError_base {}
|
|
89
|
+
declare const JsonEditError_base: Schema.Class<JsonEditError, Schema.TaggedStruct<"@maple-dev/changesets/JsonEditError", {
|
|
90
|
+
readonly message: Schema.String;
|
|
91
|
+
readonly file: Schema.String;
|
|
92
|
+
}>, import("effect/Cause").YieldableError>;
|
|
93
|
+
export declare class JsonEditError extends JsonEditError_base {}
|
|
94
|
+
declare const ChangelogError_base: Schema.Class<ChangelogError, Schema.TaggedStruct<"@maple-dev/changesets/ChangelogError", {
|
|
95
|
+
readonly message: Schema.String;
|
|
96
|
+
readonly module: Schema.String;
|
|
97
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
98
|
+
}>, import("effect/Cause").YieldableError>;
|
|
99
|
+
export declare class ChangelogError extends ChangelogError_base {}
|
|
100
|
+
declare const UnsupportedFeatureError_base: Schema.Class<UnsupportedFeatureError, Schema.TaggedStruct<"@maple-dev/changesets/UnsupportedFeatureError", {
|
|
101
|
+
readonly message: Schema.String;
|
|
102
|
+
readonly feature: Schema.String;
|
|
103
|
+
}>, import("effect/Cause").YieldableError>;
|
|
104
|
+
/** A changesets feature this tool deliberately does not implement (pre mode, snapshots, commit). */
|
|
105
|
+
export declare class UnsupportedFeatureError extends UnsupportedFeatureError_base {}
|
|
106
|
+
declare const CommandExit_base: Schema.Class<CommandExit, Schema.TaggedStruct<"@maple-dev/changesets/CommandExit", {
|
|
107
|
+
readonly message: Schema.String;
|
|
108
|
+
readonly code: Schema.Number;
|
|
109
|
+
}>, import("effect/Cause").YieldableError>;
|
|
110
|
+
/** An expected non-zero exit that changesets reports the same way, e.g. "No unreleased changesets found." */
|
|
111
|
+
export declare class CommandExit extends CommandExit_base {}
|
|
112
|
+
type ModuleReference = readonly [string, Readonly<Record<string, unknown>> | null];
|
|
113
|
+
type FormatterName = "prettier" | "oxfmt" | "deno" | "dprint";
|
|
114
|
+
interface Config$1 {
|
|
115
|
+
readonly baseBranch: string;
|
|
116
|
+
readonly access: "public" | "restricted";
|
|
117
|
+
readonly changedFilePatterns: ReadonlyArray<string>;
|
|
118
|
+
readonly format: "auto" | FormatterName | false;
|
|
119
|
+
readonly ignore: ReadonlyArray<string>;
|
|
120
|
+
readonly fixed: ReadonlyArray<ReadonlyArray<string>>;
|
|
121
|
+
readonly linked: ReadonlyArray<ReadonlyArray<string>>;
|
|
122
|
+
readonly updateInternalDependencies: "minor" | "patch";
|
|
123
|
+
readonly privatePackages: {
|
|
124
|
+
readonly version: boolean;
|
|
125
|
+
readonly tag: boolean;
|
|
126
|
+
};
|
|
127
|
+
readonly bumpVersionsWithWorkspaceProtocolOnly: boolean;
|
|
128
|
+
readonly snapshot: {
|
|
129
|
+
readonly useCalculatedVersion: boolean;
|
|
130
|
+
readonly prereleaseTemplate: string | undefined;
|
|
131
|
+
};
|
|
132
|
+
readonly changelog: ModuleReference | false;
|
|
133
|
+
readonly commit: ModuleReference | false;
|
|
134
|
+
readonly onlyUpdatePeerDependentsWhenOutOfRange: boolean;
|
|
135
|
+
readonly updateInternalDependents: "always" | "out-of-range";
|
|
136
|
+
}
|
|
137
|
+
interface FormatterApi {
|
|
138
|
+
/** The formatter `config.format` resolves to for this root, if any. */
|
|
139
|
+
readonly detect: (format: Config$1["format"], rootDir: string) => Effect.Effect<Option.Option<FormatterName>>;
|
|
140
|
+
/** Formats `files` in place; a formatter that exits non-zero fails, as in changesets. */
|
|
141
|
+
readonly format: (format: Config$1["format"], rootDir: string, files: ReadonlyArray<string>) => Effect.Effect<void, FormatterError>;
|
|
142
|
+
}
|
|
143
|
+
declare const Formatter_base: Context.ServiceClass<Formatter, "@maple-dev/changesets/Formatter", FormatterApi> & {
|
|
144
|
+
readonly make: Effect.Effect<FormatterApi, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
145
|
+
};
|
|
146
|
+
declare class Formatter extends Formatter_base {
|
|
147
|
+
static readonly layer: Layer.Layer<Formatter, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
148
|
+
}
|
|
149
|
+
interface GitResult {
|
|
150
|
+
readonly exitCode: number;
|
|
151
|
+
readonly stdout: string;
|
|
152
|
+
readonly stderr: string;
|
|
153
|
+
}
|
|
154
|
+
interface GitApi {
|
|
155
|
+
/** Runs `git <args>` in `cwd`; a non-zero exit is a result, not a failure. */
|
|
156
|
+
readonly run: (args: ReadonlyArray<string>, cwd: string) => Effect.Effect<GitResult, GitError>;
|
|
157
|
+
/** For each path, the commit that added it (extending a shallow clone as needed), if any. */
|
|
158
|
+
readonly commitsThatAddFiles: (paths: ReadonlyArray<string>, cwd: string) => Effect.Effect<ReadonlyArray<string | undefined>, GitError>;
|
|
159
|
+
/** Absolute paths of files changed between the merge base of `ref` and HEAD. */
|
|
160
|
+
readonly changedFilesSince: (ref: string, cwd: string) => Effect.Effect<ReadonlyArray<string>, GitError>;
|
|
161
|
+
/** Changeset files (`.changeset/*.md`, `.changeset/pre/*.md`) added or changed since `ref`. */
|
|
162
|
+
readonly changedChangesetFilesSince: (ref: string, cwd: string) => Effect.Effect<ReadonlyArray<string>, GitError>;
|
|
163
|
+
}
|
|
164
|
+
declare const Git_base: Context.ServiceClass<Git, "@maple-dev/changesets/Git", GitApi> & {
|
|
165
|
+
readonly make: Effect.Effect<GitApi, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
166
|
+
};
|
|
167
|
+
declare class Git extends Git_base {
|
|
168
|
+
static readonly layer: Layer.Layer<Git, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
169
|
+
}
|
|
170
|
+
interface Project {
|
|
171
|
+
readonly packages: Packages;
|
|
172
|
+
readonly config: Config$1;
|
|
173
|
+
readonly warnings: ReadonlyArray<string>;
|
|
174
|
+
}
|
|
175
|
+
declare const Changesets_base: Context.ServiceClass<Changesets, "@maple-dev/changesets/Changesets", {
|
|
176
|
+
load: (cwd: string) => Effect.Effect<{
|
|
177
|
+
packages: {
|
|
178
|
+
rootDir: string;
|
|
179
|
+
rootPackage: Package;
|
|
180
|
+
packages: Package[];
|
|
181
|
+
};
|
|
182
|
+
config: Config$1;
|
|
183
|
+
warnings: readonly string[];
|
|
184
|
+
}, CommandExit | ConfigError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
185
|
+
refuseUnsupported: (project: Project) => Effect.Effect<undefined, UnsupportedFeatureError | WorkspaceError, never>;
|
|
186
|
+
readChangesets: (packages: Packages, since?: string | undefined) => Effect.Effect<{
|
|
187
|
+
releases: ReadonlyArray<Release>;
|
|
188
|
+
summary: string;
|
|
189
|
+
id: string;
|
|
190
|
+
}[], ChangesetParseError | GitError | WorkspaceError, never>;
|
|
191
|
+
version: (options: {
|
|
192
|
+
readonly cwd: string;
|
|
193
|
+
readonly ignore?: ReadonlyArray<string> | undefined;
|
|
194
|
+
}) => Effect.Effect<ReleasePlan, ChangelogError | ChangesetParseError | CommandExit | ConfigError | FormatterError | GitError | JsonEditError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
195
|
+
status: (options: {
|
|
196
|
+
readonly cwd: string;
|
|
197
|
+
readonly since?: string | undefined;
|
|
198
|
+
readonly output?: string | undefined;
|
|
199
|
+
}) => Effect.Effect<ReleasePlan, ChangesetParseError | CommandExit | ConfigError | GitError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
200
|
+
changedPackages: (project: Project, ref?: string | undefined) => Effect.Effect<Package[], GitError, never>;
|
|
201
|
+
writeChangeset: (project: Project, changeset: Changeset) => Effect.Effect<{
|
|
202
|
+
id: string;
|
|
203
|
+
file: string;
|
|
204
|
+
}, FormatterError | WorkspaceError, never>;
|
|
205
|
+
}> & {
|
|
206
|
+
readonly make: Effect.Effect<{
|
|
207
|
+
load: (cwd: string) => Effect.Effect<{
|
|
208
|
+
packages: {
|
|
209
|
+
rootDir: string;
|
|
210
|
+
rootPackage: Package;
|
|
211
|
+
packages: Package[];
|
|
212
|
+
};
|
|
213
|
+
config: Config$1;
|
|
214
|
+
warnings: readonly string[];
|
|
215
|
+
}, CommandExit | ConfigError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
216
|
+
refuseUnsupported: (project: Project) => Effect.Effect<undefined, UnsupportedFeatureError | WorkspaceError, never>;
|
|
217
|
+
readChangesets: (packages: Packages, since?: string | undefined) => Effect.Effect<{
|
|
218
|
+
releases: ReadonlyArray<Release>;
|
|
219
|
+
summary: string;
|
|
220
|
+
id: string;
|
|
221
|
+
}[], ChangesetParseError | GitError | WorkspaceError, never>;
|
|
222
|
+
version: (options: {
|
|
223
|
+
readonly cwd: string;
|
|
224
|
+
readonly ignore?: ReadonlyArray<string> | undefined;
|
|
225
|
+
}) => Effect.Effect<ReleasePlan, ChangelogError | ChangesetParseError | CommandExit | ConfigError | FormatterError | GitError | JsonEditError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
226
|
+
status: (options: {
|
|
227
|
+
readonly cwd: string;
|
|
228
|
+
readonly since?: string | undefined;
|
|
229
|
+
readonly output?: string | undefined;
|
|
230
|
+
}) => Effect.Effect<ReleasePlan, ChangesetParseError | CommandExit | ConfigError | GitError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError, FileSystem.FileSystem | Path.Path>;
|
|
231
|
+
changedPackages: (project: Project, ref?: string | undefined) => Effect.Effect<Package[], GitError, never>;
|
|
232
|
+
writeChangeset: (project: Project, changeset: Changeset) => Effect.Effect<{
|
|
233
|
+
id: string;
|
|
234
|
+
file: string;
|
|
235
|
+
}, FormatterError | WorkspaceError, never>;
|
|
236
|
+
}, never, FileSystem.FileSystem | Formatter | Git | Path.Path>;
|
|
237
|
+
};
|
|
238
|
+
export declare class Changesets extends Changesets_base {
|
|
239
|
+
static readonly layer: Layer.Layer<Changesets, never, import("effect/process/ChildProcessSpawner").ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
240
|
+
}
|
|
241
|
+
export declare const changesetCommand: Command.Command<"changeset", {
|
|
242
|
+
readonly empty: boolean;
|
|
243
|
+
readonly open: boolean;
|
|
244
|
+
readonly since: Option.Option<string>;
|
|
245
|
+
readonly message: Option.Option<string>;
|
|
246
|
+
readonly major: string[];
|
|
247
|
+
readonly minor: string[];
|
|
248
|
+
readonly patch: string[];
|
|
249
|
+
} | {}, {}, ChangelogError | ChangesetParseError | CommandExit | ConfigError | FormatterError | GitError | JsonEditError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError, Changesets | ChildProcessSpawner.ChildProcessSpawner | Prompt.Environment>;
|
|
250
|
+
/** Runs the CLI; expected failures print their message once and exit non-zero. */
|
|
251
|
+
export declare const main: Effect.Effect<void, ChangelogError | ChangesetParseError | CommandExit | ConfigError | FormatterError | GitError | JsonEditError | ReleasePlanError | UnsupportedFeatureError | WorkspaceError | import("effect/cli/CliError").CliError, Changesets | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | import("effect/Stdio").Stdio | import("effect/Terminal").Terminal>;
|
|
252
|
+
/** Parses one changeset file; the failure is the message changesets would print. */
|
|
253
|
+
export declare const parseChangesetFile: (contents: string) => Result.Result<Changeset, string>;
|
|
254
|
+
export declare const assembleReleasePlan: (changesets: ReadonlyArray<NewChangeset>, packages: Packages, config: Config$1) => Result.Result<ReleasePlan, string>;
|
|
255
|
+
export type { Changeset, ComprehensiveRelease, DEPENDENCY_TYPES, DependencyRanges, DependencyType, NewChangeset, NewChangesetWithCommit, Package, PackageJson, Packages, Project, Release, ReleasePlan, VersionType };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { o as ChangelogError, s as ChangesetParseError, r as Changesets, c as CommandExit, l as ConfigError, u as FormatterError, d as GitError, f as JsonEditError, p as ReleasePlanError, m as UnsupportedFeatureError, h as WorkspaceError, i as assembleReleasePlan, t as changesetCommand, n as main, a as parseChangesetFile } from "./cli-_8EGJc1S.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,67 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"name": "@maple-dev/changesets",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A dependency-free, Effect-based drop-in for the @changesets/cli add, version and status commands",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"changesets",
|
|
7
|
+
"changelog",
|
|
8
|
+
"effect",
|
|
9
|
+
"monorepo",
|
|
10
|
+
"release",
|
|
11
|
+
"versioning"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/MapleTechLabs/changesets#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/MapleTechLabs/changesets/issues"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"author": "Makisuo, Inc.",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/MapleTechLabs/changesets.git"
|
|
22
|
+
},
|
|
23
|
+
"bin": {
|
|
24
|
+
"changeset": "./dist/bin.mjs"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"README.md"
|
|
29
|
+
],
|
|
30
|
+
"type": "module",
|
|
31
|
+
"sideEffects": false,
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.mts",
|
|
35
|
+
"import": "./dist/index.mjs",
|
|
36
|
+
"default": "./dist/index.mjs"
|
|
37
|
+
},
|
|
38
|
+
"./package.json": "./package.json"
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=22"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsdown",
|
|
48
|
+
"typecheck": "tsc --noEmit",
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"prepublishOnly": "bun run typecheck && bun run test && bun run build",
|
|
51
|
+
"changeset": "bun src/bin.ts",
|
|
52
|
+
"version-packages": "bun src/bin.ts version",
|
|
53
|
+
"release": "bun scripts/publish.ts",
|
|
54
|
+
"record-reference": "bun scripts/record-reference.ts"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@effect/platform-node": "^4.1.0",
|
|
58
|
+
"effect": "^4.1.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@types/node": "^24.19.2",
|
|
62
|
+
"tsdown": "^0.23.0",
|
|
63
|
+
"typescript": "^7.0.2",
|
|
64
|
+
"vitest": "^5.0.5"
|
|
65
|
+
},
|
|
66
|
+
"packageManager": "bun@1.4.4"
|
|
67
|
+
}
|