@dreadwood-types/types 0.1.47 → 0.1.51

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.
Files changed (124) hide show
  1. package/dist/adventure.d.ts +6 -6
  2. package/dist/adventure.d.ts.map +1 -1
  3. package/dist/appearance.d.ts +16 -6
  4. package/dist/appearance.d.ts.map +1 -1
  5. package/dist/appearance.js +43 -31
  6. package/dist/appearance.js.map +1 -1
  7. package/dist/areaTransitions.d.ts +1 -1
  8. package/dist/areaTransitions.d.ts.map +1 -1
  9. package/dist/areaTransitions.js +13 -0
  10. package/dist/areaTransitions.js.map +1 -1
  11. package/dist/bank.d.ts.map +1 -1
  12. package/dist/bearFloes.d.ts +83 -0
  13. package/dist/bearFloes.d.ts.map +1 -0
  14. package/dist/bearFloes.js +126 -0
  15. package/dist/bearFloes.js.map +1 -0
  16. package/dist/blacksmithing.d.ts +3 -0
  17. package/dist/blacksmithing.d.ts.map +1 -1
  18. package/dist/blacksmithing.js +81 -1
  19. package/dist/blacksmithing.js.map +1 -1
  20. package/dist/bloodRiver.d.ts +9 -6
  21. package/dist/bloodRiver.d.ts.map +1 -1
  22. package/dist/bloodRiver.js +19 -17
  23. package/dist/bloodRiver.js.map +1 -1
  24. package/dist/brokenRoad.d.ts.map +1 -1
  25. package/dist/capital.d.ts +541 -165
  26. package/dist/capital.d.ts.map +1 -1
  27. package/dist/capital.js +934 -163
  28. package/dist/capital.js.map +1 -1
  29. package/dist/charcoal.d.ts +43 -0
  30. package/dist/charcoal.d.ts.map +1 -0
  31. package/dist/charcoal.js +78 -0
  32. package/dist/charcoal.js.map +1 -0
  33. package/dist/clientConfig.d.ts +7 -2
  34. package/dist/clientConfig.d.ts.map +1 -1
  35. package/dist/clientConfig.js +14 -5
  36. package/dist/clientConfig.js.map +1 -1
  37. package/dist/constants.d.ts +196 -11
  38. package/dist/constants.d.ts.map +1 -1
  39. package/dist/constants.js +372 -21
  40. package/dist/constants.js.map +1 -1
  41. package/dist/cooking.d.ts.map +1 -1
  42. package/dist/cooking.js +2 -0
  43. package/dist/cooking.js.map +1 -1
  44. package/dist/dragonfire.d.ts +75 -0
  45. package/dist/dragonfire.d.ts.map +1 -0
  46. package/dist/dragonfire.js +73 -0
  47. package/dist/dragonfire.js.map +1 -0
  48. package/dist/dungeonCharts.d.ts +18 -0
  49. package/dist/dungeonCharts.d.ts.map +1 -0
  50. package/dist/dungeonCharts.js +67 -0
  51. package/dist/dungeonCharts.js.map +1 -0
  52. package/dist/equipment.d.ts +2 -0
  53. package/dist/equipment.d.ts.map +1 -1
  54. package/dist/equipment.js +37 -1
  55. package/dist/equipment.js.map +1 -1
  56. package/dist/frozenSet.d.ts +36 -0
  57. package/dist/frozenSet.d.ts.map +1 -0
  58. package/dist/frozenSet.js +58 -0
  59. package/dist/frozenSet.js.map +1 -0
  60. package/dist/goblinCave.d.ts +4 -4
  61. package/dist/goblinCave.d.ts.map +1 -1
  62. package/dist/goblinCave.js +1 -1
  63. package/dist/groundItems.d.ts.map +1 -1
  64. package/dist/groundItems.js +27 -0
  65. package/dist/groundItems.js.map +1 -1
  66. package/dist/harbour.d.ts +223 -0
  67. package/dist/harbour.d.ts.map +1 -0
  68. package/dist/harbour.js +264 -0
  69. package/dist/harbour.js.map +1 -0
  70. package/dist/iceDepths.d.ts +150 -0
  71. package/dist/iceDepths.d.ts.map +1 -0
  72. package/dist/iceDepths.js +132 -0
  73. package/dist/iceDepths.js.map +1 -0
  74. package/dist/index.d.ts +9 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +9 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/interiorFurniture.d.ts +57 -0
  79. package/dist/interiorFurniture.d.ts.map +1 -0
  80. package/dist/interiorFurniture.js +159 -0
  81. package/dist/interiorFurniture.js.map +1 -0
  82. package/dist/landmarks.d.ts +83 -59
  83. package/dist/landmarks.d.ts.map +1 -1
  84. package/dist/landmarks.js +194 -134
  85. package/dist/landmarks.js.map +1 -1
  86. package/dist/messages.d.ts +77 -5
  87. package/dist/messages.d.ts.map +1 -1
  88. package/dist/messages.js.map +1 -1
  89. package/dist/mineCave.d.ts +7 -7
  90. package/dist/mineCave.d.ts.map +1 -1
  91. package/dist/mining.d.ts +8 -0
  92. package/dist/mining.d.ts.map +1 -1
  93. package/dist/mining.js +8 -0
  94. package/dist/mining.js.map +1 -1
  95. package/dist/questGuide.d.ts +30 -0
  96. package/dist/questGuide.d.ts.map +1 -0
  97. package/dist/questGuide.js +3 -0
  98. package/dist/questGuide.js.map +1 -0
  99. package/dist/quests.d.ts +29 -0
  100. package/dist/quests.d.ts.map +1 -1
  101. package/dist/quests.js +70 -0
  102. package/dist/quests.js.map +1 -1
  103. package/dist/snow.d.ts +2 -2
  104. package/dist/snow.d.ts.map +1 -1
  105. package/dist/snow.js +8 -5
  106. package/dist/snow.js.map +1 -1
  107. package/dist/spiderCave.d.ts.map +1 -1
  108. package/dist/travel.d.ts +7 -4
  109. package/dist/travel.d.ts.map +1 -1
  110. package/dist/travel.js +20 -4
  111. package/dist/travel.js.map +1 -1
  112. package/dist/woodwork.d.ts +8 -2
  113. package/dist/woodwork.d.ts.map +1 -1
  114. package/dist/woodwork.js +13 -3
  115. package/dist/woodwork.js.map +1 -1
  116. package/dist/xp.d.ts +18 -7
  117. package/dist/xp.d.ts.map +1 -1
  118. package/dist/xp.js +20 -9
  119. package/dist/xp.js.map +1 -1
  120. package/dist/zones.d.ts +5 -0
  121. package/dist/zones.d.ts.map +1 -1
  122. package/dist/zones.js +8 -3
  123. package/dist/zones.js.map +1 -1
  124. package/package.json +1 -1
@@ -0,0 +1,264 @@
1
+ import { NORTH_SHIFT } from './constants.js';
2
+ import { CAPITAL_AVENUE_Z, CAPITAL_BRIDGE_HALF_W, CAPITAL_FLOOR_H, CAPITAL_GATE_HALF_W, CAPITAL_MOAT_MAX_X, } from './capital.js';
3
+ /**
4
+ * THE KING'S HARBOUR
5
+ *
6
+ * The Capital's port (2026-09-21, James: "the capital city should have a
7
+ * large port coming out of it"). The city's north side is the edge of the
8
+ * world, so the sea is to the east: everything east of HARBOUR_SEA_X is the
9
+ * Sound, open water to the map's edge, with a shore curving back east to
10
+ * the edge south of the harbour. Between the moat and the water sits a
11
+ * walled harbour ward on the city's own axis: the East Gate's bridge lands
12
+ * on the Harbour Road, which runs the Royal Way's rows straight to the
13
+ * quay and on out along the Royal Pier. Warehouses face the quay either
14
+ * side of the road with cranes at their doors, the harbour master's house
15
+ * and the customs house face the road, an inn and a chandler behind them,
16
+ * and a breakwater runs out from the north tower to a lighthouse at the
17
+ * harbour mouth. Ships lie alongside the piers with gangplanks down; the
18
+ * harbour master sells passage on Branson's chart (travel.ts).
19
+ *
20
+ * World tiles, absolute like the capital's. Backend builder:
21
+ * capitalHarbour.ts. Assets: the quay grammar in pierDeck.ts (`quay`
22
+ * base), the lighthouse and harbour tower in capitalMonuments.ts, the
23
+ * crane in capitalFabric.ts (yardprop `crane`).
24
+ */
25
+ /** The ward: the moat's east bank to the quay edge, the wall rows included. */
26
+ export const HARBOUR_MIN_X = CAPITAL_MOAT_MAX_X + 1;
27
+ /** The quay's edge tile: the last land, the water begins on the next. */
28
+ export const HARBOUR_MAX_X = 819;
29
+ export const HARBOUR_SEA_X = HARBOUR_MAX_X + 1;
30
+ export const HARBOUR_NORTH_Z = 108;
31
+ export const HARBOUR_SOUTH_Z = 212;
32
+ /** Everything the ward and the bay own, for the sweep and the levelling. */
33
+ export const HARBOUR_WORKS = { minX: HARBOUR_MIN_X, maxX: 927, minZ: 64, maxZ: 296 };
34
+ /** The ward's floor is the city's; the quay stands two heights over the water. */
35
+ export const HARBOUR_FLOOR_H = CAPITAL_FLOOR_H;
36
+ export const HARBOUR_WATER_H = 0;
37
+ export const HARBOUR_SHORE_H = 1;
38
+ /** The Harbour Road: the Way's rows, kerbed, from the bridge foot to the quay. */
39
+ export const HARBOUR_ROAD_Z = CAPITAL_AVENUE_Z;
40
+ export const HARBOUR_ROAD_HALF_W = CAPITAL_GATE_HALF_W;
41
+ export const HARBOUR_ROAD_KERB_HALF_W = CAPITAL_BRIDGE_HALF_W;
42
+ /** The quay strip along the water, six wide, flags. */
43
+ export const HARBOUR_QUAY_MIN_X = 814;
44
+ /** Wall towers every this many tiles along the harbour walls. */
45
+ export const HARBOUR_BASTION_EVERY = 16;
46
+ /** The drums at the water ends of the walls stand on the quay's corners. */
47
+ export const HARBOUR_TOWER_X = 818;
48
+ const inRect = (r, x, z) => x >= r.minX && x <= r.maxX && z >= r.minZ && z <= r.maxZ;
49
+ /**
50
+ * The piers: stone, terrain at the ward's height with the quay grammar on
51
+ * their edges. The Royal Pier is on the road's rows; the two smaller piers
52
+ * flank it.
53
+ */
54
+ export const HARBOUR_ROYAL_PIER = { minX: HARBOUR_SEA_X, maxX: 853, minZ: HARBOUR_ROAD_Z - 3, maxZ: HARBOUR_ROAD_Z + 3 };
55
+ export const HARBOUR_NORTH_PIER = { minX: HARBOUR_SEA_X, maxX: 845, minZ: 128, maxZ: 131 };
56
+ export const HARBOUR_SOUTH_PIER = { minX: HARBOUR_SEA_X, maxX: 845, minZ: 189, maxZ: 192 };
57
+ export const HARBOUR_PIERS = [HARBOUR_ROYAL_PIER, HARBOUR_NORTH_PIER, HARBOUR_SOUTH_PIER];
58
+ /** The breakwater from the north tower, three wide, and its head with the lighthouse on it. */
59
+ export const HARBOUR_MOLE = { minX: HARBOUR_SEA_X, maxX: 861, minZ: HARBOUR_NORTH_Z, maxZ: HARBOUR_NORTH_Z + 2 };
60
+ export const HARBOUR_MOLE_HEAD = { minX: 862, maxX: 866, minZ: 106, maxZ: 112 };
61
+ export const HARBOUR_LIGHTHOUSE = { x: 864, z: 109 };
62
+ /**
63
+ * The ships. `style` is the ship kind and its bow's heading (face90 is bow
64
+ * east, face270 bow west, face0 bow south); `hull` is the water the hull
65
+ * lies over, blocked so nothing paths under a keel; `plank` is the pier
66
+ * tile the gangplank leaves from and the side it goes over.
67
+ */
68
+ export const HARBOUR_SHIPS = [
69
+ {
70
+ id: 'royal-north',
71
+ x: 838,
72
+ z: 153,
73
+ style: 'harbourship-crimson-face90',
74
+ hull: { minX: 830, maxX: 846, minZ: 151, maxZ: 155 },
75
+ plank: { x: 838, z: HARBOUR_ROYAL_PIER.minZ, side: 'north' },
76
+ },
77
+ {
78
+ id: 'royal-south',
79
+ x: 842,
80
+ z: 167,
81
+ style: 'harbourship-gold-face270',
82
+ hull: { minX: 834, maxX: 850, minZ: 165, maxZ: 169 },
83
+ plank: { x: 842, z: HARBOUR_ROYAL_PIER.maxZ, side: 'south' },
84
+ },
85
+ {
86
+ id: 'north-pier',
87
+ x: 834,
88
+ z: 124,
89
+ style: 'harbourship-green-face90',
90
+ hull: { minX: 826, maxX: 842, minZ: 122, maxZ: 126 },
91
+ plank: { x: 834, z: HARBOUR_NORTH_PIER.minZ, side: 'north' },
92
+ },
93
+ {
94
+ id: 'north-pier-south',
95
+ x: 834,
96
+ z: 135,
97
+ style: 'harbourship-blue-face270',
98
+ hull: { minX: 826, maxX: 842, minZ: 133, maxZ: 137 },
99
+ plank: { x: 834, z: HARBOUR_NORTH_PIER.maxZ, side: 'south' },
100
+ },
101
+ {
102
+ id: 'south-pier',
103
+ x: 832,
104
+ z: 185,
105
+ style: 'landingship-face270',
106
+ hull: { minX: 827, maxX: 837, minZ: 183, maxZ: 187 },
107
+ plank: { x: 832, z: HARBOUR_SOUTH_PIER.minZ, side: 'north' },
108
+ },
109
+ {
110
+ id: 'south-pier-south',
111
+ x: 830,
112
+ z: 196,
113
+ style: 'viking-face90',
114
+ hull: { minX: 826, maxX: 834, minZ: 194, maxZ: 198 },
115
+ plank: { x: 830, z: HARBOUR_SOUTH_PIER.maxZ, side: 'south' },
116
+ },
117
+ {
118
+ id: 'south-quay',
119
+ x: 823,
120
+ z: 204,
121
+ style: 'viking-face0',
122
+ hull: { minX: 821, maxX: 825, minZ: 200, maxZ: 208 },
123
+ plank: { x: HARBOUR_MAX_X, z: 204, side: 'east' },
124
+ },
125
+ ];
126
+ /**
127
+ * The buildings. Warehouses face the quay (door east), the master's house
128
+ * and the customs house face the road, the inn and the chandler stand
129
+ * behind them on the road too. Styles as the capital's landmarks.
130
+ */
131
+ export const HARBOUR_LANDMARKS = [
132
+ { id: 'harbour-master', kind: 'stonehouse', style: 'hall-s', x: 800, z: 148, board: 'Harbour Master' },
133
+ { id: 'customs', kind: 'stonehouse', style: 'bank-n', x: 800, z: 172, board: 'Customs House' },
134
+ { id: 'anchor-inn', kind: 'stonehouse', style: 'pub-s', x: 784, z: 148 },
135
+ { id: 'chandler', kind: 'stonehouse', style: 'shop-n', x: 784, z: 172, board: 'Chandler' },
136
+ { id: 'warehouse-n1', kind: 'warehouse', style: 'store-e', x: 806, z: 134 },
137
+ { id: 'warehouse-n2', kind: 'warehouse', style: 'store-e', x: 806, z: 119 },
138
+ { id: 'warehouse-s1', kind: 'warehouse', style: 'store-e', x: 806, z: 186 },
139
+ { id: 'warehouse-s2', kind: 'warehouse', style: 'store-e', x: 806, z: 201 },
140
+ ];
141
+ /**
142
+ * The two open yards that replaced the blind terraces (the Capital redesign,
143
+ * 2026-09-25: no blind buildings anywhere James can see from the East Gate).
144
+ * Both run from the moat's bank to the warehouses' backs (x 771-797).
145
+ *
146
+ * The Net Yard, inside the north wall: net drying frames, fish racks, rope
147
+ * coils, a boat on trestles, barrels.
148
+ */
149
+ export const HARBOUR_NET_YARD = {
150
+ minX: HARBOUR_MIN_X + 2,
151
+ maxX: HARBOUR_MIN_X + 28,
152
+ minZ: HARBOUR_NORTH_Z + 2,
153
+ maxZ: HARBOUR_NORTH_Z + 24,
154
+ };
155
+ /**
156
+ * The Fish Market, inside the south wall: six striped stalls in two rows
157
+ * facing each other across an aisle (the three on the quay stay too), fish
158
+ * racks and ice crates round them. The Fishmonger's tile is the aisle's
159
+ * middle (phase 2).
160
+ */
161
+ export const HARBOUR_FISH_MARKET = {
162
+ minX: HARBOUR_MIN_X + 2,
163
+ maxX: HARBOUR_MIN_X + 28,
164
+ minZ: HARBOUR_SOUTH_Z - 24,
165
+ maxZ: HARBOUR_SOUTH_Z - 2,
166
+ };
167
+ const FISH_MARKET_X = (HARBOUR_FISH_MARKET.minX + HARBOUR_FISH_MARKET.maxX) / 2;
168
+ const FISH_MARKET_Z = (HARBOUR_FISH_MARKET.minZ + HARBOUR_FISH_MARKET.maxZ) / 2;
169
+ export const HARBOUR_FISH_MARKET_KEEPER = { x: FISH_MARKET_X, z: FISH_MARKET_Z };
170
+ /** The six stalls: `marketstall fish-<facing>`, each counter three tiles along x, fronting the aisle. */
171
+ export const HARBOUR_FISH_MARKET_STALLS = [-6, 0, 6].flatMap((dx) => [
172
+ { x: FISH_MARKET_X + dx, z: FISH_MARKET_Z - 3, facing: 's', style: 'fish-s' },
173
+ { x: FISH_MARKET_X + dx, z: FISH_MARKET_Z + 3, facing: 'n', style: 'fish-n' },
174
+ ]);
175
+ /** Treadwheel cranes on the quay edge, at the warehouse doors. */
176
+ export const HARBOUR_CRANES = [
177
+ { x: 818, z: 124 },
178
+ { x: 818, z: 140 },
179
+ { x: 818, z: 180 },
180
+ { x: 818, z: 196 },
181
+ ];
182
+ /** The fish market on the south quay: stalls with their backs to the water. */
183
+ export const HARBOUR_FISH_STALLS = [
184
+ { x: 816, z: 198 },
185
+ { x: 816, z: 202 },
186
+ { x: 816, z: 206 },
187
+ ];
188
+ /** The sailings board at the Royal Pier's root. */
189
+ export const HARBOUR_BOARD = { x: 817, z: 154 };
190
+ /**
191
+ * Marlow stands out on the Royal Pier at the crimson ship's gangplank, not
192
+ * back on the quay: the man who sells you a passage is beside the ship that
193
+ * carries it (James, 2026-09-22). The board still meets you at the root.
194
+ */
195
+ export const HARBOUR_MASTER = { x: 837, z: 158, faceX: 838, faceZ: 154 };
196
+ /** Where a sailing puts you ashore: the Royal Pier beside the first gangplank. */
197
+ export const HARBOUR_LANDING = { x: 836, z: HARBOUR_ROAD_Z };
198
+ /** The name on the road and the map. */
199
+ export const HARBOUR_NAME = "The King's Harbour";
200
+ /** The wall rows and the tiles inward that the wall pieces fill. */
201
+ export function onHarbourWall(x, z) {
202
+ if (x < HARBOUR_MIN_X || x > HARBOUR_MAX_X)
203
+ return false;
204
+ return z === HARBOUR_NORTH_Z || z === HARBOUR_NORTH_Z + 1 || z === HARBOUR_SOUTH_Z || z === HARBOUR_SOUTH_Z - 1;
205
+ }
206
+ export function inHarbourWard(x, z) {
207
+ return x >= HARBOUR_MIN_X && x <= HARBOUR_MAX_X && z >= HARBOUR_NORTH_Z && z <= HARBOUR_SOUTH_Z;
208
+ }
209
+ /** Inside the walls: where the buildings and yards are. */
210
+ export function inHarbourInterior(x, z) {
211
+ return inHarbourWard(x, z) && !onHarbourWall(x, z);
212
+ }
213
+ export function onHarbourRoad(x, z) {
214
+ return x >= HARBOUR_MIN_X && x < HARBOUR_QUAY_MIN_X && Math.abs(z - HARBOUR_ROAD_Z) <= HARBOUR_ROAD_KERB_HALF_W;
215
+ }
216
+ export function onHarbourQuay(x, z) {
217
+ return x >= HARBOUR_QUAY_MIN_X && x <= HARBOUR_MAX_X && inHarbourInterior(x, z);
218
+ }
219
+ export function onHarbourPier(x, z) {
220
+ return HARBOUR_PIERS.some((p) => inRect(p, x, z));
221
+ }
222
+ export function onHarbourMole(x, z) {
223
+ return inRect(HARBOUR_MOLE, x, z) || inRect(HARBOUR_MOLE_HEAD, x, z);
224
+ }
225
+ /** Every stone deck standing over the water: the piers and the breakwater. */
226
+ export function onHarbourDeck(x, z) {
227
+ return onHarbourPier(x, z) || onHarbourMole(x, z);
228
+ }
229
+ /** A small deterministic hash in [0, 1) for the shore's wander. */
230
+ function shoreHash(x, z) {
231
+ let h = (x * 374761393 + z * 668265263) | 0;
232
+ h = Math.imul(h ^ (h >>> 13), 1274126177);
233
+ return ((h ^ (h >>> 16)) >>> 0) / 4294967296;
234
+ }
235
+ /**
236
+ * The Sound's shore south of the harbour: the first water column on a row.
237
+ * Straight along the quay and the ward, then bending east below the south
238
+ * tower to reach the map's edge, wandering a tile or two so it is a coast
239
+ * and not a ruler.
240
+ */
241
+ export const HARBOUR_SHORE_BEND_Z = 240;
242
+ export function harbourShoreX(z) {
243
+ if (z <= HARBOUR_SHORE_BEND_Z)
244
+ return HARBOUR_SEA_X;
245
+ const run = z - HARBOUR_SHORE_BEND_Z;
246
+ const hz = z - NORTH_SHIFT;
247
+ const w = (shoreHash(Math.floor(hz / 3), 7) + shoreHash(Math.floor(hz / 5) + 3, 11)) / 2;
248
+ return Math.min(HARBOUR_WORKS.maxX + 1, HARBOUR_SEA_X + Math.round(run * 2.7 + w * 4 - 2));
249
+ }
250
+ /** The Sound: sea from the shore to the map's edge, the north rows included, the decks excepted. */
251
+ export function inHarbourSea(x, z) {
252
+ if (z < HARBOUR_WORKS.minZ || z > HARBOUR_WORKS.maxZ)
253
+ return false;
254
+ if (onHarbourDeck(x, z))
255
+ return false;
256
+ if (z <= HARBOUR_WORKS.minZ + 2 && x >= HARBOUR_MIN_X)
257
+ return true;
258
+ return x >= harbourShoreX(z);
259
+ }
260
+ /** Laid stone: the ward inside its walls, the piers and the breakwater (see the frontend's LaidPaving). */
261
+ export function inHarbourPaving(x, z) {
262
+ return inHarbourInterior(x, z) || onHarbourDeck(x, z);
263
+ }
264
+ //# sourceMappingURL=harbour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harbour.js","sourceRoot":"","sources":["../src/harbour.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { iceDepthsPropBlocks, type EntityKind } from './constants.js';
2
+ /**
3
+ * The Frozen Depths (2026-09-21, James: "expand the frozen dungeon to have
4
+ * boss rooms"): five boss rooms carved in the off-map strip north of the
5
+ * Ice Prison, reached from the Frozen Shrine, which is the dungeon's hub.
6
+ *
7
+ * There are no puzzles. Every "lever" on the reference map (the chain
8
+ * winches, the soul braziers, the reagent bench, the relic lift) is a rune
9
+ * arch in the shrine's wall that teleports you into its room, and every
10
+ * room has an arch by its arrival tile that teleports you back. The one
11
+ * gate is the lift down to the Final Core: the four wing bosses each drop
12
+ * a relic, and the lift wants all four in the bag (kept, not spent).
13
+ *
14
+ * Layout in world tiles (the strip runs x 928-1183; the prison holds
15
+ * x 1112-1160, z 102-180; the Rat Tunnel holds x 1032-1080). Two rows of
16
+ * rooms north of the shrine, walls of the same dark rock between them:
17
+ *
18
+ * z 6-40 Rune Chamber (Frost Warden) x 1086-1114
19
+ * Ritual Chamber (Ice Lich) x 1150-1178
20
+ * z 50-94 Shattered Hollow (Bonechill Yeti) x 1086-1114
21
+ * Final Core (Glacial Behemoth) x 1118-1146
22
+ * Lower Laboratory (Frost Alchemist) x 1150-1178
23
+ *
24
+ * Each room's arrival tile is at its south end and its return arch is in
25
+ * the south wall behind it; the boss waits at the far end. The hub's
26
+ * arches: west wall (rune at z 116, hollow at the seal's row), east wall
27
+ * (ritual at the seal's row, lab at z 134), and the Warden's sealed door
28
+ * in the north wall, which is the lift.
29
+ */
30
+ export type IceDepthsRoomId = 'rune' | 'hollow' | 'ritual' | 'lab' | 'core';
31
+ export type IceDepthsBossKind = 'frostwarden' | 'bonechillyeti' | 'icelich' | 'frostalchemist' | 'glacialbehemoth';
32
+ /** The relic each wing boss drops, in the order of the rooms above. */
33
+ export type IceDepthsRelicKind = 'gatesealkey' | 'prisonchainhook' | 'frostsigil' | 'crystalphial';
34
+ export declare const ICE_DEPTHS_RELICS: ReadonlyArray<IceDepthsRelicKind>;
35
+ export type IceDepthsRoom = {
36
+ id: IceDepthsRoomId;
37
+ /** The room's name, on the cover and in Examine. */
38
+ title: string;
39
+ /** The line under the title on the cover. */
40
+ line: string;
41
+ boss: IceDepthsBossKind;
42
+ bossName: string;
43
+ minX: number;
44
+ maxX: number;
45
+ minZ: number;
46
+ maxZ: number;
47
+ cx: number;
48
+ cz: number;
49
+ /** The room's floor height (the shrine is -1). */
50
+ floorH: number;
51
+ /** Where the hub's arch drops you. */
52
+ arrival: {
53
+ x: number;
54
+ z: number;
55
+ };
56
+ /** The arch back to the hub, in the south wall behind the arrival tile. */
57
+ returnArch: {
58
+ x: number;
59
+ z: number;
60
+ };
61
+ /** Where the boss stands. */
62
+ bossSpawn: {
63
+ x: number;
64
+ z: number;
65
+ };
66
+ /** The arch in the shrine's wall that leads here, and where you land coming back. */
67
+ hubArch: {
68
+ x: number;
69
+ z: number;
70
+ facing: 'n' | 'e' | 'w';
71
+ };
72
+ hubArrival: {
73
+ x: number;
74
+ z: number;
75
+ };
76
+ /** The relic the boss drops, for the lift; the Final Core drops none. */
77
+ relic?: IceDepthsRelicKind;
78
+ };
79
+ export declare const ICE_DEPTHS_ROOMS: Readonly<Record<IceDepthsRoomId, IceDepthsRoom>>;
80
+ export declare const ICE_DEPTHS_ROOM_IDS: ReadonlyArray<IceDepthsRoomId>;
81
+ /** Wall margin included: rock, lighting and colouring cover the rock between the rooms. */
82
+ export declare const ICE_DEPTHS_BOUNDS: {
83
+ readonly minX: number;
84
+ readonly maxX: number;
85
+ readonly minZ: 0;
86
+ readonly maxZ: 100;
87
+ };
88
+ export declare function inIceDepths(x: number, z: number): boolean;
89
+ /** The room whose floor rectangle holds the tile, wall tiles excluded. */
90
+ export declare function iceDepthsRoomAt(x: number, z: number): IceDepthsRoomId | null;
91
+ /**
92
+ * Portal arches are rune arches whose style carries `portal-<room>` (into
93
+ * a room) or `portal-hub` (back to the shrine), after the facing letter and,
94
+ * for the lift, the `sealed` token that keeps the slab drawn:
95
+ * `w-portal-rune`, `s-portal-hub`, `n-sealed-portal-core`.
96
+ */
97
+ export declare const ICE_DEPTHS_PORTAL_TOKEN = "portal-";
98
+ export type IceDepthsPortalTarget = IceDepthsRoomId | 'hub';
99
+ export declare function iceDepthsPortalTarget(style: string | undefined): IceDepthsPortalTarget | null;
100
+ export declare function iceDepthsPortalStyle(facing: 'n' | 's' | 'e' | 'w', target: IceDepthsPortalTarget, sealed?: boolean): string;
101
+ /**
102
+ * Boss levels and max hits (backend npcs.ts reads these; the game guide
103
+ * prints them). Raised on 2026-09-22 with the level cap at 60 (James:
104
+ * "frozen bosses can be higher levels"): the Alchemist is the first wing a
105
+ * level-50 party should try, the Behemoth sits ten past the cap. Order
106
+ * also fixes the Frozen equipment drop odds (ICE_DEPTHS_BOSS_TIER).
107
+ */
108
+ export declare const ICE_DEPTHS_BOSS_STATS: Readonly<Record<IceDepthsBossKind, {
109
+ level: number;
110
+ maxHit: number;
111
+ }>>;
112
+ /** The bosses, where they stand, and the scale the client draws them at (player-rig giants). */
113
+ export declare const ICE_DEPTHS_BOSS_SPAWNS: ReadonlyArray<{
114
+ kind: IceDepthsBossKind;
115
+ room: IceDepthsRoomId;
116
+ x: number;
117
+ z: number;
118
+ scale?: number;
119
+ }>;
120
+ /**
121
+ * The Depths' own dressing, one entity kind styled by token (the dreadprop
122
+ * pattern). Solid unless listed in ICE_DEPTHS_PROP_WALK_THROUGH.
123
+ *
124
+ * obelisk a black monolith with a glowing diamond rune (the ring round an arena)
125
+ * wolfstatue-<f> a stone wolf seated on a plinth, facing n/s/e/w
126
+ * coffin, coffin-ew a stone sarcophagus, lid ajar, long on z or on x
127
+ * ribcage a beast's ribcage in the ice
128
+ * throne the Lich's throne of black stone and ice on its own step
129
+ * altar a ritual altar with a skull and a lit rune
130
+ * vat-red|blue|green a great cauldron glowing that colour, steam over it
131
+ * tube a glass specimen tube on an iron base with a figure frozen in it
132
+ * pipe-ns|ew|corner a run of ice-glass pipe on iron stands (corner turns n to e)
133
+ * valve-red|blue|green a valve wheel on a pedestal
134
+ * shelf a potion shelf, bottles glowing
135
+ * bench the alchemist's bench with a burner and flasks
136
+ * grate an iron floor grate (walk-through)
137
+ * medallion the snowflake medallion set in the floor, three tiles across (walk-through)
138
+ * runecircle a glowing rune circle on the floor, three tiles across (walk-through)
139
+ * spill-red|blue|green a spill of reagent across the floor (walk-through)
140
+ * lantern-red|blue|green a lantern hung from the dark on a chain (walk-through)
141
+ * ladder a ladder up the rock face (walk-through)
142
+ * brazier-blue a pedestal brazier burning cold blue
143
+ * chest an iron-bound chest of the Warden's things
144
+ */
145
+ export declare const ICE_DEPTHS_PROP_STYLES: ReadonlyArray<string>;
146
+ /** Solid or floor, by style: see iceDepthsPropBlocks in constants.ts. */
147
+ export { iceDepthsPropBlocks };
148
+ /** The drops that are not equipment, so the guide can group them. */
149
+ export declare const ICE_DEPTHS_MATERIAL_KINDS: ReadonlyArray<EntityKind>;
150
+ //# sourceMappingURL=iceDepths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iceDepths.d.ts","sourceRoot":"","sources":["../src/iceDepths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { GRID_WIDTH, UNDERGROUND_ORIGIN_X, iceDepthsPropBlocks } from './constants.js';
2
+ export const ICE_DEPTHS_RELICS = ['gatesealkey', 'prisonchainhook', 'frostsigil', 'crystalphial'];
3
+ /** The shrine's centre column, the same as ICE_PRISON_CX in landmarks.ts. */
4
+ const HUB_CX = UNDERGROUND_ORIGIN_X + 208;
5
+ /** The shrine's walls, the same as ICE_PRISON_SHRINE (halfW 16, z 110-140). */
6
+ const HUB_WALL_W = HUB_CX - 17;
7
+ const HUB_WALL_E = HUB_CX + 17;
8
+ const HUB_MIN_Z = 110;
9
+ const HUB_SEAL_Z = 125;
10
+ function room(id, title, line, boss, bossName, minX, minZ, hubArch, relic) {
11
+ const maxX = minX + 28;
12
+ const maxZ = minZ + (id === 'rune' || id === 'ritual' ? 34 : 44);
13
+ const cx = minX + 14;
14
+ const cz = Math.floor((minZ + maxZ) / 2);
15
+ const hubArrival = hubArch.facing === 'w' ? { x: hubArch.x + 2, z: hubArch.z }
16
+ : hubArch.facing === 'e' ? { x: hubArch.x - 2, z: hubArch.z }
17
+ : { x: hubArch.x, z: hubArch.z + 3 };
18
+ return {
19
+ id, title, line, boss, bossName, minX, maxX, minZ, maxZ, cx, cz,
20
+ floorH: -1,
21
+ arrival: { x: cx, z: maxZ - 2 },
22
+ returnArch: { x: cx, z: maxZ + 1 },
23
+ bossSpawn: { x: cx, z: minZ + Math.floor((maxZ - minZ) * 0.4) },
24
+ hubArch,
25
+ hubArrival,
26
+ relic,
27
+ };
28
+ }
29
+ export const ICE_DEPTHS_ROOMS = {
30
+ rune: room('rune', 'The Rune Chamber', 'Something has kept its post a very long time.', 'frostwarden', 'Frost Warden', 1086, 6, { x: HUB_WALL_W, z: HUB_MIN_Z + 6, facing: 'w' }, 'gatesealkey'),
31
+ hollow: room('hollow', 'The Shattered Hollow', 'The ice underfoot is not all one piece.', 'bonechillyeti', 'Bonechill Yeti', 1086, 50, { x: HUB_WALL_W, z: HUB_SEAL_Z, facing: 'w' }, 'prisonchainhook'),
32
+ ritual: room('ritual', 'The Ritual Chamber', 'The runes on the floor are still warm.', 'icelich', 'Ice Lich', 1150, 6, { x: HUB_WALL_E, z: HUB_SEAL_Z, facing: 'e' }, 'frostsigil'),
33
+ lab: room('lab', 'The Lower Laboratory', 'Something in the vats is still bubbling.', 'frostalchemist', 'Frost Alchemist', 1150, 50, { x: HUB_WALL_E, z: HUB_MIN_Z + 24, facing: 'e' }, 'crystalphial'),
34
+ core: room('core', 'The Final Core', 'The cold here has a heartbeat.', 'glacialbehemoth', 'Glacial Behemoth', 1118, 50, { x: HUB_CX, z: HUB_MIN_Z - 1, facing: 'n' }),
35
+ };
36
+ export const ICE_DEPTHS_ROOM_IDS = ['rune', 'hollow', 'ritual', 'lab', 'core'];
37
+ /** Wall margin included: rock, lighting and colouring cover the rock between the rooms. */
38
+ export const ICE_DEPTHS_BOUNDS = {
39
+ minX: UNDERGROUND_ORIGIN_X + 154,
40
+ maxX: GRID_WIDTH - 1,
41
+ minZ: 0,
42
+ maxZ: 100,
43
+ };
44
+ export function inIceDepths(x, z) {
45
+ return x >= ICE_DEPTHS_BOUNDS.minX && x <= ICE_DEPTHS_BOUNDS.maxX && z >= ICE_DEPTHS_BOUNDS.minZ && z <= ICE_DEPTHS_BOUNDS.maxZ;
46
+ }
47
+ /** The room whose floor rectangle holds the tile, wall tiles excluded. */
48
+ export function iceDepthsRoomAt(x, z) {
49
+ for (const id of ICE_DEPTHS_ROOM_IDS) {
50
+ const r = ICE_DEPTHS_ROOMS[id];
51
+ if (x >= r.minX && x <= r.maxX && z >= r.minZ && z <= r.maxZ)
52
+ return id;
53
+ }
54
+ return null;
55
+ }
56
+ /**
57
+ * Portal arches are rune arches whose style carries `portal-<room>` (into
58
+ * a room) or `portal-hub` (back to the shrine), after the facing letter and,
59
+ * for the lift, the `sealed` token that keeps the slab drawn:
60
+ * `w-portal-rune`, `s-portal-hub`, `n-sealed-portal-core`.
61
+ */
62
+ export const ICE_DEPTHS_PORTAL_TOKEN = 'portal-';
63
+ export function iceDepthsPortalTarget(style) {
64
+ if (typeof style !== 'string')
65
+ return null;
66
+ const i = style.indexOf(ICE_DEPTHS_PORTAL_TOKEN);
67
+ if (i < 0)
68
+ return null;
69
+ const target = style.slice(i + ICE_DEPTHS_PORTAL_TOKEN.length);
70
+ if (target === 'hub')
71
+ return 'hub';
72
+ return ICE_DEPTHS_ROOM_IDS.includes(target) ? target : null;
73
+ }
74
+ export function iceDepthsPortalStyle(facing, target, sealed = false) {
75
+ return `${facing}-${sealed ? 'sealed-' : ''}${ICE_DEPTHS_PORTAL_TOKEN}${target}`;
76
+ }
77
+ /**
78
+ * Boss levels and max hits (backend npcs.ts reads these; the game guide
79
+ * prints them). Raised on 2026-09-22 with the level cap at 60 (James:
80
+ * "frozen bosses can be higher levels"): the Alchemist is the first wing a
81
+ * level-50 party should try, the Behemoth sits ten past the cap. Order
82
+ * also fixes the Frozen equipment drop odds (ICE_DEPTHS_BOSS_TIER).
83
+ */
84
+ export const ICE_DEPTHS_BOSS_STATS = {
85
+ frostalchemist: { level: 52, maxHit: 28 },
86
+ frostwarden: { level: 55, maxHit: 30 },
87
+ bonechillyeti: { level: 58, maxHit: 36 },
88
+ icelich: { level: 62, maxHit: 34 },
89
+ glacialbehemoth: { level: 70, maxHit: 48 },
90
+ };
91
+ /** The bosses, where they stand, and the scale the client draws them at (player-rig giants). */
92
+ export const ICE_DEPTHS_BOSS_SPAWNS = ICE_DEPTHS_ROOM_IDS.map((id) => {
93
+ const r = ICE_DEPTHS_ROOMS[id];
94
+ const scale = r.boss === 'bonechillyeti' ? 2.05 : r.boss === 'glacialbehemoth' ? 2.4 : r.boss === 'frostwarden' ? 1.2 : undefined;
95
+ return { kind: r.boss, room: id, x: r.bossSpawn.x, z: r.bossSpawn.z, scale };
96
+ });
97
+ /**
98
+ * The Depths' own dressing, one entity kind styled by token (the dreadprop
99
+ * pattern). Solid unless listed in ICE_DEPTHS_PROP_WALK_THROUGH.
100
+ *
101
+ * obelisk a black monolith with a glowing diamond rune (the ring round an arena)
102
+ * wolfstatue-<f> a stone wolf seated on a plinth, facing n/s/e/w
103
+ * coffin, coffin-ew a stone sarcophagus, lid ajar, long on z or on x
104
+ * ribcage a beast's ribcage in the ice
105
+ * throne the Lich's throne of black stone and ice on its own step
106
+ * altar a ritual altar with a skull and a lit rune
107
+ * vat-red|blue|green a great cauldron glowing that colour, steam over it
108
+ * tube a glass specimen tube on an iron base with a figure frozen in it
109
+ * pipe-ns|ew|corner a run of ice-glass pipe on iron stands (corner turns n to e)
110
+ * valve-red|blue|green a valve wheel on a pedestal
111
+ * shelf a potion shelf, bottles glowing
112
+ * bench the alchemist's bench with a burner and flasks
113
+ * grate an iron floor grate (walk-through)
114
+ * medallion the snowflake medallion set in the floor, three tiles across (walk-through)
115
+ * runecircle a glowing rune circle on the floor, three tiles across (walk-through)
116
+ * spill-red|blue|green a spill of reagent across the floor (walk-through)
117
+ * lantern-red|blue|green a lantern hung from the dark on a chain (walk-through)
118
+ * ladder a ladder up the rock face (walk-through)
119
+ * brazier-blue a pedestal brazier burning cold blue
120
+ * chest an iron-bound chest of the Warden's things
121
+ */
122
+ export const ICE_DEPTHS_PROP_STYLES = [
123
+ 'obelisk', 'wolfstatue-n', 'wolfstatue-s', 'wolfstatue-e', 'wolfstatue-w', 'coffin', 'coffin-ew', 'ribcage', 'throne', 'altar',
124
+ 'vat-red', 'vat-blue', 'vat-green', 'tube', 'pipe-ns', 'pipe-ew', 'pipe-corner', 'valve-red', 'valve-blue', 'valve-green',
125
+ 'shelf', 'bench', 'grate', 'medallion', 'runecircle', 'spill-red', 'spill-blue', 'spill-green',
126
+ 'lantern-red', 'lantern-blue', 'lantern-green', 'ladder', 'brazier-blue', 'chest',
127
+ ];
128
+ /** Solid or floor, by style: see iceDepthsPropBlocks in constants.ts. */
129
+ export { iceDepthsPropBlocks };
130
+ /** The drops that are not equipment, so the guide can group them. */
131
+ export const ICE_DEPTHS_MATERIAL_KINDS = ['bonechillpelt', 'glacialore', 'frozencore', 'behemothcrystalshard'];
132
+ //# sourceMappingURL=iceDepths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iceDepths.js","sourceRoot":"","sources":["../src/iceDepths.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,4 +28,13 @@ export * from './adventure.js';
28
28
  export * from './brokenRoad.js';
29
29
  export * from './bloodRiver.js';
30
30
  export * from './capital.js';
31
+ export * from './harbour.js';
32
+ export * from './iceDepths.js';
33
+ export * from './questGuide.js';
34
+ export * from './frozenSet.js';
35
+ export * from './interiorFurniture.js';
36
+ export * from './dungeonCharts.js';
37
+ export * from './charcoal.js';
38
+ export * from './dragonfire.js';
39
+ export * from './bearFloes.js';
31
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -28,4 +28,13 @@ export * from './adventure.js';
28
28
  export * from './brokenRoad.js';
29
29
  export * from './bloodRiver.js';
30
30
  export * from './capital.js';
31
+ export * from './harbour.js';
32
+ export * from './iceDepths.js';
33
+ export * from './questGuide.js';
34
+ export * from './frozenSet.js';
35
+ export * from './interiorFurniture.js';
36
+ export * from './dungeonCharts.js';
37
+ export * from './charcoal.js';
38
+ export * from './dragonfire.js';
39
+ export * from './bearFloes.js';
31
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}