@ts-pf/codegen 0.1.7 → 0.1.9
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 +21 -0
- package/README.md +7 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -4
- package/dist/cli.js.map +1 -1
- package/dist/print-type.d.ts +2 -1
- package/dist/print-type.d.ts.map +1 -1
- package/dist/tree.d.ts +3 -2
- package/dist/tree.d.ts.map +1 -1
- package/package.json +9 -6
- package/skills/ts-pf-codegen/SKILL.md +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ts-pf contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -33,15 +33,17 @@ if (!result.ok && result.error.code === 'NOT_FOUND') {
|
|
|
33
33
|
## `emit` / `catalogHash`
|
|
34
34
|
|
|
35
35
|
```ts
|
|
36
|
+
import { catalog } from '@ts-pf/docs'
|
|
36
37
|
import { emit, catalogHash, type EmitOptions } from '@ts-pf/codegen'
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
const spec = catalog(contract, { prefix: '/rpc' })
|
|
40
|
+
emit(spec, {
|
|
39
41
|
name: 'Contract', // default
|
|
40
42
|
failOnUnavailable: false, // default; true throws on kind: 'unavailable'
|
|
41
43
|
banner: true, // catalogVersion + sha256 hash
|
|
42
44
|
})
|
|
43
45
|
|
|
44
|
-
catalogHash(
|
|
46
|
+
catalogHash(spec) // 'sha256:<hex>' of canonical JSON
|
|
45
47
|
```
|
|
46
48
|
|
|
47
49
|
Generated procedures are `ContractProcedure<I, O, E>` with Phantom Standard Schema leaves so `InferErrorData` / `asResult` still narrow `error.code === 'NOT_FOUND'`. Protocol errors stay out of the generated error map (`ClientError` already unions them). No-input is `void`. Streams are `AsyncIterable<Item>`.
|
|
@@ -58,9 +60,10 @@ The generated file uses `import type { ContractProcedure } from '@ts-pf/contract
|
|
|
58
60
|
ts-pf-codegen emit <catalog.json|-> [-o contract.d.ts] [--name Contract] [--fail-on-unavailable]
|
|
59
61
|
ts-pf-codegen pull <url> [-o contract.d.ts] [--lock catalog.lock.json]
|
|
60
62
|
ts-pf-codegen hash <catalog.json|->
|
|
63
|
+
ts-pf-codegen --help
|
|
61
64
|
```
|
|
62
65
|
|
|
63
|
-
`emit` and `hash` read stdin when the path is `-`. Omit `-o` to write the `.d.ts` to stdout.
|
|
66
|
+
`emit` and `hash` read stdin when the path is `-`. Omit `-o` to write the `.d.ts` to stdout. `--help` / `-h` print usage and exit 0; no command prints usage to stderr and exits 1. Run it as `npx ts-pf-codegen …` or from an npm script — the bin resolves through the `node_modules/.bin` symlink.
|
|
64
67
|
|
|
65
68
|
Commit `contract.d.ts`, or CI-run `ts-pf-codegen pull` and pin `catalog.lock.json`:
|
|
66
69
|
|
|
@@ -78,7 +81,7 @@ Mismatch on pull exits non-zero. No registry in v1.
|
|
|
78
81
|
|
|
79
82
|
Do **not** put this on `FetchHandler`. A GET under `/rpc/...` is a procedure miss / `METHOD_NOT_ALLOWED`, not a spec.
|
|
80
83
|
|
|
81
|
-
```ts
|
|
84
|
+
```ts no-check
|
|
82
85
|
// Userland — not FetchHandler, not @ts-pf/codegen:
|
|
83
86
|
if (url.pathname === '/catalog.json') {
|
|
84
87
|
return Response.json(catalog(contract, { prefix: '/rpc' }))
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IACtC,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC1C,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,KAAK,EAAE,OAAO,KAAK,CAAA;CACpB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IACtC,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC1C,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,KAAK,EAAE,OAAO,KAAK,CAAA;CACpB,CAAA;AASD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBvE"}
|
package/dist/cli.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from 'node:fs';
|
|
2
3
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { resolve } from 'node:path';
|
|
4
4
|
import { stderr as nodeStderr, stdin as nodeStdin, stdout as nodeStdout, } from 'node:process';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import { emit } from './emit.js';
|
|
7
7
|
import { catalogHash } from './hash.js';
|
|
8
8
|
const USAGE = 'Usage: ts-pf-codegen <emit|pull|hash> …\n' +
|
|
9
|
-
' ts-pf-codegen emit <catalog.json
|
|
9
|
+
' ts-pf-codegen emit <catalog.json|-> [-o contract.d.ts] [--name Contract] [--fail-on-unavailable]\n' +
|
|
10
10
|
' ts-pf-codegen pull <url> [-o contract.d.ts] [--lock catalog.lock.json]\n' +
|
|
11
|
-
' ts-pf-codegen hash <catalog.json
|
|
11
|
+
' ts-pf-codegen hash <catalog.json|->\n' +
|
|
12
|
+
' ts-pf-codegen --help\n';
|
|
12
13
|
export async function runCli(argv, io) {
|
|
13
14
|
const [cmd, ...rest] = argv;
|
|
15
|
+
if (cmd === '--help' || cmd === '-h') {
|
|
16
|
+
io.stdout.write(USAGE);
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
14
19
|
if (cmd === 'emit') {
|
|
15
20
|
return emitCmd(rest, io);
|
|
16
21
|
}
|
|
@@ -196,13 +201,18 @@ async function readStdin() {
|
|
|
196
201
|
}
|
|
197
202
|
return Buffer.concat(chunks).toString('utf8');
|
|
198
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* True when this module is the entry script. `process.argv[1]` is the
|
|
206
|
+
* `node_modules/.bin/ts-pf-codegen` symlink under `npx` / npm scripts, so
|
|
207
|
+
* both sides go through `realpathSync` before comparing.
|
|
208
|
+
*/
|
|
199
209
|
function isMain() {
|
|
200
210
|
const argv1 = process.argv[1];
|
|
201
211
|
if (argv1 === undefined) {
|
|
202
212
|
return false;
|
|
203
213
|
}
|
|
204
214
|
try {
|
|
205
|
-
return fileURLToPath(import.meta.url) ===
|
|
215
|
+
return realpathSync(fileURLToPath(import.meta.url)) === realpathSync(argv1);
|
|
206
216
|
}
|
|
207
217
|
catch {
|
|
208
218
|
return false;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/print-type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type PrintResult = {
|
|
2
2
|
ts: string;
|
|
3
3
|
aliases: Array<{
|
|
4
4
|
name: string;
|
|
@@ -8,4 +8,5 @@ export type PrintResult = {
|
|
|
8
8
|
export declare function printJsonSchema(schema: unknown, ctx: {
|
|
9
9
|
prefix: string;
|
|
10
10
|
}): PrintResult;
|
|
11
|
+
export {};
|
|
11
12
|
//# sourceMappingURL=print-type.d.ts.map
|
package/dist/print-type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-type.d.ts","sourceRoot":"","sources":["../src/print-type.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"print-type.d.ts","sourceRoot":"","sources":["../src/print-type.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7C,CAAA;AAkCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACtB,WAAW,CAIb"}
|
package/dist/tree.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { CatalogProcedure } from '@ts-pf/docs';
|
|
2
|
-
|
|
2
|
+
type ProcNode = {
|
|
3
3
|
kind: 'proc';
|
|
4
4
|
proc: CatalogProcedure;
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
type NsNode = {
|
|
7
7
|
kind: 'ns';
|
|
8
8
|
children: Map<string, TreeNode>;
|
|
9
9
|
};
|
|
10
10
|
export type TreeNode = ProcNode | NsNode;
|
|
11
11
|
export declare function buildTree(procedures: readonly CatalogProcedure[]): Map<string, TreeNode>;
|
|
12
|
+
export {};
|
|
12
13
|
//# sourceMappingURL=tree.d.ts.map
|
package/dist/tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAA;AACxD,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAExC,wBAAgB,SAAS,CACvB,UAAU,EAAE,SAAS,gBAAgB,EAAE,GACtC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAMvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-pf/codegen",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Opt-in .d.ts codegen from catalog() for split-repo createClient",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ts-pf",
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
"typed-client"
|
|
16
16
|
],
|
|
17
17
|
"license": "MIT",
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=22"
|
|
20
|
+
},
|
|
18
21
|
"repository": {
|
|
19
22
|
"type": "git",
|
|
20
23
|
"url": "git+https://github.com/crobinson42/ts-pf.git",
|
|
@@ -49,15 +52,15 @@
|
|
|
49
52
|
"lint": "biome check src tests"
|
|
50
53
|
},
|
|
51
54
|
"dependencies": {
|
|
52
|
-
"@ts-pf/docs": "0.1.
|
|
55
|
+
"@ts-pf/docs": "0.1.8"
|
|
53
56
|
},
|
|
54
57
|
"devDependencies": {
|
|
55
|
-
"@ts-pf/client": "0.1
|
|
56
|
-
"@ts-pf/contract": "0.1
|
|
57
|
-
"@ts-pf/stream": "0.1
|
|
58
|
+
"@ts-pf/client": "0.2.1",
|
|
59
|
+
"@ts-pf/contract": "0.2.1",
|
|
60
|
+
"@ts-pf/stream": "0.2.1",
|
|
58
61
|
"@types/node": "^22.15.0",
|
|
59
62
|
"typebox": "^1.3.24",
|
|
60
|
-
"typescript": "^
|
|
63
|
+
"typescript": "^6.0.3",
|
|
61
64
|
"zod": "^4.0.0"
|
|
62
65
|
}
|
|
63
66
|
}
|
|
@@ -5,7 +5,7 @@ description: Use when emitting a split-repo ts-pf Contract .d.ts from catalog()
|
|
|
5
5
|
|
|
6
6
|
# @ts-pf/codegen
|
|
7
7
|
|
|
8
|
-
Print a nested `Contract` `.d.ts` from `catalog()`. Frontend still uses `createClient<Contract>(link)`.
|
|
8
|
+
Print a nested `Contract` `.d.ts` from `catalog()`. Frontend still uses `createClient<Contract>(link)`. Example: `examples/codegen`.
|
|
9
9
|
|
|
10
10
|
Install: `npm i @ts-pf/codegen`
|
|
11
11
|
|
|
@@ -34,7 +34,7 @@ const client = createClient<Contract>(new FetchLink({ url: '/rpc' }))
|
|
|
34
34
|
|
|
35
35
|
`emit()` prints JSDoc from `docs()` (`description` / `summary` / `@deprecated`) onto `Contract` members. Other `.meta()` stays on the catalog — ship `catalog.json` beside the `.d.ts` for runtime policy (`CachePlugin` `key`, etc.). Hover on `client.planet.find` may not show that JSDoc (`ContractClient` is a mapped type).
|
|
36
36
|
|
|
37
|
-
CLI: `ts-pf-codegen emit <catalog.json|-> [-o contract.d.ts]`. Also `pull` / `hash
|
|
37
|
+
CLI: `npx ts-pf-codegen emit <catalog.json|-> [-o contract.d.ts]`. Also `pull` / `hash`; `--help` / `-h` print usage. Serve `catalog.json` in userland, not `FetchHandler`.
|
|
38
38
|
|
|
39
39
|
## API
|
|
40
40
|
|