Skip to content

Commit 94b2ac6

Browse files
committed
🚚 rename from Configliere -> @bomb.sh router
1 parent f55c09f commit 94b2ac6

12 files changed

Lines changed: 41 additions & 116 deletions

File tree

‎.github/workflows/publish.yml‎

Lines changed: 2 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,6 @@ permissions:
1010
id-token: write
1111

1212
jobs:
13-
verify-jsr:
14-
runs-on: ubuntu-latest
15-
steps:
16-
- name: checkout
17-
uses: actions/checkout@v4
18-
19-
- name: setup deno
20-
uses: denoland/setup-deno@v2
21-
with:
22-
deno-version: v2.x
23-
24-
- name: Get Version
25-
id: vars
26-
run: echo ::set-output name=version::$(echo ${{github.ref_name}} | sed 's/^v//')
27-
28-
- name: Build JSR
29-
run: deno task build:jsr ${{steps.vars.outputs.version}}
30-
31-
- name: dry run publish
32-
run: npx jsr publish --dry-run --allow-dirty --token=${{secrets.JSR_TOKEN}}
33-
3413
verify-npm:
3514
runs-on: ubuntu-latest
3615
steps:
@@ -55,7 +34,7 @@ jobs:
5534
run: deno task build:npm ${{steps.vars.outputs.version}}
5635

5736
- name: dry run publish
58-
run: npm publish --dry-run --tag=verify
37+
run: npm publish --dry-run --access=public --tag=verify
5938
working-directory: ./build/npm
6039

6140
- name: upload build
@@ -65,7 +44,7 @@ jobs:
6544
path: ./build/npm
6645

6746
publish-npm:
68-
needs: [verify-jsr, verify-npm]
47+
needs: verify-npm
6948
runs-on: ubuntu-latest
7049

7150
steps:
@@ -83,26 +62,3 @@ jobs:
8362
- name: Publish NPM
8463
run: npm publish --access=public --tag=latest
8564
working-directory: ./build/npm
86-
87-
publish-jsr:
88-
needs: [verify-jsr, verify-npm]
89-
runs-on: ubuntu-latest
90-
91-
steps:
92-
- name: checkout
93-
uses: actions/checkout@v4
94-
95-
- name: setup deno
96-
uses: denoland/setup-deno@v2
97-
with:
98-
deno-version: v2.x
99-
100-
- name: Get Version
101-
id: vars
102-
run: echo ::set-output name=version::$(echo ${{github.ref_name}} | sed 's/^v//')
103-
104-
- name: Build JSR
105-
run: deno task build:jsr ${{steps.vars.outputs.version}}
106-
107-
- name: Publish JSR
108-
run: npx jsr publish --allow-dirty --token=${{secrets.JSR_TOKEN}}

‎AGENTS.md‎

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
# Configliere
1+
# @bomb.sh/router
22

33
Configuration for programs.
44

5-
## Current state
6-
7-
Configliere is undergoing a ground-up rebuild. No implementation architecture is
8-
established yet. Design from the bottom up with small API sketches, exact type
9-
expectations, and tests before implementation. Do not carry architectural
10-
assumptions forward from pre-rebuild history.
11-
125
## Design references
136

147
- Read [`docs/insights.md`](docs/insights.md) before changing the architecture;
@@ -44,10 +37,10 @@ Strongly prefer one-word variable and function names (e.g. `dir` not `tmpDir`,
4437
### Runtime and tooling
4538

4639
- **Runtime**: Deno
47-
- **Registry**: JSR (`@frontside/configliere`)
40+
- **Registry**: npm (`@bomb.sh/router`)
4841
- **Linting**: `deno lint` (excludes `prefer-const`)
4942
- **Testing**: `deno task test`
50-
- **Build**: `deno task build:npm` (dnt) and `deno task build:jsr`
43+
- **Build**: `deno task build:npm` (dnt)
5144

5245
### Dependencies
5346

‎README.md‎

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# Configliere
1+
# @bomb.sh/router
22

33
**A statically typed entry-point router for command-line applications.**
44

5-
An argument parser tells you what the user typed. Configliere tells you where
6-
and how they intend to enter your program. For execution, it marshals a
5+
An argument parser tells you what the user typed. `@bomb.sh/router` tells you
6+
where and how they intend to enter your program. For execution, it binds a
77
validated, statically typed model for that entry point.
88

9-
Configliere matches input to an intent: a method at an application-relative
10-
route, such as:
9+
`@bomb.sh/router` matches input to an intent: a method at an
10+
application-relative route, such as:
1111

1212
```text
1313
HELP /
@@ -20,18 +20,15 @@ EXECUTE /database/clean
2020
Every reachable intent appears in the result type. Narrow `method` and `route`,
2121
and TypeScript knows the exact model available at that entry point.
2222

23-
Configliere is not a CLI framework. It does not own handlers, effects, output,
24-
or process lifetime. It is not a CLI parser whose product is a bag of flags. Its
25-
product is a typed intent; your application decides what that intent does.
26-
27-
```text
28-
input → bind and expand phases → resolve route + method → intent
29-
```
23+
`@bomb.sh/router` is not a CLI framework. It does not own handlers, effects,
24+
output, or process lifetime. It is not a CLI parser whose product is a bag of
25+
flags. Its product is a typed intent; your application decides what that intent
26+
does.
3027

3128
## Define every way into the program
3229

33-
`route()` declares an address. `command()` declares an executable route. Every
34-
route supports help; version and execution exist only where they are explicitly
30+
`route()` declares an address, and every `command()` is just an address that declares an intent to execute. Every
31+
route supports help, whereas version and execution exist only where they are explicitly
3532
added.
3633

3734
Definitions are immutable composition pipelines, not handler registrations:
@@ -47,7 +44,7 @@ import {
4744
schema,
4845
toggle,
4946
version,
50-
} from "@frontside/configliere";
47+
} from "@bomb.sh/router";
5148
import * as z from "zod";
5249

5350
export const app = command(
@@ -92,12 +89,7 @@ can stay flat even when the route tree is deep:
9289

9390
```ts
9491
import process from "node:process";
95-
import {
96-
parse,
97-
printErrors,
98-
printHelp,
99-
printVersion,
100-
} from "@frontside/configliere";
92+
import { parse, printErrors, printHelp, printVersion } from "@bomb.sh/router";
10193
import { app } from "./app.ts";
10294

10395
const result = parse(app, { argv: process.argv.slice(2) });
@@ -152,14 +144,14 @@ An execute intent has two views of configuration:
152144
| `simulacrum serve --port nope` | `unprocessable-content`; invalid data never reaches the application |
153145

154146
Command literals are routing tokens, not positional arguments. As route segments
155-
become discoverable, Configliere scopes parameter binding to the segment that
156-
owns each token. This makes identical option names on parent and child routes
157-
unambiguous.
147+
become discoverable, `@bomb.sh/router` scopes parameter binding to the segment
148+
that owns each token. This makes identical option names on parent and child
149+
routes unambiguous.
158150

159-
## Marshal configuration into the route
151+
## Bind route parameters from multiple sources
160152

161-
CLI arguments are only one source. Configliere can marshal JavaScript values and
162-
flat environment records into the same route-local models:
153+
CLI arguments are only one source. `@bomb.sh/router` can bind JavaScript
154+
values and flat environment records onto the same route-local models:
163155

164156
```ts
165157
const result = parse(app, {
@@ -190,8 +182,8 @@ CLI → environment → JavaScript values → schema default
190182
## Pause without surrendering the type system
191183

192184
Sometimes the route cannot be fully configured, or even fully discovered, until
193-
the application performs I/O. Configliere can pause at a typed checkpoint and
194-
resume with the result.
185+
the application performs I/O. `@bomb.sh/router` can pause at a typed checkpoint
186+
and resume with the result.
195187

196188
Dynamic phases serve two common cases:
197189

@@ -206,9 +198,9 @@ exact type of what parsing can produce next.
206198
### Help and version cross checkpoints
207199

208200
`--help` and `--version` request methods; they do not settle an intent or bypass
209-
parsing. Configliere cannot produce either intent until it knows the deepest
210-
selected route. A dynamic phase may introduce that route, its options, or its
211-
version.
201+
parsing. `@bomb.sh/router` cannot produce either intent until it knows the
202+
deepest selected route. A dynamic phase may introduce that route, its options,
203+
or its version.
212204

213205
The driver must therefore resume every increment until parsing returns an
214206
intent—even when the arguments contain `--help` or `--version`. This applies
@@ -246,7 +238,7 @@ import {
246238
schema,
247239
type ValueSource,
248240
version,
249-
} from "@frontside/configliere";
241+
} from "@bomb.sh/router";
250242
import * as z from "zod";
251243

252244
const app = command(

‎deno.json‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
2-
"name": "@frontside/configliere",
2+
"name": "@bomb.sh/router",
33
"exports": "./mod.ts",
44
"license": "MIT",
5-
"publish": { "include": ["lib", "mod.ts", "README.md", "LICENSE.md"] },
65
"imports": {
76
"@std/expect": "jsr:@std/expect@^1.0.19",
87
"@std/testing/bdd": "jsr:@std/testing@^1.0.19/bdd",
@@ -16,7 +15,6 @@
1615
},
1716
"tasks": {
1817
"test": "deno test",
19-
"build:npm": "deno run -A tasks/build-npm.ts",
20-
"build:jsr": "deno run -A tasks/build-jsr.ts"
18+
"build:npm": "deno run -A tasks/build-npm.ts"
2119
}
2220
}

‎diagnostics/node-ts5/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "configliere-node-ts5-diagnostics",
2+
"name": "@bomb.sh/router-node-ts5-diagnostics",
33
"private": true,
44
"type": "module",
55
"scripts": {

‎docs/insights.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Configliere invariants
1+
# @bomb.sh/router invariants
22

33
These principles are drawn from the current rebuild and earlier design
44
transcripts. Current decisions take precedence over superseded architectures.

‎images/configliere.jpeg‎

-103 KB
Binary file not shown.

‎lib/param.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ interface SchemaTransform<S extends Schema> extends Transform {
6868
const unknown: Schema<unknown> = {
6969
"~standard": {
7070
version: 1,
71-
vendor: "configliere",
71+
vendor: "@bomb.sh/router",
7272
validate: (value) => ({ value }),
7373
},
7474
};

‎lib/toggle.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function reader(name: string): ReadCLI {
107107
const bool: Schema<boolean> = {
108108
"~standard": {
109109
version: 1,
110-
vendor: "configliere",
110+
vendor: "@bomb.sh/router",
111111
validate(value) {
112112
return typeof value === "undefined"
113113
? { value: false }

‎tasks/build-jsr.ts‎

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)