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/.vscode/settings.json +2 -1
- package/README.md +167 -1
- package/bunja.ts +60 -48
- package/deno.json +9 -0
- package/deno.lock +487 -0
- package/dist/bunja-3B0nQ1vI.js +155 -0
- package/dist/bunja-QjknYXY-.cjs +186 -0
- package/dist/bunja.cjs +9 -0
- package/dist/bunja.d.cts +53 -0
- package/dist/bunja.d.ts +53 -0
- package/dist/bunja.js +3 -0
- package/dist/react.cjs +65 -0
- package/dist/react.d.cts +9 -0
- package/dist/react.d.ts +9 -0
- package/dist/react.js +36 -0
- package/package.json +44 -4
- package/react.ts +18 -13
- package/tsconfig.json +7 -1
- package/tsdown.config.ts +10 -0
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 };
|