roblox-opencode 1.0.0 → 1.0.2
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/README.md +112 -122
- package/commands/setup-game.md +108 -108
- package/commands/sync-check.md +53 -53
- package/core/roblox-core.md +93 -93
- package/dist/server.js +189 -167
- package/package.json +35 -35
- package/skills/roblox-analytics/SKILL.md +277 -277
- package/skills/roblox-analytics/references/event-batcher.luau +75 -75
- package/skills/roblox-animation-vfx/SKILL.md +1325 -1325
- package/skills/roblox-architecture/SKILL.md +877 -863
- package/skills/roblox-architecture/references/combat-systems.md +1381 -1381
- package/skills/roblox-code-review/SKILL.md +686 -686
- package/skills/roblox-data/SKILL.md +889 -889
- package/skills/roblox-data/references/inventory-systems.md +1729 -1729
- package/skills/roblox-debug/SKILL.md +98 -98
- package/skills/roblox-gui/SKILL.md +1103 -1103
- package/skills/roblox-gui-fusion/SKILL.md +150 -150
- package/skills/roblox-gui-fusion/references/inventory.luau +427 -427
- package/skills/roblox-gui-fusion/references/settings-menu.luau +579 -579
- package/skills/roblox-gui-fusion/references/shop.luau +411 -411
- package/skills/roblox-luau-mastery/SKILL.md +1618 -1519
- package/skills/roblox-monetization/SKILL.md +1084 -1084
- package/skills/roblox-monetization/references/process-receipt.luau +131 -131
- package/skills/roblox-networking/SKILL.md +669 -669
- package/skills/roblox-networking/references/remote-validator.luau +193 -193
- package/skills/roblox-publish-checklist/SKILL.md +127 -127
- package/skills/roblox-runtime/SKILL.md +753 -753
- package/skills/roblox-sharp-edges/SKILL.md +294 -294
- package/skills/roblox-sync/SKILL.md +126 -126
- package/skills/roblox-testing/SKILL.md +943 -943
- package/skills/roblox-tooling/SKILL.md +149 -149
- package/vendor/LICENSES/ProfileStore-LICENSE +201 -201
- package/vendor/LICENSES/RbxUtil-LICENSE +7 -7
- package/vendor/LICENSES/promise-LICENSE +20 -20
- package/vendor/LICENSES/t-LICENSE +21 -21
- package/vendor/LICENSES/testez-LICENSE +200 -200
- package/vendor/README.md +83 -83
- package/vendor/fusion/Animation/ExternalTime.luau +83 -83
- package/vendor/fusion/Animation/Spring.luau +321 -321
- package/vendor/fusion/Animation/Stopwatch.luau +127 -127
- package/vendor/fusion/Animation/Tween.luau +187 -187
- package/vendor/fusion/Animation/getTweenDuration.luau +27 -27
- package/vendor/fusion/Animation/getTweenRatio.luau +47 -47
- package/vendor/fusion/Animation/lerpType.luau +163 -163
- package/vendor/fusion/Animation/packType.luau +99 -99
- package/vendor/fusion/Animation/springCoefficients.luau +80 -80
- package/vendor/fusion/Animation/unpackType.luau +102 -102
- package/vendor/fusion/Colour/Oklab.luau +70 -70
- package/vendor/fusion/Colour/sRGB.luau +54 -54
- package/vendor/fusion/External.luau +167 -167
- package/vendor/fusion/ExternalDebug.luau +69 -69
- package/vendor/fusion/Graph/Observer.luau +113 -113
- package/vendor/fusion/Graph/castToGraph.luau +28 -28
- package/vendor/fusion/Graph/change.luau +80 -80
- package/vendor/fusion/Graph/depend.luau +32 -32
- package/vendor/fusion/Graph/evaluate.luau +55 -55
- package/vendor/fusion/Instances/Attribute.luau +57 -57
- package/vendor/fusion/Instances/AttributeChange.luau +46 -46
- package/vendor/fusion/Instances/AttributeOut.luau +63 -63
- package/vendor/fusion/Instances/Child.luau +21 -21
- package/vendor/fusion/Instances/Children.luau +147 -147
- package/vendor/fusion/Instances/Hydrate.luau +32 -32
- package/vendor/fusion/Instances/New.luau +52 -52
- package/vendor/fusion/Instances/OnChange.luau +49 -49
- package/vendor/fusion/Instances/OnEvent.luau +53 -53
- package/vendor/fusion/Instances/Out.luau +69 -69
- package/vendor/fusion/Instances/applyInstanceProps.luau +148 -148
- package/vendor/fusion/Instances/defaultProps.luau +194 -194
- package/vendor/fusion/LICENSE +21 -21
- package/vendor/fusion/Logging/formatError.luau +48 -48
- package/vendor/fusion/Logging/messages.luau +51 -51
- package/vendor/fusion/Logging/parseError.luau +24 -24
- package/vendor/fusion/Memory/checkLifetime.luau +133 -133
- package/vendor/fusion/Memory/deriveScope.luau +23 -23
- package/vendor/fusion/Memory/deriveScopeImpl.luau +44 -44
- package/vendor/fusion/Memory/doCleanup.luau +78 -78
- package/vendor/fusion/Memory/innerScope.luau +33 -33
- package/vendor/fusion/Memory/legacyCleanup.luau +17 -17
- package/vendor/fusion/Memory/needsDestruction.luau +16 -16
- package/vendor/fusion/Memory/poisonScope.luau +33 -33
- package/vendor/fusion/Memory/scopePool.luau +54 -54
- package/vendor/fusion/Memory/scoped.luau +26 -26
- package/vendor/fusion/Memory/whichLivesLonger.luau +74 -74
- package/vendor/fusion/RobloxExternal.luau +97 -97
- package/vendor/fusion/State/Computed.luau +138 -138
- package/vendor/fusion/State/For/Disassembly.luau +210 -210
- package/vendor/fusion/State/For/ForTypes.luau +30 -30
- package/vendor/fusion/State/For/init.luau +109 -109
- package/vendor/fusion/State/ForKeys.luau +93 -93
- package/vendor/fusion/State/ForPairs.luau +96 -96
- package/vendor/fusion/State/ForValues.luau +93 -93
- package/vendor/fusion/State/Value.luau +87 -87
- package/vendor/fusion/State/castToState.luau +25 -25
- package/vendor/fusion/State/peek.luau +30 -30
- package/vendor/fusion/Types.luau +314 -314
- package/vendor/fusion/Utility/Contextual.luau +90 -90
- package/vendor/fusion/Utility/Safe.luau +22 -22
- package/vendor/fusion/Utility/isSimilar.luau +29 -29
- package/vendor/fusion/Utility/merge.luau +35 -35
- package/vendor/fusion/Utility/nameOf.luau +34 -34
- package/vendor/fusion/Utility/never.luau +13 -13
- package/vendor/fusion/Utility/nicknames.luau +10 -10
- package/vendor/fusion/Utility/xtypeof.luau +26 -26
- package/vendor/fusion/init.luau +82 -82
- package/vendor/profilestore/init.luau +2242 -2242
- package/vendor/promise/init.luau +1982 -1982
- package/vendor/rbxutil/buffer-util/Buffer.test.luau +25 -25
- package/vendor/rbxutil/buffer-util/BufferReader.luau +228 -228
- package/vendor/rbxutil/buffer-util/BufferWriter.luau +269 -269
- package/vendor/rbxutil/buffer-util/DataTypeBuffer.luau +223 -223
- package/vendor/rbxutil/buffer-util/Types.luau +60 -60
- package/vendor/rbxutil/buffer-util/index.d.ts +153 -153
- package/vendor/rbxutil/buffer-util/init.luau +41 -41
- package/vendor/rbxutil/buffer-util/package.json +16 -16
- package/vendor/rbxutil/buffer-util/wally.toml +9 -9
- package/vendor/rbxutil/comm/Client/ClientComm.luau +232 -232
- package/vendor/rbxutil/comm/Client/ClientRemoteProperty.luau +156 -156
- package/vendor/rbxutil/comm/Client/ClientRemoteSignal.luau +109 -109
- package/vendor/rbxutil/comm/Client/init.luau +135 -135
- package/vendor/rbxutil/comm/Server/RemoteProperty.luau +295 -295
- package/vendor/rbxutil/comm/Server/RemoteSignal.luau +211 -211
- package/vendor/rbxutil/comm/Server/ServerComm.luau +211 -211
- package/vendor/rbxutil/comm/Server/init.luau +140 -140
- package/vendor/rbxutil/comm/Types.luau +18 -18
- package/vendor/rbxutil/comm/Util.luau +27 -27
- package/vendor/rbxutil/comm/init.luau +35 -35
- package/vendor/rbxutil/comm/wally.toml +13 -13
- package/vendor/rbxutil/component/init.luau +759 -759
- package/vendor/rbxutil/component/init.test.luau +311 -311
- package/vendor/rbxutil/component/wally.toml +14 -14
- package/vendor/rbxutil/concur/init.luau +542 -542
- package/vendor/rbxutil/concur/init.test.luau +364 -364
- package/vendor/rbxutil/concur/wally.toml +8 -8
- package/vendor/rbxutil/enum-list/init.luau +101 -101
- package/vendor/rbxutil/enum-list/init.test.luau +91 -91
- package/vendor/rbxutil/enum-list/wally.toml +8 -8
- package/vendor/rbxutil/find/index.d.ts +20 -20
- package/vendor/rbxutil/find/init.luau +44 -44
- package/vendor/rbxutil/find/package.json +17 -17
- package/vendor/rbxutil/find/wally.toml +8 -8
- package/vendor/rbxutil/input/Gamepad.luau +559 -559
- package/vendor/rbxutil/input/Keyboard.luau +124 -124
- package/vendor/rbxutil/input/Mouse.luau +278 -278
- package/vendor/rbxutil/input/PreferredInput.luau +91 -91
- package/vendor/rbxutil/input/Touch.luau +120 -120
- package/vendor/rbxutil/input/init.luau +33 -33
- package/vendor/rbxutil/input/wally.toml +12 -12
- package/vendor/rbxutil/loader/index.d.ts +15 -15
- package/vendor/rbxutil/loader/init.luau +137 -137
- package/vendor/rbxutil/loader/wally.toml +8 -8
- package/vendor/rbxutil/log/index.d.ts +38 -38
- package/vendor/rbxutil/log/init.luau +746 -746
- package/vendor/rbxutil/log/wally.toml +8 -8
- package/vendor/rbxutil/net/init.luau +190 -190
- package/vendor/rbxutil/net/wally.toml +8 -8
- package/vendor/rbxutil/option/index.d.ts +44 -44
- package/vendor/rbxutil/option/init.luau +489 -489
- package/vendor/rbxutil/option/init.test.luau +342 -342
- package/vendor/rbxutil/option/wally.toml +8 -8
- package/vendor/rbxutil/pid/index.d.ts +53 -53
- package/vendor/rbxutil/pid/init.luau +195 -195
- package/vendor/rbxutil/pid/package.json +16 -16
- package/vendor/rbxutil/pid/wally.toml +9 -9
- package/vendor/rbxutil/quaternion/index.d.ts +117 -117
- package/vendor/rbxutil/quaternion/init.luau +570 -570
- package/vendor/rbxutil/quaternion/package.json +16 -16
- package/vendor/rbxutil/quaternion/wally.toml +9 -9
- package/vendor/rbxutil/query/index.d.ts +43 -43
- package/vendor/rbxutil/query/init.luau +117 -117
- package/vendor/rbxutil/query/package.json +18 -18
- package/vendor/rbxutil/query/wally.toml +9 -9
- package/vendor/rbxutil/sequent/index.d.ts +28 -28
- package/vendor/rbxutil/sequent/init.luau +340 -340
- package/vendor/rbxutil/sequent/package.json +16 -16
- package/vendor/rbxutil/sequent/wally.toml +9 -9
- package/vendor/rbxutil/ser/init.luau +175 -175
- package/vendor/rbxutil/ser/init.test.luau +50 -50
- package/vendor/rbxutil/ser/wally.toml +11 -11
- package/vendor/rbxutil/shake/index.d.ts +36 -36
- package/vendor/rbxutil/shake/init.luau +532 -532
- package/vendor/rbxutil/shake/init.test.luau +267 -267
- package/vendor/rbxutil/shake/package.json +16 -16
- package/vendor/rbxutil/shake/wally.toml +9 -9
- package/vendor/rbxutil/signal/index.d.ts +100 -100
- package/vendor/rbxutil/signal/init.luau +432 -432
- package/vendor/rbxutil/signal/init.test.luau +190 -190
- package/vendor/rbxutil/signal/package.json +17 -17
- package/vendor/rbxutil/signal/wally.toml +9 -9
- package/vendor/rbxutil/silo/TableWatcher.luau +65 -65
- package/vendor/rbxutil/silo/Util.luau +55 -55
- package/vendor/rbxutil/silo/init.luau +338 -338
- package/vendor/rbxutil/silo/init.test.luau +215 -215
- package/vendor/rbxutil/silo/wally.toml +8 -8
- package/vendor/rbxutil/spring/index.d.ts +40 -40
- package/vendor/rbxutil/spring/init.luau +97 -97
- package/vendor/rbxutil/spring/package.json +17 -17
- package/vendor/rbxutil/spring/wally.toml +8 -8
- package/vendor/rbxutil/stream/index.d.ts +88 -88
- package/vendor/rbxutil/stream/init.luau +597 -597
- package/vendor/rbxutil/stream/package.json +18 -18
- package/vendor/rbxutil/stream/wally.toml +9 -9
- package/vendor/rbxutil/streamable/Streamable.luau +202 -202
- package/vendor/rbxutil/streamable/StreamableUtil.luau +80 -80
- package/vendor/rbxutil/streamable/init.luau +8 -8
- package/vendor/rbxutil/streamable/wally.toml +12 -12
- package/vendor/rbxutil/symbol/init.luau +56 -56
- package/vendor/rbxutil/symbol/init.test.luau +37 -37
- package/vendor/rbxutil/symbol/wally.toml +8 -8
- package/vendor/rbxutil/table-util/init.luau +938 -938
- package/vendor/rbxutil/table-util/init.test.luau +439 -439
- package/vendor/rbxutil/task-queue/index.d.ts +27 -27
- package/vendor/rbxutil/task-queue/init.luau +97 -97
- package/vendor/rbxutil/task-queue/wally.toml +8 -8
- package/vendor/rbxutil/timer/index.d.ts +81 -81
- package/vendor/rbxutil/timer/init.luau +249 -249
- package/vendor/rbxutil/timer/init.test.luau +73 -73
- package/vendor/rbxutil/timer/wally.toml +11 -11
- package/vendor/rbxutil/tree/index.d.ts +15 -15
- package/vendor/rbxutil/tree/init.luau +137 -137
- package/vendor/rbxutil/tree/wally.toml +8 -8
- package/vendor/rbxutil/trove/index.d.ts +46 -46
- package/vendor/rbxutil/trove/init.luau +787 -787
- package/vendor/rbxutil/trove/init.test.luau +203 -203
- package/vendor/rbxutil/trove/wally.toml +8 -8
- package/vendor/rbxutil/typed-remote/init.luau +196 -196
- package/vendor/rbxutil/typed-remote/wally.toml +8 -8
- package/vendor/rbxutil/wait-for/index.d.ts +17 -17
- package/vendor/rbxutil/wait-for/init.luau +257 -257
- package/vendor/rbxutil/wait-for/init.test.luau +182 -182
- package/vendor/rbxutil/wait-for/wally.toml +11 -11
- package/vendor/t/t.lua +1350 -1350
- package/vendor/testez/Context.lua +26 -26
- package/vendor/testez/Expectation.lua +311 -311
- package/vendor/testez/ExpectationContext.lua +38 -38
- package/vendor/testez/LifecycleHooks.lua +89 -89
- package/vendor/testez/Reporters/TeamCityReporter.lua +101 -101
- package/vendor/testez/Reporters/TextReporter.lua +105 -105
- package/vendor/testez/Reporters/TextReporterQuiet.lua +96 -96
- package/vendor/testez/TestBootstrap.lua +146 -146
- package/vendor/testez/TestEnum.lua +27 -27
- package/vendor/testez/TestPlan.lua +304 -304
- package/vendor/testez/TestPlanner.lua +39 -39
- package/vendor/testez/TestResults.lua +111 -111
- package/vendor/testez/TestRunner.lua +188 -188
- package/vendor/testez/TestSession.lua +243 -243
- package/vendor/testez/init.lua +39 -39
package/vendor/fusion/Types.luau
CHANGED
|
@@ -1,314 +1,314 @@
|
|
|
1
|
-
--!strict
|
|
2
|
-
--!nolint LocalUnused
|
|
3
|
-
--!nolint LocalShadow
|
|
4
|
-
local task = nil -- Disable usage of Roblox's task scheduler
|
|
5
|
-
|
|
6
|
-
--[[
|
|
7
|
-
Stores common public-facing type information for Fusion APIs.
|
|
8
|
-
]]
|
|
9
|
-
|
|
10
|
-
export type Error = {
|
|
11
|
-
type: "Error",
|
|
12
|
-
raw: string,
|
|
13
|
-
message: string,
|
|
14
|
-
trace: string,
|
|
15
|
-
context: string?
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
-- Types that can be expressed as vectors of numbers, and so can be animated.
|
|
19
|
-
export type Animatable =
|
|
20
|
-
number |
|
|
21
|
-
CFrame |
|
|
22
|
-
Color3 |
|
|
23
|
-
ColorSequenceKeypoint |
|
|
24
|
-
DateTime |
|
|
25
|
-
NumberRange |
|
|
26
|
-
NumberSequenceKeypoint |
|
|
27
|
-
PhysicalProperties |
|
|
28
|
-
Ray |
|
|
29
|
-
Rect |
|
|
30
|
-
Region3 |
|
|
31
|
-
Region3int16 |
|
|
32
|
-
UDim |
|
|
33
|
-
UDim2 |
|
|
34
|
-
Vector2 |
|
|
35
|
-
Vector2int16 |
|
|
36
|
-
Vector3 |
|
|
37
|
-
Vector3int16
|
|
38
|
-
|
|
39
|
-
-- A task which can be accepted for cleanup.
|
|
40
|
-
export type Task =
|
|
41
|
-
Instance |
|
|
42
|
-
RBXScriptConnection |
|
|
43
|
-
() -> () |
|
|
44
|
-
{destroy: (unknown) -> ()} |
|
|
45
|
-
{Destroy: (unknown) -> ()} |
|
|
46
|
-
{Task}
|
|
47
|
-
|
|
48
|
-
-- A scope of tasks to clean up.
|
|
49
|
-
export type Scope<Constructors = any> = {Task} & Constructors
|
|
50
|
-
|
|
51
|
-
-- An object which uses a scope to dictate how long it lives.
|
|
52
|
-
export type ScopedObject = {
|
|
53
|
-
scope: Scope<unknown>?,
|
|
54
|
-
oldestTask: unknown
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
-- Script-readable version information.
|
|
58
|
-
export type Version = {
|
|
59
|
-
major: number,
|
|
60
|
-
minor: number,
|
|
61
|
-
isRelease: boolean
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
-- An object which stores a value scoped in time.
|
|
65
|
-
export type Contextual<T> = {
|
|
66
|
-
type: "Contextual",
|
|
67
|
-
now: (Contextual<T>) -> T,
|
|
68
|
-
is: (Contextual<T>, T) -> ContextualIsMethods
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
type ContextualIsMethods = {
|
|
72
|
-
during: <R, A...>(ContextualIsMethods, (A...) -> R, A...) -> R
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
-- A graph object which can have dependencies and dependencies.
|
|
76
|
-
export type GraphObject = ScopedObject & {
|
|
77
|
-
createdAt: number,
|
|
78
|
-
dependencySet: {[GraphObject]: unknown},
|
|
79
|
-
dependentSet: {[GraphObject]: unknown},
|
|
80
|
-
lastChange: number?,
|
|
81
|
-
timeliness: "lazy" | "eager",
|
|
82
|
-
validity: "valid" | "invalid" | "busy",
|
|
83
|
-
_evaluate: (GraphObject) -> boolean
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
-- An object which stores a piece of reactive state.
|
|
87
|
-
export type StateObject<T> = GraphObject & {
|
|
88
|
-
type: "State",
|
|
89
|
-
kind: string,
|
|
90
|
-
_EXTREMELY_DANGEROUS_usedAsValue: T
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
-- Passing values of this type to `Use` returns `T`.
|
|
94
|
-
export type UsedAs<T> = StateObject<T> | T
|
|
95
|
-
|
|
96
|
-
-- Function signature for use callbacks.
|
|
97
|
-
export type Use = <T>(target: UsedAs<T>) -> T
|
|
98
|
-
|
|
99
|
-
-- A state object whose value can be set at any time by the user.
|
|
100
|
-
export type Value<T, S = T> = StateObject<T> & {
|
|
101
|
-
kind: "State",
|
|
102
|
-
timeliness: "lazy",
|
|
103
|
-
set: (Value<T, S>, newValue: S, force: boolean?) -> S,
|
|
104
|
-
____phantom_setType: (never) -> S -- phantom data so this contains S
|
|
105
|
-
}
|
|
106
|
-
export type ValueConstructor = <T>(
|
|
107
|
-
scope: Scope<unknown>,
|
|
108
|
-
initialValue: T
|
|
109
|
-
) -> Value<T, any>
|
|
110
|
-
|
|
111
|
-
-- A state object whose value is derived from other objects using a callback.
|
|
112
|
-
export type Computed<T> = StateObject<T> & {
|
|
113
|
-
kind: "Computed",
|
|
114
|
-
timeliness: "lazy"
|
|
115
|
-
}
|
|
116
|
-
export type ComputedConstructor = <T, S>(
|
|
117
|
-
scope: S & Scope<unknown>,
|
|
118
|
-
callback: (Use, S) -> T
|
|
119
|
-
) -> Computed<T>
|
|
120
|
-
|
|
121
|
-
-- A state object which maps over keys and/or values in another table.
|
|
122
|
-
export type For<KO, VO> = StateObject<{[KO]: VO}> & {
|
|
123
|
-
kind: "For"
|
|
124
|
-
}
|
|
125
|
-
export type ForPairsConstructor = <KI, KO, VI, VO, S>(
|
|
126
|
-
scope: S & Scope<unknown>,
|
|
127
|
-
inputTable: UsedAs<{[KI]: VI}>,
|
|
128
|
-
processor: (Use, S, key: KI, value: VI) -> (KO, VO)
|
|
129
|
-
) -> For<KO, VO>
|
|
130
|
-
export type ForKeysConstructor = <KI, KO, V, S>(
|
|
131
|
-
scope: S & Scope<unknown>,
|
|
132
|
-
inputTable: UsedAs<{[KI]: V}>,
|
|
133
|
-
processor: (Use, S, key: KI) -> KO
|
|
134
|
-
) -> For<KO, V>
|
|
135
|
-
export type ForValuesConstructor = <K, VI, VO, S>(
|
|
136
|
-
scope: S & Scope<unknown>,
|
|
137
|
-
inputTable: UsedAs<{[K]: VI}>,
|
|
138
|
-
processor: (Use, S, value: VI) -> VO
|
|
139
|
-
) -> For<K, VO>
|
|
140
|
-
|
|
141
|
-
-- An object which can listen for updates on another state object.
|
|
142
|
-
export type Observer = GraphObject & {
|
|
143
|
-
type: "Observer",
|
|
144
|
-
timeliness: "eager",
|
|
145
|
-
onChange: (Observer, callback: () -> ()) -> (() -> ()),
|
|
146
|
-
onBind: (Observer, callback: () -> ()) -> (() -> ())
|
|
147
|
-
}
|
|
148
|
-
export type ObserverConstructor = (
|
|
149
|
-
scope: Scope<unknown>,
|
|
150
|
-
watching: unknown
|
|
151
|
-
) -> Observer
|
|
152
|
-
|
|
153
|
-
-- A state object which follows another state object using tweens.
|
|
154
|
-
export type Tween<T> = StateObject<T> & {
|
|
155
|
-
kind: "Tween"
|
|
156
|
-
}
|
|
157
|
-
export type TweenConstructor = <T>(
|
|
158
|
-
scope: Scope<unknown>,
|
|
159
|
-
goalState: UsedAs<T>,
|
|
160
|
-
tweenInfo: UsedAs<TweenInfo>?
|
|
161
|
-
) -> Tween<T>
|
|
162
|
-
|
|
163
|
-
-- A state object which follows another state object using spring simulation.
|
|
164
|
-
export type Spring<T> = StateObject<T> & {
|
|
165
|
-
kind: "Spring",
|
|
166
|
-
setPosition: (Spring<T>, newPosition: T) -> (),
|
|
167
|
-
setVelocity: (Spring<T>, newVelocity: T) -> (),
|
|
168
|
-
addVelocity: (Spring<T>, deltaVelocity: T) -> ()
|
|
169
|
-
}
|
|
170
|
-
export type SpringConstructor = <T>(
|
|
171
|
-
scope: Scope<unknown>,
|
|
172
|
-
goalState: UsedAs<T>,
|
|
173
|
-
speed: UsedAs<number>?,
|
|
174
|
-
damping: UsedAs<number>?
|
|
175
|
-
) -> Spring<T>
|
|
176
|
-
|
|
177
|
-
-- Denotes children instances in an instance or component's property table.
|
|
178
|
-
export type SpecialKey = {
|
|
179
|
-
type: "SpecialKey",
|
|
180
|
-
kind: string,
|
|
181
|
-
stage: "self" | "descendants" | "ancestor" | "observer",
|
|
182
|
-
apply: (
|
|
183
|
-
self: SpecialKey,
|
|
184
|
-
scope: Scope<unknown>,
|
|
185
|
-
value: unknown,
|
|
186
|
-
applyTo: Instance
|
|
187
|
-
) -> ()
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
-- A collection of instances that may be parented to another instance.
|
|
191
|
-
export type Child = Instance | StateObject<Child> | {[unknown]: Child}
|
|
192
|
-
|
|
193
|
-
-- A table that defines an instance's properties, handlers and children.
|
|
194
|
-
export type PropertyTable = {[string | SpecialKey]: unknown}
|
|
195
|
-
|
|
196
|
-
export type NewConstructor = (
|
|
197
|
-
scope: Scope<unknown>,
|
|
198
|
-
className: string
|
|
199
|
-
) -> (propertyTable: PropertyTable) -> Instance
|
|
200
|
-
|
|
201
|
-
export type HydrateConstructor = (
|
|
202
|
-
scope: Scope<unknown>,
|
|
203
|
-
target: Instance
|
|
204
|
-
) -> (propertyTable: PropertyTable) -> Instance
|
|
205
|
-
|
|
206
|
-
-- Is there a sane way to write out this type?
|
|
207
|
-
-- ... I sure hope so.
|
|
208
|
-
|
|
209
|
-
export type DeriveScopeConstructor = (<S>(Scope<S>) -> Scope<S>)
|
|
210
|
-
& (<S, A>(Scope<S>, A & {}) -> Scope<S & A>)
|
|
211
|
-
& (<S, A, B>(Scope<S>, A & {}, B & {}) -> Scope<S & A & B>)
|
|
212
|
-
& (<S, A, B, C>(Scope<S>, A & {}, B & {}, C & {}) -> Scope<S & A & B & C>)
|
|
213
|
-
& (<S, A, B, C, D>(Scope<S>, A & {}, B & {}, C & {}, D & {}) -> Scope<S & A & B & C & D>)
|
|
214
|
-
& (<S, A, B, C, D, E>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}) -> Scope<S & A & B & C & D & E>)
|
|
215
|
-
& (<S, A, B, C, D, E, F>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}) -> Scope<S & A & B & C & D & E & F>)
|
|
216
|
-
& (<S, A, B, C, D, E, F, G>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}) -> Scope<S & A & B & C & D & E & F & G>)
|
|
217
|
-
& (<S, A, B, C, D, E, F, G, H>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}) -> Scope<S & A & B & C & D & E & F & G & H>)
|
|
218
|
-
& (<S, A, B, C, D, E, F, G, H, I>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}) -> Scope<S & A & B & C & D & E & F & G & H & I>)
|
|
219
|
-
& (<S, A, B, C, D, E, F, G, H, I, J>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J>)
|
|
220
|
-
& (<S, A, B, C, D, E, F, G, H, I, J, K>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J & K>)
|
|
221
|
-
& (<S, A, B, C, D, E, F, G, H, I, J, K, L>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}, L & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J & K & L>)
|
|
222
|
-
|
|
223
|
-
export type ScopedConstructor = (() -> Scope<{}>)
|
|
224
|
-
& (<A>(A & {}) -> Scope<A>)
|
|
225
|
-
& (<A, B>(A & {}, B & {}) -> Scope<A & B>)
|
|
226
|
-
& (<A, B, C>(A & {}, B & {}, C & {}) -> Scope<A & B & C>)
|
|
227
|
-
& (<A, B, C, D>(A & {}, B & {}, C & {}, D & {}) -> Scope<A & B & C & D>)
|
|
228
|
-
& (<A, B, C, D, E>(A & {}, B & {}, C & {}, D & {}, E & {}) -> Scope<A & B & C & D & E>)
|
|
229
|
-
& (<A, B, C, D, E, F>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}) -> Scope<A & B & C & D & E & F>)
|
|
230
|
-
& (<A, B, C, D, E, F, G>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}) -> Scope<A & B & C & D & E & F & G>)
|
|
231
|
-
& (<A, B, C, D, E, F, G, H>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}) -> Scope<A & B & C & D & E & F & G & H>)
|
|
232
|
-
& (<A, B, C, D, E, F, G, H, I>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}) -> Scope<A & B & C & D & E & F & G & H & I>)
|
|
233
|
-
& (<A, B, C, D, E, F, G, H, I, J>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}) -> Scope<A & B & C & D & E & F & G & H & I & J>)
|
|
234
|
-
& (<A, B, C, D, E, F, G, H, I, J, K>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}) -> Scope<A & B & C & D & E & F & G & H & I & J & K>)
|
|
235
|
-
& (<A, B, C, D, E, F, G, H, I, J, K, L>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}, L & {}) -> Scope<A & B & C & D & E & F & G & H & I & J & K & L>)
|
|
236
|
-
|
|
237
|
-
export type ContextualConstructor = <T>(defaultValue: T) -> Contextual<T>
|
|
238
|
-
|
|
239
|
-
export type Safe = <Success, Fail>(
|
|
240
|
-
callbacks: {
|
|
241
|
-
try: () -> Success,
|
|
242
|
-
fallback: (err: unknown) -> Fail
|
|
243
|
-
}
|
|
244
|
-
) -> Success | Fail
|
|
245
|
-
|
|
246
|
-
export type Fusion = {
|
|
247
|
-
version: Version,
|
|
248
|
-
Contextual: ContextualConstructor,
|
|
249
|
-
Safe: Safe,
|
|
250
|
-
|
|
251
|
-
doCleanup: (Task) -> (),
|
|
252
|
-
scoped: ScopedConstructor,
|
|
253
|
-
deriveScope: DeriveScopeConstructor,
|
|
254
|
-
innerScope: DeriveScopeConstructor,
|
|
255
|
-
|
|
256
|
-
peek: Use,
|
|
257
|
-
Value: ValueConstructor,
|
|
258
|
-
Computed: ComputedConstructor,
|
|
259
|
-
ForPairs: ForPairsConstructor,
|
|
260
|
-
ForKeys: ForKeysConstructor,
|
|
261
|
-
ForValues: ForValuesConstructor,
|
|
262
|
-
Observer: ObserverConstructor,
|
|
263
|
-
|
|
264
|
-
Tween: TweenConstructor,
|
|
265
|
-
Spring: SpringConstructor,
|
|
266
|
-
|
|
267
|
-
New: NewConstructor,
|
|
268
|
-
Hydrate: HydrateConstructor,
|
|
269
|
-
|
|
270
|
-
Child: ({Child}) -> Child,
|
|
271
|
-
Children: SpecialKey,
|
|
272
|
-
Out: (propertyName: string) -> SpecialKey,
|
|
273
|
-
OnEvent: (eventName: string) -> SpecialKey,
|
|
274
|
-
OnChange: (propertyName: string) -> SpecialKey,
|
|
275
|
-
Attribute: (attributeName: string) -> SpecialKey,
|
|
276
|
-
AttributeChange: (attributeName: string) -> SpecialKey,
|
|
277
|
-
AttributeOut: (attributeName: string) -> SpecialKey,
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
export type ExternalProvider = {
|
|
281
|
-
policies: {
|
|
282
|
-
allowWebLinks: boolean
|
|
283
|
-
},
|
|
284
|
-
|
|
285
|
-
logErrorNonFatal: (
|
|
286
|
-
errorString: string
|
|
287
|
-
) -> (),
|
|
288
|
-
logWarn: (
|
|
289
|
-
errorString: string
|
|
290
|
-
) -> (),
|
|
291
|
-
|
|
292
|
-
doTaskImmediate: (
|
|
293
|
-
resume: () -> ()
|
|
294
|
-
) -> (),
|
|
295
|
-
doTaskDeferred: (
|
|
296
|
-
resume: () -> ()
|
|
297
|
-
) -> (),
|
|
298
|
-
startScheduler: () -> (),
|
|
299
|
-
stopScheduler: () -> ()
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
export type ExternalDebugger = {
|
|
303
|
-
startDebugging: () -> (),
|
|
304
|
-
stopDebugging: () -> (),
|
|
305
|
-
|
|
306
|
-
trackScope: (
|
|
307
|
-
scope: Scope<unknown>
|
|
308
|
-
) -> (),
|
|
309
|
-
untrackScope: (
|
|
310
|
-
scope: Scope<unknown>
|
|
311
|
-
) -> ()
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
return nil
|
|
1
|
+
--!strict
|
|
2
|
+
--!nolint LocalUnused
|
|
3
|
+
--!nolint LocalShadow
|
|
4
|
+
local task = nil -- Disable usage of Roblox's task scheduler
|
|
5
|
+
|
|
6
|
+
--[[
|
|
7
|
+
Stores common public-facing type information for Fusion APIs.
|
|
8
|
+
]]
|
|
9
|
+
|
|
10
|
+
export type Error = {
|
|
11
|
+
type: "Error",
|
|
12
|
+
raw: string,
|
|
13
|
+
message: string,
|
|
14
|
+
trace: string,
|
|
15
|
+
context: string?
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
-- Types that can be expressed as vectors of numbers, and so can be animated.
|
|
19
|
+
export type Animatable =
|
|
20
|
+
number |
|
|
21
|
+
CFrame |
|
|
22
|
+
Color3 |
|
|
23
|
+
ColorSequenceKeypoint |
|
|
24
|
+
DateTime |
|
|
25
|
+
NumberRange |
|
|
26
|
+
NumberSequenceKeypoint |
|
|
27
|
+
PhysicalProperties |
|
|
28
|
+
Ray |
|
|
29
|
+
Rect |
|
|
30
|
+
Region3 |
|
|
31
|
+
Region3int16 |
|
|
32
|
+
UDim |
|
|
33
|
+
UDim2 |
|
|
34
|
+
Vector2 |
|
|
35
|
+
Vector2int16 |
|
|
36
|
+
Vector3 |
|
|
37
|
+
Vector3int16
|
|
38
|
+
|
|
39
|
+
-- A task which can be accepted for cleanup.
|
|
40
|
+
export type Task =
|
|
41
|
+
Instance |
|
|
42
|
+
RBXScriptConnection |
|
|
43
|
+
() -> () |
|
|
44
|
+
{destroy: (unknown) -> ()} |
|
|
45
|
+
{Destroy: (unknown) -> ()} |
|
|
46
|
+
{Task}
|
|
47
|
+
|
|
48
|
+
-- A scope of tasks to clean up.
|
|
49
|
+
export type Scope<Constructors = any> = {Task} & Constructors
|
|
50
|
+
|
|
51
|
+
-- An object which uses a scope to dictate how long it lives.
|
|
52
|
+
export type ScopedObject = {
|
|
53
|
+
scope: Scope<unknown>?,
|
|
54
|
+
oldestTask: unknown
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
-- Script-readable version information.
|
|
58
|
+
export type Version = {
|
|
59
|
+
major: number,
|
|
60
|
+
minor: number,
|
|
61
|
+
isRelease: boolean
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
-- An object which stores a value scoped in time.
|
|
65
|
+
export type Contextual<T> = {
|
|
66
|
+
type: "Contextual",
|
|
67
|
+
now: (Contextual<T>) -> T,
|
|
68
|
+
is: (Contextual<T>, T) -> ContextualIsMethods
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
type ContextualIsMethods = {
|
|
72
|
+
during: <R, A...>(ContextualIsMethods, (A...) -> R, A...) -> R
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
-- A graph object which can have dependencies and dependencies.
|
|
76
|
+
export type GraphObject = ScopedObject & {
|
|
77
|
+
createdAt: number,
|
|
78
|
+
dependencySet: {[GraphObject]: unknown},
|
|
79
|
+
dependentSet: {[GraphObject]: unknown},
|
|
80
|
+
lastChange: number?,
|
|
81
|
+
timeliness: "lazy" | "eager",
|
|
82
|
+
validity: "valid" | "invalid" | "busy",
|
|
83
|
+
_evaluate: (GraphObject) -> boolean
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
-- An object which stores a piece of reactive state.
|
|
87
|
+
export type StateObject<T> = GraphObject & {
|
|
88
|
+
type: "State",
|
|
89
|
+
kind: string,
|
|
90
|
+
_EXTREMELY_DANGEROUS_usedAsValue: T
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
-- Passing values of this type to `Use` returns `T`.
|
|
94
|
+
export type UsedAs<T> = StateObject<T> | T
|
|
95
|
+
|
|
96
|
+
-- Function signature for use callbacks.
|
|
97
|
+
export type Use = <T>(target: UsedAs<T>) -> T
|
|
98
|
+
|
|
99
|
+
-- A state object whose value can be set at any time by the user.
|
|
100
|
+
export type Value<T, S = T> = StateObject<T> & {
|
|
101
|
+
kind: "State",
|
|
102
|
+
timeliness: "lazy",
|
|
103
|
+
set: (Value<T, S>, newValue: S, force: boolean?) -> S,
|
|
104
|
+
____phantom_setType: (never) -> S -- phantom data so this contains S
|
|
105
|
+
}
|
|
106
|
+
export type ValueConstructor = <T>(
|
|
107
|
+
scope: Scope<unknown>,
|
|
108
|
+
initialValue: T
|
|
109
|
+
) -> Value<T, any>
|
|
110
|
+
|
|
111
|
+
-- A state object whose value is derived from other objects using a callback.
|
|
112
|
+
export type Computed<T> = StateObject<T> & {
|
|
113
|
+
kind: "Computed",
|
|
114
|
+
timeliness: "lazy"
|
|
115
|
+
}
|
|
116
|
+
export type ComputedConstructor = <T, S>(
|
|
117
|
+
scope: S & Scope<unknown>,
|
|
118
|
+
callback: (Use, S) -> T
|
|
119
|
+
) -> Computed<T>
|
|
120
|
+
|
|
121
|
+
-- A state object which maps over keys and/or values in another table.
|
|
122
|
+
export type For<KO, VO> = StateObject<{[KO]: VO}> & {
|
|
123
|
+
kind: "For"
|
|
124
|
+
}
|
|
125
|
+
export type ForPairsConstructor = <KI, KO, VI, VO, S>(
|
|
126
|
+
scope: S & Scope<unknown>,
|
|
127
|
+
inputTable: UsedAs<{[KI]: VI}>,
|
|
128
|
+
processor: (Use, S, key: KI, value: VI) -> (KO, VO)
|
|
129
|
+
) -> For<KO, VO>
|
|
130
|
+
export type ForKeysConstructor = <KI, KO, V, S>(
|
|
131
|
+
scope: S & Scope<unknown>,
|
|
132
|
+
inputTable: UsedAs<{[KI]: V}>,
|
|
133
|
+
processor: (Use, S, key: KI) -> KO
|
|
134
|
+
) -> For<KO, V>
|
|
135
|
+
export type ForValuesConstructor = <K, VI, VO, S>(
|
|
136
|
+
scope: S & Scope<unknown>,
|
|
137
|
+
inputTable: UsedAs<{[K]: VI}>,
|
|
138
|
+
processor: (Use, S, value: VI) -> VO
|
|
139
|
+
) -> For<K, VO>
|
|
140
|
+
|
|
141
|
+
-- An object which can listen for updates on another state object.
|
|
142
|
+
export type Observer = GraphObject & {
|
|
143
|
+
type: "Observer",
|
|
144
|
+
timeliness: "eager",
|
|
145
|
+
onChange: (Observer, callback: () -> ()) -> (() -> ()),
|
|
146
|
+
onBind: (Observer, callback: () -> ()) -> (() -> ())
|
|
147
|
+
}
|
|
148
|
+
export type ObserverConstructor = (
|
|
149
|
+
scope: Scope<unknown>,
|
|
150
|
+
watching: unknown
|
|
151
|
+
) -> Observer
|
|
152
|
+
|
|
153
|
+
-- A state object which follows another state object using tweens.
|
|
154
|
+
export type Tween<T> = StateObject<T> & {
|
|
155
|
+
kind: "Tween"
|
|
156
|
+
}
|
|
157
|
+
export type TweenConstructor = <T>(
|
|
158
|
+
scope: Scope<unknown>,
|
|
159
|
+
goalState: UsedAs<T>,
|
|
160
|
+
tweenInfo: UsedAs<TweenInfo>?
|
|
161
|
+
) -> Tween<T>
|
|
162
|
+
|
|
163
|
+
-- A state object which follows another state object using spring simulation.
|
|
164
|
+
export type Spring<T> = StateObject<T> & {
|
|
165
|
+
kind: "Spring",
|
|
166
|
+
setPosition: (Spring<T>, newPosition: T) -> (),
|
|
167
|
+
setVelocity: (Spring<T>, newVelocity: T) -> (),
|
|
168
|
+
addVelocity: (Spring<T>, deltaVelocity: T) -> ()
|
|
169
|
+
}
|
|
170
|
+
export type SpringConstructor = <T>(
|
|
171
|
+
scope: Scope<unknown>,
|
|
172
|
+
goalState: UsedAs<T>,
|
|
173
|
+
speed: UsedAs<number>?,
|
|
174
|
+
damping: UsedAs<number>?
|
|
175
|
+
) -> Spring<T>
|
|
176
|
+
|
|
177
|
+
-- Denotes children instances in an instance or component's property table.
|
|
178
|
+
export type SpecialKey = {
|
|
179
|
+
type: "SpecialKey",
|
|
180
|
+
kind: string,
|
|
181
|
+
stage: "self" | "descendants" | "ancestor" | "observer",
|
|
182
|
+
apply: (
|
|
183
|
+
self: SpecialKey,
|
|
184
|
+
scope: Scope<unknown>,
|
|
185
|
+
value: unknown,
|
|
186
|
+
applyTo: Instance
|
|
187
|
+
) -> ()
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
-- A collection of instances that may be parented to another instance.
|
|
191
|
+
export type Child = Instance | StateObject<Child> | {[unknown]: Child}
|
|
192
|
+
|
|
193
|
+
-- A table that defines an instance's properties, handlers and children.
|
|
194
|
+
export type PropertyTable = {[string | SpecialKey]: unknown}
|
|
195
|
+
|
|
196
|
+
export type NewConstructor = (
|
|
197
|
+
scope: Scope<unknown>,
|
|
198
|
+
className: string
|
|
199
|
+
) -> (propertyTable: PropertyTable) -> Instance
|
|
200
|
+
|
|
201
|
+
export type HydrateConstructor = (
|
|
202
|
+
scope: Scope<unknown>,
|
|
203
|
+
target: Instance
|
|
204
|
+
) -> (propertyTable: PropertyTable) -> Instance
|
|
205
|
+
|
|
206
|
+
-- Is there a sane way to write out this type?
|
|
207
|
+
-- ... I sure hope so.
|
|
208
|
+
|
|
209
|
+
export type DeriveScopeConstructor = (<S>(Scope<S>) -> Scope<S>)
|
|
210
|
+
& (<S, A>(Scope<S>, A & {}) -> Scope<S & A>)
|
|
211
|
+
& (<S, A, B>(Scope<S>, A & {}, B & {}) -> Scope<S & A & B>)
|
|
212
|
+
& (<S, A, B, C>(Scope<S>, A & {}, B & {}, C & {}) -> Scope<S & A & B & C>)
|
|
213
|
+
& (<S, A, B, C, D>(Scope<S>, A & {}, B & {}, C & {}, D & {}) -> Scope<S & A & B & C & D>)
|
|
214
|
+
& (<S, A, B, C, D, E>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}) -> Scope<S & A & B & C & D & E>)
|
|
215
|
+
& (<S, A, B, C, D, E, F>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}) -> Scope<S & A & B & C & D & E & F>)
|
|
216
|
+
& (<S, A, B, C, D, E, F, G>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}) -> Scope<S & A & B & C & D & E & F & G>)
|
|
217
|
+
& (<S, A, B, C, D, E, F, G, H>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}) -> Scope<S & A & B & C & D & E & F & G & H>)
|
|
218
|
+
& (<S, A, B, C, D, E, F, G, H, I>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}) -> Scope<S & A & B & C & D & E & F & G & H & I>)
|
|
219
|
+
& (<S, A, B, C, D, E, F, G, H, I, J>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J>)
|
|
220
|
+
& (<S, A, B, C, D, E, F, G, H, I, J, K>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J & K>)
|
|
221
|
+
& (<S, A, B, C, D, E, F, G, H, I, J, K, L>(Scope<S>, A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}, L & {}) -> Scope<S & A & B & C & D & E & F & G & H & I & J & K & L>)
|
|
222
|
+
|
|
223
|
+
export type ScopedConstructor = (() -> Scope<{}>)
|
|
224
|
+
& (<A>(A & {}) -> Scope<A>)
|
|
225
|
+
& (<A, B>(A & {}, B & {}) -> Scope<A & B>)
|
|
226
|
+
& (<A, B, C>(A & {}, B & {}, C & {}) -> Scope<A & B & C>)
|
|
227
|
+
& (<A, B, C, D>(A & {}, B & {}, C & {}, D & {}) -> Scope<A & B & C & D>)
|
|
228
|
+
& (<A, B, C, D, E>(A & {}, B & {}, C & {}, D & {}, E & {}) -> Scope<A & B & C & D & E>)
|
|
229
|
+
& (<A, B, C, D, E, F>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}) -> Scope<A & B & C & D & E & F>)
|
|
230
|
+
& (<A, B, C, D, E, F, G>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}) -> Scope<A & B & C & D & E & F & G>)
|
|
231
|
+
& (<A, B, C, D, E, F, G, H>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}) -> Scope<A & B & C & D & E & F & G & H>)
|
|
232
|
+
& (<A, B, C, D, E, F, G, H, I>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}) -> Scope<A & B & C & D & E & F & G & H & I>)
|
|
233
|
+
& (<A, B, C, D, E, F, G, H, I, J>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}) -> Scope<A & B & C & D & E & F & G & H & I & J>)
|
|
234
|
+
& (<A, B, C, D, E, F, G, H, I, J, K>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}) -> Scope<A & B & C & D & E & F & G & H & I & J & K>)
|
|
235
|
+
& (<A, B, C, D, E, F, G, H, I, J, K, L>(A & {}, B & {}, C & {}, D & {}, E & {}, F & {}, G & {}, H & {}, I & {}, J & {}, K & {}, L & {}) -> Scope<A & B & C & D & E & F & G & H & I & J & K & L>)
|
|
236
|
+
|
|
237
|
+
export type ContextualConstructor = <T>(defaultValue: T) -> Contextual<T>
|
|
238
|
+
|
|
239
|
+
export type Safe = <Success, Fail>(
|
|
240
|
+
callbacks: {
|
|
241
|
+
try: () -> Success,
|
|
242
|
+
fallback: (err: unknown) -> Fail
|
|
243
|
+
}
|
|
244
|
+
) -> Success | Fail
|
|
245
|
+
|
|
246
|
+
export type Fusion = {
|
|
247
|
+
version: Version,
|
|
248
|
+
Contextual: ContextualConstructor,
|
|
249
|
+
Safe: Safe,
|
|
250
|
+
|
|
251
|
+
doCleanup: (Task) -> (),
|
|
252
|
+
scoped: ScopedConstructor,
|
|
253
|
+
deriveScope: DeriveScopeConstructor,
|
|
254
|
+
innerScope: DeriveScopeConstructor,
|
|
255
|
+
|
|
256
|
+
peek: Use,
|
|
257
|
+
Value: ValueConstructor,
|
|
258
|
+
Computed: ComputedConstructor,
|
|
259
|
+
ForPairs: ForPairsConstructor,
|
|
260
|
+
ForKeys: ForKeysConstructor,
|
|
261
|
+
ForValues: ForValuesConstructor,
|
|
262
|
+
Observer: ObserverConstructor,
|
|
263
|
+
|
|
264
|
+
Tween: TweenConstructor,
|
|
265
|
+
Spring: SpringConstructor,
|
|
266
|
+
|
|
267
|
+
New: NewConstructor,
|
|
268
|
+
Hydrate: HydrateConstructor,
|
|
269
|
+
|
|
270
|
+
Child: ({Child}) -> Child,
|
|
271
|
+
Children: SpecialKey,
|
|
272
|
+
Out: (propertyName: string) -> SpecialKey,
|
|
273
|
+
OnEvent: (eventName: string) -> SpecialKey,
|
|
274
|
+
OnChange: (propertyName: string) -> SpecialKey,
|
|
275
|
+
Attribute: (attributeName: string) -> SpecialKey,
|
|
276
|
+
AttributeChange: (attributeName: string) -> SpecialKey,
|
|
277
|
+
AttributeOut: (attributeName: string) -> SpecialKey,
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export type ExternalProvider = {
|
|
281
|
+
policies: {
|
|
282
|
+
allowWebLinks: boolean
|
|
283
|
+
},
|
|
284
|
+
|
|
285
|
+
logErrorNonFatal: (
|
|
286
|
+
errorString: string
|
|
287
|
+
) -> (),
|
|
288
|
+
logWarn: (
|
|
289
|
+
errorString: string
|
|
290
|
+
) -> (),
|
|
291
|
+
|
|
292
|
+
doTaskImmediate: (
|
|
293
|
+
resume: () -> ()
|
|
294
|
+
) -> (),
|
|
295
|
+
doTaskDeferred: (
|
|
296
|
+
resume: () -> ()
|
|
297
|
+
) -> (),
|
|
298
|
+
startScheduler: () -> (),
|
|
299
|
+
stopScheduler: () -> ()
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export type ExternalDebugger = {
|
|
303
|
+
startDebugging: () -> (),
|
|
304
|
+
stopDebugging: () -> (),
|
|
305
|
+
|
|
306
|
+
trackScope: (
|
|
307
|
+
scope: Scope<unknown>
|
|
308
|
+
) -> (),
|
|
309
|
+
untrackScope: (
|
|
310
|
+
scope: Scope<unknown>
|
|
311
|
+
) -> ()
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return nil
|