@carrierllc/sdk 0.2.6 → 0.2.8

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/README.md CHANGED
@@ -35,4 +35,4 @@ const agentTools = restTools(carrier)
35
35
 
36
36
  `new Mcp(token, { auth: "bearer" })` sends an OAuth access token or a Clerk organization API key. The default sends `?TOKEN=` to `https://mcp.carrier.llc/mcp`. `Cli` never invokes a shell. Catalog entries marked `internal` do not accept a customer API key.
37
37
 
38
- `npm install @carrierllc/sdk@0.2.5` installs this surface. `0.1.0` only creates connectivity intents and products. The published tarball is the compiled `dist` output, including the generated operation catalog.
38
+ `npm install @carrierllc/sdk@0.2.6` installs this surface. `0.1.0` only creates connectivity intents and products. The published tarball is the compiled `dist` output, including the generated operation catalog.
package/dist/client.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import type { OperationId } from "./operation-ids.js";
9
9
  import { type CallParams } from "./operations.js";
10
- import type { ConnectivityIntent, ConnectivityPlan, HostedStorefront, IdempotentRequest, IntentCreateParams, ProductCreateParams, StorefrontCreateParams, StorefrontPlanParams, StorefrontUpdateParams } from "./types.js";
10
+ import type { ConnectivityIntent, ConnectivityPlan, HostedStorefront, IdempotentRequest, IntentCreateParams, ProductCreateParams, StorefrontCreateParams, StorefrontPlanParams, StorefrontPlanUpdateParams, StorefrontUpdateParams } from "./types.js";
11
11
  export interface CarrierOptions {
12
12
  /** Defaults to https://api.carrier.llc. No trailing slash required. */
13
13
  baseUrl?: string;
@@ -33,6 +33,7 @@ export declare class Carrier {
33
33
  upsertPlan: (id: string, body: StorefrontPlanParams) => Promise<{
34
34
  slug: string;
35
35
  }>;
36
+ updatePlan: (id: string, slug: string, body: StorefrontPlanUpdateParams) => Promise<NonNullable<HostedStorefront["plans"]>[number]>;
36
37
  };
37
38
  constructor(apiKey: string, options?: CarrierOptions);
38
39
  /** Call any operation id from the public OpenAPI document. */
package/dist/client.js CHANGED
@@ -34,6 +34,7 @@ export class Carrier {
34
34
  create: (body, request) => this.post("/v1/storefronts", body, request.idempotencyKey),
35
35
  update: (id, body) => this.request("PATCH", `/v1/storefronts/${encodeURIComponent(id)}`, { body }),
36
36
  upsertPlan: (id, body) => this.request("POST", `/v1/storefronts/${encodeURIComponent(id)}/plans`, { body }),
37
+ updatePlan: (id, slug, body) => this.request("PATCH", `/v1/storefronts/${encodeURIComponent(id)}/plans/${encodeURIComponent(slug)}`, { body }),
37
38
  };
38
39
  }
39
40
  /** Call any operation id from the public OpenAPI document. */
@@ -2618,6 +2618,75 @@
2618
2618
  ],
2619
2619
  "headerParams": []
2620
2620
  },
2621
+ {
2622
+ "id": "get_storefront_order_usage",
2623
+ "method": "GET",
2624
+ "path": "/api/orders/{orderId}/usage",
2625
+ "tag": "Storefront",
2626
+ "summary": "Data used by the order's own eSIM",
2627
+ "security": "storefront",
2628
+ "body": false,
2629
+ "bodyRequired": false,
2630
+ "pathParams": [
2631
+ {
2632
+ "name": "orderId",
2633
+ "required": true
2634
+ }
2635
+ ],
2636
+ "queryParams": [
2637
+ {
2638
+ "name": "storefront",
2639
+ "required": false
2640
+ }
2641
+ ],
2642
+ "headerParams": []
2643
+ },
2644
+ {
2645
+ "id": "get_storefront_order_top_up_options",
2646
+ "method": "GET",
2647
+ "path": "/api/orders/{orderId}/top-up-options",
2648
+ "tag": "Storefront",
2649
+ "summary": "Plans the buyer can add to this order's eSIM",
2650
+ "security": "storefront",
2651
+ "body": false,
2652
+ "bodyRequired": false,
2653
+ "pathParams": [
2654
+ {
2655
+ "name": "orderId",
2656
+ "required": true
2657
+ }
2658
+ ],
2659
+ "queryParams": [
2660
+ {
2661
+ "name": "storefront",
2662
+ "required": false
2663
+ }
2664
+ ],
2665
+ "headerParams": []
2666
+ },
2667
+ {
2668
+ "id": "cancel_storefront_order",
2669
+ "method": "POST",
2670
+ "path": "/api/orders/{orderId}/cancel",
2671
+ "tag": "Storefront",
2672
+ "summary": "Record the buyer's cancel",
2673
+ "security": "storefront",
2674
+ "body": false,
2675
+ "bodyRequired": false,
2676
+ "pathParams": [
2677
+ {
2678
+ "name": "orderId",
2679
+ "required": true
2680
+ }
2681
+ ],
2682
+ "queryParams": [
2683
+ {
2684
+ "name": "storefront",
2685
+ "required": false
2686
+ }
2687
+ ],
2688
+ "headerParams": []
2689
+ },
2621
2690
  {
2622
2691
  "id": "get_storefront_order",
2623
2692
  "method": "GET",
@@ -2677,6 +2746,28 @@
2677
2746
  "queryParams": [],
2678
2747
  "headerParams": []
2679
2748
  },
2749
+ {
2750
+ "id": "get_hosted_storefront_plan_readiness",
2751
+ "method": "GET",
2752
+ "path": "/api/hosted/{slug}/plans/{planId}/readiness",
2753
+ "tag": "Storefront",
2754
+ "summary": "Read-only readiness check using the fulfilment owner's account rules",
2755
+ "security": "public",
2756
+ "body": false,
2757
+ "bodyRequired": false,
2758
+ "pathParams": [
2759
+ {
2760
+ "name": "slug",
2761
+ "required": true
2762
+ },
2763
+ {
2764
+ "name": "planId",
2765
+ "required": true
2766
+ }
2767
+ ],
2768
+ "queryParams": [],
2769
+ "headerParams": []
2770
+ },
2680
2771
  {
2681
2772
  "id": "list_storefronts",
2682
2773
  "method": "GET",
@@ -2708,6 +2799,32 @@
2708
2799
  }
2709
2800
  ]
2710
2801
  },
2802
+ {
2803
+ "id": "list_storefront_orders",
2804
+ "method": "GET",
2805
+ "path": "/v1/storefronts/orders",
2806
+ "tag": "Storefront",
2807
+ "summary": "List orders across the caller's storefronts, newest first. Metadata only — no ICCID, QR, or activation codes.",
2808
+ "security": "bearer",
2809
+ "body": false,
2810
+ "bodyRequired": false,
2811
+ "pathParams": [],
2812
+ "queryParams": [
2813
+ {
2814
+ "name": "storefront_id",
2815
+ "required": false
2816
+ },
2817
+ {
2818
+ "name": "status",
2819
+ "required": false
2820
+ },
2821
+ {
2822
+ "name": "limit",
2823
+ "required": false
2824
+ }
2825
+ ],
2826
+ "headerParams": []
2827
+ },
2711
2828
  {
2712
2829
  "id": "get_storefront",
2713
2830
  "method": "GET",
package/dist/index.d.ts CHANGED
@@ -8,4 +8,4 @@ export type { OperationId } from "./operation-ids.js";
8
8
  export type { CallParams } from "./operations.js";
9
9
  export { SDK_VERSION } from "./version.js";
10
10
  export { isStorefrontPlanError, logoFileDataUrl, logoReference, majorToCents, parseCountryInput, parseDataGb, parseValidityDays, parseWholeNumber, completePlanInput, storefrontBrandPatch, storefrontPlanBody, hostedStorefrontUrl, storefrontSlugFrom, type ExistingStorefrontBrand, type StorefrontBrandInput, type StorefrontPlanBody, type StorefrontPlanInput, type StoredPlanIdentity, } from "./storefront-write.js";
11
- export type { ConnectivityEsim, ConnectivityIntent, ConnectivityPlan, HostedStorefront, IdempotentRequest, IntentCreateParams, IntentStatus, PlanPrice, ProductCreateParams, StorefrontCreateParams, StorefrontPlanParams, StorefrontUpdateParams, } from "./types.js";
11
+ export type { ConnectivityEsim, ConnectivityIntent, ConnectivityPlan, HostedStorefront, IdempotentRequest, IntentCreateParams, IntentStatus, PlanPrice, ProductCreateParams, StorefrontCreateParams, StorefrontPlanParams, StorefrontPlanUpdateParams, StorefrontUpdateParams, } from "./types.js";
@@ -2,4 +2,4 @@
2
2
  *
3
3
  * Generated by sdks/generate.py. Do not edit by hand.
4
4
  */
5
- export type OperationId = "list_reseller_accounts" | "get_reseller_info" | "esim_status_per_account" | "list_sponsors" | "list_steering_lists" | "get_subscriber" | "list_subscribers" | "create_subscriber" | "get_sim_provider_status" | "change_sim_status" | "get_subscriber_location" | "hlr_get_bitrate" | "hlr_set_bitrate" | "list_subscriber_packages" | "assign_package" | "clean_all_packages" | "list_package_templates" | "create_package_template" | "list_location_zones" | "create_location_zone" | "list_detailed_location_zones" | "list_destination_prefixes" | "subscriber_usage" | "subscriber_network_events" | "subscriber_active_period" | "get_tariff" | "list_network_profiles" | "modify_subscriber_balance" | "modify_subscriber_status" | "modify_subscriber_contact_info" | "set_subscriber_traffic_restrictions" | "modify_subscriber_steering_list" | "move_subscriber_range_to_account" | "assign_recurring_package" | "modify_package_limits" | "modify_package_expiry" | "modify_package_status" | "stop_resume_recurring_package" | "modify_account_balance" | "delete_subscriber_package" | "modify_template_core" | "modify_template_recurring" | "modify_template_throttling" | "send_sms" | "fleet_health" | "churn_risk" | "audit_network_coverage" | "diagnose_subscriber" | "detect_usage_anomalies" | "optimize_package" | "marketing_intelligence" | "high_cost_subscribers" | "high_cost_subscribers_method_guard" | "detect_country_entry" | "list_intelligence_schedules" | "create_intelligence_schedule" | "delete_intelligence_schedule" | "run_intelligence_schedule" | "get_intelligence_schedule_report" | "get_intelligence_share" | "operator_billing_connect_begin" | "operator_billing_connect_oauth_begin" | "operator_billing_connect_oauth_complete" | "operator_billing_connect_status" | "operator_billing_connect_dashboard_link" | "operator_billing_list_payouts" | "operator_billing_create_manual_payout" | "operator_billing_get_payout_schedule" | "operator_billing_update_payout_schedule" | "operator_billing_list_fees" | "operator_billing_list_refunds" | "operator_billing_create_refund" | "operator_billing_list_disputes" | "operator_billing_submit_dispute_evidence" | "operator_billing_list_fraud_reviews" | "operator_billing_approve_fraud_review" | "operator_billing_decline_fraud_review" | "operator_billing_list_value_lists" | "operator_billing_add_value_list_item" | "affiliates_me_get" | "affiliates_me_create" | "affiliates_me_commissions_list" | "affiliates_link" | "operator_identity_status" | "operator_identity_create_session" | "operator_identity_update_session" | "operator_list_promotions" | "operator_create_promotion" | "signup_start" | "signup_verify" | "create_api_key" | "get_onboarding_state" | "onboarding_save_org" | "onboarding_connect_ocs_token" | "onboarding_start_managed_account" | "onboarding_save_plan" | "onboarding_skip_plan" | "onboarding_test_esim" | "onboarding_complete" | "operator_billing_stripe_webhook" | "receive_bridge4ip_webhook" | "affect_subscriber_phone_number" | "modify_subscriber_mobile_plan" | "modify_subscriber_voip_plan" | "push_steering_to_subscriber" | "modify_subscriber_package_active_period" | "get_subscriber_location_by_cell_id" | "reset_subscriber_gz_counter" | "list_destination_lists" | "list_subscriber_voip_tariff" | "list_voip_tariff_rule" | "change_network_profile_of_location_zone" | "get_network_default" | "set_network_default" | "plan_network_default" | "carrier_webhook_config" | "ai_chat" | "ai_insights" | "ai_quota" | "list_invoice_periods" | "get_billing_config" | "update_billing_config" | "stripe_connect_begin" | "stripe_connect_status" | "list_invoices" | "create_invoice" | "get_invoice" | "update_invoice" | "void_invoice" | "get_invoice_document" | "list_connectivity_plans" | "list_connectivity_products" | "create_connectivity_product" | "get_connectivity_product" | "list_connectivity_intents" | "create_connectivity_intent" | "get_connectivity_intent" | "confirm_connectivity_intent" | "create_connectivity_webhook_endpoint" | "list_connectivity_webhook_endpoints" | "delete_connectivity_webhook_endpoint" | "list_connectivity_events" | "get_connectivity_event" | "create_connectivity_usage_record" | "list_connectivity_usage_records" | "retry_connectivity_event" | "issue_esim_from_inventory" | "rollback_esim_issuance" | "subscriber_country_history" | "get_subscriber_notes" | "add_subscriber_note" | "put_subscriber_notes" | "observe_connectivity_event" | "ingest_connectivity_usage" | "ingest_cdr_events" | "aggregate_cdr" | "list_storefront_templates" | "list_storefront_buyer_orders" | "get_storefront_order" | "rollback_storefront_order" | "get_hosted_storefront" | "list_storefronts" | "create_storefront" | "get_storefront" | "update_storefront" | "upsert_storefront_plan" | "update_storefront_plan" | "health_check";
5
+ export type OperationId = "list_reseller_accounts" | "get_reseller_info" | "esim_status_per_account" | "list_sponsors" | "list_steering_lists" | "get_subscriber" | "list_subscribers" | "create_subscriber" | "get_sim_provider_status" | "change_sim_status" | "get_subscriber_location" | "hlr_get_bitrate" | "hlr_set_bitrate" | "list_subscriber_packages" | "assign_package" | "clean_all_packages" | "list_package_templates" | "create_package_template" | "list_location_zones" | "create_location_zone" | "list_detailed_location_zones" | "list_destination_prefixes" | "subscriber_usage" | "subscriber_network_events" | "subscriber_active_period" | "get_tariff" | "list_network_profiles" | "modify_subscriber_balance" | "modify_subscriber_status" | "modify_subscriber_contact_info" | "set_subscriber_traffic_restrictions" | "modify_subscriber_steering_list" | "move_subscriber_range_to_account" | "assign_recurring_package" | "modify_package_limits" | "modify_package_expiry" | "modify_package_status" | "stop_resume_recurring_package" | "modify_account_balance" | "delete_subscriber_package" | "modify_template_core" | "modify_template_recurring" | "modify_template_throttling" | "send_sms" | "fleet_health" | "churn_risk" | "audit_network_coverage" | "diagnose_subscriber" | "detect_usage_anomalies" | "optimize_package" | "marketing_intelligence" | "high_cost_subscribers" | "high_cost_subscribers_method_guard" | "detect_country_entry" | "list_intelligence_schedules" | "create_intelligence_schedule" | "delete_intelligence_schedule" | "run_intelligence_schedule" | "get_intelligence_schedule_report" | "get_intelligence_share" | "operator_billing_connect_begin" | "operator_billing_connect_oauth_begin" | "operator_billing_connect_oauth_complete" | "operator_billing_connect_status" | "operator_billing_connect_dashboard_link" | "operator_billing_list_payouts" | "operator_billing_create_manual_payout" | "operator_billing_get_payout_schedule" | "operator_billing_update_payout_schedule" | "operator_billing_list_fees" | "operator_billing_list_refunds" | "operator_billing_create_refund" | "operator_billing_list_disputes" | "operator_billing_submit_dispute_evidence" | "operator_billing_list_fraud_reviews" | "operator_billing_approve_fraud_review" | "operator_billing_decline_fraud_review" | "operator_billing_list_value_lists" | "operator_billing_add_value_list_item" | "affiliates_me_get" | "affiliates_me_create" | "affiliates_me_commissions_list" | "affiliates_link" | "operator_identity_status" | "operator_identity_create_session" | "operator_identity_update_session" | "operator_list_promotions" | "operator_create_promotion" | "signup_start" | "signup_verify" | "create_api_key" | "get_onboarding_state" | "onboarding_save_org" | "onboarding_connect_ocs_token" | "onboarding_start_managed_account" | "onboarding_save_plan" | "onboarding_skip_plan" | "onboarding_test_esim" | "onboarding_complete" | "operator_billing_stripe_webhook" | "receive_bridge4ip_webhook" | "affect_subscriber_phone_number" | "modify_subscriber_mobile_plan" | "modify_subscriber_voip_plan" | "push_steering_to_subscriber" | "modify_subscriber_package_active_period" | "get_subscriber_location_by_cell_id" | "reset_subscriber_gz_counter" | "list_destination_lists" | "list_subscriber_voip_tariff" | "list_voip_tariff_rule" | "change_network_profile_of_location_zone" | "get_network_default" | "set_network_default" | "plan_network_default" | "carrier_webhook_config" | "ai_chat" | "ai_insights" | "ai_quota" | "list_invoice_periods" | "get_billing_config" | "update_billing_config" | "stripe_connect_begin" | "stripe_connect_status" | "list_invoices" | "create_invoice" | "get_invoice" | "update_invoice" | "void_invoice" | "get_invoice_document" | "list_connectivity_plans" | "list_connectivity_products" | "create_connectivity_product" | "get_connectivity_product" | "list_connectivity_intents" | "create_connectivity_intent" | "get_connectivity_intent" | "confirm_connectivity_intent" | "create_connectivity_webhook_endpoint" | "list_connectivity_webhook_endpoints" | "delete_connectivity_webhook_endpoint" | "list_connectivity_events" | "get_connectivity_event" | "create_connectivity_usage_record" | "list_connectivity_usage_records" | "retry_connectivity_event" | "issue_esim_from_inventory" | "rollback_esim_issuance" | "subscriber_country_history" | "get_subscriber_notes" | "add_subscriber_note" | "put_subscriber_notes" | "observe_connectivity_event" | "ingest_connectivity_usage" | "ingest_cdr_events" | "aggregate_cdr" | "list_storefront_templates" | "list_storefront_buyer_orders" | "get_storefront_order_usage" | "get_storefront_order_top_up_options" | "cancel_storefront_order" | "get_storefront_order" | "rollback_storefront_order" | "get_hosted_storefront" | "get_hosted_storefront_plan_readiness" | "list_storefronts" | "create_storefront" | "list_storefront_orders" | "get_storefront" | "update_storefront" | "upsert_storefront_plan" | "update_storefront_plan" | "health_check";
@@ -22,6 +22,7 @@ export interface StorefrontPlanInput {
22
22
  priceCents?: number;
23
23
  currency?: string;
24
24
  templateId?: number;
25
+ accountId?: number;
25
26
  dataGb?: number;
26
27
  /** The only way a plan becomes unlimited. A 0 or missing dataGb without this stays finite. */
27
28
  unlimited?: boolean;
@@ -43,6 +44,7 @@ export interface StorefrontPlanBody {
43
44
  price_cents?: number;
44
45
  currency?: string;
45
46
  ocs_package_template_id?: number;
47
+ ocs_account_id?: number;
46
48
  data_gb?: number;
47
49
  unlimited?: boolean;
48
50
  validity_days?: number;
@@ -35,6 +35,7 @@ export function completePlanInput(input, plans) {
35
35
  input.priceCents,
36
36
  input.currency,
37
37
  input.templateId,
38
+ input.accountId,
38
39
  input.dataGb,
39
40
  input.unlimited,
40
41
  input.validityDays,
@@ -68,9 +69,14 @@ function sharedCurrency(plans) {
68
69
  return [...codes][0];
69
70
  }
70
71
  export function storefrontPlanBody(input) {
72
+ if (input.accountId !== undefined && (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)) {
73
+ return { error: "OCS account id must be a positive integer." };
74
+ }
71
75
  const productId = input.productId?.trim() ?? "";
72
76
  if (productId !== "") {
73
77
  const body = { product_id: productId };
78
+ if (input.accountId !== undefined)
79
+ body.ocs_account_id = input.accountId;
74
80
  if (input.priceCents !== undefined)
75
81
  body.price_cents = input.priceCents;
76
82
  if (input.active !== undefined)
@@ -85,6 +91,7 @@ export function storefrontPlanBody(input) {
85
91
  input.priceCents,
86
92
  input.currency,
87
93
  input.templateId,
94
+ input.accountId,
88
95
  input.dataGb,
89
96
  input.unlimited,
90
97
  input.validityDays,
@@ -112,6 +119,8 @@ export function storefrontPlanBody(input) {
112
119
  currency: input.currency,
113
120
  ocs_package_template_id: input.templateId,
114
121
  };
122
+ if (input.accountId !== undefined)
123
+ body.ocs_account_id = input.accountId;
115
124
  if (input.dataGb !== undefined)
116
125
  body.data_gb = input.dataGb;
117
126
  if (input.unlimited !== undefined)
package/dist/types.d.ts CHANGED
@@ -69,14 +69,20 @@ export interface HostedStorefront {
69
69
  name: string;
70
70
  currency: string;
71
71
  ocs_package_template_id: number;
72
+ ocs_account_id: number | null;
73
+ account_status: "owned" | "not_owned" | "unset" | "unknown";
72
74
  }>;
73
75
  }
76
+ export type StorefrontPlanUpdateParams = Pick<StorefrontPlanParams, "price_cents" | "active" | "ocs_account_id"> & {
77
+ sort_order?: number;
78
+ };
74
79
  export interface StorefrontPlanParams {
75
80
  slug?: string;
76
81
  name?: string;
77
82
  price_cents?: number;
78
83
  currency?: string;
79
84
  ocs_package_template_id?: number;
85
+ ocs_account_id?: number;
80
86
  product_id?: string;
81
87
  description?: string;
82
88
  data_gb?: number;
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Published version. Keep this equal to package.json. */
2
- export declare const SDK_VERSION = "0.2.6";
3
- export declare const USER_AGENT = "@carrierllc/sdk/0.2.6";
2
+ export declare const SDK_VERSION = "0.2.8";
3
+ export declare const USER_AGENT = "@carrierllc/sdk/0.2.8";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Published version. Keep this equal to package.json. */
2
- export const SDK_VERSION = "0.2.6";
2
+ export const SDK_VERSION = "0.2.8";
3
3
  export const USER_AGENT = `@carrierllc/sdk/${SDK_VERSION}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carrierllc/sdk",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "TypeScript client for the Carrier API, MCP server, and CLI.",
5
5
  "license": "MIT",
6
6
  "type": "module",