smart-track
Version:
A TypeScript SDK for integrating with tracking services using the Beckn protocol. Provides adapters for package tracking with built-in error handling, retry logic, and type safety.
53 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.becknMetadataSchema = exports.BecknAction = exports.CountryCode = void 0;
const zod_1 = require("zod");
const uuid_1 = require("uuid");
var CountryCode;
(function (CountryCode) {
CountryCode["IND"] = "IND";
CountryCode["USA"] = "USA";
CountryCode["AUS"] = "AUS";
CountryCode["GBR"] = "GBR";
CountryCode["CAN"] = "CAN";
CountryCode["DEU"] = "DEU";
CountryCode["FRA"] = "FRA";
CountryCode["JPN"] = "JPN";
CountryCode["CHN"] = "CHN";
CountryCode["RUS"] = "RUS";
})(CountryCode || (exports.CountryCode = CountryCode = {}));
var BecknAction;
(function (BecknAction) {
BecknAction["TRACK"] = "track";
BecknAction["ORDER"] = "order";
BecknAction["STATUS"] = "status";
BecknAction["SEARCH"] = "search";
})(BecknAction || (exports.BecknAction = BecknAction = {}));
const BecknUri = {
BAP_ID: "https://example.com/bap",
BPP_ID: "https://example.com/bpp",
BAP_URI: "https://example.com/bap-uri",
BPP_URI: "https://example.com/bpp-uri",
};
var BacknCoreVersion;
(function (BacknCoreVersion) {
BacknCoreVersion["V0_9_1"] = "0.9.1";
})(BacknCoreVersion || (BacknCoreVersion = {}));
//TODO: Provide default values
exports.becknMetadataSchema = zod_1.z.object({
domain: zod_1.z.string().default("nic2004:55204"),
country: zod_1.z.nativeEnum(CountryCode).default(CountryCode.IND),
city: zod_1.z.string(),
action: zod_1.z.nativeEnum(BecknAction),
core_version: zod_1.z.nativeEnum(BacknCoreVersion).default(BacknCoreVersion.V0_9_1),
bap_id: zod_1.z.string().url().default(BecknUri.BAP_ID),
bap_uri: zod_1.z.string().url().default(BecknUri.BAP_URI),
bpp_id: zod_1.z.string().url().default(BecknUri.BPP_ID),
bpp_uri: zod_1.z.string().url().default(BecknUri.BPP_URI),
transaction_id: zod_1.z.string().default((0, uuid_1.v4)()),
message_id: zod_1.z.string().default((0, uuid_1.v4)()),
timestamp: zod_1.z.coerce.date().default(() => new Date()),
key: zod_1.z.string().optional(),
ttl: zod_1.z.string().optional(),
});
//# sourceMappingURL=payload.types.js.map