UNPKG

@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.

207 lines 17.4 kB
"use strict"; /** * SAM.gov Opportunity types with Zod validation */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SamOpportunitySearchResponseSchema = exports.SamOpportunitySortOptionsSchema = exports.SamOpportunitySearchFiltersSchema = exports.SamOpportunitySchema = exports.SamLinkSchema = exports.SamAwardSchema = exports.SamPlaceOfPerformanceSchema = exports.SamOfficeAddressSchema = exports.SamPointOfContactSchema = exports.SamResourceLinkSchema = exports.SamAwardInfoSchema = exports.SamOpportunityDatesSchema = exports.SamAttachmentSchema = exports.SamClassificationCodeSchema = void 0; const zod_1 = require("zod"); const constants_1 = require("../config/constants"); const common_1 = require("./common"); /** * Classification code (NAICS, PSC, etc.) */ exports.SamClassificationCodeSchema = zod_1.z.object({ type: zod_1.z.enum(['NAICS', 'PSC', 'FSC']), code: zod_1.z.string(), description: zod_1.z.string().optional(), }); /** * Attachment/document information */ exports.SamAttachmentSchema = zod_1.z.object({ name: zod_1.z.string(), type: zod_1.z.string().optional(), size: zod_1.z.number().optional(), url: zod_1.z.string().url().optional(), postedDate: zod_1.z.string().optional(), }); /** * Important dates for an opportunity */ exports.SamOpportunityDatesSchema = zod_1.z.object({ posted: zod_1.z.string().optional(), modified: zod_1.z.string().optional(), responseDeadline: zod_1.z.string().optional(), archiveDate: zod_1.z.string().optional(), closeDate: zod_1.z.string().optional(), }); /** * Award information */ exports.SamAwardInfoSchema = zod_1.z.object({ awardDate: zod_1.z.string().optional(), awardNumber: zod_1.z.string().optional(), awardAmount: zod_1.z.number().optional(), awardee: zod_1.z.object({ name: zod_1.z.string().optional(), uei: zod_1.z.string().optional(), cageCode: zod_1.z.string().optional(), }).optional(), }); /** * Resource link */ exports.SamResourceLinkSchema = zod_1.z.object({ url: zod_1.z.string().url(), description: zod_1.z.string().optional(), }); /** * Point of Contact schema (actual API structure) */ exports.SamPointOfContactSchema = zod_1.z.object({ type: zod_1.z.string(), fullName: zod_1.z.string().nullable().optional(), title: zod_1.z.string().nullable().optional(), email: zod_1.z.string().nullable().optional(), phone: zod_1.z.string().nullable().optional(), fax: zod_1.z.string().nullable().optional(), }); /** * Office Address schema (actual API structure) */ exports.SamOfficeAddressSchema = zod_1.z.object({ zipcode: zod_1.z.string().nullable().optional(), city: zod_1.z.string().nullable().optional(), state: zod_1.z.string().nullable().optional(), countryCode: zod_1.z.string().nullable().optional(), }); /** * Place of Performance schema (actual API structure with nested objects) */ exports.SamPlaceOfPerformanceSchema = zod_1.z.object({ city: zod_1.z.object({ code: zod_1.z.string().optional(), name: zod_1.z.string().optional(), }).nullable().optional(), state: zod_1.z.object({ code: zod_1.z.string().optional(), name: zod_1.z.string().optional(), }).nullable().optional(), country: zod_1.z.object({ code: zod_1.z.string().optional(), name: zod_1.z.string().optional(), }).nullable().optional(), }); /** * Award schema (actual API structure) */ exports.SamAwardSchema = zod_1.z.object({ awardee: zod_1.z.object({ manual: zod_1.z.boolean().optional(), name: zod_1.z.string().nullable().optional(), uei: zod_1.z.string().nullable().optional(), cageCode: zod_1.z.string().nullable().optional(), }).optional(), }); /** * Link schema */ exports.SamLinkSchema = zod_1.z.object({ rel: zod_1.z.string(), href: zod_1.z.string(), }); /** * Full SAM.gov Opportunity schema (based on actual API response) */ exports.SamOpportunitySchema = zod_1.z.object({ // Core identifiers noticeId: zod_1.z.string(), title: zod_1.z.string(), solicitationNumber: zod_1.z.string().nullable().optional(), // Agency information fullParentPathName: zod_1.z.string().optional(), fullParentPathCode: zod_1.z.string().optional(), organizationType: zod_1.z.string().optional(), // Dates postedDate: zod_1.z.string(), responseDeadLine: zod_1.z.string().nullable().optional(), archiveDate: zod_1.z.string().optional(), // Type information type: zod_1.z.string(), baseType: zod_1.z.string().optional(), archiveType: zod_1.z.string().optional(), // Set-aside information typeOfSetAside: constants_1.TypeOfSetAsideSchema.nullable().optional().or(zod_1.z.literal('')), typeOfSetAsideDescription: zod_1.z.string().nullable().optional(), // Classification naicsCode: zod_1.z.string().nullable().optional(), naicsCodes: zod_1.z.array(zod_1.z.string()).optional(), classificationCode: zod_1.z.string().nullable().optional(), // Status active: constants_1.ActiveStatusSchema.optional(), // Description description: zod_1.z.string().optional(), // Contacts pointOfContact: zod_1.z.array(exports.SamPointOfContactSchema).optional(), // Addresses officeAddress: exports.SamOfficeAddressSchema.nullable().optional(), placeOfPerformance: exports.SamPlaceOfPerformanceSchema.nullable().optional(), // Award information award: exports.SamAwardSchema.nullable().optional(), // Links uiLink: zod_1.z.string().optional(), links: zod_1.z.array(exports.SamLinkSchema).optional(), additionalInfoLink: zod_1.z.string().nullable().optional(), resourceLinks: zod_1.z.array(zod_1.z.string()).nullable().optional(), // Array of resource URLs or null }); /** * Search filters for opportunities */ exports.SamOpportunitySearchFiltersSchema = zod_1.z.object({ // Keywords keywords: zod_1.z.string().optional(), // Type filters types: zod_1.z.array(constants_1.OpportunityTypeSchema).optional(), // Classification filters naicsCodes: zod_1.z.array(zod_1.z.string()).optional(), pscCodes: zod_1.z.array(zod_1.z.string()).optional(), // Location filters placeOfPerformanceStates: zod_1.z.array(constants_1.StateCodeSchema).optional(), placeOfPerformanceZips: zod_1.z.array(zod_1.z.string()).optional(), // Agency filters agencies: zod_1.z.array(zod_1.z.string()).optional(), // Set-aside filters setAsideTypes: zod_1.z.array(constants_1.TypeOfSetAsideSchema).optional(), // Date filters postedFrom: zod_1.z.string().optional(), postedTo: zod_1.z.string().optional(), responseDeadlineFrom: zod_1.z.string().optional(), responseDeadlineTo: zod_1.z.string().optional(), // Value filters estimatedValueMin: zod_1.z.number().optional(), estimatedValueMax: zod_1.z.number().optional(), // Status filters activeOnly: zod_1.z.boolean().optional(), includeArchived: zod_1.z.boolean().optional(), // Competition filters competitionStrategy: zod_1.z.array(constants_1.CompetitionStrategySchema).optional(), }); /** * Sort options for opportunity searches */ exports.SamOpportunitySortOptionsSchema = zod_1.z.object({ field: zod_1.z.enum(['postedDate', 'modifiedDate', 'responseDeadline', 'title', 'estimatedValue']), order: common_1.GovDealsSortOrderSchema, }); /** * API response for opportunity search (actual API structure) */ exports.SamOpportunitySearchResponseSchema = zod_1.z.object({ totalRecords: zod_1.z.number(), limit: zod_1.z.number(), offset: zod_1.z.number(), opportunitiesData: zod_1.z.array(exports.SamOpportunitySchema), links: zod_1.z.array(exports.SamLinkSchema).optional(), searchTips: zod_1.z.array(zod_1.z.string()).optional(), }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bwb3J0dW5pdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlcy9vcHBvcnR1bml0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNkJBQXdCO0FBQ3hCLG1EQU02QjtBQUM3QixxQ0FFa0I7QUFFbEI7O0dBRUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDakMsQ0FBQyxDQUFDO0FBSUg7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEIsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDM0IsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDMUIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNkLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFO0lBQ3JCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3RDLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzlDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDM0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDNUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0s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