@hyperline/cli 0.1.0-build.1.69cf4fd → 0.1.0-build.1.69d7fa9

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.
@@ -34985,10 +34985,10 @@ var require_shared = __commonJS({
34985
34985
  ZodId: () => ZodId,
34986
34986
  ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
34987
34987
  });
34988
- var import_zod23 = require_lib();
34988
+ var import_zod24 = require_lib();
34989
34989
  var countryIds2 = ["all", ...countries.map(({ id }) => id)];
34990
- var ZodId = import_zod23.z.enum(countryIds2);
34991
- var ZodTranslationsSchemaFn = (schema) => import_zod23.z.record(import_zod23.z.string(), schema.optional());
34990
+ var ZodId = import_zod24.z.enum(countryIds2);
34991
+ var ZodTranslationsSchemaFn = (schema) => import_zod24.z.record(import_zod24.z.string(), schema.optional());
34992
34992
  var UsStates = [
34993
34993
  { id: "AA", name: "Armed Forces Americas" },
34994
34994
  { id: "AE", name: "Armed Forces Europe" },
@@ -36287,14 +36287,14 @@ var require_shared = __commonJS({
36287
36287
  ZodNumberCurrencyPositiveValue: () => ZodNumberCurrencyPositiveValue,
36288
36288
  ZodNumberCurrencyPositiveValueExcludingZero: () => ZodNumberCurrencyPositiveValueExcludingZero
36289
36289
  });
36290
- var import_zod24 = require_lib();
36291
- var ZodCurrencyId = import_zod24.z.enum(
36290
+ var import_zod25 = require_lib();
36291
+ var ZodCurrencyId = import_zod25.z.enum(
36292
36292
  all_default.map(({ id }) => id)
36293
36293
  );
36294
- var ZodNumberCurrency = import_zod24.z.string().or(import_zod24.z.number().transform((number4) => number4)).transform((number4) => number4);
36295
- var ZodNumberCurrencyPositiveValue = import_zod24.z.number().min(0).transform((number4) => number4).transform((number4) => number4);
36296
- var ZodNumberCurrencyPositiveValueExcludingZero = import_zod24.z.number().gt(0).transform((number4) => number4).transform((number4) => number4);
36297
- var ZodCurrencyMap = import_zod24.z.record(ZodNumberCurrency).refine(
36294
+ var ZodNumberCurrency = import_zod25.z.string().or(import_zod25.z.number().transform((number4) => number4)).transform((number4) => number4);
36295
+ var ZodNumberCurrencyPositiveValue = import_zod25.z.number().min(0).transform((number4) => number4).transform((number4) => number4);
36296
+ var ZodNumberCurrencyPositiveValueExcludingZero = import_zod25.z.number().gt(0).transform((number4) => number4).transform((number4) => number4);
36297
+ var ZodCurrencyMap = import_zod25.z.record(ZodNumberCurrency).refine(
36298
36298
  (data) => Object.keys(data).every((key) => ZodCurrencyId.safeParse(key).success),
36299
36299
  {
36300
36300
  message: "Invalid currency key.",
@@ -38165,7 +38165,7 @@ Examples:
38165
38165
  // build/commands/generated/accounting-journal-entries.js
38166
38166
  function registerAccounting_Journal_EntriesCommands(parent) {
38167
38167
  const resource = parent.command("accounting-journal-entries").description("Manage accounting > journal entries");
38168
- resource.command("list-journal-entries").description(`List accounting journal entries with optional filters.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--entry-number <value>", `Filter by journal entry number.`).option("--status <value>", `Filter by journal entry status.`).option("--origin <value>", `Filter by automatic or manual origin.`).option("--ledger-id <value>", `Filter by ledger identifier.`).option("--invoicing-entity-id <value>", `Filter by invoicing entity identifier.`).option("--invoice-id <value>", `Filter by invoice identifier.`).option("--customer-id <value>", `Filter by customer identifier.`).option("--subscription-id <value>", `Filter by subscription identifier.`).option("--transaction-id <value>", `Filter by transaction identifier.`).option("--ledger-account-id <value>", `Filter entries containing a ledger account.`).option("--rule-id <value>", `Filter entries containing an accounting rule.`).option("--search <value>", `Search entry number, description, customer, or invoice.`).option("--year <number>", `Filter by entry year.`).option("--quarter <number>", `Filter by entry quarter.`).addHelpText("after", `
38168
+ resource.command("list-journal-entries").description(`List accounting journal entries with optional filters.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--entry-number <value>", `Filter by journal entry number.`).option("--status <value>", `Filter by journal entry status.`).option("--origin <value>", `Filter by automatic or manual origin.`).option("--ledger-id <value>", `Filter by ledger identifier.`).option("--invoicing-entity-id <value>", `Filter by invoicing entity identifier.`).option("--invoice-id <value>", `Filter by invoice identifier.`).option("--customer-id <value>", `Filter by customer identifier.`).option("--subscription-id <value>", `Filter by subscription identifier.`).option("--transaction-id <value>", `Filter by transaction identifier.`).option("--ledger-account-id <value>", `Filter entries containing a ledger account.`).option("--rule-id <value>", `Filter entries containing an accounting rule.`).option("--search <value>", `Search entry number, description, amount, invoice number or ID, customer name or ID, or subscription ID.`).option("--year <number>", `Filter by entry year.`).option("--quarter <number>", `Filter by entry quarter.`).addHelpText("after", `
38169
38169
  Examples:
38170
38170
  hyperline accounting-journal-entries list-journal-entries
38171
38171
  hyperline accounting-journal-entries list-journal-entries --take <take> --entry-number <entry_number>`).action(async (opts) => {
@@ -38409,9 +38409,10 @@ Examples:
38409
38409
  queryParamKeys: ["invoicing_entity_id"]
38410
38410
  });
38411
38411
  });
38412
- resource.command("create-ledger").description(`Create an accounting ledger for an invoicing entity.`).requiredOption("--invoicing-entity-id <value>", `Identifier of the invoicing entity that owns the ledger.`).requiredOption("--name <value>", `Display name of the ledger.`).requiredOption("--code <value>", `Optional accounting code of the ledger.`).requiredOption("--description <value>", `Optional description of the ledger.`).requiredOption("--type <value>", `Type of ledger.`).requiredOption("--currency <value>", `ISO 4217 currency used by the ledger.`).requiredOption("--entry-number-pattern <value>", `Entry numbering pattern containing \`{number}\`.`).requiredOption("--is-primary", `Whether this is the primary ledger for the invoicing entity.`).requiredOption("--is-inactive", `Whether the ledger is inactive.`).addHelpText("after", `
38412
+ resource.command("create-ledger").description(`Create an accounting ledger for an invoicing entity.`).requiredOption("--invoicing-entity-id <value>", `Identifier of the invoicing entity that owns the ledger.`).requiredOption("--name <value>", `Display name of the ledger.`).requiredOption("--code <value>", `Optional accounting code of the ledger.`).requiredOption("--description <value>", `Optional description of the ledger.`).requiredOption("--type <value>", `Type of ledger.`).requiredOption("--currency <value>", `ISO 4217 currency used by the ledger.`).option("--fiscal-year-end-month <number>", `Last month of the ledger's fiscal year, from 1 (January) to 12 (December). Reports split profit between past fiscal years and the current one from it. Defaults to 12. It cannot be changed after creation.`).requiredOption("--entry-number-pattern <value>", `Entry numbering pattern containing \`{number}\`.`).requiredOption("--is-primary", `Whether this is the primary ledger for the invoicing entity.`).requiredOption("--is-inactive", `Whether the ledger is inactive.`).addHelpText("after", `
38413
38413
  Examples:
38414
38414
  hyperline accounting-ledgers create-ledger --invoicing-entity-id <invoicing_entity_id> --name <name> --code <code> --description <description> --type <type> --currency <currency> --entry-number-pattern <entry_number_pattern> --is-primary --is-inactive
38415
+ hyperline accounting-ledgers create-ledger --invoicing-entity-id <invoicing_entity_id> --name <name> --code <code> --description <description> --type <type> --currency <currency> --entry-number-pattern <entry_number_pattern> --is-primary --is-inactive --fiscal-year-end-month <fiscal_year_end_month>
38415
38416
  hyperline accounting-ledgers create-ledger --invoicing-entity-id <invoicing_entity_id> --name <name> --code <code> --description <description> --type <type> --currency <currency> --entry-number-pattern <entry_number_pattern> --is-primary --is-inactive --output json`).action(async (opts) => {
38416
38417
  const ctx = resource.parent?.opts()._ctx;
38417
38418
  if (!ctx) {
@@ -38433,6 +38434,8 @@ Examples:
38433
38434
  args.currency = opts.currency;
38434
38435
  if (opts.entryNumberPattern !== void 0)
38435
38436
  args.entry_number_pattern = opts.entryNumberPattern;
38437
+ if (opts.fiscalYearEndMonth !== void 0)
38438
+ args.fiscal_year_end_month = Number(opts.fiscalYearEndMonth);
38436
38439
  if (opts.isPrimary !== void 0)
38437
38440
  args.is_primary = true;
38438
38441
  if (opts.isInactive !== void 0)
@@ -38504,6 +38507,94 @@ Examples:
38504
38507
  queryParamKeys: []
38505
38508
  });
38506
38509
  });
38510
+ resource.command("get-ledger-close-state").description(`Retrieve the last closed month of a ledger and the latest month that can be closed.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
38511
+ Examples:
38512
+ hyperline accounting-ledgers get-ledger-close-state --id <id>`).action(async (opts) => {
38513
+ const ctx = resource.parent?.opts()._ctx;
38514
+ if (!ctx) {
38515
+ process.stderr.write("Error: Not authenticated\n");
38516
+ process.exit(1);
38517
+ }
38518
+ const args = {};
38519
+ if (opts.id !== void 0)
38520
+ args.id = opts.id;
38521
+ await ctx.execute({
38522
+ method: "GET",
38523
+ path: "/v1/accounting/ledgers/{id}/close",
38524
+ args,
38525
+ queryParamKeys: []
38526
+ });
38527
+ });
38528
+ resource.command("list-ledger-close-events").description(`List the closes and reopens of a ledger, newest first, with who did them and why.`).requiredOption("--id <value>", `id parameter`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
38529
+ Examples:
38530
+ hyperline accounting-ledgers list-ledger-close-events --id <id>
38531
+ hyperline accounting-ledgers list-ledger-close-events --id <id> --take <take>`).action(async (opts) => {
38532
+ const ctx = resource.parent?.opts()._ctx;
38533
+ if (!ctx) {
38534
+ process.stderr.write("Error: Not authenticated\n");
38535
+ process.exit(1);
38536
+ }
38537
+ const args = {};
38538
+ if (opts.id !== void 0)
38539
+ args.id = opts.id;
38540
+ if (opts.take !== void 0)
38541
+ args.take = Number(opts.take);
38542
+ if (opts.skip !== void 0)
38543
+ args.skip = Number(opts.skip);
38544
+ await ctx.execute({
38545
+ method: "GET",
38546
+ path: "/v1/accounting/ledgers/{id}/close-events",
38547
+ args,
38548
+ queryParamKeys: ["take", "skip"]
38549
+ });
38550
+ });
38551
+ resource.command("close-ledger-period").description(`Close every month of a ledger through an ended month, after posting the revenue recognition due by its end; a user token needs the accounting_close permission.`).requiredOption("--id <value>", `id parameter`).requiredOption("--through-month <value>", `Last month to close, formatted YYYY-MM: an ended month after the last closed month. Every earlier month is closed too.`).option("--reason <value>", `Why the months are closed, 1 to 500 characters.`).addHelpText("after", `
38552
+ Examples:
38553
+ hyperline accounting-ledgers close-ledger-period --id <id> --through-month <through_month>
38554
+ hyperline accounting-ledgers close-ledger-period --id <id> --through-month <through_month> --reason <reason>
38555
+ hyperline accounting-ledgers close-ledger-period --id <id> --through-month <through_month> --output json`).action(async (opts) => {
38556
+ const ctx = resource.parent?.opts()._ctx;
38557
+ if (!ctx) {
38558
+ process.stderr.write("Error: Not authenticated\n");
38559
+ process.exit(1);
38560
+ }
38561
+ const args = {};
38562
+ if (opts.id !== void 0)
38563
+ args.id = opts.id;
38564
+ if (opts.throughMonth !== void 0)
38565
+ args.through_month = opts.throughMonth;
38566
+ if (opts.reason !== void 0)
38567
+ args.reason = opts.reason;
38568
+ await ctx.execute({
38569
+ method: "POST",
38570
+ path: "/v1/accounting/ledgers/{id}/close",
38571
+ args,
38572
+ queryParamKeys: []
38573
+ });
38574
+ });
38575
+ resource.command("reopen-ledger-period").description(`Reopen a closed month of a ledger and every later month, with a mandatory reason; a user token needs the accounting_close permission.`).requiredOption("--id <value>", `id parameter`).requiredOption("--from-month <value>", `First month to reopen, formatted YYYY-MM: a closed month. Every later month is reopened too.`).requiredOption("--reason <value>", `Why the months are reopened, 1 to 500 characters.`).addHelpText("after", `
38576
+ Examples:
38577
+ hyperline accounting-ledgers reopen-ledger-period --id <id> --from-month <from_month> --reason <reason>
38578
+ hyperline accounting-ledgers reopen-ledger-period --id <id> --from-month <from_month> --reason <reason> --output json`).action(async (opts) => {
38579
+ const ctx = resource.parent?.opts()._ctx;
38580
+ if (!ctx) {
38581
+ process.stderr.write("Error: Not authenticated\n");
38582
+ process.exit(1);
38583
+ }
38584
+ const args = {};
38585
+ if (opts.id !== void 0)
38586
+ args.id = opts.id;
38587
+ if (opts.fromMonth !== void 0)
38588
+ args.from_month = opts.fromMonth;
38589
+ if (opts.reason !== void 0)
38590
+ args.reason = opts.reason;
38591
+ await ctx.execute({
38592
+ method: "POST",
38593
+ path: "/v1/accounting/ledgers/{id}/reopen",
38594
+ args,
38595
+ queryParamKeys: []
38596
+ });
38597
+ });
38507
38598
  }
38508
38599
 
38509
38600
  // build/commands/generated/accounting-reports.js
@@ -38864,7 +38955,7 @@ Examples:
38864
38955
  // build/commands/generated/accounting-rules.js
38865
38956
  function registerAccounting_RulesCommands(parent) {
38866
38957
  const resource = parent.command("accounting-rules").description("Manage accounting > rules");
38867
- resource.command("list").description(`Retrieve existing accounting rules with optional filtering.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `ledger_id`).option("--ledger-id.not <value>", `ledger_id__not`).option("--ledger-id.is-null <value>", `ledger_id__isNull`).option("--ledger-id.is-not-null <value>", `ledger_id__isNotNull`).option("--ledger-id.equals <value>", `ledger_id__equals`).option("--ledger-id.contains <value>", `ledger_id__contains`).option("--ledger-id.starts-with <value>", `ledger_id__startsWith`).option("--ledger-id.end-with <value>", `ledger_id__endWith`).option("--category <value>", `category`).option("--category.not <value>", `category__not`).option("--category.is-null <value>", `category__isNull`).option("--category.is-not-null <value>", `category__isNotNull`).option("--category.equals <value>", `category__equals`).option("--category.contains <value>", `category__contains`).option("--category.starts-with <value>", `category__startsWith`).option("--category.end-with <value>", `category__endWith`).addHelpText("after", `
38958
+ resource.command("list").description(`Retrieve existing accounting rules with optional filtering.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `ledger_id`).option("--ledger-id.not <value>", `ledger_id__not`).option("--ledger-id.equals <value>", `ledger_id__equals`).option("--ledger-id.contains <value>", `ledger_id__contains`).option("--ledger-id.starts-with <value>", `ledger_id__startsWith`).option("--ledger-id.end-with <value>", `ledger_id__endWith`).option("--category <value>", `category`).option("--category.not <value>", `category__not`).option("--category.equals <value>", `category__equals`).option("--category.contains <value>", `category__contains`).option("--category.starts-with <value>", `category__startsWith`).option("--category.end-with <value>", `category__endWith`).addHelpText("after", `
38868
38959
  Examples:
38869
38960
  hyperline accounting-rules list
38870
38961
  hyperline accounting-rules list --take <take> --ledger-id <ledger_id>`).action(async (opts) => {
@@ -38878,10 +38969,6 @@ Examples:
38878
38969
  args.ledger_id = opts.ledgerId;
38879
38970
  if (opts["ledgerId.not"] !== void 0)
38880
38971
  args.ledger_id__not = opts["ledgerId.not"];
38881
- if (opts["ledgerId.isNull"] !== void 0)
38882
- args.ledger_id__isNull = opts["ledgerId.isNull"];
38883
- if (opts["ledgerId.isNotNull"] !== void 0)
38884
- args.ledger_id__isNotNull = opts["ledgerId.isNotNull"];
38885
38972
  if (opts["ledgerId.equals"] !== void 0)
38886
38973
  args.ledger_id__equals = opts["ledgerId.equals"];
38887
38974
  if (opts["ledgerId.contains"] !== void 0)
@@ -38894,10 +38981,6 @@ Examples:
38894
38981
  args.category = opts.category;
38895
38982
  if (opts["category.not"] !== void 0)
38896
38983
  args.category__not = opts["category.not"];
38897
- if (opts["category.isNull"] !== void 0)
38898
- args.category__isNull = opts["category.isNull"];
38899
- if (opts["category.isNotNull"] !== void 0)
38900
- args.category__isNotNull = opts["category.isNotNull"];
38901
38984
  if (opts["category.equals"] !== void 0)
38902
38985
  args.category__equals = opts["category.equals"];
38903
38986
  if (opts["category.contains"] !== void 0)
@@ -38919,16 +39002,12 @@ Examples:
38919
39002
  "skip",
38920
39003
  "ledger_id",
38921
39004
  "ledger_id__not",
38922
- "ledger_id__isNull",
38923
- "ledger_id__isNotNull",
38924
39005
  "ledger_id__equals",
38925
39006
  "ledger_id__contains",
38926
39007
  "ledger_id__startsWith",
38927
39008
  "ledger_id__endWith",
38928
39009
  "category",
38929
39010
  "category__not",
38930
- "category__isNull",
38931
- "category__isNotNull",
38932
39011
  "category__equals",
38933
39012
  "category__contains",
38934
39013
  "category__startsWith",
@@ -40594,6 +40673,52 @@ Examples:
40594
40673
  });
40595
40674
  }
40596
40675
 
40676
+ // build/commands/generated/approval-workflows.js
40677
+ function registerApproval_WorkflowsCommands(parent) {
40678
+ const resource = parent.command("approval-workflows").description("Manage approval workflows");
40679
+ resource.command("list").description(`List approval workflows with their steps and approvers. Those whose \`applicable_flows\` include \`workflow_step\` can be picked as the \`approvalWorkflowId\` of a workflow's Request approval step (\`hyperline.request_approval\`). Filter with \`is_active\`; paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--is-active <value>", `Only return workflows matching this active state.`).addHelpText("after", `
40680
+ Examples:
40681
+ hyperline approval-workflows list
40682
+ hyperline approval-workflows list --take <take> --is-active <is_active>`).action(async (opts) => {
40683
+ const ctx = resource.parent?.opts()._ctx;
40684
+ if (!ctx) {
40685
+ process.stderr.write("Error: Not authenticated\n");
40686
+ process.exit(1);
40687
+ }
40688
+ const args = {};
40689
+ if (opts.isActive !== void 0)
40690
+ args.is_active = opts.isActive;
40691
+ if (opts.take !== void 0)
40692
+ args.take = Number(opts.take);
40693
+ if (opts.skip !== void 0)
40694
+ args.skip = Number(opts.skip);
40695
+ await ctx.execute({
40696
+ method: "GET",
40697
+ path: "/v1/approvals/workflows",
40698
+ args,
40699
+ queryParamKeys: ["take", "skip", "is_active"]
40700
+ });
40701
+ });
40702
+ resource.command("get").description(`Retrieve a single approval workflow.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
40703
+ Examples:
40704
+ hyperline approval-workflows get --id <id>`).action(async (opts) => {
40705
+ const ctx = resource.parent?.opts()._ctx;
40706
+ if (!ctx) {
40707
+ process.stderr.write("Error: Not authenticated\n");
40708
+ process.exit(1);
40709
+ }
40710
+ const args = {};
40711
+ if (opts.id !== void 0)
40712
+ args.id = opts.id;
40713
+ await ctx.execute({
40714
+ method: "GET",
40715
+ path: "/v1/approvals/workflows/{id}",
40716
+ args,
40717
+ queryParamKeys: []
40718
+ });
40719
+ });
40720
+ }
40721
+
40597
40722
  // build/commands/generated/bank-accounts.js
40598
40723
  function registerBank_AccountsCommands(parent) {
40599
40724
  const resource = parent.command("bank-accounts").description("Manage bank accounts");
@@ -40663,6 +40788,84 @@ Examples:
40663
40788
  });
40664
40789
  }
40665
40790
 
40791
+ // build/commands/generated/catalog.js
40792
+ function registerCatalogCommands(parent) {
40793
+ const resource = parent.command("catalog").description("Manage catalog");
40794
+ resource.command("list-catalog-versions").description(`List product catalog versions (pending draft and published history). Catalog versioning must be enabled for the organisation.`).addHelpText("after", `
40795
+ Examples:
40796
+ hyperline catalog list-catalog-versions`).action(async (_opts) => {
40797
+ const ctx = resource.parent?.opts()._ctx;
40798
+ if (!ctx) {
40799
+ process.stderr.write("Error: Not authenticated\n");
40800
+ process.exit(1);
40801
+ }
40802
+ const args = {};
40803
+ await ctx.execute({
40804
+ method: "GET",
40805
+ path: "/v1/catalog/versions",
40806
+ args,
40807
+ queryParamKeys: []
40808
+ });
40809
+ });
40810
+ resource.command("get-catalog-draft").description(`Get the pending product catalog draft (null when there is none).`).addHelpText("after", `
40811
+ Examples:
40812
+ hyperline catalog get-catalog-draft`).action(async (_opts) => {
40813
+ const ctx = resource.parent?.opts()._ctx;
40814
+ if (!ctx) {
40815
+ process.stderr.write("Error: Not authenticated\n");
40816
+ process.exit(1);
40817
+ }
40818
+ const args = {};
40819
+ await ctx.execute({
40820
+ method: "GET",
40821
+ path: "/v1/catalog/versions/draft",
40822
+ args,
40823
+ queryParamKeys: []
40824
+ });
40825
+ });
40826
+ resource.command("publish-catalog-draft").description(`Publish the pending product catalog draft: its changes become the live catalog.`).addHelpText("after", `
40827
+ Examples:
40828
+ hyperline catalog publish-catalog-draft
40829
+ hyperline catalog publish-catalog-draft --output json`).action(async (_opts) => {
40830
+ const ctx = resource.parent?.opts()._ctx;
40831
+ if (!ctx) {
40832
+ process.stderr.write("Error: Not authenticated\n");
40833
+ process.exit(1);
40834
+ }
40835
+ const args = {};
40836
+ await ctx.execute({
40837
+ method: "POST",
40838
+ path: "/v1/catalog/versions/draft/publish",
40839
+ args,
40840
+ queryParamKeys: []
40841
+ });
40842
+ });
40843
+ resource.command("discard-catalog-draft").description(`Discard the pending product catalog draft without publishing it.`).option("--yes", "Skip confirmation").addHelpText("after", `
40844
+ Examples:
40845
+ hyperline catalog discard-catalog-draft
40846
+ hyperline catalog discard-catalog-draft --output json`).action(async (opts) => {
40847
+ const ctx = resource.parent?.opts()._ctx;
40848
+ if (!ctx) {
40849
+ process.stderr.write("Error: Not authenticated\n");
40850
+ process.exit(1);
40851
+ }
40852
+ const args = {};
40853
+ if (!opts.yes) {
40854
+ const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
40855
+ if (!confirmed) {
40856
+ process.stdout.write("Aborted.\n");
40857
+ return;
40858
+ }
40859
+ }
40860
+ await ctx.execute({
40861
+ method: "DELETE",
40862
+ path: "/v1/catalog/versions/draft",
40863
+ args,
40864
+ queryParamKeys: []
40865
+ });
40866
+ });
40867
+ }
40868
+
40666
40869
  // build/commands/generated/companies.js
40667
40870
  function registerCompaniesCommands(parent) {
40668
40871
  const resource = parent.command("companies").description("Manage companies");
@@ -40868,7 +41071,7 @@ Examples:
40868
41071
  // build/commands/generated/coupons-promotion-codes.js
40869
41072
  function registerCoupons_Promotion_CodesCommands(parent) {
40870
41073
  const resource = parent.command("coupons-promotion-codes").description("Manage coupons > promotion codes");
40871
- resource.command("list-promotion-codes").description(`List promotion codes with optional filter by coupon_id. Promotion codes are shareable codes that reference a coupon. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--coupon-id <value>", `coupon_id`).option("--coupon-id.not <value>", `coupon_id__not`).option("--coupon-id.is-null <value>", `coupon_id__isNull`).option("--coupon-id.is-not-null <value>", `coupon_id__isNotNull`).option("--coupon-id.equals <value>", `coupon_id__equals`).option("--coupon-id.contains <value>", `coupon_id__contains`).option("--coupon-id.starts-with <value>", `coupon_id__startsWith`).option("--coupon-id.end-with <value>", `coupon_id__endWith`).addHelpText("after", `
41074
+ resource.command("list-promotion-codes").description(`List promotion codes with optional filter by coupon_id. Promotion codes are shareable codes that reference a coupon. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--coupon-id <value>", `coupon_id`).option("--coupon-id.not <value>", `coupon_id__not`).option("--coupon-id.equals <value>", `coupon_id__equals`).option("--coupon-id.contains <value>", `coupon_id__contains`).option("--coupon-id.starts-with <value>", `coupon_id__startsWith`).option("--coupon-id.end-with <value>", `coupon_id__endWith`).addHelpText("after", `
40872
41075
  Examples:
40873
41076
  hyperline coupons-promotion-codes list-promotion-codes
40874
41077
  hyperline coupons-promotion-codes list-promotion-codes --take <take> --coupon-id <coupon_id>`).action(async (opts) => {
@@ -40882,10 +41085,6 @@ Examples:
40882
41085
  args.coupon_id = opts.couponId;
40883
41086
  if (opts["couponId.not"] !== void 0)
40884
41087
  args.coupon_id__not = opts["couponId.not"];
40885
- if (opts["couponId.isNull"] !== void 0)
40886
- args.coupon_id__isNull = opts["couponId.isNull"];
40887
- if (opts["couponId.isNotNull"] !== void 0)
40888
- args.coupon_id__isNotNull = opts["couponId.isNotNull"];
40889
41088
  if (opts["couponId.equals"] !== void 0)
40890
41089
  args.coupon_id__equals = opts["couponId.equals"];
40891
41090
  if (opts["couponId.contains"] !== void 0)
@@ -40907,8 +41106,6 @@ Examples:
40907
41106
  "skip",
40908
41107
  "coupon_id",
40909
41108
  "coupon_id__not",
40910
- "coupon_id__isNull",
40911
- "coupon_id__isNotNull",
40912
41109
  "coupon_id__equals",
40913
41110
  "coupon_id__contains",
40914
41111
  "coupon_id__startsWith",
@@ -41162,7 +41359,7 @@ Examples:
41162
41359
  // build/commands/generated/customers.js
41163
41360
  function registerCustomersCommands(parent) {
41164
41361
  const resource = parent.command("customers").description("Manage customers");
41165
- resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, tax_id_status, subscription_status, invoicing_entity_id, segment_id, custom_properties, payment_method_type, integration_entity_id, created_at, and updated_at. Sortable by created_at or updated_at. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--tax-id-status <value>", `
41362
+ resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, tax_id_status, subscription_status, invoicing_entity_id, segment_id, custom_properties (JSON object of slug to exact value, e.g. {"my_slug":"value"}; slugs matching no custom property are ignored), payment_method_type, integration_entity_id, created_at, and updated_at. Sortable by created_at or updated_at. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--tax-id-status <value>", `
41166
41363
  Verification status of the customer tax ID.
41167
41364
 
41168
41365
  - \`valid\`: Tax ID has been verified and is valid.
@@ -41170,7 +41367,7 @@ Verification status of the customer tax ID.
41170
41367
  - \`mismatch\`: Tax ID is valid but is for a different country than the customer's country.
41171
41368
  - \`unverified\`: Tax ID has not been verified yet.
41172
41369
  - \`unsupported\`: Tax ID verification for this type not supported yet.
41173
- `).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--country <value>", `country`).option("--country.not <value>", `country__not`).option("--country.is-null <value>", `country__isNull`).option("--country.is-not-null <value>", `country__isNotNull`).option("--country.equals <value>", `country__equals`).option("--country.contains <value>", `country__contains`).option("--country.starts-with <value>", `country__startsWith`).option("--country.end-with <value>", `country__endWith`).option("--external-id <value>", `external_id`).option("--external-id.not <value>", `external_id__not`).option("--external-id.is-null <value>", `external_id__isNull`).option("--external-id.is-not-null <value>", `external_id__isNotNull`).option("--external-id.equals <value>", `external_id__equals`).option("--external-id.contains <value>", `external_id__contains`).option("--external-id.starts-with <value>", `external_id__startsWith`).option("--external-id.end-with <value>", `external_id__endWith`).option("--billing-email <value>", `billing_email`).option("--billing-email.not <value>", `billing_email__not`).option("--billing-email.is-null <value>", `billing_email__isNull`).option("--billing-email.is-not-null <value>", `billing_email__isNotNull`).option("--billing-email.equals <value>", `billing_email__equals`).option("--billing-email.contains <value>", `billing_email__contains`).option("--billing-email.starts-with <value>", `billing_email__startsWith`).option("--billing-email.end-with <value>", `billing_email__endWith`).option("--search <value>", `search`).option("--tax-id <value>", `tax_id`).option("--tax-id.not <value>", `tax_id__not`).option("--tax-id.is-null <value>", `tax_id__isNull`).option("--tax-id.is-not-null <value>", `tax_id__isNotNull`).option("--tax-id.equals <value>", `tax_id__equals`).option("--tax-id.contains <value>", `tax_id__contains`).option("--tax-id.starts-with <value>", `tax_id__startsWith`).option("--tax-id.end-with <value>", `tax_id__endWith`).option("--subscription-status <value>", `subscription_status`).option("--subscription-status.in <value>", `subscription_status__in`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--segment-id <value>", `segment_id`).option("--custom-properties <value>", `custom_properties`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-type.in <value>", `payment_method_type__in`).option("--integration-entity-id <value>", `integration_entity_id`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.is-null <value>", `created_at__isNull`).option("--created-at.is-not-null <value>", `created_at__isNotNull`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
41370
+ `).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--country <value>", `country`).option("--country.not <value>", `country__not`).option("--country.equals <value>", `country__equals`).option("--country.contains <value>", `country__contains`).option("--country.starts-with <value>", `country__startsWith`).option("--country.end-with <value>", `country__endWith`).option("--country.is-null <value>", `country__isNull`).option("--country.is-not-null <value>", `country__isNotNull`).option("--external-id <value>", `external_id`).option("--external-id.not <value>", `external_id__not`).option("--external-id.equals <value>", `external_id__equals`).option("--external-id.contains <value>", `external_id__contains`).option("--external-id.starts-with <value>", `external_id__startsWith`).option("--external-id.end-with <value>", `external_id__endWith`).option("--external-id.is-null <value>", `external_id__isNull`).option("--external-id.is-not-null <value>", `external_id__isNotNull`).option("--billing-email <value>", `billing_email`).option("--billing-email.not <value>", `billing_email__not`).option("--billing-email.equals <value>", `billing_email__equals`).option("--billing-email.contains <value>", `billing_email__contains`).option("--billing-email.starts-with <value>", `billing_email__startsWith`).option("--billing-email.end-with <value>", `billing_email__endWith`).option("--billing-email.is-null <value>", `billing_email__isNull`).option("--billing-email.is-not-null <value>", `billing_email__isNotNull`).option("--search <value>", `search`).option("--tax-id <value>", `tax_id`).option("--tax-id.not <value>", `tax_id__not`).option("--tax-id.equals <value>", `tax_id__equals`).option("--tax-id.contains <value>", `tax_id__contains`).option("--tax-id.starts-with <value>", `tax_id__startsWith`).option("--tax-id.end-with <value>", `tax_id__endWith`).option("--tax-id.is-null <value>", `tax_id__isNull`).option("--tax-id.is-not-null <value>", `tax_id__isNotNull`).option("--subscription-status <value>", `subscription_status`).option("--subscription-status.in <value>", `subscription_status__in`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--segment-id <value>", `segment_id`).option("--custom-properties <value>", `Filter by custom property values, as a JSON object mapping a custom property slug to the exact value to match. Suffix a slug with \`__contains\` for a case-sensitive substring match on text values. Several entries are combined with AND. Entries whose slug matches no custom property, or whose value is \`false\`, \`0\`, \`null\` or an empty string, are ignored.`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-type.in <value>", `payment_method_type__in`).option("--integration-entity-id <value>", `integration_entity_id`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
41174
41371
  Examples:
41175
41372
  hyperline customers list
41176
41373
  hyperline customers list --limit <limit> --cursor <cursor>`).action(async (opts) => {
@@ -41194,10 +41391,6 @@ Examples:
41194
41391
  args.name = opts.name;
41195
41392
  if (opts["name.not"] !== void 0)
41196
41393
  args.name__not = opts["name.not"];
41197
- if (opts["name.isNull"] !== void 0)
41198
- args.name__isNull = opts["name.isNull"];
41199
- if (opts["name.isNotNull"] !== void 0)
41200
- args.name__isNotNull = opts["name.isNotNull"];
41201
41394
  if (opts["name.equals"] !== void 0)
41202
41395
  args.name__equals = opts["name.equals"];
41203
41396
  if (opts["name.contains"] !== void 0)
@@ -41218,10 +41411,6 @@ Examples:
41218
41411
  args.currency = opts.currency;
41219
41412
  if (opts["currency.not"] !== void 0)
41220
41413
  args.currency__not = opts["currency.not"];
41221
- if (opts["currency.isNull"] !== void 0)
41222
- args.currency__isNull = opts["currency.isNull"];
41223
- if (opts["currency.isNotNull"] !== void 0)
41224
- args.currency__isNotNull = opts["currency.isNotNull"];
41225
41414
  if (opts["currency.equals"] !== void 0)
41226
41415
  args.currency__equals = opts["currency.equals"];
41227
41416
  if (opts["currency.contains"] !== void 0)
@@ -41230,14 +41419,14 @@ Examples:
41230
41419
  args.currency__startsWith = opts["currency.startsWith"];
41231
41420
  if (opts["currency.endWith"] !== void 0)
41232
41421
  args.currency__endWith = opts["currency.endWith"];
41422
+ if (opts["currency.isNull"] !== void 0)
41423
+ args.currency__isNull = opts["currency.isNull"];
41424
+ if (opts["currency.isNotNull"] !== void 0)
41425
+ args.currency__isNotNull = opts["currency.isNotNull"];
41233
41426
  if (opts.country !== void 0)
41234
41427
  args.country = opts.country;
41235
41428
  if (opts["country.not"] !== void 0)
41236
41429
  args.country__not = opts["country.not"];
41237
- if (opts["country.isNull"] !== void 0)
41238
- args.country__isNull = opts["country.isNull"];
41239
- if (opts["country.isNotNull"] !== void 0)
41240
- args.country__isNotNull = opts["country.isNotNull"];
41241
41430
  if (opts["country.equals"] !== void 0)
41242
41431
  args.country__equals = opts["country.equals"];
41243
41432
  if (opts["country.contains"] !== void 0)
@@ -41246,14 +41435,14 @@ Examples:
41246
41435
  args.country__startsWith = opts["country.startsWith"];
41247
41436
  if (opts["country.endWith"] !== void 0)
41248
41437
  args.country__endWith = opts["country.endWith"];
41438
+ if (opts["country.isNull"] !== void 0)
41439
+ args.country__isNull = opts["country.isNull"];
41440
+ if (opts["country.isNotNull"] !== void 0)
41441
+ args.country__isNotNull = opts["country.isNotNull"];
41249
41442
  if (opts.externalId !== void 0)
41250
41443
  args.external_id = opts.externalId;
41251
41444
  if (opts["externalId.not"] !== void 0)
41252
41445
  args.external_id__not = opts["externalId.not"];
41253
- if (opts["externalId.isNull"] !== void 0)
41254
- args.external_id__isNull = opts["externalId.isNull"];
41255
- if (opts["externalId.isNotNull"] !== void 0)
41256
- args.external_id__isNotNull = opts["externalId.isNotNull"];
41257
41446
  if (opts["externalId.equals"] !== void 0)
41258
41447
  args.external_id__equals = opts["externalId.equals"];
41259
41448
  if (opts["externalId.contains"] !== void 0)
@@ -41262,14 +41451,14 @@ Examples:
41262
41451
  args.external_id__startsWith = opts["externalId.startsWith"];
41263
41452
  if (opts["externalId.endWith"] !== void 0)
41264
41453
  args.external_id__endWith = opts["externalId.endWith"];
41454
+ if (opts["externalId.isNull"] !== void 0)
41455
+ args.external_id__isNull = opts["externalId.isNull"];
41456
+ if (opts["externalId.isNotNull"] !== void 0)
41457
+ args.external_id__isNotNull = opts["externalId.isNotNull"];
41265
41458
  if (opts.billingEmail !== void 0)
41266
41459
  args.billing_email = opts.billingEmail;
41267
41460
  if (opts["billingEmail.not"] !== void 0)
41268
41461
  args.billing_email__not = opts["billingEmail.not"];
41269
- if (opts["billingEmail.isNull"] !== void 0)
41270
- args.billing_email__isNull = opts["billingEmail.isNull"];
41271
- if (opts["billingEmail.isNotNull"] !== void 0)
41272
- args.billing_email__isNotNull = opts["billingEmail.isNotNull"];
41273
41462
  if (opts["billingEmail.equals"] !== void 0)
41274
41463
  args.billing_email__equals = opts["billingEmail.equals"];
41275
41464
  if (opts["billingEmail.contains"] !== void 0)
@@ -41278,16 +41467,16 @@ Examples:
41278
41467
  args.billing_email__startsWith = opts["billingEmail.startsWith"];
41279
41468
  if (opts["billingEmail.endWith"] !== void 0)
41280
41469
  args.billing_email__endWith = opts["billingEmail.endWith"];
41470
+ if (opts["billingEmail.isNull"] !== void 0)
41471
+ args.billing_email__isNull = opts["billingEmail.isNull"];
41472
+ if (opts["billingEmail.isNotNull"] !== void 0)
41473
+ args.billing_email__isNotNull = opts["billingEmail.isNotNull"];
41281
41474
  if (opts.search !== void 0)
41282
41475
  args.search = opts.search;
41283
41476
  if (opts.taxId !== void 0)
41284
41477
  args.tax_id = opts.taxId;
41285
41478
  if (opts["taxId.not"] !== void 0)
41286
41479
  args.tax_id__not = opts["taxId.not"];
41287
- if (opts["taxId.isNull"] !== void 0)
41288
- args.tax_id__isNull = opts["taxId.isNull"];
41289
- if (opts["taxId.isNotNull"] !== void 0)
41290
- args.tax_id__isNotNull = opts["taxId.isNotNull"];
41291
41480
  if (opts["taxId.equals"] !== void 0)
41292
41481
  args.tax_id__equals = opts["taxId.equals"];
41293
41482
  if (opts["taxId.contains"] !== void 0)
@@ -41296,6 +41485,10 @@ Examples:
41296
41485
  args.tax_id__startsWith = opts["taxId.startsWith"];
41297
41486
  if (opts["taxId.endWith"] !== void 0)
41298
41487
  args.tax_id__endWith = opts["taxId.endWith"];
41488
+ if (opts["taxId.isNull"] !== void 0)
41489
+ args.tax_id__isNull = opts["taxId.isNull"];
41490
+ if (opts["taxId.isNotNull"] !== void 0)
41491
+ args.tax_id__isNotNull = opts["taxId.isNotNull"];
41299
41492
  if (opts.subscriptionStatus !== void 0)
41300
41493
  args.subscription_status = opts.subscriptionStatus;
41301
41494
  if (opts["subscriptionStatus.in"] !== void 0)
@@ -41304,10 +41497,6 @@ Examples:
41304
41497
  args.invoicing_entity_id = opts.invoicingEntityId;
41305
41498
  if (opts["invoicingEntityId.not"] !== void 0)
41306
41499
  args.invoicing_entity_id__not = opts["invoicingEntityId.not"];
41307
- if (opts["invoicingEntityId.isNull"] !== void 0)
41308
- args.invoicing_entity_id__isNull = opts["invoicingEntityId.isNull"];
41309
- if (opts["invoicingEntityId.isNotNull"] !== void 0)
41310
- args.invoicing_entity_id__isNotNull = opts["invoicingEntityId.isNotNull"];
41311
41500
  if (opts["invoicingEntityId.equals"] !== void 0)
41312
41501
  args.invoicing_entity_id__equals = opts["invoicingEntityId.equals"];
41313
41502
  if (opts["invoicingEntityId.contains"] !== void 0)
@@ -41330,10 +41519,6 @@ Examples:
41330
41519
  args.created_at = opts.createdAt;
41331
41520
  if (opts["createdAt.not"] !== void 0)
41332
41521
  args.created_at__not = opts["createdAt.not"];
41333
- if (opts["createdAt.isNull"] !== void 0)
41334
- args.created_at__isNull = opts["createdAt.isNull"];
41335
- if (opts["createdAt.isNotNull"] !== void 0)
41336
- args.created_at__isNotNull = opts["createdAt.isNotNull"];
41337
41522
  if (opts["createdAt.equals"] !== void 0)
41338
41523
  args.created_at__equals = opts["createdAt.equals"];
41339
41524
  if (opts["createdAt.lt"] !== void 0)
@@ -41348,10 +41533,6 @@ Examples:
41348
41533
  args.updated_at = opts.updatedAt;
41349
41534
  if (opts["updatedAt.not"] !== void 0)
41350
41535
  args.updated_at__not = opts["updatedAt.not"];
41351
- if (opts["updatedAt.isNull"] !== void 0)
41352
- args.updated_at__isNull = opts["updatedAt.isNull"];
41353
- if (opts["updatedAt.isNotNull"] !== void 0)
41354
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
41355
41536
  if (opts["updatedAt.equals"] !== void 0)
41356
41537
  args.updated_at__equals = opts["updatedAt.equals"];
41357
41538
  if (opts["updatedAt.lt"] !== void 0)
@@ -41377,8 +41558,6 @@ Examples:
41377
41558
  "tax_id_status",
41378
41559
  "name",
41379
41560
  "name__not",
41380
- "name__isNull",
41381
- "name__isNotNull",
41382
41561
  "name__equals",
41383
41562
  "name__contains",
41384
41563
  "name__startsWith",
@@ -41389,51 +41568,49 @@ Examples:
41389
41568
  "status__in",
41390
41569
  "currency",
41391
41570
  "currency__not",
41392
- "currency__isNull",
41393
- "currency__isNotNull",
41394
41571
  "currency__equals",
41395
41572
  "currency__contains",
41396
41573
  "currency__startsWith",
41397
41574
  "currency__endWith",
41575
+ "currency__isNull",
41576
+ "currency__isNotNull",
41398
41577
  "country",
41399
41578
  "country__not",
41400
- "country__isNull",
41401
- "country__isNotNull",
41402
41579
  "country__equals",
41403
41580
  "country__contains",
41404
41581
  "country__startsWith",
41405
41582
  "country__endWith",
41583
+ "country__isNull",
41584
+ "country__isNotNull",
41406
41585
  "external_id",
41407
41586
  "external_id__not",
41408
- "external_id__isNull",
41409
- "external_id__isNotNull",
41410
41587
  "external_id__equals",
41411
41588
  "external_id__contains",
41412
41589
  "external_id__startsWith",
41413
41590
  "external_id__endWith",
41591
+ "external_id__isNull",
41592
+ "external_id__isNotNull",
41414
41593
  "billing_email",
41415
41594
  "billing_email__not",
41416
- "billing_email__isNull",
41417
- "billing_email__isNotNull",
41418
41595
  "billing_email__equals",
41419
41596
  "billing_email__contains",
41420
41597
  "billing_email__startsWith",
41421
41598
  "billing_email__endWith",
41599
+ "billing_email__isNull",
41600
+ "billing_email__isNotNull",
41422
41601
  "search",
41423
41602
  "tax_id",
41424
41603
  "tax_id__not",
41425
- "tax_id__isNull",
41426
- "tax_id__isNotNull",
41427
41604
  "tax_id__equals",
41428
41605
  "tax_id__contains",
41429
41606
  "tax_id__startsWith",
41430
41607
  "tax_id__endWith",
41608
+ "tax_id__isNull",
41609
+ "tax_id__isNotNull",
41431
41610
  "subscription_status",
41432
41611
  "subscription_status__in",
41433
41612
  "invoicing_entity_id",
41434
41613
  "invoicing_entity_id__not",
41435
- "invoicing_entity_id__isNull",
41436
- "invoicing_entity_id__isNotNull",
41437
41614
  "invoicing_entity_id__equals",
41438
41615
  "invoicing_entity_id__contains",
41439
41616
  "invoicing_entity_id__startsWith",
@@ -41445,8 +41622,6 @@ Examples:
41445
41622
  "integration_entity_id",
41446
41623
  "created_at",
41447
41624
  "created_at__not",
41448
- "created_at__isNull",
41449
- "created_at__isNotNull",
41450
41625
  "created_at__equals",
41451
41626
  "created_at__lt",
41452
41627
  "created_at__lte",
@@ -41454,8 +41629,6 @@ Examples:
41454
41629
  "created_at__gte",
41455
41630
  "updated_at",
41456
41631
  "updated_at__not",
41457
- "updated_at__isNull",
41458
- "updated_at__isNotNull",
41459
41632
  "updated_at__equals",
41460
41633
  "updated_at__lt",
41461
41634
  "updated_at__lte",
@@ -42024,7 +42197,7 @@ Examples:
42024
42197
  // build/commands/generated/customers-credits.js
42025
42198
  function registerCustomers_CreditsCommands(parent) {
42026
42199
  const resource = parent.command("customers-credits").description("Manage customers > credits");
42027
- resource.command("list").description(`List credit products across all customers with optional filters for product_id, customer_id, and updated_at. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--product-id <value>", `product_id`).option("--product-id.not <value>", `product_id__not`).option("--product-id.is-null <value>", `product_id__isNull`).option("--product-id.is-not-null <value>", `product_id__isNotNull`).option("--product-id.equals <value>", `product_id__equals`).option("--product-id.contains <value>", `product_id__contains`).option("--product-id.starts-with <value>", `product_id__startsWith`).option("--product-id.end-with <value>", `product_id__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
42200
+ resource.command("list").description(`List credit products across all customers with optional filters for product_id, customer_id, and updated_at. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--product-id <value>", `product_id`).option("--product-id.not <value>", `product_id__not`).option("--product-id.equals <value>", `product_id__equals`).option("--product-id.contains <value>", `product_id__contains`).option("--product-id.starts-with <value>", `product_id__startsWith`).option("--product-id.end-with <value>", `product_id__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
42028
42201
  Examples:
42029
42202
  hyperline customers-credits list
42030
42203
  hyperline customers-credits list --take <take> --product-id <product_id>`).action(async (opts) => {
@@ -42038,10 +42211,6 @@ Examples:
42038
42211
  args.product_id = opts.productId;
42039
42212
  if (opts["productId.not"] !== void 0)
42040
42213
  args.product_id__not = opts["productId.not"];
42041
- if (opts["productId.isNull"] !== void 0)
42042
- args.product_id__isNull = opts["productId.isNull"];
42043
- if (opts["productId.isNotNull"] !== void 0)
42044
- args.product_id__isNotNull = opts["productId.isNotNull"];
42045
42214
  if (opts["productId.equals"] !== void 0)
42046
42215
  args.product_id__equals = opts["productId.equals"];
42047
42216
  if (opts["productId.contains"] !== void 0)
@@ -42054,10 +42223,6 @@ Examples:
42054
42223
  args.customer_id = opts.customerId;
42055
42224
  if (opts["customerId.not"] !== void 0)
42056
42225
  args.customer_id__not = opts["customerId.not"];
42057
- if (opts["customerId.isNull"] !== void 0)
42058
- args.customer_id__isNull = opts["customerId.isNull"];
42059
- if (opts["customerId.isNotNull"] !== void 0)
42060
- args.customer_id__isNotNull = opts["customerId.isNotNull"];
42061
42226
  if (opts["customerId.equals"] !== void 0)
42062
42227
  args.customer_id__equals = opts["customerId.equals"];
42063
42228
  if (opts["customerId.contains"] !== void 0)
@@ -42070,10 +42235,6 @@ Examples:
42070
42235
  args.updated_at = opts.updatedAt;
42071
42236
  if (opts["updatedAt.not"] !== void 0)
42072
42237
  args.updated_at__not = opts["updatedAt.not"];
42073
- if (opts["updatedAt.isNull"] !== void 0)
42074
- args.updated_at__isNull = opts["updatedAt.isNull"];
42075
- if (opts["updatedAt.isNotNull"] !== void 0)
42076
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
42077
42238
  if (opts["updatedAt.equals"] !== void 0)
42078
42239
  args.updated_at__equals = opts["updatedAt.equals"];
42079
42240
  if (opts["updatedAt.lt"] !== void 0)
@@ -42097,24 +42258,18 @@ Examples:
42097
42258
  "skip",
42098
42259
  "product_id",
42099
42260
  "product_id__not",
42100
- "product_id__isNull",
42101
- "product_id__isNotNull",
42102
42261
  "product_id__equals",
42103
42262
  "product_id__contains",
42104
42263
  "product_id__startsWith",
42105
42264
  "product_id__endWith",
42106
42265
  "customer_id",
42107
42266
  "customer_id__not",
42108
- "customer_id__isNull",
42109
- "customer_id__isNotNull",
42110
42267
  "customer_id__equals",
42111
42268
  "customer_id__contains",
42112
42269
  "customer_id__startsWith",
42113
42270
  "customer_id__endWith",
42114
42271
  "updated_at",
42115
42272
  "updated_at__not",
42116
- "updated_at__isNull",
42117
- "updated_at__isNotNull",
42118
42273
  "updated_at__equals",
42119
42274
  "updated_at__lt",
42120
42275
  "updated_at__lte",
@@ -42387,12 +42542,13 @@ Examples:
42387
42542
  });
42388
42543
  }
42389
42544
 
42390
- // build/commands/generated/customers-payment-methods.js
42391
- function registerCustomers_Payment_MethodsCommands(parent) {
42392
- const resource = parent.command("customers-payment-methods").description("Manage customers > payment methods");
42393
- resource.command("list-customer-payment-methods").description(`List all payment methods attached to a specific customer (cards, SEPA mandates, etc.).`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
42545
+ // build/commands/generated/customers-features.js
42546
+ function registerCustomers_FeaturesCommands(parent) {
42547
+ const resource = parent.command("customers-features").description("Manage customers > features");
42548
+ resource.command("resolve-customer-features").description(`Resolve feature values for a customer.`).requiredOption("--id <value>", `id parameter`).option("--at <value>", `Resolution date.`).addHelpText("after", `
42394
42549
  Examples:
42395
- hyperline customers-payment-methods list-customer-payment-methods --id <id>`).action(async (opts) => {
42550
+ hyperline customers-features resolve-customer-features --id <id>
42551
+ hyperline customers-features resolve-customer-features --id <id> --at <at>`).action(async (opts) => {
42396
42552
  const ctx = resource.parent?.opts()._ctx;
42397
42553
  if (!ctx) {
42398
42554
  process.stderr.write("Error: Not authenticated\n");
@@ -42401,18 +42557,20 @@ Examples:
42401
42557
  const args = {};
42402
42558
  if (opts.id !== void 0)
42403
42559
  args.id = opts.id;
42560
+ if (opts.at !== void 0)
42561
+ args.at = opts.at;
42404
42562
  await ctx.execute({
42405
42563
  method: "GET",
42406
- path: "/v1/customers/{id}/payment-methods",
42564
+ path: "/v1/customers/{id}/features",
42407
42565
  args,
42408
- queryParamKeys: []
42566
+ queryParamKeys: ["at"]
42409
42567
  });
42410
42568
  });
42411
- resource.command("create-customer-payment-method").description(`Import an existing payment method from a connected payment provider (e.g. Stripe) for a customer.`).requiredOption("--id <value>", `id parameter`).requiredOption("--provider-name <value>", `Provider name.`).option("--provider-id <value>", `Provider ID. Required if multiple instances of the same provider are connected in Hyperline.`).requiredOption("--provider-payment-method-id <value>", `ID of the payment method on the provider's side.`).addHelpText("after", `
42569
+ resource.command("set-customer-feature").description(`Set a feature override for a customer.`).requiredOption("--id <value>", `id parameter`).requiredOption("--code <value>", `code parameter`).requiredOption("--value", `Feature value.`).option("--reason <value>", `Reason associated with a customer feature override.`).option("--expires-at <value>", `Expiration date of a customer feature override.`).addHelpText("after", `
42412
42570
  Examples:
42413
- hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id>
42414
- hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id> --provider-id <provider_id>
42415
- hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id> --output json`).action(async (opts) => {
42571
+ hyperline customers-features set-customer-feature --id <id> --code <code> --value
42572
+ hyperline customers-features set-customer-feature --id <id> --code <code> --value --reason <reason> --expires-at <expires_at>
42573
+ hyperline customers-features set-customer-feature --id <id> --code <code> --value --output json`).action(async (opts) => {
42416
42574
  const ctx = resource.parent?.opts()._ctx;
42417
42575
  if (!ctx) {
42418
42576
  process.stderr.write("Error: Not authenticated\n");
@@ -42421,15 +42579,94 @@ Examples:
42421
42579
  const args = {};
42422
42580
  if (opts.id !== void 0)
42423
42581
  args.id = opts.id;
42424
- if (opts.providerName !== void 0)
42425
- args.provider_name = opts.providerName;
42426
- if (opts.providerId !== void 0)
42427
- args.provider_id = opts.providerId;
42428
- if (opts.providerPaymentMethodId !== void 0)
42429
- args.provider_payment_method_id = opts.providerPaymentMethodId;
42430
- await ctx.execute({
42431
- method: "POST",
42432
- path: "/v1/customers/{id}/payment-methods",
42582
+ if (opts.code !== void 0)
42583
+ args.code = opts.code;
42584
+ if (opts.reason !== void 0)
42585
+ args.reason = opts.reason;
42586
+ if (opts.expiresAt !== void 0)
42587
+ args.expires_at = opts.expiresAt;
42588
+ if (opts.value !== void 0)
42589
+ args.value = true;
42590
+ await ctx.execute({
42591
+ method: "PUT",
42592
+ path: "/v1/customers/{id}/features/{code}",
42593
+ args,
42594
+ queryParamKeys: []
42595
+ });
42596
+ });
42597
+ resource.command("delete-customer-feature").description(`Delete a feature override from a customer.`).requiredOption("--id <value>", `id parameter`).requiredOption("--code <value>", `code parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
42598
+ Examples:
42599
+ hyperline customers-features delete-customer-feature --id <id> --code <code>
42600
+ hyperline customers-features delete-customer-feature --id <id> --code <code> --output json`).action(async (opts) => {
42601
+ const ctx = resource.parent?.opts()._ctx;
42602
+ if (!ctx) {
42603
+ process.stderr.write("Error: Not authenticated\n");
42604
+ process.exit(1);
42605
+ }
42606
+ const args = {};
42607
+ if (opts.id !== void 0)
42608
+ args.id = opts.id;
42609
+ if (opts.code !== void 0)
42610
+ args.code = opts.code;
42611
+ if (!opts.yes) {
42612
+ const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
42613
+ if (!confirmed) {
42614
+ process.stdout.write("Aborted.\n");
42615
+ return;
42616
+ }
42617
+ }
42618
+ await ctx.execute({
42619
+ method: "DELETE",
42620
+ path: "/v1/customers/{id}/features/{code}",
42621
+ args,
42622
+ queryParamKeys: []
42623
+ });
42624
+ });
42625
+ }
42626
+
42627
+ // build/commands/generated/customers-payment-methods.js
42628
+ function registerCustomers_Payment_MethodsCommands(parent) {
42629
+ const resource = parent.command("customers-payment-methods").description("Manage customers > payment methods");
42630
+ resource.command("list-customer-payment-methods").description(`List all payment methods attached to a specific customer (cards, SEPA mandates, etc.).`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
42631
+ Examples:
42632
+ hyperline customers-payment-methods list-customer-payment-methods --id <id>`).action(async (opts) => {
42633
+ const ctx = resource.parent?.opts()._ctx;
42634
+ if (!ctx) {
42635
+ process.stderr.write("Error: Not authenticated\n");
42636
+ process.exit(1);
42637
+ }
42638
+ const args = {};
42639
+ if (opts.id !== void 0)
42640
+ args.id = opts.id;
42641
+ await ctx.execute({
42642
+ method: "GET",
42643
+ path: "/v1/customers/{id}/payment-methods",
42644
+ args,
42645
+ queryParamKeys: []
42646
+ });
42647
+ });
42648
+ resource.command("create-customer-payment-method").description(`Import an existing payment method from a connected payment provider (e.g. Stripe) for a customer.`).requiredOption("--id <value>", `id parameter`).requiredOption("--provider-name <value>", `Provider name.`).option("--provider-id <value>", `Provider ID. Required if multiple instances of the same provider are connected in Hyperline.`).requiredOption("--provider-payment-method-id <value>", `ID of the payment method on the provider's side.`).addHelpText("after", `
42649
+ Examples:
42650
+ hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id>
42651
+ hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id> --provider-id <provider_id>
42652
+ hyperline customers-payment-methods create-customer-payment-method --id <id> --provider-name <provider_name> --provider-payment-method-id <provider_payment_method_id> --output json`).action(async (opts) => {
42653
+ const ctx = resource.parent?.opts()._ctx;
42654
+ if (!ctx) {
42655
+ process.stderr.write("Error: Not authenticated\n");
42656
+ process.exit(1);
42657
+ }
42658
+ const args = {};
42659
+ if (opts.id !== void 0)
42660
+ args.id = opts.id;
42661
+ if (opts.providerName !== void 0)
42662
+ args.provider_name = opts.providerName;
42663
+ if (opts.providerId !== void 0)
42664
+ args.provider_id = opts.providerId;
42665
+ if (opts.providerPaymentMethodId !== void 0)
42666
+ args.provider_payment_method_id = opts.providerPaymentMethodId;
42667
+ await ctx.execute({
42668
+ method: "POST",
42669
+ path: "/v1/customers/{id}/payment-methods",
42433
42670
  args,
42434
42671
  queryParamKeys: []
42435
42672
  });
@@ -42836,6 +43073,222 @@ Examples:
42836
43073
  });
42837
43074
  }
42838
43075
 
43076
+ // build/commands/generated/features.js
43077
+ function registerFeaturesCommands(parent) {
43078
+ const resource = parent.command("features").description("Manage features");
43079
+ resource.command("list").description(`List feature definitions.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--code <value>", `code`).option("--code.not <value>", `code__not`).option("--code.equals <value>", `code__equals`).option("--code.contains <value>", `code__contains`).option("--code.starts-with <value>", `code__startsWith`).option("--code.end-with <value>", `code__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--search <value>", `search`).addHelpText("after", `
43080
+ Examples:
43081
+ hyperline features list
43082
+ hyperline features list --take <take> --code <code>`).action(async (opts) => {
43083
+ const ctx = resource.parent?.opts()._ctx;
43084
+ if (!ctx) {
43085
+ process.stderr.write("Error: Not authenticated\n");
43086
+ process.exit(1);
43087
+ }
43088
+ const args = {};
43089
+ if (opts.code !== void 0)
43090
+ args.code = opts.code;
43091
+ if (opts["code.not"] !== void 0)
43092
+ args.code__not = opts["code.not"];
43093
+ if (opts["code.equals"] !== void 0)
43094
+ args.code__equals = opts["code.equals"];
43095
+ if (opts["code.contains"] !== void 0)
43096
+ args.code__contains = opts["code.contains"];
43097
+ if (opts["code.startsWith"] !== void 0)
43098
+ args.code__startsWith = opts["code.startsWith"];
43099
+ if (opts["code.endWith"] !== void 0)
43100
+ args.code__endWith = opts["code.endWith"];
43101
+ if (opts.name !== void 0)
43102
+ args.name = opts.name;
43103
+ if (opts["name.not"] !== void 0)
43104
+ args.name__not = opts["name.not"];
43105
+ if (opts["name.equals"] !== void 0)
43106
+ args.name__equals = opts["name.equals"];
43107
+ if (opts["name.contains"] !== void 0)
43108
+ args.name__contains = opts["name.contains"];
43109
+ if (opts["name.startsWith"] !== void 0)
43110
+ args.name__startsWith = opts["name.startsWith"];
43111
+ if (opts["name.endWith"] !== void 0)
43112
+ args.name__endWith = opts["name.endWith"];
43113
+ if (opts.status !== void 0)
43114
+ args.status = opts.status;
43115
+ if (opts["status.in"] !== void 0)
43116
+ args.status__in = opts["status.in"];
43117
+ if (opts.search !== void 0)
43118
+ args.search = opts.search;
43119
+ if (opts.take !== void 0)
43120
+ args.take = Number(opts.take);
43121
+ if (opts.skip !== void 0)
43122
+ args.skip = Number(opts.skip);
43123
+ await ctx.execute({
43124
+ method: "GET",
43125
+ path: "/v1/features",
43126
+ args,
43127
+ queryParamKeys: [
43128
+ "take",
43129
+ "skip",
43130
+ "code",
43131
+ "code__not",
43132
+ "code__equals",
43133
+ "code__contains",
43134
+ "code__startsWith",
43135
+ "code__endWith",
43136
+ "name",
43137
+ "name__not",
43138
+ "name__equals",
43139
+ "name__contains",
43140
+ "name__startsWith",
43141
+ "name__endWith",
43142
+ "status",
43143
+ "status__in",
43144
+ "search"
43145
+ ]
43146
+ });
43147
+ });
43148
+ resource.command("create").description(`Create a feature definition.`).requiredOption("--code <value>", `Feature code.`).requiredOption("--name <value>", `Feature name.`).option("--description <value>", `Feature description.`).requiredOption("--value-type <value>", `Type of feature value.`).requiredOption("--default-value", `Default value used when no product or customer feature value applies. Null means no default.`).option("--resolution-strategy <value>", `Strategy used to combine multiple product feature values for number features.`).addHelpText("after", `
43149
+ Examples:
43150
+ hyperline features create --code <code> --name <name> --value-type <value_type> --default-value
43151
+ hyperline features create --code <code> --name <name> --value-type <value_type> --default-value --description <description> --resolution-strategy <resolution_strategy>
43152
+ hyperline features create --code <code> --name <name> --value-type <value_type> --default-value --output json`).action(async (opts) => {
43153
+ const ctx = resource.parent?.opts()._ctx;
43154
+ if (!ctx) {
43155
+ process.stderr.write("Error: Not authenticated\n");
43156
+ process.exit(1);
43157
+ }
43158
+ const args = {};
43159
+ if (opts.code !== void 0)
43160
+ args.code = opts.code;
43161
+ if (opts.name !== void 0)
43162
+ args.name = opts.name;
43163
+ if (opts.description !== void 0)
43164
+ args.description = opts.description;
43165
+ if (opts.valueType !== void 0)
43166
+ args.value_type = opts.valueType;
43167
+ if (opts.resolutionStrategy !== void 0)
43168
+ args.resolution_strategy = opts.resolutionStrategy;
43169
+ if (opts.defaultValue !== void 0)
43170
+ args.default_value = true;
43171
+ await ctx.execute({
43172
+ method: "POST",
43173
+ path: "/v1/features",
43174
+ args,
43175
+ queryParamKeys: []
43176
+ });
43177
+ });
43178
+ resource.command("get").description(`Retrieve a feature definition.`).requiredOption("--code <value>", `code parameter`).addHelpText("after", `
43179
+ Examples:
43180
+ hyperline features get --code <code>`).action(async (opts) => {
43181
+ const ctx = resource.parent?.opts()._ctx;
43182
+ if (!ctx) {
43183
+ process.stderr.write("Error: Not authenticated\n");
43184
+ process.exit(1);
43185
+ }
43186
+ const args = {};
43187
+ if (opts.code !== void 0)
43188
+ args.code = opts.code;
43189
+ await ctx.execute({
43190
+ method: "GET",
43191
+ path: "/v1/features/{code}",
43192
+ args,
43193
+ queryParamKeys: []
43194
+ });
43195
+ });
43196
+ resource.command("update").description(`Update a feature definition.`).requiredOption("--code <value>", `code parameter`).option("--name <value>", `Feature name.`).option("--description <value>", `Feature description.`).option("--value-type <value>", `value_type`).option("--default-value", `Default value used when no product or customer feature value applies. Null means no default.`).option("--resolution-strategy <value>", `Strategy used to combine multiple product feature values for number features.`).addHelpText("after", `
43197
+ Examples:
43198
+ hyperline features update --code <code>
43199
+ hyperline features update --code <code> --name <name> --description <description>
43200
+ hyperline features update --code <code> --output json`).action(async (opts) => {
43201
+ const ctx = resource.parent?.opts()._ctx;
43202
+ if (!ctx) {
43203
+ process.stderr.write("Error: Not authenticated\n");
43204
+ process.exit(1);
43205
+ }
43206
+ const args = {};
43207
+ if (opts.code !== void 0)
43208
+ args.code = opts.code;
43209
+ if (opts.name !== void 0)
43210
+ args.name = opts.name;
43211
+ if (opts.description !== void 0)
43212
+ args.description = opts.description;
43213
+ if (opts.valueType !== void 0)
43214
+ args.value_type = opts.valueType;
43215
+ if (opts.resolutionStrategy !== void 0)
43216
+ args.resolution_strategy = opts.resolutionStrategy;
43217
+ if (opts.defaultValue !== void 0)
43218
+ args.default_value = true;
43219
+ await ctx.execute({
43220
+ method: "PUT",
43221
+ path: "/v1/features/{code}",
43222
+ args,
43223
+ queryParamKeys: []
43224
+ });
43225
+ });
43226
+ resource.command("archive").description(`Archive a feature definition.`).requiredOption("--code <value>", `code parameter`).addHelpText("after", `
43227
+ Examples:
43228
+ hyperline features archive --code <code>
43229
+ hyperline features archive --code <code> --output json`).action(async (opts) => {
43230
+ const ctx = resource.parent?.opts()._ctx;
43231
+ if (!ctx) {
43232
+ process.stderr.write("Error: Not authenticated\n");
43233
+ process.exit(1);
43234
+ }
43235
+ const args = {};
43236
+ if (opts.code !== void 0)
43237
+ args.code = opts.code;
43238
+ await ctx.execute({
43239
+ method: "PUT",
43240
+ path: "/v1/features/{code}/archive",
43241
+ args,
43242
+ queryParamKeys: []
43243
+ });
43244
+ });
43245
+ resource.command("delete").description(`Delete an archived feature definition that is not in use.`).requiredOption("--code <value>", `code parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
43246
+ Examples:
43247
+ hyperline features delete --code <code>
43248
+ hyperline features delete --code <code> --output json`).action(async (opts) => {
43249
+ const ctx = resource.parent?.opts()._ctx;
43250
+ if (!ctx) {
43251
+ process.stderr.write("Error: Not authenticated\n");
43252
+ process.exit(1);
43253
+ }
43254
+ const args = {};
43255
+ if (opts.code !== void 0)
43256
+ args.code = opts.code;
43257
+ if (!opts.yes) {
43258
+ const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
43259
+ if (!confirmed) {
43260
+ process.stdout.write("Aborted.\n");
43261
+ return;
43262
+ }
43263
+ }
43264
+ await ctx.execute({
43265
+ method: "DELETE",
43266
+ path: "/v1/features/{code}",
43267
+ args,
43268
+ queryParamKeys: []
43269
+ });
43270
+ });
43271
+ resource.command("unarchive").description(`Unarchive a feature definition.`).requiredOption("--code <value>", `code parameter`).addHelpText("after", `
43272
+ Examples:
43273
+ hyperline features unarchive --code <code>
43274
+ hyperline features unarchive --code <code> --output json`).action(async (opts) => {
43275
+ const ctx = resource.parent?.opts()._ctx;
43276
+ if (!ctx) {
43277
+ process.stderr.write("Error: Not authenticated\n");
43278
+ process.exit(1);
43279
+ }
43280
+ const args = {};
43281
+ if (opts.code !== void 0)
43282
+ args.code = opts.code;
43283
+ await ctx.execute({
43284
+ method: "PUT",
43285
+ path: "/v1/features/{code}/unarchive",
43286
+ args,
43287
+ queryParamKeys: []
43288
+ });
43289
+ });
43290
+ }
43291
+
42839
43292
  // build/commands/generated/files.js
42840
43293
  function registerFilesCommands(parent) {
42841
43294
  const resource = parent.command("files").description("Manage files");
@@ -42857,7 +43310,7 @@ Examples:
42857
43310
  queryParamKeys: []
42858
43311
  });
42859
43312
  });
42860
- resource.command("list").description(`List uploaded files with optional filters for name and customer_id. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).addHelpText("after", `
43313
+ resource.command("list").description(`List uploaded files with optional filters for name and customer_id. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).addHelpText("after", `
42861
43314
  Examples:
42862
43315
  hyperline files list
42863
43316
  hyperline files list --take <take> --name <name>`).action(async (opts) => {
@@ -42871,10 +43324,6 @@ Examples:
42871
43324
  args.name = opts.name;
42872
43325
  if (opts["name.not"] !== void 0)
42873
43326
  args.name__not = opts["name.not"];
42874
- if (opts["name.isNull"] !== void 0)
42875
- args.name__isNull = opts["name.isNull"];
42876
- if (opts["name.isNotNull"] !== void 0)
42877
- args.name__isNotNull = opts["name.isNotNull"];
42878
43327
  if (opts["name.equals"] !== void 0)
42879
43328
  args.name__equals = opts["name.equals"];
42880
43329
  if (opts["name.contains"] !== void 0)
@@ -42887,10 +43336,6 @@ Examples:
42887
43336
  args.customer_id = opts.customerId;
42888
43337
  if (opts["customerId.not"] !== void 0)
42889
43338
  args.customer_id__not = opts["customerId.not"];
42890
- if (opts["customerId.isNull"] !== void 0)
42891
- args.customer_id__isNull = opts["customerId.isNull"];
42892
- if (opts["customerId.isNotNull"] !== void 0)
42893
- args.customer_id__isNotNull = opts["customerId.isNotNull"];
42894
43339
  if (opts["customerId.equals"] !== void 0)
42895
43340
  args.customer_id__equals = opts["customerId.equals"];
42896
43341
  if (opts["customerId.contains"] !== void 0)
@@ -42899,6 +43344,10 @@ Examples:
42899
43344
  args.customer_id__startsWith = opts["customerId.startsWith"];
42900
43345
  if (opts["customerId.endWith"] !== void 0)
42901
43346
  args.customer_id__endWith = opts["customerId.endWith"];
43347
+ if (opts["customerId.isNull"] !== void 0)
43348
+ args.customer_id__isNull = opts["customerId.isNull"];
43349
+ if (opts["customerId.isNotNull"] !== void 0)
43350
+ args.customer_id__isNotNull = opts["customerId.isNotNull"];
42902
43351
  if (opts.take !== void 0)
42903
43352
  args.take = Number(opts.take);
42904
43353
  if (opts.skip !== void 0)
@@ -42912,20 +43361,18 @@ Examples:
42912
43361
  "skip",
42913
43362
  "name",
42914
43363
  "name__not",
42915
- "name__isNull",
42916
- "name__isNotNull",
42917
43364
  "name__equals",
42918
43365
  "name__contains",
42919
43366
  "name__startsWith",
42920
43367
  "name__endWith",
42921
43368
  "customer_id",
42922
43369
  "customer_id__not",
42923
- "customer_id__isNull",
42924
- "customer_id__isNotNull",
42925
43370
  "customer_id__equals",
42926
43371
  "customer_id__contains",
42927
43372
  "customer_id__startsWith",
42928
- "customer_id__endWith"
43373
+ "customer_id__endWith",
43374
+ "customer_id__isNull",
43375
+ "customer_id__isNotNull"
42929
43376
  ]
42930
43377
  });
42931
43378
  });
@@ -42981,7 +43428,7 @@ Examples:
42981
43428
  // build/commands/generated/invoices.js
42982
43429
  function registerInvoicesCommands(parent) {
42983
43430
  const resource = parent.command("invoices").description("Manage invoices");
42984
- resource.command("list").description(`List invoices with filters for type, status, customer_id, customer_external_id, subscription_id, invoicing_entity_id, invoice_number, period dates, emission_date, due_date, and updated_at. Sortable by created_at or emitted_at. By default, open invoices are excluded. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-external-id <value>", `customer_external_id`).option("--subscription-id <value>", `subscription_id`).option("--subscription-id.not <value>", `subscription_id__not`).option("--subscription-id.is-null <value>", `subscription_id__isNull`).option("--subscription-id.is-not-null <value>", `subscription_id__isNotNull`).option("--subscription-id.equals <value>", `subscription_id__equals`).option("--subscription-id.contains <value>", `subscription_id__contains`).option("--subscription-id.starts-with <value>", `subscription_id__startsWith`).option("--subscription-id.end-with <value>", `subscription_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--invoice-number <value>", `invoice_number`).option("--invoice-number.not <value>", `invoice_number__not`).option("--invoice-number.is-null <value>", `invoice_number__isNull`).option("--invoice-number.is-not-null <value>", `invoice_number__isNotNull`).option("--invoice-number.equals <value>", `invoice_number__equals`).option("--invoice-number.contains <value>", `invoice_number__contains`).option("--invoice-number.starts-with <value>", `invoice_number__startsWith`).option("--invoice-number.end-with <value>", `invoice_number__endWith`).option("--original-invoice-id <value>", `original_invoice_id`).option("--original-invoice-id.not <value>", `original_invoice_id__not`).option("--original-invoice-id.is-null <value>", `original_invoice_id__isNull`).option("--original-invoice-id.is-not-null <value>", `original_invoice_id__isNotNull`).option("--original-invoice-id.equals <value>", `original_invoice_id__equals`).option("--original-invoice-id.contains <value>", `original_invoice_id__contains`).option("--original-invoice-id.starts-with <value>", `original_invoice_id__startsWith`).option("--original-invoice-id.end-with <value>", `original_invoice_id__endWith`).option("--original-invoice-number <value>", `original_invoice_number`).option("--original-invoice-number.not <value>", `original_invoice_number__not`).option("--original-invoice-number.is-null <value>", `original_invoice_number__isNull`).option("--original-invoice-number.is-not-null <value>", `original_invoice_number__isNotNull`).option("--original-invoice-number.equals <value>", `original_invoice_number__equals`).option("--original-invoice-number.contains <value>", `original_invoice_number__contains`).option("--original-invoice-number.starts-with <value>", `original_invoice_number__startsWith`).option("--original-invoice-number.end-with <value>", `original_invoice_number__endWith`).option("--line-item-id <value>", `line_item_id`).option("--period-start <value>", `period_start`).option("--period-start.not <value>", `period_start__not`).option("--period-start.is-null <value>", `period_start__isNull`).option("--period-start.is-not-null <value>", `period_start__isNotNull`).option("--period-start.equals <value>", `period_start__equals`).option("--period-start.lt <value>", `period_start__lt`).option("--period-start.lte <value>", `period_start__lte`).option("--period-start.gt <value>", `period_start__gt`).option("--period-start.gte <value>", `period_start__gte`).option("--period-end <value>", `period_end`).option("--period-end.not <value>", `period_end__not`).option("--period-end.is-null <value>", `period_end__isNull`).option("--period-end.is-not-null <value>", `period_end__isNotNull`).option("--period-end.equals <value>", `period_end__equals`).option("--period-end.lt <value>", `period_end__lt`).option("--period-end.lte <value>", `period_end__lte`).option("--period-end.gt <value>", `period_end__gt`).option("--period-end.gte <value>", `period_end__gte`).option("--issued-at <value>", `issued_at`).option("--issued-at.not <value>", `issued_at__not`).option("--issued-at.is-null <value>", `issued_at__isNull`).option("--issued-at.is-not-null <value>", `issued_at__isNotNull`).option("--issued-at.equals <value>", `issued_at__equals`).option("--issued-at.lt <value>", `issued_at__lt`).option("--issued-at.lte <value>", `issued_at__lte`).option("--issued-at.gt <value>", `issued_at__gt`).option("--issued-at.gte <value>", `issued_at__gte`).option("--due-at <value>", `due_at`).option("--due-at.not <value>", `due_at__not`).option("--due-at.is-null <value>", `due_at__isNull`).option("--due-at.is-not-null <value>", `due_at__isNotNull`).option("--due-at.equals <value>", `due_at__equals`).option("--due-at.lt <value>", `due_at__lt`).option("--due-at.lte <value>", `due_at__lte`).option("--due-at.gt <value>", `due_at__gt`).option("--due-at.gte <value>", `due_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
43431
+ resource.command("list").description(`List invoices with filters for type, status, customer_id, customer_external_id, subscription_id, invoicing_entity_id, invoice_number, period dates, emission_date, due_date, and updated_at. Sortable by created_at or emitted_at. By default, open invoices are excluded. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-external-id <value>", `customer_external_id`).option("--subscription-id <value>", `subscription_id`).option("--subscription-id.not <value>", `subscription_id__not`).option("--subscription-id.equals <value>", `subscription_id__equals`).option("--subscription-id.contains <value>", `subscription_id__contains`).option("--subscription-id.starts-with <value>", `subscription_id__startsWith`).option("--subscription-id.end-with <value>", `subscription_id__endWith`).option("--subscription-id.is-null <value>", `subscription_id__isNull`).option("--subscription-id.is-not-null <value>", `subscription_id__isNotNull`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--invoice-number <value>", `invoice_number`).option("--invoice-number.not <value>", `invoice_number__not`).option("--invoice-number.equals <value>", `invoice_number__equals`).option("--invoice-number.contains <value>", `invoice_number__contains`).option("--invoice-number.starts-with <value>", `invoice_number__startsWith`).option("--invoice-number.end-with <value>", `invoice_number__endWith`).option("--original-invoice-id <value>", `original_invoice_id`).option("--original-invoice-id.not <value>", `original_invoice_id__not`).option("--original-invoice-id.equals <value>", `original_invoice_id__equals`).option("--original-invoice-id.contains <value>", `original_invoice_id__contains`).option("--original-invoice-id.starts-with <value>", `original_invoice_id__startsWith`).option("--original-invoice-id.end-with <value>", `original_invoice_id__endWith`).option("--original-invoice-id.is-null <value>", `original_invoice_id__isNull`).option("--original-invoice-id.is-not-null <value>", `original_invoice_id__isNotNull`).option("--original-invoice-number <value>", `original_invoice_number`).option("--original-invoice-number.not <value>", `original_invoice_number__not`).option("--original-invoice-number.equals <value>", `original_invoice_number__equals`).option("--original-invoice-number.contains <value>", `original_invoice_number__contains`).option("--original-invoice-number.starts-with <value>", `original_invoice_number__startsWith`).option("--original-invoice-number.end-with <value>", `original_invoice_number__endWith`).option("--original-invoice-number.is-null <value>", `original_invoice_number__isNull`).option("--original-invoice-number.is-not-null <value>", `original_invoice_number__isNotNull`).option("--line-item-id <value>", `line_item_id`).option("--period-start <value>", `period_start`).option("--period-start.not <value>", `period_start__not`).option("--period-start.equals <value>", `period_start__equals`).option("--period-start.lt <value>", `period_start__lt`).option("--period-start.lte <value>", `period_start__lte`).option("--period-start.gt <value>", `period_start__gt`).option("--period-start.gte <value>", `period_start__gte`).option("--period-start.is-null <value>", `period_start__isNull`).option("--period-start.is-not-null <value>", `period_start__isNotNull`).option("--period-end <value>", `period_end`).option("--period-end.not <value>", `period_end__not`).option("--period-end.equals <value>", `period_end__equals`).option("--period-end.lt <value>", `period_end__lt`).option("--period-end.lte <value>", `period_end__lte`).option("--period-end.gt <value>", `period_end__gt`).option("--period-end.gte <value>", `period_end__gte`).option("--period-end.is-null <value>", `period_end__isNull`).option("--period-end.is-not-null <value>", `period_end__isNotNull`).option("--issued-at <value>", `issued_at`).option("--issued-at.not <value>", `issued_at__not`).option("--issued-at.equals <value>", `issued_at__equals`).option("--issued-at.lt <value>", `issued_at__lt`).option("--issued-at.lte <value>", `issued_at__lte`).option("--issued-at.gt <value>", `issued_at__gt`).option("--issued-at.gte <value>", `issued_at__gte`).option("--due-at <value>", `due_at`).option("--due-at.not <value>", `due_at__not`).option("--due-at.equals <value>", `due_at__equals`).option("--due-at.lt <value>", `due_at__lt`).option("--due-at.lte <value>", `due_at__lte`).option("--due-at.gt <value>", `due_at__gt`).option("--due-at.gte <value>", `due_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
42985
43432
  Examples:
42986
43433
  hyperline invoices list
42987
43434
  hyperline invoices list --limit <limit> --cursor <cursor>`).action(async (opts) => {
@@ -43011,10 +43458,6 @@ Examples:
43011
43458
  args.customer_id = opts.customerId;
43012
43459
  if (opts["customerId.not"] !== void 0)
43013
43460
  args.customer_id__not = opts["customerId.not"];
43014
- if (opts["customerId.isNull"] !== void 0)
43015
- args.customer_id__isNull = opts["customerId.isNull"];
43016
- if (opts["customerId.isNotNull"] !== void 0)
43017
- args.customer_id__isNotNull = opts["customerId.isNotNull"];
43018
43461
  if (opts["customerId.equals"] !== void 0)
43019
43462
  args.customer_id__equals = opts["customerId.equals"];
43020
43463
  if (opts["customerId.contains"] !== void 0)
@@ -43029,10 +43472,6 @@ Examples:
43029
43472
  args.subscription_id = opts.subscriptionId;
43030
43473
  if (opts["subscriptionId.not"] !== void 0)
43031
43474
  args.subscription_id__not = opts["subscriptionId.not"];
43032
- if (opts["subscriptionId.isNull"] !== void 0)
43033
- args.subscription_id__isNull = opts["subscriptionId.isNull"];
43034
- if (opts["subscriptionId.isNotNull"] !== void 0)
43035
- args.subscription_id__isNotNull = opts["subscriptionId.isNotNull"];
43036
43475
  if (opts["subscriptionId.equals"] !== void 0)
43037
43476
  args.subscription_id__equals = opts["subscriptionId.equals"];
43038
43477
  if (opts["subscriptionId.contains"] !== void 0)
@@ -43041,14 +43480,14 @@ Examples:
43041
43480
  args.subscription_id__startsWith = opts["subscriptionId.startsWith"];
43042
43481
  if (opts["subscriptionId.endWith"] !== void 0)
43043
43482
  args.subscription_id__endWith = opts["subscriptionId.endWith"];
43483
+ if (opts["subscriptionId.isNull"] !== void 0)
43484
+ args.subscription_id__isNull = opts["subscriptionId.isNull"];
43485
+ if (opts["subscriptionId.isNotNull"] !== void 0)
43486
+ args.subscription_id__isNotNull = opts["subscriptionId.isNotNull"];
43044
43487
  if (opts.invoicingEntityId !== void 0)
43045
43488
  args.invoicing_entity_id = opts.invoicingEntityId;
43046
43489
  if (opts["invoicingEntityId.not"] !== void 0)
43047
43490
  args.invoicing_entity_id__not = opts["invoicingEntityId.not"];
43048
- if (opts["invoicingEntityId.isNull"] !== void 0)
43049
- args.invoicing_entity_id__isNull = opts["invoicingEntityId.isNull"];
43050
- if (opts["invoicingEntityId.isNotNull"] !== void 0)
43051
- args.invoicing_entity_id__isNotNull = opts["invoicingEntityId.isNotNull"];
43052
43491
  if (opts["invoicingEntityId.equals"] !== void 0)
43053
43492
  args.invoicing_entity_id__equals = opts["invoicingEntityId.equals"];
43054
43493
  if (opts["invoicingEntityId.contains"] !== void 0)
@@ -43061,10 +43500,6 @@ Examples:
43061
43500
  args.invoice_number = opts.invoiceNumber;
43062
43501
  if (opts["invoiceNumber.not"] !== void 0)
43063
43502
  args.invoice_number__not = opts["invoiceNumber.not"];
43064
- if (opts["invoiceNumber.isNull"] !== void 0)
43065
- args.invoice_number__isNull = opts["invoiceNumber.isNull"];
43066
- if (opts["invoiceNumber.isNotNull"] !== void 0)
43067
- args.invoice_number__isNotNull = opts["invoiceNumber.isNotNull"];
43068
43503
  if (opts["invoiceNumber.equals"] !== void 0)
43069
43504
  args.invoice_number__equals = opts["invoiceNumber.equals"];
43070
43505
  if (opts["invoiceNumber.contains"] !== void 0)
@@ -43077,10 +43512,6 @@ Examples:
43077
43512
  args.original_invoice_id = opts.originalInvoiceId;
43078
43513
  if (opts["originalInvoiceId.not"] !== void 0)
43079
43514
  args.original_invoice_id__not = opts["originalInvoiceId.not"];
43080
- if (opts["originalInvoiceId.isNull"] !== void 0)
43081
- args.original_invoice_id__isNull = opts["originalInvoiceId.isNull"];
43082
- if (opts["originalInvoiceId.isNotNull"] !== void 0)
43083
- args.original_invoice_id__isNotNull = opts["originalInvoiceId.isNotNull"];
43084
43515
  if (opts["originalInvoiceId.equals"] !== void 0)
43085
43516
  args.original_invoice_id__equals = opts["originalInvoiceId.equals"];
43086
43517
  if (opts["originalInvoiceId.contains"] !== void 0)
@@ -43089,14 +43520,14 @@ Examples:
43089
43520
  args.original_invoice_id__startsWith = opts["originalInvoiceId.startsWith"];
43090
43521
  if (opts["originalInvoiceId.endWith"] !== void 0)
43091
43522
  args.original_invoice_id__endWith = opts["originalInvoiceId.endWith"];
43523
+ if (opts["originalInvoiceId.isNull"] !== void 0)
43524
+ args.original_invoice_id__isNull = opts["originalInvoiceId.isNull"];
43525
+ if (opts["originalInvoiceId.isNotNull"] !== void 0)
43526
+ args.original_invoice_id__isNotNull = opts["originalInvoiceId.isNotNull"];
43092
43527
  if (opts.originalInvoiceNumber !== void 0)
43093
43528
  args.original_invoice_number = opts.originalInvoiceNumber;
43094
43529
  if (opts["originalInvoiceNumber.not"] !== void 0)
43095
43530
  args.original_invoice_number__not = opts["originalInvoiceNumber.not"];
43096
- if (opts["originalInvoiceNumber.isNull"] !== void 0)
43097
- args.original_invoice_number__isNull = opts["originalInvoiceNumber.isNull"];
43098
- if (opts["originalInvoiceNumber.isNotNull"] !== void 0)
43099
- args.original_invoice_number__isNotNull = opts["originalInvoiceNumber.isNotNull"];
43100
43531
  if (opts["originalInvoiceNumber.equals"] !== void 0)
43101
43532
  args.original_invoice_number__equals = opts["originalInvoiceNumber.equals"];
43102
43533
  if (opts["originalInvoiceNumber.contains"] !== void 0)
@@ -43105,16 +43536,16 @@ Examples:
43105
43536
  args.original_invoice_number__startsWith = opts["originalInvoiceNumber.startsWith"];
43106
43537
  if (opts["originalInvoiceNumber.endWith"] !== void 0)
43107
43538
  args.original_invoice_number__endWith = opts["originalInvoiceNumber.endWith"];
43539
+ if (opts["originalInvoiceNumber.isNull"] !== void 0)
43540
+ args.original_invoice_number__isNull = opts["originalInvoiceNumber.isNull"];
43541
+ if (opts["originalInvoiceNumber.isNotNull"] !== void 0)
43542
+ args.original_invoice_number__isNotNull = opts["originalInvoiceNumber.isNotNull"];
43108
43543
  if (opts.lineItemId !== void 0)
43109
43544
  args.line_item_id = opts.lineItemId;
43110
43545
  if (opts.periodStart !== void 0)
43111
43546
  args.period_start = opts.periodStart;
43112
43547
  if (opts["periodStart.not"] !== void 0)
43113
43548
  args.period_start__not = opts["periodStart.not"];
43114
- if (opts["periodStart.isNull"] !== void 0)
43115
- args.period_start__isNull = opts["periodStart.isNull"];
43116
- if (opts["periodStart.isNotNull"] !== void 0)
43117
- args.period_start__isNotNull = opts["periodStart.isNotNull"];
43118
43549
  if (opts["periodStart.equals"] !== void 0)
43119
43550
  args.period_start__equals = opts["periodStart.equals"];
43120
43551
  if (opts["periodStart.lt"] !== void 0)
@@ -43125,14 +43556,14 @@ Examples:
43125
43556
  args.period_start__gt = opts["periodStart.gt"];
43126
43557
  if (opts["periodStart.gte"] !== void 0)
43127
43558
  args.period_start__gte = opts["periodStart.gte"];
43559
+ if (opts["periodStart.isNull"] !== void 0)
43560
+ args.period_start__isNull = opts["periodStart.isNull"];
43561
+ if (opts["periodStart.isNotNull"] !== void 0)
43562
+ args.period_start__isNotNull = opts["periodStart.isNotNull"];
43128
43563
  if (opts.periodEnd !== void 0)
43129
43564
  args.period_end = opts.periodEnd;
43130
43565
  if (opts["periodEnd.not"] !== void 0)
43131
43566
  args.period_end__not = opts["periodEnd.not"];
43132
- if (opts["periodEnd.isNull"] !== void 0)
43133
- args.period_end__isNull = opts["periodEnd.isNull"];
43134
- if (opts["periodEnd.isNotNull"] !== void 0)
43135
- args.period_end__isNotNull = opts["periodEnd.isNotNull"];
43136
43567
  if (opts["periodEnd.equals"] !== void 0)
43137
43568
  args.period_end__equals = opts["periodEnd.equals"];
43138
43569
  if (opts["periodEnd.lt"] !== void 0)
@@ -43143,14 +43574,14 @@ Examples:
43143
43574
  args.period_end__gt = opts["periodEnd.gt"];
43144
43575
  if (opts["periodEnd.gte"] !== void 0)
43145
43576
  args.period_end__gte = opts["periodEnd.gte"];
43577
+ if (opts["periodEnd.isNull"] !== void 0)
43578
+ args.period_end__isNull = opts["periodEnd.isNull"];
43579
+ if (opts["periodEnd.isNotNull"] !== void 0)
43580
+ args.period_end__isNotNull = opts["periodEnd.isNotNull"];
43146
43581
  if (opts.issuedAt !== void 0)
43147
43582
  args.issued_at = opts.issuedAt;
43148
43583
  if (opts["issuedAt.not"] !== void 0)
43149
43584
  args.issued_at__not = opts["issuedAt.not"];
43150
- if (opts["issuedAt.isNull"] !== void 0)
43151
- args.issued_at__isNull = opts["issuedAt.isNull"];
43152
- if (opts["issuedAt.isNotNull"] !== void 0)
43153
- args.issued_at__isNotNull = opts["issuedAt.isNotNull"];
43154
43585
  if (opts["issuedAt.equals"] !== void 0)
43155
43586
  args.issued_at__equals = opts["issuedAt.equals"];
43156
43587
  if (opts["issuedAt.lt"] !== void 0)
@@ -43165,10 +43596,6 @@ Examples:
43165
43596
  args.due_at = opts.dueAt;
43166
43597
  if (opts["dueAt.not"] !== void 0)
43167
43598
  args.due_at__not = opts["dueAt.not"];
43168
- if (opts["dueAt.isNull"] !== void 0)
43169
- args.due_at__isNull = opts["dueAt.isNull"];
43170
- if (opts["dueAt.isNotNull"] !== void 0)
43171
- args.due_at__isNotNull = opts["dueAt.isNotNull"];
43172
43599
  if (opts["dueAt.equals"] !== void 0)
43173
43600
  args.due_at__equals = opts["dueAt.equals"];
43174
43601
  if (opts["dueAt.lt"] !== void 0)
@@ -43183,10 +43610,6 @@ Examples:
43183
43610
  args.updated_at = opts.updatedAt;
43184
43611
  if (opts["updatedAt.not"] !== void 0)
43185
43612
  args.updated_at__not = opts["updatedAt.not"];
43186
- if (opts["updatedAt.isNull"] !== void 0)
43187
- args.updated_at__isNull = opts["updatedAt.isNull"];
43188
- if (opts["updatedAt.isNotNull"] !== void 0)
43189
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
43190
43613
  if (opts["updatedAt.equals"] !== void 0)
43191
43614
  args.updated_at__equals = opts["updatedAt.equals"];
43192
43615
  if (opts["updatedAt.lt"] !== void 0)
@@ -43215,8 +43638,6 @@ Examples:
43215
43638
  "status__in",
43216
43639
  "customer_id",
43217
43640
  "customer_id__not",
43218
- "customer_id__isNull",
43219
- "customer_id__isNotNull",
43220
43641
  "customer_id__equals",
43221
43642
  "customer_id__contains",
43222
43643
  "customer_id__startsWith",
@@ -43224,67 +43645,61 @@ Examples:
43224
43645
  "customer_external_id",
43225
43646
  "subscription_id",
43226
43647
  "subscription_id__not",
43227
- "subscription_id__isNull",
43228
- "subscription_id__isNotNull",
43229
43648
  "subscription_id__equals",
43230
43649
  "subscription_id__contains",
43231
43650
  "subscription_id__startsWith",
43232
43651
  "subscription_id__endWith",
43652
+ "subscription_id__isNull",
43653
+ "subscription_id__isNotNull",
43233
43654
  "invoicing_entity_id",
43234
43655
  "invoicing_entity_id__not",
43235
- "invoicing_entity_id__isNull",
43236
- "invoicing_entity_id__isNotNull",
43237
43656
  "invoicing_entity_id__equals",
43238
43657
  "invoicing_entity_id__contains",
43239
43658
  "invoicing_entity_id__startsWith",
43240
43659
  "invoicing_entity_id__endWith",
43241
43660
  "invoice_number",
43242
43661
  "invoice_number__not",
43243
- "invoice_number__isNull",
43244
- "invoice_number__isNotNull",
43245
43662
  "invoice_number__equals",
43246
43663
  "invoice_number__contains",
43247
43664
  "invoice_number__startsWith",
43248
43665
  "invoice_number__endWith",
43249
43666
  "original_invoice_id",
43250
43667
  "original_invoice_id__not",
43251
- "original_invoice_id__isNull",
43252
- "original_invoice_id__isNotNull",
43253
43668
  "original_invoice_id__equals",
43254
43669
  "original_invoice_id__contains",
43255
43670
  "original_invoice_id__startsWith",
43256
43671
  "original_invoice_id__endWith",
43672
+ "original_invoice_id__isNull",
43673
+ "original_invoice_id__isNotNull",
43257
43674
  "original_invoice_number",
43258
43675
  "original_invoice_number__not",
43259
- "original_invoice_number__isNull",
43260
- "original_invoice_number__isNotNull",
43261
43676
  "original_invoice_number__equals",
43262
43677
  "original_invoice_number__contains",
43263
43678
  "original_invoice_number__startsWith",
43264
43679
  "original_invoice_number__endWith",
43680
+ "original_invoice_number__isNull",
43681
+ "original_invoice_number__isNotNull",
43265
43682
  "line_item_id",
43266
43683
  "period_start",
43267
43684
  "period_start__not",
43268
- "period_start__isNull",
43269
- "period_start__isNotNull",
43270
43685
  "period_start__equals",
43271
43686
  "period_start__lt",
43272
43687
  "period_start__lte",
43273
43688
  "period_start__gt",
43274
43689
  "period_start__gte",
43690
+ "period_start__isNull",
43691
+ "period_start__isNotNull",
43275
43692
  "period_end",
43276
43693
  "period_end__not",
43277
- "period_end__isNull",
43278
- "period_end__isNotNull",
43279
43694
  "period_end__equals",
43280
43695
  "period_end__lt",
43281
43696
  "period_end__lte",
43282
43697
  "period_end__gt",
43283
43698
  "period_end__gte",
43699
+ "period_end__isNull",
43700
+ "period_end__isNotNull",
43284
43701
  "issued_at",
43285
43702
  "issued_at__not",
43286
- "issued_at__isNull",
43287
- "issued_at__isNotNull",
43288
43703
  "issued_at__equals",
43289
43704
  "issued_at__lt",
43290
43705
  "issued_at__lte",
@@ -43292,8 +43707,6 @@ Examples:
43292
43707
  "issued_at__gte",
43293
43708
  "due_at",
43294
43709
  "due_at__not",
43295
- "due_at__isNull",
43296
- "due_at__isNotNull",
43297
43710
  "due_at__equals",
43298
43711
  "due_at__lt",
43299
43712
  "due_at__lte",
@@ -43301,8 +43714,6 @@ Examples:
43301
43714
  "due_at__gte",
43302
43715
  "updated_at",
43303
43716
  "updated_at__not",
43304
- "updated_at__isNull",
43305
- "updated_at__isNotNull",
43306
43717
  "updated_at__equals",
43307
43718
  "updated_at__lt",
43308
43719
  "updated_at__lte",
@@ -43536,6 +43947,36 @@ Examples:
43536
43947
  queryParamKeys: []
43537
43948
  });
43538
43949
  });
43950
+ resource.command("send-invoice-emails").description(`Send a specific email (\`email_type\`, e.g. \`invoice_ready\` for the to-pay email) to the customer for a list of invoice IDs, asynchronously in batch. Returns a batch_id only; outcomes arrive via webhooks (invoice.batch.email_succeeded / invoice.batch.email_skipped / invoice.batch.email_failed). An invoice whose status doesn't match the email (e.g. a draft or an invoice still pending approval after validate_invoice) is skipped, so check each invoice's status with get_invoice first. Every call sends the emails again: never re-call it to retry or check status.`).option("--batch-id <value>", `Optional client-supplied identifier for the batch. Echoed back in the response and on the emitted webhook events. Generated if omitted.`).requiredOption("--email-type <value>", `The email to send. The invoice's status must resolve to this email, otherwise it is skipped with reason \`email_type_mismatch\`.
43951
+
43952
+ - \`invoice_ready\`: The to-pay invoice email (for \`to_pay\`, \`partially_paid\`, \`late\` invoices).
43953
+ - \`invoice_settled\`: The paid-invoice email (for \`paid\` invoices).
43954
+ - \`invoice_errored\`: The failed-payment email (for \`error\` invoices with a payment method).
43955
+ - \`credit_note_ready\`: The issued-credit-note email (for \`to_pay\`, \`partially_paid\` refunds).
43956
+ - \`credit_note_settled\`: The credit-note email (for paid refunds).`).requiredOption("--ids <json>", `IDs of the invoices to send the email for. Processed asynchronously; each outcome is reported via webhook events.`).addHelpText("after", `
43957
+ Examples:
43958
+ hyperline invoices send-invoice-emails --email-type <email_type> --ids <ids>
43959
+ hyperline invoices send-invoice-emails --email-type <email_type> --ids <ids> --batch-id <batch_id>
43960
+ hyperline invoices send-invoice-emails --email-type <email_type> --ids <ids> --output json`).action(async (opts) => {
43961
+ const ctx = resource.parent?.opts()._ctx;
43962
+ if (!ctx) {
43963
+ process.stderr.write("Error: Not authenticated\n");
43964
+ process.exit(1);
43965
+ }
43966
+ const args = {};
43967
+ if (opts.batchId !== void 0)
43968
+ args.batch_id = opts.batchId;
43969
+ if (opts.emailType !== void 0)
43970
+ args.email_type = opts.emailType;
43971
+ if (opts.ids !== void 0)
43972
+ args.ids = JSON.parse(opts.ids);
43973
+ await ctx.execute({
43974
+ method: "POST",
43975
+ path: "/v1/invoices/send-email",
43976
+ args,
43977
+ queryParamKeys: []
43978
+ });
43979
+ });
43539
43980
  resource.command("mark-invoice-as-uncollectible").description(`Mark an invoice as uncollectible for accounting write-off purposes. The invoice remains in the system for record keeping.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
43540
43981
  Examples:
43541
43982
  hyperline invoices mark-invoice-as-uncollectible --id <id>
@@ -44030,7 +44471,7 @@ Examples:
44030
44471
  // build/commands/generated/organisations.js
44031
44472
  function registerOrganisationsCommands(parent) {
44032
44473
  const resource = parent.command("organisations").description("Manage organisations");
44033
- resource.command("list").description(`Retrieve organisations with their billing details and child customer IDs.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.is-null <value>", `created_at__isNull`).option("--created-at.is-not-null <value>", `created_at__isNotNull`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
44474
+ resource.command("list").description(`Retrieve organisations with their billing details and child customer IDs.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
44034
44475
  Examples:
44035
44476
  hyperline organisations list
44036
44477
  hyperline organisations list --limit <limit> --cursor <cursor>`).action(async (opts) => {
@@ -44052,10 +44493,6 @@ Examples:
44052
44493
  args.created_at = opts.createdAt;
44053
44494
  if (opts["createdAt.not"] !== void 0)
44054
44495
  args.created_at__not = opts["createdAt.not"];
44055
- if (opts["createdAt.isNull"] !== void 0)
44056
- args.created_at__isNull = opts["createdAt.isNull"];
44057
- if (opts["createdAt.isNotNull"] !== void 0)
44058
- args.created_at__isNotNull = opts["createdAt.isNotNull"];
44059
44496
  if (opts["createdAt.equals"] !== void 0)
44060
44497
  args.created_at__equals = opts["createdAt.equals"];
44061
44498
  if (opts["createdAt.lt"] !== void 0)
@@ -44070,10 +44507,6 @@ Examples:
44070
44507
  args.updated_at = opts.updatedAt;
44071
44508
  if (opts["updatedAt.not"] !== void 0)
44072
44509
  args.updated_at__not = opts["updatedAt.not"];
44073
- if (opts["updatedAt.isNull"] !== void 0)
44074
- args.updated_at__isNull = opts["updatedAt.isNull"];
44075
- if (opts["updatedAt.isNotNull"] !== void 0)
44076
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
44077
44510
  if (opts["updatedAt.equals"] !== void 0)
44078
44511
  args.updated_at__equals = opts["updatedAt.equals"];
44079
44512
  if (opts["updatedAt.lt"] !== void 0)
@@ -44098,8 +44531,6 @@ Examples:
44098
44531
  "sort",
44099
44532
  "created_at",
44100
44533
  "created_at__not",
44101
- "created_at__isNull",
44102
- "created_at__isNotNull",
44103
44534
  "created_at__equals",
44104
44535
  "created_at__lt",
44105
44536
  "created_at__lte",
@@ -44107,8 +44538,6 @@ Examples:
44107
44538
  "created_at__gte",
44108
44539
  "updated_at",
44109
44540
  "updated_at__not",
44110
- "updated_at__isNull",
44111
- "updated_at__isNotNull",
44112
44541
  "updated_at__equals",
44113
44542
  "updated_at__lt",
44114
44543
  "updated_at__lte",
@@ -44222,7 +44651,7 @@ Examples:
44222
44651
  // build/commands/generated/price-configurations.js
44223
44652
  function registerPrice_ConfigurationsCommands(parent) {
44224
44653
  const resource = parent.command("price-configurations").description("Manage price configurations");
44225
- resource.command("list").description(`List price configurations with optional filters for product_id and price_book_id. Price configurations define how a product is priced (tiers, volume, graduated, etc.). Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--product-id <value>", `product_id`).option("--product-id.not <value>", `product_id__not`).option("--product-id.is-null <value>", `product_id__isNull`).option("--product-id.is-not-null <value>", `product_id__isNotNull`).option("--product-id.equals <value>", `product_id__equals`).option("--product-id.contains <value>", `product_id__contains`).option("--product-id.starts-with <value>", `product_id__startsWith`).option("--product-id.end-with <value>", `product_id__endWith`).option("--price-book-id <value>", `price_book_id`).option("--price-book-id.not <value>", `price_book_id__not`).option("--price-book-id.is-null <value>", `price_book_id__isNull`).option("--price-book-id.is-not-null <value>", `price_book_id__isNotNull`).option("--price-book-id.equals <value>", `price_book_id__equals`).option("--price-book-id.contains <value>", `price_book_id__contains`).option("--price-book-id.starts-with <value>", `price_book_id__startsWith`).option("--price-book-id.end-with <value>", `price_book_id__endWith`).addHelpText("after", `
44654
+ resource.command("list").description(`List price configurations with optional filters for product_id and price_book_id. Price configurations define how a product is priced (tiers, volume, graduated, etc.). Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--product-id <value>", `product_id`).option("--product-id.not <value>", `product_id__not`).option("--product-id.equals <value>", `product_id__equals`).option("--product-id.contains <value>", `product_id__contains`).option("--product-id.starts-with <value>", `product_id__startsWith`).option("--product-id.end-with <value>", `product_id__endWith`).option("--price-book-id <value>", `price_book_id`).option("--price-book-id.not <value>", `price_book_id__not`).option("--price-book-id.equals <value>", `price_book_id__equals`).option("--price-book-id.contains <value>", `price_book_id__contains`).option("--price-book-id.starts-with <value>", `price_book_id__startsWith`).option("--price-book-id.end-with <value>", `price_book_id__endWith`).option("--price-book-id.is-null <value>", `price_book_id__isNull`).option("--price-book-id.is-not-null <value>", `price_book_id__isNotNull`).addHelpText("after", `
44226
44655
  Examples:
44227
44656
  hyperline price-configurations list
44228
44657
  hyperline price-configurations list --take <take> --product-id <product_id>`).action(async (opts) => {
@@ -44236,10 +44665,6 @@ Examples:
44236
44665
  args.product_id = opts.productId;
44237
44666
  if (opts["productId.not"] !== void 0)
44238
44667
  args.product_id__not = opts["productId.not"];
44239
- if (opts["productId.isNull"] !== void 0)
44240
- args.product_id__isNull = opts["productId.isNull"];
44241
- if (opts["productId.isNotNull"] !== void 0)
44242
- args.product_id__isNotNull = opts["productId.isNotNull"];
44243
44668
  if (opts["productId.equals"] !== void 0)
44244
44669
  args.product_id__equals = opts["productId.equals"];
44245
44670
  if (opts["productId.contains"] !== void 0)
@@ -44252,10 +44677,6 @@ Examples:
44252
44677
  args.price_book_id = opts.priceBookId;
44253
44678
  if (opts["priceBookId.not"] !== void 0)
44254
44679
  args.price_book_id__not = opts["priceBookId.not"];
44255
- if (opts["priceBookId.isNull"] !== void 0)
44256
- args.price_book_id__isNull = opts["priceBookId.isNull"];
44257
- if (opts["priceBookId.isNotNull"] !== void 0)
44258
- args.price_book_id__isNotNull = opts["priceBookId.isNotNull"];
44259
44680
  if (opts["priceBookId.equals"] !== void 0)
44260
44681
  args.price_book_id__equals = opts["priceBookId.equals"];
44261
44682
  if (opts["priceBookId.contains"] !== void 0)
@@ -44264,6 +44685,10 @@ Examples:
44264
44685
  args.price_book_id__startsWith = opts["priceBookId.startsWith"];
44265
44686
  if (opts["priceBookId.endWith"] !== void 0)
44266
44687
  args.price_book_id__endWith = opts["priceBookId.endWith"];
44688
+ if (opts["priceBookId.isNull"] !== void 0)
44689
+ args.price_book_id__isNull = opts["priceBookId.isNull"];
44690
+ if (opts["priceBookId.isNotNull"] !== void 0)
44691
+ args.price_book_id__isNotNull = opts["priceBookId.isNotNull"];
44267
44692
  if (opts.take !== void 0)
44268
44693
  args.take = Number(opts.take);
44269
44694
  if (opts.skip !== void 0)
@@ -44277,20 +44702,18 @@ Examples:
44277
44702
  "skip",
44278
44703
  "product_id",
44279
44704
  "product_id__not",
44280
- "product_id__isNull",
44281
- "product_id__isNotNull",
44282
44705
  "product_id__equals",
44283
44706
  "product_id__contains",
44284
44707
  "product_id__startsWith",
44285
44708
  "product_id__endWith",
44286
44709
  "price_book_id",
44287
44710
  "price_book_id__not",
44288
- "price_book_id__isNull",
44289
- "price_book_id__isNotNull",
44290
44711
  "price_book_id__equals",
44291
44712
  "price_book_id__contains",
44292
44713
  "price_book_id__startsWith",
44293
- "price_book_id__endWith"
44714
+ "price_book_id__endWith",
44715
+ "price_book_id__isNull",
44716
+ "price_book_id__isNotNull"
44294
44717
  ]
44295
44718
  });
44296
44719
  });
@@ -44416,7 +44839,7 @@ Examples:
44416
44839
  // build/commands/generated/products.js
44417
44840
  function registerProductsCommands(parent) {
44418
44841
  const resource = parent.command("products").description("Manage products");
44419
- resource.command("list").description(`List products with optional filters for id, status, name, description, type, and price_book_id. Products define what is being sold (flat fee, per-unit, usage-based, etc.). Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--description <value>", `description`).option("--description.not <value>", `description__not`).option("--description.is-null <value>", `description__isNull`).option("--description.is-not-null <value>", `description__isNotNull`).option("--description.equals <value>", `description__equals`).option("--description.contains <value>", `description__contains`).option("--description.starts-with <value>", `description__startsWith`).option("--description.end-with <value>", `description__endWith`).option("--type <value>", `type`).option("--type.not <value>", `type__not`).option("--type.is-null <value>", `type__isNull`).option("--type.is-not-null <value>", `type__isNotNull`).option("--type.equals <value>", `type__equals`).option("--type.contains <value>", `type__contains`).option("--type.starts-with <value>", `type__startsWith`).option("--type.end-with <value>", `type__endWith`).option("--price-book-id <value>", `price_book_id`).addHelpText("after", `
44842
+ resource.command("list").description(`List products with optional filters for id, status, name, description, type, price_book_id, and custom_properties (JSON object of slug to exact value, e.g. {"my_slug":"value"}; slugs matching no custom property are rejected). Products define what is being sold (flat fee, per-unit, usage-based, etc.). Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--description <value>", `description`).option("--description.not <value>", `description__not`).option("--description.equals <value>", `description__equals`).option("--description.contains <value>", `description__contains`).option("--description.starts-with <value>", `description__startsWith`).option("--description.end-with <value>", `description__endWith`).option("--description.is-null <value>", `description__isNull`).option("--description.is-not-null <value>", `description__isNotNull`).option("--type <value>", `type`).option("--type.not <value>", `type__not`).option("--type.equals <value>", `type__equals`).option("--type.contains <value>", `type__contains`).option("--type.starts-with <value>", `type__startsWith`).option("--type.end-with <value>", `type__endWith`).option("--price-book-id <value>", `price_book_id`).option("--custom-properties <value>", `Filter by custom property values, as a JSON object mapping a custom property slug to the exact value to match. Suffix a slug with \`__contains\` for a case-sensitive substring match on text values. Several entries are combined with AND. A slug that matches no custom property returns a \`400\` error.`).addHelpText("after", `
44420
44843
  Examples:
44421
44844
  hyperline products list
44422
44845
  hyperline products list --take <take> --id <id>`).action(async (opts) => {
@@ -44430,10 +44853,6 @@ Examples:
44430
44853
  args.id = opts.id;
44431
44854
  if (opts["id.not"] !== void 0)
44432
44855
  args.id__not = opts["id.not"];
44433
- if (opts["id.isNull"] !== void 0)
44434
- args.id__isNull = opts["id.isNull"];
44435
- if (opts["id.isNotNull"] !== void 0)
44436
- args.id__isNotNull = opts["id.isNotNull"];
44437
44856
  if (opts["id.equals"] !== void 0)
44438
44857
  args.id__equals = opts["id.equals"];
44439
44858
  if (opts["id.contains"] !== void 0)
@@ -44450,10 +44869,6 @@ Examples:
44450
44869
  args.name = opts.name;
44451
44870
  if (opts["name.not"] !== void 0)
44452
44871
  args.name__not = opts["name.not"];
44453
- if (opts["name.isNull"] !== void 0)
44454
- args.name__isNull = opts["name.isNull"];
44455
- if (opts["name.isNotNull"] !== void 0)
44456
- args.name__isNotNull = opts["name.isNotNull"];
44457
44872
  if (opts["name.equals"] !== void 0)
44458
44873
  args.name__equals = opts["name.equals"];
44459
44874
  if (opts["name.contains"] !== void 0)
@@ -44466,10 +44881,6 @@ Examples:
44466
44881
  args.description = opts.description;
44467
44882
  if (opts["description.not"] !== void 0)
44468
44883
  args.description__not = opts["description.not"];
44469
- if (opts["description.isNull"] !== void 0)
44470
- args.description__isNull = opts["description.isNull"];
44471
- if (opts["description.isNotNull"] !== void 0)
44472
- args.description__isNotNull = opts["description.isNotNull"];
44473
44884
  if (opts["description.equals"] !== void 0)
44474
44885
  args.description__equals = opts["description.equals"];
44475
44886
  if (opts["description.contains"] !== void 0)
@@ -44478,14 +44889,14 @@ Examples:
44478
44889
  args.description__startsWith = opts["description.startsWith"];
44479
44890
  if (opts["description.endWith"] !== void 0)
44480
44891
  args.description__endWith = opts["description.endWith"];
44892
+ if (opts["description.isNull"] !== void 0)
44893
+ args.description__isNull = opts["description.isNull"];
44894
+ if (opts["description.isNotNull"] !== void 0)
44895
+ args.description__isNotNull = opts["description.isNotNull"];
44481
44896
  if (opts.type !== void 0)
44482
44897
  args.type = opts.type;
44483
44898
  if (opts["type.not"] !== void 0)
44484
44899
  args.type__not = opts["type.not"];
44485
- if (opts["type.isNull"] !== void 0)
44486
- args.type__isNull = opts["type.isNull"];
44487
- if (opts["type.isNotNull"] !== void 0)
44488
- args.type__isNotNull = opts["type.isNotNull"];
44489
44900
  if (opts["type.equals"] !== void 0)
44490
44901
  args.type__equals = opts["type.equals"];
44491
44902
  if (opts["type.contains"] !== void 0)
@@ -44496,6 +44907,8 @@ Examples:
44496
44907
  args.type__endWith = opts["type.endWith"];
44497
44908
  if (opts.priceBookId !== void 0)
44498
44909
  args.price_book_id = opts.priceBookId;
44910
+ if (opts.customProperties !== void 0)
44911
+ args.custom_properties = opts.customProperties;
44499
44912
  if (opts.take !== void 0)
44500
44913
  args.take = Number(opts.take);
44501
44914
  if (opts.skip !== void 0)
@@ -44509,8 +44922,6 @@ Examples:
44509
44922
  "skip",
44510
44923
  "id",
44511
44924
  "id__not",
44512
- "id__isNull",
44513
- "id__isNotNull",
44514
44925
  "id__equals",
44515
44926
  "id__contains",
44516
44927
  "id__startsWith",
@@ -44519,33 +44930,30 @@ Examples:
44519
44930
  "status__in",
44520
44931
  "name",
44521
44932
  "name__not",
44522
- "name__isNull",
44523
- "name__isNotNull",
44524
44933
  "name__equals",
44525
44934
  "name__contains",
44526
44935
  "name__startsWith",
44527
44936
  "name__endWith",
44528
44937
  "description",
44529
44938
  "description__not",
44530
- "description__isNull",
44531
- "description__isNotNull",
44532
44939
  "description__equals",
44533
44940
  "description__contains",
44534
44941
  "description__startsWith",
44535
44942
  "description__endWith",
44943
+ "description__isNull",
44944
+ "description__isNotNull",
44536
44945
  "type",
44537
44946
  "type__not",
44538
- "type__isNull",
44539
- "type__isNotNull",
44540
44947
  "type__equals",
44541
44948
  "type__contains",
44542
44949
  "type__startsWith",
44543
44950
  "type__endWith",
44544
- "price_book_id"
44951
+ "price_book_id",
44952
+ "custom_properties"
44545
44953
  ]
44546
44954
  });
44547
44955
  });
44548
- resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <json>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <json>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <json>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <json>", `Price configurations for the product.`).option("--aggregator <json>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <json>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--credits-grant-mode <value>", `
44956
+ resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration. With catalog versioning enabled, the change is staged in the pending catalog draft and only goes live after publish_catalog_draft.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <json>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <json>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <json>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <json>", `Price configurations for the product.`).option("--aggregator <json>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <json>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--credits-grant-mode <value>", `
44549
44957
  How the periodic credit allowance is granted for partial billing periods.
44550
44958
 
44551
44959
  - \`prorated\` (default): the granted credits are prorated to the elapsed period.
@@ -44633,7 +45041,7 @@ Examples:
44633
45041
  queryParamKeys: ["price_book_id"]
44634
45042
  });
44635
45043
  });
44636
- resource.command("update").description(`Update a product's name, description, type, or configuration by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--public-description <value>", `Public description of the product.`).option("--translations <json>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--properties <json>", `properties`).option("--custom-properties <json>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <json>", `Mapping invoicing entity ID/accounting settings.`).addHelpText("after", `
45044
+ resource.command("update").description(`Update a product's name, description, type, or configuration by ID. With catalog versioning enabled, the change is staged in the pending catalog draft and only goes live after publish_catalog_draft.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--public-description <value>", `Public description of the product.`).option("--translations <json>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--properties <json>", `properties`).option("--custom-properties <json>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <json>", `Mapping invoicing entity ID/accounting settings.`).addHelpText("after", `
44637
45045
  Examples:
44638
45046
  hyperline products update --id <id> --name <name>
44639
45047
  hyperline products update --id <id> --name <name> --description <description> --public-description <public_description>
@@ -44737,6 +45145,80 @@ Examples:
44737
45145
  });
44738
45146
  }
44739
45147
 
45148
+ // build/commands/generated/products-features.js
45149
+ function registerProducts_FeaturesCommands(parent) {
45150
+ const resource = parent.command("products-features").description("Manage products > features");
45151
+ resource.command("list-product-features").description(`List feature values assigned to a product.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
45152
+ Examples:
45153
+ hyperline products-features list-product-features --id <id>`).action(async (opts) => {
45154
+ const ctx = resource.parent?.opts()._ctx;
45155
+ if (!ctx) {
45156
+ process.stderr.write("Error: Not authenticated\n");
45157
+ process.exit(1);
45158
+ }
45159
+ const args = {};
45160
+ if (opts.id !== void 0)
45161
+ args.id = opts.id;
45162
+ await ctx.execute({
45163
+ method: "GET",
45164
+ path: "/v1/products/{id}/features",
45165
+ args,
45166
+ queryParamKeys: []
45167
+ });
45168
+ });
45169
+ resource.command("set-product-feature").description(`Set a feature value for a product.`).requiredOption("--id <value>", `id parameter`).requiredOption("--code <value>", `code parameter`).requiredOption("--value", `Feature value.`).addHelpText("after", `
45170
+ Examples:
45171
+ hyperline products-features set-product-feature --id <id> --code <code> --value
45172
+ hyperline products-features set-product-feature --id <id> --code <code> --value --output json`).action(async (opts) => {
45173
+ const ctx = resource.parent?.opts()._ctx;
45174
+ if (!ctx) {
45175
+ process.stderr.write("Error: Not authenticated\n");
45176
+ process.exit(1);
45177
+ }
45178
+ const args = {};
45179
+ if (opts.id !== void 0)
45180
+ args.id = opts.id;
45181
+ if (opts.code !== void 0)
45182
+ args.code = opts.code;
45183
+ if (opts.value !== void 0)
45184
+ args.value = true;
45185
+ await ctx.execute({
45186
+ method: "PUT",
45187
+ path: "/v1/products/{id}/features/{code}",
45188
+ args,
45189
+ queryParamKeys: []
45190
+ });
45191
+ });
45192
+ resource.command("delete-product-feature").description(`Delete a feature value from a product.`).requiredOption("--id <value>", `id parameter`).requiredOption("--code <value>", `code parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
45193
+ Examples:
45194
+ hyperline products-features delete-product-feature --id <id> --code <code>
45195
+ hyperline products-features delete-product-feature --id <id> --code <code> --output json`).action(async (opts) => {
45196
+ const ctx = resource.parent?.opts()._ctx;
45197
+ if (!ctx) {
45198
+ process.stderr.write("Error: Not authenticated\n");
45199
+ process.exit(1);
45200
+ }
45201
+ const args = {};
45202
+ if (opts.id !== void 0)
45203
+ args.id = opts.id;
45204
+ if (opts.code !== void 0)
45205
+ args.code = opts.code;
45206
+ if (!opts.yes) {
45207
+ const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
45208
+ if (!confirmed) {
45209
+ process.stdout.write("Aborted.\n");
45210
+ return;
45211
+ }
45212
+ }
45213
+ await ctx.execute({
45214
+ method: "DELETE",
45215
+ path: "/v1/products/{id}/features/{code}",
45216
+ args,
45217
+ queryParamKeys: []
45218
+ });
45219
+ });
45220
+ }
45221
+
44740
45222
  // build/commands/generated/quotes.js
44741
45223
  function registerQuotesCommands(parent) {
44742
45224
  const resource = parent.command("quotes").description("Manage quotes");
@@ -44746,7 +45228,7 @@ Quote status.
44746
45228
  - \`draft\`: The quote is a draft.
44747
45229
  - \`approved\`: The quote is approved and ready to be sent to the customer.
44748
45230
  - \`pending_signature\`: The quote is awaiting the customer's signature.
44749
- `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
45231
+ `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The user must be a member of your Hyperline account. 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. When computed, a subscription phase with neither an end date nor a fixed duration is counted over a conventional horizon: the contract's length for a single phase on a contract that has one, otherwise 12 months or the longest billing interval if longer. That horizon is not an end date: the subscription can run past it. Usage-based and connected seat lines are priced at their estimated quantity when it exceeds the committed quantity and, for seats, the live seat count. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
44750
45232
 
44751
45233
  - \`all\`: Display all pricing tiers.
44752
45234
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -44823,7 +45305,7 @@ Examples:
44823
45305
  queryParamKeys: []
44824
45306
  });
44825
45307
  });
44826
- resource.command("list").description(`List quotes with optional filters for id, number, status, customer_id, template_id, crm_opportunity_id, type, and updated_at. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--number <value>", `number`).option("--number.not <value>", `number__not`).option("--number.is-null <value>", `number__isNull`).option("--number.is-not-null <value>", `number__isNotNull`).option("--number.equals <value>", `number__equals`).option("--number.contains <value>", `number__contains`).option("--number.starts-with <value>", `number__startsWith`).option("--number.end-with <value>", `number__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--template-id <value>", `template_id`).option("--template-id.not <value>", `template_id__not`).option("--template-id.is-null <value>", `template_id__isNull`).option("--template-id.is-not-null <value>", `template_id__isNotNull`).option("--template-id.equals <value>", `template_id__equals`).option("--template-id.contains <value>", `template_id__contains`).option("--template-id.starts-with <value>", `template_id__startsWith`).option("--template-id.end-with <value>", `template_id__endWith`).option("--crm-opportunity-id <value>", `crm_opportunity_id`).option("--crm-opportunity-id.not <value>", `crm_opportunity_id__not`).option("--crm-opportunity-id.is-null <value>", `crm_opportunity_id__isNull`).option("--crm-opportunity-id.is-not-null <value>", `crm_opportunity_id__isNotNull`).option("--crm-opportunity-id.equals <value>", `crm_opportunity_id__equals`).option("--crm-opportunity-id.contains <value>", `crm_opportunity_id__contains`).option("--crm-opportunity-id.starts-with <value>", `crm_opportunity_id__startsWith`).option("--crm-opportunity-id.end-with <value>", `crm_opportunity_id__endWith`).option("--type <value>", `type`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
45308
+ resource.command("list").description(`List quotes with optional filters for id, number, status, customer_id, template_id, crm_opportunity_id, type, and updated_at. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--number <value>", `number`).option("--number.not <value>", `number__not`).option("--number.equals <value>", `number__equals`).option("--number.contains <value>", `number__contains`).option("--number.starts-with <value>", `number__startsWith`).option("--number.end-with <value>", `number__endWith`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--template-id <value>", `template_id`).option("--template-id.not <value>", `template_id__not`).option("--template-id.equals <value>", `template_id__equals`).option("--template-id.contains <value>", `template_id__contains`).option("--template-id.starts-with <value>", `template_id__startsWith`).option("--template-id.end-with <value>", `template_id__endWith`).option("--template-id.is-null <value>", `template_id__isNull`).option("--template-id.is-not-null <value>", `template_id__isNotNull`).option("--crm-opportunity-id <value>", `crm_opportunity_id`).option("--crm-opportunity-id.not <value>", `crm_opportunity_id__not`).option("--crm-opportunity-id.equals <value>", `crm_opportunity_id__equals`).option("--crm-opportunity-id.contains <value>", `crm_opportunity_id__contains`).option("--crm-opportunity-id.starts-with <value>", `crm_opportunity_id__startsWith`).option("--crm-opportunity-id.end-with <value>", `crm_opportunity_id__endWith`).option("--crm-opportunity-id.is-null <value>", `crm_opportunity_id__isNull`).option("--crm-opportunity-id.is-not-null <value>", `crm_opportunity_id__isNotNull`).option("--type <value>", `type`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
44827
45309
  Examples:
44828
45310
  hyperline quotes list
44829
45311
  hyperline quotes list --take <take> --id <id>`).action(async (opts) => {
@@ -44837,10 +45319,6 @@ Examples:
44837
45319
  args.id = opts.id;
44838
45320
  if (opts["id.not"] !== void 0)
44839
45321
  args.id__not = opts["id.not"];
44840
- if (opts["id.isNull"] !== void 0)
44841
- args.id__isNull = opts["id.isNull"];
44842
- if (opts["id.isNotNull"] !== void 0)
44843
- args.id__isNotNull = opts["id.isNotNull"];
44844
45322
  if (opts["id.equals"] !== void 0)
44845
45323
  args.id__equals = opts["id.equals"];
44846
45324
  if (opts["id.contains"] !== void 0)
@@ -44853,10 +45331,6 @@ Examples:
44853
45331
  args.number = opts.number;
44854
45332
  if (opts["number.not"] !== void 0)
44855
45333
  args.number__not = opts["number.not"];
44856
- if (opts["number.isNull"] !== void 0)
44857
- args.number__isNull = opts["number.isNull"];
44858
- if (opts["number.isNotNull"] !== void 0)
44859
- args.number__isNotNull = opts["number.isNotNull"];
44860
45334
  if (opts["number.equals"] !== void 0)
44861
45335
  args.number__equals = opts["number.equals"];
44862
45336
  if (opts["number.contains"] !== void 0)
@@ -44873,10 +45347,6 @@ Examples:
44873
45347
  args.customer_id = opts.customerId;
44874
45348
  if (opts["customerId.not"] !== void 0)
44875
45349
  args.customer_id__not = opts["customerId.not"];
44876
- if (opts["customerId.isNull"] !== void 0)
44877
- args.customer_id__isNull = opts["customerId.isNull"];
44878
- if (opts["customerId.isNotNull"] !== void 0)
44879
- args.customer_id__isNotNull = opts["customerId.isNotNull"];
44880
45350
  if (opts["customerId.equals"] !== void 0)
44881
45351
  args.customer_id__equals = opts["customerId.equals"];
44882
45352
  if (opts["customerId.contains"] !== void 0)
@@ -44889,10 +45359,6 @@ Examples:
44889
45359
  args.template_id = opts.templateId;
44890
45360
  if (opts["templateId.not"] !== void 0)
44891
45361
  args.template_id__not = opts["templateId.not"];
44892
- if (opts["templateId.isNull"] !== void 0)
44893
- args.template_id__isNull = opts["templateId.isNull"];
44894
- if (opts["templateId.isNotNull"] !== void 0)
44895
- args.template_id__isNotNull = opts["templateId.isNotNull"];
44896
45362
  if (opts["templateId.equals"] !== void 0)
44897
45363
  args.template_id__equals = opts["templateId.equals"];
44898
45364
  if (opts["templateId.contains"] !== void 0)
@@ -44901,14 +45367,14 @@ Examples:
44901
45367
  args.template_id__startsWith = opts["templateId.startsWith"];
44902
45368
  if (opts["templateId.endWith"] !== void 0)
44903
45369
  args.template_id__endWith = opts["templateId.endWith"];
45370
+ if (opts["templateId.isNull"] !== void 0)
45371
+ args.template_id__isNull = opts["templateId.isNull"];
45372
+ if (opts["templateId.isNotNull"] !== void 0)
45373
+ args.template_id__isNotNull = opts["templateId.isNotNull"];
44904
45374
  if (opts.crmOpportunityId !== void 0)
44905
45375
  args.crm_opportunity_id = opts.crmOpportunityId;
44906
45376
  if (opts["crmOpportunityId.not"] !== void 0)
44907
45377
  args.crm_opportunity_id__not = opts["crmOpportunityId.not"];
44908
- if (opts["crmOpportunityId.isNull"] !== void 0)
44909
- args.crm_opportunity_id__isNull = opts["crmOpportunityId.isNull"];
44910
- if (opts["crmOpportunityId.isNotNull"] !== void 0)
44911
- args.crm_opportunity_id__isNotNull = opts["crmOpportunityId.isNotNull"];
44912
45378
  if (opts["crmOpportunityId.equals"] !== void 0)
44913
45379
  args.crm_opportunity_id__equals = opts["crmOpportunityId.equals"];
44914
45380
  if (opts["crmOpportunityId.contains"] !== void 0)
@@ -44917,16 +45383,16 @@ Examples:
44917
45383
  args.crm_opportunity_id__startsWith = opts["crmOpportunityId.startsWith"];
44918
45384
  if (opts["crmOpportunityId.endWith"] !== void 0)
44919
45385
  args.crm_opportunity_id__endWith = opts["crmOpportunityId.endWith"];
45386
+ if (opts["crmOpportunityId.isNull"] !== void 0)
45387
+ args.crm_opportunity_id__isNull = opts["crmOpportunityId.isNull"];
45388
+ if (opts["crmOpportunityId.isNotNull"] !== void 0)
45389
+ args.crm_opportunity_id__isNotNull = opts["crmOpportunityId.isNotNull"];
44920
45390
  if (opts.type !== void 0)
44921
45391
  args.type = opts.type;
44922
45392
  if (opts.updatedAt !== void 0)
44923
45393
  args.updated_at = opts.updatedAt;
44924
45394
  if (opts["updatedAt.not"] !== void 0)
44925
45395
  args.updated_at__not = opts["updatedAt.not"];
44926
- if (opts["updatedAt.isNull"] !== void 0)
44927
- args.updated_at__isNull = opts["updatedAt.isNull"];
44928
- if (opts["updatedAt.isNotNull"] !== void 0)
44929
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
44930
45396
  if (opts["updatedAt.equals"] !== void 0)
44931
45397
  args.updated_at__equals = opts["updatedAt.equals"];
44932
45398
  if (opts["updatedAt.lt"] !== void 0)
@@ -44950,16 +45416,12 @@ Examples:
44950
45416
  "skip",
44951
45417
  "id",
44952
45418
  "id__not",
44953
- "id__isNull",
44954
- "id__isNotNull",
44955
45419
  "id__equals",
44956
45420
  "id__contains",
44957
45421
  "id__startsWith",
44958
45422
  "id__endWith",
44959
45423
  "number",
44960
45424
  "number__not",
44961
- "number__isNull",
44962
- "number__isNotNull",
44963
45425
  "number__equals",
44964
45426
  "number__contains",
44965
45427
  "number__startsWith",
@@ -44968,33 +45430,29 @@ Examples:
44968
45430
  "status__in",
44969
45431
  "customer_id",
44970
45432
  "customer_id__not",
44971
- "customer_id__isNull",
44972
- "customer_id__isNotNull",
44973
45433
  "customer_id__equals",
44974
45434
  "customer_id__contains",
44975
45435
  "customer_id__startsWith",
44976
45436
  "customer_id__endWith",
44977
45437
  "template_id",
44978
45438
  "template_id__not",
44979
- "template_id__isNull",
44980
- "template_id__isNotNull",
44981
45439
  "template_id__equals",
44982
45440
  "template_id__contains",
44983
45441
  "template_id__startsWith",
44984
45442
  "template_id__endWith",
45443
+ "template_id__isNull",
45444
+ "template_id__isNotNull",
44985
45445
  "crm_opportunity_id",
44986
45446
  "crm_opportunity_id__not",
44987
- "crm_opportunity_id__isNull",
44988
- "crm_opportunity_id__isNotNull",
44989
45447
  "crm_opportunity_id__equals",
44990
45448
  "crm_opportunity_id__contains",
44991
45449
  "crm_opportunity_id__startsWith",
44992
45450
  "crm_opportunity_id__endWith",
45451
+ "crm_opportunity_id__isNull",
45452
+ "crm_opportunity_id__isNotNull",
44993
45453
  "type",
44994
45454
  "updated_at",
44995
45455
  "updated_at__not",
44996
- "updated_at__isNull",
44997
- "updated_at__isNotNull",
44998
45456
  "updated_at__equals",
44999
45457
  "updated_at__lt",
45000
45458
  "updated_at__lte",
@@ -45021,7 +45479,7 @@ Examples:
45021
45479
  queryParamKeys: []
45022
45480
  });
45023
45481
  });
45024
- resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` inline \u2014 the full configuration, not a reference to an existing subscription \u2014 to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content. Discover product and price configuration IDs with \`get_catalog_context\`.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value. Set to \`null\` to go back to the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
45482
+ 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 user must be a member of your Hyperline account. 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. When computed, a subscription phase with neither an end date nor a fixed duration is counted over a conventional horizon: the contract's length for a single phase on a contract that has one, otherwise 12 months or the longest billing interval if longer. That horizon is not an end date: the subscription can run past it. Usage-based and connected seat lines are priced at their estimated quantity when it exceeds the committed quantity and, for seats, the live seat count. Set to \`null\` to clear the manually set value.`).option("--contract-value <number>", `What the customer pays over the contract, each coupon counted on the invoices it applies to. Computed from the subscription for \`subscription\` and \`subscription_update\` quotes, unless set manually. Not set on \`one_off\` quotes. When specified, overrides the computed value. Set to \`null\` to go back to the computed value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
45025
45483
 
45026
45484
  - \`all\`: Display all pricing tiers.
45027
45485
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -45372,7 +45830,7 @@ Examples:
45372
45830
  // build/commands/generated/quotes-templates.js
45373
45831
  function registerQuotes_TemplatesCommands(parent) {
45374
45832
  const resource = parent.command("quotes-templates").description("Manage quotes > templates");
45375
- resource.command("list-quote-templates").description(`List quote templates with pagination and optional filters for id, name, subscription_template_id, and search. Use template IDs to create quotes from reusable quote defaults.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--subscription-template-id <value>", `subscription_template_id`).option("--subscription-template-id.not <value>", `subscription_template_id__not`).option("--subscription-template-id.is-null <value>", `subscription_template_id__isNull`).option("--subscription-template-id.is-not-null <value>", `subscription_template_id__isNotNull`).option("--subscription-template-id.equals <value>", `subscription_template_id__equals`).option("--subscription-template-id.contains <value>", `subscription_template_id__contains`).option("--subscription-template-id.starts-with <value>", `subscription_template_id__startsWith`).option("--subscription-template-id.end-with <value>", `subscription_template_id__endWith`).option("--search <value>", `search`).addHelpText("after", `
45833
+ resource.command("list-quote-templates").description(`List quote templates with pagination and optional filters for id, name, subscription_template_id, and search. Use template IDs to create quotes from reusable quote defaults.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--subscription-template-id <value>", `subscription_template_id`).option("--subscription-template-id.not <value>", `subscription_template_id__not`).option("--subscription-template-id.equals <value>", `subscription_template_id__equals`).option("--subscription-template-id.contains <value>", `subscription_template_id__contains`).option("--subscription-template-id.starts-with <value>", `subscription_template_id__startsWith`).option("--subscription-template-id.end-with <value>", `subscription_template_id__endWith`).option("--subscription-template-id.is-null <value>", `subscription_template_id__isNull`).option("--subscription-template-id.is-not-null <value>", `subscription_template_id__isNotNull`).option("--search <value>", `search`).addHelpText("after", `
45376
45834
  Examples:
45377
45835
  hyperline quotes-templates list-quote-templates
45378
45836
  hyperline quotes-templates list-quote-templates --take <take> --id <id>`).action(async (opts) => {
@@ -45386,10 +45844,6 @@ Examples:
45386
45844
  args.id = opts.id;
45387
45845
  if (opts["id.not"] !== void 0)
45388
45846
  args.id__not = opts["id.not"];
45389
- if (opts["id.isNull"] !== void 0)
45390
- args.id__isNull = opts["id.isNull"];
45391
- if (opts["id.isNotNull"] !== void 0)
45392
- args.id__isNotNull = opts["id.isNotNull"];
45393
45847
  if (opts["id.equals"] !== void 0)
45394
45848
  args.id__equals = opts["id.equals"];
45395
45849
  if (opts["id.contains"] !== void 0)
@@ -45402,10 +45856,6 @@ Examples:
45402
45856
  args.name = opts.name;
45403
45857
  if (opts["name.not"] !== void 0)
45404
45858
  args.name__not = opts["name.not"];
45405
- if (opts["name.isNull"] !== void 0)
45406
- args.name__isNull = opts["name.isNull"];
45407
- if (opts["name.isNotNull"] !== void 0)
45408
- args.name__isNotNull = opts["name.isNotNull"];
45409
45859
  if (opts["name.equals"] !== void 0)
45410
45860
  args.name__equals = opts["name.equals"];
45411
45861
  if (opts["name.contains"] !== void 0)
@@ -45418,10 +45868,6 @@ Examples:
45418
45868
  args.subscription_template_id = opts.subscriptionTemplateId;
45419
45869
  if (opts["subscriptionTemplateId.not"] !== void 0)
45420
45870
  args.subscription_template_id__not = opts["subscriptionTemplateId.not"];
45421
- if (opts["subscriptionTemplateId.isNull"] !== void 0)
45422
- args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
45423
- if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
45424
- args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
45425
45871
  if (opts["subscriptionTemplateId.equals"] !== void 0)
45426
45872
  args.subscription_template_id__equals = opts["subscriptionTemplateId.equals"];
45427
45873
  if (opts["subscriptionTemplateId.contains"] !== void 0)
@@ -45430,6 +45876,10 @@ Examples:
45430
45876
  args.subscription_template_id__startsWith = opts["subscriptionTemplateId.startsWith"];
45431
45877
  if (opts["subscriptionTemplateId.endWith"] !== void 0)
45432
45878
  args.subscription_template_id__endWith = opts["subscriptionTemplateId.endWith"];
45879
+ if (opts["subscriptionTemplateId.isNull"] !== void 0)
45880
+ args.subscription_template_id__isNull = opts["subscriptionTemplateId.isNull"];
45881
+ if (opts["subscriptionTemplateId.isNotNull"] !== void 0)
45882
+ args.subscription_template_id__isNotNull = opts["subscriptionTemplateId.isNotNull"];
45433
45883
  if (opts.search !== void 0)
45434
45884
  args.search = opts.search;
45435
45885
  if (opts.take !== void 0)
@@ -45445,28 +45895,24 @@ Examples:
45445
45895
  "skip",
45446
45896
  "id",
45447
45897
  "id__not",
45448
- "id__isNull",
45449
- "id__isNotNull",
45450
45898
  "id__equals",
45451
45899
  "id__contains",
45452
45900
  "id__startsWith",
45453
45901
  "id__endWith",
45454
45902
  "name",
45455
45903
  "name__not",
45456
- "name__isNull",
45457
- "name__isNotNull",
45458
45904
  "name__equals",
45459
45905
  "name__contains",
45460
45906
  "name__startsWith",
45461
45907
  "name__endWith",
45462
45908
  "subscription_template_id",
45463
45909
  "subscription_template_id__not",
45464
- "subscription_template_id__isNull",
45465
- "subscription_template_id__isNotNull",
45466
45910
  "subscription_template_id__equals",
45467
45911
  "subscription_template_id__contains",
45468
45912
  "subscription_template_id__startsWith",
45469
45913
  "subscription_template_id__endWith",
45914
+ "subscription_template_id__isNull",
45915
+ "subscription_template_id__isNotNull",
45470
45916
  "search"
45471
45917
  ]
45472
45918
  });
@@ -45868,7 +46314,7 @@ Examples:
45868
46314
  queryParamKeys: []
45869
46315
  });
45870
46316
  });
45871
- resource.command("list").description(`List subscriptions with filters for activation_strategy, status, currency, plan_id, original_quote_id, integration_entity_id, customer_id, invoicing_entity_id, purchase_order, updated_at, cancel_at, custom_properties, and the active contract: contract_start__gte/__lte, contract_end__gte/__lte, renew_automatically. For upcoming renewals, combine contract_end__gte/__lte with renew_automatically, plus cancel_at for scheduled cancellations. Draft, voided, cancelled and archived excluded by default (status=all applies the same exclusion); status=any returns every status. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--activation-strategy <value>", `activation_strategy`).option("--activation-strategy.in <value>", `activation_strategy__in`).option("--status <value>", `
46317
+ resource.command("list").description(`List subscriptions with filters for activation_strategy, status, currency, plan_id, original_quote_id, integration_entity_id, customer_id, invoicing_entity_id, purchase_order, updated_at, cancel_at, custom_properties (JSON object of slug to exact value, e.g. {"my_slug":"value"}; slugs matching no custom property are ignored), and the active contract: contract_start__gte/__lte, contract_end__gte/__lte, renew_automatically. For upcoming renewals, combine contract_end__gte/__lte with renew_automatically, plus cancel_at for scheduled cancellations. Draft, voided, cancelled and archived excluded by default (status=all applies the same exclusion); status=any returns every status. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--activation-strategy <value>", `activation_strategy`).option("--activation-strategy.in <value>", `activation_strategy__in`).option("--status <value>", `
45872
46318
  Subscription status filter.
45873
46319
 
45874
46320
  - \`active\`, \`pending\`, \`paused\`, \`errored\`, \`cancelled\`, \`draft\`, \`voided\`, \`archived\`: match that status.
@@ -45877,7 +46323,7 @@ Subscription status filter.
45877
46323
  - \`any\`: every status, no exclusion.
45878
46324
 
45879
46325
  Use \`status__in\` with comma-separated values to combine statuses. When the filter is omitted, \`draft\`, \`voided\`, \`cancelled\` and \`archived\` subscriptions are excluded.
45880
- `).option("--status.in <value>", `Comma-separated list of subscription statuses to include. Same values as \`status\`.`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--plan-id <value>", `plan_id`).option("--plan-id.not <value>", `plan_id__not`).option("--plan-id.is-null <value>", `plan_id__isNull`).option("--plan-id.is-not-null <value>", `plan_id__isNotNull`).option("--plan-id.equals <value>", `plan_id__equals`).option("--plan-id.contains <value>", `plan_id__contains`).option("--plan-id.starts-with <value>", `plan_id__startsWith`).option("--plan-id.end-with <value>", `plan_id__endWith`).option("--original-quote-id <value>", `original_quote_id`).option("--original-quote-id.not <value>", `original_quote_id__not`).option("--original-quote-id.is-null <value>", `original_quote_id__isNull`).option("--original-quote-id.is-not-null <value>", `original_quote_id__isNotNull`).option("--original-quote-id.equals <value>", `original_quote_id__equals`).option("--original-quote-id.contains <value>", `original_quote_id__contains`).option("--original-quote-id.starts-with <value>", `original_quote_id__startsWith`).option("--original-quote-id.end-with <value>", `original_quote_id__endWith`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--purchase-order <value>", `purchase_order`).option("--purchase-order.not <value>", `purchase_order__not`).option("--purchase-order.is-null <value>", `purchase_order__isNull`).option("--purchase-order.is-not-null <value>", `purchase_order__isNotNull`).option("--purchase-order.equals <value>", `purchase_order__equals`).option("--purchase-order.contains <value>", `purchase_order__contains`).option("--purchase-order.starts-with <value>", `purchase_order__startsWith`).option("--purchase-order.end-with <value>", `purchase_order__endWith`).option("--custom-properties <value>", `custom_properties`).option("--invoice-drafts <value>", `invoice_drafts`).option("--integration-entity-id <value>", `integration_entity_id`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).option("--cancel-at <value>", `cancel_at`).option("--cancel-at.not <value>", `cancel_at__not`).option("--cancel-at.is-null <value>", `cancel_at__isNull`).option("--cancel-at.is-not-null <value>", `cancel_at__isNotNull`).option("--cancel-at.equals <value>", `cancel_at__equals`).option("--cancel-at.lt <value>", `cancel_at__lt`).option("--cancel-at.lte <value>", `cancel_at__lte`).option("--cancel-at.gt <value>", `cancel_at__gt`).option("--cancel-at.gte <value>", `cancel_at__gte`).option("--contract-start.gte <value>", `Return only subscriptions whose active contract starts on or after this date.`).option("--contract-start.lte <value>", `Return only subscriptions whose active contract starts on or before this date.`).option("--contract-end.gte <value>", `Return only subscriptions whose active contract ends on or after this date.`).option("--contract-end.lte <value>", `Return only subscriptions whose active contract ends on or before this date.`).option("--renew-automatically <value>", `Return only subscriptions whose active contract renews automatically (\`true\`) or not (\`false\`).`).addHelpText("after", `
46326
+ `).option("--status.in <value>", `Comma-separated list of subscription statuses to include. Same values as \`status\`.`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--plan-id <value>", `plan_id`).option("--plan-id.not <value>", `plan_id__not`).option("--plan-id.equals <value>", `plan_id__equals`).option("--plan-id.contains <value>", `plan_id__contains`).option("--plan-id.starts-with <value>", `plan_id__startsWith`).option("--plan-id.end-with <value>", `plan_id__endWith`).option("--plan-id.is-null <value>", `plan_id__isNull`).option("--plan-id.is-not-null <value>", `plan_id__isNotNull`).option("--original-quote-id <value>", `original_quote_id`).option("--original-quote-id.not <value>", `original_quote_id__not`).option("--original-quote-id.equals <value>", `original_quote_id__equals`).option("--original-quote-id.contains <value>", `original_quote_id__contains`).option("--original-quote-id.starts-with <value>", `original_quote_id__startsWith`).option("--original-quote-id.end-with <value>", `original_quote_id__endWith`).option("--original-quote-id.is-null <value>", `original_quote_id__isNull`).option("--original-quote-id.is-not-null <value>", `original_quote_id__isNotNull`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--purchase-order <value>", `purchase_order`).option("--purchase-order.not <value>", `purchase_order__not`).option("--purchase-order.equals <value>", `purchase_order__equals`).option("--purchase-order.contains <value>", `purchase_order__contains`).option("--purchase-order.starts-with <value>", `purchase_order__startsWith`).option("--purchase-order.end-with <value>", `purchase_order__endWith`).option("--purchase-order.is-null <value>", `purchase_order__isNull`).option("--purchase-order.is-not-null <value>", `purchase_order__isNotNull`).option("--custom-properties <value>", `Filter by custom property values, as a JSON object mapping a custom property slug to the exact value to match. Suffix a slug with \`__contains\` for a case-sensitive substring match on text values. Several entries are combined with AND. Entries whose slug matches no custom property, or whose value is \`false\`, \`0\`, \`null\` or an empty string, are ignored.`).option("--invoice-drafts <value>", `invoice_drafts`).option("--integration-entity-id <value>", `integration_entity_id`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).option("--cancel-at <value>", `cancel_at`).option("--cancel-at.not <value>", `cancel_at__not`).option("--cancel-at.equals <value>", `cancel_at__equals`).option("--cancel-at.lt <value>", `cancel_at__lt`).option("--cancel-at.lte <value>", `cancel_at__lte`).option("--cancel-at.gt <value>", `cancel_at__gt`).option("--cancel-at.gte <value>", `cancel_at__gte`).option("--cancel-at.is-null <value>", `cancel_at__isNull`).option("--cancel-at.is-not-null <value>", `cancel_at__isNotNull`).option("--contract-start.gte <value>", `Return only subscriptions whose active contract starts on or after this date.`).option("--contract-start.lte <value>", `Return only subscriptions whose active contract starts on or before this date.`).option("--contract-end.gte <value>", `Return only subscriptions whose active contract ends on or after this date.`).option("--contract-end.lte <value>", `Return only subscriptions whose active contract ends on or before this date.`).option("--renew-automatically <value>", `Return only subscriptions whose active contract renews automatically (\`true\`) or not (\`false\`).`).addHelpText("after", `
45881
46327
  Examples:
45882
46328
  hyperline subscriptions list
45883
46329
  hyperline subscriptions list --take <take> --activation-strategy <activation_strategy>`).action(async (opts) => {
@@ -45899,10 +46345,6 @@ Examples:
45899
46345
  args.currency = opts.currency;
45900
46346
  if (opts["currency.not"] !== void 0)
45901
46347
  args.currency__not = opts["currency.not"];
45902
- if (opts["currency.isNull"] !== void 0)
45903
- args.currency__isNull = opts["currency.isNull"];
45904
- if (opts["currency.isNotNull"] !== void 0)
45905
- args.currency__isNotNull = opts["currency.isNotNull"];
45906
46348
  if (opts["currency.equals"] !== void 0)
45907
46349
  args.currency__equals = opts["currency.equals"];
45908
46350
  if (opts["currency.contains"] !== void 0)
@@ -45915,10 +46357,6 @@ Examples:
45915
46357
  args.plan_id = opts.planId;
45916
46358
  if (opts["planId.not"] !== void 0)
45917
46359
  args.plan_id__not = opts["planId.not"];
45918
- if (opts["planId.isNull"] !== void 0)
45919
- args.plan_id__isNull = opts["planId.isNull"];
45920
- if (opts["planId.isNotNull"] !== void 0)
45921
- args.plan_id__isNotNull = opts["planId.isNotNull"];
45922
46360
  if (opts["planId.equals"] !== void 0)
45923
46361
  args.plan_id__equals = opts["planId.equals"];
45924
46362
  if (opts["planId.contains"] !== void 0)
@@ -45927,14 +46365,14 @@ Examples:
45927
46365
  args.plan_id__startsWith = opts["planId.startsWith"];
45928
46366
  if (opts["planId.endWith"] !== void 0)
45929
46367
  args.plan_id__endWith = opts["planId.endWith"];
46368
+ if (opts["planId.isNull"] !== void 0)
46369
+ args.plan_id__isNull = opts["planId.isNull"];
46370
+ if (opts["planId.isNotNull"] !== void 0)
46371
+ args.plan_id__isNotNull = opts["planId.isNotNull"];
45930
46372
  if (opts.originalQuoteId !== void 0)
45931
46373
  args.original_quote_id = opts.originalQuoteId;
45932
46374
  if (opts["originalQuoteId.not"] !== void 0)
45933
46375
  args.original_quote_id__not = opts["originalQuoteId.not"];
45934
- if (opts["originalQuoteId.isNull"] !== void 0)
45935
- args.original_quote_id__isNull = opts["originalQuoteId.isNull"];
45936
- if (opts["originalQuoteId.isNotNull"] !== void 0)
45937
- args.original_quote_id__isNotNull = opts["originalQuoteId.isNotNull"];
45938
46376
  if (opts["originalQuoteId.equals"] !== void 0)
45939
46377
  args.original_quote_id__equals = opts["originalQuoteId.equals"];
45940
46378
  if (opts["originalQuoteId.contains"] !== void 0)
@@ -45943,14 +46381,14 @@ Examples:
45943
46381
  args.original_quote_id__startsWith = opts["originalQuoteId.startsWith"];
45944
46382
  if (opts["originalQuoteId.endWith"] !== void 0)
45945
46383
  args.original_quote_id__endWith = opts["originalQuoteId.endWith"];
46384
+ if (opts["originalQuoteId.isNull"] !== void 0)
46385
+ args.original_quote_id__isNull = opts["originalQuoteId.isNull"];
46386
+ if (opts["originalQuoteId.isNotNull"] !== void 0)
46387
+ args.original_quote_id__isNotNull = opts["originalQuoteId.isNotNull"];
45946
46388
  if (opts.customerId !== void 0)
45947
46389
  args.customer_id = opts.customerId;
45948
46390
  if (opts["customerId.not"] !== void 0)
45949
46391
  args.customer_id__not = opts["customerId.not"];
45950
- if (opts["customerId.isNull"] !== void 0)
45951
- args.customer_id__isNull = opts["customerId.isNull"];
45952
- if (opts["customerId.isNotNull"] !== void 0)
45953
- args.customer_id__isNotNull = opts["customerId.isNotNull"];
45954
46392
  if (opts["customerId.equals"] !== void 0)
45955
46393
  args.customer_id__equals = opts["customerId.equals"];
45956
46394
  if (opts["customerId.contains"] !== void 0)
@@ -45959,16 +46397,16 @@ Examples:
45959
46397
  args.customer_id__startsWith = opts["customerId.startsWith"];
45960
46398
  if (opts["customerId.endWith"] !== void 0)
45961
46399
  args.customer_id__endWith = opts["customerId.endWith"];
46400
+ if (opts["customerId.isNull"] !== void 0)
46401
+ args.customer_id__isNull = opts["customerId.isNull"];
46402
+ if (opts["customerId.isNotNull"] !== void 0)
46403
+ args.customer_id__isNotNull = opts["customerId.isNotNull"];
45962
46404
  if (opts.invoicingEntityId !== void 0)
45963
46405
  args.invoicing_entity_id = opts.invoicingEntityId;
45964
46406
  if (opts.purchaseOrder !== void 0)
45965
46407
  args.purchase_order = opts.purchaseOrder;
45966
46408
  if (opts["purchaseOrder.not"] !== void 0)
45967
46409
  args.purchase_order__not = opts["purchaseOrder.not"];
45968
- if (opts["purchaseOrder.isNull"] !== void 0)
45969
- args.purchase_order__isNull = opts["purchaseOrder.isNull"];
45970
- if (opts["purchaseOrder.isNotNull"] !== void 0)
45971
- args.purchase_order__isNotNull = opts["purchaseOrder.isNotNull"];
45972
46410
  if (opts["purchaseOrder.equals"] !== void 0)
45973
46411
  args.purchase_order__equals = opts["purchaseOrder.equals"];
45974
46412
  if (opts["purchaseOrder.contains"] !== void 0)
@@ -45977,6 +46415,10 @@ Examples:
45977
46415
  args.purchase_order__startsWith = opts["purchaseOrder.startsWith"];
45978
46416
  if (opts["purchaseOrder.endWith"] !== void 0)
45979
46417
  args.purchase_order__endWith = opts["purchaseOrder.endWith"];
46418
+ if (opts["purchaseOrder.isNull"] !== void 0)
46419
+ args.purchase_order__isNull = opts["purchaseOrder.isNull"];
46420
+ if (opts["purchaseOrder.isNotNull"] !== void 0)
46421
+ args.purchase_order__isNotNull = opts["purchaseOrder.isNotNull"];
45980
46422
  if (opts.customProperties !== void 0)
45981
46423
  args.custom_properties = opts.customProperties;
45982
46424
  if (opts.invoiceDrafts !== void 0)
@@ -45987,10 +46429,6 @@ Examples:
45987
46429
  args.updated_at = opts.updatedAt;
45988
46430
  if (opts["updatedAt.not"] !== void 0)
45989
46431
  args.updated_at__not = opts["updatedAt.not"];
45990
- if (opts["updatedAt.isNull"] !== void 0)
45991
- args.updated_at__isNull = opts["updatedAt.isNull"];
45992
- if (opts["updatedAt.isNotNull"] !== void 0)
45993
- args.updated_at__isNotNull = opts["updatedAt.isNotNull"];
45994
46432
  if (opts["updatedAt.equals"] !== void 0)
45995
46433
  args.updated_at__equals = opts["updatedAt.equals"];
45996
46434
  if (opts["updatedAt.lt"] !== void 0)
@@ -46005,10 +46443,6 @@ Examples:
46005
46443
  args.cancel_at = opts.cancelAt;
46006
46444
  if (opts["cancelAt.not"] !== void 0)
46007
46445
  args.cancel_at__not = opts["cancelAt.not"];
46008
- if (opts["cancelAt.isNull"] !== void 0)
46009
- args.cancel_at__isNull = opts["cancelAt.isNull"];
46010
- if (opts["cancelAt.isNotNull"] !== void 0)
46011
- args.cancel_at__isNotNull = opts["cancelAt.isNotNull"];
46012
46446
  if (opts["cancelAt.equals"] !== void 0)
46013
46447
  args.cancel_at__equals = opts["cancelAt.equals"];
46014
46448
  if (opts["cancelAt.lt"] !== void 0)
@@ -46019,6 +46453,10 @@ Examples:
46019
46453
  args.cancel_at__gt = opts["cancelAt.gt"];
46020
46454
  if (opts["cancelAt.gte"] !== void 0)
46021
46455
  args.cancel_at__gte = opts["cancelAt.gte"];
46456
+ if (opts["cancelAt.isNull"] !== void 0)
46457
+ args.cancel_at__isNull = opts["cancelAt.isNull"];
46458
+ if (opts["cancelAt.isNotNull"] !== void 0)
46459
+ args.cancel_at__isNotNull = opts["cancelAt.isNotNull"];
46022
46460
  if (opts["contractStart.gte"] !== void 0)
46023
46461
  args.contract_start__gte = opts["contractStart.gte"];
46024
46462
  if (opts["contractStart.lte"] !== void 0)
@@ -46046,52 +46484,48 @@ Examples:
46046
46484
  "status__in",
46047
46485
  "currency",
46048
46486
  "currency__not",
46049
- "currency__isNull",
46050
- "currency__isNotNull",
46051
46487
  "currency__equals",
46052
46488
  "currency__contains",
46053
46489
  "currency__startsWith",
46054
46490
  "currency__endWith",
46055
46491
  "plan_id",
46056
46492
  "plan_id__not",
46057
- "plan_id__isNull",
46058
- "plan_id__isNotNull",
46059
46493
  "plan_id__equals",
46060
46494
  "plan_id__contains",
46061
46495
  "plan_id__startsWith",
46062
46496
  "plan_id__endWith",
46497
+ "plan_id__isNull",
46498
+ "plan_id__isNotNull",
46063
46499
  "original_quote_id",
46064
46500
  "original_quote_id__not",
46065
- "original_quote_id__isNull",
46066
- "original_quote_id__isNotNull",
46067
46501
  "original_quote_id__equals",
46068
46502
  "original_quote_id__contains",
46069
46503
  "original_quote_id__startsWith",
46070
46504
  "original_quote_id__endWith",
46505
+ "original_quote_id__isNull",
46506
+ "original_quote_id__isNotNull",
46071
46507
  "customer_id",
46072
46508
  "customer_id__not",
46073
- "customer_id__isNull",
46074
- "customer_id__isNotNull",
46075
46509
  "customer_id__equals",
46076
46510
  "customer_id__contains",
46077
46511
  "customer_id__startsWith",
46078
46512
  "customer_id__endWith",
46513
+ "customer_id__isNull",
46514
+ "customer_id__isNotNull",
46079
46515
  "invoicing_entity_id",
46080
46516
  "purchase_order",
46081
46517
  "purchase_order__not",
46082
- "purchase_order__isNull",
46083
- "purchase_order__isNotNull",
46084
46518
  "purchase_order__equals",
46085
46519
  "purchase_order__contains",
46086
46520
  "purchase_order__startsWith",
46087
46521
  "purchase_order__endWith",
46522
+ "purchase_order__isNull",
46523
+ "purchase_order__isNotNull",
46088
46524
  "custom_properties",
46089
46525
  "invoice_drafts",
46090
46526
  "integration_entity_id",
46091
46527
  "updated_at",
46092
46528
  "updated_at__not",
46093
- "updated_at__isNull",
46094
- "updated_at__isNotNull",
46095
46529
  "updated_at__equals",
46096
46530
  "updated_at__lt",
46097
46531
  "updated_at__lte",
@@ -46099,13 +46533,13 @@ Examples:
46099
46533
  "updated_at__gte",
46100
46534
  "cancel_at",
46101
46535
  "cancel_at__not",
46102
- "cancel_at__isNull",
46103
- "cancel_at__isNotNull",
46104
46536
  "cancel_at__equals",
46105
46537
  "cancel_at__lt",
46106
46538
  "cancel_at__lte",
46107
46539
  "cancel_at__gt",
46108
46540
  "cancel_at__gte",
46541
+ "cancel_at__isNull",
46542
+ "cancel_at__isNotNull",
46109
46543
  "contract_start__gte",
46110
46544
  "contract_start__lte",
46111
46545
  "contract_end__gte",
@@ -46392,7 +46826,7 @@ Examples:
46392
46826
  // build/commands/generated/subscriptions-transitions.js
46393
46827
  function registerSubscriptions_TransitionsCommands(parent) {
46394
46828
  const resource = parent.command("subscriptions-transitions").description("Manage subscriptions > transitions");
46395
- resource.command("list-subscription-transitions").description(`List subscription transitions (migrations from one subscription to another). Filterable and paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--source-subscription-id <value>", `source_subscription_id`).option("--source-subscription-id.not <value>", `source_subscription_id__not`).option("--source-subscription-id.is-null <value>", `source_subscription_id__isNull`).option("--source-subscription-id.is-not-null <value>", `source_subscription_id__isNotNull`).option("--source-subscription-id.equals <value>", `source_subscription_id__equals`).option("--source-subscription-id.contains <value>", `source_subscription_id__contains`).option("--source-subscription-id.starts-with <value>", `source_subscription_id__startsWith`).option("--source-subscription-id.end-with <value>", `source_subscription_id__endWith`).option("--base-subscription-id <value>", `base_subscription_id`).option("--base-subscription-id.not <value>", `base_subscription_id__not`).option("--base-subscription-id.is-null <value>", `base_subscription_id__isNull`).option("--base-subscription-id.is-not-null <value>", `base_subscription_id__isNotNull`).option("--base-subscription-id.equals <value>", `base_subscription_id__equals`).option("--base-subscription-id.contains <value>", `base_subscription_id__contains`).option("--base-subscription-id.starts-with <value>", `base_subscription_id__startsWith`).option("--base-subscription-id.end-with <value>", `base_subscription_id__endWith`).option("--target-subscription-id <value>", `target_subscription_id`).option("--target-subscription-id.not <value>", `target_subscription_id__not`).option("--target-subscription-id.is-null <value>", `target_subscription_id__isNull`).option("--target-subscription-id.is-not-null <value>", `target_subscription_id__isNotNull`).option("--target-subscription-id.equals <value>", `target_subscription_id__equals`).option("--target-subscription-id.contains <value>", `target_subscription_id__contains`).option("--target-subscription-id.starts-with <value>", `target_subscription_id__startsWith`).option("--target-subscription-id.end-with <value>", `target_subscription_id__endWith`).option("--transition-date <value>", `transition_date`).option("--transition-date.not <value>", `transition_date__not`).option("--transition-date.is-null <value>", `transition_date__isNull`).option("--transition-date.is-not-null <value>", `transition_date__isNotNull`).option("--transition-date.equals <value>", `transition_date__equals`).option("--transition-date.lt <value>", `transition_date__lt`).option("--transition-date.lte <value>", `transition_date__lte`).option("--transition-date.gt <value>", `transition_date__gt`).option("--transition-date.gte <value>", `transition_date__gte`).option("--transitioned-at <value>", `transitioned_at`).option("--transitioned-at.not <value>", `transitioned_at__not`).option("--transitioned-at.is-null <value>", `transitioned_at__isNull`).option("--transitioned-at.is-not-null <value>", `transitioned_at__isNotNull`).option("--transitioned-at.equals <value>", `transitioned_at__equals`).option("--transitioned-at.lt <value>", `transitioned_at__lt`).option("--transitioned-at.lte <value>", `transitioned_at__lte`).option("--transitioned-at.gt <value>", `transitioned_at__gt`).option("--transitioned-at.gte <value>", `transitioned_at__gte`).addHelpText("after", `
46829
+ resource.command("list-subscription-transitions").description(`List subscription transitions (migrations from one subscription to another). Filterable and paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--source-subscription-id <value>", `source_subscription_id`).option("--source-subscription-id.not <value>", `source_subscription_id__not`).option("--source-subscription-id.equals <value>", `source_subscription_id__equals`).option("--source-subscription-id.contains <value>", `source_subscription_id__contains`).option("--source-subscription-id.starts-with <value>", `source_subscription_id__startsWith`).option("--source-subscription-id.end-with <value>", `source_subscription_id__endWith`).option("--base-subscription-id <value>", `base_subscription_id`).option("--base-subscription-id.not <value>", `base_subscription_id__not`).option("--base-subscription-id.equals <value>", `base_subscription_id__equals`).option("--base-subscription-id.contains <value>", `base_subscription_id__contains`).option("--base-subscription-id.starts-with <value>", `base_subscription_id__startsWith`).option("--base-subscription-id.end-with <value>", `base_subscription_id__endWith`).option("--target-subscription-id <value>", `target_subscription_id`).option("--target-subscription-id.not <value>", `target_subscription_id__not`).option("--target-subscription-id.equals <value>", `target_subscription_id__equals`).option("--target-subscription-id.contains <value>", `target_subscription_id__contains`).option("--target-subscription-id.starts-with <value>", `target_subscription_id__startsWith`).option("--target-subscription-id.end-with <value>", `target_subscription_id__endWith`).option("--target-subscription-id.is-null <value>", `target_subscription_id__isNull`).option("--target-subscription-id.is-not-null <value>", `target_subscription_id__isNotNull`).option("--transition-date <value>", `transition_date`).option("--transition-date.not <value>", `transition_date__not`).option("--transition-date.equals <value>", `transition_date__equals`).option("--transition-date.lt <value>", `transition_date__lt`).option("--transition-date.lte <value>", `transition_date__lte`).option("--transition-date.gt <value>", `transition_date__gt`).option("--transition-date.gte <value>", `transition_date__gte`).option("--transition-date.is-null <value>", `transition_date__isNull`).option("--transition-date.is-not-null <value>", `transition_date__isNotNull`).option("--transitioned-at <value>", `transitioned_at`).option("--transitioned-at.not <value>", `transitioned_at__not`).option("--transitioned-at.equals <value>", `transitioned_at__equals`).option("--transitioned-at.lt <value>", `transitioned_at__lt`).option("--transitioned-at.lte <value>", `transitioned_at__lte`).option("--transitioned-at.gt <value>", `transitioned_at__gt`).option("--transitioned-at.gte <value>", `transitioned_at__gte`).option("--transitioned-at.is-null <value>", `transitioned_at__isNull`).option("--transitioned-at.is-not-null <value>", `transitioned_at__isNotNull`).addHelpText("after", `
46396
46830
  Examples:
46397
46831
  hyperline subscriptions-transitions list-subscription-transitions
46398
46832
  hyperline subscriptions-transitions list-subscription-transitions --take <take> --status <status>`).action(async (opts) => {
@@ -46410,10 +46844,6 @@ Examples:
46410
46844
  args.source_subscription_id = opts.sourceSubscriptionId;
46411
46845
  if (opts["sourceSubscriptionId.not"] !== void 0)
46412
46846
  args.source_subscription_id__not = opts["sourceSubscriptionId.not"];
46413
- if (opts["sourceSubscriptionId.isNull"] !== void 0)
46414
- args.source_subscription_id__isNull = opts["sourceSubscriptionId.isNull"];
46415
- if (opts["sourceSubscriptionId.isNotNull"] !== void 0)
46416
- args.source_subscription_id__isNotNull = opts["sourceSubscriptionId.isNotNull"];
46417
46847
  if (opts["sourceSubscriptionId.equals"] !== void 0)
46418
46848
  args.source_subscription_id__equals = opts["sourceSubscriptionId.equals"];
46419
46849
  if (opts["sourceSubscriptionId.contains"] !== void 0)
@@ -46426,10 +46856,6 @@ Examples:
46426
46856
  args.base_subscription_id = opts.baseSubscriptionId;
46427
46857
  if (opts["baseSubscriptionId.not"] !== void 0)
46428
46858
  args.base_subscription_id__not = opts["baseSubscriptionId.not"];
46429
- if (opts["baseSubscriptionId.isNull"] !== void 0)
46430
- args.base_subscription_id__isNull = opts["baseSubscriptionId.isNull"];
46431
- if (opts["baseSubscriptionId.isNotNull"] !== void 0)
46432
- args.base_subscription_id__isNotNull = opts["baseSubscriptionId.isNotNull"];
46433
46859
  if (opts["baseSubscriptionId.equals"] !== void 0)
46434
46860
  args.base_subscription_id__equals = opts["baseSubscriptionId.equals"];
46435
46861
  if (opts["baseSubscriptionId.contains"] !== void 0)
@@ -46442,10 +46868,6 @@ Examples:
46442
46868
  args.target_subscription_id = opts.targetSubscriptionId;
46443
46869
  if (opts["targetSubscriptionId.not"] !== void 0)
46444
46870
  args.target_subscription_id__not = opts["targetSubscriptionId.not"];
46445
- if (opts["targetSubscriptionId.isNull"] !== void 0)
46446
- args.target_subscription_id__isNull = opts["targetSubscriptionId.isNull"];
46447
- if (opts["targetSubscriptionId.isNotNull"] !== void 0)
46448
- args.target_subscription_id__isNotNull = opts["targetSubscriptionId.isNotNull"];
46449
46871
  if (opts["targetSubscriptionId.equals"] !== void 0)
46450
46872
  args.target_subscription_id__equals = opts["targetSubscriptionId.equals"];
46451
46873
  if (opts["targetSubscriptionId.contains"] !== void 0)
@@ -46454,14 +46876,14 @@ Examples:
46454
46876
  args.target_subscription_id__startsWith = opts["targetSubscriptionId.startsWith"];
46455
46877
  if (opts["targetSubscriptionId.endWith"] !== void 0)
46456
46878
  args.target_subscription_id__endWith = opts["targetSubscriptionId.endWith"];
46879
+ if (opts["targetSubscriptionId.isNull"] !== void 0)
46880
+ args.target_subscription_id__isNull = opts["targetSubscriptionId.isNull"];
46881
+ if (opts["targetSubscriptionId.isNotNull"] !== void 0)
46882
+ args.target_subscription_id__isNotNull = opts["targetSubscriptionId.isNotNull"];
46457
46883
  if (opts.transitionDate !== void 0)
46458
46884
  args.transition_date = opts.transitionDate;
46459
46885
  if (opts["transitionDate.not"] !== void 0)
46460
46886
  args.transition_date__not = opts["transitionDate.not"];
46461
- if (opts["transitionDate.isNull"] !== void 0)
46462
- args.transition_date__isNull = opts["transitionDate.isNull"];
46463
- if (opts["transitionDate.isNotNull"] !== void 0)
46464
- args.transition_date__isNotNull = opts["transitionDate.isNotNull"];
46465
46887
  if (opts["transitionDate.equals"] !== void 0)
46466
46888
  args.transition_date__equals = opts["transitionDate.equals"];
46467
46889
  if (opts["transitionDate.lt"] !== void 0)
@@ -46472,14 +46894,14 @@ Examples:
46472
46894
  args.transition_date__gt = opts["transitionDate.gt"];
46473
46895
  if (opts["transitionDate.gte"] !== void 0)
46474
46896
  args.transition_date__gte = opts["transitionDate.gte"];
46897
+ if (opts["transitionDate.isNull"] !== void 0)
46898
+ args.transition_date__isNull = opts["transitionDate.isNull"];
46899
+ if (opts["transitionDate.isNotNull"] !== void 0)
46900
+ args.transition_date__isNotNull = opts["transitionDate.isNotNull"];
46475
46901
  if (opts.transitionedAt !== void 0)
46476
46902
  args.transitioned_at = opts.transitionedAt;
46477
46903
  if (opts["transitionedAt.not"] !== void 0)
46478
46904
  args.transitioned_at__not = opts["transitionedAt.not"];
46479
- if (opts["transitionedAt.isNull"] !== void 0)
46480
- args.transitioned_at__isNull = opts["transitionedAt.isNull"];
46481
- if (opts["transitionedAt.isNotNull"] !== void 0)
46482
- args.transitioned_at__isNotNull = opts["transitionedAt.isNotNull"];
46483
46905
  if (opts["transitionedAt.equals"] !== void 0)
46484
46906
  args.transitioned_at__equals = opts["transitionedAt.equals"];
46485
46907
  if (opts["transitionedAt.lt"] !== void 0)
@@ -46490,6 +46912,10 @@ Examples:
46490
46912
  args.transitioned_at__gt = opts["transitionedAt.gt"];
46491
46913
  if (opts["transitionedAt.gte"] !== void 0)
46492
46914
  args.transitioned_at__gte = opts["transitionedAt.gte"];
46915
+ if (opts["transitionedAt.isNull"] !== void 0)
46916
+ args.transitioned_at__isNull = opts["transitionedAt.isNull"];
46917
+ if (opts["transitionedAt.isNotNull"] !== void 0)
46918
+ args.transitioned_at__isNotNull = opts["transitionedAt.isNotNull"];
46493
46919
  if (opts.take !== void 0)
46494
46920
  args.take = Number(opts.take);
46495
46921
  if (opts.skip !== void 0)
@@ -46505,46 +46931,42 @@ Examples:
46505
46931
  "status__in",
46506
46932
  "source_subscription_id",
46507
46933
  "source_subscription_id__not",
46508
- "source_subscription_id__isNull",
46509
- "source_subscription_id__isNotNull",
46510
46934
  "source_subscription_id__equals",
46511
46935
  "source_subscription_id__contains",
46512
46936
  "source_subscription_id__startsWith",
46513
46937
  "source_subscription_id__endWith",
46514
46938
  "base_subscription_id",
46515
46939
  "base_subscription_id__not",
46516
- "base_subscription_id__isNull",
46517
- "base_subscription_id__isNotNull",
46518
46940
  "base_subscription_id__equals",
46519
46941
  "base_subscription_id__contains",
46520
46942
  "base_subscription_id__startsWith",
46521
46943
  "base_subscription_id__endWith",
46522
46944
  "target_subscription_id",
46523
46945
  "target_subscription_id__not",
46524
- "target_subscription_id__isNull",
46525
- "target_subscription_id__isNotNull",
46526
46946
  "target_subscription_id__equals",
46527
46947
  "target_subscription_id__contains",
46528
46948
  "target_subscription_id__startsWith",
46529
46949
  "target_subscription_id__endWith",
46950
+ "target_subscription_id__isNull",
46951
+ "target_subscription_id__isNotNull",
46530
46952
  "transition_date",
46531
46953
  "transition_date__not",
46532
- "transition_date__isNull",
46533
- "transition_date__isNotNull",
46534
46954
  "transition_date__equals",
46535
46955
  "transition_date__lt",
46536
46956
  "transition_date__lte",
46537
46957
  "transition_date__gt",
46538
46958
  "transition_date__gte",
46959
+ "transition_date__isNull",
46960
+ "transition_date__isNotNull",
46539
46961
  "transitioned_at",
46540
46962
  "transitioned_at__not",
46541
- "transitioned_at__isNull",
46542
- "transitioned_at__isNotNull",
46543
46963
  "transitioned_at__equals",
46544
46964
  "transitioned_at__lt",
46545
46965
  "transitioned_at__lte",
46546
46966
  "transitioned_at__gt",
46547
- "transitioned_at__gte"
46967
+ "transitioned_at__gte",
46968
+ "transitioned_at__isNull",
46969
+ "transitioned_at__isNotNull"
46548
46970
  ]
46549
46971
  });
46550
46972
  });
@@ -46622,7 +47044,7 @@ Examples:
46622
47044
  // build/commands/generated/taxes.js
46623
47045
  function registerTaxesCommands(parent) {
46624
47046
  const resource = parent.command("taxes").description("Manage taxes");
46625
- resource.command("list-tax-rates").description(`List custom and default tax rate mappings with optional filters for id, name, description, and invoicing_entity_id. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.is-null <value>", `id__isNull`).option("--id.is-not-null <value>", `id__isNotNull`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--description <value>", `description`).option("--description.not <value>", `description__not`).option("--description.is-null <value>", `description__isNull`).option("--description.is-not-null <value>", `description__isNotNull`).option("--description.equals <value>", `description__equals`).option("--description.contains <value>", `description__contains`).option("--description.starts-with <value>", `description__startsWith`).option("--description.end-with <value>", `description__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).addHelpText("after", `
47047
+ resource.command("list-tax-rates").description(`List custom and default tax rate mappings with optional filters for id, name, description, and invoicing_entity_id. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--id <value>", `id`).option("--id.not <value>", `id__not`).option("--id.equals <value>", `id__equals`).option("--id.contains <value>", `id__contains`).option("--id.starts-with <value>", `id__startsWith`).option("--id.end-with <value>", `id__endWith`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--description <value>", `description`).option("--description.not <value>", `description__not`).option("--description.equals <value>", `description__equals`).option("--description.contains <value>", `description__contains`).option("--description.starts-with <value>", `description__startsWith`).option("--description.end-with <value>", `description__endWith`).option("--description.is-null <value>", `description__isNull`).option("--description.is-not-null <value>", `description__isNotNull`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).addHelpText("after", `
46626
47048
  Examples:
46627
47049
  hyperline taxes list-tax-rates
46628
47050
  hyperline taxes list-tax-rates --take <take> --id <id>`).action(async (opts) => {
@@ -46636,10 +47058,6 @@ Examples:
46636
47058
  args.id = opts.id;
46637
47059
  if (opts["id.not"] !== void 0)
46638
47060
  args.id__not = opts["id.not"];
46639
- if (opts["id.isNull"] !== void 0)
46640
- args.id__isNull = opts["id.isNull"];
46641
- if (opts["id.isNotNull"] !== void 0)
46642
- args.id__isNotNull = opts["id.isNotNull"];
46643
47061
  if (opts["id.equals"] !== void 0)
46644
47062
  args.id__equals = opts["id.equals"];
46645
47063
  if (opts["id.contains"] !== void 0)
@@ -46652,10 +47070,6 @@ Examples:
46652
47070
  args.name = opts.name;
46653
47071
  if (opts["name.not"] !== void 0)
46654
47072
  args.name__not = opts["name.not"];
46655
- if (opts["name.isNull"] !== void 0)
46656
- args.name__isNull = opts["name.isNull"];
46657
- if (opts["name.isNotNull"] !== void 0)
46658
- args.name__isNotNull = opts["name.isNotNull"];
46659
47073
  if (opts["name.equals"] !== void 0)
46660
47074
  args.name__equals = opts["name.equals"];
46661
47075
  if (opts["name.contains"] !== void 0)
@@ -46664,14 +47078,14 @@ Examples:
46664
47078
  args.name__startsWith = opts["name.startsWith"];
46665
47079
  if (opts["name.endWith"] !== void 0)
46666
47080
  args.name__endWith = opts["name.endWith"];
47081
+ if (opts["name.isNull"] !== void 0)
47082
+ args.name__isNull = opts["name.isNull"];
47083
+ if (opts["name.isNotNull"] !== void 0)
47084
+ args.name__isNotNull = opts["name.isNotNull"];
46667
47085
  if (opts.description !== void 0)
46668
47086
  args.description = opts.description;
46669
47087
  if (opts["description.not"] !== void 0)
46670
47088
  args.description__not = opts["description.not"];
46671
- if (opts["description.isNull"] !== void 0)
46672
- args.description__isNull = opts["description.isNull"];
46673
- if (opts["description.isNotNull"] !== void 0)
46674
- args.description__isNotNull = opts["description.isNotNull"];
46675
47089
  if (opts["description.equals"] !== void 0)
46676
47090
  args.description__equals = opts["description.equals"];
46677
47091
  if (opts["description.contains"] !== void 0)
@@ -46680,14 +47094,14 @@ Examples:
46680
47094
  args.description__startsWith = opts["description.startsWith"];
46681
47095
  if (opts["description.endWith"] !== void 0)
46682
47096
  args.description__endWith = opts["description.endWith"];
47097
+ if (opts["description.isNull"] !== void 0)
47098
+ args.description__isNull = opts["description.isNull"];
47099
+ if (opts["description.isNotNull"] !== void 0)
47100
+ args.description__isNotNull = opts["description.isNotNull"];
46683
47101
  if (opts.invoicingEntityId !== void 0)
46684
47102
  args.invoicing_entity_id = opts.invoicingEntityId;
46685
47103
  if (opts["invoicingEntityId.not"] !== void 0)
46686
47104
  args.invoicing_entity_id__not = opts["invoicingEntityId.not"];
46687
- if (opts["invoicingEntityId.isNull"] !== void 0)
46688
- args.invoicing_entity_id__isNull = opts["invoicingEntityId.isNull"];
46689
- if (opts["invoicingEntityId.isNotNull"] !== void 0)
46690
- args.invoicing_entity_id__isNotNull = opts["invoicingEntityId.isNotNull"];
46691
47105
  if (opts["invoicingEntityId.equals"] !== void 0)
46692
47106
  args.invoicing_entity_id__equals = opts["invoicingEntityId.equals"];
46693
47107
  if (opts["invoicingEntityId.contains"] !== void 0)
@@ -46709,32 +47123,28 @@ Examples:
46709
47123
  "skip",
46710
47124
  "id",
46711
47125
  "id__not",
46712
- "id__isNull",
46713
- "id__isNotNull",
46714
47126
  "id__equals",
46715
47127
  "id__contains",
46716
47128
  "id__startsWith",
46717
47129
  "id__endWith",
46718
47130
  "name",
46719
47131
  "name__not",
46720
- "name__isNull",
46721
- "name__isNotNull",
46722
47132
  "name__equals",
46723
47133
  "name__contains",
46724
47134
  "name__startsWith",
46725
47135
  "name__endWith",
47136
+ "name__isNull",
47137
+ "name__isNotNull",
46726
47138
  "description",
46727
47139
  "description__not",
46728
- "description__isNull",
46729
- "description__isNotNull",
46730
47140
  "description__equals",
46731
47141
  "description__contains",
46732
47142
  "description__startsWith",
46733
47143
  "description__endWith",
47144
+ "description__isNull",
47145
+ "description__isNotNull",
46734
47146
  "invoicing_entity_id",
46735
47147
  "invoicing_entity_id__not",
46736
- "invoicing_entity_id__isNull",
46737
- "invoicing_entity_id__isNotNull",
46738
47148
  "invoicing_entity_id__equals",
46739
47149
  "invoicing_entity_id__contains",
46740
47150
  "invoicing_entity_id__startsWith",
@@ -47313,11 +47723,14 @@ function registerAllCommands(program2) {
47313
47723
  registerAi_BillingCommands(program2);
47314
47724
  registerAi_CostsCommands(program2);
47315
47725
  registerAnalyticsCommands(program2);
47726
+ registerApproval_WorkflowsCommands(program2);
47316
47727
  registerBank_AccountsCommands(program2);
47728
+ registerCatalogCommands(program2);
47317
47729
  registerCompaniesCommands(program2);
47318
47730
  registerCouponsCommands(program2);
47319
47731
  registerCoupons_Promotion_CodesCommands(program2);
47320
47732
  registerCustomers_CreditsCommands(program2);
47733
+ registerCustomers_FeaturesCommands(program2);
47321
47734
  registerCustomers_Payment_MethodsCommands(program2);
47322
47735
  registerCustomers_AddressCommands(program2);
47323
47736
  registerCustomers_ShippingCommands(program2);
@@ -47326,12 +47739,14 @@ function registerAllCommands(program2) {
47326
47739
  registerOrganisationsCommands(program2);
47327
47740
  registerCustomers_SegmentsCommands(program2);
47328
47741
  registerExportsCommands(program2);
47742
+ registerFeaturesCommands(program2);
47329
47743
  registerFilesCommands(program2);
47330
47744
  registerInvoicesCommands(program2);
47331
47745
  registerInvoices_TransactionsCommands(program2);
47332
47746
  registerInvoicing_EntitiesCommands(program2);
47333
47747
  registerAi_MonitoringCommands(program2);
47334
47748
  registerPaymentsCommands(program2);
47749
+ registerProducts_FeaturesCommands(program2);
47335
47750
  registerProductsCommands(program2);
47336
47751
  registerPrice_ConfigurationsCommands(program2);
47337
47752
  registerQuotesCommands(program2);
@@ -63392,7 +63807,25 @@ var de = {
63392
63807
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
63393
63808
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
63394
63809
  "subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren",
63395
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben"
63810
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben",
63811
+ "quotes.blockers.quote_not_draft": "Setzen Sie das Angebot auf Entwurf zur\xFCck, bevor Sie seine Konfigurationen \xE4ndern",
63812
+ "quotes.blockers.quote_expiration_date_missing": "Das Angebot muss ein Ablaufdatum haben, um zur Genehmigung gesendet zu werden",
63813
+ "quotes.blockers.quote_configuration_missing": "F\xFCgen Sie mindestens eine Konfiguration hinzu, bevor Sie das Angebot einreichen",
63814
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Abonnement\xE4nderungen m\xFCssen den Kunden des Angebots verwenden",
63815
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Aktivieren Sie mehrere Konfigurationen, bevor Sie einen untergeordneten Kunden zuweisen",
63816
+ "quotes.blockers.quote_configuration_customer_not_child": "W\xE4hlen Sie einen untergeordneten Kunden des Angebotskunden",
63817
+ "quotes.blockers.quote_configuration_type_mismatch": "Die verkn\xFCpfte Konfiguration entspricht nicht dem Konfigurationstyp",
63818
+ "quotes.blockers.quote_configuration_not_draft": "W\xE4hlen Sie eine Konfiguration im Entwurf",
63819
+ "quotes.blockers.quote_configuration_customer_mismatch": "Die Konfiguration muss zum Kunden der Konfiguration geh\xF6ren",
63820
+ "quotes.blockers.quote_configuration_currency_mismatch": "Die Konfiguration muss die W\xE4hrung des Angebots verwenden",
63821
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "Die Rechnung muss die Rechnungsstellungseinheit des Angebots verwenden",
63822
+ "quotes.blockers.quote_configuration_already_linked": "Die Konfiguration ist bereits mit einer Angebotskonfiguration verkn\xFCpft",
63823
+ "quotes.blockers.quote_configuration_not_subscription_update": "W\xE4hlen Sie eine Konfiguration f\xFCr eine Abonnement\xE4nderung",
63824
+ "quotes.blockers.quote_configuration_not_new_subscription": "W\xE4hlen Sie eine Konfiguration f\xFCr ein neues Abonnement",
63825
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Ein Abonnement kann in einem Angebot nur einmal ge\xE4ndert werden",
63826
+ "quotes.blockers.quote_draft_invoice_missing": "Das Angebot muss eine Rechnung im Entwurf haben, um abgeschlossen zu werden",
63827
+ "quotes.blockers.quote_draft_subscription_missing": "Das Angebot muss ein Abonnement im Entwurf haben, um abgeschlossen zu werden",
63828
+ "quotes.blockers.quote_expiry_after_transition_date": "Das Ablaufdatum des Angebots muss sp\xE4testens am Ende des aktuellen Abrechnungszeitraums liegen, oder am geplanten \xDCbergangsdatum, wenn dieses sp\xE4ter liegt"
63396
63829
  };
63397
63830
 
63398
63831
  // ../hyperline-i18n/build/locales/en.js
@@ -63442,7 +63875,25 @@ var en = {
63442
63875
  "accounting.revrec.closedPeriodFallbackNote": " (posted to next open period \u2014 target accounting period closed; original date {{originalDate}})",
63443
63876
  "einvoicing.paymentProcessed": "Payment processed",
63444
63877
  "einvoicing.paymentReceived": "Payment received",
63445
- "einvoicing.paymentFromWallet": "Payment from wallet"
63878
+ "einvoicing.paymentFromWallet": "Payment from wallet",
63879
+ "quotes.blockers.quote_not_draft": "Redraft the quote before changing its configurations",
63880
+ "quotes.blockers.quote_expiration_date_missing": "Quote must have an expiration date to be sent for approval",
63881
+ "quotes.blockers.quote_configuration_missing": "Add at least one configuration before submitting the quote",
63882
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Subscription updates must use the quote customer",
63883
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Enable multiple configurations before assigning a child customer",
63884
+ "quotes.blockers.quote_configuration_customer_not_child": "Select a child customer of the quote customer",
63885
+ "quotes.blockers.quote_configuration_type_mismatch": "The linked configuration does not match the configuration type",
63886
+ "quotes.blockers.quote_configuration_not_draft": "Select a draft configuration",
63887
+ "quotes.blockers.quote_configuration_customer_mismatch": "The configuration must belong to the configuration customer",
63888
+ "quotes.blockers.quote_configuration_currency_mismatch": "The configuration must use the quote currency",
63889
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "The invoice must use the quote invoicing entity",
63890
+ "quotes.blockers.quote_configuration_already_linked": "The configuration is already linked to a quote configuration",
63891
+ "quotes.blockers.quote_configuration_not_subscription_update": "Select a subscription update configuration",
63892
+ "quotes.blockers.quote_configuration_not_new_subscription": "Select a new subscription configuration",
63893
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "A subscription can only be updated once in a quote",
63894
+ "quotes.blockers.quote_draft_invoice_missing": "Quote must have a draft invoice to be finalized",
63895
+ "quotes.blockers.quote_draft_subscription_missing": "Quote must have a draft subscription to be finalized",
63896
+ "quotes.blockers.quote_expiry_after_transition_date": "The quote expiration date must be on or before the end of the current billing period, or the scheduled transition date when it falls later"
63446
63897
  };
63447
63898
 
63448
63899
  // ../hyperline-i18n/build/locales/es.js
@@ -63492,7 +63943,25 @@ var es = {
63492
63943
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
63493
63944
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
63494
63945
  "subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}",
63495
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado"
63946
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado",
63947
+ "quotes.blockers.quote_not_draft": "Vuelve a poner el presupuesto en borrador antes de cambiar sus configuraciones",
63948
+ "quotes.blockers.quote_expiration_date_missing": "El presupuesto debe tener una fecha de vencimiento para enviarse a aprobaci\xF3n",
63949
+ "quotes.blockers.quote_configuration_missing": "A\xF1ade al menos una configuraci\xF3n antes de enviar el presupuesto",
63950
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Las actualizaciones de suscripci\xF3n deben usar el cliente del presupuesto",
63951
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Activa las configuraciones m\xFAltiples antes de asignar un cliente hijo",
63952
+ "quotes.blockers.quote_configuration_customer_not_child": "Selecciona un cliente hijo del cliente del presupuesto",
63953
+ "quotes.blockers.quote_configuration_type_mismatch": "La configuraci\xF3n vinculada no coincide con el tipo de configuraci\xF3n",
63954
+ "quotes.blockers.quote_configuration_not_draft": "Selecciona una configuraci\xF3n en borrador",
63955
+ "quotes.blockers.quote_configuration_customer_mismatch": "La configuraci\xF3n debe pertenecer al cliente de la configuraci\xF3n",
63956
+ "quotes.blockers.quote_configuration_currency_mismatch": "La configuraci\xF3n debe usar la moneda del presupuesto",
63957
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "La factura debe usar la entidad de facturaci\xF3n del presupuesto",
63958
+ "quotes.blockers.quote_configuration_already_linked": "La configuraci\xF3n ya est\xE1 vinculada a una configuraci\xF3n de presupuesto",
63959
+ "quotes.blockers.quote_configuration_not_subscription_update": "Selecciona una configuraci\xF3n de actualizaci\xF3n de suscripci\xF3n",
63960
+ "quotes.blockers.quote_configuration_not_new_subscription": "Selecciona una configuraci\xF3n de nueva suscripci\xF3n",
63961
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Una suscripci\xF3n solo puede actualizarse una vez en un presupuesto",
63962
+ "quotes.blockers.quote_draft_invoice_missing": "El presupuesto debe tener una factura en borrador para finalizarse",
63963
+ "quotes.blockers.quote_draft_subscription_missing": "El presupuesto debe tener una suscripci\xF3n en borrador para finalizarse",
63964
+ "quotes.blockers.quote_expiry_after_transition_date": "La fecha de vencimiento del presupuesto debe ser, como m\xE1ximo, el final del periodo de facturaci\xF3n actual, o la fecha de transici\xF3n programada si es posterior"
63496
63965
  };
63497
63966
 
63498
63967
  // ../hyperline-i18n/build/locales/fr.js
@@ -63542,7 +64011,25 @@ var fr = {
63542
64011
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
63543
64012
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
63544
64013
  "subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}",
63545
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9"
64014
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9",
64015
+ "quotes.blockers.quote_not_draft": "Repassez le devis en brouillon avant de modifier ses configurations",
64016
+ "quotes.blockers.quote_expiration_date_missing": "Le devis doit avoir une date d'expiration pour \xEAtre envoy\xE9 en validation",
64017
+ "quotes.blockers.quote_configuration_missing": "Ajoutez au moins une configuration avant de soumettre le devis",
64018
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Les mises \xE0 jour d'abonnement doivent utiliser le client du devis",
64019
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Activez les configurations multiples avant d'assigner un client enfant",
64020
+ "quotes.blockers.quote_configuration_customer_not_child": "S\xE9lectionnez un client enfant du client du devis",
64021
+ "quotes.blockers.quote_configuration_type_mismatch": "La configuration li\xE9e ne correspond pas au type de configuration",
64022
+ "quotes.blockers.quote_configuration_not_draft": "S\xE9lectionnez une configuration en brouillon",
64023
+ "quotes.blockers.quote_configuration_customer_mismatch": "La configuration doit appartenir au client de la configuration",
64024
+ "quotes.blockers.quote_configuration_currency_mismatch": "La configuration doit utiliser la devise du devis",
64025
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "La facture doit utiliser l'entit\xE9 de facturation du devis",
64026
+ "quotes.blockers.quote_configuration_already_linked": "La configuration est d\xE9j\xE0 li\xE9e \xE0 une configuration de devis",
64027
+ "quotes.blockers.quote_configuration_not_subscription_update": "S\xE9lectionnez une configuration de mise \xE0 jour d'abonnement",
64028
+ "quotes.blockers.quote_configuration_not_new_subscription": "S\xE9lectionnez une configuration de nouvel abonnement",
64029
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Un abonnement ne peut \xEAtre mis \xE0 jour qu'une seule fois dans un devis",
64030
+ "quotes.blockers.quote_draft_invoice_missing": "Le devis doit avoir une facture en brouillon pour \xEAtre finalis\xE9",
64031
+ "quotes.blockers.quote_draft_subscription_missing": "Le devis doit avoir un abonnement en brouillon pour \xEAtre finalis\xE9",
64032
+ "quotes.blockers.quote_expiry_after_transition_date": "La date d'expiration du devis doit \xEAtre au plus tard la fin de la p\xE9riode de facturation en cours, ou la date de transition planifi\xE9e si elle est post\xE9rieure"
63546
64033
  };
63547
64034
 
63548
64035
  // ../hyperline-i18n/build/locales/it.js
@@ -63592,7 +64079,25 @@ var it = {
63592
64079
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
63593
64080
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
63594
64081
  "subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}",
63595
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto"
64082
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto",
64083
+ "quotes.blockers.quote_not_draft": "Riporta il preventivo in bozza prima di modificarne le configurazioni",
64084
+ "quotes.blockers.quote_expiration_date_missing": "Il preventivo deve avere una data di scadenza per essere inviato per approvazione",
64085
+ "quotes.blockers.quote_configuration_missing": "Aggiungi almeno una configurazione prima di inviare il preventivo",
64086
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Gli aggiornamenti dell'abbonamento devono usare il cliente del preventivo",
64087
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Attiva le configurazioni multiple prima di assegnare un cliente figlio",
64088
+ "quotes.blockers.quote_configuration_customer_not_child": "Seleziona un cliente figlio del cliente del preventivo",
64089
+ "quotes.blockers.quote_configuration_type_mismatch": "La configurazione collegata non corrisponde al tipo di configurazione",
64090
+ "quotes.blockers.quote_configuration_not_draft": "Seleziona una configurazione in bozza",
64091
+ "quotes.blockers.quote_configuration_customer_mismatch": "La configurazione deve appartenere al cliente della configurazione",
64092
+ "quotes.blockers.quote_configuration_currency_mismatch": "La configurazione deve usare la valuta del preventivo",
64093
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "La fattura deve usare l'entit\xE0 di fatturazione del preventivo",
64094
+ "quotes.blockers.quote_configuration_already_linked": "La configurazione \xE8 gi\xE0 collegata a una configurazione del preventivo",
64095
+ "quotes.blockers.quote_configuration_not_subscription_update": "Seleziona una configurazione di aggiornamento dell'abbonamento",
64096
+ "quotes.blockers.quote_configuration_not_new_subscription": "Seleziona una configurazione di nuovo abbonamento",
64097
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Un abbonamento pu\xF2 essere aggiornato una sola volta in un preventivo",
64098
+ "quotes.blockers.quote_draft_invoice_missing": "Il preventivo deve avere una fattura in bozza per essere finalizzato",
64099
+ "quotes.blockers.quote_draft_subscription_missing": "Il preventivo deve avere un abbonamento in bozza per essere finalizzato",
64100
+ "quotes.blockers.quote_expiry_after_transition_date": "La data di scadenza del preventivo deve essere entro la fine del periodo di fatturazione corrente, o la data di transizione pianificata se successiva"
63596
64101
  };
63597
64102
 
63598
64103
  // ../hyperline-i18n/build/locales/lt.js
@@ -63642,7 +64147,25 @@ var lt = {
63642
64147
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
63643
64148
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
63644
64149
  "subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
63645
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis"
64150
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis",
64151
+ "quotes.blockers.quote_not_draft": "Prie\u0161 keisdami pasi\u016Blymo konfig\u016Bracijas, gr\u0105\u017Einkite j\u012F \u012F juodra\u0161t\u012F",
64152
+ "quotes.blockers.quote_expiration_date_missing": "Pasi\u016Blymas turi tur\u0117ti galiojimo pabaigos dat\u0105, kad b\u016Bt\u0173 i\u0161si\u0173stas tvirtinti",
64153
+ "quotes.blockers.quote_configuration_missing": "Prie\u0161 pateikdami pasi\u016Blym\u0105, prid\u0117kite bent vien\u0105 konfig\u016Bracij\u0105",
64154
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Prenumeratos atnaujinimai turi naudoti pasi\u016Blymo klient\u0105",
64155
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Prie\u0161 priskirdami antrin\u012F klient\u0105, \u012Fjunkite kelias konfig\u016Bracijas",
64156
+ "quotes.blockers.quote_configuration_customer_not_child": "Pasirinkite pasi\u016Blymo kliento antrin\u012F klient\u0105",
64157
+ "quotes.blockers.quote_configuration_type_mismatch": "Susieta konfig\u016Bracija neatitinka konfig\u016Bracijos tipo",
64158
+ "quotes.blockers.quote_configuration_not_draft": "Pasirinkite konfig\u016Bracijos juodra\u0161t\u012F",
64159
+ "quotes.blockers.quote_configuration_customer_mismatch": "Konfig\u016Bracija turi priklausyti konfig\u016Bracijos klientui",
64160
+ "quotes.blockers.quote_configuration_currency_mismatch": "Konfig\u016Bracija turi naudoti pasi\u016Blymo valiut\u0105",
64161
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "S\u0105skaita fakt\u016Bra turi naudoti pasi\u016Blymo s\u0105skait\u0173 i\u0161ra\u0161ymo subjekt\u0105",
64162
+ "quotes.blockers.quote_configuration_already_linked": "Konfig\u016Bracija jau susieta su pasi\u016Blymo konfig\u016Bracija",
64163
+ "quotes.blockers.quote_configuration_not_subscription_update": "Pasirinkite prenumeratos atnaujinimo konfig\u016Bracij\u0105",
64164
+ "quotes.blockers.quote_configuration_not_new_subscription": "Pasirinkite naujos prenumeratos konfig\u016Bracij\u0105",
64165
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Prenumerat\u0105 pasi\u016Blyme galima atnaujinti tik vien\u0105 kart\u0105",
64166
+ "quotes.blockers.quote_draft_invoice_missing": "Pasi\u016Blymas turi tur\u0117ti s\u0105skaitos fakt\u016Bros juodra\u0161t\u012F, kad b\u016Bt\u0173 u\u017Ebaigtas",
64167
+ "quotes.blockers.quote_draft_subscription_missing": "Pasi\u016Blymas turi tur\u0117ti prenumeratos juodra\u0161t\u012F, kad b\u016Bt\u0173 u\u017Ebaigtas",
64168
+ "quotes.blockers.quote_expiry_after_transition_date": "Pasi\u016Blymo galiojimo pabaigos data turi b\u016Bti ne v\u0117lesn\u0117 nei dabartinio atsiskaitymo laikotarpio pabaiga arba suplanuota per\u0117jimo data, jei ji v\u0117lesn\u0117"
63646
64169
  };
63647
64170
 
63648
64171
  // ../hyperline-i18n/build/locales/nl.js
@@ -63692,7 +64215,25 @@ var nl = {
63692
64215
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
63693
64216
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
63694
64217
  "subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}",
63695
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo"
64218
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo",
64219
+ "quotes.blockers.quote_not_draft": "Zet de offerte terug naar concept voordat u de configuraties wijzigt",
64220
+ "quotes.blockers.quote_expiration_date_missing": "De offerte moet een vervaldatum hebben om ter goedkeuring te worden verzonden",
64221
+ "quotes.blockers.quote_configuration_missing": "Voeg ten minste \xE9\xE9n configuratie toe voordat u de offerte indient",
64222
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Abonnementswijzigingen moeten de klant van de offerte gebruiken",
64223
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Schakel meerdere configuraties in voordat u een onderliggende klant toewijst",
64224
+ "quotes.blockers.quote_configuration_customer_not_child": "Selecteer een onderliggende klant van de offerteklant",
64225
+ "quotes.blockers.quote_configuration_type_mismatch": "De gekoppelde configuratie komt niet overeen met het configuratietype",
64226
+ "quotes.blockers.quote_configuration_not_draft": "Selecteer een conceptconfiguratie",
64227
+ "quotes.blockers.quote_configuration_customer_mismatch": "De configuratie moet bij de klant van de configuratie horen",
64228
+ "quotes.blockers.quote_configuration_currency_mismatch": "De configuratie moet de valuta van de offerte gebruiken",
64229
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "De factuur moet de facturatie-entiteit van de offerte gebruiken",
64230
+ "quotes.blockers.quote_configuration_already_linked": "De configuratie is al gekoppeld aan een offerteconfiguratie",
64231
+ "quotes.blockers.quote_configuration_not_subscription_update": "Selecteer een configuratie voor een abonnementswijziging",
64232
+ "quotes.blockers.quote_configuration_not_new_subscription": "Selecteer een configuratie voor een nieuw abonnement",
64233
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Een abonnement kan maar \xE9\xE9n keer per offerte worden gewijzigd",
64234
+ "quotes.blockers.quote_draft_invoice_missing": "De offerte moet een conceptfactuur hebben om te worden afgerond",
64235
+ "quotes.blockers.quote_draft_subscription_missing": "De offerte moet een conceptabonnement hebben om te worden afgerond",
64236
+ "quotes.blockers.quote_expiry_after_transition_date": "De vervaldatum van de offerte moet uiterlijk het einde van de huidige factuurperiode zijn, of de geplande overgangsdatum als die later valt"
63696
64237
  };
63697
64238
 
63698
64239
  // ../hyperline-i18n/build/locales/pl.js
@@ -63742,7 +64283,25 @@ var pl = {
63742
64283
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
63743
64284
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
63744
64285
  "subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}",
63745
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo"
64286
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo",
64287
+ "quotes.blockers.quote_not_draft": "Przywr\xF3\u0107 ofert\u0119 do wersji roboczej przed zmian\u0105 jej konfiguracji",
64288
+ "quotes.blockers.quote_expiration_date_missing": "Oferta musi mie\u0107 dat\u0119 wyga\u015Bni\u0119cia, aby zosta\u0142a wys\u0142ana do zatwierdzenia",
64289
+ "quotes.blockers.quote_configuration_missing": "Dodaj co najmniej jedn\u0105 konfiguracj\u0119 przed przes\u0142aniem oferty",
64290
+ "quotes.blockers.quote_configuration_subscription_update_customer": "Aktualizacje subskrypcji musz\u0105 u\u017Cywa\u0107 klienta oferty",
64291
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "W\u0142\u0105cz wiele konfiguracji przed przypisaniem klienta podrz\u0119dnego",
64292
+ "quotes.blockers.quote_configuration_customer_not_child": "Wybierz klienta podrz\u0119dnego klienta oferty",
64293
+ "quotes.blockers.quote_configuration_type_mismatch": "Powi\u0105zana konfiguracja nie odpowiada typowi konfiguracji",
64294
+ "quotes.blockers.quote_configuration_not_draft": "Wybierz konfiguracj\u0119 w wersji roboczej",
64295
+ "quotes.blockers.quote_configuration_customer_mismatch": "Konfiguracja musi nale\u017Ce\u0107 do klienta konfiguracji",
64296
+ "quotes.blockers.quote_configuration_currency_mismatch": "Konfiguracja musi u\u017Cywa\u0107 waluty oferty",
64297
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "Faktura musi u\u017Cywa\u0107 podmiotu fakturuj\u0105cego oferty",
64298
+ "quotes.blockers.quote_configuration_already_linked": "Konfiguracja jest ju\u017C powi\u0105zana z konfiguracj\u0105 oferty",
64299
+ "quotes.blockers.quote_configuration_not_subscription_update": "Wybierz konfiguracj\u0119 aktualizacji subskrypcji",
64300
+ "quotes.blockers.quote_configuration_not_new_subscription": "Wybierz konfiguracj\u0119 nowej subskrypcji",
64301
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Subskrypcj\u0119 mo\u017Cna zaktualizowa\u0107 w ofercie tylko raz",
64302
+ "quotes.blockers.quote_draft_invoice_missing": "Oferta musi mie\u0107 faktur\u0119 w wersji roboczej, aby zosta\u0142a sfinalizowana",
64303
+ "quotes.blockers.quote_draft_subscription_missing": "Oferta musi mie\u0107 subskrypcj\u0119 w wersji roboczej, aby zosta\u0142a sfinalizowana",
64304
+ "quotes.blockers.quote_expiry_after_transition_date": "Data wyga\u015Bni\u0119cia oferty musi przypada\u0107 najp\xF3\u017Aniej na koniec bie\u017C\u0105cego okresu rozliczeniowego lub na zaplanowan\u0105 dat\u0119 przej\u015Bcia, je\u015Bli jest p\xF3\u017Aniejsza"
63746
64305
  };
63747
64306
 
63748
64307
  // ../hyperline-i18n/build/locales/pt.js
@@ -63792,7 +64351,25 @@ var pt = {
63792
64351
  "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
63793
64352
  "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
63794
64353
  "subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}",
63795
- "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado"
64354
+ "wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado",
64355
+ "quotes.blockers.quote_not_draft": "Volte a colocar o or\xE7amento em rascunho antes de alterar as suas configura\xE7\xF5es",
64356
+ "quotes.blockers.quote_expiration_date_missing": "O or\xE7amento deve ter uma data de expira\xE7\xE3o para ser enviado para aprova\xE7\xE3o",
64357
+ "quotes.blockers.quote_configuration_missing": "Adicione pelo menos uma configura\xE7\xE3o antes de submeter o or\xE7amento",
64358
+ "quotes.blockers.quote_configuration_subscription_update_customer": "As atualiza\xE7\xF5es de subscri\xE7\xE3o devem usar o cliente do or\xE7amento",
64359
+ "quotes.blockers.quote_configuration_multiple_configurations_disabled": "Ative as configura\xE7\xF5es m\xFAltiplas antes de atribuir um cliente filho",
64360
+ "quotes.blockers.quote_configuration_customer_not_child": "Selecione um cliente filho do cliente do or\xE7amento",
64361
+ "quotes.blockers.quote_configuration_type_mismatch": "A configura\xE7\xE3o associada n\xE3o corresponde ao tipo de configura\xE7\xE3o",
64362
+ "quotes.blockers.quote_configuration_not_draft": "Selecione uma configura\xE7\xE3o em rascunho",
64363
+ "quotes.blockers.quote_configuration_customer_mismatch": "A configura\xE7\xE3o deve pertencer ao cliente da configura\xE7\xE3o",
64364
+ "quotes.blockers.quote_configuration_currency_mismatch": "A configura\xE7\xE3o deve usar a moeda do or\xE7amento",
64365
+ "quotes.blockers.quote_configuration_invoicing_entity_mismatch": "A fatura deve usar a entidade de fatura\xE7\xE3o do or\xE7amento",
64366
+ "quotes.blockers.quote_configuration_already_linked": "A configura\xE7\xE3o j\xE1 est\xE1 associada a uma configura\xE7\xE3o de or\xE7amento",
64367
+ "quotes.blockers.quote_configuration_not_subscription_update": "Selecione uma configura\xE7\xE3o de atualiza\xE7\xE3o de subscri\xE7\xE3o",
64368
+ "quotes.blockers.quote_configuration_not_new_subscription": "Selecione uma configura\xE7\xE3o de nova subscri\xE7\xE3o",
64369
+ "quotes.blockers.quote_configuration_duplicate_subscription_update": "Uma subscri\xE7\xE3o s\xF3 pode ser atualizada uma vez num or\xE7amento",
64370
+ "quotes.blockers.quote_draft_invoice_missing": "O or\xE7amento deve ter uma fatura em rascunho para ser finalizado",
64371
+ "quotes.blockers.quote_draft_subscription_missing": "O or\xE7amento deve ter uma subscri\xE7\xE3o em rascunho para ser finalizado",
64372
+ "quotes.blockers.quote_expiry_after_transition_date": "A data de expira\xE7\xE3o do or\xE7amento deve ser, no m\xE1ximo, o fim do per\xEDodo de fatura\xE7\xE3o atual, ou a data de transi\xE7\xE3o agendada se for posterior"
63796
64373
  };
63797
64374
 
63798
64375
  // ../hyperline-i18n/build/language.js
@@ -63973,16 +64550,19 @@ var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
63973
64550
  "credentials",
63974
64551
  "iban",
63975
64552
  "idtoken",
64553
+ "launchticket",
63976
64554
  "privatekey",
63977
64555
  "publictoken",
63978
64556
  "refreshtoken",
64557
+ // A workflow secret's value (core/workflows secrets).
64558
+ "secretvalue",
63979
64559
  "sessiontoken",
63980
64560
  "token",
63981
64561
  "tokenid",
63982
64562
  "verificationcode"
63983
64563
  ]);
63984
64564
  var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password|passphrase|apikey)$/;
63985
- var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|pass|assertion|verifier|credential|authorization|cookie|iban|cardnumber|code|connectionurl/i;
64565
+ var REDACTED_KEY_CANDIDATE_PATTERN = /token|ticket|key|secret|pass|assertion|verifier|credential|authorization|cookie|iban|cardnumber|code|connectionurl/i;
63986
64566
  var URL_ONLY_REDACTED_KEYS = /* @__PURE__ */ new Set(["key"]);
63987
64567
  var OAUTH_CODE_KEY = "code";
63988
64568
  var OAUTH_CODE_CONTEXT_KEYS = ["state", "grant_type"];
@@ -66840,8 +67420,16 @@ var DST_HOUR_SHIFT_BY_LOCAL_MILLISECOND_OF_DAY = /* @__PURE__ */ new Map([
66840
67420
  [MILLISECONDS_PER_HOUR - 1, -MILLISECONDS_PER_HOUR]
66841
67421
  ]);
66842
67422
 
67423
+ // ../hyperline-lib/build/utils/overviewPeriods.js
67424
+ var OverviewPeriodSchema = external_exports.enum([
67425
+ "this_month",
67426
+ "last_month",
67427
+ "last_3_months"
67428
+ ]);
67429
+
66843
67430
  // ../hyperline-lib/build/utils/api/filterBuilder.js
66844
- var baseAuthorizedOperators = ["not", "isNull", "isNotNull"];
67431
+ var nullAuthorizedOperators = ["isNull", "isNotNull"];
67432
+ var baseAuthorizedOperators = ["not", ...nullAuthorizedOperators];
66845
67433
  var booleanAuthorizedOperators = [
66846
67434
  ...baseAuthorizedOperators,
66847
67435
  "equals"
@@ -66870,6 +67458,7 @@ var authorizedOperators = [
66870
67458
  ...arrayAuthorizedOperators,
66871
67459
  ...mapAuthorizedOperators
66872
67460
  ];
67461
+ var NullFilterValueSchema = BooleanSchema.or(external_exports.literal("")).optional();
66873
67462
 
66874
67463
  // ../hyperline-lib/build/http/dto/state.js
66875
67464
  var StateSchema = external_exports.enum(usStates).openapi({
@@ -66987,9 +67576,10 @@ var toLogRequest = (config4) => {
66987
67576
  };
66988
67577
 
66989
67578
  // ../hyperline-lib/build/httpClient/publicUrlFetch.js
67579
+ import { lookup as lookupCallback } from "node:dns";
66990
67580
  import { lookup } from "node:dns/promises";
66991
67581
  import { isIP } from "node:net";
66992
- import { Agent } from "undici";
67582
+ import { Agent, fetch as fetch2 } from "undici";
66993
67583
  var PINNED_DISPATCHER_TTL_MS = 5 * 60 * 1e3;
66994
67584
  var DEFAULT_MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
66995
67585
 
@@ -67009,10 +67599,15 @@ import { createHash as createHash4 } from "node:crypto";
67009
67599
  var TTL_MS = 5 * 6e4;
67010
67600
 
67011
67601
  // ../hyperline-mcp/build/requestBuilder.js
67012
- function buildRequestConfig(path2, args, method, queryParamKeys = []) {
67602
+ function buildRequestConfig({ path: path2, args, method, queryParamKeys = [], arrayBody = false }) {
67013
67603
  const { url: url2, usedKeys } = replacePathParams(path2, args);
67014
67604
  const remaining = removeUsedKeys(args, usedKeys);
67015
- const { params, data } = separateParamsAndBody(remaining, method, queryParamKeys);
67605
+ const { params, data } = separateParamsAndBody({
67606
+ args: remaining,
67607
+ method,
67608
+ queryParamKeys,
67609
+ arrayBody
67610
+ });
67016
67611
  return { url: url2, params, data };
67017
67612
  }
67018
67613
  function replacePathParams(path2, args) {
@@ -67043,7 +67638,7 @@ var PathParamError = class extends Error {
67043
67638
  function removeUsedKeys(args, usedKeys) {
67044
67639
  return Object.fromEntries(Object.entries(args).filter(([key]) => !usedKeys.has(key)));
67045
67640
  }
67046
- function separateParamsAndBody(args, method, queryParamKeys) {
67641
+ function separateParamsAndBody({ args, method, queryParamKeys, arrayBody }) {
67047
67642
  const isBodyMethod = ["POST", "PUT", "PATCH"].includes(method);
67048
67643
  if (!isBodyMethod) {
67049
67644
  return { params: args };
@@ -67051,8 +67646,7 @@ function separateParamsAndBody(args, method, queryParamKeys) {
67051
67646
  const queryKeySet = new Set(queryParamKeys);
67052
67647
  const params = Object.fromEntries(Object.entries(args).filter(([key]) => queryKeySet.has(key)));
67053
67648
  const data = Object.fromEntries(Object.entries(args).filter(([key]) => !queryKeySet.has(key)));
67054
- const dataKeys = Object.keys(data);
67055
- if (dataKeys.length === 1 && dataKeys[0] === "items" && Array.isArray(data.items)) {
67649
+ if (arrayBody && Array.isArray(data.items)) {
67056
67650
  return { params, data: data.items };
67057
67651
  }
67058
67652
  return { params, data };
@@ -67130,7 +67724,12 @@ function createCLIContext({ apiKey, baseUrl, outputFormat, source, companyId })
67130
67724
  baseUrl,
67131
67725
  outputFormat,
67132
67726
  async execute({ method, path: path2, args, queryParamKeys = [], body, baseUrlOverride }) {
67133
- const { url: url2, params, data } = buildRequestConfig(path2, args, method, queryParamKeys);
67727
+ const { url: url2, params, data } = buildRequestConfig({
67728
+ path: path2,
67729
+ args,
67730
+ method,
67731
+ queryParamKeys
67732
+ });
67134
67733
  const requestData = body ?? data;
67135
67734
  const hasData = Array.isArray(requestData) ? requestData.length > 0 : requestData != null && Object.keys(requestData).length > 0;
67136
67735
  try {