@stripe/link-sdk 0.9.1 → 0.10.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.
@@ -23,4 +23,4 @@ export {
23
23
  REPORT_TAGS,
24
24
  REPORT_ATTEMPT_TRACE_MAX_LENGTH
25
25
  };
26
- //# sourceMappingURL=chunk-TYOT25QK.js.map
26
+ //# sourceMappingURL=chunk-6TBWEVBG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/interfaces.ts"],"sourcesContent":["import type {\n ApprovalDetail,\n ApprovalPolicy,\n AvailableInsightTypesPage,\n BalancesPage,\n CredentialType,\n InsightsPage,\n LineItem,\n PaymentMethod,\n RequestApprovalResponse,\n ShippingAddressRecord,\n SourcesPage,\n SpendRequest,\n Total,\n TransactionOrigin,\n TransactionsPage,\n UcpCheckout,\n UcpCheckoutWithSpendRequest,\n UcpSearchResult,\n UserInfo,\n WebBotAuthBlock,\n} from '@/types/index';\n\nexport interface GetAccessTokenOptions {\n forceRefresh?: boolean;\n}\n\nexport type AccessTokenProvider = (\n options?: GetAccessTokenOptions,\n) => Promise<string> | string;\n\nexport interface AttestationRequestParams {\n count: number;\n}\n\nexport interface AttestationRequestResult {\n tokens: string[];\n issuer: string;\n token_key_id: string;\n count: number;\n}\n\nexport interface IAttestationsResource {\n request(params: AttestationRequestParams): Promise<AttestationRequestResult>;\n}\n\nexport type HolderPublicJwk = { kty: 'OKP'; crv: 'Ed25519'; x: string };\n\nexport interface IssueIdentityCredentialParams {\n cnf: { jwk: HolderPublicJwk };\n}\n\nexport interface IssueIdentityCredentialResponse {\n credential: string;\n issuer: string;\n expires_at: string;\n}\n\nexport interface IIdentityCredentialsResource {\n issue(\n params: IssueIdentityCredentialParams,\n ): Promise<IssueIdentityCredentialResponse>;\n}\n\nexport interface CreateSpendRequestParams {\n idempotency_key?: string;\n payment_details?: string;\n credential_type?: CredentialType;\n network_id?: string;\n execution_method?: 'link_pay_token';\n merchant_account_id?: string;\n amount?: number;\n currency?: string;\n merchant_name?: string;\n merchant_url?: string;\n context: string;\n line_items?: LineItem[];\n totals?: Total[];\n request_approval?: boolean;\n test?: boolean;\n approval_details?: ApprovalDetail;\n metadata?: Record<string, string>;\n}\n\nexport interface UpdateSpendRequestParams {\n payment_details?: string;\n amount?: number;\n merchant_url?: string;\n profile_id?: string;\n merchant_id?: string;\n currency?: string;\n line_items?: LineItem[];\n totals?: Total[];\n}\n\nexport interface ISpendRequestResource {\n list(opts?: { includeHistory?: boolean }): Promise<SpendRequest[]>;\n create(params: CreateSpendRequestParams): Promise<SpendRequest>;\n update(id: string, params: UpdateSpendRequestParams): Promise<SpendRequest>;\n requestApproval(id: string): Promise<RequestApprovalResponse>;\n cancel(id: string): Promise<SpendRequest>;\n retrieve(\n id: string,\n opts?: { include?: string[] },\n ): Promise<SpendRequest | null>;\n}\n\nexport interface IPaymentMethodsResource {\n list(): Promise<PaymentMethod[]>;\n retrieve(id: string): Promise<PaymentMethod | null>;\n update(id: string, params: UpdatePaymentMethodParams): Promise<PaymentMethod>;\n}\n\nexport interface UpdatePaymentMethodParams {\n nickname: string;\n}\n\nexport interface IShippingAddressResource {\n list(): Promise<ShippingAddressRecord[]>;\n}\n\nexport interface IUserInfoResource {\n retrieve(): Promise<UserInfo>;\n}\n\nexport interface IApprovalPolicyResource {\n retrieve(): Promise<ApprovalPolicy>;\n}\n\nexport interface IWebBotAuthResource {\n signUrl(url: string): Promise<WebBotAuthBlock>;\n}\n\nexport interface ListTransactionsParams {\n limit?: number;\n starting_after?: string;\n ending_before?: string;\n start_date?: string;\n end_date?: string;\n category?: string;\n origin?: TransactionOrigin;\n sources?: string[];\n}\n\nexport interface ITransactionsResource {\n list(params?: ListTransactionsParams): Promise<TransactionsPage>;\n}\n\nexport interface ListInsightTypesParams {\n limit?: number;\n starting_after?: string;\n}\n\nexport interface ListInsightsParams extends ListInsightTypesParams {\n insights?: string[];\n}\n\nexport interface IInsightsResource {\n listAvailableTypes(\n params?: ListInsightTypesParams,\n ): Promise<AvailableInsightTypesPage>;\n list(params?: ListInsightsParams): Promise<InsightsPage>;\n}\n\nexport interface ListSourcesParams {\n limit?: number;\n starting_after?: string;\n ending_before?: string;\n}\n\nexport interface ISourcesResource {\n list(params?: ListSourcesParams): Promise<SourcesPage>;\n}\n\nexport interface ListBalancesParams {\n sources?: string[];\n limit?: number;\n starting_after?: string;\n ending_before?: string;\n}\n\nexport interface IBalancesResource {\n list(params?: ListBalancesParams): Promise<BalancesPage>;\n}\n\nexport const REPORT_OUTCOMES = ['success', 'blocked', 'abandoned'] as const;\nexport type ReportOutcome = (typeof REPORT_OUTCOMES)[number];\n\nexport const REPORT_TAGS = [\n 'stripe_checkout',\n 'captcha',\n 'anti_bot_script',\n 'cdn_block',\n 'waf_block',\n 'dns_block',\n 'rate_limited',\n 'login_required',\n '3ds_challenge',\n 'page_inaccessible',\n 'timeout',\n 'site_error',\n 'payment_declined',\n 'other',\n] as const;\nexport type ReportTag = (typeof REPORT_TAGS)[number];\n\n/**\n * Server-side cap on `attempt_trace`. Longer values are truncated by the API\n * rather than rejected, so callers do not need to pre-trim.\n */\nexport const REPORT_ATTEMPT_TRACE_MAX_LENGTH = 8000;\n\nexport interface CreateReportParams {\n domain: string;\n outcome: ReportOutcome;\n spend_request_id: string;\n tags?: ReportTag[];\n step?: string;\n freeform_context?: string;\n attempt_trace?: string;\n}\n\nexport interface ReportRecord {\n object: string;\n created_at: string;\n domain: string;\n outcome: string;\n spend_request_id: string;\n status: string;\n}\n\nexport interface IReportResource {\n create(params: CreateReportParams): Promise<ReportRecord>;\n}\n\nexport interface SearchUcpCatalogParams {\n query?: string;\n profile_id?: string;\n sku?: string;\n brand?: string[];\n category?: string[];\n color?: string[];\n size?: string[];\n material?: string[];\n gender?: string[];\n condition?: string[];\n price_min?: number;\n price_max?: number;\n currency?: string;\n availability?: string;\n sort?: string;\n group_by?: string;\n limit?: number;\n offset?: number;\n include_facets?: boolean;\n test?: boolean;\n}\n\nexport interface UcpLineItem {\n sku_id: string;\n quantity: number;\n}\n\nexport interface CreateUcpCheckoutParams {\n profile_id: string;\n line_items: UcpLineItem[];\n currency?: string;\n fulfillment_details?: Record<string, unknown>;\n test?: boolean;\n}\n\nexport interface CompleteUcpCheckoutParams {\n spend_request_id: string;\n profile_id: string;\n test?: boolean;\n}\n\nexport interface RetrieveUcpCheckoutParams {\n spend_request_id: string;\n test?: boolean;\n}\n\nexport interface IUcpResource {\n searchCatalog(params: SearchUcpCatalogParams): Promise<UcpSearchResult>;\n createCheckout(params: CreateUcpCheckoutParams): Promise<UcpCheckout>;\n completeCheckout(\n id: string,\n params: CompleteUcpCheckoutParams,\n ): Promise<UcpCheckout>;\n retrieveCheckout(\n id: string,\n params: RetrieveUcpCheckoutParams,\n ): Promise<UcpCheckoutWithSpendRequest>;\n}\n"],"mappings":";AAyLO,IAAM,kBAAkB,CAAC,WAAW,WAAW,WAAW;AAG1D,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOO,IAAM,kCAAkC;","names":[]}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { LinkOptions } from '@/config';
2
- import type { IApprovalPolicyResource, IAttestationsResource, IBalancesResource, IIdentityCredentialsResource, IPaymentMethodsResource, IReportResource, IShippingAddressResource, ISourcesResource, ISpendRequestResource, ITransactionsResource, IUcpResource, IUserInfoResource, IWebBotAuthResource } from '@/resources/interfaces';
2
+ import type { IApprovalPolicyResource, IAttestationsResource, IBalancesResource, IIdentityCredentialsResource, IInsightsResource, IPaymentMethodsResource, IReportResource, IShippingAddressResource, ISourcesResource, ISpendRequestResource, ITransactionsResource, IUcpResource, IUserInfoResource, IWebBotAuthResource } from '@/resources/interfaces';
3
3
  export declare class Link {
4
4
  readonly attestations: IAttestationsResource;
5
5
  readonly identityCredentials: IIdentityCredentialsResource;
@@ -9,6 +9,7 @@ export declare class Link {
9
9
  readonly userInfo: IUserInfoResource;
10
10
  readonly approvalPolicy: IApprovalPolicyResource;
11
11
  readonly transactions: ITransactionsResource;
12
+ readonly insights: IInsightsResource;
12
13
  readonly sources: ISourcesResource;
13
14
  readonly balances: IBalancesResource;
14
15
  readonly webBotAuth: IWebBotAuthResource;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAWhC,qBAAa,IAAI;IACf,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAE3B,YAAY,OAAO,EAAE,WAAW,EAc/B;CACF;eAEc,IAAI"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAWhC,qBAAa,IAAI;IACf,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAE3B,YAAY,OAAO,EAAE,WAAW,EAe/B;CACF;eAEc,IAAI"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { LinkApiError, LinkConfigurationError, LinkResponseError, LinkSdkError,
4
4
  export { ApprovalPolicyResource } from './resources/approval-policy';
5
5
  export * from './resources/attestations';
6
6
  export { holderJwksEqual, holderJwkThumbprint, parseHolderPublicJwk, } from './resources/holder-jwk';
7
+ export { InsightsResource } from './resources/insights';
7
8
  export * from './resources/interfaces';
8
9
  export { getDuplicateSpendRequest } from './resources/spend-request';
9
10
  export * from './types/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  REPORT_ATTEMPT_TRACE_MAX_LENGTH,
3
3
  REPORT_OUTCOMES,
4
4
  REPORT_TAGS
5
- } from "./chunk-TYOT25QK.js";
5
+ } from "./chunk-6TBWEVBG.js";
6
6
 
7
7
  // src/resources/approval-policy.ts
8
8
  import { z } from "zod";
@@ -1135,24 +1135,102 @@ var IdentityCredentialsResource = class extends BaseResource {
1135
1135
  }
1136
1136
  };
1137
1137
 
1138
- // src/resources/payment-methods.ts
1138
+ // src/resources/insights.ts
1139
1139
  import { z as z5 } from "zod";
1140
- var balanceDetailsSchema = z5.looseObject({
1141
- available_balance: z5.looseObject({
1142
- amount: z5.number().int(),
1143
- currency: z5.string()
1140
+ var authorizationRemediationSchema = z5.looseObject({
1141
+ scope: z5.array(z5.string()).optional(),
1142
+ authorization_details: z5.array(z5.looseObject({ type: z5.string(), actions: z5.array(z5.string()) })).optional()
1143
+ });
1144
+ var availableInsightTypesPageSchema = z5.looseObject({
1145
+ data: z5.array(
1146
+ z5.looseObject({
1147
+ id: z5.string(),
1148
+ description: z5.string(),
1149
+ authorization_remediation: authorizationRemediationSchema.nullable().optional()
1150
+ })
1151
+ ),
1152
+ has_more: z5.boolean()
1153
+ });
1154
+ var insightsPageSchema = z5.looseObject({
1155
+ data: z5.array(
1156
+ z5.looseObject({
1157
+ id: z5.string(),
1158
+ description: z5.string(),
1159
+ status: z5.string(),
1160
+ as_of: z5.number().nullable().optional(),
1161
+ data: z5.array(z5.looseObject({ label: z5.string(), value: z5.unknown() })).nullable().optional(),
1162
+ error_code: z5.string().nullable().optional(),
1163
+ error_message: z5.string().nullable().optional(),
1164
+ authorization_remediation: authorizationRemediationSchema.nullable().optional()
1165
+ })
1166
+ ),
1167
+ has_more: z5.boolean()
1168
+ });
1169
+ var InsightsResource = class extends BaseResource {
1170
+ constructor(options) {
1171
+ super(options, "/insights");
1172
+ }
1173
+ async listAvailableTypes(params = {}) {
1174
+ const url = new URL(`${this.endpoint}/available_types`);
1175
+ if (params.limit !== void 0)
1176
+ url.searchParams.set("limit", String(params.limit));
1177
+ if (params.starting_after !== void 0)
1178
+ url.searchParams.set("starting_after", params.starting_after);
1179
+ const { status, data, rawBody } = await this.apiFetch({
1180
+ method: "GET",
1181
+ url: url.toString()
1182
+ });
1183
+ if (status < 200 || status >= 300)
1184
+ this.throwApiError("list available insight types", status, data, rawBody);
1185
+ return this.parseResponse(
1186
+ "list available insight types",
1187
+ status,
1188
+ () => availableInsightTypesPageSchema.parse(
1189
+ data
1190
+ )
1191
+ );
1192
+ }
1193
+ async list(params = {}) {
1194
+ const url = new URL(this.endpoint);
1195
+ if (params.limit !== void 0)
1196
+ url.searchParams.set("limit", String(params.limit));
1197
+ if (params.starting_after !== void 0)
1198
+ url.searchParams.set("starting_after", params.starting_after);
1199
+ if (params.insights !== void 0)
1200
+ for (const insight of params.insights)
1201
+ url.searchParams.append("insights[]", insight);
1202
+ const { status, data, rawBody } = await this.apiFetch({
1203
+ method: "GET",
1204
+ url: url.toString()
1205
+ });
1206
+ if (status < 200 || status >= 300)
1207
+ this.throwApiError("list insights", status, data, rawBody);
1208
+ return this.parseResponse(
1209
+ "list insights",
1210
+ status,
1211
+ () => insightsPageSchema.parse(data)
1212
+ );
1213
+ }
1214
+ };
1215
+
1216
+ // src/resources/payment-methods.ts
1217
+ import { z as z6 } from "zod";
1218
+ var balanceDetailsSchema = z6.looseObject({
1219
+ available_balance: z6.looseObject({
1220
+ amount: z6.number().int(),
1221
+ currency: z6.string()
1144
1222
  }).optional()
1145
1223
  });
1146
- var paymentMethodSchema = z5.looseObject({
1147
- id: z5.string(),
1148
- type: z5.string(),
1149
- is_default: z5.boolean(),
1150
- name: z5.string(),
1151
- nickname: z5.optional(z5.string().nullable()),
1224
+ var paymentMethodSchema = z6.looseObject({
1225
+ id: z6.string(),
1226
+ type: z6.string(),
1227
+ is_default: z6.boolean(),
1228
+ name: z6.string(),
1229
+ nickname: z6.optional(z6.string().nullable()),
1152
1230
  balance_details: balanceDetailsSchema.nullable().optional()
1153
1231
  });
1154
- var paymentMethodsResponseSchema = z5.looseObject({
1155
- payment_details: z5.array(paymentMethodSchema)
1232
+ var paymentMethodsResponseSchema = z6.looseObject({
1233
+ payment_details: z6.array(paymentMethodSchema)
1156
1234
  });
1157
1235
  var PaymentMethodsResource = class extends BaseResource {
1158
1236
  constructor(options) {
@@ -1206,14 +1284,14 @@ var PaymentMethodsResource = class extends BaseResource {
1206
1284
  };
1207
1285
 
1208
1286
  // src/resources/report.ts
1209
- import { z as z6 } from "zod";
1210
- var reportRecordSchema = z6.looseObject({
1211
- object: z6.string(),
1212
- created_at: z6.string(),
1213
- domain: z6.string(),
1214
- outcome: z6.string(),
1215
- spend_request_id: z6.string(),
1216
- status: z6.string()
1287
+ import { z as z7 } from "zod";
1288
+ var reportRecordSchema = z7.looseObject({
1289
+ object: z7.string(),
1290
+ created_at: z7.string(),
1291
+ domain: z7.string(),
1292
+ outcome: z7.string(),
1293
+ spend_request_id: z7.string(),
1294
+ status: z7.string()
1217
1295
  });
1218
1296
  var ReportResource = class extends BaseResource {
1219
1297
  constructor(options) {
@@ -1238,15 +1316,15 @@ var ReportResource = class extends BaseResource {
1238
1316
  };
1239
1317
 
1240
1318
  // src/resources/shipping-address.ts
1241
- import { z as z7 } from "zod";
1242
- var shippingAddressSchema = z7.looseObject({
1243
- id: z7.string(),
1244
- is_default: z7.boolean(),
1245
- nickname: z7.optional(z7.string().nullable()),
1246
- address: z7.looseObject({}).nullable()
1319
+ import { z as z8 } from "zod";
1320
+ var shippingAddressSchema = z8.looseObject({
1321
+ id: z8.string(),
1322
+ is_default: z8.boolean(),
1323
+ nickname: z8.optional(z8.string().nullable()),
1324
+ address: z8.looseObject({}).nullable()
1247
1325
  });
1248
- var shippingAddressesResponseSchema = z7.looseObject({
1249
- shipping_addresses: z7.array(shippingAddressSchema)
1326
+ var shippingAddressesResponseSchema = z8.looseObject({
1327
+ shipping_addresses: z8.array(shippingAddressSchema)
1250
1328
  });
1251
1329
  var ShippingAddressResource = class extends BaseResource {
1252
1330
  constructor(options) {
@@ -1269,21 +1347,21 @@ var ShippingAddressResource = class extends BaseResource {
1269
1347
  };
1270
1348
 
1271
1349
  // src/resources/sources.ts
1272
- import { z as z8 } from "zod";
1273
- var nullableRecordSchema = z8.record(z8.string(), z8.unknown()).nullable().optional();
1274
- var sourceSchema = z8.looseObject({
1275
- id: z8.string().nullable().optional(),
1276
- name: z8.string().nullable().optional(),
1277
- type: z8.string().nullable().optional(),
1350
+ import { z as z9 } from "zod";
1351
+ var nullableRecordSchema = z9.record(z9.string(), z9.unknown()).nullable().optional();
1352
+ var sourceSchema = z9.looseObject({
1353
+ id: z9.string().nullable().optional(),
1354
+ name: z9.string().nullable().optional(),
1355
+ type: z9.string().nullable().optional(),
1278
1356
  capabilities: nullableRecordSchema,
1279
1357
  external_connection: nullableRecordSchema,
1280
- granted_actions: z8.array(z8.string()).nullable().optional(),
1358
+ granted_actions: z9.array(z9.string()).nullable().optional(),
1281
1359
  bank_account: nullableRecordSchema,
1282
1360
  card: nullableRecordSchema
1283
1361
  });
1284
- var sourcesPageSchema = z8.looseObject({
1285
- data: z8.array(sourceSchema),
1286
- has_more: z8.boolean().optional()
1362
+ var sourcesPageSchema = z9.looseObject({
1363
+ data: z9.array(sourceSchema),
1364
+ has_more: z9.boolean().optional()
1287
1365
  });
1288
1366
  var SourcesResource = class extends BaseResource {
1289
1367
  constructor(options) {
@@ -1319,34 +1397,34 @@ var SourcesResource = class extends BaseResource {
1319
1397
  };
1320
1398
 
1321
1399
  // src/resources/spend-request.ts
1322
- import { z as z9 } from "zod";
1323
- var sharedPaymentTokenSchema = z9.union([
1324
- z9.string().transform((id) => ({ id })),
1325
- z9.looseObject({ id: z9.string() })
1400
+ import { z as z10 } from "zod";
1401
+ var sharedPaymentTokenSchema = z10.union([
1402
+ z10.string().transform((id) => ({ id })),
1403
+ z10.looseObject({ id: z10.string() })
1326
1404
  ]);
1327
- var spendRequestSchema = z9.looseObject({
1328
- id: z9.string(),
1329
- payment_details: z9.string().optional(),
1330
- status: z9.string(),
1331
- line_items: z9.array(z9.unknown()).optional(),
1332
- totals: z9.array(z9.unknown()).optional(),
1333
- created_at: z9.string(),
1334
- updated_at: z9.string(),
1405
+ var spendRequestSchema = z10.looseObject({
1406
+ id: z10.string(),
1407
+ payment_details: z10.string().optional(),
1408
+ status: z10.string(),
1409
+ line_items: z10.array(z10.unknown()).optional(),
1410
+ totals: z10.array(z10.unknown()).optional(),
1411
+ created_at: z10.string(),
1412
+ updated_at: z10.string(),
1335
1413
  shared_payment_token: sharedPaymentTokenSchema.nullable().optional()
1336
1414
  });
1337
- var spendRequestsResponseSchema = z9.looseObject({
1338
- data: z9.array(spendRequestSchema)
1415
+ var spendRequestsResponseSchema = z10.looseObject({
1416
+ data: z10.array(spendRequestSchema)
1339
1417
  });
1340
- var requestApprovalResponseSchema = z9.looseObject({
1341
- id: z9.string(),
1342
- approval_link: z9.string()
1418
+ var requestApprovalResponseSchema = z10.looseObject({
1419
+ id: z10.string(),
1420
+ approval_link: z10.string()
1343
1421
  }).transform(({ approval_link, ...response }) => ({
1344
1422
  ...response,
1345
1423
  approval_url: approval_link
1346
1424
  }));
1347
- var duplicateSpendRequestErrorSchema = z9.looseObject({
1348
- error: z9.looseObject({
1349
- duplicate_spend_request: z9.unknown().optional()
1425
+ var duplicateSpendRequestErrorSchema = z10.looseObject({
1426
+ error: z10.looseObject({
1427
+ duplicate_spend_request: z10.unknown().optional()
1350
1428
  })
1351
1429
  });
1352
1430
  function parseSpendRequest(value) {
@@ -1466,23 +1544,23 @@ var SpendRequestResource = class extends BaseResource {
1466
1544
  };
1467
1545
 
1468
1546
  // src/resources/transactions.ts
1469
- import { z as z10 } from "zod";
1470
- var transactionSchema = z10.looseObject({
1471
- id: z10.string(),
1472
- source_id: z10.string().nullable(),
1473
- amount: z10.number(),
1474
- currency: z10.string(),
1475
- created_date: z10.string(),
1476
- description: z10.string(),
1477
- origin: z10.enum(["link", "external_connection"]),
1478
- category: z10.string().nullable(),
1479
- status: z10.string()
1547
+ import { z as z11 } from "zod";
1548
+ var transactionSchema = z11.looseObject({
1549
+ id: z11.string(),
1550
+ source_id: z11.string().nullable(),
1551
+ amount: z11.number(),
1552
+ currency: z11.string(),
1553
+ created_date: z11.string(),
1554
+ description: z11.string(),
1555
+ origin: z11.enum(["link", "external_connection"]),
1556
+ category: z11.string().nullable(),
1557
+ status: z11.string()
1480
1558
  });
1481
- var transactionsPageSchema = z10.union([
1482
- z10.array(transactionSchema).transform((data) => ({ data })),
1483
- z10.looseObject({
1484
- data: z10.array(transactionSchema),
1485
- has_more: z10.boolean().optional()
1559
+ var transactionsPageSchema = z11.union([
1560
+ z11.array(transactionSchema).transform((data) => ({ data })),
1561
+ z11.looseObject({
1562
+ data: z11.array(transactionSchema),
1563
+ has_more: z11.boolean().optional()
1486
1564
  })
1487
1565
  ]);
1488
1566
  var TransactionsResource = class extends BaseResource {
@@ -1736,49 +1814,49 @@ var UcpResource = class {
1736
1814
  };
1737
1815
 
1738
1816
  // src/resources/user-info.ts
1739
- import { z as z11 } from "zod";
1740
- var rollingSpendLimitSchema = z11.object({
1741
- limit: z11.number().int().nullable(),
1742
- used: z11.number().int(),
1743
- remaining: z11.number().int().nullable()
1817
+ import { z as z12 } from "zod";
1818
+ var rollingSpendLimitSchema = z12.object({
1819
+ limit: z12.number().int().nullable(),
1820
+ used: z12.number().int(),
1821
+ remaining: z12.number().int().nullable()
1744
1822
  });
1745
- var agentWalletSpendLimitsSchema = z11.object({
1746
- per_transaction: z11.object({
1747
- limit: z11.number().int().nullable()
1823
+ var agentWalletSpendLimitsSchema = z12.object({
1824
+ per_transaction: z12.object({
1825
+ limit: z12.number().int().nullable()
1748
1826
  }),
1749
1827
  daily: rollingSpendLimitSchema,
1750
1828
  thirty_day: rollingSpendLimitSchema
1751
1829
  });
1752
- var agentWalletVerificationRequirementSchema = z11.object({
1753
- status: z11.enum([
1830
+ var agentWalletVerificationRequirementSchema = z12.object({
1831
+ status: z12.enum([
1754
1832
  "not_required",
1755
1833
  "ssn_verification",
1756
1834
  "identity_verification",
1757
1835
  "contact_support",
1758
1836
  "complete"
1759
1837
  ]),
1760
- action_url: z11.string().nullable()
1838
+ action_url: z12.string().nullable()
1761
1839
  });
1762
- var userInfoAddressSchema = z11.object({
1763
- line1: z11.string().nullable(),
1764
- line2: z11.string().nullable().optional(),
1765
- city: z11.string().nullable(),
1766
- state: z11.string().nullable(),
1767
- postal_code: z11.string().nullable(),
1768
- country: z11.string().nullable()
1840
+ var userInfoAddressSchema = z12.object({
1841
+ line1: z12.string().nullable(),
1842
+ line2: z12.string().nullable().optional(),
1843
+ city: z12.string().nullable(),
1844
+ state: z12.string().nullable(),
1845
+ postal_code: z12.string().nullable(),
1846
+ country: z12.string().nullable()
1769
1847
  }).transform(({ line2, ...address }) => ({
1770
1848
  ...address,
1771
1849
  ...line2 === void 0 ? {} : { line2 }
1772
1850
  }));
1773
- var userInfoSchema = z11.looseObject({
1774
- id: z11.string().min(1).optional(),
1775
- email: z11.string().nullable().optional(),
1776
- name: z11.string().nullable().optional(),
1777
- first_name: z11.string().nullable().optional(),
1778
- last_name: z11.string().nullable().optional(),
1779
- phone: z11.string().nullable().optional(),
1851
+ var userInfoSchema = z12.looseObject({
1852
+ id: z12.string().min(1).optional(),
1853
+ email: z12.string().nullable().optional(),
1854
+ name: z12.string().nullable().optional(),
1855
+ first_name: z12.string().nullable().optional(),
1856
+ last_name: z12.string().nullable().optional(),
1857
+ phone: z12.string().nullable().optional(),
1780
1858
  address: userInfoAddressSchema.nullable().optional(),
1781
- eligible_for_balance: z11.boolean().optional(),
1859
+ eligible_for_balance: z12.boolean().optional(),
1782
1860
  agent_wallet_spend_limits: agentWalletSpendLimitsSchema.optional(),
1783
1861
  agent_wallet_step_up: agentWalletVerificationRequirementSchema.optional()
1784
1862
  }).transform(
@@ -1827,16 +1905,16 @@ var UserInfoResource = class extends BaseResource {
1827
1905
  };
1828
1906
 
1829
1907
  // src/resources/web-bot-auth.ts
1830
- import { z as z12 } from "zod";
1908
+ import { z as z13 } from "zod";
1831
1909
  var EXPIRY_BUFFER_MS = 3e4;
1832
- var webBotAuthBlockSchema = z12.looseObject({
1833
- signature: z12.string(),
1834
- signature_input: z12.string(),
1835
- signature_agent: z12.string(),
1836
- authority: z12.string(),
1837
- expires_at: z12.string()
1910
+ var webBotAuthBlockSchema = z13.looseObject({
1911
+ signature: z13.string(),
1912
+ signature_input: z13.string(),
1913
+ signature_agent: z13.string(),
1914
+ authority: z13.string(),
1915
+ expires_at: z13.string()
1838
1916
  });
1839
- var webBotAuthResponseSchema = z12.looseObject({
1917
+ var webBotAuthResponseSchema = z13.looseObject({
1840
1918
  web_bot_auth: webBotAuthBlockSchema
1841
1919
  });
1842
1920
  var WebBotAuthResource = class extends BaseResource {
@@ -1890,6 +1968,7 @@ var Link = class {
1890
1968
  userInfo;
1891
1969
  approvalPolicy;
1892
1970
  transactions;
1971
+ insights;
1893
1972
  sources;
1894
1973
  balances;
1895
1974
  webBotAuth;
@@ -1904,6 +1983,7 @@ var Link = class {
1904
1983
  this.userInfo = new UserInfoResource(options);
1905
1984
  this.approvalPolicy = new ApprovalPolicyResource(options);
1906
1985
  this.transactions = new TransactionsResource(options);
1986
+ this.insights = new InsightsResource(options);
1907
1987
  this.sources = new SourcesResource(options);
1908
1988
  this.balances = new BalancesResource(options);
1909
1989
  this.webBotAuth = new WebBotAuthResource(options);
@@ -1915,6 +1995,7 @@ var client_default = Link;
1915
1995
  export {
1916
1996
  ApprovalPolicyResource,
1917
1997
  AttestationsResource,
1998
+ InsightsResource,
1918
1999
  Link,
1919
2000
  LinkApiError,
1920
2001
  LinkConfigurationError,