@nokinc-flur/sdk 2.3.0 → 2.4.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 CHANGED
@@ -109,6 +109,7 @@ __export(index_exports, {
109
109
  OFFLINE_SMS_SETTLE_SIGNATURE_BYTES: () => OFFLINE_SMS_SETTLE_SIGNATURE_BYTES,
110
110
  OFFLINE_SMS_SETTLE_TOKEN_BYTES: () => OFFLINE_SMS_SETTLE_TOKEN_BYTES,
111
111
  OFFLINE_SMS_SETTLE_VERSION: () => OFFLINE_SMS_SETTLE_VERSION,
112
+ OacPresentmentRequestSchema: () => OacPresentmentRequestSchema,
112
113
  OfflineClaimArtifactSchema: () => OfflineClaimArtifactSchema,
113
114
  OfflinePaymentAuthorizationArtifactSchema: () => OfflinePaymentAuthorizationArtifactSchema,
114
115
  OfflinePaymentAuthorizationSchema: () => OfflinePaymentAuthorizationSchema,
@@ -126,9 +127,6 @@ __export(index_exports, {
126
127
  PASS_STATES: () => PASS_STATES,
127
128
  PAYLOAD_FORMAT_INDICATOR_VALUE: () => PAYLOAD_FORMAT_INDICATOR_VALUE,
128
129
  PAYOUT_DESTINATION_STATUSES: () => PAYOUT_DESTINATION_STATUSES,
129
- PAY_CARD_DEFAULT_TTL_MS: () => PAY_CARD_DEFAULT_TTL_MS,
130
- PAY_CARD_REFRESH_THRESHOLD_MS: () => PAY_CARD_REFRESH_THRESHOLD_MS,
131
- PAY_CARD_URI_PREFIX: () => PAY_CARD_URI_PREFIX,
132
130
  POINT_OF_INITIATION: () => POINT_OF_INITIATION,
133
131
  PartnerFundingEventInputSchema: () => PartnerFundingEventInputSchema,
134
132
  PartnerFundingSchema: () => PartnerFundingSchema,
@@ -136,7 +134,6 @@ __export(index_exports, {
136
134
  PassArtifactSchema: () => PassArtifactSchema,
137
135
  PassMetadataSchema: () => PassMetadataSchema,
138
136
  PassSchema: () => PassSchema,
139
- PayCardArtifactSchema: () => PayCardArtifactSchema,
140
137
  PayCollectionInputSchema: () => PayCollectionInputSchema,
141
138
  PaymentClaimSchema: () => PaymentClaimSchema,
142
139
  PaymentIntentArtifactSchema: () => PaymentIntentArtifactSchema,
@@ -175,7 +172,6 @@ __export(index_exports, {
175
172
  buildConsumerPaymentRequest: () => buildConsumerPaymentRequest,
176
173
  buildOAC: () => buildOAC,
177
174
  buildPass: () => buildPass,
178
- buildPayCardSigningInput: () => buildPayCardSigningInput,
179
175
  buildPaymentRequest: () => buildPaymentRequest,
180
176
  buildReceipt: () => buildReceipt,
181
177
  buildRedemption: () => buildRedemption,
@@ -210,17 +206,16 @@ __export(index_exports, {
210
206
  createPartnerFundingClient: () => createPartnerFundingClient,
211
207
  createPartnerProfileAdminClient: () => createPartnerProfileAdminClient,
212
208
  createPassesClient: () => createPassesClient,
213
- createPayCardArtifactUri: () => createPayCardArtifactUri,
214
209
  createReceiptArtifactUri: () => createReceiptArtifactUri,
215
210
  createReceiptsClient: () => createReceiptsClient,
216
211
  createSoftwareP256Signer: () => createSoftwareP256Signer,
217
212
  decodeArtifactUri: () => decodeArtifactUri,
218
213
  decodeAuthorizationQR: () => decodeAuthorizationQR,
219
214
  decodeBase45: () => decodeBase45,
215
+ decodeConsumerOacRequest: () => decodeConsumerOacRequest,
220
216
  decodeConsumerSettlementReceiptQR: () => decodeConsumerSettlementReceiptQR,
221
217
  decodeOfflineClaimSmsMessage: () => decodeOfflineClaimSmsMessage,
222
218
  decodeOfflineSmsSettleToken: () => decodeOfflineSmsSettleToken,
223
- decodePayCardArtifact: () => decodePayCardArtifact,
224
219
  decodePaymentRequestQR: () => decodePaymentRequestQR,
225
220
  decodeUnverifiedConsumerOacQR: () => decodeUnverifiedConsumerOacQR,
226
221
  decodeUnverifiedConsumerSettlementReceiptQR: () => decodeUnverifiedConsumerSettlementReceiptQR,
@@ -240,13 +235,11 @@ __export(index_exports, {
240
235
  generateDynamicQR: () => generateDynamicQR,
241
236
  generateStaticQR: () => generateStaticQR,
242
237
  init: () => init,
243
- inspectPayCardFreshness: () => inspectPayCardFreshness,
244
238
  isConsumerOacQR: () => isConsumerOacQR,
245
239
  isConsumerPaymentRequestExpired: () => isConsumerPaymentRequestExpired,
246
240
  isHardenedArtifactType: () => isHardenedArtifactType,
247
241
  isKnownArtifactType: () => isKnownArtifactType,
248
242
  isPassWithinValidity: () => isPassWithinValidity,
249
- isPayCardArtifactUri: () => isPayCardArtifactUri,
250
243
  moneyMinorToNumber: () => moneyMinorToNumber,
251
244
  normalizeE164: () => normalizeE164,
252
245
  parseAmountInput: () => parseAmountInput,
@@ -275,7 +268,6 @@ __export(index_exports, {
275
268
  verifyOacOffline: () => verifyOacOffline,
276
269
  verifyOfflineSmsSettleToken: () => verifyOfflineSmsSettleToken,
277
270
  verifyPass: () => verifyPass,
278
- verifyPayCardArtifact: () => verifyPayCardArtifact,
279
271
  verifyPaymentRequest: () => verifyPaymentRequest,
280
272
  verifyReceipt: () => verifyReceipt,
281
273
  verifyRedemption: () => verifyRedemption,
@@ -3867,6 +3859,7 @@ function base64UrlDecodeUtf8(input) {
3867
3859
  }
3868
3860
 
3869
3861
  // src/me-offline/oac.ts
3862
+ var import_zod15 = require("zod");
3870
3863
  var CONSUMER_OAC_DOMAIN = "flur:consumer-offline:v1:oac";
3871
3864
  function consumerOacSigningPayload(oac) {
3872
3865
  return { domain: CONSUMER_OAC_DOMAIN, ...oac };
@@ -3909,15 +3902,28 @@ var CONSUMER_OAC_QR_PREFIX = "FLUROAC1.";
3909
3902
  function isConsumerOacQR(value) {
3910
3903
  return value.startsWith(CONSUMER_OAC_QR_PREFIX);
3911
3904
  }
3912
- function encodeConsumerOacQR(signed) {
3905
+ var OacPresentmentRequestSchema = import_zod15.z.object({
3906
+ /** Requested amount in minor units (kobo). */
3907
+ amountMinor: import_zod15.z.number().int().positive().max(1e12).optional(),
3908
+ /** Purpose/intent code (mirrors the NIBSS intent vocabulary). */
3909
+ intent: import_zod15.z.string().min(1).max(32).optional(),
3910
+ /** Free-text reference / note. */
3911
+ reference: import_zod15.z.string().min(1).max(64).optional()
3912
+ }).strict();
3913
+ function encodeConsumerOacQR(signed, request) {
3913
3914
  const parsed = SignedConsumerOACSchema.parse(signed);
3914
- return `${CONSUMER_OAC_QR_PREFIX}${base64UrlEncodeUtf82(JSON.stringify(parsed))}`;
3915
+ const base = `${CONSUMER_OAC_QR_PREFIX}${base64UrlEncodeUtf82(JSON.stringify(parsed))}`;
3916
+ if (request === void 0) return base;
3917
+ const parsedRequest = OacPresentmentRequestSchema.parse(request);
3918
+ if (Object.keys(parsedRequest).length === 0) return base;
3919
+ return `${base}.${base64UrlEncodeUtf82(JSON.stringify(parsedRequest))}`;
3915
3920
  }
3916
3921
  function decodeUnverifiedConsumerOacQR(value) {
3917
3922
  if (!value.startsWith(CONSUMER_OAC_QR_PREFIX)) {
3918
3923
  throw new Error("not a Flur consumer OAC QR");
3919
3924
  }
3920
- const encoded = value.slice(CONSUMER_OAC_QR_PREFIX.length);
3925
+ const remainder = value.slice(CONSUMER_OAC_QR_PREFIX.length);
3926
+ const encoded = remainder.split(".", 1)[0];
3921
3927
  let raw;
3922
3928
  try {
3923
3929
  raw = JSON.parse(base64UrlDecodeUtf82(encoded));
@@ -3926,6 +3932,21 @@ function decodeUnverifiedConsumerOacQR(value) {
3926
3932
  }
3927
3933
  return SignedConsumerOACSchema.parse(raw);
3928
3934
  }
3935
+ function decodeConsumerOacRequest(value) {
3936
+ if (!value.startsWith(CONSUMER_OAC_QR_PREFIX)) return null;
3937
+ const remainder = value.slice(CONSUMER_OAC_QR_PREFIX.length);
3938
+ const dot = remainder.indexOf(".");
3939
+ if (dot < 0) return null;
3940
+ const suffix = remainder.slice(dot + 1);
3941
+ if (suffix.length === 0) return null;
3942
+ try {
3943
+ const raw = JSON.parse(base64UrlDecodeUtf82(suffix));
3944
+ const parsed = OacPresentmentRequestSchema.safeParse(raw);
3945
+ return parsed.success ? parsed.data : null;
3946
+ } catch {
3947
+ return null;
3948
+ }
3949
+ }
3929
3950
  function base64UrlEncodeUtf82(input) {
3930
3951
  const bytes = new TextEncoder().encode(input);
3931
3952
  let binary = "";
@@ -4221,14 +4242,14 @@ function base64UrlToBytes(input) {
4221
4242
  }
4222
4243
 
4223
4244
  // src/partner-funding/client.ts
4224
- var import_zod15 = require("zod");
4225
- var MinorString = import_zod15.z.string().regex(/^-?\d+$/);
4226
- var PositiveMinor = import_zod15.z.union([
4227
- import_zod15.z.number().int().positive(),
4228
- import_zod15.z.string().regex(/^[1-9]\d{0,18}$/)
4245
+ var import_zod16 = require("zod");
4246
+ var MinorString = import_zod16.z.string().regex(/^-?\d+$/);
4247
+ var PositiveMinor = import_zod16.z.union([
4248
+ import_zod16.z.number().int().positive(),
4249
+ import_zod16.z.string().regex(/^[1-9]\d{0,18}$/)
4229
4250
  ]);
4230
- var Currency = import_zod15.z.string().trim().length(3).transform((v) => v.toUpperCase());
4231
- var Metadata = import_zod15.z.record(import_zod15.z.unknown());
4251
+ var Currency = import_zod16.z.string().trim().length(3).transform((v) => v.toUpperCase());
4252
+ var Metadata = import_zod16.z.record(import_zod16.z.unknown());
4232
4253
  var PARTNER_KINDS = ["bank", "merchant"];
4233
4254
  var CUSTODIAL_MODES = ["agent_of_bank", "flur_virtual_pool"];
4234
4255
  var PARTNER_PROFILE_STATUSES = [
@@ -4255,126 +4276,126 @@ var WITHDRAWAL_STATES = [
4255
4276
  "failed",
4256
4277
  "reversed"
4257
4278
  ];
4258
- var PartnerProfileSchema = import_zod15.z.object({
4259
- partnerAccountId: import_zod15.z.string().uuid(),
4260
- kind: import_zod15.z.enum(PARTNER_KINDS),
4261
- custodialMode: import_zod15.z.enum(CUSTODIAL_MODES),
4262
- displayName: import_zod15.z.string(),
4263
- bankCode: import_zod15.z.string().nullable(),
4264
- poolAccountNumber: import_zod15.z.string().nullable(),
4265
- status: import_zod15.z.enum(PARTNER_PROFILE_STATUSES),
4279
+ var PartnerProfileSchema = import_zod16.z.object({
4280
+ partnerAccountId: import_zod16.z.string().uuid(),
4281
+ kind: import_zod16.z.enum(PARTNER_KINDS),
4282
+ custodialMode: import_zod16.z.enum(CUSTODIAL_MODES),
4283
+ displayName: import_zod16.z.string(),
4284
+ bankCode: import_zod16.z.string().nullable(),
4285
+ poolAccountNumber: import_zod16.z.string().nullable(),
4286
+ status: import_zod16.z.enum(PARTNER_PROFILE_STATUSES),
4266
4287
  metadata: Metadata,
4267
- createdAtMs: import_zod15.z.number().int().nonnegative(),
4268
- updatedAtMs: import_zod15.z.number().int().nonnegative()
4288
+ createdAtMs: import_zod16.z.number().int().nonnegative(),
4289
+ updatedAtMs: import_zod16.z.number().int().nonnegative()
4269
4290
  });
4270
- var UpsertPartnerProfileInputSchema = import_zod15.z.object({
4271
- kind: import_zod15.z.enum(PARTNER_KINDS),
4272
- custodialMode: import_zod15.z.enum(CUSTODIAL_MODES),
4273
- displayName: import_zod15.z.string().trim().min(1).max(200),
4274
- bankCode: import_zod15.z.string().trim().min(1).max(64).optional(),
4275
- poolAccountNumber: import_zod15.z.string().trim().min(1).max(64).optional(),
4291
+ var UpsertPartnerProfileInputSchema = import_zod16.z.object({
4292
+ kind: import_zod16.z.enum(PARTNER_KINDS),
4293
+ custodialMode: import_zod16.z.enum(CUSTODIAL_MODES),
4294
+ displayName: import_zod16.z.string().trim().min(1).max(200),
4295
+ bankCode: import_zod16.z.string().trim().min(1).max(64).optional(),
4296
+ poolAccountNumber: import_zod16.z.string().trim().min(1).max(64).optional(),
4276
4297
  metadata: Metadata.optional()
4277
4298
  });
4278
- var PartnerFundingEventInputSchema = import_zod15.z.object({
4279
- externalRef: import_zod15.z.string().trim().min(8).max(128),
4280
- direction: import_zod15.z.enum(PARTNER_FUNDING_DIRECTIONS).optional(),
4281
- userId: import_zod15.z.string().uuid().optional(),
4282
- accountId: import_zod15.z.string().uuid().optional(),
4299
+ var PartnerFundingEventInputSchema = import_zod16.z.object({
4300
+ externalRef: import_zod16.z.string().trim().min(8).max(128),
4301
+ direction: import_zod16.z.enum(PARTNER_FUNDING_DIRECTIONS).optional(),
4302
+ userId: import_zod16.z.string().uuid().optional(),
4303
+ accountId: import_zod16.z.string().uuid().optional(),
4283
4304
  amountMinor: PositiveMinor,
4284
4305
  currency: Currency,
4285
- fundingSource: import_zod15.z.string().trim().min(1).max(64).optional(),
4306
+ fundingSource: import_zod16.z.string().trim().min(1).max(64).optional(),
4286
4307
  providerMetadata: Metadata.optional()
4287
4308
  });
4288
- var PartnerFundingSchema = import_zod15.z.object({
4289
- fundingId: import_zod15.z.string().uuid(),
4290
- partnerId: import_zod15.z.string().uuid(),
4291
- accountId: import_zod15.z.string().uuid(),
4292
- userId: import_zod15.z.string().uuid().nullable(),
4293
- direction: import_zod15.z.enum(PARTNER_FUNDING_DIRECTIONS),
4294
- currency: import_zod15.z.string(),
4309
+ var PartnerFundingSchema = import_zod16.z.object({
4310
+ fundingId: import_zod16.z.string().uuid(),
4311
+ partnerId: import_zod16.z.string().uuid(),
4312
+ accountId: import_zod16.z.string().uuid(),
4313
+ userId: import_zod16.z.string().uuid().nullable(),
4314
+ direction: import_zod16.z.enum(PARTNER_FUNDING_DIRECTIONS),
4315
+ currency: import_zod16.z.string(),
4295
4316
  amountMinor: MinorString,
4296
- externalRef: import_zod15.z.string(),
4297
- status: import_zod15.z.enum(PARTNER_FUNDING_STATUSES),
4298
- fundingSource: import_zod15.z.string(),
4299
- ledgerRef: import_zod15.z.string(),
4317
+ externalRef: import_zod16.z.string(),
4318
+ status: import_zod16.z.enum(PARTNER_FUNDING_STATUSES),
4319
+ fundingSource: import_zod16.z.string(),
4320
+ ledgerRef: import_zod16.z.string(),
4300
4321
  providerMetadata: Metadata,
4301
- createdAtMs: import_zod15.z.number().int().nonnegative(),
4302
- updatedAtMs: import_zod15.z.number().int().nonnegative()
4322
+ createdAtMs: import_zod16.z.number().int().nonnegative(),
4323
+ updatedAtMs: import_zod16.z.number().int().nonnegative()
4303
4324
  });
4304
- var IngestFundingResultSchema = import_zod15.z.object({
4325
+ var IngestFundingResultSchema = import_zod16.z.object({
4305
4326
  funding: PartnerFundingSchema,
4306
- replayed: import_zod15.z.boolean()
4327
+ replayed: import_zod16.z.boolean()
4307
4328
  });
4308
- var PayoutDestinationSchema = import_zod15.z.object({
4309
- destinationId: import_zod15.z.string().uuid(),
4310
- accountId: import_zod15.z.string().uuid(),
4311
- partnerId: import_zod15.z.string().uuid(),
4312
- bankCode: import_zod15.z.string(),
4313
- accountNumber: import_zod15.z.string(),
4314
- accountName: import_zod15.z.string(),
4315
- status: import_zod15.z.enum(PAYOUT_DESTINATION_STATUSES),
4316
- verifiedAtMs: import_zod15.z.number().int().nonnegative().nullable(),
4329
+ var PayoutDestinationSchema = import_zod16.z.object({
4330
+ destinationId: import_zod16.z.string().uuid(),
4331
+ accountId: import_zod16.z.string().uuid(),
4332
+ partnerId: import_zod16.z.string().uuid(),
4333
+ bankCode: import_zod16.z.string(),
4334
+ accountNumber: import_zod16.z.string(),
4335
+ accountName: import_zod16.z.string(),
4336
+ status: import_zod16.z.enum(PAYOUT_DESTINATION_STATUSES),
4337
+ verifiedAtMs: import_zod16.z.number().int().nonnegative().nullable(),
4317
4338
  metadata: Metadata,
4318
- createdAtMs: import_zod15.z.number().int().nonnegative(),
4319
- updatedAtMs: import_zod15.z.number().int().nonnegative()
4339
+ createdAtMs: import_zod16.z.number().int().nonnegative(),
4340
+ updatedAtMs: import_zod16.z.number().int().nonnegative()
4320
4341
  });
4321
- var CreatePayoutDestinationInputSchema = import_zod15.z.object({
4322
- partnerId: import_zod15.z.string().uuid(),
4323
- bankCode: import_zod15.z.string().trim().min(1).max(32),
4324
- accountNumber: import_zod15.z.string().trim().min(4).max(64),
4325
- accountName: import_zod15.z.string().trim().min(1).max(200),
4342
+ var CreatePayoutDestinationInputSchema = import_zod16.z.object({
4343
+ partnerId: import_zod16.z.string().uuid(),
4344
+ bankCode: import_zod16.z.string().trim().min(1).max(32),
4345
+ accountNumber: import_zod16.z.string().trim().min(4).max(64),
4346
+ accountName: import_zod16.z.string().trim().min(1).max(200),
4326
4347
  metadata: Metadata.optional()
4327
4348
  });
4328
- var ListPayoutDestinationsResultSchema = import_zod15.z.object({
4329
- items: import_zod15.z.array(PayoutDestinationSchema)
4349
+ var ListPayoutDestinationsResultSchema = import_zod16.z.object({
4350
+ items: import_zod16.z.array(PayoutDestinationSchema)
4330
4351
  });
4331
- var WithdrawalSchema = import_zod15.z.object({
4332
- withdrawalId: import_zod15.z.string().uuid(),
4333
- accountId: import_zod15.z.string().uuid(),
4334
- userId: import_zod15.z.string().uuid(),
4335
- partnerId: import_zod15.z.string().uuid(),
4336
- destinationId: import_zod15.z.string().uuid(),
4337
- currency: import_zod15.z.string(),
4352
+ var WithdrawalSchema = import_zod16.z.object({
4353
+ withdrawalId: import_zod16.z.string().uuid(),
4354
+ accountId: import_zod16.z.string().uuid(),
4355
+ userId: import_zod16.z.string().uuid(),
4356
+ partnerId: import_zod16.z.string().uuid(),
4357
+ destinationId: import_zod16.z.string().uuid(),
4358
+ currency: import_zod16.z.string(),
4338
4359
  amountMinor: MinorString,
4339
- state: import_zod15.z.enum(WITHDRAWAL_STATES),
4340
- idempotencyKey: import_zod15.z.string(),
4341
- providerRef: import_zod15.z.string().nullable(),
4342
- lastError: import_zod15.z.string().nullable(),
4343
- ledgerRef: import_zod15.z.string(),
4344
- reverseLedgerRef: import_zod15.z.string().nullable(),
4360
+ state: import_zod16.z.enum(WITHDRAWAL_STATES),
4361
+ idempotencyKey: import_zod16.z.string(),
4362
+ providerRef: import_zod16.z.string().nullable(),
4363
+ lastError: import_zod16.z.string().nullable(),
4364
+ ledgerRef: import_zod16.z.string(),
4365
+ reverseLedgerRef: import_zod16.z.string().nullable(),
4345
4366
  metadata: Metadata,
4346
- createdAtMs: import_zod15.z.number().int().nonnegative(),
4347
- updatedAtMs: import_zod15.z.number().int().nonnegative()
4367
+ createdAtMs: import_zod16.z.number().int().nonnegative(),
4368
+ updatedAtMs: import_zod16.z.number().int().nonnegative()
4348
4369
  });
4349
- var CreateWithdrawalInputSchema = import_zod15.z.object({
4350
- destinationId: import_zod15.z.string().uuid(),
4370
+ var CreateWithdrawalInputSchema = import_zod16.z.object({
4371
+ destinationId: import_zod16.z.string().uuid(),
4351
4372
  amountMinor: PositiveMinor,
4352
4373
  currency: Currency,
4353
- idempotencyKey: import_zod15.z.string().trim().min(8).max(128),
4374
+ idempotencyKey: import_zod16.z.string().trim().min(8).max(128),
4354
4375
  metadata: Metadata.optional()
4355
4376
  });
4356
- var CreateWithdrawalResultSchema = import_zod15.z.object({
4377
+ var CreateWithdrawalResultSchema = import_zod16.z.object({
4357
4378
  withdrawal: WithdrawalSchema,
4358
- replayed: import_zod15.z.boolean()
4379
+ replayed: import_zod16.z.boolean()
4359
4380
  });
4360
- var PayoutEventInputSchema = import_zod15.z.object({
4361
- externalRef: import_zod15.z.string().trim().min(8).max(128),
4362
- withdrawalId: import_zod15.z.string().uuid().optional(),
4363
- state: import_zod15.z.enum(["submitted", "processing", "paid", "failed"]),
4364
- providerRef: import_zod15.z.string().trim().min(1).max(128).optional(),
4365
- failureCode: import_zod15.z.string().trim().max(64).optional(),
4366
- failureMessage: import_zod15.z.string().trim().max(512).optional(),
4381
+ var PayoutEventInputSchema = import_zod16.z.object({
4382
+ externalRef: import_zod16.z.string().trim().min(8).max(128),
4383
+ withdrawalId: import_zod16.z.string().uuid().optional(),
4384
+ state: import_zod16.z.enum(["submitted", "processing", "paid", "failed"]),
4385
+ providerRef: import_zod16.z.string().trim().min(1).max(128).optional(),
4386
+ failureCode: import_zod16.z.string().trim().max(64).optional(),
4387
+ failureMessage: import_zod16.z.string().trim().max(512).optional(),
4367
4388
  providerMetadata: Metadata.optional()
4368
4389
  });
4369
- var RecordPayoutEventResultSchema = import_zod15.z.object({
4390
+ var RecordPayoutEventResultSchema = import_zod16.z.object({
4370
4391
  withdrawal: WithdrawalSchema,
4371
- replayed: import_zod15.z.boolean()
4392
+ replayed: import_zod16.z.boolean()
4372
4393
  });
4373
- var ReconciliationReportSchema = import_zod15.z.object({
4374
- partnerId: import_zod15.z.string().uuid(),
4375
- currency: import_zod15.z.string(),
4376
- fromMs: import_zod15.z.number().int().nonnegative(),
4377
- toMs: import_zod15.z.number().int().nonnegative(),
4394
+ var ReconciliationReportSchema = import_zod16.z.object({
4395
+ partnerId: import_zod16.z.string().uuid(),
4396
+ currency: import_zod16.z.string(),
4397
+ fromMs: import_zod16.z.number().int().nonnegative(),
4398
+ toMs: import_zod16.z.number().int().nonnegative(),
4378
4399
  fundingsCreditMinor: MinorString,
4379
4400
  fundingsDebitMinor: MinorString,
4380
4401
  withdrawalsPaidMinor: MinorString,
@@ -4383,7 +4404,7 @@ var ReconciliationReportSchema = import_zod15.z.object({
4383
4404
  expectedReserveBalanceMinor: MinorString,
4384
4405
  actualReserveBalanceMinor: MinorString,
4385
4406
  imbalanceMinor: MinorString,
4386
- generatedAtMs: import_zod15.z.number().int().nonnegative()
4407
+ generatedAtMs: import_zod16.z.number().int().nonnegative()
4387
4408
  });
4388
4409
  function createPartnerFundingClient(partner) {
4389
4410
  return {
@@ -4535,19 +4556,19 @@ function createPartnerProfileAdminClient(opts) {
4535
4556
  }
4536
4557
 
4537
4558
  // src/artifacts/envelope.ts
4538
- var import_zod16 = require("zod");
4559
+ var import_zod17 = require("zod");
4539
4560
  var FLUR_ARTIFACT_URI_SCHEME = "flur";
4540
4561
  var FLUR_ARTIFACT_VERSION = 1;
4541
4562
  var FLUR_ARTIFACT_URI_PREFIX = `${FLUR_ARTIFACT_URI_SCHEME}://v${FLUR_ARTIFACT_VERSION}/`;
4542
4563
  var ArtifactTypeRe = /^[a-z][a-z0-9_]{1,63}$/;
4543
- var ArtifactHeaderSchema = import_zod16.z.object({
4544
- v: import_zod16.z.literal(FLUR_ARTIFACT_VERSION),
4545
- t: import_zod16.z.string().regex(ArtifactTypeRe, "invalid artifact type"),
4546
- iss: import_zod16.z.string().min(1).max(128),
4547
- kid: import_zod16.z.string().min(1).max(128),
4548
- iat: import_zod16.z.number().int().nonnegative(),
4549
- exp: import_zod16.z.number().int().positive().optional(),
4550
- nonce: import_zod16.z.string().min(8).max(64).regex(/^[A-Za-z0-9_-]+$/, "nonce must be url-safe")
4564
+ var ArtifactHeaderSchema = import_zod17.z.object({
4565
+ v: import_zod17.z.literal(FLUR_ARTIFACT_VERSION),
4566
+ t: import_zod17.z.string().regex(ArtifactTypeRe, "invalid artifact type"),
4567
+ iss: import_zod17.z.string().min(1).max(128),
4568
+ kid: import_zod17.z.string().min(1).max(128),
4569
+ iat: import_zod17.z.number().int().nonnegative(),
4570
+ exp: import_zod17.z.number().int().positive().optional(),
4571
+ nonce: import_zod17.z.string().min(8).max(64).regex(/^[A-Za-z0-9_-]+$/, "nonce must be url-safe")
4551
4572
  });
4552
4573
  var FlurArtifactError = class extends Error {
4553
4574
  constructor(message, code) {
@@ -4686,7 +4707,7 @@ function verifyArtifactSignature(decoded, publicKeySpkiB64, options = {}) {
4686
4707
  }
4687
4708
 
4688
4709
  // src/artifacts/types.ts
4689
- var import_zod17 = require("zod");
4710
+ var import_zod18 = require("zod");
4690
4711
  var ARTIFACT_TYPES = {
4691
4712
  OFFLINE_PAYMENT_AUTHORIZATION: "offline_payment_authorization",
4692
4713
  RECEIPT: "receipt",
@@ -4699,37 +4720,34 @@ var ARTIFACT_TYPES = {
4699
4720
  LEDGER_JOURNAL_ENTRY: "ledger_journal_entry",
4700
4721
  STATEMENT: "statement",
4701
4722
  PASS: "pass",
4702
- IDENTITY: "identity",
4703
- // Tier B: holder-signed identity attestation for offline trust. The
4704
- // envelope.iat / envelope.exp express the card's canonical lifetime.
4705
- PAY_CARD: "pay_card"
4723
+ IDENTITY: "identity"
4706
4724
  };
4707
- var HexString = (length) => import_zod17.z.string().regex(
4725
+ var HexString = (length) => import_zod18.z.string().regex(
4708
4726
  new RegExp(`^[0-9a-fA-F]{${length * 2}}$`),
4709
4727
  `expected ${length}-byte hex string`
4710
4728
  );
4711
- var OfflinePaymentAuthorizationArtifactSchema = import_zod17.z.object({
4729
+ var OfflinePaymentAuthorizationArtifactSchema = import_zod18.z.object({
4712
4730
  authorization: OfflinePaymentAuthorizationSchema
4713
4731
  });
4714
- var ReceiptArtifactSchema = import_zod17.z.object({
4715
- receiptId: import_zod17.z.string().min(1).max(64),
4716
- paymentReference: import_zod17.z.string().min(1).max(64),
4717
- payerUserId: import_zod17.z.string().min(1).max(64).optional(),
4718
- payeeUserId: import_zod17.z.string().min(1).max(64),
4719
- amountKobo: import_zod17.z.number().int().positive(),
4720
- currency: import_zod17.z.literal("NGN"),
4721
- channel: import_zod17.z.enum(["online", "offline_reconciled", "pay_link", "nqr"]),
4722
- settledAtMs: import_zod17.z.number().int().positive(),
4723
- ledgerTxnId: import_zod17.z.string().min(1).max(64).optional(),
4724
- memo: import_zod17.z.string().max(140).optional(),
4732
+ var ReceiptArtifactSchema = import_zod18.z.object({
4733
+ receiptId: import_zod18.z.string().min(1).max(64),
4734
+ paymentReference: import_zod18.z.string().min(1).max(64),
4735
+ payerUserId: import_zod18.z.string().min(1).max(64).optional(),
4736
+ payeeUserId: import_zod18.z.string().min(1).max(64),
4737
+ amountKobo: import_zod18.z.number().int().positive(),
4738
+ currency: import_zod18.z.literal("NGN"),
4739
+ channel: import_zod18.z.enum(["online", "offline_reconciled", "pay_link", "nqr"]),
4740
+ settledAtMs: import_zod18.z.number().int().positive(),
4741
+ ledgerTxnId: import_zod18.z.string().min(1).max(64).optional(),
4742
+ memo: import_zod18.z.string().max(140).optional(),
4725
4743
  hashChainPrev: HexString(32).optional()
4726
4744
  });
4727
- var ShortId = import_zod17.z.string().min(1).max(64);
4728
- var PositiveInt = import_zod17.z.number().int().positive();
4729
- var NonNegativeInt = import_zod17.z.number().int().nonnegative();
4730
- var Currency2 = import_zod17.z.literal("NGN");
4731
- var Memo = import_zod17.z.string().max(140);
4732
- var NqrPaymentRequestArtifactSchema = import_zod17.z.object({
4745
+ var ShortId = import_zod18.z.string().min(1).max(64);
4746
+ var PositiveInt = import_zod18.z.number().int().positive();
4747
+ var NonNegativeInt = import_zod18.z.number().int().nonnegative();
4748
+ var Currency2 = import_zod18.z.literal("NGN");
4749
+ var Memo = import_zod18.z.string().max(140);
4750
+ var NqrPaymentRequestArtifactSchema = import_zod18.z.object({
4733
4751
  requestId: ShortId,
4734
4752
  payeeUserId: ShortId,
4735
4753
  amountKobo: PositiveInt.optional(),
@@ -4737,7 +4755,7 @@ var NqrPaymentRequestArtifactSchema = import_zod17.z.object({
4737
4755
  memo: Memo.optional(),
4738
4756
  expiresAtMs: PositiveInt.optional()
4739
4757
  });
4740
- var PaymentIntentArtifactSchema = import_zod17.z.object({
4758
+ var PaymentIntentArtifactSchema = import_zod18.z.object({
4741
4759
  intentId: ShortId,
4742
4760
  payerUserId: ShortId,
4743
4761
  payeeUserId: ShortId,
@@ -4746,7 +4764,7 @@ var PaymentIntentArtifactSchema = import_zod17.z.object({
4746
4764
  idempotencyKey: ShortId,
4747
4765
  createdAtMs: PositiveInt
4748
4766
  });
4749
- var OfflineClaimArtifactSchema = import_zod17.z.object({
4767
+ var OfflineClaimArtifactSchema = import_zod18.z.object({
4750
4768
  claimId: ShortId,
4751
4769
  authorizationId: ShortId,
4752
4770
  payeeUserId: ShortId,
@@ -4755,10 +4773,10 @@ var OfflineClaimArtifactSchema = import_zod17.z.object({
4755
4773
  claimedAtMs: PositiveInt,
4756
4774
  paymentReference: ShortId.optional()
4757
4775
  });
4758
- var SettlementRecordArtifactSchema = import_zod17.z.object({
4776
+ var SettlementRecordArtifactSchema = import_zod18.z.object({
4759
4777
  settlementId: ShortId,
4760
4778
  ledgerTxnId: ShortId,
4761
- sourceRefType: import_zod17.z.enum([
4779
+ sourceRefType: import_zod18.z.enum([
4762
4780
  "offline_authorization",
4763
4781
  "offline_claim",
4764
4782
  "transfer",
@@ -4769,12 +4787,12 @@ var SettlementRecordArtifactSchema = import_zod17.z.object({
4769
4787
  currency: Currency2,
4770
4788
  settledAtMs: PositiveInt
4771
4789
  });
4772
- var ReversalRecordArtifactSchema = import_zod17.z.object({
4790
+ var ReversalRecordArtifactSchema = import_zod18.z.object({
4773
4791
  reversalId: ShortId,
4774
4792
  originalTxnId: ShortId,
4775
4793
  amountKobo: PositiveInt,
4776
4794
  currency: Currency2,
4777
- reason: import_zod17.z.enum([
4795
+ reason: import_zod18.z.enum([
4778
4796
  "user_dispute",
4779
4797
  "fraud",
4780
4798
  "duplicate",
@@ -4784,7 +4802,7 @@ var ReversalRecordArtifactSchema = import_zod17.z.object({
4784
4802
  reversedAtMs: PositiveInt,
4785
4803
  memo: Memo.optional()
4786
4804
  });
4787
- var LedgerJournalEntryArtifactSchema = import_zod17.z.object({
4805
+ var LedgerJournalEntryArtifactSchema = import_zod18.z.object({
4788
4806
  entryId: ShortId,
4789
4807
  journalId: ShortId,
4790
4808
  debitAccountId: ShortId,
@@ -4795,13 +4813,13 @@ var LedgerJournalEntryArtifactSchema = import_zod17.z.object({
4795
4813
  refType: ShortId.optional(),
4796
4814
  refId: ShortId.optional()
4797
4815
  });
4798
- var StatementArtifactSchema = import_zod17.z.object({
4816
+ var StatementArtifactSchema = import_zod18.z.object({
4799
4817
  statementId: ShortId,
4800
4818
  userId: ShortId,
4801
4819
  periodStartMs: PositiveInt,
4802
4820
  periodEndMs: PositiveInt,
4803
- openingBalanceKobo: import_zod17.z.number().int(),
4804
- closingBalanceKobo: import_zod17.z.number().int(),
4821
+ openingBalanceKobo: import_zod18.z.number().int(),
4822
+ closingBalanceKobo: import_zod18.z.number().int(),
4805
4823
  transactionCount: NonNegativeInt,
4806
4824
  currency: Currency2,
4807
4825
  hashChainPrev: HexString(32).optional()
@@ -4809,16 +4827,16 @@ var StatementArtifactSchema = import_zod17.z.object({
4809
4827
  message: "periodEndMs must be greater than periodStartMs",
4810
4828
  path: ["periodEndMs"]
4811
4829
  });
4812
- var PassArtifactSchema = import_zod17.z.object({
4830
+ var PassArtifactSchema = import_zod18.z.object({
4813
4831
  passId: ShortId,
4814
4832
  holderId: ShortId,
4815
- category: import_zod17.z.enum(["membership", "ticket", "loyalty", "access", "voucher"]),
4816
- title: import_zod17.z.string().min(1).max(120),
4833
+ category: import_zod18.z.enum(["membership", "ticket", "loyalty", "access", "voucher"]),
4834
+ title: import_zod18.z.string().min(1).max(120),
4817
4835
  validFromMs: PositiveInt,
4818
4836
  validUntilMs: PositiveInt.optional(),
4819
- metadata: import_zod17.z.record(
4820
- import_zod17.z.string().min(1).max(64),
4821
- import_zod17.z.union([import_zod17.z.string().max(280), import_zod17.z.number(), import_zod17.z.boolean()])
4837
+ metadata: import_zod18.z.record(
4838
+ import_zod18.z.string().min(1).max(64),
4839
+ import_zod18.z.union([import_zod18.z.string().max(280), import_zod18.z.number(), import_zod18.z.boolean()])
4822
4840
  ).optional()
4823
4841
  }).refine(
4824
4842
  (v) => v.validUntilMs === void 0 || v.validUntilMs > v.validFromMs,
@@ -4827,10 +4845,10 @@ var PassArtifactSchema = import_zod17.z.object({
4827
4845
  path: ["validUntilMs"]
4828
4846
  }
4829
4847
  );
4830
- var IdentityArtifactSchema = import_zod17.z.object({
4848
+ var IdentityArtifactSchema = import_zod18.z.object({
4831
4849
  attestationId: ShortId,
4832
4850
  subjectId: ShortId,
4833
- claimType: import_zod17.z.enum([
4851
+ claimType: import_zod18.z.enum([
4834
4852
  "phone_verified",
4835
4853
  "email_verified",
4836
4854
  "bvn_verified",
@@ -4840,12 +4858,6 @@ var IdentityArtifactSchema = import_zod17.z.object({
4840
4858
  claimValueHash: HexString(32),
4841
4859
  attestedAtMs: PositiveInt
4842
4860
  });
4843
- var PayCardArtifactSchema = import_zod17.z.object({
4844
- userId: ShortId,
4845
- phoneE164: import_zod17.z.string().regex(/^\+[1-9]\d{7,14}$/, "phoneE164 must be normalised E.164"),
4846
- displayName: import_zod17.z.string().min(1).max(64),
4847
- devicePubKeySpkiB64: import_zod17.z.string().min(64).max(256).regex(/^[A-Za-z0-9+/]+=*$/, "devicePubKeySpkiB64 must be standard base64")
4848
- });
4849
4861
  var ARTIFACT_BODY_SCHEMAS = {
4850
4862
  [ARTIFACT_TYPES.OFFLINE_PAYMENT_AUTHORIZATION]: OfflinePaymentAuthorizationArtifactSchema,
4851
4863
  [ARTIFACT_TYPES.RECEIPT]: ReceiptArtifactSchema,
@@ -4857,8 +4869,7 @@ var ARTIFACT_BODY_SCHEMAS = {
4857
4869
  [ARTIFACT_TYPES.LEDGER_JOURNAL_ENTRY]: LedgerJournalEntryArtifactSchema,
4858
4870
  [ARTIFACT_TYPES.STATEMENT]: StatementArtifactSchema,
4859
4871
  [ARTIFACT_TYPES.PASS]: PassArtifactSchema,
4860
- [ARTIFACT_TYPES.IDENTITY]: IdentityArtifactSchema,
4861
- [ARTIFACT_TYPES.PAY_CARD]: PayCardArtifactSchema
4872
+ [ARTIFACT_TYPES.IDENTITY]: IdentityArtifactSchema
4862
4873
  };
4863
4874
  var HARDENED_ARTIFACT_TYPES = /* @__PURE__ */ new Set([
4864
4875
  ARTIFACT_TYPES.OFFLINE_PAYMENT_AUTHORIZATION,
@@ -4871,8 +4882,7 @@ var HARDENED_ARTIFACT_TYPES = /* @__PURE__ */ new Set([
4871
4882
  ARTIFACT_TYPES.LEDGER_JOURNAL_ENTRY,
4872
4883
  ARTIFACT_TYPES.STATEMENT,
4873
4884
  ARTIFACT_TYPES.PASS,
4874
- ARTIFACT_TYPES.IDENTITY,
4875
- ARTIFACT_TYPES.PAY_CARD
4885
+ ARTIFACT_TYPES.IDENTITY
4876
4886
  ]);
4877
4887
  function isKnownArtifactType(t) {
4878
4888
  return Object.values(ARTIFACT_TYPES).includes(t);
@@ -4957,130 +4967,6 @@ function createOfflinePaymentAuthorizationArtifactUri(input) {
4957
4967
  type: ARTIFACT_TYPES.OFFLINE_PAYMENT_AUTHORIZATION
4958
4968
  });
4959
4969
  }
4960
-
4961
- // src/artifacts/paycard.ts
4962
- var PAY_CARD_DEFAULT_TTL_MS = 90 * 24 * 60 * 60 * 1e3;
4963
- var PAY_CARD_REFRESH_THRESHOLD_MS = 30 * 24 * 60 * 60 * 1e3;
4964
- var PAY_CARD_URI_PREFIX = `${FLUR_ARTIFACT_URI_PREFIX}${ARTIFACT_TYPES.PAY_CARD}/`;
4965
- function createPayCardArtifactUri(input) {
4966
- if (input.data.userId !== input.issuer) {
4967
- throw new FlurArtifactError(
4968
- "pay_card.data.userId must equal envelope issuer",
4969
- "INVALID_BODY"
4970
- );
4971
- }
4972
- const iat = input.issuedAtSeconds ?? Math.floor(Date.now() / 1e3);
4973
- const exp = input.expiresAtSeconds ?? iat + Math.floor(PAY_CARD_DEFAULT_TTL_MS / 1e3);
4974
- return createArtifactUri({
4975
- type: ARTIFACT_TYPES.PAY_CARD,
4976
- issuer: input.issuer,
4977
- keyId: input.keyId,
4978
- privateKey: input.privateKey,
4979
- nonce: input.nonce,
4980
- issuedAtSeconds: iat,
4981
- expiresAtSeconds: exp,
4982
- data: input.data
4983
- });
4984
- }
4985
- function isPayCardArtifactUri(uri) {
4986
- return typeof uri === "string" && uri.startsWith(PAY_CARD_URI_PREFIX);
4987
- }
4988
- function decodePayCardArtifact(uri) {
4989
- if (!isPayCardArtifactUri(uri)) {
4990
- throw new FlurArtifactError(
4991
- `URI does not start with ${PAY_CARD_URI_PREFIX}`,
4992
- "INVALID_URI"
4993
- );
4994
- }
4995
- const decoded = decodeArtifactUri(uri);
4996
- if (decoded.type !== ARTIFACT_TYPES.PAY_CARD) {
4997
- throw new FlurArtifactError(
4998
- `Expected pay_card, got ${decoded.type}`,
4999
- "TYPE_MISMATCH"
5000
- );
5001
- }
5002
- const parsed = PayCardArtifactSchema.safeParse(decoded.body.data);
5003
- if (!parsed.success) {
5004
- throw new FlurArtifactError(
5005
- `pay_card body invalid: ${parsed.error.message}`,
5006
- "INVALID_BODY"
5007
- );
5008
- }
5009
- if (parsed.data.userId !== decoded.body.iss) {
5010
- throw new FlurArtifactError(
5011
- "pay_card.data.userId must equal envelope issuer",
5012
- "INVALID_BODY"
5013
- );
5014
- }
5015
- return {
5016
- body: {
5017
- ...decoded.body,
5018
- data: parsed.data
5019
- },
5020
- sig: decoded.sig,
5021
- decoded
5022
- };
5023
- }
5024
- function verifyPayCardArtifact(uri, publicKeySpkiB64, options = {}) {
5025
- if (!isPayCardArtifactUri(uri)) {
5026
- throw new FlurArtifactError(
5027
- `URI does not start with ${PAY_CARD_URI_PREFIX}`,
5028
- "INVALID_URI"
5029
- );
5030
- }
5031
- const verified = verifyArtifactUri(
5032
- uri,
5033
- publicKeySpkiB64,
5034
- options
5035
- );
5036
- if (verified.decoded.type !== ARTIFACT_TYPES.PAY_CARD) {
5037
- throw new FlurArtifactError(
5038
- `Expected pay_card, got ${verified.decoded.type}`,
5039
- "TYPE_MISMATCH"
5040
- );
5041
- }
5042
- if (verified.body.data.userId !== verified.body.iss) {
5043
- throw new FlurArtifactError(
5044
- "pay_card.data.userId must equal envelope issuer",
5045
- "INVALID_BODY"
5046
- );
5047
- }
5048
- return {
5049
- body: verified.body,
5050
- sig: verified.sig,
5051
- decoded: verified.decoded
5052
- };
5053
- }
5054
- function inspectPayCardFreshness(decoded, nowMs = Date.now()) {
5055
- const exp = decoded.body.exp;
5056
- if (exp === void 0) return "no_expiry";
5057
- const remainingMs = exp * 1e3 - nowMs;
5058
- if (remainingMs <= 0) return "expired";
5059
- if (remainingMs <= PAY_CARD_REFRESH_THRESHOLD_MS)
5060
- return "refresh_recommended";
5061
- return "fresh";
5062
- }
5063
- function buildPayCardSigningInput(input) {
5064
- if (input.data.userId !== input.issuer) {
5065
- throw new FlurArtifactError(
5066
- "pay_card.data.userId must equal envelope issuer",
5067
- "INVALID_BODY"
5068
- );
5069
- }
5070
- const parsedData = PayCardArtifactSchema.parse(input.data);
5071
- const iat = input.issuedAtSeconds ?? Math.floor(Date.now() / 1e3);
5072
- const exp = input.expiresAtSeconds ?? iat + Math.floor(PAY_CARD_DEFAULT_TTL_MS / 1e3);
5073
- const body = buildArtifactBody({
5074
- type: ARTIFACT_TYPES.PAY_CARD,
5075
- issuer: input.issuer,
5076
- keyId: input.keyId,
5077
- data: parsedData,
5078
- nonce: input.nonce,
5079
- issuedAtSeconds: iat,
5080
- expiresAtSeconds: exp
5081
- });
5082
- return { body, bodyBytes: canonicalJSONBytes(body) };
5083
- }
5084
4970
  // Annotate the CommonJS export names for ESM import in node:
5085
4971
  0 && (module.exports = {
5086
4972
  ACCOUNT_FUNDED_OAC_MAX_TTL_MS,
@@ -5162,6 +5048,7 @@ function buildPayCardSigningInput(input) {
5162
5048
  OFFLINE_SMS_SETTLE_SIGNATURE_BYTES,
5163
5049
  OFFLINE_SMS_SETTLE_TOKEN_BYTES,
5164
5050
  OFFLINE_SMS_SETTLE_VERSION,
5051
+ OacPresentmentRequestSchema,
5165
5052
  OfflineClaimArtifactSchema,
5166
5053
  OfflinePaymentAuthorizationArtifactSchema,
5167
5054
  OfflinePaymentAuthorizationSchema,
@@ -5179,9 +5066,6 @@ function buildPayCardSigningInput(input) {
5179
5066
  PASS_STATES,
5180
5067
  PAYLOAD_FORMAT_INDICATOR_VALUE,
5181
5068
  PAYOUT_DESTINATION_STATUSES,
5182
- PAY_CARD_DEFAULT_TTL_MS,
5183
- PAY_CARD_REFRESH_THRESHOLD_MS,
5184
- PAY_CARD_URI_PREFIX,
5185
5069
  POINT_OF_INITIATION,
5186
5070
  PartnerFundingEventInputSchema,
5187
5071
  PartnerFundingSchema,
@@ -5189,7 +5073,6 @@ function buildPayCardSigningInput(input) {
5189
5073
  PassArtifactSchema,
5190
5074
  PassMetadataSchema,
5191
5075
  PassSchema,
5192
- PayCardArtifactSchema,
5193
5076
  PayCollectionInputSchema,
5194
5077
  PaymentClaimSchema,
5195
5078
  PaymentIntentArtifactSchema,
@@ -5228,7 +5111,6 @@ function buildPayCardSigningInput(input) {
5228
5111
  buildConsumerPaymentRequest,
5229
5112
  buildOAC,
5230
5113
  buildPass,
5231
- buildPayCardSigningInput,
5232
5114
  buildPaymentRequest,
5233
5115
  buildReceipt,
5234
5116
  buildRedemption,
@@ -5263,17 +5145,16 @@ function buildPayCardSigningInput(input) {
5263
5145
  createPartnerFundingClient,
5264
5146
  createPartnerProfileAdminClient,
5265
5147
  createPassesClient,
5266
- createPayCardArtifactUri,
5267
5148
  createReceiptArtifactUri,
5268
5149
  createReceiptsClient,
5269
5150
  createSoftwareP256Signer,
5270
5151
  decodeArtifactUri,
5271
5152
  decodeAuthorizationQR,
5272
5153
  decodeBase45,
5154
+ decodeConsumerOacRequest,
5273
5155
  decodeConsumerSettlementReceiptQR,
5274
5156
  decodeOfflineClaimSmsMessage,
5275
5157
  decodeOfflineSmsSettleToken,
5276
- decodePayCardArtifact,
5277
5158
  decodePaymentRequestQR,
5278
5159
  decodeUnverifiedConsumerOacQR,
5279
5160
  decodeUnverifiedConsumerSettlementReceiptQR,
@@ -5293,13 +5174,11 @@ function buildPayCardSigningInput(input) {
5293
5174
  generateDynamicQR,
5294
5175
  generateStaticQR,
5295
5176
  init,
5296
- inspectPayCardFreshness,
5297
5177
  isConsumerOacQR,
5298
5178
  isConsumerPaymentRequestExpired,
5299
5179
  isHardenedArtifactType,
5300
5180
  isKnownArtifactType,
5301
5181
  isPassWithinValidity,
5302
- isPayCardArtifactUri,
5303
5182
  moneyMinorToNumber,
5304
5183
  normalizeE164,
5305
5184
  parseAmountInput,
@@ -5328,7 +5207,6 @@ function buildPayCardSigningInput(input) {
5328
5207
  verifyOacOffline,
5329
5208
  verifyOfflineSmsSettleToken,
5330
5209
  verifyPass,
5331
- verifyPayCardArtifact,
5332
5210
  verifyPaymentRequest,
5333
5211
  verifyReceipt,
5334
5212
  verifyRedemption,