@hyperline/cli 0.1.0-build.1.a90f6ae → 0.1.0-build.1.a972870

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34894,10 +34894,10 @@ var require_shared = __commonJS({
34894
34894
  ZodId: () => ZodId,
34895
34895
  ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
34896
34896
  });
34897
- var import_zod18 = require_lib();
34897
+ var import_zod19 = require_lib();
34898
34898
  var countryIds2 = ["all", ...countries.map(({ id }) => id)];
34899
- var ZodId = import_zod18.z.enum(countryIds2);
34900
- var ZodTranslationsSchemaFn = (schema) => import_zod18.z.record(import_zod18.z.string(), schema.optional());
34899
+ var ZodId = import_zod19.z.enum(countryIds2);
34900
+ var ZodTranslationsSchemaFn = (schema) => import_zod19.z.record(import_zod19.z.string(), schema.optional());
34901
34901
  var UsStates = [
34902
34902
  { id: "AA", name: "Armed Forces Americas" },
34903
34903
  { id: "AE", name: "Armed Forces Europe" },
@@ -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
@@ -38020,7 +38045,7 @@ Examples:
38020
38045
  queryParamKeys: ["take", "skip"]
38021
38046
  });
38022
38047
  });
38023
- resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38048
+ resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <value>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38024
38049
  Examples:
38025
38050
  hyperline coupons create --name <name> --type <type>
38026
38051
  hyperline coupons create --name <name> --type <type> --description <description> --expiration-date <expiration_date>
@@ -38039,6 +38064,10 @@ Examples:
38039
38064
  args.expiration_date = opts.expirationDate;
38040
38065
  if (opts.productIds !== void 0)
38041
38066
  args.product_ids = opts.productIds;
38067
+ if (opts.repeat !== void 0)
38068
+ args.repeat = opts.repeat;
38069
+ if (opts.duration !== void 0)
38070
+ args.duration = opts.duration;
38042
38071
  if (opts.type !== void 0)
38043
38072
  args.type = opts.type;
38044
38073
  if (opts.currency !== void 0)
@@ -38074,7 +38103,7 @@ Examples:
38074
38103
  queryParamKeys: []
38075
38104
  });
38076
38105
  });
38077
- resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38106
+ resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <value>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38078
38107
  Examples:
38079
38108
  hyperline coupons update --id <id> --name <name> --type <type>
38080
38109
  hyperline coupons update --id <id> --name <name> --type <type> --description <description> --expiration-date <expiration_date>
@@ -38095,6 +38124,10 @@ Examples:
38095
38124
  args.expiration_date = opts.expirationDate;
38096
38125
  if (opts.productIds !== void 0)
38097
38126
  args.product_ids = opts.productIds;
38127
+ if (opts.repeat !== void 0)
38128
+ args.repeat = opts.repeat;
38129
+ if (opts.duration !== void 0)
38130
+ args.duration = opts.duration;
38098
38131
  if (opts.type !== void 0)
38099
38132
  args.type = opts.type;
38100
38133
  if (opts.currency !== void 0)
@@ -38744,13 +38777,17 @@ Customer type.
38744
38777
  - \`corporate\`: The customer is a business entity.
38745
38778
  - \`person\`: The customer is a natural person.
38746
38779
  - \`automatically_created\`: The customer was automatically imported (e.g. from a data loader). This value cannot be used when creating/editing.
38747
- `).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment delay. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay for payment collection. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38780
+ `).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--taxability <value>", `Customer taxability.
38781
+
38782
+ - \`taxable\`: Taxes are automatically determined for the customer.
38783
+ - \`exempt\`: The customer is exempt from tax.
38784
+ `).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38748
38785
  How customer invoices are issued from the parent organisation.
38749
38786
 
38750
38787
  - \`none\`: Invoices will keep being issued from this customer.
38751
38788
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38752
38789
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38753
- `).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", `
38754
38791
  Examples:
38755
38792
  hyperline customers create-customer
38756
38793
  hyperline customers create-customer --name <name> --type <type>
@@ -38769,6 +38806,8 @@ Examples:
38769
38806
  args.currency = opts.currency;
38770
38807
  if (opts.taxIds !== void 0)
38771
38808
  args.tax_ids = opts.taxIds;
38809
+ if (opts.taxability !== void 0)
38810
+ args.taxability = opts.taxability;
38772
38811
  if (opts.registrationNumber !== void 0)
38773
38812
  args.registration_number = opts.registrationNumber;
38774
38813
  if (opts.externalId !== void 0)
@@ -38805,6 +38844,10 @@ Examples:
38805
38844
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38806
38845
  if (opts.priceBookId !== void 0)
38807
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;
38808
38851
  if (opts.taxRateCustom !== void 0)
38809
38852
  args.tax_rate_custom = Number(opts.taxRateCustom);
38810
38853
  if (opts.customPaymentDelay !== void 0)
@@ -38863,13 +38906,17 @@ Customer type.
38863
38906
  - \`corporate\`: The customer is a business entity.
38864
38907
  - \`person\`: The customer is a natural person.
38865
38908
  - \`automatically_created\`: The customer was automatically imported (e.g. from a data loader). This value cannot be used when creating/editing.
38866
- `).option("--currency <value>", `Customer currency. Can only be changed if the customer doesn't have existing invoices, a wallet or a payment method saved.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment delay. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay for payment collection. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38909
+ `).option("--currency <value>", `Customer currency. Can only be changed if the customer doesn't have existing invoices, a wallet or a payment method saved.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--taxability <value>", `Customer taxability.
38910
+
38911
+ - \`taxable\`: Taxes are automatically determined for the customer.
38912
+ - \`exempt\`: The customer is exempt from tax.
38913
+ `).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38867
38914
  How customer invoices are issued from the parent organisation.
38868
38915
 
38869
38916
  - \`none\`: Invoices will keep being issued from this customer.
38870
38917
  - \`every_invoice\`: Customer invoices will be issued from the organisation individually.
38871
38918
  - \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
38872
- `).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", `
38873
38920
  Examples:
38874
38921
  hyperline customers update --id <id>
38875
38922
  hyperline customers update --id <id> --name <name> --type <type>
@@ -38890,6 +38937,8 @@ Examples:
38890
38937
  args.currency = opts.currency;
38891
38938
  if (opts.taxIds !== void 0)
38892
38939
  args.tax_ids = opts.taxIds;
38940
+ if (opts.taxability !== void 0)
38941
+ args.taxability = opts.taxability;
38893
38942
  if (opts.registrationNumber !== void 0)
38894
38943
  args.registration_number = opts.registrationNumber;
38895
38944
  if (opts.externalId !== void 0)
@@ -38928,6 +38977,10 @@ Examples:
38928
38977
  args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
38929
38978
  if (opts.priceBookId !== void 0)
38930
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;
38931
38984
  if (opts.taxRateCustom !== void 0)
38932
38985
  args.tax_rate_custom = Number(opts.taxRateCustom);
38933
38986
  if (opts.customPaymentDelay !== void 0)
@@ -39592,6 +39645,7 @@ Export name.
39592
39645
  - \`draft_invoices\`: Export all draft invoices, with customer and product information.
39593
39646
  - \`open_invoices\`: Export all open invoices, with customer and product information.
39594
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).
39595
39649
  `).requiredOption("--file-type <value>", `
39596
39650
  Export file type.
39597
39651
 
@@ -40169,7 +40223,7 @@ Examples:
40169
40223
  - \`archived\`: A previous version of an invoice.
40170
40224
  - \`charged_on_parent\`: Invoice is charged on the parent customer.
40171
40225
  - \`pending_parent_concat\`: Invoice is pending invoices concatenation on the parent customer to be grouped.
40172
- - \`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.
40173
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.
40174
40228
 
40175
40229
  - \`invoice\`: Legal invoice to be paid by your customer.
@@ -40411,7 +40465,7 @@ Examples:
40411
40465
  queryParamKeys: []
40412
40466
  });
40413
40467
  });
40414
- 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.
40415
40469
 
40416
40470
  - \`invoice\`: Legal invoice to be paid by your customer.
40417
40471
  - \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
@@ -40583,7 +40637,7 @@ Examples:
40583
40637
  queryParamKeys: []
40584
40638
  });
40585
40639
  });
40586
- 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", `
40587
40641
  Examples:
40588
40642
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId>
40589
40643
  hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId> --output json`).action(async (opts) => {
@@ -41224,7 +41278,12 @@ Examples:
41224
41278
  ]
41225
41279
  });
41226
41280
  });
41227
- resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
41281
+ resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--credits-grant-mode <value>", `
41282
+ How the periodic credit allowance is granted for partial billing periods.
41283
+
41284
+ - \`prorated\` (default): the granted credits are prorated to the elapsed period.
41285
+ - \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
41286
+ `).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
41228
41287
  Examples:
41229
41288
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
41230
41289
  hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
@@ -41259,6 +41318,8 @@ Examples:
41259
41318
  args.unit_name = opts.unitName;
41260
41319
  if (opts.creditAggregators !== void 0)
41261
41320
  args.credit_aggregators = opts.creditAggregators;
41321
+ if (opts.creditsGrantMode !== void 0)
41322
+ args.credits_grant_mode = opts.creditsGrantMode;
41262
41323
  if (opts.displayMode !== void 0)
41263
41324
  args.display_mode = opts.displayMode;
41264
41325
  if (opts.bundleItems !== void 0)
@@ -41384,18 +41445,18 @@ Examples:
41384
41445
  // build/commands/generated/quotes.js
41385
41446
  function registerQuotesCommands(parent) {
41386
41447
  const resource = parent.command("quotes").description("Manage quotes");
41387
- resource.command("create").description(`Create a new quote for a customer with line items, products, and optional file attachments. Quotes can be sent for signature and converted to subscriptions.`).option("--status <value>", `
41448
+ resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices. When creating from a quote template, do not combine \`template_id\` with subscription overrides for dates, contract terms, products, phases, coupons, discounts, prices, or seats in this call: first create the quote from \`template_id\` so template terms and contract documents are copied, then call \`update_quote\` with the subscription payload.`).option("--status <value>", `
41388
41449
  Quote status.
41389
41450
 
41390
41451
  - \`draft\`: The quote is a draft.
41391
41452
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41392
41453
  - \`pending_signature\`: The quote is awaiting the customer's signature.
41393
- `).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. If not specified, automatically computed from the subscription configuration.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41454
+ `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41394
41455
 
41395
41456
  - \`all\`: Display all pricing tiers.
41396
41457
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
41397
41458
  - \`none\`: Hide all pricing tiers.
41398
- `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <value>", `Subscription configuration constituting the quote.`).addHelpText("after", `
41459
+ `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration or an \`invoice\` payload must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <value>", `Subscription configuration constituting the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided, a draft invoice is created and linked to the quote. Cannot be combined with \`subscription\` or \`template_id\`.`).addHelpText("after", `
41399
41460
  Examples:
41400
41461
  hyperline quotes create --customer-id <customer_id>
41401
41462
  hyperline quotes create --customer-id <customer_id> --status <status> --owner-email <owner_email>
@@ -41422,6 +41483,8 @@ Examples:
41422
41483
  args.collect_payment_details = opts.collectPaymentDetails;
41423
41484
  if (opts.collectCustomPropertyIds !== void 0)
41424
41485
  args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41486
+ if (opts.contractClauseIds !== void 0)
41487
+ args.contract_clause_ids = opts.contractClauseIds;
41425
41488
  if (opts.requireTaxId !== void 0)
41426
41489
  args.require_tax_id = opts.requireTaxId;
41427
41490
  if (opts.displayQuoteValue !== void 0)
@@ -41440,12 +41503,16 @@ Examples:
41440
41503
  args.display_documents_in_preview = opts.displayDocumentsInPreview;
41441
41504
  if (opts.displaySubscriptionOnUpdate !== void 0)
41442
41505
  args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
41506
+ if (opts.generateDraftInvoices !== void 0)
41507
+ args.generate_draft_invoices = opts.generateDraftInvoices;
41443
41508
  if (opts.templateId !== void 0)
41444
41509
  args.template_id = opts.templateId;
41445
41510
  if (opts.expiresAt !== void 0)
41446
41511
  args.expires_at = opts.expiresAt;
41447
41512
  if (opts.subscription !== void 0)
41448
41513
  args.subscription = opts.subscription;
41514
+ if (opts.invoice !== void 0)
41515
+ args.invoice = opts.invoice;
41449
41516
  if (opts.amount !== void 0)
41450
41517
  args.amount = Number(opts.amount);
41451
41518
  await ctx.execute({
@@ -41674,6 +41741,71 @@ Examples:
41674
41741
  queryParamKeys: []
41675
41742
  });
41676
41743
  });
41744
+ resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41745
+
41746
+ - \`all\`: Display all pricing tiers.
41747
+ - \`matching\`: Only display the tiers used to compute the price based on quantity.
41748
+ - \`none\`: Hide all pricing tiers.
41749
+ `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
41750
+ Examples:
41751
+ hyperline quotes update --id <id>
41752
+ hyperline quotes update --id <id> --owner-email <owner_email> --comments <comments>
41753
+ hyperline quotes update --id <id> --output json`).action(async (opts) => {
41754
+ const ctx = resource.parent?.opts()._ctx;
41755
+ if (!ctx) {
41756
+ process.stderr.write("Error: Not authenticated\n");
41757
+ process.exit(1);
41758
+ }
41759
+ const args = {};
41760
+ if (opts.id !== void 0)
41761
+ args.id = opts.id;
41762
+ if (opts.ownerEmail !== void 0)
41763
+ args.owner_email = opts.ownerEmail;
41764
+ if (opts.comments !== void 0)
41765
+ args.comments = opts.comments;
41766
+ if (opts.terms !== void 0)
41767
+ args.terms = opts.terms;
41768
+ if (opts.collectPaymentDetails !== void 0)
41769
+ args.collect_payment_details = opts.collectPaymentDetails;
41770
+ if (opts.collectCustomPropertyIds !== void 0)
41771
+ args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41772
+ if (opts.contractClauseIds !== void 0)
41773
+ args.contract_clause_ids = opts.contractClauseIds;
41774
+ if (opts.requireTaxId !== void 0)
41775
+ args.require_tax_id = opts.requireTaxId;
41776
+ if (opts.displayQuoteValue !== void 0)
41777
+ args.display_quote_value = opts.displayQuoteValue;
41778
+ if (opts.displayQuoteValueWithTax !== void 0)
41779
+ args.display_quote_value_with_tax = opts.displayQuoteValueWithTax;
41780
+ if (opts.displayTaxes !== void 0)
41781
+ args.display_taxes = opts.displayTaxes;
41782
+ if (opts.displayPriceTiers !== void 0)
41783
+ args.display_price_tiers = opts.displayPriceTiers;
41784
+ if (opts.displayPhaseValue !== void 0)
41785
+ args.display_phase_value = opts.displayPhaseValue;
41786
+ if (opts.displayFirstInvoiceAmount !== void 0)
41787
+ args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
41788
+ if (opts.displayDocumentsInPreview !== void 0)
41789
+ args.display_documents_in_preview = opts.displayDocumentsInPreview;
41790
+ if (opts.displaySubscriptionOnUpdate !== void 0)
41791
+ args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
41792
+ if (opts.generateDraftInvoices !== void 0)
41793
+ args.generate_draft_invoices = opts.generateDraftInvoices;
41794
+ if (opts.expiresAt !== void 0)
41795
+ args.expires_at = opts.expiresAt;
41796
+ if (opts.subscription !== void 0)
41797
+ args.subscription = opts.subscription;
41798
+ if (opts.invoice !== void 0)
41799
+ args.invoice = opts.invoice;
41800
+ if (opts.amount !== void 0)
41801
+ args.amount = Number(opts.amount);
41802
+ await ctx.execute({
41803
+ method: "PATCH",
41804
+ path: "/v1/quotes/{id}",
41805
+ args,
41806
+ queryParamKeys: []
41807
+ });
41808
+ });
41677
41809
  resource.command("download").description(`Download the PDF of a quote. Supports locale parameter for localization.`).requiredOption("--id <value>", `id parameter`).option("--locale <value>", `locale`).addHelpText("after", `
41678
41810
  Examples:
41679
41811
  hyperline quotes download --id <id>
@@ -41714,6 +41846,25 @@ Examples:
41714
41846
  queryParamKeys: []
41715
41847
  });
41716
41848
  });
41849
+ 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", `
41850
+ Examples:
41851
+ hyperline quotes finalize --id <id>
41852
+ hyperline quotes finalize --id <id> --output json`).action(async (opts) => {
41853
+ const ctx = resource.parent?.opts()._ctx;
41854
+ if (!ctx) {
41855
+ process.stderr.write("Error: Not authenticated\n");
41856
+ process.exit(1);
41857
+ }
41858
+ const args = {};
41859
+ if (opts.id !== void 0)
41860
+ args.id = opts.id;
41861
+ await ctx.execute({
41862
+ method: "POST",
41863
+ path: "/v1/quotes/{id}/finalize",
41864
+ args,
41865
+ queryParamKeys: []
41866
+ });
41867
+ });
41717
41868
  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", `
41718
41869
  Examples:
41719
41870
  hyperline quotes send --id <id> --email <email>
@@ -41821,10 +41972,132 @@ Examples:
41821
41972
  });
41822
41973
  }
41823
41974
 
41975
+ // build/commands/generated/quotes-templates.js
41976
+ function registerQuotes_TemplatesCommands(parent) {
41977
+ const resource = parent.command("quotes-templates").description("Manage quotes > templates");
41978
+ resource.command("list-quote-templates").description(`List quote templates with pagination and optional filters for id, name, subscription_template_id, and search. Use template IDs to create quotes from reusable quote defaults.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--subscription-template-id <value>", `subscription_template_id`).option("--subscription-template-id.not <value>", `subscription_template_id__not`).option("--subscription-template-id.is-null <value>", `subscription_template_id__isNull`).option("--subscription-template-id.is-not-null <value>", `subscription_template_id__isNotNull`).option("--subscription-template-id.equals <value>", `subscription_template_id__equals`).option("--subscription-template-id.contains <value>", `subscription_template_id__contains`).option("--subscription-template-id.starts-with <value>", `subscription_template_id__startsWith`).option("--subscription-template-id.end-with <value>", `subscription_template_id__endWith`).option("--search <value>", `search`).addHelpText("after", `
41979
+ Examples:
41980
+ hyperline quotes-templates list-quote-templates
41981
+ hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
41982
+ const ctx = resource.parent?.opts()._ctx;
41983
+ if (!ctx) {
41984
+ process.stderr.write("Error: Not authenticated\n");
41985
+ process.exit(1);
41986
+ }
41987
+ const args = {};
41988
+ if (opts.id !== void 0)
41989
+ args.id = opts.id;
41990
+ if (opts["id.not"] !== void 0)
41991
+ args.id__not = opts["id.not"];
41992
+ if (opts["id.isNull"] !== void 0)
41993
+ args.id__isNull = opts["id.isNull"];
41994
+ if (opts["id.isNotNull"] !== void 0)
41995
+ args.id__isNotNull = opts["id.isNotNull"];
41996
+ if (opts["id.equals"] !== void 0)
41997
+ args.id__equals = opts["id.equals"];
41998
+ if (opts["id.contains"] !== void 0)
41999
+ args.id__contains = opts["id.contains"];
42000
+ if (opts["id.startsWith"] !== void 0)
42001
+ args.id__startsWith = opts["id.startsWith"];
42002
+ if (opts["id.endWith"] !== void 0)
42003
+ args.id__endWith = opts["id.endWith"];
42004
+ if (opts.name !== void 0)
42005
+ args.name = opts.name;
42006
+ if (opts["name.not"] !== void 0)
42007
+ args.name__not = opts["name.not"];
42008
+ if (opts["name.isNull"] !== void 0)
42009
+ args.name__isNull = opts["name.isNull"];
42010
+ if (opts["name.isNotNull"] !== void 0)
42011
+ args.name__isNotNull = opts["name.isNotNull"];
42012
+ if (opts["name.equals"] !== void 0)
42013
+ args.name__equals = opts["name.equals"];
42014
+ if (opts["name.contains"] !== void 0)
42015
+ args.name__contains = opts["name.contains"];
42016
+ if (opts["name.startsWith"] !== void 0)
42017
+ args.name__startsWith = opts["name.startsWith"];
42018
+ if (opts["name.endWith"] !== void 0)
42019
+ args.name__endWith = opts["name.endWith"];
42020
+ if (opts.subscriptionTemplateId !== void 0)
42021
+ args.subscription_template_id = opts.subscriptionTemplateId;
42022
+ if (opts["subscriptionTemplateId.not"] !== void 0)
42023
+ args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
42024
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
42025
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
42026
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
42027
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
42028
+ if (opts["subscriptionTemplateId.equals"] !== void 0)
42029
+ args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
42030
+ if (opts["subscriptionTemplateId.contains"] !== void 0)
42031
+ args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
42032
+ if (opts["subscriptionTemplateId.startsWith"] !== void 0)
42033
+ args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
42034
+ if (opts["subscriptionTemplateId.endWith"] !== void 0)
42035
+ args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
42036
+ if (opts.search !== void 0)
42037
+ args.search = opts.search;
42038
+ if (opts.take !== void 0)
42039
+ args.take = Number(opts.take);
42040
+ if (opts.skip !== void 0)
42041
+ args.skip = Number(opts.skip);
42042
+ await ctx.execute({
42043
+ method: "GET",
42044
+ path: "/v1/quotes/templates",
42045
+ args,
42046
+ queryParamKeys: [
42047
+ "take",
42048
+ "skip",
42049
+ "id",
42050
+ "id__not",
42051
+ "id__isNull",
42052
+ "id__isNotNull",
42053
+ "id__equals",
42054
+ "id__contains",
42055
+ "id__startsWith",
42056
+ "id__endWith",
42057
+ "name",
42058
+ "name__not",
42059
+ "name__isNull",
42060
+ "name__isNotNull",
42061
+ "name__equals",
42062
+ "name__contains",
42063
+ "name__startsWith",
42064
+ "name__endWith",
42065
+ "subscription_template_id",
42066
+ "subscription_template_id__not",
42067
+ "subscription_template_id__isNull",
42068
+ "subscription_template_id__isNotNull",
42069
+ "subscription_template_id__equals",
42070
+ "subscription_template_id__contains",
42071
+ "subscription_template_id__startsWith",
42072
+ "subscription_template_id__endWith",
42073
+ "search"
42074
+ ]
42075
+ });
42076
+ });
42077
+ resource.command("get-quote-template").description(`Retrieve a quote template by ID with quote defaults, display options, attachments, and linked contract template/clause IDs.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
42078
+ Examples:
42079
+ hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
42080
+ const ctx = resource.parent?.opts()._ctx;
42081
+ if (!ctx) {
42082
+ process.stderr.write("Error: Not authenticated\n");
42083
+ process.exit(1);
42084
+ }
42085
+ const args = {};
42086
+ if (opts.id !== void 0)
42087
+ args.id = opts.id;
42088
+ await ctx.execute({
42089
+ method: "GET",
42090
+ path: "/v1/quotes/templates/{id}",
42091
+ args,
42092
+ queryParamKeys: []
42093
+ });
42094
+ });
42095
+ }
42096
+
41824
42097
  // build/commands/generated/subscriptions.js
41825
42098
  function registerSubscriptionsCommands(parent) {
41826
42099
  const resource = parent.command("subscriptions").description("Manage subscriptions");
41827
- 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`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
42100
+ resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
41828
42101
  Examples:
41829
42102
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
41830
42103
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
@@ -41847,6 +42120,10 @@ Examples:
41847
42120
  args.charge_at = opts.chargeAt;
41848
42121
  if (opts.calculationMethod !== void 0)
41849
42122
  args.calculation_method = opts.calculationMethod;
42123
+ if (opts.precision !== void 0)
42124
+ args.precision = opts.precision;
42125
+ if (opts.refundMethod !== void 0)
42126
+ args.refund_method = opts.refundMethod;
41850
42127
  if (opts.type !== void 0)
41851
42128
  args.type = opts.type;
41852
42129
  if (opts.payload !== void 0)
@@ -41858,7 +42135,7 @@ Examples:
41858
42135
  queryParamKeys: []
41859
42136
  });
41860
42137
  });
41861
- 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`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42138
+ resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
41862
42139
  Examples:
41863
42140
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41864
42141
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -41881,6 +42158,10 @@ Examples:
41881
42158
  args.charge_at = opts.chargeAt;
41882
42159
  if (opts.calculationMethod !== void 0)
41883
42160
  args.calculation_method = opts.calculationMethod;
42161
+ if (opts.precision !== void 0)
42162
+ args.precision = opts.precision;
42163
+ if (opts.refundMethod !== void 0)
42164
+ args.refund_method = opts.refundMethod;
41884
42165
  if (opts.updates !== void 0)
41885
42166
  args.updates = opts.updates;
41886
42167
  await ctx.execute({
@@ -41890,7 +42171,7 @@ Examples:
41890
42171
  queryParamKeys: []
41891
42172
  });
41892
42173
  });
41893
- resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).addHelpText("after", `
42174
+ resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
41894
42175
  Examples:
41895
42176
  hyperline subscriptions cancel --id <id>
41896
42177
  hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
@@ -41907,6 +42188,8 @@ Examples:
41907
42188
  args.cancel_at = opts.cancelAt;
41908
42189
  if (opts.reason !== void 0)
41909
42190
  args.reason = opts.reason;
42191
+ if (opts.refundMethod !== void 0)
42192
+ args.refund_method = opts.refundMethod;
41910
42193
  if (opts.proRata !== void 0)
41911
42194
  args.pro_rata = true;
41912
42195
  await ctx.execute({
@@ -42016,7 +42299,7 @@ Examples:
42016
42299
  queryParamKeys: []
42017
42300
  });
42018
42301
  });
42019
- 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`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42302
+ resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42020
42303
  Examples:
42021
42304
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
42022
42305
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -42039,6 +42322,10 @@ Examples:
42039
42322
  args.charge_at = opts.chargeAt;
42040
42323
  if (opts.calculationMethod !== void 0)
42041
42324
  args.calculation_method = opts.calculationMethod;
42325
+ if (opts.precision !== void 0)
42326
+ args.precision = opts.precision;
42327
+ if (opts.refundMethod !== void 0)
42328
+ args.refund_method = opts.refundMethod;
42042
42329
  if (opts.updates !== void 0)
42043
42330
  args.updates = opts.updates;
42044
42331
  await ctx.execute({
@@ -42064,7 +42351,7 @@ Strategy used to cancel the subscription. If not specified \`do_nothing\` is use
42064
42351
  - \`refund_custom\`: Will refund to the customer a custom amount.
42065
42352
  - \`end_of_period\`: Will cancel the subscription at the end date of the current billing period.
42066
42353
  - \`do_nothing\`: Will only cease the subscription without any additional actions.
42067
- `).option("--cancellation-amount <number>", `Custom amount used when cancelling the subscription. Only applies to the \`charge_custom\` or the \`refund_custom\` cancellation strategy.`).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("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42354
+ `).option("--cancellation-amount <number>", `Custom amount used when cancelling the subscription. Only applies to the \`charge_custom\` or the \`refund_custom\` cancellation strategy.`).option("--cancellation-refund-method <value>", `Override the refund destination for credit notes generated by \`refund_prorata\` / \`refund_custom\` cancellation strategies. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).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("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42068
42355
  Defines when invoices are generated relative to the billing period.
42069
42356
 
42070
42357
  - \`period_start\`: Invoices are generated at the start of the billing period.
@@ -42119,6 +42406,8 @@ Examples:
42119
42406
  args.cancel_at = opts.cancelAt;
42120
42407
  if (opts.cancellationStrategy !== void 0)
42121
42408
  args.cancellation_strategy = opts.cancellationStrategy;
42409
+ if (opts.cancellationRefundMethod !== void 0)
42410
+ args.cancellation_refund_method = opts.cancellationRefundMethod;
42122
42411
  if (opts.properties !== void 0)
42123
42412
  args.properties = opts.properties;
42124
42413
  if (opts.customProperties !== void 0)
@@ -42401,7 +42690,7 @@ Examples:
42401
42690
  queryParamKeys: []
42402
42691
  });
42403
42692
  });
42404
- resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Payload mirrors GET response structure.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42693
+ resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Draft quote subscription configuration must be updated through PATCH /v1/quotes/{id}.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42405
42694
  Defines when invoices are generated relative to the billing period.
42406
42695
 
42407
42696
  - \`period_start\`: Invoices are generated at the start of the billing period.
@@ -42761,7 +43050,7 @@ Examples:
42761
43050
  ]
42762
43051
  });
42763
43052
  });
42764
- 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", `
43053
+ 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", `
42765
43054
  Examples:
42766
43055
  hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription>
42767
43056
  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>
@@ -42975,6 +43264,30 @@ Examples:
42975
43264
  });
42976
43265
  }
42977
43266
 
43267
+ // build/commands/generated/transactions.js
43268
+ function registerTransactionsCommands(parent) {
43269
+ const resource = parent.command("transactions").description("Manage transactions");
43270
+ resource.command("refund").description(`Refund a settled banking transaction for its full amount. The related invoice will switch back to to pay status. Use the create credit note endpoint if you want to cancel (and optionally refund) the initial invoice.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
43271
+ Examples:
43272
+ hyperline transactions refund --id <id>
43273
+ hyperline transactions refund --id <id> --output json`).action(async (opts) => {
43274
+ const ctx = resource.parent?.opts()._ctx;
43275
+ if (!ctx) {
43276
+ process.stderr.write("Error: Not authenticated\n");
43277
+ process.exit(1);
43278
+ }
43279
+ const args = {};
43280
+ if (opts.id !== void 0)
43281
+ args.id = opts.id;
43282
+ await ctx.execute({
43283
+ method: "POST",
43284
+ path: "/v1/transactions/{id}/refund",
43285
+ args,
43286
+ queryParamKeys: []
43287
+ });
43288
+ });
43289
+ }
43290
+
42978
43291
  // build/commands/generated/wallets.js
42979
43292
  function registerWalletsCommands(parent) {
42980
43293
  const resource = parent.command("wallets").description("Manage wallets");
@@ -43135,10 +43448,10 @@ Examples:
43135
43448
  queryParamKeys: []
43136
43449
  });
43137
43450
  });
43138
- 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", `
43451
+ 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", `
43139
43452
  Examples:
43140
43453
  hyperline wallets load --id <id>
43141
- hyperline wallets load --id <id> --amount <amount> --amount-free <amount_free>
43454
+ hyperline wallets load --id <id> --type <type> --amount <amount>
43142
43455
  hyperline wallets load --id <id> --output json`).action(async (opts) => {
43143
43456
  const ctx = resource.parent?.opts()._ctx;
43144
43457
  if (!ctx) {
@@ -43148,12 +43461,18 @@ Examples:
43148
43461
  const args = {};
43149
43462
  if (opts.id !== void 0)
43150
43463
  args.id = opts.id;
43464
+ if (opts.type !== void 0)
43465
+ args.type = opts.type;
43466
+ if (opts.comment !== void 0)
43467
+ args.comment = opts.comment;
43151
43468
  if (opts.documentStatus !== void 0)
43152
43469
  args.document_status = opts.documentStatus;
43470
+ if (opts.bankAccountId !== void 0)
43471
+ args.bank_account_id = opts.bankAccountId;
43472
+ if (opts.reference !== void 0)
43473
+ args.reference = opts.reference;
43153
43474
  if (opts.amount !== void 0)
43154
43475
  args.amount = Number(opts.amount);
43155
- if (opts.amountFree !== void 0)
43156
- args.amount_free = Number(opts.amountFree);
43157
43476
  await ctx.execute({
43158
43477
  method: "POST",
43159
43478
  path: "/v1/wallets/{id}/load",
@@ -43382,11 +43701,13 @@ function registerAllCommands(program2) {
43382
43701
  registerProductsCommands(program2);
43383
43702
  registerPrice_ConfigurationsCommands(program2);
43384
43703
  registerQuotesCommands(program2);
43704
+ registerQuotes_TemplatesCommands(program2);
43385
43705
  registerSubscriptions_TemplatesCommands(program2);
43386
43706
  registerSubscriptionsCommands(program2);
43387
43707
  registerSubscriptions_TransitionsCommands(program2);
43388
43708
  registerSubscriptions_PhasesCommands(program2);
43389
43709
  registerTaxesCommands(program2);
43710
+ registerTransactionsCommands(program2);
43390
43711
  registerWalletsCommands(program2);
43391
43712
  registerWebhooksCommands(program2);
43392
43713
  }
@@ -57177,6 +57498,7 @@ var BooleanSchema = external_exports.boolean().or(external_exports.enum(["true",
57177
57498
  });
57178
57499
  var StringSchemaForMultipartForm = external_exports.string().transform((value) => value === "" ? null : value);
57179
57500
  var StringArraySchemaForMultipartForm = external_exports.string().array().or(external_exports.string().length(0)).transform((value) => typeof value === "string" ? [] : value);
57501
+ var CommaSeparatedArraySchema = external_exports.string().optional().transform((raw) => raw ? raw.split(",").filter(Boolean) : void 0);
57180
57502
  var urlRegex = /^(?:(?:https?):\/\/)?(?:www\.)?(?:[\w-]+\.)+[a-z]{2,7}(?:\/\S*)?$/i;
57181
57503
  var ZodFlexibleUrl = external_exports.string({ message: "Invalid URL" }).regex(urlRegex).transform((url2) => {
57182
57504
  if (!url2)
@@ -61515,6 +61837,7 @@ import * as winston from "winston";
61515
61837
 
61516
61838
  // ../hyperline-monitoring/build/logger/formatting/format.js
61517
61839
  import prune from "json-prune";
61840
+ var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
61518
61841
  function jsonFormat(info) {
61519
61842
  const prunedInfo = JSON.parse(prune(info));
61520
61843
  for (const [key, value] of Object.entries(prunedInfo)) {
@@ -61597,17 +61920,26 @@ function formatAxiosError(error48) {
61597
61920
  url: request?.url,
61598
61921
  baseURL: request?.baseURL,
61599
61922
  params: request?.params,
61600
- headers: request?.headers,
61923
+ headers: redactHeaders({ headers: request?.headers }),
61601
61924
  "axios-retry": request?.["axios-retry"]
61602
61925
  },
61603
61926
  response: {
61604
61927
  status: response?.status,
61605
61928
  statusText: response?.statusText,
61606
- headers: response?.headers,
61929
+ headers: redactHeaders({ headers: response?.headers }),
61607
61930
  data: response?.data
61608
61931
  }
61609
61932
  };
61610
61933
  }
61934
+ function redactHeaders({ headers }) {
61935
+ if (!isRecord(headers)) {
61936
+ return headers;
61937
+ }
61938
+ return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
61939
+ headerKey,
61940
+ REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
61941
+ ]));
61942
+ }
61611
61943
  function isRecord(value) {
61612
61944
  return typeof value === "object" && value !== null && !Array.isArray(value);
61613
61945
  }
@@ -61631,13 +61963,16 @@ function logHttpRequest(logger2, request, extra) {
61631
61963
  });
61632
61964
  }
61633
61965
  function logHttpResponse(logger2, response, responseTime, extra) {
61634
- const { request, statusCode, responseBody } = response;
61966
+ const { request, statusCode, responseBody, responseHeaders } = response;
61635
61967
  const { message, metadata } = transform2(request);
61636
61968
  const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
61637
61969
  const responseMetadata = {
61638
61970
  statusCode,
61639
61971
  responseTime,
61640
- responseBody
61972
+ responseBody,
61973
+ // Redacted so secrets (authorization/cookie/token/…) never reach the logs
61974
+ // while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
61975
+ responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
61641
61976
  };
61642
61977
  logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
61643
61978
  ...metadata,
@@ -61972,10 +62307,12 @@ var languages = [
61972
62307
  var de = {
61973
62308
  "accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
61974
62309
  "accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
62310
+ "accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
61975
62311
  "accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
61976
62312
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
61977
62313
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
61978
62314
  "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
62315
+ "accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
61979
62316
  "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
61980
62317
  "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
61981
62318
  "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
@@ -61988,7 +62325,9 @@ var de = {
61988
62325
  "invoices.outstandingProduct.descriptionPeriod": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{periodStart}} bis {{periodEnd}}",
61989
62326
  "invoices.outstandingProduct.name": "Offener Saldo",
61990
62327
  "invoices.prorata.paymentForItem": "Anteilig berechneter Betrag f\xFCr",
62328
+ "invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
61991
62329
  "invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
62330
+ "invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
61992
62331
  "subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
61993
62332
  "subscriptions.correction": "Vorperiodische Anpassung",
61994
62333
  "subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
@@ -62017,7 +62356,9 @@ var en = {
62017
62356
  "invoices.outstandingProduct.descriptionPeriod": "Unpaid amount from the invoice{{invoiceNumber}} from {{periodStart}} to {{periodEnd}}",
62018
62357
  "invoices.outstandingProduct.name": "Outstanding balance",
62019
62358
  "invoices.prorata.paymentForItem": "Prorated payment for",
62359
+ "invoices.prorata.paymentForItemFullPeriod": "Payment for",
62020
62360
  "invoices.prorata.refundForItem": "Prorated refund for",
62361
+ "invoices.prorata.refundForItemFullPeriod": "Refund for",
62021
62362
  "subscriptions.closingChargeName": "Closing fee for subscription",
62022
62363
  "subscriptions.correction": "Adjustment previous period",
62023
62364
  "subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
@@ -62037,12 +62378,14 @@ var en = {
62037
62378
  "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Amount of {{amount}} not invoiced for the full period",
62038
62379
  "accounting.invoicePosted.entryDescription": "Posting entry for Invoice {{invoiceId}} issued",
62039
62380
  "accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
62381
+ "accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
62040
62382
  "accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
62041
62383
  "accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
62042
62384
  "accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62043
62385
  "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62044
62386
  "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62045
62387
  "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
62388
+ "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
62046
62389
  "einvoicing.paymentProcessed": "Payment processed",
62047
62390
  "einvoicing.paymentReceived": "Payment received",
62048
62391
  "einvoicing.paymentFromWallet": "Payment from wallet"
@@ -62052,10 +62395,12 @@ var en = {
62052
62395
  var es = {
62053
62396
  "accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
62054
62397
  "accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
62398
+ "accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
62055
62399
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
62056
62400
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62057
62401
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62058
62402
  "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62403
+ "accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
62059
62404
  "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62060
62405
  "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62061
62406
  "creditNotes.refundChargeName": "Reembolso por factura",
@@ -62068,7 +62413,9 @@ var es = {
62068
62413
  "invoices.outstandingProduct.descriptionPeriod": "Monto pendiente de la factura{{invoiceNumber}} del {{periodStart}} al {{periodEnd}}",
62069
62414
  "invoices.outstandingProduct.name": "Saldo pendiente",
62070
62415
  "invoices.prorata.paymentForItem": "Pago prorrateado por",
62416
+ "invoices.prorata.paymentForItemFullPeriod": "Pago por",
62071
62417
  "invoices.prorata.refundForItem": "Reembolso prorrateado por",
62418
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62072
62419
  "subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
62073
62420
  "subscriptions.correction": "Ajuste del periodo anterior",
62074
62421
  "subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
@@ -62093,9 +62440,11 @@ var fr = {
62093
62440
  "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62094
62441
  "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62095
62442
  "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62443
+ "accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
62096
62444
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62097
62445
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62098
62446
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
62447
+ "accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
62099
62448
  "accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
62100
62449
  "accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
62101
62450
  "creditNotes.refundChargeName": "Remboursement pour facture",
@@ -62108,7 +62457,9 @@ var fr = {
62108
62457
  "invoices.outstandingProduct.descriptionPeriod": "Montant impay\xE9 de la facture{{invoiceNumber}} du {{periodStart}} au {{periodEnd}}",
62109
62458
  "invoices.outstandingProduct.name": "Solde impay\xE9",
62110
62459
  "invoices.prorata.paymentForItem": "Paiement au prorata pour",
62460
+ "invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
62111
62461
  "invoices.prorata.refundForItem": "Remboursement au prorata pour",
62462
+ "invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
62112
62463
  "subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
62113
62464
  "subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
62114
62465
  "subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
@@ -62132,10 +62483,12 @@ var fr = {
62132
62483
  var it = {
62133
62484
  "accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
62134
62485
  "accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
62486
+ "accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
62135
62487
  "accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
62136
62488
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62137
62489
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62138
62490
  "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62491
+ "accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
62139
62492
  "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62140
62493
  "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
62141
62494
  "creditNotes.refundChargeName": "Rimborso per fattura",
@@ -62148,7 +62501,9 @@ var it = {
62148
62501
  "invoices.outstandingProduct.descriptionPeriod": "Importo insoluto della fattura{{invoiceNumber}} dal {{periodStart}} al {{periodEnd}}",
62149
62502
  "invoices.outstandingProduct.name": "Saldo insoluto",
62150
62503
  "invoices.prorata.paymentForItem": "Pagamento proporzionale per",
62504
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
62151
62505
  "invoices.prorata.refundForItem": "Rimborso proporzionale per",
62506
+ "invoices.prorata.refundForItemFullPeriod": "Rimborso per",
62152
62507
  "subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
62153
62508
  "subscriptions.correction": "Correzione periodo precedente",
62154
62509
  "subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
@@ -62172,10 +62527,12 @@ var it = {
62172
62527
  var nl = {
62173
62528
  "accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
62174
62529
  "accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
62530
+ "accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
62175
62531
  "accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
62176
62532
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62177
62533
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62178
62534
  "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62535
+ "accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
62179
62536
  "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62180
62537
  "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
62181
62538
  "creditNotes.refundChargeName": "Terugbetaling voor factuur",
@@ -62188,7 +62545,9 @@ var nl = {
62188
62545
  "invoices.outstandingProduct.descriptionPeriod": "Onbetaald bedrag van de factuur{{invoiceNumber}} van {{periodStart}} tot {{periodEnd}}",
62189
62546
  "invoices.outstandingProduct.name": "Openstaand saldo",
62190
62547
  "invoices.prorata.paymentForItem": "Gedeeltelijke betaling voor",
62548
+ "invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
62191
62549
  "invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
62550
+ "invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
62192
62551
  "subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
62193
62552
  "subscriptions.correction": "Aanpassing vorige periode",
62194
62553
  "subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
@@ -62212,10 +62571,12 @@ var nl = {
62212
62571
  var pl = {
62213
62572
  "accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
62214
62573
  "accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
62574
+ "accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
62215
62575
  "accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
62216
62576
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62217
62577
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62218
62578
  "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62579
+ "accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
62219
62580
  "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62220
62581
  "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
62221
62582
  "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
@@ -62228,7 +62589,9 @@ var pl = {
62228
62589
  "invoices.outstandingProduct.descriptionPeriod": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} od {{periodStart}} do {{periodEnd}}",
62229
62590
  "invoices.outstandingProduct.name": "Niezap\u0142acone saldo",
62230
62591
  "invoices.prorata.paymentForItem": "P\u0142atno\u015B\u0107 proporcjonalna za",
62592
+ "invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
62231
62593
  "invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
62594
+ "invoices.prorata.refundForItemFullPeriod": "Zwrot za",
62232
62595
  "subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
62233
62596
  "subscriptions.correction": "Korekta poprzedniego okresu",
62234
62597
  "subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
@@ -62252,10 +62615,12 @@ var pl = {
62252
62615
  var pt = {
62253
62616
  "accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
62254
62617
  "accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
62618
+ "accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
62255
62619
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
62256
62620
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62257
62621
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62258
62622
  "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62623
+ "accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
62259
62624
  "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62260
62625
  "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
62261
62626
  "creditNotes.refundChargeName": "Reembolso pela fatura",
@@ -62268,7 +62633,9 @@ var pt = {
62268
62633
  "invoices.outstandingProduct.descriptionPeriod": "Valor em aberto da fatura{{invoiceNumber}} de {{periodStart}} a {{periodEnd}}",
62269
62634
  "invoices.outstandingProduct.name": "Saldo em aberto",
62270
62635
  "invoices.prorata.paymentForItem": "Pagamento proporcional por",
62636
+ "invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
62271
62637
  "invoices.prorata.refundForItem": "Reembolso proporcional por",
62638
+ "invoices.prorata.refundForItemFullPeriod": "Reembolso por",
62272
62639
  "subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
62273
62640
  "subscriptions.correction": "Ajuste do per\xEDodo anterior",
62274
62641
  "subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
@@ -62390,10 +62757,16 @@ function buildHttpClient(dependencies) {
62390
62757
  return response;
62391
62758
  }, (error48) => {
62392
62759
  if (error48.response) {
62393
- const { config: responseConfig, status } = error48.response;
62760
+ const { config: responseConfig, status, headers } = error48.response;
62394
62761
  const timeStart = responseConfig.metadata.timeStart;
62395
62762
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
62396
- logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error48.message } });
62763
+ logHttpResponse(logger2, {
62764
+ request: toLogRequest(responseConfig),
62765
+ statusCode: status,
62766
+ // Surfaces upstream response headers on error responses (e.g. the
62767
+ // rate-limit headers on a 429); redacted in logHttpResponse.
62768
+ responseHeaders: headers
62769
+ }, responseTime, { metadata: { error: error48.message } });
62397
62770
  }
62398
62771
  return Promise.reject(error48);
62399
62772
  });
@@ -62486,6 +62859,9 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
62486
62859
 
62487
62860
  // ../hyperline-mcp/build/server/server.js
62488
62861
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
62862
+ var defaultToolOutputSchema = {
62863
+ result: external_exports.unknown()
62864
+ };
62489
62865
 
62490
62866
  // ../hyperline-mcp/build/session/sessionKey.js
62491
62867
  import { createHmac } from "node:crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.a90f6ae",
3
+ "version": "0.1.0-build.1.a972870",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",