@hyperline/cli 0.1.0-build.1.8b45ff8 → 0.1.0-build.1.8e2d811

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38762,7 +38762,7 @@ How customer invoices are issued from the parent organisation.
38762
38762
  - \`none\`: Invoices will keep being issued from this customer.
38763
38763
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38764
38764
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38765
- `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
38765
+ `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
38766
38766
  Examples:
38767
38767
  hyperline customers create-customer
38768
38768
  hyperline customers create-customer --name <name> --type <type>
@@ -38819,6 +38819,10 @@ Examples:
38819
38819
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38820
38820
  if (opts.priceBookId !== void 0)
38821
38821
  args.price_book_id = opts.priceBookId;
38822
+ if (opts.ownerId !== void 0)
38823
+ args.owner_id = opts.ownerId;
38824
+ if (opts.followerIds !== void 0)
38825
+ args.follower_ids = opts.followerIds;
38822
38826
  if (opts.taxRateCustom !== void 0)
38823
38827
  args.tax_rate_custom = Number(opts.taxRateCustom);
38824
38828
  if (opts.customPaymentDelay !== void 0)
@@ -38887,7 +38891,7 @@ How customer invoices are issued from the parent organisation.
38887
38891
  - \`none\`: Invoices will keep being issued from this customer.
38888
38892
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38889
38893
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38890
- `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
38894
+ `).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
38891
38895
  Examples:
38892
38896
  hyperline customers update --id <id>
38893
38897
  hyperline customers update --id <id> --name <name> --type <type>
@@ -38948,6 +38952,10 @@ Examples:
38948
38952
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38949
38953
  if (opts.priceBookId !== void 0)
38950
38954
  args.price_book_id = opts.priceBookId;
38955
+ if (opts.ownerId !== void 0)
38956
+ args.owner_id = opts.ownerId;
38957
+ if (opts.followerIds !== void 0)
38958
+ args.follower_ids = opts.followerIds;
38951
38959
  if (opts.taxRateCustom !== void 0)
38952
38960
  args.tax_rate_custom = Number(opts.taxRateCustom);
38953
38961
  if (opts.customPaymentDelay !== void 0)
@@ -40603,7 +40611,7 @@ Examples:
40603
40611
  queryParamKeys: []
40604
40612
  });
40605
40613
  });
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", `
40614
+ 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
40615
  Examples:
40608
40616
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId>
40609
40617
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId> --output json`).action(async (opts) => {
@@ -41404,13 +41412,13 @@ Examples:
41404
41412
  // build/commands/generated/quotes.js
41405
41413
  function registerQuotesCommands(parent) {
41406
41414
  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>", `
41415
+ 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
41416
  Quote status.
41409
41417
 
41410
41418
  - \`draft\`: The quote is a draft.
41411
41419
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41412
41420
  - \`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.
41421
+ `).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
41422
 
41415
41423
  - \`all\`: Display all pricing tiers.
41416
41424
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41442,6 +41450,8 @@ Examples:
41442
41450
  args.collect_payment_details = opts.collectPaymentDetails;
41443
41451
  if (opts.collectCustomPropertyIds !== void 0)
41444
41452
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41453
+ if (opts.contractClauseIds !== void 0)
41454
+ args.contract_clause_ids = opts.contractClauseIds;
41445
41455
  if (opts.requireTaxId !== void 0)
41446
41456
  args.require_tax_id = opts.requireTaxId;
41447
41457
  if (opts.displayQuoteValue !== void 0)
@@ -41698,7 +41708,7 @@ Examples:
41698
41708
  queryParamKeys: []
41699
41709
  });
41700
41710
  });
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.
41711
+ 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
41712
 
41703
41713
  - \`all\`: Display all pricing tiers.
41704
41714
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -41726,6 +41736,8 @@ Examples:
41726
41736
  args.collect_payment_details = opts.collectPaymentDetails;
41727
41737
  if (opts.collectCustomPropertyIds !== void 0)
41728
41738
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41739
+ if (opts.contractClauseIds !== void 0)
41740
+ args.contract_clause_ids = opts.contractClauseIds;
41729
41741
  if (opts.requireTaxId !== void 0)
41730
41742
  args.require_tax_id = opts.requireTaxId;
41731
41743
  if (opts.displayQuoteValue !== void 0)
@@ -41927,6 +41939,128 @@ Examples:
41927
41939
  });
41928
41940
  }
41929
41941
 
41942
+ // build/commands/generated/quotes-templates.js
41943
+ function registerQuotes_TemplatesCommands(parent) {
41944
+ const resource = parent.command("quotes-templates").description("Manage quotes > templates");
41945
+ 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", `
41946
+ Examples:
41947
+ hyperline quotes-templates list-quote-templates
41948
+ hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
41949
+ const ctx = resource.parent?.opts()._ctx;
41950
+ if (!ctx) {
41951
+ process.stderr.write("Error: Not authenticated\n");
41952
+ process.exit(1);
41953
+ }
41954
+ const args = {};
41955
+ if (opts.id !== void 0)
41956
+ args.id = opts.id;
41957
+ if (opts["id.not"] !== void 0)
41958
+ args.id__not = opts["id.not"];
41959
+ if (opts["id.isNull"] !== void 0)
41960
+ args.id__isNull = opts["id.isNull"];
41961
+ if (opts["id.isNotNull"] !== void 0)
41962
+ args.id__isNotNull = opts["id.isNotNull"];
41963
+ if (opts["id.equals"] !== void 0)
41964
+ args.id__equals = opts["id.equals"];
41965
+ if (opts["id.contains"] !== void 0)
41966
+ args.id__contains = opts["id.contains"];
41967
+ if (opts["id.startsWith"] !== void 0)
41968
+ args.id__startsWith = opts["id.startsWith"];
41969
+ if (opts["id.endWith"] !== void 0)
41970
+ args.id__endWith = opts["id.endWith"];
41971
+ if (opts.name !== void 0)
41972
+ args.name = opts.name;
41973
+ if (opts["name.not"] !== void 0)
41974
+ args.name__not = opts["name.not"];
41975
+ if (opts["name.isNull"] !== void 0)
41976
+ args.name__isNull = opts["name.isNull"];
41977
+ if (opts["name.isNotNull"] !== void 0)
41978
+ args.name__isNotNull = opts["name.isNotNull"];
41979
+ if (opts["name.equals"] !== void 0)
41980
+ args.name__equals = opts["name.equals"];
41981
+ if (opts["name.contains"] !== void 0)
41982
+ args.name__contains = opts["name.contains"];
41983
+ if (opts["name.startsWith"] !== void 0)
41984
+ args.name__startsWith = opts["name.startsWith"];
41985
+ if (opts["name.endWith"] !== void 0)
41986
+ args.name__endWith = opts["name.endWith"];
41987
+ if (opts.subscriptionTemplateId !== void 0)
41988
+ args.subscription_template_id = opts.subscriptionTemplateId;
41989
+ if (opts["subscriptionTemplateId.not"] !== void 0)
41990
+ args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
41991
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
41992
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
41993
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
41994
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
41995
+ if (opts["subscriptionTemplateId.equals"] !== void 0)
41996
+ args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
41997
+ if (opts["subscriptionTemplateId.contains"] !== void 0)
41998
+ args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
41999
+ if (opts["subscriptionTemplateId.startsWith"] !== void 0)
42000
+ args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
42001
+ if (opts["subscriptionTemplateId.endWith"] !== void 0)
42002
+ args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
42003
+ if (opts.search !== void 0)
42004
+ args.search = opts.search;
42005
+ if (opts.take !== void 0)
42006
+ args.take = Number(opts.take);
42007
+ if (opts.skip !== void 0)
42008
+ args.skip = Number(opts.skip);
42009
+ await ctx.execute({
42010
+ method: "GET",
42011
+ path: "/v1/quotes/templates",
42012
+ args,
42013
+ queryParamKeys: [
42014
+ "take",
42015
+ "skip",
42016
+ "id",
42017
+ "id__not",
42018
+ "id__isNull",
42019
+ "id__isNotNull",
42020
+ "id__equals",
42021
+ "id__contains",
42022
+ "id__startsWith",
42023
+ "id__endWith",
42024
+ "name",
42025
+ "name__not",
42026
+ "name__isNull",
42027
+ "name__isNotNull",
42028
+ "name__equals",
42029
+ "name__contains",
42030
+ "name__startsWith",
42031
+ "name__endWith",
42032
+ "subscription_template_id",
42033
+ "subscription_template_id__not",
42034
+ "subscription_template_id__isNull",
42035
+ "subscription_template_id__isNotNull",
42036
+ "subscription_template_id__equals",
42037
+ "subscription_template_id__contains",
42038
+ "subscription_template_id__startsWith",
42039
+ "subscription_template_id__endWith",
42040
+ "search"
42041
+ ]
42042
+ });
42043
+ });
42044
+ 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", `
42045
+ Examples:
42046
+ hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
42047
+ const ctx = resource.parent?.opts()._ctx;
42048
+ if (!ctx) {
42049
+ process.stderr.write("Error: Not authenticated\n");
42050
+ process.exit(1);
42051
+ }
42052
+ const args = {};
42053
+ if (opts.id !== void 0)
42054
+ args.id = opts.id;
42055
+ await ctx.execute({
42056
+ method: "GET",
42057
+ path: "/v1/quotes/templates/{id}",
42058
+ args,
42059
+ queryParamKeys: []
42060
+ });
42061
+ });
42062
+ }
42063
+
41930
42064
  // build/commands/generated/subscriptions.js
41931
42065
  function registerSubscriptionsCommands(parent) {
41932
42066
  const resource = parent.command("subscriptions").description("Manage subscriptions");
@@ -43528,6 +43662,7 @@ function registerAllCommands(program2) {
43528
43662
  registerProductsCommands(program2);
43529
43663
  registerPrice_ConfigurationsCommands(program2);
43530
43664
  registerQuotesCommands(program2);
43665
+ registerQuotes_TemplatesCommands(program2);
43531
43666
  registerSubscriptions_TemplatesCommands(program2);
43532
43667
  registerSubscriptionsCommands(program2);
43533
43668
  registerSubscriptions_TransitionsCommands(program2);
@@ -61663,6 +61798,7 @@ import * as winston from "winston";
61663
61798
 
61664
61799
  // ../hyperline-monitoring/build/logger/formatting/format.js
61665
61800
  import prune from "json-prune";
61801
+ var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
61666
61802
  function jsonFormat(info) {
61667
61803
  const prunedInfo = JSON.parse(prune(info));
61668
61804
  for (const [key, value] of Object.entries(prunedInfo)) {
@@ -61745,17 +61881,26 @@ function formatAxiosError(error48) {
61745
61881
  url: request?.url,
61746
61882
  baseURL: request?.baseURL,
61747
61883
  params: request?.params,
61748
- headers: request?.headers,
61884
+ headers: redactHeaders({ headers: request?.headers }),
61749
61885
  "axios-retry": request?.["axios-retry"]
61750
61886
  },
61751
61887
  response: {
61752
61888
  status: response?.status,
61753
61889
  statusText: response?.statusText,
61754
- headers: response?.headers,
61890
+ headers: redactHeaders({ headers: response?.headers }),
61755
61891
  data: response?.data
61756
61892
  }
61757
61893
  };
61758
61894
  }
61895
+ function redactHeaders({ headers }) {
61896
+ if (!isRecord(headers)) {
61897
+ return headers;
61898
+ }
61899
+ return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
61900
+ headerKey,
61901
+ REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
61902
+ ]));
61903
+ }
61759
61904
  function isRecord(value) {
61760
61905
  return typeof value === "object" && value !== null && !Array.isArray(value);
61761
61906
  }
@@ -61779,13 +61924,16 @@ function logHttpRequest(logger2, request, extra) {
61779
61924
  });
61780
61925
  }
61781
61926
  function logHttpResponse(logger2, response, responseTime, extra) {
61782
- const { request, statusCode, responseBody } = response;
61927
+ const { request, statusCode, responseBody, responseHeaders } = response;
61783
61928
  const { message, metadata } = transform2(request);
61784
61929
  const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
61785
61930
  const responseMetadata = {
61786
61931
  statusCode,
61787
61932
  responseTime,
61788
- responseBody
61933
+ responseBody,
61934
+ // Redacted so secrets (authorization/cookie/token/…) never reach the logs
61935
+ // while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
61936
+ responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
61789
61937
  };
61790
61938
  logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
61791
61939
  ...metadata,
@@ -62125,6 +62273,7 @@ var de = {
62125
62273
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62126
62274
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62127
62275
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62276
+ "accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
62128
62277
  "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62129
62278
  "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
62130
62279
  "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
@@ -62197,6 +62346,7 @@ var en = {
62197
62346
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62198
62347
  "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62199
62348
  "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62349
+ "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
62200
62350
  "einvoicing.paymentProcessed": "Payment processed",
62201
62351
  "einvoicing.paymentReceived": "Payment received",
62202
62352
  "einvoicing.paymentFromWallet": "Payment from wallet"
@@ -62211,6 +62361,7 @@ var es = {
62211
62361
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62212
62362
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62213
62363
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62364
+ "accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
62214
62365
  "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62215
62366
  "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62216
62367
  "creditNotes.refundChargeName": "Reembolso por factura",
@@ -62250,6 +62401,7 @@ var fr = {
62250
62401
  "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62251
62402
  "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62252
62403
  "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62404
+ "accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
62253
62405
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62254
62406
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62255
62407
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
@@ -62297,6 +62449,7 @@ var it = {
62297
62449
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62298
62450
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62299
62451
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62452
+ "accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
62300
62453
  "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62301
62454
  "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
62302
62455
  "creditNotes.refundChargeName": "Rimborso per fattura",
@@ -62340,6 +62493,7 @@ var nl = {
62340
62493
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62341
62494
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62342
62495
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62496
+ "accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
62343
62497
  "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62344
62498
  "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
62345
62499
  "creditNotes.refundChargeName": "Terugbetaling voor factuur",
@@ -62383,6 +62537,7 @@ var pl = {
62383
62537
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62384
62538
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62385
62539
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62540
+ "accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
62386
62541
  "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62387
62542
  "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
62388
62543
  "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
@@ -62426,6 +62581,7 @@ var pt = {
62426
62581
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62427
62582
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62428
62583
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62584
+ "accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
62429
62585
  "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62430
62586
  "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62431
62587
  "creditNotes.refundChargeName": "Reembolso pela fatura",
@@ -62562,10 +62718,16 @@ function buildHttpClient(dependencies) {
62562
62718
  return response;
62563
62719
  }, (error48) => {
62564
62720
  if (error48.response) {
62565
- const { config: responseConfig, status } = error48.response;
62721
+ const { config: responseConfig, status, headers } = error48.response;
62566
62722
  const timeStart = responseConfig.metadata.timeStart;
62567
62723
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
62568
- logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error48.message } });
62724
+ logHttpResponse(logger2, {
62725
+ request: toLogRequest(responseConfig),
62726
+ statusCode: status,
62727
+ // Surfaces upstream response headers on error responses (e.g. the
62728
+ // rate-limit headers on a 429); redacted in logHttpResponse.
62729
+ responseHeaders: headers
62730
+ }, responseTime, { metadata: { error: error48.message } });
62569
62731
  }
62570
62732
  return Promise.reject(error48);
62571
62733
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.8b45ff8",
3
+ "version": "0.1.0-build.1.8e2d811",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",