@trioforge/crucible 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/client/package.json +4 -0
- package/emit/package.json +4 -0
- package/out/all.d.ts +7 -0
- package/out/all.luau +2 -0
- package/out/attribute.d.ts +7 -0
- package/out/attribute.luau +7 -0
- package/out/client/index.d.ts +10 -0
- package/out/client/init.luau +55 -0
- package/out/configs.d.ts +37 -0
- package/out/configs.luau +46 -0
- package/out/crucible-behaviour.d.ts +16 -0
- package/out/crucible-behaviour.luau +78 -0
- package/out/crucible-object.d.ts +10 -0
- package/out/crucible-object.luau +69 -0
- package/out/data.d.ts +224 -0
- package/out/data.luau +97 -0
- package/out/emit/configs.d.ts +4 -0
- package/out/emit/configs.luau +22 -0
- package/out/emit/data.d.ts +6 -0
- package/out/emit/data.luau +19 -0
- package/out/emit/index.d.ts +45 -0
- package/out/emit/init.luau +101 -0
- package/out/emit/network.d.ts +6 -0
- package/out/emit/network.luau +36 -0
- package/out/emit/replicated.d.ts +4 -0
- package/out/emit/replicated.luau +13 -0
- package/out/index.d.ts +20 -0
- package/out/init.luau +34 -0
- package/out/inject.d.ts +1 -0
- package/out/inject.luau +7 -0
- package/out/internal/binding.d.ts +1 -0
- package/out/internal/binding.luau +615 -0
- package/out/internal/boot.d.ts +1 -0
- package/out/internal/boot.luau +562 -0
- package/out/internal/configs/limits.d.ts +10 -0
- package/out/internal/configs/limits.luau +25 -0
- package/out/internal/configs/port.d.ts +29 -0
- package/out/internal/configs/port.luau +99 -0
- package/out/internal/configs/runtime.d.ts +21 -0
- package/out/internal/configs/runtime.luau +981 -0
- package/out/internal/construction-claim.d.ts +1 -0
- package/out/internal/construction-claim.luau +26 -0
- package/out/internal/data/admission.d.ts +1 -0
- package/out/internal/data/admission.luau +673 -0
- package/out/internal/data/declarations.d.ts +1 -0
- package/out/internal/data/declarations.luau +384 -0
- package/out/internal/data/envelope.d.ts +1 -0
- package/out/internal/data/envelope.luau +318 -0
- package/out/internal/data/handles.d.ts +1 -0
- package/out/internal/data/handles.luau +255 -0
- package/out/internal/data/inbox-transforms.d.ts +1 -0
- package/out/internal/data/inbox-transforms.luau +458 -0
- package/out/internal/data/inbox.d.ts +1 -0
- package/out/internal/data/inbox.luau +437 -0
- package/out/internal/data/lease.d.ts +1 -0
- package/out/internal/data/lease.luau +304 -0
- package/out/internal/data/limits.d.ts +1 -0
- package/out/internal/data/limits.luau +234 -0
- package/out/internal/data/messages.d.ts +1 -0
- package/out/internal/data/messages.luau +69 -0
- package/out/internal/data/operation-id.d.ts +1 -0
- package/out/internal/data/operation-id.luau +61 -0
- package/out/internal/data/paths.d.ts +2 -0
- package/out/internal/data/paths.luau +323 -0
- package/out/internal/data/port.d.ts +1 -0
- package/out/internal/data/port.luau +290 -0
- package/out/internal/data/profiles.d.ts +1 -0
- package/out/internal/data/profiles.luau +862 -0
- package/out/internal/data/receipts.d.ts +1 -0
- package/out/internal/data/receipts.luau +190 -0
- package/out/internal/data/record-bindings.d.ts +1 -0
- package/out/internal/data/record-bindings.luau +92 -0
- package/out/internal/data/record-declarations.d.ts +1 -0
- package/out/internal/data/record-declarations.luau +140 -0
- package/out/internal/data/records.d.ts +1 -0
- package/out/internal/data/records.luau +400 -0
- package/out/internal/data/runtime.d.ts +1 -0
- package/out/internal/data/runtime.luau +918 -0
- package/out/internal/data/scheduler.d.ts +1 -0
- package/out/internal/data/scheduler.luau +507 -0
- package/out/internal/data/session.d.ts +1 -0
- package/out/internal/data/session.luau +234 -0
- package/out/internal/data/shutdown.d.ts +1 -0
- package/out/internal/data/shutdown.luau +91 -0
- package/out/internal/data/waiters.d.ts +1 -0
- package/out/internal/data/waiters.luau +65 -0
- package/out/internal/dense-list.d.ts +1 -0
- package/out/internal/dense-list.luau +155 -0
- package/out/internal/diagnostics.d.ts +1 -0
- package/out/internal/diagnostics.luau +29 -0
- package/out/internal/hooks.d.ts +1 -0
- package/out/internal/hooks.luau +53 -0
- package/out/internal/implementers.d.ts +1 -0
- package/out/internal/implementers.luau +119 -0
- package/out/internal/lifecycle.d.ts +1 -0
- package/out/internal/lifecycle.luau +912 -0
- package/out/internal/log-output.d.ts +1 -0
- package/out/internal/log-output.luau +106 -0
- package/out/internal/network/catalog.d.ts +26 -0
- package/out/internal/network/catalog.luau +182 -0
- package/out/internal/network/claims.d.ts +1 -0
- package/out/internal/network/claims.luau +154 -0
- package/out/internal/network/client-session.d.ts +1 -0
- package/out/internal/network/client-session.luau +403 -0
- package/out/internal/network/codec.d.ts +63 -0
- package/out/internal/network/codec.luau +1183 -0
- package/out/internal/network/envelope.d.ts +1 -0
- package/out/internal/network/envelope.luau +247 -0
- package/out/internal/network/limits.d.ts +26 -0
- package/out/internal/network/limits.luau +55 -0
- package/out/internal/network/port.d.ts +1 -0
- package/out/internal/network/port.luau +19 -0
- package/out/internal/network/roblox-network-port.d.ts +1 -0
- package/out/internal/network/roblox-network-port.luau +105 -0
- package/out/internal/network/schema.d.ts +72 -0
- package/out/internal/network/schema.luau +386 -0
- package/out/internal/network/server-session.d.ts +1 -0
- package/out/internal/network/server-session.luau +393 -0
- package/out/internal/network/session.d.ts +1 -0
- package/out/internal/network/session.luau +266 -0
- package/out/internal/port.d.ts +1 -0
- package/out/internal/port.luau +12 -0
- package/out/internal/reactive/context.d.ts +1 -0
- package/out/internal/reactive/context.luau +149 -0
- package/out/internal/reactive/flush.d.ts +1 -0
- package/out/internal/reactive/flush.luau +355 -0
- package/out/internal/reactive/graph.d.ts +1 -0
- package/out/internal/reactive/graph.luau +626 -0
- package/out/internal/reactive/limits.d.ts +1 -0
- package/out/internal/reactive/limits.luau +54 -0
- package/out/internal/reactive/ownership.d.ts +1 -0
- package/out/internal/reactive/ownership.luau +626 -0
- package/out/internal/registry.d.ts +1 -0
- package/out/internal/registry.luau +455 -0
- package/out/internal/roblox-port.d.ts +1 -0
- package/out/internal/roblox-port.luau +117 -0
- package/out/internal/runner.d.ts +1 -0
- package/out/internal/runner.luau +86 -0
- package/out/internal/scheduler.d.ts +1 -0
- package/out/internal/scheduler.luau +207 -0
- package/out/internal/state.d.ts +1 -0
- package/out/internal/state.luau +41 -0
- package/out/internal/sync/client-sync.d.ts +1 -0
- package/out/internal/sync/client-sync.luau +157 -0
- package/out/internal/sync/declarations.d.ts +1 -0
- package/out/internal/sync/declarations.luau +276 -0
- package/out/internal/sync/frame.d.ts +1 -0
- package/out/internal/sync/frame.luau +91 -0
- package/out/internal/sync/server-sync.d.ts +1 -0
- package/out/internal/sync/server-sync.luau +502 -0
- package/out/internal/sync/values.d.ts +1 -0
- package/out/internal/sync/values.luau +930 -0
- package/out/log-level.d.ts +7 -0
- package/out/log-level.luau +21 -0
- package/out/logging.d.ts +34 -0
- package/out/logging.luau +233 -0
- package/out/network.d.ts +66 -0
- package/out/network.luau +24 -0
- package/out/reactive.d.ts +76 -0
- package/out/reactive.luau +136 -0
- package/out/replicated.d.ts +38 -0
- package/out/replicated.luau +45 -0
- package/out/server/data.d.ts +54 -0
- package/out/server/data.luau +44 -0
- package/out/server/index.d.ts +18 -0
- package/out/server/init.luau +62 -0
- package/out/server/publish.d.ts +20 -0
- package/out/server/publish.luau +24 -0
- package/out/subsystem.d.ts +4 -0
- package/out/subsystem.luau +30 -0
- package/out/vide/index.d.ts +7 -0
- package/out/vide/init.luau +50 -0
- package/package.json +52 -5
- package/server/package.json +4 -0
- package/transformer/data.cjs +72 -0
- package/transformer/declarations.cjs +153 -0
- package/transformer/diagnostics.cjs +19 -0
- package/transformer/index.js +741 -0
- package/transformer/network.cjs +961 -0
- package/transformer/type-id.cjs +80 -0
- package/vide/package.json +4 -0
- package/README.md +0 -3
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
-- Compiled with roblox-ts v3.0.0
|
|
2
|
+
--* What configs ask of the engine. Requests yield and may throw.
|
|
3
|
+
local port
|
|
4
|
+
local function installConfigPort(value)
|
|
5
|
+
local _arg0 = port == nil
|
|
6
|
+
assert(_arg0, "Config port already selected")
|
|
7
|
+
port = value
|
|
8
|
+
end
|
|
9
|
+
local createRobloxConfigPort
|
|
10
|
+
local function configPort()
|
|
11
|
+
if port == nil then
|
|
12
|
+
port = createRobloxConfigPort()
|
|
13
|
+
end
|
|
14
|
+
return port
|
|
15
|
+
end
|
|
16
|
+
local EMPTY = table.freeze({
|
|
17
|
+
get = function()
|
|
18
|
+
return nil
|
|
19
|
+
end,
|
|
20
|
+
refresh = function() end,
|
|
21
|
+
outdated = function()
|
|
22
|
+
return false
|
|
23
|
+
end,
|
|
24
|
+
failed = function()
|
|
25
|
+
return false
|
|
26
|
+
end,
|
|
27
|
+
onUpdateAvailable = function()
|
|
28
|
+
return function() end
|
|
29
|
+
end,
|
|
30
|
+
})
|
|
31
|
+
local function snapshotPort(snapshot)
|
|
32
|
+
return {
|
|
33
|
+
get = function(key)
|
|
34
|
+
return snapshot:GetValue(key)
|
|
35
|
+
end,
|
|
36
|
+
refresh = function()
|
|
37
|
+
return snapshot:Refresh()
|
|
38
|
+
end,
|
|
39
|
+
outdated = function()
|
|
40
|
+
return snapshot.Outdated
|
|
41
|
+
end,
|
|
42
|
+
failed = function()
|
|
43
|
+
return snapshot.Error == Enum.ConfigSnapshotErrorState.LoadFailed
|
|
44
|
+
end,
|
|
45
|
+
onUpdateAvailable = function(listener)
|
|
46
|
+
local connection = snapshot.UpdateAvailable:Connect(listener)
|
|
47
|
+
return function()
|
|
48
|
+
return connection:Disconnect()
|
|
49
|
+
end
|
|
50
|
+
end,
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
function createRobloxConfigPort()
|
|
54
|
+
local players = game:GetService("Players")
|
|
55
|
+
local http = game:GetService("HttpService")
|
|
56
|
+
local live = not game:GetService("RunService"):IsStudio() or game:GetService("ServerStorage"):GetAttribute("CrucibleLiveData") == true
|
|
57
|
+
local service = if live then game:GetService("ConfigService") else nil
|
|
58
|
+
local random = Random.new()
|
|
59
|
+
return {
|
|
60
|
+
global = function()
|
|
61
|
+
return if service == nil then EMPTY else snapshotPort(service:GetConfigAsync())
|
|
62
|
+
end,
|
|
63
|
+
forPlayer = function(player)
|
|
64
|
+
return if service == nil then EMPTY else snapshotPort(service:GetConfigForPlayerAsync(player))
|
|
65
|
+
end,
|
|
66
|
+
players = function()
|
|
67
|
+
return players:GetPlayers()
|
|
68
|
+
end,
|
|
69
|
+
onPlayerAdded = function(listener)
|
|
70
|
+
local connection = players.PlayerAdded:Connect(listener)
|
|
71
|
+
return function()
|
|
72
|
+
return connection:Disconnect()
|
|
73
|
+
end
|
|
74
|
+
end,
|
|
75
|
+
onPlayerRemoving = function(listener)
|
|
76
|
+
local connection = players.PlayerRemoving:Connect(listener)
|
|
77
|
+
return function()
|
|
78
|
+
return connection:Disconnect()
|
|
79
|
+
end
|
|
80
|
+
end,
|
|
81
|
+
wait = function(seconds)
|
|
82
|
+
task.wait(seconds)
|
|
83
|
+
end,
|
|
84
|
+
random = function()
|
|
85
|
+
return random:NextNumber()
|
|
86
|
+
end,
|
|
87
|
+
decodeJson = function(text)
|
|
88
|
+
return http:JSONDecode(text)
|
|
89
|
+
end,
|
|
90
|
+
jsonBytes = function(value)
|
|
91
|
+
return #http:JSONEncode(value)
|
|
92
|
+
end,
|
|
93
|
+
}
|
|
94
|
+
end
|
|
95
|
+
return {
|
|
96
|
+
installConfigPort = installConfigPort,
|
|
97
|
+
configPort = configPort,
|
|
98
|
+
createRobloxConfigPort = createRobloxConfigPort,
|
|
99
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Node } from "../network/schema";
|
|
2
|
+
import { type StateNode } from "../reactive/graph";
|
|
3
|
+
export type ConfigKind = "global" | "player";
|
|
4
|
+
/** One value a reader sees. Commit is its only writer. */
|
|
5
|
+
/** A config value as reactive state, so a read is tracked (rule 93) and a commit wakes its readers once. */
|
|
6
|
+
type Cell = StateNode;
|
|
7
|
+
export interface Declaration {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly kind: ConfigKind;
|
|
10
|
+
readonly node: Node;
|
|
11
|
+
readonly fallback: unknown;
|
|
12
|
+
/** The value admitted from the global snapshot. */
|
|
13
|
+
readonly global: Cell;
|
|
14
|
+
}
|
|
15
|
+
export declare function declare(name: string, kind: ConfigKind, fallback: unknown, node: Node): Declaration;
|
|
16
|
+
export declare function readGlobal(declaration: Declaration): unknown;
|
|
17
|
+
export declare function readPlayer(declaration: Declaration, player: Player): unknown;
|
|
18
|
+
export declare function ready(player?: Player): boolean;
|
|
19
|
+
export declare function refresh(): boolean;
|
|
20
|
+
export declare function installConfigRuntime(): void;
|
|
21
|
+
export {};
|