@medialane/sdk 0.71.0 → 0.72.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.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as ServiceDefinition, a as ServiceCapability } from './services-D7n-cJYt.cjs';
2
- export { A as ActivityType, b as ApiActivitiesQuery, c as ApiActivity, d as ApiActivityPrice, e as ApiAdminCollectionClaim, f as ApiAppSource, g as ApiChain, h as ApiClient, i as ApiCoin, j as ApiCoinsQuery, k as ApiCollection, l as ApiCollectionClaim, m as ApiCollectionProfile, n as ApiCollectionSlugClaim, o as ApiCollectionsQuery, p as ApiComment, q as ApiCounterOffersQuery, r as ApiCreatorListResult, s as ApiCreatorProfile, t as ApiIntent, u as ApiIntentCreated, v as ApiKeyStatus, w as ApiMeta, x as ApiMetadataSignedUrl, y as ApiMetadataUpload, z as ApiOrder, B as ApiOrderConsideration, C as ApiOrderOffer, D as ApiOrderPrice, E as ApiOrderTokenMeta, F as ApiOrderTxHash, G as ApiOrdersQuery, H as ApiPointEvent, I as ApiPortalKey, J as ApiPortalKeyCreated, K as ApiPortalMe, L as ApiPublicRemix, M as ApiRemixOffer, N as ApiRemixOfferPrice, O as ApiRemixOffersQuery, P as ApiResponse, Q as ApiRewardsBadge, R as ApiRewardsBatchEntry, T as ApiRewardsConfig, U as ApiRewardsLeaderboardEntry, V as ApiRewardsLevel, W as ApiSearchCollectionResult, X as ApiSearchCreatorResult, Y as ApiSearchResult, Z as ApiSearchTokenResult, _ as ApiToken, $ as ApiTokenBalance, a0 as ApiTokenMetadata, a1 as ApiUsageDay, a2 as ApiUserRewards, a3 as ApiUserWallet, a4 as ApiWebhookCreated, a5 as ApiWebhookEndpoint, a6 as AutoRemixOfferParams, a7 as CancelOrderIntentParams, a8 as ChainFilter, a9 as ClaimConditions, aa as CollectionSort, ab as CollectionTokensSort, ac as ConfirmRemixOfferParams, ad as ConfirmSelfRemixParams, ae as ConsiderationItem, af as CreateCollectionIntentParams, ag as CreateCounterOfferIntentParams, ah as CreateDropParams, ai as CreateListingIntentParams, aj as CreateMembershipParams, ak as CreateMintIntentParams, al as CreatePopCollectionParams, am as CreateRemixOfferParams, an as CreateSponsorshipOfferParams, ao as CreateTicketParams, ap as CreateWebhookParams, aq as DropMintStatus, ar as EnforcementDeclaration, as as FeeConfig, at as FeeConfigSchema, au as FulfillOrderIntentParams, av as IPType, aw as IntentCall, ax as IntentStatus, ay as IntentType, az as IpAttribute, aA as IpNftMetadata, aB as MakeOfferIntentParams, aC as MedialaneApiError, aD as MedialaneConfig, aE as MedialaneErrorCode, aF as MintMembershipsParams, aG as MintTicketsParams, aH as OPEN_LICENSES, aI as OfferItem, aJ as OpenLicense, aK as Order, aL as OrderDetails, aM as OrderParameters, aN as OrderStatus, aO as PopBatchEligibilityItem, aP as PopClaimStatus, aQ as PopEventType, aR as ProposeSponsorshipParams, aS as RemixOfferStatus, aT as ResolvedConfig, aU as ResolvedFeeConfig, aV as RetryOptions, aW as ServiceEventDeclaration, aX as SortOrder, aY as TenantPlan, aZ as TxResult, a_ as WebhookEventType, a$ as WebhookStatus, b0 as resolveConfig, b1 as resolveFeeConfig } from './services-D7n-cJYt.cjs';
1
+ import { S as ServiceDefinition, a as ServiceCapability } from './services-CGbMik_G.cjs';
2
+ export { A as ActivityType, b as ApiActivitiesQuery, c as ApiActivity, d as ApiActivityPrice, e as ApiAdminCollectionClaim, f as ApiAppSource, g as ApiChain, h as ApiClient, i as ApiCoin, j as ApiCoinsQuery, k as ApiCollection, l as ApiCollectionClaim, m as ApiCollectionProfile, n as ApiCollectionSlugClaim, o as ApiCollectionsQuery, p as ApiComment, q as ApiCounterOffersQuery, r as ApiCreatorListResult, s as ApiCreatorProfile, t as ApiIntent, u as ApiIntentCreated, v as ApiKeyStatus, w as ApiMeta, x as ApiMetadataSignedUrl, y as ApiMetadataUpload, z as ApiOrder, B as ApiOrderConsideration, C as ApiOrderOffer, D as ApiOrderPrice, E as ApiOrderTokenMeta, F as ApiOrderTxHash, G as ApiOrdersQuery, H as ApiPointEvent, I as ApiPortalKey, J as ApiPortalKeyCreated, K as ApiPortalMe, L as ApiPublicRemix, M as ApiRemixOffer, N as ApiRemixOfferPrice, O as ApiRemixOffersQuery, P as ApiResponse, Q as ApiRewardsBadge, R as ApiRewardsBatchEntry, T as ApiRewardsConfig, U as ApiRewardsLeaderboardEntry, V as ApiRewardsLevel, W as ApiSearchCollectionResult, X as ApiSearchCreatorResult, Y as ApiSearchResult, Z as ApiSearchTokenResult, _ as ApiToken, $ as ApiTokenBalance, a0 as ApiTokenMetadata, a1 as ApiUsageDay, a2 as ApiUserRewards, a3 as ApiUserWallet, a4 as ApiWebhookCreated, a5 as ApiWebhookEndpoint, a6 as AutoRemixOfferParams, a7 as CancelOrderIntentParams, a8 as ChainFilter, a9 as ClaimConditions, aa as CollectionSort, ab as CollectionTokensSort, ac as ConfirmRemixOfferParams, ad as ConfirmSelfRemixParams, ae as ConsiderationItem, af as CreateCollectionIntentParams, ag as CreateCounterOfferIntentParams, ah as CreateDropParams, ai as CreateListingIntentParams, aj as CreateMembershipParams, ak as CreateMintIntentParams, al as CreatePopCollectionParams, am as CreateRemixOfferParams, an as CreateSponsorshipOfferParams, ao as CreateTicketParams, ap as CreateWebhookParams, aq as DropMintStatus, ar as EnforcementDeclaration, as as FeeConfig, at as FeeConfigSchema, au as FulfillOrderIntentParams, av as IPType, aw as IntentCall, ax as IntentStatus, ay as IntentType, az as IpAttribute, aA as IpNftMetadata, aB as MakeOfferIntentParams, aC as MedialaneApiError, aD as MedialaneConfig, aE as MedialaneErrorCode, aF as MintMembershipsParams, aG as MintTicketsParams, aH as OPEN_LICENSES, aI as OfferItem, aJ as OpenLicense, aK as Order, aL as OrderDetails, aM as OrderParameters, aN as OrderStatus, aO as PopBatchEligibilityItem, aP as PopClaimStatus, aQ as PopEventType, aR as ProposeSponsorshipParams, aS as RemixOfferStatus, aT as ResolvedConfig, aU as ResolvedFeeConfig, aV as RetryOptions, aW as ServiceEventDeclaration, aX as SortOrder, aY as TenantPlan, aZ as TxResult, a_ as WebhookEventType, a$ as WebhookStatus, b0 as resolveConfig, b1 as resolveFeeConfig } from './services-CGbMik_G.cjs';
3
3
  import { C as Chain } from './types-Cdwb6lXp.cjs';
4
4
  export { A as AdapterTxResult, a as AssetRef, b as CHAINS, c as ChainCoordinates, d as CoordinatesByChain, e as CreateCollectionInput, D as DEFAULT_CHAIN, E as EvmCoordinates, I as IssuanceAdapter, M as MintInput, O as OrderRef, R as RegisterOrderParams, S as SolanaCoordinates, f as StarknetCoordinates, g as StellarCoordinates, V as VenueAdapter, h as getCoordinates, i as getStarknetCoordinates } from './types-Cdwb6lXp.cjs';
5
5
  import 'zod';
@@ -65,6 +65,19 @@ type SupportedTokenSymbol = (typeof SUPPORTED_TOKENS)[number]["symbol"];
65
65
  /** Default currency for listings and offers — Circle-native USDC on Starknet. */
66
66
  declare const DEFAULT_CURRENCY: SupportedTokenSymbol;
67
67
 
68
+ /** Chains that resolve in a URL today. Extend when a second chain is displayable. */
69
+ declare const SUPPORTED_URL_CHAINS: readonly ["STARKNET"];
70
+ /** Chain enum → lowercase URL slug. The ONLY place the slug literal is produced. */
71
+ declare function chainSlug(chain: Chain): string;
72
+ /** URL slug → Chain enum, or null for an unknown/unsupported slug (caller 404s). */
73
+ declare function chainFromSlug(slug: string): Chain | null;
74
+ /** Nullish contract/token/address values coerce to "" — an absent id was never
75
+ * a valid link anyway, and this keeps callers free of artificial null guards. */
76
+ type Idish = string | number | null | undefined;
77
+ declare function assetHref(chain: Chain, contract: Idish, tokenId: Idish): string;
78
+ declare function collectionHref(chain: Chain, contract: Idish): string;
79
+ declare function coinHref(chain: Chain, address: Idish): string;
80
+
68
81
  /**
69
82
  * The Medialane service registry (05-service-model §II, §VI).
70
83
  * Canonical long-form IDs (01-core-model §III). SDK-resident in v1;
@@ -520,4 +533,4 @@ interface FailoverFetchOptions {
520
533
  */
521
534
  declare function createFailoverFetch(urls: string[], options?: FailoverFetchOptions): typeof fetch;
522
535
 
523
- export { Chain, DEFAULT_CURRENCY, type FailoverFetchOptions, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, ServiceCapability, ServiceDefinition, type ServiceId, type SupportedToken, type SupportedTokenSymbol, createFailoverFetch, formatAmount, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, shortenAddress, stringifyBigInts, u256ToBigInt };
536
+ export { Chain, DEFAULT_CURRENCY, type FailoverFetchOptions, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SupportedToken, type SupportedTokenSymbol, assetHref, chainFromSlug, chainSlug, coinHref, collectionHref, createFailoverFetch, formatAmount, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, shortenAddress, stringifyBigInts, u256ToBigInt };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as ServiceDefinition, a as ServiceCapability } from './services-B4E-tTin.js';
2
- export { A as ActivityType, b as ApiActivitiesQuery, c as ApiActivity, d as ApiActivityPrice, e as ApiAdminCollectionClaim, f as ApiAppSource, g as ApiChain, h as ApiClient, i as ApiCoin, j as ApiCoinsQuery, k as ApiCollection, l as ApiCollectionClaim, m as ApiCollectionProfile, n as ApiCollectionSlugClaim, o as ApiCollectionsQuery, p as ApiComment, q as ApiCounterOffersQuery, r as ApiCreatorListResult, s as ApiCreatorProfile, t as ApiIntent, u as ApiIntentCreated, v as ApiKeyStatus, w as ApiMeta, x as ApiMetadataSignedUrl, y as ApiMetadataUpload, z as ApiOrder, B as ApiOrderConsideration, C as ApiOrderOffer, D as ApiOrderPrice, E as ApiOrderTokenMeta, F as ApiOrderTxHash, G as ApiOrdersQuery, H as ApiPointEvent, I as ApiPortalKey, J as ApiPortalKeyCreated, K as ApiPortalMe, L as ApiPublicRemix, M as ApiRemixOffer, N as ApiRemixOfferPrice, O as ApiRemixOffersQuery, P as ApiResponse, Q as ApiRewardsBadge, R as ApiRewardsBatchEntry, T as ApiRewardsConfig, U as ApiRewardsLeaderboardEntry, V as ApiRewardsLevel, W as ApiSearchCollectionResult, X as ApiSearchCreatorResult, Y as ApiSearchResult, Z as ApiSearchTokenResult, _ as ApiToken, $ as ApiTokenBalance, a0 as ApiTokenMetadata, a1 as ApiUsageDay, a2 as ApiUserRewards, a3 as ApiUserWallet, a4 as ApiWebhookCreated, a5 as ApiWebhookEndpoint, a6 as AutoRemixOfferParams, a7 as CancelOrderIntentParams, a8 as ChainFilter, a9 as ClaimConditions, aa as CollectionSort, ab as CollectionTokensSort, ac as ConfirmRemixOfferParams, ad as ConfirmSelfRemixParams, ae as ConsiderationItem, af as CreateCollectionIntentParams, ag as CreateCounterOfferIntentParams, ah as CreateDropParams, ai as CreateListingIntentParams, aj as CreateMembershipParams, ak as CreateMintIntentParams, al as CreatePopCollectionParams, am as CreateRemixOfferParams, an as CreateSponsorshipOfferParams, ao as CreateTicketParams, ap as CreateWebhookParams, aq as DropMintStatus, ar as EnforcementDeclaration, as as FeeConfig, at as FeeConfigSchema, au as FulfillOrderIntentParams, av as IPType, aw as IntentCall, ax as IntentStatus, ay as IntentType, az as IpAttribute, aA as IpNftMetadata, aB as MakeOfferIntentParams, aC as MedialaneApiError, aD as MedialaneConfig, aE as MedialaneErrorCode, aF as MintMembershipsParams, aG as MintTicketsParams, aH as OPEN_LICENSES, aI as OfferItem, aJ as OpenLicense, aK as Order, aL as OrderDetails, aM as OrderParameters, aN as OrderStatus, aO as PopBatchEligibilityItem, aP as PopClaimStatus, aQ as PopEventType, aR as ProposeSponsorshipParams, aS as RemixOfferStatus, aT as ResolvedConfig, aU as ResolvedFeeConfig, aV as RetryOptions, aW as ServiceEventDeclaration, aX as SortOrder, aY as TenantPlan, aZ as TxResult, a_ as WebhookEventType, a$ as WebhookStatus, b0 as resolveConfig, b1 as resolveFeeConfig } from './services-B4E-tTin.js';
1
+ import { S as ServiceDefinition, a as ServiceCapability } from './services-Byw4_DBm.js';
2
+ export { A as ActivityType, b as ApiActivitiesQuery, c as ApiActivity, d as ApiActivityPrice, e as ApiAdminCollectionClaim, f as ApiAppSource, g as ApiChain, h as ApiClient, i as ApiCoin, j as ApiCoinsQuery, k as ApiCollection, l as ApiCollectionClaim, m as ApiCollectionProfile, n as ApiCollectionSlugClaim, o as ApiCollectionsQuery, p as ApiComment, q as ApiCounterOffersQuery, r as ApiCreatorListResult, s as ApiCreatorProfile, t as ApiIntent, u as ApiIntentCreated, v as ApiKeyStatus, w as ApiMeta, x as ApiMetadataSignedUrl, y as ApiMetadataUpload, z as ApiOrder, B as ApiOrderConsideration, C as ApiOrderOffer, D as ApiOrderPrice, E as ApiOrderTokenMeta, F as ApiOrderTxHash, G as ApiOrdersQuery, H as ApiPointEvent, I as ApiPortalKey, J as ApiPortalKeyCreated, K as ApiPortalMe, L as ApiPublicRemix, M as ApiRemixOffer, N as ApiRemixOfferPrice, O as ApiRemixOffersQuery, P as ApiResponse, Q as ApiRewardsBadge, R as ApiRewardsBatchEntry, T as ApiRewardsConfig, U as ApiRewardsLeaderboardEntry, V as ApiRewardsLevel, W as ApiSearchCollectionResult, X as ApiSearchCreatorResult, Y as ApiSearchResult, Z as ApiSearchTokenResult, _ as ApiToken, $ as ApiTokenBalance, a0 as ApiTokenMetadata, a1 as ApiUsageDay, a2 as ApiUserRewards, a3 as ApiUserWallet, a4 as ApiWebhookCreated, a5 as ApiWebhookEndpoint, a6 as AutoRemixOfferParams, a7 as CancelOrderIntentParams, a8 as ChainFilter, a9 as ClaimConditions, aa as CollectionSort, ab as CollectionTokensSort, ac as ConfirmRemixOfferParams, ad as ConfirmSelfRemixParams, ae as ConsiderationItem, af as CreateCollectionIntentParams, ag as CreateCounterOfferIntentParams, ah as CreateDropParams, ai as CreateListingIntentParams, aj as CreateMembershipParams, ak as CreateMintIntentParams, al as CreatePopCollectionParams, am as CreateRemixOfferParams, an as CreateSponsorshipOfferParams, ao as CreateTicketParams, ap as CreateWebhookParams, aq as DropMintStatus, ar as EnforcementDeclaration, as as FeeConfig, at as FeeConfigSchema, au as FulfillOrderIntentParams, av as IPType, aw as IntentCall, ax as IntentStatus, ay as IntentType, az as IpAttribute, aA as IpNftMetadata, aB as MakeOfferIntentParams, aC as MedialaneApiError, aD as MedialaneConfig, aE as MedialaneErrorCode, aF as MintMembershipsParams, aG as MintTicketsParams, aH as OPEN_LICENSES, aI as OfferItem, aJ as OpenLicense, aK as Order, aL as OrderDetails, aM as OrderParameters, aN as OrderStatus, aO as PopBatchEligibilityItem, aP as PopClaimStatus, aQ as PopEventType, aR as ProposeSponsorshipParams, aS as RemixOfferStatus, aT as ResolvedConfig, aU as ResolvedFeeConfig, aV as RetryOptions, aW as ServiceEventDeclaration, aX as SortOrder, aY as TenantPlan, aZ as TxResult, a_ as WebhookEventType, a$ as WebhookStatus, b0 as resolveConfig, b1 as resolveFeeConfig } from './services-Byw4_DBm.js';
3
3
  import { C as Chain } from './types-Cdwb6lXp.js';
4
4
  export { A as AdapterTxResult, a as AssetRef, b as CHAINS, c as ChainCoordinates, d as CoordinatesByChain, e as CreateCollectionInput, D as DEFAULT_CHAIN, E as EvmCoordinates, I as IssuanceAdapter, M as MintInput, O as OrderRef, R as RegisterOrderParams, S as SolanaCoordinates, f as StarknetCoordinates, g as StellarCoordinates, V as VenueAdapter, h as getCoordinates, i as getStarknetCoordinates } from './types-Cdwb6lXp.js';
5
5
  import 'zod';
@@ -65,6 +65,19 @@ type SupportedTokenSymbol = (typeof SUPPORTED_TOKENS)[number]["symbol"];
65
65
  /** Default currency for listings and offers — Circle-native USDC on Starknet. */
66
66
  declare const DEFAULT_CURRENCY: SupportedTokenSymbol;
67
67
 
68
+ /** Chains that resolve in a URL today. Extend when a second chain is displayable. */
69
+ declare const SUPPORTED_URL_CHAINS: readonly ["STARKNET"];
70
+ /** Chain enum → lowercase URL slug. The ONLY place the slug literal is produced. */
71
+ declare function chainSlug(chain: Chain): string;
72
+ /** URL slug → Chain enum, or null for an unknown/unsupported slug (caller 404s). */
73
+ declare function chainFromSlug(slug: string): Chain | null;
74
+ /** Nullish contract/token/address values coerce to "" — an absent id was never
75
+ * a valid link anyway, and this keeps callers free of artificial null guards. */
76
+ type Idish = string | number | null | undefined;
77
+ declare function assetHref(chain: Chain, contract: Idish, tokenId: Idish): string;
78
+ declare function collectionHref(chain: Chain, contract: Idish): string;
79
+ declare function coinHref(chain: Chain, address: Idish): string;
80
+
68
81
  /**
69
82
  * The Medialane service registry (05-service-model §II, §VI).
70
83
  * Canonical long-form IDs (01-core-model §III). SDK-resident in v1;
@@ -520,4 +533,4 @@ interface FailoverFetchOptions {
520
533
  */
521
534
  declare function createFailoverFetch(urls: string[], options?: FailoverFetchOptions): typeof fetch;
522
535
 
523
- export { Chain, DEFAULT_CURRENCY, type FailoverFetchOptions, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, ServiceCapability, ServiceDefinition, type ServiceId, type SupportedToken, type SupportedTokenSymbol, createFailoverFetch, formatAmount, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, shortenAddress, stringifyBigInts, u256ToBigInt };
536
+ export { Chain, DEFAULT_CURRENCY, type FailoverFetchOptions, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SupportedToken, type SupportedTokenSymbol, assetHref, chainFromSlug, chainSlug, coinHref, collectionHref, createFailoverFetch, formatAmount, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, shortenAddress, stringifyBigInts, u256ToBigInt };
package/dist/index.js CHANGED
@@ -229,15 +229,16 @@ async function withRetry(fn, opts) {
229
229
  return await fn();
230
230
  } catch (err) {
231
231
  lastError = err;
232
- if (err instanceof MedialaneApiError && err.status < 500) {
232
+ if (err instanceof MedialaneApiError && err.status < 500 && err.status !== 429) {
233
233
  throw err;
234
234
  }
235
- const isRetryable = err instanceof MedialaneApiError && err.status >= 500 || err instanceof TypeError;
235
+ const isRetryable = err instanceof MedialaneApiError && (err.status >= 500 || err.status === 429) || err instanceof TypeError;
236
236
  if (!isRetryable || attempt === maxAttempts - 1) {
237
237
  throw err;
238
238
  }
239
- const jitter = Math.random() * baseDelayMs;
240
- const delay = Math.min(baseDelayMs * Math.pow(2, attempt) + jitter, maxDelayMs);
239
+ const retryAfterMs = err instanceof MedialaneApiError ? err.retryAfterMs : void 0;
240
+ const backoff = baseDelayMs * Math.pow(2, attempt) + Math.random() * baseDelayMs;
241
+ const delay = Math.min(retryAfterMs ?? backoff, maxDelayMs);
241
242
  await sleep(delay);
242
243
  }
243
244
  }
@@ -254,13 +255,22 @@ function deriveErrorCode(status) {
254
255
  return "UNKNOWN";
255
256
  }
256
257
  var MedialaneApiError = class extends Error {
257
- constructor(status, message) {
258
+ constructor(status, message, retryAfterMs) {
258
259
  super(message);
259
260
  this.status = status;
261
+ this.retryAfterMs = retryAfterMs;
260
262
  this.name = "MedialaneApiError";
261
263
  this.code = deriveErrorCode(status);
262
264
  }
263
265
  };
266
+ function parseRetryAfter(value) {
267
+ if (!value) return void 0;
268
+ const seconds = Number(value);
269
+ if (Number.isFinite(seconds)) return Math.max(0, seconds * 1e3);
270
+ const date = Date.parse(value);
271
+ if (!Number.isNaN(date)) return Math.max(0, date - Date.now());
272
+ return void 0;
273
+ }
264
274
  var ApiClient = class {
265
275
  constructor(baseUrl, apiKey, retryOptions, chain = "STARKNET") {
266
276
  this.baseUrl = baseUrl;
@@ -299,7 +309,7 @@ var ApiClient = class {
299
309
  if (body.error) message = body.error;
300
310
  } catch {
301
311
  }
302
- throw new MedialaneApiError(response.status, message);
312
+ throw new MedialaneApiError(response.status, message, parseRetryAfter(response.headers.get("retry-after")));
303
313
  }
304
314
  return response;
305
315
  }, this.retryOptions);
@@ -906,6 +916,26 @@ var SUPPORTED_TOKENS = [
906
916
  ];
907
917
  var DEFAULT_CURRENCY = "USDC";
908
918
 
919
+ // src/routes.ts
920
+ var SUPPORTED_URL_CHAINS = ["STARKNET"];
921
+ function chainSlug(chain) {
922
+ return chain.toLowerCase();
923
+ }
924
+ function chainFromSlug(slug) {
925
+ const upper = slug.toUpperCase();
926
+ return SUPPORTED_URL_CHAINS.includes(upper) ? upper : null;
927
+ }
928
+ var seg = (v) => v == null ? "" : String(v);
929
+ function assetHref(chain, contract, tokenId) {
930
+ return `/asset/${chainSlug(chain)}/${seg(contract)}/${seg(tokenId)}`;
931
+ }
932
+ function collectionHref(chain, contract) {
933
+ return `/collections/${chainSlug(chain)}/${seg(contract)}`;
934
+ }
935
+ function coinHref(chain, address) {
936
+ return `/coins/${chainSlug(chain)}/${seg(address)}`;
937
+ }
938
+
909
939
  // src/services/registry.ts
910
940
  var SN2 = getStarknetCoordinates("STARKNET");
911
941
  var SERVICES = {
@@ -1300,6 +1330,6 @@ function createFailoverFetch(urls, options = {}) {
1300
1330
  return failover;
1301
1331
  }
1302
1332
 
1303
- export { ApiClient, CHAINS, DEFAULT_CHAIN, DEFAULT_CURRENCY, FeeConfigSchema, MedialaneApiError, OPEN_LICENSES, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, createFailoverFetch, formatAmount, getCoordinates, getListableTokens, getService, getServicesByCapability, getStarknetCoordinates, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, resolveConfig, resolveFeeConfig, shortenAddress, stringifyBigInts, u256ToBigInt };
1333
+ export { ApiClient, CHAINS, DEFAULT_CHAIN, DEFAULT_CURRENCY, FeeConfigSchema, MedialaneApiError, OPEN_LICENSES, PUBLIC_RPC_FALLBACKS, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, assetHref, chainFromSlug, chainSlug, coinHref, collectionHref, createFailoverFetch, formatAmount, getCoordinates, getListableTokens, getService, getServicesByCapability, getStarknetCoordinates, getTokenByAddress, getTokenBySymbol, hasCapability, isServiceId, isTransientRpcError, listServices, normalizeAddress, normalizeHash, parseAmount, resolveConfig, resolveFeeConfig, shortenAddress, stringifyBigInts, u256ToBigInt };
1304
1334
  //# sourceMappingURL=index.js.map
1305
1335
  //# sourceMappingURL=index.js.map