@cratis/showrunner.boxoffice 0.0.0-stage → 1.9.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/Compute/ComputeLimits.ts +66 -0
- package/Compute/MeterLimit.ts +30 -0
- package/Compute/MeterStanding.ts +250 -0
- package/Compute/SetBudget/SetComputeBudget.ts +78 -0
- package/Compute/SetBudget/index.ts +4 -0
- package/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.ts +85 -0
- package/Compute/SetConcurrencyLimit/index.ts +4 -0
- package/Compute/index.ts +5 -0
- package/Contracts/Compute/AllowancePeriod.ts +12 -0
- package/Contracts/Compute/OverageBehavior.ts +12 -0
- package/Contracts/Compute/index.ts +5 -0
- package/Contracts/Offers/BillingInterval.ts +12 -0
- package/Contracts/Offers/OfferPrice.ts +31 -0
- package/Contracts/Offers/index.ts +5 -0
- package/Contracts/People/Person.ts +36 -0
- package/Contracts/People/index.ts +4 -0
- package/Contracts/Tenants/SuspensionCause.ts +13 -0
- package/Contracts/Tenants/index.ts +4 -0
- package/Entitlements/EntitlementSummary.ts +97 -0
- package/Entitlements/ModuleAccess.ts +14 -0
- package/Entitlements/ModuleStanding.ts +38 -0
- package/Entitlements/ReadOnlyReason.ts +13 -0
- package/Entitlements/TenantStanding.ts +85 -0
- package/Entitlements/index.ts +7 -0
- package/Offers/Offer.ts +174 -0
- package/Offers/index.ts +4 -0
- package/Portal/PortalIntent.ts +13 -0
- package/Portal/PortalLink.ts +82 -0
- package/Portal/index.ts +5 -0
- package/README.md +71 -2
- package/Seats/AssignSeat/AssignSeat.ts +61 -0
- package/Seats/AssignSeat/index.ts +4 -0
- package/Seats/ReleaseSeat/ReleaseSeat.ts +61 -0
- package/Seats/ReleaseSeat/index.ts +4 -0
- package/Seats/SeatHolder.ts +24 -0
- package/Seats/SeatHolding.ts +25 -0
- package/Seats/SeatRoster.ts +72 -0
- package/Seats/SeatStanding.ts +79 -0
- package/Seats/SeatStatus.ts +13 -0
- package/Seats/index.ts +8 -0
- package/dist/cjs/Compute/ComputeLimits.d.ts +23 -0
- package/dist/cjs/Compute/ComputeLimits.d.ts.map +1 -0
- package/dist/cjs/Compute/ComputeLimits.js +74 -0
- package/dist/cjs/Compute/ComputeLimits.js.map +1 -0
- package/dist/cjs/Compute/MeterLimit.d.ts +6 -0
- package/dist/cjs/Compute/MeterLimit.d.ts.map +1 -0
- package/dist/cjs/Compute/MeterLimit.js +50 -0
- package/dist/cjs/Compute/MeterLimit.js.map +1 -0
- package/dist/cjs/Compute/MeterStanding.d.ts +91 -0
- package/dist/cjs/Compute/MeterStanding.d.ts.map +1 -0
- package/dist/cjs/Compute/MeterStanding.js +260 -0
- package/dist/cjs/Compute/MeterStanding.js.map +1 -0
- package/dist/cjs/Compute/SetBudget/SetComputeBudget.d.ts +23 -0
- package/dist/cjs/Compute/SetBudget/SetComputeBudget.d.ts.map +1 -0
- package/dist/cjs/Compute/SetBudget/SetComputeBudget.js +54 -0
- package/dist/cjs/Compute/SetBudget/SetComputeBudget.js.map +1 -0
- package/dist/cjs/Compute/SetBudget/index.d.ts +2 -0
- package/dist/cjs/Compute/SetBudget/index.d.ts.map +1 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.d.ts +27 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.d.ts.map +1 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.js +62 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.js.map +1 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/index.d.ts +2 -0
- package/dist/cjs/Compute/SetConcurrencyLimit/index.d.ts.map +1 -0
- package/dist/cjs/Compute/index.d.ts +4 -0
- package/dist/cjs/Compute/index.d.ts.map +1 -0
- package/dist/cjs/Contracts/Compute/AllowancePeriod.d.ts +5 -0
- package/dist/cjs/Contracts/Compute/AllowancePeriod.d.ts.map +1 -0
- package/dist/cjs/Contracts/Compute/AllowancePeriod.js +16 -0
- package/dist/cjs/Contracts/Compute/AllowancePeriod.js.map +1 -0
- package/dist/cjs/Contracts/Compute/OverageBehavior.d.ts +5 -0
- package/dist/cjs/Contracts/Compute/OverageBehavior.d.ts.map +1 -0
- package/dist/cjs/Contracts/Compute/OverageBehavior.js +16 -0
- package/dist/cjs/Contracts/Compute/OverageBehavior.js.map +1 -0
- package/dist/cjs/Contracts/Compute/index.d.ts +3 -0
- package/dist/cjs/Contracts/Compute/index.d.ts.map +1 -0
- package/dist/cjs/Contracts/Offers/BillingInterval.d.ts +5 -0
- package/dist/cjs/Contracts/Offers/BillingInterval.d.ts.map +1 -0
- package/dist/cjs/Contracts/Offers/BillingInterval.js +16 -0
- package/dist/cjs/Contracts/Offers/BillingInterval.js.map +1 -0
- package/dist/cjs/Contracts/Offers/OfferPrice.d.ts +7 -0
- package/dist/cjs/Contracts/Offers/OfferPrice.d.ts.map +1 -0
- package/dist/cjs/Contracts/Offers/OfferPrice.js +51 -0
- package/dist/cjs/Contracts/Offers/OfferPrice.js.map +1 -0
- package/dist/cjs/Contracts/Offers/index.d.ts +3 -0
- package/dist/cjs/Contracts/Offers/index.d.ts.map +1 -0
- package/dist/cjs/Contracts/People/Person.d.ts +7 -0
- package/dist/cjs/Contracts/People/Person.d.ts.map +1 -0
- package/dist/cjs/Contracts/People/Person.js +57 -0
- package/dist/cjs/Contracts/People/Person.js.map +1 -0
- package/dist/cjs/Contracts/People/index.d.ts +2 -0
- package/dist/cjs/Contracts/People/index.d.ts.map +1 -0
- package/dist/cjs/Contracts/Tenants/SuspensionCause.d.ts +6 -0
- package/dist/cjs/Contracts/Tenants/SuspensionCause.d.ts.map +1 -0
- package/dist/cjs/Contracts/Tenants/SuspensionCause.js +17 -0
- package/dist/cjs/Contracts/Tenants/SuspensionCause.js.map +1 -0
- package/dist/cjs/Contracts/Tenants/index.d.ts +2 -0
- package/dist/cjs/Contracts/Tenants/index.d.ts.map +1 -0
- package/dist/cjs/Entitlements/EntitlementSummary.d.ts +30 -0
- package/dist/cjs/Entitlements/EntitlementSummary.d.ts.map +1 -0
- package/dist/cjs/Entitlements/EntitlementSummary.js +110 -0
- package/dist/cjs/Entitlements/EntitlementSummary.js.map +1 -0
- package/dist/cjs/Entitlements/ModuleAccess.d.ts +7 -0
- package/dist/cjs/Entitlements/ModuleAccess.d.ts.map +1 -0
- package/dist/cjs/Entitlements/ModuleAccess.js +18 -0
- package/dist/cjs/Entitlements/ModuleAccess.js.map +1 -0
- package/dist/cjs/Entitlements/ModuleStanding.d.ts +9 -0
- package/dist/cjs/Entitlements/ModuleStanding.d.ts.map +1 -0
- package/dist/cjs/Entitlements/ModuleStanding.js +58 -0
- package/dist/cjs/Entitlements/ModuleStanding.js.map +1 -0
- package/dist/cjs/Entitlements/ReadOnlyReason.d.ts +6 -0
- package/dist/cjs/Entitlements/ReadOnlyReason.d.ts.map +1 -0
- package/dist/cjs/Entitlements/ReadOnlyReason.js +17 -0
- package/dist/cjs/Entitlements/ReadOnlyReason.js.map +1 -0
- package/dist/cjs/Entitlements/TenantStanding.d.ts +27 -0
- package/dist/cjs/Entitlements/TenantStanding.d.ts.map +1 -0
- package/dist/cjs/Entitlements/TenantStanding.js +96 -0
- package/dist/cjs/Entitlements/TenantStanding.js.map +1 -0
- package/dist/cjs/Entitlements/index.d.ts +6 -0
- package/dist/cjs/Entitlements/index.d.ts.map +1 -0
- package/dist/cjs/Offers/Offer.d.ts +65 -0
- package/dist/cjs/Offers/Offer.d.ts.map +1 -0
- package/dist/cjs/Offers/Offer.js +179 -0
- package/dist/cjs/Offers/Offer.js.map +1 -0
- package/dist/cjs/Offers/index.d.ts +2 -0
- package/dist/cjs/Offers/index.d.ts.map +1 -0
- package/dist/cjs/Portal/PortalIntent.d.ts +6 -0
- package/dist/cjs/Portal/PortalIntent.d.ts.map +1 -0
- package/dist/cjs/Portal/PortalIntent.js +17 -0
- package/dist/cjs/Portal/PortalIntent.js.map +1 -0
- package/dist/cjs/Portal/PortalLink.d.ts +29 -0
- package/dist/cjs/Portal/PortalLink.d.ts.map +1 -0
- package/dist/cjs/Portal/PortalLink.js +73 -0
- package/dist/cjs/Portal/PortalLink.js.map +1 -0
- package/dist/cjs/Portal/index.d.ts +3 -0
- package/dist/cjs/Portal/index.d.ts.map +1 -0
- package/dist/cjs/Seats/AssignSeat/AssignSeat.d.ts +21 -0
- package/dist/cjs/Seats/AssignSeat/AssignSeat.d.ts.map +1 -0
- package/dist/cjs/Seats/AssignSeat/AssignSeat.js +44 -0
- package/dist/cjs/Seats/AssignSeat/AssignSeat.js.map +1 -0
- package/dist/cjs/Seats/AssignSeat/index.d.ts +2 -0
- package/dist/cjs/Seats/AssignSeat/index.d.ts.map +1 -0
- package/dist/cjs/Seats/ReleaseSeat/ReleaseSeat.d.ts +21 -0
- package/dist/cjs/Seats/ReleaseSeat/ReleaseSeat.d.ts.map +1 -0
- package/dist/cjs/Seats/ReleaseSeat/ReleaseSeat.js +44 -0
- package/dist/cjs/Seats/ReleaseSeat/ReleaseSeat.js.map +1 -0
- package/dist/cjs/Seats/ReleaseSeat/index.d.ts +2 -0
- package/dist/cjs/Seats/ReleaseSeat/index.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatHolder.d.ts +5 -0
- package/dist/cjs/Seats/SeatHolder.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatHolder.js +43 -0
- package/dist/cjs/Seats/SeatHolder.js.map +1 -0
- package/dist/cjs/Seats/SeatHolding.d.ts +6 -0
- package/dist/cjs/Seats/SeatHolding.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatHolding.js +44 -0
- package/dist/cjs/Seats/SeatHolding.js.map +1 -0
- package/dist/cjs/Seats/SeatRoster.d.ts +24 -0
- package/dist/cjs/Seats/SeatRoster.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatRoster.js +81 -0
- package/dist/cjs/Seats/SeatRoster.js.map +1 -0
- package/dist/cjs/Seats/SeatStanding.d.ts +26 -0
- package/dist/cjs/Seats/SeatStanding.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatStanding.js +89 -0
- package/dist/cjs/Seats/SeatStanding.js.map +1 -0
- package/dist/cjs/Seats/SeatStatus.d.ts +6 -0
- package/dist/cjs/Seats/SeatStatus.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatStatus.js +17 -0
- package/dist/cjs/Seats/SeatStatus.js.map +1 -0
- package/dist/cjs/Seats/index.d.ts +6 -0
- package/dist/cjs/Seats/index.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +14 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +67 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/esm/Compute/ComputeLimits.d.ts +23 -0
- package/dist/esm/Compute/ComputeLimits.d.ts.map +1 -0
- package/dist/esm/Compute/ComputeLimits.js +71 -0
- package/dist/esm/Compute/ComputeLimits.js.map +1 -0
- package/dist/esm/Compute/MeterLimit.d.ts +6 -0
- package/dist/esm/Compute/MeterLimit.d.ts.map +1 -0
- package/dist/esm/Compute/MeterLimit.js +48 -0
- package/dist/esm/Compute/MeterLimit.js.map +1 -0
- package/dist/esm/Compute/MeterStanding.d.ts +91 -0
- package/dist/esm/Compute/MeterStanding.d.ts.map +1 -0
- package/dist/esm/Compute/MeterStanding.js +257 -0
- package/dist/esm/Compute/MeterStanding.js.map +1 -0
- package/dist/esm/Compute/SetBudget/SetComputeBudget.d.ts +23 -0
- package/dist/esm/Compute/SetBudget/SetComputeBudget.d.ts.map +1 -0
- package/dist/esm/Compute/SetBudget/SetComputeBudget.js +52 -0
- package/dist/esm/Compute/SetBudget/SetComputeBudget.js.map +1 -0
- package/dist/esm/Compute/SetBudget/index.d.ts +2 -0
- package/dist/esm/Compute/SetBudget/index.d.ts.map +1 -0
- package/dist/esm/Compute/SetBudget/index.js +2 -0
- package/dist/esm/Compute/SetBudget/index.js.map +1 -0
- package/dist/esm/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.d.ts +27 -0
- package/dist/esm/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.d.ts.map +1 -0
- package/dist/esm/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.js +59 -0
- package/dist/esm/Compute/SetConcurrencyLimit/SetComputeConcurrencyLimit.js.map +1 -0
- package/dist/esm/Compute/SetConcurrencyLimit/index.d.ts +2 -0
- package/dist/esm/Compute/SetConcurrencyLimit/index.d.ts.map +1 -0
- package/dist/esm/Compute/SetConcurrencyLimit/index.js +2 -0
- package/dist/esm/Compute/SetConcurrencyLimit/index.js.map +1 -0
- package/dist/esm/Compute/index.d.ts +4 -0
- package/dist/esm/Compute/index.d.ts.map +1 -0
- package/dist/esm/Compute/index.js +4 -0
- package/dist/esm/Compute/index.js.map +1 -0
- package/dist/esm/Contracts/Compute/AllowancePeriod.d.ts +5 -0
- package/dist/esm/Contracts/Compute/AllowancePeriod.d.ts.map +1 -0
- package/dist/esm/Contracts/Compute/AllowancePeriod.js +14 -0
- package/dist/esm/Contracts/Compute/AllowancePeriod.js.map +1 -0
- package/dist/esm/Contracts/Compute/OverageBehavior.d.ts +5 -0
- package/dist/esm/Contracts/Compute/OverageBehavior.d.ts.map +1 -0
- package/dist/esm/Contracts/Compute/OverageBehavior.js +14 -0
- package/dist/esm/Contracts/Compute/OverageBehavior.js.map +1 -0
- package/dist/esm/Contracts/Compute/index.d.ts +3 -0
- package/dist/esm/Contracts/Compute/index.d.ts.map +1 -0
- package/dist/esm/Contracts/Compute/index.js +3 -0
- package/dist/esm/Contracts/Compute/index.js.map +1 -0
- package/dist/esm/Contracts/Offers/BillingInterval.d.ts +5 -0
- package/dist/esm/Contracts/Offers/BillingInterval.d.ts.map +1 -0
- package/dist/esm/Contracts/Offers/BillingInterval.js +14 -0
- package/dist/esm/Contracts/Offers/BillingInterval.js.map +1 -0
- package/dist/esm/Contracts/Offers/OfferPrice.d.ts +7 -0
- package/dist/esm/Contracts/Offers/OfferPrice.d.ts.map +1 -0
- package/dist/esm/Contracts/Offers/OfferPrice.js +49 -0
- package/dist/esm/Contracts/Offers/OfferPrice.js.map +1 -0
- package/dist/esm/Contracts/Offers/index.d.ts +3 -0
- package/dist/esm/Contracts/Offers/index.d.ts.map +1 -0
- package/dist/esm/Contracts/Offers/index.js +3 -0
- package/dist/esm/Contracts/Offers/index.js.map +1 -0
- package/dist/esm/Contracts/People/Person.d.ts +7 -0
- package/dist/esm/Contracts/People/Person.d.ts.map +1 -0
- package/dist/esm/Contracts/People/Person.js +55 -0
- package/dist/esm/Contracts/People/Person.js.map +1 -0
- package/dist/esm/Contracts/People/index.d.ts +2 -0
- package/dist/esm/Contracts/People/index.d.ts.map +1 -0
- package/dist/esm/Contracts/People/index.js +2 -0
- package/dist/esm/Contracts/People/index.js.map +1 -0
- package/dist/esm/Contracts/Tenants/SuspensionCause.d.ts +6 -0
- package/dist/esm/Contracts/Tenants/SuspensionCause.d.ts.map +1 -0
- package/dist/esm/Contracts/Tenants/SuspensionCause.js +15 -0
- package/dist/esm/Contracts/Tenants/SuspensionCause.js.map +1 -0
- package/dist/esm/Contracts/Tenants/index.d.ts +2 -0
- package/dist/esm/Contracts/Tenants/index.d.ts.map +1 -0
- package/dist/esm/Contracts/Tenants/index.js +2 -0
- package/dist/esm/Contracts/Tenants/index.js.map +1 -0
- package/dist/esm/Entitlements/EntitlementSummary.d.ts +30 -0
- package/dist/esm/Entitlements/EntitlementSummary.d.ts.map +1 -0
- package/dist/esm/Entitlements/EntitlementSummary.js +107 -0
- package/dist/esm/Entitlements/EntitlementSummary.js.map +1 -0
- package/dist/esm/Entitlements/ModuleAccess.d.ts +7 -0
- package/dist/esm/Entitlements/ModuleAccess.d.ts.map +1 -0
- package/dist/esm/Entitlements/ModuleAccess.js +16 -0
- package/dist/esm/Entitlements/ModuleAccess.js.map +1 -0
- package/dist/esm/Entitlements/ModuleStanding.d.ts +9 -0
- package/dist/esm/Entitlements/ModuleStanding.d.ts.map +1 -0
- package/dist/esm/Entitlements/ModuleStanding.js +56 -0
- package/dist/esm/Entitlements/ModuleStanding.js.map +1 -0
- package/dist/esm/Entitlements/ReadOnlyReason.d.ts +6 -0
- package/dist/esm/Entitlements/ReadOnlyReason.d.ts.map +1 -0
- package/dist/esm/Entitlements/ReadOnlyReason.js +15 -0
- package/dist/esm/Entitlements/ReadOnlyReason.js.map +1 -0
- package/dist/esm/Entitlements/TenantStanding.d.ts +27 -0
- package/dist/esm/Entitlements/TenantStanding.d.ts.map +1 -0
- package/dist/esm/Entitlements/TenantStanding.js +93 -0
- package/dist/esm/Entitlements/TenantStanding.js.map +1 -0
- package/dist/esm/Entitlements/index.d.ts +6 -0
- package/dist/esm/Entitlements/index.d.ts.map +1 -0
- package/dist/esm/Entitlements/index.js +6 -0
- package/dist/esm/Entitlements/index.js.map +1 -0
- package/dist/esm/Offers/Offer.d.ts +65 -0
- package/dist/esm/Offers/Offer.d.ts.map +1 -0
- package/dist/esm/Offers/Offer.js +176 -0
- package/dist/esm/Offers/Offer.js.map +1 -0
- package/dist/esm/Offers/index.d.ts +2 -0
- package/dist/esm/Offers/index.d.ts.map +1 -0
- package/dist/esm/Offers/index.js +2 -0
- package/dist/esm/Offers/index.js.map +1 -0
- package/dist/esm/Portal/PortalIntent.d.ts +6 -0
- package/dist/esm/Portal/PortalIntent.d.ts.map +1 -0
- package/dist/esm/Portal/PortalIntent.js +15 -0
- package/dist/esm/Portal/PortalIntent.js.map +1 -0
- package/dist/esm/Portal/PortalLink.d.ts +29 -0
- package/dist/esm/Portal/PortalLink.d.ts.map +1 -0
- package/dist/esm/Portal/PortalLink.js +70 -0
- package/dist/esm/Portal/PortalLink.js.map +1 -0
- package/dist/esm/Portal/index.d.ts +3 -0
- package/dist/esm/Portal/index.d.ts.map +1 -0
- package/dist/esm/Portal/index.js +3 -0
- package/dist/esm/Portal/index.js.map +1 -0
- package/dist/esm/Seats/AssignSeat/AssignSeat.d.ts +21 -0
- package/dist/esm/Seats/AssignSeat/AssignSeat.d.ts.map +1 -0
- package/dist/esm/Seats/AssignSeat/AssignSeat.js +42 -0
- package/dist/esm/Seats/AssignSeat/AssignSeat.js.map +1 -0
- package/dist/esm/Seats/AssignSeat/index.d.ts +2 -0
- package/dist/esm/Seats/AssignSeat/index.d.ts.map +1 -0
- package/dist/esm/Seats/AssignSeat/index.js +2 -0
- package/dist/esm/Seats/AssignSeat/index.js.map +1 -0
- package/dist/esm/Seats/ReleaseSeat/ReleaseSeat.d.ts +21 -0
- package/dist/esm/Seats/ReleaseSeat/ReleaseSeat.d.ts.map +1 -0
- package/dist/esm/Seats/ReleaseSeat/ReleaseSeat.js +42 -0
- package/dist/esm/Seats/ReleaseSeat/ReleaseSeat.js.map +1 -0
- package/dist/esm/Seats/ReleaseSeat/index.d.ts +2 -0
- package/dist/esm/Seats/ReleaseSeat/index.d.ts.map +1 -0
- package/dist/esm/Seats/ReleaseSeat/index.js +2 -0
- package/dist/esm/Seats/ReleaseSeat/index.js.map +1 -0
- package/dist/esm/Seats/SeatHolder.d.ts +5 -0
- package/dist/esm/Seats/SeatHolder.d.ts.map +1 -0
- package/dist/esm/Seats/SeatHolder.js +41 -0
- package/dist/esm/Seats/SeatHolder.js.map +1 -0
- package/dist/esm/Seats/SeatHolding.d.ts +6 -0
- package/dist/esm/Seats/SeatHolding.d.ts.map +1 -0
- package/dist/esm/Seats/SeatHolding.js +42 -0
- package/dist/esm/Seats/SeatHolding.js.map +1 -0
- package/dist/esm/Seats/SeatRoster.d.ts +24 -0
- package/dist/esm/Seats/SeatRoster.d.ts.map +1 -0
- package/dist/esm/Seats/SeatRoster.js +78 -0
- package/dist/esm/Seats/SeatRoster.js.map +1 -0
- package/dist/esm/Seats/SeatStanding.d.ts +26 -0
- package/dist/esm/Seats/SeatStanding.d.ts.map +1 -0
- package/dist/esm/Seats/SeatStanding.js +86 -0
- package/dist/esm/Seats/SeatStanding.js.map +1 -0
- package/dist/esm/Seats/SeatStatus.d.ts +6 -0
- package/dist/esm/Seats/SeatStatus.d.ts.map +1 -0
- package/dist/esm/Seats/SeatStatus.js +15 -0
- package/dist/esm/Seats/SeatStatus.js.map +1 -0
- package/dist/esm/Seats/index.d.ts +6 -0
- package/dist/esm/Seats/index.d.ts.map +1 -0
- package/dist/esm/Seats/index.js +6 -0
- package/dist/esm/Seats/index.js.map +1 -0
- package/dist/esm/index.d.ts +14 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +27 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/index.ts +16 -0
- package/package.json +69 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Entitlements.EntitlementSummary, Cratis.Showrunner.BoxOffice.Entitlements.EntitlementSummary. Time: 2026-10-31T13:17:43.2153370Z. Hash: ECB663150DECD739E0E5AC4A29386C0D52C6614A2ADFD4A2D7A89C540FBF3F8D
|
|
6
|
+
import { QueryFor, QueryResultWithState } from '@cratis/arc/queries';
|
|
7
|
+
import { PerformQuery, QueryWhen, SetSorting, useQuery, useSuspenseQuery } from '@cratis/arc.react/queries';
|
|
8
|
+
import { SliceLocation as ArcSliceLocation, ParameterDescriptor } from '@cratis/arc/reflection';
|
|
9
|
+
import { DateOnly, field } from '@cratis/fundamentals';
|
|
10
|
+
import { ModuleStanding } from './ModuleStanding';
|
|
11
|
+
import { ReadOnlyReason } from './ReadOnlyReason';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Gets what the tenant may do today.
|
|
15
|
+
*/
|
|
16
|
+
export class CurrentEntitlements extends QueryFor<EntitlementSummary> {
|
|
17
|
+
static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', '', 'Entitlements');
|
|
18
|
+
readonly route: string = '/api/entitlements/current-entitlements';
|
|
19
|
+
readonly queryName: string = 'Cratis.Showrunner.BoxOffice.Entitlements.EntitlementSummary.CurrentEntitlements';
|
|
20
|
+
readonly treatWarningsAsErrors: boolean = false;
|
|
21
|
+
readonly roles: string[] = [];
|
|
22
|
+
readonly defaultValue: EntitlementSummary = {} as EntitlementSummary;
|
|
23
|
+
|
|
24
|
+
constructor() {
|
|
25
|
+
super(EntitlementSummary, false);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
get requiredRequestParameters(): string[] {
|
|
29
|
+
return [
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
static use(): [QueryResultWithState<EntitlementSummary>, PerformQuery, SetSorting] {
|
|
39
|
+
return useQuery<EntitlementSummary, CurrentEntitlements>(CurrentEntitlements);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static useSuspense(): [QueryResultWithState<EntitlementSummary>, PerformQuery, SetSorting] {
|
|
43
|
+
return useSuspenseQuery<EntitlementSummary, CurrentEntitlements>(CurrentEntitlements);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static when(condition: boolean): QueryWhen<CurrentEntitlements, EntitlementSummary> {
|
|
47
|
+
return new QueryWhen<CurrentEntitlements, EntitlementSummary>(CurrentEntitlements, condition);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* What the signed-in user's tenant may do today, in one answer for the product's frontend: whether it is read-only and why, whether it is on a trial, how many seats it has and which modules it may use.
|
|
53
|
+
*/
|
|
54
|
+
export class EntitlementSummary {
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Why the tenant is read-only; none when it is not.
|
|
58
|
+
*/
|
|
59
|
+
@field(Number)
|
|
60
|
+
readOnlyReason!: ReadOnlyReason;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Whether the tenant's seats come from a trial, closed or not.
|
|
64
|
+
*/
|
|
65
|
+
@field(Boolean)
|
|
66
|
+
isTrial!: boolean;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The last day of the trial; nothing when the tenant has no trial.
|
|
70
|
+
*/
|
|
71
|
+
@field(DateOnly)
|
|
72
|
+
trialEnds?: DateOnly;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* How many seats the tenant has today.
|
|
76
|
+
*/
|
|
77
|
+
@field(Number)
|
|
78
|
+
seats!: number;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The last day of the seats; nothing when they do not end, or the tenant has none.
|
|
82
|
+
*/
|
|
83
|
+
@field(DateOnly)
|
|
84
|
+
seatsUntil?: DateOnly;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Every module the product declares, and what the tenant may do with it.
|
|
88
|
+
*/
|
|
89
|
+
@field(ModuleStanding, true)
|
|
90
|
+
modules!: ModuleStanding[];
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Whether the product has a customer portal to buy, try or change a plan in.
|
|
94
|
+
*/
|
|
95
|
+
@field(Boolean)
|
|
96
|
+
canOpenPortal!: boolean;
|
|
97
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Entitlements.ModuleAccess. Time: 2026-10-31T13:15:32.0616230Z. Hash: 7AC29B38D5DB79BF0A96644F28667E173A5E5F29474D3956D58397874D058DAB
|
|
6
|
+
/**
|
|
7
|
+
* What a tenant may do with a module.
|
|
8
|
+
*/
|
|
9
|
+
export enum ModuleAccess {
|
|
10
|
+
none = 0,
|
|
11
|
+
preview = 1,
|
|
12
|
+
trial = 2,
|
|
13
|
+
full = 3,
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Entitlements.ModuleStanding. Time: 2026-10-31T13:15:32.0616230Z. Hash: AC82AA9D30DD5B3F9F50F57386FAD3049F9E833C9081B68BC24240402F1182EB
|
|
6
|
+
import { field } from '@cratis/fundamentals';
|
|
7
|
+
import { DateOnly } from '@cratis/fundamentals';
|
|
8
|
+
import { ModuleAccess } from './ModuleAccess';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* What the tenant may do with one of the product's modules today.
|
|
12
|
+
*/
|
|
13
|
+
export class ModuleStanding {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The module.
|
|
17
|
+
*/
|
|
18
|
+
@field(String)
|
|
19
|
+
module!: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* What the module is called.
|
|
23
|
+
*/
|
|
24
|
+
@field(String)
|
|
25
|
+
name!: string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The access the tenant has today.
|
|
29
|
+
*/
|
|
30
|
+
@field(Number)
|
|
31
|
+
access!: ModuleAccess;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The last day of the access; nothing when the access does not end or the tenant has none.
|
|
35
|
+
*/
|
|
36
|
+
@field(DateOnly)
|
|
37
|
+
until?: DateOnly;
|
|
38
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Entitlements.ReadOnlyReason. Time: 2026-10-31T09:02:25.7507330Z. Hash: 545AD208A4AD0B46C09AC8C3CE544537E721921BD400CB82EE8B2253561C8E9D
|
|
6
|
+
/**
|
|
7
|
+
* Why a tenant can read but not change anything.
|
|
8
|
+
*/
|
|
9
|
+
export enum ReadOnlyReason {
|
|
10
|
+
none = 0,
|
|
11
|
+
tenantSuspended = 1,
|
|
12
|
+
trialClosed = 2,
|
|
13
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Entitlements.TenantStanding, Cratis.Showrunner.BoxOffice.Entitlements.TenantStanding. Time: 2026-10-31T09:02:25.7507330Z. Hash: 9F7FF02F16AC433A673F260D47C431082557136B3BEB973B6ED7B81A178AD861
|
|
6
|
+
import { QueryFor, QueryResultWithState } from '@cratis/arc/queries';
|
|
7
|
+
import { PerformQuery, QueryWhen, SetSorting, useQuery, useSuspenseQuery } from '@cratis/arc.react/queries';
|
|
8
|
+
import { SliceLocation as ArcSliceLocation, ParameterDescriptor } from '@cratis/arc/reflection';
|
|
9
|
+
import { field } from '@cratis/fundamentals';
|
|
10
|
+
import { ReadOnlyReason } from './ReadOnlyReason';
|
|
11
|
+
import { SuspensionCause } from '../Contracts/Tenants/SuspensionCause';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Gets why the tenant can not change anything, so the frontend can show a banner.
|
|
15
|
+
*/
|
|
16
|
+
export class CurrentStanding extends QueryFor<TenantStanding> {
|
|
17
|
+
static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', '', 'Entitlements');
|
|
18
|
+
readonly route: string = '/api/entitlements/current-standing';
|
|
19
|
+
readonly queryName: string = 'Cratis.Showrunner.BoxOffice.Entitlements.TenantStanding.CurrentStanding';
|
|
20
|
+
readonly treatWarningsAsErrors: boolean = false;
|
|
21
|
+
readonly roles: string[] = [];
|
|
22
|
+
readonly defaultValue: TenantStanding = {} as TenantStanding;
|
|
23
|
+
|
|
24
|
+
constructor() {
|
|
25
|
+
super(TenantStanding, false);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
get requiredRequestParameters(): string[] {
|
|
29
|
+
return [
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
static use(): [QueryResultWithState<TenantStanding>, PerformQuery, SetSorting] {
|
|
39
|
+
return useQuery<TenantStanding, CurrentStanding>(CurrentStanding);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static useSuspense(): [QueryResultWithState<TenantStanding>, PerformQuery, SetSorting] {
|
|
43
|
+
return useSuspenseQuery<TenantStanding, CurrentStanding>(CurrentStanding);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static when(condition: boolean): QueryWhen<CurrentStanding, TenantStanding> {
|
|
47
|
+
return new QueryWhen<CurrentStanding, TenantStanding>(CurrentStanding, condition);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Whether the operator suspended a tenant, and the reason the tenant is read-only when it is, for the frontend to show.
|
|
53
|
+
*/
|
|
54
|
+
export class TenantStanding {
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The id of the tenant's stream.
|
|
58
|
+
*/
|
|
59
|
+
@field(String)
|
|
60
|
+
id!: string;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Whether the operator has the tenant suspended.
|
|
64
|
+
*/
|
|
65
|
+
@field(Boolean)
|
|
66
|
+
suspended!: boolean;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Why the operator suspended the tenant, while it does.
|
|
70
|
+
*/
|
|
71
|
+
@field(Number)
|
|
72
|
+
cause!: SuspensionCause;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* When the operator made the decision that stands. A decision that arrives after a newer one is ignored.
|
|
76
|
+
*/
|
|
77
|
+
@field(Date)
|
|
78
|
+
decidedAt!: Date;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Why the tenant can read but not change anything, evaluated when it is read; none when it can.
|
|
82
|
+
*/
|
|
83
|
+
@field(Number)
|
|
84
|
+
readOnlyReason!: ReadOnlyReason;
|
|
85
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
export * from './EntitlementSummary';
|
|
4
|
+
export * from './ModuleAccess';
|
|
5
|
+
export * from './ModuleStanding';
|
|
6
|
+
export * from './ReadOnlyReason';
|
|
7
|
+
export * from './TenantStanding';
|
package/Offers/Offer.ts
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Offers.Offer, Cratis.Showrunner.BoxOffice.Offers.Offer. Time: 2026-10-31T09:00:17.5207780Z. Hash: 7673DE0FEE8F93BA649B9A59208C8F68E85A8D9E65582D8B2439BDF2A8952D2C
|
|
6
|
+
import { Paging, QueryFor, QueryResultWithState, Sorting, SortingActions, SortingActionsForQuery } from '@cratis/arc/queries';
|
|
7
|
+
import { PerformQuery, QueryWhen, SetPage, SetPageSize, SetSorting, useQuery, useQueryWithPaging, useSuspenseQuery, useSuspenseQueryWithPaging } from '@cratis/arc.react/queries';
|
|
8
|
+
import { SliceLocation as ArcSliceLocation, ParameterDescriptor } from '@cratis/arc/reflection';
|
|
9
|
+
import { Guid, field } from '@cratis/fundamentals';
|
|
10
|
+
import { OfferPrice } from '../Contracts/Offers/OfferPrice';
|
|
11
|
+
|
|
12
|
+
class OnSaleSortBy {
|
|
13
|
+
private _id: SortingActionsForQuery<Offer[]>;
|
|
14
|
+
private _includedSeats: SortingActionsForQuery<Offer[]>;
|
|
15
|
+
private _modules: SortingActionsForQuery<Offer[]>;
|
|
16
|
+
private _name: SortingActionsForQuery<Offer[]>;
|
|
17
|
+
private _prices: SortingActionsForQuery<Offer[]>;
|
|
18
|
+
private _withdrawn: SortingActionsForQuery<Offer[]>;
|
|
19
|
+
|
|
20
|
+
constructor(readonly query: OnSale) {
|
|
21
|
+
this._id = new SortingActionsForQuery<Offer[]>('id', query);
|
|
22
|
+
this._includedSeats = new SortingActionsForQuery<Offer[]>('includedSeats', query);
|
|
23
|
+
this._modules = new SortingActionsForQuery<Offer[]>('modules', query);
|
|
24
|
+
this._name = new SortingActionsForQuery<Offer[]>('name', query);
|
|
25
|
+
this._prices = new SortingActionsForQuery<Offer[]>('prices', query);
|
|
26
|
+
this._withdrawn = new SortingActionsForQuery<Offer[]>('withdrawn', query);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get id(): SortingActionsForQuery<Offer[]> {
|
|
30
|
+
return this._id;
|
|
31
|
+
}
|
|
32
|
+
get includedSeats(): SortingActionsForQuery<Offer[]> {
|
|
33
|
+
return this._includedSeats;
|
|
34
|
+
}
|
|
35
|
+
get modules(): SortingActionsForQuery<Offer[]> {
|
|
36
|
+
return this._modules;
|
|
37
|
+
}
|
|
38
|
+
get name(): SortingActionsForQuery<Offer[]> {
|
|
39
|
+
return this._name;
|
|
40
|
+
}
|
|
41
|
+
get prices(): SortingActionsForQuery<Offer[]> {
|
|
42
|
+
return this._prices;
|
|
43
|
+
}
|
|
44
|
+
get withdrawn(): SortingActionsForQuery<Offer[]> {
|
|
45
|
+
return this._withdrawn;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
class OnSaleSortByWithoutQuery {
|
|
50
|
+
private _id: SortingActions = new SortingActions('id');
|
|
51
|
+
private _includedSeats: SortingActions = new SortingActions('includedSeats');
|
|
52
|
+
private _modules: SortingActions = new SortingActions('modules');
|
|
53
|
+
private _name: SortingActions = new SortingActions('name');
|
|
54
|
+
private _prices: SortingActions = new SortingActions('prices');
|
|
55
|
+
private _withdrawn: SortingActions = new SortingActions('withdrawn');
|
|
56
|
+
|
|
57
|
+
get id(): SortingActions {
|
|
58
|
+
return this._id;
|
|
59
|
+
}
|
|
60
|
+
get includedSeats(): SortingActions {
|
|
61
|
+
return this._includedSeats;
|
|
62
|
+
}
|
|
63
|
+
get modules(): SortingActions {
|
|
64
|
+
return this._modules;
|
|
65
|
+
}
|
|
66
|
+
get name(): SortingActions {
|
|
67
|
+
return this._name;
|
|
68
|
+
}
|
|
69
|
+
get prices(): SortingActions {
|
|
70
|
+
return this._prices;
|
|
71
|
+
}
|
|
72
|
+
get withdrawn(): SortingActions {
|
|
73
|
+
return this._withdrawn;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Gets the offers on sale.
|
|
80
|
+
*/
|
|
81
|
+
export class OnSale extends QueryFor<Offer[]> {
|
|
82
|
+
static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', '', 'Offers');
|
|
83
|
+
readonly route: string = '/api/offers/on-sale';
|
|
84
|
+
readonly queryName: string = 'Cratis.Showrunner.BoxOffice.Offers.Offer.OnSale';
|
|
85
|
+
readonly treatWarningsAsErrors: boolean = false;
|
|
86
|
+
readonly roles: string[] = [];
|
|
87
|
+
readonly defaultValue: Offer[] = [];
|
|
88
|
+
private readonly _sortBy: OnSaleSortBy;
|
|
89
|
+
private static readonly _sortBy: OnSaleSortByWithoutQuery = new OnSaleSortByWithoutQuery();
|
|
90
|
+
|
|
91
|
+
constructor() {
|
|
92
|
+
super(Offer, true);
|
|
93
|
+
this._sortBy = new OnSaleSortBy(this);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
get requiredRequestParameters(): string[] {
|
|
97
|
+
return [
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
102
|
+
];
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
get sortBy(): OnSaleSortBy {
|
|
106
|
+
return this._sortBy;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static get sortBy(): OnSaleSortByWithoutQuery {
|
|
110
|
+
return this._sortBy;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static use(sorting?: Sorting): [QueryResultWithState<Offer[]>, PerformQuery, SetSorting] {
|
|
114
|
+
return useQuery<Offer[], OnSale>(OnSale, undefined, sorting);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static useWithPaging(pageSize: number, sorting?: Sorting): [QueryResultWithState<Offer[]>, PerformQuery, SetSorting, SetPage, SetPageSize] {
|
|
118
|
+
return useQueryWithPaging<Offer[], OnSale>(OnSale, new Paging(0, pageSize), undefined, sorting);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static useSuspense(sorting?: Sorting): [QueryResultWithState<Offer[]>, PerformQuery, SetSorting] {
|
|
122
|
+
return useSuspenseQuery<Offer[], OnSale>(OnSale, undefined, sorting);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static useSuspenseWithPaging(pageSize: number, sorting?: Sorting): [QueryResultWithState<Offer[]>, PerformQuery, SetSorting, SetPage, SetPageSize] {
|
|
126
|
+
return useSuspenseQueryWithPaging<Offer[], OnSale>(OnSale, new Paging(0, pageSize), undefined, sorting);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
static when(condition: boolean): QueryWhen<OnSale, Offer[]> {
|
|
130
|
+
return new QueryWhen<OnSale, Offer[]>(OnSale, condition);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* An offer the operator sells the product under, kept for the plan page. A withdrawn offer stays as it was, marked withdrawn: tenants that have it keep it.
|
|
136
|
+
*/
|
|
137
|
+
export class Offer {
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The id of the offer.
|
|
141
|
+
*/
|
|
142
|
+
@field(Guid)
|
|
143
|
+
id!: Guid;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The name of the offer.
|
|
147
|
+
*/
|
|
148
|
+
@field(String)
|
|
149
|
+
name!: string;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The modules the offer includes.
|
|
153
|
+
*/
|
|
154
|
+
@field(String, true)
|
|
155
|
+
modules!: string[];
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* The seats the offer includes.
|
|
159
|
+
*/
|
|
160
|
+
@field(Number)
|
|
161
|
+
includedSeats!: number;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* What the offer costs.
|
|
165
|
+
*/
|
|
166
|
+
@field(OfferPrice, true)
|
|
167
|
+
prices!: OfferPrice[];
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Whether the operator stopped selling it.
|
|
171
|
+
*/
|
|
172
|
+
@field(Boolean)
|
|
173
|
+
withdrawn!: boolean;
|
|
174
|
+
}
|
package/Offers/index.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Portal.PortalIntent. Time: 2026-10-31T13:15:32.0616230Z. Hash: 616F82552664EF3E6D08A4152B310A3449F6700AC19EC6E8AB0F54CE9740F76C
|
|
6
|
+
/**
|
|
7
|
+
* What the person who opens the customer portal wants to do there.
|
|
8
|
+
*/
|
|
9
|
+
export enum PortalIntent {
|
|
10
|
+
buy = 0,
|
|
11
|
+
try = 1,
|
|
12
|
+
changePlan = 2,
|
|
13
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
// **DO NOT EDIT** - This file is an automatically generated file.
|
|
5
|
+
// @generated by Cratis. Source: Cratis.Showrunner.BoxOffice.Portal.PortalLink, Cratis.Showrunner.BoxOffice.Portal.PortalLink. Time: 2026-10-31T13:17:43.2153370Z. Hash: F030CA3919A960F9398AE19085D9D6EBEAE801ADF3AC85195CCE96248C737744
|
|
6
|
+
import { QueryFor, QueryResultWithState } from '@cratis/arc/queries';
|
|
7
|
+
import { PerformQuery, QueryWhen, SetSorting, useQuery, useSuspenseQuery } from '@cratis/arc.react/queries';
|
|
8
|
+
import { SliceLocation as ArcSliceLocation, ParameterDescriptor } from '@cratis/arc/reflection';
|
|
9
|
+
import { Guid, field } from '@cratis/fundamentals';
|
|
10
|
+
import { PortalIntent } from './PortalIntent';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Gets a link to the customer portal for what the signed-in user wants to do there.
|
|
14
|
+
*/
|
|
15
|
+
export interface LinkToPortalParameters {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* What the user wants to do.
|
|
19
|
+
*/
|
|
20
|
+
intent: PortalIntent;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The offer the user looked at, when they did.
|
|
24
|
+
*/
|
|
25
|
+
offer?: Guid;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Gets a link to the customer portal for what the signed-in user wants to do there.
|
|
31
|
+
*/
|
|
32
|
+
export class LinkToPortal extends QueryFor<PortalLink, LinkToPortalParameters> {
|
|
33
|
+
static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', '', 'Portal');
|
|
34
|
+
readonly route: string = '/api/portal/link-to-portal';
|
|
35
|
+
readonly queryName: string = 'Cratis.Showrunner.BoxOffice.Portal.PortalLink.LinkToPortal';
|
|
36
|
+
readonly treatWarningsAsErrors: boolean = false;
|
|
37
|
+
readonly roles: string[] = [];
|
|
38
|
+
readonly defaultValue: PortalLink = {} as PortalLink;
|
|
39
|
+
|
|
40
|
+
constructor() {
|
|
41
|
+
super(PortalLink, false);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get requiredRequestParameters(): string[] {
|
|
45
|
+
return [
|
|
46
|
+
'intent',
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
51
|
+
new ParameterDescriptor('intent', Number, false),
|
|
52
|
+
new ParameterDescriptor('offer', Guid, false),
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
intent!: PortalIntent;
|
|
56
|
+
offer!: Guid;
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
static use(args?: LinkToPortalParameters): [QueryResultWithState<PortalLink>, PerformQuery<LinkToPortalParameters>, SetSorting] {
|
|
60
|
+
return useQuery<PortalLink, LinkToPortal, LinkToPortalParameters>(LinkToPortal, args);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static useSuspense(args?: LinkToPortalParameters): [QueryResultWithState<PortalLink>, PerformQuery<LinkToPortalParameters>, SetSorting] {
|
|
64
|
+
return useSuspenseQuery<PortalLink, LinkToPortal, LinkToPortalParameters>(LinkToPortal, args);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static when(condition: boolean): QueryWhen<LinkToPortal, PortalLink, LinkToPortalParameters> {
|
|
68
|
+
return new QueryWhen<LinkToPortal, PortalLink, LinkToPortalParameters>(LinkToPortal, condition);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A link that opens the operator's customer portal for the signed-in user's tenant.
|
|
74
|
+
*/
|
|
75
|
+
export class PortalLink {
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The link, which stops working after a while.
|
|
79
|
+
*/
|
|
80
|
+
@field(String)
|
|
81
|
+
url!: string;
|
|
82
|
+
}
|
package/Portal/index.ts
ADDED
package/README.md
CHANGED
|
@@ -1,3 +1,72 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Showrunner
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Showrunner is a set of ready-made product parts for applications built on [Cratis](https://www.cratis.io) — drop-in backend and frontend packages, built as Arc and Chronicle vertical slices.
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://github.com/Cratis/Showrunner/actions/workflows/build.yml)
|
|
7
|
+
[](https://github.com/Cratis/Showrunner/actions/workflows/publish.yml)
|
|
8
|
+
[](https://discord.gg/kt4AMpV8WV)
|
|
9
|
+
|
|
10
|
+
## Usher
|
|
11
|
+
|
|
12
|
+
**Usher** is the support part: it lets the users of an application report issues and hold support conversations with the people running it. It is a library an application hosts, not a service of its own — the backend package adds Usher's commands, queries and events to the host's Arc application and Chronicle event store, and the frontend packages give the host's React UI the generated proxies and components to drive them.
|
|
13
|
+
|
|
14
|
+
Usher is in its earliest stage: the packages are scaffolded and published, but carry no behavior yet. See [Documentation](./Documentation/index.md).
|
|
15
|
+
|
|
16
|
+
**Box Office** is the licensing part: trials, seats, modules, compute allowances and suspension, decided by the operator of a managed product and honored by the product. Its event contracts, its catalog of offers and prices, and a product's offering declaration and compute metering are in place; see [Documentation](./Documentation/BoxOffice/index.md).
|
|
17
|
+
|
|
18
|
+
**Marquee** is the announcements part: the people running a product write an announcement with an audience, a display and an exact window, and the product shows it to the people it reaches, as a banner or a dialog. Drop `<Marquee />` into the application shell and it brings its own queries and commands; see [Documentation](./Documentation/Marquee/index.md).
|
|
19
|
+
|
|
20
|
+
## Packages
|
|
21
|
+
|
|
22
|
+
| Package | Registry | What it is |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| `Cratis.Showrunner.BoxOffice.Catalog` | NuGet | Box Office's catalog — offers (seat plans, modules, compute packs), prices and the pricing arithmetic, published to products |
|
|
25
|
+
| `Cratis.Showrunner.BoxOffice.Offering` | NuGet | Box Office for a product — declares what the product sells (modules, meters, seat licensing) and measures its compute per tenant and day |
|
|
26
|
+
| `Cratis.Showrunner.BoxOffice.Contracts` | NuGet | Box Office's event contracts: what an operator decides about a tenant and what a product reports back |
|
|
27
|
+
| `Cratis.Showrunner.Usher.Contracts` | NuGet | Usher's event contracts, for hosts that react to what Usher records |
|
|
28
|
+
| `Cratis.Showrunner.Marquee.Contracts` | NuGet | Marquee's event contracts: the public events a product receives announcements through |
|
|
29
|
+
| `Cratis.Showrunner.Marquee.Authoring` | NuGet | Marquee's authoring backend — commands, query and outbox for writing announcements, built on Arc and Chronicle |
|
|
30
|
+
| `Cratis.Showrunner.Marquee` | NuGet | Marquee's backend for products — receives announcements once, shows each tenant what its audience matches and records acknowledgements |
|
|
31
|
+
| `Cratis.Showrunner.Usher` | NuGet | Usher's backend — Arc commands and queries over Chronicle |
|
|
32
|
+
| `@cratis/showrunner.marquee` | npm | The generated TypeScript proxies for Marquee's receiving commands and queries; no UI framework dependency |
|
|
33
|
+
| `@cratis/showrunner.marquee.authoring` | npm | The generated TypeScript proxies for Marquee's authoring commands and query; no UI framework dependency |
|
|
34
|
+
| `@cratis/showrunner.marquee.react` | npm | The Marquee drop-in React component: banners and dialogs for a product's announcements, built on `@cratis/arc.react` and `@cratis/components` |
|
|
35
|
+
| `@cratis/showrunner.usher` | npm | The generated TypeScript proxies for Usher's commands and queries; no UI framework dependency |
|
|
36
|
+
| `@cratis/showrunner.usher.react` | npm | React components for Usher, built on `@cratis/arc.react` and `@cratis/components` |
|
|
37
|
+
|
|
38
|
+
## Building
|
|
39
|
+
|
|
40
|
+
Prerequisites: the .NET SDK from [`global.json`](./global.json) (10.0.400 or later) and Node.js 20 or later with Corepack enabled (`corepack enable`); Yarn itself is checked in under `.yarn/releases`.
|
|
41
|
+
|
|
42
|
+
```shell
|
|
43
|
+
# Backend: Debug builds compile the inline specs and regenerate the TypeScript proxies
|
|
44
|
+
dotnet build Showrunner.slnx --configuration Debug
|
|
45
|
+
dotnet test Showrunner.slnx --configuration Debug --no-build
|
|
46
|
+
|
|
47
|
+
# Release is warnings-as-errors; clearing CratisProxiesOutputPath skips proxy generation
|
|
48
|
+
dotnet build Showrunner.slnx --configuration Release -p:CratisProxiesOutputPath=
|
|
49
|
+
|
|
50
|
+
# Frontend
|
|
51
|
+
yarn install
|
|
52
|
+
yarn lint:ci
|
|
53
|
+
yarn compile
|
|
54
|
+
yarn test
|
|
55
|
+
yarn build
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Specifications live beside the code they specify — `for_*/when_*/` folders compiled into Debug builds only for .NET, and Vitest specs in the same layout for TypeScript.
|
|
59
|
+
|
|
60
|
+
The end-to-end specifications in [`Integration`](./Integration) run Usher and a desk against a real Chronicle kernel in a container, so `dotnet test Showrunner.slnx` needs Docker. Set `USHER_CHRONICLE_IMAGE` to run them against another kernel image, and `USHER_INTEGRATION_LOG` to a file path to keep the application's log.
|
|
61
|
+
|
|
62
|
+
## Releasing
|
|
63
|
+
|
|
64
|
+
Every pull request carries exactly one of the `major`, `minor`, `patch` or `no-release` labels. Merging a version-labelled pull request to `main` releases all four packages under one semantic version through [`cratis/release-action`](https://github.com/Cratis/release-action) — NuGet packages through NuGet trusted publishing and npm packages through npm trusted publishing with provenance. The packages are built and packed in jobs without publishing rights; separate jobs that run no build or install script hold the short-lived OIDC token and only push what was packed.
|
|
65
|
+
|
|
66
|
+
## Part of the Cratis ecosystem
|
|
67
|
+
|
|
68
|
+
Showrunner is a [Cratis](https://www.cratis.io) project, built on event sourcing with [Chronicle](https://github.com/Cratis/Chronicle) and CQRS with [Arc](https://github.com/Cratis/Arc), with frontends on [`@cratis/components`](https://github.com/Cratis/Components). Join the community on [Discord](https://discord.gg/kt4AMpV8WV).
|
|
69
|
+
|
|
70
|
+
## License
|
|
71
|
+
|
|
72
|
+
Showrunner is licensed under the [MIT License](LICENSE) and free to use.
|