@hyperline/cli 0.1.0-build.1.b574c57 → 0.1.0-build.1.b57f215
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 +1290 -653
- package/package.json +1 -1
|
@@ -33833,7 +33833,7 @@ var require_shared = __commonJS({
|
|
|
33833
33833
|
getNameForCurrency: () => getNameForCurrency,
|
|
33834
33834
|
getNaturalNumber: () => getNaturalNumber,
|
|
33835
33835
|
getSymbolForCurrency: () => getSymbolForCurrency,
|
|
33836
|
-
getTimezoneByName: () =>
|
|
33836
|
+
getTimezoneByName: () => getTimezoneByName2,
|
|
33837
33837
|
getTimezoneOffsetName: () => getTimezoneOffsetName,
|
|
33838
33838
|
getTimezones: () => getTimezones2,
|
|
33839
33839
|
getValidTimezonesNames: () => getValidTimezonesNames,
|
|
@@ -33850,7 +33850,7 @@ var require_shared = __commonJS({
|
|
|
33850
33850
|
subtract: () => subtract,
|
|
33851
33851
|
sum: () => sum2,
|
|
33852
33852
|
toLocalTime: () => toLocalTime3,
|
|
33853
|
-
toUtc: () =>
|
|
33853
|
+
toUtc: () => toUtc3,
|
|
33854
33854
|
useDebounce: () => useDebounce
|
|
33855
33855
|
});
|
|
33856
33856
|
module.exports = __toCommonJS(shared_exports);
|
|
@@ -34985,10 +34985,10 @@ var require_shared = __commonJS({
|
|
|
34985
34985
|
ZodId: () => ZodId,
|
|
34986
34986
|
ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
|
|
34987
34987
|
});
|
|
34988
|
-
var
|
|
34988
|
+
var import_zod22 = require_lib();
|
|
34989
34989
|
var countryIds2 = ["all", ...countries.map(({ id }) => id)];
|
|
34990
|
-
var ZodId =
|
|
34991
|
-
var ZodTranslationsSchemaFn = (schema) =>
|
|
34990
|
+
var ZodId = import_zod22.z.enum(countryIds2);
|
|
34991
|
+
var ZodTranslationsSchemaFn = (schema) => import_zod22.z.record(import_zod22.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_zod23 = require_lib();
|
|
36291
|
+
var ZodCurrencyId = import_zod23.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_zod23.z.string().or(import_zod23.z.number().transform((number4) => number4)).transform((number4) => number4);
|
|
36295
|
+
var ZodNumberCurrencyPositiveValue = import_zod23.z.number().min(0).transform((number4) => number4).transform((number4) => number4);
|
|
36296
|
+
var ZodNumberCurrencyPositiveValueExcludingZero = import_zod23.z.number().gt(0).transform((number4) => number4).transform((number4) => number4);
|
|
36297
|
+
var ZodCurrencyMap = import_zod23.z.record(ZodNumberCurrency).refine(
|
|
36298
36298
|
(data) => Object.keys(data).every((key) => ZodCurrencyId.safeParse(key).success),
|
|
36299
36299
|
{
|
|
36300
36300
|
message: "Invalid currency key.",
|
|
@@ -36557,14 +36557,14 @@ var require_shared = __commonJS({
|
|
|
36557
36557
|
function getTimezones2() {
|
|
36558
36558
|
return timezones;
|
|
36559
36559
|
}
|
|
36560
|
-
function
|
|
36560
|
+
function getTimezoneByName2(tz) {
|
|
36561
36561
|
var _a2;
|
|
36562
36562
|
if (tz === "UTC") {
|
|
36563
36563
|
return timezones.find(({ name }) => name === "Etc/UTC");
|
|
36564
36564
|
}
|
|
36565
36565
|
return (_a2 = timezones.find(({ name }) => name === tz)) != null ? _a2 : timezones.find(({ group }) => group.includes(tz));
|
|
36566
36566
|
}
|
|
36567
|
-
function
|
|
36567
|
+
function toUtc3(date5, timezone) {
|
|
36568
36568
|
return (0, import_date_fns_tz.fromZonedTime)(date5, timezone);
|
|
36569
36569
|
}
|
|
36570
36570
|
function toLocalTime3(date5, localTimezone) {
|
|
@@ -36575,7 +36575,7 @@ var require_shared = __commonJS({
|
|
|
36575
36575
|
);
|
|
36576
36576
|
var constructDateFromTimezoneToLocal = (date5, timezone) => {
|
|
36577
36577
|
if (!timezone) return date5;
|
|
36578
|
-
const timezoneObj =
|
|
36578
|
+
const timezoneObj = getTimezoneByName2(timezone);
|
|
36579
36579
|
if (!timezoneObj) return date5;
|
|
36580
36580
|
const dateAtTimezone = new Date(
|
|
36581
36581
|
date5.getFullYear(),
|
|
@@ -38285,7 +38285,7 @@ Examples:
|
|
|
38285
38285
|
queryParamKeys: []
|
|
38286
38286
|
});
|
|
38287
38287
|
});
|
|
38288
|
-
resource.command("preview-manual-journal-entry-recognition").description(`Preview revenue-recognition slices for a manual journal entry without writing data.`).requiredOption("--ledger-id <value>", `Ledger identifier.`).requiredOption("--amount <
|
|
38288
|
+
resource.command("preview-manual-journal-entry-recognition").description(`Preview revenue-recognition slices for a manual journal entry without writing data.`).requiredOption("--ledger-id <value>", `Ledger identifier.`).requiredOption("--amount <number>", `Deferred amount in minor ledger-currency units.`).requiredOption("--method <value>", `Recognition method to preview.`).option("--recognition-date <value>", `Recognition date for point-in-time recognition.`).option("--window <json>", `Service window for over-time recognition.`).option("--granularity <value>", `Slice granularity for over-time recognition.`).addHelpText("after", `
|
|
38289
38289
|
Examples:
|
|
38290
38290
|
hyperline accounting-journal-entries preview-manual-journal-entry-recognition --ledger-id <ledger_id> --amount <amount> --method <method>
|
|
38291
38291
|
hyperline accounting-journal-entries preview-manual-journal-entry-recognition --ledger-id <ledger_id> --amount <amount> --method <method> --recognition-date <recognition_date> --window <window>
|
|
@@ -38298,14 +38298,14 @@ Examples:
|
|
|
38298
38298
|
const args = {};
|
|
38299
38299
|
if (opts.ledgerId !== void 0)
|
|
38300
38300
|
args.ledger_id = opts.ledgerId;
|
|
38301
|
-
if (opts.amount !== void 0)
|
|
38302
|
-
args.amount = opts.amount;
|
|
38303
38301
|
if (opts.method !== void 0)
|
|
38304
38302
|
args.method = opts.method;
|
|
38305
38303
|
if (opts.recognitionDate !== void 0)
|
|
38306
38304
|
args.recognition_date = opts.recognitionDate;
|
|
38307
38305
|
if (opts.granularity !== void 0)
|
|
38308
38306
|
args.granularity = opts.granularity;
|
|
38307
|
+
if (opts.amount !== void 0)
|
|
38308
|
+
args.amount = Number(opts.amount);
|
|
38309
38309
|
if (opts.window !== void 0)
|
|
38310
38310
|
args.window = JSON.parse(opts.window);
|
|
38311
38311
|
await ctx.execute({
|
|
@@ -38483,7 +38483,7 @@ Examples:
|
|
|
38483
38483
|
queryParamKeys: []
|
|
38484
38484
|
});
|
|
38485
38485
|
});
|
|
38486
|
-
resource.command("delete-ledger").description(`
|
|
38486
|
+
resource.command("delete-ledger").description(`Permanently delete a ledger with its accounts, rules, journal entries and revenue recognition schedules, and unlink the suppliers, supplier contracts and accounting settings that reference it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
38487
38487
|
Examples:
|
|
38488
38488
|
hyperline accounting-ledgers delete-ledger --id <id>
|
|
38489
38489
|
hyperline accounting-ledgers delete-ledger --id <id> --output json`).action(async (opts) => {
|
|
@@ -38583,7 +38583,7 @@ Examples:
|
|
|
38583
38583
|
// build/commands/generated/accounting-revenue-recognition.js
|
|
38584
38584
|
function registerAccounting_Revenue_RecognitionCommands(parent) {
|
|
38585
38585
|
const resource = parent.command("accounting-revenue-recognition").description("Manage accounting > revenue recognition");
|
|
38586
|
-
resource.command("get-rev-rec-waterfall").description(`Aggregate revenue-recognition schedules into a booked-by-recognition month matrix.`).option("--ledger-id <value>", `Ledger identifier.`).option("--year <number>", `Booked calendar year.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search
|
|
38586
|
+
resource.command("get-rev-rec-waterfall").description(`Aggregate revenue-recognition schedules into a booked-by-recognition month matrix.`).option("--ledger-id <value>", `Ledger identifier.`).option("--year <number>", `Booked calendar year.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search by invoice ID or number, customer name or ID, or subscription ID.`).addHelpText("after", `
|
|
38587
38587
|
Examples:
|
|
38588
38588
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall
|
|
38589
38589
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall --ledger-id <ledger_id> --year <year>`).action(async (opts) => {
|
|
@@ -38616,7 +38616,7 @@ Examples:
|
|
|
38616
38616
|
]
|
|
38617
38617
|
});
|
|
38618
38618
|
});
|
|
38619
|
-
resource.command("get-rev-rec-waterfall-cell").description(`List the schedules and slices contributing to a waterfall cell.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `Ledger identifier.`).option("--booked-month <value>", `Booked month formatted YYYY-MM; required if year is absent.`).option("--year <number>", `Booked year; required if booked_month is absent.`).option("--recognition-month <value>", `Recognition month formatted YYYY-MM.`).option("--cell-type <value>", `Waterfall cell category.`).option("--status <value>", `Recognition status filter.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search
|
|
38619
|
+
resource.command("get-rev-rec-waterfall-cell").description(`List the schedules and slices contributing to a waterfall cell.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `Ledger identifier.`).option("--booked-month <value>", `Booked month formatted YYYY-MM; required if year is absent.`).option("--year <number>", `Booked year; required if booked_month is absent.`).option("--recognition-month <value>", `Recognition month formatted YYYY-MM.`).option("--cell-type <value>", `Waterfall cell category.`).option("--status <value>", `Recognition status filter.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search by invoice ID or number, customer name or ID, or subscription ID.`).addHelpText("after", `
|
|
38620
38620
|
Examples:
|
|
38621
38621
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall-cell
|
|
38622
38622
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall-cell --take <take> --ledger-id <ledger_id>`).action(async (opts) => {
|
|
@@ -38794,7 +38794,7 @@ Examples:
|
|
|
38794
38794
|
queryParamKeys: []
|
|
38795
38795
|
});
|
|
38796
38796
|
});
|
|
38797
|
-
resource.command("reshape-rev-rec-schedule").description(`Recognize an amount now and optionally spread the remainder over a new window.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <
|
|
38797
|
+
resource.command("reshape-rev-rec-schedule").description(`Recognize an amount now and optionally spread the remainder over a new window.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <number>", `Amount to recognize immediately in ledger currency. Expressed in currency's smallest unit.`).option("--window <json>", `Window over which to spread the remaining amount.`).requiredOption("--reason-code <value>", `Stable reason code for the adjustment.`).option("--reason-detail <value>", `Required explanation when reason_code is \`other\`.`).addHelpText("after", `
|
|
38798
38798
|
Examples:
|
|
38799
38799
|
hyperline accounting-revenue-recognition reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --reason-code <reason_code>
|
|
38800
38800
|
hyperline accounting-revenue-recognition reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --reason-code <reason_code> --window <window> --reason-detail <reason_detail>
|
|
@@ -38807,12 +38807,12 @@ Examples:
|
|
|
38807
38807
|
const args = {};
|
|
38808
38808
|
if (opts.scheduleId !== void 0)
|
|
38809
38809
|
args.schedule_id = opts.scheduleId;
|
|
38810
|
-
if (opts.recognizeNowAmount !== void 0)
|
|
38811
|
-
args.recognize_now_amount = opts.recognizeNowAmount;
|
|
38812
38810
|
if (opts.reasonCode !== void 0)
|
|
38813
38811
|
args.reason_code = opts.reasonCode;
|
|
38814
38812
|
if (opts.reasonDetail !== void 0)
|
|
38815
38813
|
args.reason_detail = opts.reasonDetail;
|
|
38814
|
+
if (opts.recognizeNowAmount !== void 0)
|
|
38815
|
+
args.recognize_now_amount = Number(opts.recognizeNowAmount);
|
|
38816
38816
|
if (opts.window !== void 0)
|
|
38817
38817
|
args.window = JSON.parse(opts.window);
|
|
38818
38818
|
await ctx.execute({
|
|
@@ -38822,7 +38822,7 @@ Examples:
|
|
|
38822
38822
|
queryParamKeys: []
|
|
38823
38823
|
});
|
|
38824
38824
|
});
|
|
38825
|
-
resource.command("preview-reshape-rev-rec-schedule").description(`Preview the exact reshape plan without writing data.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <
|
|
38825
|
+
resource.command("preview-reshape-rev-rec-schedule").description(`Preview the exact reshape plan without writing data.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <number>", `Amount to recognize immediately in ledger currency. Expressed in currency's smallest unit.`).option("--window <json>", `Window over which to spread the remaining amount.`).addHelpText("after", `
|
|
38826
38826
|
Examples:
|
|
38827
38827
|
hyperline accounting-revenue-recognition preview-reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount>
|
|
38828
38828
|
hyperline accounting-revenue-recognition preview-reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --window <window>
|
|
@@ -38836,7 +38836,7 @@ Examples:
|
|
|
38836
38836
|
if (opts.scheduleId !== void 0)
|
|
38837
38837
|
args.schedule_id = opts.scheduleId;
|
|
38838
38838
|
if (opts.recognizeNowAmount !== void 0)
|
|
38839
|
-
args.recognize_now_amount = opts.recognizeNowAmount;
|
|
38839
|
+
args.recognize_now_amount = Number(opts.recognizeNowAmount);
|
|
38840
38840
|
if (opts.window !== void 0)
|
|
38841
38841
|
args.window = JSON.parse(opts.window);
|
|
38842
38842
|
await ctx.execute({
|
|
@@ -38941,7 +38941,7 @@ Examples:
|
|
|
38941
38941
|
]
|
|
38942
38942
|
});
|
|
38943
38943
|
});
|
|
38944
|
-
resource.command("get-accounting-rule-tree").description(`Retrieve accounting rules organized as a filter tree.`).option("--ledger-id <value>", `Ledger identifier.`).option("--invoicing-entity-id <value>", `Optional invoicing entity identifier.`).option("--max-depth <number>", `Maximum tree depth to return.`).option("--search <value>", `Search by rule identifier or category.`).addHelpText("after", `
|
|
38944
|
+
resource.command("get-accounting-rule-tree").description(`Retrieve accounting rules organized as a filter tree. Accounting software sync rules are excluded.`).option("--ledger-id <value>", `Ledger identifier.`).option("--invoicing-entity-id <value>", `Optional invoicing entity identifier.`).option("--max-depth <number>", `Maximum tree depth to return.`).option("--search <value>", `Search by rule identifier or category.`).addHelpText("after", `
|
|
38945
38945
|
Examples:
|
|
38946
38946
|
hyperline accounting-rules get-accounting-rule-tree
|
|
38947
38947
|
hyperline accounting-rules get-accounting-rule-tree --ledger-id <ledger_id> --invoicing-entity-id <invoicing_entity_id>`).action(async (opts) => {
|
|
@@ -39013,7 +39013,7 @@ Examples:
|
|
|
39013
39013
|
queryParamKeys: []
|
|
39014
39014
|
});
|
|
39015
39015
|
});
|
|
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 (month, year, etc.).`).option("--interval-count <number>", `Billing interval count filter.`).option("--revenue-ledger-account-id <value>", `Revenue ledger account ID used for invoice line revenue routing.`).option("--deferred-revenue-ledger-account-id <value>", `Deferred revenue ledger account ID used before revenue is recognized.`).option("--deferred-discount-ledger-account-id <value>", `Deferred discount ledger account ID used before discounts are recognized.`).option("--contra-revenue-ledger-account-id <value>", `Contra revenue ledger account ID used for amounts that reduce revenue.`).option("--discount-ledger-account-id <value>", `Discount ledger account ID used for recognized discounts.`).option("--ar-ledger-account-id <value>", `Accounts receivable ledger account ID used for invoice posting.`).option("--cash-ledger-account-id <value>", `Cash ledger account ID used for payment settlement.`).option("--payments-clearing-ledger-account-id <value>", `Payments clearing ledger account ID used while payments settle.`).option("--output-tax-ledger-account-id <value>", `Output tax ledger account ID used for tax liability.`).option("--uncollectible-debit-ledger-account-id <value>", `Ledger account ID debited when an invoice becomes uncollectible. Use an asset account for doubtful-receivable reclassification or an expense account for direct write-off.`).option("--customer-credits-ledger-account-id <value>", `Customer credits ledger account ID used for credit balances.`).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", `
|
|
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 (month, year, 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.`).option("--deferred-revenue-ledger-account-id <value>", `Deferred revenue ledger account ID used before revenue is recognized.`).option("--deferred-discount-ledger-account-id <value>", `Deferred discount ledger account ID used before discounts are recognized.`).option("--contra-revenue-ledger-account-id <value>", `Contra revenue ledger account ID used for amounts that reduce revenue.`).option("--discount-ledger-account-id <value>", `Discount ledger account ID used for recognized discounts.`).option("--ar-ledger-account-id <value>", `Accounts receivable ledger account ID used for invoice posting.`).option("--cash-ledger-account-id <value>", `Cash ledger account ID used for payment settlement.`).option("--payments-clearing-ledger-account-id <value>", `Payments clearing ledger account ID used while payments settle.`).option("--output-tax-ledger-account-id <value>", `Output tax ledger account ID used for tax liability.`).option("--uncollectible-debit-ledger-account-id <value>", `Ledger account ID debited when an invoice becomes uncollectible. Use an asset account for doubtful-receivable reclassification or an expense account for direct write-off.`).option("--customer-credits-ledger-account-id <value>", `Customer credits ledger account ID used for credit balances.`).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
39017
|
Examples:
|
|
39018
39018
|
hyperline accounting-rules create --category <category> --priority <priority>
|
|
39019
39019
|
hyperline accounting-rules create --category <category> --priority <priority> --ledger-id <ledger_id> --name <name>
|
|
@@ -39078,6 +39078,8 @@ Examples:
|
|
|
39078
39078
|
args.client_provider_ids = JSON.parse(opts.clientProviderIds);
|
|
39079
39079
|
if (opts.paymentMethodTypes !== void 0)
|
|
39080
39080
|
args.payment_method_types = JSON.parse(opts.paymentMethodTypes);
|
|
39081
|
+
if (opts.customPropertyFilters !== void 0)
|
|
39082
|
+
args.custom_property_filters = JSON.parse(opts.customPropertyFilters);
|
|
39081
39083
|
await ctx.execute({
|
|
39082
39084
|
method: "POST",
|
|
39083
39085
|
path: "/v1/accounting/rules",
|
|
@@ -39085,7 +39087,7 @@ Examples:
|
|
|
39085
39087
|
queryParamKeys: []
|
|
39086
39088
|
});
|
|
39087
39089
|
});
|
|
39088
|
-
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
|
|
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 (month, year, 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.`).option("--deferred-revenue-ledger-account-id <value>", `Deferred revenue ledger account ID used before revenue is recognized.`).option("--deferred-discount-ledger-account-id <value>", `Deferred discount ledger account ID used before discounts are recognized.`).option("--contra-revenue-ledger-account-id <value>", `Contra revenue ledger account ID used for amounts that reduce revenue.`).option("--discount-ledger-account-id <value>", `Discount ledger account ID used for recognized discounts.`).option("--ar-ledger-account-id <value>", `Accounts receivable ledger account ID used for invoice posting.`).option("--cash-ledger-account-id <value>", `Cash ledger account ID used for payment settlement.`).option("--payments-clearing-ledger-account-id <value>", `Payments clearing ledger account ID used while payments settle.`).option("--output-tax-ledger-account-id <value>", `Output tax ledger account ID used for tax liability.`).option("--uncollectible-debit-ledger-account-id <value>", `Ledger account ID debited when an invoice becomes uncollectible. Use an asset account for doubtful-receivable reclassification or an expense account for direct write-off.`).option("--customer-credits-ledger-account-id <value>", `Customer credits ledger account ID used for credit balances.`).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", `
|
|
39089
39091
|
Examples:
|
|
39090
39092
|
hyperline accounting-rules update --id <id>
|
|
39091
39093
|
hyperline accounting-rules update --id <id> --name <name> --category <category>
|
|
@@ -39150,6 +39152,8 @@ Examples:
|
|
|
39150
39152
|
args.client_provider_ids = JSON.parse(opts.clientProviderIds);
|
|
39151
39153
|
if (opts.paymentMethodTypes !== void 0)
|
|
39152
39154
|
args.payment_method_types = JSON.parse(opts.paymentMethodTypes);
|
|
39155
|
+
if (opts.customPropertyFilters !== void 0)
|
|
39156
|
+
args.custom_property_filters = JSON.parse(opts.customPropertyFilters);
|
|
39153
39157
|
await ctx.execute({
|
|
39154
39158
|
method: "PUT",
|
|
39155
39159
|
path: "/v1/accounting/rules/{id}",
|
|
@@ -39183,7 +39187,7 @@ Examples:
|
|
|
39183
39187
|
queryParamKeys: []
|
|
39184
39188
|
});
|
|
39185
39189
|
});
|
|
39186
|
-
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 (month, year, etc.).`).option("--interval-count <number>", `Billing interval count filter.`).addHelpText("after", `
|
|
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 (month, year, 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", `
|
|
39187
39191
|
Examples:
|
|
39188
39192
|
hyperline accounting-rules resolve --ledger-id <ledger_id> --category <category>
|
|
39189
39193
|
hyperline accounting-rules resolve --ledger-id <ledger_id> --category <category> --product-id <product_id> --product-type <product_type>
|
|
@@ -39214,6 +39218,8 @@ Examples:
|
|
|
39214
39218
|
args.interval_period = opts.intervalPeriod;
|
|
39215
39219
|
if (opts.intervalCount !== void 0)
|
|
39216
39220
|
args.interval_count = Number(opts.intervalCount);
|
|
39221
|
+
if (opts.customProperties !== void 0)
|
|
39222
|
+
args.custom_properties = JSON.parse(opts.customProperties);
|
|
39217
39223
|
await ctx.execute({
|
|
39218
39224
|
method: "POST",
|
|
39219
39225
|
path: "/v1/accounting/rules/resolve",
|
|
@@ -39223,164 +39229,158 @@ Examples:
|
|
|
39223
39229
|
});
|
|
39224
39230
|
}
|
|
39225
39231
|
|
|
39226
|
-
// build/commands/generated/
|
|
39227
|
-
function
|
|
39228
|
-
const resource = parent.command("
|
|
39229
|
-
resource.command("list
|
|
39230
|
-
|
|
39231
|
-
- wallet: Charges a monetary wallet.
|
|
39232
|
-
- credits: Consumes a credit balance.
|
|
39233
|
-
- windows: Meters weighted units against rolling allowances.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39232
|
+
// build/commands/generated/aggregators.js
|
|
39233
|
+
function registerAggregatorsCommands(parent) {
|
|
39234
|
+
const resource = parent.command("aggregators").description("Manage aggregators");
|
|
39235
|
+
resource.command("list").description(`List all aggregators with pagination. Aggregators define how billable events are counted or summed to compute usage.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39234
39236
|
Examples:
|
|
39235
|
-
hyperline
|
|
39236
|
-
hyperline
|
|
39237
|
+
hyperline aggregators list
|
|
39238
|
+
hyperline aggregators list --take <take>`).action(async (opts) => {
|
|
39237
39239
|
const ctx = resource.parent?.opts()._ctx;
|
|
39238
39240
|
if (!ctx) {
|
|
39239
39241
|
process.stderr.write("Error: Not authenticated\n");
|
|
39240
39242
|
process.exit(1);
|
|
39241
39243
|
}
|
|
39242
39244
|
const args = {};
|
|
39243
|
-
if (opts.mode !== void 0)
|
|
39244
|
-
args.mode = opts.mode;
|
|
39245
39245
|
if (opts.take !== void 0)
|
|
39246
39246
|
args.take = Number(opts.take);
|
|
39247
39247
|
if (opts.skip !== void 0)
|
|
39248
39248
|
args.skip = Number(opts.skip);
|
|
39249
39249
|
await ctx.execute({
|
|
39250
39250
|
method: "GET",
|
|
39251
|
-
path: "/v1/
|
|
39251
|
+
path: "/v1/aggregators",
|
|
39252
39252
|
args,
|
|
39253
|
-
queryParamKeys: ["
|
|
39253
|
+
queryParamKeys: ["take", "skip"]
|
|
39254
39254
|
});
|
|
39255
39255
|
});
|
|
39256
|
-
resource.command("create
|
|
39257
|
-
|
|
39258
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39259
|
-
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39260
|
-
|
|
39261
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).requiredOption("--mode <value>", `Billing mode.
|
|
39262
|
-
|
|
39263
|
-
- wallet: Charges a monetary wallet.
|
|
39264
|
-
- credits: Consumes a credit balance.
|
|
39265
|
-
- windows: Meters weighted units against rolling allowances.`).addHelpText("after", `
|
|
39256
|
+
resource.command("create").description(`Create a new aggregator that counts or sums billable events. Aggregators can then be linked to products via aggregator_id.`).requiredOption("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator.`).requiredOption("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum.`).addHelpText("after", `
|
|
39266
39257
|
Examples:
|
|
39267
|
-
hyperline
|
|
39268
|
-
hyperline
|
|
39269
|
-
hyperline
|
|
39258
|
+
hyperline aggregators create --entity <entity> --operation <operation>
|
|
39259
|
+
hyperline aggregators create --entity <entity> --operation <operation> --type <type> --where <where>
|
|
39260
|
+
hyperline aggregators create --entity <entity> --operation <operation> --output json`).action(async (opts) => {
|
|
39270
39261
|
const ctx = resource.parent?.opts()._ctx;
|
|
39271
39262
|
if (!ctx) {
|
|
39272
39263
|
process.stderr.write("Error: Not authenticated\n");
|
|
39273
39264
|
process.exit(1);
|
|
39274
39265
|
}
|
|
39275
39266
|
const args = {};
|
|
39267
|
+
if (opts.entity !== void 0)
|
|
39268
|
+
args.entity = opts.entity;
|
|
39269
|
+
if (opts.type !== void 0)
|
|
39270
|
+
args.type = opts.type;
|
|
39276
39271
|
if (opts.name !== void 0)
|
|
39277
39272
|
args.name = opts.name;
|
|
39278
|
-
if (opts.
|
|
39279
|
-
args.
|
|
39280
|
-
if (opts.
|
|
39281
|
-
args.
|
|
39282
|
-
if (opts.
|
|
39283
|
-
args.
|
|
39284
|
-
if (opts.
|
|
39285
|
-
args.
|
|
39286
|
-
if (opts.
|
|
39287
|
-
args.
|
|
39288
|
-
if (opts.
|
|
39289
|
-
args.
|
|
39290
|
-
if (opts.
|
|
39291
|
-
args.
|
|
39292
|
-
if (opts.
|
|
39293
|
-
args.
|
|
39294
|
-
if (opts.
|
|
39295
|
-
args.
|
|
39296
|
-
if (opts.
|
|
39297
|
-
args.
|
|
39298
|
-
if (opts.
|
|
39299
|
-
args.
|
|
39273
|
+
if (opts.description !== void 0)
|
|
39274
|
+
args.description = opts.description;
|
|
39275
|
+
if (opts.customEventName !== void 0)
|
|
39276
|
+
args.custom_event_name = opts.customEventName;
|
|
39277
|
+
if (opts.unitName !== void 0)
|
|
39278
|
+
args.unit_name = opts.unitName;
|
|
39279
|
+
if (opts.defaultIntervalPeriod !== void 0)
|
|
39280
|
+
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
39281
|
+
if (opts.operation !== void 0)
|
|
39282
|
+
args.operation = opts.operation;
|
|
39283
|
+
if (opts.property !== void 0)
|
|
39284
|
+
args.property = opts.property;
|
|
39285
|
+
if (opts.defaultIntervalCount !== void 0)
|
|
39286
|
+
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
39287
|
+
if (opts.allowNegativeValues !== void 0)
|
|
39288
|
+
args.allow_negative_values = true;
|
|
39289
|
+
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
39290
|
+
args.aggregate_on_customers_enabled = true;
|
|
39291
|
+
if (opts.where !== void 0)
|
|
39292
|
+
args.where = JSON.parse(opts.where);
|
|
39293
|
+
if (opts.exposedEventKeys !== void 0)
|
|
39294
|
+
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
39295
|
+
if (opts.thresholds !== void 0)
|
|
39296
|
+
args.thresholds = JSON.parse(opts.thresholds);
|
|
39300
39297
|
await ctx.execute({
|
|
39301
39298
|
method: "POST",
|
|
39302
|
-
path: "/v1/
|
|
39299
|
+
path: "/v1/aggregators",
|
|
39303
39300
|
args,
|
|
39304
39301
|
queryParamKeys: []
|
|
39305
39302
|
});
|
|
39306
39303
|
});
|
|
39307
|
-
resource.command("get
|
|
39304
|
+
resource.command("get").description(`Retrieve a specific aggregator by ID.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39308
39305
|
Examples:
|
|
39309
|
-
hyperline
|
|
39306
|
+
hyperline aggregators get --id <id>`).action(async (opts) => {
|
|
39310
39307
|
const ctx = resource.parent?.opts()._ctx;
|
|
39311
39308
|
if (!ctx) {
|
|
39312
39309
|
process.stderr.write("Error: Not authenticated\n");
|
|
39313
39310
|
process.exit(1);
|
|
39314
39311
|
}
|
|
39315
39312
|
const args = {};
|
|
39316
|
-
if (opts.
|
|
39317
|
-
args.
|
|
39313
|
+
if (opts.id !== void 0)
|
|
39314
|
+
args.id = opts.id;
|
|
39318
39315
|
await ctx.execute({
|
|
39319
39316
|
method: "GET",
|
|
39320
|
-
path: "/v1/
|
|
39317
|
+
path: "/v1/aggregators/{id}",
|
|
39321
39318
|
args,
|
|
39322
39319
|
queryParamKeys: []
|
|
39323
39320
|
});
|
|
39324
39321
|
});
|
|
39325
|
-
resource.command("
|
|
39326
|
-
|
|
39327
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39328
|
-
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39329
|
-
|
|
39330
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).addHelpText("after", `
|
|
39322
|
+
resource.command("update").description(`Update an existing aggregator's configuration.`).requiredOption("--id <value>", `id parameter`).option("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator. Replaces existing thresholds.`).option("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum. Required when operation is 'sum'.`).addHelpText("after", `
|
|
39331
39323
|
Examples:
|
|
39332
|
-
hyperline
|
|
39333
|
-
hyperline
|
|
39334
|
-
hyperline
|
|
39324
|
+
hyperline aggregators update --id <id>
|
|
39325
|
+
hyperline aggregators update --id <id> --entity <entity> --type <type>
|
|
39326
|
+
hyperline aggregators update --id <id> --output json`).action(async (opts) => {
|
|
39335
39327
|
const ctx = resource.parent?.opts()._ctx;
|
|
39336
39328
|
if (!ctx) {
|
|
39337
39329
|
process.stderr.write("Error: Not authenticated\n");
|
|
39338
39330
|
process.exit(1);
|
|
39339
39331
|
}
|
|
39340
39332
|
const args = {};
|
|
39341
|
-
if (opts.
|
|
39342
|
-
args.
|
|
39333
|
+
if (opts.id !== void 0)
|
|
39334
|
+
args.id = opts.id;
|
|
39335
|
+
if (opts.entity !== void 0)
|
|
39336
|
+
args.entity = opts.entity;
|
|
39337
|
+
if (opts.type !== void 0)
|
|
39338
|
+
args.type = opts.type;
|
|
39343
39339
|
if (opts.name !== void 0)
|
|
39344
39340
|
args.name = opts.name;
|
|
39345
|
-
if (opts.
|
|
39346
|
-
args.
|
|
39347
|
-
if (opts.
|
|
39348
|
-
args.
|
|
39349
|
-
if (opts.
|
|
39350
|
-
args.
|
|
39351
|
-
if (opts.
|
|
39352
|
-
args.
|
|
39353
|
-
if (opts.
|
|
39354
|
-
args.
|
|
39355
|
-
if (opts.
|
|
39356
|
-
args.
|
|
39357
|
-
if (opts.
|
|
39358
|
-
args.
|
|
39359
|
-
if (opts.
|
|
39360
|
-
args.
|
|
39361
|
-
if (opts.
|
|
39362
|
-
args.
|
|
39363
|
-
if (opts.
|
|
39364
|
-
args.
|
|
39341
|
+
if (opts.description !== void 0)
|
|
39342
|
+
args.description = opts.description;
|
|
39343
|
+
if (opts.customEventName !== void 0)
|
|
39344
|
+
args.custom_event_name = opts.customEventName;
|
|
39345
|
+
if (opts.unitName !== void 0)
|
|
39346
|
+
args.unit_name = opts.unitName;
|
|
39347
|
+
if (opts.defaultIntervalPeriod !== void 0)
|
|
39348
|
+
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
39349
|
+
if (opts.operation !== void 0)
|
|
39350
|
+
args.operation = opts.operation;
|
|
39351
|
+
if (opts.property !== void 0)
|
|
39352
|
+
args.property = opts.property;
|
|
39353
|
+
if (opts.defaultIntervalCount !== void 0)
|
|
39354
|
+
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
39355
|
+
if (opts.allowNegativeValues !== void 0)
|
|
39356
|
+
args.allow_negative_values = true;
|
|
39357
|
+
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
39358
|
+
args.aggregate_on_customers_enabled = true;
|
|
39359
|
+
if (opts.where !== void 0)
|
|
39360
|
+
args.where = JSON.parse(opts.where);
|
|
39361
|
+
if (opts.exposedEventKeys !== void 0)
|
|
39362
|
+
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
39363
|
+
if (opts.thresholds !== void 0)
|
|
39364
|
+
args.thresholds = JSON.parse(opts.thresholds);
|
|
39365
39365
|
await ctx.execute({
|
|
39366
39366
|
method: "PUT",
|
|
39367
|
-
path: "/v1/
|
|
39367
|
+
path: "/v1/aggregators/{id}",
|
|
39368
39368
|
args,
|
|
39369
39369
|
queryParamKeys: []
|
|
39370
39370
|
});
|
|
39371
39371
|
});
|
|
39372
|
-
resource.command("delete
|
|
39372
|
+
resource.command("delete").description(`Delete an aggregator by ID. Will fail if the aggregator is linked to a product.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39373
39373
|
Examples:
|
|
39374
|
-
hyperline
|
|
39375
|
-
hyperline
|
|
39374
|
+
hyperline aggregators delete --id <id>
|
|
39375
|
+
hyperline aggregators delete --id <id> --output json`).action(async (opts) => {
|
|
39376
39376
|
const ctx = resource.parent?.opts()._ctx;
|
|
39377
39377
|
if (!ctx) {
|
|
39378
39378
|
process.stderr.write("Error: Not authenticated\n");
|
|
39379
39379
|
process.exit(1);
|
|
39380
39380
|
}
|
|
39381
39381
|
const args = {};
|
|
39382
|
-
if (opts.
|
|
39383
|
-
args.
|
|
39382
|
+
if (opts.id !== void 0)
|
|
39383
|
+
args.id = opts.id;
|
|
39384
39384
|
if (!opts.yes) {
|
|
39385
39385
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39386
39386
|
if (!confirmed) {
|
|
@@ -39390,113 +39390,182 @@ Examples:
|
|
|
39390
39390
|
}
|
|
39391
39391
|
await ctx.execute({
|
|
39392
39392
|
method: "DELETE",
|
|
39393
|
-
path: "/v1/
|
|
39393
|
+
path: "/v1/aggregators/{id}",
|
|
39394
39394
|
args,
|
|
39395
39395
|
queryParamKeys: []
|
|
39396
39396
|
});
|
|
39397
39397
|
});
|
|
39398
|
-
|
|
39398
|
+
}
|
|
39399
|
+
|
|
39400
|
+
// build/commands/generated/aggregators-usage.js
|
|
39401
|
+
function registerAggregators_UsageCommands(parent) {
|
|
39402
|
+
const resource = parent.command("aggregators-usage").description("Manage aggregators > usage");
|
|
39403
|
+
resource.command("get-aggregator-usage").description(`Retrieve a usage row for an aggregator. Use the timeseries, group-by-customer or events endpoints to query metering data.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39399
39404
|
Examples:
|
|
39400
|
-
hyperline
|
|
39405
|
+
hyperline aggregators-usage get-aggregator-usage --id <id>`).action(async (opts) => {
|
|
39401
39406
|
const ctx = resource.parent?.opts()._ctx;
|
|
39402
39407
|
if (!ctx) {
|
|
39403
39408
|
process.stderr.write("Error: Not authenticated\n");
|
|
39404
39409
|
process.exit(1);
|
|
39405
39410
|
}
|
|
39406
39411
|
const args = {};
|
|
39412
|
+
if (opts.id !== void 0)
|
|
39413
|
+
args.id = opts.id;
|
|
39407
39414
|
await ctx.execute({
|
|
39408
39415
|
method: "GET",
|
|
39409
|
-
path: "/v1/
|
|
39416
|
+
path: "/v1/aggregators/{id}/usage",
|
|
39410
39417
|
args,
|
|
39411
39418
|
queryParamKeys: []
|
|
39412
39419
|
});
|
|
39413
39420
|
});
|
|
39414
|
-
resource.command("
|
|
39421
|
+
resource.command("get-aggregator-usage-timeseries").description(`Get client-wide usage for an aggregator bucketed by month/day/hour over a period.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--group-by <value>", `Bucket size for the timeseries.`).addHelpText("after", `
|
|
39415
39422
|
Examples:
|
|
39416
|
-
hyperline
|
|
39417
|
-
hyperline
|
|
39418
|
-
hyperline agents set-agent-default-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39423
|
+
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id>
|
|
39424
|
+
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39419
39425
|
const ctx = resource.parent?.opts()._ctx;
|
|
39420
39426
|
if (!ctx) {
|
|
39421
39427
|
process.stderr.write("Error: Not authenticated\n");
|
|
39422
39428
|
process.exit(1);
|
|
39423
39429
|
}
|
|
39424
39430
|
const args = {};
|
|
39425
|
-
if (opts.
|
|
39426
|
-
args.
|
|
39427
|
-
if (opts.
|
|
39428
|
-
args.
|
|
39431
|
+
if (opts.id !== void 0)
|
|
39432
|
+
args.id = opts.id;
|
|
39433
|
+
if (opts.startDate !== void 0)
|
|
39434
|
+
args.start_date = opts.startDate;
|
|
39435
|
+
if (opts.endDate !== void 0)
|
|
39436
|
+
args.end_date = opts.endDate;
|
|
39437
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39438
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39439
|
+
if (opts.groupBy !== void 0)
|
|
39440
|
+
args.group_by = opts.groupBy;
|
|
39429
39441
|
await ctx.execute({
|
|
39430
|
-
method: "
|
|
39431
|
-
path: "/v1/
|
|
39442
|
+
method: "GET",
|
|
39443
|
+
path: "/v1/aggregators/{id}/usage/timeseries",
|
|
39432
39444
|
args,
|
|
39433
|
-
queryParamKeys: [
|
|
39445
|
+
queryParamKeys: [
|
|
39446
|
+
"start_date",
|
|
39447
|
+
"end_date",
|
|
39448
|
+
"aggregator_filter_id",
|
|
39449
|
+
"group_by"
|
|
39450
|
+
]
|
|
39434
39451
|
});
|
|
39435
39452
|
});
|
|
39436
|
-
resource.command("
|
|
39453
|
+
resource.command("get-aggregator-usage-group-by-customer").description(`Per-customer total usage for an aggregator over a period, ranked by total. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39437
39454
|
Examples:
|
|
39438
|
-
hyperline
|
|
39439
|
-
hyperline
|
|
39455
|
+
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id>
|
|
39456
|
+
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39440
39457
|
const ctx = resource.parent?.opts()._ctx;
|
|
39441
39458
|
if (!ctx) {
|
|
39442
39459
|
process.stderr.write("Error: Not authenticated\n");
|
|
39443
39460
|
process.exit(1);
|
|
39444
39461
|
}
|
|
39445
39462
|
const args = {};
|
|
39446
|
-
if (
|
|
39447
|
-
|
|
39448
|
-
|
|
39449
|
-
|
|
39450
|
-
|
|
39451
|
-
|
|
39452
|
-
|
|
39463
|
+
if (opts.id !== void 0)
|
|
39464
|
+
args.id = opts.id;
|
|
39465
|
+
if (opts.startDate !== void 0)
|
|
39466
|
+
args.start_date = opts.startDate;
|
|
39467
|
+
if (opts.endDate !== void 0)
|
|
39468
|
+
args.end_date = opts.endDate;
|
|
39469
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39470
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39471
|
+
if (opts.take !== void 0)
|
|
39472
|
+
args.take = Number(opts.take);
|
|
39473
|
+
if (opts.skip !== void 0)
|
|
39474
|
+
args.skip = Number(opts.skip);
|
|
39453
39475
|
await ctx.execute({
|
|
39454
|
-
method: "
|
|
39455
|
-
path: "/v1/
|
|
39476
|
+
method: "GET",
|
|
39477
|
+
path: "/v1/aggregators/{id}/usage/group-by-customer",
|
|
39456
39478
|
args,
|
|
39457
|
-
queryParamKeys: [
|
|
39479
|
+
queryParamKeys: [
|
|
39480
|
+
"start_date",
|
|
39481
|
+
"end_date",
|
|
39482
|
+
"aggregator_filter_id",
|
|
39483
|
+
"take",
|
|
39484
|
+
"skip"
|
|
39485
|
+
]
|
|
39458
39486
|
});
|
|
39459
39487
|
});
|
|
39460
|
-
resource.command("
|
|
39461
|
-
|
|
39462
|
-
- credits: Credit counts.
|
|
39463
|
-
- units: Weighted rolling-allowance units.
|
|
39464
|
-
- currency: Major units of the specified currency.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--search <value>", `search`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39488
|
+
resource.command("get-aggregator-usage-events").description(`List raw billable events for an aggregator across every customer of the client. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39465
39489
|
Examples:
|
|
39466
|
-
hyperline
|
|
39467
|
-
hyperline
|
|
39490
|
+
hyperline aggregators-usage get-aggregator-usage-events --id <id>
|
|
39491
|
+
hyperline aggregators-usage get-aggregator-usage-events --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39468
39492
|
const ctx = resource.parent?.opts()._ctx;
|
|
39469
39493
|
if (!ctx) {
|
|
39470
39494
|
process.stderr.write("Error: Not authenticated\n");
|
|
39471
39495
|
process.exit(1);
|
|
39472
39496
|
}
|
|
39473
39497
|
const args = {};
|
|
39474
|
-
if (opts.
|
|
39475
|
-
args.
|
|
39476
|
-
if (opts.
|
|
39477
|
-
args.
|
|
39478
|
-
if (opts.
|
|
39479
|
-
args.
|
|
39480
|
-
if (opts.
|
|
39481
|
-
args.
|
|
39498
|
+
if (opts.id !== void 0)
|
|
39499
|
+
args.id = opts.id;
|
|
39500
|
+
if (opts.startDate !== void 0)
|
|
39501
|
+
args.start_date = opts.startDate;
|
|
39502
|
+
if (opts.endDate !== void 0)
|
|
39503
|
+
args.end_date = opts.endDate;
|
|
39504
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39505
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39506
|
+
if (opts.take !== void 0)
|
|
39507
|
+
args.take = Number(opts.take);
|
|
39482
39508
|
if (opts.skip !== void 0)
|
|
39483
39509
|
args.skip = Number(opts.skip);
|
|
39484
39510
|
await ctx.execute({
|
|
39485
39511
|
method: "GET",
|
|
39486
|
-
path: "/v1/
|
|
39512
|
+
path: "/v1/aggregators/{id}/usage/events",
|
|
39487
39513
|
args,
|
|
39488
|
-
queryParamKeys: [
|
|
39514
|
+
queryParamKeys: [
|
|
39515
|
+
"start_date",
|
|
39516
|
+
"end_date",
|
|
39517
|
+
"aggregator_filter_id",
|
|
39518
|
+
"take",
|
|
39519
|
+
"skip"
|
|
39520
|
+
]
|
|
39489
39521
|
});
|
|
39490
39522
|
});
|
|
39491
|
-
|
|
39523
|
+
}
|
|
39492
39524
|
|
|
39493
|
-
-
|
|
39494
|
-
|
|
39495
|
-
|
|
39525
|
+
// build/commands/generated/ai-billing.js
|
|
39526
|
+
function registerAi_BillingCommands(parent) {
|
|
39527
|
+
const resource = parent.command("ai-billing").description("Manage ai > billing");
|
|
39528
|
+
resource.command("list-agent-plans").description(`List AI agent billing plans: workspace-level offers carrying a billing mode (wallet/credits/windows), rate card, allowance windows, markups and per-seat credit grants. Filter by mode; paginated with take/skip.`).option("--mode <value>", `Billing mode.
|
|
39529
|
+
|
|
39530
|
+
- wallet: Charges a monetary wallet.
|
|
39531
|
+
- credits: Consumes a credit balance.
|
|
39532
|
+
- windows: Meters weighted units against rolling allowances.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39496
39533
|
Examples:
|
|
39497
|
-
hyperline
|
|
39498
|
-
hyperline
|
|
39499
|
-
|
|
39534
|
+
hyperline ai-billing list-agent-plans
|
|
39535
|
+
hyperline ai-billing list-agent-plans --mode <mode> --take <take>`).action(async (opts) => {
|
|
39536
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39537
|
+
if (!ctx) {
|
|
39538
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39539
|
+
process.exit(1);
|
|
39540
|
+
}
|
|
39541
|
+
const args = {};
|
|
39542
|
+
if (opts.mode !== void 0)
|
|
39543
|
+
args.mode = opts.mode;
|
|
39544
|
+
if (opts.take !== void 0)
|
|
39545
|
+
args.take = Number(opts.take);
|
|
39546
|
+
if (opts.skip !== void 0)
|
|
39547
|
+
args.skip = Number(opts.skip);
|
|
39548
|
+
await ctx.execute({
|
|
39549
|
+
method: "GET",
|
|
39550
|
+
path: "/v1/ai/billing/plans",
|
|
39551
|
+
args,
|
|
39552
|
+
queryParamKeys: ["mode", "take", "skip"]
|
|
39553
|
+
});
|
|
39554
|
+
});
|
|
39555
|
+
resource.command("create-agent-plan").description(`Create an AI agent billing plan: name, billing mode (wallet/credits/windows), rate card reference, allowance windows, markups, per-seat credit grants and overage stance. Past-limit usage is priced EITHER by overage_markup_percent over the base rates OR by overage_rate_card_id, a currency rate card whose own rates are the overage price \u2014 never both. Metered overage mints the plan's invoice container.`).requiredOption("--name <value>", `Human-readable resource name.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
39556
|
+
|
|
39557
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39558
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39559
|
+
|
|
39560
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).requiredOption("--mode <value>", `Billing mode.
|
|
39561
|
+
|
|
39562
|
+
- wallet: Charges a monetary wallet.
|
|
39563
|
+
- credits: Consumes a credit balance.
|
|
39564
|
+
- windows: Meters weighted units against rolling allowances.`).addHelpText("after", `
|
|
39565
|
+
Examples:
|
|
39566
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode>
|
|
39567
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode> --rate-card-id <rate_card_id> --overage-mode <overage_mode>
|
|
39568
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode> --output json`).action(async (opts) => {
|
|
39500
39569
|
const ctx = resource.parent?.opts()._ctx;
|
|
39501
39570
|
if (!ctx) {
|
|
39502
39571
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39505,77 +39574,83 @@ Examples:
|
|
|
39505
39574
|
const args = {};
|
|
39506
39575
|
if (opts.name !== void 0)
|
|
39507
39576
|
args.name = opts.name;
|
|
39508
|
-
if (opts.
|
|
39509
|
-
args.
|
|
39510
|
-
if (opts.
|
|
39511
|
-
args.
|
|
39512
|
-
if (opts.
|
|
39513
|
-
args.
|
|
39514
|
-
if (opts.
|
|
39515
|
-
args.
|
|
39577
|
+
if (opts.rateCardId !== void 0)
|
|
39578
|
+
args.rate_card_id = opts.rateCardId;
|
|
39579
|
+
if (opts.overageMode !== void 0)
|
|
39580
|
+
args.overage_mode = opts.overageMode;
|
|
39581
|
+
if (opts.markupPercent !== void 0)
|
|
39582
|
+
args.markup_percent = opts.markupPercent;
|
|
39583
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
39584
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39585
|
+
if (opts.overageRateCardId !== void 0)
|
|
39586
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39587
|
+
if (opts.perSeatCredits !== void 0)
|
|
39588
|
+
args.per_seat_credits = opts.perSeatCredits;
|
|
39589
|
+
if (opts.settlementSchedule !== void 0)
|
|
39590
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
39591
|
+
if (opts.mode !== void 0)
|
|
39592
|
+
args.mode = opts.mode;
|
|
39593
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
39594
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39595
|
+
if (opts.grantRolloverEnabled !== void 0)
|
|
39596
|
+
args.grant_rollover_enabled = true;
|
|
39597
|
+
if (opts.windows !== void 0)
|
|
39598
|
+
args.windows = JSON.parse(opts.windows);
|
|
39516
39599
|
await ctx.execute({
|
|
39517
39600
|
method: "POST",
|
|
39518
|
-
path: "/v1/
|
|
39601
|
+
path: "/v1/ai/billing/plans",
|
|
39519
39602
|
args,
|
|
39520
39603
|
queryParamKeys: []
|
|
39521
39604
|
});
|
|
39522
39605
|
});
|
|
39523
|
-
resource.command("get-agent-
|
|
39606
|
+
resource.command("get-agent-default-plan").description(`Get the workspace's default AI agent billing plan marker (plan id and auto_apply flag). 404 when none is set.`).addHelpText("after", `
|
|
39524
39607
|
Examples:
|
|
39525
|
-
hyperline
|
|
39608
|
+
hyperline ai-billing get-agent-default-plan`).action(async (_opts) => {
|
|
39526
39609
|
const ctx = resource.parent?.opts()._ctx;
|
|
39527
39610
|
if (!ctx) {
|
|
39528
39611
|
process.stderr.write("Error: Not authenticated\n");
|
|
39529
39612
|
process.exit(1);
|
|
39530
39613
|
}
|
|
39531
39614
|
const args = {};
|
|
39532
|
-
if (opts.rateCardId !== void 0)
|
|
39533
|
-
args.rate_card_id = opts.rateCardId;
|
|
39534
39615
|
await ctx.execute({
|
|
39535
39616
|
method: "GET",
|
|
39536
|
-
path: "/v1/
|
|
39617
|
+
path: "/v1/ai/billing/plans/default",
|
|
39537
39618
|
args,
|
|
39538
39619
|
queryParamKeys: []
|
|
39539
39620
|
});
|
|
39540
39621
|
});
|
|
39541
|
-
resource.command("
|
|
39622
|
+
resource.command("set-agent-default-plan").description(`Mark one plan as the workspace's default AI agent billing plan (body: plan_id, optional auto_apply). Replaces the previous marker; 404 when the plan is not this workspace's.`).requiredOption("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).option("--auto-apply", `Whether eligible newly ingested customers receive the default plan automatically.`).addHelpText("after", `
|
|
39542
39623
|
Examples:
|
|
39543
|
-
hyperline
|
|
39544
|
-
hyperline
|
|
39545
|
-
hyperline
|
|
39624
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id>
|
|
39625
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --auto-apply
|
|
39626
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39546
39627
|
const ctx = resource.parent?.opts()._ctx;
|
|
39547
39628
|
if (!ctx) {
|
|
39548
39629
|
process.stderr.write("Error: Not authenticated\n");
|
|
39549
39630
|
process.exit(1);
|
|
39550
39631
|
}
|
|
39551
39632
|
const args = {};
|
|
39552
|
-
if (opts.
|
|
39553
|
-
args.
|
|
39554
|
-
if (opts.
|
|
39555
|
-
args.
|
|
39556
|
-
if (opts.fallbackPerUsd !== void 0)
|
|
39557
|
-
args.fallback_per_usd = opts.fallbackPerUsd;
|
|
39558
|
-
if (opts.rows !== void 0)
|
|
39559
|
-
args.rows = JSON.parse(opts.rows);
|
|
39633
|
+
if (opts.planId !== void 0)
|
|
39634
|
+
args.plan_id = opts.planId;
|
|
39635
|
+
if (opts.autoApply !== void 0)
|
|
39636
|
+
args.auto_apply = true;
|
|
39560
39637
|
await ctx.execute({
|
|
39561
39638
|
method: "PUT",
|
|
39562
|
-
path: "/v1/
|
|
39639
|
+
path: "/v1/ai/billing/plans/default",
|
|
39563
39640
|
args,
|
|
39564
39641
|
queryParamKeys: []
|
|
39565
39642
|
});
|
|
39566
39643
|
});
|
|
39567
|
-
resource.command("
|
|
39644
|
+
resource.command("clear-agent-default-plan").description(`Clear the workspace's default AI agent billing plan marker. The plan itself is untouched. 404 when none is set.`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39568
39645
|
Examples:
|
|
39569
|
-
hyperline
|
|
39570
|
-
hyperline
|
|
39646
|
+
hyperline ai-billing clear-agent-default-plan
|
|
39647
|
+
hyperline ai-billing clear-agent-default-plan --output json`).action(async (opts) => {
|
|
39571
39648
|
const ctx = resource.parent?.opts()._ctx;
|
|
39572
39649
|
if (!ctx) {
|
|
39573
39650
|
process.stderr.write("Error: Not authenticated\n");
|
|
39574
39651
|
process.exit(1);
|
|
39575
39652
|
}
|
|
39576
39653
|
const args = {};
|
|
39577
|
-
if (opts.rateCardId !== void 0)
|
|
39578
|
-
args.rate_card_id = opts.rateCardId;
|
|
39579
39654
|
if (!opts.yes) {
|
|
39580
39655
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39581
39656
|
if (!confirmed) {
|
|
@@ -39585,139 +39660,221 @@ Examples:
|
|
|
39585
39660
|
}
|
|
39586
39661
|
await ctx.execute({
|
|
39587
39662
|
method: "DELETE",
|
|
39588
|
-
path: "/v1/
|
|
39663
|
+
path: "/v1/ai/billing/plans/default",
|
|
39589
39664
|
args,
|
|
39590
39665
|
queryParamKeys: []
|
|
39591
39666
|
});
|
|
39592
39667
|
});
|
|
39593
|
-
resource.command("
|
|
39668
|
+
resource.command("get-agent-plan").description(`Get one AI agent billing plan by id, with its embedded rate card, window definitions, markups, per-seat grants and minted catalog object ids.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39594
39669
|
Examples:
|
|
39595
|
-
hyperline
|
|
39670
|
+
hyperline ai-billing get-agent-plan --id <id>`).action(async (opts) => {
|
|
39596
39671
|
const ctx = resource.parent?.opts()._ctx;
|
|
39597
39672
|
if (!ctx) {
|
|
39598
39673
|
process.stderr.write("Error: Not authenticated\n");
|
|
39599
39674
|
process.exit(1);
|
|
39600
39675
|
}
|
|
39601
39676
|
const args = {};
|
|
39677
|
+
if (opts.id !== void 0)
|
|
39678
|
+
args.id = opts.id;
|
|
39602
39679
|
await ctx.execute({
|
|
39603
39680
|
method: "GET",
|
|
39604
|
-
path: "/v1/
|
|
39681
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39605
39682
|
args,
|
|
39606
39683
|
queryParamKeys: []
|
|
39607
39684
|
});
|
|
39608
39685
|
});
|
|
39609
|
-
resource.command("
|
|
39686
|
+
resource.command("replace-agent-plan").description(`Replace an AI agent billing plan (whole-row semantics). Changes take effect on the next call for every customer on the plan; mode is immutable. Overage is priced by overage_markup_percent or by overage_rate_card_id, never both.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Human-readable resource name.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
39687
|
+
|
|
39688
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39689
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39690
|
+
|
|
39691
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).addHelpText("after", `
|
|
39610
39692
|
Examples:
|
|
39611
|
-
hyperline
|
|
39612
|
-
hyperline
|
|
39693
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name>
|
|
39694
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name> --rate-card-id <rate_card_id> --overage-mode <overage_mode>
|
|
39695
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name> --output json`).action(async (opts) => {
|
|
39613
39696
|
const ctx = resource.parent?.opts()._ctx;
|
|
39614
39697
|
if (!ctx) {
|
|
39615
39698
|
process.stderr.write("Error: Not authenticated\n");
|
|
39616
39699
|
process.exit(1);
|
|
39617
39700
|
}
|
|
39618
39701
|
const args = {};
|
|
39619
|
-
if (opts.
|
|
39620
|
-
args.
|
|
39702
|
+
if (opts.id !== void 0)
|
|
39703
|
+
args.id = opts.id;
|
|
39704
|
+
if (opts.name !== void 0)
|
|
39705
|
+
args.name = opts.name;
|
|
39706
|
+
if (opts.rateCardId !== void 0)
|
|
39707
|
+
args.rate_card_id = opts.rateCardId;
|
|
39708
|
+
if (opts.overageMode !== void 0)
|
|
39709
|
+
args.overage_mode = opts.overageMode;
|
|
39710
|
+
if (opts.markupPercent !== void 0)
|
|
39711
|
+
args.markup_percent = opts.markupPercent;
|
|
39712
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
39713
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39714
|
+
if (opts.overageRateCardId !== void 0)
|
|
39715
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39716
|
+
if (opts.perSeatCredits !== void 0)
|
|
39717
|
+
args.per_seat_credits = opts.perSeatCredits;
|
|
39718
|
+
if (opts.settlementSchedule !== void 0)
|
|
39719
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
39720
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
39721
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39722
|
+
if (opts.grantRolloverEnabled !== void 0)
|
|
39723
|
+
args.grant_rollover_enabled = true;
|
|
39724
|
+
if (opts.windows !== void 0)
|
|
39725
|
+
args.windows = JSON.parse(opts.windows);
|
|
39726
|
+
await ctx.execute({
|
|
39727
|
+
method: "PUT",
|
|
39728
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39729
|
+
args,
|
|
39730
|
+
queryParamKeys: []
|
|
39731
|
+
});
|
|
39732
|
+
});
|
|
39733
|
+
resource.command("delete-agent-plan").description(`Delete an AI agent billing plan. Refused (409, plan_in_use) while any customer is still attached to it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39734
|
+
Examples:
|
|
39735
|
+
hyperline ai-billing delete-agent-plan --id <id>
|
|
39736
|
+
hyperline ai-billing delete-agent-plan --id <id> --output json`).action(async (opts) => {
|
|
39737
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39738
|
+
if (!ctx) {
|
|
39739
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39740
|
+
process.exit(1);
|
|
39741
|
+
}
|
|
39742
|
+
const args = {};
|
|
39743
|
+
if (opts.id !== void 0)
|
|
39744
|
+
args.id = opts.id;
|
|
39745
|
+
if (!opts.yes) {
|
|
39746
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39747
|
+
if (!confirmed) {
|
|
39748
|
+
process.stdout.write("Aborted.\n");
|
|
39749
|
+
return;
|
|
39750
|
+
}
|
|
39751
|
+
}
|
|
39752
|
+
await ctx.execute({
|
|
39753
|
+
method: "DELETE",
|
|
39754
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39755
|
+
args,
|
|
39756
|
+
queryParamKeys: []
|
|
39757
|
+
});
|
|
39758
|
+
});
|
|
39759
|
+
resource.command("list-agent-rate-cards").description(`List AI rate cards: named pricing row sets in credits, window units or currency. Shows what plans/policies/products depend on each. Filter by denomination, currency or name search; paginated with take/skip.`).option("--denomination <value>", `Unit in which rate-card prices are expressed.
|
|
39760
|
+
|
|
39761
|
+
- credits: Credit counts.
|
|
39762
|
+
- units: Weighted rolling-allowance units.
|
|
39763
|
+
- currency: Major units of the specified currency.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--search <value>", `search`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39764
|
+
Examples:
|
|
39765
|
+
hyperline ai-billing list-agent-rate-cards
|
|
39766
|
+
hyperline ai-billing list-agent-rate-cards --denomination <denomination> --currency <currency>`).action(async (opts) => {
|
|
39767
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39768
|
+
if (!ctx) {
|
|
39769
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39770
|
+
process.exit(1);
|
|
39771
|
+
}
|
|
39772
|
+
const args = {};
|
|
39773
|
+
if (opts.denomination !== void 0)
|
|
39774
|
+
args.denomination = opts.denomination;
|
|
39775
|
+
if (opts.currency !== void 0)
|
|
39776
|
+
args.currency = opts.currency;
|
|
39777
|
+
if (opts.search !== void 0)
|
|
39778
|
+
args.search = opts.search;
|
|
39779
|
+
if (opts.take !== void 0)
|
|
39780
|
+
args.take = Number(opts.take);
|
|
39781
|
+
if (opts.skip !== void 0)
|
|
39782
|
+
args.skip = Number(opts.skip);
|
|
39621
39783
|
await ctx.execute({
|
|
39622
39784
|
method: "GET",
|
|
39623
|
-
path: "/v1/
|
|
39785
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39624
39786
|
args,
|
|
39625
|
-
queryParamKeys: ["
|
|
39787
|
+
queryParamKeys: ["denomination", "currency", "search", "take", "skip"]
|
|
39626
39788
|
});
|
|
39627
39789
|
});
|
|
39628
|
-
resource.command("create-agent-
|
|
39790
|
+
resource.command("create-agent-rate-card").description(`Create an AI rate card with llm rows (per-1M input/output token rates) and item rows (per-unit rates), a denomination (credits/units/currency) and an optional USD fallback conversion.`).requiredOption("--name <value>", `Human-readable resource name.`).option("--fallback-per-usd <value>", `Credits, allowance units, or major currency units per USD of provider cost. Null leaves unmatched usage unpriced.`).requiredOption("--rows <json>", `All pricing rows on the card; replacement replaces the complete list.`).requiredOption("--denomination <value>", `Unit in which rate-card prices are expressed.
|
|
39791
|
+
|
|
39792
|
+
- credits: Credit counts.
|
|
39793
|
+
- units: Weighted rolling-allowance units.
|
|
39794
|
+
- currency: Major units of the specified currency.`).option("--currency <value>", `ISO 4217 currency code for monetary values. Null for counts or historical amounts without recorded currency.`).addHelpText("after", `
|
|
39629
39795
|
Examples:
|
|
39630
|
-
hyperline
|
|
39631
|
-
hyperline
|
|
39796
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination>
|
|
39797
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination> --fallback-per-usd <fallback_per_usd> --currency <currency>
|
|
39798
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination> --output json`).action(async (opts) => {
|
|
39632
39799
|
const ctx = resource.parent?.opts()._ctx;
|
|
39633
39800
|
if (!ctx) {
|
|
39634
39801
|
process.stderr.write("Error: Not authenticated\n");
|
|
39635
39802
|
process.exit(1);
|
|
39636
39803
|
}
|
|
39637
39804
|
const args = {};
|
|
39638
|
-
if (opts.
|
|
39639
|
-
args.
|
|
39640
|
-
if (opts.
|
|
39641
|
-
args.
|
|
39642
|
-
if (opts.
|
|
39643
|
-
args.
|
|
39805
|
+
if (opts.name !== void 0)
|
|
39806
|
+
args.name = opts.name;
|
|
39807
|
+
if (opts.fallbackPerUsd !== void 0)
|
|
39808
|
+
args.fallback_per_usd = opts.fallbackPerUsd;
|
|
39809
|
+
if (opts.denomination !== void 0)
|
|
39810
|
+
args.denomination = opts.denomination;
|
|
39811
|
+
if (opts.currency !== void 0)
|
|
39812
|
+
args.currency = opts.currency;
|
|
39813
|
+
if (opts.rows !== void 0)
|
|
39814
|
+
args.rows = JSON.parse(opts.rows);
|
|
39644
39815
|
await ctx.execute({
|
|
39645
39816
|
method: "POST",
|
|
39646
|
-
path: "/v1/
|
|
39817
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39647
39818
|
args,
|
|
39648
39819
|
queryParamKeys: []
|
|
39649
39820
|
});
|
|
39650
39821
|
});
|
|
39651
|
-
resource.command("
|
|
39822
|
+
resource.command("get-agent-rate-card").description(`Get one AI rate card by id with all its pricing rows and usage counts (plans, policies, credit product).`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39652
39823
|
Examples:
|
|
39653
|
-
hyperline
|
|
39654
|
-
hyperline agents delete-agent-cost-catalog-item --item-id <item_id> --output json`).action(async (opts) => {
|
|
39824
|
+
hyperline ai-billing get-agent-rate-card --id <id>`).action(async (opts) => {
|
|
39655
39825
|
const ctx = resource.parent?.opts()._ctx;
|
|
39656
39826
|
if (!ctx) {
|
|
39657
39827
|
process.stderr.write("Error: Not authenticated\n");
|
|
39658
39828
|
process.exit(1);
|
|
39659
39829
|
}
|
|
39660
39830
|
const args = {};
|
|
39661
|
-
if (opts.
|
|
39662
|
-
args.
|
|
39663
|
-
if (!opts.yes) {
|
|
39664
|
-
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39665
|
-
if (!confirmed) {
|
|
39666
|
-
process.stdout.write("Aborted.\n");
|
|
39667
|
-
return;
|
|
39668
|
-
}
|
|
39669
|
-
}
|
|
39831
|
+
if (opts.id !== void 0)
|
|
39832
|
+
args.id = opts.id;
|
|
39670
39833
|
await ctx.execute({
|
|
39671
|
-
method: "
|
|
39672
|
-
path: "/v1/
|
|
39834
|
+
method: "GET",
|
|
39835
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39673
39836
|
args,
|
|
39674
39837
|
queryParamKeys: []
|
|
39675
39838
|
});
|
|
39676
39839
|
});
|
|
39677
|
-
resource.command("
|
|
39840
|
+
resource.command("replace-agent-rate-card").description(`Replace an AI rate card's rows, name and USD fallback (whole-card semantics). Denomination and currency are immutable.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Human-readable resource name.`).option("--fallback-per-usd <value>", `Credits, allowance units, or major currency units per USD of provider cost. Null leaves unmatched usage unpriced.`).requiredOption("--rows <json>", `All pricing rows on the card; replacement replaces the complete list.`).addHelpText("after", `
|
|
39678
39841
|
Examples:
|
|
39679
|
-
hyperline
|
|
39680
|
-
hyperline
|
|
39681
|
-
hyperline
|
|
39842
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows>
|
|
39843
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows> --fallback-per-usd <fallback_per_usd>
|
|
39844
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows> --output json`).action(async (opts) => {
|
|
39682
39845
|
const ctx = resource.parent?.opts()._ctx;
|
|
39683
39846
|
if (!ctx) {
|
|
39684
39847
|
process.stderr.write("Error: Not authenticated\n");
|
|
39685
39848
|
process.exit(1);
|
|
39686
39849
|
}
|
|
39687
39850
|
const args = {};
|
|
39688
|
-
if (opts.
|
|
39689
|
-
args.
|
|
39690
|
-
if (opts.
|
|
39691
|
-
args.
|
|
39692
|
-
if (opts.
|
|
39693
|
-
args.
|
|
39694
|
-
if (opts.
|
|
39695
|
-
args.
|
|
39696
|
-
if (opts.cachedInputPerMTokens !== void 0)
|
|
39697
|
-
args.cached_input_per_m_tokens = opts.cachedInputPerMTokens;
|
|
39698
|
-
if (opts.cacheWritePerMTokens !== void 0)
|
|
39699
|
-
args.cache_write_per_m_tokens = opts.cacheWritePerMTokens;
|
|
39700
|
-
if (opts.dimensions !== void 0)
|
|
39701
|
-
args.dimensions = JSON.parse(opts.dimensions);
|
|
39851
|
+
if (opts.id !== void 0)
|
|
39852
|
+
args.id = opts.id;
|
|
39853
|
+
if (opts.name !== void 0)
|
|
39854
|
+
args.name = opts.name;
|
|
39855
|
+
if (opts.fallbackPerUsd !== void 0)
|
|
39856
|
+
args.fallback_per_usd = opts.fallbackPerUsd;
|
|
39857
|
+
if (opts.rows !== void 0)
|
|
39858
|
+
args.rows = JSON.parse(opts.rows);
|
|
39702
39859
|
await ctx.execute({
|
|
39703
39860
|
method: "PUT",
|
|
39704
|
-
path: "/v1/
|
|
39861
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39705
39862
|
args,
|
|
39706
39863
|
queryParamKeys: []
|
|
39707
39864
|
});
|
|
39708
39865
|
});
|
|
39709
|
-
resource.command("delete-agent-
|
|
39866
|
+
resource.command("delete-agent-rate-card").description(`Delete an AI rate card. Refused (409, rate_card_in_use) while any plan, credit product or customer policy still uses it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39710
39867
|
Examples:
|
|
39711
|
-
hyperline
|
|
39712
|
-
hyperline
|
|
39868
|
+
hyperline ai-billing delete-agent-rate-card --id <id>
|
|
39869
|
+
hyperline ai-billing delete-agent-rate-card --id <id> --output json`).action(async (opts) => {
|
|
39713
39870
|
const ctx = resource.parent?.opts()._ctx;
|
|
39714
39871
|
if (!ctx) {
|
|
39715
39872
|
process.stderr.write("Error: Not authenticated\n");
|
|
39716
39873
|
process.exit(1);
|
|
39717
39874
|
}
|
|
39718
39875
|
const args = {};
|
|
39719
|
-
if (opts.
|
|
39720
|
-
args.
|
|
39876
|
+
if (opts.id !== void 0)
|
|
39877
|
+
args.id = opts.id;
|
|
39721
39878
|
if (!opts.yes) {
|
|
39722
39879
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39723
39880
|
if (!confirmed) {
|
|
@@ -39727,51 +39884,53 @@ Examples:
|
|
|
39727
39884
|
}
|
|
39728
39885
|
await ctx.execute({
|
|
39729
39886
|
method: "DELETE",
|
|
39730
|
-
path: "/v1/
|
|
39887
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39731
39888
|
args,
|
|
39732
39889
|
queryParamKeys: []
|
|
39733
39890
|
});
|
|
39734
39891
|
});
|
|
39735
|
-
resource.command("list-agent-customer-policies").description(`List all AI billing policies (scopes) for one customer: the default shared pool plus per-agent overrides. Accepts Hyperline or external customer ids.`).requiredOption("--
|
|
39892
|
+
resource.command("list-agent-customer-policies").description(`List all AI billing policies (scopes) for one customer: the default shared pool plus per-agent overrides. Accepts Hyperline or external customer ids.`).requiredOption("--id <value>", `id parameter`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39736
39893
|
Examples:
|
|
39737
|
-
hyperline
|
|
39894
|
+
hyperline ai-billing list-agent-customer-policies --id <id>
|
|
39895
|
+
hyperline ai-billing list-agent-customer-policies --id <id> --take <take>`).action(async (opts) => {
|
|
39738
39896
|
const ctx = resource.parent?.opts()._ctx;
|
|
39739
39897
|
if (!ctx) {
|
|
39740
39898
|
process.stderr.write("Error: Not authenticated\n");
|
|
39741
39899
|
process.exit(1);
|
|
39742
39900
|
}
|
|
39743
39901
|
const args = {};
|
|
39744
|
-
if (opts.
|
|
39745
|
-
args.
|
|
39902
|
+
if (opts.id !== void 0)
|
|
39903
|
+
args.id = opts.id;
|
|
39904
|
+
if (opts.take !== void 0)
|
|
39905
|
+
args.take = Number(opts.take);
|
|
39906
|
+
if (opts.skip !== void 0)
|
|
39907
|
+
args.skip = Number(opts.skip);
|
|
39746
39908
|
await ctx.execute({
|
|
39747
39909
|
method: "GET",
|
|
39748
|
-
path: "/v1/
|
|
39910
|
+
path: "/v1/ai/billing/customers/{id}/policies",
|
|
39749
39911
|
args,
|
|
39750
|
-
queryParamKeys: []
|
|
39912
|
+
queryParamKeys: ["take", "skip"]
|
|
39751
39913
|
});
|
|
39752
39914
|
});
|
|
39753
|
-
resource.command("get-
|
|
39915
|
+
resource.command("get-default-customer-billing-policy").description(`Get the exact customer billing policy addressed by this resource; agent policies never fall back to the shared pool.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39754
39916
|
Examples:
|
|
39755
|
-
hyperline
|
|
39756
|
-
hyperline agents get-agent-customer-policy --customer-id <customer_id> --agent <agent>`).action(async (opts) => {
|
|
39917
|
+
hyperline ai-billing get-default-customer-billing-policy --id <id>`).action(async (opts) => {
|
|
39757
39918
|
const ctx = resource.parent?.opts()._ctx;
|
|
39758
39919
|
if (!ctx) {
|
|
39759
39920
|
process.stderr.write("Error: Not authenticated\n");
|
|
39760
39921
|
process.exit(1);
|
|
39761
39922
|
}
|
|
39762
39923
|
const args = {};
|
|
39763
|
-
if (opts.
|
|
39764
|
-
args.
|
|
39765
|
-
if (opts.agent !== void 0)
|
|
39766
|
-
args.agent = opts.agent;
|
|
39924
|
+
if (opts.id !== void 0)
|
|
39925
|
+
args.id = opts.id;
|
|
39767
39926
|
await ctx.execute({
|
|
39768
39927
|
method: "GET",
|
|
39769
|
-
path: "/v1/
|
|
39928
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39770
39929
|
args,
|
|
39771
|
-
queryParamKeys: [
|
|
39930
|
+
queryParamKeys: []
|
|
39772
39931
|
});
|
|
39773
39932
|
});
|
|
39774
|
-
resource.command("upsert-
|
|
39933
|
+
resource.command("upsert-default-customer-billing-policy").description(`Replace customer billing settings while preserving omitted plan_id and rate_card_id references; null detaches them, and a shared policy enables automatic telemetry billing.`).requiredOption("--id <value>", `id parameter`).requiredOption("--mode <value>", `Billing mode.
|
|
39775
39934
|
|
|
39776
39935
|
- wallet: Charges a monetary wallet.
|
|
39777
39936
|
- credits: Consumes a credit balance.
|
|
@@ -39780,21 +39939,19 @@ Examples:
|
|
|
39780
39939
|
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39781
39940
|
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--overage-wallet-id <value>", `Wallet charged for overage. Null bills overage in arrears.`).option("--floor <value>", `Minimum available balance a spend check requires, in the policy's denomination.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39782
39941
|
|
|
39783
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).option("--
|
|
39942
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).requiredOption("--blocked", `Whether spending is disabled for this billing scope.`).addHelpText("after", `
|
|
39784
39943
|
Examples:
|
|
39785
|
-
hyperline
|
|
39786
|
-
hyperline
|
|
39787
|
-
hyperline
|
|
39944
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked
|
|
39945
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked --wallet-id <wallet_id> --credit-product-id <credit_product_id>
|
|
39946
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
39788
39947
|
const ctx = resource.parent?.opts()._ctx;
|
|
39789
39948
|
if (!ctx) {
|
|
39790
39949
|
process.stderr.write("Error: Not authenticated\n");
|
|
39791
39950
|
process.exit(1);
|
|
39792
39951
|
}
|
|
39793
39952
|
const args = {};
|
|
39794
|
-
if (opts.
|
|
39795
|
-
args.
|
|
39796
|
-
if (opts.agent !== void 0)
|
|
39797
|
-
args.agent = opts.agent;
|
|
39953
|
+
if (opts.id !== void 0)
|
|
39954
|
+
args.id = opts.id;
|
|
39798
39955
|
if (opts.mode !== void 0)
|
|
39799
39956
|
args.mode = opts.mode;
|
|
39800
39957
|
if (opts.walletId !== void 0)
|
|
@@ -39823,32 +39980,27 @@ Examples:
|
|
|
39823
39980
|
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39824
39981
|
if (opts.blocked !== void 0)
|
|
39825
39982
|
args.blocked = true;
|
|
39826
|
-
if (opts.
|
|
39827
|
-
args.
|
|
39828
|
-
if (opts.windowRates !== void 0)
|
|
39829
|
-
args.window_rates = JSON.parse(opts.windowRates);
|
|
39983
|
+
if (opts.windows !== void 0)
|
|
39984
|
+
args.windows = JSON.parse(opts.windows);
|
|
39830
39985
|
await ctx.execute({
|
|
39831
39986
|
method: "PUT",
|
|
39832
|
-
path: "/v1/
|
|
39987
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39833
39988
|
args,
|
|
39834
|
-
queryParamKeys: [
|
|
39989
|
+
queryParamKeys: []
|
|
39835
39990
|
});
|
|
39836
39991
|
});
|
|
39837
|
-
resource.command("delete-
|
|
39992
|
+
resource.command("delete-default-customer-billing-policy").description(`Delete one customer's AI billing policy scope. Refused (409) while it owes unsettled consumption or while agent overrides still depend on it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39838
39993
|
Examples:
|
|
39839
|
-
hyperline
|
|
39840
|
-
hyperline
|
|
39841
|
-
hyperline agents delete-agent-customer-policy --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
39994
|
+
hyperline ai-billing delete-default-customer-billing-policy --id <id>
|
|
39995
|
+
hyperline ai-billing delete-default-customer-billing-policy --id <id> --output json`).action(async (opts) => {
|
|
39842
39996
|
const ctx = resource.parent?.opts()._ctx;
|
|
39843
39997
|
if (!ctx) {
|
|
39844
39998
|
process.stderr.write("Error: Not authenticated\n");
|
|
39845
39999
|
process.exit(1);
|
|
39846
40000
|
}
|
|
39847
40001
|
const args = {};
|
|
39848
|
-
if (opts.
|
|
39849
|
-
args.
|
|
39850
|
-
if (opts.agent !== void 0)
|
|
39851
|
-
args.agent = opts.agent;
|
|
40002
|
+
if (opts.id !== void 0)
|
|
40003
|
+
args.id = opts.id;
|
|
39852
40004
|
if (!opts.yes) {
|
|
39853
40005
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39854
40006
|
if (!confirmed) {
|
|
@@ -39858,199 +40010,235 @@ Examples:
|
|
|
39858
40010
|
}
|
|
39859
40011
|
await ctx.execute({
|
|
39860
40012
|
method: "DELETE",
|
|
39861
|
-
path: "/v1/
|
|
40013
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39862
40014
|
args,
|
|
39863
|
-
queryParamKeys: [
|
|
40015
|
+
queryParamKeys: []
|
|
39864
40016
|
});
|
|
39865
40017
|
});
|
|
39866
|
-
resource.command("
|
|
40018
|
+
resource.command("get-agent-customer-billing-policy").description(`Get the exact customer billing policy addressed by this resource; agent policies never fall back to the shared pool.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).addHelpText("after", `
|
|
39867
40019
|
Examples:
|
|
39868
|
-
hyperline
|
|
39869
|
-
hyperline agents apply-agent-default-plan --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
40020
|
+
hyperline ai-billing get-agent-customer-billing-policy --id <id> --agent-slug <agent_slug>`).action(async (opts) => {
|
|
39870
40021
|
const ctx = resource.parent?.opts()._ctx;
|
|
39871
40022
|
if (!ctx) {
|
|
39872
40023
|
process.stderr.write("Error: Not authenticated\n");
|
|
39873
40024
|
process.exit(1);
|
|
39874
40025
|
}
|
|
39875
40026
|
const args = {};
|
|
39876
|
-
if (opts.
|
|
39877
|
-
args.
|
|
40027
|
+
if (opts.id !== void 0)
|
|
40028
|
+
args.id = opts.id;
|
|
40029
|
+
if (opts.agentSlug !== void 0)
|
|
40030
|
+
args.agent_slug = opts.agentSlug;
|
|
39878
40031
|
await ctx.execute({
|
|
39879
|
-
method: "
|
|
39880
|
-
path: "/v1/
|
|
40032
|
+
method: "GET",
|
|
40033
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
39881
40034
|
args,
|
|
39882
40035
|
queryParamKeys: []
|
|
39883
40036
|
});
|
|
39884
40037
|
});
|
|
39885
|
-
resource.command("
|
|
40038
|
+
resource.command("upsert-agent-customer-billing-policy").description(`Replace customer billing settings while preserving omitted plan_id and rate_card_id references; null detaches them, and a shared policy enables automatic telemetry billing.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).requiredOption("--mode <value>", `Billing mode.
|
|
40039
|
+
|
|
40040
|
+
- wallet: Charges a monetary wallet.
|
|
40041
|
+
- credits: Consumes a credit balance.
|
|
40042
|
+
- windows: Meters weighted units against rolling allowances.`).option("--wallet-id <value>", `Customer wallet identifier. Omit on wallet policy writes to provision or reuse the customer's wallet.`).option("--credit-product-id <value>", `Public credit product identifier whose balance this policy consumes.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
40043
|
+
|
|
40044
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
40045
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--overage-wallet-id <value>", `Wallet charged for overage. Null bills overage in arrears.`).option("--floor <value>", `Minimum available balance a spend check requires, in the policy's denomination.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
40046
|
+
|
|
40047
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).requiredOption("--blocked", `Whether spending is disabled for this billing scope.`).addHelpText("after", `
|
|
39886
40048
|
Examples:
|
|
39887
|
-
hyperline
|
|
39888
|
-
hyperline
|
|
40049
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked
|
|
40050
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked --wallet-id <wallet_id> --credit-product-id <credit_product_id>
|
|
40051
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
39889
40052
|
const ctx = resource.parent?.opts()._ctx;
|
|
39890
40053
|
if (!ctx) {
|
|
39891
40054
|
process.stderr.write("Error: Not authenticated\n");
|
|
39892
40055
|
process.exit(1);
|
|
39893
40056
|
}
|
|
39894
40057
|
const args = {};
|
|
39895
|
-
if (opts.
|
|
39896
|
-
args.
|
|
39897
|
-
if (opts.
|
|
39898
|
-
args.
|
|
40058
|
+
if (opts.id !== void 0)
|
|
40059
|
+
args.id = opts.id;
|
|
40060
|
+
if (opts.agentSlug !== void 0)
|
|
40061
|
+
args.agent_slug = opts.agentSlug;
|
|
40062
|
+
if (opts.mode !== void 0)
|
|
40063
|
+
args.mode = opts.mode;
|
|
40064
|
+
if (opts.walletId !== void 0)
|
|
40065
|
+
args.wallet_id = opts.walletId;
|
|
40066
|
+
if (opts.creditProductId !== void 0)
|
|
40067
|
+
args.credit_product_id = opts.creditProductId;
|
|
40068
|
+
if (opts.markupPercent !== void 0)
|
|
40069
|
+
args.markup_percent = opts.markupPercent;
|
|
40070
|
+
if (opts.overageMode !== void 0)
|
|
40071
|
+
args.overage_mode = opts.overageMode;
|
|
40072
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
40073
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
40074
|
+
if (opts.overageRateCardId !== void 0)
|
|
40075
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
40076
|
+
if (opts.overageWalletId !== void 0)
|
|
40077
|
+
args.overage_wallet_id = opts.overageWalletId;
|
|
40078
|
+
if (opts.floor !== void 0)
|
|
40079
|
+
args.floor = opts.floor;
|
|
40080
|
+
if (opts.settlementSchedule !== void 0)
|
|
40081
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
40082
|
+
if (opts.rateCardId !== void 0)
|
|
40083
|
+
args.rate_card_id = opts.rateCardId;
|
|
40084
|
+
if (opts.planId !== void 0)
|
|
40085
|
+
args.plan_id = opts.planId;
|
|
40086
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
40087
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
40088
|
+
if (opts.blocked !== void 0)
|
|
40089
|
+
args.blocked = true;
|
|
40090
|
+
if (opts.windows !== void 0)
|
|
40091
|
+
args.windows = JSON.parse(opts.windows);
|
|
39899
40092
|
await ctx.execute({
|
|
39900
|
-
method: "
|
|
39901
|
-
path: "/v1/
|
|
40093
|
+
method: "PUT",
|
|
40094
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
39902
40095
|
args,
|
|
39903
|
-
queryParamKeys: [
|
|
40096
|
+
queryParamKeys: []
|
|
39904
40097
|
});
|
|
39905
40098
|
});
|
|
39906
|
-
resource.command("
|
|
40099
|
+
resource.command("delete-agent-customer-billing-policy").description(`Delete one customer's AI billing policy scope. Refused (409) while it owes unsettled consumption or while agent overrides still depend on it.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39907
40100
|
Examples:
|
|
39908
|
-
hyperline
|
|
39909
|
-
hyperline
|
|
39910
|
-
hyperline agents reset-agent-customer-windows --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
40101
|
+
hyperline ai-billing delete-agent-customer-billing-policy --id <id> --agent-slug <agent_slug>
|
|
40102
|
+
hyperline ai-billing delete-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --output json`).action(async (opts) => {
|
|
39911
40103
|
const ctx = resource.parent?.opts()._ctx;
|
|
39912
40104
|
if (!ctx) {
|
|
39913
40105
|
process.stderr.write("Error: Not authenticated\n");
|
|
39914
40106
|
process.exit(1);
|
|
39915
40107
|
}
|
|
39916
40108
|
const args = {};
|
|
39917
|
-
if (opts.
|
|
39918
|
-
args.
|
|
39919
|
-
if (opts.
|
|
39920
|
-
args.
|
|
40109
|
+
if (opts.id !== void 0)
|
|
40110
|
+
args.id = opts.id;
|
|
40111
|
+
if (opts.agentSlug !== void 0)
|
|
40112
|
+
args.agent_slug = opts.agentSlug;
|
|
40113
|
+
if (!opts.yes) {
|
|
40114
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40115
|
+
if (!confirmed) {
|
|
40116
|
+
process.stdout.write("Aborted.\n");
|
|
40117
|
+
return;
|
|
40118
|
+
}
|
|
40119
|
+
}
|
|
40120
|
+
await ctx.execute({
|
|
40121
|
+
method: "DELETE",
|
|
40122
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
40123
|
+
args,
|
|
40124
|
+
queryParamKeys: []
|
|
40125
|
+
});
|
|
40126
|
+
});
|
|
40127
|
+
resource.command("apply-agent-default-plan").description(`Apply the workspace's default AI agent billing plan to one customer (by id or external id). Idempotent; refuses (409) if the customer already has a different billing policy, 404 when no default plan is set.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40128
|
+
Examples:
|
|
40129
|
+
hyperline ai-billing apply-agent-default-plan --id <id>
|
|
40130
|
+
hyperline ai-billing apply-agent-default-plan --id <id> --output json`).action(async (opts) => {
|
|
40131
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40132
|
+
if (!ctx) {
|
|
40133
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40134
|
+
process.exit(1);
|
|
40135
|
+
}
|
|
40136
|
+
const args = {};
|
|
40137
|
+
if (opts.id !== void 0)
|
|
40138
|
+
args.id = opts.id;
|
|
39921
40139
|
await ctx.execute({
|
|
39922
40140
|
method: "POST",
|
|
39923
|
-
path: "/v1/
|
|
40141
|
+
path: "/v1/ai/billing/customers/{id}/apply-default-plan",
|
|
39924
40142
|
args,
|
|
39925
|
-
queryParamKeys: [
|
|
40143
|
+
queryParamKeys: []
|
|
39926
40144
|
});
|
|
39927
40145
|
});
|
|
39928
|
-
resource.command("
|
|
40146
|
+
resource.command("get-agent-customer-balance").description(`Get one customer's live AI balance, shaped by their billing mode: wallet shadow balance, credit pot, or rolling window meters with reset times. Includes per-agent scopes and overage state.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Agent scope identifier. Null is the customer's shared pool.`).addHelpText("after", `
|
|
39929
40147
|
Examples:
|
|
39930
|
-
hyperline
|
|
39931
|
-
hyperline
|
|
40148
|
+
hyperline ai-billing get-agent-customer-balance --id <id>
|
|
40149
|
+
hyperline ai-billing get-agent-customer-balance --id <id> --agent-slug <agent_slug>`).action(async (opts) => {
|
|
39932
40150
|
const ctx = resource.parent?.opts()._ctx;
|
|
39933
40151
|
if (!ctx) {
|
|
39934
40152
|
process.stderr.write("Error: Not authenticated\n");
|
|
39935
40153
|
process.exit(1);
|
|
39936
40154
|
}
|
|
39937
40155
|
const args = {};
|
|
39938
|
-
if (opts.
|
|
39939
|
-
args.
|
|
39940
|
-
if (opts.
|
|
39941
|
-
args.
|
|
39942
|
-
if (opts.overage !== void 0)
|
|
39943
|
-
args.overage = opts.overage;
|
|
39944
|
-
if (opts.from !== void 0)
|
|
39945
|
-
args.from = opts.from;
|
|
39946
|
-
if (opts.to !== void 0)
|
|
39947
|
-
args.to = opts.to;
|
|
39948
|
-
if (opts.take !== void 0)
|
|
39949
|
-
args.take = Number(opts.take);
|
|
39950
|
-
if (opts.skip !== void 0)
|
|
39951
|
-
args.skip = Number(opts.skip);
|
|
40156
|
+
if (opts.id !== void 0)
|
|
40157
|
+
args.id = opts.id;
|
|
40158
|
+
if (opts.agentSlug !== void 0)
|
|
40159
|
+
args.agent_slug = opts.agentSlug;
|
|
39952
40160
|
await ctx.execute({
|
|
39953
40161
|
method: "GET",
|
|
39954
|
-
path: "/v1/
|
|
40162
|
+
path: "/v1/ai/billing/customers/{id}/balance",
|
|
39955
40163
|
args,
|
|
39956
|
-
queryParamKeys: ["
|
|
40164
|
+
queryParamKeys: ["agent_slug"]
|
|
39957
40165
|
});
|
|
39958
40166
|
});
|
|
39959
|
-
resource.command("
|
|
40167
|
+
resource.command("reset-agent-customer-windows").description(`Reset one customer's open AI allowance windows so their next call starts a fresh full allowance. Windows-mode scopes only.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Agent scope identifier. Null is the customer's shared pool.`).addHelpText("after", `
|
|
39960
40168
|
Examples:
|
|
39961
|
-
hyperline
|
|
40169
|
+
hyperline ai-billing reset-agent-customer-windows --id <id>
|
|
40170
|
+
hyperline ai-billing reset-agent-customer-windows --id <id> --agent-slug <agent_slug>
|
|
40171
|
+
hyperline ai-billing reset-agent-customer-windows --id <id> --output json`).action(async (opts) => {
|
|
39962
40172
|
const ctx = resource.parent?.opts()._ctx;
|
|
39963
40173
|
if (!ctx) {
|
|
39964
40174
|
process.stderr.write("Error: Not authenticated\n");
|
|
39965
40175
|
process.exit(1);
|
|
39966
40176
|
}
|
|
39967
40177
|
const args = {};
|
|
39968
|
-
if (opts.
|
|
39969
|
-
args.
|
|
40178
|
+
if (opts.id !== void 0)
|
|
40179
|
+
args.id = opts.id;
|
|
40180
|
+
if (opts.agentSlug !== void 0)
|
|
40181
|
+
args.agent_slug = opts.agentSlug;
|
|
39970
40182
|
await ctx.execute({
|
|
39971
|
-
method: "
|
|
39972
|
-
path: "/v1/
|
|
40183
|
+
method: "POST",
|
|
40184
|
+
path: "/v1/ai/billing/customers/{id}/windows/reset",
|
|
39973
40185
|
args,
|
|
39974
|
-
queryParamKeys: []
|
|
40186
|
+
queryParamKeys: ["agent_slug"]
|
|
39975
40187
|
});
|
|
39976
40188
|
});
|
|
39977
|
-
|
|
39978
|
-
|
|
39979
|
-
// build/commands/generated/aggregators.js
|
|
39980
|
-
function registerAggregatorsCommands(parent) {
|
|
39981
|
-
const resource = parent.command("aggregators").description("Manage aggregators");
|
|
39982
|
-
resource.command("list").description(`List all aggregators with pagination. Aggregators define how billable events are counted or summed to compute usage.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
40189
|
+
resource.command("list-agent-customer-consumption").description(`List one customer's AI consumption ledger entries, newest first, with amounts, denominations and overage flags. Filter by agent scope, overage, and from/to time range; paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Billing scope: an empty string selects the shared pool; omission includes all scopes.`).option("--overage <value>", `Filter by overage status; omission includes both ordinary and overage entries.`).option("--from <value>", `UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--to <value>", `UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39983
40190
|
Examples:
|
|
39984
|
-
hyperline
|
|
39985
|
-
hyperline
|
|
40191
|
+
hyperline ai-billing list-agent-customer-consumption --id <id>
|
|
40192
|
+
hyperline ai-billing list-agent-customer-consumption --id <id> --agent-slug <agent_slug> --overage <overage>`).action(async (opts) => {
|
|
39986
40193
|
const ctx = resource.parent?.opts()._ctx;
|
|
39987
40194
|
if (!ctx) {
|
|
39988
40195
|
process.stderr.write("Error: Not authenticated\n");
|
|
39989
40196
|
process.exit(1);
|
|
39990
40197
|
}
|
|
39991
40198
|
const args = {};
|
|
40199
|
+
if (opts.id !== void 0)
|
|
40200
|
+
args.id = opts.id;
|
|
40201
|
+
if (opts.agentSlug !== void 0)
|
|
40202
|
+
args.agent_slug = opts.agentSlug;
|
|
40203
|
+
if (opts.overage !== void 0)
|
|
40204
|
+
args.overage = opts.overage;
|
|
40205
|
+
if (opts.from !== void 0)
|
|
40206
|
+
args.from = opts.from;
|
|
40207
|
+
if (opts.to !== void 0)
|
|
40208
|
+
args.to = opts.to;
|
|
39992
40209
|
if (opts.take !== void 0)
|
|
39993
40210
|
args.take = Number(opts.take);
|
|
39994
40211
|
if (opts.skip !== void 0)
|
|
39995
40212
|
args.skip = Number(opts.skip);
|
|
39996
40213
|
await ctx.execute({
|
|
39997
40214
|
method: "GET",
|
|
39998
|
-
path: "/v1/
|
|
40215
|
+
path: "/v1/ai/billing/customers/{id}/consumption",
|
|
39999
40216
|
args,
|
|
40000
|
-
queryParamKeys: ["take", "skip"]
|
|
40217
|
+
queryParamKeys: ["agent_slug", "overage", "from", "to", "take", "skip"]
|
|
40001
40218
|
});
|
|
40002
40219
|
});
|
|
40003
|
-
resource.command("
|
|
40220
|
+
resource.command("get-product-ai-rate-card").description(`Get the default AI rate-card reference for a credit product, or 404 when none is attached.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40004
40221
|
Examples:
|
|
40005
|
-
hyperline
|
|
40006
|
-
hyperline aggregators create --entity <entity> --operation <operation> --type <type> --where <where>
|
|
40007
|
-
hyperline aggregators create --entity <entity> --operation <operation> --output json`).action(async (opts) => {
|
|
40222
|
+
hyperline ai-billing get-product-ai-rate-card --id <id>`).action(async (opts) => {
|
|
40008
40223
|
const ctx = resource.parent?.opts()._ctx;
|
|
40009
40224
|
if (!ctx) {
|
|
40010
40225
|
process.stderr.write("Error: Not authenticated\n");
|
|
40011
40226
|
process.exit(1);
|
|
40012
40227
|
}
|
|
40013
40228
|
const args = {};
|
|
40014
|
-
if (opts.
|
|
40015
|
-
args.
|
|
40016
|
-
if (opts.type !== void 0)
|
|
40017
|
-
args.type = opts.type;
|
|
40018
|
-
if (opts.name !== void 0)
|
|
40019
|
-
args.name = opts.name;
|
|
40020
|
-
if (opts.description !== void 0)
|
|
40021
|
-
args.description = opts.description;
|
|
40022
|
-
if (opts.customEventName !== void 0)
|
|
40023
|
-
args.custom_event_name = opts.customEventName;
|
|
40024
|
-
if (opts.unitName !== void 0)
|
|
40025
|
-
args.unit_name = opts.unitName;
|
|
40026
|
-
if (opts.defaultIntervalPeriod !== void 0)
|
|
40027
|
-
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
40028
|
-
if (opts.operation !== void 0)
|
|
40029
|
-
args.operation = opts.operation;
|
|
40030
|
-
if (opts.property !== void 0)
|
|
40031
|
-
args.property = opts.property;
|
|
40032
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40033
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40034
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40035
|
-
args.allow_negative_values = true;
|
|
40036
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40037
|
-
args.aggregate_on_customers_enabled = true;
|
|
40038
|
-
if (opts.where !== void 0)
|
|
40039
|
-
args.where = JSON.parse(opts.where);
|
|
40040
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40041
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40042
|
-
if (opts.thresholds !== void 0)
|
|
40043
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
40229
|
+
if (opts.id !== void 0)
|
|
40230
|
+
args.id = opts.id;
|
|
40044
40231
|
await ctx.execute({
|
|
40045
|
-
method: "
|
|
40046
|
-
path: "/v1/
|
|
40232
|
+
method: "GET",
|
|
40233
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40047
40234
|
args,
|
|
40048
40235
|
queryParamKeys: []
|
|
40049
40236
|
});
|
|
40050
40237
|
});
|
|
40051
|
-
resource.command("
|
|
40238
|
+
resource.command("set-product-ai-rate-card").description(`Attach a credits-denominated AI rate card with complete fallback pricing as the credit product's default.`).requiredOption("--id <value>", `id parameter`).requiredOption("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).addHelpText("after", `
|
|
40052
40239
|
Examples:
|
|
40053
|
-
hyperline
|
|
40240
|
+
hyperline ai-billing set-product-ai-rate-card --id <id> --rate-card-id <rate_card_id>
|
|
40241
|
+
hyperline ai-billing set-product-ai-rate-card --id <id> --rate-card-id <rate_card_id> --output json`).action(async (opts) => {
|
|
40054
40242
|
const ctx = resource.parent?.opts()._ctx;
|
|
40055
40243
|
if (!ctx) {
|
|
40056
40244
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40059,18 +40247,19 @@ Examples:
|
|
|
40059
40247
|
const args = {};
|
|
40060
40248
|
if (opts.id !== void 0)
|
|
40061
40249
|
args.id = opts.id;
|
|
40250
|
+
if (opts.rateCardId !== void 0)
|
|
40251
|
+
args.rate_card_id = opts.rateCardId;
|
|
40062
40252
|
await ctx.execute({
|
|
40063
|
-
method: "
|
|
40064
|
-
path: "/v1/
|
|
40253
|
+
method: "PUT",
|
|
40254
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40065
40255
|
args,
|
|
40066
40256
|
queryParamKeys: []
|
|
40067
40257
|
});
|
|
40068
40258
|
});
|
|
40069
|
-
resource.command("
|
|
40259
|
+
resource.command("clear-product-ai-rate-card").description(`Detach a credit product's default AI rate card without deleting the card, or return 404 when none is attached.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40070
40260
|
Examples:
|
|
40071
|
-
hyperline
|
|
40072
|
-
hyperline
|
|
40073
|
-
hyperline aggregators update --id <id> --output json`).action(async (opts) => {
|
|
40261
|
+
hyperline ai-billing clear-product-ai-rate-card --id <id>
|
|
40262
|
+
hyperline ai-billing clear-product-ai-rate-card --id <id> --output json`).action(async (opts) => {
|
|
40074
40263
|
const ctx = resource.parent?.opts()._ctx;
|
|
40075
40264
|
if (!ctx) {
|
|
40076
40265
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40079,77 +40268,75 @@ Examples:
|
|
|
40079
40268
|
const args = {};
|
|
40080
40269
|
if (opts.id !== void 0)
|
|
40081
40270
|
args.id = opts.id;
|
|
40082
|
-
if (opts.
|
|
40083
|
-
|
|
40084
|
-
|
|
40085
|
-
|
|
40086
|
-
|
|
40087
|
-
|
|
40088
|
-
|
|
40089
|
-
args.description = opts.description;
|
|
40090
|
-
if (opts.customEventName !== void 0)
|
|
40091
|
-
args.custom_event_name = opts.customEventName;
|
|
40092
|
-
if (opts.unitName !== void 0)
|
|
40093
|
-
args.unit_name = opts.unitName;
|
|
40094
|
-
if (opts.defaultIntervalPeriod !== void 0)
|
|
40095
|
-
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
40096
|
-
if (opts.operation !== void 0)
|
|
40097
|
-
args.operation = opts.operation;
|
|
40098
|
-
if (opts.property !== void 0)
|
|
40099
|
-
args.property = opts.property;
|
|
40100
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40101
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40102
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40103
|
-
args.allow_negative_values = true;
|
|
40104
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40105
|
-
args.aggregate_on_customers_enabled = true;
|
|
40106
|
-
if (opts.where !== void 0)
|
|
40107
|
-
args.where = JSON.parse(opts.where);
|
|
40108
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40109
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40110
|
-
if (opts.thresholds !== void 0)
|
|
40111
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
40271
|
+
if (!opts.yes) {
|
|
40272
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40273
|
+
if (!confirmed) {
|
|
40274
|
+
process.stdout.write("Aborted.\n");
|
|
40275
|
+
return;
|
|
40276
|
+
}
|
|
40277
|
+
}
|
|
40112
40278
|
await ctx.execute({
|
|
40113
|
-
method: "
|
|
40114
|
-
path: "/v1/
|
|
40279
|
+
method: "DELETE",
|
|
40280
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40281
|
+
args,
|
|
40282
|
+
queryParamKeys: []
|
|
40283
|
+
});
|
|
40284
|
+
});
|
|
40285
|
+
}
|
|
40286
|
+
|
|
40287
|
+
// build/commands/generated/ai-costs.js
|
|
40288
|
+
function registerAi_CostsCommands(parent) {
|
|
40289
|
+
const resource = parent.command("ai-costs").description("Manage ai > costs");
|
|
40290
|
+
resource.command("list-agent-cost-catalog").description(`List the AI cost catalog: registry model prices merged with this workspace's negotiated overrides, its own custom cost items (source custom), and the unpriced pairs its telemetry has carried (source unlisted). Rates are USD decimal strings. Pass enabled_only=true for just the enabled catalog.`).option("--take <number>", `Maximum catalog entries to return.`).option("--skip <number>", `skip`).option("--enabled-only <value>", `enabled_only`).addHelpText("after", `
|
|
40291
|
+
Examples:
|
|
40292
|
+
hyperline ai-costs list-agent-cost-catalog
|
|
40293
|
+
hyperline ai-costs list-agent-cost-catalog --take <take> --enabled-only <enabled_only>`).action(async (opts) => {
|
|
40294
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40295
|
+
if (!ctx) {
|
|
40296
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40297
|
+
process.exit(1);
|
|
40298
|
+
}
|
|
40299
|
+
const args = {};
|
|
40300
|
+
if (opts.enabledOnly !== void 0)
|
|
40301
|
+
args.enabled_only = opts.enabledOnly;
|
|
40302
|
+
if (opts.take !== void 0)
|
|
40303
|
+
args.take = Number(opts.take);
|
|
40304
|
+
if (opts.skip !== void 0)
|
|
40305
|
+
args.skip = Number(opts.skip);
|
|
40306
|
+
await ctx.execute({
|
|
40307
|
+
method: "GET",
|
|
40308
|
+
path: "/v1/ai/billing/costs",
|
|
40115
40309
|
args,
|
|
40116
|
-
queryParamKeys: []
|
|
40310
|
+
queryParamKeys: ["take", "skip", "enabled_only"]
|
|
40117
40311
|
});
|
|
40118
40312
|
});
|
|
40119
|
-
resource.command("
|
|
40313
|
+
resource.command("create-agent-cost-catalog-item").description(`Create a custom provider/item cost; an existing pair returns 200 with its unchanged rates, so use PUT /v1/ai/billing/costs/items/:id to edit it.`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--item <value>", `Custom item name matching the usage payload.`).requiredOption("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40120
40314
|
Examples:
|
|
40121
|
-
hyperline
|
|
40122
|
-
hyperline
|
|
40315
|
+
hyperline ai-costs create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions>
|
|
40316
|
+
hyperline ai-costs create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions> --output json`).action(async (opts) => {
|
|
40123
40317
|
const ctx = resource.parent?.opts()._ctx;
|
|
40124
40318
|
if (!ctx) {
|
|
40125
40319
|
process.stderr.write("Error: Not authenticated\n");
|
|
40126
40320
|
process.exit(1);
|
|
40127
40321
|
}
|
|
40128
40322
|
const args = {};
|
|
40129
|
-
if (opts.
|
|
40130
|
-
args.
|
|
40131
|
-
if (
|
|
40132
|
-
|
|
40133
|
-
|
|
40134
|
-
|
|
40135
|
-
return;
|
|
40136
|
-
}
|
|
40137
|
-
}
|
|
40323
|
+
if (opts.provider !== void 0)
|
|
40324
|
+
args.provider = opts.provider;
|
|
40325
|
+
if (opts.item !== void 0)
|
|
40326
|
+
args.item = opts.item;
|
|
40327
|
+
if (opts.dimensions !== void 0)
|
|
40328
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40138
40329
|
await ctx.execute({
|
|
40139
|
-
method: "
|
|
40140
|
-
path: "/v1/
|
|
40330
|
+
method: "POST",
|
|
40331
|
+
path: "/v1/ai/billing/costs/items",
|
|
40141
40332
|
args,
|
|
40142
40333
|
queryParamKeys: []
|
|
40143
40334
|
});
|
|
40144
40335
|
});
|
|
40145
|
-
|
|
40146
|
-
|
|
40147
|
-
// build/commands/generated/aggregators-usage.js
|
|
40148
|
-
function registerAggregators_UsageCommands(parent) {
|
|
40149
|
-
const resource = parent.command("aggregators-usage").description("Manage aggregators > usage");
|
|
40150
|
-
resource.command("get-aggregator-usage").description(`Retrieve a usage row for an aggregator. Use the timeseries, group-by-customer or events endpoints to query metering data.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40336
|
+
resource.command("delete-agent-cost-catalog-item").description(`Close a custom AI cost item by its custom_item_id. History is kept; new calls on that pair go back to unpriced. An override id passed here is a 404.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40151
40337
|
Examples:
|
|
40152
|
-
hyperline
|
|
40338
|
+
hyperline ai-costs delete-agent-cost-catalog-item --id <id>
|
|
40339
|
+
hyperline ai-costs delete-agent-cost-catalog-item --id <id> --output json`).action(async (opts) => {
|
|
40153
40340
|
const ctx = resource.parent?.opts()._ctx;
|
|
40154
40341
|
if (!ctx) {
|
|
40155
40342
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40158,49 +40345,56 @@ Examples:
|
|
|
40158
40345
|
const args = {};
|
|
40159
40346
|
if (opts.id !== void 0)
|
|
40160
40347
|
args.id = opts.id;
|
|
40348
|
+
if (!opts.yes) {
|
|
40349
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40350
|
+
if (!confirmed) {
|
|
40351
|
+
process.stdout.write("Aborted.\n");
|
|
40352
|
+
return;
|
|
40353
|
+
}
|
|
40354
|
+
}
|
|
40161
40355
|
await ctx.execute({
|
|
40162
|
-
method: "
|
|
40163
|
-
path: "/v1/
|
|
40356
|
+
method: "DELETE",
|
|
40357
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40164
40358
|
args,
|
|
40165
40359
|
queryParamKeys: []
|
|
40166
40360
|
});
|
|
40167
40361
|
});
|
|
40168
|
-
resource.command("
|
|
40362
|
+
resource.command("upsert-agent-cost-catalog-override").description(`Set this workspace's negotiated price for a registry AI model (input/output/cached/cache-write USD per 1M tokens, plus optional dimensions). Replaces any open override immediately; historical calls keep their original rate. A pair the registry does not know is refused \u2014 create a custom cost item instead.`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--model <value>", `Model identifier, or custom item identifier. Null on wildcard pricing rows.`).requiredOption("--input-per-m-tokens <value>", `Provider cost in USD per million input tokens, as an exact decimal string.`).requiredOption("--output-per-m-tokens <value>", `Provider cost in USD per million output tokens, as an exact decimal string.`).option("--cached-input-per-m-tokens <value>", `Provider cost in USD per million cached input tokens, as an exact decimal string.`).option("--cache-write-per-m-tokens <value>", `Provider cost in USD per million cache write tokens, as an exact decimal string.`).option("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40169
40363
|
Examples:
|
|
40170
|
-
hyperline
|
|
40171
|
-
hyperline
|
|
40364
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens>
|
|
40365
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --cached-input-per-m-tokens <cached_input_per_m_tokens> --cache-write-per-m-tokens <cache_write_per_m_tokens>
|
|
40366
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --output json`).action(async (opts) => {
|
|
40172
40367
|
const ctx = resource.parent?.opts()._ctx;
|
|
40173
40368
|
if (!ctx) {
|
|
40174
40369
|
process.stderr.write("Error: Not authenticated\n");
|
|
40175
40370
|
process.exit(1);
|
|
40176
40371
|
}
|
|
40177
40372
|
const args = {};
|
|
40178
|
-
if (opts.
|
|
40179
|
-
args.
|
|
40180
|
-
if (opts.
|
|
40181
|
-
args.
|
|
40182
|
-
if (opts.
|
|
40183
|
-
args.
|
|
40184
|
-
if (opts.
|
|
40185
|
-
args.
|
|
40186
|
-
if (opts.
|
|
40187
|
-
args.
|
|
40373
|
+
if (opts.provider !== void 0)
|
|
40374
|
+
args.provider = opts.provider;
|
|
40375
|
+
if (opts.model !== void 0)
|
|
40376
|
+
args.model = opts.model;
|
|
40377
|
+
if (opts.inputPerMTokens !== void 0)
|
|
40378
|
+
args.input_per_m_tokens = opts.inputPerMTokens;
|
|
40379
|
+
if (opts.outputPerMTokens !== void 0)
|
|
40380
|
+
args.output_per_m_tokens = opts.outputPerMTokens;
|
|
40381
|
+
if (opts.cachedInputPerMTokens !== void 0)
|
|
40382
|
+
args.cached_input_per_m_tokens = opts.cachedInputPerMTokens;
|
|
40383
|
+
if (opts.cacheWritePerMTokens !== void 0)
|
|
40384
|
+
args.cache_write_per_m_tokens = opts.cacheWritePerMTokens;
|
|
40385
|
+
if (opts.dimensions !== void 0)
|
|
40386
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40188
40387
|
await ctx.execute({
|
|
40189
|
-
method: "
|
|
40190
|
-
path: "/v1/
|
|
40388
|
+
method: "PUT",
|
|
40389
|
+
path: "/v1/ai/billing/costs/overrides",
|
|
40191
40390
|
args,
|
|
40192
|
-
queryParamKeys: [
|
|
40193
|
-
"start_date",
|
|
40194
|
-
"end_date",
|
|
40195
|
-
"aggregator_filter_id",
|
|
40196
|
-
"group_by"
|
|
40197
|
-
]
|
|
40391
|
+
queryParamKeys: []
|
|
40198
40392
|
});
|
|
40199
40393
|
});
|
|
40200
|
-
resource.command("
|
|
40394
|
+
resource.command("delete-agent-cost-catalog-override").description(`Close this workspace's negotiated price override by its override.id; pricing falls back to the global registry rate. A custom cost item id passed here is a 404.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40201
40395
|
Examples:
|
|
40202
|
-
hyperline
|
|
40203
|
-
hyperline
|
|
40396
|
+
hyperline ai-costs delete-agent-cost-catalog-override --id <id>
|
|
40397
|
+
hyperline ai-costs delete-agent-cost-catalog-override --id <id> --output json`).action(async (opts) => {
|
|
40204
40398
|
const ctx = resource.parent?.opts()._ctx;
|
|
40205
40399
|
if (!ctx) {
|
|
40206
40400
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40209,33 +40403,24 @@ Examples:
|
|
|
40209
40403
|
const args = {};
|
|
40210
40404
|
if (opts.id !== void 0)
|
|
40211
40405
|
args.id = opts.id;
|
|
40212
|
-
if (opts.
|
|
40213
|
-
|
|
40214
|
-
|
|
40215
|
-
|
|
40216
|
-
|
|
40217
|
-
|
|
40218
|
-
|
|
40219
|
-
args.take = Number(opts.take);
|
|
40220
|
-
if (opts.skip !== void 0)
|
|
40221
|
-
args.skip = Number(opts.skip);
|
|
40406
|
+
if (!opts.yes) {
|
|
40407
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40408
|
+
if (!confirmed) {
|
|
40409
|
+
process.stdout.write("Aborted.\n");
|
|
40410
|
+
return;
|
|
40411
|
+
}
|
|
40412
|
+
}
|
|
40222
40413
|
await ctx.execute({
|
|
40223
|
-
method: "
|
|
40224
|
-
path: "/v1/
|
|
40414
|
+
method: "DELETE",
|
|
40415
|
+
path: "/v1/ai/billing/costs/overrides/{id}",
|
|
40225
40416
|
args,
|
|
40226
|
-
queryParamKeys: [
|
|
40227
|
-
"start_date",
|
|
40228
|
-
"end_date",
|
|
40229
|
-
"aggregator_filter_id",
|
|
40230
|
-
"take",
|
|
40231
|
-
"skip"
|
|
40232
|
-
]
|
|
40417
|
+
queryParamKeys: []
|
|
40233
40418
|
});
|
|
40234
40419
|
});
|
|
40235
|
-
resource.command("
|
|
40420
|
+
resource.command("replace-agent-cost-catalog-item").description(`Replace a custom item's provider, item and dimensions, preserving historical prices and returning the new active custom_item_id.`).requiredOption("--id <value>", `id parameter`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--item <value>", `Custom item name matching the usage payload.`).requiredOption("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40236
40421
|
Examples:
|
|
40237
|
-
hyperline
|
|
40238
|
-
hyperline
|
|
40422
|
+
hyperline ai-costs replace-agent-cost-catalog-item --id <id> --provider <provider> --item <item> --dimensions <dimensions>
|
|
40423
|
+
hyperline ai-costs replace-agent-cost-catalog-item --id <id> --provider <provider> --item <item> --dimensions <dimensions> --output json`).action(async (opts) => {
|
|
40239
40424
|
const ctx = resource.parent?.opts()._ctx;
|
|
40240
40425
|
if (!ctx) {
|
|
40241
40426
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40244,27 +40429,17 @@ Examples:
|
|
|
40244
40429
|
const args = {};
|
|
40245
40430
|
if (opts.id !== void 0)
|
|
40246
40431
|
args.id = opts.id;
|
|
40247
|
-
if (opts.
|
|
40248
|
-
args.
|
|
40249
|
-
if (opts.
|
|
40250
|
-
args.
|
|
40251
|
-
if (opts.
|
|
40252
|
-
args.
|
|
40253
|
-
if (opts.take !== void 0)
|
|
40254
|
-
args.take = Number(opts.take);
|
|
40255
|
-
if (opts.skip !== void 0)
|
|
40256
|
-
args.skip = Number(opts.skip);
|
|
40432
|
+
if (opts.provider !== void 0)
|
|
40433
|
+
args.provider = opts.provider;
|
|
40434
|
+
if (opts.item !== void 0)
|
|
40435
|
+
args.item = opts.item;
|
|
40436
|
+
if (opts.dimensions !== void 0)
|
|
40437
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40257
40438
|
await ctx.execute({
|
|
40258
|
-
method: "
|
|
40259
|
-
path: "/v1/
|
|
40439
|
+
method: "PUT",
|
|
40440
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40260
40441
|
args,
|
|
40261
|
-
queryParamKeys: [
|
|
40262
|
-
"start_date",
|
|
40263
|
-
"end_date",
|
|
40264
|
-
"aggregator_filter_id",
|
|
40265
|
-
"take",
|
|
40266
|
-
"skip"
|
|
40267
|
-
]
|
|
40442
|
+
queryParamKeys: []
|
|
40268
40443
|
});
|
|
40269
40444
|
});
|
|
40270
40445
|
}
|
|
@@ -40756,7 +40931,7 @@ Examples:
|
|
|
40756
40931
|
queryParamKeys: []
|
|
40757
40932
|
});
|
|
40758
40933
|
});
|
|
40759
|
-
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (
|
|
40934
|
+
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (text, email, number, boolean, date, select, multi_select), and optional default value.`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <json>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <json>", `authorized_values`).option("--default-value <json>", `Value set on entities created without an explicit value for this custom property. On existing entities without a value, it also satisfies \`required\`. Must match the custom property type, and one of \`authorized_values\` for \`select\` and \`multi_select\` types. Dates are ISO 8601 strings. Email defaults must be valid email addresses. Null means no default value.`).addHelpText("after", `
|
|
40760
40935
|
Examples:
|
|
40761
40936
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities>
|
|
40762
40937
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
@@ -40781,6 +40956,8 @@ Examples:
|
|
|
40781
40956
|
args.entities = JSON.parse(opts.entities);
|
|
40782
40957
|
if (opts.authorizedValues !== void 0)
|
|
40783
40958
|
args.authorized_values = JSON.parse(opts.authorizedValues);
|
|
40959
|
+
if (opts.defaultValue !== void 0)
|
|
40960
|
+
args.default_value = JSON.parse(opts.defaultValue);
|
|
40784
40961
|
await ctx.execute({
|
|
40785
40962
|
method: "POST",
|
|
40786
40963
|
path: "/v1/custom-properties",
|
|
@@ -40788,7 +40965,7 @@ Examples:
|
|
|
40788
40965
|
queryParamKeys: []
|
|
40789
40966
|
});
|
|
40790
40967
|
});
|
|
40791
|
-
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <json>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <json>", `authorized_values`).addHelpText("after", `
|
|
40968
|
+
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <json>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <json>", `authorized_values`).option("--default-value <json>", `Value set on entities created without an explicit value for this custom property. On existing entities without a value, it also satisfies \`required\`. Must match the custom property type, and one of \`authorized_values\` for \`select\` and \`multi_select\` types. Dates are ISO 8601 strings. Email defaults must be valid email addresses. Null means no default value.`).addHelpText("after", `
|
|
40792
40969
|
Examples:
|
|
40793
40970
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities>
|
|
40794
40971
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
@@ -40815,6 +40992,8 @@ Examples:
|
|
|
40815
40992
|
args.entities = JSON.parse(opts.entities);
|
|
40816
40993
|
if (opts.authorizedValues !== void 0)
|
|
40817
40994
|
args.authorized_values = JSON.parse(opts.authorizedValues);
|
|
40995
|
+
if (opts.defaultValue !== void 0)
|
|
40996
|
+
args.default_value = JSON.parse(opts.defaultValue);
|
|
40818
40997
|
await ctx.execute({
|
|
40819
40998
|
method: "PUT",
|
|
40820
40999
|
path: "/v1/custom-properties/{id}",
|
|
@@ -41595,7 +41774,7 @@ Examples:
|
|
|
41595
41774
|
queryParamKeys: []
|
|
41596
41775
|
});
|
|
41597
41776
|
});
|
|
41598
|
-
resource.command("create-customer-address").description(`Create a shipping address with type shipping; billing creation is rejected because a customer can have at most one billing address, managed through the customer endpoint.`).requiredOption("--customer-id <value>", `customerId parameter`).option("--name <value>", `Address name.`).option("--line1 <value>", `Address first line.`).option("--line2 <value>", `Address second line (optional).`).option("--city <value>", `Address city.`).option("--zip <value>", `Address ZIP code.`).option("--state <value>", `Only for US country. Second part of subdivision code in ISO format. See [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US).`).option("--country <value>", `Two-letter country code in ISO format. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).`).
|
|
41777
|
+
resource.command("create-customer-address").description(`Create a shipping address with type shipping; billing creation is rejected because a customer can have at most one billing address, managed through the customer endpoint.`).requiredOption("--customer-id <value>", `customerId parameter`).requiredOption("--type <value>", `Only shipping addresses can be created here. A customer has at most one active billing address, managed through the customer or by updating its address ID.`).option("--name <value>", `Address name.`).option("--line1 <value>", `Address first line.`).option("--line2 <value>", `Address second line (optional).`).option("--city <value>", `Address city.`).option("--zip <value>", `Address ZIP code.`).option("--state <value>", `Only for US country. Second part of subdivision code in ISO format. See [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US).`).option("--country <value>", `Two-letter country code in ISO format. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).`).option("--tax-id <value>", `Tax ID override for a shipping address. Null or blank inherits the customer's tax ID; omission on update preserves the override. Billing addresses cannot have an override.`).addHelpText("after", `
|
|
41599
41778
|
Examples:
|
|
41600
41779
|
hyperline customers-address create-customer-address --customer-id <customerId> --type <type>
|
|
41601
41780
|
hyperline customers-address create-customer-address --customer-id <customerId> --type <type> --name <name> --line1 <line1>
|
|
@@ -41608,6 +41787,8 @@ Examples:
|
|
|
41608
41787
|
const args = {};
|
|
41609
41788
|
if (opts.customerId !== void 0)
|
|
41610
41789
|
args.customerId = opts.customerId;
|
|
41790
|
+
if (opts.type !== void 0)
|
|
41791
|
+
args.type = opts.type;
|
|
41611
41792
|
if (opts.name !== void 0)
|
|
41612
41793
|
args.name = opts.name;
|
|
41613
41794
|
if (opts.line1 !== void 0)
|
|
@@ -41622,8 +41803,8 @@ Examples:
|
|
|
41622
41803
|
args.state = opts.state;
|
|
41623
41804
|
if (opts.country !== void 0)
|
|
41624
41805
|
args.country = opts.country;
|
|
41625
|
-
if (opts.
|
|
41626
|
-
args.
|
|
41806
|
+
if (opts.taxId !== void 0)
|
|
41807
|
+
args.tax_id = opts.taxId;
|
|
41627
41808
|
await ctx.execute({
|
|
41628
41809
|
method: "POST",
|
|
41629
41810
|
path: "/v1/customers/{customerId}/addresses",
|
|
@@ -41631,7 +41812,7 @@ Examples:
|
|
|
41631
41812
|
queryParamKeys: []
|
|
41632
41813
|
});
|
|
41633
41814
|
});
|
|
41634
|
-
resource.command("update-customer-address").description(`Update a billing or shipping address by ID; billing changes also update the customer billing-address projection.`).requiredOption("--customer-id <value>", `customerId parameter`).requiredOption("--address-id <value>", `addressId parameter`).option("--name <value>", `Address name.`).option("--line1 <value>", `Address first line.`).option("--line2 <value>", `Address second line (optional).`).option("--city <value>", `Address city.`).option("--zip <value>", `Address ZIP code.`).option("--state <value>", `Only for US country. Second part of subdivision code in ISO format. See [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US).`).option("--country <value>", `Two-letter country code in ISO format. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).`).addHelpText("after", `
|
|
41815
|
+
resource.command("update-customer-address").description(`Update a billing or shipping address by ID; billing changes also update the customer billing-address projection.`).requiredOption("--customer-id <value>", `customerId parameter`).requiredOption("--address-id <value>", `addressId parameter`).option("--name <value>", `Address name.`).option("--line1 <value>", `Address first line.`).option("--line2 <value>", `Address second line (optional).`).option("--city <value>", `Address city.`).option("--zip <value>", `Address ZIP code.`).option("--state <value>", `Only for US country. Second part of subdivision code in ISO format. See [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US).`).option("--country <value>", `Two-letter country code in ISO format. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).`).option("--tax-id <value>", `Tax ID override for a shipping address. Null or blank inherits the customer's tax ID; omission on update preserves the override. Billing addresses cannot have an override.`).addHelpText("after", `
|
|
41635
41816
|
Examples:
|
|
41636
41817
|
hyperline customers-address update-customer-address --customer-id <customerId> --address-id <addressId>
|
|
41637
41818
|
hyperline customers-address update-customer-address --customer-id <customerId> --address-id <addressId> --name <name> --line1 <line1>
|
|
@@ -41660,6 +41841,8 @@ Examples:
|
|
|
41660
41841
|
args.state = opts.state;
|
|
41661
41842
|
if (opts.country !== void 0)
|
|
41662
41843
|
args.country = opts.country;
|
|
41844
|
+
if (opts.taxId !== void 0)
|
|
41845
|
+
args.tax_id = opts.taxId;
|
|
41663
41846
|
await ctx.execute({
|
|
41664
41847
|
method: "PATCH",
|
|
41665
41848
|
path: "/v1/customers/{customerId}/addresses/{addressId}",
|
|
@@ -41842,7 +42025,7 @@ Examples:
|
|
|
41842
42025
|
queryParamKeys: []
|
|
41843
42026
|
});
|
|
41844
42027
|
});
|
|
41845
|
-
resource.command("list-customer-credit-transactions").description(`List all transactions (
|
|
42028
|
+
resource.command("list-customer-credit-transactions").description(`List all transactions (topups, usages, expirations) for a specific credit product. Paginated with take/skip and optional filters.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--type <value>", `type`).option("--invoice-id <value>", `invoice_id`).option("--created-at <value>", `created_at`).addHelpText("after", `
|
|
41846
42029
|
Examples:
|
|
41847
42030
|
hyperline customers-credits list-customer-credit-transactions --id <id> --product-id <productId>
|
|
41848
42031
|
hyperline customers-credits list-customer-credit-transactions --id <id> --product-id <productId> --take <take> --type <type>`).action(async (opts) => {
|
|
@@ -41931,7 +42114,7 @@ Examples:
|
|
|
41931
42114
|
queryParamKeys: []
|
|
41932
42115
|
});
|
|
41933
42116
|
});
|
|
41934
|
-
resource.command("purchase-customer-credits").description(`Purchase credits for a customer. This generates an invoice and charges the customer. Returns the invoice ID and new balance.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--credit-count <number>", `Value indicating a number of credits to add. If \`price_id\` is defined, this value must correspond to a full credit pack for the price.`).option("--amount-excluding-tax <number>", `Custom amount for the added credits. Either \`amount_excluding_tax\` or \`price_id\` must be defined. Expressed in currency's smallest unit.`).option("--price-id <value>", `Price ID used to add credits. The price must be of type \`bundle\`. Either \`amount_excluding_tax\` or \`price_id\` must be defined.`).option("--expires-at <value>", `Expiration date for credits linked to this transaction. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42117
|
+
resource.command("purchase-customer-credits").description(`Purchase credits for a customer. This generates an invoice and charges the customer's card immediately, granting the credits only once paid. Requires a card payment method (otherwise fails with reason \`payment_method_not_supported\`). Returns the invoice ID and new balance.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--credit-count <number>", `Value indicating a number of credits to add. If \`price_id\` is defined, this value must correspond to a full credit pack for the price.`).option("--amount-excluding-tax <number>", `Custom amount for the added credits. Either \`amount_excluding_tax\` or \`price_id\` must be defined. Expressed in currency's smallest unit.`).option("--price-id <value>", `Price ID used to add credits. The price must be of type \`bundle\`. Either \`amount_excluding_tax\` or \`price_id\` must be defined.`).option("--expires-at <value>", `Expiration date for credits linked to this transaction. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
41935
42118
|
Examples:
|
|
41936
42119
|
hyperline customers-credits purchase-customer-credits --id <id> --product-id <productId> --credit-count <credit_count>
|
|
41937
42120
|
hyperline customers-credits purchase-customer-credits --id <id> --product-id <productId> --credit-count <credit_count> --amount-excluding-tax <amount_excluding_tax> --price-id <price_id>
|
|
@@ -42013,6 +42196,54 @@ Examples:
|
|
|
42013
42196
|
queryParamKeys: []
|
|
42014
42197
|
});
|
|
42015
42198
|
});
|
|
42199
|
+
resource.command("get-customer-credit-portal-settings").description(`Get whether a customer can top up a credit product from the customer portal, at which price, and which prices can be selected.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).addHelpText("after", `
|
|
42200
|
+
Examples:
|
|
42201
|
+
hyperline customers-credits get-customer-credit-portal-settings --id <id> --product-id <productId>`).action(async (opts) => {
|
|
42202
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42203
|
+
if (!ctx) {
|
|
42204
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42205
|
+
process.exit(1);
|
|
42206
|
+
}
|
|
42207
|
+
const args = {};
|
|
42208
|
+
if (opts.id !== void 0)
|
|
42209
|
+
args.id = opts.id;
|
|
42210
|
+
if (opts.productId !== void 0)
|
|
42211
|
+
args.productId = opts.productId;
|
|
42212
|
+
await ctx.execute({
|
|
42213
|
+
method: "GET",
|
|
42214
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42215
|
+
args,
|
|
42216
|
+
queryParamKeys: []
|
|
42217
|
+
});
|
|
42218
|
+
});
|
|
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\`. 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
|
+
Examples:
|
|
42221
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled
|
|
42222
|
+
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>
|
|
42223
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled --output json`).action(async (opts) => {
|
|
42224
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42225
|
+
if (!ctx) {
|
|
42226
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42227
|
+
process.exit(1);
|
|
42228
|
+
}
|
|
42229
|
+
const args = {};
|
|
42230
|
+
if (opts.id !== void 0)
|
|
42231
|
+
args.id = opts.id;
|
|
42232
|
+
if (opts.productId !== void 0)
|
|
42233
|
+
args.productId = opts.productId;
|
|
42234
|
+
if (opts.priceConfigurationId !== void 0)
|
|
42235
|
+
args.price_configuration_id = opts.priceConfigurationId;
|
|
42236
|
+
if (opts.enabled !== void 0)
|
|
42237
|
+
args.enabled = true;
|
|
42238
|
+
if (opts.customPriceConfiguration !== void 0)
|
|
42239
|
+
args.custom_price_configuration = JSON.parse(opts.customPriceConfiguration);
|
|
42240
|
+
await ctx.execute({
|
|
42241
|
+
method: "PUT",
|
|
42242
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42243
|
+
args,
|
|
42244
|
+
queryParamKeys: []
|
|
42245
|
+
});
|
|
42246
|
+
});
|
|
42016
42247
|
}
|
|
42017
42248
|
|
|
42018
42249
|
// build/commands/generated/customers-payment-methods.js
|
|
@@ -42968,7 +43199,7 @@ Payment method strategy used to charge the invoice. Only applies to \`to_pay\` s
|
|
|
42968
43199
|
|
|
42969
43200
|
- \`current\`: Use the current default payment method of the customer.
|
|
42970
43201
|
- \`external\`: Manage the payment of the invoice outside of Hyperline.
|
|
42971
|
-
`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--emitted-at <value>", `Issue date of the invoice.`).option("--due-at <value>", `Due date of the invoice. Computed from the issue date and the payment delay configured in your settings.`).option("--settled-at <value>", `Date the invoice was fully paid.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <json>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).option("--additional-display-fields <json>", `Ordered additional fields displayed on the invoice PDF. Invoice and customer custom properties are referenced by slug.`).requiredOption("--line-items <json>", `line_items`).option("--transactions <json>", `transactions`).option("--coupons <json>", `coupons`).addHelpText("after", `
|
|
43202
|
+
`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--emitted-at <value>", `Issue date of the invoice.`).option("--due-at <value>", `Due date of the invoice. Computed from the issue date and the payment delay configured in your settings.`).option("--settled-at <value>", `Date the invoice was fully paid.`).option("--issuing-method <value>", `Set to \`scheduled\` to finalize the draft invoice automatically on its issue date (\`emitted_at\`), resolved to the start of that day in the customer timezone. Requires \`status\` to be \`draft\` and an issue date after today. Default to \`manual\`.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <json>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).option("--additional-display-fields <json>", `Ordered additional fields displayed on the invoice PDF. Invoice and customer custom properties are referenced by slug.`).requiredOption("--line-items <json>", `line_items`).option("--transactions <json>", `transactions`).option("--coupons <json>", `coupons`).addHelpText("after", `
|
|
42972
43203
|
Examples:
|
|
42973
43204
|
hyperline invoices create-invoice --customer-id <customer_id> --line-items <line_items>
|
|
42974
43205
|
hyperline invoices create-invoice --customer-id <customer_id> --line-items <line_items> --currency <currency> --status <status>
|
|
@@ -43019,6 +43250,8 @@ Examples:
|
|
|
43019
43250
|
args.due_at = opts.dueAt;
|
|
43020
43251
|
if (opts.settledAt !== void 0)
|
|
43021
43252
|
args.settled_at = opts.settledAt;
|
|
43253
|
+
if (opts.issuingMethod !== void 0)
|
|
43254
|
+
args.issuing_method = opts.issuingMethod;
|
|
43022
43255
|
if (opts.properties !== void 0)
|
|
43023
43256
|
args.properties = JSON.parse(opts.properties);
|
|
43024
43257
|
if (opts.customProperties !== void 0)
|
|
@@ -43208,7 +43441,7 @@ Examples:
|
|
|
43208
43441
|
|
|
43209
43442
|
- \`auto\`: Tax is automatically computed and applied.
|
|
43210
43443
|
- \`not_eligible\`: Tax collection is disabled for the invoice.
|
|
43211
|
-
`).option("--line-items <json>", `line_items`).option("--coupons <json>", `coupons`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <json>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).option("--additional-display-fields <json>", `Ordered additional fields displayed on the invoice PDF. Invoice and customer custom properties are referenced by slug.`).option("--customer <json>", `Override customer details on the invoice. Only allowed for draft or grace period invoices.`).addHelpText("after", `
|
|
43444
|
+
`).option("--issuing-method <value>", `Set to \`scheduled\` to finalize the draft invoice automatically on its issue date (\`emitted_at\`), in the invoice timezone. The issue date must be after today. Set to \`manual\` to unschedule the invoice.`).option("--emitted-at <value>", `Issue date of the draft invoice. For a scheduled invoice, the day on which it is automatically finalized.`).option("--line-items <json>", `line_items`).option("--coupons <json>", `coupons`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--properties <json>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <json>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).option("--additional-display-fields <json>", `Ordered additional fields displayed on the invoice PDF. Invoice and customer custom properties are referenced by slug.`).option("--customer <json>", `Override customer details on the invoice. Only allowed for draft or grace period invoices.`).addHelpText("after", `
|
|
43212
43445
|
Examples:
|
|
43213
43446
|
hyperline invoices update --id <id>
|
|
43214
43447
|
hyperline invoices update --id <id> --type <type> --document-name <document_name>
|
|
@@ -43237,6 +43470,10 @@ Examples:
|
|
|
43237
43470
|
args.footer = opts.footer;
|
|
43238
43471
|
if (opts.taxScheme !== void 0)
|
|
43239
43472
|
args.tax_scheme = opts.taxScheme;
|
|
43473
|
+
if (opts.issuingMethod !== void 0)
|
|
43474
|
+
args.issuing_method = opts.issuingMethod;
|
|
43475
|
+
if (opts.emittedAt !== void 0)
|
|
43476
|
+
args.emitted_at = opts.emittedAt;
|
|
43240
43477
|
if (opts.paymentMethodType !== void 0)
|
|
43241
43478
|
args.payment_method_type = opts.paymentMethodType;
|
|
43242
43479
|
if (opts.paymentMethodId !== void 0)
|
|
@@ -43445,7 +43682,7 @@ Examples:
|
|
|
43445
43682
|
queryParamKeys: []
|
|
43446
43683
|
});
|
|
43447
43684
|
});
|
|
43448
|
-
resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity
|
|
43685
|
+
resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity. Defaults to \`true\`.`).option("--fx-conversion-display-enabled", `Whether the exchange rate and converted amount in the accounting currency are displayed on the invoice PDF when the invoice currency differs from the accounting currency. The conversion data is still stored and returned by the API when disabled. Defaults to \`true\`.`).addHelpText("after", `
|
|
43449
43686
|
Examples:
|
|
43450
43687
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency>
|
|
43451
43688
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency> --is-default --trade-name <trade_name>
|
|
@@ -43528,6 +43765,8 @@ Examples:
|
|
|
43528
43765
|
args.credit_note_wallet_refund_enabled = true;
|
|
43529
43766
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43530
43767
|
args.standalone_credit_note_creation_enabled = true;
|
|
43768
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43769
|
+
args.fx_conversion_display_enabled = true;
|
|
43531
43770
|
await ctx.execute({
|
|
43532
43771
|
method: "POST",
|
|
43533
43772
|
path: "/v1/invoicing-entities",
|
|
@@ -43535,7 +43774,7 @@ Examples:
|
|
|
43535
43774
|
queryParamKeys: []
|
|
43536
43775
|
});
|
|
43537
43776
|
});
|
|
43538
|
-
resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity
|
|
43777
|
+
resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity. Defaults to \`true\`.`).option("--fx-conversion-display-enabled", `Whether the exchange rate and converted amount in the accounting currency are displayed on the invoice PDF when the invoice currency differs from the accounting currency. The conversion data is still stored and returned by the API when disabled. Defaults to \`true\`.`).addHelpText("after", `
|
|
43539
43778
|
Examples:
|
|
43540
43779
|
hyperline invoicing-entities update-invoicing-entity --id <id>
|
|
43541
43780
|
hyperline invoicing-entities update-invoicing-entity --id <id> --name <name> --registration-number <registration_number>
|
|
@@ -43610,6 +43849,8 @@ Examples:
|
|
|
43610
43849
|
args.credit_note_wallet_refund_enabled = true;
|
|
43611
43850
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43612
43851
|
args.standalone_credit_note_creation_enabled = true;
|
|
43852
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43853
|
+
args.fx_conversion_display_enabled = true;
|
|
43613
43854
|
await ctx.execute({
|
|
43614
43855
|
method: "PUT",
|
|
43615
43856
|
path: "/v1/invoicing-entities/{id}",
|
|
@@ -43645,6 +43886,68 @@ Examples:
|
|
|
43645
43886
|
});
|
|
43646
43887
|
}
|
|
43647
43888
|
|
|
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
|
+
|
|
43648
43951
|
// build/commands/generated/organisations.js
|
|
43649
43952
|
function registerOrganisationsCommands(parent) {
|
|
43650
43953
|
const resource = parent.command("organisations").description("Manage organisations");
|
|
@@ -43924,8 +44227,46 @@ Examples:
|
|
|
43924
44227
|
if (opts.id !== void 0)
|
|
43925
44228
|
args.id = opts.id;
|
|
43926
44229
|
await ctx.execute({
|
|
43927
|
-
method: "GET",
|
|
43928
|
-
path: "/v1/price-configurations/{id}",
|
|
44230
|
+
method: "GET",
|
|
44231
|
+
path: "/v1/price-configurations/{id}",
|
|
44232
|
+
args,
|
|
44233
|
+
queryParamKeys: []
|
|
44234
|
+
});
|
|
44235
|
+
});
|
|
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", `
|
|
44237
|
+
Examples:
|
|
44238
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id>
|
|
44239
|
+
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>
|
|
44240
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id> --output json`).action(async (opts) => {
|
|
44241
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
44242
|
+
if (!ctx) {
|
|
44243
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
44244
|
+
process.exit(1);
|
|
44245
|
+
}
|
|
44246
|
+
const args = {};
|
|
44247
|
+
if (opts.currency !== void 0)
|
|
44248
|
+
args.currency = opts.currency;
|
|
44249
|
+
if (opts.priceBookId !== void 0)
|
|
44250
|
+
args.price_book_id = opts.priceBookId;
|
|
44251
|
+
if (opts.type !== void 0)
|
|
44252
|
+
args.type = opts.type;
|
|
44253
|
+
if (opts.productId !== void 0)
|
|
44254
|
+
args.product_id = opts.productId;
|
|
44255
|
+
if (opts.allowOnPortal !== void 0)
|
|
44256
|
+
args.allow_on_portal = true;
|
|
44257
|
+
if (opts.countries !== void 0)
|
|
44258
|
+
args.countries = JSON.parse(opts.countries);
|
|
44259
|
+
if (opts.billingInterval !== void 0)
|
|
44260
|
+
args.billing_interval = JSON.parse(opts.billingInterval);
|
|
44261
|
+
if (opts.commitmentInterval !== void 0)
|
|
44262
|
+
args.commitment_interval = JSON.parse(opts.commitmentInterval);
|
|
44263
|
+
if (opts.prices !== void 0)
|
|
44264
|
+
args.prices = JSON.parse(opts.prices);
|
|
44265
|
+
if (opts.meteringFilter !== void 0)
|
|
44266
|
+
args.metering_filter = JSON.parse(opts.meteringFilter);
|
|
44267
|
+
await ctx.execute({
|
|
44268
|
+
method: "POST",
|
|
44269
|
+
path: "/v1/price-configurations",
|
|
43929
44270
|
args,
|
|
43930
44271
|
queryParamKeys: []
|
|
43931
44272
|
});
|
|
@@ -44324,12 +44665,12 @@ Quote status.
|
|
|
44324
44665
|
- \`draft\`: The quote is a draft.
|
|
44325
44666
|
- \`approved\`: The quote is approved and ready to be sent to the customer.
|
|
44326
44667
|
- \`pending_signature\`: The quote is awaiting the customer's signature.
|
|
44327
|
-
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--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.
|
|
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.
|
|
44328
44669
|
|
|
44329
44670
|
- \`all\`: Display all pricing tiers.
|
|
44330
44671
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
44331
44672
|
- \`none\`: Hide all pricing tiers.
|
|
44332
|
-
`).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("--
|
|
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", `
|
|
44333
44674
|
Examples:
|
|
44334
44675
|
hyperline quotes create --customer-id <customer_id>
|
|
44335
44676
|
hyperline quotes create --customer-id <customer_id> --status <status> --owner-email <owner_email>
|
|
@@ -44372,8 +44713,8 @@ Examples:
|
|
|
44372
44713
|
args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
|
|
44373
44714
|
if (opts.displayDocumentsInPreview !== void 0)
|
|
44374
44715
|
args.display_documents_in_preview = opts.displayDocumentsInPreview;
|
|
44375
|
-
if (opts.
|
|
44376
|
-
args.
|
|
44716
|
+
if (opts.subscriptionUpdateDisplay !== void 0)
|
|
44717
|
+
args.subscription_update_display = opts.subscriptionUpdateDisplay;
|
|
44377
44718
|
if (opts.generateDraftInvoices !== void 0)
|
|
44378
44719
|
args.generate_draft_invoices = opts.generateDraftInvoices;
|
|
44379
44720
|
if (opts.templateId !== void 0)
|
|
@@ -44616,12 +44957,12 @@ Examples:
|
|
|
44616
44957
|
queryParamKeys: []
|
|
44617
44958
|
});
|
|
44618
44959
|
});
|
|
44619
|
-
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.`).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.
|
|
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.
|
|
44620
44961
|
|
|
44621
44962
|
- \`all\`: Display all pricing tiers.
|
|
44622
44963
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
44623
44964
|
- \`none\`: Hide all pricing tiers.
|
|
44624
|
-
`).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("--
|
|
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", `
|
|
44625
44966
|
Examples:
|
|
44626
44967
|
hyperline quotes update --id <id>
|
|
44627
44968
|
hyperline quotes update --id <id> --owner-email <owner_email> --catalog-version-id <catalog_version_id>
|
|
@@ -44660,8 +45001,8 @@ Examples:
|
|
|
44660
45001
|
args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
|
|
44661
45002
|
if (opts.displayDocumentsInPreview !== void 0)
|
|
44662
45003
|
args.display_documents_in_preview = opts.displayDocumentsInPreview;
|
|
44663
|
-
if (opts.
|
|
44664
|
-
args.
|
|
45004
|
+
if (opts.subscriptionUpdateDisplay !== void 0)
|
|
45005
|
+
args.subscription_update_display = opts.subscriptionUpdateDisplay;
|
|
44665
45006
|
if (opts.generateDraftInvoices !== void 0)
|
|
44666
45007
|
args.generate_draft_invoices = opts.generateDraftInvoices;
|
|
44667
45008
|
if (opts.crmOpportunityId !== void 0)
|
|
@@ -44685,10 +45026,10 @@ Examples:
|
|
|
44685
45026
|
queryParamKeys: []
|
|
44686
45027
|
});
|
|
44687
45028
|
});
|
|
44688
|
-
resource.command("
|
|
45029
|
+
resource.command("duplicate").description(`Create a draft duplicate of an existing quote, including its linked invoice or subscription configuration.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
44689
45030
|
Examples:
|
|
44690
|
-
hyperline quotes
|
|
44691
|
-
hyperline quotes
|
|
45031
|
+
hyperline quotes duplicate --id <id>
|
|
45032
|
+
hyperline quotes duplicate --id <id> --output json`).action(async (opts) => {
|
|
44692
45033
|
const ctx = resource.parent?.opts()._ctx;
|
|
44693
45034
|
if (!ctx) {
|
|
44694
45035
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44697,19 +45038,17 @@ Examples:
|
|
|
44697
45038
|
const args = {};
|
|
44698
45039
|
if (opts.id !== void 0)
|
|
44699
45040
|
args.id = opts.id;
|
|
44700
|
-
if (opts.locale !== void 0)
|
|
44701
|
-
args.locale = opts.locale;
|
|
44702
45041
|
await ctx.execute({
|
|
44703
|
-
method: "
|
|
44704
|
-
path: "/v1/quotes/{id}/
|
|
45042
|
+
method: "POST",
|
|
45043
|
+
path: "/v1/quotes/{id}/duplicate",
|
|
44705
45044
|
args,
|
|
44706
|
-
queryParamKeys: [
|
|
45045
|
+
queryParamKeys: []
|
|
44707
45046
|
});
|
|
44708
45047
|
});
|
|
44709
|
-
resource.command("
|
|
45048
|
+
resource.command("download").description(`Download the PDF of a quote. Supports locale parameter for localization.`).requiredOption("--id <value>", `id parameter`).option("--locale <value>", `Locale as a supported language code and an uppercase ISO 3166-1 alpha-2 country code, separated by a hyphen.`).addHelpText("after", `
|
|
44710
45049
|
Examples:
|
|
44711
|
-
hyperline quotes
|
|
44712
|
-
hyperline quotes
|
|
45050
|
+
hyperline quotes download --id <id>
|
|
45051
|
+
hyperline quotes download --id <id> --locale <locale>`).action(async (opts) => {
|
|
44713
45052
|
const ctx = resource.parent?.opts()._ctx;
|
|
44714
45053
|
if (!ctx) {
|
|
44715
45054
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44718,16 +45057,19 @@ Examples:
|
|
|
44718
45057
|
const args = {};
|
|
44719
45058
|
if (opts.id !== void 0)
|
|
44720
45059
|
args.id = opts.id;
|
|
45060
|
+
if (opts.locale !== void 0)
|
|
45061
|
+
args.locale = opts.locale;
|
|
44721
45062
|
await ctx.execute({
|
|
44722
|
-
method: "
|
|
44723
|
-
path: "/v1/quotes/{id}/
|
|
45063
|
+
method: "GET",
|
|
45064
|
+
path: "/v1/quotes/{id}/download",
|
|
44724
45065
|
args,
|
|
44725
|
-
queryParamKeys: []
|
|
45066
|
+
queryParamKeys: ["locale"]
|
|
44726
45067
|
});
|
|
44727
45068
|
});
|
|
44728
|
-
resource.command("finalize").description(`Finalize a draft quote. The quote is submitted for approval when approval is required, otherwise it becomes approved and ready to be sent for signature.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45069
|
+
resource.command("finalize").description(`Finalize a draft quote. The quote is submitted for approval when approval is required, otherwise it becomes approved and ready to be sent for signature.`).requiredOption("--id <value>", `id parameter`).option("--requester-comment <value>", `Internal comment supplied by the requester for approvers; not displayed on the customer-facing quote.`).addHelpText("after", `
|
|
44729
45070
|
Examples:
|
|
44730
45071
|
hyperline quotes finalize --id <id>
|
|
45072
|
+
hyperline quotes finalize --id <id> --requester-comment <requester_comment>
|
|
44731
45073
|
hyperline quotes finalize --id <id> --output json`).action(async (opts) => {
|
|
44732
45074
|
const ctx = resource.parent?.opts()._ctx;
|
|
44733
45075
|
if (!ctx) {
|
|
@@ -44737,6 +45079,8 @@ Examples:
|
|
|
44737
45079
|
const args = {};
|
|
44738
45080
|
if (opts.id !== void 0)
|
|
44739
45081
|
args.id = opts.id;
|
|
45082
|
+
if (opts.requesterComment !== void 0)
|
|
45083
|
+
args.requester_comment = opts.requesterComment;
|
|
44740
45084
|
await ctx.execute({
|
|
44741
45085
|
method: "POST",
|
|
44742
45086
|
path: "/v1/quotes/{id}/finalize",
|
|
@@ -44744,11 +45088,11 @@ Examples:
|
|
|
44744
45088
|
queryParamKeys: []
|
|
44745
45089
|
});
|
|
44746
45090
|
});
|
|
44747
|
-
resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).
|
|
45091
|
+
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", `
|
|
44748
45092
|
Examples:
|
|
44749
|
-
hyperline quotes send --id <id>
|
|
45093
|
+
hyperline quotes send --id <id>
|
|
44750
45094
|
hyperline quotes send --id <id> --email <email> --message <message>
|
|
44751
|
-
hyperline quotes send --id <id> --
|
|
45095
|
+
hyperline quotes send --id <id> --output json`).action(async (opts) => {
|
|
44752
45096
|
const ctx = resource.parent?.opts()._ctx;
|
|
44753
45097
|
if (!ctx) {
|
|
44754
45098
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44768,6 +45112,51 @@ Examples:
|
|
|
44768
45112
|
queryParamKeys: []
|
|
44769
45113
|
});
|
|
44770
45114
|
});
|
|
45115
|
+
resource.command("list-quote-signers").description(`List the signers of a quote in signing order, with each signer's status (pending, notified, viewed, signed, declined). An empty list means the quote uses the single-signer flow of \`send_quote\`.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45116
|
+
Examples:
|
|
45117
|
+
hyperline quotes list-quote-signers --id <id>`).action(async (opts) => {
|
|
45118
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45119
|
+
if (!ctx) {
|
|
45120
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45121
|
+
process.exit(1);
|
|
45122
|
+
}
|
|
45123
|
+
const args = {};
|
|
45124
|
+
if (opts.id !== void 0)
|
|
45125
|
+
args.id = opts.id;
|
|
45126
|
+
await ctx.execute({
|
|
45127
|
+
method: "GET",
|
|
45128
|
+
path: "/v1/quotes/{id}/signers",
|
|
45129
|
+
args,
|
|
45130
|
+
queryParamKeys: []
|
|
45131
|
+
});
|
|
45132
|
+
});
|
|
45133
|
+
resource.command("set-quote-signers").description(`Replace the full list of signers of a quote. Signers with the same \`step_order\` sign in parallel; steps sign in ascending order. Requires at least one \`external\` signer, and a \`countersigner\` must sign after an external step. Set signers before calling \`send_quote\`, which then emails the signers of the first step and no longer needs \`email\`. Pass an empty list to go back to the single-signer flow.`).requiredOption("--id <value>", `id parameter`).requiredOption("--signers <json>", `
|
|
45134
|
+
Signature workflow of the quote, replaced as a whole.
|
|
45135
|
+
|
|
45136
|
+
Signers sign step by step, in ascending \`step_order\`. Signers sharing a step sign in parallel, and the next step opens once all of them have signed. The workflow needs at least one \`external\` signer, and a \`countersigner\` must sign after the first external step.
|
|
45137
|
+
|
|
45138
|
+
Signers who already signed cannot be removed or moved. Once the quote is out for signature at an electronic signature provider, the workflow can no longer be changed.
|
|
45139
|
+
`).addHelpText("after", `
|
|
45140
|
+
Examples:
|
|
45141
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers>
|
|
45142
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers> --output json`).action(async (opts) => {
|
|
45143
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45144
|
+
if (!ctx) {
|
|
45145
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45146
|
+
process.exit(1);
|
|
45147
|
+
}
|
|
45148
|
+
const args = {};
|
|
45149
|
+
if (opts.id !== void 0)
|
|
45150
|
+
args.id = opts.id;
|
|
45151
|
+
if (opts.signers !== void 0)
|
|
45152
|
+
args.signers = JSON.parse(opts.signers);
|
|
45153
|
+
await ctx.execute({
|
|
45154
|
+
method: "PUT",
|
|
45155
|
+
path: "/v1/quotes/{id}/signers",
|
|
45156
|
+
args,
|
|
45157
|
+
queryParamKeys: []
|
|
45158
|
+
});
|
|
45159
|
+
});
|
|
44771
45160
|
resource.command("sign").description(`Manually mark a quote as signed externally. Optionally upload a signed PDF. Bypasses the built-in Hyperline signature flow.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
44772
45161
|
Examples:
|
|
44773
45162
|
hyperline quotes sign --id <id>
|
|
@@ -44851,6 +45240,48 @@ Examples:
|
|
|
44851
45240
|
});
|
|
44852
45241
|
}
|
|
44853
45242
|
|
|
45243
|
+
// build/commands/generated/quotes-approvals.js
|
|
45244
|
+
function registerQuotes_ApprovalsCommands(parent) {
|
|
45245
|
+
const resource = parent.command("quotes-approvals").description("Manage quotes > approvals");
|
|
45246
|
+
resource.command("approve-quote").description(`Approve a quote as the account owner. This is a prerequisite before sending the quote for customer signature.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45247
|
+
Examples:
|
|
45248
|
+
hyperline quotes-approvals approve-quote --id <id>
|
|
45249
|
+
hyperline quotes-approvals approve-quote --id <id> --output json`).action(async (opts) => {
|
|
45250
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45251
|
+
if (!ctx) {
|
|
45252
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45253
|
+
process.exit(1);
|
|
45254
|
+
}
|
|
45255
|
+
const args = {};
|
|
45256
|
+
if (opts.id !== void 0)
|
|
45257
|
+
args.id = opts.id;
|
|
45258
|
+
await ctx.execute({
|
|
45259
|
+
method: "POST",
|
|
45260
|
+
path: "/v1/quotes/{id}/approve",
|
|
45261
|
+
args,
|
|
45262
|
+
queryParamKeys: []
|
|
45263
|
+
});
|
|
45264
|
+
});
|
|
45265
|
+
resource.command("get-quote-approvals").description(`Read quote approvals without submitting the quote. Returns a newest-first array, currently containing one element. Draft and changes-requested quotes return current approval routing in preview mode; other statuses return the recorded request, ordered steps and decisions in execution mode. A null request means no workflow execution was recorded, including automatic and legacy approval.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45266
|
+
Examples:
|
|
45267
|
+
hyperline quotes-approvals get-quote-approvals --id <id>`).action(async (opts) => {
|
|
45268
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45269
|
+
if (!ctx) {
|
|
45270
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45271
|
+
process.exit(1);
|
|
45272
|
+
}
|
|
45273
|
+
const args = {};
|
|
45274
|
+
if (opts.id !== void 0)
|
|
45275
|
+
args.id = opts.id;
|
|
45276
|
+
await ctx.execute({
|
|
45277
|
+
method: "GET",
|
|
45278
|
+
path: "/v1/quotes/{id}/approvals",
|
|
45279
|
+
args,
|
|
45280
|
+
queryParamKeys: []
|
|
45281
|
+
});
|
|
45282
|
+
});
|
|
45283
|
+
}
|
|
45284
|
+
|
|
44854
45285
|
// build/commands/generated/quotes-templates.js
|
|
44855
45286
|
function registerQuotes_TemplatesCommands(parent) {
|
|
44856
45287
|
const resource = parent.command("quotes-templates").description("Manage quotes > templates");
|
|
@@ -45050,7 +45481,7 @@ Examples:
|
|
|
45050
45481
|
queryParamKeys: []
|
|
45051
45482
|
});
|
|
45052
45483
|
});
|
|
45053
|
-
resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
|
|
45484
|
+
resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason. On a cancelled subscription with a scheduled reinstatement, call it with an empty body to remove that reinstatement; the subscription stays cancelled.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
|
|
45054
45485
|
Examples:
|
|
45055
45486
|
hyperline subscriptions cancel --id <id>
|
|
45056
45487
|
hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
|
|
@@ -45078,9 +45509,10 @@ Examples:
|
|
|
45078
45509
|
queryParamKeys: []
|
|
45079
45510
|
});
|
|
45080
45511
|
});
|
|
45081
|
-
resource.command("reinstate").description(`Reinstate a subscription
|
|
45512
|
+
resource.command("reinstate").description(`Reinstate a subscription, reverting it to active status. Works for a subscription scheduled for cancellation and for a fully-cancelled one. For a fully-cancelled subscription, optionally pass reactivate_at (may be in the past, after the cancellation date; a future date schedules it) and invoicing_mode (or charge_line_items for a custom charge) to control how the cancelled gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date a fully-cancelled subscription resumes from. May be in the past (after the cancellation date). Defaults to now. A future date schedules the reinstatement; calling again with another date reschedules it, and cancelling the subscription removes it. Ignored for scheduled-cancellation reinstatement.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Fully-cancelled subscriptions only. Not allowed with a future \`reactivate_at\`.`).addHelpText("after", `
|
|
45082
45513
|
Examples:
|
|
45083
45514
|
hyperline subscriptions reinstate --id <id>
|
|
45515
|
+
hyperline subscriptions reinstate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45084
45516
|
hyperline subscriptions reinstate --id <id> --output json`).action(async (opts) => {
|
|
45085
45517
|
const ctx = resource.parent?.opts()._ctx;
|
|
45086
45518
|
if (!ctx) {
|
|
@@ -45090,6 +45522,12 @@ Examples:
|
|
|
45090
45522
|
const args = {};
|
|
45091
45523
|
if (opts.id !== void 0)
|
|
45092
45524
|
args.id = opts.id;
|
|
45525
|
+
if (opts.reactivateAt !== void 0)
|
|
45526
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45527
|
+
if (opts.invoicingMode !== void 0)
|
|
45528
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45529
|
+
if (opts.chargeLineItems !== void 0)
|
|
45530
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45093
45531
|
await ctx.execute({
|
|
45094
45532
|
method: "POST",
|
|
45095
45533
|
path: "/v1/subscriptions/{id}/reinstate",
|
|
@@ -45097,7 +45535,7 @@ Examples:
|
|
|
45097
45535
|
queryParamKeys: []
|
|
45098
45536
|
});
|
|
45099
45537
|
});
|
|
45100
|
-
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated.
|
|
45538
|
+
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. A date on or before the pause date resumes it at the next scheduled run.`).addHelpText("after", `
|
|
45101
45539
|
Examples:
|
|
45102
45540
|
hyperline subscriptions pause --id <id>
|
|
45103
45541
|
hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
|
|
@@ -45138,9 +45576,10 @@ Examples:
|
|
|
45138
45576
|
queryParamKeys: []
|
|
45139
45577
|
});
|
|
45140
45578
|
});
|
|
45141
|
-
resource.command("reactivate").description(`Resume a paused subscription,
|
|
45579
|
+
resource.command("reactivate").description(`Resume a paused subscription. Optionally pass reactivate_at (may be in the past, after the pause date; a future date schedules it) and invoicing_mode (or charge_line_items for a custom charge) to control how the paused gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date the subscription resumes from. May be in the past (after the pause date). Defaults to now. A future date schedules the reactivation.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Not allowed with a future \`reactivate_at\`.`).addHelpText("after", `
|
|
45142
45580
|
Examples:
|
|
45143
45581
|
hyperline subscriptions reactivate --id <id>
|
|
45582
|
+
hyperline subscriptions reactivate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45144
45583
|
hyperline subscriptions reactivate --id <id> --output json`).action(async (opts) => {
|
|
45145
45584
|
const ctx = resource.parent?.opts()._ctx;
|
|
45146
45585
|
if (!ctx) {
|
|
@@ -45150,6 +45589,12 @@ Examples:
|
|
|
45150
45589
|
const args = {};
|
|
45151
45590
|
if (opts.id !== void 0)
|
|
45152
45591
|
args.id = opts.id;
|
|
45592
|
+
if (opts.reactivateAt !== void 0)
|
|
45593
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45594
|
+
if (opts.invoicingMode !== void 0)
|
|
45595
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45596
|
+
if (opts.chargeLineItems !== void 0)
|
|
45597
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45153
45598
|
await ctx.execute({
|
|
45154
45599
|
method: "POST",
|
|
45155
45600
|
path: "/v1/subscriptions/{id}/reactivate",
|
|
@@ -46733,10 +47178,11 @@ function registerAllCommands(program2) {
|
|
|
46733
47178
|
registerAccounting_ReportsCommands(program2);
|
|
46734
47179
|
registerAccounting_Revenue_RecognitionCommands(program2);
|
|
46735
47180
|
registerAccounting_RulesCommands(program2);
|
|
46736
|
-
registerAgentsCommands(program2);
|
|
46737
47181
|
registerCustom_PropertiesCommands(program2);
|
|
46738
47182
|
registerAggregatorsCommands(program2);
|
|
46739
47183
|
registerAggregators_UsageCommands(program2);
|
|
47184
|
+
registerAi_BillingCommands(program2);
|
|
47185
|
+
registerAi_CostsCommands(program2);
|
|
46740
47186
|
registerAnalyticsCommands(program2);
|
|
46741
47187
|
registerBank_AccountsCommands(program2);
|
|
46742
47188
|
registerCompaniesCommands(program2);
|
|
@@ -46755,11 +47201,13 @@ function registerAllCommands(program2) {
|
|
|
46755
47201
|
registerInvoicesCommands(program2);
|
|
46756
47202
|
registerInvoices_TransactionsCommands(program2);
|
|
46757
47203
|
registerInvoicing_EntitiesCommands(program2);
|
|
47204
|
+
registerMonitoringCommands(program2);
|
|
46758
47205
|
registerPaymentsCommands(program2);
|
|
46759
47206
|
registerProductsCommands(program2);
|
|
46760
47207
|
registerPrice_ConfigurationsCommands(program2);
|
|
46761
47208
|
registerQuotesCommands(program2);
|
|
46762
47209
|
registerQuotes_TemplatesCommands(program2);
|
|
47210
|
+
registerQuotes_ApprovalsCommands(program2);
|
|
46763
47211
|
registerSubscriptions_TemplatesCommands(program2);
|
|
46764
47212
|
registerSubscriptionsCommands(program2);
|
|
46765
47213
|
registerSubscriptions_TransitionsCommands(program2);
|
|
@@ -62723,6 +63171,25 @@ var DomainSchema = external_exports.string().trim().toLowerCase().regex(/^(?!:\/
|
|
|
62723
63171
|
example: "acme.com"
|
|
62724
63172
|
});
|
|
62725
63173
|
|
|
63174
|
+
// ../hyperline-lib/build/http/dto/emailStatus.js
|
|
63175
|
+
var EmailStatusSchema = external_exports.enum([
|
|
63176
|
+
"sent",
|
|
63177
|
+
"delivered",
|
|
63178
|
+
"opened",
|
|
63179
|
+
"clicked",
|
|
63180
|
+
"spammed",
|
|
63181
|
+
"bounced",
|
|
63182
|
+
"queued",
|
|
63183
|
+
"drafted",
|
|
63184
|
+
"attempted",
|
|
63185
|
+
"failed",
|
|
63186
|
+
"undeliverable",
|
|
63187
|
+
"converted",
|
|
63188
|
+
"suppressed",
|
|
63189
|
+
"unsubscribed",
|
|
63190
|
+
"dropped"
|
|
63191
|
+
]);
|
|
63192
|
+
|
|
62726
63193
|
// ../hyperline-lib/build/http/dto/error.js
|
|
62727
63194
|
var ErrorSchema = external_exports.object({
|
|
62728
63195
|
message: external_exports.string()
|
|
@@ -62751,17 +63218,18 @@ var languages = [
|
|
|
62751
63218
|
|
|
62752
63219
|
// ../hyperline-i18n/build/locales/de.js
|
|
62753
63220
|
var de = {
|
|
62754
|
-
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
62755
|
-
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62756
|
-
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62757
63221
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62758
|
-
"accounting.
|
|
63222
|
+
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
63223
|
+
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62759
63224
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62760
63225
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62761
63226
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62762
|
-
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62763
63227
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62764
63228
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
63229
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
63230
|
+
"accounting.transactionChargedBack.entryDescription": "R\xFCckbuchung f\xFCr Rechnung {{invoiceId}}",
|
|
63231
|
+
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
63232
|
+
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62765
63233
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
62766
63234
|
"credits.bundleOf": "{{productName}} - Paket mit {{creditCount}} Guthaben",
|
|
62767
63235
|
"credits.unitsOf": "{{productName}} - {{creditCount}} Guthaben",
|
|
@@ -62775,9 +63243,9 @@ var de = {
|
|
|
62775
63243
|
"invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
|
|
62776
63244
|
"invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
|
|
62777
63245
|
"invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
|
|
62778
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben",
|
|
62779
63246
|
"subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
|
|
62780
63247
|
"subscriptions.correction": "Vorperiodische Anpassung",
|
|
63248
|
+
"subscriptions.reinstatementRechargeName": "Wiederherstellungsgeb\xFChr f\xFCr den stornierten Zeitraum",
|
|
62781
63249
|
"subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
|
|
62782
63250
|
"subscriptions.updates.addProduct": "{{productName}} hinzuf\xFCgen",
|
|
62783
63251
|
"subscriptions.updates.removeCoupon": "Gutschein entfernen {{couponName}}",
|
|
@@ -62792,7 +63260,8 @@ var de = {
|
|
|
62792
63260
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Betrag von {{amount}} (mit einer minimal zugesicherten Anzahl von {{committedCount}}) f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62793
63261
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
|
|
62794
63262
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62795
|
-
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren"
|
|
63263
|
+
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren",
|
|
63264
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben"
|
|
62796
63265
|
};
|
|
62797
63266
|
|
|
62798
63267
|
// ../hyperline-i18n/build/locales/en.js
|
|
@@ -62809,6 +63278,7 @@ var en = {
|
|
|
62809
63278
|
"invoices.prorata.refundForItemFullPeriod": "Refund for",
|
|
62810
63279
|
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 expired balance",
|
|
62811
63280
|
"subscriptions.closingChargeName": "Closing fee for subscription",
|
|
63281
|
+
"subscriptions.reinstatementRechargeName": "Reinstatement recharge of canceled period",
|
|
62812
63282
|
"subscriptions.correction": "Adjustment previous period",
|
|
62813
63283
|
"subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
|
|
62814
63284
|
"subscriptions.updates.addProduct": "Add {{productName}}",
|
|
@@ -62828,6 +63298,7 @@ var en = {
|
|
|
62828
63298
|
"accounting.invoicePosted.entryDescription": "Posting entry for Invoice {{invoiceId}} issued",
|
|
62829
63299
|
"accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
|
|
62830
63300
|
"accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
|
|
63301
|
+
"accounting.transactionChargedBack.entryDescription": "Chargeback for Invoice {{invoiceId}}",
|
|
62831
63302
|
"accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
|
|
62832
63303
|
"accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
|
|
62833
63304
|
"accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
|
|
@@ -62843,17 +63314,18 @@ var en = {
|
|
|
62843
63314
|
|
|
62844
63315
|
// ../hyperline-i18n/build/locales/es.js
|
|
62845
63316
|
var es = {
|
|
62846
|
-
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
62847
|
-
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62848
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62849
63317
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62850
|
-
"accounting.
|
|
63318
|
+
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
63319
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62851
63320
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62852
63321
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62853
63322
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62854
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62855
63323
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62856
63324
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63325
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63326
|
+
"accounting.transactionChargedBack.entryDescription": "Contracargo de la factura {{invoiceId}}",
|
|
63327
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
63328
|
+
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62857
63329
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
62858
63330
|
"credits.bundleOf": "{{productName}} - Paquete de {{creditCount}} cr\xE9ditos",
|
|
62859
63331
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -62867,9 +63339,9 @@ var es = {
|
|
|
62867
63339
|
"invoices.prorata.paymentForItemFullPeriod": "Pago por",
|
|
62868
63340
|
"invoices.prorata.refundForItem": "Reembolso prorrateado por",
|
|
62869
63341
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
62870
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado",
|
|
62871
63342
|
"subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
|
|
62872
63343
|
"subscriptions.correction": "Ajuste del periodo anterior",
|
|
63344
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reinstalaci\xF3n del per\xEDodo cancelado",
|
|
62873
63345
|
"subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
|
|
62874
63346
|
"subscriptions.updates.addProduct": "A\xF1adir {{productName}}",
|
|
62875
63347
|
"subscriptions.updates.removeCoupon": "Eliminar cup\xF3n {{couponName}}",
|
|
@@ -62884,22 +63356,24 @@ var es = {
|
|
|
62884
63356
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importe de {{amount}} (con un m\xEDnimo comprometido de {{committedCount}}) no facturado para el per\xEDodo prorrateado",
|
|
62885
63357
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
|
|
62886
63358
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
|
|
62887
|
-
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}"
|
|
63359
|
+
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}",
|
|
63360
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado"
|
|
62888
63361
|
};
|
|
62889
63362
|
|
|
62890
63363
|
// ../hyperline-i18n/build/locales/fr.js
|
|
62891
63364
|
var fr = {
|
|
63365
|
+
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
63366
|
+
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
63367
|
+
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62892
63368
|
"accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62893
63369
|
"accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62894
63370
|
"accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62895
|
-
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62896
63371
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62897
|
-
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
62898
|
-
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62899
|
-
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62900
|
-
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62901
|
-
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62902
63372
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
63373
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
63374
|
+
"accounting.transactionChargedBack.entryDescription": "R\xE9trofacturation de la facture {{invoiceId}}",
|
|
63375
|
+
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
63376
|
+
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62903
63377
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62904
63378
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
62905
63379
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9dits",
|
|
@@ -62913,9 +63387,9 @@ var fr = {
|
|
|
62913
63387
|
"invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
|
|
62914
63388
|
"invoices.prorata.refundForItem": "Remboursement au prorata pour",
|
|
62915
63389
|
"invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
|
|
62916
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9",
|
|
62917
63390
|
"subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
|
|
62918
63391
|
"subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
|
|
63392
|
+
"subscriptions.reinstatementRechargeName": "Recharge de r\xE9tablissement de la p\xE9riode annul\xE9e",
|
|
62919
63393
|
"subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
|
|
62920
63394
|
"subscriptions.updates.addProduct": "Ajout {{productName}}",
|
|
62921
63395
|
"subscriptions.updates.removeCoupon": "Retrait du coupon {{couponName}}",
|
|
@@ -62930,22 +63404,24 @@ var fr = {
|
|
|
62930
63404
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Montant de {{amount}} (avec un minimum engag\xE9 de {{committedCount}}) non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62931
63405
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
|
|
62932
63406
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62933
|
-
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}"
|
|
63407
|
+
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}",
|
|
63408
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9"
|
|
62934
63409
|
};
|
|
62935
63410
|
|
|
62936
63411
|
// ../hyperline-i18n/build/locales/it.js
|
|
62937
63412
|
var it = {
|
|
62938
|
-
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
62939
|
-
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62940
|
-
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
62941
63413
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
62942
|
-
"accounting.
|
|
63414
|
+
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
63415
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62943
63416
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62944
63417
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62945
63418
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62946
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62947
63419
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62948
63420
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
63421
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
63422
|
+
"accounting.transactionChargedBack.entryDescription": "Riaddebito per la fattura {{invoiceId}}",
|
|
63423
|
+
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63424
|
+
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62949
63425
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
62950
63426
|
"credits.bundleOf": "{{productName}} - Pacchetto di {{creditCount}} crediti",
|
|
62951
63427
|
"credits.unitsOf": "{{productName}} - {{creditCount}} crediti",
|
|
@@ -62959,9 +63435,9 @@ var it = {
|
|
|
62959
63435
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
|
|
62960
63436
|
"invoices.prorata.refundForItem": "Rimborso proporzionale per",
|
|
62961
63437
|
"invoices.prorata.refundForItemFullPeriod": "Rimborso per",
|
|
62962
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto",
|
|
62963
63438
|
"subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
|
|
62964
63439
|
"subscriptions.correction": "Correzione periodo precedente",
|
|
63440
|
+
"subscriptions.reinstatementRechargeName": "Ricarica di reintegrazione del periodo annullato",
|
|
62965
63441
|
"subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
|
|
62966
63442
|
"subscriptions.updates.addProduct": "Aggiungi {{productName}}",
|
|
62967
63443
|
"subscriptions.updates.removeCoupon": "Rimuovi coupon {{couponName}}",
|
|
@@ -62976,14 +63452,30 @@ var it = {
|
|
|
62976
63452
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per il periodo proporzionato",
|
|
62977
63453
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
|
|
62978
63454
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
|
|
62979
|
-
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}"
|
|
63455
|
+
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}",
|
|
63456
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto"
|
|
62980
63457
|
};
|
|
62981
63458
|
|
|
62982
63459
|
// ../hyperline-i18n/build/locales/lt.js
|
|
62983
63460
|
var lt = {
|
|
63461
|
+
"accounting.creditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}} s\u0105skaitai fakt\u016Brai {{invoiceId}}",
|
|
63462
|
+
"accounting.invoicePosted.entryDescription": "I\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros {{invoiceId}} registravimo \u012Fra\u0161as",
|
|
63463
|
+
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63464
|
+
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63465
|
+
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63466
|
+
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63467
|
+
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63468
|
+
"accounting.revrec.entryDescription": "Pajam\u0173 pripa\u017Einimas pagal grafik\u0105 {{scheduleId}}, laikotarpis {{periodStart}}\u2013{{periodEnd}}",
|
|
63469
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}}",
|
|
63470
|
+
"accounting.transactionChargedBack.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} u\u017Egin\u010Dyto mok\u0117jimo gr\u0105\u017Einimas",
|
|
63471
|
+
"accounting.transactionRefunded.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} gr\u0105\u017Einimas",
|
|
63472
|
+
"accounting.transactionSettled.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} mok\u0117jimo sudengimas",
|
|
62984
63473
|
"creditNotes.refundChargeName": "S\u0105skaitos fakt\u016Bros gr\u0105\u017Einimas",
|
|
62985
63474
|
"credits.bundleOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173 paketas",
|
|
62986
63475
|
"credits.unitsOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173",
|
|
63476
|
+
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s",
|
|
63477
|
+
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63478
|
+
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
62987
63479
|
"invoices.outstandingProduct.description": "Neapmok\u0117ta {{date}} i\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma",
|
|
62988
63480
|
"invoices.outstandingProduct.descriptionPeriod": "Neapmok\u0117ta s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma u\u017E laikotarp\u012F nuo {{periodStart}} iki {{periodEnd}}",
|
|
62989
63481
|
"invoices.outstandingProduct.name": "Neapmok\u0117tas likutis",
|
|
@@ -62991,53 +63483,41 @@ var lt = {
|
|
|
62991
63483
|
"invoices.prorata.paymentForItemFullPeriod": "Mok\u0117jimas u\u017E",
|
|
62992
63484
|
"invoices.prorata.refundForItem": "Proporcingas gr\u0105\u017Einimas u\u017E",
|
|
62993
63485
|
"invoices.prorata.refundForItemFullPeriod": "Gr\u0105\u017Einimas u\u017E",
|
|
62994
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis",
|
|
62995
63486
|
"subscriptions.closingChargeName": "Prenumeratos u\u017Ebaigimo mokestis",
|
|
62996
63487
|
"subscriptions.correction": "Ankstesnio laikotarpio koregavimas",
|
|
63488
|
+
"subscriptions.reinstatementRechargeName": "Atnaujinimo \u012Fmokos u\u017E nutraukt\u0105 laikotarp\u012F",
|
|
62997
63489
|
"subscriptions.updates.addCoupon": "Prid\u0117ti kupon\u0105 {{couponName}}",
|
|
62998
63490
|
"subscriptions.updates.addProduct": "Prid\u0117ti {{productName}}",
|
|
62999
63491
|
"subscriptions.updates.removeCoupon": "Pa\u0161alinti kupon\u0105 {{couponName}}",
|
|
63000
63492
|
"subscriptions.updates.removeProduct": "Pa\u0161alinti {{productName}}",
|
|
63001
63493
|
"subscriptions.updates.unit": "vnt.",
|
|
63002
|
-
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63003
63494
|
"subscriptions.updates.updateCount": "Atnaujinti {{productName}} kiek\u012F ({{previousCount}} \u2192 {{newCount}} {{unit}})",
|
|
63004
|
-
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63005
|
-
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63006
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63007
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63008
63495
|
"subscriptions.updates.updateCount.description.full.committed.invoiced": "Visam laikotarpiui pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63009
63496
|
"subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63010
63497
|
"subscriptions.updates.updateCount.description.full.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 visam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63011
63498
|
"subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63012
|
-
"
|
|
63013
|
-
"
|
|
63014
|
-
"
|
|
63015
|
-
"
|
|
63016
|
-
"
|
|
63017
|
-
"
|
|
63018
|
-
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63019
|
-
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63020
|
-
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63021
|
-
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63022
|
-
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63023
|
-
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63024
|
-
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63025
|
-
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s"
|
|
63499
|
+
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63500
|
+
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63501
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63502
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63503
|
+
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63504
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis"
|
|
63026
63505
|
};
|
|
63027
63506
|
|
|
63028
63507
|
// ../hyperline-i18n/build/locales/nl.js
|
|
63029
63508
|
var nl = {
|
|
63030
|
-
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63031
|
-
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63032
|
-
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63033
63509
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
63034
|
-
"accounting.
|
|
63510
|
+
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63511
|
+
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63035
63512
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63036
63513
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63037
63514
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63038
|
-
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63039
63515
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63040
63516
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
63517
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
63518
|
+
"accounting.transactionChargedBack.entryDescription": "Terugboeking voor factuur {{invoiceId}}",
|
|
63519
|
+
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63520
|
+
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63041
63521
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
63042
63522
|
"credits.bundleOf": "{{productName}} - Bundel van {{creditCount}} credits",
|
|
63043
63523
|
"credits.unitsOf": "{{productName}} - {{creditCount}} credits",
|
|
@@ -63051,9 +63531,9 @@ var nl = {
|
|
|
63051
63531
|
"invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
|
|
63052
63532
|
"invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
|
|
63053
63533
|
"invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
|
|
63054
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo",
|
|
63055
63534
|
"subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
|
|
63056
63535
|
"subscriptions.correction": "Aanpassing vorige periode",
|
|
63536
|
+
"subscriptions.reinstatementRechargeName": "Herstelkosten van geannuleerde periode",
|
|
63057
63537
|
"subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
|
|
63058
63538
|
"subscriptions.updates.addProduct": "{{productName}} toevoegen",
|
|
63059
63539
|
"subscriptions.updates.removeCoupon": "Coupon verwijderen {{couponName}}",
|
|
@@ -63068,22 +63548,24 @@ var nl = {
|
|
|
63068
63548
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de geproportioneerde periode",
|
|
63069
63549
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
|
|
63070
63550
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
|
|
63071
|
-
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}"
|
|
63551
|
+
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}",
|
|
63552
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo"
|
|
63072
63553
|
};
|
|
63073
63554
|
|
|
63074
63555
|
// ../hyperline-i18n/build/locales/pl.js
|
|
63075
63556
|
var pl = {
|
|
63076
|
-
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63077
|
-
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63078
|
-
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63079
63557
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
63080
|
-
"accounting.
|
|
63558
|
+
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63559
|
+
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63081
63560
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63082
63561
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63083
63562
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63084
|
-
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63085
63563
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63086
63564
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
63565
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
63566
|
+
"accounting.transactionChargedBack.entryDescription": "Obci\u0105\u017Cenie zwrotne za faktur\u0119 {{invoiceId}}",
|
|
63567
|
+
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63568
|
+
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63087
63569
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
63088
63570
|
"credits.bundleOf": "{{productName}} - Pakiet {{creditCount}} kredyt\xF3w",
|
|
63089
63571
|
"credits.unitsOf": "{{productName}} - {{creditCount}} kredyt\xF3w",
|
|
@@ -63097,9 +63579,9 @@ var pl = {
|
|
|
63097
63579
|
"invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
|
|
63098
63580
|
"invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
|
|
63099
63581
|
"invoices.prorata.refundForItemFullPeriod": "Zwrot za",
|
|
63100
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo",
|
|
63101
63582
|
"subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
|
|
63102
63583
|
"subscriptions.correction": "Korekta poprzedniego okresu",
|
|
63584
|
+
"subscriptions.reinstatementRechargeName": "Op\u0142ata za przywr\xF3cenie anulowanego okresu",
|
|
63103
63585
|
"subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
|
|
63104
63586
|
"subscriptions.updates.addProduct": "Dodaj {{productName}}",
|
|
63105
63587
|
"subscriptions.updates.removeCoupon": "Usu\u0144 kupon {{couponName}}",
|
|
@@ -63114,22 +63596,24 @@ var pl = {
|
|
|
63114
63596
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za okres proporcjonalny",
|
|
63115
63597
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
|
|
63116
63598
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
|
|
63117
|
-
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}"
|
|
63599
|
+
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}",
|
|
63600
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo"
|
|
63118
63601
|
};
|
|
63119
63602
|
|
|
63120
63603
|
// ../hyperline-i18n/build/locales/pt.js
|
|
63121
63604
|
var pt = {
|
|
63122
|
-
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63123
|
-
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63124
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63125
63605
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
63126
|
-
"accounting.
|
|
63606
|
+
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63607
|
+
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63127
63608
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63128
63609
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63129
63610
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63130
|
-
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63131
63611
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63132
63612
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63613
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63614
|
+
"accounting.transactionChargedBack.entryDescription": "Estorno da fatura {{invoiceId}}",
|
|
63615
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63616
|
+
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63133
63617
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
63134
63618
|
"credits.bundleOf": "{{productName}} - Pacote de {{creditCount}} cr\xE9ditos",
|
|
63135
63619
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -63143,9 +63627,9 @@ var pt = {
|
|
|
63143
63627
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
|
|
63144
63628
|
"invoices.prorata.refundForItem": "Reembolso proporcional por",
|
|
63145
63629
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
63146
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado",
|
|
63147
63630
|
"subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
|
|
63148
63631
|
"subscriptions.correction": "Ajuste do per\xEDodo anterior",
|
|
63632
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reintegra\xE7\xE3o do per\xEDodo cancelado",
|
|
63149
63633
|
"subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
|
|
63150
63634
|
"subscriptions.updates.addProduct": "Adicionar {{productName}}",
|
|
63151
63635
|
"subscriptions.updates.removeCoupon": "Remover cupom {{couponName}}",
|
|
@@ -63160,7 +63644,8 @@ var pt = {
|
|
|
63160
63644
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Valor de {{amount}} (com um m\xEDnimo comprometido de {{committedCount}}) n\xE3o faturado para o per\xEDodo proporcional",
|
|
63161
63645
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
|
|
63162
63646
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
|
|
63163
|
-
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}"
|
|
63647
|
+
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}",
|
|
63648
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado"
|
|
63164
63649
|
};
|
|
63165
63650
|
|
|
63166
63651
|
// ../hyperline-i18n/build/language.js
|
|
@@ -65854,6 +66339,8 @@ var usStates = [
|
|
|
65854
66339
|
|
|
65855
66340
|
// ../hyperline-lib/build/utils/dates.js
|
|
65856
66341
|
var import_shared2 = __toESM(require_shared(), 1);
|
|
66342
|
+
var PERIOD_BOUND_DRIFT_TOLERANCE_MS = 2 * 60 * 1e3;
|
|
66343
|
+
var DST_SHIFT_MS = 60 * 60 * 1e3;
|
|
65857
66344
|
|
|
65858
66345
|
// ../hyperline-lib/build/utils/document.js
|
|
65859
66346
|
var import_shared3 = __toESM(require_shared(), 1);
|
|
@@ -65865,6 +66352,11 @@ import * as https from "node:https";
|
|
|
65865
66352
|
import { createHash as createHash2 } from "node:crypto";
|
|
65866
66353
|
import { deepEqual } from "fast-equals";
|
|
65867
66354
|
|
|
66355
|
+
// ../hyperline-lib/build/utils/realignDatesToTimezone.js
|
|
66356
|
+
var import_shared4 = __toESM(require_shared(), 1);
|
|
66357
|
+
var MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
66358
|
+
var LAST_MILLISECOND_OF_DAY = MILLISECONDS_PER_DAY - 1;
|
|
66359
|
+
|
|
65868
66360
|
// ../hyperline-lib/build/utils/api/filterBuilder.js
|
|
65869
66361
|
var baseAuthorizedOperators = ["not", "isNull", "isNotNull"];
|
|
65870
66362
|
var booleanAuthorizedOperators = [
|
|
@@ -65931,7 +66423,151 @@ var isAxiosError = axios.isAxiosError;
|
|
|
65931
66423
|
|
|
65932
66424
|
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65933
66425
|
import axios2 from "axios";
|
|
65934
|
-
import axiosRetry, { isNetworkOrIdempotentRequestError } from "axios-retry";
|
|
66426
|
+
import axiosRetry, { isNetworkOrIdempotentRequestError, retryAfter } from "axios-retry";
|
|
66427
|
+
|
|
66428
|
+
// ../hyperline-lib/build/httpClient/logRedaction.js
|
|
66429
|
+
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
66430
|
+
"accesstoken",
|
|
66431
|
+
"apikey",
|
|
66432
|
+
"apitoken",
|
|
66433
|
+
"assertion",
|
|
66434
|
+
"authtoken",
|
|
66435
|
+
"clientassertion",
|
|
66436
|
+
"codeverifier",
|
|
66437
|
+
"credentials",
|
|
66438
|
+
"idtoken",
|
|
66439
|
+
"privatekey",
|
|
66440
|
+
"refreshtoken",
|
|
66441
|
+
"sessiontoken",
|
|
66442
|
+
"token"
|
|
66443
|
+
]);
|
|
66444
|
+
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password)$/;
|
|
66445
|
+
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|password|assertion|verifier|credentials/i;
|
|
66446
|
+
var REDACTED_VALUE = "<redacted>";
|
|
66447
|
+
var MAX_REDACTION_DEPTH = 10;
|
|
66448
|
+
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
66449
|
+
var MAX_VISITED_NODES = 1e3;
|
|
66450
|
+
var MAX_CONTAINER_ENTRIES = MAX_VISITED_NODES;
|
|
66451
|
+
function redactLogBody({ body }) {
|
|
66452
|
+
return redactValue({
|
|
66453
|
+
value: body,
|
|
66454
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66455
|
+
budget: { remainingNodes: MAX_VISITED_NODES }
|
|
66456
|
+
});
|
|
66457
|
+
}
|
|
66458
|
+
function redactLogUrl({ url: url2 }) {
|
|
66459
|
+
const queryIndex = url2.indexOf("?");
|
|
66460
|
+
if (queryIndex === -1 || url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
66461
|
+
return url2;
|
|
66462
|
+
}
|
|
66463
|
+
const redactedQuery = redactFormEncoded({ text: url2.slice(queryIndex + 1) });
|
|
66464
|
+
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
66465
|
+
}
|
|
66466
|
+
function redactValue({ value, depth, budget }) {
|
|
66467
|
+
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
66468
|
+
return value;
|
|
66469
|
+
}
|
|
66470
|
+
budget.remainingNodes -= 1;
|
|
66471
|
+
if (typeof value === "string") {
|
|
66472
|
+
return redactString({ text: value, budget });
|
|
66473
|
+
}
|
|
66474
|
+
if (value instanceof URLSearchParams) {
|
|
66475
|
+
return redactFormEncoded({ text: value.toString() }) ?? value;
|
|
66476
|
+
}
|
|
66477
|
+
if (Array.isArray(value)) {
|
|
66478
|
+
return redactArray({ items: value, depth, budget });
|
|
66479
|
+
}
|
|
66480
|
+
if (isPlainObject2(value)) {
|
|
66481
|
+
return redactObject({ record: value, depth, budget });
|
|
66482
|
+
}
|
|
66483
|
+
return value;
|
|
66484
|
+
}
|
|
66485
|
+
function redactArray({ items, depth, budget }) {
|
|
66486
|
+
if (items.length > MAX_CONTAINER_ENTRIES) {
|
|
66487
|
+
return items;
|
|
66488
|
+
}
|
|
66489
|
+
let redactedItems;
|
|
66490
|
+
for (const [index, item] of items.entries()) {
|
|
66491
|
+
if (budget.remainingNodes <= 0) {
|
|
66492
|
+
break;
|
|
66493
|
+
}
|
|
66494
|
+
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
66495
|
+
if (redactedItem !== item) {
|
|
66496
|
+
redactedItems ??= [...items];
|
|
66497
|
+
redactedItems[index] = redactedItem;
|
|
66498
|
+
}
|
|
66499
|
+
}
|
|
66500
|
+
return redactedItems ?? items;
|
|
66501
|
+
}
|
|
66502
|
+
function redactObject({ record: record2, depth, budget }) {
|
|
66503
|
+
const redactedEntries = /* @__PURE__ */ new Map();
|
|
66504
|
+
let entryCount = 0;
|
|
66505
|
+
for (const key in record2) {
|
|
66506
|
+
if (!Object.hasOwn(record2, key)) {
|
|
66507
|
+
continue;
|
|
66508
|
+
}
|
|
66509
|
+
entryCount += 1;
|
|
66510
|
+
if (entryCount > MAX_CONTAINER_ENTRIES) {
|
|
66511
|
+
return record2;
|
|
66512
|
+
}
|
|
66513
|
+
if (budget.remainingNodes <= 0) {
|
|
66514
|
+
break;
|
|
66515
|
+
}
|
|
66516
|
+
const nestedValue = record2[key];
|
|
66517
|
+
const redactedNestedValue = isRedactedKey({ key }) && nestedValue != null ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
66518
|
+
if (redactedNestedValue !== nestedValue) {
|
|
66519
|
+
redactedEntries.set(key, redactedNestedValue);
|
|
66520
|
+
}
|
|
66521
|
+
}
|
|
66522
|
+
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
66523
|
+
}
|
|
66524
|
+
function redactString({ text, budget }) {
|
|
66525
|
+
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
66526
|
+
return text;
|
|
66527
|
+
}
|
|
66528
|
+
const trimmedText = text.trim();
|
|
66529
|
+
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
66530
|
+
try {
|
|
66531
|
+
const parsedValue = JSON.parse(trimmedText);
|
|
66532
|
+
const redactedValue = redactValue({
|
|
66533
|
+
value: parsedValue,
|
|
66534
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66535
|
+
budget
|
|
66536
|
+
});
|
|
66537
|
+
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
66538
|
+
} catch {
|
|
66539
|
+
return text;
|
|
66540
|
+
}
|
|
66541
|
+
}
|
|
66542
|
+
return redactFormEncoded({ text }) ?? text;
|
|
66543
|
+
}
|
|
66544
|
+
function redactFormEncoded({ text }) {
|
|
66545
|
+
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
66546
|
+
return void 0;
|
|
66547
|
+
}
|
|
66548
|
+
const params = new URLSearchParams(text);
|
|
66549
|
+
let hasRedactedParam = false;
|
|
66550
|
+
for (const key of new Set(params.keys())) {
|
|
66551
|
+
if (isRedactedKey({ key })) {
|
|
66552
|
+
params.set(key, REDACTED_VALUE);
|
|
66553
|
+
hasRedactedParam = true;
|
|
66554
|
+
}
|
|
66555
|
+
}
|
|
66556
|
+
return hasRedactedParam ? params.toString() : void 0;
|
|
66557
|
+
}
|
|
66558
|
+
function isRedactedKey({ key }) {
|
|
66559
|
+
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
66560
|
+
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
66561
|
+
}
|
|
66562
|
+
function isPlainObject2(value) {
|
|
66563
|
+
if (typeof value !== "object" || value === null) {
|
|
66564
|
+
return false;
|
|
66565
|
+
}
|
|
66566
|
+
const prototype = Object.getPrototypeOf(value);
|
|
66567
|
+
return prototype === Object.prototype || prototype === null;
|
|
66568
|
+
}
|
|
66569
|
+
|
|
66570
|
+
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65935
66571
|
import { AxiosError } from "axios";
|
|
65936
66572
|
var recommendedRetryConfig = {
|
|
65937
66573
|
retries: 3,
|
|
@@ -65999,13 +66635,14 @@ function isTooManyRequestsError(error48) {
|
|
|
65999
66635
|
return error48.response?.status === 429;
|
|
66000
66636
|
}
|
|
66001
66637
|
var toLogRequest = (config4) => {
|
|
66638
|
+
const url2 = redactLogUrl({ url: config4.url ?? "" });
|
|
66002
66639
|
return {
|
|
66003
66640
|
method: config4.method ?? "",
|
|
66004
|
-
url:
|
|
66005
|
-
path:
|
|
66641
|
+
url: url2,
|
|
66642
|
+
path: url2,
|
|
66006
66643
|
hostname: config4.baseURL ?? "",
|
|
66007
|
-
originalUrl: `${config4.baseURL ?? ""}${
|
|
66008
|
-
body: config4.data,
|
|
66644
|
+
originalUrl: `${config4.baseURL ?? ""}${url2}`,
|
|
66645
|
+
body: redactLogBody({ body: config4.data }),
|
|
66009
66646
|
headers: {}
|
|
66010
66647
|
};
|
|
66011
66648
|
};
|