postnl-client 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +5 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +73 -75
- package/dist/index.d.ts +73 -75
- package/dist/index.js +6 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.ts","../src/core/errors.ts","../src/core/http.ts","../src/core/endpoints.ts","../src/core/base-resource.ts","../src/core/codec/helpers.ts","../src/core/codec/object.ts","../src/resources/address/schema.ts","../src/resources/address/index.ts","../src/resources/barcode/legacy.ts","../src/resources/barcode/schema.ts","../src/resources/barcode/index.ts","../src/core/codec/dates.ts","../src/core/codec/fields.ts","../src/resources/checkout/schema.ts","../src/resources/checkout/index.ts","../src/resources/delivery-date/schema.ts","../src/resources/delivery-date/index.ts","../src/constants/enums.ts","../src/resources/location/schema.ts","../src/resources/location/index.ts","../src/core/base64.ts","../src/resources/shipping/schema.ts","../src/resources/return/schema.ts","../src/resources/return/index.ts","../src/resources/shipping/legacy-schema.ts","../src/resources/shipping/legacy.ts","../src/resources/shipping/index.ts","../src/resources/timeframe/schema.ts","../src/resources/timeframe/index.ts","../src/resources/tracking/schema.ts","../src/resources/tracking/index.ts","../src/client.ts","../src/constants/product.ts","../src/index.ts"],"names":["err","e","z","asDateTime","day","asDate","warningSchema","timeframeSchema","addressSchema"],"mappings":"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","file":"index.js","sourcesContent":["import type { Environment, Hooks, HttpMethod, RetryOptions } from \"./core/types\";\n\nexport interface PostNLClientOptions {\n apiKey: string;\n environment?: Environment;\n fetch?: typeof fetch;\n timeoutMs?: number;\n retry?: Partial<RetryOptions>;\n hooks?: Hooks;\n}\n\nexport interface ResolvedConfig {\n apiKey: string;\n environment: Environment;\n baseUrl: string;\n fetch: typeof fetch;\n timeoutMs: number;\n retry: RetryOptions;\n hooks: Hooks;\n}\n\nconst BASE_URLS: Record<Environment, string> = {\n production: \"https://api.postnl.nl\",\n sandbox: \"https://api-sandbox.postnl.nl\",\n};\n\nconst DEFAULT_RETRY: RetryOptions = {\n maxRetries: 3,\n backoffFactor: 2,\n retryStatuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],\n retryMethods: [\"GET\", \"PUT\"] as HttpMethod[],\n};\n\nexport function resolveConfig(opts: PostNLClientOptions): ResolvedConfig {\n if (!opts?.apiKey) throw new Error(\"postnl-client: apiKey is required\");\n const environment = opts.environment ?? \"production\";\n const f = opts.fetch ?? globalThis.fetch;\n if (!f) throw new Error(\"postnl-client: no fetch available; pass options.fetch\");\n return {\n apiKey: opts.apiKey,\n environment,\n baseUrl: BASE_URLS[environment],\n fetch: f,\n timeoutMs: opts.timeoutMs ?? 60_000,\n retry: { ...DEFAULT_RETRY, ...opts.retry },\n hooks: opts.hooks ?? {},\n };\n}\n","// typed error hierarchy + shape-driven parser for postnl's many error envelopes\nexport class PostNLError extends Error {}\n\nexport class PostNLValidationError extends PostNLError {\n constructor(\n message: string,\n readonly issues: unknown,\n ) {\n super(message);\n this.name = \"PostNLValidationError\";\n }\n}\n\nexport class PostNLTimeoutError extends PostNLError {\n constructor(readonly timeoutMs: number) {\n super(`postnl request timed out after ${timeoutMs}ms`);\n this.name = \"PostNLTimeoutError\";\n }\n}\n\nexport class PostNLApiError extends PostNLError {\n constructor(\n readonly status: number,\n message: string,\n readonly code: string | undefined,\n readonly detail: unknown,\n readonly raw: unknown,\n ) {\n super(message);\n this.name = \"PostNLApiError\";\n }\n}\n\nexport class PostNLAuthError extends PostNLApiError {\n name = \"PostNLAuthError\";\n}\nexport class PostNLRateLimitError extends PostNLApiError {\n retryAfter?: number;\n name = \"PostNLRateLimitError\";\n}\nexport class PostNLMethodNotAllowedError extends PostNLApiError {\n name = \"PostNLMethodNotAllowedError\";\n}\nexport class PostNLBadRequestError extends PostNLApiError {\n name = \"PostNLBadRequestError\";\n}\nexport class PostNLServerError extends PostNLApiError {\n name = \"PostNLServerError\";\n}\n\ninterface Parsed {\n message: string;\n code?: string | undefined;\n detail: unknown;\n}\n\nfunction extract(body: unknown): Parsed {\n const b = body as Record<string, unknown> | null;\n if (b && typeof b === \"object\") {\n // fault envelope\n const fault = b.fault as { faultstring?: string; detail?: { errorcode?: string } } | undefined;\n if (fault)\n return {\n message: fault.faultstring ?? \"fault\",\n code: fault.detail?.errorcode,\n detail: fault,\n };\n // legacy InvalidRequest / cif inline error (live api uses ErrorMessage, sdk docs said ErrorDescription)\n const inv = b.Error as\n | { ErrorCode?: string; ErrorMessage?: string; ErrorDescription?: string }\n | undefined;\n // fire on code OR message so a code-only error still carries its code (matches inlineApiError)\n if (inv && (inv.ErrorMessage || inv.ErrorDescription || inv.ErrorCode))\n return {\n message: inv.ErrorMessage ?? inv.ErrorDescription ?? \"error\",\n code: inv.ErrorCode,\n detail: b,\n };\n // error lists: barcode {ErrorMsg,ErrorNumber} | labelling {Error,Code} | postalcode {title,detail}\n const list = (b.errors ?? b.Errors) as unknown;\n if (Array.isArray(list) && list.length) {\n const f = list[0] as Record<string, unknown>;\n const msg = (f.ErrorMsg ??\n f.Error ??\n f.title ??\n f.Description ??\n f.detail ??\n \"error\") as string;\n const code = (f.ErrorNumber ?? f.Code ?? f.status) as string | undefined;\n return { message: String(msg), code: code != null ? String(code) : undefined, detail: list };\n }\n // v4 rfc9457\n if (typeof b.title === \"string\")\n return { message: b.title, code: b.type as string | undefined, detail: b };\n // gateway\n if (typeof b.message === \"string\") return { message: b.message, detail: b };\n }\n return { message: `postnl request failed (${typeof body})`, detail: body };\n}\n\nexport function parseError(\n status: number,\n body: unknown,\n headers?: Record<string, string>,\n): PostNLApiError {\n const { message, code, detail } = extract(body);\n if (status === 401) return new PostNLAuthError(status, message, code, detail, body);\n if (status === 429) {\n const err = new PostNLRateLimitError(status, message, code, detail, body);\n const ra = Number(headers?.[\"retry-after\"]);\n if (Number.isFinite(ra)) err.retryAfter = ra;\n return err;\n }\n if (status === 405) return new PostNLMethodNotAllowedError(status, message, code, detail, body);\n if (status >= 500) return new PostNLServerError(status, message, code, detail, body);\n if (status === 400) return new PostNLBadRequestError(status, message, code, detail, body);\n return new PostNLApiError(status, message, code, detail, body);\n}\n\n// some delivery-options gets return http 200 with an inline {Error:{ErrorCode,ErrorMessage}} body\n// instead of an error status; surface it instead of letting the success schema swallow it\nexport function inlineApiError(body: unknown): PostNLApiError | undefined {\n const b = body as Record<string, unknown> | null;\n const err =\n b && typeof b === \"object\" ? (b.Error as { ErrorCode?: unknown } | undefined) : undefined;\n if (err && typeof err === \"object\" && err.ErrorCode != null) {\n const { message, code, detail } = extract(body);\n return new PostNLApiError(200, message, code, detail, body);\n }\n return undefined;\n}\n","import type { ResolvedConfig } from \"../config\";\nimport { PostNLApiError, PostNLTimeoutError, parseError } from \"./errors\";\nimport type { Family, HttpMethod, RequestContext } from \"./types\";\n\nexport interface SendArgs {\n family: Family;\n method: HttpMethod;\n path: string; // may contain {param} tokens\n pathParams?: Record<string, string> | undefined;\n query?: Record<string, string | string[] | number | boolean | undefined> | undefined;\n body?: unknown;\n}\n\nconst sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));\n\nexport class Transport {\n constructor(private readonly cfg: ResolvedConfig) {}\n\n private buildUrl(args: SendArgs): string {\n let path = args.path;\n for (const [k, v] of Object.entries(args.pathParams ?? {})) {\n path = path.replace(`{${k}}`, encodeURIComponent(v));\n }\n const url = new URL(this.cfg.baseUrl + path);\n for (const [k, v] of Object.entries(args.query ?? {})) {\n if (v === undefined) continue;\n if (Array.isArray(v)) for (const item of v) url.searchParams.append(k, String(item));\n else url.searchParams.append(k, String(v));\n }\n return url.toString();\n }\n\n async send<T = unknown>(args: SendArgs): Promise<T> {\n const url = this.buildUrl(args);\n const headers: Record<string, string> = { apikey: this.cfg.apiKey, accept: \"application/json\" };\n if (args.body !== undefined) headers[\"content-type\"] = \"application/json\";\n const ctx: RequestContext = {\n family: args.family,\n method: args.method,\n url,\n headers,\n body: args.body,\n };\n await this.cfg.hooks.onRequest?.(ctx);\n\n const canRetry = this.cfg.retry.retryMethods.includes(args.method);\n let attempt = 0;\n while (true) {\n const controller = new AbortController();\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n controller.abort();\n }, this.cfg.timeoutMs);\n try {\n const res = await this.cfg.fetch(url, {\n method: args.method,\n headers,\n body: args.body !== undefined ? JSON.stringify(args.body) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n const text = await res.text();\n const headerObj = Object.fromEntries(res.headers.entries());\n let body: unknown;\n try {\n body = text ? JSON.parse(text) : undefined;\n } catch {\n // non-json body: route through error parser for non-2xx, else fail loudly\n if (!res.ok) {\n const err = parseError(res.status, text, headerObj);\n await this.cfg.hooks.onError?.(err);\n throw err;\n }\n const err = new PostNLApiError(\n res.status,\n \"invalid json response\",\n undefined,\n undefined,\n text,\n );\n await this.cfg.hooks.onError?.(err);\n throw err;\n }\n if (res.ok) {\n await this.cfg.hooks.onResponse?.({ request: ctx, status: res.status, body });\n return body as T;\n }\n if (\n canRetry &&\n this.cfg.retry.retryStatuses.includes(res.status) &&\n attempt < this.cfg.retry.maxRetries\n ) {\n attempt++;\n await sleep(this.retryDelay(attempt, res.status, headerObj));\n continue;\n }\n const err = parseError(res.status, body, headerObj);\n await this.cfg.hooks.onError?.(err);\n throw err;\n } catch (e) {\n clearTimeout(timer);\n // a PostNLApiError thrown above is already final; re-throw unchanged\n if (e instanceof PostNLApiError) throw e;\n if (canRetry && this.isRetryable(e) && attempt < this.cfg.retry.maxRetries) {\n attempt++;\n await sleep(this.cfg.retry.backoffFactor * 2 ** (attempt - 1) * 100);\n continue;\n }\n // any abort here is our internal timeout (no caller signal yet)\n const surfaced = timedOut ? new PostNLTimeoutError(this.cfg.timeoutMs) : e;\n await this.cfg.hooks.onError?.(surfaced);\n throw surfaced;\n }\n }\n }\n\n private retryDelay(attempt: number, status: number, headers: Record<string, string>): number {\n if (status === 429) {\n const ra = Number(headers[\"retry-after\"]);\n if (Number.isFinite(ra)) return ra * 1000;\n }\n return this.cfg.retry.backoffFactor * 2 ** (attempt - 1) * 100;\n }\n\n // only retry genuine network failures: our timeout abort, or a fetch\n // network-level TypeError. bad-url/bad-init TypeErrors should not retry.\n private isRetryable(e: unknown): boolean {\n if ((e as { name?: string })?.name === \"AbortError\") return true;\n if (!(e instanceof TypeError)) return false;\n const msg = `${e.message} ${String((e as { cause?: unknown }).cause ?? \"\")}`.toLowerCase();\n return /fetch|network|connect|econn|enotfound|socket|timeout|terminated/.test(msg);\n }\n}\n","import type { Family, HttpMethod } from \"./types\";\n\nexport interface Endpoint {\n family: Family;\n method: HttpMethod;\n path: string;\n}\nconst e = (family: Family, method: HttpMethod, path: string): Endpoint => ({\n family,\n method,\n path,\n});\n\nexport const ENDPOINTS = {\n barcodeV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/barcode\"),\n shippingCreate: e(\"v4\", \"POST\", \"/shipment/delivery/v4/labelconfirm\"),\n shippingLabelV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/label\"),\n shippingConfirmV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/confirm\"),\n returnGenerate: e(\"v4\", \"POST\", \"/shipment/delivery/v4/return/generate\"),\n barcodeLegacy: e(\"legacy\", \"GET\", \"/shipment/v1_1/barcode\"),\n shippingLabelLegacy: e(\"legacy\", \"POST\", \"/shipment/v2_2/label\"),\n shippingConfirmLegacy: e(\"legacy\", \"POST\", \"/shipment/v2/confirm\"),\n trackingByBarcode: e(\"legacy\", \"GET\", \"/shipment/v2/status/barcode/{barcode}\"),\n trackingByReference: e(\"legacy\", \"GET\", \"/shipment/v2/status/reference/{referenceId}\"),\n trackingSignature: e(\"legacy\", \"GET\", \"/shipment/v2/status/signature/{barcode}\"),\n trackingUpdated: e(\"legacy\", \"GET\", \"/shipment/v2/status/{customernumber}/updatedshipments\"),\n deliveryDateCalculate: e(\"legacy\", \"GET\", \"/shipment/v2_2/calculate/date/delivery\"),\n deliveryDateSent: e(\"legacy\", \"GET\", \"/shipment/v2_2/calculate/date/shipping\"),\n timeframeGet: e(\"legacy\", \"GET\", \"/shipment/v2_1/calculate/timeframes\"),\n locationNearest: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/nearest\"),\n locationNearestByGeocode: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/nearest/geocode\"),\n locationArea: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/area\"),\n locationLookup: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/lookup\"),\n checkoutGet: e(\"legacy\", \"POST\", \"/shipment/v1/checkout\"),\n addressCheck: e(\"legacy\", \"GET\", \"/shipment/checkout/v1/postalcodecheck\"),\n} as const satisfies Record<string, Endpoint>;\n\nexport type OperationKey = keyof typeof ENDPOINTS;\n","import type { z } from \"zod\";\nimport { ENDPOINTS, type OperationKey } from \"./endpoints\";\nimport { PostNLValidationError, inlineApiError } from \"./errors\";\nimport type { Transport } from \"./http\";\n\nexport interface CallArgs<TReq, TRes> {\n operation: OperationKey;\n pathParams?: Record<string, string>;\n query?: Record<string, string | string[] | number | boolean | undefined>;\n input?: TReq;\n requestSchema?: z.ZodType<unknown, z.ZodTypeDef, TReq>;\n // input is unknown wire json; output is the cleaned TRes (schemas may transform/default)\n responseSchema: z.ZodType<TRes, z.ZodTypeDef, unknown>;\n}\n\nexport abstract class BaseResource {\n constructor(protected readonly transport: Transport) {}\n\n protected async call<TReq, TRes>(args: CallArgs<TReq, TRes>): Promise<TRes> {\n const ep = ENDPOINTS[args.operation];\n let body: unknown;\n if (args.requestSchema && args.input !== undefined) {\n const parsed = args.requestSchema.safeParse(args.input);\n if (!parsed.success) throw new PostNLValidationError(\"invalid request\", parsed.error.issues);\n body = parsed.data;\n } else {\n body = args.input;\n }\n const raw = await this.transport.send({\n family: ep.family,\n method: ep.method,\n path: ep.path,\n pathParams: args.pathParams,\n query: args.query,\n body: ep.method === \"GET\" ? undefined : body,\n });\n const inline = inlineApiError(raw);\n if (inline) throw inline;\n const out = args.responseSchema.safeParse(raw);\n if (!out.success) throw new PostNLValidationError(\"invalid response\", out.error.issues);\n return out.data;\n }\n}\n","import { z } from \"zod\";\n\n// accepts T | T[] | {string:T[]} | undefined -> T[]\nexport function pnlArray<T extends z.ZodTypeAny>(inner: T) {\n return z.preprocess((v) => {\n if (v == null) return [];\n if (Array.isArray(v)) return v;\n if (typeof v === \"object\" && v !== null && \"string\" in v) {\n const wrapped = (v as { string: unknown }).string;\n return Array.isArray(wrapped) ? wrapped : [wrapped];\n }\n return [v];\n }, z.array(inner));\n}\n\n// accepts {string:T} | T -> T\nexport function pnlStringWrapped<T extends z.ZodTypeAny>(inner: T) {\n return z.preprocess((v) => {\n if (v != null && typeof v === \"object\" && \"string\" in v) {\n return (v as { string: unknown }).string;\n }\n return v;\n }, inner);\n}\n\n// coerce stringified scalars from quirky response clusters\nexport function pnlNum() {\n return z.preprocess(\n (v) => (typeof v === \"string\" && v.trim() !== \"\" ? Number(v) : v),\n z.number(),\n );\n}\n\nexport function pnlBool() {\n return z.preprocess((v) => (typeof v === \"string\" ? v.toLowerCase() === \"true\" : v), z.boolean());\n}\n","// drops undefined keys so output types model them as optional (matches stripped runtime shape)\nexport const stripUndefined = <T extends Record<string, unknown>>(\n obj: T,\n): { [K in keyof T]?: Exclude<T[K], undefined> } => {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (v !== undefined) out[k] = v;\n }\n return out as { [K in keyof T]?: Exclude<T[K], undefined> };\n};\n","import { z } from \"zod\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// PostalcodeCheckAddress: already camelCase wire; houseNumber int (pnlNum defensive), formattedAddress string[]\nexport const postalcodeCheckAddressSchema = z\n .object({\n city: z.string().optional(),\n postalCode: z.string().optional(),\n streetName: z.string().optional(),\n houseNumber: pnlNum().optional(),\n houseNumberAddition: z.string().optional(),\n formattedAddress: pnlArray(z.string()).optional(),\n })\n .transform((a) =>\n stripUndefined({\n city: a.city,\n postalCode: a.postalCode,\n streetName: a.streetName,\n houseNumber: a.houseNumber,\n houseNumberAddition: a.houseNumberAddition,\n formattedAddress: a.formattedAddress?.length ? a.formattedAddress : undefined,\n }),\n );\n\nexport type PostalcodeCheckAddress = z.infer<typeof postalcodeCheckAddressSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { PostNLError } from \"../../core/errors\";\nimport type { Transport } from \"../../core/http\";\nimport type { Environment } from \"../../core/types\";\nimport { type PostalcodeCheckAddress, postalcodeCheckAddressSchema } from \"./schema\";\n\nexport interface AddressCheckInput {\n postalCode: string;\n houseNumber: string | number;\n houseNumberAddition?: string;\n}\n\n// production-only endpoint; sandbox guarded before any fetch\nexport class AddressResource extends BaseResource {\n constructor(\n transport: Transport,\n private readonly environment: Environment,\n ) {\n super(transport);\n }\n\n // GET /shipment/checkout/v1/postalcodecheck\n check(input: AddressCheckInput): Promise<PostalcodeCheckAddress> {\n if (this.environment === \"sandbox\") {\n return Promise.reject(\n new PostNLError(\"address.check is production-only and not available on sandbox\"),\n );\n }\n return this.call({\n operation: \"addressCheck\",\n query: {\n postalcode: input.postalCode,\n housenumber: String(input.houseNumber),\n housenumberaddition: input.houseNumberAddition,\n },\n responseSchema: postalcodeCheckAddressSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport type { BarcodeType } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\n\n// legacy barcode is GET with query params; response BarcodeResponse { Barcode }\nconst responseSchema = z.object({ Barcode: z.string() }).transform((r) => ({ barcode: r.Barcode }));\n\nexport interface BarcodeLegacyInput {\n customerCode: string;\n customerNumber: string;\n type: BarcodeType;\n serie?: string;\n range?: string;\n}\n\nexport class BarcodeLegacyResource extends BaseResource {\n generate(input: BarcodeLegacyInput): Promise<{ barcode: string }> {\n return this.call({\n operation: \"barcodeLegacy\",\n query: {\n CustomerCode: input.customerCode,\n CustomerNumber: input.customerNumber,\n Type: input.type,\n Serie: input.serie,\n Range: input.range,\n },\n responseSchema,\n });\n }\n}\n","import { z } from \"zod\";\n\n// request: mirror sdk Barcode model (camelCase, native types)\nexport const barcodeV4RequestSchema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n serieStart: z.string().default(\"000000000\"),\n serieEnd: z.string().default(\"999999999\"),\n numberOfBarcodes: z.number().int().min(1).default(1),\n});\nexport type BarcodeV4Request = z.input<typeof barcodeV4RequestSchema>;\n\n// response: BarcodePostResponse { barcodes: string[] }\nexport const barcodeV4ResponseSchema = z.object({\n barcodes: z.array(z.string()).default([]),\n});\nexport type BarcodeV4Response = z.infer<typeof barcodeV4ResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { BarcodeLegacyResource } from \"./legacy\";\nimport {\n type BarcodeV4Request,\n type BarcodeV4Response,\n barcodeV4RequestSchema,\n barcodeV4ResponseSchema,\n} from \"./schema\";\n\nexport class BarcodeResource extends BaseResource {\n // legacy barcode generation (GET /shipment/v1_1/barcode)\n readonly legacy = new BarcodeLegacyResource(this.transport);\n\n // v4 server-side barcode generation\n generate(input: BarcodeV4Request): Promise<BarcodeV4Response> {\n return this.call({\n operation: \"barcodeV4\",\n input,\n requestSchema: barcodeV4RequestSchema,\n responseSchema: barcodeV4ResponseSchema,\n });\n }\n}\n","// postnl date <-> Date. handles dd-MM-yyyy[ HH:mm:ss] and iso yyyy-MM-dd.\n// parsePnlDate/formatDate operate in LOCAL time (postnl dates are nl-local).\n// lenient postnl date: a parsed Date or the raw wire string when format is unknown\nexport type PnlDate = Date | string;\n\nconst pad = (n: number) => String(n).padStart(2, \"0\");\nconst num = (v: string | undefined) => Number(v ?? 0);\n\nconst ISO = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst NL_DATE = /^\\d{2}-\\d{2}-\\d{4}$/;\nconst NL_DATETIME = /^\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2}:\\d{2}$/;\n\nexport function parsePnlDate(input: string): Date {\n const trimmed = input.trim();\n const [datePart = \"\", timePart] = trimmed.split(\" \");\n let y: number;\n let mo: number;\n let d: number;\n if (ISO.test(trimmed)) {\n const [yy, mm, dd] = datePart.split(\"-\");\n y = num(yy);\n mo = num(mm);\n d = num(dd);\n } else if (NL_DATE.test(trimmed) || NL_DATETIME.test(trimmed)) {\n const [dd, mm, yy] = datePart.split(\"-\");\n y = num(yy);\n mo = num(mm);\n d = num(dd);\n } else {\n throw new Error(`invalid postnl date: ${input}`);\n }\n const [hh, mi, ss] = (timePart ?? \"00:00:00\").split(\":\");\n return new Date(y, mo - 1, d, num(hh), num(mi), num(ss));\n}\n\nexport function formatDate(date: Date, kind: \"date\" | \"datetime\"): string {\n const d = `${pad(date.getDate())}-${pad(date.getMonth() + 1)}-${date.getFullYear()}`;\n if (kind === \"date\") return d;\n return `${d} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n}\n\nexport function formatIsoDate(date: Date): string {\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;\n}\n","import { z } from \"zod\";\nimport { parsePnlDate } from \"./dates\";\nimport { stripUndefined } from \"./object\";\n\n// optional dd-MM-yyyy response date -> Date (null-tolerant)\nexport const pnlDateField = z\n .string()\n .optional()\n .transform((v) => (v == null ? undefined : parsePnlDate(v)));\n\n// sustainability { Code, Description } -> { code, description }\nexport const sustainabilitySchema = z\n .object({ Code: z.string().optional(), Description: z.string().optional() })\n .transform((s) => stripUndefined({ code: s.Code, description: s.Description }));\n","import { z } from \"zod\";\nimport type {\n AddressType,\n CheckoutCutOffDay,\n CheckoutCutOffType,\n CheckoutOption,\n CountryCode,\n} from \"../../constants/enums\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// ---------- request (camelCase -> PascalCase) ----------\n\nexport interface CheckoutCutOffTimeInput {\n day: CheckoutCutOffDay;\n available?: boolean;\n type?: CheckoutCutOffType;\n time?: string;\n}\n\nexport interface CheckoutAddressInput {\n addressType: AddressType;\n houseNr: number;\n zipcode: string;\n countrycode: CountryCode;\n street?: string;\n houseNrExt?: string;\n city?: string;\n}\n\nexport interface CheckoutRequestInput {\n orderDate: Date | string;\n cutOffTimes: CheckoutCutOffTimeInput[];\n options: readonly CheckoutOption[];\n locations: number;\n days: number;\n addresses: CheckoutAddressInput[];\n shippingDuration?: number;\n holidaySorting?: boolean;\n}\n\nexport function toCheckoutRequestBody(input: CheckoutRequestInput, orderDate: string) {\n return stripUndefined({\n OrderDate: orderDate,\n CutOffTimes: input.cutOffTimes.map((c) =>\n stripUndefined({ Day: c.day, Available: c.available, Type: c.type, Time: c.time }),\n ),\n Options: [...input.options],\n Locations: input.locations,\n Days: input.days,\n Addresses: input.addresses.map((a) =>\n stripUndefined({\n AddressType: a.addressType,\n HouseNr: a.houseNr,\n Zipcode: a.zipcode,\n Countrycode: a.countrycode,\n Street: a.street,\n HouseNrExt: a.houseNrExt,\n City: a.city,\n }),\n ),\n ShippingDuration: input.shippingDuration,\n HolidaySorting: input.holidaySorting,\n });\n}\n\n// ---------- response ----------\n\n// CheckoutTimeFrame { From, To, Options(plain array), ShippingDate, Sustainability? }\nconst timeframeSchema = z\n .object({\n From: z.string().optional(),\n To: z.string().optional(),\n Options: pnlArray(z.string()),\n ShippingDate: pnlDateField,\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((t) =>\n stripUndefined({\n from: t.From,\n to: t.To,\n options: t.Options.length ? t.Options : undefined,\n shippingDate: t.ShippingDate,\n sustainability: t.Sustainability,\n }),\n );\n\nconst deliveryOptionSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Timeframe: pnlArray(timeframeSchema),\n })\n .transform((d) => ({\n ...stripUndefined({ deliveryDate: d.DeliveryDate }),\n timeframe: d.Timeframe,\n }));\n\nconst pickupAddressSchema = z\n .object({\n Street: z.string().optional(),\n Zipcode: z.string().optional(),\n HouseNr: pnlNum().optional(),\n HouseNrExt: z.string().optional(),\n Countrycode: z.string().optional(),\n CompanyName: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n street: a.Street,\n zipcode: a.Zipcode,\n houseNr: a.HouseNr,\n houseNrExt: a.HouseNrExt,\n countrycode: a.Countrycode,\n companyName: a.CompanyName,\n }),\n );\n\n// OpeningHoursPerDay { From, To }\nconst openingHoursPerDaySchema = z\n .object({ From: z.string().optional(), To: z.string().optional() })\n .transform((d) => stripUndefined({ from: d.From, to: d.To }));\n\nconst day = openingHoursPerDaySchema.optional();\n\nconst pickupOpeningHoursSchema = z\n .object({\n Monday: day,\n Tuesday: day,\n Wednesday: day,\n Thursday: day,\n Friday: day,\n Saturday: day,\n Sunday: day,\n })\n .transform((o) =>\n stripUndefined({\n monday: o.Monday,\n tuesday: o.Tuesday,\n wednesday: o.Wednesday,\n thursday: o.Thursday,\n friday: o.Friday,\n saturday: o.Saturday,\n sunday: o.Sunday,\n }),\n );\n\n// CheckoutLocation { Address, PickupTime, OpeningHours, Distance(int), LocationCode(str), PartnerID }\nconst checkoutLocationSchema = z\n .object({\n Address: pickupAddressSchema.optional(),\n PickupTime: z.string().optional(),\n OpeningHours: pickupOpeningHoursSchema.optional(),\n Distance: pnlNum().optional(),\n LocationCode: z.string().optional(),\n PartnerID: z.string().optional(),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((l) =>\n stripUndefined({\n address: l.Address,\n pickupTime: l.PickupTime,\n openingHours: l.OpeningHours,\n distance: l.Distance,\n locationCode: l.LocationCode,\n partnerId: l.PartnerID,\n sustainability: l.Sustainability,\n }),\n );\n\nconst pickupOptionSchema = z\n .object({\n PickupDate: pnlDateField,\n ShippingDate: pnlDateField,\n Option: z.string().optional(),\n Locations: pnlArray(checkoutLocationSchema),\n })\n .transform((p) => ({\n ...stripUndefined({\n pickupDate: p.PickupDate,\n shippingDate: p.ShippingDate,\n option: p.Option,\n }),\n locations: p.Locations,\n }));\n\n// CheckoutWarning { DeliveryDate, Code, Description, Options(plain string) }\nconst warningSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Code: z.string().optional(),\n Description: z.string().optional(),\n Options: z.string().optional(),\n })\n .transform((w) =>\n stripUndefined({\n deliveryDate: w.DeliveryDate,\n code: w.Code,\n description: w.Description,\n options: w.Options,\n }),\n );\n\nexport const checkoutResponseSchema = z\n .object({\n DeliveryOptions: pnlArray(deliveryOptionSchema),\n PickupOptions: pnlArray(pickupOptionSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((r) => ({\n deliveryOptions: r.DeliveryOptions,\n pickupOptions: r.PickupOptions,\n warnings: r.Warnings,\n }));\nexport type CheckoutResponse = z.infer<typeof checkoutResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type CheckoutRequestInput,\n type CheckoutResponse,\n checkoutResponseSchema,\n toCheckoutRequestBody,\n} from \"./schema\";\n\nconst asDateTime = (v: Date | string) => (v instanceof Date ? formatDate(v, \"datetime\") : v);\n\nexport class CheckoutResource extends BaseResource {\n // POST /shipment/v1/checkout\n get(input: CheckoutRequestInput): Promise<CheckoutResponse> {\n return this.call({\n operation: \"checkoutGet\",\n input: toCheckoutRequestBody(input, asDateTime(input.orderDate)),\n responseSchema: checkoutResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// Options is the {string: value} | {string: [...]} wrapper; pnlArray handles both -> string[]\nexport const deliveryDateResponseSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((r) =>\n stripUndefined({\n deliveryDate: r.DeliveryDate,\n options: r.Options.length ? r.Options : undefined,\n sustainability: r.Sustainability,\n }),\n );\nexport type DeliveryDateResponse = z.infer<typeof deliveryDateResponseSchema>;\n\nexport const sentDateResponseSchema = z\n .object({\n SentDate: pnlDateField,\n Options: pnlArray(z.string()),\n })\n .transform((r) =>\n stripUndefined({\n sentDate: r.SentDate,\n options: r.Options.length ? r.Options : undefined,\n }),\n );\nexport type SentDateResponse = z.infer<typeof sentDateResponseSchema>;\n","import type { CountryCode, DeliverydateOption, OriginCountryCode } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type DeliveryDateResponse,\n type SentDateResponse,\n deliveryDateResponseSchema,\n sentDateResponseSchema,\n} from \"./schema\";\n\ntype Weekday = \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\" | \"Sunday\";\nconst WEEKDAYS: Weekday[] = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\n// per-weekday cutoff/availability overrides; keys lowercased weekday names\ntype WeekdayCutOff = Partial<Record<`cutOffTime${Weekday}`, string>>;\ntype WeekdayAvailable = Partial<Record<`available${Weekday}`, boolean>>;\n\nexport interface DeliveryDateCalculateInput extends WeekdayCutOff, WeekdayAvailable {\n shippingDate: Date | string;\n shippingDuration: number;\n cutOffTime: string;\n postalCode: string;\n countryCode: CountryCode;\n options: DeliverydateOption[];\n originCountryCode?: OriginCountryCode;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNrExt?: string;\n}\n\nexport interface SentDateInput {\n deliveryDate: Date | string;\n shippingDuration: number;\n postalCode: string;\n countryCode: CountryCode;\n originCountryCode?: OriginCountryCode;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNrExt?: string;\n}\n\nconst asDateTime = (v: Date | string) => (v instanceof Date ? formatDate(v, \"datetime\") : v);\nconst asDate = (v: Date | string) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class DeliveryDateResource extends BaseResource {\n // GET /shipment/v2_2/calculate/date/delivery\n calculate(input: DeliveryDateCalculateInput): Promise<DeliveryDateResponse> {\n const query: Record<string, string | number | boolean | undefined> = {\n ShippingDate: asDateTime(input.shippingDate),\n ShippingDuration: input.shippingDuration,\n CutOffTime: input.cutOffTime,\n PostalCode: input.postalCode,\n CountryCode: input.countryCode,\n Options: input.options.join(\",\"),\n OriginCountryCode: input.originCountryCode ?? \"NL\",\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNrExt: input.houseNrExt,\n };\n for (const day of WEEKDAYS) {\n query[`CutOffTime${day}`] = input[`cutOffTime${day}`];\n query[`Available${day}`] = input[`available${day}`];\n }\n return this.call({\n operation: \"deliveryDateCalculate\",\n query,\n responseSchema: deliveryDateResponseSchema,\n });\n }\n\n // GET /shipment/v2_2/calculate/date/shipping\n sentDate(input: SentDateInput): Promise<SentDateResponse> {\n return this.call({\n operation: \"deliveryDateSent\",\n query: {\n DeliveryDate: asDate(input.deliveryDate),\n ShippingDuration: input.shippingDuration,\n PostalCode: input.postalCode,\n CountryCode: input.countryCode,\n OriginCountryCode: input.originCountryCode ?? \"NL\",\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNrExt: input.houseNrExt,\n },\n responseSchema: sentDateResponseSchema,\n });\n }\n}\n","// wire enum values mirrored 1:1 from the official sdk *_enum.py files\nexport const BarcodeType = [\"2S\", \"3S\", \"CC\", \"CP\", \"CD\", \"CF\", \"LA\", \"RI\", \"UE\"] as const;\nexport type BarcodeType = (typeof BarcodeType)[number];\n\nexport const ShipmentTypeV4 = [\n \"parcel\",\n \"letterbox\",\n \"packet\",\n \"parcelnonstandard\",\n \"letter\",\n] as const;\nexport type ShipmentTypeV4 = (typeof ShipmentTypeV4)[number];\n\nexport const ReturnShipmentTypeV4 = [\"parcel\", \"letterbox\", \"packet\", \"parcelnonstandard\"] as const;\nexport type ReturnShipmentTypeV4 = (typeof ReturnShipmentTypeV4)[number];\n\nexport const ReceiverType = [\"business\", \"consumer\"] as const;\nexport type ReceiverType = (typeof ReceiverType)[number];\n\nexport const OutputType = [\"zpl\", \"pdf\", \"gif\", \"jpg\", \"png\"] as const;\nexport type OutputType = (typeof OutputType)[number];\n\nexport const ReturnOutputType = [\"pdf\", \"gif\", \"jpg\", \"png\"] as const;\nexport type ReturnOutputType = (typeof ReturnOutputType)[number];\n\nexport const PageOrientation = [\"portrait\", \"landscape\"] as const;\nexport type PageOrientation = (typeof PageOrientation)[number];\n\nexport const Resolution = [200, 300, 600] as const;\nexport type Resolution = (typeof Resolution)[number];\n\nexport const MergeType = [\"singlepdf\", \"pdfa6toa4\"] as const;\nexport type MergeType = (typeof MergeType)[number];\n\nexport const Positioning = [\"topleft\", \"topright\", \"bottomleft\", \"bottomright\"] as const;\nexport type Positioning = (typeof Positioning)[number];\n\nexport const PrintMethod = [\"consumerPrint\", \"retailPrint\"] as const;\nexport type PrintMethod = (typeof PrintMethod)[number];\n\nexport const LabelType = [\"labelinthebox\"] as const;\nexport type LabelType = (typeof LabelType)[number];\n\nexport const ReturnPeriod = [35, 100, 200, 365] as const;\nexport type ReturnPeriod = (typeof ReturnPeriod)[number];\n\nexport const ReturnPeriodV4 = [20, 35] as const;\nexport type ReturnPeriodV4 = (typeof ReturnPeriodV4)[number];\n\nexport const Bundle = [\"track_trace\", \"insured\", \"insured_plus\"] as const;\nexport type Bundle = (typeof Bundle)[number];\n\nexport const Language = [\"NL\", \"FR\", \"EN\"] as const;\nexport type Language = (typeof Language)[number];\n\nexport const StatusLanguage = [\"NL\", \"EN\", \"CN\", \"DE\", \"FR\"] as const;\nexport type StatusLanguage = (typeof StatusLanguage)[number];\n\nexport const MinimalAgeCheck = [\"16+\", \"18+\"] as const;\nexport type MinimalAgeCheck = (typeof MinimalAgeCheck)[number];\n\nexport const DeliveryConfirmation = [\"signature\", \"deliverycode\"] as const;\nexport type DeliveryConfirmation = (typeof DeliveryConfirmation)[number];\n\nexport const GuaranteedBefore = [\"10:00\", \"12:00\", \"17:00\"] as const;\nexport type GuaranteedBefore = (typeof GuaranteedBefore)[number];\n\nexport const Duration = [\"24hours\", \"non24hours\"] as const;\nexport type Duration = (typeof Duration)[number];\n\nexport const ConsolidationMode = [\"none\", \"bulk\"] as const;\nexport type ConsolidationMode = (typeof ConsolidationMode)[number];\n\nexport const NetworkType = [\"commercial\", \"postal\"] as const;\nexport type NetworkType = (typeof NetworkType)[number];\n\nexport const AssociatedDocumentType = [\"certificate\", \"invoice\", \"license\"] as const;\nexport type AssociatedDocumentType = (typeof AssociatedDocumentType)[number];\n\nexport const CountryCode = [\"NL\", \"BE\"] as const;\nexport type CountryCode = (typeof CountryCode)[number];\n\nexport const OriginCountryCode = [\"NL\", \"BE\"] as const;\nexport type OriginCountryCode = (typeof OriginCountryCode)[number];\n\nexport const Currency = [\"EUR\", \"GBP\", \"USD\", \"CNY\"] as const;\nexport type Currency = (typeof Currency)[number];\n\n// note: labelling legacy currency keeps the upstream \"USS\" typo from the sdk\nexport const LabellingCurrency = [\"EUR\", \"USS\"] as const;\nexport type LabellingCurrency = (typeof LabellingCurrency)[number];\n\nexport const AddressType = [\"01\", \"02\"] as const;\nexport type AddressType = (typeof AddressType)[number];\n\nexport const ShipmentTypeLegacy = [\n \"Gift\",\n \"Documents\",\n \"Commercial Goods\",\n \"Commercial Sample\",\n \"Returned Goods\",\n] as const;\nexport type ShipmentTypeLegacy = (typeof ShipmentTypeLegacy)[number];\n\nexport const DeliverydateOption = [\n \"Daytime\",\n \"Evening\",\n \"Morning\",\n \"Noon\",\n \"Sunday\",\n \"Today\",\n \"Afternoon\",\n] as const;\nexport type DeliverydateOption = (typeof DeliverydateOption)[number];\n\nexport const TimeframeOption = [\n \"Daytime\",\n \"Today\",\n \"Sameday\",\n \"Evening\",\n \"Morning\",\n \"Noon\",\n \"Sunday\",\n \"Afternoon\",\n] as const;\nexport type TimeframeOption = (typeof TimeframeOption)[number];\n\nexport const CheckoutOption = [\n \"Daytime\",\n \"Evening\",\n \"Sunday\",\n \"Sameday\",\n \"Today\",\n \"08:00-10:00\",\n \"08:00-12:00\",\n \"08:00-17:00\",\n \"Pickup\",\n] as const;\nexport type CheckoutOption = (typeof CheckoutOption)[number];\n\nexport const CheckoutWarningOption = [\n \"Daytime\",\n \"Evening\",\n \"Sameday\",\n \"Sunday\",\n \"Today\",\n \"08:00-10:00\",\n \"08:00-12:00\",\n \"08:00-17:00\",\n \"08:00-09:00\",\n \"Pickup\",\n] as const;\nexport type CheckoutWarningOption = (typeof CheckoutWarningOption)[number];\n\nexport const CheckoutCutOffDay = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\"] as const;\nexport type CheckoutCutOffDay = (typeof CheckoutCutOffDay)[number];\n\nexport const CheckoutCutOffType = [\"Regular\", \"Sameday\", \"Today\"] as const;\nexport type CheckoutCutOffType = (typeof CheckoutCutOffType)[number];\n\nexport const LocationDeliveryOption = [\"PG\", \"PA\", \"PG_EX\"] as const;\nexport type LocationDeliveryOption = (typeof LocationDeliveryOption)[number];\n\n// internal location codes to ignore when present in responses\nexport const IGNORED_LOCATION_OPTIONS = [\"RETA\", \"UL\", \"PU\", \"DO\", \"BW\", \"RT\", \"BWUL\"] as const;\n\nexport const SustainabilityCode = [\"00\", \"01\", \"02\", \"03\"] as const;\nexport type SustainabilityCode = (typeof SustainabilityCode)[number];\n\nexport const Service = [\"evening\"] as const;\nexport type Service = (typeof Service)[number];\n","import { z } from \"zod\";\nimport { IGNORED_LOCATION_OPTIONS } from \"../../constants/enums\";\nimport { sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray, pnlNum, pnlStringWrapped } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\nconst IGNORED = new Set<string>(IGNORED_LOCATION_OPTIONS);\n\n// LocationsAddress { City, Countrycode, HouseNr(int), HouseNrExt, Remark, Street, Zipcode }\nconst addressSchema = z\n .object({\n City: z.string().optional(),\n Countrycode: z.string().optional(),\n HouseNr: pnlNum().optional(),\n HouseNrExt: z.string().optional(),\n Remark: z.string().optional(),\n Street: z.string().optional(),\n Zipcode: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n city: a.City,\n countrycode: a.Countrycode,\n houseNr: a.HouseNr,\n houseNrExt: a.HouseNrExt,\n remark: a.Remark,\n street: a.Street,\n zipcode: a.Zipcode,\n }),\n );\n\n// each day is the {string:\"08:00-18:00\"} wrapper\nconst day = pnlStringWrapped(z.string()).optional();\n\nconst openingHoursSchema = z\n .object({\n Monday: day,\n Tuesday: day,\n Wednesday: day,\n Thursday: day,\n Friday: day,\n Saturday: day,\n Sunday: day,\n })\n .transform((o) =>\n stripUndefined({\n monday: o.Monday,\n tuesday: o.Tuesday,\n wednesday: o.Wednesday,\n thursday: o.Thursday,\n friday: o.Friday,\n saturday: o.Saturday,\n sunday: o.Sunday,\n }),\n );\n\n// Location; numeric response fields coerced via pnlNum (wire may stringify them).\n// DeliveryOptions is the {string:[...]} wrapper -> pnlArray; internal codes filtered out.\nconst locationSchema = z\n .object({\n Address: addressSchema.optional(),\n DeliveryOptions: pnlArray(z.string()),\n Distance: pnlNum().optional(),\n Latitude: pnlNum().optional(),\n LocationCode: pnlNum().optional(),\n Longitude: pnlNum().optional(),\n Name: z.string().optional(),\n OpeningHours: openingHoursSchema.optional(),\n Sustainability: sustainabilitySchema.optional(),\n PartnerName: z.string().optional(),\n RetailNetworkID: z.string().optional(),\n })\n .transform((l) => {\n const deliveryOptions = l.DeliveryOptions.filter((o) => !IGNORED.has(o));\n return stripUndefined({\n address: l.Address,\n deliveryOptions: deliveryOptions.length ? deliveryOptions : undefined,\n distance: l.Distance,\n latitude: l.Latitude,\n locationCode: l.LocationCode,\n longitude: l.Longitude,\n name: l.Name,\n openingHours: l.OpeningHours,\n sustainability: l.Sustainability,\n partnerName: l.PartnerName,\n retailNetworkId: l.RetailNetworkID,\n });\n });\nexport type Location = z.infer<typeof locationSchema>;\n\n// LocationsResponseMultiple { GetLocationsResult.ResponseLocation: Location[] (single-or-array) }\nexport const locationsResponseSchema = z\n .object({\n GetLocationsResult: z\n .object({ ResponseLocation: pnlArray(locationSchema) })\n .optional()\n .transform((r) => r?.ResponseLocation ?? []),\n })\n .transform((r) => ({ locations: r.GetLocationsResult }));\nexport type LocationsResponse = z.infer<typeof locationsResponseSchema>;\n\n// LocationResponseSingle { GetLocationsResult.ResponseLocation: Location (single) }\nexport const locationLookupResponseSchema = z\n .object({\n GetLocationsResult: z\n .object({ ResponseLocation: locationSchema.optional() })\n .optional()\n .transform((r) => r?.ResponseLocation),\n })\n .transform((r) => stripUndefined({ location: r.GetLocationsResult }));\nexport type LocationLookupResponse = z.infer<typeof locationLookupResponseSchema>;\n","import type { CountryCode, LocationDeliveryOption } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type LocationLookupResponse,\n type LocationsResponse,\n locationLookupResponseSchema,\n locationsResponseSchema,\n} from \"./schema\";\n\ninterface CommonLocationOptions {\n deliveryDate?: Date | string;\n openingTime?: string;\n deliveryOptions?: LocationDeliveryOption[];\n}\n\nexport interface LocationNearestInput extends CommonLocationOptions {\n countryCode: CountryCode;\n postalCode: string;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNumberExtension?: string;\n}\n\nexport interface LocationNearestByGeocodeInput extends CommonLocationOptions {\n latitude: number;\n longitude: number;\n countryCode: CountryCode;\n}\n\nexport interface LocationAreaInput extends CommonLocationOptions {\n latitudeNorth: number;\n longitudeWest: number;\n latitudeSouth: number;\n longitudeEast: number;\n countryCode: CountryCode;\n}\n\nexport interface LocationLookupInput {\n // accepts the numeric locationCode read from a Location response\n locationCode: string | number;\n}\n\nconst asDate = (v: Date | string | undefined) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class LocationResource extends BaseResource {\n // GET /shipment/v2_1/locations/nearest\n nearest(input: LocationNearestInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationNearest\",\n query: {\n CountryCode: input.countryCode,\n PostalCode: input.postalCode,\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNumberExtension: input.houseNumberExtension,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/nearest/geocode\n nearestByGeocode(input: LocationNearestByGeocodeInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationNearestByGeocode\",\n query: {\n Latitude: input.latitude,\n Longitude: input.longitude,\n CountryCode: input.countryCode,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/area\n area(input: LocationAreaInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationArea\",\n query: {\n LatitudeNorth: input.latitudeNorth,\n LongitudeWest: input.longitudeWest,\n LatitudeSouth: input.latitudeSouth,\n LongitudeEast: input.longitudeEast,\n CountryCode: input.countryCode,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/lookup\n lookup(input: LocationLookupInput): Promise<LocationLookupResponse> {\n return this.call({\n operation: \"locationLookup\",\n query: { LocationCode: String(input.locationCode) },\n responseSchema: locationLookupResponseSchema,\n });\n }\n}\n","// label/signature content is base64. native fromBase64 when present (node22+/bun/deno), atob fallback for node18/20\nexport function decodeBase64(b64: string): Uint8Array {\n const fromBase64 = (Uint8Array as unknown as { fromBase64?: (s: string) => Uint8Array })\n .fromBase64;\n if (fromBase64) return fromBase64(b64);\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n}\n\nconst CONTENT_TYPES: Record<string, string> = {\n pdf: \"application/pdf\",\n gif: \"image/gif\",\n jpg: \"image/jpeg\",\n jpeg: \"image/jpeg\",\n png: \"image/png\",\n zpl: \"text/plain\",\n};\n\nexport function labelContentType(outputType: string): string {\n return CONTENT_TYPES[outputType.toLowerCase()] ?? \"application/octet-stream\";\n}\n\nexport interface DecodedLabel {\n base64: string;\n contentType: string;\n bytes(): Uint8Array;\n}\n\nexport function toDecodedLabel(base64: string, outputType: string): DecodedLabel {\n return { base64, contentType: labelContentType(outputType), bytes: () => decodeBase64(base64) };\n}\n","import { z } from \"zod\";\nimport {\n AssociatedDocumentType,\n Bundle,\n DeliveryConfirmation,\n Duration,\n GuaranteedBefore,\n Language,\n MergeType,\n MinimalAgeCheck,\n OutputType,\n PageOrientation,\n Positioning,\n ReceiverType,\n Service,\n ShipmentTypeV4,\n} from \"../../constants/enums\";\nimport { toDecodedLabel } from \"../../core/base64\";\nimport { formatIsoDate } from \"../../core/codec/dates\";\n\n// v4 dates are iso yyyy-MM-dd. accept a js date (format it, but not an invalid one) or a bare\n// string passthrough. invalid dates / malformed strings fail the shape check below.\nexport const isoDate = z.preprocess(\n (v) => (v instanceof Date ? (Number.isNaN(v.getTime()) ? v : formatIsoDate(v)) : v),\n z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/),\n);\n\n// nested address building blocks (AddressPNPShipmentConfirm + InternationalAddressData)\nexport const internationalAddressDataSchema = z.object({\n area: z.string().optional(),\n buildingName: z.string().optional(),\n doorCode: z.string().optional(),\n floor: z.string().optional(),\n region: z.string().optional(),\n});\n\nexport const addressV4Schema = z.object({\n countryIso: z.string(),\n city: z.string().optional(),\n companyName: z.string().optional(),\n departmentName: z.string().optional(),\n houseNumber: z.string().optional(),\n houseNumberAddition: z.string().optional(),\n postalCode: z.string().optional(),\n street: z.string().optional(),\n addressLine: z.string().optional(),\n internationalAddressData: internationalAddressDataSchema.optional(),\n});\n\nexport const contactV4Schema = z.object({\n email: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n language: z.enum(Language).optional(),\n mobileNumber: z.string().optional(),\n});\n\n// ReceiverPNPShipment\nexport const receiverV4Schema = z.object({\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n type: z.enum(ReceiverType).optional(),\n});\n\n// CustomerPNPShipment (sender)\nexport const senderV4Schema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n undeliverableReturnAddress: addressV4Schema.optional(),\n});\n\nexport const dimensionsSchema = z.object({\n length: z.number().int().optional(),\n width: z.number().int().optional(),\n height: z.number().int().optional(),\n volume: z.number().int().optional(),\n weight: z.number().int().optional(),\n});\n\nexport const customerReferencesSchema = z.object({\n shipmentReference: z.string().optional(),\n costCenter: z.string().optional(),\n returnReference: z.string().optional(),\n});\n\n// Item1 (request items)\nexport const itemV4Schema = z.object({\n barcode: z.string().optional(),\n dimensions: dimensionsSchema.optional(),\n customerReferences: customerReferencesSchema.optional(),\n});\n\n// Label (labelSettings)\nexport const labelSettingsSchema = z.object({\n outputType: z.enum(OutputType).optional(),\n pageOrientation: z.enum(PageOrientation).default(\"portrait\"),\n resolution: z.union([z.literal(200), z.literal(300), z.literal(600)]).default(200),\n mergeType: z.enum(MergeType).optional(),\n positioning: z.enum(Positioning).optional(),\n});\n\nexport const deliveryWindowSchema = z.object({\n service: z.enum(Service).optional(),\n guaranteedBefore: z.enum(GuaranteedBefore).optional(),\n duration: z.enum(Duration).optional(),\n});\n\nexport const servicesSchema = z.object({\n insuredValue: z.number().optional(),\n deliveryWindow: deliveryWindowSchema.optional(),\n statedAddressOnly: z.boolean().optional(),\n returnWhenNotHome: z.boolean().optional(),\n minimalAgeCheck: z.enum(MinimalAgeCheck).optional(),\n deliveryConfirmation: z.enum(DeliveryConfirmation).optional(),\n adrLq: z.boolean().optional(),\n registered: z.boolean().optional(),\n});\n\n// Content (customs item declaration)\nexport const contentSchema = z.object({\n countryOfOrigin: z.string(),\n description: z.string(),\n quantity: z.number().int(),\n value: z.number(),\n weight: z.number().int(),\n hsTariffNumber: z.string().optional(),\n});\n\nexport const associatedDocumentSchema = z.object({\n type: z.enum(AssociatedDocumentType),\n number: z.string(),\n});\n\n// Customs / CustomsPNPShipmentLabel (labelSignature only present on label variant)\nexport const customsV4Schema = z.object({\n content: z.array(contentSchema),\n transactionCode: z.string(),\n currency: z.string(),\n handleAsNonDeliverable: z.boolean().optional(),\n associatedDocument: associatedDocumentSchema.optional(),\n senderIdentification: z.string().optional(),\n receiverIdentification: z.string().optional(),\n labelSignature: z.boolean().optional(),\n});\n\n// InternationalShipmentDataPNPShipment / ...Label\nexport const internationalShipmentDataV4Schema = z.object({\n pudo: z.boolean().optional(),\n customs: customsV4Schema.optional(),\n bundle: z.enum(Bundle).optional(),\n});\n\nexport const deliveryLocationV4Schema = z.object({\n pickUpLocationId: z.string().optional(),\n address: addressV4Schema.optional(),\n});\n\n// ReturnOptionsPNPShipment / ...Label\nexport const returnOptionsV4Schema = z.object({\n labelType: z.string().optional(),\n returnPeriod: z.union([z.literal(35), z.literal(100), z.literal(200), z.literal(365)]).optional(),\n returnAddress: addressV4Schema.optional(),\n returnBarcode: z.string().optional(),\n});\n\n// shared shipment fields for create/label/confirm; confirm omits labelSettings\nconst shipmentV4BaseShape = {\n receiver: receiverV4Schema,\n sender: senderV4Schema,\n shipmentType: z.enum(ShipmentTypeV4),\n handOverDate: isoDate.optional(),\n deliveryLocation: deliveryLocationV4Schema.optional(),\n returnOptions: returnOptionsV4Schema.optional(),\n // should match items.length for multi-collo shipments\n itemCount: z.number().int().default(1),\n items: z.array(itemV4Schema).optional(),\n internationalShipmentData: internationalShipmentDataV4Schema.optional(),\n services: servicesSchema.optional(),\n} as const;\n\n// ShipmentPNPShipment (create / labelconfirm)\nexport const shipmentV4RequestSchema = z.object({\n ...shipmentV4BaseShape,\n labelSettings: labelSettingsSchema.optional(),\n});\nexport type ShipmentV4Request = z.input<typeof shipmentV4RequestSchema>;\n\n// ShipmentPNPShipmentLabel (label) — identical wire shape to create\nexport const labellingV4RequestSchema = z.object({\n ...shipmentV4BaseShape,\n labelSettings: labelSettingsSchema.optional(),\n});\nexport type LabellingV4Request = z.input<typeof labellingV4RequestSchema>;\n\n// Shipment (confirm) — no labelSettings\nexport const confirmV4RequestSchema = z.object(shipmentV4BaseShape);\nexport type ConfirmV4Request = z.input<typeof confirmV4RequestSchema>;\n\n// response: Label2 { label (base64), outputType, labelType }. accept legacy `content` key too.\nconst labelResponseSchema = z\n .object({\n label: z.string().optional(),\n content: z.string().optional(),\n outputType: z.string().optional(),\n labelType: z.string().optional(),\n })\n .transform((l) => {\n const base64 = l.label ?? l.content ?? \"\";\n return {\n ...toDecodedLabel(base64, l.outputType ?? \"\"),\n outputType: l.outputType,\n labelType: l.labelType,\n };\n });\n\nexport const productServiceSchema = z.object({\n productData: z.string().optional(),\n // untyped in sdk (List[Any]); doc examples show objects\n services: z.array(z.record(z.unknown())).optional(),\n bundles: z.array(z.record(z.unknown())).optional(),\n});\n\n// Item / ItemPNPShipmentLabel / ItemPNPGenerateShipmentReturnV4 (superset; labels optional)\nexport const responseItemSchema = z.object({\n shipmentReference: z.string().optional(),\n returnReference: z.string().optional(),\n barcode: z.string().optional(),\n returnBarcode: z.string().optional(),\n preannouncedProduct: z.string().optional(),\n codingText: z.string().optional(),\n productService: productServiceSchema.optional(),\n partnerBarcode: z.string().optional(),\n partnerId: z.string().optional(),\n labels: z.array(labelResponseSchema).optional(),\n});\n\n// ShipmentPostResponse { items: Item[], traceId, warnings }\nexport const shipmentPostResponseSchema = z.object({\n items: z.array(responseItemSchema).default([]),\n traceId: z.string().optional(),\n warnings: z.array(z.string()).optional(),\n});\nexport type ShipmentPostResponse = z.infer<typeof shipmentPostResponseSchema>;\n","import { z } from \"zod\";\nimport {\n ConsolidationMode,\n NetworkType,\n OutputType,\n PageOrientation,\n PrintMethod,\n ReturnShipmentTypeV4,\n} from \"../../constants/enums\";\nimport {\n addressV4Schema,\n contactV4Schema,\n customerReferencesSchema,\n dimensionsSchema,\n isoDate,\n} from \"../shipping/schema\";\n\n// CustomerPNPGenerateShipmentReturnV4\nexport const returnCustomerSchema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n address: addressV4Schema,\n});\n\n// ReceiverPNPGenerateShipmentReturnV4\nexport const returnReceiverSchema = z.object({\n customer: returnCustomerSchema.optional(),\n contact: contactV4Schema.optional(),\n});\n\n// Sender\nexport const returnSenderSchema = z.object({\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n});\n\n// LabelPNPGenerateShipmentReturnV4\nexport const returnLabelSchema = z.object({\n outputType: z.enum(OutputType),\n printMethod: z.enum(PrintMethod),\n pageOrientation: z.enum(PageOrientation).optional(),\n resolution: z.union([z.literal(200), z.literal(300), z.literal(600)]).optional(),\n});\n\n// Domestic\nexport const returnDomesticSchema = z.object({\n returnPeriod: z.union([z.literal(20), z.literal(35)]).optional(),\n valuableReturn: z.boolean().optional(),\n});\n\n// International\nexport const returnInternationalSchema = z.object({\n consolidationMode: z.enum(ConsolidationMode).optional(),\n networkType: z.enum(NetworkType).optional(),\n});\n\n// CollectionService\nexport const returnCollectionServiceSchema = z.object({\n timeWindow: isoDate.optional(),\n // should match items.length for multi-collo shipments\n itemCount: z.number().int().default(1),\n});\n\n// ReturnOptionsPNPGenerateShipmentReturnV4\nexport const returnOptionsSchema = z.object({\n domestic: returnDomesticSchema.optional(),\n international: returnInternationalSchema.optional(),\n collectionService: returnCollectionServiceSchema.optional(),\n});\n\n// Items\nexport const returnItemSchema = z.object({\n barcode: z.string().optional(),\n dimensions: dimensionsSchema.optional(),\n customerReferences: customerReferencesSchema.optional(),\n});\n\n// ReturnShipment\nexport const returnGenerateRequestSchema = z.object({\n receiver: returnReceiverSchema,\n sender: returnSenderSchema,\n labelSettings: returnLabelSchema,\n shipmentType: z.enum(ReturnShipmentTypeV4),\n returnOptions: returnOptionsSchema.optional(),\n items: z.array(returnItemSchema).optional(),\n});\nexport type ReturnGenerateRequest = z.input<typeof returnGenerateRequestSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { type ShipmentPostResponse, shipmentPostResponseSchema } from \"../shipping/schema\";\nimport { type ReturnGenerateRequest, returnGenerateRequestSchema } from \"./schema\";\n\nexport class ReturnResource extends BaseResource {\n // generate a return label\n generate(input: ReturnGenerateRequest): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"returnGenerate\",\n input,\n requestSchema: returnGenerateRequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport type { AddressType, LabellingCurrency, ShipmentTypeLegacy } from \"../../constants/enums\";\nimport { toDecodedLabel } from \"../../core/base64\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// legacy send requests use native types + PascalCase wire keys.\n// public api is camelCase in; each schema .transform()s to the wire shape.\n// undefined wire keys are stripped so exactOptionalPropertyTypes stays happy downstream.\n\n// MessageTimeStamp is dd-MM-yyyy HH:mm:ss; accept a Date or pre-formatted string, default now\nconst messageTimeStamp = z.preprocess(\n (v) => (v instanceof Date ? formatDate(v, \"datetime\") : v),\n z.string(),\n);\n\n// Address\nexport const legacyAddressSchema = z\n .object({\n addressType: z.custom<AddressType>(),\n countrycode: z.string(),\n area: z.string().optional(),\n buildingname: z.string().optional(),\n city: z.string().optional(),\n companyName: z.string().optional(),\n department: z.string().optional(),\n doorcode: z.string().optional(),\n firstName: z.string().optional(),\n floor: z.string().optional(),\n houseNr: z.string().optional(),\n houseNrExt: z.string().optional(),\n name: z.string().optional(),\n region: z.string().optional(),\n street: z.string().optional(),\n streetHouseNrExt: z.string().optional(),\n zipcode: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n AddressType: a.addressType,\n Countrycode: a.countrycode,\n Area: a.area,\n Buildingname: a.buildingname,\n City: a.city,\n CompanyName: a.companyName,\n Department: a.department,\n Doorcode: a.doorcode,\n FirstName: a.firstName,\n Floor: a.floor,\n HouseNr: a.houseNr,\n HouseNrExt: a.houseNrExt,\n Name: a.name,\n Region: a.region,\n Street: a.street,\n StreetHouseNrExt: a.streetHouseNrExt,\n Zipcode: a.zipcode,\n }),\n );\n\n// Contact\nexport const legacyContactSchema = z\n .object({\n contactType: z.string(),\n email: z.string().optional(),\n smsNr: z.string().optional(),\n telNr: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n ContactType: c.contactType,\n Email: c.email,\n SMSNr: c.smsNr,\n TelNr: c.telNr,\n }),\n );\n\n// Dimension (Weight in grams, native int)\nexport const legacyDimensionSchema = z\n .object({\n weight: z.number().int(),\n height: z.number().int().optional(),\n length: z.number().int().optional(),\n volume: z.number().int().optional(),\n width: z.number().int().optional(),\n })\n .transform((d) =>\n stripUndefined({\n Weight: d.weight,\n Height: d.height,\n Length: d.length,\n Volume: d.volume,\n Width: d.width,\n }),\n );\n\n// Amount (Value is native float)\nexport const legacyAmountSchema = z\n .object({\n amountType: z.string(),\n value: z.number(),\n accountName: z.string().optional(),\n bic: z.string().optional(),\n currency: z.custom<LabellingCurrency>().optional(),\n iban: z.string().optional(),\n reference: z.string().optional(),\n transactionNumber: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n AmountType: a.amountType,\n Value: a.value,\n AccountName: a.accountName,\n BIC: a.bic,\n Currency: a.currency,\n IBAN: a.iban,\n Reference: a.reference,\n TransactionNumber: a.transactionNumber,\n }),\n );\n\n// Group\nexport const legacyGroupSchema = z\n .object({\n groupType: z.string(),\n mainBarcode: z.string(),\n groupSequence: z.number().int().optional(),\n groupCount: z.number().int().optional(),\n })\n .transform((g) =>\n stripUndefined({\n GroupType: g.groupType,\n MainBarcode: g.mainBarcode,\n GroupSequence: g.groupSequence,\n GroupCount: g.groupCount,\n }),\n );\n\n// ProductOption\nexport const legacyProductOptionSchema = z\n .object({ characteristic: z.string(), option: z.string() })\n .transform((p) => ({ Characteristic: p.characteristic, Option: p.option }));\n\n// LabellingCustomsContent\nexport const legacyCustomsContentSchema = z\n .object({\n description: z.string(),\n quantity: z.number().int(),\n weight: z.number().int(),\n value: z.number(),\n hsTariffNr: z.string().optional(),\n countryOfOrigin: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n Description: c.description,\n Quantity: c.quantity,\n Weight: c.weight,\n Value: c.value,\n HSTariffNr: c.hsTariffNr,\n CountryOfOrigin: c.countryOfOrigin,\n }),\n );\n\n// CustomsLabellingAPI (booleans are native)\nexport const legacyCustomsSchema = z\n .object({\n currency: z.custom<LabellingCurrency>(),\n shipmentType: z.custom<ShipmentTypeLegacy>(),\n content: z.array(legacyCustomsContentSchema),\n certificate: z.boolean().optional(),\n certificateNr: z.string().optional(),\n license: z.boolean().optional(),\n licenseNr: z.string().optional(),\n invoice: z.boolean().optional(),\n invoiceNr: z.string().optional(),\n handleAsNonDeliverable: z.boolean().optional(),\n trustedShipperId: z.string().optional(),\n importerReferenceCode: z.string().optional(),\n transactionCode: z.string().optional(),\n transactionDescription: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n Currency: c.currency,\n ShipmentType: c.shipmentType,\n Content: c.content,\n Certificate: c.certificate,\n CertificateNr: c.certificateNr,\n License: c.license,\n LicenseNr: c.licenseNr,\n Invoice: c.invoice,\n InvoiceNr: c.invoiceNr,\n HandleAsNonDeliverable: c.handleAsNonDeliverable,\n TrustedShipperID: c.trustedShipperId,\n ImporterReferenceCode: c.importerReferenceCode,\n TransactionCode: c.transactionCode,\n TransactionDescription: c.transactionDescription,\n }),\n );\n\n// ExtraField\nexport const legacyExtraFieldSchema = z\n .object({ key: z.string().optional(), value: z.string().optional() })\n .transform((e) => stripUndefined({ Key: e.key, Value: e.value }));\n\n// shared shipment shape for labelling + confirming (confirming ignores extraFields)\nconst legacyShipmentShape = {\n addresses: z.array(legacyAddressSchema),\n barcode: z.string(),\n dimension: legacyDimensionSchema,\n productCodeDelivery: z.string(),\n amounts: z.array(legacyAmountSchema).optional(),\n codingText: z.string().optional(),\n collectionTimeStampStart: z.string().optional(),\n collectionTimeStampEnd: z.string().optional(),\n contacts: z.array(legacyContactSchema).optional(),\n content: z.string().optional(),\n costCenter: z.string().optional(),\n customerOrderNumber: z.string().optional(),\n customs: legacyCustomsSchema.optional(),\n deliveryAddress: z.string().optional(),\n deliveryDate: z.string().optional(),\n downPartnerBarcode: z.string().optional(),\n downPartnerId: z.string().optional(),\n downPartnerLocation: z.string().optional(),\n groups: z.array(legacyGroupSchema).optional(),\n hazardousMaterial: z.string().optional(),\n productCodeCollect: z.string().optional(),\n productOptions: z.array(legacyProductOptionSchema).optional(),\n receiverDateOfBirth: z.string().optional(),\n reference: z.string().optional(),\n referenceCollect: z.string().optional(),\n remark: z.string().optional(),\n returnBarcode: z.string().optional(),\n returnReference: z.string().optional(),\n timeslotId: z.string().optional(),\n} as const;\n\ntype LegacyShipmentParsed = z.infer<z.ZodObject<typeof legacyShipmentShape>>;\n\nconst toWireShipment = (s: LegacyShipmentParsed) =>\n stripUndefined({\n Addresses: s.addresses,\n Barcode: s.barcode,\n Dimension: s.dimension,\n ProductCodeDelivery: s.productCodeDelivery,\n Amounts: s.amounts,\n CodingText: s.codingText,\n CollectionTimeStampStart: s.collectionTimeStampStart,\n CollectionTimeStampEnd: s.collectionTimeStampEnd,\n Contacts: s.contacts,\n Content: s.content,\n CostCenter: s.costCenter,\n CustomerOrderNumber: s.customerOrderNumber,\n Customs: s.customs,\n DeliveryAddress: s.deliveryAddress,\n DeliveryDate: s.deliveryDate,\n DownPartnerBarcode: s.downPartnerBarcode,\n DownPartnerID: s.downPartnerId,\n DownPartnerLocation: s.downPartnerLocation,\n Groups: s.groups,\n HazardousMaterial: s.hazardousMaterial,\n ProductCodeCollect: s.productCodeCollect,\n ProductOptions: s.productOptions,\n ReceiverDateOfBirth: s.receiverDateOfBirth,\n Reference: s.reference,\n ReferenceCollect: s.referenceCollect,\n Remark: s.remark,\n ReturnBarcode: s.returnBarcode,\n ReturnReference: s.returnReference,\n TimeslotID: s.timeslotId,\n });\n\n// LabellingCustomerShipment\nexport const legacyLabellingShipmentSchema = z\n .object({ ...legacyShipmentShape, extraFields: z.array(legacyExtraFieldSchema).optional() })\n .transform((s) => stripUndefined({ ...toWireShipment(s), ExtraFields: s.extraFields }));\n\n// LabellingCustomer\nexport const legacyCustomerSchema = z\n .object({\n customerCode: z.string(),\n customerNumber: z.string(),\n address: legacyAddressSchema.optional(),\n collectionLocation: z.string().optional(),\n contactPerson: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n CustomerCode: c.customerCode,\n CustomerNumber: c.customerNumber,\n Address: c.address,\n CollectionLocation: c.collectionLocation,\n ContactPerson: c.contactPerson,\n Email: c.email,\n Name: c.name,\n }),\n );\n\n// LabellingCustomerMessage\nexport const legacyLabellingMessageSchema = z\n .object({\n messageId: z.string(),\n messageTimeStamp: messageTimeStamp.optional(),\n printertype: z.string(),\n })\n .transform((m) =>\n stripUndefined({\n MessageID: m.messageId,\n MessageTimeStamp: m.messageTimeStamp ?? formatDate(new Date(), \"datetime\"),\n Printertype: m.printertype,\n }),\n );\n\n// LabellingRequest\nexport const labellingRequestSchema = z\n .object({\n customer: legacyCustomerSchema,\n message: legacyLabellingMessageSchema,\n shipments: z.array(legacyLabellingShipmentSchema),\n labelSignature: z.boolean().optional(),\n })\n .transform((r) =>\n stripUndefined({\n Customer: r.customer,\n Message: r.message,\n Shipments: r.shipments,\n LabelSignature: r.labelSignature,\n }),\n );\nexport type LabellingRequest = z.input<typeof labellingRequestSchema>;\n\n// ConfirmingMessage\nexport const legacyConfirmingMessageSchema = z\n .object({ messageId: z.string(), messageTimeStamp: messageTimeStamp.optional() })\n .transform((m) => ({\n MessageID: m.messageId,\n MessageTimeStamp: m.messageTimeStamp ?? formatDate(new Date(), \"datetime\"),\n }));\n\n// ConfirmingShipment (no ExtraFields vs labelling)\nexport const legacyConfirmingShipmentSchema = z\n .object(legacyShipmentShape)\n .transform((s) => toWireShipment(s));\n\n// ConfirmingRequest\nexport const confirmingRequestSchema = z\n .object({\n customer: legacyCustomerSchema,\n message: legacyConfirmingMessageSchema,\n shipments: z.array(legacyConfirmingShipmentSchema),\n })\n .transform((r) => ({ Customer: r.customer, Message: r.message, Shipments: r.shipments }));\nexport type ConfirmingRequest = z.input<typeof confirmingRequestSchema>;\n\n// ---------- responses ----------\n\n// LabellingLabel: decode via OutputType, fall back to inferring from Labeltype\nconst legacyLabelSchema = z\n .object({\n Content: z.string().optional(),\n Labeltype: z.string().optional(),\n OutputType: z.string().optional(),\n })\n .transform((l) => {\n const format = l.OutputType ?? l.Labeltype ?? \"\";\n return {\n ...toDecodedLabel(l.Content ?? \"\", format),\n labeltype: l.Labeltype,\n outputType: l.OutputType,\n };\n });\n\nconst warningSchema = z\n .object({ Code: z.string().optional(), Description: z.string().optional() })\n .transform((w) => stripUndefined({ code: w.Code, description: w.Description }));\n\n// Errors is List[Any] in the sdk; entries may be non-objects, pass through untouched\nconst errorSchema = z.unknown();\n\n// LabellingResponseShipment\nconst labellingResponseShipmentSchema = z\n .object({\n ProductCodeDelivery: z.string().optional(),\n Labels: pnlArray(legacyLabelSchema),\n Barcode: z.string().optional(),\n Errors: pnlArray(errorSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((s) => ({\n labels: s.Labels,\n ...stripUndefined({\n productCodeDelivery: s.ProductCodeDelivery,\n barcode: s.Barcode,\n errors: s.Errors.length ? s.Errors : undefined,\n warnings: s.Warnings.length ? s.Warnings : undefined,\n }),\n }));\n\nconst legacyMergedLabelSchema = z\n .object({ Barcodes: pnlArray(z.string()), Labels: pnlArray(legacyLabelSchema) })\n .transform((m) => ({ barcodes: m.Barcodes, labels: m.Labels }));\n\n// LabellingResponse\nexport const labellingResponseSchema = z\n .object({\n MergedLabels: pnlArray(legacyMergedLabelSchema),\n ResponseShipments: pnlArray(labellingResponseShipmentSchema),\n })\n .transform((r) => ({\n responseShipments: r.ResponseShipments,\n ...(r.MergedLabels.length ? { mergedLabels: r.MergedLabels } : {}),\n }));\nexport type LabellingResponse = z.infer<typeof labellingResponseSchema>;\n\n// ConfirmingResponseShipment\nconst confirmingResponseShipmentSchema = z\n .object({\n Barcode: z.string().optional(),\n Errors: pnlArray(errorSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n errors: s.Errors.length ? s.Errors : undefined,\n warnings: s.Warnings.length ? s.Warnings : undefined,\n }),\n );\n\n// ConfirmingResponse\nexport const confirmingResponseSchema = z\n .object({ ResponseShipments: pnlArray(confirmingResponseShipmentSchema) })\n .transform((r) => ({ responseShipments: r.ResponseShipments }));\nexport type ConfirmingResponse = z.infer<typeof confirmingResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport {\n type ConfirmingRequest,\n type ConfirmingResponse,\n type LabellingRequest,\n type LabellingResponse,\n confirmingRequestSchema,\n confirmingResponseSchema,\n labellingRequestSchema,\n labellingResponseSchema,\n} from \"./legacy-schema\";\n\nexport interface LabelLegacyOptions {\n // confirm the shipment in the same call; defaults true (sdk default)\n confirm?: boolean;\n}\n\nexport class ShippingLegacyResource extends BaseResource {\n // POST /shipment/v2_2/label; confirm query param defaults true\n label(input: LabellingRequest, options?: LabelLegacyOptions): Promise<LabellingResponse> {\n return this.call({\n operation: \"shippingLabelLegacy\",\n query: { confirm: options?.confirm ?? true },\n input,\n requestSchema: labellingRequestSchema,\n responseSchema: labellingResponseSchema,\n });\n }\n\n // POST /shipment/v2/confirm\n confirm(input: ConfirmingRequest): Promise<ConfirmingResponse> {\n return this.call({\n operation: \"shippingConfirmLegacy\",\n input,\n requestSchema: confirmingRequestSchema,\n responseSchema: confirmingResponseSchema,\n });\n }\n}\n","import { BaseResource } from \"../../core/base-resource\";\nimport { ShippingLegacyResource } from \"./legacy\";\nimport {\n type ConfirmV4Request,\n type LabellingV4Request,\n type ShipmentPostResponse,\n type ShipmentV4Request,\n confirmV4RequestSchema,\n labellingV4RequestSchema,\n shipmentPostResponseSchema,\n shipmentV4RequestSchema,\n} from \"./schema\";\n\nexport class ShippingResource extends BaseResource {\n // legacy label/confirm (POST /shipment/v2_2/label, /shipment/v2/confirm)\n readonly legacy = new ShippingLegacyResource(this.transport);\n\n // create + confirm in one call (labelconfirm)\n create(input: ShipmentV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingCreate\",\n input,\n requestSchema: shipmentV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n\n // generate label without confirming\n label(input: LabellingV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingLabelV4\",\n input,\n requestSchema: labellingV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n\n // confirm a previously created shipment\n confirm(input: ConfirmV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingConfirmV4\",\n input,\n requestSchema: confirmV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// TimeframeTimeframe { From, To, Options({string:...}), Sustainability? }; times stay strings\nconst timeframeTimeframeSchema = z\n .object({\n From: z.string().optional(),\n To: z.string().optional(),\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((t) =>\n stripUndefined({\n from: t.From,\n to: t.To,\n options: t.Options.length ? t.Options : undefined,\n sustainability: t.Sustainability,\n }),\n );\n\n// Timeframe { Date, Timeframes.TimeframeTimeFrame[] (single-or-array) }\n// note: live wire key is TimeframeTimeFrame (capital F), not TimeframeTimeframe\nconst timeframeSchema = z\n .object({\n Date: pnlDateField,\n Timeframes: z\n .object({ TimeframeTimeFrame: pnlArray(timeframeTimeframeSchema) })\n .optional()\n .transform((t) => t?.TimeframeTimeFrame ?? []),\n })\n .transform((t) => ({\n ...stripUndefined({ date: t.Date }),\n timeframes: t.Timeframes,\n }));\n\n// ReasonNoTimeframe { Code, Date, Description, Options({string:...}), Sustainability? }\nconst reasonNoTimeframeSchema = z\n .object({\n Code: z.string().optional(),\n Date: pnlDateField,\n Description: z.string().optional(),\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((r) =>\n stripUndefined({\n code: r.Code,\n date: r.Date,\n description: r.Description,\n options: r.Options.length ? r.Options : undefined,\n sustainability: r.Sustainability,\n }),\n );\n\nexport const timeframeResponseSchema = z\n .object({\n Timeframes: z\n .object({ Timeframe: pnlArray(timeframeSchema) })\n .optional()\n .transform((t) => t?.Timeframe ?? []),\n ReasonNoTimeframes: z\n .object({ ReasonNoTimeframe: pnlArray(reasonNoTimeframeSchema) })\n .optional()\n .transform((r) => r?.ReasonNoTimeframe ?? []),\n })\n .transform((r) => ({\n timeframes: r.Timeframes,\n reasonNoTimeframes: r.ReasonNoTimeframes,\n }));\nexport type TimeframeResponse = z.infer<typeof timeframeResponseSchema>;\n","import type { CountryCode, TimeframeOption } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport { type TimeframeResponse, timeframeResponseSchema } from \"./schema\";\n\nexport interface TimeframeGetInput {\n allowSundaySorting: boolean;\n startDate: Date | string;\n endDate: Date | string;\n countryCode: CountryCode;\n postalCode: string;\n houseNumber: number;\n options: TimeframeOption[];\n houseNrExt?: string;\n city?: string;\n street?: string;\n}\n\nconst asDate = (v: Date | string) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class TimeframeResource extends BaseResource {\n // GET /shipment/v2_1/calculate/timeframes\n get(input: TimeframeGetInput): Promise<TimeframeResponse> {\n return this.call({\n operation: \"timeframeGet\",\n query: {\n AllowSundaySorting: input.allowSundaySorting,\n StartDate: asDate(input.startDate),\n EndDate: asDate(input.endDate),\n CountryCode: input.countryCode,\n PostalCode: input.postalCode,\n HouseNumber: input.houseNumber,\n Options: input.options.join(\",\"),\n HouseNrExt: input.houseNrExt,\n City: input.city,\n Street: input.street,\n },\n responseSchema: timeframeResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { type DecodedLabel, toDecodedLabel } from \"../../core/base64\";\nimport { type PnlDate, parsePnlDate } from \"../../core/codec/dates\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// shipping-status responses are pascalcase, stringify numbers, and use\n// single-object-or-array + single-object wrappers. each schema .transform()s\n// to a clean camelCase output.\n\n// lenient date parse: try parsePnlDate, keep raw string when format is unknown.\n// dd-MM-yyyy[ HH:mm:ss] and iso yyyy-MM-dd are handled; anything else stays raw.\nconst pnlDate = z\n .string()\n .nullish()\n .transform((v): PnlDate | undefined => {\n if (v == null) return undefined;\n try {\n return parsePnlDate(v);\n } catch {\n return v;\n }\n });\n\n// ---------- shared nested schemas ----------\n\nconst customerSchema = z\n .object({\n CustomerCode: z.string().optional(),\n CustomerNumber: z.string().optional(),\n Name: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n customerCode: c.CustomerCode,\n customerNumber: c.CustomerNumber,\n name: c.Name,\n }),\n );\n\nconst dimensionSchema = z\n .object({\n Weight: pnlNum().optional(),\n Height: pnlNum().optional(),\n Length: pnlNum().optional(),\n Width: pnlNum().optional(),\n Volume: pnlNum().optional(),\n })\n .transform((d) =>\n stripUndefined({\n weight: d.Weight,\n height: d.Height,\n length: d.Length,\n width: d.Width,\n volume: d.Volume,\n }),\n );\n\nconst amountSchema = z\n .object({\n RemboursBedrag: z.string().optional(),\n VerzekerdBedrag: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({ remboursBedrag: a.RemboursBedrag, verzekerdBedrag: a.VerzekerdBedrag }),\n );\n\nconst addressSchema = z\n .object({\n FirstName: z.string().optional(),\n LastName: z.string().optional(),\n CompanyName: z.string().optional(),\n DepartmentName: z.string().optional(),\n CountryCode: z.string().optional(),\n Zipcode: z.string().optional(),\n Region: z.string().optional(),\n District: z.string().optional(),\n City: z.string().optional(),\n Street: z.string().optional(),\n HouseNumber: z.string().optional(),\n HouseNumberSuffix: z.string().optional(),\n Building: z.string().optional(),\n Floor: z.string().optional(),\n Remark: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n firstName: a.FirstName,\n lastName: a.LastName,\n companyName: a.CompanyName,\n departmentName: a.DepartmentName,\n countryCode: a.CountryCode,\n zipcode: a.Zipcode,\n region: a.Region,\n district: a.District,\n city: a.City,\n street: a.Street,\n houseNumber: a.HouseNumber,\n houseNumberSuffix: a.HouseNumberSuffix,\n building: a.Building,\n floor: a.Floor,\n remark: a.Remark,\n }),\n );\n\n// codes stay strings; only TimeStamp parses to a date\nconst statusSchema = z\n .object({\n TimeStamp: pnlDate,\n StatusCode: z.string().optional(),\n StatusDescription: z.string().optional(),\n PhaseCode: z.string().optional(),\n PhaseDescription: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n timeStamp: s.TimeStamp,\n statusCode: s.StatusCode,\n statusDescription: s.StatusDescription,\n phaseCode: s.PhaseCode,\n phaseDescription: s.PhaseDescription,\n }),\n );\n\n// Code/LocationCode etc are codes -> keep as strings; only TimeStamp is a date\nconst eventSchema = z\n .object({\n Code: z.string().optional(),\n Description: z.string().optional(),\n DestinationLocationCode: z.string().optional(),\n LocationCode: z.string().optional(),\n RouteCode: z.string().optional(),\n RouteNumber: z.string().optional(),\n TimeStamp: pnlDate,\n })\n .transform((e) =>\n stripUndefined({\n code: e.Code,\n description: e.Description,\n destinationLocationCode: e.DestinationLocationCode,\n locationCode: e.LocationCode,\n routeCode: e.RouteCode,\n routeNumber: e.RouteNumber,\n timeStamp: e.TimeStamp,\n }),\n );\n\n// eta formats unverified -> parse leniently\nconst expectationSchema = z\n .object({ ETAFrom: pnlDate, ETATo: pnlDate })\n .transform((e) => stripUndefined({ etaFrom: e.ETAFrom, etaTo: e.ETATo }));\n\n// ProductOptions is a single-object wrapper { ProductOption: {...} }; unwrap it\nconst productOptionsSchema = z\n .object({\n ProductOption: z\n .object({\n OptionCode: z.string().optional(),\n CharacteristicCode: z.string().optional(),\n })\n .optional(),\n })\n .transform((p) =>\n stripUndefined({\n optionCode: p.ProductOption?.OptionCode,\n characteristicCode: p.ProductOption?.CharacteristicCode,\n }),\n );\n\n// top-level warnings model { Message, Code } (single-object-or-array)\nconst warningSchema = z\n .object({ Message: z.string().optional(), Code: z.string().optional() })\n .transform((w) => stripUndefined({ message: w.Message, code: w.Code }));\n\n// ---------- shipment (current = subset, complete = superset) ----------\n\nconst baseShipmentSchema = z.object({\n MainBarcode: z.string().optional(),\n Barcode: z.string().optional(),\n ShipmentAmount: pnlNum().optional(),\n ShipmentCounter: pnlNum().optional(),\n Customer: customerSchema.optional(),\n ProductCode: z.string().optional(),\n ProductDescription: z.string().optional(),\n Reference: z.string().optional(),\n DeliveryDate: pnlDate,\n Dimension: dimensionSchema.optional(),\n Address: pnlArray(addressSchema),\n ProductOptions: pnlArray(productOptionsSchema),\n Status: statusSchema.optional(),\n});\n\nconst toBaseShipment = (s: z.infer<typeof baseShipmentSchema>) =>\n stripUndefined({\n mainBarcode: s.MainBarcode,\n barcode: s.Barcode,\n shipmentAmount: s.ShipmentAmount,\n shipmentCounter: s.ShipmentCounter,\n customer: s.Customer,\n productCode: s.ProductCode,\n productDescription: s.ProductDescription,\n reference: s.Reference,\n deliveryDate: s.DeliveryDate,\n dimension: s.Dimension,\n addresses: s.Address.length ? s.Address : undefined,\n productOptions: s.ProductOptions.length ? s.ProductOptions : undefined,\n status: s.Status,\n });\n\nconst currentStatusShipmentSchema = baseShipmentSchema.transform((s) => toBaseShipment(s));\n\nconst completeStatusShipmentSchema = baseShipmentSchema\n .extend({\n Amount: amountSchema.optional(),\n Event: pnlArray(eventSchema),\n Expectation: expectationSchema.optional(),\n OldStatus: pnlArray(statusSchema),\n })\n .transform((s) =>\n stripUndefined({\n ...toBaseShipment(s),\n amount: s.Amount,\n events: s.Event.length ? s.Event : undefined,\n expectation: s.Expectation,\n oldStatuses: s.OldStatus.length ? s.OldStatus : undefined,\n }),\n );\n\n// ---------- ShippingstatusResponse (byBarcode / byReference) ----------\n\nexport const shippingStatusResponseSchema = z\n .object({\n CurrentStatus: z.object({ Shipment: currentStatusShipmentSchema }).optional(),\n CompleteStatus: z.object({ Shipment: completeStatusShipmentSchema }).optional(),\n Warnings: pnlArray(warningSchema),\n })\n .transform((r) => ({\n ...stripUndefined({\n currentStatus: r.CurrentStatus?.Shipment,\n completeStatus: r.CompleteStatus?.Shipment,\n }),\n warnings: r.Warnings,\n }));\nexport type ShippingStatusResponse = z.infer<typeof shippingStatusResponseSchema>;\n\n// ---------- signature ----------\n\nconst signatureSchema = z\n .object({\n Barcode: z.string().optional(),\n SignatureDate: pnlDate,\n SignatureImage: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n signatureDate: s.SignatureDate,\n signatureImage: s.SignatureImage ? toDecodedLabel(s.SignatureImage, \"gif\") : undefined,\n }),\n );\n\nexport const signatureResponseSchema = z\n .object({\n Signature: signatureSchema.optional(),\n // signature Warnings is a single-object wrapper { Warning: {...} }; unwrap to a 1-element array\n Warnings: z\n .object({ Warning: pnlArray(warningSchema) })\n .optional()\n .transform((w) => w?.Warning ?? []),\n })\n .transform((r) => ({\n ...stripUndefined({ signature: r.Signature }),\n warnings: r.Warnings,\n }));\nexport type SignatureResponse = z.infer<typeof signatureResponseSchema>;\n\nexport interface SignatureImage extends DecodedLabel {}\n\n// ---------- updated shipments ----------\n\n// distinct wire key: lowercase Timestamp (vs TimeStamp elsewhere)\nconst updatedShipmentStatusSchema = z\n .object({\n Timestamp: pnlDate,\n StatusCode: z.string().optional(),\n StatusDescription: z.string().optional(),\n PhaseCode: z.string().optional(),\n PhaseDescription: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n timestamp: s.Timestamp,\n statusCode: s.StatusCode,\n statusDescription: s.StatusDescription,\n phaseCode: s.PhaseCode,\n phaseDescription: s.PhaseDescription,\n }),\n );\n\nconst updatedShipmentSchema = z\n .object({\n Barcode: z.string().optional(),\n CreationDate: pnlDate,\n CustomerNumber: z.string().optional(),\n CustomerCode: z.string().optional(),\n Status: updatedShipmentStatusSchema.optional(),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n creationDate: s.CreationDate,\n customerNumber: s.CustomerNumber,\n customerCode: s.CustomerCode,\n status: s.Status,\n }),\n );\n\n// response is a list of updated shipments\nexport const updatedShipmentsResponseSchema = pnlArray(updatedShipmentSchema);\nexport type UpdatedShipmentsResponse = z.infer<typeof updatedShipmentsResponseSchema>;\nexport type UpdatedShipment = UpdatedShipmentsResponse[number];\n","import type { StatusLanguage } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport {\n type ShippingStatusResponse,\n type SignatureResponse,\n type UpdatedShipmentsResponse,\n shippingStatusResponseSchema,\n signatureResponseSchema,\n updatedShipmentsResponseSchema,\n} from \"./schema\";\n\nexport interface TrackingOptions {\n // include old statuses (complete status); postnl expects \"true\"/\"false\" string\n detail?: boolean;\n language?: StatusLanguage;\n maxDays?: string;\n}\n\nexport interface TrackingByReferenceOptions extends TrackingOptions {\n customerCode: string;\n customerNumber: string;\n}\n\nexport interface UpdatedShipmentsOptions {\n // [from, to]; emitted as two repeated period query params\n period: [string, string];\n}\n\nexport class TrackingResource extends BaseResource {\n // GET /shipment/v2/status/barcode/{barcode}\n byBarcode(barcode: string, options?: TrackingOptions): Promise<ShippingStatusResponse> {\n return this.call({\n operation: \"trackingByBarcode\",\n pathParams: { barcode },\n query: {\n detail: options?.detail,\n language: options?.language,\n maxDays: options?.maxDays,\n },\n responseSchema: shippingStatusResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/reference/{referenceId}; customerCode + customerNumber required\n byReference(\n referenceId: string,\n options: TrackingByReferenceOptions,\n ): Promise<ShippingStatusResponse> {\n return this.call({\n operation: \"trackingByReference\",\n pathParams: { referenceId },\n query: {\n customerCode: options.customerCode,\n customerNumber: options.customerNumber,\n detail: options.detail,\n language: options.language,\n maxDays: options.maxDays,\n },\n responseSchema: shippingStatusResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/signature/{barcode}\n signature(barcode: string): Promise<SignatureResponse> {\n return this.call({\n operation: \"trackingSignature\",\n pathParams: { barcode },\n responseSchema: signatureResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/{customernumber}/updatedshipments; two repeated period params\n updated(\n customerNumber: string,\n options: UpdatedShipmentsOptions,\n ): Promise<UpdatedShipmentsResponse> {\n return this.call({\n operation: \"trackingUpdated\",\n pathParams: { customernumber: customerNumber },\n query: { period: options.period },\n responseSchema: updatedShipmentsResponseSchema,\n });\n }\n}\n","import type { z } from \"zod\";\nimport { type PostNLClientOptions, resolveConfig } from \"./config\";\nimport { Transport } from \"./core/http\";\nimport type { Family, HttpMethod } from \"./core/types\";\nimport { AddressResource } from \"./resources/address\";\nimport { BarcodeResource } from \"./resources/barcode\";\nimport { CheckoutResource } from \"./resources/checkout\";\nimport { DeliveryDateResource } from \"./resources/delivery-date\";\nimport { LocationResource } from \"./resources/location\";\nimport { ReturnResource } from \"./resources/return\";\nimport { ShippingResource } from \"./resources/shipping\";\nimport { TimeframeResource } from \"./resources/timeframe\";\nimport { TrackingResource } from \"./resources/tracking\";\n\nexport class PostNLClient {\n private readonly transport: Transport;\n readonly barcode: BarcodeResource;\n readonly shipping: ShippingResource;\n readonly return: ReturnResource;\n readonly tracking: TrackingResource;\n readonly deliveryDate: DeliveryDateResource;\n readonly timeframe: TimeframeResource;\n readonly location: LocationResource;\n readonly checkout: CheckoutResource;\n readonly address: AddressResource;\n\n constructor(options: PostNLClientOptions) {\n const config = resolveConfig(options);\n this.transport = new Transport(config);\n this.barcode = new BarcodeResource(this.transport);\n this.shipping = new ShippingResource(this.transport);\n this.return = new ReturnResource(this.transport);\n this.tracking = new TrackingResource(this.transport);\n this.deliveryDate = new DeliveryDateResource(this.transport);\n this.timeframe = new TimeframeResource(this.transport);\n this.location = new LocationResource(this.transport);\n this.checkout = new CheckoutResource(this.transport);\n this.address = new AddressResource(this.transport, config.environment);\n }\n\n // low-level escape hatch for endpoints/params not yet covered\n async request<T>(args: {\n family: Family;\n method: HttpMethod;\n path: string;\n pathParams?: Record<string, string>;\n query?: Record<string, string | string[] | number | boolean | undefined>;\n body?: unknown;\n schema?: z.ZodType<T>;\n }): Promise<T> {\n const raw = await this.transport.send<T>({\n family: args.family,\n method: args.method,\n path: args.path,\n pathParams: args.pathParams,\n query: args.query,\n body: args.body,\n });\n return args.schema ? args.schema.parse(raw) : (raw as T);\n }\n}\n","// legacy productcodedelivery is a free-form string; common codes for convenience.\n// v4 uses product names (server-resolved), no code needed.\nexport const ProductCode = {\n domesticParcel: \"3085\",\n domesticInsured: \"3087\",\n easyReturn: \"4910\",\n} as const;\nexport type ProductCodeValue = (typeof ProductCode)[keyof typeof ProductCode];\n","export const version = \"0.1.0\";\n\nexport { PostNLClient } from \"./client\";\nexport type { PostNLClientOptions } from \"./config\";\nexport {\n PostNLError,\n PostNLValidationError,\n PostNLTimeoutError,\n PostNLApiError,\n PostNLAuthError,\n PostNLRateLimitError,\n PostNLMethodNotAllowedError,\n PostNLBadRequestError,\n PostNLServerError,\n} from \"./core/errors\";\nexport { decodeBase64, labelContentType, toDecodedLabel } from \"./core/base64\";\nexport type { DecodedLabel } from \"./core/base64\";\nexport * from \"./constants/enums\";\nexport * from \"./constants/product\";\n\nexport { BarcodeResource } from \"./resources/barcode\";\nexport { ShippingResource } from \"./resources/shipping\";\nexport { ReturnResource } from \"./resources/return\";\nexport { TrackingResource } from \"./resources/tracking\";\nexport { DeliveryDateResource } from \"./resources/delivery-date\";\nexport type {\n DeliveryDateCalculateInput,\n SentDateInput,\n} from \"./resources/delivery-date\";\nexport type {\n DeliveryDateResponse,\n SentDateResponse,\n} from \"./resources/delivery-date/schema\";\nexport { TimeframeResource } from \"./resources/timeframe\";\nexport type { TimeframeGetInput } from \"./resources/timeframe\";\nexport type { TimeframeResponse } from \"./resources/timeframe/schema\";\nexport { LocationResource } from \"./resources/location\";\nexport type {\n LocationNearestInput,\n LocationNearestByGeocodeInput,\n LocationAreaInput,\n LocationLookupInput,\n} from \"./resources/location\";\nexport type {\n Location,\n LocationsResponse,\n LocationLookupResponse,\n} from \"./resources/location/schema\";\nexport { CheckoutResource } from \"./resources/checkout\";\nexport type {\n CheckoutRequestInput,\n CheckoutCutOffTimeInput,\n CheckoutAddressInput,\n CheckoutResponse,\n} from \"./resources/checkout/schema\";\nexport type {\n TrackingOptions,\n TrackingByReferenceOptions,\n UpdatedShipmentsOptions,\n} from \"./resources/tracking\";\nexport type {\n ShippingStatusResponse,\n SignatureResponse,\n SignatureImage,\n UpdatedShipmentsResponse,\n UpdatedShipment,\n} from \"./resources/tracking/schema\";\nexport type { BarcodeV4Request, BarcodeV4Response } from \"./resources/barcode/schema\";\nexport type { BarcodeLegacyInput } from \"./resources/barcode/legacy\";\nexport type {\n ShipmentV4Request,\n LabellingV4Request,\n ConfirmV4Request,\n ShipmentPostResponse,\n} from \"./resources/shipping/schema\";\nexport type { ReturnGenerateRequest } from \"./resources/return/schema\";\nexport type {\n LabellingRequest,\n LabellingResponse,\n ConfirmingRequest,\n ConfirmingResponse,\n} from \"./resources/shipping/legacy-schema\";\nexport type { LabelLegacyOptions } from \"./resources/shipping/legacy\";\nexport { AddressResource } from \"./resources/address\";\nexport type { AddressCheckInput } from \"./resources/address\";\nexport type { PostalcodeCheckAddress } from \"./resources/address/schema\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/core/errors.ts","../src/core/http.ts","../src/core/endpoints.ts","../src/core/base-resource.ts","../src/core/codec/helpers.ts","../src/core/codec/object.ts","../src/resources/address/schema.ts","../src/resources/address/index.ts","../src/resources/barcode/legacy.ts","../src/resources/barcode/schema.ts","../src/resources/barcode/index.ts","../src/core/codec/dates.ts","../src/core/codec/fields.ts","../src/resources/checkout/schema.ts","../src/resources/checkout/index.ts","../src/resources/delivery-date/schema.ts","../src/resources/delivery-date/index.ts","../src/constants/enums.ts","../src/resources/location/schema.ts","../src/resources/location/index.ts","../src/core/base64.ts","../src/resources/shipping/schema.ts","../src/resources/return/schema.ts","../src/resources/return/index.ts","../src/resources/shipping/legacy-schema.ts","../src/resources/shipping/legacy.ts","../src/resources/shipping/index.ts","../src/resources/timeframe/schema.ts","../src/resources/timeframe/index.ts","../src/resources/tracking/schema.ts","../src/resources/tracking/index.ts","../src/client.ts","../src/constants/product.ts"],"names":["err","e","z","asDateTime","day","asDate","warningSchema","timeframeSchema","addressSchema"],"mappings":"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","file":"index.js","sourcesContent":["import type { Environment, Hooks, HttpMethod, RetryOptions } from \"./core/types\";\n\nexport interface PostNLClientOptions {\n apiKey: string;\n environment?: Environment;\n fetch?: typeof fetch;\n timeoutMs?: number;\n retry?: Partial<RetryOptions>;\n hooks?: Hooks;\n}\n\nexport interface ResolvedConfig {\n apiKey: string;\n environment: Environment;\n baseUrl: string;\n fetch: typeof fetch;\n timeoutMs: number;\n retry: RetryOptions;\n hooks: Hooks;\n}\n\nconst BASE_URLS: Record<Environment, string> = {\n production: \"https://api.postnl.nl\",\n sandbox: \"https://api-sandbox.postnl.nl\",\n};\n\nconst DEFAULT_RETRY: RetryOptions = {\n maxRetries: 3,\n backoffFactor: 2,\n retryStatuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],\n retryMethods: [\"GET\", \"PUT\"] as HttpMethod[],\n};\n\nexport function resolveConfig(opts: PostNLClientOptions): ResolvedConfig {\n if (!opts?.apiKey) throw new Error(\"postnl-client: apiKey is required\");\n const environment = opts.environment ?? \"production\";\n const f = opts.fetch ?? globalThis.fetch;\n if (!f) throw new Error(\"postnl-client: no fetch available; pass options.fetch\");\n return {\n apiKey: opts.apiKey,\n environment,\n baseUrl: BASE_URLS[environment],\n fetch: f,\n timeoutMs: opts.timeoutMs ?? 60_000,\n retry: { ...DEFAULT_RETRY, ...opts.retry },\n hooks: opts.hooks ?? {},\n };\n}\n","// typed error hierarchy + shape-driven parser for postnl's many error envelopes\nexport class PostNLError extends Error {}\n\nexport class PostNLValidationError extends PostNLError {\n constructor(\n message: string,\n readonly issues: unknown,\n ) {\n super(message);\n this.name = \"PostNLValidationError\";\n }\n}\n\nexport class PostNLTimeoutError extends PostNLError {\n constructor(readonly timeoutMs: number) {\n super(`postnl request timed out after ${timeoutMs}ms`);\n this.name = \"PostNLTimeoutError\";\n }\n}\n\nexport class PostNLApiError extends PostNLError {\n constructor(\n readonly status: number,\n message: string,\n readonly code: string | undefined,\n readonly detail: unknown,\n readonly raw: unknown,\n ) {\n super(message);\n this.name = \"PostNLApiError\";\n }\n}\n\nexport class PostNLAuthError extends PostNLApiError {\n name = \"PostNLAuthError\";\n}\nexport class PostNLRateLimitError extends PostNLApiError {\n retryAfter?: number;\n name = \"PostNLRateLimitError\";\n}\nexport class PostNLMethodNotAllowedError extends PostNLApiError {\n name = \"PostNLMethodNotAllowedError\";\n}\nexport class PostNLBadRequestError extends PostNLApiError {\n name = \"PostNLBadRequestError\";\n}\nexport class PostNLServerError extends PostNLApiError {\n name = \"PostNLServerError\";\n}\n\ninterface Parsed {\n message: string;\n code?: string | undefined;\n detail: unknown;\n}\n\nfunction extract(body: unknown): Parsed {\n const b = body as Record<string, unknown> | null;\n if (b && typeof b === \"object\") {\n // fault envelope\n const fault = b.fault as { faultstring?: string; detail?: { errorcode?: string } } | undefined;\n if (fault)\n return {\n message: fault.faultstring ?? \"fault\",\n code: fault.detail?.errorcode,\n detail: fault,\n };\n // legacy InvalidRequest / cif inline error (live api uses ErrorMessage, sdk docs said ErrorDescription)\n const inv = b.Error as\n | { ErrorCode?: string; ErrorMessage?: string; ErrorDescription?: string }\n | undefined;\n // fire on code OR message so a code-only error still carries its code (matches inlineApiError)\n if (inv && (inv.ErrorMessage || inv.ErrorDescription || inv.ErrorCode))\n return {\n message: inv.ErrorMessage ?? inv.ErrorDescription ?? \"error\",\n code: inv.ErrorCode,\n detail: b,\n };\n // error lists: barcode {ErrorMsg,ErrorNumber} | labelling {Error,Code} | postalcode {title,detail}\n const list = (b.errors ?? b.Errors) as unknown;\n if (Array.isArray(list) && list.length) {\n const f = list[0] as Record<string, unknown>;\n // prefer the specific Description (labelling puts the actionable detail there, Error is generic)\n const msg = (f.ErrorMsg ??\n f.Description ??\n f.Error ??\n f.title ??\n f.detail ??\n \"error\") as string;\n const code = (f.ErrorNumber ?? f.Code ?? f.status) as string | undefined;\n return { message: String(msg), code: code != null ? String(code) : undefined, detail: list };\n }\n // v4 rfc9457\n if (typeof b.title === \"string\")\n return { message: b.title, code: b.type as string | undefined, detail: b };\n // gateway\n if (typeof b.message === \"string\") return { message: b.message, detail: b };\n }\n return { message: `postnl request failed (${typeof body})`, detail: body };\n}\n\nexport function parseError(\n status: number,\n body: unknown,\n headers?: Record<string, string>,\n): PostNLApiError {\n const { message, code, detail } = extract(body);\n if (status === 401) return new PostNLAuthError(status, message, code, detail, body);\n if (status === 429) {\n const err = new PostNLRateLimitError(status, message, code, detail, body);\n const ra = Number(headers?.[\"retry-after\"]);\n if (Number.isFinite(ra)) err.retryAfter = ra;\n return err;\n }\n if (status === 405) return new PostNLMethodNotAllowedError(status, message, code, detail, body);\n if (status >= 500) return new PostNLServerError(status, message, code, detail, body);\n if (status === 400) return new PostNLBadRequestError(status, message, code, detail, body);\n return new PostNLApiError(status, message, code, detail, body);\n}\n\n// some delivery-options gets return http 200 with an inline {Error:{ErrorCode,ErrorMessage}} body\n// instead of an error status; surface it instead of letting the success schema swallow it\nexport function inlineApiError(body: unknown): PostNLApiError | undefined {\n const b = body as Record<string, unknown> | null;\n const err =\n b && typeof b === \"object\" ? (b.Error as { ErrorCode?: unknown } | undefined) : undefined;\n if (err && typeof err === \"object\" && err.ErrorCode != null) {\n const { message, code, detail } = extract(body);\n return new PostNLApiError(200, message, code, detail, body);\n }\n return undefined;\n}\n","import type { ResolvedConfig } from \"../config\";\nimport { PostNLApiError, PostNLTimeoutError, parseError } from \"./errors\";\nimport type { Family, HttpMethod, RequestContext } from \"./types\";\n\nexport interface SendArgs {\n family: Family;\n method: HttpMethod;\n path: string; // may contain {param} tokens\n pathParams?: Record<string, string> | undefined;\n query?: Record<string, string | string[] | number | boolean | undefined> | undefined;\n body?: unknown;\n}\n\nconst sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));\n\nexport class Transport {\n constructor(private readonly cfg: ResolvedConfig) {}\n\n private buildUrl(args: SendArgs): string {\n let path = args.path;\n for (const [k, v] of Object.entries(args.pathParams ?? {})) {\n path = path.replace(`{${k}}`, encodeURIComponent(v));\n }\n const url = new URL(this.cfg.baseUrl + path);\n for (const [k, v] of Object.entries(args.query ?? {})) {\n if (v === undefined) continue;\n if (Array.isArray(v)) for (const item of v) url.searchParams.append(k, String(item));\n else url.searchParams.append(k, String(v));\n }\n return url.toString();\n }\n\n async send<T = unknown>(args: SendArgs): Promise<T> {\n const url = this.buildUrl(args);\n const headers: Record<string, string> = { apikey: this.cfg.apiKey, accept: \"application/json\" };\n if (args.body !== undefined) headers[\"content-type\"] = \"application/json\";\n const ctx: RequestContext = {\n family: args.family,\n method: args.method,\n url,\n headers,\n body: args.body,\n };\n await this.cfg.hooks.onRequest?.(ctx);\n\n const canRetry = this.cfg.retry.retryMethods.includes(args.method);\n let attempt = 0;\n while (true) {\n const controller = new AbortController();\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n controller.abort();\n }, this.cfg.timeoutMs);\n try {\n const res = await this.cfg.fetch(url, {\n method: args.method,\n headers,\n body: args.body !== undefined ? JSON.stringify(args.body) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n const text = await res.text();\n const headerObj = Object.fromEntries(res.headers.entries());\n let body: unknown;\n try {\n body = text ? JSON.parse(text) : undefined;\n } catch {\n // non-json body: route through error parser for non-2xx, else fail loudly\n if (!res.ok) {\n const err = parseError(res.status, text, headerObj);\n await this.cfg.hooks.onError?.(err);\n throw err;\n }\n const err = new PostNLApiError(\n res.status,\n \"invalid json response\",\n undefined,\n undefined,\n text,\n );\n await this.cfg.hooks.onError?.(err);\n throw err;\n }\n if (res.ok) {\n await this.cfg.hooks.onResponse?.({ request: ctx, status: res.status, body });\n return body as T;\n }\n if (\n canRetry &&\n this.cfg.retry.retryStatuses.includes(res.status) &&\n attempt < this.cfg.retry.maxRetries\n ) {\n attempt++;\n await sleep(this.retryDelay(attempt, res.status, headerObj));\n continue;\n }\n const err = parseError(res.status, body, headerObj);\n await this.cfg.hooks.onError?.(err);\n throw err;\n } catch (e) {\n clearTimeout(timer);\n // a PostNLApiError thrown above is already final; re-throw unchanged\n if (e instanceof PostNLApiError) throw e;\n if (canRetry && this.isRetryable(e) && attempt < this.cfg.retry.maxRetries) {\n attempt++;\n await sleep(this.cfg.retry.backoffFactor * 2 ** (attempt - 1) * 100);\n continue;\n }\n // any abort here is our internal timeout (no caller signal yet)\n const surfaced = timedOut ? new PostNLTimeoutError(this.cfg.timeoutMs) : e;\n await this.cfg.hooks.onError?.(surfaced);\n throw surfaced;\n }\n }\n }\n\n private retryDelay(attempt: number, status: number, headers: Record<string, string>): number {\n if (status === 429) {\n const ra = Number(headers[\"retry-after\"]);\n if (Number.isFinite(ra)) return ra * 1000;\n }\n return this.cfg.retry.backoffFactor * 2 ** (attempt - 1) * 100;\n }\n\n // only retry genuine network failures: our timeout abort, or a fetch\n // network-level TypeError. bad-url/bad-init TypeErrors should not retry.\n private isRetryable(e: unknown): boolean {\n if ((e as { name?: string })?.name === \"AbortError\") return true;\n if (!(e instanceof TypeError)) return false;\n const msg = `${e.message} ${String((e as { cause?: unknown }).cause ?? \"\")}`.toLowerCase();\n return /fetch|network|connect|econn|enotfound|socket|timeout|terminated/.test(msg);\n }\n}\n","import type { Family, HttpMethod } from \"./types\";\n\nexport interface Endpoint {\n family: Family;\n method: HttpMethod;\n path: string;\n}\nconst e = (family: Family, method: HttpMethod, path: string): Endpoint => ({\n family,\n method,\n path,\n});\n\nexport const ENDPOINTS = {\n barcodeV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/barcode\"),\n shippingCreate: e(\"v4\", \"POST\", \"/shipment/delivery/v4/labelconfirm\"),\n shippingLabelV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/label\"),\n shippingConfirmV4: e(\"v4\", \"POST\", \"/shipment/delivery/v4/confirm\"),\n returnGenerate: e(\"v4\", \"POST\", \"/shipment/delivery/v4/return/generate\"),\n barcodeLegacy: e(\"legacy\", \"GET\", \"/shipment/v1_1/barcode\"),\n shippingLabelLegacy: e(\"legacy\", \"POST\", \"/shipment/v2_2/label\"),\n shippingConfirmLegacy: e(\"legacy\", \"POST\", \"/shipment/v2/confirm\"),\n trackingByBarcode: e(\"legacy\", \"GET\", \"/shipment/v2/status/barcode/{barcode}\"),\n trackingByReference: e(\"legacy\", \"GET\", \"/shipment/v2/status/reference/{referenceId}\"),\n trackingSignature: e(\"legacy\", \"GET\", \"/shipment/v2/status/signature/{barcode}\"),\n trackingUpdated: e(\"legacy\", \"GET\", \"/shipment/v2/status/{customernumber}/updatedshipments\"),\n deliveryDateCalculate: e(\"legacy\", \"GET\", \"/shipment/v2_2/calculate/date/delivery\"),\n deliveryDateSent: e(\"legacy\", \"GET\", \"/shipment/v2_2/calculate/date/shipping\"),\n timeframeGet: e(\"legacy\", \"GET\", \"/shipment/v2_1/calculate/timeframes\"),\n locationNearest: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/nearest\"),\n locationNearestByGeocode: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/nearest/geocode\"),\n locationArea: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/area\"),\n locationLookup: e(\"legacy\", \"GET\", \"/shipment/v2_1/locations/lookup\"),\n checkoutGet: e(\"legacy\", \"POST\", \"/shipment/v1/checkout\"),\n addressCheck: e(\"legacy\", \"GET\", \"/shipment/checkout/v1/postalcodecheck\"),\n} as const satisfies Record<string, Endpoint>;\n\nexport type OperationKey = keyof typeof ENDPOINTS;\n","import type { z } from \"zod\";\nimport { ENDPOINTS, type OperationKey } from \"./endpoints\";\nimport { PostNLValidationError, inlineApiError } from \"./errors\";\nimport type { Transport } from \"./http\";\n\nexport interface CallArgs<TReq, TRes> {\n operation: OperationKey;\n pathParams?: Record<string, string>;\n query?: Record<string, string | string[] | number | boolean | undefined>;\n input?: TReq;\n requestSchema?: z.ZodType<unknown, z.ZodTypeDef, TReq>;\n // input is unknown wire json; output is the cleaned TRes (schemas may transform/default)\n responseSchema: z.ZodType<TRes, z.ZodTypeDef, unknown>;\n}\n\nexport abstract class BaseResource {\n constructor(protected readonly transport: Transport) {}\n\n protected async call<TReq, TRes>(args: CallArgs<TReq, TRes>): Promise<TRes> {\n const ep = ENDPOINTS[args.operation];\n let body: unknown;\n if (args.requestSchema && args.input !== undefined) {\n const parsed = args.requestSchema.safeParse(args.input);\n if (!parsed.success) throw new PostNLValidationError(\"invalid request\", parsed.error.issues);\n body = parsed.data;\n } else {\n body = args.input;\n }\n const raw = await this.transport.send({\n family: ep.family,\n method: ep.method,\n path: ep.path,\n pathParams: args.pathParams,\n query: args.query,\n body: ep.method === \"GET\" ? undefined : body,\n });\n const inline = inlineApiError(raw);\n if (inline) throw inline;\n const out = args.responseSchema.safeParse(raw);\n if (!out.success) throw new PostNLValidationError(\"invalid response\", out.error.issues);\n return out.data;\n }\n}\n","import { z } from \"zod\";\n\n// accepts T | T[] | {string:T[]} | undefined -> T[]\nexport function pnlArray<T extends z.ZodTypeAny>(inner: T) {\n return z.preprocess((v) => {\n if (v == null) return [];\n if (Array.isArray(v)) return v;\n if (typeof v === \"object\" && v !== null && \"string\" in v) {\n const wrapped = (v as { string: unknown }).string;\n return Array.isArray(wrapped) ? wrapped : [wrapped];\n }\n return [v];\n }, z.array(inner));\n}\n\n// accepts {string:T} | T -> T\nexport function pnlStringWrapped<T extends z.ZodTypeAny>(inner: T) {\n return z.preprocess((v) => {\n if (v != null && typeof v === \"object\" && \"string\" in v) {\n return (v as { string: unknown }).string;\n }\n return v;\n }, inner);\n}\n\n// coerce stringified scalars from quirky response clusters\nexport function pnlNum() {\n return z.preprocess(\n (v) => (typeof v === \"string\" && v.trim() !== \"\" ? Number(v) : v),\n z.number(),\n );\n}\n\nexport function pnlBool() {\n return z.preprocess((v) => (typeof v === \"string\" ? v.toLowerCase() === \"true\" : v), z.boolean());\n}\n","// drops undefined keys so output types model them as optional (matches stripped runtime shape)\nexport const stripUndefined = <T extends Record<string, unknown>>(\n obj: T,\n): { [K in keyof T]?: Exclude<T[K], undefined> } => {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (v !== undefined) out[k] = v;\n }\n return out as { [K in keyof T]?: Exclude<T[K], undefined> };\n};\n","import { z } from \"zod\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// PostalcodeCheckAddress: already camelCase wire; houseNumber int (pnlNum defensive), formattedAddress string[]\nexport const postalcodeCheckAddressSchema = z\n .object({\n city: z.string().optional(),\n postalCode: z.string().optional(),\n streetName: z.string().optional(),\n houseNumber: pnlNum().optional(),\n houseNumberAddition: z.string().optional(),\n formattedAddress: pnlArray(z.string()).optional(),\n })\n .transform((a) =>\n stripUndefined({\n city: a.city,\n postalCode: a.postalCode,\n streetName: a.streetName,\n houseNumber: a.houseNumber,\n houseNumberAddition: a.houseNumberAddition,\n formattedAddress: a.formattedAddress?.length ? a.formattedAddress : undefined,\n }),\n );\n\nexport type PostalcodeCheckAddress = z.infer<typeof postalcodeCheckAddressSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { PostNLError } from \"../../core/errors\";\nimport type { Transport } from \"../../core/http\";\nimport type { Environment } from \"../../core/types\";\nimport { type PostalcodeCheckAddress, postalcodeCheckAddressSchema } from \"./schema\";\n\nexport interface AddressCheckInput {\n postalCode: string;\n houseNumber: string | number;\n houseNumberAddition?: string;\n}\n\n// production-only endpoint; sandbox guarded before any fetch\nexport class AddressResource extends BaseResource {\n constructor(\n transport: Transport,\n private readonly environment: Environment,\n ) {\n super(transport);\n }\n\n // GET /shipment/checkout/v1/postalcodecheck\n check(input: AddressCheckInput): Promise<PostalcodeCheckAddress> {\n if (this.environment === \"sandbox\") {\n return Promise.reject(\n new PostNLError(\"address.check is production-only and not available on sandbox\"),\n );\n }\n return this.call({\n operation: \"addressCheck\",\n query: {\n postalcode: input.postalCode,\n housenumber: String(input.houseNumber),\n housenumberaddition: input.houseNumberAddition,\n },\n responseSchema: postalcodeCheckAddressSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport type { BarcodeType } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\n\n// legacy barcode is GET with query params; response BarcodeResponse { Barcode }\nconst responseSchema = z.object({ Barcode: z.string() }).transform((r) => ({ barcode: r.Barcode }));\n\nexport interface BarcodeLegacyInput {\n customerCode: string;\n customerNumber: string;\n type: BarcodeType;\n serie?: string;\n range?: string;\n}\n\nexport class BarcodeLegacyResource extends BaseResource {\n generate(input: BarcodeLegacyInput): Promise<{ barcode: string }> {\n return this.call({\n operation: \"barcodeLegacy\",\n query: {\n CustomerCode: input.customerCode,\n CustomerNumber: input.customerNumber,\n Type: input.type,\n Serie: input.serie,\n Range: input.range,\n },\n responseSchema,\n });\n }\n}\n","import { z } from \"zod\";\n\n// request: mirror sdk Barcode model (camelCase, native types)\nexport const barcodeV4RequestSchema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n serieStart: z.string().default(\"000000000\"),\n serieEnd: z.string().default(\"999999999\"),\n numberOfBarcodes: z.number().int().min(1).default(1),\n});\nexport type BarcodeV4Request = z.input<typeof barcodeV4RequestSchema>;\n\n// response: BarcodePostResponse { barcodes: string[] }\nexport const barcodeV4ResponseSchema = z.object({\n barcodes: z.array(z.string()).default([]),\n});\nexport type BarcodeV4Response = z.infer<typeof barcodeV4ResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { BarcodeLegacyResource } from \"./legacy\";\nimport {\n type BarcodeV4Request,\n type BarcodeV4Response,\n barcodeV4RequestSchema,\n barcodeV4ResponseSchema,\n} from \"./schema\";\n\nexport class BarcodeResource extends BaseResource {\n // legacy barcode generation (GET /shipment/v1_1/barcode)\n readonly legacy = new BarcodeLegacyResource(this.transport);\n\n // v4 server-side barcode generation\n generate(input: BarcodeV4Request): Promise<BarcodeV4Response> {\n return this.call({\n operation: \"barcodeV4\",\n input,\n requestSchema: barcodeV4RequestSchema,\n responseSchema: barcodeV4ResponseSchema,\n });\n }\n}\n","// postnl date <-> Date. handles dd-MM-yyyy[ HH:mm:ss] and iso yyyy-MM-dd.\n// parsePnlDate/formatDate operate in LOCAL time (postnl dates are nl-local).\n// lenient postnl date: a parsed Date or the raw wire string when format is unknown\nexport type PnlDate = Date | string;\n\nconst pad = (n: number) => String(n).padStart(2, \"0\");\nconst num = (v: string | undefined) => Number(v ?? 0);\n\nconst ISO = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst NL_DATE = /^\\d{2}-\\d{2}-\\d{4}$/;\nconst NL_DATETIME = /^\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2}:\\d{2}$/;\n\nexport function parsePnlDate(input: string): Date {\n const trimmed = input.trim();\n const [datePart = \"\", timePart] = trimmed.split(\" \");\n let y: number;\n let mo: number;\n let d: number;\n if (ISO.test(trimmed)) {\n const [yy, mm, dd] = datePart.split(\"-\");\n y = num(yy);\n mo = num(mm);\n d = num(dd);\n } else if (NL_DATE.test(trimmed) || NL_DATETIME.test(trimmed)) {\n const [dd, mm, yy] = datePart.split(\"-\");\n y = num(yy);\n mo = num(mm);\n d = num(dd);\n } else {\n throw new Error(`invalid postnl date: ${input}`);\n }\n const [hh, mi, ss] = (timePart ?? \"00:00:00\").split(\":\");\n return new Date(y, mo - 1, d, num(hh), num(mi), num(ss));\n}\n\nexport function formatDate(date: Date, kind: \"date\" | \"datetime\"): string {\n const d = `${pad(date.getDate())}-${pad(date.getMonth() + 1)}-${date.getFullYear()}`;\n if (kind === \"date\") return d;\n return `${d} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n}\n\nexport function formatIsoDate(date: Date): string {\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;\n}\n","import { z } from \"zod\";\nimport { parsePnlDate } from \"./dates\";\nimport { stripUndefined } from \"./object\";\n\n// optional dd-MM-yyyy response date -> Date (null-tolerant)\nexport const pnlDateField = z\n .string()\n .optional()\n .transform((v) => (v == null ? undefined : parsePnlDate(v)));\n\n// sustainability { Code, Description } -> { code, description }\nexport const sustainabilitySchema = z\n .object({ Code: z.string().optional(), Description: z.string().optional() })\n .transform((s) => stripUndefined({ code: s.Code, description: s.Description }));\n","import { z } from \"zod\";\nimport type {\n AddressType,\n CheckoutCutOffDay,\n CheckoutCutOffType,\n CheckoutOption,\n CountryCode,\n} from \"../../constants/enums\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// ---------- request (camelCase -> PascalCase) ----------\n\nexport interface CheckoutCutOffTimeInput {\n day: CheckoutCutOffDay;\n available?: boolean;\n type?: CheckoutCutOffType;\n time?: string;\n}\n\nexport interface CheckoutAddressInput {\n addressType: AddressType;\n houseNr: number;\n zipcode: string;\n countrycode: CountryCode;\n street?: string;\n houseNrExt?: string;\n city?: string;\n}\n\nexport interface CheckoutRequestInput {\n orderDate: Date | string;\n cutOffTimes: CheckoutCutOffTimeInput[];\n options: readonly CheckoutOption[];\n locations: number;\n days: number;\n addresses: CheckoutAddressInput[];\n shippingDuration?: number;\n holidaySorting?: boolean;\n}\n\nexport function toCheckoutRequestBody(input: CheckoutRequestInput, orderDate: string) {\n return stripUndefined({\n OrderDate: orderDate,\n CutOffTimes: input.cutOffTimes.map((c) =>\n stripUndefined({ Day: c.day, Available: c.available, Type: c.type, Time: c.time }),\n ),\n Options: [...input.options],\n Locations: input.locations,\n Days: input.days,\n Addresses: input.addresses.map((a) =>\n stripUndefined({\n AddressType: a.addressType,\n HouseNr: a.houseNr,\n Zipcode: a.zipcode,\n Countrycode: a.countrycode,\n Street: a.street,\n HouseNrExt: a.houseNrExt,\n City: a.city,\n }),\n ),\n ShippingDuration: input.shippingDuration,\n HolidaySorting: input.holidaySorting,\n });\n}\n\n// ---------- response ----------\n\n// CheckoutTimeFrame { From, To, Options(plain array), ShippingDate, Sustainability? }\nconst timeframeSchema = z\n .object({\n From: z.string().optional(),\n To: z.string().optional(),\n Options: pnlArray(z.string()),\n ShippingDate: pnlDateField,\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((t) =>\n stripUndefined({\n from: t.From,\n to: t.To,\n options: t.Options.length ? t.Options : undefined,\n shippingDate: t.ShippingDate,\n sustainability: t.Sustainability,\n }),\n );\n\nconst deliveryOptionSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Timeframe: pnlArray(timeframeSchema),\n })\n .transform((d) => ({\n ...stripUndefined({ deliveryDate: d.DeliveryDate }),\n timeframe: d.Timeframe,\n }));\n\nconst pickupAddressSchema = z\n .object({\n Street: z.string().optional(),\n Zipcode: z.string().optional(),\n HouseNr: pnlNum().optional(),\n HouseNrExt: z.string().optional(),\n Countrycode: z.string().optional(),\n CompanyName: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n street: a.Street,\n zipcode: a.Zipcode,\n houseNr: a.HouseNr,\n houseNrExt: a.HouseNrExt,\n countrycode: a.Countrycode,\n companyName: a.CompanyName,\n }),\n );\n\n// OpeningHoursPerDay { From, To }\nconst openingHoursPerDaySchema = z\n .object({ From: z.string().optional(), To: z.string().optional() })\n .transform((d) => stripUndefined({ from: d.From, to: d.To }));\n\nconst day = openingHoursPerDaySchema.optional();\n\nconst pickupOpeningHoursSchema = z\n .object({\n Monday: day,\n Tuesday: day,\n Wednesday: day,\n Thursday: day,\n Friday: day,\n Saturday: day,\n Sunday: day,\n })\n .transform((o) =>\n stripUndefined({\n monday: o.Monday,\n tuesday: o.Tuesday,\n wednesday: o.Wednesday,\n thursday: o.Thursday,\n friday: o.Friday,\n saturday: o.Saturday,\n sunday: o.Sunday,\n }),\n );\n\n// CheckoutLocation { Address, PickupTime, OpeningHours, Distance(int), LocationCode(str), PartnerID }\nconst checkoutLocationSchema = z\n .object({\n Address: pickupAddressSchema.optional(),\n PickupTime: z.string().optional(),\n OpeningHours: pickupOpeningHoursSchema.optional(),\n Distance: pnlNum().optional(),\n LocationCode: z.string().optional(),\n PartnerID: z.string().optional(),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((l) =>\n stripUndefined({\n address: l.Address,\n pickupTime: l.PickupTime,\n openingHours: l.OpeningHours,\n distance: l.Distance,\n locationCode: l.LocationCode,\n partnerId: l.PartnerID,\n sustainability: l.Sustainability,\n }),\n );\n\nconst pickupOptionSchema = z\n .object({\n PickupDate: pnlDateField,\n ShippingDate: pnlDateField,\n Option: z.string().optional(),\n Locations: pnlArray(checkoutLocationSchema),\n })\n .transform((p) => ({\n ...stripUndefined({\n pickupDate: p.PickupDate,\n shippingDate: p.ShippingDate,\n option: p.Option,\n }),\n locations: p.Locations,\n }));\n\n// CheckoutWarning { DeliveryDate, Code, Description, Options(plain string) }\nconst warningSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Code: z.string().optional(),\n Description: z.string().optional(),\n Options: z.string().optional(),\n })\n .transform((w) =>\n stripUndefined({\n deliveryDate: w.DeliveryDate,\n code: w.Code,\n description: w.Description,\n options: w.Options,\n }),\n );\n\nexport const checkoutResponseSchema = z\n .object({\n DeliveryOptions: pnlArray(deliveryOptionSchema),\n PickupOptions: pnlArray(pickupOptionSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((r) => ({\n deliveryOptions: r.DeliveryOptions,\n pickupOptions: r.PickupOptions,\n warnings: r.Warnings,\n }));\nexport type CheckoutResponse = z.infer<typeof checkoutResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type CheckoutRequestInput,\n type CheckoutResponse,\n checkoutResponseSchema,\n toCheckoutRequestBody,\n} from \"./schema\";\n\nconst asDateTime = (v: Date | string) => (v instanceof Date ? formatDate(v, \"datetime\") : v);\n\nexport class CheckoutResource extends BaseResource {\n // POST /shipment/v1/checkout\n get(input: CheckoutRequestInput): Promise<CheckoutResponse> {\n return this.call({\n operation: \"checkoutGet\",\n input: toCheckoutRequestBody(input, asDateTime(input.orderDate)),\n responseSchema: checkoutResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// Options is the {string: value} | {string: [...]} wrapper; pnlArray handles both -> string[]\nexport const deliveryDateResponseSchema = z\n .object({\n DeliveryDate: pnlDateField,\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((r) =>\n stripUndefined({\n deliveryDate: r.DeliveryDate,\n options: r.Options.length ? r.Options : undefined,\n sustainability: r.Sustainability,\n }),\n );\nexport type DeliveryDateResponse = z.infer<typeof deliveryDateResponseSchema>;\n\nexport const sentDateResponseSchema = z\n .object({\n SentDate: pnlDateField,\n Options: pnlArray(z.string()),\n })\n .transform((r) =>\n stripUndefined({\n sentDate: r.SentDate,\n options: r.Options.length ? r.Options : undefined,\n }),\n );\nexport type SentDateResponse = z.infer<typeof sentDateResponseSchema>;\n","import type { CountryCode, DeliverydateOption, OriginCountryCode } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type DeliveryDateResponse,\n type SentDateResponse,\n deliveryDateResponseSchema,\n sentDateResponseSchema,\n} from \"./schema\";\n\ntype Weekday = \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\" | \"Sunday\";\nconst WEEKDAYS: Weekday[] = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\n// per-weekday cutoff/availability overrides; keys lowercased weekday names\ntype WeekdayCutOff = Partial<Record<`cutOffTime${Weekday}`, string>>;\ntype WeekdayAvailable = Partial<Record<`available${Weekday}`, boolean>>;\n\nexport interface DeliveryDateCalculateInput extends WeekdayCutOff, WeekdayAvailable {\n shippingDate: Date | string;\n shippingDuration: number;\n cutOffTime: string;\n postalCode: string;\n countryCode: CountryCode;\n options: DeliverydateOption[];\n originCountryCode?: OriginCountryCode;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNrExt?: string;\n}\n\nexport interface SentDateInput {\n deliveryDate: Date | string;\n shippingDuration: number;\n postalCode: string;\n countryCode: CountryCode;\n originCountryCode?: OriginCountryCode;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNrExt?: string;\n}\n\nconst asDateTime = (v: Date | string) => (v instanceof Date ? formatDate(v, \"datetime\") : v);\nconst asDate = (v: Date | string) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class DeliveryDateResource extends BaseResource {\n // GET /shipment/v2_2/calculate/date/delivery\n calculate(input: DeliveryDateCalculateInput): Promise<DeliveryDateResponse> {\n const query: Record<string, string | number | boolean | undefined> = {\n ShippingDate: asDateTime(input.shippingDate),\n ShippingDuration: input.shippingDuration,\n CutOffTime: input.cutOffTime,\n PostalCode: input.postalCode,\n CountryCode: input.countryCode,\n Options: input.options.join(\",\"),\n OriginCountryCode: input.originCountryCode ?? \"NL\",\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNrExt: input.houseNrExt,\n };\n for (const day of WEEKDAYS) {\n query[`CutOffTime${day}`] = input[`cutOffTime${day}`];\n query[`Available${day}`] = input[`available${day}`];\n }\n return this.call({\n operation: \"deliveryDateCalculate\",\n query,\n responseSchema: deliveryDateResponseSchema,\n });\n }\n\n // GET /shipment/v2_2/calculate/date/shipping\n sentDate(input: SentDateInput): Promise<SentDateResponse> {\n return this.call({\n operation: \"deliveryDateSent\",\n query: {\n DeliveryDate: asDate(input.deliveryDate),\n ShippingDuration: input.shippingDuration,\n PostalCode: input.postalCode,\n CountryCode: input.countryCode,\n OriginCountryCode: input.originCountryCode ?? \"NL\",\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNrExt: input.houseNrExt,\n },\n responseSchema: sentDateResponseSchema,\n });\n }\n}\n","// wire enum values mirrored 1:1 from the official sdk *_enum.py files\nexport const BarcodeType = [\"2S\", \"3S\", \"CC\", \"CP\", \"CD\", \"CF\", \"LA\", \"RI\", \"UE\"] as const;\nexport type BarcodeType = (typeof BarcodeType)[number];\n\nexport const ShipmentTypeV4 = [\n \"parcel\",\n \"letterbox\",\n \"packet\",\n \"parcelnonstandard\",\n \"letter\",\n] as const;\nexport type ShipmentTypeV4 = (typeof ShipmentTypeV4)[number];\n\nexport const ReturnShipmentTypeV4 = [\"parcel\", \"letterbox\", \"packet\", \"parcelnonstandard\"] as const;\nexport type ReturnShipmentTypeV4 = (typeof ReturnShipmentTypeV4)[number];\n\nexport const ReceiverType = [\"business\", \"consumer\"] as const;\nexport type ReceiverType = (typeof ReceiverType)[number];\n\nexport const OutputType = [\"zpl\", \"pdf\", \"gif\", \"jpg\", \"png\"] as const;\nexport type OutputType = (typeof OutputType)[number];\n\nexport const ReturnOutputType = [\"pdf\", \"gif\", \"jpg\", \"png\"] as const;\nexport type ReturnOutputType = (typeof ReturnOutputType)[number];\n\nexport const PageOrientation = [\"portrait\", \"landscape\"] as const;\nexport type PageOrientation = (typeof PageOrientation)[number];\n\nexport const Resolution = [200, 300, 600] as const;\nexport type Resolution = (typeof Resolution)[number];\n\nexport const MergeType = [\"singlepdf\", \"pdfa6toa4\"] as const;\nexport type MergeType = (typeof MergeType)[number];\n\nexport const Positioning = [\"topleft\", \"topright\", \"bottomleft\", \"bottomright\"] as const;\nexport type Positioning = (typeof Positioning)[number];\n\nexport const PrintMethod = [\"consumerPrint\", \"retailPrint\"] as const;\nexport type PrintMethod = (typeof PrintMethod)[number];\n\nexport const LabelType = [\"labelinthebox\"] as const;\nexport type LabelType = (typeof LabelType)[number];\n\nexport const ReturnPeriod = [35, 100, 200, 365] as const;\nexport type ReturnPeriod = (typeof ReturnPeriod)[number];\n\nexport const ReturnPeriodV4 = [20, 35] as const;\nexport type ReturnPeriodV4 = (typeof ReturnPeriodV4)[number];\n\nexport const Bundle = [\"track_trace\", \"insured\", \"insured_plus\"] as const;\nexport type Bundle = (typeof Bundle)[number];\n\nexport const Language = [\"NL\", \"FR\", \"EN\"] as const;\nexport type Language = (typeof Language)[number];\n\nexport const StatusLanguage = [\"NL\", \"EN\", \"CN\", \"DE\", \"FR\"] as const;\nexport type StatusLanguage = (typeof StatusLanguage)[number];\n\nexport const MinimalAgeCheck = [\"16+\", \"18+\"] as const;\nexport type MinimalAgeCheck = (typeof MinimalAgeCheck)[number];\n\nexport const DeliveryConfirmation = [\"signature\", \"deliverycode\"] as const;\nexport type DeliveryConfirmation = (typeof DeliveryConfirmation)[number];\n\nexport const GuaranteedBefore = [\"10:00\", \"12:00\", \"17:00\"] as const;\nexport type GuaranteedBefore = (typeof GuaranteedBefore)[number];\n\nexport const Duration = [\"24hours\", \"non24hours\"] as const;\nexport type Duration = (typeof Duration)[number];\n\nexport const ConsolidationMode = [\"none\", \"bulk\"] as const;\nexport type ConsolidationMode = (typeof ConsolidationMode)[number];\n\nexport const NetworkType = [\"commercial\", \"postal\"] as const;\nexport type NetworkType = (typeof NetworkType)[number];\n\nexport const AssociatedDocumentType = [\"certificate\", \"invoice\", \"license\"] as const;\nexport type AssociatedDocumentType = (typeof AssociatedDocumentType)[number];\n\nexport const CountryCode = [\"NL\", \"BE\"] as const;\nexport type CountryCode = (typeof CountryCode)[number];\n\nexport const OriginCountryCode = [\"NL\", \"BE\"] as const;\nexport type OriginCountryCode = (typeof OriginCountryCode)[number];\n\nexport const Currency = [\"EUR\", \"GBP\", \"USD\", \"CNY\"] as const;\nexport type Currency = (typeof Currency)[number];\n\n// note: labelling legacy currency keeps the upstream \"USS\" typo from the sdk\nexport const LabellingCurrency = [\"EUR\", \"USS\"] as const;\nexport type LabellingCurrency = (typeof LabellingCurrency)[number];\n\nexport const AddressType = [\"01\", \"02\"] as const;\nexport type AddressType = (typeof AddressType)[number];\n\nexport const ShipmentTypeLegacy = [\n \"Gift\",\n \"Documents\",\n \"Commercial Goods\",\n \"Commercial Sample\",\n \"Returned Goods\",\n] as const;\nexport type ShipmentTypeLegacy = (typeof ShipmentTypeLegacy)[number];\n\nexport const DeliverydateOption = [\n \"Daytime\",\n \"Evening\",\n \"Morning\",\n \"Noon\",\n \"Sunday\",\n \"Today\",\n \"Afternoon\",\n] as const;\nexport type DeliverydateOption = (typeof DeliverydateOption)[number];\n\nexport const TimeframeOption = [\n \"Daytime\",\n \"Today\",\n \"Sameday\",\n \"Evening\",\n \"Morning\",\n \"Noon\",\n \"Sunday\",\n \"Afternoon\",\n] as const;\nexport type TimeframeOption = (typeof TimeframeOption)[number];\n\nexport const CheckoutOption = [\n \"Daytime\",\n \"Evening\",\n \"Sunday\",\n \"Sameday\",\n \"Today\",\n \"08:00-10:00\",\n \"08:00-12:00\",\n \"08:00-17:00\",\n \"Pickup\",\n] as const;\nexport type CheckoutOption = (typeof CheckoutOption)[number];\n\nexport const CheckoutWarningOption = [\n \"Daytime\",\n \"Evening\",\n \"Sameday\",\n \"Sunday\",\n \"Today\",\n \"08:00-10:00\",\n \"08:00-12:00\",\n \"08:00-17:00\",\n \"08:00-09:00\",\n \"Pickup\",\n] as const;\nexport type CheckoutWarningOption = (typeof CheckoutWarningOption)[number];\n\nexport const CheckoutCutOffDay = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\"] as const;\nexport type CheckoutCutOffDay = (typeof CheckoutCutOffDay)[number];\n\nexport const CheckoutCutOffType = [\"Regular\", \"Sameday\", \"Today\"] as const;\nexport type CheckoutCutOffType = (typeof CheckoutCutOffType)[number];\n\nexport const LocationDeliveryOption = [\"PG\", \"PA\", \"PG_EX\"] as const;\nexport type LocationDeliveryOption = (typeof LocationDeliveryOption)[number];\n\n// internal location codes to ignore when present in responses\nexport const IGNORED_LOCATION_OPTIONS = [\"RETA\", \"UL\", \"PU\", \"DO\", \"BW\", \"RT\", \"BWUL\"] as const;\n\nexport const SustainabilityCode = [\"00\", \"01\", \"02\", \"03\"] as const;\nexport type SustainabilityCode = (typeof SustainabilityCode)[number];\n\nexport const Service = [\"evening\"] as const;\nexport type Service = (typeof Service)[number];\n","import { z } from \"zod\";\nimport { IGNORED_LOCATION_OPTIONS } from \"../../constants/enums\";\nimport { sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray, pnlNum, pnlStringWrapped } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\nconst IGNORED = new Set<string>(IGNORED_LOCATION_OPTIONS);\n\n// LocationsAddress { City, Countrycode, HouseNr(int), HouseNrExt, Remark, Street, Zipcode }\nconst addressSchema = z\n .object({\n City: z.string().optional(),\n Countrycode: z.string().optional(),\n HouseNr: pnlNum().optional(),\n HouseNrExt: z.string().optional(),\n Remark: z.string().optional(),\n Street: z.string().optional(),\n Zipcode: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n city: a.City,\n countryCode: a.Countrycode,\n houseNumber: a.HouseNr,\n houseNumberExtension: a.HouseNrExt,\n remark: a.Remark,\n street: a.Street,\n postalCode: a.Zipcode,\n }),\n );\n\n// each day is the {string:\"08:00-18:00\"} wrapper\nconst day = pnlStringWrapped(z.string()).optional();\n\nconst openingHoursSchema = z\n .object({\n Monday: day,\n Tuesday: day,\n Wednesday: day,\n Thursday: day,\n Friday: day,\n Saturday: day,\n Sunday: day,\n })\n .transform((o) =>\n stripUndefined({\n monday: o.Monday,\n tuesday: o.Tuesday,\n wednesday: o.Wednesday,\n thursday: o.Thursday,\n friday: o.Friday,\n saturday: o.Saturday,\n sunday: o.Sunday,\n }),\n );\n\n// Location; numeric response fields coerced via pnlNum (wire may stringify them).\n// DeliveryOptions is the {string:[...]} wrapper -> pnlArray; internal codes filtered out.\nconst locationSchema = z\n .object({\n Address: addressSchema.optional(),\n DeliveryOptions: pnlArray(z.string()),\n Distance: pnlNum().optional(),\n Latitude: pnlNum().optional(),\n LocationCode: pnlNum().optional(),\n Longitude: pnlNum().optional(),\n Name: z.string().optional(),\n OpeningHours: openingHoursSchema.optional(),\n Sustainability: sustainabilitySchema.optional(),\n PartnerName: z.string().optional(),\n RetailNetworkID: z.string().optional(),\n })\n .transform((l) => {\n const deliveryOptions = l.DeliveryOptions.filter((o) => !IGNORED.has(o));\n return stripUndefined({\n address: l.Address,\n deliveryOptions: deliveryOptions.length ? deliveryOptions : undefined,\n distance: l.Distance,\n latitude: l.Latitude,\n locationCode: l.LocationCode,\n longitude: l.Longitude,\n name: l.Name,\n openingHours: l.OpeningHours,\n sustainability: l.Sustainability,\n partnerName: l.PartnerName,\n retailNetworkId: l.RetailNetworkID,\n });\n });\nexport type Location = z.infer<typeof locationSchema>;\n\n// LocationsResponseMultiple { GetLocationsResult.ResponseLocation: Location[] (single-or-array) }\nexport const locationsResponseSchema = z\n .object({\n GetLocationsResult: z\n .object({ ResponseLocation: pnlArray(locationSchema) })\n .optional()\n .transform((r) => r?.ResponseLocation ?? []),\n })\n .transform((r) => ({ locations: r.GetLocationsResult }));\nexport type LocationsResponse = z.infer<typeof locationsResponseSchema>;\n\n// LocationResponseSingle { GetLocationsResult.ResponseLocation: Location (single) }\nexport const locationLookupResponseSchema = z\n .object({\n GetLocationsResult: z\n .object({ ResponseLocation: locationSchema.optional() })\n .optional()\n .transform((r) => r?.ResponseLocation),\n })\n .transform((r) => stripUndefined({ location: r.GetLocationsResult }));\nexport type LocationLookupResponse = z.infer<typeof locationLookupResponseSchema>;\n","import type { CountryCode, LocationDeliveryOption } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport {\n type LocationLookupResponse,\n type LocationsResponse,\n locationLookupResponseSchema,\n locationsResponseSchema,\n} from \"./schema\";\n\ninterface CommonLocationOptions {\n deliveryDate?: Date | string;\n openingTime?: string;\n deliveryOptions?: LocationDeliveryOption[];\n}\n\nexport interface LocationNearestInput extends CommonLocationOptions {\n countryCode: CountryCode;\n postalCode: string;\n city?: string;\n street?: string;\n houseNumber?: number;\n houseNumberExtension?: string;\n}\n\nexport interface LocationNearestByGeocodeInput extends CommonLocationOptions {\n latitude: number;\n longitude: number;\n countryCode: CountryCode;\n}\n\nexport interface LocationAreaInput extends CommonLocationOptions {\n latitudeNorth: number;\n longitudeWest: number;\n latitudeSouth: number;\n longitudeEast: number;\n countryCode: CountryCode;\n}\n\nexport interface LocationLookupInput {\n // accepts the numeric locationCode read from a Location response\n locationCode: string | number;\n}\n\nconst asDate = (v: Date | string | undefined) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class LocationResource extends BaseResource {\n // GET /shipment/v2_1/locations/nearest\n nearest(input: LocationNearestInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationNearest\",\n query: {\n CountryCode: input.countryCode,\n PostalCode: input.postalCode,\n City: input.city,\n Street: input.street,\n HouseNumber: input.houseNumber,\n HouseNumberExtension: input.houseNumberExtension,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/nearest/geocode\n nearestByGeocode(input: LocationNearestByGeocodeInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationNearestByGeocode\",\n query: {\n Latitude: input.latitude,\n Longitude: input.longitude,\n CountryCode: input.countryCode,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/area\n area(input: LocationAreaInput): Promise<LocationsResponse> {\n return this.call({\n operation: \"locationArea\",\n query: {\n LatitudeNorth: input.latitudeNorth,\n LongitudeWest: input.longitudeWest,\n LatitudeSouth: input.latitudeSouth,\n LongitudeEast: input.longitudeEast,\n CountryCode: input.countryCode,\n DeliveryDate: asDate(input.deliveryDate),\n OpeningTime: input.openingTime,\n DeliveryOptions: input.deliveryOptions?.join(\",\"),\n },\n responseSchema: locationsResponseSchema,\n });\n }\n\n // GET /shipment/v2_1/locations/lookup\n lookup(input: LocationLookupInput): Promise<LocationLookupResponse> {\n return this.call({\n operation: \"locationLookup\",\n query: { LocationCode: String(input.locationCode) },\n responseSchema: locationLookupResponseSchema,\n });\n }\n}\n","// label/signature content is base64. native fromBase64 when present (node22+/bun/deno), atob fallback for node18/20\nexport function decodeBase64(b64: string): Uint8Array {\n const fromBase64 = (Uint8Array as unknown as { fromBase64?: (s: string) => Uint8Array })\n .fromBase64;\n if (fromBase64) return fromBase64(b64);\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n}\n\nconst CONTENT_TYPES: Record<string, string> = {\n pdf: \"application/pdf\",\n gif: \"image/gif\",\n jpg: \"image/jpeg\",\n jpeg: \"image/jpeg\",\n png: \"image/png\",\n zpl: \"text/plain\",\n};\n\nexport function labelContentType(outputType: string): string {\n return CONTENT_TYPES[outputType.toLowerCase()] ?? \"application/octet-stream\";\n}\n\nexport interface DecodedLabel {\n base64: string;\n contentType: string;\n bytes(): Uint8Array;\n}\n\nexport function toDecodedLabel(base64: string, outputType: string): DecodedLabel {\n return { base64, contentType: labelContentType(outputType), bytes: () => decodeBase64(base64) };\n}\n","import { z } from \"zod\";\nimport {\n AssociatedDocumentType,\n Bundle,\n DeliveryConfirmation,\n Duration,\n GuaranteedBefore,\n Language,\n MergeType,\n MinimalAgeCheck,\n OutputType,\n PageOrientation,\n Positioning,\n ReceiverType,\n Service,\n ShipmentTypeV4,\n} from \"../../constants/enums\";\nimport { toDecodedLabel } from \"../../core/base64\";\nimport { formatIsoDate } from \"../../core/codec/dates\";\n\n// v4 dates are iso yyyy-MM-dd. accept a js date (format it, but not an invalid one) or a bare\n// string passthrough. invalid dates / malformed strings fail the shape check below.\nexport const isoDate = z.preprocess(\n (v) => (v instanceof Date ? (Number.isNaN(v.getTime()) ? v : formatIsoDate(v)) : v),\n z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/),\n);\n\n// nested address building blocks (AddressPNPShipmentConfirm + InternationalAddressData)\nexport const internationalAddressDataSchema = z.object({\n area: z.string().optional(),\n buildingName: z.string().optional(),\n doorCode: z.string().optional(),\n floor: z.string().optional(),\n region: z.string().optional(),\n});\n\nexport const addressV4Schema = z.object({\n countryIso: z.string(),\n city: z.string().optional(),\n companyName: z.string().optional(),\n departmentName: z.string().optional(),\n houseNumber: z.string().optional(),\n houseNumberAddition: z.string().optional(),\n postalCode: z.string().optional(),\n street: z.string().optional(),\n addressLine: z.string().optional(),\n internationalAddressData: internationalAddressDataSchema.optional(),\n});\n\nexport const contactV4Schema = z.object({\n email: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n language: z.enum(Language).optional(),\n mobileNumber: z.string().optional(),\n});\n\n// ReceiverPNPShipment\nexport const receiverV4Schema = z.object({\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n type: z.enum(ReceiverType).optional(),\n});\n\n// CustomerPNPShipment (sender)\nexport const senderV4Schema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n undeliverableReturnAddress: addressV4Schema.optional(),\n});\n\nexport const dimensionsSchema = z.object({\n length: z.number().int().optional(),\n width: z.number().int().optional(),\n height: z.number().int().optional(),\n volume: z.number().int().optional(),\n weight: z.number().int().optional(),\n});\n\nexport const customerReferencesSchema = z.object({\n shipmentReference: z.string().optional(),\n costCenter: z.string().optional(),\n returnReference: z.string().optional(),\n});\n\n// Item1 (request items)\nexport const itemV4Schema = z.object({\n barcode: z.string().optional(),\n dimensions: dimensionsSchema.optional(),\n customerReferences: customerReferencesSchema.optional(),\n});\n\n// Label (labelSettings)\nexport const labelSettingsSchema = z.object({\n outputType: z.enum(OutputType).optional(),\n pageOrientation: z.enum(PageOrientation).default(\"portrait\"),\n resolution: z.union([z.literal(200), z.literal(300), z.literal(600)]).default(200),\n mergeType: z.enum(MergeType).optional(),\n positioning: z.enum(Positioning).optional(),\n});\n\nexport const deliveryWindowSchema = z.object({\n service: z.enum(Service).optional(),\n guaranteedBefore: z.enum(GuaranteedBefore).optional(),\n duration: z.enum(Duration).optional(),\n});\n\nexport const servicesSchema = z.object({\n insuredValue: z.number().optional(),\n deliveryWindow: deliveryWindowSchema.optional(),\n statedAddressOnly: z.boolean().optional(),\n returnWhenNotHome: z.boolean().optional(),\n minimalAgeCheck: z.enum(MinimalAgeCheck).optional(),\n deliveryConfirmation: z.enum(DeliveryConfirmation).optional(),\n adrLq: z.boolean().optional(),\n registered: z.boolean().optional(),\n});\n\n// Content (customs item declaration)\nexport const contentSchema = z.object({\n countryOfOrigin: z.string(),\n description: z.string(),\n quantity: z.number().int(),\n value: z.number(),\n weight: z.number().int(),\n hsTariffNumber: z.string().optional(),\n});\n\nexport const associatedDocumentSchema = z.object({\n type: z.enum(AssociatedDocumentType),\n number: z.string(),\n});\n\n// Customs / CustomsPNPShipmentLabel (labelSignature only present on label variant)\nexport const customsV4Schema = z.object({\n content: z.array(contentSchema),\n transactionCode: z.string(),\n currency: z.string(),\n handleAsNonDeliverable: z.boolean().optional(),\n associatedDocument: associatedDocumentSchema.optional(),\n senderIdentification: z.string().optional(),\n receiverIdentification: z.string().optional(),\n labelSignature: z.boolean().optional(),\n});\n\n// InternationalShipmentDataPNPShipment / ...Label\nexport const internationalShipmentDataV4Schema = z.object({\n pudo: z.boolean().optional(),\n customs: customsV4Schema.optional(),\n bundle: z.enum(Bundle).optional(),\n});\n\nexport const deliveryLocationV4Schema = z.object({\n pickUpLocationId: z.string().optional(),\n address: addressV4Schema.optional(),\n});\n\n// ReturnOptionsPNPShipment / ...Label\nexport const returnOptionsV4Schema = z.object({\n labelType: z.string().optional(),\n returnPeriod: z.union([z.literal(35), z.literal(100), z.literal(200), z.literal(365)]).optional(),\n returnAddress: addressV4Schema.optional(),\n returnBarcode: z.string().optional(),\n});\n\n// shared shipment fields for create/label/confirm; confirm omits labelSettings\nconst shipmentV4BaseShape = {\n receiver: receiverV4Schema,\n sender: senderV4Schema,\n shipmentType: z.enum(ShipmentTypeV4),\n handOverDate: isoDate.optional(),\n deliveryLocation: deliveryLocationV4Schema.optional(),\n returnOptions: returnOptionsV4Schema.optional(),\n // should match items.length for multi-collo shipments\n itemCount: z.number().int().default(1),\n items: z.array(itemV4Schema).optional(),\n internationalShipmentData: internationalShipmentDataV4Schema.optional(),\n services: servicesSchema.optional(),\n} as const;\n\n// ShipmentPNPShipment (create / labelconfirm)\nexport const shipmentV4RequestSchema = z.object({\n ...shipmentV4BaseShape,\n labelSettings: labelSettingsSchema.optional(),\n});\nexport type ShipmentV4Request = z.input<typeof shipmentV4RequestSchema>;\n\n// ShipmentPNPShipmentLabel (label) — identical wire shape to create\nexport const labellingV4RequestSchema = z.object({\n ...shipmentV4BaseShape,\n labelSettings: labelSettingsSchema.optional(),\n});\nexport type LabellingV4Request = z.input<typeof labellingV4RequestSchema>;\n\n// Shipment (confirm) — no labelSettings\nexport const confirmV4RequestSchema = z.object(shipmentV4BaseShape);\nexport type ConfirmV4Request = z.input<typeof confirmV4RequestSchema>;\n\n// response: Label2 { label (base64), outputType, labelType }. accept legacy `content` key too.\nconst labelResponseSchema = z\n .object({\n label: z.string().optional(),\n content: z.string().optional(),\n outputType: z.string().optional(),\n labelType: z.string().optional(),\n })\n .transform((l) => {\n const base64 = l.label ?? l.content ?? \"\";\n return {\n ...toDecodedLabel(base64, l.outputType ?? \"\"),\n outputType: l.outputType,\n labelType: l.labelType,\n };\n });\n\nexport const productServiceSchema = z.object({\n productData: z.string().optional(),\n // untyped in sdk (List[Any]); doc examples show objects\n services: z.array(z.record(z.unknown())).optional(),\n bundles: z.array(z.record(z.unknown())).optional(),\n});\n\n// Item / ItemPNPShipmentLabel / ItemPNPGenerateShipmentReturnV4 (superset; labels optional)\nexport const responseItemSchema = z.object({\n shipmentReference: z.string().optional(),\n returnReference: z.string().optional(),\n barcode: z.string().optional(),\n returnBarcode: z.string().optional(),\n preannouncedProduct: z.string().optional(),\n codingText: z.string().optional(),\n productService: productServiceSchema.optional(),\n partnerBarcode: z.string().optional(),\n partnerId: z.string().optional(),\n labels: z.array(labelResponseSchema).optional(),\n});\n\n// ShipmentPostResponse { items: Item[], traceId, warnings }\nexport const shipmentPostResponseSchema = z.object({\n items: z.array(responseItemSchema).default([]),\n traceId: z.string().optional(),\n warnings: z.array(z.string()).optional(),\n});\nexport type ShipmentPostResponse = z.infer<typeof shipmentPostResponseSchema>;\n","import { z } from \"zod\";\nimport {\n ConsolidationMode,\n NetworkType,\n OutputType,\n PageOrientation,\n PrintMethod,\n ReturnShipmentTypeV4,\n} from \"../../constants/enums\";\nimport {\n addressV4Schema,\n contactV4Schema,\n customerReferencesSchema,\n dimensionsSchema,\n isoDate,\n} from \"../shipping/schema\";\n\n// CustomerPNPGenerateShipmentReturnV4\nexport const returnCustomerSchema = z.object({\n customerNumber: z.string(),\n customerCode: z.string(),\n address: addressV4Schema,\n});\n\n// ReceiverPNPGenerateShipmentReturnV4\nexport const returnReceiverSchema = z.object({\n customer: returnCustomerSchema.optional(),\n contact: contactV4Schema.optional(),\n});\n\n// Sender\nexport const returnSenderSchema = z.object({\n address: addressV4Schema,\n contact: contactV4Schema.optional(),\n});\n\n// LabelPNPGenerateShipmentReturnV4\nexport const returnLabelSchema = z.object({\n outputType: z.enum(OutputType),\n printMethod: z.enum(PrintMethod),\n pageOrientation: z.enum(PageOrientation).optional(),\n resolution: z.union([z.literal(200), z.literal(300), z.literal(600)]).optional(),\n});\n\n// Domestic\nexport const returnDomesticSchema = z.object({\n returnPeriod: z.union([z.literal(20), z.literal(35)]).optional(),\n valuableReturn: z.boolean().optional(),\n});\n\n// International\nexport const returnInternationalSchema = z.object({\n consolidationMode: z.enum(ConsolidationMode).optional(),\n networkType: z.enum(NetworkType).optional(),\n});\n\n// CollectionService\nexport const returnCollectionServiceSchema = z.object({\n timeWindow: isoDate.optional(),\n // should match items.length for multi-collo shipments\n itemCount: z.number().int().default(1),\n});\n\n// ReturnOptionsPNPGenerateShipmentReturnV4\nexport const returnOptionsSchema = z.object({\n domestic: returnDomesticSchema.optional(),\n international: returnInternationalSchema.optional(),\n collectionService: returnCollectionServiceSchema.optional(),\n});\n\n// Items\nexport const returnItemSchema = z.object({\n barcode: z.string().optional(),\n dimensions: dimensionsSchema.optional(),\n customerReferences: customerReferencesSchema.optional(),\n});\n\n// ReturnShipment\nexport const returnGenerateRequestSchema = z.object({\n receiver: returnReceiverSchema,\n sender: returnSenderSchema,\n labelSettings: returnLabelSchema,\n shipmentType: z.enum(ReturnShipmentTypeV4),\n returnOptions: returnOptionsSchema.optional(),\n items: z.array(returnItemSchema).optional(),\n});\nexport type ReturnGenerateRequest = z.input<typeof returnGenerateRequestSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport { type ShipmentPostResponse, shipmentPostResponseSchema } from \"../shipping/schema\";\nimport { type ReturnGenerateRequest, returnGenerateRequestSchema } from \"./schema\";\n\nexport class ReturnResource extends BaseResource {\n // generate a return label\n generate(input: ReturnGenerateRequest): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"returnGenerate\",\n input,\n requestSchema: returnGenerateRequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport type { AddressType, LabellingCurrency, ShipmentTypeLegacy } from \"../../constants/enums\";\nimport { toDecodedLabel } from \"../../core/base64\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// legacy send requests use native types + PascalCase wire keys.\n// public api is camelCase in; each schema .transform()s to the wire shape.\n// undefined wire keys are stripped so exactOptionalPropertyTypes stays happy downstream.\n\n// MessageTimeStamp is dd-MM-yyyy HH:mm:ss; accept a Date or pre-formatted string, default now\nconst messageTimeStamp = z.preprocess(\n (v) => (v instanceof Date ? formatDate(v, \"datetime\") : v),\n z.string(),\n);\n\n// Address\nexport const legacyAddressSchema = z\n .object({\n addressType: z.custom<AddressType>(),\n countrycode: z.string(),\n area: z.string().optional(),\n buildingname: z.string().optional(),\n city: z.string().optional(),\n companyName: z.string().optional(),\n department: z.string().optional(),\n doorcode: z.string().optional(),\n firstName: z.string().optional(),\n floor: z.string().optional(),\n houseNr: z.string().optional(),\n houseNrExt: z.string().optional(),\n name: z.string().optional(),\n region: z.string().optional(),\n street: z.string().optional(),\n streetHouseNrExt: z.string().optional(),\n zipcode: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n AddressType: a.addressType,\n Countrycode: a.countrycode,\n Area: a.area,\n Buildingname: a.buildingname,\n City: a.city,\n CompanyName: a.companyName,\n Department: a.department,\n Doorcode: a.doorcode,\n FirstName: a.firstName,\n Floor: a.floor,\n HouseNr: a.houseNr,\n HouseNrExt: a.houseNrExt,\n Name: a.name,\n Region: a.region,\n Street: a.street,\n StreetHouseNrExt: a.streetHouseNrExt,\n Zipcode: a.zipcode,\n }),\n );\n\n// Contact\nexport const legacyContactSchema = z\n .object({\n contactType: z.string(),\n email: z.string().optional(),\n smsNr: z.string().optional(),\n telNr: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n ContactType: c.contactType,\n Email: c.email,\n SMSNr: c.smsNr,\n TelNr: c.telNr,\n }),\n );\n\n// Dimension (Weight in grams, native int)\nexport const legacyDimensionSchema = z\n .object({\n weight: z.number().int(),\n height: z.number().int().optional(),\n length: z.number().int().optional(),\n volume: z.number().int().optional(),\n width: z.number().int().optional(),\n })\n .transform((d) =>\n stripUndefined({\n Weight: d.weight,\n Height: d.height,\n Length: d.length,\n Volume: d.volume,\n Width: d.width,\n }),\n );\n\n// Amount (Value is native float)\nexport const legacyAmountSchema = z\n .object({\n amountType: z.string(),\n value: z.number(),\n accountName: z.string().optional(),\n bic: z.string().optional(),\n currency: z.custom<LabellingCurrency>().optional(),\n iban: z.string().optional(),\n reference: z.string().optional(),\n transactionNumber: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n AmountType: a.amountType,\n Value: a.value,\n AccountName: a.accountName,\n BIC: a.bic,\n Currency: a.currency,\n IBAN: a.iban,\n Reference: a.reference,\n TransactionNumber: a.transactionNumber,\n }),\n );\n\n// Group\nexport const legacyGroupSchema = z\n .object({\n groupType: z.string(),\n mainBarcode: z.string(),\n groupSequence: z.number().int().optional(),\n groupCount: z.number().int().optional(),\n })\n .transform((g) =>\n stripUndefined({\n GroupType: g.groupType,\n MainBarcode: g.mainBarcode,\n GroupSequence: g.groupSequence,\n GroupCount: g.groupCount,\n }),\n );\n\n// ProductOption\nexport const legacyProductOptionSchema = z\n .object({ characteristic: z.string(), option: z.string() })\n .transform((p) => ({ Characteristic: p.characteristic, Option: p.option }));\n\n// LabellingCustomsContent\nexport const legacyCustomsContentSchema = z\n .object({\n description: z.string(),\n quantity: z.number().int(),\n weight: z.number().int(),\n value: z.number(),\n hsTariffNr: z.string().optional(),\n countryOfOrigin: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n Description: c.description,\n Quantity: c.quantity,\n Weight: c.weight,\n Value: c.value,\n HSTariffNr: c.hsTariffNr,\n CountryOfOrigin: c.countryOfOrigin,\n }),\n );\n\n// CustomsLabellingAPI (booleans are native)\nexport const legacyCustomsSchema = z\n .object({\n currency: z.custom<LabellingCurrency>(),\n shipmentType: z.custom<ShipmentTypeLegacy>(),\n content: z.array(legacyCustomsContentSchema),\n certificate: z.boolean().optional(),\n certificateNr: z.string().optional(),\n license: z.boolean().optional(),\n licenseNr: z.string().optional(),\n invoice: z.boolean().optional(),\n invoiceNr: z.string().optional(),\n handleAsNonDeliverable: z.boolean().optional(),\n trustedShipperId: z.string().optional(),\n importerReferenceCode: z.string().optional(),\n transactionCode: z.string().optional(),\n transactionDescription: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n Currency: c.currency,\n ShipmentType: c.shipmentType,\n Content: c.content,\n Certificate: c.certificate,\n CertificateNr: c.certificateNr,\n License: c.license,\n LicenseNr: c.licenseNr,\n Invoice: c.invoice,\n InvoiceNr: c.invoiceNr,\n HandleAsNonDeliverable: c.handleAsNonDeliverable,\n TrustedShipperID: c.trustedShipperId,\n ImporterReferenceCode: c.importerReferenceCode,\n TransactionCode: c.transactionCode,\n TransactionDescription: c.transactionDescription,\n }),\n );\n\n// ExtraField\nexport const legacyExtraFieldSchema = z\n .object({ key: z.string().optional(), value: z.string().optional() })\n .transform((e) => stripUndefined({ Key: e.key, Value: e.value }));\n\n// shared shipment shape for labelling + confirming (confirming ignores extraFields)\nconst legacyShipmentShape = {\n addresses: z.array(legacyAddressSchema),\n barcode: z.string(),\n dimension: legacyDimensionSchema,\n productCodeDelivery: z.string(),\n amounts: z.array(legacyAmountSchema).optional(),\n codingText: z.string().optional(),\n collectionTimeStampStart: z.string().optional(),\n collectionTimeStampEnd: z.string().optional(),\n contacts: z.array(legacyContactSchema).optional(),\n content: z.string().optional(),\n costCenter: z.string().optional(),\n customerOrderNumber: z.string().optional(),\n customs: legacyCustomsSchema.optional(),\n deliveryAddress: z.string().optional(),\n deliveryDate: z.string().optional(),\n downPartnerBarcode: z.string().optional(),\n downPartnerId: z.string().optional(),\n downPartnerLocation: z.string().optional(),\n groups: z.array(legacyGroupSchema).optional(),\n hazardousMaterial: z.string().optional(),\n productCodeCollect: z.string().optional(),\n productOptions: z.array(legacyProductOptionSchema).optional(),\n receiverDateOfBirth: z.string().optional(),\n reference: z.string().optional(),\n referenceCollect: z.string().optional(),\n remark: z.string().optional(),\n returnBarcode: z.string().optional(),\n returnReference: z.string().optional(),\n timeslotId: z.string().optional(),\n} as const;\n\ntype LegacyShipmentParsed = z.infer<z.ZodObject<typeof legacyShipmentShape>>;\n\nconst toWireShipment = (s: LegacyShipmentParsed) =>\n stripUndefined({\n Addresses: s.addresses,\n Barcode: s.barcode,\n Dimension: s.dimension,\n ProductCodeDelivery: s.productCodeDelivery,\n Amounts: s.amounts,\n CodingText: s.codingText,\n CollectionTimeStampStart: s.collectionTimeStampStart,\n CollectionTimeStampEnd: s.collectionTimeStampEnd,\n Contacts: s.contacts,\n Content: s.content,\n CostCenter: s.costCenter,\n CustomerOrderNumber: s.customerOrderNumber,\n Customs: s.customs,\n DeliveryAddress: s.deliveryAddress,\n DeliveryDate: s.deliveryDate,\n DownPartnerBarcode: s.downPartnerBarcode,\n DownPartnerID: s.downPartnerId,\n DownPartnerLocation: s.downPartnerLocation,\n Groups: s.groups,\n HazardousMaterial: s.hazardousMaterial,\n ProductCodeCollect: s.productCodeCollect,\n ProductOptions: s.productOptions,\n ReceiverDateOfBirth: s.receiverDateOfBirth,\n Reference: s.reference,\n ReferenceCollect: s.referenceCollect,\n Remark: s.remark,\n ReturnBarcode: s.returnBarcode,\n ReturnReference: s.returnReference,\n TimeslotID: s.timeslotId,\n });\n\n// LabellingCustomerShipment\nexport const legacyLabellingShipmentSchema = z\n .object({ ...legacyShipmentShape, extraFields: z.array(legacyExtraFieldSchema).optional() })\n .transform((s) => stripUndefined({ ...toWireShipment(s), ExtraFields: s.extraFields }));\n\n// LabellingCustomer\nexport const legacyCustomerSchema = z\n .object({\n customerCode: z.string(),\n customerNumber: z.string(),\n address: legacyAddressSchema.optional(),\n collectionLocation: z.string().optional(),\n contactPerson: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n CustomerCode: c.customerCode,\n CustomerNumber: c.customerNumber,\n Address: c.address,\n CollectionLocation: c.collectionLocation,\n ContactPerson: c.contactPerson,\n Email: c.email,\n Name: c.name,\n }),\n );\n\n// LabellingCustomerMessage\nexport const legacyLabellingMessageSchema = z\n .object({\n messageId: z.string(),\n messageTimeStamp: messageTimeStamp.optional(),\n printertype: z.string(),\n })\n .transform((m) =>\n stripUndefined({\n MessageID: m.messageId,\n MessageTimeStamp: m.messageTimeStamp ?? formatDate(new Date(), \"datetime\"),\n Printertype: m.printertype,\n }),\n );\n\n// LabellingRequest\nexport const labellingRequestSchema = z\n .object({\n customer: legacyCustomerSchema,\n message: legacyLabellingMessageSchema,\n shipments: z.array(legacyLabellingShipmentSchema),\n labelSignature: z.boolean().optional(),\n })\n .transform((r) =>\n stripUndefined({\n Customer: r.customer,\n Message: r.message,\n Shipments: r.shipments,\n LabelSignature: r.labelSignature,\n }),\n );\nexport type LabellingRequest = z.input<typeof labellingRequestSchema>;\n\n// ConfirmingMessage\nexport const legacyConfirmingMessageSchema = z\n .object({ messageId: z.string(), messageTimeStamp: messageTimeStamp.optional() })\n .transform((m) => ({\n MessageID: m.messageId,\n MessageTimeStamp: m.messageTimeStamp ?? formatDate(new Date(), \"datetime\"),\n }));\n\n// ConfirmingShipment (no ExtraFields vs labelling)\nexport const legacyConfirmingShipmentSchema = z\n .object(legacyShipmentShape)\n .transform((s) => toWireShipment(s));\n\n// ConfirmingRequest\nexport const confirmingRequestSchema = z\n .object({\n customer: legacyCustomerSchema,\n message: legacyConfirmingMessageSchema,\n shipments: z.array(legacyConfirmingShipmentSchema),\n })\n .transform((r) => ({ Customer: r.customer, Message: r.message, Shipments: r.shipments }));\nexport type ConfirmingRequest = z.input<typeof confirmingRequestSchema>;\n\n// ---------- responses ----------\n\n// LabellingLabel: decode via OutputType, fall back to inferring from Labeltype\nconst legacyLabelSchema = z\n .object({\n Content: z.string().optional(),\n Labeltype: z.string().optional(),\n OutputType: z.string().optional(),\n })\n .transform((l) => {\n const format = l.OutputType ?? l.Labeltype ?? \"\";\n return {\n ...toDecodedLabel(l.Content ?? \"\", format),\n labeltype: l.Labeltype,\n outputType: l.OutputType,\n };\n });\n\nconst warningSchema = z\n .object({ Code: z.string().optional(), Description: z.string().optional() })\n .transform((w) => stripUndefined({ code: w.Code, description: w.Description }));\n\n// Errors is List[Any] in the sdk; entries may be non-objects, pass through untouched\nconst errorSchema = z.unknown();\n\n// LabellingResponseShipment\nconst labellingResponseShipmentSchema = z\n .object({\n ProductCodeDelivery: z.string().optional(),\n Labels: pnlArray(legacyLabelSchema),\n Barcode: z.string().optional(),\n Errors: pnlArray(errorSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((s) => ({\n labels: s.Labels,\n ...stripUndefined({\n productCodeDelivery: s.ProductCodeDelivery,\n barcode: s.Barcode,\n errors: s.Errors.length ? s.Errors : undefined,\n warnings: s.Warnings.length ? s.Warnings : undefined,\n }),\n }));\n\nconst legacyMergedLabelSchema = z\n .object({ Barcodes: pnlArray(z.string()), Labels: pnlArray(legacyLabelSchema) })\n .transform((m) => ({ barcodes: m.Barcodes, labels: m.Labels }));\n\n// LabellingResponse\nexport const labellingResponseSchema = z\n .object({\n MergedLabels: pnlArray(legacyMergedLabelSchema),\n ResponseShipments: pnlArray(labellingResponseShipmentSchema),\n })\n .transform((r) => ({\n responseShipments: r.ResponseShipments,\n ...(r.MergedLabels.length ? { mergedLabels: r.MergedLabels } : {}),\n }));\nexport type LabellingResponse = z.infer<typeof labellingResponseSchema>;\n\n// ConfirmingResponseShipment\nconst confirmingResponseShipmentSchema = z\n .object({\n Barcode: z.string().optional(),\n Errors: pnlArray(errorSchema),\n Warnings: pnlArray(warningSchema),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n errors: s.Errors.length ? s.Errors : undefined,\n warnings: s.Warnings.length ? s.Warnings : undefined,\n }),\n );\n\n// ConfirmingResponse\nexport const confirmingResponseSchema = z\n .object({ ResponseShipments: pnlArray(confirmingResponseShipmentSchema) })\n .transform((r) => ({ responseShipments: r.ResponseShipments }));\nexport type ConfirmingResponse = z.infer<typeof confirmingResponseSchema>;\n","import { BaseResource } from \"../../core/base-resource\";\nimport {\n type ConfirmingRequest,\n type ConfirmingResponse,\n type LabellingRequest,\n type LabellingResponse,\n confirmingRequestSchema,\n confirmingResponseSchema,\n labellingRequestSchema,\n labellingResponseSchema,\n} from \"./legacy-schema\";\n\nexport interface LabelLegacyOptions {\n // confirm the shipment in the same call; defaults true (sdk default)\n confirm?: boolean;\n}\n\nexport class ShippingLegacyResource extends BaseResource {\n // POST /shipment/v2_2/label; confirm query param defaults true\n label(input: LabellingRequest, options?: LabelLegacyOptions): Promise<LabellingResponse> {\n return this.call({\n operation: \"shippingLabelLegacy\",\n query: { confirm: options?.confirm ?? true },\n input,\n requestSchema: labellingRequestSchema,\n responseSchema: labellingResponseSchema,\n });\n }\n\n // POST /shipment/v2/confirm\n confirm(input: ConfirmingRequest): Promise<ConfirmingResponse> {\n return this.call({\n operation: \"shippingConfirmLegacy\",\n input,\n requestSchema: confirmingRequestSchema,\n responseSchema: confirmingResponseSchema,\n });\n }\n}\n","import { BaseResource } from \"../../core/base-resource\";\nimport { ShippingLegacyResource } from \"./legacy\";\nimport {\n type ConfirmV4Request,\n type LabellingV4Request,\n type ShipmentPostResponse,\n type ShipmentV4Request,\n confirmV4RequestSchema,\n labellingV4RequestSchema,\n shipmentPostResponseSchema,\n shipmentV4RequestSchema,\n} from \"./schema\";\n\nexport class ShippingResource extends BaseResource {\n // legacy label/confirm (POST /shipment/v2_2/label, /shipment/v2/confirm)\n readonly legacy = new ShippingLegacyResource(this.transport);\n\n // create + confirm in one call (labelconfirm)\n create(input: ShipmentV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingCreate\",\n input,\n requestSchema: shipmentV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n\n // generate label without confirming\n label(input: LabellingV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingLabelV4\",\n input,\n requestSchema: labellingV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n\n // confirm a previously created shipment\n confirm(input: ConfirmV4Request): Promise<ShipmentPostResponse> {\n return this.call({\n operation: \"shippingConfirmV4\",\n input,\n requestSchema: confirmV4RequestSchema,\n responseSchema: shipmentPostResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { pnlDateField, sustainabilitySchema } from \"../../core/codec/fields\";\nimport { pnlArray } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// TimeframeTimeframe { From, To, Options({string:...}), Sustainability? }; times stay strings\nconst timeframeTimeframeSchema = z\n .object({\n From: z.string().optional(),\n To: z.string().optional(),\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((t) =>\n stripUndefined({\n from: t.From,\n to: t.To,\n options: t.Options.length ? t.Options : undefined,\n sustainability: t.Sustainability,\n }),\n );\n\n// Timeframe { Date, Timeframes.TimeframeTimeFrame[] (single-or-array) }\n// note: live wire key is TimeframeTimeFrame (capital F), not TimeframeTimeframe\nconst timeframeSchema = z\n .object({\n Date: pnlDateField,\n Timeframes: z\n .object({ TimeframeTimeFrame: pnlArray(timeframeTimeframeSchema) })\n .optional()\n .transform((t) => t?.TimeframeTimeFrame ?? []),\n })\n .transform((t) => ({\n ...stripUndefined({ date: t.Date }),\n timeframes: t.Timeframes,\n }));\n\n// ReasonNoTimeframe { Code, Date, Description, Options({string:...}), Sustainability? }\nconst reasonNoTimeframeSchema = z\n .object({\n Code: z.string().optional(),\n Date: pnlDateField,\n Description: z.string().optional(),\n Options: pnlArray(z.string()),\n Sustainability: sustainabilitySchema.optional(),\n })\n .transform((r) =>\n stripUndefined({\n code: r.Code,\n date: r.Date,\n description: r.Description,\n options: r.Options.length ? r.Options : undefined,\n sustainability: r.Sustainability,\n }),\n );\n\nexport const timeframeResponseSchema = z\n .object({\n Timeframes: z\n .object({ Timeframe: pnlArray(timeframeSchema) })\n .optional()\n .transform((t) => t?.Timeframe ?? []),\n ReasonNoTimeframes: z\n .object({ ReasonNoTimeframe: pnlArray(reasonNoTimeframeSchema) })\n .optional()\n .transform((r) => r?.ReasonNoTimeframe ?? []),\n })\n .transform((r) => ({\n timeframes: r.Timeframes,\n reasonNoTimeframes: r.ReasonNoTimeframes,\n }));\nexport type TimeframeResponse = z.infer<typeof timeframeResponseSchema>;\n","import type { CountryCode, TimeframeOption } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport { formatDate } from \"../../core/codec/dates\";\nimport { type TimeframeResponse, timeframeResponseSchema } from \"./schema\";\n\nexport interface TimeframeGetInput {\n allowSundaySorting: boolean;\n startDate: Date | string;\n endDate: Date | string;\n countryCode: CountryCode;\n postalCode: string;\n houseNumber: number;\n options: TimeframeOption[];\n houseNrExt?: string;\n city?: string;\n street?: string;\n}\n\nconst asDate = (v: Date | string) => (v instanceof Date ? formatDate(v, \"date\") : v);\n\nexport class TimeframeResource extends BaseResource {\n // GET /shipment/v2_1/calculate/timeframes\n get(input: TimeframeGetInput): Promise<TimeframeResponse> {\n return this.call({\n operation: \"timeframeGet\",\n query: {\n AllowSundaySorting: input.allowSundaySorting,\n StartDate: asDate(input.startDate),\n EndDate: asDate(input.endDate),\n CountryCode: input.countryCode,\n PostalCode: input.postalCode,\n HouseNumber: input.houseNumber,\n Options: input.options.join(\",\"),\n HouseNrExt: input.houseNrExt,\n City: input.city,\n Street: input.street,\n },\n responseSchema: timeframeResponseSchema,\n });\n }\n}\n","import { z } from \"zod\";\nimport { type DecodedLabel, toDecodedLabel } from \"../../core/base64\";\nimport { type PnlDate, parsePnlDate } from \"../../core/codec/dates\";\nimport { pnlArray, pnlNum } from \"../../core/codec/helpers\";\nimport { stripUndefined } from \"../../core/codec/object\";\n\n// shipping-status responses are pascalcase, stringify numbers, and use\n// single-object-or-array + single-object wrappers. each schema .transform()s\n// to a clean camelCase output.\n\n// lenient date parse: try parsePnlDate, keep raw string when format is unknown.\n// dd-MM-yyyy[ HH:mm:ss] and iso yyyy-MM-dd are handled; anything else stays raw.\nconst pnlDate = z\n .string()\n .nullish()\n .transform((v): PnlDate | undefined => {\n if (v == null) return undefined;\n try {\n return parsePnlDate(v);\n } catch {\n return v;\n }\n });\n\n// ---------- shared nested schemas ----------\n\nconst customerSchema = z\n .object({\n CustomerCode: z.string().optional(),\n CustomerNumber: z.string().optional(),\n Name: z.string().optional(),\n })\n .transform((c) =>\n stripUndefined({\n customerCode: c.CustomerCode,\n customerNumber: c.CustomerNumber,\n name: c.Name,\n }),\n );\n\nconst dimensionSchema = z\n .object({\n Weight: pnlNum().optional(),\n Height: pnlNum().optional(),\n Length: pnlNum().optional(),\n Width: pnlNum().optional(),\n Volume: pnlNum().optional(),\n })\n .transform((d) =>\n stripUndefined({\n weight: d.Weight,\n height: d.Height,\n length: d.Length,\n width: d.Width,\n volume: d.Volume,\n }),\n );\n\nconst amountSchema = z\n .object({\n RemboursBedrag: z.string().optional(),\n VerzekerdBedrag: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({ remboursBedrag: a.RemboursBedrag, verzekerdBedrag: a.VerzekerdBedrag }),\n );\n\nconst addressSchema = z\n .object({\n FirstName: z.string().optional(),\n LastName: z.string().optional(),\n CompanyName: z.string().optional(),\n DepartmentName: z.string().optional(),\n CountryCode: z.string().optional(),\n Zipcode: z.string().optional(),\n Region: z.string().optional(),\n District: z.string().optional(),\n City: z.string().optional(),\n Street: z.string().optional(),\n HouseNumber: z.string().optional(),\n HouseNumberSuffix: z.string().optional(),\n Building: z.string().optional(),\n Floor: z.string().optional(),\n Remark: z.string().optional(),\n })\n .transform((a) =>\n stripUndefined({\n firstName: a.FirstName,\n lastName: a.LastName,\n companyName: a.CompanyName,\n departmentName: a.DepartmentName,\n countryCode: a.CountryCode,\n zipcode: a.Zipcode,\n region: a.Region,\n district: a.District,\n city: a.City,\n street: a.Street,\n houseNumber: a.HouseNumber,\n houseNumberSuffix: a.HouseNumberSuffix,\n building: a.Building,\n floor: a.Floor,\n remark: a.Remark,\n }),\n );\n\n// codes stay strings; only TimeStamp parses to a date\nconst statusSchema = z\n .object({\n TimeStamp: pnlDate,\n StatusCode: z.string().optional(),\n StatusDescription: z.string().optional(),\n PhaseCode: z.string().optional(),\n PhaseDescription: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n timeStamp: s.TimeStamp,\n statusCode: s.StatusCode,\n statusDescription: s.StatusDescription,\n phaseCode: s.PhaseCode,\n phaseDescription: s.PhaseDescription,\n }),\n );\n\n// Code/LocationCode etc are codes -> keep as strings; only TimeStamp is a date\nconst eventSchema = z\n .object({\n Code: z.string().optional(),\n Description: z.string().optional(),\n DestinationLocationCode: z.string().optional(),\n LocationCode: z.string().optional(),\n RouteCode: z.string().optional(),\n RouteNumber: z.string().optional(),\n TimeStamp: pnlDate,\n })\n .transform((e) =>\n stripUndefined({\n code: e.Code,\n description: e.Description,\n destinationLocationCode: e.DestinationLocationCode,\n locationCode: e.LocationCode,\n routeCode: e.RouteCode,\n routeNumber: e.RouteNumber,\n timeStamp: e.TimeStamp,\n }),\n );\n\n// eta formats unverified -> parse leniently\nconst expectationSchema = z\n .object({ ETAFrom: pnlDate, ETATo: pnlDate })\n .transform((e) => stripUndefined({ etaFrom: e.ETAFrom, etaTo: e.ETATo }));\n\n// ProductOptions is a single-object wrapper { ProductOption: {...} }; unwrap it\nconst productOptionsSchema = z\n .object({\n ProductOption: z\n .object({\n OptionCode: z.string().optional(),\n CharacteristicCode: z.string().optional(),\n })\n .optional(),\n })\n .transform((p) =>\n stripUndefined({\n optionCode: p.ProductOption?.OptionCode,\n characteristicCode: p.ProductOption?.CharacteristicCode,\n }),\n );\n\n// top-level warnings model { Message, Code } (single-object-or-array)\nconst warningSchema = z\n .object({ Message: z.string().optional(), Code: z.string().optional() })\n .transform((w) => stripUndefined({ message: w.Message, code: w.Code }));\n\n// ---------- shipment (current = subset, complete = superset) ----------\n\nconst baseShipmentSchema = z.object({\n MainBarcode: z.string().optional(),\n Barcode: z.string().optional(),\n ShipmentAmount: pnlNum().optional(),\n ShipmentCounter: pnlNum().optional(),\n Customer: customerSchema.optional(),\n ProductCode: z.string().optional(),\n ProductDescription: z.string().optional(),\n Reference: z.string().optional(),\n DeliveryDate: pnlDate,\n Dimension: dimensionSchema.optional(),\n Address: pnlArray(addressSchema),\n ProductOptions: pnlArray(productOptionsSchema),\n Status: statusSchema.optional(),\n});\n\nconst toBaseShipment = (s: z.infer<typeof baseShipmentSchema>) =>\n stripUndefined({\n mainBarcode: s.MainBarcode,\n barcode: s.Barcode,\n shipmentAmount: s.ShipmentAmount,\n shipmentCounter: s.ShipmentCounter,\n customer: s.Customer,\n productCode: s.ProductCode,\n productDescription: s.ProductDescription,\n reference: s.Reference,\n deliveryDate: s.DeliveryDate,\n dimension: s.Dimension,\n addresses: s.Address.length ? s.Address : undefined,\n productOptions: s.ProductOptions.length ? s.ProductOptions : undefined,\n status: s.Status,\n });\n\nconst currentStatusShipmentSchema = baseShipmentSchema.transform((s) => toBaseShipment(s));\n\nconst completeStatusShipmentSchema = baseShipmentSchema\n .extend({\n Amount: amountSchema.optional(),\n Event: pnlArray(eventSchema),\n Expectation: expectationSchema.optional(),\n OldStatus: pnlArray(statusSchema),\n })\n .transform((s) =>\n stripUndefined({\n ...toBaseShipment(s),\n amount: s.Amount,\n events: s.Event.length ? s.Event : undefined,\n expectation: s.Expectation,\n oldStatuses: s.OldStatus.length ? s.OldStatus : undefined,\n }),\n );\n\n// ---------- ShippingstatusResponse (byBarcode / byReference) ----------\n\nexport const shippingStatusResponseSchema = z\n .object({\n CurrentStatus: z.object({ Shipment: currentStatusShipmentSchema }).optional(),\n CompleteStatus: z.object({ Shipment: completeStatusShipmentSchema }).optional(),\n Warnings: pnlArray(warningSchema),\n })\n .transform((r) => ({\n ...stripUndefined({\n currentStatus: r.CurrentStatus?.Shipment,\n completeStatus: r.CompleteStatus?.Shipment,\n }),\n warnings: r.Warnings,\n }));\nexport type ShippingStatusResponse = z.infer<typeof shippingStatusResponseSchema>;\n\n// ---------- signature ----------\n\nconst signatureSchema = z\n .object({\n Barcode: z.string().optional(),\n SignatureDate: pnlDate,\n SignatureImage: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n signatureDate: s.SignatureDate,\n signatureImage: s.SignatureImage ? toDecodedLabel(s.SignatureImage, \"gif\") : undefined,\n }),\n );\n\nexport const signatureResponseSchema = z\n .object({\n Signature: signatureSchema.optional(),\n // signature Warnings is a single-object wrapper { Warning: {...} }; unwrap to a 1-element array\n Warnings: z\n .object({ Warning: pnlArray(warningSchema) })\n .optional()\n .transform((w) => w?.Warning ?? []),\n })\n .transform((r) => ({\n ...stripUndefined({ signature: r.Signature }),\n warnings: r.Warnings,\n }));\nexport type SignatureResponse = z.infer<typeof signatureResponseSchema>;\n\nexport interface SignatureImage extends DecodedLabel {}\n\n// ---------- updated shipments ----------\n\n// distinct wire key: lowercase Timestamp (vs TimeStamp elsewhere)\nconst updatedShipmentStatusSchema = z\n .object({\n Timestamp: pnlDate,\n StatusCode: z.string().optional(),\n StatusDescription: z.string().optional(),\n PhaseCode: z.string().optional(),\n PhaseDescription: z.string().optional(),\n })\n .transform((s) =>\n stripUndefined({\n timestamp: s.Timestamp,\n statusCode: s.StatusCode,\n statusDescription: s.StatusDescription,\n phaseCode: s.PhaseCode,\n phaseDescription: s.PhaseDescription,\n }),\n );\n\nconst updatedShipmentSchema = z\n .object({\n Barcode: z.string().optional(),\n CreationDate: pnlDate,\n CustomerNumber: z.string().optional(),\n CustomerCode: z.string().optional(),\n Status: updatedShipmentStatusSchema.optional(),\n })\n .transform((s) =>\n stripUndefined({\n barcode: s.Barcode,\n creationDate: s.CreationDate,\n customerNumber: s.CustomerNumber,\n customerCode: s.CustomerCode,\n status: s.Status,\n }),\n );\n\n// response is a list of updated shipments\nexport const updatedShipmentsResponseSchema = pnlArray(updatedShipmentSchema);\nexport type UpdatedShipmentsResponse = z.infer<typeof updatedShipmentsResponseSchema>;\nexport type UpdatedShipment = UpdatedShipmentsResponse[number];\n","import type { StatusLanguage } from \"../../constants/enums\";\nimport { BaseResource } from \"../../core/base-resource\";\nimport {\n type ShippingStatusResponse,\n type SignatureResponse,\n type UpdatedShipmentsResponse,\n shippingStatusResponseSchema,\n signatureResponseSchema,\n updatedShipmentsResponseSchema,\n} from \"./schema\";\n\nexport interface TrackingOptions {\n // include old statuses (complete status); postnl expects \"true\"/\"false\" string\n detail?: boolean;\n language?: StatusLanguage;\n maxDays?: string;\n}\n\nexport interface TrackingByReferenceOptions extends TrackingOptions {\n customerCode: string;\n customerNumber: string;\n}\n\nexport interface UpdatedShipmentsOptions {\n // [from, to]; emitted as two repeated period query params\n period: [string, string];\n}\n\nexport class TrackingResource extends BaseResource {\n // GET /shipment/v2/status/barcode/{barcode}\n byBarcode(barcode: string, options?: TrackingOptions): Promise<ShippingStatusResponse> {\n return this.call({\n operation: \"trackingByBarcode\",\n pathParams: { barcode },\n query: {\n detail: options?.detail,\n language: options?.language,\n maxDays: options?.maxDays,\n },\n responseSchema: shippingStatusResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/reference/{referenceId}; customerCode + customerNumber required\n byReference(\n referenceId: string,\n options: TrackingByReferenceOptions,\n ): Promise<ShippingStatusResponse> {\n return this.call({\n operation: \"trackingByReference\",\n pathParams: { referenceId },\n query: {\n customerCode: options.customerCode,\n customerNumber: options.customerNumber,\n detail: options.detail,\n language: options.language,\n maxDays: options.maxDays,\n },\n responseSchema: shippingStatusResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/signature/{barcode}\n signature(barcode: string): Promise<SignatureResponse> {\n return this.call({\n operation: \"trackingSignature\",\n pathParams: { barcode },\n responseSchema: signatureResponseSchema,\n });\n }\n\n // GET /shipment/v2/status/{customernumber}/updatedshipments; two repeated period params\n updated(\n customerNumber: string,\n options: UpdatedShipmentsOptions,\n ): Promise<UpdatedShipmentsResponse> {\n return this.call({\n operation: \"trackingUpdated\",\n pathParams: { customernumber: customerNumber },\n query: { period: options.period },\n responseSchema: updatedShipmentsResponseSchema,\n });\n }\n}\n","import type { z } from \"zod\";\nimport { type PostNLClientOptions, resolveConfig } from \"./config\";\nimport { Transport } from \"./core/http\";\nimport type { Family, HttpMethod } from \"./core/types\";\nimport { AddressResource } from \"./resources/address\";\nimport { BarcodeResource } from \"./resources/barcode\";\nimport { CheckoutResource } from \"./resources/checkout\";\nimport { DeliveryDateResource } from \"./resources/delivery-date\";\nimport { LocationResource } from \"./resources/location\";\nimport { ReturnResource } from \"./resources/return\";\nimport { ShippingResource } from \"./resources/shipping\";\nimport { TimeframeResource } from \"./resources/timeframe\";\nimport { TrackingResource } from \"./resources/tracking\";\n\nexport class PostNLClient {\n private readonly transport: Transport;\n readonly barcode: BarcodeResource;\n readonly shipping: ShippingResource;\n readonly return: ReturnResource;\n readonly tracking: TrackingResource;\n readonly deliveryDate: DeliveryDateResource;\n readonly timeframe: TimeframeResource;\n readonly location: LocationResource;\n readonly checkout: CheckoutResource;\n readonly address: AddressResource;\n\n constructor(options: PostNLClientOptions) {\n const config = resolveConfig(options);\n this.transport = new Transport(config);\n this.barcode = new BarcodeResource(this.transport);\n this.shipping = new ShippingResource(this.transport);\n this.return = new ReturnResource(this.transport);\n this.tracking = new TrackingResource(this.transport);\n this.deliveryDate = new DeliveryDateResource(this.transport);\n this.timeframe = new TimeframeResource(this.transport);\n this.location = new LocationResource(this.transport);\n this.checkout = new CheckoutResource(this.transport);\n this.address = new AddressResource(this.transport, config.environment);\n }\n\n // low-level escape hatch for endpoints/params not yet covered\n async request<T>(args: {\n family: Family;\n method: HttpMethod;\n path: string;\n pathParams?: Record<string, string>;\n query?: Record<string, string | string[] | number | boolean | undefined>;\n body?: unknown;\n schema?: z.ZodType<T>;\n }): Promise<T> {\n const raw = await this.transport.send<T>({\n family: args.family,\n method: args.method,\n path: args.path,\n pathParams: args.pathParams,\n query: args.query,\n body: args.body,\n });\n return args.schema ? args.schema.parse(raw) : (raw as T);\n }\n}\n","// legacy productcodedelivery is a free-form string; common codes for convenience.\n// v4 uses product names (server-resolved), no code needed.\nexport const ProductCode = {\n domesticParcel: \"3085\",\n domesticInsured: \"3087\",\n easyReturn: \"4910\",\n} as const;\nexport type ProductCodeValue = (typeof ProductCode)[keyof typeof ProductCode];\n"]}
|