@lineai/gov-deals
Version:
Explore Federal contracts for government building renovations, city hall renovations, courthouse updates, library modernizations, federal building improvement contracts, base housing and facilities upgrades.
87 lines • 6.51 kB
JavaScript
"use strict";
/**
* Common types used across the gov-deals package
* All types are prefixed with 'GovDeals' to avoid naming conflicts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.GovDealsApiResponseSchema = exports.GovDealsErrorResponseSchema = exports.GovDealsSortOrderSchema = exports.GovDealsPaginationParamsSchema = exports.GovDealsValueRangeSchema = exports.GovDealsDateRangeSchema = exports.GovDealsContactSchema = exports.GovDealsAgencySchema = exports.GovDealsLocationSchema = void 0;
const zod_1 = require("zod");
const constants_1 = require("../config/constants");
/**
* Location information for government contracts
*/
exports.GovDealsLocationSchema = zod_1.z.object({
city: zod_1.z.string().optional(),
state: constants_1.StateCodeSchema.optional(),
zip: zod_1.z.string().optional(),
country: zod_1.z.string().optional(),
addressLine1: zod_1.z.string().optional(),
addressLine2: zod_1.z.string().optional(),
});
/**
* Federal agency information
*/
exports.GovDealsAgencySchema = zod_1.z.object({
name: zod_1.z.string(),
code: zod_1.z.string().optional(),
type: zod_1.z.string().optional(),
parentAgency: zod_1.z.string().optional(),
});
/**
* Government contact information
*/
exports.GovDealsContactSchema = zod_1.z.object({
name: zod_1.z.string().optional(),
email: zod_1.z.string().email().optional(),
phone: zod_1.z.string().optional(),
title: zod_1.z.string().optional(),
});
/**
* Date range for contract searches
*/
exports.GovDealsDateRangeSchema = zod_1.z.object({
start: zod_1.z.union([zod_1.z.date(), zod_1.z.string()]),
end: zod_1.z.union([zod_1.z.date(), zod_1.z.string()]),
});
/**
* Value range for contract amounts
*/
exports.GovDealsValueRangeSchema = zod_1.z.object({
min: zod_1.z.number().optional(),
max: zod_1.z.number().optional(),
currency: zod_1.z.string().default('USD').optional(),
});
/**
* Pagination parameters for API requests
*/
exports.GovDealsPaginationParamsSchema = zod_1.z.object({
page: zod_1.z.number().int().positive().optional(),
limit: zod_1.z.number().int().positive().max(1000).optional(),
offset: zod_1.z.number().int().nonnegative().optional(),
});
/**
* Sort order for results
*/
exports.GovDealsSortOrderSchema = zod_1.z.enum(['asc', 'desc']);
/**
* API error response
*/
exports.GovDealsErrorResponseSchema = zod_1.z.object({
code: zod_1.z.string(),
message: zod_1.z.string(),
details: zod_1.z.record(zod_1.z.unknown()).optional(),
});
/**
* API response wrapper
*/
const GovDealsApiResponseSchema = (dataSchema) => zod_1.z.object({
data: dataSchema,
metadata: zod_1.z.object({
totalRecords: zod_1.z.number().optional(),
page: zod_1.z.number().optional(),
limit: zod_1.z.number().optional(),
hasMore: zod_1.z.boolean().optional(),
}).optional(),
});
exports.GovDealsApiResponseSchema = GovDealsApiResponseSchema;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCw2QkFBd0I7QUFDeEIsbURBQXNEO0FBRXREOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLEtBQUssRUFBRSwyQkFBZSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNwQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNwQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM3QixDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxLQUFLLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0QyxHQUFHLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNVLFFBQUEsd0JBQXdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMvQyxHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQixHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDL0MsQ0FBQyxDQUFDO0FBSUg7O0dBRUc7QUFDVSxRQUFBLDhCQUE4QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xELENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFHL0Q7O0dBRUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzFDLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ0ksTUFBTSx5QkFBeUIsR0FBRyxDQUF5QixVQUFhLEVBQUUsRUFBRSxDQUNqRixPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1AsSUFBSSxFQUFFLFVBQVU7SUFDaEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDakIsWUFBWSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDbkMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDM0IsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNkLENBQUMsQ0FBQztBQVRRLFFBQUEseUJBQXlCLDZCQVNqQyJ9