@hyperline/cli 0.1.0-build.1.b32bf22 → 0.1.0-build.1.b723a3e

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.
@@ -37934,7 +37934,7 @@ Examples:
37934
37934
  queryParamKeys: ["take", "skip"]
37935
37935
  });
37936
37936
  });
37937
- resource.command("get").description(`Retrieve a specific bank account by its ID. Returns bank account details including IBAN, BIC, and currency.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
37937
+ resource.command("get").description(`Retrieve a specific bank account by its ID. Returns masked bank account details, account type, balance, and currency.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
37938
37938
  Examples:
37939
37939
  hyperline bank-accounts get --id <id>`).action(async (opts) => {
37940
37940
  const ctx = resource.parent?.opts()._ctx;
@@ -37952,6 +37952,31 @@ Examples:
37952
37952
  queryParamKeys: []
37953
37953
  });
37954
37954
  });
37955
+ resource.command("list-bank-account-transactions").description(`List open banking transactions for a specific bank account. 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("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).addHelpText("after", `
37956
+ Examples:
37957
+ hyperline bank-accounts list-bank-account-transactions --id <id>
37958
+ hyperline bank-accounts list-bank-account-transactions --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
37959
+ const ctx = resource.parent?.opts()._ctx;
37960
+ if (!ctx) {
37961
+ process.stderr.write("Error: Not authenticated\n");
37962
+ process.exit(1);
37963
+ }
37964
+ const args = {};
37965
+ if (opts.id !== void 0)
37966
+ args.id = opts.id;
37967
+ if (opts.cursor !== void 0)
37968
+ args.cursor = opts.cursor;
37969
+ if (opts.includeTotal !== void 0)
37970
+ args.include_total = opts.includeTotal;
37971
+ if (opts.limit !== void 0)
37972
+ args.limit = Number(opts.limit);
37973
+ await ctx.execute({
37974
+ method: "GET",
37975
+ path: "/v1/bank-accounts/{id}/transactions",
37976
+ args,
37977
+ queryParamKeys: ["limit", "cursor", "include_total"]
37978
+ });
37979
+ });
37955
37980
  }
37956
37981
 
37957
37982
  // build/commands/generated/companies.js
@@ -38762,7 +38787,7 @@ How customer invoices are issued from the parent organisation.
38762
38787
  - \`none\`: Invoices will keep being issued from this customer.
38763
38788
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38764
38789
  - \`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", `
38790
+ `).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
38791
  Examples:
38767
38792
  hyperline customers create-customer
38768
38793
  hyperline customers create-customer --name <name> --type <type>
@@ -38819,6 +38844,10 @@ Examples:
38819
38844
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38820
38845
  if (opts.priceBookId !== void 0)
38821
38846
  args.price_book_id = opts.priceBookId;
38847
+ if (opts.ownerId !== void 0)
38848
+ args.owner_id = opts.ownerId;
38849
+ if (opts.followerIds !== void 0)
38850
+ args.follower_ids = opts.followerIds;
38822
38851
  if (opts.taxRateCustom !== void 0)
38823
38852
  args.tax_rate_custom = Number(opts.taxRateCustom);
38824
38853
  if (opts.customPaymentDelay !== void 0)
@@ -38887,7 +38916,7 @@ How customer invoices are issued from the parent organisation.
38887
38916
  - \`none\`: Invoices will keep being issued from this customer.
38888
38917
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38889
38918
  - \`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", `
38919
+ `).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
38920
  Examples:
38892
38921
  hyperline customers update --id <id>
38893
38922
  hyperline customers update --id <id> --name <name> --type <type>
@@ -38948,6 +38977,10 @@ Examples:
38948
38977
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38949
38978
  if (opts.priceBookId !== void 0)
38950
38979
  args.price_book_id = opts.priceBookId;
38980
+ if (opts.ownerId !== void 0)
38981
+ args.owner_id = opts.ownerId;
38982
+ if (opts.followerIds !== void 0)
38983
+ args.follower_ids = opts.followerIds;
38951
38984
  if (opts.taxRateCustom !== void 0)
38952
38985
  args.tax_rate_custom = Number(opts.taxRateCustom);
38953
38986
  if (opts.customPaymentDelay !== void 0)
@@ -39612,6 +39645,7 @@ Export name.
39612
39645
  - \`draft_invoices\`: Export all draft invoices, with customer and product information.
39613
39646
  - \`open_invoices\`: Export all open invoices, with customer and product information.
39614
39647
  - \`live_subscriptions\`: List of all active subscriptions line by line.
39648
+ - \`credit_balances\`: Monthly credit balance roll-forward per customer and credit type (opening, top-ups, consumption, expiry, closing).
39615
39649
  `).requiredOption("--file-type <value>", `
39616
39650
  Export file type.
39617
39651
 
@@ -40189,7 +40223,7 @@ Examples:
40189
40223
  - \`archived\`: A previous version of an invoice.
40190
40224
  - \`charged_on_parent\`: Invoice is charged on the parent customer.
40191
40225
  - \`pending_parent_concat\`: Invoice is pending invoices concatenation on the parent customer to be grouped.
40192
- - \`uncollectible\`: Invoice is uncollectible (bad debt).
40226
+ - \`uncollectible\`: Invoice is uncollectible (bad debt). Only metadata (properties, custom_note, custom_properties) can be updated in this status.
40193
40227
  `).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the invoice.`).option("--number <value>", `Invoice number. If specified, the invoice will be considered as imported from an external source and the number will not be generated by Hyperline. You are responsible for avoiding duplicates and ensuring it does not impact the numbering sequence in Hyperline.`).option("--type <value>", `Type of the invoice.
40194
40228
 
40195
40229
  - \`invoice\`: Legal invoice to be paid by your customer.
@@ -40431,7 +40465,7 @@ Examples:
40431
40465
  queryParamKeys: []
40432
40466
  });
40433
40467
  });
40434
- resource.command("update").description(`Update a draft or grace_period invoice. Allows modifying line items, dates, and metadata before finalization.`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Type of the invoice.
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.
40435
40469
 
40436
40470
  - \`invoice\`: Legal invoice to be paid by your customer.
40437
40471
  - \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
@@ -40603,7 +40637,7 @@ Examples:
40603
40637
  queryParamKeys: []
40604
40638
  });
40605
40639
  });
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", `
40640
+ 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
40641
  Examples:
40608
40642
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId>
40609
40643
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId> --output json`).action(async (opts) => {
@@ -41244,7 +41278,12 @@ Examples:
41244
41278
  ]
41245
41279
  });
41246
41280
  });
41247
- 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", `
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("--credits-grant-mode <value>", `
41282
+ How the periodic credit allowance is granted for partial billing periods.
41283
+
41284
+ - \`prorated\` (default): the granted credits are prorated to the elapsed period.
41285
+ - \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
41286
+ `).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", `
41248
41287
  Examples:
41249
41288
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
41250
41289
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
@@ -41279,6 +41318,8 @@ Examples:
41279
41318
  args.unit_name = opts.unitName;
41280
41319
  if (opts.creditAggregators !== void 0)
41281
41320
  args.credit_aggregators = opts.creditAggregators;
41321
+ if (opts.creditsGrantMode !== void 0)
41322
+ args.credits_grant_mode = opts.creditsGrantMode;
41282
41323
  if (opts.displayMode !== void 0)
41283
41324
  args.display_mode = opts.displayMode;
41284
41325
  if (opts.bundleItems !== void 0)
@@ -41404,13 +41445,13 @@ Examples:
41404
41445
  // build/commands/generated/quotes.js
41405
41446
  function registerQuotesCommands(parent) {
41406
41447
  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>", `
41448
+ 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
41449
  Quote status.
41409
41450
 
41410
41451
  - \`draft\`: The quote is a draft.
41411
41452
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41412
41453
  - \`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.
41454
+ `).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
41455
 
41415
41456
  - \`all\`: Display all pricing tiers.
41416
41457
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41442,6 +41483,8 @@ Examples:
41442
41483
  args.collect_payment_details = opts.collectPaymentDetails;
41443
41484
  if (opts.collectCustomPropertyIds !== void 0)
41444
41485
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41486
+ if (opts.contractClauseIds !== void 0)
41487
+ args.contract_clause_ids = opts.contractClauseIds;
41445
41488
  if (opts.requireTaxId !== void 0)
41446
41489
  args.require_tax_id = opts.requireTaxId;
41447
41490
  if (opts.displayQuoteValue !== void 0)
@@ -41698,7 +41741,7 @@ Examples:
41698
41741
  queryParamKeys: []
41699
41742
  });
41700
41743
  });
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.
41744
+ 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
41745
 
41703
41746
  - \`all\`: Display all pricing tiers.
41704
41747
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41726,6 +41769,8 @@ Examples:
41726
41769
  args.collect_payment_details = opts.collectPaymentDetails;
41727
41770
  if (opts.collectCustomPropertyIds !== void 0)
41728
41771
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41772
+ if (opts.contractClauseIds !== void 0)
41773
+ args.contract_clause_ids = opts.contractClauseIds;
41729
41774
  if (opts.requireTaxId !== void 0)
41730
41775
  args.require_tax_id = opts.requireTaxId;
41731
41776
  if (opts.displayQuoteValue !== void 0)
@@ -41927,10 +41972,132 @@ Examples:
41927
41972
  });
41928
41973
  }
41929
41974
 
41975
+ // build/commands/generated/quotes-templates.js
41976
+ function registerQuotes_TemplatesCommands(parent) {
41977
+ const resource = parent.command("quotes-templates").description("Manage quotes > templates");
41978
+ 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", `
41979
+ Examples:
41980
+ hyperline quotes-templates list-quote-templates
41981
+ hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
41982
+ const ctx = resource.parent?.opts()._ctx;
41983
+ if (!ctx) {
41984
+ process.stderr.write("Error: Not authenticated\n");
41985
+ process.exit(1);
41986
+ }
41987
+ const args = {};
41988
+ if (opts.id !== void 0)
41989
+ args.id = opts.id;
41990
+ if (opts["id.not"] !== void 0)
41991
+ args.id__not = opts["id.not"];
41992
+ if (opts["id.isNull"] !== void 0)
41993
+ args.id__isNull = opts["id.isNull"];
41994
+ if (opts["id.isNotNull"] !== void 0)
41995
+ args.id__isNotNull = opts["id.isNotNull"];
41996
+ if (opts["id.equals"] !== void 0)
41997
+ args.id__equals = opts["id.equals"];
41998
+ if (opts["id.contains"] !== void 0)
41999
+ args.id__contains = opts["id.contains"];
42000
+ if (opts["id.startsWith"] !== void 0)
42001
+ args.id__startsWith = opts["id.startsWith"];
42002
+ if (opts["id.endWith"] !== void 0)
42003
+ args.id__endWith = opts["id.endWith"];
42004
+ if (opts.name !== void 0)
42005
+ args.name = opts.name;
42006
+ if (opts["name.not"] !== void 0)
42007
+ args.name__not = opts["name.not"];
42008
+ if (opts["name.isNull"] !== void 0)
42009
+ args.name__isNull = opts["name.isNull"];
42010
+ if (opts["name.isNotNull"] !== void 0)
42011
+ args.name__isNotNull = opts["name.isNotNull"];
42012
+ if (opts["name.equals"] !== void 0)
42013
+ args.name__equals = opts["name.equals"];
42014
+ if (opts["name.contains"] !== void 0)
42015
+ args.name__contains = opts["name.contains"];
42016
+ if (opts["name.startsWith"] !== void 0)
42017
+ args.name__startsWith = opts["name.startsWith"];
42018
+ if (opts["name.endWith"] !== void 0)
42019
+ args.name__endWith = opts["name.endWith"];
42020
+ if (opts.subscriptionTemplateId !== void 0)
42021
+ args.subscription_template_id = opts.subscriptionTemplateId;
42022
+ if (opts["subscriptionTemplateId.not"] !== void 0)
42023
+ args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
42024
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
42025
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
42026
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
42027
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
42028
+ if (opts["subscriptionTemplateId.equals"] !== void 0)
42029
+ args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
42030
+ if (opts["subscriptionTemplateId.contains"] !== void 0)
42031
+ args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
42032
+ if (opts["subscriptionTemplateId.startsWith"] !== void 0)
42033
+ args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
42034
+ if (opts["subscriptionTemplateId.endWith"] !== void 0)
42035
+ args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
42036
+ if (opts.search !== void 0)
42037
+ args.search = opts.search;
42038
+ if (opts.take !== void 0)
42039
+ args.take = Number(opts.take);
42040
+ if (opts.skip !== void 0)
42041
+ args.skip = Number(opts.skip);
42042
+ await ctx.execute({
42043
+ method: "GET",
42044
+ path: "/v1/quotes/templates",
42045
+ args,
42046
+ queryParamKeys: [
42047
+ "take",
42048
+ "skip",
42049
+ "id",
42050
+ "id__not",
42051
+ "id__isNull",
42052
+ "id__isNotNull",
42053
+ "id__equals",
42054
+ "id__contains",
42055
+ "id__startsWith",
42056
+ "id__endWith",
42057
+ "name",
42058
+ "name__not",
42059
+ "name__isNull",
42060
+ "name__isNotNull",
42061
+ "name__equals",
42062
+ "name__contains",
42063
+ "name__startsWith",
42064
+ "name__endWith",
42065
+ "subscription_template_id",
42066
+ "subscription_template_id__not",
42067
+ "subscription_template_id__isNull",
42068
+ "subscription_template_id__isNotNull",
42069
+ "subscription_template_id__equals",
42070
+ "subscription_template_id__contains",
42071
+ "subscription_template_id__startsWith",
42072
+ "subscription_template_id__endWith",
42073
+ "search"
42074
+ ]
42075
+ });
42076
+ });
42077
+ 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", `
42078
+ Examples:
42079
+ hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
42080
+ const ctx = resource.parent?.opts()._ctx;
42081
+ if (!ctx) {
42082
+ process.stderr.write("Error: Not authenticated\n");
42083
+ process.exit(1);
42084
+ }
42085
+ const args = {};
42086
+ if (opts.id !== void 0)
42087
+ args.id = opts.id;
42088
+ await ctx.execute({
42089
+ method: "GET",
42090
+ path: "/v1/quotes/templates/{id}",
42091
+ args,
42092
+ queryParamKeys: []
42093
+ });
42094
+ });
42095
+ }
42096
+
41930
42097
  // build/commands/generated/subscriptions.js
41931
42098
  function registerSubscriptionsCommands(parent) {
41932
42099
  const resource = parent.command("subscriptions").description("Manage subscriptions");
41933
- 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", `
42100
+ 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", `
41934
42101
  Examples:
41935
42102
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
41936
42103
  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>
@@ -41953,6 +42120,8 @@ Examples:
41953
42120
  args.charge_at = opts.chargeAt;
41954
42121
  if (opts.calculationMethod !== void 0)
41955
42122
  args.calculation_method = opts.calculationMethod;
42123
+ if (opts.precision !== void 0)
42124
+ args.precision = opts.precision;
41956
42125
  if (opts.refundMethod !== void 0)
41957
42126
  args.refund_method = opts.refundMethod;
41958
42127
  if (opts.type !== void 0)
@@ -41966,7 +42135,7 @@ Examples:
41966
42135
  queryParamKeys: []
41967
42136
  });
41968
42137
  });
41969
- 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", `
42138
+ 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", `
41970
42139
  Examples:
41971
42140
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41972
42141
  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>
@@ -41989,6 +42158,8 @@ Examples:
41989
42158
  args.charge_at = opts.chargeAt;
41990
42159
  if (opts.calculationMethod !== void 0)
41991
42160
  args.calculation_method = opts.calculationMethod;
42161
+ if (opts.precision !== void 0)
42162
+ args.precision = opts.precision;
41992
42163
  if (opts.refundMethod !== void 0)
41993
42164
  args.refund_method = opts.refundMethod;
41994
42165
  if (opts.updates !== void 0)
@@ -42128,7 +42299,7 @@ Examples:
42128
42299
  queryParamKeys: []
42129
42300
  });
42130
42301
  });
42131
- 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", `
42302
+ 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", `
42132
42303
  Examples:
42133
42304
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
42134
42305
  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>
@@ -42151,6 +42322,8 @@ Examples:
42151
42322
  args.charge_at = opts.chargeAt;
42152
42323
  if (opts.calculationMethod !== void 0)
42153
42324
  args.calculation_method = opts.calculationMethod;
42325
+ if (opts.precision !== void 0)
42326
+ args.precision = opts.precision;
42154
42327
  if (opts.refundMethod !== void 0)
42155
42328
  args.refund_method = opts.refundMethod;
42156
42329
  if (opts.updates !== void 0)
@@ -43528,6 +43701,7 @@ function registerAllCommands(program2) {
43528
43701
  registerProductsCommands(program2);
43529
43702
  registerPrice_ConfigurationsCommands(program2);
43530
43703
  registerQuotesCommands(program2);
43704
+ registerQuotes_TemplatesCommands(program2);
43531
43705
  registerSubscriptions_TemplatesCommands(program2);
43532
43706
  registerSubscriptionsCommands(program2);
43533
43707
  registerSubscriptions_TransitionsCommands(program2);
@@ -61663,6 +61837,7 @@ import * as winston from "winston";
61663
61837
 
61664
61838
  // ../hyperline-monitoring/build/logger/formatting/format.js
61665
61839
  import prune from "json-prune";
61840
+ var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
61666
61841
  function jsonFormat(info) {
61667
61842
  const prunedInfo = JSON.parse(prune(info));
61668
61843
  for (const [key, value] of Object.entries(prunedInfo)) {
@@ -61745,17 +61920,26 @@ function formatAxiosError(error48) {
61745
61920
  url: request?.url,
61746
61921
  baseURL: request?.baseURL,
61747
61922
  params: request?.params,
61748
- headers: request?.headers,
61923
+ headers: redactHeaders({ headers: request?.headers }),
61749
61924
  "axios-retry": request?.["axios-retry"]
61750
61925
  },
61751
61926
  response: {
61752
61927
  status: response?.status,
61753
61928
  statusText: response?.statusText,
61754
- headers: response?.headers,
61929
+ headers: redactHeaders({ headers: response?.headers }),
61755
61930
  data: response?.data
61756
61931
  }
61757
61932
  };
61758
61933
  }
61934
+ function redactHeaders({ headers }) {
61935
+ if (!isRecord(headers)) {
61936
+ return headers;
61937
+ }
61938
+ return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
61939
+ headerKey,
61940
+ REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
61941
+ ]));
61942
+ }
61759
61943
  function isRecord(value) {
61760
61944
  return typeof value === "object" && value !== null && !Array.isArray(value);
61761
61945
  }
@@ -61779,13 +61963,16 @@ function logHttpRequest(logger2, request, extra) {
61779
61963
  });
61780
61964
  }
61781
61965
  function logHttpResponse(logger2, response, responseTime, extra) {
61782
- const { request, statusCode, responseBody } = response;
61966
+ const { request, statusCode, responseBody, responseHeaders } = response;
61783
61967
  const { message, metadata } = transform2(request);
61784
61968
  const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
61785
61969
  const responseMetadata = {
61786
61970
  statusCode,
61787
61971
  responseTime,
61788
- responseBody
61972
+ responseBody,
61973
+ // Redacted so secrets (authorization/cookie/token/…) never reach the logs
61974
+ // while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
61975
+ responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
61789
61976
  };
61790
61977
  logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
61791
61978
  ...metadata,
@@ -62125,6 +62312,7 @@ var de = {
62125
62312
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62126
62313
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62127
62314
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62315
+ "accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
62128
62316
  "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62129
62317
  "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
62130
62318
  "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
@@ -62197,6 +62385,7 @@ var en = {
62197
62385
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62198
62386
  "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62199
62387
  "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62388
+ "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
62200
62389
  "einvoicing.paymentProcessed": "Payment processed",
62201
62390
  "einvoicing.paymentReceived": "Payment received",
62202
62391
  "einvoicing.paymentFromWallet": "Payment from wallet"
@@ -62211,6 +62400,7 @@ var es = {
62211
62400
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62212
62401
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62213
62402
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62403
+ "accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
62214
62404
  "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62215
62405
  "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62216
62406
  "creditNotes.refundChargeName": "Reembolso por factura",
@@ -62250,6 +62440,7 @@ var fr = {
62250
62440
  "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62251
62441
  "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62252
62442
  "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62443
+ "accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
62253
62444
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62254
62445
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62255
62446
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
@@ -62297,6 +62488,7 @@ var it = {
62297
62488
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62298
62489
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62299
62490
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62491
+ "accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
62300
62492
  "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62301
62493
  "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
62302
62494
  "creditNotes.refundChargeName": "Rimborso per fattura",
@@ -62340,6 +62532,7 @@ var nl = {
62340
62532
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62341
62533
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62342
62534
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62535
+ "accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
62343
62536
  "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62344
62537
  "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
62345
62538
  "creditNotes.refundChargeName": "Terugbetaling voor factuur",
@@ -62383,6 +62576,7 @@ var pl = {
62383
62576
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62384
62577
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62385
62578
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62579
+ "accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
62386
62580
  "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62387
62581
  "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
62388
62582
  "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
@@ -62426,6 +62620,7 @@ var pt = {
62426
62620
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62427
62621
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62428
62622
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62623
+ "accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
62429
62624
  "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62430
62625
  "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62431
62626
  "creditNotes.refundChargeName": "Reembolso pela fatura",
@@ -62562,10 +62757,16 @@ function buildHttpClient(dependencies) {
62562
62757
  return response;
62563
62758
  }, (error48) => {
62564
62759
  if (error48.response) {
62565
- const { config: responseConfig, status } = error48.response;
62760
+ const { config: responseConfig, status, headers } = error48.response;
62566
62761
  const timeStart = responseConfig.metadata.timeStart;
62567
62762
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
62568
- logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error48.message } });
62763
+ logHttpResponse(logger2, {
62764
+ request: toLogRequest(responseConfig),
62765
+ statusCode: status,
62766
+ // Surfaces upstream response headers on error responses (e.g. the
62767
+ // rate-limit headers on a 429); redacted in logHttpResponse.
62768
+ responseHeaders: headers
62769
+ }, responseTime, { metadata: { error: error48.message } });
62569
62770
  }
62570
62771
  return Promise.reject(error48);
62571
62772
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.b32bf22",
3
+ "version": "0.1.0-build.1.b723a3e",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",