@hyperline/cli 0.1.0-build.1.bb28333 → 0.1.0-build.1.bcaefe3

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.
@@ -34894,10 +34894,10 @@ var require_shared = __commonJS({
34894
34894
  ZodId: () => ZodId,
34895
34895
  ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
34896
34896
  });
34897
- var import_zod19 = require_lib();
34897
+ var import_zod20 = require_lib();
34898
34898
  var countryIds2 = ["all", ...countries.map(({ id }) => id)];
34899
- var ZodId = import_zod19.z.enum(countryIds2);
34900
- var ZodTranslationsSchemaFn = (schema) => import_zod19.z.record(import_zod19.z.string(), schema.optional());
34899
+ var ZodId = import_zod20.z.enum(countryIds2);
34900
+ var ZodTranslationsSchemaFn = (schema) => import_zod20.z.record(import_zod20.z.string(), schema.optional());
34901
34901
  var UsStates = [
34902
34902
  { id: "AA", name: "Armed Forces Americas" },
34903
34903
  { id: "AE", name: "Armed Forces Europe" },
@@ -38781,7 +38781,7 @@ Customer type.
38781
38781
 
38782
38782
  - \`taxable\`: Taxes are automatically determined for the customer.
38783
38783
  - \`exempt\`: The customer is exempt from tax.
38784
- `).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38784
+ `).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38785
38785
  How customer invoices are issued from the parent organisation.
38786
38786
 
38787
38787
  - \`none\`: Invoices will keep being issued from this customer.
@@ -38812,6 +38812,8 @@ Examples:
38812
38812
  args.registration_number = opts.registrationNumber;
38813
38813
  if (opts.externalId !== void 0)
38814
38814
  args.external_id = opts.externalId;
38815
+ if (opts.domain !== void 0)
38816
+ args.domain = opts.domain;
38815
38817
  if (opts.invoicingEntityId !== void 0)
38816
38818
  args.invoicing_entity_id = opts.invoicingEntityId;
38817
38819
  if (opts.billingAddress !== void 0)
@@ -38910,7 +38912,7 @@ Customer type.
38910
38912
 
38911
38913
  - \`taxable\`: Taxes are automatically determined for the customer.
38912
38914
  - \`exempt\`: The customer is exempt from tax.
38913
- `).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38915
+ `).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38914
38916
  How customer invoices are issued from the parent organisation.
38915
38917
 
38916
38918
  - \`none\`: Invoices will keep being issued from this customer.
@@ -38943,6 +38945,8 @@ Examples:
38943
38945
  args.registration_number = opts.registrationNumber;
38944
38946
  if (opts.externalId !== void 0)
38945
38947
  args.external_id = opts.externalId;
38948
+ if (opts.domain !== void 0)
38949
+ args.domain = opts.domain;
38946
38950
  if (opts.invoicingEntityId !== void 0)
38947
38951
  args.invoicing_entity_id = opts.invoicingEntityId;
38948
38952
  if (opts.billingAddress !== void 0)
@@ -39112,6 +39116,38 @@ Examples:
39112
39116
  queryParamKeys: []
39113
39117
  });
39114
39118
  });
39119
+ resource.command("get-customer-arr-history").description(`List every subscription-level ARR evolution for a customer, including previous and current fixed, variable, and total annual values in each subscription currency. Results are latest-first and paginated with limit/cursor.`).requiredOption("--id <value>", `id parameter`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
39120
+ Examples:
39121
+ hyperline customers get-customer-arr-history --id <id>
39122
+ hyperline customers get-customer-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
39123
+ const ctx = resource.parent?.opts()._ctx;
39124
+ if (!ctx) {
39125
+ process.stderr.write("Error: Not authenticated\n");
39126
+ process.exit(1);
39127
+ }
39128
+ const args = {};
39129
+ if (opts.id !== void 0)
39130
+ args.id = opts.id;
39131
+ if (opts.cursor !== void 0)
39132
+ args.cursor = opts.cursor;
39133
+ if (opts["occurredAt.gte"] !== void 0)
39134
+ args.occurred_at__gte = opts["occurredAt.gte"];
39135
+ if (opts["occurredAt.lte"] !== void 0)
39136
+ args.occurred_at__lte = opts["occurredAt.lte"];
39137
+ if (opts.limit !== void 0)
39138
+ args.limit = Number(opts.limit);
39139
+ await ctx.execute({
39140
+ method: "GET",
39141
+ path: "/v1/customers/{id}/arr-history",
39142
+ args,
39143
+ queryParamKeys: [
39144
+ "limit",
39145
+ "cursor",
39146
+ "occurred_at__gte",
39147
+ "occurred_at__lte"
39148
+ ]
39149
+ });
39150
+ });
39115
39151
  resource.command("get-customer-valuation").description(`Compute aggregated valuation metrics for a customer across all active subscriptions, grouped by currency. Returns contract value, recurring contract value, and ARR for each subscription and aggregated totals. Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
39116
39152
  Examples:
39117
39153
  hyperline customers get-customer-valuation --id <id>
@@ -40465,7 +40501,7 @@ Examples:
40465
40501
  queryParamKeys: []
40466
40502
  });
40467
40503
  });
40468
- resource.command("update").description(`Update an invoice. Draft/grace_period allow modifying line items, dates, and metadata before finalization. Finalized invoices are restricted to metadata (paid: custom_note; uncollectible: properties/custom_note/custom_properties).`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Type of the invoice.
40504
+ resource.command("update").description(`Update an invoice. Draft/grace_period allow modifying line items, dates, and metadata before finalization. Finalized invoices are restricted to metadata (paid: custom_note/purchase_order; uncollectible: properties/custom_note/custom_properties).`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Type of the invoice.
40469
40505
 
40470
40506
  - \`invoice\`: Legal invoice to be paid by your customer.
40471
40507
  - \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
@@ -41278,7 +41314,12 @@ Examples:
41278
41314
  ]
41279
41315
  });
41280
41316
  });
41281
- resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
41317
+ resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--credits-grant-mode <value>", `
41318
+ How the periodic credit allowance is granted for partial billing periods.
41319
+
41320
+ - \`prorated\` (default): the granted credits are prorated to the elapsed period.
41321
+ - \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
41322
+ `).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
41282
41323
  Examples:
41283
41324
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
41284
41325
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
@@ -41313,6 +41354,8 @@ Examples:
41313
41354
  args.unit_name = opts.unitName;
41314
41355
  if (opts.creditAggregators !== void 0)
41315
41356
  args.credit_aggregators = opts.creditAggregators;
41357
+ if (opts.creditsGrantMode !== void 0)
41358
+ args.credits_grant_mode = opts.creditsGrantMode;
41316
41359
  if (opts.displayMode !== void 0)
41317
41360
  args.display_mode = opts.displayMode;
41318
41361
  if (opts.bundleItems !== void 0)
@@ -41414,6 +41457,32 @@ Examples:
41414
41457
  queryParamKeys: []
41415
41458
  });
41416
41459
  });
41460
+ resource.command("delete").description(`Permanently delete an archived product by ID. Products attached to subscriptions, plans, or templates cannot be deleted.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
41461
+ Examples:
41462
+ hyperline products delete --id <id>
41463
+ hyperline products delete --id <id> --output json`).action(async (opts) => {
41464
+ const ctx = resource.parent?.opts()._ctx;
41465
+ if (!ctx) {
41466
+ process.stderr.write("Error: Not authenticated\n");
41467
+ process.exit(1);
41468
+ }
41469
+ const args = {};
41470
+ if (opts.id !== void 0)
41471
+ args.id = opts.id;
41472
+ if (!opts.yes) {
41473
+ const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
41474
+ if (!confirmed) {
41475
+ process.stdout.write("Aborted.\n");
41476
+ return;
41477
+ }
41478
+ }
41479
+ await ctx.execute({
41480
+ method: "DELETE",
41481
+ path: "/v1/products/{id}",
41482
+ args,
41483
+ queryParamKeys: []
41484
+ });
41485
+ });
41417
41486
  resource.command("unarchive").description(`Restore a previously archived product, making it available for new subscriptions again.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
41418
41487
  Examples:
41419
41488
  hyperline products unarchive --id <id>
@@ -41739,7 +41808,7 @@ Examples:
41739
41808
  - \`all\`: Display all pricing tiers.
41740
41809
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
41741
41810
  - \`none\`: Hide all pricing tiers.
41742
- `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
41811
+ `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
41743
41812
  Examples:
41744
41813
  hyperline quotes update --id <id>
41745
41814
  hyperline quotes update --id <id> --owner-email <owner_email> --comments <comments>
@@ -41784,6 +41853,8 @@ Examples:
41784
41853
  args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
41785
41854
  if (opts.generateDraftInvoices !== void 0)
41786
41855
  args.generate_draft_invoices = opts.generateDraftInvoices;
41856
+ if (opts.crmOpportunityId !== void 0)
41857
+ args.crm_opportunity_id = opts.crmOpportunityId;
41787
41858
  if (opts.expiresAt !== void 0)
41788
41859
  args.expires_at = opts.expiresAt;
41789
41860
  if (opts.subscription !== void 0)
@@ -42211,7 +42282,7 @@ Examples:
42211
42282
  queryParamKeys: []
42212
42283
  });
42213
42284
  });
42214
- resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
42285
+ resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. Must be a future date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
42215
42286
  Examples:
42216
42287
  hyperline subscriptions pause --id <id>
42217
42288
  hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
@@ -42752,6 +42823,38 @@ Examples:
42752
42823
  queryParamKeys: []
42753
42824
  });
42754
42825
  });
42826
+ resource.command("get-subscription-arr-history").description(`List every ARR evolution for a subscription, including previous and current fixed, variable, and total annual values in the subscription currency. Results are latest-first and paginated with limit/cursor.`).requiredOption("--id <value>", `id parameter`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
42827
+ Examples:
42828
+ hyperline subscriptions get-subscription-arr-history --id <id>
42829
+ hyperline subscriptions get-subscription-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
42830
+ const ctx = resource.parent?.opts()._ctx;
42831
+ if (!ctx) {
42832
+ process.stderr.write("Error: Not authenticated\n");
42833
+ process.exit(1);
42834
+ }
42835
+ const args = {};
42836
+ if (opts.id !== void 0)
42837
+ args.id = opts.id;
42838
+ if (opts.cursor !== void 0)
42839
+ args.cursor = opts.cursor;
42840
+ if (opts["occurredAt.gte"] !== void 0)
42841
+ args.occurred_at__gte = opts["occurredAt.gte"];
42842
+ if (opts["occurredAt.lte"] !== void 0)
42843
+ args.occurred_at__lte = opts["occurredAt.lte"];
42844
+ if (opts.limit !== void 0)
42845
+ args.limit = Number(opts.limit);
42846
+ await ctx.execute({
42847
+ method: "GET",
42848
+ path: "/v1/subscriptions/{id}/arr-history",
42849
+ args,
42850
+ queryParamKeys: [
42851
+ "limit",
42852
+ "cursor",
42853
+ "occurred_at__gte",
42854
+ "occurred_at__lte"
42855
+ ]
42856
+ });
42857
+ });
42755
42858
  resource.command("get-subscription-valuation").description(`Compute valuation metrics for a subscription: contract value (total/invoiced/remaining), recurring contract value, and ARR (fixed + variable). Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
42756
42859
  Examples:
42757
42860
  hyperline subscriptions get-subscription-valuation --id <id>
@@ -62246,6 +62349,12 @@ var DateTimeSchema = external_exports.iso.datetime({
62246
62349
  example: "2024-12-20T16:04:11Z"
62247
62350
  });
62248
62351
 
62352
+ // ../hyperline-lib/build/http/dto/domain.js
62353
+ var DomainSchema = external_exports.string().trim().toLowerCase().regex(/^(?!:\/\/)(?=.{1,253}$)(?!-)([a-z0-9-]{1,63}\.)+[a-z]{2,63}$/, "Invalid domain").openapi({
62354
+ description: "Domain name.",
62355
+ example: "acme.com"
62356
+ });
62357
+
62249
62358
  // ../hyperline-lib/build/http/dto/error.js
62250
62359
  var ErrorSchema = external_exports.object({
62251
62360
  message: external_exports.string()
@@ -62302,6 +62411,7 @@ var de = {
62302
62411
  "accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
62303
62412
  "accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
62304
62413
  "accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
62414
+ "accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
62305
62415
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62306
62416
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62307
62417
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
@@ -62373,6 +62483,7 @@ var en = {
62373
62483
  "accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
62374
62484
  "accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
62375
62485
  "accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
62486
+ "accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
62376
62487
  "accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
62377
62488
  "accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62378
62489
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
@@ -62390,6 +62501,7 @@ var es = {
62390
62501
  "accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
62391
62502
  "accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
62392
62503
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
62504
+ "accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
62393
62505
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62394
62506
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62395
62507
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
@@ -62439,6 +62551,7 @@ var fr = {
62439
62551
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
62440
62552
  "accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
62441
62553
  "accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
62554
+ "accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
62442
62555
  "accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
62443
62556
  "creditNotes.refundChargeName": "Remboursement pour facture",
62444
62557
  "credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
@@ -62478,6 +62591,7 @@ var it = {
62478
62591
  "accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
62479
62592
  "accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
62480
62593
  "accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
62594
+ "accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
62481
62595
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62482
62596
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62483
62597
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
@@ -62522,6 +62636,7 @@ var nl = {
62522
62636
  "accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
62523
62637
  "accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
62524
62638
  "accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
62639
+ "accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
62525
62640
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62526
62641
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62527
62642
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
@@ -62566,6 +62681,7 @@ var pl = {
62566
62681
  "accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
62567
62682
  "accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
62568
62683
  "accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
62684
+ "accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
62569
62685
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62570
62686
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62571
62687
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
@@ -62610,6 +62726,7 @@ var pt = {
62610
62726
  "accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
62611
62727
  "accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
62612
62728
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
62729
+ "accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
62613
62730
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62614
62731
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62615
62732
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.bb28333",
3
+ "version": "0.1.0-build.1.bcaefe3",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -48,7 +48,7 @@
48
48
  "@hyperline/vitest-config": "workspace:*",
49
49
  "@types/node": "24.10.1",
50
50
  "esbuild": "0.28.0",
51
- "typescript": "6.0.3",
51
+ "typescript": "7.0.2",
52
52
  "vitest": "4.1.5"
53
53
  },
54
54
  "publishConfig": {