cogsbox-shape 0.5.98 → 0.5.100

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/schema.d.ts CHANGED
@@ -39,21 +39,26 @@ type ZodTypeFromPrimitive<T> = T extends string ? z.ZodString : T extends number
39
39
  type IsLiteralType<T> = T extends string ? string extends T ? false : true : T extends number ? number extends T ? false : true : T extends boolean ? boolean extends T ? false : true : false;
40
40
  export interface IBuilderMethods<T extends SQLType | RelationConfig<any>, TSql extends z.ZodTypeAny, TNew extends z.ZodTypeAny, TInitialValue, TClient extends z.ZodTypeAny, TValidation extends z.ZodTypeAny> {
41
41
  initialState: {
42
- <const TResult>(defaultValue: TResult): TResult extends () => infer R ? R extends z.ZodTypeAny ? Prettify<Builder<"new", T, TSql, R, z.infer<R>, InferSmartClientType<TSql, R>, InferSmartClientType<TSql, R>>> : Prettify<Builder<"new", T, TSql, z.ZodLiteral<R>, R, z.ZodUnion<[TSql, z.ZodLiteral<R>]>, z.ZodUnion<[TSql, z.ZodLiteral<R>]>>> : TResult extends z.ZodTypeAny ? Prettify<Builder<"new", T, TSql, TResult, z.infer<TResult>, InferSmartClientType<TSql, TResult>, InferSmartClientType<TSql, TResult>>> : TResult extends string | number | boolean ? Prettify<Builder<"new", T, TSql, z.ZodLiteral<TResult>, TResult, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>>> : Prettify<Builder<"new", T, TSql, ZodTypeFromPrimitive<TResult>, TResult, InferSmartClientType<TSql, ZodTypeFromPrimitive<TResult>>, InferSmartClientType<TSql, ZodTypeFromPrimitive<TResult>>>>;
43
42
  <TNewNext extends z.ZodTypeAny, const TDefaultNext>(schema: ((tools: {
44
43
  sql: TSql;
45
- }) => TNewNext) | TNewNext, defaultValue: TDefaultNext): Prettify<Builder<"new", T, TSql, z.ZodUnion<[
44
+ }) => TNewNext) | TNewNext, defaultValue: TDefaultNext | ((tools: {
45
+ sql: TSql;
46
+ }) => TDefaultNext)): Prettify<Builder<"new", T, TSql, z.ZodUnion<[
46
47
  TNewNext,
47
- z.ZodLiteral<TDefaultNext extends () => infer R ? R : TDefaultNext>
48
- ]>, IsLiteralType<z.infer<TNewNext>> extends true ? TDefaultNext extends () => infer R ? R : TDefaultNext : z.infer<TNewNext>, (TDefaultNext extends () => infer R ? R : TDefaultNext) extends z.infer<TNewNext> ? z.ZodUnion<[TSql, TNewNext]> : z.ZodUnion<[
48
+ z.ZodLiteral<TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext>
49
+ ]>, IsLiteralType<z.infer<TNewNext>> extends true ? TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext : z.infer<TNewNext>, (TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext) extends z.infer<TNewNext> ? z.ZodUnion<[TSql, TNewNext]> : z.ZodUnion<[
49
50
  TSql,
50
51
  TNewNext,
51
- z.ZodLiteral<TDefaultNext extends () => infer R ? R : TDefaultNext>
52
- ]>, (TDefaultNext extends () => infer R ? R : TDefaultNext) extends z.infer<TNewNext> ? z.ZodUnion<[TSql, TNewNext]> : z.ZodUnion<[
52
+ z.ZodLiteral<TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext>
53
+ ]>, (TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext) extends z.infer<TNewNext> ? z.ZodUnion<[TSql, TNewNext]> : z.ZodUnion<[
53
54
  TSql,
54
55
  TNewNext,
55
- z.ZodLiteral<TDefaultNext extends () => infer R ? R : TDefaultNext>
56
+ z.ZodLiteral<TDefaultNext extends (...args: any[]) => infer R ? R : TDefaultNext>
56
57
  ]>>>;
58
+ <const TResult>(defaultValue: (tools: {
59
+ sql: TSql;
60
+ }) => TResult): TResult extends z.ZodTypeAny ? Prettify<Builder<"new", T, TSql, TResult, z.infer<TResult>, InferSmartClientType<TSql, TResult>, InferSmartClientType<TSql, TResult>>> : Prettify<Builder<"new", T, TSql, z.ZodLiteral<TResult>, TResult, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>>>;
61
+ <const TResult>(defaultValue: TResult): TResult extends () => infer R ? R extends z.ZodTypeAny ? Prettify<Builder<"new", T, TSql, R, z.infer<R>, InferSmartClientType<TSql, R>, InferSmartClientType<TSql, R>>> : Prettify<Builder<"new", T, TSql, z.ZodLiteral<R>, R, z.ZodUnion<[TSql, z.ZodLiteral<R>]>, z.ZodUnion<[TSql, z.ZodLiteral<R>]>>> : TResult extends z.ZodTypeAny ? Prettify<Builder<"new", T, TSql, TResult, z.infer<TResult>, InferSmartClientType<TSql, TResult>, InferSmartClientType<TSql, TResult>>> : TResult extends string | number | boolean ? Prettify<Builder<"new", T, TSql, z.ZodLiteral<TResult>, TResult, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>, z.ZodUnion<[TSql, z.ZodLiteral<TResult>]>>> : Prettify<Builder<"new", T, TSql, ZodTypeFromPrimitive<TResult>, TResult, InferSmartClientType<TSql, ZodTypeFromPrimitive<TResult>>, InferSmartClientType<TSql, ZodTypeFromPrimitive<TResult>>>>;
57
62
  };
58
63
  reference: <TRefSchema extends {
59
64
  _tableName: string;
package/dist/schema.js CHANGED
@@ -497,11 +497,11 @@ export function createSchema(schema, relations) {
497
497
  const childSchemaResult = createSchema(relatedSchemaFactory());
498
498
  let baseClientSchema;
499
499
  if (sqlConfig.type === "hasMany" || sqlConfig.type === "manyToMany") {
500
- baseClientSchema = z.array(childSchemaResult.clientSchema);
500
+ baseClientSchema = z.array(childSchemaResult.clientSchema).optional();
501
501
  defaultValues[key] = Array.from({ length: sqlConfig.defaultCount || 0 }, () => childSchemaResult.defaultValues);
502
502
  }
503
503
  else {
504
- baseClientSchema = childSchemaResult.clientSchema;
504
+ baseClientSchema = childSchemaResult.clientSchema.optional();
505
505
  defaultValues[key] = childSchemaResult.defaultValues;
506
506
  }
507
507
  clientFields[key] = config.clientTransform
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogsbox-shape",
3
- "version": "0.5.98",
3
+ "version": "0.5.100",
4
4
  "description": "A TypeScript library for creating type-safe database schemas with Zod validation, SQL type definitions, and automatic client/server transformations. Unifies client, server, and database types through a single schema definition, with built-in support for relationships and serialization.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",