bunja 0.0.11 → 0.1.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/deno.lock ADDED
@@ -0,0 +1,487 @@
1
+ {
2
+ "version": "4",
3
+ "specifiers": {
4
+ "npm:@types/react@18": "18.3.12",
5
+ "npm:react@18": "18.3.1",
6
+ "npm:tsdown@~0.2.17": "0.2.17_typescript@5.6.3",
7
+ "npm:typescript@^5.6.3": "5.6.3"
8
+ },
9
+ "npm": {
10
+ "@antfu/utils@0.7.10": {
11
+ "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww=="
12
+ },
13
+ "@emnapi/core@1.3.1": {
14
+ "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==",
15
+ "dependencies": [
16
+ "@emnapi/wasi-threads",
17
+ "tslib"
18
+ ]
19
+ },
20
+ "@emnapi/runtime@1.3.1": {
21
+ "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==",
22
+ "dependencies": [
23
+ "tslib"
24
+ ]
25
+ },
26
+ "@emnapi/wasi-threads@1.0.1": {
27
+ "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==",
28
+ "dependencies": [
29
+ "tslib"
30
+ ]
31
+ },
32
+ "@esbuild/aix-ppc64@0.23.1": {
33
+ "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ=="
34
+ },
35
+ "@esbuild/android-arm64@0.23.1": {
36
+ "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw=="
37
+ },
38
+ "@esbuild/android-arm@0.23.1": {
39
+ "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ=="
40
+ },
41
+ "@esbuild/android-x64@0.23.1": {
42
+ "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg=="
43
+ },
44
+ "@esbuild/darwin-arm64@0.23.1": {
45
+ "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q=="
46
+ },
47
+ "@esbuild/darwin-x64@0.23.1": {
48
+ "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw=="
49
+ },
50
+ "@esbuild/freebsd-arm64@0.23.1": {
51
+ "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA=="
52
+ },
53
+ "@esbuild/freebsd-x64@0.23.1": {
54
+ "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g=="
55
+ },
56
+ "@esbuild/linux-arm64@0.23.1": {
57
+ "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g=="
58
+ },
59
+ "@esbuild/linux-arm@0.23.1": {
60
+ "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ=="
61
+ },
62
+ "@esbuild/linux-ia32@0.23.1": {
63
+ "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ=="
64
+ },
65
+ "@esbuild/linux-loong64@0.23.1": {
66
+ "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw=="
67
+ },
68
+ "@esbuild/linux-mips64el@0.23.1": {
69
+ "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q=="
70
+ },
71
+ "@esbuild/linux-ppc64@0.23.1": {
72
+ "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw=="
73
+ },
74
+ "@esbuild/linux-riscv64@0.23.1": {
75
+ "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA=="
76
+ },
77
+ "@esbuild/linux-s390x@0.23.1": {
78
+ "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw=="
79
+ },
80
+ "@esbuild/linux-x64@0.23.1": {
81
+ "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ=="
82
+ },
83
+ "@esbuild/netbsd-x64@0.23.1": {
84
+ "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA=="
85
+ },
86
+ "@esbuild/openbsd-arm64@0.23.1": {
87
+ "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q=="
88
+ },
89
+ "@esbuild/openbsd-x64@0.23.1": {
90
+ "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA=="
91
+ },
92
+ "@esbuild/sunos-x64@0.23.1": {
93
+ "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA=="
94
+ },
95
+ "@esbuild/win32-arm64@0.23.1": {
96
+ "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A=="
97
+ },
98
+ "@esbuild/win32-ia32@0.23.1": {
99
+ "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ=="
100
+ },
101
+ "@esbuild/win32-x64@0.23.1": {
102
+ "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg=="
103
+ },
104
+ "@jridgewell/sourcemap-codec@1.5.0": {
105
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
106
+ },
107
+ "@napi-rs/wasm-runtime@0.2.5": {
108
+ "integrity": "sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==",
109
+ "dependencies": [
110
+ "@emnapi/core",
111
+ "@emnapi/runtime",
112
+ "@tybys/wasm-util"
113
+ ]
114
+ },
115
+ "@oxc-parser/binding-darwin-arm64@0.31.0": {
116
+ "integrity": "sha512-N+Ru4CQGFIEm+pHJ/X69s+ifF3clH9V7iqGYNhBb8ryP1Bk+i+lk+ip9Yh1HoopXsmmU/1RxuW1qWZ6jcq9U6Q=="
117
+ },
118
+ "@oxc-parser/binding-darwin-x64@0.31.0": {
119
+ "integrity": "sha512-CmA0/xLCnsdJPb3VR6Rv1lJn7hTNtqMB5huswHCxQhHieG1DEFyIuhiihfMoDFiRCZhetRaXgdF9QUgUOqxyjA=="
120
+ },
121
+ "@oxc-parser/binding-linux-arm64-gnu@0.31.0": {
122
+ "integrity": "sha512-nfO7NiHK+1LmwOdMtokajMXiUvQjqtUs2wABpqMDmySDts5WCib48e1JEJ6OvOFpbaEXeJ1nlsK5mkdfQXVOqQ=="
123
+ },
124
+ "@oxc-parser/binding-linux-arm64-musl@0.31.0": {
125
+ "integrity": "sha512-q5EMMc5E0hmRkVkDYnsBYJeu7ZFgICbqCaGftABFy4Kl7CJjcpHzwFgGfMBa371Uv954cW0E9MyaqbtCgSrv8g=="
126
+ },
127
+ "@oxc-parser/binding-linux-x64-gnu@0.31.0": {
128
+ "integrity": "sha512-06lHxaqyg1Ab41pacIn8sDwLvjJdP2wDJKBcbQDceOjGtq2a41+UZa7xmctVUzbhchNuNc707sx1aXztnLQNuQ=="
129
+ },
130
+ "@oxc-parser/binding-linux-x64-musl@0.31.0": {
131
+ "integrity": "sha512-IUnfRXKy/CABwKkkVuLLC46A0uwtmiRemvXHIysO1VhrDPFQrLPUgCJuCfdvSVVfS4JH7ixAnRyWumSrLGuA1w=="
132
+ },
133
+ "@oxc-parser/binding-win32-arm64-msvc@0.31.0": {
134
+ "integrity": "sha512-Z3ovZuXEvh+AUIxFHeFk8Ww7CvyuqJ5omVAI2yV9/x/UopRVoL6/pC3lU6geSqWmwoYxXbqPeJkyrRdivv1mjw=="
135
+ },
136
+ "@oxc-parser/binding-win32-x64-msvc@0.31.0": {
137
+ "integrity": "sha512-/fxEQE+xVbz+JMvpUt1j2l67x04PKXqXUHVF8LUN//tV27e7mSc3eZ8TBnrbu0SGp110QdscWf4oZNZK/e3/RA=="
138
+ },
139
+ "@rolldown/binding-darwin-arm64@0.13.2-snapshot-75f1f88-20241027003605": {
140
+ "integrity": "sha512-oLYRKqZ6WZk8zL8YdelfVIC4xatDiYX6uYM73bHfKeEliKkKhregSmmrZ2r0ov4b7v16BZ94sNLa5/v8ThgaOw=="
141
+ },
142
+ "@rolldown/binding-darwin-x64@0.13.2-snapshot-75f1f88-20241027003605": {
143
+ "integrity": "sha512-E9Z/uJVWVtVMnbOPFgDXaa0hZJ+NmXIPcSXHVLXoEN+qlXN5gE+IhrNHqPfaCTmkJLRwG3GE7t1EWvbC3jtAJw=="
144
+ },
145
+ "@rolldown/binding-freebsd-x64@0.13.2-snapshot-75f1f88-20241027003605": {
146
+ "integrity": "sha512-YfOw13kmFuTGPrOAUSX2DkFVYRidsiFUVbNgPeq10jELAtSn9FXVWT7gSS1v9m9o0L5KjyCulFzhBd9Nssu2nQ=="
147
+ },
148
+ "@rolldown/binding-linux-arm-gnueabihf@0.13.2-snapshot-75f1f88-20241027003605": {
149
+ "integrity": "sha512-f9vOrmUfbWFWdGhToD2gDpT1KAMWN3BKV3GfqK8RlYyp8OLW1G5xBiJ0DT6ymKHJfVT57Em6Q25AFJU2IzaW6A=="
150
+ },
151
+ "@rolldown/binding-linux-arm64-gnu@0.13.2-snapshot-75f1f88-20241027003605": {
152
+ "integrity": "sha512-IfzlTlvB8cxqJ4ixwh5Lnw39t2JOcIMpjvsQzVnrdWERjJa5LqM6qDHnrf/E8S8TGvWjUCDT2jr2Yjt8Wy/VWA=="
153
+ },
154
+ "@rolldown/binding-linux-arm64-musl@0.13.2-snapshot-75f1f88-20241027003605": {
155
+ "integrity": "sha512-al7jF6+nrkmpNfhskvFF5C5C2rUqevjyYi2CCP/q+/8G1kVJzyO0eSUeqIaReKVdQbZ1vDnuVa0SmcNy4P0hYQ=="
156
+ },
157
+ "@rolldown/binding-linux-x64-gnu@0.13.2-snapshot-75f1f88-20241027003605": {
158
+ "integrity": "sha512-nK9102FtrBegvB/LvUtFbrGfY/xvHgXFWPKSNCE3aBez6ZEmB1C8dXWu1qzIaG4sFMOAKmyhvWD0p06CSFhnTA=="
159
+ },
160
+ "@rolldown/binding-linux-x64-musl@0.13.2-snapshot-75f1f88-20241027003605": {
161
+ "integrity": "sha512-/b3LTHnMaFv/gULaZF1p64GkUL5PbM94ke7xPpf3uCH7oDdnimAT4s/fkQ0N4kYmRanpj9r8JXP8URirIxe0ng=="
162
+ },
163
+ "@rolldown/binding-wasm32-wasi@0.13.2-snapshot-75f1f88-20241027003605": {
164
+ "integrity": "sha512-aCfMIFhBRVfccqkiHBsRc245b9KsUfPq83PTFxrU4MBs3+XHqT/8EbWFEYFlR3MsOYj5LL3fMXpVN6bUL8yjUg==",
165
+ "dependencies": [
166
+ "@napi-rs/wasm-runtime"
167
+ ]
168
+ },
169
+ "@rolldown/binding-win32-arm64-msvc@0.13.2-snapshot-75f1f88-20241027003605": {
170
+ "integrity": "sha512-+pozhs4cCM7A9txHb6hJe45c8CBsZ0l434f8wakfe677SPgnsxKnoNM7vfoi5MqSD/J+SNAOI/e2YtjA7dd6Gw=="
171
+ },
172
+ "@rolldown/binding-win32-ia32-msvc@0.13.2-snapshot-75f1f88-20241027003605": {
173
+ "integrity": "sha512-dxE0mJUk/rC70NbGawUNKUETf9bsCMx0qjBVAFcAXyw2FQ9r9Hl0278RPNQOqiEDO94J6+DX4sxrDgLRkscmkA=="
174
+ },
175
+ "@rolldown/binding-win32-x64-msvc@0.13.2-snapshot-75f1f88-20241027003605": {
176
+ "integrity": "sha512-34c/CVlq3U36J8XiaWgXv065JpRjeVtRcV+iz5VSqukvAsIYaIrm7/ZkhvSosVS5ufAKbuSZ8Mc+Z1l9I8Q4Tw=="
177
+ },
178
+ "@rollup/pluginutils@5.1.3": {
179
+ "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==",
180
+ "dependencies": [
181
+ "@types/estree",
182
+ "estree-walker",
183
+ "picomatch"
184
+ ]
185
+ },
186
+ "@tybys/wasm-util@0.9.0": {
187
+ "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
188
+ "dependencies": [
189
+ "tslib"
190
+ ]
191
+ },
192
+ "@types/estree@1.0.6": {
193
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="
194
+ },
195
+ "@types/prop-types@15.7.13": {
196
+ "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA=="
197
+ },
198
+ "@types/react@18.3.12": {
199
+ "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
200
+ "dependencies": [
201
+ "@types/prop-types",
202
+ "csstype"
203
+ ]
204
+ },
205
+ "acorn@8.14.0": {
206
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="
207
+ },
208
+ "bundle-require@5.0.0_esbuild@0.23.1": {
209
+ "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==",
210
+ "dependencies": [
211
+ "esbuild",
212
+ "load-tsconfig"
213
+ ]
214
+ },
215
+ "cac@6.7.14": {
216
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="
217
+ },
218
+ "chokidar@4.0.1": {
219
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
220
+ "dependencies": [
221
+ "readdirp"
222
+ ]
223
+ },
224
+ "confbox@0.1.8": {
225
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="
226
+ },
227
+ "consola@3.2.3": {
228
+ "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ=="
229
+ },
230
+ "csstype@3.1.3": {
231
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
232
+ },
233
+ "debug@4.3.7": {
234
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
235
+ "dependencies": [
236
+ "ms"
237
+ ]
238
+ },
239
+ "defu@6.1.4": {
240
+ "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="
241
+ },
242
+ "esbuild@0.23.1": {
243
+ "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
244
+ "dependencies": [
245
+ "@esbuild/aix-ppc64",
246
+ "@esbuild/android-arm",
247
+ "@esbuild/android-arm64",
248
+ "@esbuild/android-x64",
249
+ "@esbuild/darwin-arm64",
250
+ "@esbuild/darwin-x64",
251
+ "@esbuild/freebsd-arm64",
252
+ "@esbuild/freebsd-x64",
253
+ "@esbuild/linux-arm",
254
+ "@esbuild/linux-arm64",
255
+ "@esbuild/linux-ia32",
256
+ "@esbuild/linux-loong64",
257
+ "@esbuild/linux-mips64el",
258
+ "@esbuild/linux-ppc64",
259
+ "@esbuild/linux-riscv64",
260
+ "@esbuild/linux-s390x",
261
+ "@esbuild/linux-x64",
262
+ "@esbuild/netbsd-x64",
263
+ "@esbuild/openbsd-arm64",
264
+ "@esbuild/openbsd-x64",
265
+ "@esbuild/sunos-x64",
266
+ "@esbuild/win32-arm64",
267
+ "@esbuild/win32-ia32",
268
+ "@esbuild/win32-x64"
269
+ ]
270
+ },
271
+ "estree-walker@2.0.2": {
272
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
273
+ },
274
+ "fdir@6.4.2_picomatch@4.0.2": {
275
+ "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
276
+ "dependencies": [
277
+ "picomatch"
278
+ ]
279
+ },
280
+ "fsevents@2.3.3": {
281
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="
282
+ },
283
+ "get-tsconfig@4.8.1": {
284
+ "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==",
285
+ "dependencies": [
286
+ "resolve-pkg-maps"
287
+ ]
288
+ },
289
+ "importx@0.5.0_esbuild@0.23.1": {
290
+ "integrity": "sha512-qROz3rSOjQYclmEQAajH9RhBuqpAGHM+5CNd9fk+TsF4JKmQsAI1egafW8XZZv8vARCo4nAmmt5d0eI2B8GUsA==",
291
+ "dependencies": [
292
+ "bundle-require",
293
+ "debug",
294
+ "esbuild",
295
+ "jiti",
296
+ "pathe",
297
+ "tsx"
298
+ ]
299
+ },
300
+ "jiti@2.3.3": {
301
+ "integrity": "sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ=="
302
+ },
303
+ "js-tokens@4.0.0": {
304
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
305
+ },
306
+ "js-tokens@9.0.0": {
307
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ=="
308
+ },
309
+ "load-tsconfig@0.2.5": {
310
+ "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg=="
311
+ },
312
+ "loose-envify@1.4.0": {
313
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
314
+ "dependencies": [
315
+ "js-tokens@4.0.0"
316
+ ]
317
+ },
318
+ "magic-string@0.30.12": {
319
+ "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
320
+ "dependencies": [
321
+ "@jridgewell/sourcemap-codec"
322
+ ]
323
+ },
324
+ "mlly@1.7.2": {
325
+ "integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==",
326
+ "dependencies": [
327
+ "acorn",
328
+ "pathe",
329
+ "pkg-types",
330
+ "ufo"
331
+ ]
332
+ },
333
+ "ms@2.1.3": {
334
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
335
+ },
336
+ "oxc-parser@0.31.0": {
337
+ "integrity": "sha512-+P6wv1vdsYAmsGoFxT9yvJpXAHHl7GlYEnK/FN6EtfH/oyFK2W04zb6ZvDxFwW4loPx3gZiE2GFFNpoei7OcYg==",
338
+ "dependencies": [
339
+ "@oxc-parser/binding-darwin-arm64",
340
+ "@oxc-parser/binding-darwin-x64",
341
+ "@oxc-parser/binding-linux-arm64-gnu",
342
+ "@oxc-parser/binding-linux-arm64-musl",
343
+ "@oxc-parser/binding-linux-x64-gnu",
344
+ "@oxc-parser/binding-linux-x64-musl",
345
+ "@oxc-parser/binding-win32-arm64-msvc",
346
+ "@oxc-parser/binding-win32-x64-msvc"
347
+ ]
348
+ },
349
+ "pathe@1.1.2": {
350
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
351
+ },
352
+ "picocolors@1.1.1": {
353
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
354
+ },
355
+ "picomatch@4.0.2": {
356
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="
357
+ },
358
+ "pkg-types@1.2.1": {
359
+ "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==",
360
+ "dependencies": [
361
+ "confbox",
362
+ "mlly",
363
+ "pathe"
364
+ ]
365
+ },
366
+ "react@18.3.1": {
367
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
368
+ "dependencies": [
369
+ "loose-envify"
370
+ ]
371
+ },
372
+ "readdirp@4.0.2": {
373
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA=="
374
+ },
375
+ "resolve-pkg-maps@1.0.0": {
376
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="
377
+ },
378
+ "rolldown@0.13.2-snapshot-75f1f88-20241027003605": {
379
+ "integrity": "sha512-7eONqOzJEFzGomS/bFuEVkB+vF7+fB/Rt76Cf8wZ5dXsilNSUEo8eRuZx78Yxn7NPQimoBmffEbcNtezDxqiMw==",
380
+ "dependencies": [
381
+ "@rolldown/binding-darwin-arm64",
382
+ "@rolldown/binding-darwin-x64",
383
+ "@rolldown/binding-freebsd-x64",
384
+ "@rolldown/binding-linux-arm-gnueabihf",
385
+ "@rolldown/binding-linux-arm64-gnu",
386
+ "@rolldown/binding-linux-arm64-musl",
387
+ "@rolldown/binding-linux-x64-gnu",
388
+ "@rolldown/binding-linux-x64-musl",
389
+ "@rolldown/binding-wasm32-wasi",
390
+ "@rolldown/binding-win32-arm64-msvc",
391
+ "@rolldown/binding-win32-ia32-msvc",
392
+ "@rolldown/binding-win32-x64-msvc",
393
+ "zod"
394
+ ]
395
+ },
396
+ "tinyglobby@0.2.10_picomatch@4.0.2": {
397
+ "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
398
+ "dependencies": [
399
+ "fdir",
400
+ "picomatch"
401
+ ]
402
+ },
403
+ "tsdown@0.2.17_typescript@5.6.3": {
404
+ "integrity": "sha512-HPsRRIKHxgB3RsW4PK3R9Wx2OkiVysj7eeV2FI6PJkFhPjjn1+jXVshBPQwHpjJvMb373edfEMSyt8u1rU3cyA==",
405
+ "dependencies": [
406
+ "cac",
407
+ "chokidar",
408
+ "consola",
409
+ "picocolors",
410
+ "pkg-types",
411
+ "rolldown",
412
+ "tinyglobby",
413
+ "unconfig",
414
+ "unplugin-isolated-decl",
415
+ "unplugin-unused"
416
+ ]
417
+ },
418
+ "tslib@2.8.0": {
419
+ "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="
420
+ },
421
+ "tsx@4.19.2": {
422
+ "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==",
423
+ "dependencies": [
424
+ "esbuild",
425
+ "fsevents",
426
+ "get-tsconfig"
427
+ ]
428
+ },
429
+ "typescript@5.6.3": {
430
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="
431
+ },
432
+ "ufo@1.5.4": {
433
+ "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="
434
+ },
435
+ "unconfig@0.6.0": {
436
+ "integrity": "sha512-4C67J0nIF2QwSXty2kW3zZx1pMZ3iXabylvJWWgHybWVUcMf9pxwsngoQt0gC+AVstRywFqrRBp3qOXJayhpOw==",
437
+ "dependencies": [
438
+ "@antfu/utils",
439
+ "defu",
440
+ "importx"
441
+ ]
442
+ },
443
+ "unplugin-isolated-decl@0.6.7_typescript@5.6.3": {
444
+ "integrity": "sha512-DG2mrCqelQOMSWJr1d8Vhtv5jDozxMETJhqv3nruTJJdikR/FayxlilFUKhjbObjqa6PYGjsaNTMIpfvDP3cVw==",
445
+ "dependencies": [
446
+ "@rollup/pluginutils",
447
+ "magic-string",
448
+ "oxc-parser",
449
+ "typescript",
450
+ "unplugin"
451
+ ]
452
+ },
453
+ "unplugin-unused@0.2.3": {
454
+ "integrity": "sha512-qX708+nM4zi51RPMPgvOSqRs/73kUFKUO49oaBngg2t/VW5MhdbTkSQG/S1HEGsIvZcB/t32KzbISCF0n+UPSw==",
455
+ "dependencies": [
456
+ "@rollup/pluginutils",
457
+ "js-tokens@9.0.0",
458
+ "picocolors",
459
+ "pkg-types",
460
+ "unplugin"
461
+ ]
462
+ },
463
+ "unplugin@1.14.1": {
464
+ "integrity": "sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==",
465
+ "dependencies": [
466
+ "acorn",
467
+ "webpack-virtual-modules"
468
+ ]
469
+ },
470
+ "webpack-virtual-modules@0.6.2": {
471
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
472
+ },
473
+ "zod@3.23.8": {
474
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="
475
+ }
476
+ },
477
+ "workspace": {
478
+ "packageJson": {
479
+ "dependencies": [
480
+ "npm:@types/react@18",
481
+ "npm:react@18",
482
+ "npm:tsdown@~0.2.17",
483
+ "npm:typescript@^5.6.3"
484
+ ]
485
+ }
486
+ }
487
+ }
@@ -0,0 +1,155 @@
1
+
2
+ //#region bunja.ts
3
+ const bunjaEffectSymbol = Symbol("Bunja.effect");
4
+ var Bunja = class Bunja {
5
+ static bunjas = [];
6
+ id;
7
+ debugLabel = "";
8
+ constructor(deps, parents, relatedBunjas, relatedScopes, init) {
9
+ this.deps = deps;
10
+ this.parents = parents;
11
+ this.relatedBunjas = relatedBunjas;
12
+ this.relatedScopes = relatedScopes;
13
+ this.init = init;
14
+ this.id = Bunja.bunjas.length;
15
+ Bunja.bunjas.push(this);
16
+ }
17
+ static effect = bunjaEffectSymbol;
18
+ toString() {
19
+ const { id, debugLabel } = this;
20
+ return `[Bunja:${id}${debugLabel && ` - ${debugLabel}`}]`;
21
+ }
22
+ };
23
+ var Scope = class Scope {
24
+ static scopes = [];
25
+ id;
26
+ debugLabel = "";
27
+ constructor() {
28
+ this.id = Scope.scopes.length;
29
+ Scope.scopes.push(this);
30
+ }
31
+ toString() {
32
+ const { id, debugLabel } = this;
33
+ return `[Scope:${id}${debugLabel && ` - ${debugLabel}`}]`;
34
+ }
35
+ };
36
+ var BunjaStore = class {
37
+ #bunjas = {};
38
+ #scopes = new Map();
39
+ get(bunja$1, readScope) {
40
+ const scopeInstanceMap = new Map(bunja$1.relatedScopes.map((scope) => [scope, this.#getScopeInstance(scope, readScope(scope))]));
41
+ const bunjaInstance = this.#getBunjaInstance(bunja$1, scopeInstanceMap);
42
+ const { relatedBunjaInstanceMap } = bunjaInstance;
43
+ return {
44
+ value: bunjaInstance.value,
45
+ mount() {
46
+ relatedBunjaInstanceMap.forEach((related) => related.add());
47
+ bunjaInstance.add();
48
+ scopeInstanceMap.forEach((scope) => scope.add());
49
+ return function unmount() {
50
+ relatedBunjaInstanceMap.forEach((related) => related.sub());
51
+ bunjaInstance.sub();
52
+ scopeInstanceMap.forEach((scope) => scope.sub());
53
+ };
54
+ },
55
+ deps: Array.from(scopeInstanceMap.values()).map(({ value }) => value)
56
+ };
57
+ }
58
+ #getBunjaInstance(bunja$1, scopeInstanceMap) {
59
+ const localScopeInstanceMap = new Map(bunja$1.relatedScopes.map((scope) => [scope, scopeInstanceMap.get(scope)]));
60
+ const scopeInstanceIds = Array.from(localScopeInstanceMap.values()).map(({ instanceId }) => instanceId).sort((a, b) => a - b);
61
+ const bunjaInstanceId = `${bunja$1.id}:${scopeInstanceIds.join(",")}`;
62
+ if (this.#bunjas[bunjaInstanceId]) return this.#bunjas[bunjaInstanceId];
63
+ const relatedBunjaInstanceMap = new Map(bunja$1.relatedBunjas.map((relatedBunja) => [relatedBunja, this.#getBunjaInstance(relatedBunja, scopeInstanceMap)]));
64
+ const args = bunja$1.deps.map((dep) => {
65
+ if (dep instanceof Bunja) return relatedBunjaInstanceMap.get(dep).value;
66
+ if (dep instanceof Scope) return localScopeInstanceMap.get(dep).value;
67
+ throw new Error("Invalid dependency");
68
+ });
69
+ const bunjaInstance = new BunjaInstance(() => delete this.#bunjas[bunjaInstanceId], bunjaInstanceId, relatedBunjaInstanceMap, bunja$1.init.apply(bunja$1, args));
70
+ this.#bunjas[bunjaInstanceId] = bunjaInstance;
71
+ return bunjaInstance;
72
+ }
73
+ #getScopeInstance(scope, value) {
74
+ const scopeInstanceMap = this.#scopes.get(scope) ?? this.#scopes.set(scope, new Map()).get(scope);
75
+ const init = () => new ScopeInstance(() => scopeInstanceMap.delete(value), ScopeInstance.counter++, scope, value);
76
+ return scopeInstanceMap.get(value) ?? scopeInstanceMap.set(value, init()).get(value);
77
+ }
78
+ };
79
+ const createBunjaStore = () => new BunjaStore();
80
+ function bunjaImpl(deps, init) {
81
+ const parents = deps.filter((dep) => dep instanceof Bunja);
82
+ const scopes = deps.filter((dep) => dep instanceof Scope);
83
+ const relatedBunjas = toposort(parents);
84
+ const relatedScopes = Array.from(new Set([...scopes, ...parents.flatMap((parent) => parent.relatedScopes)]));
85
+ return new Bunja(deps, parents, relatedBunjas, relatedScopes, init);
86
+ }
87
+ bunjaImpl.effect = Bunja.effect;
88
+ const bunja = bunjaImpl;
89
+ function createScope() {
90
+ return new Scope();
91
+ }
92
+ var RefCounter = class {
93
+ #disposed = false;
94
+ #count = 0;
95
+ add() {
96
+ this.#count++;
97
+ }
98
+ sub() {
99
+ this.#count--;
100
+ setTimeout(() => {
101
+ if (this.#disposed) return;
102
+ if (this.#count < 1) {
103
+ this.#disposed = true;
104
+ this.dispose();
105
+ }
106
+ });
107
+ }
108
+ };
109
+ const noop = () => {};
110
+ var BunjaInstance = class extends RefCounter {
111
+ #cleanup;
112
+ #dispose;
113
+ constructor(dispose, instanceId, relatedBunjaInstanceMap, value) {
114
+ super();
115
+ this.instanceId = instanceId;
116
+ this.relatedBunjaInstanceMap = relatedBunjaInstanceMap;
117
+ this.value = value;
118
+ this.#dispose = () => {
119
+ this.#cleanup?.();
120
+ dispose();
121
+ };
122
+ }
123
+ add() {
124
+ this.#cleanup ??= this.value[Bunja.effect]?.() ?? noop;
125
+ super.add();
126
+ }
127
+ dispose() {
128
+ this.#dispose();
129
+ }
130
+ };
131
+ var ScopeInstance = class extends RefCounter {
132
+ static counter = 0;
133
+ constructor(dispose, instanceId, scope, value) {
134
+ super();
135
+ this.dispose = dispose;
136
+ this.instanceId = instanceId;
137
+ this.scope = scope;
138
+ this.value = value;
139
+ }
140
+ };
141
+ function toposort(nodes) {
142
+ const visited = new Set();
143
+ const result = [];
144
+ function visit(current) {
145
+ if (visited.has(current)) return;
146
+ visited.add(current);
147
+ for (const parent of current.parents) visit(parent);
148
+ result.push(current);
149
+ }
150
+ for (const node of nodes) visit(node);
151
+ return result;
152
+ }
153
+
154
+ //#endregion
155
+ export { Bunja, BunjaStore, Scope, bunja, createBunjaStore, createScope };