@shipstatic/ship 2.4.0-beta.1 → 2.6.0-beta.1

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
@@ -610,15 +610,16 @@ interface Account {
610
610
  */
611
611
  readonly used?: number | null;
612
612
  /**
613
- * True while the Stripe subscription's status is `past_due` and Stripe is
613
+ * True while the Stripe Subscription's status is `past_due` and Stripe is
614
614
  * still retrying the card. The plan is unchanged — the account keeps
615
615
  * everything it has — so this is a banner, not a gate.
616
616
  *
617
- * A BOOLEAN rather than the status string: one fact for the console to
618
- * act on. Stripe's own status word is mirrored on the account row for the
619
- * operator surface.
617
+ * A BOOLEAN rather than the status string: one fact for the console to act
618
+ * on. It carries STRIPE'S OWN WORD (`past_due` `pastDue`) rather than a
619
+ * synonym, so no reader has to hold a translation; the full status string is
620
+ * mirrored on the account row for the operator surface.
620
621
  */
621
- readonly overdue: boolean;
622
+ readonly pastDue: boolean;
622
623
  }
623
624
  /**
624
625
  * Account as returned by `GET /account` — the entity plus how the request
@@ -1770,13 +1771,20 @@ interface Plan {
1770
1771
  /** Display name, as the marketing site and the console should print it. */
1771
1772
  readonly name: string;
1772
1773
  /**
1773
- * What it costs. A union rather than a nullable number, so "free" and
1774
- * "talk to us" are two different answers instead of two readings of the
1775
- * same `null`. Amounts are integer CENTS in USD, as the API's plan table
1776
- * states them and as Stripe's Prices are provisioned from it — the wire
1777
- * never carries a formatted price, because formatting is the reader's job.
1774
+ * What it costs, per interval integer CENTS in USD, as the API's plan
1775
+ * table states them and as Stripe's Prices are provisioned from it. The wire
1776
+ * never carries a formatted price: formatting is the reader's job.
1777
+ *
1778
+ * **A free plan costs `{ month: 0, year: 0 }`, not a sentinel.** Free IS
1779
+ * zero, so it is a number like any other and every reader formats it with
1780
+ * the same call; a `'free'` member bought one thing — a branch in each
1781
+ * consumer that mapped it straight back to `$0`.
1782
+ *
1783
+ * `'contact'` stays, and the asymmetry is the point: "not sold at a list
1784
+ * price" is genuinely a different KIND of answer, not a different number, so
1785
+ * it is a different shape. Two shapes, and each earns its own.
1778
1786
  */
1779
- readonly price: 'free' | 'contact' | {
1787
+ readonly price: 'contact' | {
1780
1788
  readonly month: number;
1781
1789
  readonly year: number;
1782
1790
  };
@@ -1800,14 +1808,25 @@ interface PlansResponse {
1800
1808
  readonly plans: readonly Plan[];
1801
1809
  }
1802
1810
  /**
1803
- * A page Stripe hostsa Checkout Session or a Customer Portal session — the
1804
- * answer of `POST /billing/checkout` and `POST /billing/portal` alike.
1811
+ * The answer of `POST /billing/checkout` Stripe's `Checkout.Session`,
1812
+ * projected to the one field a client needs.
1805
1813
  *
1806
- * One shape for both because both say the same thing: the platform is not
1807
- * where this happens, go here. There is nothing else to return — the
1808
- * outcome arrives later, as a Stripe webhook.
1814
+ * There is nothing else to return: the outcome arrives later, as a Stripe
1815
+ * webhook. It is its own type rather than a shape shared with
1816
+ * {@link BillingPortalSession} because Stripe has two distinct objects here,
1817
+ * and naming one of them for both would be the reader's translation to make.
1818
+ */
1819
+ interface CheckoutSession {
1820
+ /** Absolute URL to redirect the browser to. Single use, short-lived. */
1821
+ readonly url: string;
1822
+ }
1823
+ /**
1824
+ * The answer of `POST /billing/portal` — Stripe's `BillingPortal.Session`,
1825
+ * projected the same way. Identical in shape to {@link CheckoutSession} and
1826
+ * deliberately not merged with it: they are two Stripe objects, and either may
1827
+ * gain a field the other never has.
1809
1828
  */
1810
- interface StripeSession {
1829
+ interface BillingPortalSession {
1811
1830
  /** Absolute URL to redirect the browser to. Single use, short-lived. */
1812
1831
  readonly url: string;
1813
1832
  }
@@ -3008,6 +3027,6 @@ declare class Ship extends Ship$1 {
3008
3027
  }
3009
3028
 
3010
3029
  declare namespace Ship {
3011
- export { API_KEY, API_PATHS, AUTH_BASE_PATH, Account, AccountDeleteResponse, AccountGetResponse, AccountKeyResponse, AccountPlan, AccountPlanType, AccountResource, Activity, ActivityEvent, ActivityListResponse, ActivityMeta, ApiDeployOptions, ApiHttp, ApiHttpOptions, AuthMethod, AuthMethodType, BillingInterval, BillingSyncResponse, CALLER, Caps, DEFAULT_API, DEPLOYMENT_CONFIG_FILENAME, DEPLOY_FIELDS, DEPLOY_TOKEN, DeployBodyContext, DeployFile, DeployInput, DeployTransport, Deployment, DeploymentCreateResponse, DeploymentDeleteResponse, DeploymentListResponse, DeploymentOptions, DeploymentResource, DeploymentResourceContext, DeploymentSetOptions, DeploymentStatus, DeploymentStatusType, DeploymentUploadOptions, DeploymentVia, DeploymentViaType, DnsLookup, DnsProvider, DnsRecord, DnsRecordType, Domain, DomainDeleteResponse, DomainDnsResponse, DomainListResponse, DomainRecordsResponse, DomainResource, DomainSetOptions, DomainSetResult, DomainShareResponse, DomainStatus, DomainStatusType, DomainValidateResponse, DomainVerifyResponse, ErrorResponse, ErrorType, ExecutionEnvironment, FileValidationStatus as FILE_VALIDATION_STATUS, Fetch, FileValidationResult, FileValidationStatus, FileValidationStatusType, IDEMPOTENCY_KEY_CONSTRAINTS, JUNK_DIRECTORIES, LABEL_CONSTRAINTS, LABEL_PATTERN, LabelsResponse, ListOptions, ListResponse, MD5Result, MY_API_KEY_URL, OAUTH_TOKEN, OAuthScope, OAuthScopeType, PASSWORD_CONSTRAINTS, PUBLIC_DEPLOYMENT_TTL_SECONDS, PingResponse, Plan, PlansResponse, PlatformLimits, RequestResult, ResourceContext, SHIP_ENV, SIGN_IN_RETURN_PARAM, SPACheckDebug, SPACheckRequest, SPACheckResponse, SPA_CHECK_CONSTRAINTS, SPA_DEFAULT_CONFIG, SetupInstructionsResponse, ShipClientOptions, ShipError, ShipEvents, ShipRequestInit, StaticFile, StripeSession, TTL_CONSTRAINTS, Token, TokenCreateOptions, TokenCreateResponse, TokenDeleteResponse, TokenKind, TokenKindType, TokenListResponse, TokenProvider, TokenResource, Transport, UNBUILT_PROJECT_MARKERS, UNSAFE_FILENAME_CHARS, UploadedFile, UserVisibleActivityEvent, ValidatableFile, ValidationIssue, WEB_FILE_ACCEPT, __setTestEnvironment, allValidFilesReady, assertShipJsonSyntax, calculateMD5, classifyToken, createAccountResource, createDeploymentResource, createDomainResource, createTokenResource, deserializeLabels, extractSubdomain, filterJunk, formatFileSize, generateDeploymentUrl, generateDomainUrl, getENV, getValidFiles, hasUnbuiltMarker, hasUnsafeChars, isBlockedExtension, isCustomDomain, isDeployment, isPlatformDomain, isShipError, normalizeVia, optimizeDeployPaths, pluralize, processFilesForNode, readBearerValue, serializeLabels, validateApiKey, validateApiUrl, validateCaller, validateDeployFile, validateDeployPath, validateDeployToken, validateFileName, validateFiles, validateIdempotencyKey, validateOAuthToken, validatePassword, validateToken, validateTtl };
3030
+ export { API_KEY, API_PATHS, AUTH_BASE_PATH, Account, AccountDeleteResponse, AccountGetResponse, AccountKeyResponse, AccountPlan, AccountPlanType, AccountResource, Activity, ActivityEvent, ActivityListResponse, ActivityMeta, ApiDeployOptions, ApiHttp, ApiHttpOptions, AuthMethod, AuthMethodType, BillingInterval, BillingPortalSession, BillingSyncResponse, CALLER, Caps, CheckoutSession, DEFAULT_API, DEPLOYMENT_CONFIG_FILENAME, DEPLOY_FIELDS, DEPLOY_TOKEN, DeployBodyContext, DeployFile, DeployInput, DeployTransport, Deployment, DeploymentCreateResponse, DeploymentDeleteResponse, DeploymentListResponse, DeploymentOptions, DeploymentResource, DeploymentResourceContext, DeploymentSetOptions, DeploymentStatus, DeploymentStatusType, DeploymentUploadOptions, DeploymentVia, DeploymentViaType, DnsLookup, DnsProvider, DnsRecord, DnsRecordType, Domain, DomainDeleteResponse, DomainDnsResponse, DomainListResponse, DomainRecordsResponse, DomainResource, DomainSetOptions, DomainSetResult, DomainShareResponse, DomainStatus, DomainStatusType, DomainValidateResponse, DomainVerifyResponse, ErrorResponse, ErrorType, ExecutionEnvironment, FileValidationStatus as FILE_VALIDATION_STATUS, Fetch, FileValidationResult, FileValidationStatus, FileValidationStatusType, IDEMPOTENCY_KEY_CONSTRAINTS, JUNK_DIRECTORIES, LABEL_CONSTRAINTS, LABEL_PATTERN, LabelsResponse, ListOptions, ListResponse, MD5Result, MY_API_KEY_URL, OAUTH_TOKEN, OAuthScope, OAuthScopeType, PASSWORD_CONSTRAINTS, PUBLIC_DEPLOYMENT_TTL_SECONDS, PingResponse, Plan, PlansResponse, PlatformLimits, RequestResult, ResourceContext, SHIP_ENV, SIGN_IN_RETURN_PARAM, SPACheckDebug, SPACheckRequest, SPACheckResponse, SPA_CHECK_CONSTRAINTS, SPA_DEFAULT_CONFIG, SetupInstructionsResponse, ShipClientOptions, ShipError, ShipEvents, ShipRequestInit, StaticFile, TTL_CONSTRAINTS, Token, TokenCreateOptions, TokenCreateResponse, TokenDeleteResponse, TokenKind, TokenKindType, TokenListResponse, TokenProvider, TokenResource, Transport, UNBUILT_PROJECT_MARKERS, UNSAFE_FILENAME_CHARS, UploadedFile, UserVisibleActivityEvent, ValidatableFile, ValidationIssue, WEB_FILE_ACCEPT, __setTestEnvironment, allValidFilesReady, assertShipJsonSyntax, calculateMD5, classifyToken, createAccountResource, createDeploymentResource, createDomainResource, createTokenResource, deserializeLabels, extractSubdomain, filterJunk, formatFileSize, generateDeploymentUrl, generateDomainUrl, getENV, getValidFiles, hasUnbuiltMarker, hasUnsafeChars, isBlockedExtension, isCustomDomain, isDeployment, isPlatformDomain, isShipError, normalizeVia, optimizeDeployPaths, pluralize, processFilesForNode, readBearerValue, serializeLabels, validateApiKey, validateApiUrl, validateCaller, validateDeployFile, validateDeployPath, validateDeployToken, validateFileName, validateFiles, validateIdempotencyKey, validateOAuthToken, validatePassword, validateToken, validateTtl };
3012
3031
  }
3013
3032
  export = Ship;
package/dist/index.d.ts CHANGED
@@ -610,15 +610,16 @@ interface Account {
610
610
  */
611
611
  readonly used?: number | null;
612
612
  /**
613
- * True while the Stripe subscription's status is `past_due` and Stripe is
613
+ * True while the Stripe Subscription's status is `past_due` and Stripe is
614
614
  * still retrying the card. The plan is unchanged — the account keeps
615
615
  * everything it has — so this is a banner, not a gate.
616
616
  *
617
- * A BOOLEAN rather than the status string: one fact for the console to
618
- * act on. Stripe's own status word is mirrored on the account row for the
619
- * operator surface.
617
+ * A BOOLEAN rather than the status string: one fact for the console to act
618
+ * on. It carries STRIPE'S OWN WORD (`past_due` `pastDue`) rather than a
619
+ * synonym, so no reader has to hold a translation; the full status string is
620
+ * mirrored on the account row for the operator surface.
620
621
  */
621
- readonly overdue: boolean;
622
+ readonly pastDue: boolean;
622
623
  }
623
624
  /**
624
625
  * Account as returned by `GET /account` — the entity plus how the request
@@ -1770,13 +1771,20 @@ interface Plan {
1770
1771
  /** Display name, as the marketing site and the console should print it. */
1771
1772
  readonly name: string;
1772
1773
  /**
1773
- * What it costs. A union rather than a nullable number, so "free" and
1774
- * "talk to us" are two different answers instead of two readings of the
1775
- * same `null`. Amounts are integer CENTS in USD, as the API's plan table
1776
- * states them and as Stripe's Prices are provisioned from it — the wire
1777
- * never carries a formatted price, because formatting is the reader's job.
1774
+ * What it costs, per interval integer CENTS in USD, as the API's plan
1775
+ * table states them and as Stripe's Prices are provisioned from it. The wire
1776
+ * never carries a formatted price: formatting is the reader's job.
1777
+ *
1778
+ * **A free plan costs `{ month: 0, year: 0 }`, not a sentinel.** Free IS
1779
+ * zero, so it is a number like any other and every reader formats it with
1780
+ * the same call; a `'free'` member bought one thing — a branch in each
1781
+ * consumer that mapped it straight back to `$0`.
1782
+ *
1783
+ * `'contact'` stays, and the asymmetry is the point: "not sold at a list
1784
+ * price" is genuinely a different KIND of answer, not a different number, so
1785
+ * it is a different shape. Two shapes, and each earns its own.
1778
1786
  */
1779
- readonly price: 'free' | 'contact' | {
1787
+ readonly price: 'contact' | {
1780
1788
  readonly month: number;
1781
1789
  readonly year: number;
1782
1790
  };
@@ -1800,14 +1808,25 @@ interface PlansResponse {
1800
1808
  readonly plans: readonly Plan[];
1801
1809
  }
1802
1810
  /**
1803
- * A page Stripe hostsa Checkout Session or a Customer Portal session — the
1804
- * answer of `POST /billing/checkout` and `POST /billing/portal` alike.
1811
+ * The answer of `POST /billing/checkout` Stripe's `Checkout.Session`,
1812
+ * projected to the one field a client needs.
1805
1813
  *
1806
- * One shape for both because both say the same thing: the platform is not
1807
- * where this happens, go here. There is nothing else to return — the
1808
- * outcome arrives later, as a Stripe webhook.
1814
+ * There is nothing else to return: the outcome arrives later, as a Stripe
1815
+ * webhook. It is its own type rather than a shape shared with
1816
+ * {@link BillingPortalSession} because Stripe has two distinct objects here,
1817
+ * and naming one of them for both would be the reader's translation to make.
1818
+ */
1819
+ interface CheckoutSession {
1820
+ /** Absolute URL to redirect the browser to. Single use, short-lived. */
1821
+ readonly url: string;
1822
+ }
1823
+ /**
1824
+ * The answer of `POST /billing/portal` — Stripe's `BillingPortal.Session`,
1825
+ * projected the same way. Identical in shape to {@link CheckoutSession} and
1826
+ * deliberately not merged with it: they are two Stripe objects, and either may
1827
+ * gain a field the other never has.
1809
1828
  */
1810
- interface StripeSession {
1829
+ interface BillingPortalSession {
1811
1830
  /** Absolute URL to redirect the browser to. Single use, short-lived. */
1812
1831
  readonly url: string;
1813
1832
  }
@@ -3007,4 +3026,4 @@ declare class Ship extends Ship$1 {
3007
3026
  protected processInput(input: DeployInput, options: DeploymentOptions): Promise<StaticFile[]>;
3008
3027
  }
3009
3028
 
3010
- export { API_KEY, API_PATHS, AUTH_BASE_PATH, type Account, type AccountDeleteResponse, type AccountGetResponse, type AccountKeyResponse, AccountPlan, type AccountPlanType, type AccountResource, type Activity, type ActivityEvent, type ActivityListResponse, type ActivityMeta, type ApiDeployOptions, ApiHttp, type ApiHttpOptions, AuthMethod, type AuthMethodType, type BillingInterval, type BillingSyncResponse, CALLER, type Caps, DEFAULT_API, DEPLOYMENT_CONFIG_FILENAME, DEPLOY_FIELDS, DEPLOY_TOKEN, type DeployBodyContext, type DeployFile, type DeployInput, type DeployTransport, type Deployment, type DeploymentCreateResponse, type DeploymentDeleteResponse, type DeploymentListResponse, type DeploymentOptions, type DeploymentResource, type DeploymentResourceContext, type DeploymentSetOptions, DeploymentStatus, type DeploymentStatusType, type DeploymentUploadOptions, DeploymentVia, type DeploymentViaType, type DnsLookup, type DnsProvider, type DnsRecord, type DnsRecordType, type Domain, type DomainDeleteResponse, type DomainDnsResponse, type DomainListResponse, type DomainRecordsResponse, type DomainResource, type DomainSetOptions, type DomainSetResult, type DomainShareResponse, DomainStatus, type DomainStatusType, type DomainValidateResponse, type DomainVerifyResponse, type ErrorResponse, ErrorType, type ExecutionEnvironment, FileValidationStatus as FILE_VALIDATION_STATUS, type Fetch, type FileValidationResult, FileValidationStatus, type FileValidationStatusType, IDEMPOTENCY_KEY_CONSTRAINTS, JUNK_DIRECTORIES, LABEL_CONSTRAINTS, LABEL_PATTERN, type LabelsResponse, type ListOptions, type ListResponse, type MD5Result, MY_API_KEY_URL, OAUTH_TOKEN, OAuthScope, type OAuthScopeType, PASSWORD_CONSTRAINTS, PUBLIC_DEPLOYMENT_TTL_SECONDS, type PingResponse, type Plan, type PlansResponse, type PlatformLimits, type RequestResult, type ResourceContext, SHIP_ENV, SIGN_IN_RETURN_PARAM, type SPACheckDebug, type SPACheckRequest, type SPACheckResponse, SPA_CHECK_CONSTRAINTS, SPA_DEFAULT_CONFIG, type SetupInstructionsResponse, Ship, type ShipClientOptions, ShipError, type ShipEvents, type ShipRequestInit, type StaticFile, type StripeSession, TTL_CONSTRAINTS, type Token, type TokenCreateOptions, type TokenCreateResponse, type TokenDeleteResponse, TokenKind, type TokenKindType, type TokenListResponse, type TokenProvider, type TokenResource, type Transport, UNBUILT_PROJECT_MARKERS, UNSAFE_FILENAME_CHARS, type UploadedFile, type UserVisibleActivityEvent, type ValidatableFile, type ValidationIssue, WEB_FILE_ACCEPT, __setTestEnvironment, allValidFilesReady, assertShipJsonSyntax, calculateMD5, classifyToken, createAccountResource, createDeploymentResource, createDomainResource, createTokenResource, Ship as default, deserializeLabels, extractSubdomain, filterJunk, formatFileSize, generateDeploymentUrl, generateDomainUrl, getENV, getValidFiles, hasUnbuiltMarker, hasUnsafeChars, isBlockedExtension, isCustomDomain, isDeployment, isPlatformDomain, isShipError, normalizeVia, optimizeDeployPaths, pluralize, processFilesForNode, readBearerValue, serializeLabels, validateApiKey, validateApiUrl, validateCaller, validateDeployFile, validateDeployPath, validateDeployToken, validateFileName, validateFiles, validateIdempotencyKey, validateOAuthToken, validatePassword, validateToken, validateTtl };
3029
+ export { API_KEY, API_PATHS, AUTH_BASE_PATH, type Account, type AccountDeleteResponse, type AccountGetResponse, type AccountKeyResponse, AccountPlan, type AccountPlanType, type AccountResource, type Activity, type ActivityEvent, type ActivityListResponse, type ActivityMeta, type ApiDeployOptions, ApiHttp, type ApiHttpOptions, AuthMethod, type AuthMethodType, type BillingInterval, type BillingPortalSession, type BillingSyncResponse, CALLER, type Caps, type CheckoutSession, DEFAULT_API, DEPLOYMENT_CONFIG_FILENAME, DEPLOY_FIELDS, DEPLOY_TOKEN, type DeployBodyContext, type DeployFile, type DeployInput, type DeployTransport, type Deployment, type DeploymentCreateResponse, type DeploymentDeleteResponse, type DeploymentListResponse, type DeploymentOptions, type DeploymentResource, type DeploymentResourceContext, type DeploymentSetOptions, DeploymentStatus, type DeploymentStatusType, type DeploymentUploadOptions, DeploymentVia, type DeploymentViaType, type DnsLookup, type DnsProvider, type DnsRecord, type DnsRecordType, type Domain, type DomainDeleteResponse, type DomainDnsResponse, type DomainListResponse, type DomainRecordsResponse, type DomainResource, type DomainSetOptions, type DomainSetResult, type DomainShareResponse, DomainStatus, type DomainStatusType, type DomainValidateResponse, type DomainVerifyResponse, type ErrorResponse, ErrorType, type ExecutionEnvironment, FileValidationStatus as FILE_VALIDATION_STATUS, type Fetch, type FileValidationResult, FileValidationStatus, type FileValidationStatusType, IDEMPOTENCY_KEY_CONSTRAINTS, JUNK_DIRECTORIES, LABEL_CONSTRAINTS, LABEL_PATTERN, type LabelsResponse, type ListOptions, type ListResponse, type MD5Result, MY_API_KEY_URL, OAUTH_TOKEN, OAuthScope, type OAuthScopeType, PASSWORD_CONSTRAINTS, PUBLIC_DEPLOYMENT_TTL_SECONDS, type PingResponse, type Plan, type PlansResponse, type PlatformLimits, type RequestResult, type ResourceContext, SHIP_ENV, SIGN_IN_RETURN_PARAM, type SPACheckDebug, type SPACheckRequest, type SPACheckResponse, SPA_CHECK_CONSTRAINTS, SPA_DEFAULT_CONFIG, type SetupInstructionsResponse, Ship, type ShipClientOptions, ShipError, type ShipEvents, type ShipRequestInit, type StaticFile, TTL_CONSTRAINTS, type Token, type TokenCreateOptions, type TokenCreateResponse, type TokenDeleteResponse, TokenKind, type TokenKindType, type TokenListResponse, type TokenProvider, type TokenResource, type Transport, UNBUILT_PROJECT_MARKERS, UNSAFE_FILENAME_CHARS, type UploadedFile, type UserVisibleActivityEvent, type ValidatableFile, type ValidationIssue, WEB_FILE_ACCEPT, __setTestEnvironment, allValidFilesReady, assertShipJsonSyntax, calculateMD5, classifyToken, createAccountResource, createDeploymentResource, createDomainResource, createTokenResource, Ship as default, deserializeLabels, extractSubdomain, filterJunk, formatFileSize, generateDeploymentUrl, generateDomainUrl, getENV, getValidFiles, hasUnbuiltMarker, hasUnsafeChars, isBlockedExtension, isCustomDomain, isDeployment, isPlatformDomain, isShipError, normalizeVia, optimizeDeployPaths, pluralize, processFilesForNode, readBearerValue, serializeLabels, validateApiKey, validateApiUrl, validateCaller, validateDeployFile, validateDeployPath, validateDeployToken, validateFileName, validateFiles, validateIdempotencyKey, validateOAuthToken, validatePassword, validateToken, validateTtl };