@hyperline/cli 0.1.0-build.1.01eff78 → 0.1.0-build.1.03d8922

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.
@@ -38762,7 +38762,7 @@ How customer invoices are issued from the parent organisation.
38762
38762
  - \`none\`: Invoices will keep being issued from this customer.
38763
38763
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38764
38764
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38765
- `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).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("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
38765
+ `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).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("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
38766
38766
  Examples:
38767
38767
  hyperline customers create-customer
38768
38768
  hyperline customers create-customer --name <name> --type <type>
@@ -38819,6 +38819,10 @@ Examples:
38819
38819
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38820
38820
  if (opts.priceBookId !== void 0)
38821
38821
  args.price_book_id = opts.priceBookId;
38822
+ if (opts.ownerId !== void 0)
38823
+ args.owner_id = opts.ownerId;
38824
+ if (opts.followerIds !== void 0)
38825
+ args.follower_ids = opts.followerIds;
38822
38826
  if (opts.taxRateCustom !== void 0)
38823
38827
  args.tax_rate_custom = Number(opts.taxRateCustom);
38824
38828
  if (opts.customPaymentDelay !== void 0)
@@ -38887,7 +38891,7 @@ How customer invoices are issued from the parent organisation.
38887
38891
  - \`none\`: Invoices will keep being issued from this customer.
38888
38892
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38889
38893
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38890
- `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).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("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
38894
+ `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).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("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
38891
38895
  Examples:
38892
38896
  hyperline customers update --id <id>
38893
38897
  hyperline customers update --id <id> --name <name> --type <type>
@@ -38948,6 +38952,10 @@ Examples:
38948
38952
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38949
38953
  if (opts.priceBookId !== void 0)
38950
38954
  args.price_book_id = opts.priceBookId;
38955
+ if (opts.ownerId !== void 0)
38956
+ args.owner_id = opts.ownerId;
38957
+ if (opts.followerIds !== void 0)
38958
+ args.follower_ids = opts.followerIds;
38951
38959
  if (opts.taxRateCustom !== void 0)
38952
38960
  args.tax_rate_custom = Number(opts.taxRateCustom);
38953
38961
  if (opts.customPaymentDelay !== void 0)
@@ -39612,6 +39620,7 @@ Export name.
39612
39620
  - \`draft_invoices\`: Export all draft invoices, with customer and product information.
39613
39621
  - \`open_invoices\`: Export all open invoices, with customer and product information.
39614
39622
  - \`live_subscriptions\`: List of all active subscriptions line by line.
39623
+ - \`credit_balances\`: Monthly credit balance roll-forward per customer and credit type (opening, top-ups, consumption, expiry, closing).
39615
39624
  `).requiredOption("--file-type <value>", `
39616
39625
  Export file type.
39617
39626
 
@@ -40603,7 +40612,7 @@ Examples:
40603
40612
  queryParamKeys: []
40604
40613
  });
40605
40614
  });
40606
- resource.command("delete-invoice-transaction").description(`Delete a scheduled transaction from an invoice. Only applies to transactions that haven't been processed yet.`).requiredOption("--id <value>", `id parameter`).requiredOption("--transaction-id <value>", `transactionId parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
40615
+ resource.command("delete-invoice-transaction").description(`Delete a scheduled transaction or wallet debit from an invoice.`).requiredOption("--id <value>", `id parameter`).requiredOption("--transaction-id <value>", `transactionId parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
40607
40616
  Examples:
40608
40617
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId>
40609
40618
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId> --output json`).action(async (opts) => {
@@ -41404,13 +41413,13 @@ Examples:
41404
41413
  // build/commands/generated/quotes.js
41405
41414
  function registerQuotesCommands(parent) {
41406
41415
  const resource = parent.command("quotes").description("Manage quotes");
41407
- resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices.`).option("--status <value>", `
41416
+ resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices. When creating from a quote template, do not combine \`template_id\` with subscription overrides for dates, contract terms, products, phases, coupons, discounts, prices, or seats in this call: first create the quote from \`template_id\` so template terms and contract documents are copied, then call \`update_quote\` with the subscription payload.`).option("--status <value>", `
41408
41417
  Quote status.
41409
41418
 
41410
41419
  - \`draft\`: The quote is a draft.
41411
41420
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41412
41421
  - \`pending_signature\`: The quote is awaiting the customer's signature.
41413
- `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41422
+ `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41414
41423
 
41415
41424
  - \`all\`: Display all pricing tiers.
41416
41425
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41442,6 +41451,8 @@ Examples:
41442
41451
  args.collect_payment_details = opts.collectPaymentDetails;
41443
41452
  if (opts.collectCustomPropertyIds !== void 0)
41444
41453
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41454
+ if (opts.contractClauseIds !== void 0)
41455
+ args.contract_clause_ids = opts.contractClauseIds;
41445
41456
  if (opts.requireTaxId !== void 0)
41446
41457
  args.require_tax_id = opts.requireTaxId;
41447
41458
  if (opts.displayQuoteValue !== void 0)
@@ -41698,7 +41709,7 @@ Examples:
41698
41709
  queryParamKeys: []
41699
41710
  });
41700
41711
  });
41701
- resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41712
+ resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41702
41713
 
41703
41714
  - \`all\`: Display all pricing tiers.
41704
41715
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41726,6 +41737,8 @@ Examples:
41726
41737
  args.collect_payment_details = opts.collectPaymentDetails;
41727
41738
  if (opts.collectCustomPropertyIds !== void 0)
41728
41739
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41740
+ if (opts.contractClauseIds !== void 0)
41741
+ args.contract_clause_ids = opts.contractClauseIds;
41729
41742
  if (opts.requireTaxId !== void 0)
41730
41743
  args.require_tax_id = opts.requireTaxId;
41731
41744
  if (opts.displayQuoteValue !== void 0)
@@ -41801,6 +41814,25 @@ Examples:
41801
41814
  queryParamKeys: []
41802
41815
  });
41803
41816
  });
41817
+ resource.command("finalize").description(`Finalize a draft quote. The quote is submitted for approval when approval is required, otherwise it becomes approved and ready to be sent for signature.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
41818
+ Examples:
41819
+ hyperline quotes finalize --id <id>
41820
+ hyperline quotes finalize --id <id> --output json`).action(async (opts) => {
41821
+ const ctx = resource.parent?.opts()._ctx;
41822
+ if (!ctx) {
41823
+ process.stderr.write("Error: Not authenticated\n");
41824
+ process.exit(1);
41825
+ }
41826
+ const args = {};
41827
+ if (opts.id !== void 0)
41828
+ args.id = opts.id;
41829
+ await ctx.execute({
41830
+ method: "POST",
41831
+ path: "/v1/quotes/{id}/finalize",
41832
+ args,
41833
+ queryParamKeys: []
41834
+ });
41835
+ });
41804
41836
  resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).requiredOption("--email <value>", `Email address to which the quote will be sent for signature.`).option("--message <value>", `Custom message used in the email content.`).addHelpText("after", `
41805
41837
  Examples:
41806
41838
  hyperline quotes send --id <id> --email <email>
@@ -41908,10 +41940,132 @@ Examples:
41908
41940
  });
41909
41941
  }
41910
41942
 
41943
+ // build/commands/generated/quotes-templates.js
41944
+ function registerQuotes_TemplatesCommands(parent) {
41945
+ const resource = parent.command("quotes-templates").description("Manage quotes > templates");
41946
+ resource.command("list-quote-templates").description(`List quote templates with pagination and optional filters for id, name, subscription_template_id, and search. Use template IDs to create quotes from reusable quote defaults.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--subscription-template-id <value>", `subscription_template_id`).option("--subscription-template-id.not <value>", `subscription_template_id__not`).option("--subscription-template-id.is-null <value>", `subscription_template_id__isNull`).option("--subscription-template-id.is-not-null <value>", `subscription_template_id__isNotNull`).option("--subscription-template-id.equals <value>", `subscription_template_id__equals`).option("--subscription-template-id.contains <value>", `subscription_template_id__contains`).option("--subscription-template-id.starts-with <value>", `subscription_template_id__startsWith`).option("--subscription-template-id.end-with <value>", `subscription_template_id__endWith`).option("--search <value>", `search`).addHelpText("after", `
41947
+ Examples:
41948
+ hyperline quotes-templates list-quote-templates
41949
+ hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
41950
+ const ctx = resource.parent?.opts()._ctx;
41951
+ if (!ctx) {
41952
+ process.stderr.write("Error: Not authenticated\n");
41953
+ process.exit(1);
41954
+ }
41955
+ const args = {};
41956
+ if (opts.id !== void 0)
41957
+ args.id = opts.id;
41958
+ if (opts["id.not"] !== void 0)
41959
+ args.id__not = opts["id.not"];
41960
+ if (opts["id.isNull"] !== void 0)
41961
+ args.id__isNull = opts["id.isNull"];
41962
+ if (opts["id.isNotNull"] !== void 0)
41963
+ args.id__isNotNull = opts["id.isNotNull"];
41964
+ if (opts["id.equals"] !== void 0)
41965
+ args.id__equals = opts["id.equals"];
41966
+ if (opts["id.contains"] !== void 0)
41967
+ args.id__contains = opts["id.contains"];
41968
+ if (opts["id.startsWith"] !== void 0)
41969
+ args.id__startsWith = opts["id.startsWith"];
41970
+ if (opts["id.endWith"] !== void 0)
41971
+ args.id__endWith = opts["id.endWith"];
41972
+ if (opts.name !== void 0)
41973
+ args.name = opts.name;
41974
+ if (opts["name.not"] !== void 0)
41975
+ args.name__not = opts["name.not"];
41976
+ if (opts["name.isNull"] !== void 0)
41977
+ args.name__isNull = opts["name.isNull"];
41978
+ if (opts["name.isNotNull"] !== void 0)
41979
+ args.name__isNotNull = opts["name.isNotNull"];
41980
+ if (opts["name.equals"] !== void 0)
41981
+ args.name__equals = opts["name.equals"];
41982
+ if (opts["name.contains"] !== void 0)
41983
+ args.name__contains = opts["name.contains"];
41984
+ if (opts["name.startsWith"] !== void 0)
41985
+ args.name__startsWith = opts["name.startsWith"];
41986
+ if (opts["name.endWith"] !== void 0)
41987
+ args.name__endWith = opts["name.endWith"];
41988
+ if (opts.subscriptionTemplateId !== void 0)
41989
+ args.subscription_template_id = opts.subscriptionTemplateId;
41990
+ if (opts["subscriptionTemplateId.not"] !== void 0)
41991
+ args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
41992
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
41993
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
41994
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
41995
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
41996
+ if (opts["subscriptionTemplateId.equals"] !== void 0)
41997
+ args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
41998
+ if (opts["subscriptionTemplateId.contains"] !== void 0)
41999
+ args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
42000
+ if (opts["subscriptionTemplateId.startsWith"] !== void 0)
42001
+ args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
42002
+ if (opts["subscriptionTemplateId.endWith"] !== void 0)
42003
+ args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
42004
+ if (opts.search !== void 0)
42005
+ args.search = opts.search;
42006
+ if (opts.take !== void 0)
42007
+ args.take = Number(opts.take);
42008
+ if (opts.skip !== void 0)
42009
+ args.skip = Number(opts.skip);
42010
+ await ctx.execute({
42011
+ method: "GET",
42012
+ path: "/v1/quotes/templates",
42013
+ args,
42014
+ queryParamKeys: [
42015
+ "take",
42016
+ "skip",
42017
+ "id",
42018
+ "id__not",
42019
+ "id__isNull",
42020
+ "id__isNotNull",
42021
+ "id__equals",
42022
+ "id__contains",
42023
+ "id__startsWith",
42024
+ "id__endWith",
42025
+ "name",
42026
+ "name__not",
42027
+ "name__isNull",
42028
+ "name__isNotNull",
42029
+ "name__equals",
42030
+ "name__contains",
42031
+ "name__startsWith",
42032
+ "name__endWith",
42033
+ "subscription_template_id",
42034
+ "subscription_template_id__not",
42035
+ "subscription_template_id__isNull",
42036
+ "subscription_template_id__isNotNull",
42037
+ "subscription_template_id__equals",
42038
+ "subscription_template_id__contains",
42039
+ "subscription_template_id__startsWith",
42040
+ "subscription_template_id__endWith",
42041
+ "search"
42042
+ ]
42043
+ });
42044
+ });
42045
+ resource.command("get-quote-template").description(`Retrieve a quote template by ID with quote defaults, display options, attachments, and linked contract template/clause IDs.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
42046
+ Examples:
42047
+ hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
42048
+ const ctx = resource.parent?.opts()._ctx;
42049
+ if (!ctx) {
42050
+ process.stderr.write("Error: Not authenticated\n");
42051
+ process.exit(1);
42052
+ }
42053
+ const args = {};
42054
+ if (opts.id !== void 0)
42055
+ args.id = opts.id;
42056
+ await ctx.execute({
42057
+ method: "GET",
42058
+ path: "/v1/quotes/templates/{id}",
42059
+ args,
42060
+ queryParamKeys: []
42061
+ });
42062
+ });
42063
+ }
42064
+
41911
42065
  // build/commands/generated/subscriptions.js
41912
42066
  function registerSubscriptionsCommands(parent) {
41913
42067
  const resource = parent.command("subscriptions").description("Manage subscriptions");
41914
- resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
42068
+ resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
41915
42069
  Examples:
41916
42070
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
41917
42071
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
@@ -41934,6 +42088,8 @@ Examples:
41934
42088
  args.charge_at = opts.chargeAt;
41935
42089
  if (opts.calculationMethod !== void 0)
41936
42090
  args.calculation_method = opts.calculationMethod;
42091
+ if (opts.precision !== void 0)
42092
+ args.precision = opts.precision;
41937
42093
  if (opts.refundMethod !== void 0)
41938
42094
  args.refund_method = opts.refundMethod;
41939
42095
  if (opts.type !== void 0)
@@ -41947,7 +42103,7 @@ Examples:
41947
42103
  queryParamKeys: []
41948
42104
  });
41949
42105
  });
41950
- resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42106
+ resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
41951
42107
  Examples:
41952
42108
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41953
42109
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -41970,6 +42126,8 @@ Examples:
41970
42126
  args.charge_at = opts.chargeAt;
41971
42127
  if (opts.calculationMethod !== void 0)
41972
42128
  args.calculation_method = opts.calculationMethod;
42129
+ if (opts.precision !== void 0)
42130
+ args.precision = opts.precision;
41973
42131
  if (opts.refundMethod !== void 0)
41974
42132
  args.refund_method = opts.refundMethod;
41975
42133
  if (opts.updates !== void 0)
@@ -42109,7 +42267,7 @@ Examples:
42109
42267
  queryParamKeys: []
42110
42268
  });
42111
42269
  });
42112
- resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42270
+ resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42113
42271
  Examples:
42114
42272
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
42115
42273
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -42132,6 +42290,8 @@ Examples:
42132
42290
  args.charge_at = opts.chargeAt;
42133
42291
  if (opts.calculationMethod !== void 0)
42134
42292
  args.calculation_method = opts.calculationMethod;
42293
+ if (opts.precision !== void 0)
42294
+ args.precision = opts.precision;
42135
42295
  if (opts.refundMethod !== void 0)
42136
42296
  args.refund_method = opts.refundMethod;
42137
42297
  if (opts.updates !== void 0)
@@ -42858,7 +43018,7 @@ Examples:
42858
43018
  ]
42859
43019
  });
42860
43020
  });
42861
- resource.command("create-subscription-transition").description(`Create a transition from one subscription to another, configured from a subscription, plan, or template. Can be applied immediately or scheduled.`).requiredOption("--source-subscription-id <value>", `The ID of the subscription to transition from`).option("--name <value>", `An optional name for the transition`).option("--calculation-method <value>", `The calculation method to use for the transition. 'do_not_charge' will not generate any transition invoice. 'pro_rata' will generate a prorated invoice for the remaining period.`).option("--billing-cycle-transition-method <value>", `The billing cycle transition method to use. 'keep_current_billing_cycle' will keep the current billing cycle dates if possible. 'align_to_new_billing_cycle' will align the billing cycle to the transition date.`).requiredOption("--application-schedule <value>", `Whether the transition should be applied 'immediately' or 'scheduled' for a specific date. Past dates within the current billing period are supported and will be applied immediately.`).option("--transition-date <value>", `The date at which the transition should occur. Only applicable if the application schedule is 'scheduled'. Can be a past date within the current billing period. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).requiredOption("--target-subscription <value>", `The configuration of the subscription to transition to`).addHelpText("after", `
43021
+ resource.command("create-subscription-transition").description(`Create a transition from one subscription to another, configured from a subscription, plan, or template. Can be applied immediately or scheduled.`).requiredOption("--source-subscription-id <value>", `The ID of the subscription to transition from`).option("--name <value>", `An optional name for the transition`).option("--calculation-method <value>", `The calculation method to use for the transition. 'do_not_charge' will not generate any transition invoice. 'pro_rata' will generate a prorated invoice for the remaining period. 'refund_and_reinvoice' (only available with application_schedule 'last_renewal') issues a credit note for what was invoiced for the current period and a separate invoice for the new configuration.`).option("--billing-cycle-transition-method <value>", `The billing cycle transition method to use. 'keep_current_billing_cycle' will keep the current billing cycle dates if possible. 'align_to_new_billing_cycle' will align the billing cycle to the transition date.`).requiredOption("--application-schedule <value>", `When the transition should be applied: 'immediately', 'scheduled' for a specific date, or 'last_renewal' to apply it retroactively to the start of the current billing period (refunding what was already invoiced for that period and re-charging the new configuration). Past dates within the current billing period are supported and will be applied immediately.`).option("--transition-date <value>", `The date at which the transition should occur. Only applicable if the application schedule is 'scheduled'. Can be a past date within the current billing period. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).requiredOption("--target-subscription <value>", `The configuration of the subscription to transition to`).addHelpText("after", `
42862
43022
  Examples:
42863
43023
  hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription>
42864
43024
  hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription> --name <name> --calculation-method <calculation_method>
@@ -43509,6 +43669,7 @@ function registerAllCommands(program2) {
43509
43669
  registerProductsCommands(program2);
43510
43670
  registerPrice_ConfigurationsCommands(program2);
43511
43671
  registerQuotesCommands(program2);
43672
+ registerQuotes_TemplatesCommands(program2);
43512
43673
  registerSubscriptions_TemplatesCommands(program2);
43513
43674
  registerSubscriptionsCommands(program2);
43514
43675
  registerSubscriptions_TransitionsCommands(program2);
@@ -61644,6 +61805,7 @@ import * as winston from "winston";
61644
61805
 
61645
61806
  // ../hyperline-monitoring/build/logger/formatting/format.js
61646
61807
  import prune from "json-prune";
61808
+ var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
61647
61809
  function jsonFormat(info) {
61648
61810
  const prunedInfo = JSON.parse(prune(info));
61649
61811
  for (const [key, value] of Object.entries(prunedInfo)) {
@@ -61726,17 +61888,26 @@ function formatAxiosError(error48) {
61726
61888
  url: request?.url,
61727
61889
  baseURL: request?.baseURL,
61728
61890
  params: request?.params,
61729
- headers: request?.headers,
61891
+ headers: redactHeaders({ headers: request?.headers }),
61730
61892
  "axios-retry": request?.["axios-retry"]
61731
61893
  },
61732
61894
  response: {
61733
61895
  status: response?.status,
61734
61896
  statusText: response?.statusText,
61735
- headers: response?.headers,
61897
+ headers: redactHeaders({ headers: response?.headers }),
61736
61898
  data: response?.data
61737
61899
  }
61738
61900
  };
61739
61901
  }
61902
+ function redactHeaders({ headers }) {
61903
+ if (!isRecord(headers)) {
61904
+ return headers;
61905
+ }
61906
+ return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
61907
+ headerKey,
61908
+ REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
61909
+ ]));
61910
+ }
61740
61911
  function isRecord(value) {
61741
61912
  return typeof value === "object" && value !== null && !Array.isArray(value);
61742
61913
  }
@@ -61760,13 +61931,16 @@ function logHttpRequest(logger2, request, extra) {
61760
61931
  });
61761
61932
  }
61762
61933
  function logHttpResponse(logger2, response, responseTime, extra) {
61763
- const { request, statusCode, responseBody } = response;
61934
+ const { request, statusCode, responseBody, responseHeaders } = response;
61764
61935
  const { message, metadata } = transform2(request);
61765
61936
  const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
61766
61937
  const responseMetadata = {
61767
61938
  statusCode,
61768
61939
  responseTime,
61769
- responseBody
61940
+ responseBody,
61941
+ // Redacted so secrets (authorization/cookie/token/…) never reach the logs
61942
+ // while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
61943
+ responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
61770
61944
  };
61771
61945
  logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
61772
61946
  ...metadata,
@@ -62106,6 +62280,7 @@ var de = {
62106
62280
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62107
62281
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62108
62282
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62283
+ "accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
62109
62284
  "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62110
62285
  "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
62111
62286
  "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
@@ -62118,7 +62293,9 @@ var de = {
62118
62293
  "invoices.outstandingProduct.descriptionPeriod": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{periodStart}} bis {{periodEnd}}",
62119
62294
  "invoices.outstandingProduct.name": "Offener Saldo",
62120
62295
  "invoices.prorata.paymentForItem": "Anteilig berechneter Betrag f\xFCr",
62296
+ "invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
62121
62297
  "invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
62298
+ "invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
62122
62299
  "subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
62123
62300
  "subscriptions.correction": "Vorperiodische Anpassung",
62124
62301
  "subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
@@ -62147,7 +62324,9 @@ var en = {
62147
62324
  "invoices.outstandingProduct.descriptionPeriod": "Unpaid amount from the invoice{{invoiceNumber}} from {{periodStart}} to {{periodEnd}}",
62148
62325
  "invoices.outstandingProduct.name": "Outstanding balance",
62149
62326
  "invoices.prorata.paymentForItem": "Prorated payment for",
62327
+ "invoices.prorata.paymentForItemFullPeriod": "Payment for",
62150
62328
  "invoices.prorata.refundForItem": "Prorated refund for",
62329
+ "invoices.prorata.refundForItemFullPeriod": "Refund for",
62151
62330
  "subscriptions.closingChargeName": "Closing fee for subscription",
62152
62331
  "subscriptions.correction": "Adjustment previous period",
62153
62332
  "subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
@@ -62174,6 +62353,7 @@ var en = {
62174
62353
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62175
62354
  "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62176
62355
  "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62356
+ "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
62177
62357
  "einvoicing.paymentProcessed": "Payment processed",
62178
62358
  "einvoicing.paymentReceived": "Payment received",
62179
62359
  "einvoicing.paymentFromWallet": "Payment from wallet"
@@ -62188,6 +62368,7 @@ var es = {
62188
62368
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62189
62369
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62190
62370
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62371
+ "accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
62191
62372
  "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62192
62373
  "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62193
62374
  "creditNotes.refundChargeName": "Reembolso por factura",
@@ -62200,7 +62381,9 @@ var es = {
62200
62381
  "invoices.outstandingProduct.descriptionPeriod": "Monto pendiente de la factura{{invoiceNumber}} del {{periodStart}} al {{periodEnd}}",
62201
62382
  "invoices.outstandingProduct.name": "Saldo pendiente",
62202
62383
  "invoices.prorata.paymentForItem": "Pago prorrateado por",
62384
+ "invoices.prorata.paymentForItemFullPeriod": "Pago por",
62203
62385
  "invoices.prorata.refundForItem": "Reembolso prorrateado por",
62386
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62204
62387
  "subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
62205
62388
  "subscriptions.correction": "Ajuste del periodo anterior",
62206
62389
  "subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
@@ -62225,6 +62408,7 @@ var fr = {
62225
62408
  "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62226
62409
  "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62227
62410
  "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62411
+ "accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
62228
62412
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62229
62413
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62230
62414
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
@@ -62241,7 +62425,9 @@ var fr = {
62241
62425
  "invoices.outstandingProduct.descriptionPeriod": "Montant impay\xE9 de la facture{{invoiceNumber}} du {{periodStart}} au {{periodEnd}}",
62242
62426
  "invoices.outstandingProduct.name": "Solde impay\xE9",
62243
62427
  "invoices.prorata.paymentForItem": "Paiement au prorata pour",
62428
+ "invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
62244
62429
  "invoices.prorata.refundForItem": "Remboursement au prorata pour",
62430
+ "invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
62245
62431
  "subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
62246
62432
  "subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
62247
62433
  "subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
@@ -62270,6 +62456,7 @@ var it = {
62270
62456
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62271
62457
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62272
62458
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62459
+ "accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
62273
62460
  "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62274
62461
  "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
62275
62462
  "creditNotes.refundChargeName": "Rimborso per fattura",
@@ -62282,7 +62469,9 @@ var it = {
62282
62469
  "invoices.outstandingProduct.descriptionPeriod": "Importo insoluto della fattura{{invoiceNumber}} dal {{periodStart}} al {{periodEnd}}",
62283
62470
  "invoices.outstandingProduct.name": "Saldo insoluto",
62284
62471
  "invoices.prorata.paymentForItem": "Pagamento proporzionale per",
62472
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
62285
62473
  "invoices.prorata.refundForItem": "Rimborso proporzionale per",
62474
+ "invoices.prorata.refundForItemFullPeriod": "Rimborso per",
62286
62475
  "subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
62287
62476
  "subscriptions.correction": "Correzione periodo precedente",
62288
62477
  "subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
@@ -62311,6 +62500,7 @@ var nl = {
62311
62500
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62312
62501
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62313
62502
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62503
+ "accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
62314
62504
  "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62315
62505
  "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
62316
62506
  "creditNotes.refundChargeName": "Terugbetaling voor factuur",
@@ -62323,7 +62513,9 @@ var nl = {
62323
62513
  "invoices.outstandingProduct.descriptionPeriod": "Onbetaald bedrag van de factuur{{invoiceNumber}} van {{periodStart}} tot {{periodEnd}}",
62324
62514
  "invoices.outstandingProduct.name": "Openstaand saldo",
62325
62515
  "invoices.prorata.paymentForItem": "Gedeeltelijke betaling voor",
62516
+ "invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
62326
62517
  "invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
62518
+ "invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
62327
62519
  "subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
62328
62520
  "subscriptions.correction": "Aanpassing vorige periode",
62329
62521
  "subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
@@ -62352,6 +62544,7 @@ var pl = {
62352
62544
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62353
62545
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62354
62546
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62547
+ "accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
62355
62548
  "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62356
62549
  "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
62357
62550
  "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
@@ -62364,7 +62557,9 @@ var pl = {
62364
62557
  "invoices.outstandingProduct.descriptionPeriod": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} od {{periodStart}} do {{periodEnd}}",
62365
62558
  "invoices.outstandingProduct.name": "Niezap\u0142acone saldo",
62366
62559
  "invoices.prorata.paymentForItem": "P\u0142atno\u015B\u0107 proporcjonalna za",
62560
+ "invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
62367
62561
  "invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
62562
+ "invoices.prorata.refundForItemFullPeriod": "Zwrot za",
62368
62563
  "subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
62369
62564
  "subscriptions.correction": "Korekta poprzedniego okresu",
62370
62565
  "subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
@@ -62393,6 +62588,7 @@ var pt = {
62393
62588
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62394
62589
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62395
62590
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62591
+ "accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
62396
62592
  "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62397
62593
  "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62398
62594
  "creditNotes.refundChargeName": "Reembolso pela fatura",
@@ -62405,7 +62601,9 @@ var pt = {
62405
62601
  "invoices.outstandingProduct.descriptionPeriod": "Valor em aberto da fatura{{invoiceNumber}} de {{periodStart}} a {{periodEnd}}",
62406
62602
  "invoices.outstandingProduct.name": "Saldo em aberto",
62407
62603
  "invoices.prorata.paymentForItem": "Pagamento proporcional por",
62604
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
62408
62605
  "invoices.prorata.refundForItem": "Reembolso proporcional por",
62606
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62409
62607
  "subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
62410
62608
  "subscriptions.correction": "Ajuste do per\xEDodo anterior",
62411
62609
  "subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
@@ -62527,10 +62725,16 @@ function buildHttpClient(dependencies) {
62527
62725
  return response;
62528
62726
  }, (error48) => {
62529
62727
  if (error48.response) {
62530
- const { config: responseConfig, status } = error48.response;
62728
+ const { config: responseConfig, status, headers } = error48.response;
62531
62729
  const timeStart = responseConfig.metadata.timeStart;
62532
62730
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
62533
- logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error48.message } });
62731
+ logHttpResponse(logger2, {
62732
+ request: toLogRequest(responseConfig),
62733
+ statusCode: status,
62734
+ // Surfaces upstream response headers on error responses (e.g. the
62735
+ // rate-limit headers on a 429); redacted in logHttpResponse.
62736
+ responseHeaders: headers
62737
+ }, responseTime, { metadata: { error: error48.message } });
62534
62738
  }
62535
62739
  return Promise.reject(error48);
62536
62740
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.01eff78",
3
+ "version": "0.1.0-build.1.03d8922",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",