{"version":3,"sources":["../src/client.ts"],"sourcesContent":["import { z } from 'zod';\n\n// --- Error Handling ---\n\nexport class StatCanError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = 'StatCanError';\n  }\n}\n\nexport class StatCanApiError extends StatCanError {\n  public code?: string;\n  public retryAfterMs?: number;\n  public retryAfter?: number;\n\n  constructor(\n    public status: number,\n    public url: string,\n    public body: string,\n    message: string,\n    options: ProviderErrorOptions = {}\n  ) {\n    super(message);\n    this.name = 'StatCanApiError';\n    this.code = options.code;\n    this.retryAfterMs = options.retryAfterMs;\n    this.retryAfter = options.retryAfter;\n  }\n}\n\nexport class AgencyResponseError extends StatCanApiError {\n  constructor(status: number, url: string, body: string, message: string, options: ProviderErrorOptions = {}) {\n    super(status, url, body, message, options);\n    this.name = 'AgencyResponseError';\n  }\n}\n\nexport class InvalidCoordinateError extends StatCanApiError {\n  constructor(status: number, url: string, body: string, message: string, options: ProviderErrorOptions = {}) {\n    super(status, url, body, message, options);\n    this.name = 'InvalidCoordinateError';\n  }\n}\n\nexport class AgencyInternalError extends StatCanApiError {\n  constructor(status: number, url: string, body: string, message: string, options: ProviderErrorOptions = {}) {\n    super(status, url, body, message, options);\n    this.name = 'AgencyInternalError';\n  }\n}\n\nexport class SuppressedDataError extends StatCanError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'SuppressedDataError';\n  }\n}\n\n// --- Zod Schemas ---\n\nexport const ResponseStatusSchema = z.enum(['SUCCESS', 'FAILED']);\n\nexport const MemberSchema = z.object({\n  memberId: z.number(),\n  parentMemberId: z.number().nullable().optional(),\n  memberNameEn: z.string().nullable().optional(),\n  memberNameFr: z.string().nullable().optional(),\n  classificationCode: z.string().nullable().optional(),\n  classificationTypeCode: z.string().nullable().optional(),\n  geoLevel: z.number().nullable().optional(),\n  vintage: z.number().nullable().optional(),\n  terminated: z.number().nullable().optional(),\n  memberUomCode: z.number().nullable().optional(),\n});\n\nexport const DimensionSchema = z.object({\n  dimensionPositionId: z.number(),\n  dimensionNameEn: z.string().nullable().optional(),\n  dimensionNameFr: z.string().nullable().optional(),\n  hasUom: z.boolean(),\n  member: z.array(MemberSchema).optional(),\n});\n\nexport const FootnoteLinkSchema = z.object({\n  footnoteId: z.number(),\n  dimensionPositionId: z.number(),\n  memberId: z.number()\n});\n\nexport const FootnoteSchema = z.object({\n  footnoteId: z.number(),\n  footnotesEn: z.string().nullable().optional(),\n  footnotesFr: z.string().nullable().optional(),\n  link: FootnoteLinkSchema.optional()\n});\n\nexport const TableMetadataSchema = z.object({\n  responseStatusCode: z.number(),\n  productId: z.string(),\n  cansimId: z.string().nullable().optional(),\n  cubeTitleEn: z.string().nullable().optional(),\n  cubeTitleFr: z.string().nullable().optional(),\n  cubeStartDate: z.string().nullable().optional(),\n  cubeEndDate: z.string().nullable().optional(),\n  frequencyCode: z.number().nullable().optional(),\n  nbSeriesCube: z.number().nullable().optional(),\n  nbDatapointsCube: z.number().nullable().optional(),\n  releaseTime: z.string().nullable().optional(),\n  archiveStatusCode: z.string().nullable().optional(),\n  archiveStatusEn: z.string().nullable().optional(),\n  archiveStatusFr: z.string().nullable().optional(),\n  subjectCode: z.array(z.string()).nullable().optional(),\n  surveyCode: z.array(z.string()).nullable().optional(),\n  dimension: z.array(DimensionSchema),\n  footnote: z.array(FootnoteSchema).optional(),\n  correctionFootnote: z.array(z.unknown()).optional(),\n  geoAttribute: z.array(z.unknown()).nullable().optional(),\n  correction: z.array(z.unknown()).optional(),\n  issueDate: z.string().nullable().optional(),\n});\n\nexport const GetCubeMetadataResponseSchema = z.array(\n  z.object({\n    status: ResponseStatusSchema,\n    object: z.union([TableMetadataSchema, z.string()]).optional(),\n  })\n);\n\nexport const DatapointSchema = z.object({\n  refPer: z.string(),\n  refPer2: z.string().optional(),\n  refPerRaw: z.string().nullable().optional(),\n  refPerRaw2: z.string().optional(),\n  value: z.number().nullable().optional(),\n  decimals: z.number().nullable().optional(),\n  scalarFactorCode: z.number().nullable().optional(),\n  symbolCode: z.number().nullable().optional(),\n  statusCode: z.number().nullable().optional(),\n  securityLevelCode: z.number().nullable().optional(),\n  releaseTime: z.string().nullable().optional(),\n  frequencyCode: z.number().nullable().optional(),\n});\n\nexport const VectorDataSchema = z.object({\n  responseStatusCode: z.number(),\n  productId: z.number(),\n  coordinate: z.string(),\n  vectorId: z.number(),\n  vectorDataPoint: z.array(DatapointSchema),\n});\n\nexport const GetDataResponseSchema = z.array(\n  z.object({\n    status: ResponseStatusSchema,\n    object: z.union([VectorDataSchema, z.string()]).optional(),\n  })\n);\n\nexport const ChangedSeriesSchema = z.object({\n  responseStatusCode: z.number(),\n  productId: z.number(),\n  coordinate: z.string(),\n  vectorId: z.number(),\n  releaseTime: z.string().nullable().optional()\n});\n\nexport const GetChangedSeriesListResponseSchema = z.object({\n  status: ResponseStatusSchema,\n  object: z.union([z.array(ChangedSeriesSchema), z.string()]).optional()\n});\n\nexport const ChangedCubeSchema = z.object({\n  responseStatusCode: z.number(),\n  productId: z.number(),\n  releaseTime: z.string().nullable().optional()\n});\n\nexport const GetChangedCubeListResponseSchema = z.object({\n  status: ResponseStatusSchema,\n  object: z.union([z.array(ChangedCubeSchema), z.string()]).optional()\n});\n\nexport const SeriesInfoSchema = z.object({\n  responseStatusCode: z.number(),\n  productId: z.number(),\n  coordinate: z.string(),\n  vectorId: z.number(),\n  frequencyCode: z.number().nullable().optional(),\n  scalarFactorCode: z.number().nullable().optional(),\n  decimals: z.number().nullable().optional(),\n  terminated: z.number().nullable().optional(),\n  SeriesTitleEn: z.string().nullable().optional(),\n  SeriesTitleFr: z.string().nullable().optional(),\n  memberUomCode: z.number().nullable().optional()\n});\n\nexport const GetSeriesInfoResponseSchema = z.array(\n  z.object({\n    status: ResponseStatusSchema,\n    object: z.union([SeriesInfoSchema, z.string()]).optional()\n  })\n);\n\nexport const CubeListLiteItemSchema = z.object({\n  productId: z.number(),\n  cansimId: z.string().nullable().optional(),\n  cubeTitleEn: z.string().nullable().optional(),\n  cubeTitleFr: z.string().nullable().optional(),\n  cubeStartDate: z.string().nullable().optional(),\n  cubeEndDate: z.string().nullable().optional(),\n  releaseTime: z.string().nullable().optional(),\n  archived: z.string().nullable().optional(),\n  subjectCode: z.array(z.string()).nullable().optional(),\n  surveyCode: z.array(z.string()).nullable().optional(),\n  frequencyCode: z.number().nullable().optional(),\n  corrections: z.array(z.any()).nullable().optional(),\n  issueDate: z.string().nullable().optional()\n});\n\nexport const CubeListItemSchema = CubeListLiteItemSchema.extend({\n  dimensions: z.array(z.any()).optional()\n});\n\nexport const GetStringResponseSchema = z.object({\n  status: ResponseStatusSchema,\n  object: z.string().optional()\n});\n\nexport const CodeSetsSchema = z.object({\n  status: ResponseStatusSchema,\n  object: z.record(z.string(), z.array(z.record(z.string(), z.any()))).optional()\n});\n\nexport type TableMetadata = z.infer<typeof TableMetadataSchema>;\nexport type Datapoint = z.infer<typeof DatapointSchema>;\nexport type VectorData = z.infer<typeof VectorDataSchema>;\nexport type SeriesInfo = z.infer<typeof SeriesInfoSchema>;\n\n// --- Client Implementation ---\n\nexport interface StatCanClientOptions {\n  baseUrl?: string;\n  maxRetries?: number;\n  timeoutMs?: number;\n}\n\ninterface ProviderErrorOptions {\n  code?: string;\n  retryAfterMs?: number;\n  retryAfter?: number;\n}\n\nfunction parseRetryAfter(headers: Headers): ProviderErrorOptions {\n  const value = headers.get('Retry-After');\n  if (!value) return {};\n\n  const seconds = Number(value);\n  if (Number.isFinite(seconds)) {\n    const retryAfter = Math.max(0, seconds);\n    return { retryAfter, retryAfterMs: retryAfter * 1000 };\n  }\n\n  const retryAfterMs = Date.parse(value) - Date.now();\n  if (!Number.isFinite(retryAfterMs)) return {};\n  return { retryAfterMs: Math.max(0, retryAfterMs) };\n}\n\nfunction throwAnnotatedNetworkError(err: unknown): never {\n  if (err instanceof Error) {\n    const annotated = err as Error & { code?: string; cause?: { code?: string } };\n    if (!annotated.code && annotated.cause?.code) annotated.code = annotated.cause.code;\n    if (annotated.name === 'AbortError' && !annotated.code) annotated.code = 'ETIMEDOUT';\n    throw annotated;\n  }\n  throw err;\n}\n\nexport class StatCanClient {\n  private baseUrl: string;\n  private maxRetries: number;\n  private timeoutMs: number;\n\n  constructor(options: StatCanClientOptions = {}) {\n    this.baseUrl = options.baseUrl || 'https://www150.statcan.gc.ca/t1/wds/rest';\n    this.maxRetries = options.maxRetries ?? 0;\n    this.timeoutMs = options.timeoutMs ?? 30_000;\n  }\n\n  private async fetchOnce(url: string, options: RequestInit = {}): Promise<Response> {\n    void this.maxRetries;\n    const controller = new AbortController();\n    const timer = setTimeout(() => controller.abort(), this.timeoutMs);\n    try {\n      return await fetch(url, { ...options, signal: controller.signal });\n    } catch (err) {\n      throwAnnotatedNetworkError(err);\n    } finally {\n      clearTimeout(timer);\n    }\n  }\n\n  private async processResponse<T extends z.ZodTypeAny>(res: Response, url: string, schema: T): Promise<z.infer<T>> {\n    const contentType = res.headers.get('Content-Type') || '';\n    \n    if (!res.ok) {\n      const body = await res.text();\n      if (res.status === 500 && contentType.includes('text/html')) {\n        throw new AgencyInternalError(res.status, url, body, `StatCan Agency Internal Error (500 HTML): ${url}`, parseRetryAfter(res.headers));\n      }\n      if (res.status === 400) {\n        throw new InvalidCoordinateError(res.status, url, body, `StatCan API error: 400 Bad Request (likely Invalid Coordinate)`, parseRetryAfter(res.headers));\n      }\n      throw new StatCanApiError(res.status, url, body, `StatCan API error: ${res.status} ${res.statusText}`, parseRetryAfter(res.headers));\n    }\n\n    if (!contentType.includes('application/json')) {\n      const body = await res.text();\n      throw new AgencyResponseError(res.status, url, body, `Unexpected response content type: ${contentType}. Expected application/json.`);\n    }\n\n    let rawData: any;\n    try {\n      rawData = await res.json();\n    } catch (err: any) {\n      throw new AgencyResponseError(res.status, url, '', `Failed to parse JSON response: ${err.message}`);\n    }\n\n    // Check for \"Response Code 1\" (Invalid Coordinate) in common response structures\n    const checkResponseCode = (obj: any) => {\n      if (obj && typeof obj === 'object' && 'responseStatusCode' in obj && obj.responseStatusCode === 1) {\n        throw new InvalidCoordinateError(res.status, url, JSON.stringify(rawData), 'StatCan reported responseStatusCode: 1 (Invalid Coordinate/Product)');\n      }\n    };\n\n    if (Array.isArray(rawData)) {\n      for (const item of rawData) {\n        if (item.object) checkResponseCode(item.object);\n      }\n    } else if (rawData.object) {\n      checkResponseCode(rawData.object);\n    }\n\n    return schema.parse(rawData);\n  }\n\n  private async post<T extends z.ZodTypeAny>(endpoint: string, payload: any, schema: T): Promise<z.infer<T>> {\n    const url = `${this.baseUrl}${endpoint}`;\n    const res = await this.fetchOnce(url, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(payload),\n    });\n\n    return this.processResponse(res, url, schema);\n  }\n\n  private async get<T extends z.ZodTypeAny>(endpoint: string, schema: T): Promise<z.infer<T>> {\n    const url = `${this.baseUrl}${endpoint}`;\n    const res = await this.fetchOnce(url, {\n      method: 'GET',\n    });\n\n    return this.processResponse(res, url, schema);\n  }\n\n  private validateDataResponse(data: z.infer<typeof GetDataResponseSchema>) {\n    for (const item of data) {\n      if (item.status === 'SUCCESS' && item.object && typeof item.object !== 'string') {\n        if (item.object.vectorDataPoint.length === 0) {\n          throw new SuppressedDataError(`Series ${item.object.vectorId} (coordinate ${item.object.coordinate}) exists but contains no data points.`);\n        }\n      }\n    }\n    return data;\n  }\n\n  // --- 1. Product Change Listings ---\n\n  async getChangedSeriesList() {\n    return this.get('/getChangedSeriesList', GetChangedSeriesListResponseSchema);\n  }\n\n  async getChangedCubeList(dateIso: string) {\n    return this.get(`/getChangedCubeList/${dateIso}`, GetChangedCubeListResponseSchema);\n  }\n\n  // --- 2. Cube Metadata and Series Information ---\n\n  async getCubeMetadata(productIds: number[]) {\n    const payload = productIds.map(id => ({ productId: id }));\n    return this.post('/getCubeMetadata', payload, GetCubeMetadataResponseSchema);\n  }\n\n  async getSeriesInfoFromCubePidCoord(requests: { productId: number; coordinate: string }[]) {\n    return this.post('/getSeriesInfoFromCubePidCoord', requests, GetSeriesInfoResponseSchema);\n  }\n\n  async getSeriesInfoFromVector(requests: { vectorId: number }[]) {\n    return this.post('/getSeriesInfoFromVector', requests, GetSeriesInfoResponseSchema);\n  }\n\n  async getAllCubesList() {\n    return this.get('/getAllCubesList', z.array(CubeListItemSchema));\n  }\n\n  async getAllCubesListLite() {\n    return this.get('/getAllCubesListLite', z.array(CubeListLiteItemSchema));\n  }\n\n  // --- 3. Data Access ---\n\n  async getChangedSeriesDataFromCubePidCoord(requests: { productId: number; coordinate: string }[]) {\n    const res = await this.post('/getChangedSeriesDataFromCubePidCoord', requests, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getChangedSeriesDataFromVector(requests: { vectorId: number }[]) {\n    const res = await this.post('/getChangedSeriesDataFromVector', requests, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getDataFromCubePidCoordAndLatestNPeriods(requests: { productId: number; coordinate: string; latestN: number }[]) {\n    const res = await this.post('/getDataFromCubePidCoordAndLatestNPeriods', requests, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getDataFromVectorsAndLatestNPeriods(requests: { vectorId: number; latestN: number }[]) {\n    const res = await this.post('/getDataFromVectorsAndLatestNPeriods', requests, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getBulkVectorDataByRange(vectorIds: string[], startDataPointReleaseDate: string, endDataPointReleaseDate: string) {\n    const res = await this.post('/getBulkVectorDataByRange', {\n      vectorIds,\n      startDataPointReleaseDate,\n      endDataPointReleaseDate\n    }, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getDataFromVectorByReferencePeriodRange(vectorIds: number | number[], startRefPeriod?: string, endReferencePeriod?: string) {\n    const params = new URLSearchParams();\n    const ids = Array.isArray(vectorIds) ? vectorIds.join(',') : String(vectorIds);\n    params.append('vectorIds', ids);\n    if (startRefPeriod) params.append('startRefPeriod', startRefPeriod);\n    if (endReferencePeriod) params.append('endReferencePeriod', endReferencePeriod);\n    const res = await this.get(`/getDataFromVectorByReferencePeriodRange?${params.toString()}`, GetDataResponseSchema);\n    return this.validateDataResponse(res);\n  }\n\n  async getFullTableDownloadCSV(productId: number, language: 'en' | 'fr') {\n    return this.get(`/getFullTableDownloadCSV/${productId}/${language}`, GetStringResponseSchema);\n  }\n\n  async getFullTableDownloadSDMX(productId: number) {\n    return this.get(`/getFullTableDownloadSDMX/${productId}`, GetStringResponseSchema);\n  }\n\n  // --- 4. Supplemental Information ---\n\n  async getCodeSets() {\n    return this.get('/getCodeSets', CodeSetsSchema);\n  }\n}\n"],"mappings":"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","names":["z","StatCanError","message","StatCanApiError","status","url","body","options","AgencyResponseError","InvalidCoordinateError","AgencyInternalError","SuppressedDataError","ResponseStatusSchema","MemberSchema","DimensionSchema","FootnoteLinkSchema","FootnoteSchema","TableMetadataSchema","GetCubeMetadataResponseSchema","DatapointSchema","VectorDataSchema","GetDataResponseSchema","ChangedSeriesSchema","GetChangedSeriesListResponseSchema","ChangedCubeSchema","GetChangedCubeListResponseSchema","SeriesInfoSchema","GetSeriesInfoResponseSchema","CubeListLiteItemSchema","CubeListItemSchema","GetStringResponseSchema","CodeSetsSchema","parseRetryAfter","headers","value","seconds","retryAfter","retryAfterMs","throwAnnotatedNetworkError","err","annotated","StatCanClient","controller","timer","res","schema","contentType","rawData","checkResponseCode","obj","item","endpoint","payload","data","dateIso","productIds","id","requests","vectorIds","startDataPointReleaseDate","endDataPointReleaseDate","startRefPeriod","endReferencePeriod","params","ids","productId","language"]}