typetify 4.1.0 → 4.4.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/CHANGELOG.md +20 -0
- package/README.md +25 -1
- package/dist/async/index.d.mts +153 -1
- package/dist/async/index.d.ts +153 -1
- package/dist/async/index.js +1 -1
- package/dist/async/index.mjs +1 -1
- package/dist/chunk-272Z3AXV.js +1 -1
- package/dist/chunk-2WQWUTH5.mjs +1 -1
- package/dist/chunk-2YRFWQ6M.mjs +1 -1
- package/dist/chunk-35CB7HNN.js +1 -1
- package/dist/chunk-4JG7CFRK.js +1 -1
- package/dist/chunk-5FBZYPQM.mjs +1 -1
- package/dist/chunk-5XQRYI2Q.mjs +1 -1
- package/dist/chunk-6HA2SN23.js +1 -1
- package/dist/chunk-6NWIIOHH.js +1 -1
- package/dist/chunk-6WGRWYAD.js +1 -1
- package/dist/chunk-7LBL6CYT.js +1 -1
- package/dist/chunk-B3R73UK5.mjs +1 -1
- package/dist/chunk-BLUG7TSP.js +1 -1
- package/dist/chunk-C5X2N4X4.js +1 -2
- package/dist/chunk-CX7GJR55.js +1 -1
- package/dist/chunk-EAHFED6V.mjs +1 -1
- package/dist/chunk-EKSHS4DL.mjs +1 -1
- package/dist/chunk-F76ECQKE.js +1 -1
- package/dist/chunk-FHCBXSNA.js +1 -1
- package/dist/chunk-GKOA3XGQ.js +1 -1
- package/dist/chunk-GQIJLGEZ.mjs +1 -1
- package/dist/chunk-H7MLD632.mjs +1 -2
- package/dist/chunk-I4YSQ4HB.js +1 -1
- package/dist/chunk-II7XPQRS.js +1 -1
- package/dist/chunk-JZXLCA2E.mjs +1 -1
- package/dist/chunk-KB263JT5.mjs +1 -0
- package/dist/chunk-M5OMYDI7.mjs +1 -1
- package/dist/chunk-MB77QAOC.mjs +1 -1
- package/dist/chunk-MCQFAXUX.mjs +1 -1
- package/dist/chunk-MPY3WRLG.mjs +1 -1
- package/dist/chunk-NENRAPOL.mjs +1 -1
- package/dist/chunk-NOW4Q26G.mjs +1 -1
- package/dist/chunk-P4UNM7SF.js +1 -1
- package/dist/chunk-P5E2JDCX.mjs +1 -1
- package/dist/chunk-Q7SUL7MD.js +1 -1
- package/dist/chunk-RCSO5S56.js +1 -2
- package/dist/chunk-RHMANSTA.mjs +1 -1
- package/dist/chunk-SF64HETW.js +1 -1
- package/dist/chunk-T66YO63J.js +1 -1
- package/dist/chunk-TNK6EVQK.mjs +1 -1
- package/dist/chunk-TSJFKV3R.js +1 -1
- package/dist/chunk-TVCWWECJ.mjs +1 -1
- package/dist/chunk-U6XM3X5N.mjs +1 -2
- package/dist/chunk-U7MK5AR5.mjs +1 -1
- package/dist/chunk-W5I352FJ.js +1 -1
- package/dist/chunk-WCG5ODRX.mjs +1 -1
- package/dist/chunk-WDFIRO2J.js +1 -1
- package/dist/chunk-WOT6VMZA.js +1 -1
- package/dist/chunk-WS743BFA.js +1 -1
- package/dist/chunk-WWU7P2L2.mjs +1 -1
- package/dist/chunk-X6JSYVIW.mjs +1 -1
- package/dist/chunk-XKTDG6LH.js +1 -1
- package/dist/chunk-XPY5CWKZ.mjs +1 -1
- package/dist/chunk-YAKL6VRK.js +1 -0
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.mjs +1 -1
- package/dist/color/index.js +1 -1
- package/dist/color/index.mjs +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.mjs +1 -1
- package/dist/datetime/index.js +1 -1
- package/dist/datetime/index.mjs +1 -1
- package/dist/decorator/index.js +1 -1
- package/dist/decorator/index.mjs +1 -1
- package/dist/dom/index.js +1 -1
- package/dist/dom/index.mjs +1 -1
- package/dist/dx/index.js +1 -1
- package/dist/dx/index.mjs +1 -1
- package/dist/encrypt/index.js +1 -1
- package/dist/encrypt/index.mjs +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/flow/index.mjs +1 -1
- package/dist/fn/index.js +1 -1
- package/dist/fn/index.mjs +1 -1
- package/dist/guards/index.js +1 -1
- package/dist/guards/index.mjs +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/index.mjs +1 -1
- package/dist/index.d.mts +10 -3
- package/dist/index.d.ts +10 -3
- package/dist/index.js +1 -3
- package/dist/index.mjs +1 -3
- package/dist/input/index.js +1 -1
- package/dist/input/index.mjs +1 -1
- package/dist/iterator/index.js +1 -1
- package/dist/iterator/index.mjs +1 -1
- package/dist/logic/index.js +1 -1
- package/dist/logic/index.mjs +1 -1
- package/dist/math/index.js +1 -1
- package/dist/math/index.mjs +1 -1
- package/dist/narrowing/index.js +1 -1
- package/dist/narrowing/index.mjs +1 -1
- package/dist/object/index.js +1 -1
- package/dist/object/index.mjs +1 -1
- package/dist/path/index.js +1 -1
- package/dist/path/index.mjs +1 -1
- package/dist/result/index.js +1 -1
- package/dist/result/index.mjs +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.mjs +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.mjs +1 -1
- package/dist/string/index.js +1 -1
- package/dist/string/index.mjs +1 -1
- package/dist/typed/index.js +1 -1
- package/dist/typed/index.mjs +1 -1
- package/package.json +2 -1
- package/dist/chunk-QKNZICUO.mjs +0 -1
- package/dist/chunk-WAT4QJB2.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.3.0] - 2026-02-09
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Async Module**: Added `sequence()` helper for cleaner sequential async operations
|
|
12
|
+
- Stops at first error with detailed error reporting
|
|
13
|
+
- Returns partial results for debugging
|
|
14
|
+
- Cleaner than chaining multiple `awaitTo()` calls
|
|
15
|
+
- Based on community feedback from Dev.to
|
|
16
|
+
- **Async Result Helpers**: New utilities for working with `Promise<Result>`
|
|
17
|
+
- `allResults()` - Collect all Promise<Result> outcomes into a single Result
|
|
18
|
+
- `allResultsSync()` - Synchronous version for already resolved Results
|
|
19
|
+
- `anyResult()` - Return first successful Result (fallback pattern)
|
|
20
|
+
- `anyResultSync()` - Synchronous version for already resolved Results
|
|
21
|
+
- `partitionResults()` - Partition Results into successes and failures
|
|
22
|
+
- `collectResults()` - Collect all results without short-circuiting
|
|
23
|
+
|
|
24
|
+
### Improved
|
|
25
|
+
- Better error handling for sequential async operations
|
|
26
|
+
- Enhanced TypeScript types for `sequence()` result
|
|
27
|
+
|
|
8
28
|
## [4.1.0] - 2026-02-08
|
|
9
29
|
|
|
10
30
|
### Added
|
package/README.md
CHANGED
|
@@ -228,11 +228,26 @@ set(user, ['profile', 'age'], 30)
|
|
|
228
228
|
### Async — Async Utilities
|
|
229
229
|
|
|
230
230
|
```typescript
|
|
231
|
-
import { awaitTo, retry, sleep, withTimeout, debounce, throttle, parallel } from 'typetify/async'
|
|
231
|
+
import { awaitTo, retry, sleep, withTimeout, debounce, throttle, parallel, sequence } from 'typetify/async'
|
|
232
232
|
|
|
233
233
|
// awaitTo — No more try/catch
|
|
234
234
|
const [error, user] = await awaitTo(fetchUser(id))
|
|
235
235
|
|
|
236
|
+
// sequence — Execute async operations in sequence (cleaner than multiple awaitTo)
|
|
237
|
+
const result = await sequence([
|
|
238
|
+
() => fetchUser(id),
|
|
239
|
+
(user) => fetchProfile(user.id),
|
|
240
|
+
(profile) => fetchOrders(profile.userId)
|
|
241
|
+
])
|
|
242
|
+
|
|
243
|
+
if (!result.ok) {
|
|
244
|
+
console.error('Failed at step:', result.step, result.error)
|
|
245
|
+
console.log('Partial results:', result.partial)
|
|
246
|
+
return
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const [user, profile, orders] = result.data
|
|
250
|
+
|
|
236
251
|
// retry — Retry with backoff
|
|
237
252
|
const data = await retry(() => fetchData(), {
|
|
238
253
|
attempts: 3,
|
|
@@ -252,6 +267,15 @@ const results = await parallel(
|
|
|
252
267
|
// debounce/throttle
|
|
253
268
|
const debouncedSearch = debounce(search, 300)
|
|
254
269
|
const throttledScroll = throttle(onScroll, 100)
|
|
270
|
+
|
|
271
|
+
// allResults — Collect all Promise<Result> outcomes
|
|
272
|
+
const results = await allResults([fetchUser(1), fetchUser(2), fetchUser(3)])
|
|
273
|
+
if (results.ok) {
|
|
274
|
+
const [user1, user2, user3] = results.value
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// anyResult — First successful Result (fallback pattern)
|
|
278
|
+
const config = await anyResult([loadFromEnv(), loadFromFile(), loadDefaults()])
|
|
255
279
|
```
|
|
256
280
|
|
|
257
281
|
### Collection — Array Utilities
|
package/dist/async/index.d.mts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { R as Result } from '../types-VsDp2t8s.mjs';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Wraps a promise to return a tuple of [error, result].
|
|
3
5
|
* Eliminates the need for try/catch blocks.
|
|
@@ -149,4 +151,154 @@ declare function parallel<T>(tasks: readonly (() => Promise<T>)[], options?: {
|
|
|
149
151
|
concurrency?: number;
|
|
150
152
|
}): Promise<T[]>;
|
|
151
153
|
|
|
152
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Execute async operations in sequence, stopping at first error.
|
|
156
|
+
* Returns all results or error with partial results for debugging.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* const result = await sequence([
|
|
160
|
+
* () => fetchUser(id),
|
|
161
|
+
* (user) => fetchProfile(user.id),
|
|
162
|
+
* (profile) => fetchOrders(profile.userId)
|
|
163
|
+
* ])
|
|
164
|
+
*
|
|
165
|
+
* if (!result.ok) {
|
|
166
|
+
* console.error('Failed at step:', result.step, result.error)
|
|
167
|
+
* console.log('Partial results:', result.partial)
|
|
168
|
+
* return
|
|
169
|
+
* }
|
|
170
|
+
*
|
|
171
|
+
* const [user, profile, orders] = result.data
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* // With error handling
|
|
175
|
+
* const result = await sequence([
|
|
176
|
+
* () => validateInput(data),
|
|
177
|
+
* (validated) => processData(validated),
|
|
178
|
+
* (processed) => saveToDatabase(processed)
|
|
179
|
+
* ])
|
|
180
|
+
*
|
|
181
|
+
* if (!result.ok) {
|
|
182
|
+
* console.error(`Failed at step ${result.step}:`, result.error.message)
|
|
183
|
+
* return
|
|
184
|
+
* }
|
|
185
|
+
*/
|
|
186
|
+
type SequenceStep<T = any> = (() => Promise<T>) | ((prev: any) => Promise<T>);
|
|
187
|
+
type SequenceSuccess<T extends any[]> = {
|
|
188
|
+
ok: true;
|
|
189
|
+
data: T;
|
|
190
|
+
};
|
|
191
|
+
type SequenceError = {
|
|
192
|
+
ok: false;
|
|
193
|
+
error: Error;
|
|
194
|
+
step: number;
|
|
195
|
+
partial: any[];
|
|
196
|
+
};
|
|
197
|
+
type SequenceResult<T extends any[]> = SequenceSuccess<T> | SequenceError;
|
|
198
|
+
declare function sequence<T extends any[]>(steps: SequenceStep[]): Promise<SequenceResult<T>>;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Collects all Promise<Result> outcomes into a single Result.
|
|
202
|
+
* Returns Ok with all values if all succeed, or Err with first error.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* const results = await allResults([
|
|
206
|
+
* fetchUser(1),
|
|
207
|
+
* fetchUser(2),
|
|
208
|
+
* fetchUser(3)
|
|
209
|
+
* ])
|
|
210
|
+
*
|
|
211
|
+
* if (results.ok) {
|
|
212
|
+
* const [user1, user2, user3] = results.value
|
|
213
|
+
* } else {
|
|
214
|
+
* console.error('One failed:', results.error)
|
|
215
|
+
* }
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* // With different types
|
|
219
|
+
* const [userResult, profileResult] = await Promise.all([
|
|
220
|
+
* fetchUser(id),
|
|
221
|
+
* fetchProfile(id)
|
|
222
|
+
* ])
|
|
223
|
+
* const combined = allResultsSync([userResult, profileResult])
|
|
224
|
+
*/
|
|
225
|
+
declare function allResults<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<Result<T[], E>>;
|
|
226
|
+
/**
|
|
227
|
+
* Synchronous version of allResults for already resolved Results.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* const results = allResultsSync([ok(1), ok(2), ok(3)])
|
|
231
|
+
* // => { ok: true, value: [1, 2, 3] }
|
|
232
|
+
*
|
|
233
|
+
* const failed = allResultsSync([ok(1), err('failed'), ok(3)])
|
|
234
|
+
* // => { ok: false, error: 'failed' }
|
|
235
|
+
*/
|
|
236
|
+
declare function allResultsSync<T, E = Error>(results: readonly Result<T, E>[]): Result<T[], E>;
|
|
237
|
+
/**
|
|
238
|
+
* Returns the first successful Result from an array of Promise<Result>.
|
|
239
|
+
* If all fail, returns the last error.
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* const result = await anyResult([
|
|
243
|
+
* fetchFromPrimary(),
|
|
244
|
+
* fetchFromBackup(),
|
|
245
|
+
* fetchFromCache()
|
|
246
|
+
* ])
|
|
247
|
+
*
|
|
248
|
+
* if (result.ok) {
|
|
249
|
+
* console.log('Got data from one source:', result.value)
|
|
250
|
+
* }
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* // Fallback pattern
|
|
254
|
+
* const config = await anyResult([
|
|
255
|
+
* loadFromEnv(),
|
|
256
|
+
* loadFromFile(),
|
|
257
|
+
* loadDefaults()
|
|
258
|
+
* ])
|
|
259
|
+
*/
|
|
260
|
+
declare function anyResult<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<Result<T, E>>;
|
|
261
|
+
/**
|
|
262
|
+
* Synchronous version of anyResult for already resolved Results.
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* const result = anyResultSync([err('a'), ok(2), err('c')])
|
|
266
|
+
* // => { ok: true, value: 2 }
|
|
267
|
+
*
|
|
268
|
+
* const failed = anyResultSync([err('a'), err('b')])
|
|
269
|
+
* // => { ok: false, error: 'b' }
|
|
270
|
+
*/
|
|
271
|
+
declare function anyResultSync<T, E = Error>(results: readonly Result<T, E>[]): Result<T, E>;
|
|
272
|
+
/**
|
|
273
|
+
* Partitions an array of Results into successes and failures.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* const results = [ok(1), err('a'), ok(2), err('b')]
|
|
277
|
+
* const { successes, failures } = partitionResults(results)
|
|
278
|
+
* // successes: [1, 2]
|
|
279
|
+
* // failures: ['a', 'b']
|
|
280
|
+
*/
|
|
281
|
+
declare function partitionResults<T, E = Error>(results: readonly Result<T, E>[]): {
|
|
282
|
+
successes: T[];
|
|
283
|
+
failures: E[];
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* Collects all Results, returning both successes and failures.
|
|
287
|
+
* Unlike allResults, this doesn't short-circuit on first error.
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* const results = await collectResults([
|
|
291
|
+
* fetchUser(1),
|
|
292
|
+
* fetchUser(2), // might fail
|
|
293
|
+
* fetchUser(3)
|
|
294
|
+
* ])
|
|
295
|
+
*
|
|
296
|
+
* console.log('Succeeded:', results.successes.length)
|
|
297
|
+
* console.log('Failed:', results.failures.length)
|
|
298
|
+
*/
|
|
299
|
+
declare function collectResults<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<{
|
|
300
|
+
successes: T[];
|
|
301
|
+
failures: E[];
|
|
302
|
+
}>;
|
|
303
|
+
|
|
304
|
+
export { type Deferred, type RetryOptions, type SequenceError, type SequenceResult, type SequenceSuccess, allResults, allResultsSync, anyResult, anyResultSync, awaitTo, collectResults, debounce, defer, once, onceAsync, parallel, partitionResults, retry, sequence, sleep, throttle, withTimeout };
|
package/dist/async/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { R as Result } from '../types-VsDp2t8s.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Wraps a promise to return a tuple of [error, result].
|
|
3
5
|
* Eliminates the need for try/catch blocks.
|
|
@@ -149,4 +151,154 @@ declare function parallel<T>(tasks: readonly (() => Promise<T>)[], options?: {
|
|
|
149
151
|
concurrency?: number;
|
|
150
152
|
}): Promise<T[]>;
|
|
151
153
|
|
|
152
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Execute async operations in sequence, stopping at first error.
|
|
156
|
+
* Returns all results or error with partial results for debugging.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* const result = await sequence([
|
|
160
|
+
* () => fetchUser(id),
|
|
161
|
+
* (user) => fetchProfile(user.id),
|
|
162
|
+
* (profile) => fetchOrders(profile.userId)
|
|
163
|
+
* ])
|
|
164
|
+
*
|
|
165
|
+
* if (!result.ok) {
|
|
166
|
+
* console.error('Failed at step:', result.step, result.error)
|
|
167
|
+
* console.log('Partial results:', result.partial)
|
|
168
|
+
* return
|
|
169
|
+
* }
|
|
170
|
+
*
|
|
171
|
+
* const [user, profile, orders] = result.data
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* // With error handling
|
|
175
|
+
* const result = await sequence([
|
|
176
|
+
* () => validateInput(data),
|
|
177
|
+
* (validated) => processData(validated),
|
|
178
|
+
* (processed) => saveToDatabase(processed)
|
|
179
|
+
* ])
|
|
180
|
+
*
|
|
181
|
+
* if (!result.ok) {
|
|
182
|
+
* console.error(`Failed at step ${result.step}:`, result.error.message)
|
|
183
|
+
* return
|
|
184
|
+
* }
|
|
185
|
+
*/
|
|
186
|
+
type SequenceStep<T = any> = (() => Promise<T>) | ((prev: any) => Promise<T>);
|
|
187
|
+
type SequenceSuccess<T extends any[]> = {
|
|
188
|
+
ok: true;
|
|
189
|
+
data: T;
|
|
190
|
+
};
|
|
191
|
+
type SequenceError = {
|
|
192
|
+
ok: false;
|
|
193
|
+
error: Error;
|
|
194
|
+
step: number;
|
|
195
|
+
partial: any[];
|
|
196
|
+
};
|
|
197
|
+
type SequenceResult<T extends any[]> = SequenceSuccess<T> | SequenceError;
|
|
198
|
+
declare function sequence<T extends any[]>(steps: SequenceStep[]): Promise<SequenceResult<T>>;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Collects all Promise<Result> outcomes into a single Result.
|
|
202
|
+
* Returns Ok with all values if all succeed, or Err with first error.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* const results = await allResults([
|
|
206
|
+
* fetchUser(1),
|
|
207
|
+
* fetchUser(2),
|
|
208
|
+
* fetchUser(3)
|
|
209
|
+
* ])
|
|
210
|
+
*
|
|
211
|
+
* if (results.ok) {
|
|
212
|
+
* const [user1, user2, user3] = results.value
|
|
213
|
+
* } else {
|
|
214
|
+
* console.error('One failed:', results.error)
|
|
215
|
+
* }
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* // With different types
|
|
219
|
+
* const [userResult, profileResult] = await Promise.all([
|
|
220
|
+
* fetchUser(id),
|
|
221
|
+
* fetchProfile(id)
|
|
222
|
+
* ])
|
|
223
|
+
* const combined = allResultsSync([userResult, profileResult])
|
|
224
|
+
*/
|
|
225
|
+
declare function allResults<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<Result<T[], E>>;
|
|
226
|
+
/**
|
|
227
|
+
* Synchronous version of allResults for already resolved Results.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* const results = allResultsSync([ok(1), ok(2), ok(3)])
|
|
231
|
+
* // => { ok: true, value: [1, 2, 3] }
|
|
232
|
+
*
|
|
233
|
+
* const failed = allResultsSync([ok(1), err('failed'), ok(3)])
|
|
234
|
+
* // => { ok: false, error: 'failed' }
|
|
235
|
+
*/
|
|
236
|
+
declare function allResultsSync<T, E = Error>(results: readonly Result<T, E>[]): Result<T[], E>;
|
|
237
|
+
/**
|
|
238
|
+
* Returns the first successful Result from an array of Promise<Result>.
|
|
239
|
+
* If all fail, returns the last error.
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* const result = await anyResult([
|
|
243
|
+
* fetchFromPrimary(),
|
|
244
|
+
* fetchFromBackup(),
|
|
245
|
+
* fetchFromCache()
|
|
246
|
+
* ])
|
|
247
|
+
*
|
|
248
|
+
* if (result.ok) {
|
|
249
|
+
* console.log('Got data from one source:', result.value)
|
|
250
|
+
* }
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* // Fallback pattern
|
|
254
|
+
* const config = await anyResult([
|
|
255
|
+
* loadFromEnv(),
|
|
256
|
+
* loadFromFile(),
|
|
257
|
+
* loadDefaults()
|
|
258
|
+
* ])
|
|
259
|
+
*/
|
|
260
|
+
declare function anyResult<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<Result<T, E>>;
|
|
261
|
+
/**
|
|
262
|
+
* Synchronous version of anyResult for already resolved Results.
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* const result = anyResultSync([err('a'), ok(2), err('c')])
|
|
266
|
+
* // => { ok: true, value: 2 }
|
|
267
|
+
*
|
|
268
|
+
* const failed = anyResultSync([err('a'), err('b')])
|
|
269
|
+
* // => { ok: false, error: 'b' }
|
|
270
|
+
*/
|
|
271
|
+
declare function anyResultSync<T, E = Error>(results: readonly Result<T, E>[]): Result<T, E>;
|
|
272
|
+
/**
|
|
273
|
+
* Partitions an array of Results into successes and failures.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* const results = [ok(1), err('a'), ok(2), err('b')]
|
|
277
|
+
* const { successes, failures } = partitionResults(results)
|
|
278
|
+
* // successes: [1, 2]
|
|
279
|
+
* // failures: ['a', 'b']
|
|
280
|
+
*/
|
|
281
|
+
declare function partitionResults<T, E = Error>(results: readonly Result<T, E>[]): {
|
|
282
|
+
successes: T[];
|
|
283
|
+
failures: E[];
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* Collects all Results, returning both successes and failures.
|
|
287
|
+
* Unlike allResults, this doesn't short-circuit on first error.
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* const results = await collectResults([
|
|
291
|
+
* fetchUser(1),
|
|
292
|
+
* fetchUser(2), // might fail
|
|
293
|
+
* fetchUser(3)
|
|
294
|
+
* ])
|
|
295
|
+
*
|
|
296
|
+
* console.log('Succeeded:', results.successes.length)
|
|
297
|
+
* console.log('Failed:', results.failures.length)
|
|
298
|
+
*/
|
|
299
|
+
declare function collectResults<T, E = Error>(promises: readonly Promise<Result<T, E>>[]): Promise<{
|
|
300
|
+
successes: T[];
|
|
301
|
+
failures: E[];
|
|
302
|
+
}>;
|
|
303
|
+
|
|
304
|
+
export { type Deferred, type RetryOptions, type SequenceError, type SequenceResult, type SequenceSuccess, allResults, allResultsSync, anyResult, anyResultSync, awaitTo, collectResults, debounce, defer, once, onceAsync, parallel, partitionResults, retry, sequence, sleep, throttle, withTimeout };
|
package/dist/async/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var e=require("../chunk-YAKL6VRK.js");Object.defineProperty(exports,"allResults",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(exports,"allResultsSync",{enumerable:!0,get:function(){return e.m}}),Object.defineProperty(exports,"anyResult",{enumerable:!0,get:function(){return e.n}}),Object.defineProperty(exports,"anyResultSync",{enumerable:!0,get:function(){return e.o}}),Object.defineProperty(exports,"awaitTo",{enumerable:!0,get:function(){return e.a}}),Object.defineProperty(exports,"collectResults",{enumerable:!0,get:function(){return e.q}}),Object.defineProperty(exports,"debounce",{enumerable:!0,get:function(){return e.e}}),Object.defineProperty(exports,"defer",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(exports,"once",{enumerable:!0,get:function(){return e.g}}),Object.defineProperty(exports,"onceAsync",{enumerable:!0,get:function(){return e.h}}),Object.defineProperty(exports,"parallel",{enumerable:!0,get:function(){return e.j}}),Object.defineProperty(exports,"partitionResults",{enumerable:!0,get:function(){return e.p}}),Object.defineProperty(exports,"retry",{enumerable:!0,get:function(){return e.d}}),Object.defineProperty(exports,"sequence",{enumerable:!0,get:function(){return e.k}}),Object.defineProperty(exports,"sleep",{enumerable:!0,get:function(){return e.b}}),Object.defineProperty(exports,"throttle",{enumerable:!0,get:function(){return e.f}}),Object.defineProperty(exports,"withTimeout",{enumerable:!0,get:function(){return e.c}});
|
package/dist/async/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as awaitTo,e as debounce,i as defer,g as once,h as onceAsync,j as parallel,d as retry,b as sleep,f as throttle,c as withTimeout}from
|
|
1
|
+
export{l as allResults,m as allResultsSync,n as anyResult,o as anyResultSync,a as awaitTo,q as collectResults,e as debounce,i as defer,g as once,h as onceAsync,j as parallel,p as partitionResults,d as retry,k as sequence,b as sleep,f as throttle,c as withTimeout}from"../chunk-KB263JT5.mjs";
|
package/dist/chunk-272Z3AXV.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var r=require("./chunk-P4UNM7SF.js"),t={};function e(r,...t){return t.reduce((r,t)=>t(r),r)}function n(...r){return t=>r.reduceRight((r,t)=>t(r),t)}function o(r){return t=>(r(t),t)}function u(r,t){return e=>r(e)?t(e):e}function c(r,t){return e=>r(e)?e:t(e)}function s(){let r=[],t={with:(e,n)=>(r.push({when:e,then:n}),t),otherwise:t=>e=>{for(let t of r)if(t.when(e))return t.then(e);return t(e)},run(t){for(let e of r)if(e.when(t))return e.then(t)}};return t}function i(t){try{return r.a(t())}catch(t){return r.b(t instanceof Error?t:Error(t+""))}}async function f(t){try{let e=await t();return r.a(e)}catch(t){return r.b(t instanceof Error?t:Error(t+""))}}function h(r,t,e){return n=>r(n)?t(n):e(n)}function a(r){return()=>r}require("./chunk-WOT6VMZA.js").a(t,{compose:()=>n,constant:()=>a,ifElse:()=>h,match:()=>s,pipe:()=>e,tap:()=>o,tryCatch:()=>i,tryCatchAsync:()=>f,unless:()=>c,when:()=>u}),exports.a=e,exports.b=n,exports.c=o,exports.d=u,exports.e=c,exports.f=s,exports.g=i,exports.h=f,exports.i=h,exports.j=a,exports.k=t;
|
package/dist/chunk-2WQWUTH5.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{a as t}from"./chunk-JZXLCA2E.mjs";var e={};function n(t,e){if(!e)return[...new Set(t)];let n=new Set,r=[];for(let l of t){let t=e(l);n.has(t)||(n.add(t),r.push(l))}return r}function r(t,e){let n={};for(let r of t){let t=e(r);t in n||(n[t]=[]),n[t].push(r)}return n}function l(t,e){let n={};for(let r of t)n[e(r)]=r;return n}function u(t,e){let n=[],r=[];for(let l of t)e(l)?n.push(l):r.push(l);return[n,r]}function o(t,e){if(0>=e)throw Error("Chunk size must be greater than 0");let n=[];for(let r=0;t.length>r;r+=e)n.push(t.slice(r,r+e));return n}function f(t){return t.filter(t=>null!=t)}function i(t){let e=[];for(let n of t)Array.isArray(n)?e.push(...n):e.push(n);return e}function s(t,e,n="asc"){let r=[...t].sort((t,n)=>{let r=e(t),l=e(n);return l>r?-1:r>l?1:0});return"desc"===n?r.reverse():r}function a(t){return t[0]}function c(t){return t[t.length-1]}function h(t,e,n=1){if(0===n)throw Error("Step cannot be 0");let r=[];if(n>0)for(let l=t;e>l;l+=n)r.push(l);else for(let l=t;l>e;l+=n)r.push(l);return r}function p(t){let e=[...t];for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function g(t){if(0!==t.length)return t[Math.floor(Math.random()*t.length)]}function y(t,e){let n=Math.min(t.length,e.length),r=[];for(let l=0;n>l;l++)r.push([t[l],e[l]]);return r}function m(t){let e=[],n=[];for(let[r,l]of t)e.push(r),n.push(l);return[e,n]}function d(t,e){let n=new Set(e);return t.filter(t=>!n.has(t))}function k(t,e){let n=new Set(e);return t.filter(t=>n.has(t))}function B(t,e){return e>0?t.slice(0,e):[]}function M(t,e){return e>0?t.slice(e):[...t]}function b(t,e){let n=[];for(let r=0;t.length>r;r++){let l=t[r];if(!e(l,r))break;n.push(l)}return n}function w(t,e){let n=0;for(let r=0;t.length>r;r++){if(!e(t[r],r)){n=r;break}n=t.length}return t.slice(n)}function z(t,e){for(let n=t.length-1;n>=0;n--){let r=t[n];if(e(r,n))return r}}function S(t,e){let n={};for(let r of t){let t=e(r);n[t]=(n[t]??0)+1}return n}function j(t,e){if(0===t.length)return;let n=t[0],r=e(n);for(let l=1;t.length>l;l++){let u=t[l],o=e(u);o>r&&(r=o,n=u)}return n}function A(t,e){if(0===t.length)return;let n=t[0],r=e(n);for(let l=1;t.length>l;l++){let u=t[l],o=e(u);r>o&&(r=o,n=u)}return n}function x(t,e){let n=0;for(let r of t)n+=e(r);return n}function E(t){return t[0]}function O(t){return t.slice(1)}function v(t){return t.slice(0,-1)}function C(t,e){return t.filter((t,n,r)=>!e(t,n,r))}function q(t){return null==t?0:"string"==typeof t||Array.isArray(t)?t.length:t instanceof Map||t instanceof Set?t.size:Object.keys(t).length}function L(t,e){let n={};for(let r of t)n[e(r)]=r;return n}function W(t,e){if(0>=e||0===t.length)return[];let n=Math.min(e,t.length),r=[...t];for(let t=0;n>t;t++){let e=t+Math.floor(Math.random()*(r.length-t)),n=r[t];r[t]=r[e],r[e]=n}return r.slice(0,n)}function D(t,e){let n={},r={};for(let l in t)if(Object.prototype.hasOwnProperty.call(t,l)){let u=t[l];e(u,l)?n[l]=u:r[l]=u}return[n,r]}t(e,{chunk:()=>o,compact:()=>f,countBy:()=>S,difference:()=>d,drop:()=>M,dropWhile:()=>w,findLast:()=>z,first:()=>a,flatten:()=>i,groupBy:()=>r,head:()=>E,indexBy:()=>l,init:()=>v,intersection:()=>k,keyBy:()=>L,last:()=>c,maxBy:()=>j,minBy:()=>A,partition:()=>u,partitionObject:()=>D,range:()=>h,reject:()=>C,sample:()=>g,sampleSize:()=>W,shuffle:()=>p,size:()=>q,sortBy:()=>s,sumBy:()=>x,tail:()=>O,take:()=>B,takeWhile:()=>b,unique:()=>n,unzip:()=>m,zip:()=>y});export{E as A,O as B,v as C,C as D,q as E,L as F,W as G,D as H,e as I,n as a,r as b,l as c,u as d,o as e,f,i as g,s as h,a as i,c as j,h as k,p as l,g as m,y as n,m as o,d as p,k as q,B as r,M as s,b as t,w as u,z as v,S as w,j as x,A as y,x as z};
|
package/dist/chunk-2YRFWQ6M.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{a as e}from"./chunk-JZXLCA2E.mjs";var t={};function a(e){return 0===e.length?"":e.charAt(0).toUpperCase()+e.slice(1)}function r(e){return 0===e.length?"":e.charAt(0).toLowerCase()+e.slice(1)}function n(e){return e.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():"").replace(/^[A-Z]/,e=>e.toLowerCase())}function l(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function c(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function s(e){return e.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():"").replace(/^[a-z]/,e=>e.toUpperCase())}function u(e,t,a="..."){return e.length>t?e.slice(0,t)+a:e}function p(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function o(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,a)=>a in t?t[a]+"":`{{${a}}}`)}function i(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").trim().split(/\s+/).filter(Boolean)}function g(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function f(e){let t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>t[e]??e)}function h(e){let t={"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","/":"/"};return e.replace(/&(?:amp|lt|gt|quot|#39|#x27|#x2F);/g,e=>t[e]??e)}function C(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function m(e,t,a=" "){let r=e.length;if(r>=t||0===a.length)return e;let n=t-r,l=Math.floor(n/2),c=n-l;return d(a,l)+e+d(a,c)}function $(e,t,a=" "){let r=e.length;return t>r&&0!==a.length?d(a,t-r)+e:e}function z(e,t,a=" "){let r=e.length;return t>r&&0!==a.length?e+d(a,t-r):e}function d(e,t){return t>0?e.repeat(Math.ceil(t/e.length)).slice(0,t):""}e(t,{camelCase:()=>n,capitalize:()=>a,deburr:()=>g,escape:()=>f,escapeRegExp:()=>C,kebabCase:()=>l,pad:()=>m,padEnd:()=>z,padStart:()=>$,pascalCase:()=>s,slugify:()=>p,snakeCase:()=>c,template:()=>o,truncate:()=>u,uncapitalize:()=>r,unescape:()=>h,words:()=>i});export{a,r as b,n as c,l as d,c as e,s as f,u as g,p as h,o as i,i as j,g as k,f as l,h as m,C as n,m as o,$ as p,z as q,t as r};
|
package/dist/chunk-35CB7HNN.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var e={};function t(e,t=document){return t.querySelector(e)}function o(e,t=document){return Array.from(t.querySelectorAll(e))}function n(...e){let t=[];for(let o of e)if(o)if("string"==typeof o||"number"==typeof o)t.push(o+"");else if(Array.isArray(o)){let e=n(...o);e&&t.push(e)}else if("object"==typeof o)for(let[e,n]of Object.entries(o))n&&t.push(e);return t.join(" ")}function r(e,...t){e&&e.classList.add(...t)}function s(e,...t){e&&e.classList.remove(...t)}function i(e,t,o){return!!e&&e.classList.toggle(t,o)}function l(e,t){return!!e&&e.classList.contains(t)}function u(e,t,o,n){return e?(e.addEventListener(t,o,n),()=>{e.removeEventListener(t,o,n)}):()=>{}}function c(e,t,o){if(!e)return()=>{};let n=r=>{o(r),e.removeEventListener(t,n)};return e.addEventListener(t,n),()=>{e.removeEventListener(t,n)}}function f(e,t,o,n){let r=o=>{let r=o.target.closest(t);r&&e.contains(r)&&n(o,r)};return e.addEventListener(o,r),()=>{e.removeEventListener(o,r)}}function p(e,t=0){if(!e)return!1;let o=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,r=window.innerWidth||document.documentElement.clientWidth;return!(o.top>n||0>o.top+o.height*t||o.left>r||0>o.left+o.width*t)}function d(e){return e?e.getBoundingClientRect():null}function a(e,t="start",o="smooth"){e&&e.scrollIntoView({behavior:o,block:t})}function m(e,t,o="smooth"){window.scrollTo({left:e,top:t,behavior:o})}function y(){return{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}}function g(e,t,o){e&&e.style.setProperty(t,o)}function x(e,t){e&&Object.entries(t).forEach(([t,o])=>{void 0!==o&&e.style.setProperty(t,o+"")})}function h(e,t){return e?window.getComputedStyle(e).getPropertyValue(t):""}function v(e,t){if(!e)return{};let o=window.getComputedStyle(e),n={};return t.forEach(e=>{n[e]=o.getPropertyValue(e)}),n}function w(e,t="block"){e&&(e.style.display=t)}function E(e){e&&(e.style.display="none")}function L(e,t){if(!e)return;let o="none"===e.style.display||"none"===h(e,"display");(void 0!==t?t:o)?w(e):E(e)}require("./chunk-WOT6VMZA.js").a(e,{addClass:()=>r,addEventListener:()=>u,classNames:()=>n,delegate:()=>f,getComputedStyleValue:()=>h,getComputedStyles:()=>v,getRect:()=>d,getScrollPosition:()=>y,hasClass:()=>l,hide:()=>E,isInViewport:()=>p,once:()=>c,querySelector:()=>t,querySelectorAll:()=>o,removeClass:()=>s,scrollIntoView:()=>a,scrollTo:()=>m,setStyle:()=>g,setStyles:()=>x,show:()=>w,toggle:()=>L,toggleClass:()=>i}),exports.a=t,exports.b=o,exports.c=n,exports.d=r,exports.e=s,exports.f=i,exports.g=l,exports.h=u,exports.i=c,exports.j=f,exports.k=p,exports.l=d,exports.m=a,exports.n=m,exports.o=y,exports.p=g,exports.q=x,exports.r=h,exports.s=v,exports.t=w,exports.u=E,exports.v=L,exports.w=e;
|
package/dist/chunk-4JG7CFRK.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var t={};function n(t,n){let r=new Map;return function(...e){let u=n?n(...e):e[0];if(r.has(u))return r.get(u);let o=t.apply(this,e);return r.set(u,o),o}}function r(t){return function(...n){return!t(...n)}}function e(t){return function(n,r){return t(r,n)}}function u(t,...n){return function(...r){return t(...n,...r)}}function o(t){let n=t.length;return function r(...e){return n>e.length?(...t)=>r(...e,...t):t(...e)}}function i(t,n){return function(...r){return t(...r.slice(0,n))}}function c(t){return function(n){return t(n)}}require("./chunk-WOT6VMZA.js").a(t,{ary:()=>i,curry:()=>o,flip:()=>e,memoize:()=>n,negate:()=>r,partial:()=>u,unary:()=>c}),exports.a=n,exports.b=r,exports.c=e,exports.d=u,exports.e=o,exports.f=i,exports.g=c,exports.h=t;
|
package/dist/chunk-5FBZYPQM.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function r(r){return{ok:!0,value:r}}function n(r){return{ok:!1,error:r}}export{r as a,n as b};
|
package/dist/chunk-5XQRYI2Q.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{a as r,b as n}from"./chunk-5FBZYPQM.mjs";import{a as o}from"./chunk-JZXLCA2E.mjs";var e={};function u(r){return{some:!0,value:r}}function t(){return{some:!1}}function a(n,o){return n.ok?r(o(n.value)):n}function s(r,n){return r.some?u(n(r.value)):r}function i(r,o){return r.ok?r:n(o(r.error))}function l(r,n){return r.ok?n(r.value):r}function c(r,n){return r.ok?r:n(r.error)}function f(r,n){return r.ok?n.ok(r.value):n.err(r.error)}function m(r,n){return r.some?n.some(r.value):n.none()}function p(r){return r.ok}function k(r){return!r.ok}function v(r){if(r.ok)return r.value;throw r.error instanceof Error?r.error:Error(r.error+"")}function h(r){if(r.some)return r.value;throw Error("Called unwrapOption on None")}function O(r,n){return r.ok?r.value:n}function w(r,n){return r.some?r.value:n}function E(r){return null==r?{some:!1}:u(r)}function b(r){return r.some?r.value:null}o(e,{andThen:()=>l,err:()=>n,fromNullable:()=>E,isErr:()=>k,isOk:()=>p,mapErr:()=>i,mapOption:()=>s,mapResult:()=>a,matchOption:()=>m,matchResult:()=>f,none:()=>t,ok:()=>r,orElse:()=>c,some:()=>u,toNullable:()=>b,unwrap:()=>v,unwrapOption:()=>h,unwrapOptionOr:()=>w,unwrapOr:()=>O});export{u as a,t as b,a as c,s as d,i as e,l as f,c as g,f as h,m as i,p as j,k,v as l,h as m,O as n,w as o,E as p,b as q,e as r};
|
package/dist/chunk-6HA2SN23.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var r={};function e(r){return null!=r}function t(r){return null==r}function n(r,e="Assertion failed"){if(!r)throw Error(e)}function o(r,e="Value is not defined"){if(null==r)throw Error(e)}function i(r){throw Error(r)}function s(){}function u(r){return r}function f(r,e){throw Error(e??"Unreachable code reached with value: "+JSON.stringify(r))}require("./chunk-WOT6VMZA.js").a(r,{assert:()=>n,assertDefined:()=>o,fail:()=>i,identity:()=>u,isDefined:()=>e,isNil:()=>t,noop:()=>s,unreachable:()=>f}),exports.a=e,exports.b=t,exports.c=n,exports.d=o,exports.e=i,exports.f=s,exports.g=u,exports.h=f,exports.i=r;
|
package/dist/chunk-6NWIIOHH.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function b(e){return Object.freeze(e)}function K(e){let t={};for(let n of e)t[n]=n;return Object.freeze(t)}function h(...e){return e}function w(e){return new Map(e)}function S(e){return new Set(e)}function v(e){return e}function R(e,t){return t(e)?e:void 0}function x(e={}){return {set(t,n){return x({...e,[t]:n})},build(){return e},current(){return e}}}function E(e){return {config:e,getInitialState:()=>e.initial,transition:(t,n)=>{let r=e.states[t];return r&&"on"in r?r.on[n]??t:t}}}function M(){return new Proxy({},{get:(e,t)=>n=>({type:t,...n})})}function V(){let e=new Map;return {on(t,n){return e.has(t)||e.set(t,new Set),e.get(t).add(n),()=>{e.get(t)?.delete(n);}},emit(t,n){e.get(t)?.forEach(r=>r(n));},off(t,n){e.get(t)?.delete(n);},clear(){e.clear();}}}function _(e,t){return {initialState:e,reduce:(n,r)=>{let o=t[r.type];return o?o(n,r):n}}}var A=Symbol("string"),U=Symbol("number"),O=Symbol("boolean"),I=Symbol("date"),D=Symbol("bigint"),B=Symbol("symbol"),P=Symbol("any"),j=Symbol("unknown"),N=Symbol("null"),C=Symbol("undefined"),q={string:{[A]:true},number:{[U]:true},boolean:{[O]:true},date:{[I]:true},bigint:{[D]:true},symbol:{[B]:true},any:{[P]:true},unknown:{[j]:true},null:{[N]:true},undefined:{[C]:true},array:e=>({__array:e}),optional:e=>({__optional:e}),nullable:e=>({__nullable:e}),literal:e=>({__literal:e}),enum:(...e)=>({__enum:e}),union:(...e)=>({__union:e}),record:e=>({__record:e}),tuple:(...e)=>({__tuple:e}),ref:()=>({__ref:null})};function d(e){return {__schema:null,__definition:e,create(n){return n},partial(n){return n},is(n){if(typeof n!="object"||n===null)return false;for(let r of Object.keys(e))if(!(r in n)){let o=e[r];if(o&&typeof o=="object"&&"__optional"in o)continue;return false}return true},extend(n){return d({...e,...n})},pick(...n){let r={};for(let o of n)r[o]=e[o];return d(r)},omit(...n){let r={...e};for(let o of n)delete r[o];return d(r)},asPartial(){let n={};for(let r of Object.keys(e))n[r]={__optional:e[r]};return d(n)},asRequired(){let n={};for(let r of Object.keys(e)){let o=e[r];o&&typeof o=="object"&&"__optional"in o?n[r]=o.__optional:n[r]=o;}return d(n)}}}function F(e){return d(e)}function W(e,t){return d({...e.__definition,...t.__definition})}function $(e,...t){return e.pick(...t)}function H(e,...t){return e.omit(...t)}function i(e,t){return {parse:e,safeParse(r){try{return {ok:!0,value:e(r)}}catch(o){return {ok:false,error:o instanceof Error?o:new Error(String(o))}}},is(r){if(t)return t(r);try{return e(r),!0}catch{return false}},T:void 0,optional(){return i(r=>r===void 0?void 0:e(r),r=>r===void 0||(t?t(r):true))},nullable(){return i(r=>r===null?null:e(r),r=>r===null||(t?t(r):true))},default(r){return i(o=>o==null?r:e(o))},transform(r){return i(o=>r(e(o)))},refine(r,o="Validation failed"){return i(s=>{let a=e(s);if(!r(a))throw new Error(o);return a})}}}function T(){return i(e=>{if(typeof e!="string")throw new Error(`Expected string, got ${typeof e}`);return e},e=>typeof e=="string")}function L(){return i(e=>{if(typeof e!="number"||Number.isNaN(e))throw new Error(`Expected number, got ${typeof e}`);return e},e=>typeof e=="number"&&!Number.isNaN(e))}function J(){return i(e=>{if(typeof e!="boolean")throw new Error(`Expected boolean, got ${typeof e}`);return e},e=>typeof e=="boolean")}function G(){return i(e=>{if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error("Invalid date");return t}throw new Error(`Expected date, got ${typeof e}`)},e=>e instanceof Date&&!Number.isNaN(e.getTime()))}function z(e){return i(t=>{if(t!==e)throw new Error(`Expected ${String(e)}, got ${String(t)}`);return e},t=>t===e)}function Y(...e){return i(t=>{if(!e.includes(t))throw new Error(`Expected one of [${e.join(", ")}], got ${String(t)}`);return t},t=>e.includes(t))}function Z(){let e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return T().refine(t=>e.test(t),"Invalid email")}function Q(){return T().refine(e=>{try{return new URL(e),!0}catch{return false}},"Invalid URL")}function X(){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return T().refine(t=>e.test(t),"Invalid UUID")}function u(e){let n=i(r=>{if(typeof r!="object"||r===null)throw new Error(`Expected object, got ${typeof r}`);let o={},s=e;for(let a of Object.keys(s)){let p=s[a];p&&(o[a]=p.parse(r[a]));}return o},r=>{if(typeof r!="object"||r===null)return false;let o=e;for(let s of Object.keys(o)){let a=o[s];if(a&&!a.is(r[s]))return false}return true});return n.schema=e,n.pick=(...r)=>{let o={};for(let s of r)o[s]=e[s];return u(o)},n.omit=(...r)=>{let o={...e};for(let s of r)delete o[s];return u(o)},n.extend=r=>u({...e,...r}),n.partial=()=>{let r={},o=e;for(let s of Object.keys(o)){let a=o[s];a&&(r[s]=a.optional());}return u(r)},n.merge=r=>u({...e,...r.schema}),n}function ee(e){return i(t=>{if(!Array.isArray(t))throw new Error(`Expected array, got ${typeof t}`);return t.map((n,r)=>{try{return e.parse(n)}catch(o){throw new Error(`[${r}]: ${o instanceof Error?o.message:String(o)}`)}})},t=>Array.isArray(t)&&t.every(n=>e.is(n)))}function te(...e){return i(t=>{if(!Array.isArray(t))throw new Error(`Expected tuple, got ${typeof t}`);if(t.length!==e.length)throw new Error(`Expected ${e.length} elements, got ${t.length}`);return e.map((n,r)=>n.parse(t[r]))},t=>Array.isArray(t)&&t.length===e.length&&e.every((n,r)=>n.is(t[r])))}function ne(e){return i(t=>{if(typeof t!="object"||t===null||Array.isArray(t))throw new Error(`Expected record, got ${typeof t}`);let n={};for(let[r,o]of Object.entries(t))n[r]=e.parse(o);return n},t=>typeof t!="object"||t===null||Array.isArray(t)?false:Object.values(t).every(n=>e.is(n)))}function re(...e){return i(t=>{for(let n of e){let r=n.safeParse(t);if(r.ok)return r.value}throw new Error("Value does not match any union member")},t=>e.some(n=>n.is(t)))}function oe(e,t){return i(n=>{let r=e.parse(n),o=t.parse(n);return {...r,...o}},n=>e.is(n)&&t.is(n))}var se={string:T,number:L,boolean:J,date:G,email:Z,url:Q,uuid:X,literal:z,enum:Y,object:u,array:ee,tuple:te,record:ne,union:re,intersection:oe,any:()=>i(e=>e),unknown:()=>i(e=>e),null:()=>i(e=>{if(e!==null)throw new Error("Expected null");return null}),undefined:()=>i(e=>{if(e!==void 0)throw new Error("Expected undefined")})};var l=class{_items=[];_listeners=new Set;get items(){return this._items}get length(){return this._items.length}notify(){for(let t of this._listeners)t(this._items);}add(t){return this._items.push(t),this.notify(),t}addMany(t){return this._items.push(...t),this.notify(),t}update(t,n){let r=this._items.findIndex(t);if(r!==-1)return this._items[r]={...this._items[r],...n},this.notify(),this._items[r]}updateWhere(t,n,r){return this.update(o=>o[t]===n,r)}remove(t){let n=[];return this._items=this._items.filter(r=>t(r)?(n.push(r),false):true),n.length>0&&this.notify(),n}removeWhere(t,n){return this.remove(o=>o[t]===n)[0]}clear(){this._items=[],this.notify();}findOne(t){return this._items.find(t)}find(t,n){return this._items.find(r=>r[t]===n)}findMany(t){return this._items.filter(t)}where(t){return this.findMany(t)}whereEquals(t,n){return this._items.filter(r=>r[t]===n)}some(t){return this._items.some(t)}every(t){return this._items.every(t)}has(t,n){return this._items.some(r=>r[t]===n)}first(){return this._items[0]}last(){return this._items[this._items.length-1]}at(t){return this._items.at(t)}map(t){return this._items.map(t)}pluck(t){return this._items.map(n=>n[t])}pick(...t){return this._items.map(n=>{let r={};for(let o of t)r[o]=n[o];return r})}omit(...t){return this._items.map(n=>{let r={...n};for(let o of t)delete r[o];return r})}sortBy(t,n="asc"){return [...this._items].sort((r,o)=>{let s=r[t],a=o[t];return s<a?n==="asc"?-1:1:s>a?n==="asc"?1:-1:0})}groupBy(t){let n=new Map;for(let r of this._items){let o=r[t],s=n.get(o)||[];s.push(r),n.set(o,s);}return n}unique(t){return [...new Set(this._items.map(n=>n[t]))]}count(t){return t?this._items.filter(t).length:this._items.length}subscribe(t){return this._listeners.add(t),()=>this._listeners.delete(t)}toArray(){return [...this._items]}toJSON(){return JSON.stringify(this._items)}fromJSON(t){this._items=JSON.parse(t),this.notify();}},c=class extends l{constructor(n){super();this.idKey=n;}byId(n){return this.find(this.idKey,n)}updateById(n,r){return this.updateWhere(this.idKey,n,r)}removeById(n){return this.removeWhere(this.idKey,n)}hasId(n){return this.has(this.idKey,n)}},ie={async get(e){return typeof localStorage>"u"?null:localStorage.getItem(e)},async set(e,t){typeof localStorage>"u"||localStorage.setItem(e,t);},async remove(e){typeof localStorage>"u"||localStorage.removeItem(e);}},f=class extends l{constructor(n,r=ie){super();this.storageKey=n;this.storage=r;}autoSaveEnabled=false;unsubscribe;async save(){await this.storage.set(this.storageKey,this.toJSON());}async load(){let n=await this.storage.get(this.storageKey);n&&this.fromJSON(n);}enableAutoSave(){this.autoSaveEnabled||(this.autoSaveEnabled=true,this.unsubscribe=this.subscribe(()=>{this.save();}));}disableAutoSave(){this.autoSaveEnabled=false,this.unsubscribe?.();}};function ae(e){return new l}function de(e,t){return new c(t)}function ue(e,t,n){return new f(t,n)}function le(e,t){if(t?.persist){let n=new f(t.persist,t.storage);return t.autoSave&&n.enableAutoSave(),n}return t?.idKey?new c(t.idKey):new l}function Te(){return {idle:()=>({status:"idle"}),loading:()=>({status:"loading"}),success:e=>({status:"success",data:e}),error:e=>({status:"error",error:e}),isIdle:e=>e.status==="idle",isLoading:e=>e.status==="loading",isSuccess:e=>e.status==="success",isError:e=>e.status==="error",map:(e,t)=>e.status==="success"?{status:"success",data:t(e.data)}:e,getOrElse:(e,t)=>e.status==="success"?e.data:t}}function ce(e){return {pristine:()=>({status:"pristine",values:e}),dirty:(t,n)=>({status:"dirty",values:t,touched:n}),validating:t=>({status:"validating",values:t}),invalid:(t,n)=>({status:"invalid",values:t,errors:n}),submitting:t=>({status:"submitting",values:t}),submitted:t=>({status:"submitted",values:t}),error:(t,n)=>({status:"error",values:t,error:n}),canSubmit:t=>t.status==="dirty"||t.status==="pristine",isSubmitting:t=>t.status==="submitting",hasErrors:t=>t.status==="invalid"}}function fe(){return {closed:()=>({isOpen:false}),open:e=>({isOpen:true,data:e}),isOpen:e=>e.isOpen}}function ye(e){return {init:()=>({current:e,past:[],future:[],canUndo:false,canRedo:false}),push:(t,n)=>({current:n,past:[...t.past,t.current],future:[],canUndo:true,canRedo:false}),undo:t=>t.past.length===0?t:{current:t.past[t.past.length-1],past:t.past.slice(0,-1),future:[t.current,...t.future],canUndo:t.past.length>1,canRedo:true},redo:t=>t.future.length===0?t:{current:t.future[0],past:[...t.past,t.current],future:t.future.slice(1),canUndo:true,canRedo:t.future.length>1}}}function pe(e,t){return new y(e,t,{})}var y=class e{value;discriminant;handlers;result=void 0;matched=false;constructor(t,n,r){this.value=t,this.discriminant=n,this.handlers=r;}with(t,n){let r={...this.handlers,[t]:n},o=new e(this.value,this.discriminant,r),s=this.value[this.discriminant];return !this.matched&&s===t?(o.result=n(this.value),o.matched=true):(o.result=this.result,o.matched=this.matched),o}exhaustive(){if(this.matched)return this.result;throw new Error(`No handler matched for discriminant value: ${String(this.value[this.discriminant])}`)}otherwise(t){return this.matched?this.result:t(this.value)}run(){return this.exhaustive()}};function xe(e,t){let n=t[e];if(!n)throw new Error(`No handler for value: ${String(e)}`);return n()}function m(e,t,n){let r=e[t],o=n[r];return o(e)}function me(){return e=>(t,n)=>m(t,e,n)}function ge(e){return e}function ke(e){}function be(e){throw new Error(`Unexpected value: ${JSON.stringify(e)}`)}function Ke(e){return e}function he(e){return e}function we(e,t){return {...e,...t}}function Se(...e){return Object.assign({},...e)}function k(e,t){let n={...e};for(let r of Object.keys(t)){let o=t[r],s=e[r];g(o)&&g(s)?n[r]=k(s,o):n[r]=o;}return n}function g(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function ve(e,t,n){let r={...e,...t};for(let o of Object.keys(n)){let s=n[o];s&&o in e&&o in t&&(r[o]=s(e[o],t[o]));}return r}function Re(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ee(e,t){let n={...e};for(let r of t)delete n[r];return n}function Me(e,t){let n={};for(let r of Object.keys(e)){let o=t[r];o!==void 0?n[o]=e[r]:n[r]=e[r];}return n}function Ve(e){return Object.fromEntries(e)}function _e(e,t){let n={};for(let r of Object.keys(e))n[r]=t(e[r],r);return n}function Ae(e,t){let n={};for(let r of Object.keys(e)){let o=t(r);n[o]=e[r];}return n}exports.A=ye;exports.B=pe;exports.C=xe;exports.D=m;exports.E=me;exports.F=ge;exports.G=ke;exports.H=be;exports.I=Ke;exports.J=he;exports.K=we;exports.L=Se;exports.M=k;exports.N=ve;exports.O=Re;exports.P=Ee;exports.Q=Me;exports.R=Ve;exports.S=_e;exports.T=Ae;exports.a=b;exports.b=K;exports.c=h;exports.d=w;exports.e=S;exports.f=v;exports.g=R;exports.h=x;exports.i=E;exports.j=M;exports.k=V;exports.l=_;exports.m=q;exports.n=d;exports.o=F;exports.p=W;exports.q=$;exports.r=H;exports.s=se;exports.t=ae;exports.u=de;exports.v=ue;exports.w=le;exports.x=Te;exports.y=ce;exports.z=fe;
|
|
1
|
+
"use strict";var t=Symbol("string"),e=Symbol("number"),r=Symbol("boolean"),n=Symbol("date"),i=Symbol("bigint"),s=Symbol("symbol"),o=Symbol("any"),u=Symbol("unknown"),a=Symbol("null"),l=Symbol("undefined"),f={string:{[t]:!0},number:{[e]:!0},boolean:{[r]:!0},date:{[n]:!0},bigint:{[i]:!0},symbol:{[s]:!0},any:{[o]:!0},unknown:{[u]:!0},null:{[a]:!0},undefined:{[l]:!0},array:t=>({__array:t}),optional:t=>({__optional:t}),nullable:t=>({__nullable:t}),literal:t=>({__literal:t}),enum:(...t)=>({__enum:t}),union:(...t)=>({__union:t}),record:t=>({__record:t}),tuple:(...t)=>({__tuple:t}),ref:()=>({__ref:null})};function c(t){return{__schema:null,__definition:t,create:t=>t,partial:t=>t,is(e){if("object"!=typeof e||null===e)return!1;for(let r of Object.keys(t))if(!(r in e)){let e=t[r];if(e&&"object"==typeof e&&"__optional"in e)continue;return!1}return!0},extend:e=>c({...t,...e}),pick(...e){let r={};for(let n of e)r[n]=t[n];return c(r)},omit(...e){let r={...t};for(let t of e)delete r[t];return c(r)},asPartial(){let e={};for(let r of Object.keys(t))e[r]={__optional:t[r]};return c(e)},asRequired(){let e={};for(let r of Object.keys(t)){let n=t[r];e[r]=n&&"object"==typeof n&&"__optional"in n?n.__optional:n}return c(e)}}}function h(t,e){return{parse:t,safeParse(e){try{return{ok:!0,value:t(e)}}catch(t){return{ok:!1,error:t instanceof Error?t:Error(t+"")}}},is(r){if(e)return e(r);try{return t(r),!0}catch{return!1}},T:void 0,optional:()=>h(e=>void 0===e?void 0:t(e),t=>void 0===t||!e||e(t)),nullable:()=>h(e=>null===e?null:t(e),t=>null===t||!e||e(t)),default:e=>h(r=>null==r?e:t(r)),transform:e=>h(r=>e(t(r))),refine:(e,r="Validation failed")=>h(n=>{let i=t(n);if(!e(i))throw Error(r);return i})}}function p(){return h(t=>{if("string"!=typeof t)throw Error("Expected string, got "+typeof t);return t},t=>"string"==typeof t)}var d={string:p,number:function(){return h(t=>{if("number"!=typeof t||Number.isNaN(t))throw Error("Expected number, got "+typeof t);return t},t=>"number"==typeof t&&!Number.isNaN(t))},boolean:function(){return h(t=>{if("boolean"!=typeof t)throw Error("Expected boolean, got "+typeof t);return t},t=>"boolean"==typeof t)},date:function(){return h(t=>{if(t instanceof Date)return t;if("string"==typeof t||"number"==typeof t){let e=new Date(t);if(Number.isNaN(e.getTime()))throw Error("Invalid date");return e}throw Error("Expected date, got "+typeof t)},t=>t instanceof Date&&!Number.isNaN(t.getTime()))},email:function(){let t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return p().refine(e=>t.test(e),"Invalid email")},url:function(){return p().refine(t=>{try{return new URL(t),!0}catch{return!1}},"Invalid URL")},uuid:function(){let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return p().refine(e=>t.test(e),"Invalid UUID")},literal:function(t){return h(e=>{if(e!==t)throw Error(`Expected ${t+""}, got ${e+""}`);return t},e=>e===t)},enum:function(...t){return h(e=>{if(!t.includes(e))throw Error(`Expected one of [${t.join(", ")}], got ${e+""}`);return e},e=>t.includes(e))},object:function t(e){let r=h(t=>{if("object"!=typeof t||null===t)throw Error("Expected object, got "+typeof t);let r={},n=e;for(let e of Object.keys(n)){let i=n[e];i&&(r[e]=i.parse(t[e]))}return r},t=>{if("object"!=typeof t||null===t)return!1;let r=e;for(let e of Object.keys(r)){let n=r[e];if(n&&!n.is(t[e]))return!1}return!0});return r.schema=e,r.pick=(...r)=>{let n={};for(let t of r)n[t]=e[t];return t(n)},r.omit=(...r)=>{let n={...e};for(let t of r)delete n[t];return t(n)},r.extend=r=>t({...e,...r}),r.partial=()=>{let r={},n=e;for(let t of Object.keys(n)){let e=n[t];e&&(r[t]=e.optional())}return t(r)},r.merge=r=>t({...e,...r.schema}),r},array:function(t){return h(e=>{if(!Array.isArray(e))throw Error("Expected array, got "+typeof e);return e.map((e,r)=>{try{return t.parse(e)}catch(t){throw Error(`[${r}]: ${t instanceof Error?t.message:t+""}`)}})},e=>Array.isArray(e)&&e.every(e=>t.is(e)))},tuple:function(...t){return h(e=>{if(!Array.isArray(e))throw Error("Expected tuple, got "+typeof e);if(e.length!==t.length)throw Error(`Expected ${t.length} elements, got ${e.length}`);return t.map((t,r)=>t.parse(e[r]))},e=>Array.isArray(e)&&e.length===t.length&&t.every((t,r)=>t.is(e[r])))},record:function(t){return h(e=>{if("object"!=typeof e||null===e||Array.isArray(e))throw Error("Expected record, got "+typeof e);let r={};for(let[n,i]of Object.entries(e))r[n]=t.parse(i);return r},e=>"object"==typeof e&&null!==e&&!Array.isArray(e)&&Object.values(e).every(e=>t.is(e)))},union:function(...t){return h(e=>{for(let r of t){let t=r.safeParse(e);if(t.ok)return t.value}throw Error("Value does not match any union member")},e=>t.some(t=>t.is(e)))},intersection:function(t,e){return h(r=>({...t.parse(r),...e.parse(r)}),r=>t.is(r)&&e.is(r))},any:()=>h(t=>t),unknown:()=>h(t=>t),null:()=>h(t=>{if(null!==t)throw Error("Expected null");return null}),undefined:()=>h(t=>{if(void 0!==t)throw Error("Expected undefined")})},m=class{_items=[];_listeners=new Set;get items(){return this._items}get length(){return this._items.length}notify(){for(let t of this._listeners)t(this._items)}add(t){return this._items.push(t),this.notify(),t}addMany(t){return this._items.push(...t),this.notify(),t}update(t,e){let r=this._items.findIndex(t);if(-1!==r)return this._items[r]={...this._items[r],...e},this.notify(),this._items[r]}updateWhere(t,e,r){return this.update(r=>r[t]===e,r)}remove(t){let e=[];return this._items=this._items.filter(r=>!t(r)||(e.push(r),!1)),e.length>0&&this.notify(),e}removeWhere(t,e){return this.remove(r=>r[t]===e)[0]}clear(){this._items=[],this.notify()}findOne(t){return this._items.find(t)}find(t,e){return this._items.find(r=>r[t]===e)}findMany(t){return this._items.filter(t)}where(t){return this.findMany(t)}whereEquals(t,e){return this._items.filter(r=>r[t]===e)}some(t){return this._items.some(t)}every(t){return this._items.every(t)}has(t,e){return this._items.some(r=>r[t]===e)}first(){return this._items[0]}last(){return this._items[this._items.length-1]}at(t){return this._items.at(t)}map(t){return this._items.map(t)}pluck(t){return this._items.map(e=>e[t])}pick(...t){return this._items.map(e=>{let r={};for(let n of t)r[n]=e[n];return r})}omit(...t){return this._items.map(e=>{let r={...e};for(let e of t)delete r[e];return r})}sortBy(t,e="asc"){return[...this._items].sort((r,n)=>{let i=r[t],s=n[t];return s>i?"asc"===e?-1:1:i>s?"asc"===e?1:-1:0})}groupBy(t){let e=new Map;for(let r of this._items){let n=r[t],i=e.get(n)||[];i.push(r),e.set(n,i)}return e}unique(t){return[...new Set(this._items.map(e=>e[t]))]}count(t){return t?this._items.filter(t).length:this._items.length}subscribe(t){return this._listeners.add(t),()=>this._listeners.delete(t)}toArray(){return[...this._items]}toJSON(){return JSON.stringify(this._items)}fromJSON(t){this._items=JSON.parse(t),this.notify()}},y=class extends m{constructor(t){super(),this.idKey=t}byId(t){return this.find(this.idKey,t)}updateById(t,e){return this.updateWhere(this.idKey,t,e)}removeById(t){return this.removeWhere(this.idKey,t)}hasId(t){return this.has(this.idKey,t)}},b={get:async t=>typeof localStorage>"u"?null:localStorage.getItem(t),async set(t,e){typeof localStorage>"u"||localStorage.setItem(t,e)},async remove(t){typeof localStorage>"u"||localStorage.removeItem(t)}},g=class extends m{constructor(t,e=b){super(),this.storageKey=t,this.storage=e}autoSaveEnabled=!1;unsubscribe;async save(){await this.storage.set(this.storageKey,this.toJSON())}async load(){let t=await this.storage.get(this.storageKey);t&&this.fromJSON(t)}enableAutoSave(){this.autoSaveEnabled||(this.autoSaveEnabled=!0,this.unsubscribe=this.subscribe(()=>{this.save()}))}disableAutoSave(){this.autoSaveEnabled=!1,this.unsubscribe?.()}},_=class t{value;discriminant;handlers;result=void 0;matched=!1;constructor(t,e,r){this.value=t,this.discriminant=e,this.handlers=r}with(e,r){let n={...this.handlers,[e]:r},i=new t(this.value,this.discriminant,n);return this.matched||this.value[this.discriminant]!==e?(i.result=this.result,i.matched=this.matched):(i.result=r(this.value),i.matched=!0),i}exhaustive(){if(this.matched)return this.result;throw Error("No handler matched for discriminant value: "+this.value[this.discriminant])}otherwise(t){return this.matched?this.result:t(this.value)}run(){return this.exhaustive()}};function x(t,e,r){return(0,r[t[e]])(t)}function v(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)&&Object.getPrototypeOf(t)===Object.prototype}exports.A=function(t){return{init:()=>({current:t,past:[],future:[],canUndo:!1,canRedo:!1}),push:(t,e)=>({current:e,past:[...t.past,t.current],future:[],canUndo:!0,canRedo:!1}),undo:t=>0===t.past.length?t:{current:t.past[t.past.length-1],past:t.past.slice(0,-1),future:[t.current,...t.future],canUndo:t.past.length>1,canRedo:!0},redo:t=>0===t.future.length?t:{current:t.future[0],past:[...t.past,t.current],future:t.future.slice(1),canUndo:!0,canRedo:t.future.length>1}}},exports.B=function(t,e){return new _(t,e,{})},exports.C=function(t,e){let r=e[t];if(!r)throw Error("No handler for value: "+t);return r()},exports.D=x,exports.E=function(){return t=>(e,r)=>x(e,t,r)},exports.F=function(t){return t},exports.G=function(t){},exports.H=function(t){throw Error("Unexpected value: "+JSON.stringify(t))},exports.I=function(t){return t},exports.J=function(t){return t},exports.K=function(t,e){return{...t,...e}},exports.L=function(...t){return Object.assign({},...t)},exports.M=function t(e,r){let n={...e};for(let i of Object.keys(r)){let s=r[i],o=e[i];n[i]=v(s)&&v(o)?t(o,s):s}return n},exports.N=function(t,e,r){let n={...t,...e};for(let i of Object.keys(r)){let s=r[i];s&&i in t&&i in e&&(n[i]=s(t[i],e[i]))}return n},exports.O=function(t,e){let r={};for(let n of e)n in t&&(r[n]=t[n]);return r},exports.P=function(t,e){let r={...t};for(let t of e)delete r[t];return r},exports.Q=function(t,e){let r={};for(let n of Object.keys(t)){let i=e[n];void 0!==i?r[i]=t[n]:r[n]=t[n]}return r},exports.R=function(t){return Object.fromEntries(t)},exports.S=function(t,e){let r={};for(let n of Object.keys(t))r[n]=e(t[n],n);return r},exports.T=function(t,e){let r={};for(let n of Object.keys(t))r[e(n)]=t[n];return r},exports.a=function(t){return Object.freeze(t)},exports.b=function(t){let e={};for(let r of t)e[r]=r;return Object.freeze(e)},exports.c=function(...t){return t},exports.d=function(t){return new Map(t)},exports.e=function(t){return new Set(t)},exports.f=function(t){return t},exports.g=function(t,e){return e(t)?t:void 0},exports.h=function t(e={}){return{set:(r,n)=>t({...e,[r]:n}),build:()=>e,current:()=>e}},exports.i=function(t){return{config:t,getInitialState:()=>t.initial,transition:(e,r)=>{let n=t.states[e];return n&&"on"in n?n.on[r]??e:e}}},exports.j=function(){return new Proxy({},{get:(t,e)=>t=>({type:e,...t})})},exports.k=function(){let t=new Map;return{on:(e,r)=>(t.has(e)||t.set(e,new Set),t.get(e).add(r),()=>{t.get(e)?.delete(r)}),emit(e,r){t.get(e)?.forEach(t=>t(r))},off(e,r){t.get(e)?.delete(r)},clear(){t.clear()}}},exports.l=function(t,e){return{initialState:t,reduce:(t,r)=>{let n=e[r.type];return n?n(t,r):t}}},exports.m=f,exports.n=c,exports.o=function(t){return c(t)},exports.p=function(t,e){return c({...t.__definition,...e.__definition})},exports.q=function(t,...e){return t.pick(...e)},exports.r=function(t,...e){return t.omit(...e)},exports.s=d,exports.t=function(t){return new m},exports.u=function(t,e){return new y(e)},exports.v=function(t,e,r){return new g(e,r)},exports.w=function(t,e){if(e?.persist){let t=new g(e.persist,e.storage);return e.autoSave&&t.enableAutoSave(),t}return e?.idKey?new y(e.idKey):new m},exports.x=function(){return{idle:()=>({status:"idle"}),loading:()=>({status:"loading"}),success:t=>({status:"success",data:t}),error:t=>({status:"error",error:t}),isIdle:t=>"idle"===t.status,isLoading:t=>"loading"===t.status,isSuccess:t=>"success"===t.status,isError:t=>"error"===t.status,map:(t,e)=>"success"===t.status?{status:"success",data:e(t.data)}:t,getOrElse:(t,e)=>"success"===t.status?t.data:e}},exports.y=function(t){return{pristine:()=>({status:"pristine",values:t}),dirty:(t,e)=>({status:"dirty",values:t,touched:e}),validating:t=>({status:"validating",values:t}),invalid:(t,e)=>({status:"invalid",values:t,errors:e}),submitting:t=>({status:"submitting",values:t}),submitted:t=>({status:"submitted",values:t}),error:(t,e)=>({status:"error",values:t,error:e}),canSubmit:t=>"dirty"===t.status||"pristine"===t.status,isSubmitting:t=>"submitting"===t.status,hasErrors:t=>"invalid"===t.status}},exports.z=function(){return{closed:()=>({isOpen:!1}),open:t=>({isOpen:!0,data:t}),isOpen:t=>t.isOpen}};
|
package/dist/chunk-6WGRWYAD.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var e={};function t(e){return 0===e.length?"":e.charAt(0).toUpperCase()+e.slice(1)}function r(e){return 0===e.length?"":e.charAt(0).toLowerCase()+e.slice(1)}function n(e){return e.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():"").replace(/^[A-Z]/,e=>e.toLowerCase())}function a(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function p(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function o(e){return e.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():"").replace(/^[a-z]/,e=>e.toUpperCase())}function l(e,t,r="..."){return e.length>t?e.slice(0,t)+r:e}function c(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function s(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,r)=>r in t?t[r]+"":`{{${r}}}`)}function u(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").trim().split(/\s+/).filter(Boolean)}function i(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function g(e){let t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>t[e]??e)}function f(e){let t={"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","/":"/"};return e.replace(/&(?:amp|lt|gt|quot|#39|#x27|#x2F);/g,e=>t[e]??e)}function x(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function h(e,t,r=" "){let n=e.length;if(n>=t||0===r.length)return e;let a=t-n,p=Math.floor(a/2),o=a-p;return $(r,p)+e+$(r,o)}function C(e,t,r=" "){let n=e.length;return t>n&&0!==r.length?$(r,t-n)+e:e}function m(e,t,r=" "){let n=e.length;return t>n&&0!==r.length?e+$(r,t-n):e}function $(e,t){return t>0?e.repeat(Math.ceil(t/e.length)).slice(0,t):""}require("./chunk-WOT6VMZA.js").a(e,{camelCase:()=>n,capitalize:()=>t,deburr:()=>i,escape:()=>g,escapeRegExp:()=>x,kebabCase:()=>a,pad:()=>h,padEnd:()=>m,padStart:()=>C,pascalCase:()=>o,slugify:()=>c,snakeCase:()=>p,template:()=>s,truncate:()=>l,uncapitalize:()=>r,unescape:()=>f,words:()=>u}),exports.a=t,exports.b=r,exports.c=n,exports.d=a,exports.e=p,exports.f=o,exports.g=l,exports.h=c,exports.i=s,exports.j=u,exports.k=i,exports.l=g,exports.m=f,exports.n=x,exports.o=h,exports.p=C,exports.q=m,exports.r=e;
|