@hyperline/cli 0.1.0-build.1.31c302c → 0.1.0-build.1.330259e
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.
- package/dist/bin/hyperline-main.js +184 -13
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
@@ -39620,6 +39645,7 @@ Export name.
|
|
|
39620
39645
|
- \`draft_invoices\`: Export all draft invoices, with customer and product information.
|
|
39621
39646
|
- \`open_invoices\`: Export all open invoices, with customer and product information.
|
|
39622
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).
|
|
39623
39649
|
`).requiredOption("--file-type <value>", `
|
|
39624
39650
|
Export file type.
|
|
39625
39651
|
|
|
@@ -40197,7 +40223,7 @@ Examples:
|
|
|
40197
40223
|
- \`archived\`: A previous version of an invoice.
|
|
40198
40224
|
- \`charged_on_parent\`: Invoice is charged on the parent customer.
|
|
40199
40225
|
- \`pending_parent_concat\`: Invoice is pending invoices concatenation on the parent customer to be grouped.
|
|
40200
|
-
- \`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.
|
|
40201
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.
|
|
40202
40228
|
|
|
40203
40229
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
@@ -40439,7 +40465,7 @@ Examples:
|
|
|
40439
40465
|
queryParamKeys: []
|
|
40440
40466
|
});
|
|
40441
40467
|
});
|
|
40442
|
-
resource.command("update").description(`Update
|
|
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.
|
|
40443
40469
|
|
|
40444
40470
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
40445
40471
|
- \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
|
|
@@ -41252,7 +41278,12 @@ Examples:
|
|
|
41252
41278
|
]
|
|
41253
41279
|
});
|
|
41254
41280
|
});
|
|
41255
|
-
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("--
|
|
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", `
|
|
41256
41287
|
Examples:
|
|
41257
41288
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
41258
41289
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -41287,6 +41318,8 @@ Examples:
|
|
|
41287
41318
|
args.unit_name = opts.unitName;
|
|
41288
41319
|
if (opts.creditAggregators !== void 0)
|
|
41289
41320
|
args.credit_aggregators = opts.creditAggregators;
|
|
41321
|
+
if (opts.creditsGrantMode !== void 0)
|
|
41322
|
+
args.credits_grant_mode = opts.creditsGrantMode;
|
|
41290
41323
|
if (opts.displayMode !== void 0)
|
|
41291
41324
|
args.display_mode = opts.displayMode;
|
|
41292
41325
|
if (opts.bundleItems !== void 0)
|
|
@@ -41412,7 +41445,7 @@ Examples:
|
|
|
41412
41445
|
// build/commands/generated/quotes.js
|
|
41413
41446
|
function registerQuotesCommands(parent) {
|
|
41414
41447
|
const resource = parent.command("quotes").description("Manage quotes");
|
|
41415
|
-
resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices.`).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>", `
|
|
41416
41449
|
Quote status.
|
|
41417
41450
|
|
|
41418
41451
|
- \`draft\`: The quote is a draft.
|
|
@@ -41708,7 +41741,7 @@ Examples:
|
|
|
41708
41741
|
queryParamKeys: []
|
|
41709
41742
|
});
|
|
41710
41743
|
});
|
|
41711
|
-
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice.`).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.
|
|
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.
|
|
41712
41745
|
|
|
41713
41746
|
- \`all\`: Display all pricing tiers.
|
|
41714
41747
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -41939,10 +41972,132 @@ Examples:
|
|
|
41939
41972
|
});
|
|
41940
41973
|
}
|
|
41941
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
|
+
|
|
41942
42097
|
// build/commands/generated/subscriptions.js
|
|
41943
42098
|
function registerSubscriptionsCommands(parent) {
|
|
41944
42099
|
const resource = parent.command("subscriptions").description("Manage subscriptions");
|
|
41945
|
-
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
42100
|
+
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
41946
42101
|
Examples:
|
|
41947
42102
|
hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
|
|
41948
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>
|
|
@@ -41965,6 +42120,8 @@ Examples:
|
|
|
41965
42120
|
args.charge_at = opts.chargeAt;
|
|
41966
42121
|
if (opts.calculationMethod !== void 0)
|
|
41967
42122
|
args.calculation_method = opts.calculationMethod;
|
|
42123
|
+
if (opts.precision !== void 0)
|
|
42124
|
+
args.precision = opts.precision;
|
|
41968
42125
|
if (opts.refundMethod !== void 0)
|
|
41969
42126
|
args.refund_method = opts.refundMethod;
|
|
41970
42127
|
if (opts.type !== void 0)
|
|
@@ -41978,7 +42135,7 @@ Examples:
|
|
|
41978
42135
|
queryParamKeys: []
|
|
41979
42136
|
});
|
|
41980
42137
|
});
|
|
41981
|
-
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42138
|
+
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
41982
42139
|
Examples:
|
|
41983
42140
|
hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
41984
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>
|
|
@@ -42001,6 +42158,8 @@ Examples:
|
|
|
42001
42158
|
args.charge_at = opts.chargeAt;
|
|
42002
42159
|
if (opts.calculationMethod !== void 0)
|
|
42003
42160
|
args.calculation_method = opts.calculationMethod;
|
|
42161
|
+
if (opts.precision !== void 0)
|
|
42162
|
+
args.precision = opts.precision;
|
|
42004
42163
|
if (opts.refundMethod !== void 0)
|
|
42005
42164
|
args.refund_method = opts.refundMethod;
|
|
42006
42165
|
if (opts.updates !== void 0)
|
|
@@ -42140,7 +42299,7 @@ Examples:
|
|
|
42140
42299
|
queryParamKeys: []
|
|
42141
42300
|
});
|
|
42142
42301
|
});
|
|
42143
|
-
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42302
|
+
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42144
42303
|
Examples:
|
|
42145
42304
|
hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
42146
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>
|
|
@@ -42163,6 +42322,8 @@ Examples:
|
|
|
42163
42322
|
args.charge_at = opts.chargeAt;
|
|
42164
42323
|
if (opts.calculationMethod !== void 0)
|
|
42165
42324
|
args.calculation_method = opts.calculationMethod;
|
|
42325
|
+
if (opts.precision !== void 0)
|
|
42326
|
+
args.precision = opts.precision;
|
|
42166
42327
|
if (opts.refundMethod !== void 0)
|
|
42167
42328
|
args.refund_method = opts.refundMethod;
|
|
42168
42329
|
if (opts.updates !== void 0)
|
|
@@ -43540,6 +43701,7 @@ function registerAllCommands(program2) {
|
|
|
43540
43701
|
registerProductsCommands(program2);
|
|
43541
43702
|
registerPrice_ConfigurationsCommands(program2);
|
|
43542
43703
|
registerQuotesCommands(program2);
|
|
43704
|
+
registerQuotes_TemplatesCommands(program2);
|
|
43543
43705
|
registerSubscriptions_TemplatesCommands(program2);
|
|
43544
43706
|
registerSubscriptionsCommands(program2);
|
|
43545
43707
|
registerSubscriptions_TransitionsCommands(program2);
|
|
@@ -61801,13 +61963,16 @@ function logHttpRequest(logger2, request, extra) {
|
|
|
61801
61963
|
});
|
|
61802
61964
|
}
|
|
61803
61965
|
function logHttpResponse(logger2, response, responseTime, extra) {
|
|
61804
|
-
const { request, statusCode, responseBody } = response;
|
|
61966
|
+
const { request, statusCode, responseBody, responseHeaders } = response;
|
|
61805
61967
|
const { message, metadata } = transform2(request);
|
|
61806
61968
|
const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
|
|
61807
61969
|
const responseMetadata = {
|
|
61808
61970
|
statusCode,
|
|
61809
61971
|
responseTime,
|
|
61810
|
-
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 })
|
|
61811
61976
|
};
|
|
61812
61977
|
logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
|
|
61813
61978
|
...metadata,
|
|
@@ -62592,10 +62757,16 @@ function buildHttpClient(dependencies) {
|
|
|
62592
62757
|
return response;
|
|
62593
62758
|
}, (error48) => {
|
|
62594
62759
|
if (error48.response) {
|
|
62595
|
-
const { config: responseConfig, status } = error48.response;
|
|
62760
|
+
const { config: responseConfig, status, headers } = error48.response;
|
|
62596
62761
|
const timeStart = responseConfig.metadata.timeStart;
|
|
62597
62762
|
const responseTime = timeStart ? Date.now() - timeStart : void 0;
|
|
62598
|
-
logHttpResponse(logger2, {
|
|
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 } });
|
|
62599
62770
|
}
|
|
62600
62771
|
return Promise.reject(error48);
|
|
62601
62772
|
});
|