@playfast/reform 1.2.0 → 1.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/dist/boundary/boundary.d.ts +64 -0
- package/dist/boundary/boundary.d.ts.map +1 -0
- package/dist/boundary/boundary.js +102 -0
- package/dist/boundary/boundary.js.map +1 -0
- package/dist/calc/asyncCalc.d.ts +21 -0
- package/dist/calc/asyncCalc.d.ts.map +1 -0
- package/dist/calc/asyncCalc.js +90 -0
- package/dist/calc/asyncCalc.js.map +1 -0
- package/dist/calc/asyncCalcTypes.d.ts +78 -0
- package/dist/calc/asyncCalcTypes.d.ts.map +1 -0
- package/dist/calc/asyncCalcTypes.js +2 -0
- package/dist/calc/asyncCalcTypes.js.map +1 -0
- package/dist/calc/asyncData.d.ts +29 -0
- package/dist/calc/asyncData.d.ts.map +1 -0
- package/dist/calc/asyncData.js +21 -0
- package/dist/calc/asyncData.js.map +1 -0
- package/dist/calc/calc.d.ts +39 -0
- package/dist/calc/calc.d.ts.map +1 -0
- package/dist/calc/calc.js +48 -0
- package/dist/calc/calc.js.map +1 -0
- package/dist/calc/calcFamily.d.ts +40 -0
- package/dist/calc/calcFamily.d.ts.map +1 -0
- package/dist/calc/calcFamily.js +113 -0
- package/dist/calc/calcFamily.js.map +1 -0
- package/dist/calc/compose.d.ts +5 -0
- package/dist/calc/compose.d.ts.map +1 -0
- package/dist/calc/compose.js +5 -0
- package/dist/calc/compose.js.map +1 -0
- package/dist/calc/queryState.d.ts +12 -0
- package/dist/calc/queryState.d.ts.map +1 -0
- package/dist/calc/queryState.js +17 -0
- package/dist/calc/queryState.js.map +1 -0
- package/dist/channel/channel.d.ts +51 -0
- package/dist/channel/channel.d.ts.map +1 -0
- package/dist/channel/channel.js +86 -0
- package/dist/channel/channel.js.map +1 -0
- package/dist/channel/procedures.d.ts +24 -0
- package/dist/channel/procedures.d.ts.map +1 -0
- package/dist/channel/procedures.js +82 -0
- package/dist/channel/procedures.js.map +1 -0
- package/dist/compose/composition.d.ts +12 -0
- package/dist/compose/composition.d.ts.map +1 -0
- package/dist/compose/composition.js +56 -0
- package/dist/compose/composition.js.map +1 -0
- package/dist/compose/compositionTypes.d.ts +127 -0
- package/dist/compose/compositionTypes.d.ts.map +1 -0
- package/dist/compose/compositionTypes.js +2 -0
- package/dist/compose/compositionTypes.js.map +1 -0
- package/dist/compose/host.d.ts +6 -0
- package/dist/compose/host.d.ts.map +1 -0
- package/dist/compose/host.js +2 -0
- package/dist/compose/host.js.map +1 -0
- package/dist/compose/props.d.ts +10 -0
- package/dist/compose/props.d.ts.map +1 -0
- package/dist/compose/props.js +6 -0
- package/dist/compose/props.js.map +1 -0
- package/dist/compose/provide.d.ts +18 -0
- package/dist/compose/provide.d.ts.map +1 -0
- package/dist/compose/provide.js +49 -0
- package/dist/compose/provide.js.map +1 -0
- package/dist/compose/slot.d.ts +70 -0
- package/dist/compose/slot.d.ts.map +1 -0
- package/dist/compose/slot.js +26 -0
- package/dist/compose/slot.js.map +1 -0
- package/dist/compose/structure.d.ts +51 -0
- package/dist/compose/structure.d.ts.map +1 -0
- package/dist/compose/structure.js +92 -0
- package/dist/compose/structure.js.map +1 -0
- package/dist/compose/ui.d.ts +112 -0
- package/dist/compose/ui.d.ts.map +1 -0
- package/dist/compose/ui.js +47 -0
- package/dist/compose/ui.js.map +1 -0
- package/dist/definition/definition.d.ts +11 -0
- package/dist/definition/definition.d.ts.map +1 -0
- package/dist/definition/definition.js +35 -0
- package/dist/definition/definition.js.map +1 -0
- package/dist/event/event.d.ts +52 -0
- package/dist/event/event.d.ts.map +1 -0
- package/dist/event/event.js +67 -0
- package/dist/event/event.js.map +1 -0
- package/dist/event/eventGroup.d.ts +8 -0
- package/dist/event/eventGroup.d.ts.map +1 -0
- package/dist/event/eventGroup.js +3 -0
- package/dist/event/eventGroup.js.map +1 -0
- package/dist/feature/feature.d.ts +27 -0
- package/dist/feature/feature.d.ts.map +1 -0
- package/dist/feature/feature.js +20 -0
- package/dist/feature/feature.js.map +1 -0
- package/dist/feature/featureBinding.d.ts +85 -0
- package/dist/feature/featureBinding.d.ts.map +1 -0
- package/dist/feature/featureBinding.js +10 -0
- package/dist/feature/featureBinding.js.map +1 -0
- package/dist/feature/featureClass.d.ts +10 -0
- package/dist/feature/featureClass.d.ts.map +1 -0
- package/dist/feature/featureClass.js +2 -0
- package/dist/feature/featureClass.js.map +1 -0
- package/dist/feature/featureConfig.d.ts +86 -0
- package/dist/feature/featureConfig.d.ts.map +1 -0
- package/dist/feature/featureConfig.js +13 -0
- package/dist/feature/featureConfig.js.map +1 -0
- package/dist/feature/featureFactory.d.ts +15 -0
- package/dist/feature/featureFactory.d.ts.map +1 -0
- package/dist/feature/featureFactory.js +59 -0
- package/dist/feature/featureFactory.js.map +1 -0
- package/dist/feature/featureModule.d.ts +28 -0
- package/dist/feature/featureModule.d.ts.map +1 -0
- package/dist/feature/featureModule.js +33 -0
- package/dist/feature/featureModule.js.map +1 -0
- package/dist/feature/featureNativeTree.d.ts +26 -0
- package/dist/feature/featureNativeTree.d.ts.map +1 -0
- package/dist/feature/featureNativeTree.js +2 -0
- package/dist/feature/featureNativeTree.js.map +1 -0
- package/dist/feature/featureRequirement.d.ts +43 -0
- package/dist/feature/featureRequirement.d.ts.map +1 -0
- package/dist/feature/featureRequirement.js +6 -0
- package/dist/feature/featureRequirement.js.map +1 -0
- package/dist/feature/featureVariants.d.ts +9 -0
- package/dist/feature/featureVariants.d.ts.map +1 -0
- package/dist/feature/featureVariants.js +59 -0
- package/dist/feature/featureVariants.js.map +1 -0
- package/dist/feature/mountFeature.d.ts +10 -0
- package/dist/feature/mountFeature.d.ts.map +1 -0
- package/dist/feature/mountFeature.js +14 -0
- package/dist/feature/mountFeature.js.map +1 -0
- package/dist/graph/closure.d.ts +77 -0
- package/dist/graph/closure.d.ts.map +1 -0
- package/dist/graph/closure.js +4 -0
- package/dist/graph/closure.js.map +1 -0
- package/dist/graph/services.d.ts +30 -0
- package/dist/graph/services.d.ts.map +1 -0
- package/dist/graph/services.js +2 -0
- package/dist/graph/services.js.map +1 -0
- package/dist/graph/summary.d.ts +60 -0
- package/dist/graph/summary.d.ts.map +1 -0
- package/dist/graph/summary.js +7 -0
- package/dist/graph/summary.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/bucketCache.d.ts +19 -0
- package/dist/internal/bucketCache.d.ts.map +1 -0
- package/dist/internal/bucketCache.js +20 -0
- package/dist/internal/bucketCache.js.map +1 -0
- package/dist/internal/capture.d.ts +17 -0
- package/dist/internal/capture.d.ts.map +1 -0
- package/dist/internal/capture.js +5 -0
- package/dist/internal/capture.js.map +1 -0
- package/dist/internal/env.d.ts +2 -0
- package/dist/internal/env.d.ts.map +1 -0
- package/dist/internal/env.js +5 -0
- package/dist/internal/env.js.map +1 -0
- package/dist/internal/errors.d.ts +48 -0
- package/dist/internal/errors.d.ts.map +1 -0
- package/dist/internal/errors.js +69 -0
- package/dist/internal/errors.js.map +1 -0
- package/dist/internal/inspect.d.ts +5 -0
- package/dist/internal/inspect.d.ts.map +1 -0
- package/dist/internal/inspect.js +20 -0
- package/dist/internal/inspect.js.map +1 -0
- package/dist/internal/queryDriver.d.ts +7 -0
- package/dist/internal/queryDriver.d.ts.map +1 -0
- package/dist/internal/queryDriver.js +198 -0
- package/dist/internal/queryDriver.js.map +1 -0
- package/dist/internal/queryDriverHydrate.d.ts +17 -0
- package/dist/internal/queryDriverHydrate.d.ts.map +1 -0
- package/dist/internal/queryDriverHydrate.js +19 -0
- package/dist/internal/queryDriverHydrate.js.map +1 -0
- package/dist/internal/queryDriverStore.d.ts +54 -0
- package/dist/internal/queryDriverStore.d.ts.map +1 -0
- package/dist/internal/queryDriverStore.js +77 -0
- package/dist/internal/queryDriverStore.js.map +1 -0
- package/dist/internal/queryDriverTypes.d.ts +41 -0
- package/dist/internal/queryDriverTypes.d.ts.map +1 -0
- package/dist/internal/queryDriverTypes.js +9 -0
- package/dist/internal/queryDriverTypes.js.map +1 -0
- package/dist/internal/queryEvents.d.ts +12 -0
- package/dist/internal/queryEvents.d.ts.map +1 -0
- package/dist/internal/queryEvents.js +11 -0
- package/dist/internal/queryEvents.js.map +1 -0
- package/dist/internal/queryStore.d.ts +13 -0
- package/dist/internal/queryStore.d.ts.map +1 -0
- package/dist/internal/queryStore.js +11 -0
- package/dist/internal/queryStore.js.map +1 -0
- package/dist/internal/reuse.d.ts +2 -0
- package/dist/internal/reuse.d.ts.map +1 -0
- package/dist/internal/reuse.js +55 -0
- package/dist/internal/reuse.js.map +1 -0
- package/dist/internal/scheduler.d.ts +13 -0
- package/dist/internal/scheduler.d.ts.map +1 -0
- package/dist/internal/scheduler.js +38 -0
- package/dist/internal/scheduler.js.map +1 -0
- package/dist/internal/seeds.d.ts +3 -0
- package/dist/internal/seeds.d.ts.map +1 -0
- package/dist/internal/seeds.js +3 -0
- package/dist/internal/seeds.js.map +1 -0
- package/dist/internal/sources.d.ts +20 -0
- package/dist/internal/sources.d.ts.map +1 -0
- package/dist/internal/sources.js +39 -0
- package/dist/internal/sources.js.map +1 -0
- package/dist/internal/stateRegistry.d.ts +2 -0
- package/dist/internal/stateRegistry.d.ts.map +1 -0
- package/dist/internal/stateRegistry.js +15 -0
- package/dist/internal/stateRegistry.js.map +1 -0
- package/dist/internal/store.d.ts +15 -0
- package/dist/internal/store.d.ts.map +1 -0
- package/dist/internal/store.js +61 -0
- package/dist/internal/store.js.map +1 -0
- package/dist/internal/track.d.ts +15 -0
- package/dist/internal/track.d.ts.map +1 -0
- package/dist/internal/track.js +11 -0
- package/dist/internal/track.js.map +1 -0
- package/dist/internal/variance.d.ts +4 -0
- package/dist/internal/variance.d.ts.map +1 -0
- package/dist/internal/variance.js +2 -0
- package/dist/internal/variance.js.map +1 -0
- package/dist/internal.d.ts +42 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +58 -0
- package/dist/internal.js.map +1 -0
- package/dist/namespace/namespace.d.ts +24 -0
- package/dist/namespace/namespace.d.ts.map +1 -0
- package/dist/namespace/namespace.js +20 -0
- package/dist/namespace/namespace.js.map +1 -0
- package/dist/procedure/procedure.d.ts +32 -0
- package/dist/procedure/procedure.d.ts.map +1 -0
- package/dist/procedure/procedure.js +34 -0
- package/dist/procedure/procedure.js.map +1 -0
- package/dist/reducer/reducer.d.ts +35 -0
- package/dist/reducer/reducer.d.ts.map +1 -0
- package/dist/reducer/reducer.js +73 -0
- package/dist/reducer/reducer.js.map +1 -0
- package/dist/remote/pendingQueue.d.ts +20 -0
- package/dist/remote/pendingQueue.d.ts.map +1 -0
- package/dist/remote/pendingQueue.js +113 -0
- package/dist/remote/pendingQueue.js.map +1 -0
- package/dist/remote/remoteState.d.ts +13 -0
- package/dist/remote/remoteState.d.ts.map +1 -0
- package/dist/remote/remoteState.js +176 -0
- package/dist/remote/remoteState.js.map +1 -0
- package/dist/remote/remoteStateMake.d.ts +8 -0
- package/dist/remote/remoteStateMake.d.ts.map +1 -0
- package/dist/remote/remoteStateMake.js +46 -0
- package/dist/remote/remoteStateMake.js.map +1 -0
- package/dist/remote/remoteStateSend.d.ts +41 -0
- package/dist/remote/remoteStateSend.d.ts.map +1 -0
- package/dist/remote/remoteStateSend.js +67 -0
- package/dist/remote/remoteStateSend.js.map +1 -0
- package/dist/remote/remoteStateTypes.d.ts +103 -0
- package/dist/remote/remoteStateTypes.d.ts.map +1 -0
- package/dist/remote/remoteStateTypes.js +4 -0
- package/dist/remote/remoteStateTypes.js.map +1 -0
- package/dist/runtime/appRuntime.d.ts +10 -0
- package/dist/runtime/appRuntime.d.ts.map +1 -0
- package/dist/runtime/appRuntime.js +6 -0
- package/dist/runtime/appRuntime.js.map +1 -0
- package/dist/runtime/bus.d.ts +17 -0
- package/dist/runtime/bus.d.ts.map +1 -0
- package/dist/runtime/bus.js +12 -0
- package/dist/runtime/bus.js.map +1 -0
- package/dist/runtime/capturedAppRuntime.d.ts +7 -0
- package/dist/runtime/capturedAppRuntime.d.ts.map +1 -0
- package/dist/runtime/capturedAppRuntime.js +151 -0
- package/dist/runtime/capturedAppRuntime.js.map +1 -0
- package/dist/runtime/eventBudget.d.ts +32 -0
- package/dist/runtime/eventBudget.d.ts.map +1 -0
- package/dist/runtime/eventBudget.js +67 -0
- package/dist/runtime/eventBudget.js.map +1 -0
- package/dist/runtime/featureMount.d.ts +16 -0
- package/dist/runtime/featureMount.d.ts.map +1 -0
- package/dist/runtime/featureMount.js +54 -0
- package/dist/runtime/featureMount.js.map +1 -0
- package/dist/runtime/instrumentation.d.ts +18 -0
- package/dist/runtime/instrumentation.d.ts.map +1 -0
- package/dist/runtime/instrumentation.js +16 -0
- package/dist/runtime/instrumentation.js.map +1 -0
- package/dist/runtime/loop.d.ts +32 -0
- package/dist/runtime/loop.d.ts.map +1 -0
- package/dist/runtime/loop.js +128 -0
- package/dist/runtime/loop.js.map +1 -0
- package/dist/runtime/queries.d.ts +20 -0
- package/dist/runtime/queries.d.ts.map +1 -0
- package/dist/runtime/queries.js +21 -0
- package/dist/runtime/queries.js.map +1 -0
- package/dist/runtime/runtimeHandle.d.ts +56 -0
- package/dist/runtime/runtimeHandle.d.ts.map +1 -0
- package/dist/runtime/runtimeHandle.js +2 -0
- package/dist/runtime/runtimeHandle.js.map +1 -0
- package/dist/scene/scene.d.ts +55 -0
- package/dist/scene/scene.d.ts.map +1 -0
- package/dist/scene/scene.js +74 -0
- package/dist/scene/scene.js.map +1 -0
- package/dist/state/state.d.ts +54 -0
- package/dist/state/state.d.ts.map +1 -0
- package/dist/state/state.js +41 -0
- package/dist/state/state.js.map +1 -0
- package/dist/state/stateFamily.d.ts +59 -0
- package/dist/state/stateFamily.d.ts.map +1 -0
- package/dist/state/stateFamily.js +91 -0
- package/dist/state/stateFamily.js.map +1 -0
- package/dist/state/stateGroup.d.ts +36 -0
- package/dist/state/stateGroup.d.ts.map +1 -0
- package/dist/state/stateGroup.js +33 -0
- package/dist/state/stateGroup.js.map +1 -0
- package/dist/state/token.d.ts +35 -0
- package/dist/state/token.d.ts.map +1 -0
- package/dist/state/token.js +18 -0
- package/dist/state/token.js.map +1 -0
- package/dist/synced/syncedStore.d.ts +44 -0
- package/dist/synced/syncedStore.d.ts.map +1 -0
- package/dist/synced/syncedStore.js +32 -0
- package/dist/synced/syncedStore.js.map +1 -0
- package/dist/testkit/flight.testkit.d.ts +18 -0
- package/dist/testkit/flight.testkit.d.ts.map +1 -0
- package/dist/testkit/flight.testkit.js +45 -0
- package/dist/testkit/flight.testkit.js.map +1 -0
- package/dist/ui/node.d.ts +3 -0
- package/dist/ui/node.d.ts.map +1 -0
- package/dist/ui/node.js +2 -0
- package/dist/ui/node.js.map +1 -0
- package/dist/ui/trigger.d.ts +2 -0
- package/dist/ui/trigger.d.ts.map +1 -0
- package/dist/ui/trigger.js +2 -0
- package/dist/ui/trigger.js.map +1 -0
- package/dist/wire/tree.d.ts +32 -0
- package/dist/wire/tree.d.ts.map +1 -0
- package/dist/wire/tree.js +59 -0
- package/dist/wire/tree.js.map +1 -0
- package/dist/wire/triggers.d.ts +25 -0
- package/dist/wire/triggers.d.ts.map +1 -0
- package/dist/wire/triggers.js +31 -0
- package/dist/wire/triggers.js.map +1 -0
- package/package.json +17 -5
- package/src/boundary/boundary.test.ts +26 -23
- package/src/calc/asyncCalc.invalidate.test.ts +258 -55
- package/src/calc/asyncCalc.test.ts +225 -85
- package/src/calc/asyncCalc.ts +27 -141
- package/src/calc/asyncCalcTypes.test.ts +64 -0
- package/src/calc/asyncCalcTypes.ts +139 -0
- package/src/calc/calc.test.ts +10 -11
- package/src/calc/calcFamily.test.ts +12 -12
- package/src/channel/channel.ts +8 -106
- package/src/channel/procedures.ts +108 -0
- package/src/compose/composition.ts +49 -246
- package/src/compose/compositionTypes.ts +249 -0
- package/src/event/event.fromSource.test.ts +12 -12
- package/src/feature/feature.ts +50 -1210
- package/src/feature/feature.typecheck.ts +2 -61
- package/src/feature/featureBinding.ts +158 -0
- package/src/feature/featureClass.ts +162 -0
- package/src/feature/featureConfig.ts +192 -0
- package/src/feature/featureFactory.ts +163 -0
- package/src/feature/featureModule.ts +136 -0
- package/src/feature/featureModule.typecheck.ts +63 -0
- package/src/feature/featureNativeTree.ts +152 -0
- package/src/feature/featureRequirement.ts +82 -0
- package/src/feature/featureVariants.ts +234 -0
- package/src/feature/mountFeature.ts +54 -0
- package/src/graph/closure.ts +45 -226
- package/src/graph/services.ts +95 -0
- package/src/graph/summary.ts +134 -0
- package/src/internal/queryDriver.ts +20 -89
- package/src/internal/queryDriverHydrate.ts +45 -0
- package/src/internal/queryDriverTypes.ts +8 -10
- package/src/internal/store.test.ts +27 -6
- package/src/remote/pendingQueue.ts +145 -0
- package/src/remote/remoteState.test.ts +28 -22
- package/src/remote/remoteState.ts +63 -489
- package/src/remote/remoteStateMake.ts +97 -0
- package/src/remote/remoteStateSend.ts +122 -0
- package/src/remote/remoteStateTypes.ts +155 -0
- package/src/runtime/appRuntime.activation.test.ts +9 -5
- package/src/runtime/appRuntime.test.ts +40 -16
- package/src/runtime/appRuntime.ts +17 -472
- package/src/runtime/capturedAppRuntime.ts +274 -0
- package/src/runtime/eventBudget.test.ts +38 -8
- package/src/runtime/featureMount.ts +94 -0
- package/src/runtime/hardening.test.ts +18 -4
- package/src/runtime/instrumentation.test.ts +49 -12
- package/src/runtime/loop.test.ts +51 -10
- package/src/runtime/runtimeHandle.ts +124 -0
- package/src/state/stateFamily.test.ts +25 -8
- package/src/testkit/flight.testkit.ts +9 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { FunctionComponent } from 'react';
|
|
2
|
+
import { Context, type Schema } from 'effect';
|
|
3
|
+
import type { AST } from 'effect/SchemaAST';
|
|
4
|
+
import { type Manifest } from '../definition/definition.js';
|
|
5
|
+
import type { Trigger } from '../ui/trigger.js';
|
|
6
|
+
import { type AnySlot, type AnySlotInstance, type Node, type SlotProps } from './slot.js';
|
|
7
|
+
interface UiContractOptionalFields {
|
|
8
|
+
slots: Record<string, AnySlotInstance>;
|
|
9
|
+
events: Record<string, Trigger<never>>;
|
|
10
|
+
}
|
|
11
|
+
export interface UiContract extends Partial<UiContractOptionalFields> {
|
|
12
|
+
props: unknown;
|
|
13
|
+
}
|
|
14
|
+
type PropsOf<C extends UiContract> = C['props'];
|
|
15
|
+
export type EventsOf<C extends UiContract> = C extends {
|
|
16
|
+
events: infer E;
|
|
17
|
+
} ? E : Readonly<Record<PropertyKey, never>>;
|
|
18
|
+
type SlotsOf<C extends UiContract> = C extends {
|
|
19
|
+
slots: infer S;
|
|
20
|
+
} ? {
|
|
21
|
+
readonly [K in keyof S]: FunctionComponent<Partial<SlotProps<S[K]> & {
|
|
22
|
+
readonly slotKey: string;
|
|
23
|
+
}>> & {
|
|
24
|
+
readonly props: ReadonlyArray<SlotProps<S[K]>>;
|
|
25
|
+
};
|
|
26
|
+
} : Readonly<Record<PropertyKey, never>>;
|
|
27
|
+
export type ViewImpl<C extends UiContract> = (props: PropsOf<C>, slots: SlotsOf<C>, events: EventsOf<C>) => Node;
|
|
28
|
+
export declare const UiTypeId: unique symbol;
|
|
29
|
+
export type UiTypeId = typeof UiTypeId;
|
|
30
|
+
export declare const UiServiceTypeId: unique symbol;
|
|
31
|
+
export type UiServiceTypeId = typeof UiServiceTypeId;
|
|
32
|
+
export interface UiService<N extends string> {
|
|
33
|
+
readonly [UiServiceTypeId]: N;
|
|
34
|
+
}
|
|
35
|
+
export type CallableView = (...args: ReadonlyArray<never>) => unknown;
|
|
36
|
+
export interface UiSchemaReflection {
|
|
37
|
+
readonly ast: AST;
|
|
38
|
+
}
|
|
39
|
+
interface UiManifestOptionalFields {
|
|
40
|
+
readonly props: UiSchemaReflection;
|
|
41
|
+
readonly events: Readonly<Record<string, UiSchemaReflection>>;
|
|
42
|
+
}
|
|
43
|
+
export interface UiManifest extends Manifest, Partial<UiManifestOptionalFields> {
|
|
44
|
+
readonly kind: 'Ui';
|
|
45
|
+
}
|
|
46
|
+
export interface WiredUiManifest extends UiManifest {
|
|
47
|
+
readonly props: UiSchemaReflection;
|
|
48
|
+
}
|
|
49
|
+
export type UiCapture<Result> = <C extends UiContract, N extends string>(contract: UiClass<C, N>) => Result;
|
|
50
|
+
export interface UiReflection<out C extends UiContract = UiContract, out N extends string = string> {
|
|
51
|
+
new (): {};
|
|
52
|
+
readonly [UiTypeId]: UiTypeId;
|
|
53
|
+
readonly manifest: UiManifest & {
|
|
54
|
+
readonly name: N;
|
|
55
|
+
};
|
|
56
|
+
readonly Contract: C;
|
|
57
|
+
}
|
|
58
|
+
export interface AnyUi {
|
|
59
|
+
new (): {};
|
|
60
|
+
readonly [UiTypeId]: UiTypeId;
|
|
61
|
+
readonly manifest: UiManifest;
|
|
62
|
+
readonly capture: <Result>(visit: UiCapture<Result>) => Result;
|
|
63
|
+
}
|
|
64
|
+
export interface UiClass<C extends UiContract, N extends string> extends UiReflection<C, N> {
|
|
65
|
+
readonly capture: <Result>(visit: UiCapture<Result>) => Result;
|
|
66
|
+
readonly impl: Context.Tag<UiService<N>, ViewImpl<C>>;
|
|
67
|
+
readonly provider: Context.Tag<UiService<N>, CallableView>;
|
|
68
|
+
}
|
|
69
|
+
export type Contract<U> = U extends UiReflection<infer C, infer _N> ? C : never;
|
|
70
|
+
export type UiName<U> = U extends UiReflection<infer _C, infer N> ? N : never;
|
|
71
|
+
export type WiredUi<C extends UiContract, N extends string> = UiClass<C, N> & {
|
|
72
|
+
readonly manifest: WiredUiManifest;
|
|
73
|
+
};
|
|
74
|
+
interface WireSchemasOptionalFields {
|
|
75
|
+
readonly events: Readonly<Record<string, Schema.Schema.AnyNoContext>>;
|
|
76
|
+
readonly slots: Readonly<Record<string, AnySlot>>;
|
|
77
|
+
}
|
|
78
|
+
export interface WireSchemas extends Partial<WireSchemasOptionalFields> {
|
|
79
|
+
readonly props: Schema.Schema.AnyNoContext;
|
|
80
|
+
}
|
|
81
|
+
type DerivedEvents<Sch extends WireSchemas> = Sch extends {
|
|
82
|
+
readonly events: infer E extends Record<string, Schema.Schema.AnyNoContext>;
|
|
83
|
+
} ? {
|
|
84
|
+
readonly [K in keyof E]: Trigger<Schema.Schema.Type<E[K]>>;
|
|
85
|
+
} : Readonly<Record<PropertyKey, never>>;
|
|
86
|
+
type DerivedSlots<Sch extends WireSchemas> = Sch extends {
|
|
87
|
+
readonly slots: infer S extends Record<string, AnySlot>;
|
|
88
|
+
} ? {
|
|
89
|
+
readonly [K in keyof S]: InstanceType<S[K]>;
|
|
90
|
+
} : Readonly<Record<PropertyKey, never>>;
|
|
91
|
+
export type DerivedContract<Sch extends WireSchemas> = {
|
|
92
|
+
readonly props: Schema.Schema.Type<Sch['props']>;
|
|
93
|
+
readonly slots: DerivedSlots<Sch>;
|
|
94
|
+
readonly events: DerivedEvents<Sch>;
|
|
95
|
+
};
|
|
96
|
+
export declare const isUi: (candidate: unknown) => candidate is AnyUi;
|
|
97
|
+
export declare function ui<const N extends string>(name: N): <C extends UiContract>() => UiClass<C, N>;
|
|
98
|
+
export declare function ui<const N extends string, const Sch extends WireSchemas>(name: N, schemas: Sch): WiredUi<DerivedContract<Sch>, N>;
|
|
99
|
+
export declare const UiViewContract: unique symbol;
|
|
100
|
+
export type UiViewContract = typeof UiViewContract;
|
|
101
|
+
export type MadeViewCapture<Result> = <C extends UiContract, N extends string, U extends AnyUi>(view: MadeView<C, N, U>) => Result;
|
|
102
|
+
export type MadeView<C extends UiContract, N extends string, U extends AnyUi = UiClass<C, N>> = ViewImpl<C> & {
|
|
103
|
+
readonly [UiViewContract]: U;
|
|
104
|
+
readonly capture: <Result>(visit: MadeViewCapture<Result>) => Result;
|
|
105
|
+
};
|
|
106
|
+
export type AnyMadeView = CallableView & {
|
|
107
|
+
readonly [UiViewContract]: AnyUi;
|
|
108
|
+
readonly capture: <Result>(visit: MadeViewCapture<Result>) => Result;
|
|
109
|
+
};
|
|
110
|
+
export declare const make: <U extends AnyUi>(contract: U, view: ViewImpl<Contract<U>>) => MadeView<Contract<U>, UiName<U>, U>;
|
|
111
|
+
export {};
|
|
112
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Context } from 'effect';
|
|
2
|
+
import { definitionClass } from '../definition/definition.js';
|
|
3
|
+
import {} from './slot.js';
|
|
4
|
+
export const UiTypeId = Symbol.for('reform/Ui');
|
|
5
|
+
export const UiServiceTypeId = Symbol.for('reform/UiService');
|
|
6
|
+
export const isUi = (candidate) => (typeof candidate === 'function' || typeof candidate === 'object') &&
|
|
7
|
+
candidate !== null &&
|
|
8
|
+
UiTypeId in candidate;
|
|
9
|
+
const buildUi = (name, manifest) => {
|
|
10
|
+
const impl = Context.GenericTag(`reform/ui/${name}`);
|
|
11
|
+
const provider = Context.GenericTag(`reform/ui/${name}`);
|
|
12
|
+
const contract = definitionClass({
|
|
13
|
+
[UiTypeId]: UiTypeId,
|
|
14
|
+
manifest,
|
|
15
|
+
impl,
|
|
16
|
+
provider,
|
|
17
|
+
capture: (visit) => visit(contract),
|
|
18
|
+
});
|
|
19
|
+
return contract;
|
|
20
|
+
};
|
|
21
|
+
// oxlint-disable-next-line reform-rules/min-var-name -- `ui` is the public framework contract-authoring API; renaming would break every caller across the monorepo
|
|
22
|
+
export function ui(name, schemas) {
|
|
23
|
+
if (schemas === undefined) {
|
|
24
|
+
return () => buildUi(name, {
|
|
25
|
+
kind: 'Ui',
|
|
26
|
+
name,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const eventFields = schemas.events === undefined ? {} : { events: schemas.events };
|
|
30
|
+
const manifest = {
|
|
31
|
+
kind: 'Ui',
|
|
32
|
+
name,
|
|
33
|
+
props: schemas.props,
|
|
34
|
+
...eventFields,
|
|
35
|
+
};
|
|
36
|
+
return buildUi(name, manifest);
|
|
37
|
+
}
|
|
38
|
+
export const UiViewContract = Symbol.for('reform/ui/view-contract');
|
|
39
|
+
export const make = (contract, view) => {
|
|
40
|
+
// oxlint-disable-next-line reform-rules/no-object-assign -- `view` is callable; spread would drop callability, so its reflection statics are attached in place
|
|
41
|
+
const made = Object.assign(view, {
|
|
42
|
+
[UiViewContract]: contract,
|
|
43
|
+
capture: (visit) => visit(made),
|
|
44
|
+
});
|
|
45
|
+
return made;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAe,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAEzE,OAAO,EAAiE,MAAM,QAAQ,CAAA;AAgCtF,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAG9D,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAuF5E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,SAAkB,EAAsB,EAAE,CAC7D,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC;IAClE,SAAS,KAAK,IAAI;IAClB,QAAQ,IAAI,SAAS,CAAA;AAWvB,MAAM,OAAO,GAAG,CAKd,IAAO,EACP,QAAW,EAC+B,EAAE;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAA4B,aAAa,IAAI,EAAE,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAA6B,aAAa,IAAI,EAAE,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,eAAe,CAA2C;QACzE,CAAC,QAAQ,CAAC,EAAE,QAAQ;QACpB,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,CAAS,KAAwB,EAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;KAChC,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AASD,mKAAmK;AACnK,MAAM,UAAU,EAAE,CAAyB,IAAO,EAAE,OAAqB;IACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAwC,EAAE,CAC/C,OAAO,CAA0C,IAAI,EAAE;YACrD,IAAI,EAAE,IAAI;YACV,IAAI;SACL,CAAC,CAAA;IACN,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IAClF,MAAM,QAAQ,GAA2C;QACvD,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,WAAW;KACf,CAAA;IACD,OAAO,OAAO,CACZ,IAAI,EACJ,QAAQ,CACT,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAqBlF,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,QAAW,EACX,IAA2B,EACU,EAAE;IACvC,+JAA+J;IAC/J,MAAM,IAAI,GAAwC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACpE,CAAC,cAAc,CAAC,EAAE,QAAQ;QAC1B,OAAO,EAAE,CAAS,KAA8B,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KACzE,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
export type Kind = 'State' | 'StateGroup' | 'StateFamily' | 'Event' | 'EventGroup' | 'Reducer' | 'Calc' | 'CalcFamily' | 'AsyncCalc' | 'Resource' | 'RemoteState' | 'SyncedStore' | 'Boundary' | 'Procedure' | 'Channel' | 'Composition' | 'Ui' | 'Slot' | 'Feature';
|
|
3
|
+
export interface Manifest {
|
|
4
|
+
readonly kind: Kind;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function yieldableClass<A, E, R, Statics extends object>(read: Effect.Effect<A, E, R>, statics: Statics): {
|
|
8
|
+
new (): {};
|
|
9
|
+
} & Effect.Effect<A, E, R> & Statics;
|
|
10
|
+
export declare function definitionClass<Class>(statics: object): Class;
|
|
11
|
+
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/definition/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/B,MAAM,MAAM,IAAI,GACZ,OAAO,GACP,YAAY,GACZ,aAAa,GACb,OAAO,GACP,YAAY,GACZ,SAAS,GACT,MAAM,GACN,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,UAAU,GACV,WAAW,GACX,SAAS,GACT,aAAa,GACb,IAAI,GACJ,MAAM,GACN,SAAS,CAAA;AAEb,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,MAAM,EAC5D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,OAAO,EAAE,OAAO,GACf;IAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAA;AAoBpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import { attachInspectable } from '../internal/inspect.js';
|
|
3
|
+
const describe = (statics) => ('manifest' in statics ? Reflect.get(statics, 'manifest') : undefined) ?? statics;
|
|
4
|
+
export function yieldableClass(read, statics) {
|
|
5
|
+
class Base {
|
|
6
|
+
}
|
|
7
|
+
Object.setPrototypeOf(Base, read);
|
|
8
|
+
Reflect.ownKeys(statics).forEach((key) => {
|
|
9
|
+
const staticValue = Reflect.get(statics, key);
|
|
10
|
+
Object.defineProperty(Base, key, {
|
|
11
|
+
value: staticValue,
|
|
12
|
+
writable: true,
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
attachInspectable(Base, () => describe(statics));
|
|
18
|
+
return Base;
|
|
19
|
+
}
|
|
20
|
+
export function definitionClass(statics) {
|
|
21
|
+
const Base = class {
|
|
22
|
+
};
|
|
23
|
+
Reflect.ownKeys(statics).forEach((key) => {
|
|
24
|
+
const staticValue = Reflect.get(statics, key);
|
|
25
|
+
Object.defineProperty(Base, key, {
|
|
26
|
+
value: staticValue,
|
|
27
|
+
writable: true,
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
attachInspectable(Base, () => describe(statics));
|
|
33
|
+
return Base;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/definition/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAW,EAAE,CAC5C,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAA;AAgCnF,MAAM,UAAU,cAAc,CAC5B,IAA8C,EAC9C,OAAe;IAEf,MAAM,IAAI;KAAG;IACb,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAG;KAAQ,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Effect, Layer, Option, Schema } from 'effect';
|
|
2
|
+
import { type Manifest } from '../definition/definition.js';
|
|
3
|
+
import { Bus, type Tagged } from '../runtime/bus.js';
|
|
4
|
+
import type { Source } from '../state/token.js';
|
|
5
|
+
import type { Trigger } from '../ui/trigger.js';
|
|
6
|
+
export type EventOf<N extends string, P> = Tagged & {
|
|
7
|
+
readonly _tag: N;
|
|
8
|
+
} & P;
|
|
9
|
+
export interface EventSchemaReflection {
|
|
10
|
+
readonly ast: Schema.Schema<unknown, unknown, unknown>['ast'];
|
|
11
|
+
}
|
|
12
|
+
export interface EventManifest<N extends string> extends Manifest {
|
|
13
|
+
readonly kind: 'Event';
|
|
14
|
+
readonly name: N;
|
|
15
|
+
readonly schema: EventSchemaReflection;
|
|
16
|
+
}
|
|
17
|
+
export interface EventReflection<out N extends string = string, out P = unknown> {
|
|
18
|
+
new (): {};
|
|
19
|
+
readonly manifest: EventManifest<N>;
|
|
20
|
+
readonly tag: N;
|
|
21
|
+
readonly Payload: P;
|
|
22
|
+
}
|
|
23
|
+
export type EventCapture<Result> = <N extends string, P>(event: EventClass<N, P>) => Result;
|
|
24
|
+
export interface AnyEvent extends EventReflection {
|
|
25
|
+
readonly buildUnknown: (payload: unknown) => Tagged;
|
|
26
|
+
readonly capture: <Result>(visit: EventCapture<Result>) => Result;
|
|
27
|
+
}
|
|
28
|
+
export interface EventClass<out N extends string, in out P> extends EventReflection<N, P> {
|
|
29
|
+
readonly build: (payload: P) => EventOf<N, P>;
|
|
30
|
+
readonly trigger: Effect.Effect<Trigger<P>, never, Bus>;
|
|
31
|
+
readonly buildUnknown: (payload: unknown) => Tagged;
|
|
32
|
+
readonly capture: <Result>(visit: EventCapture<Result>) => Result;
|
|
33
|
+
}
|
|
34
|
+
export type EventName<E> = E extends EventReflection<infer N, infer _P> ? N : never;
|
|
35
|
+
export type EventPayload<E> = E extends EventReflection<string, infer P> ? P : never;
|
|
36
|
+
export type EventType<E> = E extends EventReflection<infer N, infer P> ? EventOf<N, P> : never;
|
|
37
|
+
export declare const make: <const N extends string, P, Encoded>(name: N, schema: Schema.Schema<P, Encoded, never>) => EventClass<N, P>;
|
|
38
|
+
export declare function construct<N extends string, P>(event: EventClass<N, P>, payload: P): EventOf<N, P>;
|
|
39
|
+
export declare function construct<E extends AnyEvent>(event: E, payload: EventPayload<E>): EventType<E>;
|
|
40
|
+
export declare const dispatch: <E extends AnyEvent>(event: E, payload: EventPayload<E>) => Effect.Effect<void, never, Bus>;
|
|
41
|
+
export declare const trigger: <N extends string, P>(event: EventClass<N, P>) => Effect.Effect<Trigger<P>, never, Bus>;
|
|
42
|
+
export interface SourceChange<A> {
|
|
43
|
+
readonly previous: Option.Option<A>;
|
|
44
|
+
readonly current: A;
|
|
45
|
+
}
|
|
46
|
+
export interface SourceEventConfigExternalApi<A, P> {
|
|
47
|
+
readonly emitInitial?: boolean;
|
|
48
|
+
readonly payload: (change: SourceChange<A>) => Option.Option<P>;
|
|
49
|
+
}
|
|
50
|
+
export type SourceEventConfig<A, P> = SourceEventConfigExternalApi<A, P>;
|
|
51
|
+
export declare const liveFromSource: <N extends string, P, SourceName extends string, A, Identifier>(event: EventClass<N, P>, source: Source<SourceName, A, Identifier>, config: SourceEventConfigExternalApi<A, P>) => Layer.Layer<never, never, Identifier | Bus>;
|
|
52
|
+
//# sourceMappingURL=event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Effect, Layer, MutableRef, Option, PubSub, Runtime, Schema } from 'effect';
|
|
2
|
+
import { definitionClass } from '../definition/definition.js';
|
|
3
|
+
import { resolveScheduler } from '../internal/scheduler.js';
|
|
4
|
+
import { Bus, publish } from '../runtime/bus.js';
|
|
5
|
+
export const make = (name, schema) => {
|
|
6
|
+
const build = (payload) => ({ ...payload, _tag: name });
|
|
7
|
+
// Payloads at existential boundaries are already-decoded domain values, so
|
|
8
|
+
// check the Type side — decodeUnknownSync would reject transforming schemas
|
|
9
|
+
// (e.g. a real Option, whose _tag lives on the prototype).
|
|
10
|
+
const validatePayload = Schema.validateSync(schema);
|
|
11
|
+
const buildUnknown = (payload) => build(validatePayload(payload));
|
|
12
|
+
const trigger = Effect.gen(function* () {
|
|
13
|
+
const bus = yield* Bus;
|
|
14
|
+
const runtime = yield* Effect.runtime();
|
|
15
|
+
return (payload) => {
|
|
16
|
+
Runtime.runSync(runtime)(PubSub.publish(bus, { priority: 'High', event: build(payload) }));
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
const event = definitionClass({
|
|
20
|
+
manifest: { kind: 'Event', name, schema },
|
|
21
|
+
tag: name,
|
|
22
|
+
build,
|
|
23
|
+
buildUnknown,
|
|
24
|
+
trigger,
|
|
25
|
+
capture: (visit) => visit(event),
|
|
26
|
+
});
|
|
27
|
+
return event;
|
|
28
|
+
};
|
|
29
|
+
export function construct(event, payload) {
|
|
30
|
+
return event.buildUnknown(payload);
|
|
31
|
+
}
|
|
32
|
+
export const dispatch = (event, payload) => publish('Normal', event.buildUnknown(payload));
|
|
33
|
+
export const trigger = (event) => event.trigger;
|
|
34
|
+
export const liveFromSource = (event, source, config) => Layer.scopedDiscard(Effect.gen(function* () {
|
|
35
|
+
const store = yield* source.store;
|
|
36
|
+
const scheduler = yield* resolveScheduler;
|
|
37
|
+
const runtime = yield* Effect.runtime();
|
|
38
|
+
const initial = store.getSnapshot();
|
|
39
|
+
// The scheduler coalesces bursts, so track the last value this adapter observed.
|
|
40
|
+
const seen = MutableRef.make(initial);
|
|
41
|
+
// A queued notification may outlive unsubscribe within the same tick.
|
|
42
|
+
const active = MutableRef.make(true);
|
|
43
|
+
const emit = (change) => {
|
|
44
|
+
if (!MutableRef.get(active)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const payload = config.payload(change);
|
|
48
|
+
if (Option.isSome(payload)) {
|
|
49
|
+
Runtime.runSync(runtime)(publish('Normal', event.build(payload.value)));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const unsubscribe = store.subscribe(() => {
|
|
53
|
+
const current = store.getSnapshot();
|
|
54
|
+
const previous = MutableRef.get(seen);
|
|
55
|
+
MutableRef.set(seen, current);
|
|
56
|
+
emit({ previous: Option.some(previous), current });
|
|
57
|
+
});
|
|
58
|
+
yield* Effect.addFinalizer(() => Effect.sync(() => {
|
|
59
|
+
MutableRef.set(active, false);
|
|
60
|
+
unsubscribe();
|
|
61
|
+
}));
|
|
62
|
+
if (config.emitInitial === true) {
|
|
63
|
+
// Defer until reducers and procedures from the same layer build have registered.
|
|
64
|
+
scheduler.schedule([() => emit({ previous: Option.none(), current: initial })]);
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AnyEvent } from './event.js';
|
|
2
|
+
export interface EventGroupClass<Members extends ReadonlyArray<AnyEvent>> {
|
|
3
|
+
new (): {};
|
|
4
|
+
readonly kind: 'EventGroup';
|
|
5
|
+
readonly members: Members;
|
|
6
|
+
}
|
|
7
|
+
export declare const make: <const Members extends ReadonlyArray<AnyEvent>>(...members: Members) => EventGroupClass<Members>;
|
|
8
|
+
//# sourceMappingURL=eventGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventGroup.d.ts","sourceRoot":"","sources":["../../src/event/eventGroup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,aAAa,CAAC,QAAQ,CAAC;IACtE,QAAQ,EAAE,CAAA;IACV,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,QAAQ,CAAC,EAChE,GAAG,SAAS,OAAO,KAClB,eAAe,CAAC,OAAO,CAC2D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventGroup.js","sourceRoot":"","sources":["../../src/event/eventGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAS1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,GAAG,OAAgB,EACO,EAAE,CAC5B,eAAe,CAA2B,EAAE,IAAI,EAAE,YAAqB,EAAE,OAAO,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Schema } from 'effect';
|
|
2
|
+
import type { AnyComposition, CompositionClass } from '../compose/composition.js';
|
|
3
|
+
import type { UiContract } from '../compose/ui.js';
|
|
4
|
+
import { FeatureGraphValidTypeId } from '../graph/closure.js';
|
|
5
|
+
import type { EagerFeatureClass, LazyFeatureClass } from './featureClass.js';
|
|
6
|
+
import { type EagerFeatureConfigExternalApi, type FeatureMountProps, type FeatureUsesInput, type LazyFeatureConfigExternalApi } from './featureConfig.js';
|
|
7
|
+
import type { FeatureRequirement } from './featureRequirement.js';
|
|
8
|
+
export type { EngineServices } from '../runtime/loop.js';
|
|
9
|
+
export { FeatureGraphValidTypeId };
|
|
10
|
+
export { FeatureInput } from './featureRequirement.js';
|
|
11
|
+
export type { FeatureModuleInput, FeatureRequirement, ProvidedBy, RequireCarrier, } from './featureRequirement.js';
|
|
12
|
+
export { featureModule, featureModuleFromInput, lazyImport } from './featureModule.js';
|
|
13
|
+
export type { AnyLoadedModule, FeatureModule, LoadedModule, LoadedModuleCapture } from './featureModule.js';
|
|
14
|
+
export { FeatureBindingTypeId, isFeatureBinding, tree } from './featureBinding.js';
|
|
15
|
+
export type { AnyFeatureBinding, AnyFeatureBindingExternalApi, CapturedFeatureBinding, FailedProps, FeatureBinding, FeatureBindingCapture, FeatureBindingType, FeatureDefinition, FeatureIdentityToken, FeatureManifest, FeatureOpenServices, FeatureSupportOpenServices, FeatureToken, FeatureTreeCarrier, ProvideableFeature, } from './featureBinding.js';
|
|
16
|
+
export type { EagerFeatureNativeTree, FeatureNativeTree, LazyFeatureNativeTree, } from './featureNativeTree.js';
|
|
17
|
+
export type { EagerFeatureClass, FeatureClass, LazyFeatureClass } from './featureClass.js';
|
|
18
|
+
export { isFeature } from './featureConfig.js';
|
|
19
|
+
export type { FeatureMountProps, Placeholders } from './featureConfig.js';
|
|
20
|
+
export { mountFeature } from './mountFeature.js';
|
|
21
|
+
export declare function make<P, C extends UiContract, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>, OpenServices, S extends ReadonlyArray<unknown>, N extends string, Identity, const Composition extends CompositionClass<P, C, S, N, Identity>>(name: string, config: EagerFeatureConfigExternalApi<P, C, ROut, DirectRequires, OpenServices, S, N, Identity> & {
|
|
22
|
+
readonly composition: Composition;
|
|
23
|
+
}): EagerFeatureClass<Identity, P, C, ROut, DirectRequires, OpenServices, S, N, Identity, Composition>;
|
|
24
|
+
export declare function make<CompositionProps, C extends UiContract, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>, OpenServices, S extends ReadonlyArray<unknown>, N extends string, Identity, const Composition extends CompositionClass<CompositionProps, C, S, N, Identity>, const Loading extends AnyComposition, const Failed extends AnyComposition, const InputSchema extends Schema.Schema.AnyNoContext = never, SupportOut = never, SupportDirectRequires extends ReadonlyArray<FeatureRequirement> = readonly [], SupportOpenServices = never>(name: string, config: LazyFeatureConfigExternalApi<CompositionProps, C, ROut, DirectRequires, OpenServices, SupportOut, SupportDirectRequires, SupportOpenServices, S, N, Identity, InputSchema, Loading, Failed> & {
|
|
25
|
+
readonly composition: Composition;
|
|
26
|
+
}): LazyFeatureClass<Identity, FeatureMountProps<FeatureUsesInput<InputSchema>, CompositionProps, InputSchema>, C, ROut, DirectRequires, OpenServices, SupportOut, SupportDirectRequires, SupportOpenServices, FeatureUsesInput<InputSchema>, S, N, CompositionProps, Identity, Composition>;
|
|
27
|
+
//# sourceMappingURL=feature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../src/feature/feature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import { FeatureGraphValidTypeId } from '../graph/closure.js';
|
|
3
|
+
import { isMakeImplementationConfig, } from './featureConfig.js';
|
|
4
|
+
import { makeEagerFeature, makeLazyFeature } from './featureVariants.js';
|
|
5
|
+
export { FeatureGraphValidTypeId };
|
|
6
|
+
export { FeatureInput } from './featureRequirement.js';
|
|
7
|
+
export { featureModule, featureModuleFromInput, lazyImport } from './featureModule.js';
|
|
8
|
+
export { FeatureBindingTypeId, isFeatureBinding, tree } from './featureBinding.js';
|
|
9
|
+
export { isFeature } from './featureConfig.js';
|
|
10
|
+
export { mountFeature } from './mountFeature.js';
|
|
11
|
+
export function make(name, config) {
|
|
12
|
+
if (!isMakeImplementationConfig(config)) {
|
|
13
|
+
return Effect.runSync(Effect.dieMessage(`Invalid Feature config for ${name}`));
|
|
14
|
+
}
|
|
15
|
+
if (config.loadingStrategy === 'lazy') {
|
|
16
|
+
return makeLazyFeature(name, config);
|
|
17
|
+
}
|
|
18
|
+
return makeEagerFeature(name, config);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/feature/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,QAAQ,CAAA;AAG5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,OAAO,EAKL,0BAA0B,GAE3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOnD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEnF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAwB/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAuF7C,MAAM,UAAU,IAAI,CAiBlB,IAAY,EACZ,MA4B4C;IA+B5C,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QACtC,OAAO,eAAe,CAgBpB,IAAI,EAAE,MAAM,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,gBAAgB,CAUrB,IAAI,EAAE,MAAM,CAAC,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Effect, Option } from 'effect';
|
|
2
|
+
import type { AnyComposition, CompositionClass } from '../compose/composition.js';
|
|
3
|
+
import type { Manifest } from '../definition/definition.js';
|
|
4
|
+
import { type AnyFeatureGraphSummary, FeatureGraphValidTypeId, type FeatureSummaryCompositionIdentity, type FeatureSummaryCompositionProps, type FeatureSummaryContract, type FeatureSummaryInput, type FeatureSummaryName, type FeatureSummaryOpenServices, type FeatureSummaryStates, type FeatureSummarySupportOpenServices, type FeatureSummaryUsesInput } from '../graph/closure.js';
|
|
5
|
+
import type { FeatureLoadFailed } from '../internal/errors.js';
|
|
6
|
+
import type { Tagged } from '../runtime/bus.js';
|
|
7
|
+
import type { LoadedModule } from './featureModule.js';
|
|
8
|
+
import type { FeatureRequirement } from './featureRequirement.js';
|
|
9
|
+
export interface FailedProps {
|
|
10
|
+
readonly error: FeatureLoadFailed;
|
|
11
|
+
readonly retry: () => void;
|
|
12
|
+
}
|
|
13
|
+
export interface FeatureManifest extends Manifest {
|
|
14
|
+
readonly kind: 'Feature';
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly strategy: 'lazy' | 'default';
|
|
17
|
+
readonly composition: Manifest & {
|
|
18
|
+
readonly kind: 'Composition';
|
|
19
|
+
};
|
|
20
|
+
readonly placeholder: Option.Option<{
|
|
21
|
+
readonly loading: Manifest & {
|
|
22
|
+
readonly kind: 'Composition';
|
|
23
|
+
};
|
|
24
|
+
readonly failed: Manifest & {
|
|
25
|
+
readonly kind: 'Composition';
|
|
26
|
+
};
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
export declare const FeatureBindingTypeId: unique symbol;
|
|
30
|
+
export type FeatureBindingTypeId = typeof FeatureBindingTypeId;
|
|
31
|
+
export type FeatureBindingType = FeatureBindingTypeId;
|
|
32
|
+
export declare const FeatureTokenIdentityTypeId: unique symbol;
|
|
33
|
+
export declare const FeatureNativeTypeId: unique symbol;
|
|
34
|
+
export interface FeatureIdentityToken<out FeatureIdentity> {
|
|
35
|
+
readonly identity: symbol;
|
|
36
|
+
readonly [FeatureTokenIdentityTypeId]: readonly [] | readonly [FeatureIdentity];
|
|
37
|
+
}
|
|
38
|
+
export interface FeatureToken<out FeatureIdentity, out NativeTree extends object> extends FeatureIdentityToken<FeatureIdentity> {
|
|
39
|
+
readonly [FeatureNativeTypeId]: NativeTree;
|
|
40
|
+
}
|
|
41
|
+
export interface FeatureTreeCarrier {
|
|
42
|
+
readonly token: FeatureToken<unknown, object>;
|
|
43
|
+
}
|
|
44
|
+
type Native<Feature extends FeatureTreeCarrier, Token extends Feature['token'] = Feature['token']> = Token[typeof FeatureNativeTypeId];
|
|
45
|
+
export declare const tree: <Feature extends FeatureTreeCarrier, Token extends Feature["token"] = Feature["token"]>(token: Token) => Native<Feature, Token>;
|
|
46
|
+
export interface ProvideableFeature<out FeatureIdentity, out Summary extends AnyFeatureGraphSummary> {
|
|
47
|
+
new (): {};
|
|
48
|
+
readonly manifest: FeatureManifest;
|
|
49
|
+
readonly token: FeatureIdentityToken<FeatureIdentity>;
|
|
50
|
+
readonly summary: Summary;
|
|
51
|
+
}
|
|
52
|
+
export interface FeatureDefinition<out FeatureIdentity, out Summary extends AnyFeatureGraphSummary, out NativeTree extends object> extends ProvideableFeature<FeatureIdentity, Summary> {
|
|
53
|
+
readonly token: FeatureToken<FeatureIdentity, NativeTree>;
|
|
54
|
+
}
|
|
55
|
+
export type FeatureOpenServices<Feature extends {
|
|
56
|
+
readonly summary: AnyFeatureGraphSummary;
|
|
57
|
+
}> = FeatureSummaryOpenServices<Feature['summary']>;
|
|
58
|
+
export type FeatureSupportOpenServices<Feature extends {
|
|
59
|
+
readonly summary: AnyFeatureGraphSummary;
|
|
60
|
+
}> = FeatureSummarySupportOpenServices<Feature['summary']>;
|
|
61
|
+
export interface AnyFeatureBindingExternalApi {
|
|
62
|
+
readonly [FeatureBindingTypeId]: FeatureBindingTypeId;
|
|
63
|
+
readonly [FeatureGraphValidTypeId]: FeatureGraphValidTypeId;
|
|
64
|
+
readonly capture: <Result>(visit: FeatureBindingCapture<Result>) => Result;
|
|
65
|
+
}
|
|
66
|
+
export type AnyFeatureBinding = AnyFeatureBindingExternalApi;
|
|
67
|
+
export interface FeatureBinding<Summary extends AnyFeatureGraphSummary, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>> extends AnyFeatureBindingExternalApi {
|
|
68
|
+
readonly manifest: FeatureManifest;
|
|
69
|
+
readonly identity: symbol;
|
|
70
|
+
readonly summary: Summary;
|
|
71
|
+
readonly composition: CompositionClass<FeatureSummaryCompositionProps<Summary>, FeatureSummaryContract<Summary>, FeatureSummaryStates<Summary>, FeatureSummaryName<Summary>, FeatureSummaryCompositionIdentity<Summary>>;
|
|
72
|
+
readonly strategy: 'lazy' | 'default';
|
|
73
|
+
readonly load: Effect.Effect<LoadedModule<ROut, DirectRequires, FeatureSummaryOpenServices<Summary>, FeatureSummaryUsesInput<Summary>, FeatureSummaryInput<Summary>>, FeatureLoadFailed>;
|
|
74
|
+
readonly placeholder: Option.Option<{
|
|
75
|
+
readonly loading: AnyComposition;
|
|
76
|
+
readonly failed: AnyComposition;
|
|
77
|
+
}>;
|
|
78
|
+
readonly parseInput: (input: unknown) => Option.Option<unknown>;
|
|
79
|
+
readonly boot: ReadonlyArray<Tagged>;
|
|
80
|
+
}
|
|
81
|
+
export type CapturedFeatureBinding<Summary extends AnyFeatureGraphSummary, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>> = FeatureBinding<Summary, ROut, DirectRequires>;
|
|
82
|
+
export type FeatureBindingCapture<Result> = <Summary extends AnyFeatureGraphSummary, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>>(binding: FeatureBinding<Summary, ROut, DirectRequires>) => Result;
|
|
83
|
+
export declare const isFeatureBinding: (candidate: unknown) => candidate is AnyFeatureBinding;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=featureBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureBinding.d.ts","sourceRoot":"","sources":["../../src/feature/featureBinding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeatureGraphValidTypeId, } from '../graph/closure.js';
|
|
2
|
+
export const FeatureBindingTypeId = Symbol.for('reform/FeatureBinding');
|
|
3
|
+
export const FeatureTokenIdentityTypeId = Symbol('reform/FeatureTokenIdentity');
|
|
4
|
+
export const FeatureNativeTypeId = Symbol('reform/FeatureNative');
|
|
5
|
+
export const tree = (token) => token[FeatureNativeTypeId];
|
|
6
|
+
export const isFeatureBinding = (candidate) => typeof candidate === 'object' &&
|
|
7
|
+
candidate !== null &&
|
|
8
|
+
FeatureBindingTypeId in candidate &&
|
|
9
|
+
FeatureGraphValidTypeId in candidate;
|
|
10
|
+
//# sourceMappingURL=featureBinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureBinding.js","sourceRoot":"","sources":["../../src/feature/featureBinding.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,uBAAuB,GAUxB,MAAM,kBAAkB,CAAA;AAsBzB,MAAM,CAAC,MAAM,oBAAoB,GAAkB,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAItF,MAAM,CAAC,MAAM,0BAA0B,GAAkB,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAC9F,MAAM,CAAC,MAAM,mBAAmB,GAAkB,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAuBhF,MAAM,CAAC,MAAM,IAAI,GAAG,CAIlB,KAAY,EACY,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAmFvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAkB,EAAkC,EAAE,CACrF,OAAO,SAAS,KAAK,QAAQ;IAC7B,SAAS,KAAK,IAAI;IAClB,oBAAoB,IAAI,SAAS;IACjC,uBAAuB,IAAI,SAAS,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CompositionClass } from '../compose/composition.js';
|
|
2
|
+
import type { UiContract } from '../compose/ui.js';
|
|
3
|
+
import type { FeatureDefinition } from './featureBinding.js';
|
|
4
|
+
import type { EagerFeatureNativeTree, FeatureNativeTree, FeatureSummaryOf, LazyFeatureNativeTree } from './featureNativeTree.js';
|
|
5
|
+
import type { DefaultFeatureOpenServices, FeatureRequirement, RootCompositionIdentity, RootCompositionName } from './featureRequirement.js';
|
|
6
|
+
export interface FeatureClass<FeatureIdentity, P, C extends UiContract, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>, OpenServices = DefaultFeatureOpenServices<ROut, DirectRequires>, SupportOut = never, SupportDirectRequires extends ReadonlyArray<FeatureRequirement> = readonly [], SupportOpenServices = DefaultFeatureOpenServices<SupportOut, SupportDirectRequires>, UsesInput extends boolean = false, Input = UsesInput extends true ? P : never, S extends ReadonlyArray<unknown> = ReadonlyArray<unknown>, N extends string = RootCompositionName<ROut>, CompositionProps = P, Identity = RootCompositionIdentity<ROut>, Composition extends CompositionClass<CompositionProps, C, S, N, Identity> = CompositionClass<CompositionProps, C, S, N, Identity>> extends FeatureDefinition<FeatureIdentity, FeatureSummaryOf<FeatureIdentity, P, CompositionProps, C, S, N, Identity, OpenServices, SupportOpenServices, UsesInput, Input>, FeatureNativeTree<FeatureSummaryOf<FeatureIdentity, P, CompositionProps, C, S, N, Identity, OpenServices, SupportOpenServices, UsesInput, Input>, ROut, DirectRequires, SupportOut, SupportDirectRequires, Composition>> {
|
|
7
|
+
}
|
|
8
|
+
export type EagerFeatureClass<FeatureIdentity, P, C extends UiContract, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>, OpenServices, S extends ReadonlyArray<unknown>, N extends string, Identity, Composition extends CompositionClass<P, C, S, N, Identity> = CompositionClass<P, C, S, N, Identity>> = FeatureDefinition<FeatureIdentity, FeatureSummaryOf<FeatureIdentity, P, P, C, S, N, Identity, OpenServices, never, false, never>, EagerFeatureNativeTree<FeatureSummaryOf<FeatureIdentity, P, P, C, S, N, Identity, OpenServices, never, false, never>, ROut, DirectRequires, Composition>>;
|
|
9
|
+
export type LazyFeatureClass<FeatureIdentity, P, C extends UiContract, ROut, DirectRequires extends ReadonlyArray<FeatureRequirement>, OpenServices, SupportOut, SupportDirectRequires extends ReadonlyArray<FeatureRequirement>, SupportOpenServices, UsesInput extends boolean, S extends ReadonlyArray<unknown>, N extends string, CompositionProps, Identity, Composition extends CompositionClass<CompositionProps, C, S, N, Identity> = CompositionClass<CompositionProps, C, S, N, Identity>> = FeatureDefinition<FeatureIdentity, FeatureSummaryOf<FeatureIdentity, P, CompositionProps, C, S, N, Identity, OpenServices, SupportOpenServices, UsesInput, UsesInput extends true ? P : never>, LazyFeatureNativeTree<FeatureSummaryOf<FeatureIdentity, P, CompositionProps, C, S, N, Identity, OpenServices, SupportOpenServices, UsesInput, UsesInput extends true ? P : never>, ROut, DirectRequires, SupportOut, SupportDirectRequires, Composition>>;
|
|
10
|
+
//# sourceMappingURL=featureClass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureClass.d.ts","sourceRoot":"","sources":["../../src/feature/featureClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureClass.js","sourceRoot":"","sources":["../../src/feature/featureClass.ts"],"names":[],"mappings":""}
|