shapedef 1.0.22 → 1.0.24

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.
@@ -158,6 +158,10 @@ export declare namespace shapes {
158
158
  function vector<Dims extends number>(dims: Dims): ShapeVector<Dims>;
159
159
  function union<Ofs extends Array<Shape>>(...ofs: Ofs): ShapeUnion<Ofs>;
160
160
  function union<Ofs extends TupleOf<Shape>>(...ofs: Ofs): ShapeUnion<Ofs>;
161
+ function auto(x: unknown, options?: {
162
+ preferLiterals?: boolean;
163
+ }): Shape;
164
+ function coerce<S extends Shape>(x: unknown, shape: S): OutputOfShape<S>;
161
165
  }
162
166
  export declare namespace annotate {
163
167
  function by<S extends Shape, Anno extends ShapeAnnotation>(shape: S, anno: Anno): AnnotateShape<S, Anno>;
@@ -185,9 +189,6 @@ export declare namespace annotate {
185
189
  fieldName: FieldName;
186
190
  };
187
191
  }>;
188
- function auto(x: unknown, options?: {
189
- preferLiterals?: boolean;
190
- }): Shape;
191
192
  }
192
193
  export {};
193
194
  //# sourceMappingURL=shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
package/dist/cjs/shape.js CHANGED
@@ -198,6 +198,151 @@ var shapes;
198
198
  };
199
199
  }
200
200
  shapes.union = union;
201
+ function auto(x, options = {}) {
202
+ if (isShape(x))
203
+ return x;
204
+ if (x === null)
205
+ return shapes.nil();
206
+ if (typeof x === "undefined")
207
+ return shapes.unknown();
208
+ if (typeof x === "number")
209
+ return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
210
+ if (typeof x === "string")
211
+ return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
212
+ if (typeof x === "boolean")
213
+ return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
214
+ if (x instanceof Date)
215
+ return shapes.date();
216
+ if (Array.isArray(x)) {
217
+ if (x.length <= 0)
218
+ return shapes.array(shapes.unknown());
219
+ if (x.length === 1)
220
+ return shapes.array(auto(x[0], options));
221
+ const types = new Set(x.map((v) => typeof v));
222
+ return shapes.array(types.size === 1 ?
223
+ auto(x[0], options)
224
+ : shapes.union(...x.map((v) => auto(v, options))));
225
+ }
226
+ if ((0, common_1.isPlainObject)(x)) {
227
+ return shapes.mapping(Object.fromEntries(Object.entries(x).map(([k, v]) => [k, auto(v, options)])));
228
+ }
229
+ return shapes.unknown();
230
+ }
231
+ shapes.auto = auto;
232
+ function coerce(x, shape) {
233
+ const convert = (x, shape) => {
234
+ switch (shape.type) {
235
+ case "str":
236
+ if (typeof x === "string")
237
+ return x;
238
+ return `${x}`;
239
+ case "literal-str":
240
+ case "literal-int":
241
+ case "literal-float":
242
+ case "literal-number":
243
+ case "literal-bool":
244
+ return shape.value;
245
+ case "number":
246
+ case "float":
247
+ if (typeof x === "number")
248
+ return x;
249
+ if (typeof x === "string")
250
+ return Number(x || 0);
251
+ return 0;
252
+ case "int":
253
+ if (typeof x === "number")
254
+ return Math.trunc(x);
255
+ if (typeof x === "string")
256
+ return Math.trunc(Number(x || 0));
257
+ return 0;
258
+ case "nil":
259
+ return null;
260
+ case "bool":
261
+ if (typeof x === "boolean")
262
+ return x;
263
+ if (typeof x === "string")
264
+ return ["true", "1", "yes"].includes(x.trim().toLowerCase());
265
+ return !!x;
266
+ case "date":
267
+ if (x instanceof Date)
268
+ return x;
269
+ if (typeof x === "string" || typeof x === "number")
270
+ return new Date(x);
271
+ return new Date();
272
+ case "unknown":
273
+ return x;
274
+ case "vector":
275
+ if (Array.isArray(x))
276
+ return x.map((v) => convert(v, shapes.float()));
277
+ if (typeof x === "string")
278
+ return x
279
+ .replaceAll(/\[|\{|\}|\]/g, "")
280
+ .split(",")
281
+ .map((v) => v.trim())
282
+ .map((v) => convert(v, shapes.float()));
283
+ return [];
284
+ case "array":
285
+ if (Array.isArray(x))
286
+ return x.map((v) => convert(v, shape.item));
287
+ if (typeof x === "string")
288
+ return x
289
+ .replaceAll(/\[|\{|\}|\]/g, "")
290
+ .split(",")
291
+ .map((v) => v.trim())
292
+ .map((v) => convert(v, shape.item));
293
+ return [];
294
+ case "tuple":
295
+ if (Array.isArray(x))
296
+ return shape.tup.map((s, i) => convert(x[i], s));
297
+ if (typeof x === "string") {
298
+ const parts = x
299
+ .replaceAll(/\[|\{|\}|\]/g, "")
300
+ .split(",")
301
+ .map((v) => v.trim());
302
+ return shape.tup.map((s, i) => convert(parts[i], s));
303
+ }
304
+ return shape.tup.map((s) => convert(null, s));
305
+ case "bytes":
306
+ if (x instanceof Uint8Array)
307
+ return x;
308
+ if (Array.isArray(x))
309
+ return new Uint8Array(x.map((v) => convert(v, shapes.int())));
310
+ if (typeof x === "string")
311
+ return new Uint8Array(x
312
+ .replaceAll(/\[|\{|\}|\]/g, "")
313
+ .split(",")
314
+ .map((v) => v.trim())
315
+ .map((v) => convert(v, shapes.number())));
316
+ return new Uint8Array();
317
+ case "ref":
318
+ return x;
319
+ case "union":
320
+ const t = shape.ofs[0];
321
+ return convert(x, t || shapes.unknown());
322
+ case "mapping":
323
+ let obj = {};
324
+ if ((0, common_1.isPlainObject)(x)) {
325
+ obj = x;
326
+ }
327
+ else if (typeof x === "string") {
328
+ const trimmed = x.trim();
329
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
330
+ try {
331
+ obj = JSON.parse(x);
332
+ }
333
+ catch { }
334
+ }
335
+ }
336
+ return Object.assign({}, ...Object.entries(shape.rec).map(([k, t]) => {
337
+ return {
338
+ [k]: convert(obj[k], t),
339
+ };
340
+ }));
341
+ }
342
+ };
343
+ return convert(x, shape);
344
+ }
345
+ shapes.coerce = coerce;
201
346
  })(shapes || (exports.shapes = shapes = {}));
202
347
  var annotate;
203
348
  (function (annotate) {
@@ -239,36 +384,5 @@ var annotate;
239
384
  return by(shape, { foreign: { shapeName, fieldName } });
240
385
  }
241
386
  annotate.foreign = foreign;
242
- function auto(x, options = {}) {
243
- if (isShape(x))
244
- return x;
245
- if (x === null)
246
- return shapes.nil();
247
- if (typeof x === "undefined")
248
- return shapes.unknown();
249
- if (typeof x === "number")
250
- return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
251
- if (typeof x === "string")
252
- return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
253
- if (typeof x === "boolean")
254
- return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
255
- if (x instanceof Date)
256
- return shapes.date();
257
- if (Array.isArray(x)) {
258
- if (x.length <= 0)
259
- return shapes.array(shapes.unknown());
260
- if (x.length === 1)
261
- return shapes.array(auto(x[0], options));
262
- const types = new Set(x.map((v) => typeof v));
263
- return shapes.array(types.size === 1 ?
264
- auto(x[0], options)
265
- : shapes.union(...x.map((v) => auto(v, options))));
266
- }
267
- if ((0, common_1.isPlainObject)(x)) {
268
- return shapes.mapping(Object.fromEntries(Object.entries(x).map(([k, v]) => [k, auto(v, options)])));
269
- }
270
- return shapes.unknown();
271
- }
272
- annotate.auto = auto;
273
387
  })(annotate || (exports.annotate = annotate = {}));
274
388
  //# sourceMappingURL=shape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":";;;AA4NA,0BAKC;AAjOD,qCAA8C;AAQ9C,uCAAmD;AAEtC,QAAA,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AA2MhD,MAAM,aAAa,GAAG,GAGpB,EAAE;IACF,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,iBAAO,EAAE,EAAE,CAAC,wBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,SAAgB,OAAO,CAAC,CAAU;IAChC,OAAO,CACL,IAAA,YAAG,EAAC,CAAC,EAAE,wBAAgB,CAAC;QACvB,CAAqC,CAAC,wBAAgB,CAAC,KAAK,IAAI,CAClE,CAAC;AACJ,CAAC;AAED,IAAiB,MAAM,CAgXtB;AAhXD,WAAiB,MAAM;IACrB,SAAgB,KAAK;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,YAAK,QAMpB,CAAA;IAED,SAAgB,GAAG;QACjB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,UAAG,MAMlB,CAAA;IAED,SAAgB,MAAM;QACpB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,aAAM,SAMrB,CAAA;IAED,SAAgB,IAAI;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,WAAI,OAMnB,CAAA;IAED,SAAgB,GAAG;QACjB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,UAAG,MAMlB,CAAA;IAED,SAAgB,IAAI;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,WAAI,OAMnB,CAAA;IAED,SAAgB,GAAG;QACjB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,UAAG,MAMlB,CAAA;IAED,SAAgB,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,cAAO,UAMtB,CAAA;IAED,SAAgB,KAAK;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IANe,YAAK,QAMpB,CAAA;IAED,SAAgB,YAAY,CAC1B,KAAY;QAEZ,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,mBAAY,eAS3B,CAAA;IAED,SAAgB,UAAU,CACxB,KAAY;QAEZ,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,iBAAU,aASzB,CAAA;IAED,SAAgB,aAAa,CAC3B,KAAY;QAEZ,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,oBAAa,gBAS5B,CAAA;IAED,SAAgB,WAAW,CACzB,KAAY;QAEZ,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,kBAAW,cAS1B,CAAA;IAED,SAAgB,UAAU,CACxB,KAAY;QAEZ,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,iBAAU,aASzB,CAAA;IAcD,SAAgB,OAAO,CACrB,KAAgC;QAEhC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IANe,cAAO,UAMtB,CAAA;IAED,SAAgB,GAAG,CACjB,IAAU,EACV,IAAW;QAEX,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE;YACR,GAAG,CAAC,IAAI,CAAC,CAAC;gBACR;oBACE,IAAI,EAAE,IAAI;iBACX;gBACH,CAAC,CAAC,EAAE,CAAC;YACL,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IAfe,UAAG,MAelB,CAAA;IAED,SAAgB,KAAK,CAAqB,IAAU;QAClD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IAPe,YAAK,QAOpB,CAAA;IAED,SAAgB,KAAK,CACnB,GAAG,KAAY;QAEf,OAAO;YACL,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,YAAK,QASpB,CAAA;IAED,SAAgB,OAAO,CACrB,GAAQ;QAER,OAAO;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,cAAO,UAStB,CAAA;IAED,SAAgB,MAAM,CAAsB,IAAU;QACpD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IAPe,aAAM,SAOrB,CAAA;IAMD,SAAgB,KAAK,CACnB,GAAG,GAAQ;QAEX,OAAO;YACL,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,EAAE;YACR,GAAG,aAAa,EAAE;SACnB,CAAC;IACJ,CAAC;IATe,YAAK,QASpB,CAAA;IAED,SAAgB,IAAI,CAClB,CAAU,EACV,UAEI,EAAE;QAEN,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,KAAK,WAAW;YAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,KAAK,QAAQ;YACvB,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5E,IAAI,OAAO,CAAC,KAAK,QAAQ;YACvB,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACtE,IAAI,OAAO,CAAC,KAAK,SAAS;YACxB,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,YAAY,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,KAAK,CACjB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACrB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,IAAA,sBAAa,EAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CACzD,CACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAlCe,WAAI,OAkCnB,CAAA;IAED,SAAgB,MAAM,CACpB,CAAU,EACV,KAAQ;QAER,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,KAAY,EAAW,EAAE;YACpD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,KAAK;oBACR,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;oBACpC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,KAAK,aAAa,CAAC;gBACnB,KAAK,aAAa,CAAC;gBACnB,KAAK,eAAe,CAAC;gBACrB,KAAK,gBAAgB,CAAC;gBACtB,KAAK,cAAc;oBACjB,OAAO,KAAK,CAAC,KAAK,CAAC;gBACrB,KAAK,QAAQ,CAAC;gBACd,KAAK,OAAO;oBACV,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;oBACpC,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjD,OAAO,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChD,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7D,OAAO,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,OAAO,IAAI,CAAC;gBACd,KAAK,MAAM;oBACT,IAAI,OAAO,CAAC,KAAK,SAAS;wBAAE,OAAO,CAAC,CAAC;oBACrC,IAAI,OAAO,CAAC,KAAK,QAAQ;wBACvB,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,CAAC,CAAC,CAAC;gBACb,KAAK,MAAM;oBACT,IAAI,CAAC,YAAY,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAChC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAChD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,KAAK,SAAS;oBACZ,OAAO,CAAC,CAAC;gBACX,KAAK,QAAQ;oBACX,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACtE,IAAI,OAAO,CAAC,KAAK,QAAQ;wBACvB,OAAO,CAAC;6BACL,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;6BAC9B,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;6BACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC5C,OAAO,EAAE,CAAC;gBACZ,KAAK,OAAO;oBACV,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClE,IAAI,OAAO,CAAC,KAAK,QAAQ;wBACvB,OAAO,CAAC;6BACL,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;6BAC9B,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;6BACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC;gBACZ,KAAK,OAAO;oBACV,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,CAAC;6BACZ,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;6BAC9B,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACxB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChD,KAAK,OAAO;oBACV,IAAI,CAAC,YAAY,UAAU;wBAAE,OAAO,CAAC,CAAC;oBACtC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAClB,OAAO,IAAI,UAAU,CACnB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAa,CACnD,CAAC;oBACJ,IAAI,OAAO,CAAC,KAAK,QAAQ;wBACvB,OAAO,IAAI,UAAU,CACnB,CAAC;6BACE,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;6BAC9B,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;6BACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAa,CACvD,CAAC;oBACJ,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC1B,KAAK,KAAK;oBACR,OAAO,CAAC,CAAC;gBACX,KAAK,OAAO;oBACV,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3C,KAAK,SAAS;oBACZ,IAAI,GAAG,GAA4B,EAAE,CAAC;oBACtC,IAAI,IAAA,sBAAa,EAAC,CAAC,CAAC,EAAE,CAAC;wBACrB,GAAG,GAAG,CAAC,CAAC;oBACV,CAAC;yBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACjC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBACzB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACrD,IAAI,CAAC;gCACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;4BACjD,CAAC;4BAAC,MAAM,CAAC,CAAA,CAAC;wBACZ,CAAC;oBACH,CAAC;oBACD,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC1C,OAAO;4BACL,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBACxB,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;YACN,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,CAAqB,CAAC;IAC/C,CAAC;IA/Ge,aAAM,SA+GrB,CAAA;AACH,CAAC,EAhXgB,MAAM,sBAAN,MAAM,QAgXtB;AAED,IAAiB,QAAQ,CAmExB;AAnED,WAAiB,QAAQ;IACvB,SAAgB,EAAE,CAChB,KAAQ,EACR,IAAU;QAEV,OAAO;YACL,GAAG,KAAK;YACR,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,GAAG,KAAK,CAAC,IAAI;aACd;SACF,CAAC;IACJ,CAAC;IAXe,WAAE,KAWjB,CAAA;IAED,SAAgB,QAAQ,CACtB,KAAQ;QAER,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAJe,iBAAQ,WAIvB,CAAA;IAED,SAAgB,OAAO,CACrB,KAAQ;QAER,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAJe,gBAAO,UAItB,CAAA;IAED,SAAgB,MAAM,CACpB,KAAQ;QAER,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAJe,eAAM,SAIrB,CAAA;IAED,SAAgB,KAAK,CACnB,KAAQ,EACR,IAAU;QAEV,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IALe,cAAK,QAKpB,CAAA;IAED,SAAgB,OAAO,CACrB,KAAQ,EACR,KAAY;QAEZ,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IALe,gBAAO,UAKtB,CAAA;IAED,SAAgB,IAAI,CAClB,KAAQ,EACR,IAAU;QAEV,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IALe,aAAI,OAKnB,CAAA;IAED,SAAgB,OAAO,CAKrB,KAAQ,EACR,SAAoB,EACpB,SAAoB;QAKpB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAbe,gBAAO,UAatB,CAAA;AACH,CAAC,EAnEgB,QAAQ,wBAAR,QAAQ,QAmExB"}
@@ -158,6 +158,10 @@ export declare namespace shapes {
158
158
  function vector<Dims extends number>(dims: Dims): ShapeVector<Dims>;
159
159
  function union<Ofs extends Array<Shape>>(...ofs: Ofs): ShapeUnion<Ofs>;
160
160
  function union<Ofs extends TupleOf<Shape>>(...ofs: Ofs): ShapeUnion<Ofs>;
161
+ function auto(x: unknown, options?: {
162
+ preferLiterals?: boolean;
163
+ }): Shape;
164
+ function coerce<S extends Shape>(x: unknown, shape: S): OutputOfShape<S>;
161
165
  }
162
166
  export declare namespace annotate {
163
167
  function by<S extends Shape, Anno extends ShapeAnnotation>(shape: S, anno: Anno): AnnotateShape<S, Anno>;
@@ -185,9 +189,6 @@ export declare namespace annotate {
185
189
  fieldName: FieldName;
186
190
  };
187
191
  }>;
188
- function auto(x: unknown, options?: {
189
- preferLiterals?: boolean;
190
- }): Shape;
191
192
  }
192
193
  export {};
193
194
  //# sourceMappingURL=shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
package/dist/esm/shape.js CHANGED
@@ -198,6 +198,151 @@ var shapes;
198
198
  };
199
199
  }
200
200
  shapes.union = union;
201
+ function auto(x, options = {}) {
202
+ if (isShape(x))
203
+ return x;
204
+ if (x === null)
205
+ return shapes.nil();
206
+ if (typeof x === "undefined")
207
+ return shapes.unknown();
208
+ if (typeof x === "number")
209
+ return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
210
+ if (typeof x === "string")
211
+ return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
212
+ if (typeof x === "boolean")
213
+ return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
214
+ if (x instanceof Date)
215
+ return shapes.date();
216
+ if (Array.isArray(x)) {
217
+ if (x.length <= 0)
218
+ return shapes.array(shapes.unknown());
219
+ if (x.length === 1)
220
+ return shapes.array(auto(x[0], options));
221
+ const types = new Set(x.map((v) => typeof v));
222
+ return shapes.array(types.size === 1 ?
223
+ auto(x[0], options)
224
+ : shapes.union(...x.map((v) => auto(v, options))));
225
+ }
226
+ if ((0, common_1.isPlainObject)(x)) {
227
+ return shapes.mapping(Object.fromEntries(Object.entries(x).map(([k, v]) => [k, auto(v, options)])));
228
+ }
229
+ return shapes.unknown();
230
+ }
231
+ shapes.auto = auto;
232
+ function coerce(x, shape) {
233
+ const convert = (x, shape) => {
234
+ switch (shape.type) {
235
+ case "str":
236
+ if (typeof x === "string")
237
+ return x;
238
+ return `${x}`;
239
+ case "literal-str":
240
+ case "literal-int":
241
+ case "literal-float":
242
+ case "literal-number":
243
+ case "literal-bool":
244
+ return shape.value;
245
+ case "number":
246
+ case "float":
247
+ if (typeof x === "number")
248
+ return x;
249
+ if (typeof x === "string")
250
+ return Number(x || 0);
251
+ return 0;
252
+ case "int":
253
+ if (typeof x === "number")
254
+ return Math.trunc(x);
255
+ if (typeof x === "string")
256
+ return Math.trunc(Number(x || 0));
257
+ return 0;
258
+ case "nil":
259
+ return null;
260
+ case "bool":
261
+ if (typeof x === "boolean")
262
+ return x;
263
+ if (typeof x === "string")
264
+ return ["true", "1", "yes"].includes(x.trim().toLowerCase());
265
+ return !!x;
266
+ case "date":
267
+ if (x instanceof Date)
268
+ return x;
269
+ if (typeof x === "string" || typeof x === "number")
270
+ return new Date(x);
271
+ return new Date();
272
+ case "unknown":
273
+ return x;
274
+ case "vector":
275
+ if (Array.isArray(x))
276
+ return x.map((v) => convert(v, shapes.float()));
277
+ if (typeof x === "string")
278
+ return x
279
+ .replaceAll(/\[|\{|\}|\]/g, "")
280
+ .split(",")
281
+ .map((v) => v.trim())
282
+ .map((v) => convert(v, shapes.float()));
283
+ return [];
284
+ case "array":
285
+ if (Array.isArray(x))
286
+ return x.map((v) => convert(v, shape.item));
287
+ if (typeof x === "string")
288
+ return x
289
+ .replaceAll(/\[|\{|\}|\]/g, "")
290
+ .split(",")
291
+ .map((v) => v.trim())
292
+ .map((v) => convert(v, shape.item));
293
+ return [];
294
+ case "tuple":
295
+ if (Array.isArray(x))
296
+ return shape.tup.map((s, i) => convert(x[i], s));
297
+ if (typeof x === "string") {
298
+ const parts = x
299
+ .replaceAll(/\[|\{|\}|\]/g, "")
300
+ .split(",")
301
+ .map((v) => v.trim());
302
+ return shape.tup.map((s, i) => convert(parts[i], s));
303
+ }
304
+ return shape.tup.map((s) => convert(null, s));
305
+ case "bytes":
306
+ if (x instanceof Uint8Array)
307
+ return x;
308
+ if (Array.isArray(x))
309
+ return new Uint8Array(x.map((v) => convert(v, shapes.int())));
310
+ if (typeof x === "string")
311
+ return new Uint8Array(x
312
+ .replaceAll(/\[|\{|\}|\]/g, "")
313
+ .split(",")
314
+ .map((v) => v.trim())
315
+ .map((v) => convert(v, shapes.number())));
316
+ return new Uint8Array();
317
+ case "ref":
318
+ return x;
319
+ case "union":
320
+ const t = shape.ofs[0];
321
+ return convert(x, t || shapes.unknown());
322
+ case "mapping":
323
+ let obj = {};
324
+ if ((0, common_1.isPlainObject)(x)) {
325
+ obj = x;
326
+ }
327
+ else if (typeof x === "string") {
328
+ const trimmed = x.trim();
329
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
330
+ try {
331
+ obj = JSON.parse(x);
332
+ }
333
+ catch { }
334
+ }
335
+ }
336
+ return Object.assign({}, ...Object.entries(shape.rec).map(([k, t]) => {
337
+ return {
338
+ [k]: convert(obj[k], t),
339
+ };
340
+ }));
341
+ }
342
+ };
343
+ return convert(x, shape);
344
+ }
345
+ shapes.coerce = coerce;
201
346
  })(shapes || (exports.shapes = shapes = {}));
202
347
  var annotate;
203
348
  (function (annotate) {
@@ -239,36 +384,5 @@ var annotate;
239
384
  return by(shape, { foreign: { shapeName, fieldName } });
240
385
  }
241
386
  annotate.foreign = foreign;
242
- function auto(x, options = {}) {
243
- if (isShape(x))
244
- return x;
245
- if (x === null)
246
- return shapes.nil();
247
- if (typeof x === "undefined")
248
- return shapes.unknown();
249
- if (typeof x === "number")
250
- return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
251
- if (typeof x === "string")
252
- return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
253
- if (typeof x === "boolean")
254
- return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
255
- if (x instanceof Date)
256
- return shapes.date();
257
- if (Array.isArray(x)) {
258
- if (x.length <= 0)
259
- return shapes.array(shapes.unknown());
260
- if (x.length === 1)
261
- return shapes.array(auto(x[0], options));
262
- const types = new Set(x.map((v) => typeof v));
263
- return shapes.array(types.size === 1 ?
264
- auto(x[0], options)
265
- : shapes.union(...x.map((v) => auto(v, options))));
266
- }
267
- if ((0, common_1.isPlainObject)(x)) {
268
- return shapes.mapping(Object.fromEntries(Object.entries(x).map(([k, v]) => [k, auto(v, options)])));
269
- }
270
- return shapes.unknown();
271
- }
272
- annotate.auto = auto;
273
387
  })(annotate || (exports.annotate = annotate = {}));
274
388
  //# sourceMappingURL=shape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shapedef",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -0,0 +1,281 @@
1
+ import { describe, expect } from "vitest";
2
+ import { annotate, shapes } from "./shape";
3
+
4
+ describe("shapes.coerce", (it) => {
5
+ // ── primitives ──────────────────────────────────────────────────────────
6
+
7
+ it("coerces str: passthrough for strings", () => {
8
+ expect(shapes.coerce("hello", shapes.str())).toBe("hello");
9
+ });
10
+
11
+ it("coerces str: converts number to string", () => {
12
+ expect(shapes.coerce(42, shapes.str())).toBe("42");
13
+ });
14
+
15
+ it("coerces str: converts boolean to string", () => {
16
+ expect(shapes.coerce(true, shapes.str())).toBe("true");
17
+ });
18
+
19
+ it("coerces str: converts null to string", () => {
20
+ expect(shapes.coerce(null, shapes.str())).toBe("null");
21
+ });
22
+
23
+ it("coerces number: passthrough for numbers", () => {
24
+ expect(shapes.coerce(3.14, shapes.number())).toBe(3.14);
25
+ expect(shapes.coerce(0, shapes.number())).toBe(0);
26
+ });
27
+
28
+ it("coerces number: converts numeric string", () => {
29
+ expect(shapes.coerce("3.14", shapes.number())).toBe(3.14);
30
+ expect(shapes.coerce("", shapes.number())).toBe(0);
31
+ });
32
+
33
+ it("coerces number: returns 0 for non-numeric input", () => {
34
+ expect(shapes.coerce(null, shapes.number())).toBe(0);
35
+ expect(shapes.coerce(false, shapes.number())).toBe(0);
36
+ });
37
+
38
+ it("coerces float: same rules as number", () => {
39
+ expect(shapes.coerce(1.5, shapes.float())).toBe(1.5);
40
+ expect(shapes.coerce("2.5", shapes.float())).toBe(2.5);
41
+ expect(shapes.coerce(null, shapes.float())).toBe(0);
42
+ });
43
+
44
+ it("coerces int: truncates floats", () => {
45
+ expect(shapes.coerce(3.9, shapes.int())).toBe(3);
46
+ expect(shapes.coerce(-3.9, shapes.int())).toBe(-3);
47
+ });
48
+
49
+ it("coerces int: converts numeric string", () => {
50
+ expect(shapes.coerce("7.8", shapes.int())).toBe(7);
51
+ expect(shapes.coerce("", shapes.int())).toBe(0);
52
+ });
53
+
54
+ it("coerces int: returns 0 for non-numeric input", () => {
55
+ expect(shapes.coerce(null, shapes.int())).toBe(0);
56
+ });
57
+
58
+ it("coerces bool: passthrough for booleans", () => {
59
+ expect(shapes.coerce(true, shapes.bool())).toBe(true);
60
+ expect(shapes.coerce(false, shapes.bool())).toBe(false);
61
+ });
62
+
63
+ it("coerces bool: truthy string values", () => {
64
+ expect(shapes.coerce("true", shapes.bool())).toBe(true);
65
+ expect(shapes.coerce("1", shapes.bool())).toBe(true);
66
+ expect(shapes.coerce("yes", shapes.bool())).toBe(true);
67
+ expect(shapes.coerce("TRUE", shapes.bool())).toBe(true);
68
+ });
69
+
70
+ it("coerces bool: falsy string values", () => {
71
+ expect(shapes.coerce("false", shapes.bool())).toBe(false);
72
+ expect(shapes.coerce("no", shapes.bool())).toBe(false);
73
+ expect(shapes.coerce("0", shapes.bool())).toBe(false);
74
+ expect(shapes.coerce("", shapes.bool())).toBe(false);
75
+ });
76
+
77
+ it("coerces bool: truthy/falsy non-string values", () => {
78
+ expect(shapes.coerce(1, shapes.bool())).toBe(true);
79
+ expect(shapes.coerce(0, shapes.bool())).toBe(false);
80
+ expect(shapes.coerce(null, shapes.bool())).toBe(false);
81
+ });
82
+
83
+ it("coerces nil: always returns null", () => {
84
+ expect(shapes.coerce("anything", shapes.nil())).toBeNull();
85
+ expect(shapes.coerce(42, shapes.nil())).toBeNull();
86
+ expect(shapes.coerce(null, shapes.nil())).toBeNull();
87
+ });
88
+
89
+ it("coerces unknown: returns value as-is", () => {
90
+ const obj = { x: 1 };
91
+ expect(shapes.coerce(obj, shapes.unknown())).toBe(obj);
92
+ expect(shapes.coerce(null, shapes.unknown())).toBeNull();
93
+ expect(shapes.coerce(42, shapes.unknown())).toBe(42);
94
+ });
95
+
96
+ it("coerces date: passthrough for Date instances", () => {
97
+ const d = new Date("2024-01-01");
98
+ expect(shapes.coerce(d, shapes.date())).toBe(d);
99
+ });
100
+
101
+ it("coerces date: parses ISO string", () => {
102
+ const result = shapes.coerce("2024-06-15", shapes.date());
103
+ expect(result).toBeInstanceOf(Date);
104
+ expect((result as Date).getFullYear()).toBe(2024);
105
+ });
106
+
107
+ it("coerces date: parses numeric timestamp", () => {
108
+ const ts = 1700000000000;
109
+ const result = shapes.coerce(ts, shapes.date());
110
+ expect(result).toBeInstanceOf(Date);
111
+ expect((result as Date).getTime()).toBe(ts);
112
+ });
113
+
114
+ it("coerces date: returns a Date for unknown input", () => {
115
+ expect(shapes.coerce(null, shapes.date())).toBeInstanceOf(Date);
116
+ });
117
+
118
+ // ── literals ─────────────────────────────────────────────────────────────
119
+
120
+ it("coerces literalStr: always returns the literal value", () => {
121
+ expect(shapes.coerce("anything", shapes.literalStr("hello"))).toBe("hello");
122
+ expect(shapes.coerce(42, shapes.literalStr("hello"))).toBe("hello");
123
+ });
124
+
125
+ it("coerces literalBool: always returns the literal value", () => {
126
+ expect(shapes.coerce("false", shapes.literalBool(true))).toBe(true);
127
+ expect(shapes.coerce(99, shapes.literalBool(false))).toBe(false);
128
+ });
129
+
130
+ it("coerces literalInt / literalFloat / literalNumber: always returns the literal value", () => {
131
+ expect(shapes.coerce("anything", shapes.literalInt(5))).toBe(5);
132
+ expect(shapes.coerce("anything", shapes.literalFloat(1.5))).toBe(1.5);
133
+ expect(shapes.coerce("anything", shapes.literalNumber(42))).toBe(42);
134
+ });
135
+
136
+ // ── bytes ────────────────────────────────────────────────────────────────
137
+
138
+ it("coerces bytes: passthrough for Uint8Array", () => {
139
+ const buf = new Uint8Array([1, 2, 3]);
140
+ expect(shapes.coerce(buf, shapes.bytes())).toBe(buf);
141
+ });
142
+
143
+ it("coerces bytes: converts number array", () => {
144
+ expect(shapes.coerce([10, 20, 30], shapes.bytes())).toEqual(
145
+ new Uint8Array([10, 20, 30]),
146
+ );
147
+ });
148
+
149
+ it("coerces bytes: parses comma-separated string", () => {
150
+ expect(shapes.coerce("1,2,3", shapes.bytes())).toEqual(
151
+ new Uint8Array([1, 2, 3]),
152
+ );
153
+ });
154
+
155
+ it("coerces bytes: returns empty Uint8Array for unknown input", () => {
156
+ expect(shapes.coerce(null, shapes.bytes())).toEqual(new Uint8Array());
157
+ });
158
+
159
+ // ── array ────────────────────────────────────────────────────────────────
160
+
161
+ it("coerces array: passthrough for arrays", () => {
162
+ expect(shapes.coerce([1, 2, 3], shapes.array(shapes.int()))).toEqual([
163
+ 1, 2, 3,
164
+ ]);
165
+ });
166
+
167
+ it("coerces array: converts each item", () => {
168
+ expect(shapes.coerce(["1", "2", "3"], shapes.array(shapes.int()))).toEqual([
169
+ 1, 2, 3,
170
+ ]);
171
+ });
172
+
173
+ it("coerces array: parses comma-separated string", () => {
174
+ expect(shapes.coerce("10, 20, 30", shapes.array(shapes.int()))).toEqual([
175
+ 10, 20, 30,
176
+ ]);
177
+ });
178
+
179
+ it("coerces array: returns empty array for other types", () => {
180
+ expect(shapes.coerce(null, shapes.array(shapes.str()))).toEqual([]);
181
+ });
182
+
183
+ // ── tuple ────────────────────────────────────────────────────────────────
184
+
185
+ it("coerces tuple: converts array elements per shape", () => {
186
+ expect(
187
+ shapes.coerce(["42", true], shapes.tuple(shapes.int(), shapes.bool())),
188
+ ).toEqual([42, true]);
189
+ });
190
+
191
+ it("coerces tuple: parses comma-separated string", () => {
192
+ expect(
193
+ shapes.coerce("hello,1", shapes.tuple(shapes.str(), shapes.int())),
194
+ ).toEqual(["hello", 1]);
195
+ });
196
+
197
+ it("coerces tuple: fills missing elements with coerced nulls", () => {
198
+ const result = shapes.coerce(
199
+ null,
200
+ shapes.tuple(shapes.int(), shapes.str()),
201
+ );
202
+ expect(result).toEqual([0, "null"]);
203
+ });
204
+
205
+ // ── vector ───────────────────────────────────────────────────────────────
206
+
207
+ it("coerces vector: passthrough for number array", () => {
208
+ expect(shapes.coerce([1, 2, 3], shapes.vector(3))).toEqual([1, 2, 3]);
209
+ });
210
+
211
+ it("coerces vector: parses comma-separated string", () => {
212
+ expect(shapes.coerce("1.0, 2.0, 3.0", shapes.vector(3))).toEqual([1, 2, 3]);
213
+ });
214
+
215
+ it("coerces vector: returns empty array for unknown input", () => {
216
+ expect(shapes.coerce(null, shapes.vector(3))).toEqual([]);
217
+ });
218
+
219
+ // ── mapping ──────────────────────────────────────────────────────────────
220
+
221
+ it("coerces mapping: passthrough for plain objects", () => {
222
+ expect(
223
+ shapes.coerce(
224
+ { name: "Alice", age: 30 },
225
+ shapes.mapping({ name: shapes.str(), age: shapes.int() }),
226
+ ),
227
+ ).toEqual({ name: "Alice", age: 30 });
228
+ });
229
+
230
+ it("coerces mapping: coerces each field's type", () => {
231
+ expect(
232
+ shapes.coerce(
233
+ { name: 42, age: "30" },
234
+ shapes.mapping({ name: shapes.str(), age: shapes.int() }),
235
+ ),
236
+ ).toEqual({ name: "42", age: 30 });
237
+ });
238
+
239
+ it("coerces mapping: parses JSON string", () => {
240
+ expect(
241
+ shapes.coerce(
242
+ '{"x": "1", "y": "2"}',
243
+ shapes.mapping({ x: shapes.int(), y: shapes.int() }),
244
+ ),
245
+ ).toEqual({ x: 1, y: 2 });
246
+ });
247
+
248
+ it("coerces mapping: fills missing fields with defaults", () => {
249
+ expect(
250
+ shapes.coerce(
251
+ {},
252
+ shapes.mapping({ count: shapes.int(), label: shapes.str() }),
253
+ ),
254
+ ).toEqual({ count: 0, label: "undefined" });
255
+ });
256
+
257
+ it("coerces mapping: returns coerced defaults for non-object input", () => {
258
+ expect(
259
+ shapes.coerce(null, shapes.mapping({ active: shapes.bool() })),
260
+ ).toEqual({ active: false });
261
+ });
262
+
263
+ // ── ref ───────────────────────────────────────────────────────────────────
264
+
265
+ it("coerces ref: returns value as-is", () => {
266
+ const val = { id: 1 };
267
+ expect(shapes.coerce(val, shapes.ref("MyType"))).toBe(val);
268
+ expect(shapes.coerce("anything", shapes.ref("MyType"))).toBe("anything");
269
+ });
270
+
271
+ // ── union ─────────────────────────────────────────────────────────────────
272
+
273
+ it("coerces union: uses first member's shape", () => {
274
+ const shape = shapes.union(shapes.int(), shapes.str());
275
+ expect(shapes.coerce("42", shape)).toBe(42);
276
+ });
277
+
278
+ it("coerces union: handles single-member union", () => {
279
+ expect(shapes.coerce("hello", shapes.union(shapes.str()))).toBe("hello");
280
+ });
281
+ });
package/src/shape.ts CHANGED
@@ -444,6 +444,155 @@ export namespace shapes {
444
444
  ...createPhantom(),
445
445
  };
446
446
  }
447
+
448
+ export function auto(
449
+ x: unknown,
450
+ options: {
451
+ preferLiterals?: boolean;
452
+ } = {},
453
+ ): Shape {
454
+ if (isShape(x)) return x;
455
+ if (x === null) return shapes.nil();
456
+ if (typeof x === "undefined") return shapes.unknown();
457
+ if (typeof x === "number")
458
+ return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
459
+ if (typeof x === "string")
460
+ return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
461
+ if (typeof x === "boolean")
462
+ return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
463
+ if (x instanceof Date) return shapes.date();
464
+ if (Array.isArray(x)) {
465
+ if (x.length <= 0) return shapes.array(shapes.unknown());
466
+ if (x.length === 1) return shapes.array(auto(x[0], options));
467
+ const types = new Set(x.map((v) => typeof v));
468
+ return shapes.array(
469
+ types.size === 1 ?
470
+ auto(x[0], options)
471
+ : shapes.union(...x.map((v) => auto(v, options))),
472
+ );
473
+ }
474
+ if (isPlainObject(x)) {
475
+ return shapes.mapping(
476
+ Object.fromEntries(
477
+ Object.entries(x).map(([k, v]) => [k, auto(v, options)]),
478
+ ),
479
+ );
480
+ }
481
+ return shapes.unknown();
482
+ }
483
+
484
+ export function coerce<S extends Shape>(
485
+ x: unknown,
486
+ shape: S,
487
+ ): OutputOfShape<S> {
488
+ const convert = (x: unknown, shape: Shape): unknown => {
489
+ switch (shape.type) {
490
+ case "str":
491
+ if (typeof x === "string") return x;
492
+ return `${x}`;
493
+ case "literal-str":
494
+ case "literal-int":
495
+ case "literal-float":
496
+ case "literal-number":
497
+ case "literal-bool":
498
+ return shape.value;
499
+ case "number":
500
+ case "float":
501
+ if (typeof x === "number") return x;
502
+ if (typeof x === "string") return Number(x || 0);
503
+ return 0;
504
+ case "int":
505
+ if (typeof x === "number") return Math.trunc(x);
506
+ if (typeof x === "string") return Math.trunc(Number(x || 0));
507
+ return 0;
508
+ case "nil":
509
+ return null;
510
+ case "bool":
511
+ if (typeof x === "boolean") return x;
512
+ if (typeof x === "string")
513
+ return ["true", "1", "yes"].includes(x.trim().toLowerCase());
514
+ return !!x;
515
+ case "date":
516
+ if (x instanceof Date) return x;
517
+ if (typeof x === "string" || typeof x === "number")
518
+ return new Date(x);
519
+ return new Date();
520
+ case "unknown":
521
+ return x;
522
+ case "vector":
523
+ if (Array.isArray(x)) return x.map((v) => convert(v, shapes.float()));
524
+ if (typeof x === "string")
525
+ return x
526
+ .replaceAll(/\[|\{|\}|\]/g, "")
527
+ .split(",")
528
+ .map((v) => v.trim())
529
+ .map((v) => convert(v, shapes.float()));
530
+ return [];
531
+ case "array":
532
+ if (Array.isArray(x)) return x.map((v) => convert(v, shape.item));
533
+ if (typeof x === "string")
534
+ return x
535
+ .replaceAll(/\[|\{|\}|\]/g, "")
536
+ .split(",")
537
+ .map((v) => v.trim())
538
+ .map((v) => convert(v, shape.item));
539
+ return [];
540
+ case "tuple":
541
+ if (Array.isArray(x))
542
+ return shape.tup.map((s, i) => convert(x[i], s));
543
+ if (typeof x === "string") {
544
+ const parts = x
545
+ .replaceAll(/\[|\{|\}|\]/g, "")
546
+ .split(",")
547
+ .map((v) => v.trim());
548
+ return shape.tup.map((s, i) => convert(parts[i], s));
549
+ }
550
+ return shape.tup.map((s) => convert(null, s));
551
+ case "bytes":
552
+ if (x instanceof Uint8Array) return x;
553
+ if (Array.isArray(x))
554
+ return new Uint8Array(
555
+ x.map((v) => convert(v, shapes.int())) as number[],
556
+ );
557
+ if (typeof x === "string")
558
+ return new Uint8Array(
559
+ x
560
+ .replaceAll(/\[|\{|\}|\]/g, "")
561
+ .split(",")
562
+ .map((v) => v.trim())
563
+ .map((v) => convert(v, shapes.number())) as number[],
564
+ );
565
+ return new Uint8Array();
566
+ case "ref":
567
+ return x;
568
+ case "union":
569
+ const t = shape.ofs[0];
570
+ return convert(x, t || shapes.unknown());
571
+ case "mapping":
572
+ let obj: Record<string, unknown> = {};
573
+ if (isPlainObject(x)) {
574
+ obj = x;
575
+ } else if (typeof x === "string") {
576
+ const trimmed = x.trim();
577
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
578
+ try {
579
+ obj = JSON.parse(x) as Record<string, unknown>;
580
+ } catch {}
581
+ }
582
+ }
583
+ return Object.assign(
584
+ {},
585
+ ...Object.entries(shape.rec).map(([k, t]) => {
586
+ return {
587
+ [k]: convert(obj[k], t),
588
+ };
589
+ }),
590
+ );
591
+ }
592
+ };
593
+
594
+ return convert(x, shape) as OutputOfShape<S>;
595
+ }
447
596
  }
448
597
 
449
598
  export namespace annotate {
@@ -513,40 +662,4 @@ export namespace annotate {
513
662
  > {
514
663
  return by(shape, { foreign: { shapeName, fieldName } });
515
664
  }
516
-
517
- export function auto(
518
- x: unknown,
519
- options: {
520
- preferLiterals?: boolean;
521
- } = {},
522
- ): Shape {
523
- if (isShape(x)) return x;
524
- if (x === null) return shapes.nil();
525
- if (typeof x === "undefined") return shapes.unknown();
526
- if (typeof x === "number")
527
- return options.preferLiterals ? shapes.literalNumber(x) : shapes.number();
528
- if (typeof x === "string")
529
- return options.preferLiterals ? shapes.literalStr(x) : shapes.str();
530
- if (typeof x === "boolean")
531
- return options.preferLiterals ? shapes.literalBool(x) : shapes.bool();
532
- if (x instanceof Date) return shapes.date();
533
- if (Array.isArray(x)) {
534
- if (x.length <= 0) return shapes.array(shapes.unknown());
535
- if (x.length === 1) return shapes.array(auto(x[0], options));
536
- const types = new Set(x.map((v) => typeof v));
537
- return shapes.array(
538
- types.size === 1 ?
539
- auto(x[0], options)
540
- : shapes.union(...x.map((v) => auto(v, options))),
541
- );
542
- }
543
- if (isPlainObject(x)) {
544
- return shapes.mapping(
545
- Object.fromEntries(
546
- Object.entries(x).map(([k, v]) => [k, auto(v, options)]),
547
- ),
548
- );
549
- }
550
- return shapes.unknown();
551
- }
552
665
  }