@lineai/municipal-intel
Version:
AI-first municipal data API providing natural language descriptions of building permits and planning applications from major US cities
67 lines • 7.22 kB
JavaScript
"use strict";
/**
* Types for municipal data source configuration
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.MunicipalSourceSchema = exports.ScrapingSourceSchema = exports.PortalSourceSchema = exports.ApiSourceSchema = exports.SocrataDatasetSchema = exports.RateLimitSchema = exports.ApiAuthSchema = void 0;
const zod_1 = require("zod");
/**
* Zod schemas for validation
*/
exports.ApiAuthSchema = zod_1.z.object({
required: zod_1.z.boolean(),
recommended: zod_1.z.boolean().optional(),
type: zod_1.z.enum(['app_token', 'api_key', 'oauth']).optional(),
header: zod_1.z.string().optional()
});
exports.RateLimitSchema = zod_1.z.object({
limit: zod_1.z.union([zod_1.z.number(), zod_1.z.literal('unknown'), zod_1.z.literal('shared')]).optional(),
period: zod_1.z.enum(['second', 'minute', 'hour', 'day']).optional(),
withToken: zod_1.z.number().optional(),
withoutToken: zod_1.z.union([zod_1.z.number(), zod_1.z.literal('shared')]).optional()
});
exports.SocrataDatasetSchema = zod_1.z.object({
endpoint: zod_1.z.string(),
name: zod_1.z.string(),
fields: zod_1.z.array(zod_1.z.string()),
fieldMappings: zod_1.z.record(zod_1.z.string()).optional(),
getFullAddress: zod_1.z.function().returns(zod_1.z.string()),
getDescription: zod_1.z.function().returns(zod_1.z.string())
});
exports.ApiSourceSchema = zod_1.z.object({
type: zod_1.z.enum(['socrata', 'arcgis', 'custom']),
baseUrl: zod_1.z.string().url(),
datasets: zod_1.z.record(exports.SocrataDatasetSchema).optional(),
endpoints: zod_1.z.record(zod_1.z.string()).optional(),
authentication: exports.ApiAuthSchema.optional(),
rateLimit: exports.RateLimitSchema.optional()
});
exports.PortalSourceSchema = zod_1.z.object({
url: zod_1.z.string().url(),
system: zod_1.z.enum(['accela', 'custom', 'eBUILD', 'ePermits', 'MyJax']),
loginRequired: zod_1.z.boolean().optional()
});
exports.ScrapingSourceSchema = zod_1.z.object({
url: zod_1.z.string().url(),
format: zod_1.z.enum(['html', 'pdf']).optional(),
selectors: zod_1.z.record(zod_1.z.string()).optional(),
hasPdfs: zod_1.z.boolean().optional(),
requiresJS: zod_1.z.boolean().optional()
});
exports.MunicipalSourceSchema = zod_1.z.object({
id: zod_1.z.string(),
name: zod_1.z.string(),
state: zod_1.z.string().length(2),
type: zod_1.z.enum(['api', 'portal', 'scraping']),
api: exports.ApiSourceSchema.optional(),
portal: exports.PortalSourceSchema.optional(),
scraping: exports.ScrapingSourceSchema.optional(),
urls: zod_1.z.record(zod_1.z.string()).optional(),
coverage: zod_1.z.array(zod_1.z.string()).optional(),
updateFrequency: zod_1.z.string().optional(),
priority: zod_1.z.enum(['high', 'medium', 'low']),
enabled: zod_1.z.boolean().optional(),
lastChecked: zod_1.z.string().optional(),
lastError: zod_1.z.string().optional()
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlcy9zb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNkJBQXdCO0FBa0t4Qjs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUU7SUFDckIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFELE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzlCLENBQUMsQ0FBQztBQUVVLFFBQUEsZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEYsTUFBTSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM5RCxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxZQUFZLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxR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RUFBRSw0QkFBb0IsQ0FBQyxRQUFRLEVBQUU7SUFFekMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFFBQVEsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxlQUFlLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxRQUFRLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFM0MsT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDakMsQ0FBQyxDQUFDIn0=