@hyperline/cli 0.1.0-build.1.5e392a4 → 0.1.0-build.1.5e5501d
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 +1172 -601
- package/package.json +1 -1
|
@@ -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) => {
|
|
@@ -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) => {
|
|
@@ -39087,7 +39087,7 @@ Examples:
|
|
|
39087
39087
|
queryParamKeys: []
|
|
39088
39088
|
});
|
|
39089
39089
|
});
|
|
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
|
|
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", `
|
|
39091
39091
|
Examples:
|
|
39092
39092
|
hyperline accounting-rules update --id <id>
|
|
39093
39093
|
hyperline accounting-rules update --id <id> --name <name> --category <category>
|
|
@@ -39229,164 +39229,158 @@ Examples:
|
|
|
39229
39229
|
});
|
|
39230
39230
|
}
|
|
39231
39231
|
|
|
39232
|
-
// build/commands/generated/
|
|
39233
|
-
function
|
|
39234
|
-
const resource = parent.command("
|
|
39235
|
-
resource.command("list
|
|
39236
|
-
|
|
39237
|
-
- wallet: Charges a monetary wallet.
|
|
39238
|
-
- credits: Consumes a credit balance.
|
|
39239
|
-
- 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", `
|
|
39240
39236
|
Examples:
|
|
39241
|
-
hyperline
|
|
39242
|
-
hyperline
|
|
39237
|
+
hyperline aggregators list
|
|
39238
|
+
hyperline aggregators list --take <take>`).action(async (opts) => {
|
|
39243
39239
|
const ctx = resource.parent?.opts()._ctx;
|
|
39244
39240
|
if (!ctx) {
|
|
39245
39241
|
process.stderr.write("Error: Not authenticated\n");
|
|
39246
39242
|
process.exit(1);
|
|
39247
39243
|
}
|
|
39248
39244
|
const args = {};
|
|
39249
|
-
if (opts.mode !== void 0)
|
|
39250
|
-
args.mode = opts.mode;
|
|
39251
39245
|
if (opts.take !== void 0)
|
|
39252
39246
|
args.take = Number(opts.take);
|
|
39253
39247
|
if (opts.skip !== void 0)
|
|
39254
39248
|
args.skip = Number(opts.skip);
|
|
39255
39249
|
await ctx.execute({
|
|
39256
39250
|
method: "GET",
|
|
39257
|
-
path: "/v1/
|
|
39251
|
+
path: "/v1/aggregators",
|
|
39258
39252
|
args,
|
|
39259
|
-
queryParamKeys: ["
|
|
39253
|
+
queryParamKeys: ["take", "skip"]
|
|
39260
39254
|
});
|
|
39261
39255
|
});
|
|
39262
|
-
resource.command("create
|
|
39263
|
-
|
|
39264
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39265
|
-
- 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.
|
|
39266
|
-
|
|
39267
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).requiredOption("--mode <value>", `Billing mode.
|
|
39268
|
-
|
|
39269
|
-
- wallet: Charges a monetary wallet.
|
|
39270
|
-
- credits: Consumes a credit balance.
|
|
39271
|
-
- 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", `
|
|
39272
39257
|
Examples:
|
|
39273
|
-
hyperline
|
|
39274
|
-
hyperline
|
|
39275
|
-
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) => {
|
|
39276
39261
|
const ctx = resource.parent?.opts()._ctx;
|
|
39277
39262
|
if (!ctx) {
|
|
39278
39263
|
process.stderr.write("Error: Not authenticated\n");
|
|
39279
39264
|
process.exit(1);
|
|
39280
39265
|
}
|
|
39281
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;
|
|
39282
39271
|
if (opts.name !== void 0)
|
|
39283
39272
|
args.name = opts.name;
|
|
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.
|
|
39300
|
-
if (opts.
|
|
39301
|
-
args.
|
|
39302
|
-
if (opts.
|
|
39303
|
-
args.
|
|
39304
|
-
if (opts.
|
|
39305
|
-
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);
|
|
39306
39297
|
await ctx.execute({
|
|
39307
39298
|
method: "POST",
|
|
39308
|
-
path: "/v1/
|
|
39299
|
+
path: "/v1/aggregators",
|
|
39309
39300
|
args,
|
|
39310
39301
|
queryParamKeys: []
|
|
39311
39302
|
});
|
|
39312
39303
|
});
|
|
39313
|
-
resource.command("get
|
|
39304
|
+
resource.command("get").description(`Retrieve a specific aggregator by ID.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39314
39305
|
Examples:
|
|
39315
|
-
hyperline
|
|
39306
|
+
hyperline aggregators get --id <id>`).action(async (opts) => {
|
|
39316
39307
|
const ctx = resource.parent?.opts()._ctx;
|
|
39317
39308
|
if (!ctx) {
|
|
39318
39309
|
process.stderr.write("Error: Not authenticated\n");
|
|
39319
39310
|
process.exit(1);
|
|
39320
39311
|
}
|
|
39321
39312
|
const args = {};
|
|
39322
|
-
if (opts.
|
|
39323
|
-
args.
|
|
39313
|
+
if (opts.id !== void 0)
|
|
39314
|
+
args.id = opts.id;
|
|
39324
39315
|
await ctx.execute({
|
|
39325
39316
|
method: "GET",
|
|
39326
|
-
path: "/v1/
|
|
39317
|
+
path: "/v1/aggregators/{id}",
|
|
39327
39318
|
args,
|
|
39328
39319
|
queryParamKeys: []
|
|
39329
39320
|
});
|
|
39330
39321
|
});
|
|
39331
|
-
resource.command("
|
|
39332
|
-
|
|
39333
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39334
|
-
- 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.
|
|
39335
|
-
|
|
39336
|
-
- 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", `
|
|
39337
39323
|
Examples:
|
|
39338
|
-
hyperline
|
|
39339
|
-
hyperline
|
|
39340
|
-
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) => {
|
|
39341
39327
|
const ctx = resource.parent?.opts()._ctx;
|
|
39342
39328
|
if (!ctx) {
|
|
39343
39329
|
process.stderr.write("Error: Not authenticated\n");
|
|
39344
39330
|
process.exit(1);
|
|
39345
39331
|
}
|
|
39346
39332
|
const args = {};
|
|
39347
|
-
if (opts.
|
|
39348
|
-
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;
|
|
39349
39339
|
if (opts.name !== void 0)
|
|
39350
39340
|
args.name = opts.name;
|
|
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.
|
|
39365
|
-
if (opts.
|
|
39366
|
-
args.
|
|
39367
|
-
if (opts.
|
|
39368
|
-
args.
|
|
39369
|
-
if (opts.
|
|
39370
|
-
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);
|
|
39371
39365
|
await ctx.execute({
|
|
39372
39366
|
method: "PUT",
|
|
39373
|
-
path: "/v1/
|
|
39367
|
+
path: "/v1/aggregators/{id}",
|
|
39374
39368
|
args,
|
|
39375
39369
|
queryParamKeys: []
|
|
39376
39370
|
});
|
|
39377
39371
|
});
|
|
39378
|
-
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", `
|
|
39379
39373
|
Examples:
|
|
39380
|
-
hyperline
|
|
39381
|
-
hyperline
|
|
39374
|
+
hyperline aggregators delete --id <id>
|
|
39375
|
+
hyperline aggregators delete --id <id> --output json`).action(async (opts) => {
|
|
39382
39376
|
const ctx = resource.parent?.opts()._ctx;
|
|
39383
39377
|
if (!ctx) {
|
|
39384
39378
|
process.stderr.write("Error: Not authenticated\n");
|
|
39385
39379
|
process.exit(1);
|
|
39386
39380
|
}
|
|
39387
39381
|
const args = {};
|
|
39388
|
-
if (opts.
|
|
39389
|
-
args.
|
|
39382
|
+
if (opts.id !== void 0)
|
|
39383
|
+
args.id = opts.id;
|
|
39390
39384
|
if (!opts.yes) {
|
|
39391
39385
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39392
39386
|
if (!confirmed) {
|
|
@@ -39396,113 +39390,182 @@ Examples:
|
|
|
39396
39390
|
}
|
|
39397
39391
|
await ctx.execute({
|
|
39398
39392
|
method: "DELETE",
|
|
39399
|
-
path: "/v1/
|
|
39393
|
+
path: "/v1/aggregators/{id}",
|
|
39400
39394
|
args,
|
|
39401
39395
|
queryParamKeys: []
|
|
39402
39396
|
});
|
|
39403
39397
|
});
|
|
39404
|
-
|
|
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", `
|
|
39405
39404
|
Examples:
|
|
39406
|
-
hyperline
|
|
39405
|
+
hyperline aggregators-usage get-aggregator-usage --id <id>`).action(async (opts) => {
|
|
39407
39406
|
const ctx = resource.parent?.opts()._ctx;
|
|
39408
39407
|
if (!ctx) {
|
|
39409
39408
|
process.stderr.write("Error: Not authenticated\n");
|
|
39410
39409
|
process.exit(1);
|
|
39411
39410
|
}
|
|
39412
39411
|
const args = {};
|
|
39412
|
+
if (opts.id !== void 0)
|
|
39413
|
+
args.id = opts.id;
|
|
39413
39414
|
await ctx.execute({
|
|
39414
39415
|
method: "GET",
|
|
39415
|
-
path: "/v1/
|
|
39416
|
+
path: "/v1/aggregators/{id}/usage",
|
|
39416
39417
|
args,
|
|
39417
39418
|
queryParamKeys: []
|
|
39418
39419
|
});
|
|
39419
39420
|
});
|
|
39420
|
-
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", `
|
|
39421
39422
|
Examples:
|
|
39422
|
-
hyperline
|
|
39423
|
-
hyperline
|
|
39424
|
-
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) => {
|
|
39425
39425
|
const ctx = resource.parent?.opts()._ctx;
|
|
39426
39426
|
if (!ctx) {
|
|
39427
39427
|
process.stderr.write("Error: Not authenticated\n");
|
|
39428
39428
|
process.exit(1);
|
|
39429
39429
|
}
|
|
39430
39430
|
const args = {};
|
|
39431
|
-
if (opts.
|
|
39432
|
-
args.
|
|
39433
|
-
if (opts.
|
|
39434
|
-
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;
|
|
39435
39441
|
await ctx.execute({
|
|
39436
|
-
method: "
|
|
39437
|
-
path: "/v1/
|
|
39442
|
+
method: "GET",
|
|
39443
|
+
path: "/v1/aggregators/{id}/usage/timeseries",
|
|
39438
39444
|
args,
|
|
39439
|
-
queryParamKeys: [
|
|
39445
|
+
queryParamKeys: [
|
|
39446
|
+
"start_date",
|
|
39447
|
+
"end_date",
|
|
39448
|
+
"aggregator_filter_id",
|
|
39449
|
+
"group_by"
|
|
39450
|
+
]
|
|
39440
39451
|
});
|
|
39441
39452
|
});
|
|
39442
|
-
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", `
|
|
39443
39454
|
Examples:
|
|
39444
|
-
hyperline
|
|
39445
|
-
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) => {
|
|
39446
39457
|
const ctx = resource.parent?.opts()._ctx;
|
|
39447
39458
|
if (!ctx) {
|
|
39448
39459
|
process.stderr.write("Error: Not authenticated\n");
|
|
39449
39460
|
process.exit(1);
|
|
39450
39461
|
}
|
|
39451
39462
|
const args = {};
|
|
39452
|
-
if (
|
|
39453
|
-
|
|
39454
|
-
|
|
39455
|
-
|
|
39456
|
-
|
|
39457
|
-
|
|
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);
|
|
39475
|
+
await ctx.execute({
|
|
39476
|
+
method: "GET",
|
|
39477
|
+
path: "/v1/aggregators/{id}/usage/group-by-customer",
|
|
39478
|
+
args,
|
|
39479
|
+
queryParamKeys: [
|
|
39480
|
+
"start_date",
|
|
39481
|
+
"end_date",
|
|
39482
|
+
"aggregator_filter_id",
|
|
39483
|
+
"take",
|
|
39484
|
+
"skip"
|
|
39485
|
+
]
|
|
39486
|
+
});
|
|
39487
|
+
});
|
|
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", `
|
|
39489
|
+
Examples:
|
|
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) => {
|
|
39492
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39493
|
+
if (!ctx) {
|
|
39494
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39495
|
+
process.exit(1);
|
|
39458
39496
|
}
|
|
39497
|
+
const 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);
|
|
39508
|
+
if (opts.skip !== void 0)
|
|
39509
|
+
args.skip = Number(opts.skip);
|
|
39459
39510
|
await ctx.execute({
|
|
39460
|
-
method: "
|
|
39461
|
-
path: "/v1/
|
|
39511
|
+
method: "GET",
|
|
39512
|
+
path: "/v1/aggregators/{id}/usage/events",
|
|
39462
39513
|
args,
|
|
39463
|
-
queryParamKeys: [
|
|
39514
|
+
queryParamKeys: [
|
|
39515
|
+
"start_date",
|
|
39516
|
+
"end_date",
|
|
39517
|
+
"aggregator_filter_id",
|
|
39518
|
+
"take",
|
|
39519
|
+
"skip"
|
|
39520
|
+
]
|
|
39464
39521
|
});
|
|
39465
39522
|
});
|
|
39466
|
-
|
|
39523
|
+
}
|
|
39467
39524
|
|
|
39468
|
-
-
|
|
39469
|
-
|
|
39470
|
-
|
|
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", `
|
|
39471
39533
|
Examples:
|
|
39472
|
-
hyperline
|
|
39473
|
-
hyperline
|
|
39534
|
+
hyperline ai-billing list-agent-plans
|
|
39535
|
+
hyperline ai-billing list-agent-plans --mode <mode> --take <take>`).action(async (opts) => {
|
|
39474
39536
|
const ctx = resource.parent?.opts()._ctx;
|
|
39475
39537
|
if (!ctx) {
|
|
39476
39538
|
process.stderr.write("Error: Not authenticated\n");
|
|
39477
39539
|
process.exit(1);
|
|
39478
39540
|
}
|
|
39479
39541
|
const args = {};
|
|
39480
|
-
if (opts.
|
|
39481
|
-
args.
|
|
39482
|
-
if (opts.currency !== void 0)
|
|
39483
|
-
args.currency = opts.currency;
|
|
39484
|
-
if (opts.search !== void 0)
|
|
39485
|
-
args.search = opts.search;
|
|
39542
|
+
if (opts.mode !== void 0)
|
|
39543
|
+
args.mode = opts.mode;
|
|
39486
39544
|
if (opts.take !== void 0)
|
|
39487
39545
|
args.take = Number(opts.take);
|
|
39488
39546
|
if (opts.skip !== void 0)
|
|
39489
39547
|
args.skip = Number(opts.skip);
|
|
39490
39548
|
await ctx.execute({
|
|
39491
39549
|
method: "GET",
|
|
39492
|
-
path: "/v1/
|
|
39550
|
+
path: "/v1/ai/billing/plans",
|
|
39493
39551
|
args,
|
|
39494
|
-
queryParamKeys: ["
|
|
39552
|
+
queryParamKeys: ["mode", "take", "skip"]
|
|
39495
39553
|
});
|
|
39496
39554
|
});
|
|
39497
|
-
resource.command("create-agent-
|
|
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.
|
|
39498
39556
|
|
|
39499
|
-
-
|
|
39500
|
-
-
|
|
39501
|
-
|
|
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", `
|
|
39502
39565
|
Examples:
|
|
39503
|
-
hyperline
|
|
39504
|
-
hyperline
|
|
39505
|
-
hyperline
|
|
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) => {
|
|
39506
39569
|
const ctx = resource.parent?.opts()._ctx;
|
|
39507
39570
|
if (!ctx) {
|
|
39508
39571
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39511,77 +39574,83 @@ Examples:
|
|
|
39511
39574
|
const args = {};
|
|
39512
39575
|
if (opts.name !== void 0)
|
|
39513
39576
|
args.name = opts.name;
|
|
39514
|
-
if (opts.
|
|
39515
|
-
args.
|
|
39516
|
-
if (opts.
|
|
39517
|
-
args.
|
|
39518
|
-
if (opts.
|
|
39519
|
-
args.
|
|
39520
|
-
if (opts.
|
|
39521
|
-
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);
|
|
39522
39599
|
await ctx.execute({
|
|
39523
39600
|
method: "POST",
|
|
39524
|
-
path: "/v1/
|
|
39601
|
+
path: "/v1/ai/billing/plans",
|
|
39525
39602
|
args,
|
|
39526
39603
|
queryParamKeys: []
|
|
39527
39604
|
});
|
|
39528
39605
|
});
|
|
39529
|
-
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", `
|
|
39530
39607
|
Examples:
|
|
39531
|
-
hyperline
|
|
39608
|
+
hyperline ai-billing get-agent-default-plan`).action(async (_opts) => {
|
|
39532
39609
|
const ctx = resource.parent?.opts()._ctx;
|
|
39533
39610
|
if (!ctx) {
|
|
39534
39611
|
process.stderr.write("Error: Not authenticated\n");
|
|
39535
39612
|
process.exit(1);
|
|
39536
39613
|
}
|
|
39537
39614
|
const args = {};
|
|
39538
|
-
if (opts.rateCardId !== void 0)
|
|
39539
|
-
args.rate_card_id = opts.rateCardId;
|
|
39540
39615
|
await ctx.execute({
|
|
39541
39616
|
method: "GET",
|
|
39542
|
-
path: "/v1/
|
|
39617
|
+
path: "/v1/ai/billing/plans/default",
|
|
39543
39618
|
args,
|
|
39544
39619
|
queryParamKeys: []
|
|
39545
39620
|
});
|
|
39546
39621
|
});
|
|
39547
|
-
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", `
|
|
39548
39623
|
Examples:
|
|
39549
|
-
hyperline
|
|
39550
|
-
hyperline
|
|
39551
|
-
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) => {
|
|
39552
39627
|
const ctx = resource.parent?.opts()._ctx;
|
|
39553
39628
|
if (!ctx) {
|
|
39554
39629
|
process.stderr.write("Error: Not authenticated\n");
|
|
39555
39630
|
process.exit(1);
|
|
39556
39631
|
}
|
|
39557
39632
|
const args = {};
|
|
39558
|
-
if (opts.
|
|
39559
|
-
args.
|
|
39560
|
-
if (opts.
|
|
39561
|
-
args.
|
|
39562
|
-
if (opts.fallbackPerUsd !== void 0)
|
|
39563
|
-
args.fallback_per_usd = opts.fallbackPerUsd;
|
|
39564
|
-
if (opts.rows !== void 0)
|
|
39565
|
-
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;
|
|
39566
39637
|
await ctx.execute({
|
|
39567
39638
|
method: "PUT",
|
|
39568
|
-
path: "/v1/
|
|
39639
|
+
path: "/v1/ai/billing/plans/default",
|
|
39569
39640
|
args,
|
|
39570
39641
|
queryParamKeys: []
|
|
39571
39642
|
});
|
|
39572
39643
|
});
|
|
39573
|
-
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", `
|
|
39574
39645
|
Examples:
|
|
39575
|
-
hyperline
|
|
39576
|
-
hyperline
|
|
39646
|
+
hyperline ai-billing clear-agent-default-plan
|
|
39647
|
+
hyperline ai-billing clear-agent-default-plan --output json`).action(async (opts) => {
|
|
39577
39648
|
const ctx = resource.parent?.opts()._ctx;
|
|
39578
39649
|
if (!ctx) {
|
|
39579
39650
|
process.stderr.write("Error: Not authenticated\n");
|
|
39580
39651
|
process.exit(1);
|
|
39581
39652
|
}
|
|
39582
39653
|
const args = {};
|
|
39583
|
-
if (opts.rateCardId !== void 0)
|
|
39584
|
-
args.rate_card_id = opts.rateCardId;
|
|
39585
39654
|
if (!opts.yes) {
|
|
39586
39655
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39587
39656
|
if (!confirmed) {
|
|
@@ -39591,139 +39660,221 @@ Examples:
|
|
|
39591
39660
|
}
|
|
39592
39661
|
await ctx.execute({
|
|
39593
39662
|
method: "DELETE",
|
|
39594
|
-
path: "/v1/
|
|
39663
|
+
path: "/v1/ai/billing/plans/default",
|
|
39595
39664
|
args,
|
|
39596
39665
|
queryParamKeys: []
|
|
39597
39666
|
});
|
|
39598
39667
|
});
|
|
39599
|
-
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", `
|
|
39600
39669
|
Examples:
|
|
39601
|
-
hyperline
|
|
39670
|
+
hyperline ai-billing get-agent-plan --id <id>`).action(async (opts) => {
|
|
39602
39671
|
const ctx = resource.parent?.opts()._ctx;
|
|
39603
39672
|
if (!ctx) {
|
|
39604
39673
|
process.stderr.write("Error: Not authenticated\n");
|
|
39605
39674
|
process.exit(1);
|
|
39606
39675
|
}
|
|
39607
39676
|
const args = {};
|
|
39677
|
+
if (opts.id !== void 0)
|
|
39678
|
+
args.id = opts.id;
|
|
39608
39679
|
await ctx.execute({
|
|
39609
39680
|
method: "GET",
|
|
39610
|
-
path: "/v1/
|
|
39681
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39611
39682
|
args,
|
|
39612
39683
|
queryParamKeys: []
|
|
39613
39684
|
});
|
|
39614
39685
|
});
|
|
39615
|
-
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", `
|
|
39616
39692
|
Examples:
|
|
39617
|
-
hyperline
|
|
39618
|
-
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) => {
|
|
39619
39696
|
const ctx = resource.parent?.opts()._ctx;
|
|
39620
39697
|
if (!ctx) {
|
|
39621
39698
|
process.stderr.write("Error: Not authenticated\n");
|
|
39622
39699
|
process.exit(1);
|
|
39623
39700
|
}
|
|
39624
39701
|
const args = {};
|
|
39625
|
-
if (opts.
|
|
39626
|
-
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);
|
|
39627
39726
|
await ctx.execute({
|
|
39628
|
-
method: "
|
|
39629
|
-
path: "/v1/
|
|
39727
|
+
method: "PUT",
|
|
39728
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39630
39729
|
args,
|
|
39631
|
-
queryParamKeys: [
|
|
39730
|
+
queryParamKeys: []
|
|
39632
39731
|
});
|
|
39633
39732
|
});
|
|
39634
|
-
resource.command("
|
|
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", `
|
|
39635
39734
|
Examples:
|
|
39636
|
-
hyperline
|
|
39637
|
-
hyperline
|
|
39735
|
+
hyperline ai-billing delete-agent-plan --id <id>
|
|
39736
|
+
hyperline ai-billing delete-agent-plan --id <id> --output json`).action(async (opts) => {
|
|
39638
39737
|
const ctx = resource.parent?.opts()._ctx;
|
|
39639
39738
|
if (!ctx) {
|
|
39640
39739
|
process.stderr.write("Error: Not authenticated\n");
|
|
39641
39740
|
process.exit(1);
|
|
39642
39741
|
}
|
|
39643
39742
|
const args = {};
|
|
39644
|
-
if (opts.
|
|
39645
|
-
args.
|
|
39646
|
-
if (opts.
|
|
39647
|
-
|
|
39648
|
-
|
|
39649
|
-
|
|
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
|
+
}
|
|
39650
39752
|
await ctx.execute({
|
|
39651
|
-
method: "
|
|
39652
|
-
path: "/v1/
|
|
39753
|
+
method: "DELETE",
|
|
39754
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39653
39755
|
args,
|
|
39654
39756
|
queryParamKeys: []
|
|
39655
39757
|
});
|
|
39656
39758
|
});
|
|
39657
|
-
resource.command("
|
|
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);
|
|
39783
|
+
await ctx.execute({
|
|
39784
|
+
method: "GET",
|
|
39785
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39786
|
+
args,
|
|
39787
|
+
queryParamKeys: ["denomination", "currency", "search", "take", "skip"]
|
|
39788
|
+
});
|
|
39789
|
+
});
|
|
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", `
|
|
39658
39795
|
Examples:
|
|
39659
|
-
hyperline
|
|
39660
|
-
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) => {
|
|
39661
39799
|
const ctx = resource.parent?.opts()._ctx;
|
|
39662
39800
|
if (!ctx) {
|
|
39663
39801
|
process.stderr.write("Error: Not authenticated\n");
|
|
39664
39802
|
process.exit(1);
|
|
39665
39803
|
}
|
|
39666
39804
|
const args = {};
|
|
39667
|
-
if (opts.
|
|
39668
|
-
args.
|
|
39669
|
-
if (
|
|
39670
|
-
|
|
39671
|
-
|
|
39672
|
-
|
|
39673
|
-
|
|
39674
|
-
|
|
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);
|
|
39815
|
+
await ctx.execute({
|
|
39816
|
+
method: "POST",
|
|
39817
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39818
|
+
args,
|
|
39819
|
+
queryParamKeys: []
|
|
39820
|
+
});
|
|
39821
|
+
});
|
|
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", `
|
|
39823
|
+
Examples:
|
|
39824
|
+
hyperline ai-billing get-agent-rate-card --id <id>`).action(async (opts) => {
|
|
39825
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39826
|
+
if (!ctx) {
|
|
39827
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39828
|
+
process.exit(1);
|
|
39675
39829
|
}
|
|
39830
|
+
const args = {};
|
|
39831
|
+
if (opts.id !== void 0)
|
|
39832
|
+
args.id = opts.id;
|
|
39676
39833
|
await ctx.execute({
|
|
39677
|
-
method: "
|
|
39678
|
-
path: "/v1/
|
|
39834
|
+
method: "GET",
|
|
39835
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39679
39836
|
args,
|
|
39680
39837
|
queryParamKeys: []
|
|
39681
39838
|
});
|
|
39682
39839
|
});
|
|
39683
|
-
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", `
|
|
39684
39841
|
Examples:
|
|
39685
|
-
hyperline
|
|
39686
|
-
hyperline
|
|
39687
|
-
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) => {
|
|
39688
39845
|
const ctx = resource.parent?.opts()._ctx;
|
|
39689
39846
|
if (!ctx) {
|
|
39690
39847
|
process.stderr.write("Error: Not authenticated\n");
|
|
39691
39848
|
process.exit(1);
|
|
39692
39849
|
}
|
|
39693
39850
|
const args = {};
|
|
39694
|
-
if (opts.
|
|
39695
|
-
args.
|
|
39696
|
-
if (opts.
|
|
39697
|
-
args.
|
|
39698
|
-
if (opts.
|
|
39699
|
-
args.
|
|
39700
|
-
if (opts.
|
|
39701
|
-
args.
|
|
39702
|
-
if (opts.cachedInputPerMTokens !== void 0)
|
|
39703
|
-
args.cached_input_per_m_tokens = opts.cachedInputPerMTokens;
|
|
39704
|
-
if (opts.cacheWritePerMTokens !== void 0)
|
|
39705
|
-
args.cache_write_per_m_tokens = opts.cacheWritePerMTokens;
|
|
39706
|
-
if (opts.dimensions !== void 0)
|
|
39707
|
-
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);
|
|
39708
39859
|
await ctx.execute({
|
|
39709
39860
|
method: "PUT",
|
|
39710
|
-
path: "/v1/
|
|
39861
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39711
39862
|
args,
|
|
39712
39863
|
queryParamKeys: []
|
|
39713
39864
|
});
|
|
39714
39865
|
});
|
|
39715
|
-
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", `
|
|
39716
39867
|
Examples:
|
|
39717
|
-
hyperline
|
|
39718
|
-
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) => {
|
|
39719
39870
|
const ctx = resource.parent?.opts()._ctx;
|
|
39720
39871
|
if (!ctx) {
|
|
39721
39872
|
process.stderr.write("Error: Not authenticated\n");
|
|
39722
39873
|
process.exit(1);
|
|
39723
39874
|
}
|
|
39724
39875
|
const args = {};
|
|
39725
|
-
if (opts.
|
|
39726
|
-
args.
|
|
39876
|
+
if (opts.id !== void 0)
|
|
39877
|
+
args.id = opts.id;
|
|
39727
39878
|
if (!opts.yes) {
|
|
39728
39879
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39729
39880
|
if (!confirmed) {
|
|
@@ -39733,51 +39884,53 @@ Examples:
|
|
|
39733
39884
|
}
|
|
39734
39885
|
await ctx.execute({
|
|
39735
39886
|
method: "DELETE",
|
|
39736
|
-
path: "/v1/
|
|
39887
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39737
39888
|
args,
|
|
39738
39889
|
queryParamKeys: []
|
|
39739
39890
|
});
|
|
39740
39891
|
});
|
|
39741
|
-
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", `
|
|
39742
39893
|
Examples:
|
|
39743
|
-
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) => {
|
|
39744
39896
|
const ctx = resource.parent?.opts()._ctx;
|
|
39745
39897
|
if (!ctx) {
|
|
39746
39898
|
process.stderr.write("Error: Not authenticated\n");
|
|
39747
39899
|
process.exit(1);
|
|
39748
39900
|
}
|
|
39749
39901
|
const args = {};
|
|
39750
|
-
if (opts.
|
|
39751
|
-
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);
|
|
39752
39908
|
await ctx.execute({
|
|
39753
39909
|
method: "GET",
|
|
39754
|
-
path: "/v1/
|
|
39910
|
+
path: "/v1/ai/billing/customers/{id}/policies",
|
|
39755
39911
|
args,
|
|
39756
|
-
queryParamKeys: []
|
|
39912
|
+
queryParamKeys: ["take", "skip"]
|
|
39757
39913
|
});
|
|
39758
39914
|
});
|
|
39759
|
-
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", `
|
|
39760
39916
|
Examples:
|
|
39761
|
-
hyperline
|
|
39762
|
-
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) => {
|
|
39763
39918
|
const ctx = resource.parent?.opts()._ctx;
|
|
39764
39919
|
if (!ctx) {
|
|
39765
39920
|
process.stderr.write("Error: Not authenticated\n");
|
|
39766
39921
|
process.exit(1);
|
|
39767
39922
|
}
|
|
39768
39923
|
const args = {};
|
|
39769
|
-
if (opts.
|
|
39770
|
-
args.
|
|
39771
|
-
if (opts.agent !== void 0)
|
|
39772
|
-
args.agent = opts.agent;
|
|
39924
|
+
if (opts.id !== void 0)
|
|
39925
|
+
args.id = opts.id;
|
|
39773
39926
|
await ctx.execute({
|
|
39774
39927
|
method: "GET",
|
|
39775
|
-
path: "/v1/
|
|
39928
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39776
39929
|
args,
|
|
39777
|
-
queryParamKeys: [
|
|
39930
|
+
queryParamKeys: []
|
|
39778
39931
|
});
|
|
39779
39932
|
});
|
|
39780
|
-
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.
|
|
39781
39934
|
|
|
39782
39935
|
- wallet: Charges a monetary wallet.
|
|
39783
39936
|
- credits: Consumes a credit balance.
|
|
@@ -39786,21 +39939,19 @@ Examples:
|
|
|
39786
39939
|
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39787
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.
|
|
39788
39941
|
|
|
39789
|
-
- 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", `
|
|
39790
39943
|
Examples:
|
|
39791
|
-
hyperline
|
|
39792
|
-
hyperline
|
|
39793
|
-
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) => {
|
|
39794
39947
|
const ctx = resource.parent?.opts()._ctx;
|
|
39795
39948
|
if (!ctx) {
|
|
39796
39949
|
process.stderr.write("Error: Not authenticated\n");
|
|
39797
39950
|
process.exit(1);
|
|
39798
39951
|
}
|
|
39799
39952
|
const args = {};
|
|
39800
|
-
if (opts.
|
|
39801
|
-
args.
|
|
39802
|
-
if (opts.agent !== void 0)
|
|
39803
|
-
args.agent = opts.agent;
|
|
39953
|
+
if (opts.id !== void 0)
|
|
39954
|
+
args.id = opts.id;
|
|
39804
39955
|
if (opts.mode !== void 0)
|
|
39805
39956
|
args.mode = opts.mode;
|
|
39806
39957
|
if (opts.walletId !== void 0)
|
|
@@ -39829,32 +39980,27 @@ Examples:
|
|
|
39829
39980
|
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39830
39981
|
if (opts.blocked !== void 0)
|
|
39831
39982
|
args.blocked = true;
|
|
39832
|
-
if (opts.
|
|
39833
|
-
args.
|
|
39834
|
-
if (opts.windowRates !== void 0)
|
|
39835
|
-
args.window_rates = JSON.parse(opts.windowRates);
|
|
39983
|
+
if (opts.windows !== void 0)
|
|
39984
|
+
args.windows = JSON.parse(opts.windows);
|
|
39836
39985
|
await ctx.execute({
|
|
39837
39986
|
method: "PUT",
|
|
39838
|
-
path: "/v1/
|
|
39987
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39839
39988
|
args,
|
|
39840
|
-
queryParamKeys: [
|
|
39989
|
+
queryParamKeys: []
|
|
39841
39990
|
});
|
|
39842
39991
|
});
|
|
39843
|
-
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", `
|
|
39844
39993
|
Examples:
|
|
39845
|
-
hyperline
|
|
39846
|
-
hyperline
|
|
39847
|
-
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) => {
|
|
39848
39996
|
const ctx = resource.parent?.opts()._ctx;
|
|
39849
39997
|
if (!ctx) {
|
|
39850
39998
|
process.stderr.write("Error: Not authenticated\n");
|
|
39851
39999
|
process.exit(1);
|
|
39852
40000
|
}
|
|
39853
40001
|
const args = {};
|
|
39854
|
-
if (opts.
|
|
39855
|
-
args.
|
|
39856
|
-
if (opts.agent !== void 0)
|
|
39857
|
-
args.agent = opts.agent;
|
|
40002
|
+
if (opts.id !== void 0)
|
|
40003
|
+
args.id = opts.id;
|
|
39858
40004
|
if (!opts.yes) {
|
|
39859
40005
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39860
40006
|
if (!confirmed) {
|
|
@@ -39864,199 +40010,216 @@ Examples:
|
|
|
39864
40010
|
}
|
|
39865
40011
|
await ctx.execute({
|
|
39866
40012
|
method: "DELETE",
|
|
39867
|
-
path: "/v1/
|
|
40013
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39868
40014
|
args,
|
|
39869
|
-
queryParamKeys: [
|
|
40015
|
+
queryParamKeys: []
|
|
39870
40016
|
});
|
|
39871
40017
|
});
|
|
39872
|
-
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", `
|
|
39873
40019
|
Examples:
|
|
39874
|
-
hyperline
|
|
39875
|
-
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) => {
|
|
39876
40021
|
const ctx = resource.parent?.opts()._ctx;
|
|
39877
40022
|
if (!ctx) {
|
|
39878
40023
|
process.stderr.write("Error: Not authenticated\n");
|
|
39879
40024
|
process.exit(1);
|
|
39880
40025
|
}
|
|
39881
40026
|
const args = {};
|
|
39882
|
-
if (opts.
|
|
39883
|
-
args.
|
|
40027
|
+
if (opts.id !== void 0)
|
|
40028
|
+
args.id = opts.id;
|
|
40029
|
+
if (opts.agentSlug !== void 0)
|
|
40030
|
+
args.agent_slug = opts.agentSlug;
|
|
39884
40031
|
await ctx.execute({
|
|
39885
|
-
method: "
|
|
39886
|
-
path: "/v1/
|
|
40032
|
+
method: "GET",
|
|
40033
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
39887
40034
|
args,
|
|
39888
40035
|
queryParamKeys: []
|
|
39889
40036
|
});
|
|
39890
40037
|
});
|
|
39891
|
-
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", `
|
|
39892
40048
|
Examples:
|
|
39893
|
-
hyperline
|
|
39894
|
-
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) => {
|
|
39895
40052
|
const ctx = resource.parent?.opts()._ctx;
|
|
39896
40053
|
if (!ctx) {
|
|
39897
40054
|
process.stderr.write("Error: Not authenticated\n");
|
|
39898
40055
|
process.exit(1);
|
|
39899
40056
|
}
|
|
39900
40057
|
const args = {};
|
|
39901
|
-
if (opts.
|
|
39902
|
-
args.
|
|
39903
|
-
if (opts.
|
|
39904
|
-
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);
|
|
39905
40092
|
await ctx.execute({
|
|
39906
|
-
method: "
|
|
39907
|
-
path: "/v1/
|
|
40093
|
+
method: "PUT",
|
|
40094
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
39908
40095
|
args,
|
|
39909
|
-
queryParamKeys: [
|
|
40096
|
+
queryParamKeys: []
|
|
39910
40097
|
});
|
|
39911
40098
|
});
|
|
39912
|
-
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", `
|
|
39913
40100
|
Examples:
|
|
39914
|
-
hyperline
|
|
39915
|
-
hyperline
|
|
39916
|
-
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) => {
|
|
39917
40103
|
const ctx = resource.parent?.opts()._ctx;
|
|
39918
40104
|
if (!ctx) {
|
|
39919
40105
|
process.stderr.write("Error: Not authenticated\n");
|
|
39920
40106
|
process.exit(1);
|
|
39921
40107
|
}
|
|
39922
40108
|
const args = {};
|
|
39923
|
-
if (opts.
|
|
39924
|
-
args.
|
|
39925
|
-
if (opts.
|
|
39926
|
-
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
|
+
}
|
|
39927
40120
|
await ctx.execute({
|
|
39928
|
-
method: "
|
|
39929
|
-
path: "/v1/
|
|
40121
|
+
method: "DELETE",
|
|
40122
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
39930
40123
|
args,
|
|
39931
|
-
queryParamKeys: [
|
|
40124
|
+
queryParamKeys: []
|
|
39932
40125
|
});
|
|
39933
40126
|
});
|
|
39934
|
-
resource.command("
|
|
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", `
|
|
39935
40128
|
Examples:
|
|
39936
|
-
hyperline
|
|
39937
|
-
hyperline
|
|
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) => {
|
|
39938
40131
|
const ctx = resource.parent?.opts()._ctx;
|
|
39939
40132
|
if (!ctx) {
|
|
39940
40133
|
process.stderr.write("Error: Not authenticated\n");
|
|
39941
40134
|
process.exit(1);
|
|
39942
40135
|
}
|
|
39943
40136
|
const args = {};
|
|
39944
|
-
if (opts.
|
|
39945
|
-
args.
|
|
39946
|
-
if (opts.agent !== void 0)
|
|
39947
|
-
args.agent = opts.agent;
|
|
39948
|
-
if (opts.overage !== void 0)
|
|
39949
|
-
args.overage = opts.overage;
|
|
39950
|
-
if (opts.from !== void 0)
|
|
39951
|
-
args.from = opts.from;
|
|
39952
|
-
if (opts.to !== void 0)
|
|
39953
|
-
args.to = opts.to;
|
|
39954
|
-
if (opts.take !== void 0)
|
|
39955
|
-
args.take = Number(opts.take);
|
|
39956
|
-
if (opts.skip !== void 0)
|
|
39957
|
-
args.skip = Number(opts.skip);
|
|
40137
|
+
if (opts.id !== void 0)
|
|
40138
|
+
args.id = opts.id;
|
|
39958
40139
|
await ctx.execute({
|
|
39959
|
-
method: "
|
|
39960
|
-
path: "/v1/
|
|
40140
|
+
method: "POST",
|
|
40141
|
+
path: "/v1/ai/billing/customers/{id}/apply-default-plan",
|
|
39961
40142
|
args,
|
|
39962
|
-
queryParamKeys: [
|
|
40143
|
+
queryParamKeys: []
|
|
39963
40144
|
});
|
|
39964
40145
|
});
|
|
39965
|
-
resource.command("get-agent-customer-
|
|
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", `
|
|
39966
40147
|
Examples:
|
|
39967
|
-
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) => {
|
|
39968
40150
|
const ctx = resource.parent?.opts()._ctx;
|
|
39969
40151
|
if (!ctx) {
|
|
39970
40152
|
process.stderr.write("Error: Not authenticated\n");
|
|
39971
40153
|
process.exit(1);
|
|
39972
40154
|
}
|
|
39973
40155
|
const args = {};
|
|
39974
|
-
if (opts.
|
|
39975
|
-
args.
|
|
40156
|
+
if (opts.id !== void 0)
|
|
40157
|
+
args.id = opts.id;
|
|
40158
|
+
if (opts.agentSlug !== void 0)
|
|
40159
|
+
args.agent_slug = opts.agentSlug;
|
|
39976
40160
|
await ctx.execute({
|
|
39977
40161
|
method: "GET",
|
|
39978
|
-
path: "/v1/
|
|
40162
|
+
path: "/v1/ai/billing/customers/{id}/balance",
|
|
39979
40163
|
args,
|
|
39980
|
-
queryParamKeys: []
|
|
40164
|
+
queryParamKeys: ["agent_slug"]
|
|
39981
40165
|
});
|
|
39982
40166
|
});
|
|
39983
|
-
|
|
39984
|
-
|
|
39985
|
-
// build/commands/generated/aggregators.js
|
|
39986
|
-
function registerAggregatorsCommands(parent) {
|
|
39987
|
-
const resource = parent.command("aggregators").description("Manage aggregators");
|
|
39988
|
-
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", `
|
|
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", `
|
|
39989
40168
|
Examples:
|
|
39990
|
-
hyperline
|
|
39991
|
-
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) => {
|
|
39992
40172
|
const ctx = resource.parent?.opts()._ctx;
|
|
39993
40173
|
if (!ctx) {
|
|
39994
40174
|
process.stderr.write("Error: Not authenticated\n");
|
|
39995
40175
|
process.exit(1);
|
|
39996
40176
|
}
|
|
39997
40177
|
const args = {};
|
|
39998
|
-
if (opts.
|
|
39999
|
-
args.
|
|
40000
|
-
if (opts.
|
|
40001
|
-
args.
|
|
40178
|
+
if (opts.id !== void 0)
|
|
40179
|
+
args.id = opts.id;
|
|
40180
|
+
if (opts.agentSlug !== void 0)
|
|
40181
|
+
args.agent_slug = opts.agentSlug;
|
|
40002
40182
|
await ctx.execute({
|
|
40003
|
-
method: "
|
|
40004
|
-
path: "/v1/
|
|
40183
|
+
method: "POST",
|
|
40184
|
+
path: "/v1/ai/billing/customers/{id}/windows/reset",
|
|
40005
40185
|
args,
|
|
40006
|
-
queryParamKeys: ["
|
|
40186
|
+
queryParamKeys: ["agent_slug"]
|
|
40007
40187
|
});
|
|
40008
40188
|
});
|
|
40009
|
-
resource.command("
|
|
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", `
|
|
40010
40190
|
Examples:
|
|
40011
|
-
hyperline
|
|
40012
|
-
hyperline
|
|
40013
|
-
hyperline aggregators create --entity <entity> --operation <operation> --output json`).action(async (opts) => {
|
|
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) => {
|
|
40014
40193
|
const ctx = resource.parent?.opts()._ctx;
|
|
40015
40194
|
if (!ctx) {
|
|
40016
40195
|
process.stderr.write("Error: Not authenticated\n");
|
|
40017
40196
|
process.exit(1);
|
|
40018
40197
|
}
|
|
40019
40198
|
const args = {};
|
|
40020
|
-
if (opts.
|
|
40021
|
-
args.
|
|
40022
|
-
if (opts.
|
|
40023
|
-
args.
|
|
40024
|
-
if (opts.
|
|
40025
|
-
args.
|
|
40026
|
-
if (opts.
|
|
40027
|
-
args.
|
|
40028
|
-
if (opts.
|
|
40029
|
-
args.
|
|
40030
|
-
if (opts.
|
|
40031
|
-
args.
|
|
40032
|
-
if (opts.
|
|
40033
|
-
args.
|
|
40034
|
-
if (opts.operation !== void 0)
|
|
40035
|
-
args.operation = opts.operation;
|
|
40036
|
-
if (opts.property !== void 0)
|
|
40037
|
-
args.property = opts.property;
|
|
40038
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40039
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40040
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40041
|
-
args.allow_negative_values = true;
|
|
40042
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40043
|
-
args.aggregate_on_customers_enabled = true;
|
|
40044
|
-
if (opts.where !== void 0)
|
|
40045
|
-
args.where = JSON.parse(opts.where);
|
|
40046
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40047
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40048
|
-
if (opts.thresholds !== void 0)
|
|
40049
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
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;
|
|
40209
|
+
if (opts.take !== void 0)
|
|
40210
|
+
args.take = Number(opts.take);
|
|
40211
|
+
if (opts.skip !== void 0)
|
|
40212
|
+
args.skip = Number(opts.skip);
|
|
40050
40213
|
await ctx.execute({
|
|
40051
|
-
method: "
|
|
40052
|
-
path: "/v1/
|
|
40214
|
+
method: "GET",
|
|
40215
|
+
path: "/v1/ai/billing/customers/{id}/consumption",
|
|
40053
40216
|
args,
|
|
40054
|
-
queryParamKeys: []
|
|
40217
|
+
queryParamKeys: ["agent_slug", "overage", "from", "to", "take", "skip"]
|
|
40055
40218
|
});
|
|
40056
40219
|
});
|
|
40057
|
-
resource.command("get").description(`
|
|
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", `
|
|
40058
40221
|
Examples:
|
|
40059
|
-
hyperline
|
|
40222
|
+
hyperline ai-billing get-product-ai-rate-card --id <id>`).action(async (opts) => {
|
|
40060
40223
|
const ctx = resource.parent?.opts()._ctx;
|
|
40061
40224
|
if (!ctx) {
|
|
40062
40225
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40067,65 +40230,36 @@ Examples:
|
|
|
40067
40230
|
args.id = opts.id;
|
|
40068
40231
|
await ctx.execute({
|
|
40069
40232
|
method: "GET",
|
|
40070
|
-
path: "/v1/
|
|
40233
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40071
40234
|
args,
|
|
40072
40235
|
queryParamKeys: []
|
|
40073
40236
|
});
|
|
40074
40237
|
});
|
|
40075
|
-
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", `
|
|
40076
40239
|
Examples:
|
|
40077
|
-
hyperline
|
|
40078
|
-
hyperline
|
|
40079
|
-
hyperline aggregators update --id <id> --output json`).action(async (opts) => {
|
|
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) => {
|
|
40080
40242
|
const ctx = resource.parent?.opts()._ctx;
|
|
40081
40243
|
if (!ctx) {
|
|
40082
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40083
|
-
process.exit(1);
|
|
40084
|
-
}
|
|
40085
|
-
const args = {};
|
|
40086
|
-
if (opts.id !== void 0)
|
|
40087
|
-
args.id = opts.id;
|
|
40088
|
-
if (opts.
|
|
40089
|
-
args.
|
|
40090
|
-
if (opts.type !== void 0)
|
|
40091
|
-
args.type = opts.type;
|
|
40092
|
-
if (opts.name !== void 0)
|
|
40093
|
-
args.name = opts.name;
|
|
40094
|
-
if (opts.description !== void 0)
|
|
40095
|
-
args.description = opts.description;
|
|
40096
|
-
if (opts.customEventName !== void 0)
|
|
40097
|
-
args.custom_event_name = opts.customEventName;
|
|
40098
|
-
if (opts.unitName !== void 0)
|
|
40099
|
-
args.unit_name = opts.unitName;
|
|
40100
|
-
if (opts.defaultIntervalPeriod !== void 0)
|
|
40101
|
-
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
40102
|
-
if (opts.operation !== void 0)
|
|
40103
|
-
args.operation = opts.operation;
|
|
40104
|
-
if (opts.property !== void 0)
|
|
40105
|
-
args.property = opts.property;
|
|
40106
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40107
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40108
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40109
|
-
args.allow_negative_values = true;
|
|
40110
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40111
|
-
args.aggregate_on_customers_enabled = true;
|
|
40112
|
-
if (opts.where !== void 0)
|
|
40113
|
-
args.where = JSON.parse(opts.where);
|
|
40114
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40115
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40116
|
-
if (opts.thresholds !== void 0)
|
|
40117
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
40244
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40245
|
+
process.exit(1);
|
|
40246
|
+
}
|
|
40247
|
+
const args = {};
|
|
40248
|
+
if (opts.id !== void 0)
|
|
40249
|
+
args.id = opts.id;
|
|
40250
|
+
if (opts.rateCardId !== void 0)
|
|
40251
|
+
args.rate_card_id = opts.rateCardId;
|
|
40118
40252
|
await ctx.execute({
|
|
40119
40253
|
method: "PUT",
|
|
40120
|
-
path: "/v1/
|
|
40254
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40121
40255
|
args,
|
|
40122
40256
|
queryParamKeys: []
|
|
40123
40257
|
});
|
|
40124
40258
|
});
|
|
40125
|
-
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", `
|
|
40126
40260
|
Examples:
|
|
40127
|
-
hyperline
|
|
40128
|
-
hyperline
|
|
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) => {
|
|
40129
40263
|
const ctx = resource.parent?.opts()._ctx;
|
|
40130
40264
|
if (!ctx) {
|
|
40131
40265
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40143,38 +40277,66 @@ Examples:
|
|
|
40143
40277
|
}
|
|
40144
40278
|
await ctx.execute({
|
|
40145
40279
|
method: "DELETE",
|
|
40146
|
-
path: "/v1/
|
|
40280
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40147
40281
|
args,
|
|
40148
40282
|
queryParamKeys: []
|
|
40149
40283
|
});
|
|
40150
40284
|
});
|
|
40151
40285
|
}
|
|
40152
40286
|
|
|
40153
|
-
// build/commands/generated/
|
|
40154
|
-
function
|
|
40155
|
-
const resource = parent.command("
|
|
40156
|
-
resource.command("
|
|
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", `
|
|
40157
40291
|
Examples:
|
|
40158
|
-
hyperline
|
|
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) => {
|
|
40159
40294
|
const ctx = resource.parent?.opts()._ctx;
|
|
40160
40295
|
if (!ctx) {
|
|
40161
40296
|
process.stderr.write("Error: Not authenticated\n");
|
|
40162
40297
|
process.exit(1);
|
|
40163
40298
|
}
|
|
40164
40299
|
const args = {};
|
|
40165
|
-
if (opts.
|
|
40166
|
-
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);
|
|
40167
40306
|
await ctx.execute({
|
|
40168
40307
|
method: "GET",
|
|
40169
|
-
path: "/v1/
|
|
40308
|
+
path: "/v1/ai/billing/costs",
|
|
40309
|
+
args,
|
|
40310
|
+
queryParamKeys: ["take", "skip", "enabled_only"]
|
|
40311
|
+
});
|
|
40312
|
+
});
|
|
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", `
|
|
40314
|
+
Examples:
|
|
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) => {
|
|
40317
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40318
|
+
if (!ctx) {
|
|
40319
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40320
|
+
process.exit(1);
|
|
40321
|
+
}
|
|
40322
|
+
const args = {};
|
|
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);
|
|
40329
|
+
await ctx.execute({
|
|
40330
|
+
method: "POST",
|
|
40331
|
+
path: "/v1/ai/billing/costs/items",
|
|
40170
40332
|
args,
|
|
40171
40333
|
queryParamKeys: []
|
|
40172
40334
|
});
|
|
40173
40335
|
});
|
|
40174
|
-
resource.command("
|
|
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", `
|
|
40175
40337
|
Examples:
|
|
40176
|
-
hyperline
|
|
40177
|
-
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) => {
|
|
40178
40340
|
const ctx = resource.parent?.opts()._ctx;
|
|
40179
40341
|
if (!ctx) {
|
|
40180
40342
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40183,30 +40345,56 @@ Examples:
|
|
|
40183
40345
|
const args = {};
|
|
40184
40346
|
if (opts.id !== void 0)
|
|
40185
40347
|
args.id = opts.id;
|
|
40186
|
-
if (opts.
|
|
40187
|
-
|
|
40188
|
-
|
|
40189
|
-
|
|
40190
|
-
|
|
40191
|
-
|
|
40192
|
-
|
|
40193
|
-
args.group_by = opts.groupBy;
|
|
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
|
+
}
|
|
40194
40355
|
await ctx.execute({
|
|
40195
|
-
method: "
|
|
40196
|
-
path: "/v1/
|
|
40356
|
+
method: "DELETE",
|
|
40357
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40197
40358
|
args,
|
|
40198
|
-
queryParamKeys: [
|
|
40199
|
-
"start_date",
|
|
40200
|
-
"end_date",
|
|
40201
|
-
"aggregator_filter_id",
|
|
40202
|
-
"group_by"
|
|
40203
|
-
]
|
|
40359
|
+
queryParamKeys: []
|
|
40204
40360
|
});
|
|
40205
40361
|
});
|
|
40206
|
-
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", `
|
|
40207
40363
|
Examples:
|
|
40208
|
-
hyperline
|
|
40209
|
-
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) => {
|
|
40367
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40368
|
+
if (!ctx) {
|
|
40369
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40370
|
+
process.exit(1);
|
|
40371
|
+
}
|
|
40372
|
+
const 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);
|
|
40387
|
+
await ctx.execute({
|
|
40388
|
+
method: "PUT",
|
|
40389
|
+
path: "/v1/ai/billing/costs/overrides",
|
|
40390
|
+
args,
|
|
40391
|
+
queryParamKeys: []
|
|
40392
|
+
});
|
|
40393
|
+
});
|
|
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", `
|
|
40395
|
+
Examples:
|
|
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) => {
|
|
40210
40398
|
const ctx = resource.parent?.opts()._ctx;
|
|
40211
40399
|
if (!ctx) {
|
|
40212
40400
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40215,33 +40403,24 @@ Examples:
|
|
|
40215
40403
|
const args = {};
|
|
40216
40404
|
if (opts.id !== void 0)
|
|
40217
40405
|
args.id = opts.id;
|
|
40218
|
-
if (opts.
|
|
40219
|
-
|
|
40220
|
-
|
|
40221
|
-
|
|
40222
|
-
|
|
40223
|
-
|
|
40224
|
-
|
|
40225
|
-
args.take = Number(opts.take);
|
|
40226
|
-
if (opts.skip !== void 0)
|
|
40227
|
-
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
|
+
}
|
|
40228
40413
|
await ctx.execute({
|
|
40229
|
-
method: "
|
|
40230
|
-
path: "/v1/
|
|
40414
|
+
method: "DELETE",
|
|
40415
|
+
path: "/v1/ai/billing/costs/overrides/{id}",
|
|
40231
40416
|
args,
|
|
40232
|
-
queryParamKeys: [
|
|
40233
|
-
"start_date",
|
|
40234
|
-
"end_date",
|
|
40235
|
-
"aggregator_filter_id",
|
|
40236
|
-
"take",
|
|
40237
|
-
"skip"
|
|
40238
|
-
]
|
|
40417
|
+
queryParamKeys: []
|
|
40239
40418
|
});
|
|
40240
40419
|
});
|
|
40241
|
-
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", `
|
|
40242
40421
|
Examples:
|
|
40243
|
-
hyperline
|
|
40244
|
-
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) => {
|
|
40245
40424
|
const ctx = resource.parent?.opts()._ctx;
|
|
40246
40425
|
if (!ctx) {
|
|
40247
40426
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -40250,27 +40429,17 @@ Examples:
|
|
|
40250
40429
|
const args = {};
|
|
40251
40430
|
if (opts.id !== void 0)
|
|
40252
40431
|
args.id = opts.id;
|
|
40253
|
-
if (opts.
|
|
40254
|
-
args.
|
|
40255
|
-
if (opts.
|
|
40256
|
-
args.
|
|
40257
|
-
if (opts.
|
|
40258
|
-
args.
|
|
40259
|
-
if (opts.take !== void 0)
|
|
40260
|
-
args.take = Number(opts.take);
|
|
40261
|
-
if (opts.skip !== void 0)
|
|
40262
|
-
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);
|
|
40263
40438
|
await ctx.execute({
|
|
40264
|
-
method: "
|
|
40265
|
-
path: "/v1/
|
|
40439
|
+
method: "PUT",
|
|
40440
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40266
40441
|
args,
|
|
40267
|
-
queryParamKeys: [
|
|
40268
|
-
"start_date",
|
|
40269
|
-
"end_date",
|
|
40270
|
-
"aggregator_filter_id",
|
|
40271
|
-
"take",
|
|
40272
|
-
"skip"
|
|
40273
|
-
]
|
|
40442
|
+
queryParamKeys: []
|
|
40274
40443
|
});
|
|
40275
40444
|
});
|
|
40276
40445
|
}
|
|
@@ -40762,7 +40931,7 @@ Examples:
|
|
|
40762
40931
|
queryParamKeys: []
|
|
40763
40932
|
});
|
|
40764
40933
|
});
|
|
40765
|
-
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (text, 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. Null means no default value.`).addHelpText("after", `
|
|
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", `
|
|
40766
40935
|
Examples:
|
|
40767
40936
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities>
|
|
40768
40937
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
@@ -40796,7 +40965,7 @@ Examples:
|
|
|
40796
40965
|
queryParamKeys: []
|
|
40797
40966
|
});
|
|
40798
40967
|
});
|
|
40799
|
-
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. Null means no default value.`).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", `
|
|
40800
40969
|
Examples:
|
|
40801
40970
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities>
|
|
40802
40971
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
@@ -42027,6 +42196,54 @@ Examples:
|
|
|
42027
42196
|
queryParamKeys: []
|
|
42028
42197
|
});
|
|
42029
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\`.`).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
|
+
});
|
|
42030
42247
|
}
|
|
42031
42248
|
|
|
42032
42249
|
// build/commands/generated/customers-payment-methods.js
|
|
@@ -43465,7 +43682,7 @@ Examples:
|
|
|
43465
43682
|
queryParamKeys: []
|
|
43466
43683
|
});
|
|
43467
43684
|
});
|
|
43468
|
-
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", `
|
|
43469
43686
|
Examples:
|
|
43470
43687
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency>
|
|
43471
43688
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency> --is-default --trade-name <trade_name>
|
|
@@ -43548,6 +43765,8 @@ Examples:
|
|
|
43548
43765
|
args.credit_note_wallet_refund_enabled = true;
|
|
43549
43766
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43550
43767
|
args.standalone_credit_note_creation_enabled = true;
|
|
43768
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43769
|
+
args.fx_conversion_display_enabled = true;
|
|
43551
43770
|
await ctx.execute({
|
|
43552
43771
|
method: "POST",
|
|
43553
43772
|
path: "/v1/invoicing-entities",
|
|
@@ -43555,7 +43774,7 @@ Examples:
|
|
|
43555
43774
|
queryParamKeys: []
|
|
43556
43775
|
});
|
|
43557
43776
|
});
|
|
43558
|
-
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", `
|
|
43559
43778
|
Examples:
|
|
43560
43779
|
hyperline invoicing-entities update-invoicing-entity --id <id>
|
|
43561
43780
|
hyperline invoicing-entities update-invoicing-entity --id <id> --name <name> --registration-number <registration_number>
|
|
@@ -43630,6 +43849,8 @@ Examples:
|
|
|
43630
43849
|
args.credit_note_wallet_refund_enabled = true;
|
|
43631
43850
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43632
43851
|
args.standalone_credit_note_creation_enabled = true;
|
|
43852
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43853
|
+
args.fx_conversion_display_enabled = true;
|
|
43633
43854
|
await ctx.execute({
|
|
43634
43855
|
method: "PUT",
|
|
43635
43856
|
path: "/v1/invoicing-entities/{id}",
|
|
@@ -43649,16 +43870,78 @@ Examples:
|
|
|
43649
43870
|
const args = {};
|
|
43650
43871
|
if (opts.id !== void 0)
|
|
43651
43872
|
args.id = opts.id;
|
|
43652
|
-
if (!opts.yes) {
|
|
43653
|
-
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
43654
|
-
if (!confirmed) {
|
|
43655
|
-
process.stdout.write("Aborted.\n");
|
|
43656
|
-
return;
|
|
43657
|
-
}
|
|
43658
|
-
}
|
|
43873
|
+
if (!opts.yes) {
|
|
43874
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
43875
|
+
if (!confirmed) {
|
|
43876
|
+
process.stdout.write("Aborted.\n");
|
|
43877
|
+
return;
|
|
43878
|
+
}
|
|
43879
|
+
}
|
|
43880
|
+
await ctx.execute({
|
|
43881
|
+
method: "DELETE",
|
|
43882
|
+
path: "/v1/invoicing-entities/{id}",
|
|
43883
|
+
args,
|
|
43884
|
+
queryParamKeys: []
|
|
43885
|
+
});
|
|
43886
|
+
});
|
|
43887
|
+
}
|
|
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;
|
|
43659
43942
|
await ctx.execute({
|
|
43660
|
-
method: "
|
|
43661
|
-
path: "/v1/
|
|
43943
|
+
method: "GET",
|
|
43944
|
+
path: "/v1/agents/monitoring/analyses/{id}",
|
|
43662
43945
|
args,
|
|
43663
43946
|
queryParamKeys: []
|
|
43664
43947
|
});
|
|
@@ -43950,6 +44233,44 @@ Examples:
|
|
|
43950
44233
|
queryParamKeys: []
|
|
43951
44234
|
});
|
|
43952
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",
|
|
44270
|
+
args,
|
|
44271
|
+
queryParamKeys: []
|
|
44272
|
+
});
|
|
44273
|
+
});
|
|
43953
44274
|
resource.command("update-prices").description(`Update the prices of an existing price configuration by ID. Allows changing tier thresholds, unit prices, and flat fees.`).requiredOption("--id <value>", `id parameter`).option("--stdin", `Read JSON array input from stdin`).addHelpText("after", `
|
|
43954
44275
|
Examples:
|
|
43955
44276
|
hyperline price-configurations update-prices --id <id>
|
|
@@ -44148,7 +44469,7 @@ How the periodic credit allowance is granted for partial billing periods.
|
|
|
44148
44469
|
|
|
44149
44470
|
- \`prorated\` (default): the granted credits are prorated to the elapsed period.
|
|
44150
44471
|
- \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
|
|
44151
|
-
`).option("--credits-balance-auto-creation-enabled <value>", `Default for the \`credits_balance_auto_creation_enabled\` setting of subscription products using this credit product: whether the customer credit balance is created as soon as the product is added to a subscription. \`true\` when unset. A subscription product can override it.`).option("--
|
|
44472
|
+
`).option("--credits-balance-auto-creation-enabled <value>", `Default for the \`credits_balance_auto_creation_enabled\` setting of subscription products using this credit product: whether the customer credit balance is created as soon as the product is added to a subscription. \`true\` when unset. A subscription product can override it.`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <json>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
|
|
44152
44473
|
Examples:
|
|
44153
44474
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
44154
44475
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -44175,8 +44496,6 @@ Examples:
|
|
|
44175
44496
|
args.credits_grant_mode = opts.creditsGrantMode;
|
|
44176
44497
|
if (opts.creditsBalanceAutoCreationEnabled !== void 0)
|
|
44177
44498
|
args.credits_balance_auto_creation_enabled = opts.creditsBalanceAutoCreationEnabled;
|
|
44178
|
-
if (opts.portalTopUpAutoActivationEnabled !== void 0)
|
|
44179
|
-
args.portal_top_up_auto_activation_enabled = opts.portalTopUpAutoActivationEnabled;
|
|
44180
44499
|
if (opts.displayMode !== void 0)
|
|
44181
44500
|
args.display_mode = opts.displayMode;
|
|
44182
44501
|
if (opts.lowCreditsThreshold !== void 0)
|
|
@@ -44346,7 +44665,7 @@ Quote status.
|
|
|
44346
44665
|
- \`draft\`: The quote is a draft.
|
|
44347
44666
|
- \`approved\`: The quote is approved and ready to be sent to the customer.
|
|
44348
44667
|
- \`pending_signature\`: The quote is awaiting the customer's signature.
|
|
44349
|
-
`).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.
|
|
44350
44669
|
|
|
44351
44670
|
- \`all\`: Display all pricing tiers.
|
|
44352
44671
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -44638,7 +44957,7 @@ Examples:
|
|
|
44638
44957
|
queryParamKeys: []
|
|
44639
44958
|
});
|
|
44640
44959
|
});
|
|
44641
|
-
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.
|
|
44642
44961
|
|
|
44643
44962
|
- \`all\`: Display all pricing tiers.
|
|
44644
44963
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -44707,6 +45026,25 @@ Examples:
|
|
|
44707
45026
|
queryParamKeys: []
|
|
44708
45027
|
});
|
|
44709
45028
|
});
|
|
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", `
|
|
45030
|
+
Examples:
|
|
45031
|
+
hyperline quotes duplicate --id <id>
|
|
45032
|
+
hyperline quotes duplicate --id <id> --output json`).action(async (opts) => {
|
|
45033
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45034
|
+
if (!ctx) {
|
|
45035
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45036
|
+
process.exit(1);
|
|
45037
|
+
}
|
|
45038
|
+
const args = {};
|
|
45039
|
+
if (opts.id !== void 0)
|
|
45040
|
+
args.id = opts.id;
|
|
45041
|
+
await ctx.execute({
|
|
45042
|
+
method: "POST",
|
|
45043
|
+
path: "/v1/quotes/{id}/duplicate",
|
|
45044
|
+
args,
|
|
45045
|
+
queryParamKeys: []
|
|
45046
|
+
});
|
|
45047
|
+
});
|
|
44710
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", `
|
|
44711
45049
|
Examples:
|
|
44712
45050
|
hyperline quotes download --id <id>
|
|
@@ -44747,6 +45085,24 @@ Examples:
|
|
|
44747
45085
|
queryParamKeys: []
|
|
44748
45086
|
});
|
|
44749
45087
|
});
|
|
45088
|
+
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", `
|
|
45089
|
+
Examples:
|
|
45090
|
+
hyperline quotes get-quote-approvals --id <id>`).action(async (opts) => {
|
|
45091
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45092
|
+
if (!ctx) {
|
|
45093
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45094
|
+
process.exit(1);
|
|
45095
|
+
}
|
|
45096
|
+
const args = {};
|
|
45097
|
+
if (opts.id !== void 0)
|
|
45098
|
+
args.id = opts.id;
|
|
45099
|
+
await ctx.execute({
|
|
45100
|
+
method: "GET",
|
|
45101
|
+
path: "/v1/quotes/{id}/approvals",
|
|
45102
|
+
args,
|
|
45103
|
+
queryParamKeys: []
|
|
45104
|
+
});
|
|
45105
|
+
});
|
|
44750
45106
|
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", `
|
|
44751
45107
|
Examples:
|
|
44752
45108
|
hyperline quotes finalize --id <id>
|
|
@@ -44766,11 +45122,11 @@ Examples:
|
|
|
44766
45122
|
queryParamKeys: []
|
|
44767
45123
|
});
|
|
44768
45124
|
});
|
|
44769
|
-
resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).
|
|
45125
|
+
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", `
|
|
44770
45126
|
Examples:
|
|
44771
|
-
hyperline quotes send --id <id>
|
|
45127
|
+
hyperline quotes send --id <id>
|
|
44772
45128
|
hyperline quotes send --id <id> --email <email> --message <message>
|
|
44773
|
-
hyperline quotes send --id <id> --
|
|
45129
|
+
hyperline quotes send --id <id> --output json`).action(async (opts) => {
|
|
44774
45130
|
const ctx = resource.parent?.opts()._ctx;
|
|
44775
45131
|
if (!ctx) {
|
|
44776
45132
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44790,6 +45146,51 @@ Examples:
|
|
|
44790
45146
|
queryParamKeys: []
|
|
44791
45147
|
});
|
|
44792
45148
|
});
|
|
45149
|
+
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", `
|
|
45150
|
+
Examples:
|
|
45151
|
+
hyperline quotes list-quote-signers --id <id>`).action(async (opts) => {
|
|
45152
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45153
|
+
if (!ctx) {
|
|
45154
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45155
|
+
process.exit(1);
|
|
45156
|
+
}
|
|
45157
|
+
const args = {};
|
|
45158
|
+
if (opts.id !== void 0)
|
|
45159
|
+
args.id = opts.id;
|
|
45160
|
+
await ctx.execute({
|
|
45161
|
+
method: "GET",
|
|
45162
|
+
path: "/v1/quotes/{id}/signers",
|
|
45163
|
+
args,
|
|
45164
|
+
queryParamKeys: []
|
|
45165
|
+
});
|
|
45166
|
+
});
|
|
45167
|
+
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>", `
|
|
45168
|
+
Signature workflow of the quote, replaced as a whole.
|
|
45169
|
+
|
|
45170
|
+
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.
|
|
45171
|
+
|
|
45172
|
+
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.
|
|
45173
|
+
`).addHelpText("after", `
|
|
45174
|
+
Examples:
|
|
45175
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers>
|
|
45176
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers> --output json`).action(async (opts) => {
|
|
45177
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45178
|
+
if (!ctx) {
|
|
45179
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45180
|
+
process.exit(1);
|
|
45181
|
+
}
|
|
45182
|
+
const args = {};
|
|
45183
|
+
if (opts.id !== void 0)
|
|
45184
|
+
args.id = opts.id;
|
|
45185
|
+
if (opts.signers !== void 0)
|
|
45186
|
+
args.signers = JSON.parse(opts.signers);
|
|
45187
|
+
await ctx.execute({
|
|
45188
|
+
method: "PUT",
|
|
45189
|
+
path: "/v1/quotes/{id}/signers",
|
|
45190
|
+
args,
|
|
45191
|
+
queryParamKeys: []
|
|
45192
|
+
});
|
|
45193
|
+
});
|
|
44793
45194
|
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", `
|
|
44794
45195
|
Examples:
|
|
44795
45196
|
hyperline quotes sign --id <id>
|
|
@@ -45072,7 +45473,7 @@ Examples:
|
|
|
45072
45473
|
queryParamKeys: []
|
|
45073
45474
|
});
|
|
45074
45475
|
});
|
|
45075
|
-
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", `
|
|
45476
|
+
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", `
|
|
45076
45477
|
Examples:
|
|
45077
45478
|
hyperline subscriptions cancel --id <id>
|
|
45078
45479
|
hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
|
|
@@ -45100,9 +45501,10 @@ Examples:
|
|
|
45100
45501
|
queryParamKeys: []
|
|
45101
45502
|
});
|
|
45102
45503
|
});
|
|
45103
|
-
resource.command("reinstate").description(`Reinstate a subscription
|
|
45504
|
+
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", `
|
|
45104
45505
|
Examples:
|
|
45105
45506
|
hyperline subscriptions reinstate --id <id>
|
|
45507
|
+
hyperline subscriptions reinstate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45106
45508
|
hyperline subscriptions reinstate --id <id> --output json`).action(async (opts) => {
|
|
45107
45509
|
const ctx = resource.parent?.opts()._ctx;
|
|
45108
45510
|
if (!ctx) {
|
|
@@ -45112,6 +45514,12 @@ Examples:
|
|
|
45112
45514
|
const args = {};
|
|
45113
45515
|
if (opts.id !== void 0)
|
|
45114
45516
|
args.id = opts.id;
|
|
45517
|
+
if (opts.reactivateAt !== void 0)
|
|
45518
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45519
|
+
if (opts.invoicingMode !== void 0)
|
|
45520
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45521
|
+
if (opts.chargeLineItems !== void 0)
|
|
45522
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45115
45523
|
await ctx.execute({
|
|
45116
45524
|
method: "POST",
|
|
45117
45525
|
path: "/v1/subscriptions/{id}/reinstate",
|
|
@@ -45119,7 +45527,7 @@ Examples:
|
|
|
45119
45527
|
queryParamKeys: []
|
|
45120
45528
|
});
|
|
45121
45529
|
});
|
|
45122
|
-
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.
|
|
45530
|
+
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", `
|
|
45123
45531
|
Examples:
|
|
45124
45532
|
hyperline subscriptions pause --id <id>
|
|
45125
45533
|
hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
|
|
@@ -45160,9 +45568,10 @@ Examples:
|
|
|
45160
45568
|
queryParamKeys: []
|
|
45161
45569
|
});
|
|
45162
45570
|
});
|
|
45163
|
-
resource.command("reactivate").description(`Resume a paused subscription,
|
|
45571
|
+
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", `
|
|
45164
45572
|
Examples:
|
|
45165
45573
|
hyperline subscriptions reactivate --id <id>
|
|
45574
|
+
hyperline subscriptions reactivate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45166
45575
|
hyperline subscriptions reactivate --id <id> --output json`).action(async (opts) => {
|
|
45167
45576
|
const ctx = resource.parent?.opts()._ctx;
|
|
45168
45577
|
if (!ctx) {
|
|
@@ -45172,6 +45581,12 @@ Examples:
|
|
|
45172
45581
|
const args = {};
|
|
45173
45582
|
if (opts.id !== void 0)
|
|
45174
45583
|
args.id = opts.id;
|
|
45584
|
+
if (opts.reactivateAt !== void 0)
|
|
45585
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45586
|
+
if (opts.invoicingMode !== void 0)
|
|
45587
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45588
|
+
if (opts.chargeLineItems !== void 0)
|
|
45589
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45175
45590
|
await ctx.execute({
|
|
45176
45591
|
method: "POST",
|
|
45177
45592
|
path: "/v1/subscriptions/{id}/reactivate",
|
|
@@ -46755,10 +47170,11 @@ function registerAllCommands(program2) {
|
|
|
46755
47170
|
registerAccounting_ReportsCommands(program2);
|
|
46756
47171
|
registerAccounting_Revenue_RecognitionCommands(program2);
|
|
46757
47172
|
registerAccounting_RulesCommands(program2);
|
|
46758
|
-
registerAgentsCommands(program2);
|
|
46759
47173
|
registerCustom_PropertiesCommands(program2);
|
|
46760
47174
|
registerAggregatorsCommands(program2);
|
|
46761
47175
|
registerAggregators_UsageCommands(program2);
|
|
47176
|
+
registerAi_BillingCommands(program2);
|
|
47177
|
+
registerAi_CostsCommands(program2);
|
|
46762
47178
|
registerAnalyticsCommands(program2);
|
|
46763
47179
|
registerBank_AccountsCommands(program2);
|
|
46764
47180
|
registerCompaniesCommands(program2);
|
|
@@ -46777,6 +47193,7 @@ function registerAllCommands(program2) {
|
|
|
46777
47193
|
registerInvoicesCommands(program2);
|
|
46778
47194
|
registerInvoices_TransactionsCommands(program2);
|
|
46779
47195
|
registerInvoicing_EntitiesCommands(program2);
|
|
47196
|
+
registerMonitoringCommands(program2);
|
|
46780
47197
|
registerPaymentsCommands(program2);
|
|
46781
47198
|
registerProductsCommands(program2);
|
|
46782
47199
|
registerPrice_ConfigurationsCommands(program2);
|
|
@@ -62792,17 +63209,17 @@ var languages = [
|
|
|
62792
63209
|
|
|
62793
63210
|
// ../hyperline-i18n/build/locales/de.js
|
|
62794
63211
|
var de = {
|
|
62795
|
-
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
62796
|
-
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62797
|
-
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62798
63212
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62799
|
-
"accounting.
|
|
63213
|
+
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
63214
|
+
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62800
63215
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62801
63216
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62802
63217
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62803
|
-
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62804
63218
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62805
63219
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
63220
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
63221
|
+
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
63222
|
+
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62806
63223
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
62807
63224
|
"credits.bundleOf": "{{productName}} - Paket mit {{creditCount}} Guthaben",
|
|
62808
63225
|
"credits.unitsOf": "{{productName}} - {{creditCount}} Guthaben",
|
|
@@ -62816,9 +63233,9 @@ var de = {
|
|
|
62816
63233
|
"invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
|
|
62817
63234
|
"invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
|
|
62818
63235
|
"invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
|
|
62819
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben",
|
|
62820
63236
|
"subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
|
|
62821
63237
|
"subscriptions.correction": "Vorperiodische Anpassung",
|
|
63238
|
+
"subscriptions.reinstatementRechargeName": "Wiederherstellungsgeb\xFChr f\xFCr den stornierten Zeitraum",
|
|
62822
63239
|
"subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
|
|
62823
63240
|
"subscriptions.updates.addProduct": "{{productName}} hinzuf\xFCgen",
|
|
62824
63241
|
"subscriptions.updates.removeCoupon": "Gutschein entfernen {{couponName}}",
|
|
@@ -62833,7 +63250,8 @@ var de = {
|
|
|
62833
63250
|
"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",
|
|
62834
63251
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
|
|
62835
63252
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62836
|
-
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren"
|
|
63253
|
+
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren",
|
|
63254
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben"
|
|
62837
63255
|
};
|
|
62838
63256
|
|
|
62839
63257
|
// ../hyperline-i18n/build/locales/en.js
|
|
@@ -62850,6 +63268,7 @@ var en = {
|
|
|
62850
63268
|
"invoices.prorata.refundForItemFullPeriod": "Refund for",
|
|
62851
63269
|
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 expired balance",
|
|
62852
63270
|
"subscriptions.closingChargeName": "Closing fee for subscription",
|
|
63271
|
+
"subscriptions.reinstatementRechargeName": "Reinstatement recharge of canceled period",
|
|
62853
63272
|
"subscriptions.correction": "Adjustment previous period",
|
|
62854
63273
|
"subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
|
|
62855
63274
|
"subscriptions.updates.addProduct": "Add {{productName}}",
|
|
@@ -62884,17 +63303,17 @@ var en = {
|
|
|
62884
63303
|
|
|
62885
63304
|
// ../hyperline-i18n/build/locales/es.js
|
|
62886
63305
|
var es = {
|
|
62887
|
-
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
62888
|
-
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62889
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62890
63306
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62891
|
-
"accounting.
|
|
63307
|
+
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
63308
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62892
63309
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62893
63310
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62894
63311
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62895
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62896
63312
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62897
63313
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63314
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63315
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
63316
|
+
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62898
63317
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
62899
63318
|
"credits.bundleOf": "{{productName}} - Paquete de {{creditCount}} cr\xE9ditos",
|
|
62900
63319
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -62908,9 +63327,9 @@ var es = {
|
|
|
62908
63327
|
"invoices.prorata.paymentForItemFullPeriod": "Pago por",
|
|
62909
63328
|
"invoices.prorata.refundForItem": "Reembolso prorrateado por",
|
|
62910
63329
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
62911
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado",
|
|
62912
63330
|
"subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
|
|
62913
63331
|
"subscriptions.correction": "Ajuste del periodo anterior",
|
|
63332
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reinstalaci\xF3n del per\xEDodo cancelado",
|
|
62914
63333
|
"subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
|
|
62915
63334
|
"subscriptions.updates.addProduct": "A\xF1adir {{productName}}",
|
|
62916
63335
|
"subscriptions.updates.removeCoupon": "Eliminar cup\xF3n {{couponName}}",
|
|
@@ -62925,22 +63344,23 @@ var es = {
|
|
|
62925
63344
|
"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",
|
|
62926
63345
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
|
|
62927
63346
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
|
|
62928
|
-
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}"
|
|
63347
|
+
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}",
|
|
63348
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado"
|
|
62929
63349
|
};
|
|
62930
63350
|
|
|
62931
63351
|
// ../hyperline-i18n/build/locales/fr.js
|
|
62932
63352
|
var fr = {
|
|
63353
|
+
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
63354
|
+
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
63355
|
+
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62933
63356
|
"accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62934
63357
|
"accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62935
63358
|
"accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62936
|
-
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62937
63359
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62938
|
-
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
62939
|
-
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62940
|
-
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62941
|
-
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62942
|
-
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62943
63360
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
63361
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
63362
|
+
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
63363
|
+
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62944
63364
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62945
63365
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
62946
63366
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9dits",
|
|
@@ -62954,9 +63374,9 @@ var fr = {
|
|
|
62954
63374
|
"invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
|
|
62955
63375
|
"invoices.prorata.refundForItem": "Remboursement au prorata pour",
|
|
62956
63376
|
"invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
|
|
62957
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9",
|
|
62958
63377
|
"subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
|
|
62959
63378
|
"subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
|
|
63379
|
+
"subscriptions.reinstatementRechargeName": "Recharge de r\xE9tablissement de la p\xE9riode annul\xE9e",
|
|
62960
63380
|
"subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
|
|
62961
63381
|
"subscriptions.updates.addProduct": "Ajout {{productName}}",
|
|
62962
63382
|
"subscriptions.updates.removeCoupon": "Retrait du coupon {{couponName}}",
|
|
@@ -62971,22 +63391,23 @@ var fr = {
|
|
|
62971
63391
|
"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",
|
|
62972
63392
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
|
|
62973
63393
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62974
|
-
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}"
|
|
63394
|
+
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}",
|
|
63395
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9"
|
|
62975
63396
|
};
|
|
62976
63397
|
|
|
62977
63398
|
// ../hyperline-i18n/build/locales/it.js
|
|
62978
63399
|
var it = {
|
|
62979
|
-
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
62980
|
-
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62981
|
-
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
62982
63400
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
62983
|
-
"accounting.
|
|
63401
|
+
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
63402
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62984
63403
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62985
63404
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62986
63405
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62987
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62988
63406
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62989
63407
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
63408
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
63409
|
+
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63410
|
+
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62990
63411
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
62991
63412
|
"credits.bundleOf": "{{productName}} - Pacchetto di {{creditCount}} crediti",
|
|
62992
63413
|
"credits.unitsOf": "{{productName}} - {{creditCount}} crediti",
|
|
@@ -63000,9 +63421,9 @@ var it = {
|
|
|
63000
63421
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
|
|
63001
63422
|
"invoices.prorata.refundForItem": "Rimborso proporzionale per",
|
|
63002
63423
|
"invoices.prorata.refundForItemFullPeriod": "Rimborso per",
|
|
63003
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto",
|
|
63004
63424
|
"subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
|
|
63005
63425
|
"subscriptions.correction": "Correzione periodo precedente",
|
|
63426
|
+
"subscriptions.reinstatementRechargeName": "Ricarica di reintegrazione del periodo annullato",
|
|
63006
63427
|
"subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
|
|
63007
63428
|
"subscriptions.updates.addProduct": "Aggiungi {{productName}}",
|
|
63008
63429
|
"subscriptions.updates.removeCoupon": "Rimuovi coupon {{couponName}}",
|
|
@@ -63017,14 +63438,29 @@ var it = {
|
|
|
63017
63438
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per il periodo proporzionato",
|
|
63018
63439
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
|
|
63019
63440
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
|
|
63020
|
-
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}"
|
|
63441
|
+
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}",
|
|
63442
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto"
|
|
63021
63443
|
};
|
|
63022
63444
|
|
|
63023
63445
|
// ../hyperline-i18n/build/locales/lt.js
|
|
63024
63446
|
var lt = {
|
|
63447
|
+
"accounting.creditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}} s\u0105skaitai fakt\u016Brai {{invoiceId}}",
|
|
63448
|
+
"accounting.invoicePosted.entryDescription": "I\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros {{invoiceId}} registravimo \u012Fra\u0161as",
|
|
63449
|
+
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63450
|
+
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63451
|
+
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63452
|
+
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63453
|
+
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63454
|
+
"accounting.revrec.entryDescription": "Pajam\u0173 pripa\u017Einimas pagal grafik\u0105 {{scheduleId}}, laikotarpis {{periodStart}}\u2013{{periodEnd}}",
|
|
63455
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}}",
|
|
63456
|
+
"accounting.transactionRefunded.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} gr\u0105\u017Einimas",
|
|
63457
|
+
"accounting.transactionSettled.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} mok\u0117jimo sudengimas",
|
|
63025
63458
|
"creditNotes.refundChargeName": "S\u0105skaitos fakt\u016Bros gr\u0105\u017Einimas",
|
|
63026
63459
|
"credits.bundleOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173 paketas",
|
|
63027
63460
|
"credits.unitsOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173",
|
|
63461
|
+
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s",
|
|
63462
|
+
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63463
|
+
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63028
63464
|
"invoices.outstandingProduct.description": "Neapmok\u0117ta {{date}} i\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma",
|
|
63029
63465
|
"invoices.outstandingProduct.descriptionPeriod": "Neapmok\u0117ta s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma u\u017E laikotarp\u012F nuo {{periodStart}} iki {{periodEnd}}",
|
|
63030
63466
|
"invoices.outstandingProduct.name": "Neapmok\u0117tas likutis",
|
|
@@ -63032,53 +63468,40 @@ var lt = {
|
|
|
63032
63468
|
"invoices.prorata.paymentForItemFullPeriod": "Mok\u0117jimas u\u017E",
|
|
63033
63469
|
"invoices.prorata.refundForItem": "Proporcingas gr\u0105\u017Einimas u\u017E",
|
|
63034
63470
|
"invoices.prorata.refundForItemFullPeriod": "Gr\u0105\u017Einimas u\u017E",
|
|
63035
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis",
|
|
63036
63471
|
"subscriptions.closingChargeName": "Prenumeratos u\u017Ebaigimo mokestis",
|
|
63037
63472
|
"subscriptions.correction": "Ankstesnio laikotarpio koregavimas",
|
|
63473
|
+
"subscriptions.reinstatementRechargeName": "Atnaujinimo \u012Fmokos u\u017E nutraukt\u0105 laikotarp\u012F",
|
|
63038
63474
|
"subscriptions.updates.addCoupon": "Prid\u0117ti kupon\u0105 {{couponName}}",
|
|
63039
63475
|
"subscriptions.updates.addProduct": "Prid\u0117ti {{productName}}",
|
|
63040
63476
|
"subscriptions.updates.removeCoupon": "Pa\u0161alinti kupon\u0105 {{couponName}}",
|
|
63041
63477
|
"subscriptions.updates.removeProduct": "Pa\u0161alinti {{productName}}",
|
|
63042
63478
|
"subscriptions.updates.unit": "vnt.",
|
|
63043
|
-
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63044
63479
|
"subscriptions.updates.updateCount": "Atnaujinti {{productName}} kiek\u012F ({{previousCount}} \u2192 {{newCount}} {{unit}})",
|
|
63045
|
-
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63046
|
-
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63047
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63048
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63049
63480
|
"subscriptions.updates.updateCount.description.full.committed.invoiced": "Visam laikotarpiui pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63050
63481
|
"subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63051
63482
|
"subscriptions.updates.updateCount.description.full.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 visam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63052
63483
|
"subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63053
|
-
"
|
|
63054
|
-
"
|
|
63055
|
-
"
|
|
63056
|
-
"
|
|
63057
|
-
"
|
|
63058
|
-
"
|
|
63059
|
-
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63060
|
-
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63061
|
-
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63062
|
-
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63063
|
-
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63064
|
-
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63065
|
-
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63066
|
-
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s"
|
|
63484
|
+
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63485
|
+
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63486
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63487
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63488
|
+
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63489
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis"
|
|
63067
63490
|
};
|
|
63068
63491
|
|
|
63069
63492
|
// ../hyperline-i18n/build/locales/nl.js
|
|
63070
63493
|
var nl = {
|
|
63071
|
-
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63072
|
-
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63073
|
-
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63074
63494
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
63075
|
-
"accounting.
|
|
63495
|
+
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63496
|
+
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63076
63497
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63077
63498
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63078
63499
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63079
|
-
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63080
63500
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63081
63501
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
63502
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
63503
|
+
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63504
|
+
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63082
63505
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
63083
63506
|
"credits.bundleOf": "{{productName}} - Bundel van {{creditCount}} credits",
|
|
63084
63507
|
"credits.unitsOf": "{{productName}} - {{creditCount}} credits",
|
|
@@ -63092,9 +63515,9 @@ var nl = {
|
|
|
63092
63515
|
"invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
|
|
63093
63516
|
"invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
|
|
63094
63517
|
"invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
|
|
63095
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo",
|
|
63096
63518
|
"subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
|
|
63097
63519
|
"subscriptions.correction": "Aanpassing vorige periode",
|
|
63520
|
+
"subscriptions.reinstatementRechargeName": "Herstelkosten van geannuleerde periode",
|
|
63098
63521
|
"subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
|
|
63099
63522
|
"subscriptions.updates.addProduct": "{{productName}} toevoegen",
|
|
63100
63523
|
"subscriptions.updates.removeCoupon": "Coupon verwijderen {{couponName}}",
|
|
@@ -63109,22 +63532,23 @@ var nl = {
|
|
|
63109
63532
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de geproportioneerde periode",
|
|
63110
63533
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
|
|
63111
63534
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
|
|
63112
|
-
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}"
|
|
63535
|
+
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}",
|
|
63536
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo"
|
|
63113
63537
|
};
|
|
63114
63538
|
|
|
63115
63539
|
// ../hyperline-i18n/build/locales/pl.js
|
|
63116
63540
|
var pl = {
|
|
63117
|
-
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63118
|
-
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63119
|
-
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63120
63541
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
63121
|
-
"accounting.
|
|
63542
|
+
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63543
|
+
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63122
63544
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63123
63545
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63124
63546
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63125
|
-
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63126
63547
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63127
63548
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
63549
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
63550
|
+
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63551
|
+
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63128
63552
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
63129
63553
|
"credits.bundleOf": "{{productName}} - Pakiet {{creditCount}} kredyt\xF3w",
|
|
63130
63554
|
"credits.unitsOf": "{{productName}} - {{creditCount}} kredyt\xF3w",
|
|
@@ -63138,9 +63562,9 @@ var pl = {
|
|
|
63138
63562
|
"invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
|
|
63139
63563
|
"invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
|
|
63140
63564
|
"invoices.prorata.refundForItemFullPeriod": "Zwrot za",
|
|
63141
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo",
|
|
63142
63565
|
"subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
|
|
63143
63566
|
"subscriptions.correction": "Korekta poprzedniego okresu",
|
|
63567
|
+
"subscriptions.reinstatementRechargeName": "Op\u0142ata za przywr\xF3cenie anulowanego okresu",
|
|
63144
63568
|
"subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
|
|
63145
63569
|
"subscriptions.updates.addProduct": "Dodaj {{productName}}",
|
|
63146
63570
|
"subscriptions.updates.removeCoupon": "Usu\u0144 kupon {{couponName}}",
|
|
@@ -63155,22 +63579,23 @@ var pl = {
|
|
|
63155
63579
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za okres proporcjonalny",
|
|
63156
63580
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
|
|
63157
63581
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
|
|
63158
|
-
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}"
|
|
63582
|
+
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}",
|
|
63583
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo"
|
|
63159
63584
|
};
|
|
63160
63585
|
|
|
63161
63586
|
// ../hyperline-i18n/build/locales/pt.js
|
|
63162
63587
|
var pt = {
|
|
63163
|
-
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63164
|
-
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63165
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63166
63588
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
63167
|
-
"accounting.
|
|
63589
|
+
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63590
|
+
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63168
63591
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63169
63592
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63170
63593
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63171
|
-
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63172
63594
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63173
63595
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63596
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63597
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63598
|
+
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63174
63599
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
63175
63600
|
"credits.bundleOf": "{{productName}} - Pacote de {{creditCount}} cr\xE9ditos",
|
|
63176
63601
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -63184,9 +63609,9 @@ var pt = {
|
|
|
63184
63609
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
|
|
63185
63610
|
"invoices.prorata.refundForItem": "Reembolso proporcional por",
|
|
63186
63611
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
63187
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado",
|
|
63188
63612
|
"subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
|
|
63189
63613
|
"subscriptions.correction": "Ajuste do per\xEDodo anterior",
|
|
63614
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reintegra\xE7\xE3o do per\xEDodo cancelado",
|
|
63190
63615
|
"subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
|
|
63191
63616
|
"subscriptions.updates.addProduct": "Adicionar {{productName}}",
|
|
63192
63617
|
"subscriptions.updates.removeCoupon": "Remover cupom {{couponName}}",
|
|
@@ -63201,7 +63626,8 @@ var pt = {
|
|
|
63201
63626
|
"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",
|
|
63202
63627
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
|
|
63203
63628
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
|
|
63204
|
-
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}"
|
|
63629
|
+
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}",
|
|
63630
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado"
|
|
63205
63631
|
};
|
|
63206
63632
|
|
|
63207
63633
|
// ../hyperline-i18n/build/language.js
|
|
@@ -65980,6 +66406,150 @@ var isAxiosError = axios.isAxiosError;
|
|
|
65980
66406
|
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65981
66407
|
import axios2 from "axios";
|
|
65982
66408
|
import axiosRetry, { isNetworkOrIdempotentRequestError, retryAfter } from "axios-retry";
|
|
66409
|
+
|
|
66410
|
+
// ../hyperline-lib/build/httpClient/logRedaction.js
|
|
66411
|
+
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
66412
|
+
"accesstoken",
|
|
66413
|
+
"apikey",
|
|
66414
|
+
"apitoken",
|
|
66415
|
+
"assertion",
|
|
66416
|
+
"authtoken",
|
|
66417
|
+
"clientassertion",
|
|
66418
|
+
"codeverifier",
|
|
66419
|
+
"credentials",
|
|
66420
|
+
"idtoken",
|
|
66421
|
+
"privatekey",
|
|
66422
|
+
"refreshtoken",
|
|
66423
|
+
"sessiontoken",
|
|
66424
|
+
"token"
|
|
66425
|
+
]);
|
|
66426
|
+
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password)$/;
|
|
66427
|
+
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|password|assertion|verifier|credentials/i;
|
|
66428
|
+
var REDACTED_VALUE = "<redacted>";
|
|
66429
|
+
var MAX_REDACTION_DEPTH = 10;
|
|
66430
|
+
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
66431
|
+
var MAX_VISITED_NODES = 1e3;
|
|
66432
|
+
var MAX_CONTAINER_ENTRIES = MAX_VISITED_NODES;
|
|
66433
|
+
function redactLogBody({ body }) {
|
|
66434
|
+
return redactValue({
|
|
66435
|
+
value: body,
|
|
66436
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66437
|
+
budget: { remainingNodes: MAX_VISITED_NODES }
|
|
66438
|
+
});
|
|
66439
|
+
}
|
|
66440
|
+
function redactLogUrl({ url: url2 }) {
|
|
66441
|
+
const queryIndex = url2.indexOf("?");
|
|
66442
|
+
if (queryIndex === -1 || url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
66443
|
+
return url2;
|
|
66444
|
+
}
|
|
66445
|
+
const redactedQuery = redactFormEncoded({ text: url2.slice(queryIndex + 1) });
|
|
66446
|
+
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
66447
|
+
}
|
|
66448
|
+
function redactValue({ value, depth, budget }) {
|
|
66449
|
+
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
66450
|
+
return value;
|
|
66451
|
+
}
|
|
66452
|
+
budget.remainingNodes -= 1;
|
|
66453
|
+
if (typeof value === "string") {
|
|
66454
|
+
return redactString({ text: value, budget });
|
|
66455
|
+
}
|
|
66456
|
+
if (value instanceof URLSearchParams) {
|
|
66457
|
+
return redactFormEncoded({ text: value.toString() }) ?? value;
|
|
66458
|
+
}
|
|
66459
|
+
if (Array.isArray(value)) {
|
|
66460
|
+
return redactArray({ items: value, depth, budget });
|
|
66461
|
+
}
|
|
66462
|
+
if (isPlainObject2(value)) {
|
|
66463
|
+
return redactObject({ record: value, depth, budget });
|
|
66464
|
+
}
|
|
66465
|
+
return value;
|
|
66466
|
+
}
|
|
66467
|
+
function redactArray({ items, depth, budget }) {
|
|
66468
|
+
if (items.length > MAX_CONTAINER_ENTRIES) {
|
|
66469
|
+
return items;
|
|
66470
|
+
}
|
|
66471
|
+
let redactedItems;
|
|
66472
|
+
for (const [index, item] of items.entries()) {
|
|
66473
|
+
if (budget.remainingNodes <= 0) {
|
|
66474
|
+
break;
|
|
66475
|
+
}
|
|
66476
|
+
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
66477
|
+
if (redactedItem !== item) {
|
|
66478
|
+
redactedItems ??= [...items];
|
|
66479
|
+
redactedItems[index] = redactedItem;
|
|
66480
|
+
}
|
|
66481
|
+
}
|
|
66482
|
+
return redactedItems ?? items;
|
|
66483
|
+
}
|
|
66484
|
+
function redactObject({ record: record2, depth, budget }) {
|
|
66485
|
+
const redactedEntries = /* @__PURE__ */ new Map();
|
|
66486
|
+
let entryCount = 0;
|
|
66487
|
+
for (const key in record2) {
|
|
66488
|
+
if (!Object.hasOwn(record2, key)) {
|
|
66489
|
+
continue;
|
|
66490
|
+
}
|
|
66491
|
+
entryCount += 1;
|
|
66492
|
+
if (entryCount > MAX_CONTAINER_ENTRIES) {
|
|
66493
|
+
return record2;
|
|
66494
|
+
}
|
|
66495
|
+
if (budget.remainingNodes <= 0) {
|
|
66496
|
+
break;
|
|
66497
|
+
}
|
|
66498
|
+
const nestedValue = record2[key];
|
|
66499
|
+
const redactedNestedValue = isRedactedKey({ key }) && nestedValue != null ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
66500
|
+
if (redactedNestedValue !== nestedValue) {
|
|
66501
|
+
redactedEntries.set(key, redactedNestedValue);
|
|
66502
|
+
}
|
|
66503
|
+
}
|
|
66504
|
+
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
66505
|
+
}
|
|
66506
|
+
function redactString({ text, budget }) {
|
|
66507
|
+
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
66508
|
+
return text;
|
|
66509
|
+
}
|
|
66510
|
+
const trimmedText = text.trim();
|
|
66511
|
+
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
66512
|
+
try {
|
|
66513
|
+
const parsedValue = JSON.parse(trimmedText);
|
|
66514
|
+
const redactedValue = redactValue({
|
|
66515
|
+
value: parsedValue,
|
|
66516
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66517
|
+
budget
|
|
66518
|
+
});
|
|
66519
|
+
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
66520
|
+
} catch {
|
|
66521
|
+
return text;
|
|
66522
|
+
}
|
|
66523
|
+
}
|
|
66524
|
+
return redactFormEncoded({ text }) ?? text;
|
|
66525
|
+
}
|
|
66526
|
+
function redactFormEncoded({ text }) {
|
|
66527
|
+
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
66528
|
+
return void 0;
|
|
66529
|
+
}
|
|
66530
|
+
const params = new URLSearchParams(text);
|
|
66531
|
+
let hasRedactedParam = false;
|
|
66532
|
+
for (const key of new Set(params.keys())) {
|
|
66533
|
+
if (isRedactedKey({ key })) {
|
|
66534
|
+
params.set(key, REDACTED_VALUE);
|
|
66535
|
+
hasRedactedParam = true;
|
|
66536
|
+
}
|
|
66537
|
+
}
|
|
66538
|
+
return hasRedactedParam ? params.toString() : void 0;
|
|
66539
|
+
}
|
|
66540
|
+
function isRedactedKey({ key }) {
|
|
66541
|
+
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
66542
|
+
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
66543
|
+
}
|
|
66544
|
+
function isPlainObject2(value) {
|
|
66545
|
+
if (typeof value !== "object" || value === null) {
|
|
66546
|
+
return false;
|
|
66547
|
+
}
|
|
66548
|
+
const prototype = Object.getPrototypeOf(value);
|
|
66549
|
+
return prototype === Object.prototype || prototype === null;
|
|
66550
|
+
}
|
|
66551
|
+
|
|
66552
|
+
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65983
66553
|
import { AxiosError } from "axios";
|
|
65984
66554
|
var recommendedRetryConfig = {
|
|
65985
66555
|
retries: 3,
|
|
@@ -66047,13 +66617,14 @@ function isTooManyRequestsError(error48) {
|
|
|
66047
66617
|
return error48.response?.status === 429;
|
|
66048
66618
|
}
|
|
66049
66619
|
var toLogRequest = (config4) => {
|
|
66620
|
+
const url2 = redactLogUrl({ url: config4.url ?? "" });
|
|
66050
66621
|
return {
|
|
66051
66622
|
method: config4.method ?? "",
|
|
66052
|
-
url:
|
|
66053
|
-
path:
|
|
66623
|
+
url: url2,
|
|
66624
|
+
path: url2,
|
|
66054
66625
|
hostname: config4.baseURL ?? "",
|
|
66055
|
-
originalUrl: `${config4.baseURL ?? ""}${
|
|
66056
|
-
body: config4.data,
|
|
66626
|
+
originalUrl: `${config4.baseURL ?? ""}${url2}`,
|
|
66627
|
+
body: redactLogBody({ body: config4.data }),
|
|
66057
66628
|
headers: {}
|
|
66058
66629
|
};
|
|
66059
66630
|
};
|