@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
JavaScript
"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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