better-commits 1.20.0-cli-flags → 1.20.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/package.json +1 -1
- package/readme.md +15 -16
- package/.opencode/package-lock.json +0 -115
- package/.opencode/plans/cli-args.md +0 -182
- package/.svelte-kit/ambient.d.ts +0 -289
- package/.svelte-kit/generated/client/app.js +0 -28
- package/.svelte-kit/generated/client/matchers.js +0 -1
- package/.svelte-kit/generated/client/nodes/0.js +0 -1
- package/.svelte-kit/generated/client/nodes/1.js +0 -1
- package/.svelte-kit/tsconfig.json +0 -49
- package/0001-feat-branch-124-update-worktrees-feature.patch +0 -316
- package/docs/ai-skills.yaml +0 -48
- package/docs/clack.md +0 -143
- package/docs/valibot.md +0 -228
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "better-commits",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.20.0
|
|
4
|
+
"version": "1.20.0",
|
|
5
5
|
"description": "A CLI for creating better commits following the conventional commits specification",
|
|
6
6
|
"author": "Erik Verduin (https://github.com/everduin94)",
|
|
7
7
|
"type": "module",
|
package/readme.md
CHANGED
|
@@ -56,7 +56,9 @@ Some of the values in these prompts will be inferred by your branch name and aut
|
|
|
56
56
|
For documentation on passing commit values to `better-commits` via the CLI, see [CLI Flags](#cli-flags).
|
|
57
57
|
|
|
58
58
|
> [!TIP]
|
|
59
|
-
> The
|
|
59
|
+
> The `--no-interactive` flag, allows automated workflows or AI agents like OpenCode and Claude Code, to use better-commits to generate consistent commit messages using less tokens.
|
|
60
|
+
>
|
|
61
|
+
> Run `better-commits --help` / `better-branch --help` for more information.
|
|
60
62
|
|
|
61
63
|
## ⚙️ Configuration
|
|
62
64
|
|
|
@@ -406,7 +408,7 @@ Optionally configure pre and post checkout commands, for example:
|
|
|
406
408
|
|
|
407
409
|
See _branch_pre_commands_ and _branch_post_commands_ in default config. (or _worktree_pre_commands_ and _worktree_post_commands_ for creating worktrees)
|
|
408
410
|
|
|
409
|
-
##
|
|
411
|
+
## 💡 Tips & Tricks
|
|
410
412
|
|
|
411
413
|
### Building / Versioning
|
|
412
414
|
|
|
@@ -427,7 +429,7 @@ If you're using Github issues to track your work, and select the `closes` footer
|
|
|
427
429
|
|
|
428
430
|
`better-commits` can append a commit trailer per commit type. This allows you to [automate change logs](https://docs.gitlab.com/ee/user/project/changelogs.html) with tools like Gitlab.
|
|
429
431
|
|
|
430
|
-
###
|
|
432
|
+
### Git
|
|
431
433
|
|
|
432
434
|
`better-commits` uses native `git` commands under the hood. So any hooks, tools, or staging should work as if it was a normal commit.
|
|
433
435
|
|
|
@@ -436,11 +438,13 @@ Setting `confirm_with_editor=true` will allow you to edit/confirm a commit with
|
|
|
436
438
|
- For example, to edit with Neovim: `git config --global core.editor "nvim"`
|
|
437
439
|
- For VS Code, `git config --global core.editor "code -n --wait"`
|
|
438
440
|
|
|
439
|
-
You can
|
|
441
|
+
You can pass arguments to `git` through `better-commits` like so:
|
|
442
|
+
|
|
443
|
+
```sh
|
|
444
|
+
better-commits --git-dir="$HOME/.config" --work-tree="$HOME"
|
|
445
|
+
```
|
|
440
446
|
|
|
441
|
-
|
|
442
|
-
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
443
|
-
| `[](https://github.com/Everduin94/better-commits)` | [](https://github.com/Everduin94/better-commits) |
|
|
447
|
+
A practical example of this would be managing dotfiles, as described in this [Atlassian Article](https://www.atlassian.com/git/tutorials/dotfiles)
|
|
444
448
|
|
|
445
449
|
### CLI Flags
|
|
446
450
|
|
|
@@ -449,21 +453,16 @@ Use CLI flags to pass commit values directly instead of answering prompts.
|
|
|
449
453
|
- Use `--no-interactive` to skip prompts, confirmation, and editor flows. This is the recommended mode for OpenCode, Claude Code, and other coding agents.
|
|
450
454
|
- Use `--dry-run` to validate the generated `git commit` command without creating a commit.
|
|
451
455
|
- Supported commit field flags: `--type`, `--scope`, `--title`, `--body`, `--ticket`, `--closes`, `--deprecates`, `--breaking-title`, `--breaking-body`, `--deprecates-title`, `--deprecates-body`, `--custom-footer`, `--trailer`.
|
|
456
|
+
- Supported branch field flags: `--user`, `--type`, `--description`, `--ticket`, `--branch-version`, `--checkout`.
|
|
457
|
+
|
|
458
|
+
**Examples**
|
|
452
459
|
|
|
453
460
|
```sh
|
|
454
461
|
better-commits --no-interactive --dry-run --type feat --scope cli --title "add parser"
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
### Git Arguments
|
|
458
|
-
|
|
459
|
-
You can pass arguments to `git` through `better-commits` like so:
|
|
460
462
|
|
|
461
|
-
|
|
462
|
-
better-commits --git-dir="$HOME/.config" --work-tree="$HOME"
|
|
463
|
+
better-branch --no-interactive --type feat --ticket TAC-123 --description "add parser" --checkout worktree
|
|
463
464
|
```
|
|
464
465
|
|
|
465
|
-
A practical example of this would be managing dotfiles, as described in this [Atlassian Article](https://www.atlassian.com/git/tutorials/dotfiles)
|
|
466
|
-
|
|
467
466
|
---
|
|
468
467
|
|
|
469
468
|
### 🪟 Troubleshooting Windows
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": ".opencode",
|
|
3
|
-
"lockfileVersion": 3,
|
|
4
|
-
"requires": true,
|
|
5
|
-
"packages": {
|
|
6
|
-
"": {
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"@opencode-ai/plugin": "1.4.1"
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"node_modules/@opencode-ai/plugin": {
|
|
12
|
-
"version": "1.4.1",
|
|
13
|
-
"resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.4.1.tgz",
|
|
14
|
-
"integrity": "sha512-5PqQGUAVeNPNM6PyQATSe5q7ICwFSIFYEMFHzD6Efw2fSd1ij5vskgtxEZFl/oiXkPx/w8/DPR9EZS9bkoHYnA==",
|
|
15
|
-
"license": "MIT",
|
|
16
|
-
"dependencies": {
|
|
17
|
-
"@opencode-ai/sdk": "1.4.1",
|
|
18
|
-
"zod": "4.1.8"
|
|
19
|
-
},
|
|
20
|
-
"peerDependencies": {
|
|
21
|
-
"@opentui/core": ">=0.1.97",
|
|
22
|
-
"@opentui/solid": ">=0.1.97"
|
|
23
|
-
},
|
|
24
|
-
"peerDependenciesMeta": {
|
|
25
|
-
"@opentui/core": {
|
|
26
|
-
"optional": true
|
|
27
|
-
},
|
|
28
|
-
"@opentui/solid": {
|
|
29
|
-
"optional": true
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"node_modules/@opencode-ai/sdk": {
|
|
34
|
-
"version": "1.4.1",
|
|
35
|
-
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.4.1.tgz",
|
|
36
|
-
"integrity": "sha512-7wWHs8Og5W5+fuJmHDi7oy1yK6c9mmVfK1Ll9hPHZZ5xj357fVl+oI4i0jeUdjonEoXb3Svq/U5blraSArX5OQ==",
|
|
37
|
-
"license": "MIT",
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"cross-spawn": "7.0.6"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"node_modules/cross-spawn": {
|
|
43
|
-
"version": "7.0.6",
|
|
44
|
-
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
|
45
|
-
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
|
46
|
-
"license": "MIT",
|
|
47
|
-
"dependencies": {
|
|
48
|
-
"path-key": "^3.1.0",
|
|
49
|
-
"shebang-command": "^2.0.0",
|
|
50
|
-
"which": "^2.0.1"
|
|
51
|
-
},
|
|
52
|
-
"engines": {
|
|
53
|
-
"node": ">= 8"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"node_modules/isexe": {
|
|
57
|
-
"version": "2.0.0",
|
|
58
|
-
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
|
59
|
-
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
|
60
|
-
"license": "ISC"
|
|
61
|
-
},
|
|
62
|
-
"node_modules/path-key": {
|
|
63
|
-
"version": "3.1.1",
|
|
64
|
-
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
|
65
|
-
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
|
66
|
-
"license": "MIT",
|
|
67
|
-
"engines": {
|
|
68
|
-
"node": ">=8"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"node_modules/shebang-command": {
|
|
72
|
-
"version": "2.0.0",
|
|
73
|
-
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
|
74
|
-
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
|
75
|
-
"license": "MIT",
|
|
76
|
-
"dependencies": {
|
|
77
|
-
"shebang-regex": "^3.0.0"
|
|
78
|
-
},
|
|
79
|
-
"engines": {
|
|
80
|
-
"node": ">=8"
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
"node_modules/shebang-regex": {
|
|
84
|
-
"version": "3.0.0",
|
|
85
|
-
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
|
86
|
-
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
|
87
|
-
"license": "MIT",
|
|
88
|
-
"engines": {
|
|
89
|
-
"node": ">=8"
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"node_modules/which": {
|
|
93
|
-
"version": "2.0.2",
|
|
94
|
-
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
|
95
|
-
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
|
96
|
-
"license": "ISC",
|
|
97
|
-
"dependencies": {
|
|
98
|
-
"isexe": "^2.0.0"
|
|
99
|
-
},
|
|
100
|
-
"bin": {
|
|
101
|
-
"node-which": "bin/node-which"
|
|
102
|
-
},
|
|
103
|
-
"engines": {
|
|
104
|
-
"node": ">= 8"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"node_modules/zod": {
|
|
108
|
-
"version": "4.1.8",
|
|
109
|
-
"license": "MIT",
|
|
110
|
-
"funding": {
|
|
111
|
-
"url": "https://github.com/sponsors/colinhacks"
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
# CLI Argument Pre-fill Plan
|
|
2
|
-
|
|
3
|
-
## Goal
|
|
4
|
-
|
|
5
|
-
Allow users to pre-fill `CommitState` fields via CLI flags (e.g. `--body="hello"`), with an optional `--no-interactive` flag to skip all prompts entirely for provided fields and run non-interactively.
|
|
6
|
-
|
|
7
|
-
## Library: `node:util` `parseArgs` — zero new dependencies
|
|
8
|
-
|
|
9
|
-
Built into Node 18+. The project runs on Node 24. Already typed through the existing `@types/node` dev dependency. Adds **0 bytes** to the published bundle.
|
|
10
|
-
|
|
11
|
-
## Parsing Strategy
|
|
12
|
-
|
|
13
|
-
`parseArgs` with `strict: false` passes unknown flags through into `values` alongside known ones. We declare all 13 `CommitState` keys as known `string` options. Everything else (e.g. `--git-dir`, `--work-tree`) ends up as unrecognized entries — we reconstruct `git_args` from those, preserving existing behavior exactly.
|
|
14
|
-
|
|
15
|
-
### Example
|
|
16
|
-
|
|
17
|
-
```sh
|
|
18
|
-
# Input
|
|
19
|
-
better-commits --git-dir="$HOME/.config" --work-tree="$HOME" --body="hello" --no-interactive
|
|
20
|
-
|
|
21
|
-
# Parsed result
|
|
22
|
-
flags.git_args = '--git-dir=/home/user/.config --work-tree=/home/user'
|
|
23
|
-
flags.commit_args = { body: 'hello' }
|
|
24
|
-
flags.no_interactive = true
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Behavior: `--no-interactive`
|
|
28
|
-
|
|
29
|
-
| `--no-interactive` | CLI arg provided? | Result |
|
|
30
|
-
| ------------------ | ----------------- | ------------------------------------------------------- |
|
|
31
|
-
| false (default) | yes | Pre-fill `initialValue` in prompt — user can still edit |
|
|
32
|
-
| false (default) | no | Normal prompt, no change |
|
|
33
|
-
| true | yes | Skip prompt entirely, use value directly |
|
|
34
|
-
| true | no | Normal prompt, no change |
|
|
35
|
-
|
|
36
|
-
When `--no-interactive` is set:
|
|
37
|
-
|
|
38
|
-
- All prompts with a provided CLI arg are skipped
|
|
39
|
-
- The commit preview (`p.note`) is still shown
|
|
40
|
-
- The final `confirm_commit` prompt is skipped — the commit runs automatically
|
|
41
|
-
|
|
42
|
-
## Files Changed
|
|
43
|
-
|
|
44
|
-
### `src/args.ts` — rewrite
|
|
45
|
-
|
|
46
|
-
- Import `parseArgs` from `node:util` and `argv` from `process`
|
|
47
|
-
- Declare all 13 `CommitState` keys as `{ type: 'string' }` options, plus `no_interactive: { type: 'boolean' }`
|
|
48
|
-
- Run `parseArgs({ args: argv.slice(2), options: COMMIT_STATE_OPTIONS, strict: false })` at module load time
|
|
49
|
-
- Populate `flags.git_args` by reconstructing `--key=value` strings from unrecognized entries in `values`
|
|
50
|
-
- Populate `flags.commit_args` (a `Partial<Record<CommitStateKey, string>>`) from recognized fields
|
|
51
|
-
- Populate `flags.no_interactive` boolean
|
|
52
|
-
|
|
53
|
-
```ts
|
|
54
|
-
// Rough shape
|
|
55
|
-
const COMMIT_STATE_KEYS = [
|
|
56
|
-
"type",
|
|
57
|
-
"scope",
|
|
58
|
-
"title",
|
|
59
|
-
"body",
|
|
60
|
-
"closes",
|
|
61
|
-
"ticket",
|
|
62
|
-
"breaking_title",
|
|
63
|
-
"breaking_body",
|
|
64
|
-
"deprecates",
|
|
65
|
-
"deprecates_title",
|
|
66
|
-
"deprecates_body",
|
|
67
|
-
"custom_footer",
|
|
68
|
-
"trailer",
|
|
69
|
-
] as const;
|
|
70
|
-
|
|
71
|
-
type CommitStateKey = (typeof COMMIT_STATE_KEYS)[number];
|
|
72
|
-
|
|
73
|
-
class Flags {
|
|
74
|
-
git_args: string = "";
|
|
75
|
-
no_interactive: boolean = false;
|
|
76
|
-
commit_args: Partial<Record<CommitStateKey, string>> = {};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export const flags = new Flags();
|
|
80
|
-
|
|
81
|
-
// Parse at module load (replaces set_non_configuration_arguments in utils.ts)
|
|
82
|
-
const { values } = parseArgs({
|
|
83
|
-
args: argv.slice(2),
|
|
84
|
-
options: {
|
|
85
|
-
...Object.fromEntries(
|
|
86
|
-
COMMIT_STATE_KEYS.map((k) => [k, { type: "string" }]),
|
|
87
|
-
),
|
|
88
|
-
no_interactive: { type: "boolean" },
|
|
89
|
-
},
|
|
90
|
-
strict: false,
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
const gitParts: string[] = [];
|
|
94
|
-
for (const [key, val] of Object.entries(values)) {
|
|
95
|
-
if (COMMIT_STATE_KEYS.includes(key as CommitStateKey)) {
|
|
96
|
-
flags.commit_args[key as CommitStateKey] = val as string;
|
|
97
|
-
} else if (key === "no_interactive") {
|
|
98
|
-
flags.no_interactive = val as boolean;
|
|
99
|
-
} else {
|
|
100
|
-
gitParts.push(val === true ? `--${key}` : `--${key}=${val}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
flags.git_args = gitParts.join(" ");
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### `src/utils.ts` — minor cleanup
|
|
107
|
-
|
|
108
|
-
- Remove `set_non_configuration_arguments()` function (parsing moves to `args.ts`)
|
|
109
|
-
- Remove its call inside `load_setup()`
|
|
110
|
-
- Remove the `argv` import from `process` (no longer needed here)
|
|
111
|
-
|
|
112
|
-
### `src/index.ts` — update each prompt
|
|
113
|
-
|
|
114
|
-
For each `CommitState` field where a prompt exists, apply the pattern:
|
|
115
|
-
|
|
116
|
-
```ts
|
|
117
|
-
// Pattern for text prompts (e.g. body)
|
|
118
|
-
if (config.commit_body.enable) {
|
|
119
|
-
const arg_value = flags.commit_args.body;
|
|
120
|
-
if (flags.no_interactive && arg_value !== undefined) {
|
|
121
|
-
commit_state.body = arg_value;
|
|
122
|
-
} else {
|
|
123
|
-
const commit_body = await p.text({
|
|
124
|
-
message: `Write a detailed description ...`,
|
|
125
|
-
initialValue: arg_value ?? get_value_from_cache(prompt_cache, "commit_body") ?? "",
|
|
126
|
-
...
|
|
127
|
-
});
|
|
128
|
-
...
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Fields and their prompt types:
|
|
134
|
-
|
|
135
|
-
| Field | Prompt type | Notes |
|
|
136
|
-
| ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------- |
|
|
137
|
-
| `type` | `p.select` | `initialValue` pre-selects; skip sets `commit_state.type` directly (also sets `trailer` from `value_to_data`) |
|
|
138
|
-
| `scope` | `p.select` | `initialValue` pre-selects; skip sets `commit_state.scope` directly |
|
|
139
|
-
| `ticket` | `p.text` | Pre-fills/skips the confirm-ticket prompt |
|
|
140
|
-
| `title` | `p.text` | Pre-fills/skips |
|
|
141
|
-
| `body` | `p.text` | Pre-fills/skips |
|
|
142
|
-
| `breaking_title` | `p.text` | Pre-fills/skips (inside footer block) |
|
|
143
|
-
| `breaking_body` | `p.text` | Pre-fills/skips (inside footer block) |
|
|
144
|
-
| `deprecates_title` | `p.text` | Pre-fills/skips (inside footer block) |
|
|
145
|
-
| `deprecates_body` | `p.text` | Pre-fills/skips (inside footer block) |
|
|
146
|
-
| `custom_footer` | `p.text` | Pre-fills/skips (inside footer block) |
|
|
147
|
-
| `closes` | n/a | Set directly in footer multiselect logic, no prompt to skip |
|
|
148
|
-
| `trailer` | n/a | Set from commit type; no standalone prompt |
|
|
149
|
-
|
|
150
|
-
**Note on `type` (select prompt):** `p.select` supports `initialValue`. When `--no-interactive` is set and `--type` is provided, we skip the prompt and set `commit_state.type` directly — but we must also derive and set `commit_state.trailer` from `value_to_data[type]` to avoid breaking downstream logic.
|
|
151
|
-
|
|
152
|
-
### Final confirmation — `src/index.ts` lines 333–345
|
|
153
|
-
|
|
154
|
-
The confirm-commit block currently:
|
|
155
|
-
|
|
156
|
-
1. Shows the commit preview via `p.note` (keep always)
|
|
157
|
-
2. Asks `p.confirm({ message: "Confirm Commit?" })` if `config.confirm_commit` is true (skip when `--no-interactive`)
|
|
158
|
-
|
|
159
|
-
When `--no-interactive` is set, the `p.confirm` call is bypassed and `continue_commit` is set to `true` directly, so execution falls through to `git commit` immediately after the preview.
|
|
160
|
-
|
|
161
|
-
## What Does NOT Change
|
|
162
|
-
|
|
163
|
-
- `src/branch.ts` — no CommitState fields, no changes
|
|
164
|
-
- `src/init.ts` — no arg parsing needed
|
|
165
|
-
- `tsup.config.ts`, `tsconfig.json`, `package.json` — no changes
|
|
166
|
-
- Published bundle size — no new runtime dependencies
|
|
167
|
-
|
|
168
|
-
## Example Usage
|
|
169
|
-
|
|
170
|
-
```sh
|
|
171
|
-
# Pre-fill mode (default): prompts shown with values pre-filled, user can still edit
|
|
172
|
-
better-commits --body="hello world" --type=feat
|
|
173
|
-
|
|
174
|
-
# Non-interactive mode: all provided fields skip prompts, preview shown, commit runs automatically
|
|
175
|
-
better-commits --no-interactive --body="hello world" --type=feat --title="add login"
|
|
176
|
-
|
|
177
|
-
# Combined with existing git passthrough args (behavior unchanged)
|
|
178
|
-
better-commits --git-dir="$HOME/.config" --work-tree="$HOME" --body="hello"
|
|
179
|
-
|
|
180
|
-
# All together
|
|
181
|
-
better-commits --no-interactive --git-dir="$HOME/.config" --work-tree="$HOME" --type=feat --title="init"
|
|
182
|
-
```
|
package/.svelte-kit/ambient.d.ts
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
// this file is generated — do not edit it
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/// <reference types="@sveltejs/kit" />
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
|
|
9
|
-
*
|
|
10
|
-
* _Unlike_ [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination.
|
|
11
|
-
*
|
|
12
|
-
* ```ts
|
|
13
|
-
* import { API_KEY } from '$env/static/private';
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
|
|
17
|
-
*
|
|
18
|
-
* ```
|
|
19
|
-
* MY_FEATURE_FLAG=""
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* You can override `.env` values from the command line like so:
|
|
23
|
-
*
|
|
24
|
-
* ```sh
|
|
25
|
-
* MY_FEATURE_FLAG="enabled" npm run dev
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
declare module '$env/static/private' {
|
|
29
|
-
export const WS_SNIPPETS_FILE: string;
|
|
30
|
-
export const NVM_INC: string;
|
|
31
|
-
export const MANWIDTH: string;
|
|
32
|
-
export const STARSHIP_SHELL: string;
|
|
33
|
-
export const TERM_PROGRAM: string;
|
|
34
|
-
export const WS_SCRIPTS: string;
|
|
35
|
-
export const NODE: string;
|
|
36
|
-
export const WS_ZSH: string;
|
|
37
|
-
export const DEV_FOLDER: string;
|
|
38
|
-
export const INIT_CWD: string;
|
|
39
|
-
export const NVM_CD_FLAGS: string;
|
|
40
|
-
export const WS_ALACRITTY: string;
|
|
41
|
-
export const TERM: string;
|
|
42
|
-
export const SHELL: string;
|
|
43
|
-
export const MYVIMRC: string;
|
|
44
|
-
export const WS_DOTFILES: string;
|
|
45
|
-
export const HOMEBREW_REPOSITORY: string;
|
|
46
|
-
export const TMPDIR: string;
|
|
47
|
-
export const npm_config_global_prefix: string;
|
|
48
|
-
export const TERM_PROGRAM_VERSION: string;
|
|
49
|
-
export const FPATH: string;
|
|
50
|
-
export const NODE_OPTIONS: string;
|
|
51
|
-
export const ZDOTDIR: string;
|
|
52
|
-
export const L: string;
|
|
53
|
-
export const COLOR: string;
|
|
54
|
-
export const npm_config_noproxy: string;
|
|
55
|
-
export const WS_CX_CLOUD: string;
|
|
56
|
-
export const npm_config_local_prefix: string;
|
|
57
|
-
export const PNPM_HOME: string;
|
|
58
|
-
export const NVM_DIR: string;
|
|
59
|
-
export const ZAP_PLUGIN_DIR: string;
|
|
60
|
-
export const USER: string;
|
|
61
|
-
export const COMMAND_MODE: string;
|
|
62
|
-
export const npm_config_globalconfig: string;
|
|
63
|
-
export const WS_FULL_METAL: string;
|
|
64
|
-
export const SSH_AUTH_SOCK: string;
|
|
65
|
-
export const __CF_USER_TEXT_ENCODING: string;
|
|
66
|
-
export const npm_execpath: string;
|
|
67
|
-
export const WS_AWESOME: string;
|
|
68
|
-
export const WEZTERM_EXECUTABLE_DIR: string;
|
|
69
|
-
export const PATH: string;
|
|
70
|
-
export const ZSHRC: string;
|
|
71
|
-
export const npm_package_json: string;
|
|
72
|
-
export const _: string;
|
|
73
|
-
export const STARSHIP_CONFIG: string;
|
|
74
|
-
export const npm_config_userconfig: string;
|
|
75
|
-
export const npm_config_init_module: string;
|
|
76
|
-
export const __CFBundleIdentifier: string;
|
|
77
|
-
export const npm_command: string;
|
|
78
|
-
export const PWD: string;
|
|
79
|
-
export const npm_lifecycle_event: string;
|
|
80
|
-
export const EDITOR: string;
|
|
81
|
-
export const npm_package_name: string;
|
|
82
|
-
export const LANG: string;
|
|
83
|
-
export const WS_SWITCHER: string;
|
|
84
|
-
export const WS_TOMATILLO: string;
|
|
85
|
-
export const WEZTERM_PANE: string;
|
|
86
|
-
export const NVIM_LOG_FILE: string;
|
|
87
|
-
export const npm_config_npm_version: string;
|
|
88
|
-
export const XPC_FLAGS: string;
|
|
89
|
-
export const npm_config_node_gyp: string;
|
|
90
|
-
export const WS_FLOTES: string;
|
|
91
|
-
export const MASON: string;
|
|
92
|
-
export const WS_PLAYGROUND: string;
|
|
93
|
-
export const NVIM: string;
|
|
94
|
-
export const npm_package_version: string;
|
|
95
|
-
export const WEZTERM_UNIX_SOCKET: string;
|
|
96
|
-
export const XPC_SERVICE_NAME: string;
|
|
97
|
-
export const SHLVL: string;
|
|
98
|
-
export const HOME: string;
|
|
99
|
-
export const MANPAGER: string;
|
|
100
|
-
export const WS_TASKS: string;
|
|
101
|
-
export const LIBGL_ALWAYS_SOFTWARE: string;
|
|
102
|
-
export const HOMEBREW_PREFIX: string;
|
|
103
|
-
export const WEZTERM_CONFIG_DIR: string;
|
|
104
|
-
export const npm_config_cache: string;
|
|
105
|
-
export const STARSHIP_SESSION_KEY: string;
|
|
106
|
-
export const LOGNAME: string;
|
|
107
|
-
export const npm_lifecycle_script: string;
|
|
108
|
-
export const WS_NOTES: string;
|
|
109
|
-
export const LC_CTYPE: string;
|
|
110
|
-
export const ZAP_DIR: string;
|
|
111
|
-
export const BUN_INSTALL: string;
|
|
112
|
-
export const WS_NVIM: string;
|
|
113
|
-
export const GOPATH: string;
|
|
114
|
-
export const NVM_BIN: string;
|
|
115
|
-
export const npm_config_user_agent: string;
|
|
116
|
-
export const WS_SVELTE_PLAYGROUND: string;
|
|
117
|
-
export const INFOPATH: string;
|
|
118
|
-
export const HOMEBREW_CELLAR: string;
|
|
119
|
-
export const npm_package_bin_bcommits: string;
|
|
120
|
-
export const WS_CHOICE_PLUS: string;
|
|
121
|
-
export const WEZTERM_EXECUTABLE: string;
|
|
122
|
-
export const WEZTERM_CONFIG_FILE: string;
|
|
123
|
-
export const npm_node_execpath: string;
|
|
124
|
-
export const npm_config_prefix: string;
|
|
125
|
-
export const WS_BLOG_FLOTES: string;
|
|
126
|
-
export const COLORTERM: string;
|
|
127
|
-
export const TEST: string;
|
|
128
|
-
export const VITEST: string;
|
|
129
|
-
export const NODE_ENV: string;
|
|
130
|
-
export const PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS: string;
|
|
131
|
-
export const PROD: string;
|
|
132
|
-
export const DEV: string;
|
|
133
|
-
export const BASE_URL: string;
|
|
134
|
-
export const MODE: string;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Similar to [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
|
|
139
|
-
*
|
|
140
|
-
* Values are replaced statically at build time.
|
|
141
|
-
*
|
|
142
|
-
* ```ts
|
|
143
|
-
* import { PUBLIC_BASE_URL } from '$env/static/public';
|
|
144
|
-
* ```
|
|
145
|
-
*/
|
|
146
|
-
declare module '$env/static/public' {
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
|
|
152
|
-
*
|
|
153
|
-
* This module cannot be imported into client-side code.
|
|
154
|
-
*
|
|
155
|
-
* ```ts
|
|
156
|
-
* import { env } from '$env/dynamic/private';
|
|
157
|
-
* console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE);
|
|
158
|
-
* ```
|
|
159
|
-
*
|
|
160
|
-
* > [!NOTE] In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
|
|
161
|
-
*/
|
|
162
|
-
declare module '$env/dynamic/private' {
|
|
163
|
-
export const env: {
|
|
164
|
-
WS_SNIPPETS_FILE: string;
|
|
165
|
-
NVM_INC: string;
|
|
166
|
-
MANWIDTH: string;
|
|
167
|
-
STARSHIP_SHELL: string;
|
|
168
|
-
TERM_PROGRAM: string;
|
|
169
|
-
WS_SCRIPTS: string;
|
|
170
|
-
NODE: string;
|
|
171
|
-
WS_ZSH: string;
|
|
172
|
-
DEV_FOLDER: string;
|
|
173
|
-
INIT_CWD: string;
|
|
174
|
-
NVM_CD_FLAGS: string;
|
|
175
|
-
WS_ALACRITTY: string;
|
|
176
|
-
TERM: string;
|
|
177
|
-
SHELL: string;
|
|
178
|
-
MYVIMRC: string;
|
|
179
|
-
WS_DOTFILES: string;
|
|
180
|
-
HOMEBREW_REPOSITORY: string;
|
|
181
|
-
TMPDIR: string;
|
|
182
|
-
npm_config_global_prefix: string;
|
|
183
|
-
TERM_PROGRAM_VERSION: string;
|
|
184
|
-
FPATH: string;
|
|
185
|
-
NODE_OPTIONS: string;
|
|
186
|
-
ZDOTDIR: string;
|
|
187
|
-
L: string;
|
|
188
|
-
COLOR: string;
|
|
189
|
-
npm_config_noproxy: string;
|
|
190
|
-
WS_CX_CLOUD: string;
|
|
191
|
-
npm_config_local_prefix: string;
|
|
192
|
-
PNPM_HOME: string;
|
|
193
|
-
NVM_DIR: string;
|
|
194
|
-
ZAP_PLUGIN_DIR: string;
|
|
195
|
-
USER: string;
|
|
196
|
-
COMMAND_MODE: string;
|
|
197
|
-
npm_config_globalconfig: string;
|
|
198
|
-
WS_FULL_METAL: string;
|
|
199
|
-
SSH_AUTH_SOCK: string;
|
|
200
|
-
__CF_USER_TEXT_ENCODING: string;
|
|
201
|
-
npm_execpath: string;
|
|
202
|
-
WS_AWESOME: string;
|
|
203
|
-
WEZTERM_EXECUTABLE_DIR: string;
|
|
204
|
-
PATH: string;
|
|
205
|
-
ZSHRC: string;
|
|
206
|
-
npm_package_json: string;
|
|
207
|
-
_: string;
|
|
208
|
-
STARSHIP_CONFIG: string;
|
|
209
|
-
npm_config_userconfig: string;
|
|
210
|
-
npm_config_init_module: string;
|
|
211
|
-
__CFBundleIdentifier: string;
|
|
212
|
-
npm_command: string;
|
|
213
|
-
PWD: string;
|
|
214
|
-
npm_lifecycle_event: string;
|
|
215
|
-
EDITOR: string;
|
|
216
|
-
npm_package_name: string;
|
|
217
|
-
LANG: string;
|
|
218
|
-
WS_SWITCHER: string;
|
|
219
|
-
WS_TOMATILLO: string;
|
|
220
|
-
WEZTERM_PANE: string;
|
|
221
|
-
NVIM_LOG_FILE: string;
|
|
222
|
-
npm_config_npm_version: string;
|
|
223
|
-
XPC_FLAGS: string;
|
|
224
|
-
npm_config_node_gyp: string;
|
|
225
|
-
WS_FLOTES: string;
|
|
226
|
-
MASON: string;
|
|
227
|
-
WS_PLAYGROUND: string;
|
|
228
|
-
NVIM: string;
|
|
229
|
-
npm_package_version: string;
|
|
230
|
-
WEZTERM_UNIX_SOCKET: string;
|
|
231
|
-
XPC_SERVICE_NAME: string;
|
|
232
|
-
SHLVL: string;
|
|
233
|
-
HOME: string;
|
|
234
|
-
MANPAGER: string;
|
|
235
|
-
WS_TASKS: string;
|
|
236
|
-
LIBGL_ALWAYS_SOFTWARE: string;
|
|
237
|
-
HOMEBREW_PREFIX: string;
|
|
238
|
-
WEZTERM_CONFIG_DIR: string;
|
|
239
|
-
npm_config_cache: string;
|
|
240
|
-
STARSHIP_SESSION_KEY: string;
|
|
241
|
-
LOGNAME: string;
|
|
242
|
-
npm_lifecycle_script: string;
|
|
243
|
-
WS_NOTES: string;
|
|
244
|
-
LC_CTYPE: string;
|
|
245
|
-
ZAP_DIR: string;
|
|
246
|
-
BUN_INSTALL: string;
|
|
247
|
-
WS_NVIM: string;
|
|
248
|
-
GOPATH: string;
|
|
249
|
-
NVM_BIN: string;
|
|
250
|
-
npm_config_user_agent: string;
|
|
251
|
-
WS_SVELTE_PLAYGROUND: string;
|
|
252
|
-
INFOPATH: string;
|
|
253
|
-
HOMEBREW_CELLAR: string;
|
|
254
|
-
npm_package_bin_bcommits: string;
|
|
255
|
-
WS_CHOICE_PLUS: string;
|
|
256
|
-
WEZTERM_EXECUTABLE: string;
|
|
257
|
-
WEZTERM_CONFIG_FILE: string;
|
|
258
|
-
npm_node_execpath: string;
|
|
259
|
-
npm_config_prefix: string;
|
|
260
|
-
WS_BLOG_FLOTES: string;
|
|
261
|
-
COLORTERM: string;
|
|
262
|
-
TEST: string;
|
|
263
|
-
VITEST: string;
|
|
264
|
-
NODE_ENV: string;
|
|
265
|
-
PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS: string;
|
|
266
|
-
PROD: string;
|
|
267
|
-
DEV: string;
|
|
268
|
-
BASE_URL: string;
|
|
269
|
-
MODE: string;
|
|
270
|
-
[key: `PUBLIC_${string}`]: undefined;
|
|
271
|
-
[key: `${string}`]: string | undefined;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Similar to [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
|
|
277
|
-
*
|
|
278
|
-
* Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead.
|
|
279
|
-
*
|
|
280
|
-
* ```ts
|
|
281
|
-
* import { env } from '$env/dynamic/public';
|
|
282
|
-
* console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE);
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
declare module '$env/dynamic/public' {
|
|
286
|
-
export const env: {
|
|
287
|
-
[key: `PUBLIC_${string}`]: string | undefined;
|
|
288
|
-
}
|
|
289
|
-
}
|