@hyperline/cli 0.1.0-build.1.6898bff → 0.1.0-build.1.69cf4fd
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 +632 -280
- package/package.json +1 -1
|
@@ -34985,10 +34985,10 @@ var require_shared = __commonJS({
|
|
|
34985
34985
|
ZodId: () => ZodId,
|
|
34986
34986
|
ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
|
|
34987
34987
|
});
|
|
34988
|
-
var
|
|
34988
|
+
var import_zod23 = require_lib();
|
|
34989
34989
|
var countryIds2 = ["all", ...countries.map(({ id }) => id)];
|
|
34990
|
-
var ZodId =
|
|
34991
|
-
var ZodTranslationsSchemaFn = (schema) =>
|
|
34990
|
+
var ZodId = import_zod23.z.enum(countryIds2);
|
|
34991
|
+
var ZodTranslationsSchemaFn = (schema) => import_zod23.z.record(import_zod23.z.string(), schema.optional());
|
|
34992
34992
|
var UsStates = [
|
|
34993
34993
|
{ id: "AA", name: "Armed Forces Americas" },
|
|
34994
34994
|
{ id: "AE", name: "Armed Forces Europe" },
|
|
@@ -36287,14 +36287,14 @@ var require_shared = __commonJS({
|
|
|
36287
36287
|
ZodNumberCurrencyPositiveValue: () => ZodNumberCurrencyPositiveValue,
|
|
36288
36288
|
ZodNumberCurrencyPositiveValueExcludingZero: () => ZodNumberCurrencyPositiveValueExcludingZero
|
|
36289
36289
|
});
|
|
36290
|
-
var
|
|
36291
|
-
var ZodCurrencyId =
|
|
36290
|
+
var import_zod24 = require_lib();
|
|
36291
|
+
var ZodCurrencyId = import_zod24.z.enum(
|
|
36292
36292
|
all_default.map(({ id }) => id)
|
|
36293
36293
|
);
|
|
36294
|
-
var ZodNumberCurrency =
|
|
36295
|
-
var ZodNumberCurrencyPositiveValue =
|
|
36296
|
-
var ZodNumberCurrencyPositiveValueExcludingZero =
|
|
36297
|
-
var ZodCurrencyMap =
|
|
36294
|
+
var ZodNumberCurrency = import_zod24.z.string().or(import_zod24.z.number().transform((number4) => number4)).transform((number4) => number4);
|
|
36295
|
+
var ZodNumberCurrencyPositiveValue = import_zod24.z.number().min(0).transform((number4) => number4).transform((number4) => number4);
|
|
36296
|
+
var ZodNumberCurrencyPositiveValueExcludingZero = import_zod24.z.number().gt(0).transform((number4) => number4).transform((number4) => number4);
|
|
36297
|
+
var ZodCurrencyMap = import_zod24.z.record(ZodNumberCurrency).refine(
|
|
36298
36298
|
(data) => Object.keys(data).every((key) => ZodCurrencyId.safeParse(key).success),
|
|
36299
36299
|
{
|
|
36300
36300
|
message: "Invalid currency key.",
|
|
@@ -37739,10 +37739,9 @@ Examples:
|
|
|
37739
37739
|
baseUrlOverride: resolveIngestBaseUrl(ctx.baseUrl)
|
|
37740
37740
|
});
|
|
37741
37741
|
});
|
|
37742
|
-
resource.command("send").description(`Send a single billable event.`).requiredOption("--customer-id <value>", `Customer ID or external ID`).requiredOption("--event-type <value>", `Event type`).requiredOption("--timestamp <value>", `ISO8601 timestamp`).requiredOption("--record <value>", `Event record as JSON (must include "id" key)`).
|
|
37742
|
+
resource.command("send").description(`Send a single billable event.`).requiredOption("--customer-id <value>", `Customer ID or external ID`).requiredOption("--event-type <value>", `Event type`).requiredOption("--timestamp <value>", `ISO8601 timestamp`).requiredOption("--record <value>", `Event record as JSON (must include "id" key)`).addHelpText("after", `
|
|
37743
37743
|
Examples:
|
|
37744
|
-
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1","duration":32}'
|
|
37745
|
-
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1"}' --with-price-calculation`).action(async (opts) => {
|
|
37744
|
+
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1","duration":32}'`).action(async (opts) => {
|
|
37746
37745
|
const ctx = resource.parent?.opts()._ctx;
|
|
37747
37746
|
if (!ctx) {
|
|
37748
37747
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -37762,14 +37761,10 @@ Examples:
|
|
|
37762
37761
|
timestamp: opts.timestamp,
|
|
37763
37762
|
record: record2
|
|
37764
37763
|
};
|
|
37765
|
-
const args = {};
|
|
37766
|
-
if (opts.withPriceCalculation !== void 0)
|
|
37767
|
-
args.with_price_calculation = true;
|
|
37768
37764
|
await ctx.execute({
|
|
37769
37765
|
method: "POST",
|
|
37770
37766
|
path: "/v1/events",
|
|
37771
|
-
args,
|
|
37772
|
-
queryParamKeys: ["with_price_calculation"],
|
|
37767
|
+
args: {},
|
|
37773
37768
|
body,
|
|
37774
37769
|
baseUrlOverride: resolveIngestBaseUrl(ctx.baseUrl)
|
|
37775
37770
|
});
|
|
@@ -39013,7 +39008,7 @@ Examples:
|
|
|
39013
39008
|
queryParamKeys: []
|
|
39014
39009
|
});
|
|
39015
39010
|
});
|
|
39016
|
-
resource.command("create").description(`Create a new accounting rule for account code routing or journal posting.`).option("--ledger-id <value>", `Identifier of the ledger this rule belongs to.`).option("--name <value>", `Optional user-defined name for the rule.`).requiredOption("--category <value>", `Rule category (e.g. accounting_software, invoice_posted).`).requiredOption("--priority <number>", `Override order. Higher priority wins when multiple rules match.`).option("--product-ids <json>", `Product IDs to match. Empty means match all.`).option("--product-types <json>", `Product types to match. Allowed values: flat_fee, dynamic, seat, credit. Empty means match all.`).option("--customer-ids <json>", `Customer IDs for customer-specific overrides.`).option("--currencies <json>", `Currency codes to match (e.g. EUR, USD).`).option("--countries <json>", `Country codes for jurisdiction-based overrides.`).option("--coupon-ids <json>", `Coupon IDs to match. Empty means match all.`).option("--client-provider-ids <json>", `Client provider IDs to match. Empty means match all.`).option("--payment-method-types <json>", `Payment method types to match. Empty means match all.`).option("--interval-period <value>", `Billing interval period filter (
|
|
39011
|
+
resource.command("create").description(`Create a new accounting rule for account code routing or journal posting, with the filters, accounts and required fields the rule editor applies to its category.`).option("--ledger-id <value>", `Identifier of the ledger this rule belongs to.`).option("--name <value>", `Optional user-defined name for the rule.`).requiredOption("--category <value>", `Rule category (e.g. accounting_software, invoice_posted).`).requiredOption("--priority <number>", `Override order. Higher priority wins when multiple rules match.`).option("--product-ids <json>", `Product IDs to match. Empty means match all.`).option("--product-types <json>", `Product types to match. Allowed values: flat_fee, dynamic, seat, credit. Empty means match all.`).option("--customer-ids <json>", `Customer IDs for customer-specific overrides.`).option("--currencies <json>", `Currency codes to match (e.g. EUR, USD).`).option("--countries <json>", `Country codes for jurisdiction-based overrides.`).option("--tax-schemes <json>", `Tax schemes to match. A context without a tax scheme never matches a rule that sets this filter. Empty means match all.`).option("--tax-territories <json>", `Tax territory country codes to match. A context without a tax territory never matches a rule that sets this filter. Empty means match all.`).option("--tax-rate-classes <json>", `Tax rate classes to match. A context without a tax rate class never matches a rule that sets this filter. Empty means match all.`).option("--coupon-ids <json>", `Coupon IDs to match. Empty means match all.`).option("--client-provider-ids <json>", `Client provider IDs to match. Empty means match all.`).option("--payment-method-types <json>", `Payment method types to match. Empty means match all.`).option("--bank-account-ids <json>", `Bank account IDs to match. Empty means match all.`).option("--invoice-types <json>", `Invoice kinds to match: \`invoice\` or \`document\`. Refunds and other standard invoices match as \`invoice\`. A context without an invoice, such as a PSP payout, never matches a rule that sets this filter. Empty means match all.`).option("--interval-period <value>", `Billing interval period filter (months, years, etc.).`).option("--interval-count <number>", `Billing interval count filter.`).option("--custom-property-filters <json>", `Invoice custom property filters. A rule matches only when every entry matches (AND across entries), and an entry matches when the invoice value is one of its \`values\` (any-of). Matching is strict: an invoice without a value for the property never matches. Each entry adds 10 to the \`suggested_priority\` returned by the rule defaults endpoint. Allowed on invoice_posted, invoice_settled, revenue_recognition, credit_note_created and accounting_software (invoice side) rules. An invoice_settled rule with filters cannot set \`payments_clearing_ledger_account_id\`, as PSP payouts are booked without the invoice. Empty means match all.`).option("--revenue-ledger-account-id <value>", `Revenue ledger account ID used for invoice line revenue routing. Must be a \`revenue\` account. On accounting_software rules, a \`revenue\` or \`contra_revenue\` account with entity_type invoice, an \`asset\` or \`contra_asset\` account with entity_type payment.`).option("--deferred-revenue-ledger-account-id <value>", `Deferred revenue ledger account ID used before revenue is recognized. Must be a \`liability\` account.`).option("--deferred-discount-ledger-account-id <value>", `Deferred discount ledger account ID used before discounts are recognized. Must be an \`asset\` or \`contra_liability\` account.`).option("--contra-revenue-ledger-account-id <value>", `Contra revenue ledger account ID used for amounts that reduce revenue. Must be a \`contra_revenue\` account.`).option("--discount-ledger-account-id <value>", `Discount ledger account ID used for recognized discounts. Must be a \`contra_revenue\` account.`).option("--ar-ledger-account-id <value>", `Accounts receivable ledger account ID used for invoice posting. Must be an \`asset\` account.`).option("--cash-ledger-account-id <value>", `Cash ledger account ID used for payment settlement. Must be an \`asset\` account.`).option("--payments-clearing-ledger-account-id <value>", `Payments clearing ledger account ID used while payments settle. Must be an \`asset\` account.`).option("--output-tax-ledger-account-id <value>", `Output tax ledger account ID used for tax liability. Must be a \`liability\` account.`).option("--uncollectible-debit-ledger-account-id <value>", `Ledger account ID debited when an invoice becomes uncollectible. Must be an \`asset\` account, for doubtful-receivable reclassification, or an \`expense\` account, for direct write-off.`).option("--allowance-for-doubtful-accounts-id <value>", `Allowance for doubtful accounts ledger account ID, set on credit_note_created rules. Must be a \`contra_asset\` account.`).option("--provider-fees-expense-ledger-account-id <value>", `Expense ledger account ID debited for payment provider fees when a payment settles. Must be an \`expense\` account.`).option("--payment-processing-fees-expense-ledger-account-id <value>", `Expense ledger account ID debited for payment processing fees when a payment settles. Takes precedence over \`provider_fees_expense_ledger_account_id\` when set by the same or a higher priority rule. Must be an \`expense\` account.`).option("--payment-processing-fees-revenue-ledger-account-id <value>", `Payment processing fees revenue ledger account ID, set on invoice_settled rules. Must be a \`revenue\` account.`).option("--customer-credits-ledger-account-id <value>", `Customer credits ledger account ID used for credit balances. Must be a \`liability\` account.`).option("--rev-rec-method <value>", `Revenue recognition method.`).option("--rev-rec-granularity <value>", `Recognition period granularity. Used when \`rev_rec_method\` is \`over_time\`.`).option("--rev-rec-point-in-time-basis <value>", `Date revenue is recognized on. Used when \`rev_rec_method\` is \`point_in_time\`.`).option("--discount-recognition-method <value>", `Method used to recognize discounts.`).option("--journal-id <value>", `Journal ID used to route entries in the accounting provider.`).option("--entity-type <value>", `Entity type the rule applies to.`).addHelpText("after", `
|
|
39017
39012
|
Examples:
|
|
39018
39013
|
hyperline accounting-rules create --category <category> --priority <priority>
|
|
39019
39014
|
hyperline accounting-rules create --category <category> --priority <priority> --ledger-id <ledger_id> --name <name>
|
|
@@ -39052,8 +39047,24 @@ Examples:
|
|
|
39052
39047
|
args.output_tax_ledger_account_id = opts.outputTaxLedgerAccountId;
|
|
39053
39048
|
if (opts.uncollectibleDebitLedgerAccountId !== void 0)
|
|
39054
39049
|
args.uncollectible_debit_ledger_account_id = opts.uncollectibleDebitLedgerAccountId;
|
|
39050
|
+
if (opts.allowanceForDoubtfulAccountsId !== void 0)
|
|
39051
|
+
args.allowance_for_doubtful_accounts_id = opts.allowanceForDoubtfulAccountsId;
|
|
39052
|
+
if (opts.providerFeesExpenseLedgerAccountId !== void 0)
|
|
39053
|
+
args.provider_fees_expense_ledger_account_id = opts.providerFeesExpenseLedgerAccountId;
|
|
39054
|
+
if (opts.paymentProcessingFeesExpenseLedgerAccountId !== void 0)
|
|
39055
|
+
args.payment_processing_fees_expense_ledger_account_id = opts.paymentProcessingFeesExpenseLedgerAccountId;
|
|
39056
|
+
if (opts.paymentProcessingFeesRevenueLedgerAccountId !== void 0)
|
|
39057
|
+
args.payment_processing_fees_revenue_ledger_account_id = opts.paymentProcessingFeesRevenueLedgerAccountId;
|
|
39055
39058
|
if (opts.customerCreditsLedgerAccountId !== void 0)
|
|
39056
39059
|
args.customer_credits_ledger_account_id = opts.customerCreditsLedgerAccountId;
|
|
39060
|
+
if (opts.revRecMethod !== void 0)
|
|
39061
|
+
args.rev_rec_method = opts.revRecMethod;
|
|
39062
|
+
if (opts.revRecGranularity !== void 0)
|
|
39063
|
+
args.rev_rec_granularity = opts.revRecGranularity;
|
|
39064
|
+
if (opts.revRecPointInTimeBasis !== void 0)
|
|
39065
|
+
args.rev_rec_point_in_time_basis = opts.revRecPointInTimeBasis;
|
|
39066
|
+
if (opts.discountRecognitionMethod !== void 0)
|
|
39067
|
+
args.discount_recognition_method = opts.discountRecognitionMethod;
|
|
39057
39068
|
if (opts.journalId !== void 0)
|
|
39058
39069
|
args.journal_id = opts.journalId;
|
|
39059
39070
|
if (opts.entityType !== void 0)
|
|
@@ -39072,12 +39083,22 @@ Examples:
|
|
|
39072
39083
|
args.currencies = JSON.parse(opts.currencies);
|
|
39073
39084
|
if (opts.countries !== void 0)
|
|
39074
39085
|
args.countries = JSON.parse(opts.countries);
|
|
39086
|
+
if (opts.taxSchemes !== void 0)
|
|
39087
|
+
args.tax_schemes = JSON.parse(opts.taxSchemes);
|
|
39088
|
+
if (opts.taxTerritories !== void 0)
|
|
39089
|
+
args.tax_territories = JSON.parse(opts.taxTerritories);
|
|
39090
|
+
if (opts.taxRateClasses !== void 0)
|
|
39091
|
+
args.tax_rate_classes = JSON.parse(opts.taxRateClasses);
|
|
39075
39092
|
if (opts.couponIds !== void 0)
|
|
39076
39093
|
args.coupon_ids = JSON.parse(opts.couponIds);
|
|
39077
39094
|
if (opts.clientProviderIds !== void 0)
|
|
39078
39095
|
args.client_provider_ids = JSON.parse(opts.clientProviderIds);
|
|
39079
39096
|
if (opts.paymentMethodTypes !== void 0)
|
|
39080
39097
|
args.payment_method_types = JSON.parse(opts.paymentMethodTypes);
|
|
39098
|
+
if (opts.bankAccountIds !== void 0)
|
|
39099
|
+
args.bank_account_ids = JSON.parse(opts.bankAccountIds);
|
|
39100
|
+
if (opts.invoiceTypes !== void 0)
|
|
39101
|
+
args.invoice_types = JSON.parse(opts.invoiceTypes);
|
|
39081
39102
|
if (opts.customPropertyFilters !== void 0)
|
|
39082
39103
|
args.custom_property_filters = JSON.parse(opts.customPropertyFilters);
|
|
39083
39104
|
await ctx.execute({
|
|
@@ -39087,7 +39108,7 @@ Examples:
|
|
|
39087
39108
|
queryParamKeys: []
|
|
39088
39109
|
});
|
|
39089
39110
|
});
|
|
39090
|
-
resource.command("update").description(`Update an existing accounting rule.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Optional user-defined name for the rule.`).option("--category <value>", `Rule category. Cannot be changed after creation, must match the current category when sent.`).option("--priority <number>", `Override order. Higher priority wins when multiple rules match.`).option("--product-ids <json>", `Product IDs to match. Empty means match all.`).option("--product-types <json>", `Product types to match. Allowed values: flat_fee, dynamic, seat, credit. Empty means match all.`).option("--customer-ids <json>", `Customer IDs for customer-specific overrides.`).option("--currencies <json>", `Currency codes to match (e.g. EUR, USD).`).option("--countries <json>", `Country codes for jurisdiction-based overrides.`).option("--coupon-ids <json>", `Coupon IDs to match. Empty means match all.`).option("--client-provider-ids <json>", `Client provider IDs to match. Empty means match all.`).option("--payment-method-types <json>", `Payment method types to match. Empty means match all.`).option("--interval-period <value>", `Billing interval period filter (
|
|
39111
|
+
resource.command("update").description(`Update an existing accounting rule, with the filters, accounts and required fields the rule editor applies to its category.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Optional user-defined name for the rule.`).option("--category <value>", `Rule category. Cannot be changed after creation, must match the current category when sent.`).option("--priority <number>", `Override order. Higher priority wins when multiple rules match.`).option("--product-ids <json>", `Product IDs to match. Empty means match all.`).option("--product-types <json>", `Product types to match. Allowed values: flat_fee, dynamic, seat, credit. Empty means match all.`).option("--customer-ids <json>", `Customer IDs for customer-specific overrides.`).option("--currencies <json>", `Currency codes to match (e.g. EUR, USD).`).option("--countries <json>", `Country codes for jurisdiction-based overrides.`).option("--tax-schemes <json>", `Tax schemes to match. A context without a tax scheme never matches a rule that sets this filter. Empty means match all.`).option("--tax-territories <json>", `Tax territory country codes to match. A context without a tax territory never matches a rule that sets this filter. Empty means match all.`).option("--tax-rate-classes <json>", `Tax rate classes to match. A context without a tax rate class never matches a rule that sets this filter. Empty means match all.`).option("--coupon-ids <json>", `Coupon IDs to match. Empty means match all.`).option("--client-provider-ids <json>", `Client provider IDs to match. Empty means match all.`).option("--payment-method-types <json>", `Payment method types to match. Empty means match all.`).option("--bank-account-ids <json>", `Bank account IDs to match. Empty means match all.`).option("--invoice-types <json>", `Invoice kinds to match: \`invoice\` or \`document\`. Refunds and other standard invoices match as \`invoice\`. A context without an invoice, such as a PSP payout, never matches a rule that sets this filter. Empty means match all.`).option("--interval-period <value>", `Billing interval period filter (months, years, etc.).`).option("--interval-count <number>", `Billing interval count filter.`).option("--custom-property-filters <json>", `Invoice custom property filters. A rule matches only when every entry matches (AND across entries), and an entry matches when the invoice value is one of its \`values\` (any-of). Matching is strict: an invoice without a value for the property never matches. Each entry adds 10 to the \`suggested_priority\` returned by the rule defaults endpoint. Allowed on invoice_posted, invoice_settled, revenue_recognition, credit_note_created and accounting_software (invoice side) rules. An invoice_settled rule with filters cannot set \`payments_clearing_ledger_account_id\`, as PSP payouts are booked without the invoice. Empty means match all.`).option("--revenue-ledger-account-id <value>", `Revenue ledger account ID used for invoice line revenue routing. Must be a \`revenue\` account. On accounting_software rules, a \`revenue\` or \`contra_revenue\` account with entity_type invoice, an \`asset\` or \`contra_asset\` account with entity_type payment.`).option("--deferred-revenue-ledger-account-id <value>", `Deferred revenue ledger account ID used before revenue is recognized. Must be a \`liability\` account.`).option("--deferred-discount-ledger-account-id <value>", `Deferred discount ledger account ID used before discounts are recognized. Must be an \`asset\` or \`contra_liability\` account.`).option("--contra-revenue-ledger-account-id <value>", `Contra revenue ledger account ID used for amounts that reduce revenue. Must be a \`contra_revenue\` account.`).option("--discount-ledger-account-id <value>", `Discount ledger account ID used for recognized discounts. Must be a \`contra_revenue\` account.`).option("--ar-ledger-account-id <value>", `Accounts receivable ledger account ID used for invoice posting. Must be an \`asset\` account.`).option("--cash-ledger-account-id <value>", `Cash ledger account ID used for payment settlement. Must be an \`asset\` account.`).option("--payments-clearing-ledger-account-id <value>", `Payments clearing ledger account ID used while payments settle. Must be an \`asset\` account.`).option("--output-tax-ledger-account-id <value>", `Output tax ledger account ID used for tax liability. Must be a \`liability\` account.`).option("--uncollectible-debit-ledger-account-id <value>", `Ledger account ID debited when an invoice becomes uncollectible. Must be an \`asset\` account, for doubtful-receivable reclassification, or an \`expense\` account, for direct write-off.`).option("--allowance-for-doubtful-accounts-id <value>", `Allowance for doubtful accounts ledger account ID, set on credit_note_created rules. Must be a \`contra_asset\` account.`).option("--provider-fees-expense-ledger-account-id <value>", `Expense ledger account ID debited for payment provider fees when a payment settles. Must be an \`expense\` account.`).option("--payment-processing-fees-expense-ledger-account-id <value>", `Expense ledger account ID debited for payment processing fees when a payment settles. Takes precedence over \`provider_fees_expense_ledger_account_id\` when set by the same or a higher priority rule. Must be an \`expense\` account.`).option("--payment-processing-fees-revenue-ledger-account-id <value>", `Payment processing fees revenue ledger account ID, set on invoice_settled rules. Must be a \`revenue\` account.`).option("--customer-credits-ledger-account-id <value>", `Customer credits ledger account ID used for credit balances. Must be a \`liability\` account.`).option("--rev-rec-method <value>", `Revenue recognition method.`).option("--rev-rec-granularity <value>", `Recognition period granularity. Used when \`rev_rec_method\` is \`over_time\`.`).option("--rev-rec-point-in-time-basis <value>", `Date revenue is recognized on. Used when \`rev_rec_method\` is \`point_in_time\`.`).option("--discount-recognition-method <value>", `Method used to recognize discounts.`).option("--journal-id <value>", `Journal ID used to route entries in the accounting provider.`).option("--entity-type <value>", `Entity type the rule applies to.`).addHelpText("after", `
|
|
39091
39112
|
Examples:
|
|
39092
39113
|
hyperline accounting-rules update --id <id>
|
|
39093
39114
|
hyperline accounting-rules update --id <id> --name <name> --category <category>
|
|
@@ -39126,8 +39147,24 @@ Examples:
|
|
|
39126
39147
|
args.output_tax_ledger_account_id = opts.outputTaxLedgerAccountId;
|
|
39127
39148
|
if (opts.uncollectibleDebitLedgerAccountId !== void 0)
|
|
39128
39149
|
args.uncollectible_debit_ledger_account_id = opts.uncollectibleDebitLedgerAccountId;
|
|
39150
|
+
if (opts.allowanceForDoubtfulAccountsId !== void 0)
|
|
39151
|
+
args.allowance_for_doubtful_accounts_id = opts.allowanceForDoubtfulAccountsId;
|
|
39152
|
+
if (opts.providerFeesExpenseLedgerAccountId !== void 0)
|
|
39153
|
+
args.provider_fees_expense_ledger_account_id = opts.providerFeesExpenseLedgerAccountId;
|
|
39154
|
+
if (opts.paymentProcessingFeesExpenseLedgerAccountId !== void 0)
|
|
39155
|
+
args.payment_processing_fees_expense_ledger_account_id = opts.paymentProcessingFeesExpenseLedgerAccountId;
|
|
39156
|
+
if (opts.paymentProcessingFeesRevenueLedgerAccountId !== void 0)
|
|
39157
|
+
args.payment_processing_fees_revenue_ledger_account_id = opts.paymentProcessingFeesRevenueLedgerAccountId;
|
|
39129
39158
|
if (opts.customerCreditsLedgerAccountId !== void 0)
|
|
39130
39159
|
args.customer_credits_ledger_account_id = opts.customerCreditsLedgerAccountId;
|
|
39160
|
+
if (opts.revRecMethod !== void 0)
|
|
39161
|
+
args.rev_rec_method = opts.revRecMethod;
|
|
39162
|
+
if (opts.revRecGranularity !== void 0)
|
|
39163
|
+
args.rev_rec_granularity = opts.revRecGranularity;
|
|
39164
|
+
if (opts.revRecPointInTimeBasis !== void 0)
|
|
39165
|
+
args.rev_rec_point_in_time_basis = opts.revRecPointInTimeBasis;
|
|
39166
|
+
if (opts.discountRecognitionMethod !== void 0)
|
|
39167
|
+
args.discount_recognition_method = opts.discountRecognitionMethod;
|
|
39131
39168
|
if (opts.journalId !== void 0)
|
|
39132
39169
|
args.journal_id = opts.journalId;
|
|
39133
39170
|
if (opts.entityType !== void 0)
|
|
@@ -39146,12 +39183,22 @@ Examples:
|
|
|
39146
39183
|
args.currencies = JSON.parse(opts.currencies);
|
|
39147
39184
|
if (opts.countries !== void 0)
|
|
39148
39185
|
args.countries = JSON.parse(opts.countries);
|
|
39186
|
+
if (opts.taxSchemes !== void 0)
|
|
39187
|
+
args.tax_schemes = JSON.parse(opts.taxSchemes);
|
|
39188
|
+
if (opts.taxTerritories !== void 0)
|
|
39189
|
+
args.tax_territories = JSON.parse(opts.taxTerritories);
|
|
39190
|
+
if (opts.taxRateClasses !== void 0)
|
|
39191
|
+
args.tax_rate_classes = JSON.parse(opts.taxRateClasses);
|
|
39149
39192
|
if (opts.couponIds !== void 0)
|
|
39150
39193
|
args.coupon_ids = JSON.parse(opts.couponIds);
|
|
39151
39194
|
if (opts.clientProviderIds !== void 0)
|
|
39152
39195
|
args.client_provider_ids = JSON.parse(opts.clientProviderIds);
|
|
39153
39196
|
if (opts.paymentMethodTypes !== void 0)
|
|
39154
39197
|
args.payment_method_types = JSON.parse(opts.paymentMethodTypes);
|
|
39198
|
+
if (opts.bankAccountIds !== void 0)
|
|
39199
|
+
args.bank_account_ids = JSON.parse(opts.bankAccountIds);
|
|
39200
|
+
if (opts.invoiceTypes !== void 0)
|
|
39201
|
+
args.invoice_types = JSON.parse(opts.invoiceTypes);
|
|
39155
39202
|
if (opts.customPropertyFilters !== void 0)
|
|
39156
39203
|
args.custom_property_filters = JSON.parse(opts.customPropertyFilters);
|
|
39157
39204
|
await ctx.execute({
|
|
@@ -39187,7 +39234,7 @@ Examples:
|
|
|
39187
39234
|
queryParamKeys: []
|
|
39188
39235
|
});
|
|
39189
39236
|
});
|
|
39190
|
-
resource.command("resolve").description(`Preview which account codes would be resolved for a given context.`).requiredOption("--ledger-id <value>", `Identifier of the ledger this rule belongs to.`).requiredOption("--category <value>", `Rule category (e.g. accounting_software, invoice_posted).`).option("--product-id <value>", `Product ID to resolve against.`).option("--product-type <value>", `Product type to resolve against.`).option("--currency <value>", `Currency code to resolve against.`).option("--country <value>", `Country code to resolve against.`).option("--customer-id <value>", `Customer ID to resolve against.`).option("--invoice-type <value>", `Invoice kind to resolve against. Accepts \`invoice\` or \`document\`; any other invoice kind is matched as \`invoice\`.`).option("--interval-period <value>", `Billing interval period filter (
|
|
39237
|
+
resource.command("resolve").description(`Preview which account codes would be resolved for a given context.`).requiredOption("--ledger-id <value>", `Identifier of the ledger this rule belongs to.`).requiredOption("--category <value>", `Rule category (e.g. accounting_software, invoice_posted).`).option("--product-id <value>", `Product ID to resolve against.`).option("--product-type <value>", `Product type to resolve against.`).option("--currency <value>", `Currency code to resolve against.`).option("--country <value>", `Country code to resolve against.`).option("--tax-scheme <value>", `Tax scheme to resolve against.`).option("--tax-territory <value>", `Tax territory country code to resolve against.`).option("--tax-rate-class <value>", `Tax rate class to resolve against.`).option("--customer-id <value>", `Customer ID to resolve against.`).option("--coupon-id <value>", `Coupon ID to resolve against.`).option("--client-provider-id <value>", `Client provider ID to resolve against.`).option("--payment-method-type <value>", `Payment method type to resolve against.`).option("--bank-account-id <value>", `Bank account ID to resolve against.`).option("--invoice-type <value>", `Invoice kind to resolve against. Accepts \`invoice\` or \`document\`; any other invoice kind is matched as \`invoice\`.`).option("--interval-period <value>", `Billing interval period filter (months, years, etc.).`).option("--interval-count <number>", `Billing interval count filter.`).option("--custom-properties <json>", `Invoice custom property values to resolve against, keyed by custom property slug. Unknown slugs and null values are ignored. Rules with custom property filters never match without them.`).addHelpText("after", `
|
|
39191
39238
|
Examples:
|
|
39192
39239
|
hyperline accounting-rules resolve --ledger-id <ledger_id> --category <category>
|
|
39193
39240
|
hyperline accounting-rules resolve --ledger-id <ledger_id> --category <category> --product-id <product_id> --product-type <product_type>
|
|
@@ -39210,8 +39257,22 @@ Examples:
|
|
|
39210
39257
|
args.currency = opts.currency;
|
|
39211
39258
|
if (opts.country !== void 0)
|
|
39212
39259
|
args.country = opts.country;
|
|
39260
|
+
if (opts.taxScheme !== void 0)
|
|
39261
|
+
args.tax_scheme = opts.taxScheme;
|
|
39262
|
+
if (opts.taxTerritory !== void 0)
|
|
39263
|
+
args.tax_territory = opts.taxTerritory;
|
|
39264
|
+
if (opts.taxRateClass !== void 0)
|
|
39265
|
+
args.tax_rate_class = opts.taxRateClass;
|
|
39213
39266
|
if (opts.customerId !== void 0)
|
|
39214
39267
|
args.customer_id = opts.customerId;
|
|
39268
|
+
if (opts.couponId !== void 0)
|
|
39269
|
+
args.coupon_id = opts.couponId;
|
|
39270
|
+
if (opts.clientProviderId !== void 0)
|
|
39271
|
+
args.client_provider_id = opts.clientProviderId;
|
|
39272
|
+
if (opts.paymentMethodType !== void 0)
|
|
39273
|
+
args.payment_method_type = opts.paymentMethodType;
|
|
39274
|
+
if (opts.bankAccountId !== void 0)
|
|
39275
|
+
args.bank_account_id = opts.bankAccountId;
|
|
39215
39276
|
if (opts.invoiceType !== void 0)
|
|
39216
39277
|
args.invoice_type = opts.invoiceType;
|
|
39217
39278
|
if (opts.intervalPeriod !== void 0)
|
|
@@ -40444,6 +40505,71 @@ Examples:
|
|
|
40444
40505
|
});
|
|
40445
40506
|
}
|
|
40446
40507
|
|
|
40508
|
+
// build/commands/generated/ai-monitoring.js
|
|
40509
|
+
function registerAi_MonitoringCommands(parent) {
|
|
40510
|
+
const resource = parent.command("ai-monitoring").description("Manage ai > monitoring");
|
|
40511
|
+
resource.command("list-monitoring-analyses").description(`List customer health analyses from the monitoring agent, newest first: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals. Filter by customer (Hyperline or external ID) with limit=1 to get a customer's current health score, or by customer_id__in (up to 100 Hyperline IDs) for several customers; the first analysis per customer is its latest. Only completed analyses unless status is set.`).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.`).option("--customer-id <value>", `Return only analyses of this customer. Accepts the Hyperline ID or your own external ID.`).option("--customer-id.in <value>", `Comma-separated list of up to 100 Hyperline customer IDs. Return only analyses of these customers. Cannot be combined with \`customer_id\`.`).option("--status <value>", `Return only analyses with this status. Defaults to \`completed\`, the analyses that carry a score.`).option("--created-at.gte <value>", `Return only analyses created at or after this date.`).option("--created-at.lte <value>", `Return only analyses created at or before this date.`).addHelpText("after", `
|
|
40512
|
+
Examples:
|
|
40513
|
+
hyperline ai-monitoring list-monitoring-analyses
|
|
40514
|
+
hyperline ai-monitoring list-monitoring-analyses --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
40515
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40516
|
+
if (!ctx) {
|
|
40517
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40518
|
+
process.exit(1);
|
|
40519
|
+
}
|
|
40520
|
+
const args = {};
|
|
40521
|
+
if (opts.cursor !== void 0)
|
|
40522
|
+
args.cursor = opts.cursor;
|
|
40523
|
+
if (opts.includeTotal !== void 0)
|
|
40524
|
+
args.include_total = opts.includeTotal;
|
|
40525
|
+
if (opts.customerId !== void 0)
|
|
40526
|
+
args.customer_id = opts.customerId;
|
|
40527
|
+
if (opts["customerId.in"] !== void 0)
|
|
40528
|
+
args.customer_id__in = opts["customerId.in"];
|
|
40529
|
+
if (opts.status !== void 0)
|
|
40530
|
+
args.status = opts.status;
|
|
40531
|
+
if (opts["createdAt.gte"] !== void 0)
|
|
40532
|
+
args.created_at__gte = opts["createdAt.gte"];
|
|
40533
|
+
if (opts["createdAt.lte"] !== void 0)
|
|
40534
|
+
args.created_at__lte = opts["createdAt.lte"];
|
|
40535
|
+
if (opts.limit !== void 0)
|
|
40536
|
+
args.limit = Number(opts.limit);
|
|
40537
|
+
await ctx.execute({
|
|
40538
|
+
method: "GET",
|
|
40539
|
+
path: "/v1/agents/monitoring/analyses",
|
|
40540
|
+
args,
|
|
40541
|
+
queryParamKeys: [
|
|
40542
|
+
"limit",
|
|
40543
|
+
"cursor",
|
|
40544
|
+
"include_total",
|
|
40545
|
+
"customer_id",
|
|
40546
|
+
"customer_id__in",
|
|
40547
|
+
"status",
|
|
40548
|
+
"created_at__gte",
|
|
40549
|
+
"created_at__lte"
|
|
40550
|
+
]
|
|
40551
|
+
});
|
|
40552
|
+
});
|
|
40553
|
+
resource.command("get-monitoring-analysis").description(`Get one customer health analysis by ID: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40554
|
+
Examples:
|
|
40555
|
+
hyperline ai-monitoring get-monitoring-analysis --id <id>`).action(async (opts) => {
|
|
40556
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40557
|
+
if (!ctx) {
|
|
40558
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40559
|
+
process.exit(1);
|
|
40560
|
+
}
|
|
40561
|
+
const args = {};
|
|
40562
|
+
if (opts.id !== void 0)
|
|
40563
|
+
args.id = opts.id;
|
|
40564
|
+
await ctx.execute({
|
|
40565
|
+
method: "GET",
|
|
40566
|
+
path: "/v1/agents/monitoring/analyses/{id}",
|
|
40567
|
+
args,
|
|
40568
|
+
queryParamKeys: []
|
|
40569
|
+
});
|
|
40570
|
+
});
|
|
40571
|
+
}
|
|
40572
|
+
|
|
40447
40573
|
// build/commands/generated/analytics.js
|
|
40448
40574
|
function registerAnalyticsCommands(parent) {
|
|
40449
40575
|
const resource = parent.command("analytics").description("Manage analytics");
|
|
@@ -40603,7 +40729,7 @@ Examples:
|
|
|
40603
40729
|
queryParamKeys: ["take", "skip"]
|
|
40604
40730
|
});
|
|
40605
40731
|
});
|
|
40606
|
-
resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <json>", `
|
|
40732
|
+
resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <json>", `Products the coupon is scoped to, read together with \`product_scope\`: the only discounted products when \`include\`, the products never discounted when \`exclude\`, empty when \`all\`.`).option("--product-scope <value>", `Which products the coupon discounts. \`all\`: every product (\`product_ids\` must be empty). \`include\`: only the products in \`product_ids\`. \`exclude\`: every product except those in \`product_ids\` (lines without a product stay discounted). \`include\` and \`exclude\` require a non-empty \`product_ids\`. When omitted on create/update, it is inferred: \`include\` if \`product_ids\` is non-empty, \`all\` otherwise. Integrations that read \`product_ids\` without \`product_scope\` will misread an \`exclude\` list as the products the coupon applies to.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <json>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
|
|
40607
40733
|
Examples:
|
|
40608
40734
|
hyperline coupons create --name <name> --type <type>
|
|
40609
40735
|
hyperline coupons create --name <name> --type <type> --description <description> --expiration-date <expiration_date>
|
|
@@ -40620,6 +40746,8 @@ Examples:
|
|
|
40620
40746
|
args.description = opts.description;
|
|
40621
40747
|
if (opts.expirationDate !== void 0)
|
|
40622
40748
|
args.expiration_date = opts.expirationDate;
|
|
40749
|
+
if (opts.productScope !== void 0)
|
|
40750
|
+
args.product_scope = opts.productScope;
|
|
40623
40751
|
if (opts.repeat !== void 0)
|
|
40624
40752
|
args.repeat = opts.repeat;
|
|
40625
40753
|
if (opts.type !== void 0)
|
|
@@ -40663,7 +40791,7 @@ Examples:
|
|
|
40663
40791
|
queryParamKeys: []
|
|
40664
40792
|
});
|
|
40665
40793
|
});
|
|
40666
|
-
resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <json>", `
|
|
40794
|
+
resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <json>", `Products the coupon is scoped to, read together with \`product_scope\`: the only discounted products when \`include\`, the products never discounted when \`exclude\`, empty when \`all\`.`).option("--product-scope <value>", `Which products the coupon discounts. \`all\`: every product (\`product_ids\` must be empty). \`include\`: only the products in \`product_ids\`. \`exclude\`: every product except those in \`product_ids\` (lines without a product stay discounted). \`include\` and \`exclude\` require a non-empty \`product_ids\`. When omitted on create/update, it is inferred: \`include\` if \`product_ids\` is non-empty, \`all\` otherwise. Integrations that read \`product_ids\` without \`product_scope\` will misread an \`exclude\` list as the products the coupon applies to.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <json>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
|
|
40667
40795
|
Examples:
|
|
40668
40796
|
hyperline coupons update --id <id> --name <name> --type <type>
|
|
40669
40797
|
hyperline coupons update --id <id> --name <name> --type <type> --description <description> --expiration-date <expiration_date>
|
|
@@ -40682,6 +40810,8 @@ Examples:
|
|
|
40682
40810
|
args.description = opts.description;
|
|
40683
40811
|
if (opts.expirationDate !== void 0)
|
|
40684
40812
|
args.expiration_date = opts.expirationDate;
|
|
40813
|
+
if (opts.productScope !== void 0)
|
|
40814
|
+
args.product_scope = opts.productScope;
|
|
40685
40815
|
if (opts.repeat !== void 0)
|
|
40686
40816
|
args.repeat = opts.repeat;
|
|
40687
40817
|
if (opts.type !== void 0)
|
|
@@ -41032,7 +41162,15 @@ Examples:
|
|
|
41032
41162
|
// build/commands/generated/customers.js
|
|
41033
41163
|
function registerCustomersCommands(parent) {
|
|
41034
41164
|
const resource = parent.command("customers").description("Manage customers");
|
|
41035
|
-
resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, subscription_status, invoicing_entity_id, segment_id, custom_properties, payment_method_type, integration_entity_id, created_at, and updated_at. Sortable by created_at or updated_at. Paginated with limit/cursor.`).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.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--
|
|
41165
|
+
resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, tax_id_status, subscription_status, invoicing_entity_id, segment_id, custom_properties, payment_method_type, integration_entity_id, created_at, and updated_at. Sortable by created_at or updated_at. Paginated with limit/cursor.`).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.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--tax-id-status <value>", `
|
|
41166
|
+
Verification status of the customer tax ID.
|
|
41167
|
+
|
|
41168
|
+
- \`valid\`: Tax ID has been verified and is valid.
|
|
41169
|
+
- \`invalid\`: Tax ID has been verified and is invalid.
|
|
41170
|
+
- \`mismatch\`: Tax ID is valid but is for a different country than the customer's country.
|
|
41171
|
+
- \`unverified\`: Tax ID has not been verified yet.
|
|
41172
|
+
- \`unsupported\`: Tax ID verification for this type not supported yet.
|
|
41173
|
+
`).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("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--country <value>", `country`).option("--country.not <value>", `country__not`).option("--country.is-null <value>", `country__isNull`).option("--country.is-not-null <value>", `country__isNotNull`).option("--country.equals <value>", `country__equals`).option("--country.contains <value>", `country__contains`).option("--country.starts-with <value>", `country__startsWith`).option("--country.end-with <value>", `country__endWith`).option("--external-id <value>", `external_id`).option("--external-id.not <value>", `external_id__not`).option("--external-id.is-null <value>", `external_id__isNull`).option("--external-id.is-not-null <value>", `external_id__isNotNull`).option("--external-id.equals <value>", `external_id__equals`).option("--external-id.contains <value>", `external_id__contains`).option("--external-id.starts-with <value>", `external_id__startsWith`).option("--external-id.end-with <value>", `external_id__endWith`).option("--billing-email <value>", `billing_email`).option("--billing-email.not <value>", `billing_email__not`).option("--billing-email.is-null <value>", `billing_email__isNull`).option("--billing-email.is-not-null <value>", `billing_email__isNotNull`).option("--billing-email.equals <value>", `billing_email__equals`).option("--billing-email.contains <value>", `billing_email__contains`).option("--billing-email.starts-with <value>", `billing_email__startsWith`).option("--billing-email.end-with <value>", `billing_email__endWith`).option("--search <value>", `search`).option("--tax-id <value>", `tax_id`).option("--tax-id.not <value>", `tax_id__not`).option("--tax-id.is-null <value>", `tax_id__isNull`).option("--tax-id.is-not-null <value>", `tax_id__isNotNull`).option("--tax-id.equals <value>", `tax_id__equals`).option("--tax-id.contains <value>", `tax_id__contains`).option("--tax-id.starts-with <value>", `tax_id__startsWith`).option("--tax-id.end-with <value>", `tax_id__endWith`).option("--subscription-status <value>", `subscription_status`).option("--subscription-status.in <value>", `subscription_status__in`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--segment-id <value>", `segment_id`).option("--custom-properties <value>", `custom_properties`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-type.in <value>", `payment_method_type__in`).option("--integration-entity-id <value>", `integration_entity_id`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.is-null <value>", `created_at__isNull`).option("--created-at.is-not-null <value>", `created_at__isNotNull`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
|
|
41036
41174
|
Examples:
|
|
41037
41175
|
hyperline customers list
|
|
41038
41176
|
hyperline customers list --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
@@ -41050,6 +41188,8 @@ Examples:
|
|
|
41050
41188
|
args.order = opts.order;
|
|
41051
41189
|
if (opts.sort !== void 0)
|
|
41052
41190
|
args.sort = opts.sort;
|
|
41191
|
+
if (opts.taxIdStatus !== void 0)
|
|
41192
|
+
args.tax_id_status = opts.taxIdStatus;
|
|
41053
41193
|
if (opts.name !== void 0)
|
|
41054
41194
|
args.name = opts.name;
|
|
41055
41195
|
if (opts["name.not"] !== void 0)
|
|
@@ -41234,6 +41374,7 @@ Examples:
|
|
|
41234
41374
|
"include_total",
|
|
41235
41375
|
"order",
|
|
41236
41376
|
"sort",
|
|
41377
|
+
"tax_id_status",
|
|
41237
41378
|
"name",
|
|
41238
41379
|
"name__not",
|
|
41239
41380
|
"name__isNull",
|
|
@@ -42216,7 +42357,7 @@ Examples:
|
|
|
42216
42357
|
queryParamKeys: []
|
|
42217
42358
|
});
|
|
42218
42359
|
});
|
|
42219
|
-
resource.command("update-customer-credit-portal-settings").description(`Enable or disable customer portal credit top-ups for a customer and credit product, with the price configuration (or a custom price) the customer pays. Enabling requires the customer's credit balance for the product: create it first (createCustomerCredit, a 0 balance is fine).`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--enabled", `Whether the customer can buy this credit product from the customer portal. Enabling requires a price: \`price_configuration_id\`, \`custom_price_configuration\`, or the price already set. Disabling clears the price and removes the customer's own price.`).option("--price-configuration-id <value>", `ID of one of the credit product's price configurations, in the customer's price book and currency, of type \`bundle\`, \`volume\` or \`bulk\`. Mutually exclusive with \`custom_price_configuration\`.`).option("--custom-price-configuration <json>", `A price of the customer's own, in the customer's currency, replacing any previous one. Same shape as a credit product price configuration. Mutually exclusive with \`price_configuration_id\`.`).addHelpText("after", `
|
|
42360
|
+
resource.command("update-customer-credit-portal-settings").description(`Enable or disable customer portal credit top-ups for a customer and credit product, with the price configuration (or a custom price) the customer pays. Enabling requires the customer's credit balance for the product: create it first (createCustomerCredit, a 0 balance is fine).`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--enabled", `Whether the customer can buy this credit product from the customer portal. Enabling requires a price: \`price_configuration_id\`, \`custom_price_configuration\`, or the price already set. Disabling clears the price and removes the customer's own price.`).option("--price-configuration-id <value>", `ID of one of the credit product's price configurations, in the customer's price book and currency, of type \`bundle\`, \`volume\` or \`bulk\`. Mutually exclusive with \`custom_price_configuration\`.`).option("--custom-price-configuration <json>", `A price of the customer's own, in the customer's currency, replacing any previous one. Same shape as a credit product price configuration. Mutually exclusive with \`price_configuration_id\`. It needs at least one price; \`unit_count\` is a whole number of at least 1; \`amount\` is never negative, a \`bundle\` pack is never free, and the price is not free altogether; volume tiers start at 0 and each starts where the previous one ends; bulk tiers are in increasing \`to\` order; only the last tier has \`to: null\`. Otherwise the request fails with reason \`invalid_custom_price\`.`).addHelpText("after", `
|
|
42220
42361
|
Examples:
|
|
42221
42362
|
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled
|
|
42222
42363
|
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled --price-configuration-id <price_configuration_id> --custom-price-configuration <custom_price_configuration>
|
|
@@ -43373,7 +43514,7 @@ Examples:
|
|
|
43373
43514
|
queryParamKeys: []
|
|
43374
43515
|
});
|
|
43375
43516
|
});
|
|
43376
|
-
resource.command("void").description(`Void an invoice in to_pay status. Automatically generates a corresponding credit note. Optionally send an email notification.`).requiredOption("--id <value>", `id parameter`).option("--send-email", `Indicates if an email for the generated credit note should be sent to the customer.`).addHelpText("after", `
|
|
43517
|
+
resource.command("void").description(`Void an invoice in to_pay status. Automatically generates a corresponding credit note. A zero-priced paid invoice can also be voided, without a credit note. Optionally send an email notification.`).requiredOption("--id <value>", `id parameter`).option("--send-email", `Indicates if an email for the generated credit note should be sent to the customer.`).addHelpText("after", `
|
|
43377
43518
|
Examples:
|
|
43378
43519
|
hyperline invoices void --id <id>
|
|
43379
43520
|
hyperline invoices void --id <id> --send-email
|
|
@@ -43886,68 +44027,6 @@ Examples:
|
|
|
43886
44027
|
});
|
|
43887
44028
|
}
|
|
43888
44029
|
|
|
43889
|
-
// build/commands/generated/monitoring.js
|
|
43890
|
-
function registerMonitoringCommands(parent) {
|
|
43891
|
-
const resource = parent.command("monitoring").description("Manage monitoring");
|
|
43892
|
-
resource.command("list-monitoring-analyses").description(`List customer health analyses from the monitoring agent, newest first: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals. Filter by customer (Hyperline or external ID) with limit=1 to get a customer's current health score. Only completed analyses unless status is set.`).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.`).option("--customer-id <value>", `Return only analyses of this customer. Accepts the Hyperline ID or your own external ID.`).option("--status <value>", `Return only analyses with this status. Defaults to \`completed\`, the analyses that carry a score.`).option("--created-at.gte <value>", `Return only analyses created at or after this date.`).option("--created-at.lte <value>", `Return only analyses created at or before this date.`).addHelpText("after", `
|
|
43893
|
-
Examples:
|
|
43894
|
-
hyperline monitoring list-monitoring-analyses
|
|
43895
|
-
hyperline monitoring list-monitoring-analyses --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
43896
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
43897
|
-
if (!ctx) {
|
|
43898
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
43899
|
-
process.exit(1);
|
|
43900
|
-
}
|
|
43901
|
-
const args = {};
|
|
43902
|
-
if (opts.cursor !== void 0)
|
|
43903
|
-
args.cursor = opts.cursor;
|
|
43904
|
-
if (opts.includeTotal !== void 0)
|
|
43905
|
-
args.include_total = opts.includeTotal;
|
|
43906
|
-
if (opts.customerId !== void 0)
|
|
43907
|
-
args.customer_id = opts.customerId;
|
|
43908
|
-
if (opts.status !== void 0)
|
|
43909
|
-
args.status = opts.status;
|
|
43910
|
-
if (opts["createdAt.gte"] !== void 0)
|
|
43911
|
-
args.created_at__gte = opts["createdAt.gte"];
|
|
43912
|
-
if (opts["createdAt.lte"] !== void 0)
|
|
43913
|
-
args.created_at__lte = opts["createdAt.lte"];
|
|
43914
|
-
if (opts.limit !== void 0)
|
|
43915
|
-
args.limit = Number(opts.limit);
|
|
43916
|
-
await ctx.execute({
|
|
43917
|
-
method: "GET",
|
|
43918
|
-
path: "/v1/agents/monitoring/analyses",
|
|
43919
|
-
args,
|
|
43920
|
-
queryParamKeys: [
|
|
43921
|
-
"limit",
|
|
43922
|
-
"cursor",
|
|
43923
|
-
"include_total",
|
|
43924
|
-
"customer_id",
|
|
43925
|
-
"status",
|
|
43926
|
-
"created_at__gte",
|
|
43927
|
-
"created_at__lte"
|
|
43928
|
-
]
|
|
43929
|
-
});
|
|
43930
|
-
});
|
|
43931
|
-
resource.command("get-monitoring-analysis").description(`Get one customer health analysis by ID: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
43932
|
-
Examples:
|
|
43933
|
-
hyperline monitoring get-monitoring-analysis --id <id>`).action(async (opts) => {
|
|
43934
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
43935
|
-
if (!ctx) {
|
|
43936
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
43937
|
-
process.exit(1);
|
|
43938
|
-
}
|
|
43939
|
-
const args = {};
|
|
43940
|
-
if (opts.id !== void 0)
|
|
43941
|
-
args.id = opts.id;
|
|
43942
|
-
await ctx.execute({
|
|
43943
|
-
method: "GET",
|
|
43944
|
-
path: "/v1/agents/monitoring/analyses/{id}",
|
|
43945
|
-
args,
|
|
43946
|
-
queryParamKeys: []
|
|
43947
|
-
});
|
|
43948
|
-
});
|
|
43949
|
-
}
|
|
43950
|
-
|
|
43951
44030
|
// build/commands/generated/organisations.js
|
|
43952
44031
|
function registerOrganisationsCommands(parent) {
|
|
43953
44032
|
const resource = parent.command("organisations").description("Manage organisations");
|
|
@@ -44233,7 +44312,7 @@ Examples:
|
|
|
44233
44312
|
queryParamKeys: []
|
|
44234
44313
|
});
|
|
44235
44314
|
});
|
|
44236
|
-
resource.command("create").description(`Create a new price configuration on an existing product. Specify the product_id, pricing type (fee, volume, bulk, packaged, bps, bundle), currency, billing interval, and price tiers. Supports metering_filter for dynamic products.`).requiredOption("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--countries <json>", `Countries this price configuration is eligible in. Omit or send \`null\` to make it eligible in every country. An empty array restricts it to customers that have no country set.`).option("--price-book-id <value>", `ID of the price book to which this price configuration belongs to. If null, the price configuration belongs to the default price book.`).requiredOption("--billing-interval <json>", `Billing interval on which the price configuration is eligible.`).option("--commitment-interval <json>", `Commitment interval on which the price configuration is eligible.`).requiredOption("--type <value>", `type`).requiredOption("--prices <json>", `Price tiers of the price configuration. If fixed amount, only one price is available.`).requiredOption("--product-id <value>", `ID of the product to add the price configuration to.`).option("--metering-filter <json>", `Filter to scope which billable events are eligible for this price configuration.`).option("--allow-on-portal", `allow_on_portal`).addHelpText("after", `
|
|
44315
|
+
resource.command("create").description(`Create a new price configuration on an existing product. Specify the product_id, pricing type (fee, volume, bulk, packaged, bps, bundle), currency, billing interval, and price tiers. Supports metering_filter for dynamic products.`).requiredOption("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--countries <json>", `Countries this price configuration is eligible in. Omit or send \`null\` to make it eligible in every country. An empty array restricts it to customers that have no country set.`).option("--price-book-id <value>", `ID of the price book to which this price configuration belongs to. If null, the price configuration belongs to the default price book.`).requiredOption("--billing-interval <json>", `Billing interval on which the price configuration is eligible.`).option("--commitment-interval <json>", `Commitment interval on which the price configuration is eligible.`).requiredOption("--type <value>", `type`).requiredOption("--prices <json>", `Price tiers of the price configuration. If fixed amount, only one price is available.`).requiredOption("--product-id <value>", `ID of the product to add the price configuration to.`).option("--metering-filter <json>", `Filter to scope which billable events are eligible for this price configuration.`).option("--aggregator-filter-id <value>", `ID of an existing metering filter of the product's aggregator to attach to this price configuration, instead of creating a new one with \`metering_filter\`.`).option("--allow-on-portal", `allow_on_portal`).addHelpText("after", `
|
|
44237
44316
|
Examples:
|
|
44238
44317
|
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id>
|
|
44239
44318
|
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id> --countries <countries> --price-book-id <price_book_id>
|
|
@@ -44252,6 +44331,8 @@ Examples:
|
|
|
44252
44331
|
args.type = opts.type;
|
|
44253
44332
|
if (opts.productId !== void 0)
|
|
44254
44333
|
args.product_id = opts.productId;
|
|
44334
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
44335
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
44255
44336
|
if (opts.allowOnPortal !== void 0)
|
|
44256
44337
|
args.allow_on_portal = true;
|
|
44257
44338
|
if (opts.countries !== void 0)
|
|
@@ -44665,12 +44746,12 @@ Quote status.
|
|
|
44665
44746
|
- \`draft\`: The quote is a draft.
|
|
44666
44747
|
- \`approved\`: The quote is approved and ready to be sent to the customer.
|
|
44667
44748
|
- \`pending_signature\`: The quote is awaiting the customer's signature.
|
|
44668
|
-
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation. 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("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).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 <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `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.
|
|
44749
|
+
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation. 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("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).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("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `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.
|
|
44669
44750
|
|
|
44670
44751
|
- \`all\`: Display all pricing tiers.
|
|
44671
44752
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
44672
44753
|
- \`none\`: Hide all pricing tiers.
|
|
44673
|
-
`).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("--subscription-update-display <value>", `Sections displayed on subscription update quotes: quote_update_details, subscription_details, or both. Takes precedence over display_subscription_on_update.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration or an \`invoice\` payload must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <json>", `Subscription configuration constituting the quote.`).option("--invoice <json>", `Invoice configuration constituting the one-off quote. When provided, a draft invoice is created and linked to the quote. Cannot be combined with \`subscription\` or \`template_id\`.`).addHelpText("after", `
|
|
44754
|
+
`).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-discounts-on-total <value>", `Display discounts on the totals, with product prices before discount. Totals then follow the contract value, so discounts with a limited duration are included.`).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("--subscription-update-display <value>", `Sections displayed on subscription update quotes: quote_update_details, subscription_details, or both. Takes precedence over display_subscription_on_update.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration or an \`invoice\` payload must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <json>", `Subscription configuration constituting the quote.`).option("--invoice <json>", `Invoice configuration constituting the one-off quote. When provided, a draft invoice is created and linked to the quote. Cannot be combined with \`subscription\` or \`template_id\`.`).addHelpText("after", `
|
|
44674
44755
|
Examples:
|
|
44675
44756
|
hyperline quotes create --customer-id <customer_id>
|
|
44676
44757
|
hyperline quotes create --customer-id <customer_id> --status <status> --owner-email <owner_email>
|
|
@@ -44709,6 +44790,8 @@ Examples:
|
|
|
44709
44790
|
args.display_price_tiers = opts.displayPriceTiers;
|
|
44710
44791
|
if (opts.displayPhaseValue !== void 0)
|
|
44711
44792
|
args.display_phase_value = opts.displayPhaseValue;
|
|
44793
|
+
if (opts.displayDiscountsOnTotal !== void 0)
|
|
44794
|
+
args.display_discounts_on_total = opts.displayDiscountsOnTotal;
|
|
44712
44795
|
if (opts.displayFirstInvoiceAmount !== void 0)
|
|
44713
44796
|
args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
|
|
44714
44797
|
if (opts.displayDocumentsInPreview !== void 0)
|
|
@@ -44723,6 +44806,8 @@ Examples:
|
|
|
44723
44806
|
args.expires_at = opts.expiresAt;
|
|
44724
44807
|
if (opts.amount !== void 0)
|
|
44725
44808
|
args.amount = Number(opts.amount);
|
|
44809
|
+
if (opts.contractValue !== void 0)
|
|
44810
|
+
args.contract_value = Number(opts.contractValue);
|
|
44726
44811
|
if (opts.collectCustomPropertyIds !== void 0)
|
|
44727
44812
|
args.collect_custom_property_ids = JSON.parse(opts.collectCustomPropertyIds);
|
|
44728
44813
|
if (opts.contractClauseIds !== void 0)
|
|
@@ -44738,7 +44823,7 @@ Examples:
|
|
|
44738
44823
|
queryParamKeys: []
|
|
44739
44824
|
});
|
|
44740
44825
|
});
|
|
44741
|
-
resource.command("list").description(`List quotes with optional filters for id, number, status, customer_id, template_id, crm_opportunity_id, type, and updated_at. Paginated with take/skip.`).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("--number <value>", `number`).option("--number.not <value>", `number__not`).option("--number.is-null <value>", `number__isNull`).option("--number.is-not-null <value>", `number__isNotNull`).option("--number.equals <value>", `number__equals`).option("--number.contains <value>", `number__contains`).option("--number.starts-with <value>", `number__startsWith`).option("--number.end-with <value>", `number__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--template-id <value>", `template_id`).option("--template-id.not <value>", `template_id__not`).option("--template-id.is-null <value>", `template_id__isNull`).option("--template-id.is-not-null <value>", `template_id__isNotNull`).option("--template-id.equals <value>", `template_id__equals`).option("--template-id.contains <value>", `template_id__contains`).option("--template-id.starts-with <value>", `template_id__startsWith`).option("--template-id.end-with <value>", `template_id__endWith`).option("--crm-opportunity-id <value>", `crm_opportunity_id`).option("--crm-opportunity-id.not <value>", `crm_opportunity_id__not`).option("--crm-opportunity-id.is-null <value>", `crm_opportunity_id__isNull`).option("--crm-opportunity-id.is-not-null <value>", `crm_opportunity_id__isNotNull`).option("--crm-opportunity-id.equals <value>", `crm_opportunity_id__equals`).option("--crm-opportunity-id.contains <value>", `crm_opportunity_id__contains`).option("--crm-opportunity-id.starts-with <value>", `crm_opportunity_id__startsWith`).option("--crm-opportunity-id.end-with <value>", `crm_opportunity_id__endWith`).option("--type <value>", `type`).option("--
|
|
44826
|
+
resource.command("list").description(`List quotes with optional filters for id, number, status, customer_id, template_id, crm_opportunity_id, type, and updated_at. Paginated with take/skip.`).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("--number <value>", `number`).option("--number.not <value>", `number__not`).option("--number.is-null <value>", `number__isNull`).option("--number.is-not-null <value>", `number__isNotNull`).option("--number.equals <value>", `number__equals`).option("--number.contains <value>", `number__contains`).option("--number.starts-with <value>", `number__startsWith`).option("--number.end-with <value>", `number__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--template-id <value>", `template_id`).option("--template-id.not <value>", `template_id__not`).option("--template-id.is-null <value>", `template_id__isNull`).option("--template-id.is-not-null <value>", `template_id__isNotNull`).option("--template-id.equals <value>", `template_id__equals`).option("--template-id.contains <value>", `template_id__contains`).option("--template-id.starts-with <value>", `template_id__startsWith`).option("--template-id.end-with <value>", `template_id__endWith`).option("--crm-opportunity-id <value>", `crm_opportunity_id`).option("--crm-opportunity-id.not <value>", `crm_opportunity_id__not`).option("--crm-opportunity-id.is-null <value>", `crm_opportunity_id__isNull`).option("--crm-opportunity-id.is-not-null <value>", `crm_opportunity_id__isNotNull`).option("--crm-opportunity-id.equals <value>", `crm_opportunity_id__equals`).option("--crm-opportunity-id.contains <value>", `crm_opportunity_id__contains`).option("--crm-opportunity-id.starts-with <value>", `crm_opportunity_id__startsWith`).option("--crm-opportunity-id.end-with <value>", `crm_opportunity_id__endWith`).option("--type <value>", `type`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
|
|
44742
44827
|
Examples:
|
|
44743
44828
|
hyperline quotes list
|
|
44744
44829
|
hyperline quotes list --take <take> --id <id>`).action(async (opts) => {
|
|
@@ -44834,20 +44919,6 @@ Examples:
|
|
|
44834
44919
|
args.crm_opportunity_id__endWith = opts["crmOpportunityId.endWith"];
|
|
44835
44920
|
if (opts.type !== void 0)
|
|
44836
44921
|
args.type = opts.type;
|
|
44837
|
-
if (opts["type.not"] !== void 0)
|
|
44838
|
-
args.type__not = opts["type.not"];
|
|
44839
|
-
if (opts["type.isNull"] !== void 0)
|
|
44840
|
-
args.type__isNull = opts["type.isNull"];
|
|
44841
|
-
if (opts["type.isNotNull"] !== void 0)
|
|
44842
|
-
args.type__isNotNull = opts["type.isNotNull"];
|
|
44843
|
-
if (opts["type.equals"] !== void 0)
|
|
44844
|
-
args.type__equals = opts["type.equals"];
|
|
44845
|
-
if (opts["type.contains"] !== void 0)
|
|
44846
|
-
args.type__contains = opts["type.contains"];
|
|
44847
|
-
if (opts["type.startsWith"] !== void 0)
|
|
44848
|
-
args.type__startsWith = opts["type.startsWith"];
|
|
44849
|
-
if (opts["type.endWith"] !== void 0)
|
|
44850
|
-
args.type__endWith = opts["type.endWith"];
|
|
44851
44922
|
if (opts.updatedAt !== void 0)
|
|
44852
44923
|
args.updated_at = opts.updatedAt;
|
|
44853
44924
|
if (opts["updatedAt.not"] !== void 0)
|
|
@@ -44920,13 +44991,6 @@ Examples:
|
|
|
44920
44991
|
"crm_opportunity_id__startsWith",
|
|
44921
44992
|
"crm_opportunity_id__endWith",
|
|
44922
44993
|
"type",
|
|
44923
|
-
"type__not",
|
|
44924
|
-
"type__isNull",
|
|
44925
|
-
"type__isNotNull",
|
|
44926
|
-
"type__equals",
|
|
44927
|
-
"type__contains",
|
|
44928
|
-
"type__startsWith",
|
|
44929
|
-
"type__endWith",
|
|
44930
44994
|
"updated_at",
|
|
44931
44995
|
"updated_at__not",
|
|
44932
44996
|
"updated_at__isNull",
|
|
@@ -44957,12 +45021,12 @@ Examples:
|
|
|
44957
45021
|
queryParamKeys: []
|
|
44958
45022
|
});
|
|
44959
45023
|
});
|
|
44960
|
-
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` inline \u2014 the full configuration, not a reference to an existing subscription \u2014 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. Discover product and price configuration IDs with \`get_catalog_context\`.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).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 <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `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.
|
|
45024
|
+
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` inline \u2014 the full configuration, not a reference to an existing subscription \u2014 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. Discover product and price configuration IDs with \`get_catalog_context\`.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).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("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value. Set to \`null\` to go back to the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `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.
|
|
44961
45025
|
|
|
44962
45026
|
- \`all\`: Display all pricing tiers.
|
|
44963
45027
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
44964
45028
|
- \`none\`: Hide all pricing tiers.
|
|
44965
|
-
`).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("--subscription-update-display <value>", `Sections displayed on subscription update quotes: quote_update_details, subscription_details, or both. Takes precedence over display_subscription_on_update.`).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 <json>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <json>", `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", `
|
|
45029
|
+
`).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-discounts-on-total <value>", `Display discounts on the totals, with product prices before discount. Totals then follow the contract value, so discounts with a limited duration are included.`).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("--subscription-update-display <value>", `Sections displayed on subscription update quotes: quote_update_details, subscription_details, or both. Takes precedence over display_subscription_on_update.`).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 <json>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <json>", `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", `
|
|
44966
45030
|
Examples:
|
|
44967
45031
|
hyperline quotes update --id <id>
|
|
44968
45032
|
hyperline quotes update --id <id> --owner-email <owner_email> --catalog-version-id <catalog_version_id>
|
|
@@ -44997,6 +45061,8 @@ Examples:
|
|
|
44997
45061
|
args.display_price_tiers = opts.displayPriceTiers;
|
|
44998
45062
|
if (opts.displayPhaseValue !== void 0)
|
|
44999
45063
|
args.display_phase_value = opts.displayPhaseValue;
|
|
45064
|
+
if (opts.displayDiscountsOnTotal !== void 0)
|
|
45065
|
+
args.display_discounts_on_total = opts.displayDiscountsOnTotal;
|
|
45000
45066
|
if (opts.displayFirstInvoiceAmount !== void 0)
|
|
45001
45067
|
args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
|
|
45002
45068
|
if (opts.displayDocumentsInPreview !== void 0)
|
|
@@ -45011,6 +45077,8 @@ Examples:
|
|
|
45011
45077
|
args.expires_at = opts.expiresAt;
|
|
45012
45078
|
if (opts.amount !== void 0)
|
|
45013
45079
|
args.amount = Number(opts.amount);
|
|
45080
|
+
if (opts.contractValue !== void 0)
|
|
45081
|
+
args.contract_value = Number(opts.contractValue);
|
|
45014
45082
|
if (opts.collectCustomPropertyIds !== void 0)
|
|
45015
45083
|
args.collect_custom_property_ids = JSON.parse(opts.collectCustomPropertyIds);
|
|
45016
45084
|
if (opts.contractClauseIds !== void 0)
|
|
@@ -45088,6 +45156,25 @@ Examples:
|
|
|
45088
45156
|
queryParamKeys: []
|
|
45089
45157
|
});
|
|
45090
45158
|
});
|
|
45159
|
+
resource.command("redraft").description(`Switch a quote back to draft so its subscription or invoice configuration can be updated. Works on quotes pending approval, with changes requested, approved, or awaiting signature. Cancels pending approval requests and the signature request; the quote must then be finalized again.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45160
|
+
Examples:
|
|
45161
|
+
hyperline quotes redraft --id <id>
|
|
45162
|
+
hyperline quotes redraft --id <id> --output json`).action(async (opts) => {
|
|
45163
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45164
|
+
if (!ctx) {
|
|
45165
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45166
|
+
process.exit(1);
|
|
45167
|
+
}
|
|
45168
|
+
const args = {};
|
|
45169
|
+
if (opts.id !== void 0)
|
|
45170
|
+
args.id = opts.id;
|
|
45171
|
+
await ctx.execute({
|
|
45172
|
+
method: "POST",
|
|
45173
|
+
path: "/v1/quotes/{id}/redraft",
|
|
45174
|
+
args,
|
|
45175
|
+
queryParamKeys: []
|
|
45176
|
+
});
|
|
45177
|
+
});
|
|
45091
45178
|
resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).option("--email <value>", `Email address to which the quote will be sent for signature. Required unless the quote has signers, in which case the email goes to the signers of the current step and this field is ignored.`).option("--message <value>", `Custom message used in the email content.`).addHelpText("after", `
|
|
45092
45179
|
Examples:
|
|
45093
45180
|
hyperline quotes send --id <id>
|
|
@@ -45781,7 +45868,7 @@ Examples:
|
|
|
45781
45868
|
queryParamKeys: []
|
|
45782
45869
|
});
|
|
45783
45870
|
});
|
|
45784
|
-
resource.command("list").description(`List subscriptions with filters for activation_strategy, status, currency, plan_id, original_quote_id, integration_entity_id, customer_id, invoicing_entity_id, purchase_order, updated_at, custom_properties. Draft, voided, cancelled and archived excluded by default (status=all applies the same exclusion); status=any returns every status. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--activation-strategy <value>", `activation_strategy`).option("--activation-strategy.in <value>", `activation_strategy__in`).option("--status <value>", `
|
|
45871
|
+
resource.command("list").description(`List subscriptions with filters for activation_strategy, status, currency, plan_id, original_quote_id, integration_entity_id, customer_id, invoicing_entity_id, purchase_order, updated_at, cancel_at, custom_properties, and the active contract: contract_start__gte/__lte, contract_end__gte/__lte, renew_automatically. For upcoming renewals, combine contract_end__gte/__lte with renew_automatically, plus cancel_at for scheduled cancellations. Draft, voided, cancelled and archived excluded by default (status=all applies the same exclusion); status=any returns every status. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--activation-strategy <value>", `activation_strategy`).option("--activation-strategy.in <value>", `activation_strategy__in`).option("--status <value>", `
|
|
45785
45872
|
Subscription status filter.
|
|
45786
45873
|
|
|
45787
45874
|
- \`active\`, \`pending\`, \`paused\`, \`errored\`, \`cancelled\`, \`draft\`, \`voided\`, \`archived\`: match that status.
|
|
@@ -45790,7 +45877,7 @@ Subscription status filter.
|
|
|
45790
45877
|
- \`any\`: every status, no exclusion.
|
|
45791
45878
|
|
|
45792
45879
|
Use \`status__in\` with comma-separated values to combine statuses. When the filter is omitted, \`draft\`, \`voided\`, \`cancelled\` and \`archived\` subscriptions are excluded.
|
|
45793
|
-
`).option("--status.in <value>", `Comma-separated list of subscription statuses to include. Same values as \`status\`.`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--plan-id <value>", `plan_id`).option("--plan-id.not <value>", `plan_id__not`).option("--plan-id.is-null <value>", `plan_id__isNull`).option("--plan-id.is-not-null <value>", `plan_id__isNotNull`).option("--plan-id.equals <value>", `plan_id__equals`).option("--plan-id.contains <value>", `plan_id__contains`).option("--plan-id.starts-with <value>", `plan_id__startsWith`).option("--plan-id.end-with <value>", `plan_id__endWith`).option("--original-quote-id <value>", `original_quote_id`).option("--original-quote-id.not <value>", `original_quote_id__not`).option("--original-quote-id.is-null <value>", `original_quote_id__isNull`).option("--original-quote-id.is-not-null <value>", `original_quote_id__isNotNull`).option("--original-quote-id.equals <value>", `original_quote_id__equals`).option("--original-quote-id.contains <value>", `original_quote_id__contains`).option("--original-quote-id.starts-with <value>", `original_quote_id__startsWith`).option("--original-quote-id.end-with <value>", `original_quote_id__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--purchase-order <value>", `purchase_order`).option("--purchase-order.not <value>", `purchase_order__not`).option("--purchase-order.is-null <value>", `purchase_order__isNull`).option("--purchase-order.is-not-null <value>", `purchase_order__isNotNull`).option("--purchase-order.equals <value>", `purchase_order__equals`).option("--purchase-order.contains <value>", `purchase_order__contains`).option("--purchase-order.starts-with <value>", `purchase_order__startsWith`).option("--purchase-order.end-with <value>", `purchase_order__endWith`).option("--custom-properties <value>", `custom_properties`).option("--invoice-drafts <value>", `invoice_drafts`).option("--integration-entity-id <value>", `integration_entity_id`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
|
|
45880
|
+
`).option("--status.in <value>", `Comma-separated list of subscription statuses to include. Same values as \`status\`.`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--plan-id <value>", `plan_id`).option("--plan-id.not <value>", `plan_id__not`).option("--plan-id.is-null <value>", `plan_id__isNull`).option("--plan-id.is-not-null <value>", `plan_id__isNotNull`).option("--plan-id.equals <value>", `plan_id__equals`).option("--plan-id.contains <value>", `plan_id__contains`).option("--plan-id.starts-with <value>", `plan_id__startsWith`).option("--plan-id.end-with <value>", `plan_id__endWith`).option("--original-quote-id <value>", `original_quote_id`).option("--original-quote-id.not <value>", `original_quote_id__not`).option("--original-quote-id.is-null <value>", `original_quote_id__isNull`).option("--original-quote-id.is-not-null <value>", `original_quote_id__isNotNull`).option("--original-quote-id.equals <value>", `original_quote_id__equals`).option("--original-quote-id.contains <value>", `original_quote_id__contains`).option("--original-quote-id.starts-with <value>", `original_quote_id__startsWith`).option("--original-quote-id.end-with <value>", `original_quote_id__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--purchase-order <value>", `purchase_order`).option("--purchase-order.not <value>", `purchase_order__not`).option("--purchase-order.is-null <value>", `purchase_order__isNull`).option("--purchase-order.is-not-null <value>", `purchase_order__isNotNull`).option("--purchase-order.equals <value>", `purchase_order__equals`).option("--purchase-order.contains <value>", `purchase_order__contains`).option("--purchase-order.starts-with <value>", `purchase_order__startsWith`).option("--purchase-order.end-with <value>", `purchase_order__endWith`).option("--custom-properties <value>", `custom_properties`).option("--invoice-drafts <value>", `invoice_drafts`).option("--integration-entity-id <value>", `integration_entity_id`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).option("--cancel-at <value>", `cancel_at`).option("--cancel-at.not <value>", `cancel_at__not`).option("--cancel-at.is-null <value>", `cancel_at__isNull`).option("--cancel-at.is-not-null <value>", `cancel_at__isNotNull`).option("--cancel-at.equals <value>", `cancel_at__equals`).option("--cancel-at.lt <value>", `cancel_at__lt`).option("--cancel-at.lte <value>", `cancel_at__lte`).option("--cancel-at.gt <value>", `cancel_at__gt`).option("--cancel-at.gte <value>", `cancel_at__gte`).option("--contract-start.gte <value>", `Return only subscriptions whose active contract starts on or after this date.`).option("--contract-start.lte <value>", `Return only subscriptions whose active contract starts on or before this date.`).option("--contract-end.gte <value>", `Return only subscriptions whose active contract ends on or after this date.`).option("--contract-end.lte <value>", `Return only subscriptions whose active contract ends on or before this date.`).option("--renew-automatically <value>", `Return only subscriptions whose active contract renews automatically (\`true\`) or not (\`false\`).`).addHelpText("after", `
|
|
45794
45881
|
Examples:
|
|
45795
45882
|
hyperline subscriptions list
|
|
45796
45883
|
hyperline subscriptions list --take <take> --activation-strategy <activation_strategy>`).action(async (opts) => {
|
|
@@ -45914,6 +46001,34 @@ Examples:
|
|
|
45914
46001
|
args.updated_at__gt = opts["updatedAt.gt"];
|
|
45915
46002
|
if (opts["updatedAt.gte"] !== void 0)
|
|
45916
46003
|
args.updated_at__gte = opts["updatedAt.gte"];
|
|
46004
|
+
if (opts.cancelAt !== void 0)
|
|
46005
|
+
args.cancel_at = opts.cancelAt;
|
|
46006
|
+
if (opts["cancelAt.not"] !== void 0)
|
|
46007
|
+
args.cancel_at__not = opts["cancelAt.not"];
|
|
46008
|
+
if (opts["cancelAt.isNull"] !== void 0)
|
|
46009
|
+
args.cancel_at__isNull = opts["cancelAt.isNull"];
|
|
46010
|
+
if (opts["cancelAt.isNotNull"] !== void 0)
|
|
46011
|
+
args.cancel_at__isNotNull = opts["cancelAt.isNotNull"];
|
|
46012
|
+
if (opts["cancelAt.equals"] !== void 0)
|
|
46013
|
+
args.cancel_at__equals = opts["cancelAt.equals"];
|
|
46014
|
+
if (opts["cancelAt.lt"] !== void 0)
|
|
46015
|
+
args.cancel_at__lt = opts["cancelAt.lt"];
|
|
46016
|
+
if (opts["cancelAt.lte"] !== void 0)
|
|
46017
|
+
args.cancel_at__lte = opts["cancelAt.lte"];
|
|
46018
|
+
if (opts["cancelAt.gt"] !== void 0)
|
|
46019
|
+
args.cancel_at__gt = opts["cancelAt.gt"];
|
|
46020
|
+
if (opts["cancelAt.gte"] !== void 0)
|
|
46021
|
+
args.cancel_at__gte = opts["cancelAt.gte"];
|
|
46022
|
+
if (opts["contractStart.gte"] !== void 0)
|
|
46023
|
+
args.contract_start__gte = opts["contractStart.gte"];
|
|
46024
|
+
if (opts["contractStart.lte"] !== void 0)
|
|
46025
|
+
args.contract_start__lte = opts["contractStart.lte"];
|
|
46026
|
+
if (opts["contractEnd.gte"] !== void 0)
|
|
46027
|
+
args.contract_end__gte = opts["contractEnd.gte"];
|
|
46028
|
+
if (opts["contractEnd.lte"] !== void 0)
|
|
46029
|
+
args.contract_end__lte = opts["contractEnd.lte"];
|
|
46030
|
+
if (opts.renewAutomatically !== void 0)
|
|
46031
|
+
args.renew_automatically = opts.renewAutomatically;
|
|
45917
46032
|
if (opts.take !== void 0)
|
|
45918
46033
|
args.take = Number(opts.take);
|
|
45919
46034
|
if (opts.skip !== void 0)
|
|
@@ -45981,7 +46096,21 @@ Examples:
|
|
|
45981
46096
|
"updated_at__lt",
|
|
45982
46097
|
"updated_at__lte",
|
|
45983
46098
|
"updated_at__gt",
|
|
45984
|
-
"updated_at__gte"
|
|
46099
|
+
"updated_at__gte",
|
|
46100
|
+
"cancel_at",
|
|
46101
|
+
"cancel_at__not",
|
|
46102
|
+
"cancel_at__isNull",
|
|
46103
|
+
"cancel_at__isNotNull",
|
|
46104
|
+
"cancel_at__equals",
|
|
46105
|
+
"cancel_at__lt",
|
|
46106
|
+
"cancel_at__lte",
|
|
46107
|
+
"cancel_at__gt",
|
|
46108
|
+
"cancel_at__gte",
|
|
46109
|
+
"contract_start__gte",
|
|
46110
|
+
"contract_start__lte",
|
|
46111
|
+
"contract_end__gte",
|
|
46112
|
+
"contract_end__lte",
|
|
46113
|
+
"renew_automatically"
|
|
45985
46114
|
]
|
|
45986
46115
|
});
|
|
45987
46116
|
});
|
|
@@ -47201,7 +47330,7 @@ function registerAllCommands(program2) {
|
|
|
47201
47330
|
registerInvoicesCommands(program2);
|
|
47202
47331
|
registerInvoices_TransactionsCommands(program2);
|
|
47203
47332
|
registerInvoicing_EntitiesCommands(program2);
|
|
47204
|
-
|
|
47333
|
+
registerAi_MonitoringCommands(program2);
|
|
47205
47334
|
registerPaymentsCommands(program2);
|
|
47206
47335
|
registerProductsCommands(program2);
|
|
47207
47336
|
registerPrice_ConfigurationsCommands(program2);
|
|
@@ -63227,6 +63356,7 @@ var de = {
|
|
|
63227
63356
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
63228
63357
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
63229
63358
|
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
63359
|
+
"accounting.transactionChargedBack.entryDescription": "R\xFCckbuchung f\xFCr Rechnung {{invoiceId}}",
|
|
63230
63360
|
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
63231
63361
|
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
63232
63362
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
@@ -63235,6 +63365,8 @@ var de = {
|
|
|
63235
63365
|
"einvoicing.paymentFromWallet": "Zahlung aus Guthaben",
|
|
63236
63366
|
"einvoicing.paymentProcessed": "Zahlung verarbeitet",
|
|
63237
63367
|
"einvoicing.paymentReceived": "Zahlung erhalten",
|
|
63368
|
+
"invoices.minimumFee.adjustmentName": "Anpassung der Mindestgeb\xFChr",
|
|
63369
|
+
"invoices.minimumFee.name": "Mindestgeb\xFChr",
|
|
63238
63370
|
"invoices.outstandingProduct.description": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{date}}",
|
|
63239
63371
|
"invoices.outstandingProduct.descriptionPeriod": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{periodStart}} bis {{periodEnd}}",
|
|
63240
63372
|
"invoices.outstandingProduct.name": "Offener Saldo",
|
|
@@ -63268,6 +63400,8 @@ var en = {
|
|
|
63268
63400
|
"creditNotes.refundChargeName": "Refund for invoice",
|
|
63269
63401
|
"credits.bundleOf": "{{productName}} - Pack of {{creditCount}} credits",
|
|
63270
63402
|
"credits.unitsOf": "{{productName}} - {{creditCount}} credits",
|
|
63403
|
+
"invoices.minimumFee.adjustmentName": "Minimum fee adjustment",
|
|
63404
|
+
"invoices.minimumFee.name": "Minimum fee",
|
|
63271
63405
|
"invoices.outstandingProduct.description": "Unpaid amount from the invoice{{invoiceNumber}} emitted on {{date}}",
|
|
63272
63406
|
"invoices.outstandingProduct.descriptionPeriod": "Unpaid amount from the invoice{{invoiceNumber}} from {{periodStart}} to {{periodEnd}}",
|
|
63273
63407
|
"invoices.outstandingProduct.name": "Outstanding balance",
|
|
@@ -63297,6 +63431,7 @@ var en = {
|
|
|
63297
63431
|
"accounting.invoicePosted.entryDescription": "Posting entry for Invoice {{invoiceId}} issued",
|
|
63298
63432
|
"accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
|
|
63299
63433
|
"accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
|
|
63434
|
+
"accounting.transactionChargedBack.entryDescription": "Chargeback for Invoice {{invoiceId}}",
|
|
63300
63435
|
"accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
|
|
63301
63436
|
"accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
|
|
63302
63437
|
"accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
|
|
@@ -63321,6 +63456,7 @@ var es = {
|
|
|
63321
63456
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63322
63457
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63323
63458
|
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63459
|
+
"accounting.transactionChargedBack.entryDescription": "Contracargo de la factura {{invoiceId}}",
|
|
63324
63460
|
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
63325
63461
|
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
63326
63462
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
@@ -63329,6 +63465,8 @@ var es = {
|
|
|
63329
63465
|
"einvoicing.paymentFromWallet": "Pago desde el monedero",
|
|
63330
63466
|
"einvoicing.paymentProcessed": "Pago procesado",
|
|
63331
63467
|
"einvoicing.paymentReceived": "Pago recibido",
|
|
63468
|
+
"invoices.minimumFee.adjustmentName": "Ajuste del cargo m\xEDnimo",
|
|
63469
|
+
"invoices.minimumFee.name": "Cargo m\xEDnimo",
|
|
63332
63470
|
"invoices.outstandingProduct.description": "Monto pendiente de la factura{{invoiceNumber}} emitida el {{date}}",
|
|
63333
63471
|
"invoices.outstandingProduct.descriptionPeriod": "Monto pendiente de la factura{{invoiceNumber}} del {{periodStart}} al {{periodEnd}}",
|
|
63334
63472
|
"invoices.outstandingProduct.name": "Saldo pendiente",
|
|
@@ -63368,6 +63506,7 @@ var fr = {
|
|
|
63368
63506
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
63369
63507
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
63370
63508
|
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
63509
|
+
"accounting.transactionChargedBack.entryDescription": "R\xE9trofacturation de la facture {{invoiceId}}",
|
|
63371
63510
|
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
63372
63511
|
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
63373
63512
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
@@ -63376,6 +63515,8 @@ var fr = {
|
|
|
63376
63515
|
"einvoicing.paymentFromWallet": "Paiement depuis le portefeuille",
|
|
63377
63516
|
"einvoicing.paymentProcessed": "Paiement effectu\xE9",
|
|
63378
63517
|
"einvoicing.paymentReceived": "Paiement re\xE7u",
|
|
63518
|
+
"invoices.minimumFee.adjustmentName": "Ajustement des frais minimums",
|
|
63519
|
+
"invoices.minimumFee.name": "Frais minimums",
|
|
63379
63520
|
"invoices.outstandingProduct.description": "Montant impay\xE9 de la facture{{invoiceNumber}} \xE9mise le {{date}}",
|
|
63380
63521
|
"invoices.outstandingProduct.descriptionPeriod": "Montant impay\xE9 de la facture{{invoiceNumber}} du {{periodStart}} au {{periodEnd}}",
|
|
63381
63522
|
"invoices.outstandingProduct.name": "Solde impay\xE9",
|
|
@@ -63415,6 +63556,7 @@ var it = {
|
|
|
63415
63556
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
63416
63557
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
63417
63558
|
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
63559
|
+
"accounting.transactionChargedBack.entryDescription": "Riaddebito per la fattura {{invoiceId}}",
|
|
63418
63560
|
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63419
63561
|
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
63420
63562
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
@@ -63423,6 +63565,8 @@ var it = {
|
|
|
63423
63565
|
"einvoicing.paymentFromWallet": "Pagamento dal portafoglio",
|
|
63424
63566
|
"einvoicing.paymentProcessed": "Pagamento elaborato",
|
|
63425
63567
|
"einvoicing.paymentReceived": "Pagamento ricevuto",
|
|
63568
|
+
"invoices.minimumFee.adjustmentName": "Adeguamento all\u2019importo minimo",
|
|
63569
|
+
"invoices.minimumFee.name": "Importo minimo",
|
|
63426
63570
|
"invoices.outstandingProduct.description": "Importo insoluto della fattura{{invoiceNumber}} emessa il {{date}}",
|
|
63427
63571
|
"invoices.outstandingProduct.descriptionPeriod": "Importo insoluto della fattura{{invoiceNumber}} dal {{periodStart}} al {{periodEnd}}",
|
|
63428
63572
|
"invoices.outstandingProduct.name": "Saldo insoluto",
|
|
@@ -63462,6 +63606,7 @@ var lt = {
|
|
|
63462
63606
|
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63463
63607
|
"accounting.revrec.entryDescription": "Pajam\u0173 pripa\u017Einimas pagal grafik\u0105 {{scheduleId}}, laikotarpis {{periodStart}}\u2013{{periodEnd}}",
|
|
63464
63608
|
"accounting.standaloneCreditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}}",
|
|
63609
|
+
"accounting.transactionChargedBack.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} u\u017Egin\u010Dyto mok\u0117jimo gr\u0105\u017Einimas",
|
|
63465
63610
|
"accounting.transactionRefunded.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} gr\u0105\u017Einimas",
|
|
63466
63611
|
"accounting.transactionSettled.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} mok\u0117jimo sudengimas",
|
|
63467
63612
|
"creditNotes.refundChargeName": "S\u0105skaitos fakt\u016Bros gr\u0105\u017Einimas",
|
|
@@ -63470,6 +63615,8 @@ var lt = {
|
|
|
63470
63615
|
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s",
|
|
63471
63616
|
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63472
63617
|
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63618
|
+
"invoices.minimumFee.adjustmentName": "Minimalaus mokes\u010Dio koregavimas",
|
|
63619
|
+
"invoices.minimumFee.name": "Minimalus mokestis",
|
|
63473
63620
|
"invoices.outstandingProduct.description": "Neapmok\u0117ta {{date}} i\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma",
|
|
63474
63621
|
"invoices.outstandingProduct.descriptionPeriod": "Neapmok\u0117ta s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma u\u017E laikotarp\u012F nuo {{periodStart}} iki {{periodEnd}}",
|
|
63475
63622
|
"invoices.outstandingProduct.name": "Neapmok\u0117tas likutis",
|
|
@@ -63509,6 +63656,7 @@ var nl = {
|
|
|
63509
63656
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63510
63657
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
63511
63658
|
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
63659
|
+
"accounting.transactionChargedBack.entryDescription": "Terugboeking voor factuur {{invoiceId}}",
|
|
63512
63660
|
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63513
63661
|
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63514
63662
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
@@ -63517,6 +63665,8 @@ var nl = {
|
|
|
63517
63665
|
"einvoicing.paymentFromWallet": "Betaling uit tegoed",
|
|
63518
63666
|
"einvoicing.paymentProcessed": "Betaling verwerkt",
|
|
63519
63667
|
"einvoicing.paymentReceived": "Betaling ontvangen",
|
|
63668
|
+
"invoices.minimumFee.adjustmentName": "Aanpassing minimumbedrag",
|
|
63669
|
+
"invoices.minimumFee.name": "Minimumbedrag",
|
|
63520
63670
|
"invoices.outstandingProduct.description": "Onbetaald bedrag van de factuur{{invoiceNumber}} uitgegeven op {{date}}",
|
|
63521
63671
|
"invoices.outstandingProduct.descriptionPeriod": "Onbetaald bedrag van de factuur{{invoiceNumber}} van {{periodStart}} tot {{periodEnd}}",
|
|
63522
63672
|
"invoices.outstandingProduct.name": "Openstaand saldo",
|
|
@@ -63556,6 +63706,7 @@ var pl = {
|
|
|
63556
63706
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63557
63707
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
63558
63708
|
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
63709
|
+
"accounting.transactionChargedBack.entryDescription": "Obci\u0105\u017Cenie zwrotne za faktur\u0119 {{invoiceId}}",
|
|
63559
63710
|
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63560
63711
|
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63561
63712
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
@@ -63564,6 +63715,8 @@ var pl = {
|
|
|
63564
63715
|
"einvoicing.paymentFromWallet": "P\u0142atno\u015B\u0107 z portfela",
|
|
63565
63716
|
"einvoicing.paymentProcessed": "P\u0142atno\u015B\u0107 przetworzona",
|
|
63566
63717
|
"einvoicing.paymentReceived": "P\u0142atno\u015B\u0107 otrzymana",
|
|
63718
|
+
"invoices.minimumFee.adjustmentName": "Wyr\xF3wnanie do op\u0142aty minimalnej",
|
|
63719
|
+
"invoices.minimumFee.name": "Op\u0142ata minimalna",
|
|
63567
63720
|
"invoices.outstandingProduct.description": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} wystawionej {{date}}",
|
|
63568
63721
|
"invoices.outstandingProduct.descriptionPeriod": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} od {{periodStart}} do {{periodEnd}}",
|
|
63569
63722
|
"invoices.outstandingProduct.name": "Niezap\u0142acone saldo",
|
|
@@ -63603,6 +63756,7 @@ var pt = {
|
|
|
63603
63756
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63604
63757
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63605
63758
|
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63759
|
+
"accounting.transactionChargedBack.entryDescription": "Estorno da fatura {{invoiceId}}",
|
|
63606
63760
|
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63607
63761
|
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63608
63762
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
@@ -63611,6 +63765,8 @@ var pt = {
|
|
|
63611
63765
|
"einvoicing.paymentFromWallet": "Pagamento da carteira",
|
|
63612
63766
|
"einvoicing.paymentProcessed": "Pagamento processado",
|
|
63613
63767
|
"einvoicing.paymentReceived": "Pagamento recebido",
|
|
63768
|
+
"invoices.minimumFee.adjustmentName": "Ajuste do valor m\xEDnimo",
|
|
63769
|
+
"invoices.minimumFee.name": "Valor m\xEDnimo",
|
|
63614
63770
|
"invoices.outstandingProduct.description": "Valor em aberto da fatura{{invoiceNumber}} emitida em {{date}}",
|
|
63615
63771
|
"invoices.outstandingProduct.descriptionPeriod": "Valor em aberto da fatura{{invoiceNumber}} de {{periodStart}} a {{periodEnd}}",
|
|
63616
63772
|
"invoices.outstandingProduct.name": "Saldo em aberto",
|
|
@@ -63799,6 +63955,223 @@ import * as winston from "winston";
|
|
|
63799
63955
|
|
|
63800
63956
|
// ../hyperline-monitoring/build/logger/formatting/format.js
|
|
63801
63957
|
import prune from "json-prune";
|
|
63958
|
+
|
|
63959
|
+
// ../hyperline-monitoring/build/logger/formatting/logRedaction.js
|
|
63960
|
+
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
63961
|
+
"accesstoken",
|
|
63962
|
+
"apitoken",
|
|
63963
|
+
"assertion",
|
|
63964
|
+
"authorization",
|
|
63965
|
+
"authtoken",
|
|
63966
|
+
"cardnumber",
|
|
63967
|
+
"clientassertion",
|
|
63968
|
+
"codeverifier",
|
|
63969
|
+
"connectionurl",
|
|
63970
|
+
"consumerkey",
|
|
63971
|
+
"cookie",
|
|
63972
|
+
"credential",
|
|
63973
|
+
"credentials",
|
|
63974
|
+
"iban",
|
|
63975
|
+
"idtoken",
|
|
63976
|
+
"privatekey",
|
|
63977
|
+
"publictoken",
|
|
63978
|
+
"refreshtoken",
|
|
63979
|
+
"sessiontoken",
|
|
63980
|
+
"token",
|
|
63981
|
+
"tokenid",
|
|
63982
|
+
"verificationcode"
|
|
63983
|
+
]);
|
|
63984
|
+
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password|passphrase|apikey)$/;
|
|
63985
|
+
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|pass|assertion|verifier|credential|authorization|cookie|iban|cardnumber|code|connectionurl/i;
|
|
63986
|
+
var URL_ONLY_REDACTED_KEYS = /* @__PURE__ */ new Set(["key"]);
|
|
63987
|
+
var OAUTH_CODE_KEY = "code";
|
|
63988
|
+
var OAUTH_CODE_CONTEXT_KEYS = ["state", "grant_type"];
|
|
63989
|
+
var REDACTED_VALUE = "<redacted>";
|
|
63990
|
+
var TRUNCATED_VALUE = "[TRUNCATED: not redacted]";
|
|
63991
|
+
var TRUNCATED_KEY = "[TRUNCATED]";
|
|
63992
|
+
var MAX_REDACTION_DEPTH = 6;
|
|
63993
|
+
var MAX_ARRAY_ENTRIES = 50;
|
|
63994
|
+
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
63995
|
+
var MAX_VISITED_NODES = 5e3;
|
|
63996
|
+
var MAX_CONTAINER_ENTRIES = 1e3;
|
|
63997
|
+
var MAX_STRING_CHARACTERS = 256e3;
|
|
63998
|
+
function redactLogBody({ body }) {
|
|
63999
|
+
return redactValue({
|
|
64000
|
+
value: body,
|
|
64001
|
+
depth: MAX_REDACTION_DEPTH,
|
|
64002
|
+
budget: {
|
|
64003
|
+
remainingNodes: MAX_VISITED_NODES,
|
|
64004
|
+
remainingChars: MAX_STRING_CHARACTERS
|
|
64005
|
+
}
|
|
64006
|
+
});
|
|
64007
|
+
}
|
|
64008
|
+
function redactLogUrl({ url: url2 }) {
|
|
64009
|
+
const queryIndex = url2.indexOf("?");
|
|
64010
|
+
if (queryIndex === -1) {
|
|
64011
|
+
return url2;
|
|
64012
|
+
}
|
|
64013
|
+
if (url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
64014
|
+
return `${url2.slice(0, queryIndex)}?${TRUNCATED_VALUE}`;
|
|
64015
|
+
}
|
|
64016
|
+
const redactedQuery = redactFormEncoded({
|
|
64017
|
+
text: url2.slice(queryIndex + 1),
|
|
64018
|
+
extraRedactedKeys: URL_ONLY_REDACTED_KEYS
|
|
64019
|
+
});
|
|
64020
|
+
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
64021
|
+
}
|
|
64022
|
+
function redactValue({ value, depth, budget }) {
|
|
64023
|
+
if (isOpaqueObject({ value })) {
|
|
64024
|
+
return replaceOpaqueObject({ value });
|
|
64025
|
+
}
|
|
64026
|
+
if (typeof value === "string") {
|
|
64027
|
+
if (value.length > budget.remainingChars) {
|
|
64028
|
+
return TRUNCATED_VALUE;
|
|
64029
|
+
}
|
|
64030
|
+
budget.remainingChars -= value.length;
|
|
64031
|
+
}
|
|
64032
|
+
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
64033
|
+
return isInspectable({ value }) ? TRUNCATED_VALUE : value;
|
|
64034
|
+
}
|
|
64035
|
+
budget.remainingNodes -= 1;
|
|
64036
|
+
if (typeof value === "string") {
|
|
64037
|
+
return redactString({ text: value, budget });
|
|
64038
|
+
}
|
|
64039
|
+
if (value instanceof URLSearchParams) {
|
|
64040
|
+
return redactValue({ value: value.toString(), depth, budget });
|
|
64041
|
+
}
|
|
64042
|
+
if (Array.isArray(value)) {
|
|
64043
|
+
return redactArray({ items: value, depth, budget });
|
|
64044
|
+
}
|
|
64045
|
+
if (isPlainObject2(value)) {
|
|
64046
|
+
return redactObject({ record: value, depth, budget });
|
|
64047
|
+
}
|
|
64048
|
+
return value;
|
|
64049
|
+
}
|
|
64050
|
+
function isOpaqueObject({ value }) {
|
|
64051
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && !isPlainObject2(value) && !(value instanceof URLSearchParams);
|
|
64052
|
+
}
|
|
64053
|
+
function replaceOpaqueObject({ value }) {
|
|
64054
|
+
if (typeof value !== "object" || value === null || value instanceof Date) {
|
|
64055
|
+
return value;
|
|
64056
|
+
}
|
|
64057
|
+
if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {
|
|
64058
|
+
return `[BINARY ${value.byteLength} bytes]`;
|
|
64059
|
+
}
|
|
64060
|
+
if (value instanceof Blob) {
|
|
64061
|
+
return `[BINARY ${value.size} bytes]`;
|
|
64062
|
+
}
|
|
64063
|
+
if (value instanceof FormData || typeof Reflect.get(value, "pipe") === "function") {
|
|
64064
|
+
return "[BINARY stream]";
|
|
64065
|
+
}
|
|
64066
|
+
return TRUNCATED_VALUE;
|
|
64067
|
+
}
|
|
64068
|
+
function redactArray({ items, depth, budget }) {
|
|
64069
|
+
const isTruncated = items.length > MAX_ARRAY_ENTRIES;
|
|
64070
|
+
const keptItems = isTruncated ? items.slice(0, MAX_ARRAY_ENTRIES) : items;
|
|
64071
|
+
let redactedItems;
|
|
64072
|
+
for (const [index, item] of keptItems.entries()) {
|
|
64073
|
+
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
64074
|
+
if (redactedItem !== item) {
|
|
64075
|
+
redactedItems ??= [...keptItems];
|
|
64076
|
+
redactedItems[index] = redactedItem;
|
|
64077
|
+
}
|
|
64078
|
+
}
|
|
64079
|
+
const result = redactedItems ?? keptItems;
|
|
64080
|
+
return isTruncated ? [...result, TRUNCATED_VALUE] : result;
|
|
64081
|
+
}
|
|
64082
|
+
function redactObject({ record: record2, depth, budget }) {
|
|
64083
|
+
const redactedEntries = /* @__PURE__ */ new Map();
|
|
64084
|
+
const carriesOAuthCode = OAUTH_CODE_CONTEXT_KEYS.some((contextKey) => Object.hasOwn(record2, contextKey));
|
|
64085
|
+
const keptKeys = [];
|
|
64086
|
+
let isTruncated = false;
|
|
64087
|
+
for (const key in record2) {
|
|
64088
|
+
if (!Object.hasOwn(record2, key)) {
|
|
64089
|
+
continue;
|
|
64090
|
+
}
|
|
64091
|
+
if (keptKeys.length >= MAX_CONTAINER_ENTRIES || key.length > budget.remainingChars) {
|
|
64092
|
+
isTruncated = true;
|
|
64093
|
+
break;
|
|
64094
|
+
}
|
|
64095
|
+
budget.remainingChars -= key.length;
|
|
64096
|
+
keptKeys.push(key);
|
|
64097
|
+
const nestedValue = record2[key];
|
|
64098
|
+
const isSensitiveKey = isRedactedKey({ key }) || carriesOAuthCode && key === OAUTH_CODE_KEY;
|
|
64099
|
+
const shouldRedact = isSensitiveKey && nestedValue != null && typeof nestedValue !== "boolean";
|
|
64100
|
+
if (shouldRedact) {
|
|
64101
|
+
budget.remainingNodes -= 1;
|
|
64102
|
+
}
|
|
64103
|
+
const redactedNestedValue = shouldRedact ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
64104
|
+
if (redactedNestedValue !== nestedValue) {
|
|
64105
|
+
redactedEntries.set(key, redactedNestedValue);
|
|
64106
|
+
}
|
|
64107
|
+
}
|
|
64108
|
+
if (isTruncated) {
|
|
64109
|
+
const keptRecord = {};
|
|
64110
|
+
for (const key of keptKeys) {
|
|
64111
|
+
keptRecord[key] = redactedEntries.has(key) ? redactedEntries.get(key) : record2[key];
|
|
64112
|
+
}
|
|
64113
|
+
keptRecord[TRUNCATED_KEY] = TRUNCATED_VALUE;
|
|
64114
|
+
return keptRecord;
|
|
64115
|
+
}
|
|
64116
|
+
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
64117
|
+
}
|
|
64118
|
+
function redactString({ text, budget }) {
|
|
64119
|
+
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
64120
|
+
return TRUNCATED_VALUE;
|
|
64121
|
+
}
|
|
64122
|
+
if (!isInspectable({ value: text })) {
|
|
64123
|
+
return text;
|
|
64124
|
+
}
|
|
64125
|
+
const trimmedText = text.trim();
|
|
64126
|
+
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
64127
|
+
try {
|
|
64128
|
+
const parsedValue = JSON.parse(trimmedText);
|
|
64129
|
+
const redactedValue = redactValue({
|
|
64130
|
+
value: parsedValue,
|
|
64131
|
+
depth: MAX_REDACTION_DEPTH,
|
|
64132
|
+
budget
|
|
64133
|
+
});
|
|
64134
|
+
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
64135
|
+
} catch {
|
|
64136
|
+
return REDACTED_KEY_CANDIDATE_PATTERN.test(text) ? TRUNCATED_VALUE : redactFormEncoded({ text }) ?? text;
|
|
64137
|
+
}
|
|
64138
|
+
}
|
|
64139
|
+
return redactFormEncoded({ text }) ?? text;
|
|
64140
|
+
}
|
|
64141
|
+
function redactFormEncoded({ text, extraRedactedKeys }) {
|
|
64142
|
+
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
64143
|
+
return void 0;
|
|
64144
|
+
}
|
|
64145
|
+
const params = new URLSearchParams(text);
|
|
64146
|
+
const carriesOAuthCode = OAUTH_CODE_CONTEXT_KEYS.some((contextKey) => params.has(contextKey));
|
|
64147
|
+
let hasRedactedParam = false;
|
|
64148
|
+
for (const key of new Set(params.keys())) {
|
|
64149
|
+
if (isRedactedKey({ key }) || extraRedactedKeys?.has(key.toLowerCase()) || carriesOAuthCode && key === OAUTH_CODE_KEY) {
|
|
64150
|
+
params.set(key, REDACTED_VALUE);
|
|
64151
|
+
hasRedactedParam = true;
|
|
64152
|
+
}
|
|
64153
|
+
}
|
|
64154
|
+
return hasRedactedParam ? params.toString() : void 0;
|
|
64155
|
+
}
|
|
64156
|
+
function isRedactedKey({ key }) {
|
|
64157
|
+
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
64158
|
+
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
64159
|
+
}
|
|
64160
|
+
function isInspectable({ value }) {
|
|
64161
|
+
if (typeof value === "string") {
|
|
64162
|
+
return value.length > MAX_PARSED_STRING_LENGTH || /^\s*[{[]/.test(value) || value.includes("=") && REDACTED_KEY_CANDIDATE_PATTERN.test(value);
|
|
64163
|
+
}
|
|
64164
|
+
return value instanceof URLSearchParams || Array.isArray(value) || isPlainObject2(value);
|
|
64165
|
+
}
|
|
64166
|
+
function isPlainObject2(value) {
|
|
64167
|
+
if (typeof value !== "object" || value === null) {
|
|
64168
|
+
return false;
|
|
64169
|
+
}
|
|
64170
|
+
const prototype = Object.getPrototypeOf(value);
|
|
64171
|
+
return prototype === Object.prototype || prototype === null;
|
|
64172
|
+
}
|
|
64173
|
+
|
|
64174
|
+
// ../hyperline-monitoring/build/logger/formatting/format.js
|
|
63802
64175
|
var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
|
|
63803
64176
|
function jsonFormat(info) {
|
|
63804
64177
|
const prunedInfo = JSON.parse(prune(info));
|
|
@@ -63859,14 +64232,106 @@ function transformPrune(info) {
|
|
|
63859
64232
|
});
|
|
63860
64233
|
return info;
|
|
63861
64234
|
}
|
|
64235
|
+
var MAX_AXIOS_ERROR_DEPTH = 5;
|
|
64236
|
+
var MAX_AXIOS_ERROR_CONTAINER_ENTRIES = 1e3;
|
|
64237
|
+
var MAX_AXIOS_ERROR_VISITED_NODES = 5e3;
|
|
64238
|
+
var REDACTED_BODY_KEYS = /* @__PURE__ */ new Set(["requestBody", "responseBody"]);
|
|
63862
64239
|
function transformAxiosError(info) {
|
|
63863
|
-
|
|
63864
|
-
|
|
63865
|
-
|
|
64240
|
+
let walk;
|
|
64241
|
+
for (const [key, value] of Object.entries(info)) {
|
|
64242
|
+
if (typeof value !== "object" || value === null || REDACTED_BODY_KEYS.has(key)) {
|
|
64243
|
+
continue;
|
|
63866
64244
|
}
|
|
63867
|
-
|
|
64245
|
+
walk ??= {
|
|
64246
|
+
formatted: /* @__PURE__ */ new Map(),
|
|
64247
|
+
remainingNodes: MAX_AXIOS_ERROR_VISITED_NODES
|
|
64248
|
+
};
|
|
64249
|
+
const formattedValue = formatNestedAxiosErrors({
|
|
64250
|
+
value,
|
|
64251
|
+
depth: MAX_AXIOS_ERROR_DEPTH,
|
|
64252
|
+
walk
|
|
64253
|
+
});
|
|
64254
|
+
if (formattedValue !== value) {
|
|
64255
|
+
info[key] = formattedValue;
|
|
64256
|
+
}
|
|
64257
|
+
}
|
|
63868
64258
|
return info;
|
|
63869
64259
|
}
|
|
64260
|
+
function formatNestedAxiosErrors({ value, depth, walk }) {
|
|
64261
|
+
if (typeof value !== "object" || value === null) {
|
|
64262
|
+
return value;
|
|
64263
|
+
}
|
|
64264
|
+
if (walk.formatted.has(value)) {
|
|
64265
|
+
return walk.formatted.get(value);
|
|
64266
|
+
}
|
|
64267
|
+
if (Reflect.get(value, "name") === "AxiosError") {
|
|
64268
|
+
const formattedError = walk.remainingNodes > 0 ? formatAxiosError(value) : summarizeAxiosError({ error: value });
|
|
64269
|
+
walk.remainingNodes -= 1;
|
|
64270
|
+
walk.formatted.set(value, formattedError);
|
|
64271
|
+
return formattedError;
|
|
64272
|
+
}
|
|
64273
|
+
const isWalkable = Array.isArray(value) || value instanceof Error || isPlainRecord(value);
|
|
64274
|
+
if (!isWalkable || depth <= 0 || walk.remainingNodes <= 0) {
|
|
64275
|
+
return value;
|
|
64276
|
+
}
|
|
64277
|
+
walk.formatted.set(value, "[Circular]");
|
|
64278
|
+
walk.remainingNodes -= 1;
|
|
64279
|
+
const formattedValue = formatWalkableValue({ value, depth, walk });
|
|
64280
|
+
walk.formatted.set(value, formattedValue);
|
|
64281
|
+
return formattedValue;
|
|
64282
|
+
}
|
|
64283
|
+
function summarizeAxiosError({ error: error48 }) {
|
|
64284
|
+
return {
|
|
64285
|
+
name: Reflect.get(error48, "name"),
|
|
64286
|
+
message: Reflect.get(error48, "message"),
|
|
64287
|
+
code: Reflect.get(error48, "code")
|
|
64288
|
+
};
|
|
64289
|
+
}
|
|
64290
|
+
function formatWalkableValue({ value, depth, walk }) {
|
|
64291
|
+
if (Array.isArray(value)) {
|
|
64292
|
+
if (value.length > MAX_AXIOS_ERROR_CONTAINER_ENTRIES) {
|
|
64293
|
+
return value;
|
|
64294
|
+
}
|
|
64295
|
+
let formattedItems;
|
|
64296
|
+
for (const [index, item] of value.entries()) {
|
|
64297
|
+
const formattedItem = formatNestedAxiosErrors({
|
|
64298
|
+
value: item,
|
|
64299
|
+
depth: depth - 1,
|
|
64300
|
+
walk
|
|
64301
|
+
});
|
|
64302
|
+
if (formattedItem !== item) {
|
|
64303
|
+
formattedItems ??= [...value];
|
|
64304
|
+
formattedItems[index] = formattedItem;
|
|
64305
|
+
}
|
|
64306
|
+
}
|
|
64307
|
+
return formattedItems ?? value;
|
|
64308
|
+
}
|
|
64309
|
+
const keys = Object.keys(value);
|
|
64310
|
+
if (keys.length > MAX_AXIOS_ERROR_CONTAINER_ENTRIES) {
|
|
64311
|
+
return value;
|
|
64312
|
+
}
|
|
64313
|
+
const formattedEntries = /* @__PURE__ */ new Map();
|
|
64314
|
+
for (const key of keys) {
|
|
64315
|
+
const nestedValue = Reflect.get(value, key);
|
|
64316
|
+
const formattedNestedValue = formatNestedAxiosErrors({
|
|
64317
|
+
value: nestedValue,
|
|
64318
|
+
depth: depth - 1,
|
|
64319
|
+
walk
|
|
64320
|
+
});
|
|
64321
|
+
if (formattedNestedValue !== nestedValue) {
|
|
64322
|
+
formattedEntries.set(key, formattedNestedValue);
|
|
64323
|
+
}
|
|
64324
|
+
}
|
|
64325
|
+
if (formattedEntries.size === 0) {
|
|
64326
|
+
return value;
|
|
64327
|
+
}
|
|
64328
|
+
return {
|
|
64329
|
+
...value,
|
|
64330
|
+
// Error properties are not enumerable, so the spread would drop them.
|
|
64331
|
+
...value instanceof Error ? { name: value.name, message: value.message, stack: value.stack } : {},
|
|
64332
|
+
...Object.fromEntries(formattedEntries)
|
|
64333
|
+
};
|
|
64334
|
+
}
|
|
63870
64335
|
function formatAxiosError(error48) {
|
|
63871
64336
|
if (!isRecord(error48) || error48.name !== "AxiosError") {
|
|
63872
64337
|
return error48;
|
|
@@ -63879,9 +64344,9 @@ function formatAxiosError(error48) {
|
|
|
63879
64344
|
code: error48.code,
|
|
63880
64345
|
request: {
|
|
63881
64346
|
method: request?.method,
|
|
63882
|
-
url: request?.url,
|
|
64347
|
+
url: typeof request?.url === "string" ? redactLogUrl({ url: request.url }) : request?.url,
|
|
63883
64348
|
baseURL: request?.baseURL,
|
|
63884
|
-
params: request?.params,
|
|
64349
|
+
params: redactLogBody({ body: request?.params }),
|
|
63885
64350
|
headers: redactHeaders({ headers: request?.headers }),
|
|
63886
64351
|
"axios-retry": request?.["axios-retry"]
|
|
63887
64352
|
},
|
|
@@ -63889,7 +64354,7 @@ function formatAxiosError(error48) {
|
|
|
63889
64354
|
status: response?.status,
|
|
63890
64355
|
statusText: response?.statusText,
|
|
63891
64356
|
headers: redactHeaders({ headers: response?.headers }),
|
|
63892
|
-
data: response?.data
|
|
64357
|
+
data: redactLogBody({ body: response?.data })
|
|
63893
64358
|
}
|
|
63894
64359
|
};
|
|
63895
64360
|
}
|
|
@@ -63902,6 +64367,10 @@ function redactHeaders({ headers }) {
|
|
|
63902
64367
|
REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
|
|
63903
64368
|
]));
|
|
63904
64369
|
}
|
|
64370
|
+
function isPlainRecord(value) {
|
|
64371
|
+
const prototype = Object.getPrototypeOf(value);
|
|
64372
|
+
return prototype === Object.prototype || prototype === null;
|
|
64373
|
+
}
|
|
63905
64374
|
function isRecord(value) {
|
|
63906
64375
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
63907
64376
|
}
|
|
@@ -63931,7 +64400,7 @@ function logHttpResponse(logger2, response, responseTime, extra) {
|
|
|
63931
64400
|
const responseMetadata = {
|
|
63932
64401
|
statusCode,
|
|
63933
64402
|
responseTime,
|
|
63934
|
-
responseBody,
|
|
64403
|
+
responseBody: redactLogBody({ body: responseBody }),
|
|
63935
64404
|
// Redacted so secrets (authorization/cookie/token/…) never reach the logs
|
|
63936
64405
|
// while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
|
|
63937
64406
|
responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
|
|
@@ -63944,14 +64413,15 @@ function logHttpResponse(logger2, response, responseTime, extra) {
|
|
|
63944
64413
|
}
|
|
63945
64414
|
function transform2(request) {
|
|
63946
64415
|
const method = request.method.toUpperCase();
|
|
63947
|
-
const
|
|
64416
|
+
const originalUrl = redactLogUrl({ url: request.originalUrl });
|
|
64417
|
+
const message = `${method} ${originalUrl}`;
|
|
63948
64418
|
const metadata = {};
|
|
63949
64419
|
metadata.method = method;
|
|
63950
|
-
metadata.url = request.url;
|
|
63951
|
-
metadata.path = request.path;
|
|
64420
|
+
metadata.url = redactLogUrl({ url: request.url });
|
|
64421
|
+
metadata.path = redactLogUrl({ url: request.path });
|
|
63952
64422
|
metadata.hostname = request.hostname;
|
|
63953
|
-
metadata.originalUrl =
|
|
63954
|
-
metadata.requestBody =
|
|
64423
|
+
metadata.originalUrl = originalUrl;
|
|
64424
|
+
metadata.requestBody = redactLogBody({ body: request.body });
|
|
63955
64425
|
metadata.routePath = transformUrlIntoRoutePath(request);
|
|
63956
64426
|
metadata.apiKeyEnd = request.headers["authorization"]?.slice(-6);
|
|
63957
64427
|
return { message, metadata };
|
|
@@ -63998,7 +64468,16 @@ function buildLoggerFactory({ config: config4, context }) {
|
|
|
63998
64468
|
const internalLogger = winston.createLogger({
|
|
63999
64469
|
transports: transports2,
|
|
64000
64470
|
defaultMeta,
|
|
64001
|
-
format: winston.format.combine(
|
|
64471
|
+
format: winston.format.combine(
|
|
64472
|
+
winston.format.splat(),
|
|
64473
|
+
winston.format(addMetadata({ getCorrelationId, getExecutionContext }))(),
|
|
64474
|
+
// Before pruning: json-prune would otherwise serialize a binary
|
|
64475
|
+
// `response.data` byte by byte before it is summarised (#6006).
|
|
64476
|
+
winston.format(transformAxiosError)(),
|
|
64477
|
+
winston.format(transformErrorEnrich)({ depth: 5 }),
|
|
64478
|
+
winston.format(transformPrune)(),
|
|
64479
|
+
winston.format.timestamp()
|
|
64480
|
+
),
|
|
64002
64481
|
exitOnError: false
|
|
64003
64482
|
});
|
|
64004
64483
|
function createLogger3({ serviceName }) {
|
|
@@ -66345,8 +66824,21 @@ import { deepEqual } from "fast-equals";
|
|
|
66345
66824
|
|
|
66346
66825
|
// ../hyperline-lib/build/utils/realignDatesToTimezone.js
|
|
66347
66826
|
var import_shared4 = __toESM(require_shared(), 1);
|
|
66348
|
-
var
|
|
66827
|
+
var MILLISECONDS_PER_HOUR = 60 * 60 * 1e3;
|
|
66828
|
+
var MILLISECONDS_PER_DAY = 24 * MILLISECONDS_PER_HOUR;
|
|
66349
66829
|
var LAST_MILLISECOND_OF_DAY = MILLISECONDS_PER_DAY - 1;
|
|
66830
|
+
var dateRealignmentModeSchema = external_exports.enum([
|
|
66831
|
+
"utc_midnight_import",
|
|
66832
|
+
"dst_hour_drift",
|
|
66833
|
+
"month_start_drift",
|
|
66834
|
+
"manual_phase_end_midnight"
|
|
66835
|
+
]).default("utc_midnight_import");
|
|
66836
|
+
var DST_HOUR_SHIFT_BY_LOCAL_MILLISECOND_OF_DAY = /* @__PURE__ */ new Map([
|
|
66837
|
+
[23 * MILLISECONDS_PER_HOUR, MILLISECONDS_PER_HOUR],
|
|
66838
|
+
[LAST_MILLISECOND_OF_DAY - MILLISECONDS_PER_HOUR, MILLISECONDS_PER_HOUR],
|
|
66839
|
+
[MILLISECONDS_PER_HOUR, -MILLISECONDS_PER_HOUR],
|
|
66840
|
+
[MILLISECONDS_PER_HOUR - 1, -MILLISECONDS_PER_HOUR]
|
|
66841
|
+
]);
|
|
66350
66842
|
|
|
66351
66843
|
// ../hyperline-lib/build/utils/api/filterBuilder.js
|
|
66352
66844
|
var baseAuthorizedOperators = ["not", "isNull", "isNotNull"];
|
|
@@ -66415,150 +66907,6 @@ var isAxiosError = axios.isAxiosError;
|
|
|
66415
66907
|
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
66416
66908
|
import axios2 from "axios";
|
|
66417
66909
|
import axiosRetry, { isNetworkOrIdempotentRequestError, retryAfter } from "axios-retry";
|
|
66418
|
-
|
|
66419
|
-
// ../hyperline-lib/build/httpClient/logRedaction.js
|
|
66420
|
-
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
66421
|
-
"accesstoken",
|
|
66422
|
-
"apikey",
|
|
66423
|
-
"apitoken",
|
|
66424
|
-
"assertion",
|
|
66425
|
-
"authtoken",
|
|
66426
|
-
"clientassertion",
|
|
66427
|
-
"codeverifier",
|
|
66428
|
-
"credentials",
|
|
66429
|
-
"idtoken",
|
|
66430
|
-
"privatekey",
|
|
66431
|
-
"refreshtoken",
|
|
66432
|
-
"sessiontoken",
|
|
66433
|
-
"token"
|
|
66434
|
-
]);
|
|
66435
|
-
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password)$/;
|
|
66436
|
-
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|password|assertion|verifier|credentials/i;
|
|
66437
|
-
var REDACTED_VALUE = "<redacted>";
|
|
66438
|
-
var MAX_REDACTION_DEPTH = 10;
|
|
66439
|
-
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
66440
|
-
var MAX_VISITED_NODES = 1e3;
|
|
66441
|
-
var MAX_CONTAINER_ENTRIES = MAX_VISITED_NODES;
|
|
66442
|
-
function redactLogBody({ body }) {
|
|
66443
|
-
return redactValue({
|
|
66444
|
-
value: body,
|
|
66445
|
-
depth: MAX_REDACTION_DEPTH,
|
|
66446
|
-
budget: { remainingNodes: MAX_VISITED_NODES }
|
|
66447
|
-
});
|
|
66448
|
-
}
|
|
66449
|
-
function redactLogUrl({ url: url2 }) {
|
|
66450
|
-
const queryIndex = url2.indexOf("?");
|
|
66451
|
-
if (queryIndex === -1 || url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
66452
|
-
return url2;
|
|
66453
|
-
}
|
|
66454
|
-
const redactedQuery = redactFormEncoded({ text: url2.slice(queryIndex + 1) });
|
|
66455
|
-
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
66456
|
-
}
|
|
66457
|
-
function redactValue({ value, depth, budget }) {
|
|
66458
|
-
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
66459
|
-
return value;
|
|
66460
|
-
}
|
|
66461
|
-
budget.remainingNodes -= 1;
|
|
66462
|
-
if (typeof value === "string") {
|
|
66463
|
-
return redactString({ text: value, budget });
|
|
66464
|
-
}
|
|
66465
|
-
if (value instanceof URLSearchParams) {
|
|
66466
|
-
return redactFormEncoded({ text: value.toString() }) ?? value;
|
|
66467
|
-
}
|
|
66468
|
-
if (Array.isArray(value)) {
|
|
66469
|
-
return redactArray({ items: value, depth, budget });
|
|
66470
|
-
}
|
|
66471
|
-
if (isPlainObject2(value)) {
|
|
66472
|
-
return redactObject({ record: value, depth, budget });
|
|
66473
|
-
}
|
|
66474
|
-
return value;
|
|
66475
|
-
}
|
|
66476
|
-
function redactArray({ items, depth, budget }) {
|
|
66477
|
-
if (items.length > MAX_CONTAINER_ENTRIES) {
|
|
66478
|
-
return items;
|
|
66479
|
-
}
|
|
66480
|
-
let redactedItems;
|
|
66481
|
-
for (const [index, item] of items.entries()) {
|
|
66482
|
-
if (budget.remainingNodes <= 0) {
|
|
66483
|
-
break;
|
|
66484
|
-
}
|
|
66485
|
-
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
66486
|
-
if (redactedItem !== item) {
|
|
66487
|
-
redactedItems ??= [...items];
|
|
66488
|
-
redactedItems[index] = redactedItem;
|
|
66489
|
-
}
|
|
66490
|
-
}
|
|
66491
|
-
return redactedItems ?? items;
|
|
66492
|
-
}
|
|
66493
|
-
function redactObject({ record: record2, depth, budget }) {
|
|
66494
|
-
const redactedEntries = /* @__PURE__ */ new Map();
|
|
66495
|
-
let entryCount = 0;
|
|
66496
|
-
for (const key in record2) {
|
|
66497
|
-
if (!Object.hasOwn(record2, key)) {
|
|
66498
|
-
continue;
|
|
66499
|
-
}
|
|
66500
|
-
entryCount += 1;
|
|
66501
|
-
if (entryCount > MAX_CONTAINER_ENTRIES) {
|
|
66502
|
-
return record2;
|
|
66503
|
-
}
|
|
66504
|
-
if (budget.remainingNodes <= 0) {
|
|
66505
|
-
break;
|
|
66506
|
-
}
|
|
66507
|
-
const nestedValue = record2[key];
|
|
66508
|
-
const redactedNestedValue = isRedactedKey({ key }) && nestedValue != null ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
66509
|
-
if (redactedNestedValue !== nestedValue) {
|
|
66510
|
-
redactedEntries.set(key, redactedNestedValue);
|
|
66511
|
-
}
|
|
66512
|
-
}
|
|
66513
|
-
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
66514
|
-
}
|
|
66515
|
-
function redactString({ text, budget }) {
|
|
66516
|
-
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
66517
|
-
return text;
|
|
66518
|
-
}
|
|
66519
|
-
const trimmedText = text.trim();
|
|
66520
|
-
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
66521
|
-
try {
|
|
66522
|
-
const parsedValue = JSON.parse(trimmedText);
|
|
66523
|
-
const redactedValue = redactValue({
|
|
66524
|
-
value: parsedValue,
|
|
66525
|
-
depth: MAX_REDACTION_DEPTH,
|
|
66526
|
-
budget
|
|
66527
|
-
});
|
|
66528
|
-
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
66529
|
-
} catch {
|
|
66530
|
-
return text;
|
|
66531
|
-
}
|
|
66532
|
-
}
|
|
66533
|
-
return redactFormEncoded({ text }) ?? text;
|
|
66534
|
-
}
|
|
66535
|
-
function redactFormEncoded({ text }) {
|
|
66536
|
-
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
66537
|
-
return void 0;
|
|
66538
|
-
}
|
|
66539
|
-
const params = new URLSearchParams(text);
|
|
66540
|
-
let hasRedactedParam = false;
|
|
66541
|
-
for (const key of new Set(params.keys())) {
|
|
66542
|
-
if (isRedactedKey({ key })) {
|
|
66543
|
-
params.set(key, REDACTED_VALUE);
|
|
66544
|
-
hasRedactedParam = true;
|
|
66545
|
-
}
|
|
66546
|
-
}
|
|
66547
|
-
return hasRedactedParam ? params.toString() : void 0;
|
|
66548
|
-
}
|
|
66549
|
-
function isRedactedKey({ key }) {
|
|
66550
|
-
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
66551
|
-
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
66552
|
-
}
|
|
66553
|
-
function isPlainObject2(value) {
|
|
66554
|
-
if (typeof value !== "object" || value === null) {
|
|
66555
|
-
return false;
|
|
66556
|
-
}
|
|
66557
|
-
const prototype = Object.getPrototypeOf(value);
|
|
66558
|
-
return prototype === Object.prototype || prototype === null;
|
|
66559
|
-
}
|
|
66560
|
-
|
|
66561
|
-
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
66562
66910
|
import { AxiosError } from "axios";
|
|
66563
66911
|
var recommendedRetryConfig = {
|
|
66564
66912
|
retries: 3,
|
|
@@ -66626,14 +66974,14 @@ function isTooManyRequestsError(error48) {
|
|
|
66626
66974
|
return error48.response?.status === 429;
|
|
66627
66975
|
}
|
|
66628
66976
|
var toLogRequest = (config4) => {
|
|
66629
|
-
const url2 =
|
|
66977
|
+
const url2 = config4.url ?? "";
|
|
66630
66978
|
return {
|
|
66631
66979
|
method: config4.method ?? "",
|
|
66632
66980
|
url: url2,
|
|
66633
66981
|
path: url2,
|
|
66634
66982
|
hostname: config4.baseURL ?? "",
|
|
66635
66983
|
originalUrl: `${config4.baseURL ?? ""}${url2}`,
|
|
66636
|
-
body:
|
|
66984
|
+
body: config4.data,
|
|
66637
66985
|
headers: {}
|
|
66638
66986
|
};
|
|
66639
66987
|
};
|
|
@@ -66653,9 +67001,13 @@ import multer2 from "multer";
|
|
|
66653
67001
|
// ../hyperline-lib/build/httpRouter/file.js
|
|
66654
67002
|
import helmet from "helmet";
|
|
66655
67003
|
|
|
66656
|
-
// ../hyperline-lib/build/publicApi/auth/
|
|
67004
|
+
// ../hyperline-lib/build/publicApi/auth/apiKey.js
|
|
66657
67005
|
import { randomBytes as randomBytes2, scryptSync } from "node:crypto";
|
|
66658
67006
|
|
|
67007
|
+
// ../hyperline-lib/build/publicApi/auth/apiKeyHashCache.js
|
|
67008
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
67009
|
+
var TTL_MS = 5 * 6e4;
|
|
67010
|
+
|
|
66659
67011
|
// ../hyperline-mcp/build/requestBuilder.js
|
|
66660
67012
|
function buildRequestConfig(path2, args, method, queryParamKeys = []) {
|
|
66661
67013
|
const { url: url2, usedKeys } = replacePathParams(path2, args);
|