@hyperline/cli 0.1.0-build.1.c2ea80c → 0.1.0-build.1.cfa3562

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.
@@ -4462,7 +4462,7 @@ var require_types = __commonJS({
4462
4462
  ...processCreateParams(params)
4463
4463
  });
4464
4464
  };
4465
- exports.BRAND = Symbol("zod_brand");
4465
+ exports.BRAND = /* @__PURE__ */ Symbol("zod_brand");
4466
4466
  var ZodBranded = class extends ZodType2 {
4467
4467
  _parse(input) {
4468
4468
  const { ctx } = this._processInputParams(input);
@@ -4693,14 +4693,14 @@ var require_types = __commonJS({
4693
4693
  var oboolean = () => booleanType().optional();
4694
4694
  exports.oboolean = oboolean;
4695
4695
  exports.coerce = {
4696
- string: (arg) => ZodString2.create({ ...arg, coerce: true }),
4697
- number: (arg) => ZodNumber2.create({ ...arg, coerce: true }),
4698
- boolean: (arg) => ZodBoolean2.create({
4696
+ string: ((arg) => ZodString2.create({ ...arg, coerce: true })),
4697
+ number: ((arg) => ZodNumber2.create({ ...arg, coerce: true })),
4698
+ boolean: ((arg) => ZodBoolean2.create({
4699
4699
  ...arg,
4700
4700
  coerce: true
4701
- }),
4702
- bigint: (arg) => ZodBigInt2.create({ ...arg, coerce: true }),
4703
- date: (arg) => ZodDate2.create({ ...arg, coerce: true })
4701
+ })),
4702
+ bigint: ((arg) => ZodBigInt2.create({ ...arg, coerce: true })),
4703
+ date: ((arg) => ZodDate2.create({ ...arg, coerce: true }))
4704
4704
  };
4705
4705
  exports.NEVER = parseUtil_1.INVALID;
4706
4706
  }
@@ -4710,7 +4710,7 @@ var require_types = __commonJS({
4710
4710
  var require_external = __commonJS({
4711
4711
  "../../node_modules/@hyperline/shared/node_modules/zod/lib/external.js"(exports) {
4712
4712
  "use strict";
4713
- var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
4713
+ var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
4714
4714
  if (k2 === void 0) k2 = k;
4715
4715
  var desc = Object.getOwnPropertyDescriptor(m, k);
4716
4716
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
@@ -4719,10 +4719,10 @@ var require_external = __commonJS({
4719
4719
  } };
4720
4720
  }
4721
4721
  Object.defineProperty(o, k2, desc);
4722
- } : function(o, m, k, k2) {
4722
+ }) : (function(o, m, k, k2) {
4723
4723
  if (k2 === void 0) k2 = k;
4724
4724
  o[k2] = m[k];
4725
- });
4725
+ }));
4726
4726
  var __exportStar = exports && exports.__exportStar || function(m, exports2) {
4727
4727
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
4728
4728
  };
@@ -4740,7 +4740,7 @@ var require_external = __commonJS({
4740
4740
  var require_lib = __commonJS({
4741
4741
  "../../node_modules/@hyperline/shared/node_modules/zod/lib/index.js"(exports) {
4742
4742
  "use strict";
4743
- var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
4743
+ var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
4744
4744
  if (k2 === void 0) k2 = k;
4745
4745
  var desc = Object.getOwnPropertyDescriptor(m, k);
4746
4746
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
@@ -4749,13 +4749,13 @@ var require_lib = __commonJS({
4749
4749
  } };
4750
4750
  }
4751
4751
  Object.defineProperty(o, k2, desc);
4752
- } : function(o, m, k, k2) {
4752
+ }) : (function(o, m, k, k2) {
4753
4753
  if (k2 === void 0) k2 = k;
4754
4754
  o[k2] = m[k];
4755
- });
4756
- var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
4755
+ }));
4756
+ var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
4757
4757
  Object.defineProperty(o, "default", { enumerable: true, value: v });
4758
- } : function(o, v) {
4758
+ }) : function(o, v) {
4759
4759
  o["default"] = v;
4760
4760
  });
4761
4761
  var __importStar = exports && exports.__importStar || function(mod2) {
@@ -5814,7 +5814,7 @@ var require_decimal = __commonJS({
5814
5814
  Ctor.precision -= k;
5815
5815
  return x;
5816
5816
  }
5817
- var divide2 = /* @__PURE__ */ function() {
5817
+ var divide2 = /* @__PURE__ */ (function() {
5818
5818
  function multiplyInteger(x, k, base) {
5819
5819
  var temp, carry = 0, i = x.length;
5820
5820
  for (x = x.slice(); i--; ) {
@@ -5972,7 +5972,7 @@ var require_decimal = __commonJS({
5972
5972
  }
5973
5973
  return q;
5974
5974
  };
5975
- }();
5975
+ })();
5976
5976
  function finalise2(x, sd, rm, isTruncated) {
5977
5977
  var digits, i, j, k, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
5978
5978
  out: if (sd != null) {
@@ -6974,7 +6974,7 @@ var require_constants = __commonJS({
6974
6974
  var secondsInYear = exports.secondsInYear = secondsInDay * daysInYear;
6975
6975
  var secondsInMonth = exports.secondsInMonth = secondsInYear / 12;
6976
6976
  var secondsInQuarter = exports.secondsInQuarter = secondsInMonth * 3;
6977
- var constructFromSymbol = exports.constructFromSymbol = Symbol.for("constructDateFrom");
6977
+ var constructFromSymbol = exports.constructFromSymbol = /* @__PURE__ */ Symbol.for("constructDateFrom");
6978
6978
  }
6979
6979
  });
6980
6980
 
@@ -20370,17 +20370,17 @@ var require_shared = __commonJS({
20370
20370
  var require_react_production_min = __commonJS2({
20371
20371
  "../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js"(exports2) {
20372
20372
  "use strict";
20373
- var l = Symbol.for("react.element");
20374
- var n = Symbol.for("react.portal");
20375
- var p = Symbol.for("react.fragment");
20376
- var q = Symbol.for("react.strict_mode");
20377
- var r = Symbol.for("react.profiler");
20378
- var t = Symbol.for("react.provider");
20379
- var u = Symbol.for("react.context");
20380
- var v = Symbol.for("react.forward_ref");
20381
- var w = Symbol.for("react.suspense");
20382
- var x = Symbol.for("react.memo");
20383
- var y = Symbol.for("react.lazy");
20373
+ var l = /* @__PURE__ */ Symbol.for("react.element");
20374
+ var n = /* @__PURE__ */ Symbol.for("react.portal");
20375
+ var p = /* @__PURE__ */ Symbol.for("react.fragment");
20376
+ var q = /* @__PURE__ */ Symbol.for("react.strict_mode");
20377
+ var r = /* @__PURE__ */ Symbol.for("react.profiler");
20378
+ var t = /* @__PURE__ */ Symbol.for("react.provider");
20379
+ var u = /* @__PURE__ */ Symbol.for("react.context");
20380
+ var v = /* @__PURE__ */ Symbol.for("react.forward_ref");
20381
+ var w = /* @__PURE__ */ Symbol.for("react.suspense");
20382
+ var x = /* @__PURE__ */ Symbol.for("react.memo");
20383
+ var y = /* @__PURE__ */ Symbol.for("react.lazy");
20384
20384
  var z11 = Symbol.iterator;
20385
20385
  function A(a) {
20386
20386
  if (null === a || "object" !== typeof a) return null;
@@ -20648,19 +20648,19 @@ var require_shared = __commonJS({
20648
20648
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
20649
20649
  }
20650
20650
  var ReactVersion = "18.3.1";
20651
- var REACT_ELEMENT_TYPE = Symbol.for("react.element");
20652
- var REACT_PORTAL_TYPE = Symbol.for("react.portal");
20653
- var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
20654
- var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
20655
- var REACT_PROFILER_TYPE = Symbol.for("react.profiler");
20656
- var REACT_PROVIDER_TYPE = Symbol.for("react.provider");
20657
- var REACT_CONTEXT_TYPE = Symbol.for("react.context");
20658
- var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
20659
- var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense");
20660
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list");
20661
- var REACT_MEMO_TYPE = Symbol.for("react.memo");
20662
- var REACT_LAZY_TYPE = Symbol.for("react.lazy");
20663
- var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen");
20651
+ var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element");
20652
+ var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
20653
+ var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
20654
+ var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
20655
+ var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
20656
+ var REACT_PROVIDER_TYPE = /* @__PURE__ */ Symbol.for("react.provider");
20657
+ var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
20658
+ var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
20659
+ var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
20660
+ var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list");
20661
+ var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
20662
+ var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
20663
+ var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
20664
20664
  var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
20665
20665
  var FAUX_ITERATOR_SYMBOL = "@@iterator";
20666
20666
  function getIteratorFn(maybeIterable) {
@@ -21624,7 +21624,7 @@ var require_shared = __commonJS({
21624
21624
  }
21625
21625
  var REACT_MODULE_REFERENCE;
21626
21626
  {
21627
- REACT_MODULE_REFERENCE = Symbol.for("react.module.reference");
21627
+ REACT_MODULE_REFERENCE = /* @__PURE__ */ Symbol.for("react.module.reference");
21628
21628
  }
21629
21629
  function isValidElementType(type) {
21630
21630
  if (typeof type === "string" || typeof type === "function") {
@@ -23710,10 +23710,10 @@ var require_shared = __commonJS({
23710
23710
  ZodId: () => ZodId,
23711
23711
  ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
23712
23712
  });
23713
- var import_zod16 = require_lib();
23713
+ var import_zod17 = require_lib();
23714
23714
  var countryIds2 = ["all", ...countries.map(({ id }) => id)];
23715
- var ZodId = import_zod16.z.enum(countryIds2);
23716
- var ZodTranslationsSchemaFn = (schema) => import_zod16.z.record(import_zod16.z.string(), schema.optional());
23715
+ var ZodId = import_zod17.z.enum(countryIds2);
23716
+ var ZodTranslationsSchemaFn = (schema) => import_zod17.z.record(import_zod17.z.string(), schema.optional());
23717
23717
  var UsStates = [
23718
23718
  { id: "AA", name: "Armed Forces Americas" },
23719
23719
  { id: "AE", name: "Armed Forces Europe" },
@@ -30121,7 +30121,7 @@ Quote status.
30121
30121
  - \`draft\`: The quote is a draft.
30122
30122
  - \`approved\`: The quote is approved and ready to be sent to the customer.
30123
30123
  - \`pending_signature\`: The quote is awaiting the customer's signature.
30124
- `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. If not specified, automatically computed from the subscription configuration.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
30124
+ `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. If not specified, automatically computed from the subscription configuration.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
30125
30125
 
30126
30126
  - \`all\`: Display all pricing tiers.
30127
30127
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
@@ -30157,6 +30157,8 @@ Examples:
30157
30157
  args.require_tax_id = opts.requireTaxId;
30158
30158
  if (opts.displayQuoteValue !== void 0)
30159
30159
  args.display_quote_value = opts.displayQuoteValue;
30160
+ if (opts.displayQuoteValueWithTax !== void 0)
30161
+ args.display_quote_value_with_tax = opts.displayQuoteValueWithTax;
30160
30162
  if (opts.displayTaxes !== void 0)
30161
30163
  args.display_taxes = opts.displayTaxes;
30162
30164
  if (opts.displayPriceTiers !== void 0)
@@ -30570,10 +30572,10 @@ Examples:
30570
30572
  queryParamKeys: []
30571
30573
  });
30572
30574
  });
30573
- resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
30575
+ resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
30574
30576
  Examples:
30575
30577
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
30576
- hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at>
30578
+ hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
30577
30579
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --output json`).action(async (opts) => {
30578
30580
  const ctx = resource.parent?.opts()._ctx;
30579
30581
  if (!ctx) {
@@ -30589,6 +30591,8 @@ Examples:
30589
30591
  args.apply_at = opts.applyAt;
30590
30592
  if (opts.paymentSchedule !== void 0)
30591
30593
  args.payment_schedule = opts.paymentSchedule;
30594
+ if (opts.chargeAt !== void 0)
30595
+ args.charge_at = opts.chargeAt;
30592
30596
  if (opts.calculationMethod !== void 0)
30593
30597
  args.calculation_method = opts.calculationMethod;
30594
30598
  if (opts.type !== void 0)
@@ -30602,10 +30606,10 @@ Examples:
30602
30606
  queryParamKeys: []
30603
30607
  });
30604
30608
  });
30605
- resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
30609
+ resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
30606
30610
  Examples:
30607
30611
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
30608
- hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at>
30612
+ hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
30609
30613
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --output json`).action(async (opts) => {
30610
30614
  const ctx = resource.parent?.opts()._ctx;
30611
30615
  if (!ctx) {
@@ -30621,6 +30625,8 @@ Examples:
30621
30625
  args.apply_at = opts.applyAt;
30622
30626
  if (opts.paymentSchedule !== void 0)
30623
30627
  args.payment_schedule = opts.paymentSchedule;
30628
+ if (opts.chargeAt !== void 0)
30629
+ args.charge_at = opts.chargeAt;
30624
30630
  if (opts.calculationMethod !== void 0)
30625
30631
  args.calculation_method = opts.calculationMethod;
30626
30632
  if (opts.updates !== void 0)
@@ -30758,10 +30764,10 @@ Examples:
30758
30764
  queryParamKeys: []
30759
30765
  });
30760
30766
  });
30761
- resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
30767
+ resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
30762
30768
  Examples:
30763
30769
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
30764
- hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at>
30770
+ hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
30765
30771
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --output json`).action(async (opts) => {
30766
30772
  const ctx = resource.parent?.opts()._ctx;
30767
30773
  if (!ctx) {
@@ -30777,6 +30783,8 @@ Examples:
30777
30783
  args.apply_at = opts.applyAt;
30778
30784
  if (opts.paymentSchedule !== void 0)
30779
30785
  args.payment_schedule = opts.paymentSchedule;
30786
+ if (opts.chargeAt !== void 0)
30787
+ args.charge_at = opts.chargeAt;
30780
30788
  if (opts.calculationMethod !== void 0)
30781
30789
  args.calculation_method = opts.calculationMethod;
30782
30790
  if (opts.updates !== void 0)
@@ -31098,10 +31106,254 @@ Examples:
31098
31106
  ]
31099
31107
  });
31100
31108
  });
31109
+ resource.command("get").description(`Retrieve full details of a subscription by ID including phases, products, billing dates, and status. Optionally include live_billing data.`).requiredOption("--id <value>", `id parameter`).option("--include-live-billing <value>", `include_live_billing`).addHelpText("after", `
31110
+ Examples:
31111
+ hyperline subscriptions get --id <id>
31112
+ hyperline subscriptions get --id <id> --include-live-billing <include_live_billing>`).action(async (opts) => {
31113
+ const ctx = resource.parent?.opts()._ctx;
31114
+ if (!ctx) {
31115
+ process.stderr.write("Error: Not authenticated\n");
31116
+ process.exit(1);
31117
+ }
31118
+ const args = {};
31119
+ if (opts.id !== void 0)
31120
+ args.id = opts.id;
31121
+ if (opts.includeLiveBilling !== void 0)
31122
+ args.include_live_billing = opts.includeLiveBilling;
31123
+ await ctx.execute({
31124
+ method: "GET",
31125
+ path: "/v2/subscriptions/{id}",
31126
+ args,
31127
+ queryParamKeys: ["include_live_billing"]
31128
+ });
31129
+ });
31130
+ resource.command("refresh-subscription-seat-products").description(`Trigger a count update on seat-based products within a subscription using the configured dataloader query.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31131
+ Examples:
31132
+ hyperline subscriptions refresh-subscription-seat-products --id <id>
31133
+ hyperline subscriptions refresh-subscription-seat-products --id <id> --output json`).action(async (opts) => {
31134
+ const ctx = resource.parent?.opts()._ctx;
31135
+ if (!ctx) {
31136
+ process.stderr.write("Error: Not authenticated\n");
31137
+ process.exit(1);
31138
+ }
31139
+ const args = {};
31140
+ if (opts.id !== void 0)
31141
+ args.id = opts.id;
31142
+ await ctx.execute({
31143
+ method: "POST",
31144
+ path: "/v2/subscriptions/{id}/refresh-seat-products",
31145
+ args,
31146
+ queryParamKeys: []
31147
+ });
31148
+ });
31149
+ resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Payload mirrors GET response structure.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
31150
+ Defines when invoices are generated relative to the billing period.
31151
+
31152
+ - \`period_start\`: Invoices are generated at the start of the billing period.
31153
+ - \`period_end\`: Invoices are generated at the end of the billing period.
31154
+ `).option("--estimated-arr <number>", `Estimated Annual Recurring Revenue generated by the subscription.`).option("--contract-value <number>", `Contract value of the subscription. This value is overridable by the user.`).option("--starts-at <value>", `Applies only if the activation strategy is \`start_date\`. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--initial-billing-at <value>", `Date when the subscription will start being billed. If not specified, it will correspond to the \`starts_at\` date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--display-shipping-details <value>", `Indicates if the shipping details should be displayed on the subscription's invoices.`).option("--phases <value>", `Array of subscription phases. Existing pending phases will be replaced by the ones in the array.`).option("--contract-terms <value>", `Contract terms to update.`).addHelpText("after", `
31155
+ Examples:
31156
+ hyperline subscriptions update --id <id>
31157
+ hyperline subscriptions update --id <id> --name <name> --purchase-order <purchase_order>
31158
+ hyperline subscriptions update --id <id> --output json`).action(async (opts) => {
31159
+ const ctx = resource.parent?.opts()._ctx;
31160
+ if (!ctx) {
31161
+ process.stderr.write("Error: Not authenticated\n");
31162
+ process.exit(1);
31163
+ }
31164
+ const args = {};
31165
+ if (opts.id !== void 0)
31166
+ args.id = opts.id;
31167
+ if (opts.name !== void 0)
31168
+ args.name = opts.name;
31169
+ if (opts.purchaseOrder !== void 0)
31170
+ args.purchase_order = opts.purchaseOrder;
31171
+ if (opts.crmOpportunityId !== void 0)
31172
+ args.crm_opportunity_id = opts.crmOpportunityId;
31173
+ if (opts.taxOnly !== void 0)
31174
+ args.tax_only = opts.taxOnly;
31175
+ if (opts.generateDraftInvoices !== void 0)
31176
+ args.generate_draft_invoices = opts.generateDraftInvoices;
31177
+ if (opts.generateDocument !== void 0)
31178
+ args.generate_document = opts.generateDocument;
31179
+ if (opts.documentName !== void 0)
31180
+ args.document_name = opts.documentName;
31181
+ if (opts.addTaxToDocument !== void 0)
31182
+ args.add_tax_to_document = opts.addTaxToDocument;
31183
+ if (opts.doNotChargeSubscription !== void 0)
31184
+ args.do_not_charge_subscription = opts.doNotChargeSubscription;
31185
+ if (opts.invoiceCustomNote !== void 0)
31186
+ args.invoice_custom_note = opts.invoiceCustomNote;
31187
+ if (opts.invoiceSchedule !== void 0)
31188
+ args.invoice_schedule = opts.invoiceSchedule;
31189
+ if (opts.startsAt !== void 0)
31190
+ args.starts_at = opts.startsAt;
31191
+ if (opts.initialBillingAt !== void 0)
31192
+ args.initial_billing_at = opts.initialBillingAt;
31193
+ if (opts.cancelAt !== void 0)
31194
+ args.cancel_at = opts.cancelAt;
31195
+ if (opts.properties !== void 0)
31196
+ args.properties = opts.properties;
31197
+ if (opts.customProperties !== void 0)
31198
+ args.custom_properties = opts.customProperties;
31199
+ if (opts.displayShippingDetails !== void 0)
31200
+ args.display_shipping_details = opts.displayShippingDetails;
31201
+ if (opts.phases !== void 0)
31202
+ args.phases = opts.phases;
31203
+ if (opts.contractTerms !== void 0)
31204
+ args.contract_terms = opts.contractTerms;
31205
+ if (opts.minimumInvoiceFee !== void 0)
31206
+ args.minimum_invoice_fee = Number(opts.minimumInvoiceFee);
31207
+ if (opts.estimatedArr !== void 0)
31208
+ args.estimated_arr = Number(opts.estimatedArr);
31209
+ if (opts.contractValue !== void 0)
31210
+ args.contract_value = Number(opts.contractValue);
31211
+ await ctx.execute({
31212
+ method: "PUT",
31213
+ path: "/v2/subscriptions/{id}",
31214
+ args,
31215
+ queryParamKeys: []
31216
+ });
31217
+ });
31218
+ resource.command("get-subscription-valuation").description(`Compute valuation metrics for a subscription: contract value (total/invoiced/remaining), recurring contract value, and ARR (fixed + variable). Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
31219
+ Examples:
31220
+ hyperline subscriptions get-subscription-valuation --id <id>
31221
+ hyperline subscriptions get-subscription-valuation --id <id> --granularity <granularity>`).action(async (opts) => {
31222
+ const ctx = resource.parent?.opts()._ctx;
31223
+ if (!ctx) {
31224
+ process.stderr.write("Error: Not authenticated\n");
31225
+ process.exit(1);
31226
+ }
31227
+ const args = {};
31228
+ if (opts.id !== void 0)
31229
+ args.id = opts.id;
31230
+ if (opts.granularity !== void 0)
31231
+ args.granularity = opts.granularity;
31232
+ await ctx.execute({
31233
+ method: "GET",
31234
+ path: "/v1/subscriptions/{id}/valuation",
31235
+ args,
31236
+ queryParamKeys: ["granularity"]
31237
+ });
31238
+ });
31239
+ }
31240
+
31241
+ // build/commands/generated/subscriptions-phases.js
31242
+ function registerSubscriptions_PhasesCommands(parent) {
31243
+ const resource = parent.command("subscriptions-phases").description("Manage subscriptions > phases");
31244
+ resource.command("list-subscription-phases").description(`List all phases of a subscription. Phases define time-bound product configurations within a subscription.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31245
+ Examples:
31246
+ hyperline subscriptions-phases list-subscription-phases --id <id>`).action(async (opts) => {
31247
+ const ctx = resource.parent?.opts()._ctx;
31248
+ if (!ctx) {
31249
+ process.stderr.write("Error: Not authenticated\n");
31250
+ process.exit(1);
31251
+ }
31252
+ const args = {};
31253
+ if (opts.id !== void 0)
31254
+ args.id = opts.id;
31255
+ await ctx.execute({
31256
+ method: "GET",
31257
+ path: "/v2/subscriptions/{id}/phases",
31258
+ args,
31259
+ queryParamKeys: []
31260
+ });
31261
+ });
31262
+ resource.command("get-subscription-phase").description(`Retrieve details of a specific phase within a subscription, including its products and billing configuration.`).requiredOption("--id <value>", `id parameter`).requiredOption("--phase-id <value>", `phaseId parameter`).addHelpText("after", `
31263
+ Examples:
31264
+ hyperline subscriptions-phases get-subscription-phase --id <id> --phase-id <phaseId>`).action(async (opts) => {
31265
+ const ctx = resource.parent?.opts()._ctx;
31266
+ if (!ctx) {
31267
+ process.stderr.write("Error: Not authenticated\n");
31268
+ process.exit(1);
31269
+ }
31270
+ const args = {};
31271
+ if (opts.id !== void 0)
31272
+ args.id = opts.id;
31273
+ if (opts.phaseId !== void 0)
31274
+ args.phaseId = opts.phaseId;
31275
+ await ctx.execute({
31276
+ method: "GET",
31277
+ path: "/v2/subscriptions/{id}/phases/{phaseId}",
31278
+ args,
31279
+ queryParamKeys: []
31280
+ });
31281
+ });
31282
+ resource.command("transition-subscription").description(`Transition a subscription to its next configured phase at a specified date.`).requiredOption("--id <value>", `id parameter`).option("--transition-date <value>", `Date of application of the transition. Use it if different than immediately to calculate pro-rata and display past or future dates on invoices. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
31283
+ Examples:
31284
+ hyperline subscriptions-phases transition-subscription --id <id>
31285
+ hyperline subscriptions-phases transition-subscription --id <id> --transition-date <transition_date>
31286
+ hyperline subscriptions-phases transition-subscription --id <id> --output json`).action(async (opts) => {
31287
+ const ctx = resource.parent?.opts()._ctx;
31288
+ if (!ctx) {
31289
+ process.stderr.write("Error: Not authenticated\n");
31290
+ process.exit(1);
31291
+ }
31292
+ const args = {};
31293
+ if (opts.id !== void 0)
31294
+ args.id = opts.id;
31295
+ if (opts.transitionDate !== void 0)
31296
+ args.transition_date = opts.transitionDate;
31297
+ await ctx.execute({
31298
+ method: "POST",
31299
+ path: "/v2/subscriptions/{id}/next-phase",
31300
+ args,
31301
+ queryParamKeys: []
31302
+ });
31303
+ });
31304
+ }
31305
+
31306
+ // build/commands/generated/subscriptions-templates.js
31307
+ function registerSubscriptions_TemplatesCommands(parent) {
31308
+ const resource = parent.command("subscriptions-templates").description("Manage subscriptions > templates");
31309
+ resource.command("list-subscription-templates").description(`List subscription templates with pagination. Templates define reusable subscription configurations with pre-configured products, phases, and billing settings.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
31310
+ Examples:
31311
+ hyperline subscriptions-templates list-subscription-templates
31312
+ hyperline subscriptions-templates list-subscription-templates --take <take>`).action(async (opts) => {
31313
+ const ctx = resource.parent?.opts()._ctx;
31314
+ if (!ctx) {
31315
+ process.stderr.write("Error: Not authenticated\n");
31316
+ process.exit(1);
31317
+ }
31318
+ const args = {};
31319
+ if (opts.take !== void 0)
31320
+ args.take = Number(opts.take);
31321
+ if (opts.skip !== void 0)
31322
+ args.skip = Number(opts.skip);
31323
+ await ctx.execute({
31324
+ method: "GET",
31325
+ path: "/v1/subscriptions/templates",
31326
+ args,
31327
+ queryParamKeys: ["take", "skip"]
31328
+ });
31329
+ });
31330
+ resource.command("get-subscription-template").description(`Retrieve a subscription template by ID with its full configuration including products, phases, and pricing details.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31331
+ Examples:
31332
+ hyperline subscriptions-templates get-subscription-template --id <id>`).action(async (opts) => {
31333
+ const ctx = resource.parent?.opts()._ctx;
31334
+ if (!ctx) {
31335
+ process.stderr.write("Error: Not authenticated\n");
31336
+ process.exit(1);
31337
+ }
31338
+ const args = {};
31339
+ if (opts.id !== void 0)
31340
+ args.id = opts.id;
31341
+ await ctx.execute({
31342
+ method: "GET",
31343
+ path: "/v1/subscriptions/templates/{id}",
31344
+ args,
31345
+ queryParamKeys: []
31346
+ });
31347
+ });
31348
+ }
31349
+
31350
+ // build/commands/generated/subscriptions-transitions.js
31351
+ function registerSubscriptions_TransitionsCommands(parent) {
31352
+ const resource = parent.command("subscriptions-transitions").description("Manage subscriptions > transitions");
31101
31353
  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", `
31102
31354
  Examples:
31103
- hyperline subscriptions list-subscription-transitions
31104
- hyperline subscriptions list-subscription-transitions --take <take> --status <status>`).action(async (opts) => {
31355
+ hyperline subscriptions-transitions list-subscription-transitions
31356
+ hyperline subscriptions-transitions list-subscription-transitions --take <take> --status <status>`).action(async (opts) => {
31105
31357
  const ctx = resource.parent?.opts()._ctx;
31106
31358
  if (!ctx) {
31107
31359
  process.stderr.write("Error: Not authenticated\n");
@@ -31254,180 +31506,11 @@ Examples:
31254
31506
  ]
31255
31507
  });
31256
31508
  });
31257
- resource.command("get").description(`Retrieve full details of a subscription by ID including phases, products, billing dates, and status. Optionally include live_billing data.`).requiredOption("--id <value>", `id parameter`).option("--include-live-billing <value>", `include_live_billing`).addHelpText("after", `
31258
- Examples:
31259
- hyperline subscriptions get --id <id>
31260
- hyperline subscriptions get --id <id> --include-live-billing <include_live_billing>`).action(async (opts) => {
31261
- const ctx = resource.parent?.opts()._ctx;
31262
- if (!ctx) {
31263
- process.stderr.write("Error: Not authenticated\n");
31264
- process.exit(1);
31265
- }
31266
- const args = {};
31267
- if (opts.id !== void 0)
31268
- args.id = opts.id;
31269
- if (opts.includeLiveBilling !== void 0)
31270
- args.include_live_billing = opts.includeLiveBilling;
31271
- await ctx.execute({
31272
- method: "GET",
31273
- path: "/v2/subscriptions/{id}",
31274
- args,
31275
- queryParamKeys: ["include_live_billing"]
31276
- });
31277
- });
31278
- resource.command("list-subscription-phases").description(`List all phases of a subscription. Phases define time-bound product configurations within a subscription.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31279
- Examples:
31280
- hyperline subscriptions list-subscription-phases --id <id>`).action(async (opts) => {
31281
- const ctx = resource.parent?.opts()._ctx;
31282
- if (!ctx) {
31283
- process.stderr.write("Error: Not authenticated\n");
31284
- process.exit(1);
31285
- }
31286
- const args = {};
31287
- if (opts.id !== void 0)
31288
- args.id = opts.id;
31289
- await ctx.execute({
31290
- method: "GET",
31291
- path: "/v2/subscriptions/{id}/phases",
31292
- args,
31293
- queryParamKeys: []
31294
- });
31295
- });
31296
- resource.command("get-subscription-phase").description(`Retrieve details of a specific phase within a subscription, including its products and billing configuration.`).requiredOption("--id <value>", `id parameter`).requiredOption("--phase-id <value>", `phaseId parameter`).addHelpText("after", `
31297
- Examples:
31298
- hyperline subscriptions get-subscription-phase --id <id> --phase-id <phaseId>`).action(async (opts) => {
31299
- const ctx = resource.parent?.opts()._ctx;
31300
- if (!ctx) {
31301
- process.stderr.write("Error: Not authenticated\n");
31302
- process.exit(1);
31303
- }
31304
- const args = {};
31305
- if (opts.id !== void 0)
31306
- args.id = opts.id;
31307
- if (opts.phaseId !== void 0)
31308
- args.phaseId = opts.phaseId;
31309
- await ctx.execute({
31310
- method: "GET",
31311
- path: "/v2/subscriptions/{id}/phases/{phaseId}",
31312
- args,
31313
- queryParamKeys: []
31314
- });
31315
- });
31316
- resource.command("refresh-subscription-seat-products").description(`Trigger a count update on seat-based products within a subscription using the configured dataloader query.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31317
- Examples:
31318
- hyperline subscriptions refresh-subscription-seat-products --id <id>
31319
- hyperline subscriptions refresh-subscription-seat-products --id <id> --output json`).action(async (opts) => {
31320
- const ctx = resource.parent?.opts()._ctx;
31321
- if (!ctx) {
31322
- process.stderr.write("Error: Not authenticated\n");
31323
- process.exit(1);
31324
- }
31325
- const args = {};
31326
- if (opts.id !== void 0)
31327
- args.id = opts.id;
31328
- await ctx.execute({
31329
- method: "POST",
31330
- path: "/v2/subscriptions/{id}/refresh-seat-products",
31331
- args,
31332
- queryParamKeys: []
31333
- });
31334
- });
31335
- resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Payload mirrors GET response structure.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
31336
- Defines when invoices are generated relative to the billing period.
31337
-
31338
- - \`period_start\`: Invoices are generated at the start of the billing period.
31339
- - \`period_end\`: Invoices are generated at the end of the billing period.
31340
- `).option("--estimated-arr <number>", `Estimated Annual Recurring Revenue generated by the subscription.`).option("--contract-value <number>", `Contract value of the subscription. This value is overridable by the user.`).option("--starts-at <value>", `Applies only if the activation strategy is \`start_date\`. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--initial-billing-at <value>", `Date when the subscription will start being billed. If not specified, it will correspond to the \`starts_at\` date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--display-shipping-details <value>", `Indicates if the shipping details should be displayed on the subscription's invoices.`).option("--phases <value>", `Array of subscription phases. Existing pending phases will be replaced by the ones in the array.`).option("--contract-terms <value>", `Contract terms to update.`).addHelpText("after", `
31341
- Examples:
31342
- hyperline subscriptions update --id <id>
31343
- hyperline subscriptions update --id <id> --name <name> --purchase-order <purchase_order>
31344
- hyperline subscriptions update --id <id> --output json`).action(async (opts) => {
31345
- const ctx = resource.parent?.opts()._ctx;
31346
- if (!ctx) {
31347
- process.stderr.write("Error: Not authenticated\n");
31348
- process.exit(1);
31349
- }
31350
- const args = {};
31351
- if (opts.id !== void 0)
31352
- args.id = opts.id;
31353
- if (opts.name !== void 0)
31354
- args.name = opts.name;
31355
- if (opts.purchaseOrder !== void 0)
31356
- args.purchase_order = opts.purchaseOrder;
31357
- if (opts.crmOpportunityId !== void 0)
31358
- args.crm_opportunity_id = opts.crmOpportunityId;
31359
- if (opts.taxOnly !== void 0)
31360
- args.tax_only = opts.taxOnly;
31361
- if (opts.generateDraftInvoices !== void 0)
31362
- args.generate_draft_invoices = opts.generateDraftInvoices;
31363
- if (opts.generateDocument !== void 0)
31364
- args.generate_document = opts.generateDocument;
31365
- if (opts.documentName !== void 0)
31366
- args.document_name = opts.documentName;
31367
- if (opts.addTaxToDocument !== void 0)
31368
- args.add_tax_to_document = opts.addTaxToDocument;
31369
- if (opts.doNotChargeSubscription !== void 0)
31370
- args.do_not_charge_subscription = opts.doNotChargeSubscription;
31371
- if (opts.invoiceCustomNote !== void 0)
31372
- args.invoice_custom_note = opts.invoiceCustomNote;
31373
- if (opts.invoiceSchedule !== void 0)
31374
- args.invoice_schedule = opts.invoiceSchedule;
31375
- if (opts.startsAt !== void 0)
31376
- args.starts_at = opts.startsAt;
31377
- if (opts.initialBillingAt !== void 0)
31378
- args.initial_billing_at = opts.initialBillingAt;
31379
- if (opts.cancelAt !== void 0)
31380
- args.cancel_at = opts.cancelAt;
31381
- if (opts.properties !== void 0)
31382
- args.properties = opts.properties;
31383
- if (opts.customProperties !== void 0)
31384
- args.custom_properties = opts.customProperties;
31385
- if (opts.displayShippingDetails !== void 0)
31386
- args.display_shipping_details = opts.displayShippingDetails;
31387
- if (opts.phases !== void 0)
31388
- args.phases = opts.phases;
31389
- if (opts.contractTerms !== void 0)
31390
- args.contract_terms = opts.contractTerms;
31391
- if (opts.minimumInvoiceFee !== void 0)
31392
- args.minimum_invoice_fee = Number(opts.minimumInvoiceFee);
31393
- if (opts.estimatedArr !== void 0)
31394
- args.estimated_arr = Number(opts.estimatedArr);
31395
- if (opts.contractValue !== void 0)
31396
- args.contract_value = Number(opts.contractValue);
31397
- await ctx.execute({
31398
- method: "PUT",
31399
- path: "/v2/subscriptions/{id}",
31400
- args,
31401
- queryParamKeys: []
31402
- });
31403
- });
31404
- resource.command("transition").description(`Transition a subscription to its next configured phase at a specified date.`).requiredOption("--id <value>", `id parameter`).option("--transition-date <value>", `Date of application of the transition. Use it if different than immediately to calculate pro-rata and display past or future dates on invoices. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
31405
- Examples:
31406
- hyperline subscriptions transition --id <id>
31407
- hyperline subscriptions transition --id <id> --transition-date <transition_date>
31408
- hyperline subscriptions transition --id <id> --output json`).action(async (opts) => {
31409
- const ctx = resource.parent?.opts()._ctx;
31410
- if (!ctx) {
31411
- process.stderr.write("Error: Not authenticated\n");
31412
- process.exit(1);
31413
- }
31414
- const args = {};
31415
- if (opts.id !== void 0)
31416
- args.id = opts.id;
31417
- if (opts.transitionDate !== void 0)
31418
- args.transition_date = opts.transitionDate;
31419
- await ctx.execute({
31420
- method: "POST",
31421
- path: "/v2/subscriptions/{id}/next-phase",
31422
- args,
31423
- queryParamKeys: []
31424
- });
31425
- });
31426
31509
  resource.command("create-subscription-transition").description(`Create a transition from one subscription to another, configured from a subscription, plan, or template. Can be applied immediately or scheduled.`).requiredOption("--source-subscription-id <value>", `The ID of the subscription to transition from`).option("--name <value>", `An optional name for the transition`).option("--calculation-method <value>", `The calculation method to use for the transition. 'do_not_charge' will not generate any transition invoice. 'pro_rata' will generate a prorated invoice for the remaining period.`).option("--billing-cycle-transition-method <value>", `The billing cycle transition method to use. 'keep_current_billing_cycle' will keep the current billing cycle dates if possible. 'align_to_new_billing_cycle' will align the billing cycle to the transition date.`).requiredOption("--application-schedule <value>", `Whether the transition should be applied 'immediately' or 'scheduled' for a specific date. Past dates within the current billing period are supported and will be applied immediately.`).option("--transition-date <value>", `The date at which the transition should occur. Only applicable if the application schedule is 'scheduled'. Can be a past date within the current billing period. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).requiredOption("--target-subscription <value>", `The configuration of the subscription to transition to`).addHelpText("after", `
31427
31510
  Examples:
31428
- hyperline subscriptions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription>
31429
- hyperline subscriptions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription> --name <name> --calculation-method <calculation_method>
31430
- hyperline subscriptions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription> --output json`).action(async (opts) => {
31511
+ hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription>
31512
+ hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription> --name <name> --calculation-method <calculation_method>
31513
+ hyperline subscriptions-transitions create-subscription-transition --source-subscription-id <source_subscription_id> --application-schedule <application_schedule> --target-subscription <target_subscription> --output json`).action(async (opts) => {
31431
31514
  const ctx = resource.parent?.opts()._ctx;
31432
31515
  if (!ctx) {
31433
31516
  process.stderr.write("Error: Not authenticated\n");
@@ -31457,7 +31540,7 @@ Examples:
31457
31540
  });
31458
31541
  resource.command("get-subscription-transition").description(`Retrieve details of a subscription transition by ID including source/target subscriptions and schedule.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31459
31542
  Examples:
31460
- hyperline subscriptions get-subscription-transition --id <id>`).action(async (opts) => {
31543
+ hyperline subscriptions-transitions get-subscription-transition --id <id>`).action(async (opts) => {
31461
31544
  const ctx = resource.parent?.opts()._ctx;
31462
31545
  if (!ctx) {
31463
31546
  process.stderr.write("Error: Not authenticated\n");
@@ -31475,8 +31558,8 @@ Examples:
31475
31558
  });
31476
31559
  resource.command("cancel-subscription-transition").description(`Cancel a scheduled subscription transition before it is applied.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31477
31560
  Examples:
31478
- hyperline subscriptions cancel-subscription-transition --id <id>
31479
- hyperline subscriptions cancel-subscription-transition --id <id> --output json`).action(async (opts) => {
31561
+ hyperline subscriptions-transitions cancel-subscription-transition --id <id>
31562
+ hyperline subscriptions-transitions cancel-subscription-transition --id <id> --output json`).action(async (opts) => {
31480
31563
  const ctx = resource.parent?.opts()._ctx;
31481
31564
  if (!ctx) {
31482
31565
  process.stderr.write("Error: Not authenticated\n");
@@ -31492,71 +31575,6 @@ Examples:
31492
31575
  queryParamKeys: []
31493
31576
  });
31494
31577
  });
31495
- resource.command("get-subscription-valuation").description(`Compute valuation metrics for a subscription: contract value (total/invoiced/remaining), recurring contract value, and ARR (fixed + variable). Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
31496
- Examples:
31497
- hyperline subscriptions get-subscription-valuation --id <id>
31498
- hyperline subscriptions get-subscription-valuation --id <id> --granularity <granularity>`).action(async (opts) => {
31499
- const ctx = resource.parent?.opts()._ctx;
31500
- if (!ctx) {
31501
- process.stderr.write("Error: Not authenticated\n");
31502
- process.exit(1);
31503
- }
31504
- const args = {};
31505
- if (opts.id !== void 0)
31506
- args.id = opts.id;
31507
- if (opts.granularity !== void 0)
31508
- args.granularity = opts.granularity;
31509
- await ctx.execute({
31510
- method: "GET",
31511
- path: "/v1/subscriptions/{id}/valuation",
31512
- args,
31513
- queryParamKeys: ["granularity"]
31514
- });
31515
- });
31516
- }
31517
-
31518
- // build/commands/generated/subscriptions-templates.js
31519
- function registerSubscriptions_TemplatesCommands(parent) {
31520
- const resource = parent.command("subscriptions-templates").description("Manage subscriptions > templates");
31521
- resource.command("list-subscription-templates").description(`List subscription templates with pagination. Templates define reusable subscription configurations with pre-configured products, phases, and billing settings.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
31522
- Examples:
31523
- hyperline subscriptions-templates list-subscription-templates
31524
- hyperline subscriptions-templates list-subscription-templates --take <take>`).action(async (opts) => {
31525
- const ctx = resource.parent?.opts()._ctx;
31526
- if (!ctx) {
31527
- process.stderr.write("Error: Not authenticated\n");
31528
- process.exit(1);
31529
- }
31530
- const args = {};
31531
- if (opts.take !== void 0)
31532
- args.take = Number(opts.take);
31533
- if (opts.skip !== void 0)
31534
- args.skip = Number(opts.skip);
31535
- await ctx.execute({
31536
- method: "GET",
31537
- path: "/v1/subscriptions/templates",
31538
- args,
31539
- queryParamKeys: ["take", "skip"]
31540
- });
31541
- });
31542
- resource.command("get-subscription-template").description(`Retrieve a subscription template by ID with its full configuration including products, phases, and pricing details.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
31543
- Examples:
31544
- hyperline subscriptions-templates get-subscription-template --id <id>`).action(async (opts) => {
31545
- const ctx = resource.parent?.opts()._ctx;
31546
- if (!ctx) {
31547
- process.stderr.write("Error: Not authenticated\n");
31548
- process.exit(1);
31549
- }
31550
- const args = {};
31551
- if (opts.id !== void 0)
31552
- args.id = opts.id;
31553
- await ctx.execute({
31554
- method: "GET",
31555
- path: "/v1/subscriptions/templates/{id}",
31556
- args,
31557
- queryParamKeys: []
31558
- });
31559
- });
31560
31578
  }
31561
31579
 
31562
31580
  // build/commands/generated/taxes.js
@@ -32111,6 +32129,8 @@ function registerAllCommands(program2) {
32111
32129
  registerQuotesCommands(program2);
32112
32130
  registerSubscriptionsCommands(program2);
32113
32131
  registerSubscriptions_TemplatesCommands(program2);
32132
+ registerSubscriptions_TransitionsCommands(program2);
32133
+ registerSubscriptions_PhasesCommands(program2);
32114
32134
  registerTaxesCommands(program2);
32115
32135
  registerWalletsCommands(program2);
32116
32136
  registerWebhooksCommands(program2);
@@ -32694,7 +32714,7 @@ function $constructor(name, initializer3, params) {
32694
32714
  Object.defineProperty(_, "name", { value: name });
32695
32715
  return _;
32696
32716
  }
32697
- var $brand = Symbol("zod_brand");
32717
+ var $brand = /* @__PURE__ */ Symbol("zod_brand");
32698
32718
  var $ZodAsyncError = class extends Error {
32699
32719
  constructor() {
32700
32720
  super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
@@ -32841,7 +32861,7 @@ function floatSafeRemainder(val, step) {
32841
32861
  const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
32842
32862
  return valInt % stepInt / 10 ** decCount;
32843
32863
  }
32844
- var EVALUATING = Symbol("evaluating");
32864
+ var EVALUATING = /* @__PURE__ */ Symbol("evaluating");
32845
32865
  function defineLazy(object2, key, getter) {
32846
32866
  let value = void 0;
32847
32867
  Object.defineProperty(object2, key, {
@@ -41914,8 +41934,8 @@ function yo_default() {
41914
41934
 
41915
41935
  // ../../node_modules/zod/v4/core/registries.js
41916
41936
  var _a;
41917
- var $output = Symbol("ZodOutput");
41918
- var $input = Symbol("ZodInput");
41937
+ var $output = /* @__PURE__ */ Symbol("ZodOutput");
41938
+ var $input = /* @__PURE__ */ Symbol("ZodInput");
41919
41939
  var $ZodRegistry = class {
41920
41940
  constructor() {
41921
41941
  this._map = /* @__PURE__ */ new WeakMap();
@@ -42952,7 +42972,7 @@ function _stringbool(Classes, _params) {
42952
42972
  type: "pipe",
42953
42973
  in: stringSchema,
42954
42974
  out: booleanSchema,
42955
- transform: (input, payload) => {
42975
+ transform: ((input, payload) => {
42956
42976
  let data = input;
42957
42977
  if (params.case !== "sensitive")
42958
42978
  data = data.toLowerCase();
@@ -42971,14 +42991,14 @@ function _stringbool(Classes, _params) {
42971
42991
  });
42972
42992
  return {};
42973
42993
  }
42974
- },
42975
- reverseTransform: (input, _payload) => {
42994
+ }),
42995
+ reverseTransform: ((input, _payload) => {
42976
42996
  if (input === true) {
42977
42997
  return truthyArray[0] || "true";
42978
42998
  } else {
42979
42999
  return falsyArray[0] || "false";
42980
43000
  }
42981
- },
43001
+ }),
42982
43002
  error: params.error
42983
43003
  });
42984
43004
  return codec2;
@@ -44306,10 +44326,10 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
44306
44326
  inst.with = inst.check;
44307
44327
  inst.clone = (def2, params) => clone(inst, def2, params);
44308
44328
  inst.brand = () => inst;
44309
- inst.register = (reg, meta3) => {
44329
+ inst.register = ((reg, meta3) => {
44310
44330
  reg.add(inst, meta3);
44311
44331
  return inst;
44312
- };
44332
+ });
44313
44333
  inst.parse = (data, params) => parse2(inst, data, params, { callee: inst.parse });
44314
44334
  inst.safeParse = (data, params) => safeParse2(inst, data, params);
44315
44335
  inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
@@ -46997,7 +47017,7 @@ function cosine(Ctor, x) {
46997
47017
  Ctor.precision -= k;
46998
47018
  return x;
46999
47019
  }
47000
- var divide = /* @__PURE__ */ function() {
47020
+ var divide = /* @__PURE__ */ (function() {
47001
47021
  function multiplyInteger(x, k, base) {
47002
47022
  var temp, carry = 0, i = x.length;
47003
47023
  for (x = x.slice(); i--; ) {
@@ -47155,7 +47175,7 @@ var divide = /* @__PURE__ */ function() {
47155
47175
  }
47156
47176
  return q;
47157
47177
  };
47158
- }();
47178
+ })();
47159
47179
  function finalise(x, sd, rm, isTruncated) {
47160
47180
  var digits, i, j, k, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
47161
47181
  out: if (sd != null) {
@@ -48112,7 +48132,7 @@ function tanh(x) {
48112
48132
  function trunc(x) {
48113
48133
  return finalise(x = new this(x), x.e + 1, 1);
48114
48134
  }
48115
- P[Symbol.for("nodejs.util.inspect.custom")] = P.toString;
48135
+ P[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = P.toString;
48116
48136
  P[Symbol.toStringTag] = "Decimal";
48117
48137
  var Decimal = P.constructor = clone2(DEFAULTS);
48118
48138
  LN10 = new Decimal(LN10);
@@ -51114,7 +51134,7 @@ var toLogRequest = (config4) => {
51114
51134
  url: config4.url ?? "",
51115
51135
  path: config4.url ?? "",
51116
51136
  hostname: config4.baseURL ?? "",
51117
- originalUrl: `${config4.baseURL}${config4.url}`,
51137
+ originalUrl: `${config4.baseURL ?? ""}${config4.url}`,
51118
51138
  body: config4.data,
51119
51139
  headers: {}
51120
51140
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.c2ea80c",
3
+ "version": "0.1.0-build.1.cfa3562",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -46,9 +46,9 @@
46
46
  "@hyperline/ts-config": "workspace:*",
47
47
  "@hyperline/vitest-config": "workspace:*",
48
48
  "@types/node": "24.10.1",
49
- "esbuild": "0.25.4",
50
- "typescript": "6.0.2",
51
- "vitest": "4.0.17"
49
+ "esbuild": "0.28.0",
50
+ "typescript": "6.0.3",
51
+ "vitest": "4.1.5"
52
52
  },
53
53
  "publishConfig": {
54
54
  "access": "public",