@hyperscale0/hsx 1.0.0 → 1.0.124
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 +5 -256
- package/LICENSE.md +356 -0
- package/NOTICE.md +8 -0
- package/README.md +44 -44
- package/bin/hsx.ts +0 -7
- package/dist/bin/hsx.d.ts +0 -4
- package/dist/bin/hsx.d.ts.map +1 -1
- package/dist/bin/hsx.js +0 -6
- package/dist/bin/hsx.js.map +1 -1
- package/dist/src/ast.d.ts +113 -308
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast.js +7 -71
- package/dist/src/ast.js.map +1 -1
- package/dist/src/attachment-economics.d.ts +5 -0
- package/dist/src/attachment-economics.d.ts.map +1 -0
- package/dist/src/attachment-economics.js +55 -0
- package/dist/src/attachment-economics.js.map +1 -0
- package/dist/src/binding-contract.d.ts +22 -0
- package/dist/src/binding-contract.d.ts.map +1 -0
- package/dist/src/binding-contract.js +74 -0
- package/dist/src/binding-contract.js.map +1 -0
- package/dist/src/cli.d.ts +4 -19
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +89 -276
- package/dist/src/cli.js.map +1 -1
- package/dist/src/compile.d.ts +34 -66
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +2949 -117
- package/dist/src/compile.js.map +1 -1
- package/dist/src/cost.d.ts +8 -75
- package/dist/src/cost.d.ts.map +1 -1
- package/dist/src/cost.js +54 -364
- package/dist/src/cost.js.map +1 -1
- package/dist/src/diagnostics.d.ts +14 -9
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +39 -416
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/examples-bundle.d.ts +3 -0
- package/dist/src/examples-bundle.d.ts.map +1 -0
- package/dist/src/examples-bundle.js +18 -0
- package/dist/src/examples-bundle.js.map +1 -0
- package/dist/src/examples.d.ts +10 -0
- package/dist/src/examples.d.ts.map +1 -0
- package/dist/src/examples.js +2 -0
- package/dist/src/examples.js.map +1 -0
- package/dist/src/format.d.ts +8 -7
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +9 -175
- package/dist/src/format.js.map +1 -1
- 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 +41 -0
- package/dist/src/header-source.js.map +1 -0
- package/dist/src/headers.d.ts +64 -0
- package/dist/src/headers.d.ts.map +1 -0
- package/dist/src/headers.js +167 -0
- package/dist/src/headers.js.map +1 -0
- package/dist/src/index.d.ts +7 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/keywords.d.ts +56 -0
- package/dist/src/keywords.d.ts.map +1 -0
- package/dist/src/keywords.js +133 -0
- package/dist/src/keywords.js.map +1 -0
- package/dist/src/language.d.ts +26 -0
- package/dist/src/language.d.ts.map +1 -0
- package/dist/src/language.js +440 -0
- package/dist/src/language.js.map +1 -0
- package/dist/src/lex.d.ts +13 -28
- package/dist/src/lex.d.ts.map +1 -1
- package/dist/src/lex.js +119 -145
- package/dist/src/lex.js.map +1 -1
- package/dist/src/parse.d.ts +4 -17
- package/dist/src/parse.d.ts.map +1 -1
- package/dist/src/parse.js +484 -1036
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.d.ts.map +1 -1
- package/dist/src/std-bundle.js +11 -84
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/std-library.d.ts +1 -1
- package/dist/src/std-library.d.ts.map +1 -1
- package/dist/src/std-library.js +1 -5
- package/dist/src/std-library.js.map +1 -1
- package/dist/src/tunables.d.ts +7 -0
- package/dist/src/tunables.d.ts.map +1 -0
- package/dist/src/tunables.js +27 -0
- package/dist/src/tunables.js.map +1 -0
- package/docs/README.md +528 -26
- package/docs/assets/brand/hsx-horizontal-white.svg +1 -0
- package/docs/assets/brand/hsx-horizontal.svg +1 -0
- package/docs/assets/brand/hsx-stacked-white.svg +1 -0
- package/docs/assets/brand/hsx-stacked.svg +1 -0
- package/docs/assets/brand/manifest.json +30 -0
- package/docs/assets/hsx.svg +11 -0
- package/examples/cards.hsx +34 -0
- package/examples/collections.hsx +37 -0
- package/examples/cost-table.json +633 -385
- package/examples/escrow.hsx +24 -0
- package/examples/financing.hsx +32 -0
- package/examples/insurance.hsx +30 -0
- package/examples/lending.hsx +57 -0
- package/examples/library.hsx +15 -0
- package/examples/marketplace.hsx +32 -0
- package/examples/money.hsx +19 -0
- package/examples/rental-deposit.hsx +60 -0
- package/examples/repair-approval.hsx +44 -0
- package/examples/reporting.hsx +28 -0
- package/examples/savings.hsx +21 -0
- package/examples/serviced.hsx +25 -0
- package/examples/wallet.hsx +24 -0
- package/package.json +25 -23
- package/src/ast.ts +83 -440
- package/src/attachment-economics.ts +103 -0
- package/src/binding-contract.ts +104 -0
- package/src/cli.ts +95 -325
- package/src/compile.ts +4063 -209
- package/src/cost.ts +71 -574
- package/src/diagnostics.ts +57 -437
- package/src/examples-bundle.ts +19 -0
- package/src/examples.ts +9 -0
- package/src/format.ts +12 -256
- package/src/header-source.ts +54 -0
- package/src/headers.ts +195 -0
- package/src/index.ts +18 -33
- package/src/keywords.ts +134 -0
- package/src/language.ts +629 -0
- package/src/lex.ts +131 -192
- package/src/parse.ts +489 -1195
- package/src/std-bundle.ts +12 -88
- package/src/std-library.ts +2 -7
- package/src/tunables.ts +36 -0
- package/std/cards.hsx +85 -0
- package/std/collections.hsx +90 -0
- package/std/escrow.hsx +73 -0
- package/std/financing.hsx +683 -0
- package/std/insurance.hsx +89 -0
- package/std/lending.hsx +138 -0
- package/std/marketplace.hsx +123 -0
- package/std/money.hsx +173 -0
- package/std/reporting.hsx +753 -0
- package/std/savings.hsx +68 -0
- package/std/wallet.hsx +57 -0
- package/LICENSE +0 -661
- package/LICENSING.md +0 -52
- package/TRADEMARKS.md +0 -35
- package/dist/src/emit.d.ts +0 -34
- package/dist/src/emit.d.ts.map +0 -1
- package/dist/src/emit.js +0 -137
- package/dist/src/emit.js.map +0 -1
- package/dist/src/entry-overrides.d.ts +0 -58
- package/dist/src/entry-overrides.d.ts.map +0 -1
- package/dist/src/entry-overrides.js +0 -284
- package/dist/src/entry-overrides.js.map +0 -1
- package/dist/src/ir.d.ts +0 -66
- package/dist/src/ir.d.ts.map +0 -1
- package/dist/src/ir.js +0 -15
- package/dist/src/ir.js.map +0 -1
- package/dist/src/limits.d.ts +0 -21
- package/dist/src/limits.d.ts.map +0 -1
- package/dist/src/limits.js +0 -21
- package/dist/src/limits.js.map +0 -1
- package/dist/src/lsp/server.d.ts +0 -32
- package/dist/src/lsp/server.d.ts.map +0 -1
- package/dist/src/lsp/server.js +0 -391
- package/dist/src/lsp/server.js.map +0 -1
- package/dist/src/modules.d.ts +0 -38
- package/dist/src/modules.d.ts.map +0 -1
- package/dist/src/modules.js +0 -368
- package/dist/src/modules.js.map +0 -1
- package/dist/src/typecheck.d.ts +0 -8
- package/dist/src/typecheck.d.ts.map +0 -1
- package/dist/src/typecheck.js +0 -2958
- package/dist/src/typecheck.js.map +0 -1
- package/dist/src/version.d.ts +0 -5
- package/dist/src/version.d.ts.map +0 -1
- package/dist/src/version.js +0 -5
- package/dist/src/version.js.map +0 -1
- package/docs/guide/01-first-program.md +0 -24
- package/docs/guide/02-money.md +0 -25
- package/docs/guide/03-instruments.md +0 -22
- package/docs/guide/04-lifecycles.md +0 -25
- package/docs/guide/05-fees-and-splits.md +0 -45
- package/docs/guide/06-schedules.md +0 -22
- package/docs/guide/07-composition.md +0 -46
- package/docs/guide/08-writing-a-module.md +0 -26
- package/docs/guide/09-cost.md +0 -24
- package/docs/guide/10-diagnostics.md +0 -27
- package/docs/llms-full.txt +0 -1739
- package/docs/llms.txt +0 -45
- package/docs/playground.md +0 -54
- package/docs/reference/cli.md +0 -35
- package/docs/reference/diagnostics.md +0 -619
- package/docs/reference/grammar.md +0 -39
- package/docs/reference/std/advance.md +0 -35
- package/docs/reference/std/cancellable_booking.md +0 -35
- package/docs/reference/std/captured_payment.md +0 -43
- package/docs/reference/std/conditional_disbursement.md +0 -33
- package/docs/reference/std/credit_facility.md +0 -35
- package/docs/reference/std/held_payment.md +0 -64
- package/docs/reference/std/instant_transfer.md +0 -30
- package/docs/reference/std/metered.md +0 -27
- package/docs/reference/std/pooled_split.md +0 -26
- package/docs/reference/std/premium_forward.md +0 -39
- package/docs/reference/std/reconciled_payout.md +0 -33
- package/docs/reference/std/recurring_collection.md +0 -25
- package/docs/reference/std/rotating_pool.md +0 -42
- package/docs/reference/std/scheduled.md +0 -51
- package/docs/reference/std/security_deposit.md +0 -46
- package/docs/reference/std/settlement_batch.md +0 -42
- package/docs/reference/std/swap.md +0 -46
- package/docs/reference/std/threshold_pool.md +0 -47
- package/docs/reference/std/weighted_distribution.md +0 -39
- package/docs/reference/types.md +0 -20
- package/docs/reference/udl-output.md +0 -13
- package/docs/sessions/2026-09-02-two-instruments.hsx +0 -21
- package/docs/sessions/2026-09-02-two-instruments.md +0 -41
- package/examples/01-first-program/README.md +0 -45
- package/examples/01-first-program/tip-jar.hsx +0 -17
- package/examples/02-imports-and-archetypes/README.md +0 -96
- package/examples/02-imports-and-archetypes/photo-booth.hsx +0 -37
- package/examples/03-diagnostics/README.md +0 -68
- package/examples/03-diagnostics/corner-shop-fixed.hsx +0 -22
- package/examples/03-diagnostics/corner-shop.hsx +0 -19
- package/examples/04-complete-product/README.md +0 -84
- package/examples/04-complete-product/study-hall.hsx +0 -67
- package/examples/05-watch-club/README.md +0 -9
- package/examples/05-watch-club/watch-club.hsx +0 -124
- package/examples/README.md +0 -18
- package/examples/advance/README.md +0 -3
- package/examples/advance/advance.hsx +0 -13
- package/examples/advance/advance.udl +0 -339
- package/examples/cancellable_booking/README.md +0 -3
- package/examples/cancellable_booking/cancellable_booking.hsx +0 -14
- package/examples/cancellable_booking/cancellable_booking.udl +0 -391
- package/examples/captured_payment/README.md +0 -3
- package/examples/captured_payment/captured_payment.hsx +0 -21
- package/examples/captured_payment/captured_payment.udl +0 -677
- package/examples/conditional_disbursement/README.md +0 -3
- package/examples/conditional_disbursement/conditional_disbursement.hsx +0 -17
- package/examples/conditional_disbursement/conditional_disbursement.udl +0 -412
- package/examples/credit_facility/README.md +0 -3
- package/examples/credit_facility/credit_facility.hsx +0 -27
- package/examples/credit_facility/credit_facility.udl +0 -1373
- package/examples/held_payment/README.md +0 -3
- package/examples/held_payment/held_payment.hsx +0 -13
- package/examples/held_payment/held_payment.udl +0 -507
- package/examples/instant_transfer/README.md +0 -3
- package/examples/instant_transfer/instant_transfer.hsx +0 -16
- package/examples/instant_transfer/instant_transfer.udl +0 -364
- package/examples/metered/README.md +0 -3
- package/examples/metered/metered.hsx +0 -13
- package/examples/metered/metered.udl +0 -247
- package/examples/pooled_split/README.md +0 -3
- package/examples/pooled_split/pooled_split.hsx +0 -15
- package/examples/pooled_split/pooled_split.udl +0 -425
- package/examples/premium_forward/README.md +0 -3
- package/examples/premium_forward/premium_forward.hsx +0 -19
- package/examples/premium_forward/premium_forward.udl +0 -594
- package/examples/reconciled_payout/README.md +0 -3
- package/examples/reconciled_payout/reconciled_payout.hsx +0 -13
- package/examples/reconciled_payout/reconciled_payout.udl +0 -303
- package/examples/recurring_collection/README.md +0 -3
- package/examples/recurring_collection/recurring_collection.hsx +0 -21
- package/examples/recurring_collection/recurring_collection.udl +0 -1130
- package/examples/rotating_pool/README.md +0 -3
- package/examples/rotating_pool/rotating_pool.hsx +0 -18
- package/examples/rotating_pool/rotating_pool.udl +0 -4352
- package/examples/scheduled/README.md +0 -3
- package/examples/scheduled/scheduled.hsx +0 -12
- package/examples/scheduled/scheduled.udl +0 -335
- package/examples/security_deposit/README.md +0 -3
- package/examples/security_deposit/security_deposit.hsx +0 -21
- package/examples/security_deposit/security_deposit.udl +0 -293
- package/examples/settlement_batch/README.md +0 -3
- package/examples/settlement_batch/settlement_batch.hsx +0 -19
- package/examples/settlement_batch/settlement_batch.udl +0 -753
- package/examples/swap/README.md +0 -3
- package/examples/swap/swap.hsx +0 -19
- package/examples/swap/swap.udl +0 -876
- package/examples/threshold_pool/README.md +0 -3
- package/examples/threshold_pool/threshold_pool.hsx +0 -16
- package/examples/threshold_pool/threshold_pool.udl +0 -667
- package/examples/weighted_distribution/README.md +0 -3
- package/examples/weighted_distribution/weighted_distribution.hsx +0 -20
- package/examples/weighted_distribution/weighted_distribution.udl +0 -337
- package/skills/hsx/SKILL.md +0 -483
- package/src/emit.ts +0 -201
- package/src/entry-overrides.ts +0 -428
- package/src/ir.ts +0 -99
- package/src/limits.ts +0 -20
- package/src/lsp/server.ts +0 -460
- package/src/modules.ts +0 -446
- package/src/typecheck.ts +0 -3876
- package/src/version.ts +0 -5
- package/std/SEMANTICS.md +0 -130
- package/std/settlements/advance.hsx +0 -177
- package/std/settlements/cancellable_booking.hsx +0 -87
- package/std/settlements/captured_payment.hsx +0 -144
- package/std/settlements/conditional_disbursement.hsx +0 -185
- package/std/settlements/credit_facility.hsx +0 -167
- package/std/settlements/held_payment.hsx +0 -578
- package/std/settlements/index.hsx +0 -3
- package/std/settlements/instant_transfer.hsx +0 -190
- package/std/settlements/metered.hsx +0 -67
- package/std/settlements/pooled_split.hsx +0 -68
- package/std/settlements/premium_forward.hsx +0 -257
- package/std/settlements/reconciled_payout.hsx +0 -77
- package/std/settlements/recurring_collection.hsx +0 -27
- package/std/settlements/rotating_pool.hsx +0 -252
- package/std/settlements/scheduled.hsx +0 -641
- package/std/settlements/security_deposit.hsx +0 -166
- package/std/settlements/settlement_batch.hsx +0 -122
- package/std/settlements/swap.hsx +0 -1114
- package/std/settlements/threshold_pool.hsx +0 -221
- package/std/settlements/weighted_distribution.hsx +0 -141
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"releaseRevision": "7c80d03cced6a85395be53cdcf30bd3269dbd5b6",
|
|
3
|
+
"tag": "v0.2.0",
|
|
4
|
+
"assets": [
|
|
5
|
+
{
|
|
6
|
+
"source": "assets/exports/hsx-horizontal.svg",
|
|
7
|
+
"destination": "hsx-horizontal.svg",
|
|
8
|
+
"sourceSha256": "4915004484e69ae25db996b82314fb575a31307f27e45dbd8057cd5fcc473243",
|
|
9
|
+
"destinationSha256": "4915004484e69ae25db996b82314fb575a31307f27e45dbd8057cd5fcc473243"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"source": "assets/exports/hsx-horizontal-white.svg",
|
|
13
|
+
"destination": "hsx-horizontal-white.svg",
|
|
14
|
+
"sourceSha256": "b30bdc6e4c718281df464b9713700480e6a807f3563466449fd2401d34d6e4a0",
|
|
15
|
+
"destinationSha256": "b30bdc6e4c718281df464b9713700480e6a807f3563466449fd2401d34d6e4a0"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"source": "assets/exports/hsx-stacked.svg",
|
|
19
|
+
"destination": "hsx-stacked.svg",
|
|
20
|
+
"sourceSha256": "0a20ee3bdf0a8dce2294702a9ad6ea1b4bc6701117ed87b34da5c22121304e94",
|
|
21
|
+
"destinationSha256": "0a20ee3bdf0a8dce2294702a9ad6ea1b4bc6701117ed87b34da5c22121304e94"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"source": "assets/exports/hsx-stacked-white.svg",
|
|
25
|
+
"destination": "hsx-stacked-white.svg",
|
|
26
|
+
"sourceSha256": "c25863b4716e224b29c91f9754e78d21b73720919bad38243eb6066b74f8f73d",
|
|
27
|
+
"destinationSha256": "c25863b4716e224b29c91f9754e78d21b73720919bad38243eb6066b74f8f73d"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="360" viewBox="0 0 1200 360" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Hyperscale™ HSX documentation</title>
|
|
3
|
+
<desc id="desc">Language, standard library and compiler.</desc>
|
|
4
|
+
<rect width="1200" height="360" fill="#ffffff"/>
|
|
5
|
+
<g fill="#171717" font-family="Arial, Helvetica, sans-serif">
|
|
6
|
+
<text x="48" y="62" font-size="20">Technical documentation</text>
|
|
7
|
+
<text x="48" y="280" font-size="28">Language, standard library and compiler</text>
|
|
8
|
+
</g>
|
|
9
|
+
<svg x="24" y="94" xmlns="http://www.w3.org/2000/svg" width="446.72" height="112" viewBox="0 0 446.72 112" color="#2d4bf2" fill="#171717" role="img" aria-label="Hyperscale HSX horizontal lockup"><g transform="translate(24 24) scale(2)" fill="none" stroke="#2d4bf2" stroke-width="0.8200000000000001" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3.5L28.5 9.75V22.25L16 28.5L3.5 22.25V9.75Z"/><path d="M3.5 9.75L16 16L28.5 9.75"/><path d="M16 16V28.5"/><path d="M16 5L24 9V17L16 21L8 17V9Z"/><path d="M8 9L16 13L24 9"/><path d="M16 13V21"/><path d="M16 7L20 9V13L16 15L12 13V9Z"/><path d="M12 9L16 11L20 9"/><path d="M16 11V15"/></g><g transform="translate(104 68)"><path transform="translate(0 0) scale(0.032 -0.032)" d="M91 0V707H148V372H578V707H635V0H578V321H148V0Z"/><path transform="translate(24.992 0) scale(0.032 -0.032)" d="M269 0V266L18 707H86L298 324L510 707H575L326 267V0Z"/><path transform="translate(45.728 0) scale(0.032 -0.032)" d="M91 0V707H329Q406 707 460.5 682.5Q515 658 544.0 607.0Q573 556 573 477Q573 399 538.5 347.5Q504 296 444.5 270.0Q385 244 310 244H148V0ZM148 295H307Q400 295 457.0 339.5Q514 384 514 481Q514 573 464.0 614.0Q414 655 324 655H148Z"/><path transform="translate(67.52 0) scale(0.032 -0.032)" d="M91 0V707H553V655H148V377H512V325H148V52H553V0Z"/><path transform="translate(88.64 0) scale(0.032 -0.032)" d="M91 0V707H351Q407 707 452.5 695.5Q498 684 530.5 659.0Q563 634 580.5 592.5Q598 551 598 492Q598 437 578.0 396.0Q558 355 520.0 328.0Q482 301 430 289L584 0H521L371 279H148V0ZM148 330H323Q365 330 404.0 336.5Q443 343 473.5 361.0Q504 379 521.5 411.5Q539 444 539 495Q540 557 514.5 592.0Q489 627 444.5 641.0Q400 655 341 655H148Z"/><path transform="translate(111.36 0) scale(0.032 -0.032)" d="M337 -8Q276 -8 219.5 8.0Q163 24 121.0 61.5Q79 99 61 161H123Q142 117 176.0 91.0Q210 65 252.5 53.5Q295 42 337 42Q384 42 427.0 56.5Q470 71 497.0 101.0Q524 131 524 180Q524 219 508.5 243.0Q493 267 466.5 281.5Q440 296 405 306Q379 314 352.0 320.5Q325 327 299.5 334.0Q274 341 251 349Q220 358 189.5 371.0Q159 384 135.5 404.0Q112 424 97.5 453.0Q83 482 83 524Q83 567 96.0 599.0Q109 631 133.0 653.0Q157 675 188.0 688.5Q219 702 254.5 708.5Q290 715 327 715Q384 715 433.5 699.0Q483 683 518.0 647.0Q553 611 562 550H504Q494 593 466.5 618.0Q439 643 402.0 654.0Q365 665 326 665Q295 665 263.0 658.5Q231 652 204.0 637.0Q177 622 160.0 596.5Q143 571 143 532Q143 493 159.5 468.0Q176 443 202.5 428.0Q229 413 262 402Q306 388 353.0 377.5Q400 367 442 353Q472 344 498.0 329.5Q524 315 543.0 295.0Q562 275 573.0 249.5Q584 224 584 192Q584 137 563.5 99.0Q543 61 508.0 37.0Q473 13 429.0 2.5Q385 -8 337 -8Z"/><path transform="translate(133.792 0) scale(0.032 -0.032)" d="M375 -8Q265 -8 193.5 39.0Q122 86 87.0 167.5Q52 249 52 353Q52 456 87.5 537.5Q123 619 195.5 667.0Q268 715 378 715Q442 715 495.5 696.0Q549 677 586.5 640.0Q624 603 642 546H583Q559 605 504.5 635.0Q450 665 379 665Q286 665 226.5 622.0Q167 579 138.5 509.0Q110 439 110 355Q110 271 138.0 199.5Q166 128 225.5 85.0Q285 42 377 42Q423 42 466.0 55.0Q509 68 542.0 95.0Q575 122 590 161H655Q635 106 593.5 68.0Q552 30 496.0 11.0Q440 -8 375 -8Z"/><path transform="translate(157.984 0) scale(0.032 -0.032)" d="M14 0 287 707H360L635 0H571L509 159H138L77 0ZM157 210H490L324 648Z"/><path transform="translate(180.512 0) scale(0.032 -0.032)" d="M91 0V707H148V52H553V0Z"/><path transform="translate(200.512 0) scale(0.032 -0.032)" d="M91 0V707H553V655H148V377H512V325H148V52H553V0Z"/><path transform="translate(222.432 -7.68) scale(0.024 -0.024)" d="M318 445V707H414L466 592L518 707H613V445H550V643L484 499H447L381 643V445ZM144 445V648H59V707H294V648H208V445Z"/><g transform="translate(254.56 0)"><path transform="translate(0 0) scale(0.032 -0.032)" d="M83 0V707H189V396H543V707H649V0H543V299H189V0Z"/><path transform="translate(23.424 0) scale(0.032 -0.032)" d="M342 -8Q273 -8 212.0 12.0Q151 32 109.0 77.0Q67 122 53 196H162Q175 154 204.0 130.5Q233 107 271.5 98.0Q310 89 349 89Q386 89 418.5 99.0Q451 109 472.0 132.0Q493 155 493 192Q493 220 482.0 238.0Q471 256 451.5 267.5Q432 279 405 286Q374 296 338.5 303.0Q303 310 268.5 319.0Q234 328 204 342Q179 352 155.5 366.5Q132 381 115.0 401.5Q98 422 87.5 450.0Q77 478 77 514Q77 562 92.5 596.0Q108 630 133.5 653.0Q159 676 192.5 689.5Q226 703 263.0 709.0Q300 715 335 715Q399 715 453.0 695.0Q507 675 542.5 631.5Q578 588 581 517H478Q474 555 452.5 577.5Q431 600 399.0 609.5Q367 619 331 619Q305 619 279.0 614.5Q253 610 231.5 598.5Q210 587 197.5 568.0Q185 549 185 521Q185 497 195.0 478.5Q205 460 223.5 447.5Q242 435 265 426Q307 410 357.0 401.5Q407 393 451 378Q483 368 511.0 353.5Q539 339 559.0 318.5Q579 298 590.0 270.5Q601 243 601 207Q601 148 580.0 106.5Q559 65 523.0 40.0Q487 15 440.0 3.5Q393 -8 342 -8Z"/><path transform="translate(44.384 0) scale(0.032 -0.032)" d="M11 0 243 353 18 707H147L310 437L473 707H599L375 356L607 0H479L308 271L134 0Z"/></g></g></svg>
|
|
10
|
+
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// A company issues expense cards to employees and reserves each supplier payment before capture.
|
|
2
|
+
program team_expense_cards "Team expense cards"
|
|
3
|
+
use cards
|
|
4
|
+
party supplier: business
|
|
5
|
+
|
|
6
|
+
object employee "Employee card" {
|
|
7
|
+
fields { employeeName: text, department: text }
|
|
8
|
+
columns: [employeeName, department]
|
|
9
|
+
attach holder = cards.cardholder {
|
|
10
|
+
expose create as create_holder
|
|
11
|
+
holder: owner
|
|
12
|
+
expose activate as activate_employee
|
|
13
|
+
expose suspend as suspend_employee
|
|
14
|
+
}
|
|
15
|
+
attach card = cards.card {
|
|
16
|
+
expose create as create_card
|
|
17
|
+
holder: holder, spend_limit: 5000 SAR
|
|
18
|
+
expose activate as activate_card
|
|
19
|
+
expose freeze as freeze_card
|
|
20
|
+
expose unfreeze as unfreeze_card
|
|
21
|
+
}
|
|
22
|
+
attach payment = cards.authorization {
|
|
23
|
+
expose create as create_payment
|
|
24
|
+
card: card, merchant: supplier
|
|
25
|
+
expose approve as approve_payment
|
|
26
|
+
expose capture as capture_payment
|
|
27
|
+
expose reverse as reverse_payment
|
|
28
|
+
}
|
|
29
|
+
attach receipt = cards.transaction {
|
|
30
|
+
expose create as create_receipt
|
|
31
|
+
authorization: payment
|
|
32
|
+
expose refund as refund_payment
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// A business lender refers overdue instalments to an agency with limits on collection contacts.
|
|
2
|
+
program business_collections "Small business collections"
|
|
3
|
+
use collections
|
|
4
|
+
use financing
|
|
5
|
+
party agency: business
|
|
6
|
+
|
|
7
|
+
object facility "Business loan" {
|
|
8
|
+
fields { businessName: text, purpose: text, price: money }
|
|
9
|
+
columns: [businessName, purpose, price]
|
|
10
|
+
attach allowance = financing.limits { expose create as create_allowance, expose approve as approve_borrower, borrower: owner, per_borrower: 100000 SAR }
|
|
11
|
+
attach budget = financing.portfolio_limit { expose create as create_budget, expose approve as approve_budget, limit: 2000000 SAR }
|
|
12
|
+
attach loan = financing.installments {
|
|
13
|
+
expose create as create_loan
|
|
14
|
+
borrower: owner, capital: operator
|
|
15
|
+
months: 12, profit: 6%, disburse_to: borrower
|
|
16
|
+
limits: allowance, portfolio: budget
|
|
17
|
+
expose sign as sign_loan
|
|
18
|
+
expose disburse as release_loan
|
|
19
|
+
expose payoff as repay_early
|
|
20
|
+
}
|
|
21
|
+
attach recovery = collections.case {
|
|
22
|
+
expose create as create_recovery
|
|
23
|
+
on: loan, agency: agency
|
|
24
|
+
expose assign as assign_case
|
|
25
|
+
expose recover as recover_payment
|
|
26
|
+
expose recall as recall_case
|
|
27
|
+
}
|
|
28
|
+
attach contact = collections.contact {
|
|
29
|
+
expose create as create_contact
|
|
30
|
+
case: recovery, agency: agency
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
expose facility.loan.payment.create as create_payment
|
|
35
|
+
expose facility.loan.payment.pay as pay_instalment
|
|
36
|
+
expose facility.loan.payment.refund as refund_payment
|
|
37
|
+
expose facility.loan.payoff_quote.create as request_payoff_quote
|