@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,119 @@
|
|
|
1
|
+
-- Compiled with roblox-ts v3.0.0
|
|
2
|
+
local TS = _G[script]
|
|
3
|
+
local runtimeDiagnostic = TS.import(script, script.Parent, "diagnostics").runtimeDiagnostic
|
|
4
|
+
local DenseList = TS.import(script, script.Parent, "dense-list").DenseList
|
|
5
|
+
local _lifecycle = TS.import(script, script.Parent, "lifecycle")
|
|
6
|
+
local current = _lifecycle.current
|
|
7
|
+
local hasEnded = _lifecycle.hasEnded
|
|
8
|
+
local stateOf = _lifecycle.stateOf
|
|
9
|
+
local within = _lifecycle.within
|
|
10
|
+
local port
|
|
11
|
+
--* @internal
|
|
12
|
+
local function useImplementerPort(value)
|
|
13
|
+
port = value
|
|
14
|
+
end
|
|
15
|
+
local function visit(callback, item)
|
|
16
|
+
callback(item)
|
|
17
|
+
end
|
|
18
|
+
local function label(state)
|
|
19
|
+
return if state == nil then "external" else (state.record).id
|
|
20
|
+
end
|
|
21
|
+
--* @internal
|
|
22
|
+
local ImplementerSet
|
|
23
|
+
do
|
|
24
|
+
ImplementerSet = setmetatable({}, {
|
|
25
|
+
__tostring = function()
|
|
26
|
+
return "ImplementerSet"
|
|
27
|
+
end,
|
|
28
|
+
})
|
|
29
|
+
ImplementerSet.__index = ImplementerSet
|
|
30
|
+
function ImplementerSet.new(...)
|
|
31
|
+
local self = setmetatable({}, ImplementerSet)
|
|
32
|
+
return self:constructor(...) or self
|
|
33
|
+
end
|
|
34
|
+
function ImplementerSet:constructor(id)
|
|
35
|
+
self.id = id
|
|
36
|
+
self.members = DenseList.new()
|
|
37
|
+
self.observers = DenseList.new()
|
|
38
|
+
end
|
|
39
|
+
function ImplementerSet:size()
|
|
40
|
+
return self.members:size()
|
|
41
|
+
end
|
|
42
|
+
function ImplementerSet:has(item)
|
|
43
|
+
return self.members:has(item)
|
|
44
|
+
end
|
|
45
|
+
function ImplementerSet:first()
|
|
46
|
+
return self.members:first()
|
|
47
|
+
end
|
|
48
|
+
function ImplementerSet:forEach(visitor)
|
|
49
|
+
local owner = current()
|
|
50
|
+
self.members:forEach(function(member)
|
|
51
|
+
return self:deliver(owner, visitor, member)
|
|
52
|
+
end)
|
|
53
|
+
end
|
|
54
|
+
function ImplementerSet:observe(added, removed)
|
|
55
|
+
local owner = current()
|
|
56
|
+
if owner ~= nil and hasEnded(owner) then
|
|
57
|
+
return function() end
|
|
58
|
+
end
|
|
59
|
+
local observer = {
|
|
60
|
+
added = added,
|
|
61
|
+
removed = removed,
|
|
62
|
+
owner = owner,
|
|
63
|
+
}
|
|
64
|
+
self.observers:add(observer)
|
|
65
|
+
local connected = true
|
|
66
|
+
local disconnect = function()
|
|
67
|
+
if not connected then
|
|
68
|
+
return nil
|
|
69
|
+
end
|
|
70
|
+
connected = false
|
|
71
|
+
self.observers:remove(observer)
|
|
72
|
+
end
|
|
73
|
+
if owner ~= nil then
|
|
74
|
+
if owner.subscriptions == nil then
|
|
75
|
+
owner.subscriptions = {}
|
|
76
|
+
end
|
|
77
|
+
local _exp = owner.subscriptions
|
|
78
|
+
table.insert(_exp, disconnect)
|
|
79
|
+
end
|
|
80
|
+
self.members:forEach(function(member)
|
|
81
|
+
if connected then
|
|
82
|
+
self:deliver(owner, added, member)
|
|
83
|
+
end
|
|
84
|
+
end)
|
|
85
|
+
return disconnect
|
|
86
|
+
end
|
|
87
|
+
function ImplementerSet:join(item)
|
|
88
|
+
if not self.members:add(item) then
|
|
89
|
+
return nil
|
|
90
|
+
end
|
|
91
|
+
self.observers:forEach(function(observer)
|
|
92
|
+
return self:deliver(observer.owner, observer.added, item)
|
|
93
|
+
end)
|
|
94
|
+
end
|
|
95
|
+
function ImplementerSet:leave(item)
|
|
96
|
+
if not self.members:remove(item) then
|
|
97
|
+
return nil
|
|
98
|
+
end
|
|
99
|
+
self.observers:forEach(function(observer)
|
|
100
|
+
if observer.removed ~= nil then
|
|
101
|
+
self:deliver(observer.owner, observer.removed, item)
|
|
102
|
+
end
|
|
103
|
+
end)
|
|
104
|
+
end
|
|
105
|
+
function ImplementerSet:deliver(owner, callback, member)
|
|
106
|
+
local result, failure = within(owner, nil, 8, visit, callback, member)
|
|
107
|
+
if result ~= 0 then
|
|
108
|
+
local message = `Crucible All<{self.id}> subscriber {label(owner)}, member {label(stateOf(member))}: {tostring(failure)}`
|
|
109
|
+
if port == nil then
|
|
110
|
+
error("All callback failed before useImplementerPort: " .. message)
|
|
111
|
+
end
|
|
112
|
+
runtimeDiagnostic("error", message)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
return {
|
|
117
|
+
useImplementerPort = useImplementerPort,
|
|
118
|
+
ImplementerSet = ImplementerSet,
|
|
119
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|