@hyperline/cli 0.1.0-build.1.e3db9f3 → 0.1.0-build.1.e591fa6

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) => {
@@ -41404,13 +41438,13 @@ Examples:
41404
41438
  // build/commands/generated/quotes.js
41405
41439
  function registerQuotesCommands(parent) {
41406
41440
  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>", `
41441
+ 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
41442
  Quote status.
41409
41443
 
41410
41444
  - \`draft\`: The quote is a draft.
41411
41445
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41412
41446
  - \`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.
41447
+ `).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
41448
 
41415
41449
  - \`all\`: Display all pricing tiers.
41416
41450
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41442,6 +41476,8 @@ Examples:
41442
41476
  args.collect_payment_details = opts.collectPaymentDetails;
41443
41477
  if (opts.collectCustomPropertyIds !== void 0)
41444
41478
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41479
+ if (opts.contractClauseIds !== void 0)
41480
+ args.contract_clause_ids = opts.contractClauseIds;
41445
41481
  if (opts.requireTaxId !== void 0)
41446
41482
  args.require_tax_id = opts.requireTaxId;
41447
41483
  if (opts.displayQuoteValue !== void 0)
@@ -41698,7 +41734,7 @@ Examples:
41698
41734
  queryParamKeys: []
41699
41735
  });
41700
41736
  });
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.
41737
+ 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
41738
 
41703
41739
  - \`all\`: Display all pricing tiers.
41704
41740
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41726,6 +41762,8 @@ Examples:
41726
41762
  args.collect_payment_details = opts.collectPaymentDetails;
41727
41763
  if (opts.collectCustomPropertyIds !== void 0)
41728
41764
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41765
+ if (opts.contractClauseIds !== void 0)
41766
+ args.contract_clause_ids = opts.contractClauseIds;
41729
41767
  if (opts.requireTaxId !== void 0)
41730
41768
  args.require_tax_id = opts.requireTaxId;
41731
41769
  if (opts.displayQuoteValue !== void 0)
@@ -41801,6 +41839,25 @@ Examples:
41801
41839
  queryParamKeys: []
41802
41840
  });
41803
41841
  });
41842
+ 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", `
41843
+ Examples:
41844
+ hyperline quotes finalize --id <id>
41845
+ hyperline quotes finalize --id <id> --output json`).action(async (opts) => {
41846
+ const ctx = resource.parent?.opts()._ctx;
41847
+ if (!ctx) {
41848
+ process.stderr.write("Error: Not authenticated\n");
41849
+ process.exit(1);
41850
+ }
41851
+ const args = {};
41852
+ if (opts.id !== void 0)
41853
+ args.id = opts.id;
41854
+ await ctx.execute({
41855
+ method: "POST",
41856
+ path: "/v1/quotes/{id}/finalize",
41857
+ args,
41858
+ queryParamKeys: []
41859
+ });
41860
+ });
41804
41861
  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
41862
  Examples:
41806
41863
  hyperline quotes send --id <id> --email <email>
@@ -41908,10 +41965,132 @@ Examples:
41908
41965
  });
41909
41966
  }
41910
41967
 
41968
+ // build/commands/generated/quotes-templates.js
41969
+ function registerQuotes_TemplatesCommands(parent) {
41970
+ const resource = parent.command("quotes-templates").description("Manage quotes > templates");
41971
+ 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", `
41972
+ Examples:
41973
+ hyperline quotes-templates list-quote-templates
41974
+ hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
41975
+ const ctx = resource.parent?.opts()._ctx;
41976
+ if (!ctx) {
41977
+ process.stderr.write("Error: Not authenticated\n");
41978
+ process.exit(1);
41979
+ }
41980
+ const args = {};
41981
+ if (opts.id !== void 0)
41982
+ args.id = opts.id;
41983
+ if (opts["id.not"] !== void 0)
41984
+ args.id__not = opts["id.not"];
41985
+ if (opts["id.isNull"] !== void 0)
41986
+ args.id__isNull = opts["id.isNull"];
41987
+ if (opts["id.isNotNull"] !== void 0)
41988
+ args.id__isNotNull = opts["id.isNotNull"];
41989
+ if (opts["id.equals"] !== void 0)
41990
+ args.id__equals = opts["id.equals"];
41991
+ if (opts["id.contains"] !== void 0)
41992
+ args.id__contains = opts["id.contains"];
41993
+ if (opts["id.startsWith"] !== void 0)
41994
+ args.id__startsWith = opts["id.startsWith"];
41995
+ if (opts["id.endWith"] !== void 0)
41996
+ args.id__endWith = opts["id.endWith"];
41997
+ if (opts.name !== void 0)
41998
+ args.name = opts.name;
41999
+ if (opts["name.not"] !== void 0)
42000
+ args.name__not = opts["name.not"];
42001
+ if (opts["name.isNull"] !== void 0)
42002
+ args.name__isNull = opts["name.isNull"];
42003
+ if (opts["name.isNotNull"] !== void 0)
42004
+ args.name__isNotNull = opts["name.isNotNull"];
42005
+ if (opts["name.equals"] !== void 0)
42006
+ args.name__equals = opts["name.equals"];
42007
+ if (opts["name.contains"] !== void 0)
42008
+ args.name__contains = opts["name.contains"];
42009
+ if (opts["name.startsWith"] !== void 0)
42010
+ args.name__startsWith = opts["name.startsWith"];
42011
+ if (opts["name.endWith"] !== void 0)
42012
+ args.name__endWith = opts["name.endWith"];
42013
+ if (opts.subscriptionTemplateId !== void 0)
42014
+ args.subscription_template_id = opts.subscriptionTemplateId;
42015
+ if (opts["subscriptionTemplateId.not"] !== void 0)
42016
+ args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
42017
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
42018
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
42019
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
42020
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
42021
+ if (opts["subscriptionTemplateId.equals"] !== void 0)
42022
+ args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
42023
+ if (opts["subscriptionTemplateId.contains"] !== void 0)
42024
+ args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
42025
+ if (opts["subscriptionTemplateId.startsWith"] !== void 0)
42026
+ args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
42027
+ if (opts["subscriptionTemplateId.endWith"] !== void 0)
42028
+ args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
42029
+ if (opts.search !== void 0)
42030
+ args.search = opts.search;
42031
+ if (opts.take !== void 0)
42032
+ args.take = Number(opts.take);
42033
+ if (opts.skip !== void 0)
42034
+ args.skip = Number(opts.skip);
42035
+ await ctx.execute({
42036
+ method: "GET",
42037
+ path: "/v1/quotes/templates",
42038
+ args,
42039
+ queryParamKeys: [
42040
+ "take",
42041
+ "skip",
42042
+ "id",
42043
+ "id__not",
42044
+ "id__isNull",
42045
+ "id__isNotNull",
42046
+ "id__equals",
42047
+ "id__contains",
42048
+ "id__startsWith",
42049
+ "id__endWith",
42050
+ "name",
42051
+ "name__not",
42052
+ "name__isNull",
42053
+ "name__isNotNull",
42054
+ "name__equals",
42055
+ "name__contains",
42056
+ "name__startsWith",
42057
+ "name__endWith",
42058
+ "subscription_template_id",
42059
+ "subscription_template_id__not",
42060
+ "subscription_template_id__isNull",
42061
+ "subscription_template_id__isNotNull",
42062
+ "subscription_template_id__equals",
42063
+ "subscription_template_id__contains",
42064
+ "subscription_template_id__startsWith",
42065
+ "subscription_template_id__endWith",
42066
+ "search"
42067
+ ]
42068
+ });
42069
+ });
42070
+ 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", `
42071
+ Examples:
42072
+ hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
42073
+ const ctx = resource.parent?.opts()._ctx;
42074
+ if (!ctx) {
42075
+ process.stderr.write("Error: Not authenticated\n");
42076
+ process.exit(1);
42077
+ }
42078
+ const args = {};
42079
+ if (opts.id !== void 0)
42080
+ args.id = opts.id;
42081
+ await ctx.execute({
42082
+ method: "GET",
42083
+ path: "/v1/quotes/templates/{id}",
42084
+ args,
42085
+ queryParamKeys: []
42086
+ });
42087
+ });
42088
+ }
42089
+
41911
42090
  // build/commands/generated/subscriptions.js
41912
42091
  function registerSubscriptionsCommands(parent) {
41913
42092
  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", `
42093
+ 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
42094
  Examples:
41916
42095
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
41917
42096
  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 +42113,8 @@ Examples:
41934
42113
  args.charge_at = opts.chargeAt;
41935
42114
  if (opts.calculationMethod !== void 0)
41936
42115
  args.calculation_method = opts.calculationMethod;
42116
+ if (opts.precision !== void 0)
42117
+ args.precision = opts.precision;
41937
42118
  if (opts.refundMethod !== void 0)
41938
42119
  args.refund_method = opts.refundMethod;
41939
42120
  if (opts.type !== void 0)
@@ -41947,7 +42128,7 @@ Examples:
41947
42128
  queryParamKeys: []
41948
42129
  });
41949
42130
  });
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", `
42131
+ 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
42132
  Examples:
41952
42133
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41953
42134
  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 +42151,8 @@ Examples:
41970
42151
  args.charge_at = opts.chargeAt;
41971
42152
  if (opts.calculationMethod !== void 0)
41972
42153
  args.calculation_method = opts.calculationMethod;
42154
+ if (opts.precision !== void 0)
42155
+ args.precision = opts.precision;
41973
42156
  if (opts.refundMethod !== void 0)
41974
42157
  args.refund_method = opts.refundMethod;
41975
42158
  if (opts.updates !== void 0)
@@ -42109,7 +42292,7 @@ Examples:
42109
42292
  queryParamKeys: []
42110
42293
  });
42111
42294
  });
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", `
42295
+ 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
42296
  Examples:
42114
42297
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
42115
42298
  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 +42315,8 @@ Examples:
42132
42315
  args.charge_at = opts.chargeAt;
42133
42316
  if (opts.calculationMethod !== void 0)
42134
42317
  args.calculation_method = opts.calculationMethod;
42318
+ if (opts.precision !== void 0)
42319
+ args.precision = opts.precision;
42135
42320
  if (opts.refundMethod !== void 0)
42136
42321
  args.refund_method = opts.refundMethod;
42137
42322
  if (opts.updates !== void 0)
@@ -42858,7 +43043,7 @@ Examples:
42858
43043
  ]
42859
43044
  });
42860
43045
  });
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", `
43046
+ 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
43047
  Examples:
42863
43048
  hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription>
42864
43049
  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>
@@ -43256,10 +43441,10 @@ Examples:
43256
43441
  queryParamKeys: []
43257
43442
  });
43258
43443
  });
43259
- resource.command("load").description(`Add credits to a wallet by charging the customer's payment method. The customer must have an active payment method.`).requiredOption("--id <value>", `id parameter`).option("--amount <number>", `Amount to be loaded onto the wallet. A corresponding invoice to pay will be generated. Expressed in currency's smallest unit.`).option("--amount-free <number>", `Amount free/offered to be loaded onto the wallet. No invoice is generated. Expressed in currency's smallest unit.`).option("--document-status <value>", `Indicates the status of the document (credit note in case of free top-up or invoice)`).addHelpText("after", `
43444
+ resource.command("load").description(`Add paid credits by charging the customer's payment method, or add free credits by issuing a credit note.`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Wallet load type. Use \`paid\` to collect payment from the customer's payment method, or \`free\` to grant credits without collecting payment.`).option("--amount <number>", `Amount to be loaded onto the wallet as free credits. A corresponding credit note will be generated and no payment is collected. Expressed in currency's smallest unit.`).option("--comment <value>", `Internal comment stored on the wallet transaction for context.`).option("--document-status <value>", `Indicates the status of the generated credit note for free top-ups.`).option("--bank-account-id <value>", `Bank account ID to use when recording a paid wallet load by bank transfer.`).option("--reference <value>", `Reference stored on the generated payment document for a paid wallet load.`).addHelpText("after", `
43260
43445
  Examples:
43261
43446
  hyperline wallets load --id <id>
43262
- hyperline wallets load --id <id> --amount <amount> --amount-free <amount_free>
43447
+ hyperline wallets load --id <id> --type <type> --amount <amount>
43263
43448
  hyperline wallets load --id <id> --output json`).action(async (opts) => {
43264
43449
  const ctx = resource.parent?.opts()._ctx;
43265
43450
  if (!ctx) {
@@ -43269,12 +43454,18 @@ Examples:
43269
43454
  const args = {};
43270
43455
  if (opts.id !== void 0)
43271
43456
  args.id = opts.id;
43457
+ if (opts.type !== void 0)
43458
+ args.type = opts.type;
43459
+ if (opts.comment !== void 0)
43460
+ args.comment = opts.comment;
43272
43461
  if (opts.documentStatus !== void 0)
43273
43462
  args.document_status = opts.documentStatus;
43463
+ if (opts.bankAccountId !== void 0)
43464
+ args.bank_account_id = opts.bankAccountId;
43465
+ if (opts.reference !== void 0)
43466
+ args.reference = opts.reference;
43274
43467
  if (opts.amount !== void 0)
43275
43468
  args.amount = Number(opts.amount);
43276
- if (opts.amountFree !== void 0)
43277
- args.amount_free = Number(opts.amountFree);
43278
43469
  await ctx.execute({
43279
43470
  method: "POST",
43280
43471
  path: "/v1/wallets/{id}/load",
@@ -43503,6 +43694,7 @@ function registerAllCommands(program2) {
43503
43694
  registerProductsCommands(program2);
43504
43695
  registerPrice_ConfigurationsCommands(program2);
43505
43696
  registerQuotesCommands(program2);
43697
+ registerQuotes_TemplatesCommands(program2);
43506
43698
  registerSubscriptions_TemplatesCommands(program2);
43507
43699
  registerSubscriptionsCommands(program2);
43508
43700
  registerSubscriptions_TransitionsCommands(program2);
@@ -61638,6 +61830,7 @@ import * as winston from "winston";
61638
61830
 
61639
61831
  // ../hyperline-monitoring/build/logger/formatting/format.js
61640
61832
  import prune from "json-prune";
61833
+ var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
61641
61834
  function jsonFormat(info) {
61642
61835
  const prunedInfo = JSON.parse(prune(info));
61643
61836
  for (const [key, value] of Object.entries(prunedInfo)) {
@@ -61720,17 +61913,26 @@ function formatAxiosError(error48) {
61720
61913
  url: request?.url,
61721
61914
  baseURL: request?.baseURL,
61722
61915
  params: request?.params,
61723
- headers: request?.headers,
61916
+ headers: redactHeaders({ headers: request?.headers }),
61724
61917
  "axios-retry": request?.["axios-retry"]
61725
61918
  },
61726
61919
  response: {
61727
61920
  status: response?.status,
61728
61921
  statusText: response?.statusText,
61729
- headers: response?.headers,
61922
+ headers: redactHeaders({ headers: response?.headers }),
61730
61923
  data: response?.data
61731
61924
  }
61732
61925
  };
61733
61926
  }
61927
+ function redactHeaders({ headers }) {
61928
+ if (!isRecord(headers)) {
61929
+ return headers;
61930
+ }
61931
+ return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
61932
+ headerKey,
61933
+ REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
61934
+ ]));
61935
+ }
61734
61936
  function isRecord(value) {
61735
61937
  return typeof value === "object" && value !== null && !Array.isArray(value);
61736
61938
  }
@@ -61754,13 +61956,16 @@ function logHttpRequest(logger2, request, extra) {
61754
61956
  });
61755
61957
  }
61756
61958
  function logHttpResponse(logger2, response, responseTime, extra) {
61757
- const { request, statusCode, responseBody } = response;
61959
+ const { request, statusCode, responseBody, responseHeaders } = response;
61758
61960
  const { message, metadata } = transform2(request);
61759
61961
  const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
61760
61962
  const responseMetadata = {
61761
61963
  statusCode,
61762
61964
  responseTime,
61763
- responseBody
61965
+ responseBody,
61966
+ // Redacted so secrets (authorization/cookie/token/…) never reach the logs
61967
+ // while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
61968
+ responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
61764
61969
  };
61765
61970
  logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
61766
61971
  ...metadata,
@@ -62100,6 +62305,7 @@ var de = {
62100
62305
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62101
62306
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62102
62307
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62308
+ "accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
62103
62309
  "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62104
62310
  "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
62105
62311
  "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
@@ -62112,7 +62318,9 @@ var de = {
62112
62318
  "invoices.outstandingProduct.descriptionPeriod": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{periodStart}} bis {{periodEnd}}",
62113
62319
  "invoices.outstandingProduct.name": "Offener Saldo",
62114
62320
  "invoices.prorata.paymentForItem": "Anteilig berechneter Betrag f\xFCr",
62321
+ "invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
62115
62322
  "invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
62323
+ "invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
62116
62324
  "subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
62117
62325
  "subscriptions.correction": "Vorperiodische Anpassung",
62118
62326
  "subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
@@ -62141,7 +62349,9 @@ var en = {
62141
62349
  "invoices.outstandingProduct.descriptionPeriod": "Unpaid amount from the invoice{{invoiceNumber}} from {{periodStart}} to {{periodEnd}}",
62142
62350
  "invoices.outstandingProduct.name": "Outstanding balance",
62143
62351
  "invoices.prorata.paymentForItem": "Prorated payment for",
62352
+ "invoices.prorata.paymentForItemFullPeriod": "Payment for",
62144
62353
  "invoices.prorata.refundForItem": "Prorated refund for",
62354
+ "invoices.prorata.refundForItemFullPeriod": "Refund for",
62145
62355
  "subscriptions.closingChargeName": "Closing fee for subscription",
62146
62356
  "subscriptions.correction": "Adjustment previous period",
62147
62357
  "subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
@@ -62168,6 +62378,7 @@ var en = {
62168
62378
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62169
62379
  "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62170
62380
  "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62381
+ "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
62171
62382
  "einvoicing.paymentProcessed": "Payment processed",
62172
62383
  "einvoicing.paymentReceived": "Payment received",
62173
62384
  "einvoicing.paymentFromWallet": "Payment from wallet"
@@ -62182,6 +62393,7 @@ var es = {
62182
62393
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62183
62394
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62184
62395
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62396
+ "accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
62185
62397
  "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62186
62398
  "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62187
62399
  "creditNotes.refundChargeName": "Reembolso por factura",
@@ -62194,7 +62406,9 @@ var es = {
62194
62406
  "invoices.outstandingProduct.descriptionPeriod": "Monto pendiente de la factura{{invoiceNumber}} del {{periodStart}} al {{periodEnd}}",
62195
62407
  "invoices.outstandingProduct.name": "Saldo pendiente",
62196
62408
  "invoices.prorata.paymentForItem": "Pago prorrateado por",
62409
+ "invoices.prorata.paymentForItemFullPeriod": "Pago por",
62197
62410
  "invoices.prorata.refundForItem": "Reembolso prorrateado por",
62411
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62198
62412
  "subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
62199
62413
  "subscriptions.correction": "Ajuste del periodo anterior",
62200
62414
  "subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
@@ -62219,6 +62433,7 @@ var fr = {
62219
62433
  "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62220
62434
  "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62221
62435
  "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62436
+ "accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
62222
62437
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62223
62438
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62224
62439
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
@@ -62235,7 +62450,9 @@ var fr = {
62235
62450
  "invoices.outstandingProduct.descriptionPeriod": "Montant impay\xE9 de la facture{{invoiceNumber}} du {{periodStart}} au {{periodEnd}}",
62236
62451
  "invoices.outstandingProduct.name": "Solde impay\xE9",
62237
62452
  "invoices.prorata.paymentForItem": "Paiement au prorata pour",
62453
+ "invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
62238
62454
  "invoices.prorata.refundForItem": "Remboursement au prorata pour",
62455
+ "invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
62239
62456
  "subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
62240
62457
  "subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
62241
62458
  "subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
@@ -62264,6 +62481,7 @@ var it = {
62264
62481
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62265
62482
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62266
62483
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62484
+ "accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
62267
62485
  "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62268
62486
  "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
62269
62487
  "creditNotes.refundChargeName": "Rimborso per fattura",
@@ -62276,7 +62494,9 @@ var it = {
62276
62494
  "invoices.outstandingProduct.descriptionPeriod": "Importo insoluto della fattura{{invoiceNumber}} dal {{periodStart}} al {{periodEnd}}",
62277
62495
  "invoices.outstandingProduct.name": "Saldo insoluto",
62278
62496
  "invoices.prorata.paymentForItem": "Pagamento proporzionale per",
62497
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
62279
62498
  "invoices.prorata.refundForItem": "Rimborso proporzionale per",
62499
+ "invoices.prorata.refundForItemFullPeriod": "Rimborso per",
62280
62500
  "subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
62281
62501
  "subscriptions.correction": "Correzione periodo precedente",
62282
62502
  "subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
@@ -62305,6 +62525,7 @@ var nl = {
62305
62525
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62306
62526
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62307
62527
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62528
+ "accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
62308
62529
  "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62309
62530
  "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
62310
62531
  "creditNotes.refundChargeName": "Terugbetaling voor factuur",
@@ -62317,7 +62538,9 @@ var nl = {
62317
62538
  "invoices.outstandingProduct.descriptionPeriod": "Onbetaald bedrag van de factuur{{invoiceNumber}} van {{periodStart}} tot {{periodEnd}}",
62318
62539
  "invoices.outstandingProduct.name": "Openstaand saldo",
62319
62540
  "invoices.prorata.paymentForItem": "Gedeeltelijke betaling voor",
62541
+ "invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
62320
62542
  "invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
62543
+ "invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
62321
62544
  "subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
62322
62545
  "subscriptions.correction": "Aanpassing vorige periode",
62323
62546
  "subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
@@ -62346,6 +62569,7 @@ var pl = {
62346
62569
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62347
62570
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62348
62571
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62572
+ "accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
62349
62573
  "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62350
62574
  "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
62351
62575
  "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
@@ -62358,7 +62582,9 @@ var pl = {
62358
62582
  "invoices.outstandingProduct.descriptionPeriod": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} od {{periodStart}} do {{periodEnd}}",
62359
62583
  "invoices.outstandingProduct.name": "Niezap\u0142acone saldo",
62360
62584
  "invoices.prorata.paymentForItem": "P\u0142atno\u015B\u0107 proporcjonalna za",
62585
+ "invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
62361
62586
  "invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
62587
+ "invoices.prorata.refundForItemFullPeriod": "Zwrot za",
62362
62588
  "subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
62363
62589
  "subscriptions.correction": "Korekta poprzedniego okresu",
62364
62590
  "subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
@@ -62387,6 +62613,7 @@ var pt = {
62387
62613
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62388
62614
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62389
62615
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62616
+ "accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
62390
62617
  "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62391
62618
  "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62392
62619
  "creditNotes.refundChargeName": "Reembolso pela fatura",
@@ -62399,7 +62626,9 @@ var pt = {
62399
62626
  "invoices.outstandingProduct.descriptionPeriod": "Valor em aberto da fatura{{invoiceNumber}} de {{periodStart}} a {{periodEnd}}",
62400
62627
  "invoices.outstandingProduct.name": "Saldo em aberto",
62401
62628
  "invoices.prorata.paymentForItem": "Pagamento proporcional por",
62629
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
62402
62630
  "invoices.prorata.refundForItem": "Reembolso proporcional por",
62631
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62403
62632
  "subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
62404
62633
  "subscriptions.correction": "Ajuste do per\xEDodo anterior",
62405
62634
  "subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
@@ -62521,10 +62750,16 @@ function buildHttpClient(dependencies) {
62521
62750
  return response;
62522
62751
  }, (error48) => {
62523
62752
  if (error48.response) {
62524
- const { config: responseConfig, status } = error48.response;
62753
+ const { config: responseConfig, status, headers } = error48.response;
62525
62754
  const timeStart = responseConfig.metadata.timeStart;
62526
62755
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
62527
- logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error48.message } });
62756
+ logHttpResponse(logger2, {
62757
+ request: toLogRequest(responseConfig),
62758
+ statusCode: status,
62759
+ // Surfaces upstream response headers on error responses (e.g. the
62760
+ // rate-limit headers on a 429); redacted in logHttpResponse.
62761
+ responseHeaders: headers
62762
+ }, responseTime, { metadata: { error: error48.message } });
62528
62763
  }
62529
62764
  return Promise.reject(error48);
62530
62765
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.e3db9f3",
3
+ "version": "0.1.0-build.1.e591fa6",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",