@vymalo/opencode-devtools 0.11.0 → 0.14.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/dist/catalog.d.ts +7 -7
- package/dist/catalog.js +27 -26
- package/dist/catalog.js.map +1 -1
- package/dist/groups/codec.js +162 -135
- package/dist/groups/codec.js.map +1 -1
- package/dist/groups/convert.js +116 -89
- package/dist/groups/convert.js.map +1 -1
- package/dist/groups/crypto.js +247 -186
- package/dist/groups/crypto.js.map +1 -1
- package/dist/groups/datetime.js +265 -215
- package/dist/groups/datetime.js.map +1 -1
- package/dist/groups/http.d.ts +6 -6
- package/dist/groups/http.js +272 -248
- package/dist/groups/http.js.map +1 -1
- package/dist/groups/math.js +157 -127
- package/dist/groups/math.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/logging.d.ts +6 -6
- package/dist/logging.js +59 -62
- package/dist/logging.js.map +1 -1
- package/dist/opencode.d.ts +4 -4
- package/dist/opencode.js +71 -75
- package/dist/opencode.js.map +1 -1
- package/dist/schema.d.ts +41 -41
- package/dist/schema.js +43 -48
- package/dist/schema.js.map +1 -1
- package/dist/tool-spec.d.ts +27 -27
- package/dist/tool-spec.js +24 -16
- package/dist/tool-spec.js.map +1 -1
- package/dist/tools.d.ts +8 -8
- package/dist/tools.js +80 -73
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +27 -27
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/groups/crypto.js
CHANGED
|
@@ -1,205 +1,266 @@
|
|
|
1
1
|
import { createHash, createHmac, generateKeyPairSync } from "node:crypto";
|
|
2
2
|
import { json, reqNumber, reqString, text } from "../tool-spec.js";
|
|
3
|
-
const HASH_ALGORITHMS = [
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const HASH_ALGORITHMS = [
|
|
4
|
+
"md5",
|
|
5
|
+
"sha1",
|
|
6
|
+
"sha256",
|
|
7
|
+
"sha512"
|
|
8
|
+
];
|
|
9
|
+
const BYTE_ENCODINGS = [
|
|
10
|
+
"utf8",
|
|
11
|
+
"hex",
|
|
12
|
+
"base64"
|
|
13
|
+
];
|
|
14
|
+
const OUT_ENCODINGS = [
|
|
15
|
+
"hex",
|
|
16
|
+
"base64",
|
|
17
|
+
"base64url"
|
|
18
|
+
];
|
|
6
19
|
function asBuffer(value, encoding) {
|
|
7
|
-
|
|
20
|
+
return Buffer.from(value, encoding);
|
|
8
21
|
}
|
|
9
22
|
// ─── UUID (v4 / v7) over injected randomness + clock ─────────────────────────
|
|
10
23
|
function uuidV4(ctx) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
const b = Buffer.from(ctx.randomBytes(16));
|
|
25
|
+
b[6] = b[6] & 15 | 64;
|
|
26
|
+
b[8] = b[8] & 63 | 128;
|
|
27
|
+
const h = b.toString("hex");
|
|
28
|
+
return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
|
|
16
29
|
}
|
|
17
30
|
function uuidV7(ctx) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
const ms = ctx.now().getTime();
|
|
32
|
+
const b = Buffer.from(ctx.randomBytes(16));
|
|
33
|
+
b.writeUIntBE(ms, 0, 6);
|
|
34
|
+
b[6] = b[6] & 15 | 112;
|
|
35
|
+
b[8] = b[8] & 63 | 128;
|
|
36
|
+
const h = b.toString("hex");
|
|
37
|
+
return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
|
|
25
38
|
}
|
|
26
39
|
// ─── ULID (Crockford base32, 48-bit time + 80-bit randomness) ────────────────
|
|
27
|
-
const MAX_COUNT =
|
|
40
|
+
const MAX_COUNT = 1e3;
|
|
28
41
|
/** Clamp a requested identifier count to [1, MAX_COUNT] so a caller can't ask for millions. */
|
|
29
42
|
function clampCount(raw) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
43
|
+
if (typeof raw !== "number" || Number.isNaN(raw)) {
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
return Math.min(MAX_COUNT, Math.max(1, Math.floor(raw)));
|
|
34
47
|
}
|
|
35
48
|
const CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
36
49
|
function ulid(ctx) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
let ms = ctx.now().getTime();
|
|
51
|
+
let time = "";
|
|
52
|
+
for (let i = 0; i < 10; i++) {
|
|
53
|
+
time = CROCKFORD[ms % 32] + time;
|
|
54
|
+
ms = Math.floor(ms / 32);
|
|
55
|
+
}
|
|
56
|
+
let bits = 0n;
|
|
57
|
+
for (const byte of ctx.randomBytes(10)) {
|
|
58
|
+
bits = bits << 8n | BigInt(byte);
|
|
59
|
+
}
|
|
60
|
+
let rand = "";
|
|
61
|
+
for (let i = 0; i < 16; i++) {
|
|
62
|
+
rand = CROCKFORD[Number(bits & 31n)] + rand;
|
|
63
|
+
bits >>= 5n;
|
|
64
|
+
}
|
|
65
|
+
return time + rand;
|
|
53
66
|
}
|
|
54
67
|
export const CRYPTO_TOOLS = [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
68
|
+
{
|
|
69
|
+
name: "crypto_hash",
|
|
70
|
+
group: "crypto",
|
|
71
|
+
description: "Compute a cryptographic hash digest (md5, sha1, sha256, sha512) of some input.",
|
|
72
|
+
input: {
|
|
73
|
+
algorithm: {
|
|
74
|
+
type: "string",
|
|
75
|
+
enum: HASH_ALGORITHMS,
|
|
76
|
+
description: "Digest algorithm."
|
|
77
|
+
},
|
|
78
|
+
input: {
|
|
79
|
+
type: "string",
|
|
80
|
+
description: "Data to hash."
|
|
81
|
+
},
|
|
82
|
+
inputEncoding: {
|
|
83
|
+
type: "string",
|
|
84
|
+
optional: true,
|
|
85
|
+
enum: BYTE_ENCODINGS,
|
|
86
|
+
description: "How to interpret `input` (default utf8)."
|
|
87
|
+
},
|
|
88
|
+
outputEncoding: {
|
|
89
|
+
type: "string",
|
|
90
|
+
optional: true,
|
|
91
|
+
enum: OUT_ENCODINGS,
|
|
92
|
+
description: "Digest encoding (default hex)."
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
handler: (args) => {
|
|
96
|
+
const algorithm = reqString(args, "algorithm");
|
|
97
|
+
const input = reqString(args, "input");
|
|
98
|
+
const inEnc = typeof args.inputEncoding === "string" ? args.inputEncoding : "utf8";
|
|
99
|
+
const outEnc = typeof args.outputEncoding === "string" ? args.outputEncoding : "hex";
|
|
100
|
+
const digest = createHash(algorithm).update(asBuffer(input, inEnc)).digest(outEnc);
|
|
101
|
+
return text(digest);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "crypto_hmac",
|
|
106
|
+
group: "crypto",
|
|
107
|
+
description: "Compute a keyed HMAC (md5, sha1, sha256, sha512) over some input.",
|
|
108
|
+
input: {
|
|
109
|
+
algorithm: {
|
|
110
|
+
type: "string",
|
|
111
|
+
enum: HASH_ALGORITHMS,
|
|
112
|
+
description: "Underlying hash."
|
|
113
|
+
},
|
|
114
|
+
key: {
|
|
115
|
+
type: "string",
|
|
116
|
+
description: "Secret key (utf8)."
|
|
117
|
+
},
|
|
118
|
+
input: {
|
|
119
|
+
type: "string",
|
|
120
|
+
description: "Data to authenticate (utf8)."
|
|
121
|
+
},
|
|
122
|
+
outputEncoding: {
|
|
123
|
+
type: "string",
|
|
124
|
+
optional: true,
|
|
125
|
+
enum: OUT_ENCODINGS,
|
|
126
|
+
description: "Digest encoding (default hex)."
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
handler: (args) => {
|
|
130
|
+
const algorithm = reqString(args, "algorithm");
|
|
131
|
+
const key = reqString(args, "key");
|
|
132
|
+
const input = reqString(args, "input");
|
|
133
|
+
const outEnc = typeof args.outputEncoding === "string" ? args.outputEncoding : "hex";
|
|
134
|
+
return text(createHmac(algorithm, key).update(input, "utf8").digest(outEnc));
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "crypto_uuid",
|
|
139
|
+
group: "crypto",
|
|
140
|
+
description: "Generate a UUID. Version 4 is random; version 7 is time-ordered (sortable, good for database keys).",
|
|
141
|
+
input: {
|
|
142
|
+
version: {
|
|
143
|
+
type: "string",
|
|
144
|
+
optional: true,
|
|
145
|
+
enum: ["4", "7"],
|
|
146
|
+
description: "UUID version (default 4)."
|
|
147
|
+
},
|
|
148
|
+
count: {
|
|
149
|
+
type: "number",
|
|
150
|
+
optional: true,
|
|
151
|
+
description: "How many to generate (default 1)."
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
handler: (args, ctx) => {
|
|
155
|
+
const version = args.version === "7" ? "7" : "4";
|
|
156
|
+
const count = clampCount(args.count);
|
|
157
|
+
const gen = version === "7" ? () => uuidV7(ctx) : () => uuidV4(ctx);
|
|
158
|
+
const ids = Array.from({ length: count }, gen);
|
|
159
|
+
return count === 1 ? text(ids[0]) : json({
|
|
160
|
+
version,
|
|
161
|
+
ids
|
|
162
|
+
}, ids.join("\n"));
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "crypto_ulid",
|
|
167
|
+
group: "crypto",
|
|
168
|
+
description: "Generate a ULID — a 26-char, lexicographically-sortable, Crockford-base32 identifier (48-bit timestamp + 80-bit randomness).",
|
|
169
|
+
input: { count: {
|
|
170
|
+
type: "number",
|
|
171
|
+
optional: true,
|
|
172
|
+
description: "How many to generate (default 1)."
|
|
173
|
+
} },
|
|
174
|
+
handler: (args, ctx) => {
|
|
175
|
+
const count = clampCount(args.count);
|
|
176
|
+
const ids = Array.from({ length: count }, () => ulid(ctx));
|
|
177
|
+
return count === 1 ? text(ids[0]) : json({ ids }, ids.join("\n"));
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: "crypto_random",
|
|
182
|
+
group: "crypto",
|
|
183
|
+
description: "Generate cryptographically-strong random bytes, encoded as hex, base64 or base64url.",
|
|
184
|
+
input: {
|
|
185
|
+
bytes: {
|
|
186
|
+
type: "number",
|
|
187
|
+
description: "Number of random bytes (1–4096)."
|
|
188
|
+
},
|
|
189
|
+
encoding: {
|
|
190
|
+
type: "string",
|
|
191
|
+
optional: true,
|
|
192
|
+
enum: OUT_ENCODINGS,
|
|
193
|
+
description: "Output encoding (default hex)."
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
handler: (args, ctx) => {
|
|
197
|
+
const bytes = reqNumber(args, "bytes");
|
|
198
|
+
if (!Number.isInteger(bytes) || bytes < 1 || bytes > 4096) {
|
|
199
|
+
throw new Error("\"bytes\" must be an integer in 1–4096");
|
|
200
|
+
}
|
|
201
|
+
const encoding = typeof args.encoding === "string" ? args.encoding : "hex";
|
|
202
|
+
return text(Buffer.from(ctx.randomBytes(bytes)).toString(encoding));
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "crypto_keypair",
|
|
207
|
+
group: "crypto",
|
|
208
|
+
description: "Generate an asymmetric keypair (ed25519, rsa, or ec/P-256) and return the PEM-encoded public and private keys.",
|
|
209
|
+
input: {
|
|
210
|
+
type: {
|
|
211
|
+
type: "string",
|
|
212
|
+
optional: true,
|
|
213
|
+
enum: [
|
|
214
|
+
"ed25519",
|
|
215
|
+
"rsa",
|
|
216
|
+
"ec"
|
|
217
|
+
],
|
|
218
|
+
description: "Key type (default ed25519)."
|
|
219
|
+
},
|
|
220
|
+
modulusLength: {
|
|
221
|
+
type: "number",
|
|
222
|
+
optional: true,
|
|
223
|
+
description: "RSA modulus bits (default 2048; rsa only)."
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
handler: (args) => {
|
|
227
|
+
const type = typeof args.type === "string" ? args.type : "ed25519";
|
|
228
|
+
const enc = {
|
|
229
|
+
publicKeyEncoding: {
|
|
230
|
+
type: "spki",
|
|
231
|
+
format: "pem"
|
|
232
|
+
},
|
|
233
|
+
privateKeyEncoding: {
|
|
234
|
+
type: "pkcs8",
|
|
235
|
+
format: "pem"
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
let pair;
|
|
239
|
+
if (type === "rsa") {
|
|
240
|
+
const modulusLength = typeof args.modulusLength === "number" ? Math.floor(args.modulusLength) : 2048;
|
|
241
|
+
// generateKeyPairSync blocks the event loop; a huge modulus is a DoS.
|
|
242
|
+
if (modulusLength < 1024 || modulusLength > 4096) {
|
|
243
|
+
throw new Error("\"modulusLength\" must be between 1024 and 4096");
|
|
244
|
+
}
|
|
245
|
+
pair = generateKeyPairSync("rsa", {
|
|
246
|
+
modulusLength,
|
|
247
|
+
...enc
|
|
248
|
+
});
|
|
249
|
+
} else if (type === "ec") {
|
|
250
|
+
pair = generateKeyPairSync("ec", {
|
|
251
|
+
namedCurve: "P-256",
|
|
252
|
+
...enc
|
|
253
|
+
});
|
|
254
|
+
} else {
|
|
255
|
+
pair = generateKeyPairSync("ed25519", enc);
|
|
256
|
+
}
|
|
257
|
+
return json({
|
|
258
|
+
type,
|
|
259
|
+
publicKey: pair.publicKey,
|
|
260
|
+
privateKey: pair.privateKey
|
|
261
|
+
}, `${pair.publicKey}\n${pair.privateKey}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
204
264
|
];
|
|
265
|
+
|
|
205
266
|
//# sourceMappingURL=crypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../src/groups/crypto.ts"],"version":3,"file":"crypto.js","sourceRoot":""}
|