@hyperscale0/hsx 5.5.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const HSX_VERSION = "5.5.0";
1
+ export const HSX_VERSION = "5.7.0";
package/std/financing.hsx CHANGED
@@ -497,7 +497,7 @@ instrument late_charge(on: ref<financing.installments>[], grace: duration = 3d,
497
497
  receivable: account(self, claim), debt: account(borrower, claim, contra, "debt")
498
498
  }
499
499
  lifecycle { states: [proposed, assessed, collected, waived], initial: proposed }
500
- action create { calculate: [{ target: overdueAt, op: shift, date: { field: self.slice.dueAt }, milliseconds: { literal: grace }, direction: after }], requires unique "late_assessment" on [self.slice, self.overdueAt]; requires self.borrower == self.slice.plan.borrower; requires self.plan == self.slice.plan }
500
+ action create { input { slice: ref<on.slice>? }, calculate: [{ target: overdueAt, op: shift, date: { field: self.slice.dueAt }, milliseconds: { literal: grace }, direction: after }], requires unique "late_assessment" on [self.slice, self.overdueAt]; requires self.borrower == self.slice.plan.borrower; requires self.plan == self.slice.plan }
501
501
  action assess { allowZero: true,
502
502
  from: proposed, to: assessed, actor: clock, due: { at: self.overdueAt }
503
503
  requires self.slice.principalReceivable.balance > "0"
@@ -630,6 +630,7 @@ instrument late_charge(on: ref<financing.installments>[], grace: duration = 3d,
630
630
 
631
631
  instrument limits(per_borrower: money, borrower: party = party(person), active_plans: integer = 1) {
632
632
  familyRevision: 1
633
+ scope: product
633
634
  summary: "One outstanding balance ceiling per borrower."
634
635
  fields { borrower: account of borrower, limit: money = per_borrower, activePlans: integer = active_plans }
635
636
  lifecycle { states: [pending, approved], initial: pending }
@@ -639,6 +640,7 @@ instrument limits(per_borrower: money, borrower: party = party(person), active_p
639
640
 
640
641
  instrument portfolio_limit(limit: money) {
641
642
  familyRevision: 1
643
+ scope: product
642
644
  summary: "One shared ceiling on the principal the product may hold."
643
645
  fields { key: text = "portfolio", limit: money = limit }
644
646
  lifecycle { states: [pending, approved], initial: pending }
package/std/travel.hsx CHANGED
@@ -81,11 +81,11 @@ instrument booking(package: ref<travel.package>, buyer: party, supplier: party,
81
81
  from: paid, to: refunded, actor: clock, due: { at: self.confirmBy }
82
82
  moves self.price from self.held to buyer economics { purpose: principal, sourceParty: programOperator }
83
83
  }
84
- action cancel_early { allowZero: true, requires self.price > "0";
84
+ action cancel_early { allowZero: true, purpose: option, requires self.price > "0";
85
85
  from: [deposit_paid, paid], to: cancelled, actor: { party: buyer }, deadline: { at: self.earlyAt }
86
86
  moves self.held.balance from self.held to buyer economics { purpose: principal, sourceParty: programOperator }
87
87
  }
88
- action cancel_middle { allowZero: true, requires self.price > "0";
88
+ action cancel_middle { allowZero: true, purpose: option, requires self.price > "0";
89
89
  from: [deposit_paid, paid], to: cancelled, actor: { party: buyer }, due: { at: self.earlyAt }, deadline: { at: self.lateAt }
90
90
  calculate: [
91
91
  { target: refund, op: "subtract", base: { field: self.held.balance }, subtract: [{ field: self.deposit }] }
@@ -98,7 +98,7 @@ instrument booking(package: ref<travel.package>, buyer: party, supplier: party,
98
98
  moves self.retainedTax from self.held to programTax economics { purpose: pass_through, sourceParty: programOperator }
99
99
  moves self.retainedNet from self.held to operator economics { recipient: operator, company: { purpose: earning, sourceParty: buyer }, participant: { purpose: participant_payout, sourceParty: programOperator } }
100
100
  }
101
- action cancel_late { allowZero: true, requires self.price > "0";
101
+ action cancel_late { allowZero: true, purpose: option, requires self.price > "0";
102
102
  from: [deposit_paid, paid], to: cancelled, actor: { party: buyer }, due: { at: self.lateAt }
103
103
  calculate: [
104
104
  { target: retainedMargin, op: "subtract", base: { field: self.held.balance }, subtract: [{ field: self.latePenalty }] }