@hyperscale0/hsx 3.2.0 → 3.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 +4 -0
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +43 -7
- package/dist/src/compile.js.map +1 -1
- package/dist/src/cost.d.ts +1 -1
- package/dist/src/cost.d.ts.map +1 -1
- package/dist/src/cost.js +52 -9
- package/dist/src/cost.js.map +1 -1
- package/dist/src/headers.d.ts +2 -2
- package/dist/src/headers.d.ts.map +1 -1
- package/dist/src/headers.js +2 -0
- package/dist/src/headers.js.map +1 -1
- package/dist/src/parse.js +4 -2
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.d.ts.map +1 -1
- package/dist/src/std-bundle.js +7 -5
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.md +6 -0
- package/docs/headers.md +43 -39
- package/examples/cost-table.json +36 -4
- package/examples/library.hsx +9 -2
- package/package.json +3 -3
- package/src/compile.ts +56 -10
- package/src/cost.ts +60 -16
- package/src/headers.ts +2 -0
- package/src/parse.ts +3 -2
- package/src/std-bundle.ts +7 -5
- package/src/version.ts +1 -1
- package/std/collections.hsx +45 -4
- package/std/escrow.hsx +10 -3
- package/std/financing.hsx +240 -32
- package/std/marketplace.hsx +94 -7
- package/std/money.hsx +1 -1
- package/std/reporting.hsx +1286 -0
- package/std/vehicles.hsx +34 -0
package/std/vehicles.hsx
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
header vehicles
|
|
2
|
+
|
|
3
|
+
instrument vehicle(listing: ref<marketplace.listing>, seller: party) {
|
|
4
|
+
summary: "Seller-declared vehicle identity and kilometre odometer, corrected only before publication."
|
|
5
|
+
fields {
|
|
6
|
+
listing: ref<listing>, seller: account of seller
|
|
7
|
+
vin: text(17, 17, "^[A-HJ-NPR-Z0-9]{17}$"), make: text(1, 80), model: text(1, 80)
|
|
8
|
+
year: integer(1886, 2200), odometer: integer(0, 10000000), odometerUnit: enum(kilometres) = kilometres
|
|
9
|
+
correctedAt: date?, correctionEvidence: text?
|
|
10
|
+
}
|
|
11
|
+
lifecycle { states: [draft, published], initial: draft }
|
|
12
|
+
action create {
|
|
13
|
+
actor: { party: seller }
|
|
14
|
+
requires self.listing in [draft]; requires self.seller == self.listing.seller
|
|
15
|
+
requires unique "listing_vehicle" on [self.listing]
|
|
16
|
+
}
|
|
17
|
+
action publish {
|
|
18
|
+
from: draft, to: published, actor: { parent: listing }
|
|
19
|
+
requires self.listing in [active]
|
|
20
|
+
requires unique "vehicle_identity" on [self.vin]
|
|
21
|
+
}
|
|
22
|
+
action correct {
|
|
23
|
+
from: draft, to: draft, actor: { party: seller }
|
|
24
|
+
input { make: text(1, 80), model: text(1, 80), year: integer(1886, 2200), odometer: integer(0, 10000000), evidence: text }
|
|
25
|
+
requires self.listing in [draft]; requires self.seller == self.listing.seller
|
|
26
|
+
set: { make: { field: input.make }, model: { field: input.model }, year: { field: input.year }, odometer: { field: input.odometer }, correctionEvidence: { field: input.evidence }, correctedAt: { field: self.now } }
|
|
27
|
+
}
|
|
28
|
+
action correct_identity {
|
|
29
|
+
from: draft, to: draft, actor: { party: seller }
|
|
30
|
+
input { vin: text(17, 17, "^[A-HJ-NPR-Z0-9]{17}$"), evidence: text }
|
|
31
|
+
requires self.listing in [draft]; requires self.seller == self.listing.seller
|
|
32
|
+
set: { vin: { field: input.vin }, correctionEvidence: { field: input.evidence }, correctedAt: { field: self.now } }
|
|
33
|
+
}
|
|
34
|
+
}
|