@hyperline/cli 0.1.0-build.1.8b45ff8 → 0.1.0-build.1.8cee406
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 +345 -30
- package/package.json +2 -2
|
@@ -34894,10 +34894,10 @@ var require_shared = __commonJS({
|
|
|
34894
34894
|
ZodId: () => ZodId,
|
|
34895
34895
|
ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
|
|
34896
34896
|
});
|
|
34897
|
-
var
|
|
34897
|
+
var import_zod20 = require_lib();
|
|
34898
34898
|
var countryIds2 = ["all", ...countries.map(({ id }) => id)];
|
|
34899
|
-
var ZodId =
|
|
34900
|
-
var ZodTranslationsSchemaFn = (schema) =>
|
|
34899
|
+
var ZodId = import_zod20.z.enum(countryIds2);
|
|
34900
|
+
var ZodTranslationsSchemaFn = (schema) => import_zod20.z.record(import_zod20.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
|
|
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
|
|
@@ -38344,10 +38369,10 @@ Examples:
|
|
|
38344
38369
|
queryParamKeys: []
|
|
38345
38370
|
});
|
|
38346
38371
|
});
|
|
38347
|
-
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (string, number, boolean, date, select), and optional default value.`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38372
|
+
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (string, number, boolean, date, select), and optional default value.`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38348
38373
|
Examples:
|
|
38349
38374
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities>
|
|
38350
|
-
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --
|
|
38375
|
+
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
38351
38376
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --output json`).action(async (opts) => {
|
|
38352
38377
|
const ctx = resource.parent?.opts()._ctx;
|
|
38353
38378
|
if (!ctx) {
|
|
@@ -38367,6 +38392,8 @@ Examples:
|
|
|
38367
38392
|
args.authorized_values = opts.authorizedValues;
|
|
38368
38393
|
if (opts.apiOnly !== void 0)
|
|
38369
38394
|
args.api_only = true;
|
|
38395
|
+
if (opts.required !== void 0)
|
|
38396
|
+
args.required = true;
|
|
38370
38397
|
await ctx.execute({
|
|
38371
38398
|
method: "POST",
|
|
38372
38399
|
path: "/v1/custom-properties",
|
|
@@ -38374,10 +38401,10 @@ Examples:
|
|
|
38374
38401
|
queryParamKeys: []
|
|
38375
38402
|
});
|
|
38376
38403
|
});
|
|
38377
|
-
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38404
|
+
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38378
38405
|
Examples:
|
|
38379
38406
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities>
|
|
38380
|
-
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --
|
|
38407
|
+
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
38381
38408
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --output json`).action(async (opts) => {
|
|
38382
38409
|
const ctx = resource.parent?.opts()._ctx;
|
|
38383
38410
|
if (!ctx) {
|
|
@@ -38399,6 +38426,8 @@ Examples:
|
|
|
38399
38426
|
args.authorized_values = opts.authorizedValues;
|
|
38400
38427
|
if (opts.apiOnly !== void 0)
|
|
38401
38428
|
args.api_only = true;
|
|
38429
|
+
if (opts.required !== void 0)
|
|
38430
|
+
args.required = true;
|
|
38402
38431
|
await ctx.execute({
|
|
38403
38432
|
method: "PUT",
|
|
38404
38433
|
path: "/v1/custom-properties/{id}",
|
|
@@ -38756,13 +38785,13 @@ Customer type.
|
|
|
38756
38785
|
|
|
38757
38786
|
- \`taxable\`: Taxes are automatically determined for the customer.
|
|
38758
38787
|
- \`exempt\`: The customer is exempt from tax.
|
|
38759
|
-
`).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>", `
|
|
38788
|
+
`).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("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).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>", `
|
|
38760
38789
|
How customer invoices are issued from the parent organisation.
|
|
38761
38790
|
|
|
38762
38791
|
- \`none\`: Invoices will keep being issued from this customer.
|
|
38763
38792
|
- \`every_invoice\`: Customer invoices will be issued from the organisation individually.
|
|
38764
38793
|
- \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
|
|
38765
|
-
`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
|
|
38794
|
+
`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
|
|
38766
38795
|
Examples:
|
|
38767
38796
|
hyperline customers create-customer
|
|
38768
38797
|
hyperline customers create-customer --name <name> --type <type>
|
|
@@ -38787,6 +38816,8 @@ Examples:
|
|
|
38787
38816
|
args.registration_number = opts.registrationNumber;
|
|
38788
38817
|
if (opts.externalId !== void 0)
|
|
38789
38818
|
args.external_id = opts.externalId;
|
|
38819
|
+
if (opts.domain !== void 0)
|
|
38820
|
+
args.domain = opts.domain;
|
|
38790
38821
|
if (opts.invoicingEntityId !== void 0)
|
|
38791
38822
|
args.invoicing_entity_id = opts.invoicingEntityId;
|
|
38792
38823
|
if (opts.billingAddress !== void 0)
|
|
@@ -38819,6 +38850,10 @@ Examples:
|
|
|
38819
38850
|
args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
|
|
38820
38851
|
if (opts.priceBookId !== void 0)
|
|
38821
38852
|
args.price_book_id = opts.priceBookId;
|
|
38853
|
+
if (opts.ownerId !== void 0)
|
|
38854
|
+
args.owner_id = opts.ownerId;
|
|
38855
|
+
if (opts.followerIds !== void 0)
|
|
38856
|
+
args.follower_ids = opts.followerIds;
|
|
38822
38857
|
if (opts.taxRateCustom !== void 0)
|
|
38823
38858
|
args.tax_rate_custom = Number(opts.taxRateCustom);
|
|
38824
38859
|
if (opts.customPaymentDelay !== void 0)
|
|
@@ -38881,13 +38916,13 @@ Customer type.
|
|
|
38881
38916
|
|
|
38882
38917
|
- \`taxable\`: Taxes are automatically determined for the customer.
|
|
38883
38918
|
- \`exempt\`: The customer is exempt from tax.
|
|
38884
|
-
`).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>", `
|
|
38919
|
+
`).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("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).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>", `
|
|
38885
38920
|
How customer invoices are issued from the parent organisation.
|
|
38886
38921
|
|
|
38887
38922
|
- \`none\`: Invoices will keep being issued from this customer.
|
|
38888
38923
|
- \`every_invoice\`: Customer invoices will be issued from the organisation individually.
|
|
38889
38924
|
- \`concat\`: Customer invoices will be grouped into a global parent invoice at a regular schedule (configured on the organisation).
|
|
38890
|
-
`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).addHelpText("after", `
|
|
38925
|
+
`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--invoice-reminders-enabled <value>", `Indicates if invoice reminders are enabled for the customer.`).option("--price-book-id <value>", `Default price book ID assigned to the customer.`).option("--owner-id <value>", `ID of the Hyperline user responsible for this customer and targeted by customer agent notifications.`).option("--follower-ids <value>", `IDs of Hyperline users following this customer.`).addHelpText("after", `
|
|
38891
38926
|
Examples:
|
|
38892
38927
|
hyperline customers update --id <id>
|
|
38893
38928
|
hyperline customers update --id <id> --name <name> --type <type>
|
|
@@ -38914,6 +38949,8 @@ Examples:
|
|
|
38914
38949
|
args.registration_number = opts.registrationNumber;
|
|
38915
38950
|
if (opts.externalId !== void 0)
|
|
38916
38951
|
args.external_id = opts.externalId;
|
|
38952
|
+
if (opts.domain !== void 0)
|
|
38953
|
+
args.domain = opts.domain;
|
|
38917
38954
|
if (opts.invoicingEntityId !== void 0)
|
|
38918
38955
|
args.invoicing_entity_id = opts.invoicingEntityId;
|
|
38919
38956
|
if (opts.billingAddress !== void 0)
|
|
@@ -38948,6 +38985,10 @@ Examples:
|
|
|
38948
38985
|
args.invoice_reminders_enabled = opts.invoiceRemindersEnabled;
|
|
38949
38986
|
if (opts.priceBookId !== void 0)
|
|
38950
38987
|
args.price_book_id = opts.priceBookId;
|
|
38988
|
+
if (opts.ownerId !== void 0)
|
|
38989
|
+
args.owner_id = opts.ownerId;
|
|
38990
|
+
if (opts.followerIds !== void 0)
|
|
38991
|
+
args.follower_ids = opts.followerIds;
|
|
38951
38992
|
if (opts.taxRateCustom !== void 0)
|
|
38952
38993
|
args.tax_rate_custom = Number(opts.taxRateCustom);
|
|
38953
38994
|
if (opts.customPaymentDelay !== void 0)
|
|
@@ -39079,6 +39120,38 @@ Examples:
|
|
|
39079
39120
|
queryParamKeys: []
|
|
39080
39121
|
});
|
|
39081
39122
|
});
|
|
39123
|
+
resource.command("get-customer-arr-history").description(`List every subscription-level ARR evolution for a customer, including previous and current fixed, variable, and total annual values in each subscription currency. Results are latest-first and 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("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
|
|
39124
|
+
Examples:
|
|
39125
|
+
hyperline customers get-customer-arr-history --id <id>
|
|
39126
|
+
hyperline customers get-customer-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
39127
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39128
|
+
if (!ctx) {
|
|
39129
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39130
|
+
process.exit(1);
|
|
39131
|
+
}
|
|
39132
|
+
const args = {};
|
|
39133
|
+
if (opts.id !== void 0)
|
|
39134
|
+
args.id = opts.id;
|
|
39135
|
+
if (opts.cursor !== void 0)
|
|
39136
|
+
args.cursor = opts.cursor;
|
|
39137
|
+
if (opts["occurredAt.gte"] !== void 0)
|
|
39138
|
+
args.occurred_at__gte = opts["occurredAt.gte"];
|
|
39139
|
+
if (opts["occurredAt.lte"] !== void 0)
|
|
39140
|
+
args.occurred_at__lte = opts["occurredAt.lte"];
|
|
39141
|
+
if (opts.limit !== void 0)
|
|
39142
|
+
args.limit = Number(opts.limit);
|
|
39143
|
+
await ctx.execute({
|
|
39144
|
+
method: "GET",
|
|
39145
|
+
path: "/v1/customers/{id}/arr-history",
|
|
39146
|
+
args,
|
|
39147
|
+
queryParamKeys: [
|
|
39148
|
+
"limit",
|
|
39149
|
+
"cursor",
|
|
39150
|
+
"occurred_at__gte",
|
|
39151
|
+
"occurred_at__lte"
|
|
39152
|
+
]
|
|
39153
|
+
});
|
|
39154
|
+
});
|
|
39082
39155
|
resource.command("get-customer-valuation").description(`Compute aggregated valuation metrics for a customer across all active subscriptions, grouped by currency. Returns contract value, recurring contract value, and ARR for each subscription and aggregated totals. Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
|
|
39083
39156
|
Examples:
|
|
39084
39157
|
hyperline customers get-customer-valuation --id <id>
|
|
@@ -39612,6 +39685,7 @@ Export name.
|
|
|
39612
39685
|
- \`draft_invoices\`: Export all draft invoices, with customer and product information.
|
|
39613
39686
|
- \`open_invoices\`: Export all open invoices, with customer and product information.
|
|
39614
39687
|
- \`live_subscriptions\`: List of all active subscriptions line by line.
|
|
39688
|
+
- \`credit_balances\`: Monthly credit balance roll-forward per customer and credit type (opening, top-ups, consumption, expiry, closing).
|
|
39615
39689
|
`).requiredOption("--file-type <value>", `
|
|
39616
39690
|
Export file type.
|
|
39617
39691
|
|
|
@@ -40189,7 +40263,7 @@ Examples:
|
|
|
40189
40263
|
- \`archived\`: A previous version of an invoice.
|
|
40190
40264
|
- \`charged_on_parent\`: Invoice is charged on the parent customer.
|
|
40191
40265
|
- \`pending_parent_concat\`: Invoice is pending invoices concatenation on the parent customer to be grouped.
|
|
40192
|
-
- \`uncollectible\`: Invoice is uncollectible (bad debt).
|
|
40266
|
+
- \`uncollectible\`: Invoice is uncollectible (bad debt). Only metadata (properties, custom_note, custom_properties) can be updated in this status.
|
|
40193
40267
|
`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the invoice.`).option("--number <value>", `Invoice number. If specified, the invoice will be considered as imported from an external source and the number will not be generated by Hyperline. You are responsible for avoiding duplicates and ensuring it does not impact the numbering sequence in Hyperline.`).option("--type <value>", `Type of the invoice.
|
|
40194
40268
|
|
|
40195
40269
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
@@ -40431,7 +40505,7 @@ Examples:
|
|
|
40431
40505
|
queryParamKeys: []
|
|
40432
40506
|
});
|
|
40433
40507
|
});
|
|
40434
|
-
resource.command("update").description(`Update
|
|
40508
|
+
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/purchase_order; uncollectible: properties/custom_note/custom_properties).`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Type of the invoice.
|
|
40435
40509
|
|
|
40436
40510
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
40437
40511
|
- \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
|
|
@@ -40603,7 +40677,7 @@ Examples:
|
|
|
40603
40677
|
queryParamKeys: []
|
|
40604
40678
|
});
|
|
40605
40679
|
});
|
|
40606
|
-
resource.command("delete-invoice-transaction").description(`Delete a scheduled transaction from an invoice
|
|
40680
|
+
resource.command("delete-invoice-transaction").description(`Delete a scheduled transaction or wallet debit from an invoice.`).requiredOption("--id <value>", `id parameter`).requiredOption("--transaction-id <value>", `transactionId parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40607
40681
|
Examples:
|
|
40608
40682
|
hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId>
|
|
40609
40683
|
hyperline invoices-transactions delete-invoice-transaction --id <id> --transaction-id <transactionId> --output json`).action(async (opts) => {
|
|
@@ -41244,7 +41318,12 @@ Examples:
|
|
|
41244
41318
|
]
|
|
41245
41319
|
});
|
|
41246
41320
|
});
|
|
41247
|
-
resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--
|
|
41321
|
+
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>", `
|
|
41322
|
+
How the periodic credit allowance is granted for partial billing periods.
|
|
41323
|
+
|
|
41324
|
+
- \`prorated\` (default): the granted credits are prorated to the elapsed period.
|
|
41325
|
+
- \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
|
|
41326
|
+
`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
|
|
41248
41327
|
Examples:
|
|
41249
41328
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
41250
41329
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -41279,6 +41358,8 @@ Examples:
|
|
|
41279
41358
|
args.unit_name = opts.unitName;
|
|
41280
41359
|
if (opts.creditAggregators !== void 0)
|
|
41281
41360
|
args.credit_aggregators = opts.creditAggregators;
|
|
41361
|
+
if (opts.creditsGrantMode !== void 0)
|
|
41362
|
+
args.credits_grant_mode = opts.creditsGrantMode;
|
|
41282
41363
|
if (opts.displayMode !== void 0)
|
|
41283
41364
|
args.display_mode = opts.displayMode;
|
|
41284
41365
|
if (opts.bundleItems !== void 0)
|
|
@@ -41380,6 +41461,32 @@ Examples:
|
|
|
41380
41461
|
queryParamKeys: []
|
|
41381
41462
|
});
|
|
41382
41463
|
});
|
|
41464
|
+
resource.command("delete").description(`Permanently delete an archived product by ID. Products attached to subscriptions, plans, or templates cannot be deleted.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
41465
|
+
Examples:
|
|
41466
|
+
hyperline products delete --id <id>
|
|
41467
|
+
hyperline products delete --id <id> --output json`).action(async (opts) => {
|
|
41468
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
41469
|
+
if (!ctx) {
|
|
41470
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
41471
|
+
process.exit(1);
|
|
41472
|
+
}
|
|
41473
|
+
const args = {};
|
|
41474
|
+
if (opts.id !== void 0)
|
|
41475
|
+
args.id = opts.id;
|
|
41476
|
+
if (!opts.yes) {
|
|
41477
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
41478
|
+
if (!confirmed) {
|
|
41479
|
+
process.stdout.write("Aborted.\n");
|
|
41480
|
+
return;
|
|
41481
|
+
}
|
|
41482
|
+
}
|
|
41483
|
+
await ctx.execute({
|
|
41484
|
+
method: "DELETE",
|
|
41485
|
+
path: "/v1/products/{id}",
|
|
41486
|
+
args,
|
|
41487
|
+
queryParamKeys: []
|
|
41488
|
+
});
|
|
41489
|
+
});
|
|
41383
41490
|
resource.command("unarchive").description(`Restore a previously archived product, making it available for new subscriptions again.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
41384
41491
|
Examples:
|
|
41385
41492
|
hyperline products unarchive --id <id>
|
|
@@ -41404,13 +41511,13 @@ Examples:
|
|
|
41404
41511
|
// build/commands/generated/quotes.js
|
|
41405
41512
|
function registerQuotesCommands(parent) {
|
|
41406
41513
|
const resource = parent.command("quotes").description("Manage quotes");
|
|
41407
|
-
resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices.`).option("--status <value>", `
|
|
41514
|
+
resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices. When creating from a quote template, do not combine \`template_id\` with subscription overrides for dates, contract terms, products, phases, coupons, discounts, prices, or seats in this call: first create the quote from \`template_id\` so template terms and contract documents are copied, then call \`update_quote\` with the subscription payload.`).option("--status <value>", `
|
|
41408
41515
|
Quote status.
|
|
41409
41516
|
|
|
41410
41517
|
- \`draft\`: The quote is a draft.
|
|
41411
41518
|
- \`approved\`: The quote is approved and ready to be sent to the customer.
|
|
41412
41519
|
- \`pending_signature\`: The quote is awaiting the customer's signature.
|
|
41413
|
-
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
41520
|
+
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
41414
41521
|
|
|
41415
41522
|
- \`all\`: Display all pricing tiers.
|
|
41416
41523
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -41442,6 +41549,8 @@ Examples:
|
|
|
41442
41549
|
args.collect_payment_details = opts.collectPaymentDetails;
|
|
41443
41550
|
if (opts.collectCustomPropertyIds !== void 0)
|
|
41444
41551
|
args.collect_custom_property_ids = opts.collectCustomPropertyIds;
|
|
41552
|
+
if (opts.contractClauseIds !== void 0)
|
|
41553
|
+
args.contract_clause_ids = opts.contractClauseIds;
|
|
41445
41554
|
if (opts.requireTaxId !== void 0)
|
|
41446
41555
|
args.require_tax_id = opts.requireTaxId;
|
|
41447
41556
|
if (opts.displayQuoteValue !== void 0)
|
|
@@ -41698,12 +41807,12 @@ Examples:
|
|
|
41698
41807
|
queryParamKeys: []
|
|
41699
41808
|
});
|
|
41700
41809
|
});
|
|
41701
|
-
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
41810
|
+
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <value>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
41702
41811
|
|
|
41703
41812
|
- \`all\`: Display all pricing tiers.
|
|
41704
41813
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
41705
41814
|
- \`none\`: Hide all pricing tiers.
|
|
41706
|
-
`).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", `
|
|
41815
|
+
`).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("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).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", `
|
|
41707
41816
|
Examples:
|
|
41708
41817
|
hyperline quotes update --id <id>
|
|
41709
41818
|
hyperline quotes update --id <id> --owner-email <owner_email> --comments <comments>
|
|
@@ -41726,6 +41835,8 @@ Examples:
|
|
|
41726
41835
|
args.collect_payment_details = opts.collectPaymentDetails;
|
|
41727
41836
|
if (opts.collectCustomPropertyIds !== void 0)
|
|
41728
41837
|
args.collect_custom_property_ids = opts.collectCustomPropertyIds;
|
|
41838
|
+
if (opts.contractClauseIds !== void 0)
|
|
41839
|
+
args.contract_clause_ids = opts.contractClauseIds;
|
|
41729
41840
|
if (opts.requireTaxId !== void 0)
|
|
41730
41841
|
args.require_tax_id = opts.requireTaxId;
|
|
41731
41842
|
if (opts.displayQuoteValue !== void 0)
|
|
@@ -41746,6 +41857,8 @@ Examples:
|
|
|
41746
41857
|
args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
|
|
41747
41858
|
if (opts.generateDraftInvoices !== void 0)
|
|
41748
41859
|
args.generate_draft_invoices = opts.generateDraftInvoices;
|
|
41860
|
+
if (opts.crmOpportunityId !== void 0)
|
|
41861
|
+
args.crm_opportunity_id = opts.crmOpportunityId;
|
|
41749
41862
|
if (opts.expiresAt !== void 0)
|
|
41750
41863
|
args.expires_at = opts.expiresAt;
|
|
41751
41864
|
if (opts.subscription !== void 0)
|
|
@@ -41927,10 +42040,132 @@ Examples:
|
|
|
41927
42040
|
});
|
|
41928
42041
|
}
|
|
41929
42042
|
|
|
42043
|
+
// build/commands/generated/quotes-templates.js
|
|
42044
|
+
function registerQuotes_TemplatesCommands(parent) {
|
|
42045
|
+
const resource = parent.command("quotes-templates").description("Manage quotes > templates");
|
|
42046
|
+
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", `
|
|
42047
|
+
Examples:
|
|
42048
|
+
hyperline quotes-templates list-quote-templates
|
|
42049
|
+
hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
|
|
42050
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42051
|
+
if (!ctx) {
|
|
42052
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42053
|
+
process.exit(1);
|
|
42054
|
+
}
|
|
42055
|
+
const args = {};
|
|
42056
|
+
if (opts.id !== void 0)
|
|
42057
|
+
args.id = opts.id;
|
|
42058
|
+
if (opts["id.not"] !== void 0)
|
|
42059
|
+
args.id__not = opts["id.not"];
|
|
42060
|
+
if (opts["id.isNull"] !== void 0)
|
|
42061
|
+
args.id__isNull = opts["id.isNull"];
|
|
42062
|
+
if (opts["id.isNotNull"] !== void 0)
|
|
42063
|
+
args.id__isNotNull = opts["id.isNotNull"];
|
|
42064
|
+
if (opts["id.equals"] !== void 0)
|
|
42065
|
+
args.id__equals = opts["id.equals"];
|
|
42066
|
+
if (opts["id.contains"] !== void 0)
|
|
42067
|
+
args.id__contains = opts["id.contains"];
|
|
42068
|
+
if (opts["id.startsWith"] !== void 0)
|
|
42069
|
+
args.id__startsWith = opts["id.startsWith"];
|
|
42070
|
+
if (opts["id.endWith"] !== void 0)
|
|
42071
|
+
args.id__endWith = opts["id.endWith"];
|
|
42072
|
+
if (opts.name !== void 0)
|
|
42073
|
+
args.name = opts.name;
|
|
42074
|
+
if (opts["name.not"] !== void 0)
|
|
42075
|
+
args.name__not = opts["name.not"];
|
|
42076
|
+
if (opts["name.isNull"] !== void 0)
|
|
42077
|
+
args.name__isNull = opts["name.isNull"];
|
|
42078
|
+
if (opts["name.isNotNull"] !== void 0)
|
|
42079
|
+
args.name__isNotNull = opts["name.isNotNull"];
|
|
42080
|
+
if (opts["name.equals"] !== void 0)
|
|
42081
|
+
args.name__equals = opts["name.equals"];
|
|
42082
|
+
if (opts["name.contains"] !== void 0)
|
|
42083
|
+
args.name__contains = opts["name.contains"];
|
|
42084
|
+
if (opts["name.startsWith"] !== void 0)
|
|
42085
|
+
args.name__startsWith = opts["name.startsWith"];
|
|
42086
|
+
if (opts["name.endWith"] !== void 0)
|
|
42087
|
+
args.name__endWith = opts["name.endWith"];
|
|
42088
|
+
if (opts.subscriptionTemplateId !== void 0)
|
|
42089
|
+
args.subscription_template_id = opts.subscriptionTemplateId;
|
|
42090
|
+
if (opts["subscriptionTemplateId.not"] !== void 0)
|
|
42091
|
+
args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
|
|
42092
|
+
if (opts["subscriptionTemplateId.isNull"] !== void 0)
|
|
42093
|
+
args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
|
|
42094
|
+
if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
|
|
42095
|
+
args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
|
|
42096
|
+
if (opts["subscriptionTemplateId.equals"] !== void 0)
|
|
42097
|
+
args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
|
|
42098
|
+
if (opts["subscriptionTemplateId.contains"] !== void 0)
|
|
42099
|
+
args.subscription_template_id__contains = opts["subscriptionTemplateId.contains"];
|
|
42100
|
+
if (opts["subscriptionTemplateId.startsWith"] !== void 0)
|
|
42101
|
+
args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
|
|
42102
|
+
if (opts["subscriptionTemplateId.endWith"] !== void 0)
|
|
42103
|
+
args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
|
|
42104
|
+
if (opts.search !== void 0)
|
|
42105
|
+
args.search = opts.search;
|
|
42106
|
+
if (opts.take !== void 0)
|
|
42107
|
+
args.take = Number(opts.take);
|
|
42108
|
+
if (opts.skip !== void 0)
|
|
42109
|
+
args.skip = Number(opts.skip);
|
|
42110
|
+
await ctx.execute({
|
|
42111
|
+
method: "GET",
|
|
42112
|
+
path: "/v1/quotes/templates",
|
|
42113
|
+
args,
|
|
42114
|
+
queryParamKeys: [
|
|
42115
|
+
"take",
|
|
42116
|
+
"skip",
|
|
42117
|
+
"id",
|
|
42118
|
+
"id__not",
|
|
42119
|
+
"id__isNull",
|
|
42120
|
+
"id__isNotNull",
|
|
42121
|
+
"id__equals",
|
|
42122
|
+
"id__contains",
|
|
42123
|
+
"id__startsWith",
|
|
42124
|
+
"id__endWith",
|
|
42125
|
+
"name",
|
|
42126
|
+
"name__not",
|
|
42127
|
+
"name__isNull",
|
|
42128
|
+
"name__isNotNull",
|
|
42129
|
+
"name__equals",
|
|
42130
|
+
"name__contains",
|
|
42131
|
+
"name__startsWith",
|
|
42132
|
+
"name__endWith",
|
|
42133
|
+
"subscription_template_id",
|
|
42134
|
+
"subscription_template_id__not",
|
|
42135
|
+
"subscription_template_id__isNull",
|
|
42136
|
+
"subscription_template_id__isNotNull",
|
|
42137
|
+
"subscription_template_id__equals",
|
|
42138
|
+
"subscription_template_id__contains",
|
|
42139
|
+
"subscription_template_id__startsWith",
|
|
42140
|
+
"subscription_template_id__endWith",
|
|
42141
|
+
"search"
|
|
42142
|
+
]
|
|
42143
|
+
});
|
|
42144
|
+
});
|
|
42145
|
+
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", `
|
|
42146
|
+
Examples:
|
|
42147
|
+
hyperline quotes-templates get-quote-template --id <id>`).action(async (opts) => {
|
|
42148
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42149
|
+
if (!ctx) {
|
|
42150
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42151
|
+
process.exit(1);
|
|
42152
|
+
}
|
|
42153
|
+
const args = {};
|
|
42154
|
+
if (opts.id !== void 0)
|
|
42155
|
+
args.id = opts.id;
|
|
42156
|
+
await ctx.execute({
|
|
42157
|
+
method: "GET",
|
|
42158
|
+
path: "/v1/quotes/templates/{id}",
|
|
42159
|
+
args,
|
|
42160
|
+
queryParamKeys: []
|
|
42161
|
+
});
|
|
42162
|
+
});
|
|
42163
|
+
}
|
|
42164
|
+
|
|
41930
42165
|
// build/commands/generated/subscriptions.js
|
|
41931
42166
|
function registerSubscriptionsCommands(parent) {
|
|
41932
42167
|
const resource = parent.command("subscriptions").description("Manage subscriptions");
|
|
41933
|
-
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
42168
|
+
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
41934
42169
|
Examples:
|
|
41935
42170
|
hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
|
|
41936
42171
|
hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -41953,6 +42188,8 @@ Examples:
|
|
|
41953
42188
|
args.charge_at = opts.chargeAt;
|
|
41954
42189
|
if (opts.calculationMethod !== void 0)
|
|
41955
42190
|
args.calculation_method = opts.calculationMethod;
|
|
42191
|
+
if (opts.precision !== void 0)
|
|
42192
|
+
args.precision = opts.precision;
|
|
41956
42193
|
if (opts.refundMethod !== void 0)
|
|
41957
42194
|
args.refund_method = opts.refundMethod;
|
|
41958
42195
|
if (opts.type !== void 0)
|
|
@@ -41966,7 +42203,7 @@ Examples:
|
|
|
41966
42203
|
queryParamKeys: []
|
|
41967
42204
|
});
|
|
41968
42205
|
});
|
|
41969
|
-
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42206
|
+
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
41970
42207
|
Examples:
|
|
41971
42208
|
hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
41972
42209
|
hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -41989,6 +42226,8 @@ Examples:
|
|
|
41989
42226
|
args.charge_at = opts.chargeAt;
|
|
41990
42227
|
if (opts.calculationMethod !== void 0)
|
|
41991
42228
|
args.calculation_method = opts.calculationMethod;
|
|
42229
|
+
if (opts.precision !== void 0)
|
|
42230
|
+
args.precision = opts.precision;
|
|
41992
42231
|
if (opts.refundMethod !== void 0)
|
|
41993
42232
|
args.refund_method = opts.refundMethod;
|
|
41994
42233
|
if (opts.updates !== void 0)
|
|
@@ -42047,7 +42286,7 @@ Examples:
|
|
|
42047
42286
|
queryParamKeys: []
|
|
42048
42287
|
});
|
|
42049
42288
|
});
|
|
42050
|
-
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42289
|
+
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. Must be a future date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42051
42290
|
Examples:
|
|
42052
42291
|
hyperline subscriptions pause --id <id>
|
|
42053
42292
|
hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
|
|
@@ -42128,7 +42367,7 @@ Examples:
|
|
|
42128
42367
|
queryParamKeys: []
|
|
42129
42368
|
});
|
|
42130
42369
|
});
|
|
42131
|
-
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42370
|
+
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42132
42371
|
Examples:
|
|
42133
42372
|
hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
42134
42373
|
hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -42151,6 +42390,8 @@ Examples:
|
|
|
42151
42390
|
args.charge_at = opts.chargeAt;
|
|
42152
42391
|
if (opts.calculationMethod !== void 0)
|
|
42153
42392
|
args.calculation_method = opts.calculationMethod;
|
|
42393
|
+
if (opts.precision !== void 0)
|
|
42394
|
+
args.precision = opts.precision;
|
|
42154
42395
|
if (opts.refundMethod !== void 0)
|
|
42155
42396
|
args.refund_method = opts.refundMethod;
|
|
42156
42397
|
if (opts.updates !== void 0)
|
|
@@ -42586,6 +42827,38 @@ Examples:
|
|
|
42586
42827
|
queryParamKeys: []
|
|
42587
42828
|
});
|
|
42588
42829
|
});
|
|
42830
|
+
resource.command("get-subscription-arr-history").description(`List every ARR evolution for a subscription, including previous and current fixed, variable, and total annual values in the subscription currency. Results are latest-first and 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("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
|
|
42831
|
+
Examples:
|
|
42832
|
+
hyperline subscriptions get-subscription-arr-history --id <id>
|
|
42833
|
+
hyperline subscriptions get-subscription-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
42834
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42835
|
+
if (!ctx) {
|
|
42836
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42837
|
+
process.exit(1);
|
|
42838
|
+
}
|
|
42839
|
+
const args = {};
|
|
42840
|
+
if (opts.id !== void 0)
|
|
42841
|
+
args.id = opts.id;
|
|
42842
|
+
if (opts.cursor !== void 0)
|
|
42843
|
+
args.cursor = opts.cursor;
|
|
42844
|
+
if (opts["occurredAt.gte"] !== void 0)
|
|
42845
|
+
args.occurred_at__gte = opts["occurredAt.gte"];
|
|
42846
|
+
if (opts["occurredAt.lte"] !== void 0)
|
|
42847
|
+
args.occurred_at__lte = opts["occurredAt.lte"];
|
|
42848
|
+
if (opts.limit !== void 0)
|
|
42849
|
+
args.limit = Number(opts.limit);
|
|
42850
|
+
await ctx.execute({
|
|
42851
|
+
method: "GET",
|
|
42852
|
+
path: "/v1/subscriptions/{id}/arr-history",
|
|
42853
|
+
args,
|
|
42854
|
+
queryParamKeys: [
|
|
42855
|
+
"limit",
|
|
42856
|
+
"cursor",
|
|
42857
|
+
"occurred_at__gte",
|
|
42858
|
+
"occurred_at__lte"
|
|
42859
|
+
]
|
|
42860
|
+
});
|
|
42861
|
+
});
|
|
42589
42862
|
resource.command("get-subscription-valuation").description(`Compute valuation metrics for a subscription: contract value (total/invoiced/remaining), recurring contract value, and ARR (fixed + variable). Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
|
|
42590
42863
|
Examples:
|
|
42591
42864
|
hyperline subscriptions get-subscription-valuation --id <id>
|
|
@@ -43528,6 +43801,7 @@ function registerAllCommands(program2) {
|
|
|
43528
43801
|
registerProductsCommands(program2);
|
|
43529
43802
|
registerPrice_ConfigurationsCommands(program2);
|
|
43530
43803
|
registerQuotesCommands(program2);
|
|
43804
|
+
registerQuotes_TemplatesCommands(program2);
|
|
43531
43805
|
registerSubscriptions_TemplatesCommands(program2);
|
|
43532
43806
|
registerSubscriptionsCommands(program2);
|
|
43533
43807
|
registerSubscriptions_TransitionsCommands(program2);
|
|
@@ -61663,6 +61937,7 @@ import * as winston from "winston";
|
|
|
61663
61937
|
|
|
61664
61938
|
// ../hyperline-monitoring/build/logger/formatting/format.js
|
|
61665
61939
|
import prune from "json-prune";
|
|
61940
|
+
var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
|
|
61666
61941
|
function jsonFormat(info) {
|
|
61667
61942
|
const prunedInfo = JSON.parse(prune(info));
|
|
61668
61943
|
for (const [key, value] of Object.entries(prunedInfo)) {
|
|
@@ -61745,17 +62020,26 @@ function formatAxiosError(error48) {
|
|
|
61745
62020
|
url: request?.url,
|
|
61746
62021
|
baseURL: request?.baseURL,
|
|
61747
62022
|
params: request?.params,
|
|
61748
|
-
headers: request?.headers,
|
|
62023
|
+
headers: redactHeaders({ headers: request?.headers }),
|
|
61749
62024
|
"axios-retry": request?.["axios-retry"]
|
|
61750
62025
|
},
|
|
61751
62026
|
response: {
|
|
61752
62027
|
status: response?.status,
|
|
61753
62028
|
statusText: response?.statusText,
|
|
61754
|
-
headers: response?.headers,
|
|
62029
|
+
headers: redactHeaders({ headers: response?.headers }),
|
|
61755
62030
|
data: response?.data
|
|
61756
62031
|
}
|
|
61757
62032
|
};
|
|
61758
62033
|
}
|
|
62034
|
+
function redactHeaders({ headers }) {
|
|
62035
|
+
if (!isRecord(headers)) {
|
|
62036
|
+
return headers;
|
|
62037
|
+
}
|
|
62038
|
+
return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
|
|
62039
|
+
headerKey,
|
|
62040
|
+
REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
|
|
62041
|
+
]));
|
|
62042
|
+
}
|
|
61759
62043
|
function isRecord(value) {
|
|
61760
62044
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
61761
62045
|
}
|
|
@@ -61779,13 +62063,16 @@ function logHttpRequest(logger2, request, extra) {
|
|
|
61779
62063
|
});
|
|
61780
62064
|
}
|
|
61781
62065
|
function logHttpResponse(logger2, response, responseTime, extra) {
|
|
61782
|
-
const { request, statusCode, responseBody } = response;
|
|
62066
|
+
const { request, statusCode, responseBody, responseHeaders } = response;
|
|
61783
62067
|
const { message, metadata } = transform2(request);
|
|
61784
62068
|
const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
|
|
61785
62069
|
const responseMetadata = {
|
|
61786
62070
|
statusCode,
|
|
61787
62071
|
responseTime,
|
|
61788
|
-
responseBody
|
|
62072
|
+
responseBody,
|
|
62073
|
+
// Redacted so secrets (authorization/cookie/token/…) never reach the logs
|
|
62074
|
+
// while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
|
|
62075
|
+
responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
|
|
61789
62076
|
};
|
|
61790
62077
|
logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
|
|
61791
62078
|
...metadata,
|
|
@@ -62066,6 +62353,12 @@ var DateTimeSchema = external_exports.iso.datetime({
|
|
|
62066
62353
|
example: "2024-12-20T16:04:11Z"
|
|
62067
62354
|
});
|
|
62068
62355
|
|
|
62356
|
+
// ../hyperline-lib/build/http/dto/domain.js
|
|
62357
|
+
var DomainSchema = external_exports.string().trim().toLowerCase().regex(/^(?!:\/\/)(?=.{1,253}$)(?!-)([a-z0-9-]{1,63}\.)+[a-z]{2,63}$/, "Invalid domain").openapi({
|
|
62358
|
+
description: "Domain name.",
|
|
62359
|
+
example: "acme.com"
|
|
62360
|
+
});
|
|
62361
|
+
|
|
62069
62362
|
// ../hyperline-lib/build/http/dto/error.js
|
|
62070
62363
|
var ErrorSchema = external_exports.object({
|
|
62071
62364
|
message: external_exports.string()
|
|
@@ -62122,9 +62415,11 @@ var de = {
|
|
|
62122
62415
|
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62123
62416
|
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62124
62417
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62418
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
62125
62419
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62126
62420
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62127
62421
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62422
|
+
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62128
62423
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62129
62424
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
62130
62425
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
@@ -62192,11 +62487,13 @@ var en = {
|
|
|
62192
62487
|
"accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
|
|
62193
62488
|
"accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
|
|
62194
62489
|
"accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
|
|
62490
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
|
|
62195
62491
|
"accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
|
|
62196
62492
|
"accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
62197
62493
|
"accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
62198
62494
|
"accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
62199
62495
|
"accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
62496
|
+
"accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
|
|
62200
62497
|
"einvoicing.paymentProcessed": "Payment processed",
|
|
62201
62498
|
"einvoicing.paymentReceived": "Payment received",
|
|
62202
62499
|
"einvoicing.paymentFromWallet": "Payment from wallet"
|
|
@@ -62208,9 +62505,11 @@ var es = {
|
|
|
62208
62505
|
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62209
62506
|
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62210
62507
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62508
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
62211
62509
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62212
62510
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62213
62511
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62512
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62214
62513
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62215
62514
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
62216
62515
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
@@ -62250,11 +62549,13 @@ var fr = {
|
|
|
62250
62549
|
"accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62251
62550
|
"accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62252
62551
|
"accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62552
|
+
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62253
62553
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62254
62554
|
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
62255
62555
|
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62256
62556
|
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62257
62557
|
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62558
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62258
62559
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
62259
62560
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62260
62561
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
@@ -62294,9 +62595,11 @@ var it = {
|
|
|
62294
62595
|
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62295
62596
|
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
62296
62597
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
62598
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
62297
62599
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62298
62600
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62299
62601
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62602
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62300
62603
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62301
62604
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
62302
62605
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
@@ -62337,9 +62640,11 @@ var nl = {
|
|
|
62337
62640
|
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
62338
62641
|
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
62339
62642
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
62643
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
62340
62644
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62341
62645
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62342
62646
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62647
|
+
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
62343
62648
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62344
62649
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
62345
62650
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
@@ -62380,9 +62685,11 @@ var pl = {
|
|
|
62380
62685
|
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
62381
62686
|
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
62382
62687
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
62688
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
62383
62689
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62384
62690
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62385
62691
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62692
|
+
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
62386
62693
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62387
62694
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
62388
62695
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
@@ -62423,9 +62730,11 @@ var pt = {
|
|
|
62423
62730
|
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
62424
62731
|
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
62425
62732
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
62733
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
62426
62734
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62427
62735
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62428
62736
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62737
|
+
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
62429
62738
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62430
62739
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
62431
62740
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
@@ -62562,10 +62871,16 @@ function buildHttpClient(dependencies) {
|
|
|
62562
62871
|
return response;
|
|
62563
62872
|
}, (error48) => {
|
|
62564
62873
|
if (error48.response) {
|
|
62565
|
-
const { config: responseConfig, status } = error48.response;
|
|
62874
|
+
const { config: responseConfig, status, headers } = error48.response;
|
|
62566
62875
|
const timeStart = responseConfig.metadata.timeStart;
|
|
62567
62876
|
const responseTime = timeStart ? Date.now() - timeStart : void 0;
|
|
62568
|
-
logHttpResponse(logger2, {
|
|
62877
|
+
logHttpResponse(logger2, {
|
|
62878
|
+
request: toLogRequest(responseConfig),
|
|
62879
|
+
statusCode: status,
|
|
62880
|
+
// Surfaces upstream response headers on error responses (e.g. the
|
|
62881
|
+
// rate-limit headers on a 429); redacted in logHttpResponse.
|
|
62882
|
+
responseHeaders: headers
|
|
62883
|
+
}, responseTime, { metadata: { error: error48.message } });
|
|
62569
62884
|
}
|
|
62570
62885
|
return Promise.reject(error48);
|
|
62571
62886
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperline/cli",
|
|
3
|
-
"version": "0.1.0-build.1.
|
|
3
|
+
"version": "0.1.0-build.1.8cee406",
|
|
4
4
|
"description": "Agent-first CLI for Hyperline API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@hyperline/vitest-config": "workspace:*",
|
|
49
49
|
"@types/node": "24.10.1",
|
|
50
50
|
"esbuild": "0.28.0",
|
|
51
|
-
"typescript": "
|
|
51
|
+
"typescript": "7.0.2",
|
|
52
52
|
"vitest": "4.1.5"
|
|
53
53
|
},
|
|
54
54
|
"publishConfig": {
|