@hyperscale0/hsx 5.2.0 → 5.3.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/CHANGELOG.md +18 -0
- package/dist/src/ast.d.ts +0 -1
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast.js +0 -11
- package/dist/src/ast.js.map +1 -1
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +185 -101
- package/dist/src/compile.js.map +1 -1
- package/dist/src/diagnostics.d.ts +14 -0
- package/dist/src/diagnostics.d.ts.map +1 -0
- package/dist/src/diagnostics.js +20 -0
- package/dist/src/diagnostics.js.map +1 -0
- package/dist/src/header-source.d.ts +3 -0
- package/dist/src/header-source.d.ts.map +1 -0
- package/dist/src/header-source.js +36 -0
- package/dist/src/header-source.js.map +1 -0
- package/dist/src/headers.d.ts.map +1 -1
- package/dist/src/headers.js +4 -6
- package/dist/src/headers.js.map +1 -1
- package/dist/src/keywords.d.ts +8 -2
- package/dist/src/keywords.d.ts.map +1 -1
- package/dist/src/keywords.js +13 -5
- package/dist/src/keywords.js.map +1 -1
- package/dist/src/lex.d.ts +1 -1
- package/dist/src/lex.d.ts.map +1 -1
- package/dist/src/lex.js +11 -3
- package/dist/src/lex.js.map +1 -1
- package/dist/src/parse.d.ts.map +1 -1
- package/dist/src/parse.js +22 -5
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.js +1 -1
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/tunables.d.ts.map +1 -1
- package/dist/src/tunables.js +2 -1
- package/dist/src/tunables.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.md +5 -3
- package/package.json +3 -3
- package/src/ast.ts +0 -10
- package/src/cli.ts +1 -1
- package/src/compile.ts +267 -127
- package/src/diagnostics.ts +28 -0
- package/src/header-source.ts +44 -0
- package/src/headers.ts +4 -6
- package/src/keywords.ts +13 -5
- package/src/lex.ts +13 -5
- package/src/parse.ts +29 -5
- package/src/std-bundle.ts +1 -1
- package/src/tunables.ts +6 -1
- package/src/version.ts +1 -1
- package/std/financing.hsx +2 -2
package/src/tunables.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fail } from "./diagnostics.ts";
|
|
1
2
|
import type { Expr } from "./ast.ts";
|
|
2
3
|
|
|
3
4
|
/** Bounds use UDL units: minor units, basis points and milliseconds. */
|
|
@@ -24,7 +25,11 @@ export function tunableBounds(
|
|
|
24
25
|
numbers.some((value) => !Number.isSafeInteger(value)) ||
|
|
25
26
|
numbers[0]! > numbers[1]!
|
|
26
27
|
)
|
|
27
|
-
|
|
28
|
+
fail(
|
|
29
|
+
type,
|
|
30
|
+
"integer tunable needs ordered safe integer bounds",
|
|
31
|
+
"write integer(1, 12)",
|
|
32
|
+
);
|
|
28
33
|
return { minimum: numbers[0]!, maximum: numbers[1]! };
|
|
29
34
|
}
|
|
30
35
|
return { minimum: 0, maximum: Number.MAX_SAFE_INTEGER };
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const HSX_VERSION = "5.
|
|
1
|
+
export const HSX_VERSION = "5.3.0";
|
|
2
2
|
export const HSX_TARGET_UDL_VERSION = 4;
|
package/std/financing.hsx
CHANGED
|
@@ -456,7 +456,7 @@ instrument late_charge(on: ref<financing.installments>[], grace: duration = 3d,
|
|
|
456
456
|
plan: ref<on>, slice: ref<on.slice>, borrower: account of borrower, fine: money = fine, overdueAt: date?
|
|
457
457
|
receivable: account(self, claim), debt: account(borrower, claim, contra, "debt")
|
|
458
458
|
}
|
|
459
|
-
lifecycle { states: [proposed, assessed, collected, waived
|
|
459
|
+
lifecycle { states: [proposed, assessed, collected, waived], initial: proposed }
|
|
460
460
|
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 }
|
|
461
461
|
action assess { allowZero: true,
|
|
462
462
|
from: proposed, to: assessed, actor: clock, due: { at: self.overdueAt }
|
|
@@ -523,7 +523,7 @@ instrument late_charge(on: ref<financing.installments>[], grace: duration = 3d,
|
|
|
523
523
|
plan: ref<on>, assessment: ref<parent>, overdueAt: date?, evidence: text, evidencedCost: money, amount: money = minimum(self.evidencedCost, cap)
|
|
524
524
|
receivable: account(self, claim), debt: account(borrower, claim, contra, "debt")
|
|
525
525
|
}
|
|
526
|
-
lifecycle { states: [proposed, assessed, collected, waived
|
|
526
|
+
lifecycle { states: [proposed, assessed, collected, waived], initial: proposed }
|
|
527
527
|
action create { calculate: [{ target: overdueAt, op: shift, date: { field: self.assessment.overdueAt }, milliseconds: { literal: 0 }, direction: after }], requires unique "recovery_assessment" on [self.assessment]; requires self.plan == self.assessment.plan }
|
|
528
528
|
action assess { allowZero: true,
|
|
529
529
|
from: proposed, to: assessed, actor: clock, due: { at: self.assessment.overdueAt }
|