@ventori/contracts 0.1.0 → 0.1.2
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/index.d.mts +151 -1550
- package/dist/index.mjs +10 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -4
package/dist/index.mjs
CHANGED
|
@@ -25,7 +25,7 @@ var ErrorResponseSchema = z2.object({
|
|
|
25
25
|
message: z2.string(),
|
|
26
26
|
statusCode: z2.number(),
|
|
27
27
|
error: z2.string().optional(),
|
|
28
|
-
details: z2.record(z2.unknown()).optional()
|
|
28
|
+
details: z2.record(z2.string(), z2.unknown()).optional()
|
|
29
29
|
});
|
|
30
30
|
var NotFoundResponseSchema = z2.object({
|
|
31
31
|
message: z2.string()
|
|
@@ -116,31 +116,28 @@ function createCrudEndpoints(c2, resource, schemas, plural) {
|
|
|
116
116
|
// src/common/crud-handler.ts
|
|
117
117
|
function createCrudHandlers(service) {
|
|
118
118
|
return {
|
|
119
|
-
list: async (
|
|
119
|
+
list: async (query) => {
|
|
120
120
|
const data = await service.list(query);
|
|
121
121
|
return { status: 200, body: data };
|
|
122
122
|
},
|
|
123
|
-
findById: async (
|
|
124
|
-
const entity = await service.findById(
|
|
123
|
+
findById: async (id) => {
|
|
124
|
+
const entity = await service.findById(id);
|
|
125
125
|
if (!entity)
|
|
126
126
|
return { status: 404, body: { message: "Not found" } };
|
|
127
127
|
return { status: 200, body: entity };
|
|
128
128
|
},
|
|
129
|
-
create: async (
|
|
130
|
-
const entity = await service.create(
|
|
129
|
+
create: async (data) => {
|
|
130
|
+
const entity = await service.create(data);
|
|
131
131
|
return { status: 201, body: entity };
|
|
132
132
|
},
|
|
133
|
-
update: async ({
|
|
134
|
-
|
|
135
|
-
body
|
|
136
|
-
}) => {
|
|
137
|
-
const entity = await service.update(params.id, body);
|
|
133
|
+
update: async (id, data) => {
|
|
134
|
+
const entity = await service.update(id, data);
|
|
138
135
|
if (!entity)
|
|
139
136
|
return { status: 404, body: { message: "Not found" } };
|
|
140
137
|
return { status: 200, body: entity };
|
|
141
138
|
},
|
|
142
|
-
remove: async (
|
|
143
|
-
await service.remove(
|
|
139
|
+
remove: async (id) => {
|
|
140
|
+
await service.remove(id);
|
|
144
141
|
return { status: 204, body: void 0 };
|
|
145
142
|
}
|
|
146
143
|
};
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/pagination.ts","../src/common/error.schema.ts","../src/common/api-response.ts","../src/common/contract-instance.ts","../src/common/http-methods.ts","../src/common/crud-factory.ts","../src/common/crud-handler.ts","../src/user/user.schema.ts","../src/user/user.contract.ts","../src/product/product.schema.ts","../src/product/product.contract.ts","../src/order/order.schema.ts","../src/order/order.contract.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const PaginationQuerySchema = z.object({\n page: z.coerce.number().int().positive().default(1),\n pageSize: z.coerce.number().int().positive().max(100).default(20),\n sortBy: z.string().optional(),\n sortOrder: z.enum([\"asc\", \"desc\"]).default(\"desc\"),\n});\n\nexport type PaginationQuery = z.infer<typeof PaginationQuerySchema>;\n\nexport const PaginationSchema = z.object({\n page: z.number(),\n pageSize: z.number(),\n total: z.number(),\n totalPages: z.number(),\n hasNext: z.boolean(),\n hasPrev: z.boolean(),\n});\n\nexport type Pagination = z.infer<typeof PaginationSchema>;\n\nexport const DataResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>\n z.object({\n data: z.array(itemSchema),\n pagination: PaginationSchema,\n });\n\nexport type DataResponse<T> = {\n data: T[];\n pagination: Pagination;\n};\n","import { z } from \"zod\";\n\nexport const ErrorResponseSchema = z.object({\n message: z.string(),\n statusCode: z.number(),\n error: z.string().optional(),\n details: z.record(z.unknown()).optional(),\n});\n\nexport type ErrorResponse = z.infer<typeof ErrorResponseSchema>;\n\nexport const NotFoundResponseSchema = z.object({\n message: z.string(),\n});\n\nexport const ValidationErrorSchema = z.object({\n message: z.string(),\n statusCode: z.number().default(400),\n error: z.string().default(\"Bad Request\"),\n details: z.array(\n z.object({\n field: z.string(),\n message: z.string(),\n }),\n ),\n});\n\nexport type ValidationError = z.infer<typeof ValidationErrorSchema>;\n","import { z } from \"zod\";\nimport { DataResponseSchema } from \"./pagination\";\n\nexport const ApiSuccessResponseSchema = <T extends z.ZodTypeAny>(\n dataSchema: T,\n) =>\n z.object({\n success: z.literal(true),\n data: dataSchema,\n });\n\nexport const ApiErrorResponseSchema = z.object({\n success: z.literal(false),\n message: z.string(),\n statusCode: z.number(),\n error: z.string().optional(),\n});\n\nexport const ApiPaginatedResponseSchema = <T extends z.ZodTypeAny>(\n itemSchema: T,\n) =>\n z.object({\n success: z.literal(true),\n ...DataResponseSchema(itemSchema).shape,\n });\n","import { initContract } from \"@ts-rest/core\";\n\nexport type ContractInstance = ReturnType<typeof initContract>;\n\nexport const c: ContractInstance = initContract();\n","export const HttpMethod = {\n GET: 'GET',\n POST: 'POST',\n PUT: 'PUT',\n PATCH: 'PATCH',\n DELETE: 'DELETE',\n} as const;\n","import { z } from \"zod\";\nimport type { ContractInstance } from \"./contract-instance\";\nimport { HttpMethod } from \"./http-methods\";\nimport { PaginationQuerySchema, DataResponseSchema } from \"./pagination\";\nimport { NotFoundResponseSchema } from \"./error.schema\";\n\nexport function createCrudEndpoints<\n TEntity extends z.ZodTypeAny,\n TCreate extends z.ZodTypeAny,\n TUpdate extends z.ZodTypeAny,\n>(\n c: ContractInstance,\n resource: string,\n schemas: { entity: TEntity; create: TCreate; update: TUpdate },\n plural?: string,\n) {\n const base = plural ?? `${resource}s`;\n\n return {\n list: {\n method: HttpMethod.GET,\n path: `/${base}` as const,\n query: PaginationQuerySchema,\n responses: { 200: DataResponseSchema(schemas.entity) },\n summary: `List all ${base}`,\n },\n findById: {\n method: HttpMethod.GET,\n path: `/${base}/:id` as const,\n responses: { 200: schemas.entity, 404: NotFoundResponseSchema },\n summary: `Find ${resource} by ID`,\n },\n create: {\n method: HttpMethod.POST,\n path: `/${base}` as const,\n body: schemas.create,\n responses: { 201: schemas.entity },\n summary: `Create a new ${resource}`,\n },\n update: {\n method: HttpMethod.PUT,\n path: `/${base}/:id` as const,\n body: schemas.update,\n responses: { 200: schemas.entity, 404: NotFoundResponseSchema },\n summary: `Update ${resource} by ID`,\n },\n remove: {\n method: HttpMethod.DELETE,\n path: `/${base}/:id` as const,\n body: c.noBody(),\n responses: { 204: c.noBody(), 404: NotFoundResponseSchema },\n summary: `Delete ${resource} by ID`,\n },\n } as const;\n}\n","import type { PaginationQuery } from \"./pagination\";\nimport type { ICrudService } from \"./crud-service.interface\";\n\nexport function createCrudHandlers<T>(service: ICrudService<T>) {\n return {\n list: async ({ query }: { query: PaginationQuery }) => {\n const data = await service.list(query);\n return { status: 200 as const, body: data };\n },\n findById: async ({ params }: { params: { id: string } }) => {\n const entity = await service.findById(params.id);\n if (!entity)\n return { status: 404 as const, body: { message: \"Not found\" } };\n return { status: 200 as const, body: entity };\n },\n create: async ({ body }: { body: unknown }) => {\n const entity = await service.create(body);\n return { status: 201 as const, body: entity };\n },\n update: async ({\n params,\n body,\n }: {\n params: { id: string };\n body: unknown;\n }) => {\n const entity = await service.update(params.id, body);\n if (!entity)\n return { status: 404 as const, body: { message: \"Not found\" } };\n return { status: 200 as const, body: entity };\n },\n remove: async ({ params }: { params: { id: string } }) => {\n await service.remove(params.id);\n return { status: 204 as const, body: undefined };\n },\n };\n}\n","import { z } from \"zod\";\n\nexport const UserSchema = z.object({\n id: z.string().uuid(),\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n isActive: z.boolean().default(true),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const CreateUserSchema = z.object({\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n password: z.string().min(8),\n});\n\nexport const UpdateUserSchema = CreateUserSchema.partial()\n .omit({ password: true })\n .extend({\n isActive: z.boolean().optional(),\n });\n\nexport type User = z.infer<typeof UserSchema>;\nexport type CreateUser = z.infer<typeof CreateUserSchema>;\nexport type UpdateUser = z.infer<typeof UpdateUserSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport { UserSchema, CreateUserSchema, UpdateUserSchema } from \"./user.schema\";\n\nconst base = createCrudEndpoints(c, \"user\", {\n entity: UserSchema,\n create: CreateUserSchema,\n update: UpdateUserSchema,\n});\n\nexport const userContract = c.router({\n ...base,\n});\n","import { z } from 'zod';\n\nexport const ProductSchema = z.object({\n id: z.string().uuid(),\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n categoryId: z.string().uuid(),\n unitOfMeasureId: z.string().uuid(),\n taxId: z.string().uuid(),\n isActive: z.boolean().default(true),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const CreateProductSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n categoryId: z.string().uuid(),\n unitOfMeasureId: z.string().uuid(),\n taxId: z.string().uuid(),\n});\n\nexport const UpdateProductSchema = CreateProductSchema.partial().extend({\n isActive: z.boolean().optional(),\n});\n\nexport type Product = z.infer<typeof ProductSchema>;\nexport type CreateProduct = z.infer<typeof CreateProductSchema>;\nexport type UpdateProduct = z.infer<typeof UpdateProductSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport {\n ProductSchema,\n CreateProductSchema,\n UpdateProductSchema,\n} from \"./product.schema\";\n\nconst base = createCrudEndpoints(c, \"product\", {\n entity: ProductSchema,\n create: CreateProductSchema,\n update: UpdateProductSchema,\n});\n\nexport const productContract = c.router({\n ...base,\n});\n","import { z } from 'zod';\n\nexport const OrderItemSchema = z.object({\n id: z.string().uuid(),\n orderId: z.string().uuid(),\n productId: z.string().uuid(),\n quantity: z.number().positive(),\n unitPrice: z.number().positive(),\n subtotal: z.number().nonnegative(),\n taxAmount: z.number().nonnegative(),\n total: z.number().nonnegative(),\n});\n\nexport const CreateOrderItemSchema = z.object({\n productId: z.string().uuid(),\n quantity: z.number().positive(),\n unitPrice: z.number().positive(),\n});\n\nexport const OrderStatusSchema = z.enum([\n 'pending',\n 'confirmed',\n 'processing',\n 'shipped',\n 'delivered',\n 'cancelled',\n]);\n\nexport const OrderSchema = z.object({\n id: z.string().uuid(),\n orderNumber: z.string().min(1),\n clientId: z.string().uuid(),\n sellerId: z.string().uuid().optional(),\n status: OrderStatusSchema,\n subtotal: z.number().nonnegative(),\n taxAmount: z.number().nonnegative(),\n discountAmount: z.number().nonnegative().default(0),\n total: z.number().nonnegative(),\n notes: z.string().optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n items: z.array(OrderItemSchema).optional(),\n});\n\nexport const CreateOrderSchema = z.object({\n clientId: z.string().uuid(),\n sellerId: z.string().uuid().optional(),\n notes: z.string().optional(),\n items: z.array(CreateOrderItemSchema).min(1),\n});\n\nexport const UpdateOrderStatusSchema = z.object({\n status: OrderStatusSchema,\n});\n\nexport type OrderItem = z.infer<typeof OrderItemSchema>;\nexport type CreateOrderItem = z.infer<typeof CreateOrderItemSchema>;\nexport type Order = z.infer<typeof OrderSchema>;\nexport type CreateOrder = z.infer<typeof CreateOrderSchema>;\nexport type UpdateOrderStatus = z.infer<typeof UpdateOrderStatusSchema>;\nexport type OrderStatus = z.infer<typeof OrderStatusSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport {\n OrderSchema,\n CreateOrderSchema,\n UpdateOrderStatusSchema,\n} from \"./order.schema\";\n\nconst base = createCrudEndpoints(c, \"order\", {\n entity: OrderSchema,\n create: CreateOrderSchema,\n update: UpdateOrderStatusSchema,\n});\n\nexport const orderContract = c.router({\n ...base,\n});\n"],"mappings":"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","names":["z","z","z","c","base","z","z","base","z","base"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/pagination.ts","../src/common/error.schema.ts","../src/common/api-response.ts","../src/common/contract-instance.ts","../src/common/http-methods.ts","../src/common/crud-factory.ts","../src/common/crud-handler.ts","../src/user/user.schema.ts","../src/user/user.contract.ts","../src/product/product.schema.ts","../src/product/product.contract.ts","../src/order/order.schema.ts","../src/order/order.contract.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const PaginationQuerySchema = z.object({\n page: z.coerce.number().int().positive().default(1),\n pageSize: z.coerce.number().int().positive().max(100).default(20),\n sortBy: z.string().optional(),\n sortOrder: z.enum([\"asc\", \"desc\"]).default(\"desc\"),\n});\n\nexport type PaginationQuery = z.infer<typeof PaginationQuerySchema>;\n\nexport const PaginationSchema = z.object({\n page: z.number(),\n pageSize: z.number(),\n total: z.number(),\n totalPages: z.number(),\n hasNext: z.boolean(),\n hasPrev: z.boolean(),\n});\n\nexport type Pagination = z.infer<typeof PaginationSchema>;\n\nexport const DataResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>\n z.object({\n data: z.array(itemSchema),\n pagination: PaginationSchema,\n });\n\nexport type DataResponse<T> = {\n data: T[];\n pagination: Pagination;\n};\n","import { z } from \"zod\";\n\nexport const ErrorResponseSchema = z.object({\n message: z.string(),\n statusCode: z.number(),\n error: z.string().optional(),\n details: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type ErrorResponse = z.infer<typeof ErrorResponseSchema>;\n\nexport const NotFoundResponseSchema = z.object({\n message: z.string(),\n});\n\nexport const ValidationErrorSchema = z.object({\n message: z.string(),\n statusCode: z.number().default(400),\n error: z.string().default(\"Bad Request\"),\n details: z.array(\n z.object({\n field: z.string(),\n message: z.string(),\n }),\n ),\n});\n\nexport type ValidationError = z.infer<typeof ValidationErrorSchema>;\n","import { z } from \"zod\";\nimport { DataResponseSchema } from \"./pagination\";\n\nexport const ApiSuccessResponseSchema = <T extends z.ZodTypeAny>(\n dataSchema: T,\n) =>\n z.object({\n success: z.literal(true),\n data: dataSchema,\n });\n\nexport const ApiErrorResponseSchema = z.object({\n success: z.literal(false),\n message: z.string(),\n statusCode: z.number(),\n error: z.string().optional(),\n});\n\nexport const ApiPaginatedResponseSchema = <T extends z.ZodTypeAny>(\n itemSchema: T,\n) =>\n z.object({\n success: z.literal(true),\n ...DataResponseSchema(itemSchema).shape,\n });\n","import { initContract } from \"@ts-rest/core\";\n\nexport type ContractInstance = ReturnType<typeof initContract>;\n\nexport const c: ContractInstance = initContract();\n","export const HttpMethod = {\n GET: 'GET',\n POST: 'POST',\n PUT: 'PUT',\n PATCH: 'PATCH',\n DELETE: 'DELETE',\n} as const;\n","import { z } from \"zod\";\nimport type { ContractInstance } from \"./contract-instance\";\nimport { HttpMethod } from \"./http-methods\";\nimport { PaginationQuerySchema, DataResponseSchema } from \"./pagination\";\nimport { NotFoundResponseSchema } from \"./error.schema\";\n\nexport function createCrudEndpoints<\n TEntity extends z.ZodTypeAny,\n TCreate extends z.ZodTypeAny,\n TUpdate extends z.ZodTypeAny,\n>(\n c: ContractInstance,\n resource: string,\n schemas: { entity: TEntity; create: TCreate; update: TUpdate },\n plural?: string,\n) {\n const base = plural ?? `${resource}s`;\n\n return {\n list: {\n method: HttpMethod.GET,\n path: `/${base}` as const,\n query: PaginationQuerySchema,\n responses: { 200: DataResponseSchema(schemas.entity) },\n summary: `List all ${base}`,\n },\n findById: {\n method: HttpMethod.GET,\n path: `/${base}/:id` as const,\n responses: { 200: schemas.entity, 404: NotFoundResponseSchema },\n summary: `Find ${resource} by ID`,\n },\n create: {\n method: HttpMethod.POST,\n path: `/${base}` as const,\n body: schemas.create,\n responses: { 201: schemas.entity },\n summary: `Create a new ${resource}`,\n },\n update: {\n method: HttpMethod.PUT,\n path: `/${base}/:id` as const,\n body: schemas.update,\n responses: { 200: schemas.entity, 404: NotFoundResponseSchema },\n summary: `Update ${resource} by ID`,\n },\n remove: {\n method: HttpMethod.DELETE,\n path: `/${base}/:id` as const,\n body: c.noBody(),\n responses: { 204: c.noBody(), 404: NotFoundResponseSchema },\n summary: `Delete ${resource} by ID`,\n },\n } as const;\n}\n","import type { PaginationQuery } from \"./pagination\";\nimport type { ICrudService } from \"./crud-interface\";\n\nexport function createCrudHandlers<TData, TCreate, TUpdate>(\n service: ICrudService<TData, TCreate, TUpdate>,\n) {\n return {\n list: async (query: PaginationQuery) => {\n const data = await service.list(query);\n return { status: 200 as const, body: data };\n },\n findById: async (id: string) => {\n const entity = await service.findById(id);\n if (!entity)\n return { status: 404 as const, body: { message: \"Not found\" } };\n return { status: 200 as const, body: entity };\n },\n create: async (data: TCreate) => {\n const entity = await service.create(data);\n return { status: 201 as const, body: entity };\n },\n update: async (id: string, data: TUpdate) => {\n const entity = await service.update(id, data);\n if (!entity)\n return { status: 404 as const, body: { message: \"Not found\" } };\n return { status: 200 as const, body: entity };\n },\n remove: async (id: string) => {\n await service.remove(id);\n return { status: 204 as const, body: undefined };\n },\n };\n}\n","import { z } from \"zod\";\n\nexport const UserSchema = z.object({\n id: z.string().uuid(),\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n isActive: z.boolean().default(true),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const CreateUserSchema = z.object({\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n password: z.string().min(8),\n});\n\nexport const UpdateUserSchema = CreateUserSchema.partial()\n .omit({ password: true })\n .extend({\n isActive: z.boolean().optional(),\n });\n\nexport type User = z.infer<typeof UserSchema>;\nexport type CreateUser = z.infer<typeof CreateUserSchema>;\nexport type UpdateUser = z.infer<typeof UpdateUserSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport { UserSchema, CreateUserSchema, UpdateUserSchema } from \"./user.schema\";\n\nconst base = createCrudEndpoints(c, \"user\", {\n entity: UserSchema,\n create: CreateUserSchema,\n update: UpdateUserSchema,\n});\n\nexport const userContract = c.router({\n ...base,\n});\n","import { z } from 'zod';\n\nexport const ProductSchema = z.object({\n id: z.string().uuid(),\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n categoryId: z.string().uuid(),\n unitOfMeasureId: z.string().uuid(),\n taxId: z.string().uuid(),\n isActive: z.boolean().default(true),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const CreateProductSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n categoryId: z.string().uuid(),\n unitOfMeasureId: z.string().uuid(),\n taxId: z.string().uuid(),\n});\n\nexport const UpdateProductSchema = CreateProductSchema.partial().extend({\n isActive: z.boolean().optional(),\n});\n\nexport type Product = z.infer<typeof ProductSchema>;\nexport type CreateProduct = z.infer<typeof CreateProductSchema>;\nexport type UpdateProduct = z.infer<typeof UpdateProductSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport {\n ProductSchema,\n CreateProductSchema,\n UpdateProductSchema,\n} from \"./product.schema\";\n\nconst base = createCrudEndpoints(c, \"product\", {\n entity: ProductSchema,\n create: CreateProductSchema,\n update: UpdateProductSchema,\n});\n\nexport const productContract = c.router({\n ...base,\n});\n","import { z } from 'zod';\n\nexport const OrderItemSchema = z.object({\n id: z.string().uuid(),\n orderId: z.string().uuid(),\n productId: z.string().uuid(),\n quantity: z.number().positive(),\n unitPrice: z.number().positive(),\n subtotal: z.number().nonnegative(),\n taxAmount: z.number().nonnegative(),\n total: z.number().nonnegative(),\n});\n\nexport const CreateOrderItemSchema = z.object({\n productId: z.string().uuid(),\n quantity: z.number().positive(),\n unitPrice: z.number().positive(),\n});\n\nexport const OrderStatusSchema = z.enum([\n 'pending',\n 'confirmed',\n 'processing',\n 'shipped',\n 'delivered',\n 'cancelled',\n]);\n\nexport const OrderSchema = z.object({\n id: z.string().uuid(),\n orderNumber: z.string().min(1),\n clientId: z.string().uuid(),\n sellerId: z.string().uuid().optional(),\n status: OrderStatusSchema,\n subtotal: z.number().nonnegative(),\n taxAmount: z.number().nonnegative(),\n discountAmount: z.number().nonnegative().default(0),\n total: z.number().nonnegative(),\n notes: z.string().optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n items: z.array(OrderItemSchema).optional(),\n});\n\nexport const CreateOrderSchema = z.object({\n clientId: z.string().uuid(),\n sellerId: z.string().uuid().optional(),\n notes: z.string().optional(),\n items: z.array(CreateOrderItemSchema).min(1),\n});\n\nexport const UpdateOrderStatusSchema = z.object({\n status: OrderStatusSchema,\n});\n\nexport type OrderItem = z.infer<typeof OrderItemSchema>;\nexport type CreateOrderItem = z.infer<typeof CreateOrderItemSchema>;\nexport type Order = z.infer<typeof OrderSchema>;\nexport type CreateOrder = z.infer<typeof CreateOrderSchema>;\nexport type UpdateOrderStatus = z.infer<typeof UpdateOrderStatusSchema>;\nexport type OrderStatus = z.infer<typeof OrderStatusSchema>;\n","import { c, createCrudEndpoints } from \"../common\";\nimport {\n OrderSchema,\n CreateOrderSchema,\n UpdateOrderStatusSchema,\n} from \"./order.schema\";\n\nconst base = createCrudEndpoints(c, \"order\", {\n entity: OrderSchema,\n create: CreateOrderSchema,\n update: UpdateOrderStatusSchema,\n});\n\nexport const orderContract = c.router({\n ...base,\n});\n"],"mappings":"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","names":["z","z","z","c","base","z","z","base","z","base"]}
|
package/package.json
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ventori/contracts",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared contracts for Ventori ERP — ts-rest routers, Zod schemas, and inferred types",
|
|
6
|
-
"main": "dist/index.
|
|
7
|
-
"types": "dist/index.d.
|
|
6
|
+
"main": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.mts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.mts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"default": "./dist/index.mjs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
8
15
|
"dependencies": {
|
|
9
16
|
"@ts-rest/core": "^3.52.0",
|
|
10
|
-
"zod": "^
|
|
17
|
+
"zod": "^4.4.3"
|
|
11
18
|
},
|
|
12
19
|
"devDependencies": {
|
|
13
20
|
"tsup": "^8.5.1",
|