1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162 | ;; shadow-cljs build for the committed dist/ — deterministic ESM, node-flavored.
;;
;; :optimizations :simple, per dev/docs/CLJS.md for Node artifacts: it removes
;; the externs-inference risk class entirely, which matters here because the
;; native/optional npm deps (the libdatachannel build behind @libp2p/webrtc,
;; ws, the libp2p family) must never be renamed OR bundled.
;;
;; TWO-STACK LAW (the suite's house rule 11): every npm dep stays an EXTERNAL
;; import (:js-options {:js-provider :import}), so peer-kit's libp2p v3 /
;; node-datachannel 0.33 stack is resolved by the consumer's node_modules and
;; never inlined. deploy/check-dist.sh greps the emitted bundles for rooms-kit,
;; @ipshipyard/node-datachannel and libp2p v2 specifiers and aborts on a hit.
;;
;; DETERMINISM — :parallel-build false is load-bearing, not a tuning knob.
;; The CLJS compiler numbers gensym'd names (a top-level `let` local becomes
;; `proto_20636`, destructuring becomes `map__21682`, protocols become
;; `…$dyn_<N>`) from a JVM-GLOBAL counter. shadow compiles namespaces in
;; parallel by default, so the interleaving — and therefore the numbers — differ
;; between cold builds. That is not merely cosmetic: Closure's variable
;; coalescing then makes DIFFERENT merging decisions (one cold build here had 38
;; such module locals, another 41, with `var x=` collapsing to a bare `x=`), so
;; scripts/normalize-gensyms.mjs cannot repair it — renaming can't undo a
;; structural difference. Serial compilation consumes the counter in a fixed
;; order and five cold builds come out byte-identical.
;; (dev/docs/CLJS.md's gensym normalizer is still run, and still needed for
;; `$dyn` vars; it is necessary but NOT sufficient once a build has this many
;; namespaces — train-kit and the browser kits never hit it because they have no
;; top-level `let` and/or use :advanced, which renames every local away.)
;; Cost: a cold build takes ~45 s instead of ~4 s. check-dist and release do a
;; cold build anyway, so this only slows those.
;;
;; Three modules over a :shared base:
;; :index -> dist/index.js the "." export (the ~50 public names)
;; :node -> dist/node.js the "./node" export
;; :internals -> dist/internals.js the deep names v1.3.0's file tree exposed
;; scripts/gen-subpaths.mjs then writes the historical dist/ tree (dist/games/**,
;; dist/core/**, dist/gym/**, dist/node/index.js, …) as thin re-export shims
;; over those three, so every path the TypeScript build published still resolves.
{:deps {:aliases [:dev]}
:builds
{:lib
{:target :esm
:output-dir "dist"
:compiler-options {:optimizations :simple
:source-map false
:parallel-build false}
:js-options {:js-provider :import}
:modules
{:shared {:entries []}
:index
{:entries [ardegazu.peer.index]
:depends-on #{:shared}
:exports {connect ardegazu.peer.index/connect
RoomPeer ardegazu.peer.index/RoomPeer
GAMES ardegazu.peer.index/GAMES
SIGNAL ardegazu.peer.index/SIGNAL
DEFAULT_ORIGIN ardegazu.peer.index/DEFAULT-ORIGIN
newRoomSecret ardegazu.peer.index/new-room-secret
createNet ardegazu.peer.index/create-net
installOrigin ardegazu.peer.index/install-origin
installBrowserGlobals ardegazu.peer.index/install-browser-globals
loadIdentity ardegazu.peer.index/load-identity
GameRoom ardegazu.peer.index/GameRoom
SeanceClient ardegazu.peer.index/SeanceClient
NeonGridClient ardegazu.peer.index/NeonGridClient
TesseraClient ardegazu.peer.index/TesseraClient
LampionClient ardegazu.peer.index/LampionClient
OdeonClient ardegazu.peer.index/OdeonClient
ValleyBlocksClient ardegazu.peer.index/ValleyBlocksClient
Social ardegazu.peer.index/Social
suiteFriendLink ardegazu.peer.index/suite-friend-link
buildFriendLink ardegazu.peer.index/build-friend-link
parseFriendLink ardegazu.peer.index/parse-friend-link
SUITE_APPS ardegazu.peer.index/SUITE-APPS
mintRoomUrl ardegazu.peer.index/mint-room-url
HostDriver ardegazu.peer.index/HostDriver
SeanceHost ardegazu.peer.index/SeanceHost
NeonGridHost ardegazu.peer.index/NeonGridHost
ValleyBlocksHost ardegazu.peer.index/ValleyBlocksHost
SeanceSim ardegazu.peer.index/SeanceSim
NeonGridSim ardegazu.peer.index/NeonGridSim
ValleyBlocksSim ardegazu.peer.index/ValleyBlocksSim
ValleyBlocksEngine ardegazu.peer.index/ValleyBlocksEngine
enumeratePlacements ardegazu.peer.index/enumerate-placements
executePlacement ardegazu.peer.index/execute-placement
placementStep ardegazu.peer.index/placement-step
planOf ardegazu.peer.index/plan-of
boardMetrics ardegazu.peer.index/board-metrics
dellacherieScore ardegazu.peer.index/dellacherie-score
stockPick ardegazu.peer.index/stock-pick
snakeStep ardegazu.peer.index/snake-step
mulberry32 ardegazu.peer.index/mulberry32
SeanceGym ardegazu.peer.index/SeanceGym
NeonGridGym ardegazu.peer.index/NeonGridGym
ValleyBlocksGym ardegazu.peer.index/ValleyBlocksGym}}
:node
{:entries [ardegazu.peer.node.index]
:depends-on #{:shared :index}
:exports {installOrigin ardegazu.peer.node.index/install-origin
installOriginWebSocket ardegazu.peer.node.index/install-origin-web-socket
installOriginFetch ardegazu.peer.node.index/install-origin-fetch
loadIdentity ardegazu.peer.node.index/load-identity}}
:internals
{:entries [ardegazu.peer.internals]
:depends-on #{:shared :index}
:exports {RoomCrypto ardegazu.peer.internals/RoomCrypto
randomBytes ardegazu.peer.internals/random-bytes
toB64 ardegazu.peer.internals/to-b64
fromB64 ardegazu.peer.internals/from-b64
toB64url ardegazu.peer.internals/to-b64url
fromB64url ardegazu.peer.internals/from-b64url
fetchRelayInfo ardegazu.peer.internals/fetch-relay-info
IceConfig ardegazu.peer.internals/IceConfig
NetNode ardegazu.peer.internals/NetNode
PeerManager ardegazu.peer.internals/PeerManager
selfPeerIds ardegazu.peer.internals/self-peer-ids
installOriginWebSocket ardegazu.peer.internals/install-origin-web-socket
installOriginFetch ardegazu.peer.internals/install-origin-fetch
NO_EMIT ardegazu.peer.internals/NO-EMIT
CANDLES ardegazu.peer.internals/CANDLES
REVEAL_MS ardegazu.peer.internals/REVEAL-MS
walkMs ardegazu.peer.internals/walk-ms
START_BELL_MS ardegazu.peer.internals/START-BELL-MS
OVER_LOBBY_MS ardegazu.peer.internals/OVER-LOBBY-MS
PICK_GRACE_MS ardegazu.peer.internals/PICK-GRACE-MS
GW ardegazu.peer.internals/GW
GH ardegazu.peer.internals/GH
WIN_SCORE ardegazu.peer.internals/WIN-SCORE
DX ardegazu.peer.internals/DX
DY ardegazu.peer.internals/DY
COUNTDOWN_MS ardegazu.peer.internals/COUNTDOWN-MS
OVER_ROUND_MS ardegazu.peer.internals/OVER-ROUND-MS
OVER_MATCH_MS ardegazu.peer.internals/OVER-MATCH-MS
MATCH_LOBBY_MS ardegazu.peer.internals/MATCH-LOBBY-MS
PIECE_TYPES ardegazu.peer.internals/PIECE-TYPES
cellsFor ardegazu.peer.internals/cells-for
kicksFor ardegazu.peer.internals/kicks-for
Board ardegazu.peer.internals/Board
Bag ardegazu.peer.internals/Bag
COLS ardegazu.peer.internals/COLS
ROWS ardegazu.peer.internals/ROWS
HIDDEN_ROWS ardegazu.peer.internals/HIDDEN-ROWS
TOTAL_ROWS ardegazu.peer.internals/TOTAL-ROWS
LINES_PER_LEVEL ardegazu.peer.internals/LINES-PER-LEVEL
pointsForLines ardegazu.peer.internals/points-for-lines
SOFT_DROP_POINTS ardegazu.peer.internals/SOFT-DROP-POINTS
HARD_DROP_POINTS ardegazu.peer.internals/HARD-DROP-POINTS
gravitySeconds ardegazu.peer.internals/gravity-seconds
levelForLines ardegazu.peer.internals/level-for-lines
snakeInterval ardegazu.peer.internals/snake-interval
snakeDuration ardegazu.peer.internals/snake-duration
MAX_PLAYERS ardegazu.peer.internals/MAX-PLAYERS
STATE_INTERVAL_MS ardegazu.peer.internals/STATE-INTERVAL-MS
PING_INTERVAL_MS ardegazu.peer.internals/PING-INTERVAL-MS
serializeGrid ardegazu.peer.internals/serialize-grid
boardStateOf ardegazu.peer.internals/board-state-of
ROUND_LOBBY_MS ardegazu.peer.internals/ROUND-LOBBY-MS
DEFAULT_MODE ardegazu.peer.internals/DEFAULT-MODE
DEFAULT_TARGET ardegazu.peer.internals/DEFAULT-TARGET}}}}}}
|