@esposter/shared 2.22.0 → 2.23.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/dist/index.d.ts CHANGED
@@ -70,16 +70,22 @@ declare const RoutePath: {
70
70
  };
71
71
  type RoutePath = typeof RoutePath;
72
72
  //#endregion
73
- //#region src/util/types/GetProperties.d.ts
74
- type GetProperties<T, P extends string = "", D extends unknown[] = [unknown, unknown, unknown, unknown, unknown], R extends boolean = true> = [T] extends [never] ? never : D extends [] ? never : NonNullable<T> extends infer O ? O extends unknown[] ? GetArrayProps<O, P, D, R> : O extends object ? GetObjectProps<O, P, D, R> : GetPrimitiveProps<O, P, D, R> : never;
73
+ //#region src/util/types/GetArrayProps.d.ts
75
74
  type GetArrayProps<T extends unknown[], P extends string, D extends unknown[], R extends boolean> = (D extends [unknown, ...infer Rest] ? GetProperties<T[number], R extends true ? `${P}[number]` : `${P}.[number]`, Rest, false> : never) | {
76
75
  path: R extends true ? "length" : `${P}.length`;
77
76
  value: T["length"];
78
77
  };
78
+ //#endregion
79
+ //#region src/util/types/KnownKeys.d.ts
80
+ type KnownKeys<T> = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K] };
81
+ //#endregion
82
+ //#region src/util/types/GetObjectProps.d.ts
79
83
  type GetObjectProps<T, P extends string, D extends unknown[], R extends boolean> = { [K in keyof KnownKeys<T> & (number | string)]: K extends `${number}` ? never : NonNullable<T[K]> extends Function ? never : (D extends [unknown, ...infer Rest] ? GetProperties<T[K], R extends true ? `${K}` : `${P}.${K}`, Rest, false> : never) | {
80
84
  path: R extends true ? `${K}` : `${P}.${K}`;
81
85
  value: T[K];
82
86
  } }[keyof KnownKeys<T> & (number | string)];
87
+ //#endregion
88
+ //#region src/util/types/GetPrimitiveProps.d.ts
83
89
  type GetPrimitiveProps<T, P extends string, D extends unknown[], R extends boolean> = T extends string ? {
84
90
  path: R extends true ? "length" : `${P}.length`;
85
91
  value: number;
@@ -87,7 +93,9 @@ type GetPrimitiveProps<T, P extends string, D extends unknown[], R extends boole
87
93
  path: R extends true ? "description" : `${P}.description`;
88
94
  value: string | undefined;
89
95
  } : never;
90
- type KnownKeys<T> = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K] };
96
+ //#endregion
97
+ //#region src/util/types/GetProperties.d.ts
98
+ type GetProperties<T, P extends string = "", D extends unknown[] = [unknown, unknown, unknown, unknown, unknown], R extends boolean = true> = [T] extends [never] ? never : D extends [] ? never : NonNullable<T> extends infer O ? O extends unknown[] ? GetArrayProps<O, P, D, R> : O extends object ? GetObjectProps<O, P, D, R> : GetPrimitiveProps<O, P, D, R> : never;
91
99
  //#endregion
92
100
  //#region src/util/types/GetPaths.d.ts
93
101
  type GetPaths<T> = GetProperties<T> extends infer U ? (U extends {
@@ -1689,6 +1697,33 @@ type PostPayloadFixed = Except<UserData, 'email'>;
1689
1697
  type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {}> = _Except<ObjectType, KeysType, ApplyDefaultOptions<ExceptOptions, DefaultExceptOptions, Options>>;
1690
1698
  type _Except<ObjectType, KeysType extends keyof ObjectType, Options extends Required<ExceptOptions>> = { [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType] } & (Options['requireExactProps'] extends true ? Partial<Record<KeysType, never>> : {});
1691
1699
  //#endregion
1700
+ //#region ../../node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/promisable.d.ts
1701
+ /**
1702
+ Create a type that represents either the value or the value wrapped in `PromiseLike`.
1703
+
1704
+ Use-cases:
1705
+ - A function accepts a callback that may either return a value synchronously or may return a promised value.
1706
+ - This type could be the return type of `Promise#then()`, `Promise#catch()`, and `Promise#finally()` callbacks.
1707
+
1708
+ Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31394) if you want to have this type as a built-in in TypeScript.
1709
+
1710
+ @example
1711
+ ```
1712
+ import type {Promisable} from 'type-fest';
1713
+
1714
+ async function logger(getLogEntry: () => Promisable<string>): Promise<void> {
1715
+ const entry = await getLogEntry();
1716
+ console.log(entry);
1717
+ }
1718
+
1719
+ await logger(() => 'foo');
1720
+ await logger(() => Promise.resolve('bar'));
1721
+ ```
1722
+
1723
+ @category Async
1724
+ */
1725
+ type Promisable<T> = T | PromiseLike<T>;
1726
+ //#endregion
1692
1727
  //#region ../../node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/is-lowercase.d.ts
1693
1728
  /**
1694
1729
  Returns a boolean for whether the given string literal is lowercase.
@@ -2042,6 +2077,318 @@ interface WithMetadata<TBase extends Class<NonNullable<unknown>>> {
2042
2077
  //#region src/services/app/constants.d.ts
2043
2078
  declare const SITE_NAME = "Esposter";
2044
2079
  //#endregion
2080
+ //#region ../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.d.ts
2081
+ interface ErrorConfig {
2082
+ withStackTrace: boolean;
2083
+ }
2084
+ declare class ResultAsync<T, E> implements PromiseLike<Result<T, E>> {
2085
+ private _promise;
2086
+ constructor(res: Promise<Result<T, E>>);
2087
+ static fromSafePromise<T, E = never>(promise: PromiseLike<T>): ResultAsync<T, E>;
2088
+ static fromPromise<T, E>(promise: PromiseLike<T>, errorFn: (e: unknown) => E): ResultAsync<T, E>;
2089
+ static fromThrowable<A extends readonly any[], R, E>(fn: (...args: A) => Promise<R>, errorFn?: (err: unknown) => E): (...args: A) => ResultAsync<R, E>;
2090
+ static combine<T extends readonly [ResultAsync<unknown, unknown>, ...ResultAsync<unknown, unknown>[]]>(asyncResultList: T): CombineResultAsyncs<T>;
2091
+ static combine<T extends readonly ResultAsync<unknown, unknown>[]>(asyncResultList: T): CombineResultAsyncs<T>;
2092
+ static combineWithAllErrors<T extends readonly [ResultAsync<unknown, unknown>, ...ResultAsync<unknown, unknown>[]]>(asyncResultList: T): CombineResultsWithAllErrorsArrayAsync<T>;
2093
+ static combineWithAllErrors<T extends readonly ResultAsync<unknown, unknown>[]>(asyncResultList: T): CombineResultsWithAllErrorsArrayAsync<T>;
2094
+ map<A>(f: (t: T) => A | Promise<A>): ResultAsync<A, E>;
2095
+ andThrough<F>(f: (t: T) => Result<unknown, F> | ResultAsync<unknown, F>): ResultAsync<T, E | F>;
2096
+ andTee(f: (t: T) => unknown): ResultAsync<T, E>;
2097
+ orTee(f: (t: E) => unknown): ResultAsync<T, E>;
2098
+ mapErr<U>(f: (e: E) => U | Promise<U>): ResultAsync<T, U>;
2099
+ andThen<R extends Result<unknown, unknown>>(f: (t: T) => R): ResultAsync<InferOkTypes<R>, InferErrTypes<R> | E>;
2100
+ andThen<R extends ResultAsync<unknown, unknown>>(f: (t: T) => R): ResultAsync<InferAsyncOkTypes<R>, InferAsyncErrTypes<R> | E>;
2101
+ andThen<U, F>(f: (t: T) => Result<U, F> | ResultAsync<U, F>): ResultAsync<U, E | F>;
2102
+ orElse<R extends Result<unknown, unknown>>(f: (e: E) => R): ResultAsync<InferOkTypes<R> | T, InferErrTypes<R>>;
2103
+ orElse<R extends ResultAsync<unknown, unknown>>(f: (e: E) => R): ResultAsync<InferAsyncOkTypes<R> | T, InferAsyncErrTypes<R>>;
2104
+ orElse<U, A>(f: (e: E) => Result<U, A> | ResultAsync<U, A>): ResultAsync<U | T, A>;
2105
+ match<A, B = A>(ok: (t: T) => A, _err: (e: E) => B): Promise<A | B>;
2106
+ unwrapOr<A>(t: A): Promise<T | A>;
2107
+ /**
2108
+ * @deprecated will be removed in 9.0.0.
2109
+ *
2110
+ * You can use `safeTry` without this method.
2111
+ * @example
2112
+ * ```typescript
2113
+ * safeTry(async function* () {
2114
+ * const okValue = yield* yourResult
2115
+ * })
2116
+ * ```
2117
+ * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.
2118
+ */
2119
+ safeUnwrap(): AsyncGenerator<Err<never, E>, T>;
2120
+ then<A, B>(successCallback?: (res: Result<T, E>) => A | PromiseLike<A>, failureCallback?: (reason: unknown) => B | PromiseLike<B>): PromiseLike<A | B>;
2121
+ [Symbol.asyncIterator](): AsyncGenerator<Err<never, E>, T>;
2122
+ }
2123
+ declare type CombineResultAsyncs<T extends readonly ResultAsync<unknown, unknown>[]> = IsLiteralArray<T> extends 1 ? TraverseAsync<UnwrapAsync<T>> : ResultAsync<ExtractOkAsyncTypes<T>, ExtractErrAsyncTypes<T>[number]>;
2124
+ declare type CombineResultsWithAllErrorsArrayAsync<T extends readonly ResultAsync<unknown, unknown>[]> = IsLiteralArray<T> extends 1 ? TraverseWithAllErrorsAsync<UnwrapAsync<T>> : ResultAsync<ExtractOkAsyncTypes<T>, ExtractErrAsyncTypes<T>[number][]>;
2125
+ declare type UnwrapAsync<T> = IsLiteralArray<T> extends 1 ? Writable<T> extends [infer H, ...infer Rest] ? H extends PromiseLike<infer HI> ? HI extends Result<unknown, unknown> ? [Dedup<HI>, ...UnwrapAsync<Rest>] : never : never : [] : T extends Array<infer A> ? A extends PromiseLike<infer HI> ? HI extends Result<infer L, infer R> ? Ok<L, R>[] : never : never : never;
2126
+ declare type TraverseAsync<T, Depth extends number = 5> = IsLiteralArray<T> extends 1 ? Combine<T, Depth> extends [infer Oks, infer Errs] ? ResultAsync<EmptyArrayToNever<Oks>, MembersToUnion<Errs>> : never : T extends Array<infer I> ? Combine<MemberListOf<I>, Depth> extends [infer Oks, infer Errs] ? Oks extends unknown[] ? Errs extends unknown[] ? ResultAsync<EmptyArrayToNever<Oks[number][]>, MembersToUnion<Errs[number][]>> : ResultAsync<EmptyArrayToNever<Oks[number][]>, Errs> : Errs extends unknown[] ? ResultAsync<Oks, MembersToUnion<Errs[number][]>> : ResultAsync<Oks, Errs> : never : never;
2127
+ declare type TraverseWithAllErrorsAsync<T, Depth extends number = 5> = TraverseAsync<T, Depth> extends ResultAsync<infer Oks, infer Errs> ? ResultAsync<Oks, Errs[]> : never;
2128
+ declare type Writable<T> = T extends ReadonlyArray<unknown> ? [...T] : T;
2129
+ declare type ExtractOkTypes<T extends readonly Result<unknown, unknown>[]> = { [idx in keyof T]: T[idx] extends Result<infer U, unknown> ? U : never };
2130
+ declare type ExtractOkAsyncTypes<T extends readonly ResultAsync<unknown, unknown>[]> = { [idx in keyof T]: T[idx] extends ResultAsync<infer U, unknown> ? U : never };
2131
+ declare type ExtractErrTypes<T extends readonly Result<unknown, unknown>[]> = { [idx in keyof T]: T[idx] extends Result<unknown, infer E> ? E : never };
2132
+ declare type ExtractErrAsyncTypes<T extends readonly ResultAsync<unknown, unknown>[]> = { [idx in keyof T]: T[idx] extends ResultAsync<unknown, infer E> ? E : never };
2133
+ declare type InferOkTypes<R> = R extends Result<infer T, unknown> ? T : never;
2134
+ declare type InferErrTypes<R> = R extends Result<unknown, infer E> ? E : never;
2135
+ declare type InferAsyncOkTypes<R> = R extends ResultAsync<infer T, unknown> ? T : never;
2136
+ declare type InferAsyncErrTypes<R> = R extends ResultAsync<unknown, infer E> ? E : never;
2137
+ declare namespace Result {
2138
+ /**
2139
+ * Wraps a function with a try catch, creating a new function with the same
2140
+ * arguments but returning `Ok` if successful, `Err` if the function throws
2141
+ *
2142
+ * @param fn function to wrap with ok on success or err on failure
2143
+ * @param errorFn when an error is thrown, this will wrap the error result if provided
2144
+ */
2145
+ function fromThrowable<Fn extends (...args: readonly any[]) => any, E>(fn: Fn, errorFn?: (e: unknown) => E): (...args: Parameters<Fn>) => Result<ReturnType<Fn>, E>;
2146
+ function combine<T extends readonly [Result<unknown, unknown>, ...Result<unknown, unknown>[]]>(resultList: T): CombineResults<T>;
2147
+ function combine<T extends readonly Result<unknown, unknown>[]>(resultList: T): CombineResults<T>;
2148
+ function combineWithAllErrors<T extends readonly [Result<unknown, unknown>, ...Result<unknown, unknown>[]]>(resultList: T): CombineResultsWithAllErrorsArray<T>;
2149
+ function combineWithAllErrors<T extends readonly Result<unknown, unknown>[]>(resultList: T): CombineResultsWithAllErrorsArray<T>;
2150
+ }
2151
+ declare type Result<T, E> = Ok<T, E> | Err<T, E>;
2152
+ interface IResult<T, E> {
2153
+ /**
2154
+ * Used to check if a `Result` is an `OK`
2155
+ *
2156
+ * @returns `true` if the result is an `OK` variant of Result
2157
+ */
2158
+ isOk(): this is Ok<T, E>;
2159
+ /**
2160
+ * Used to check if a `Result` is an `Err`
2161
+ *
2162
+ * @returns `true` if the result is an `Err` variant of Result
2163
+ */
2164
+ isErr(): this is Err<T, E>;
2165
+ /**
2166
+ * Maps a `Result<T, E>` to `Result<U, E>`
2167
+ * by applying a function to a contained `Ok` value, leaving an `Err` value
2168
+ * untouched.
2169
+ *
2170
+ * @param f The function to apply an `OK` value
2171
+ * @returns the result of applying `f` or an `Err` untouched
2172
+ */
2173
+ map<A>(f: (t: T) => A): Result<A, E>;
2174
+ /**
2175
+ * Maps a `Result<T, E>` to `Result<T, F>` by applying a function to a
2176
+ * contained `Err` value, leaving an `Ok` value untouched.
2177
+ *
2178
+ * This function can be used to pass through a successful result while
2179
+ * handling an error.
2180
+ *
2181
+ * @param f a function to apply to the error `Err` value
2182
+ */
2183
+ mapErr<U>(f: (e: E) => U): Result<T, U>;
2184
+ /**
2185
+ * Similar to `map` Except you must return a new `Result`.
2186
+ *
2187
+ * This is useful for when you need to do a subsequent computation using the
2188
+ * inner `T` value, but that computation might fail.
2189
+ * Additionally, `andThen` is really useful as a tool to flatten a
2190
+ * `Result<Result<A, E2>, E1>` into a `Result<A, E2>` (see example below).
2191
+ *
2192
+ * @param f The function to apply to the current value
2193
+ */
2194
+ andThen<R extends Result<unknown, unknown>>(f: (t: T) => R): Result<InferOkTypes<R>, InferErrTypes<R> | E>;
2195
+ andThen<U, F>(f: (t: T) => Result<U, F>): Result<U, E | F>;
2196
+ /**
2197
+ * This "tee"s the current value to an passed-in computation such as side
2198
+ * effect functions but still returns the same current value as the result.
2199
+ *
2200
+ * This is useful when you want to pass the current result to your side-track
2201
+ * work such as logging but want to continue main-track work after that.
2202
+ * This method does not care about the result of the passed in computation.
2203
+ *
2204
+ * @param f The function to apply to the current value
2205
+ */
2206
+ andTee(f: (t: T) => unknown): Result<T, E>;
2207
+ /**
2208
+ * This "tee"s the current `Err` value to an passed-in computation such as side
2209
+ * effect functions but still returns the same `Err` value as the result.
2210
+ *
2211
+ * This is useful when you want to pass the current `Err` value to your side-track
2212
+ * work such as logging but want to continue error-track work after that.
2213
+ * This method does not care about the result of the passed in computation.
2214
+ *
2215
+ * @param f The function to apply to the current `Err` value
2216
+ */
2217
+ orTee(f: (t: E) => unknown): Result<T, E>;
2218
+ /**
2219
+ * Similar to `andTee` except error result of the computation will be passed
2220
+ * to the downstream in case of an error.
2221
+ *
2222
+ * This version is useful when you want to make side-effects but in case of an
2223
+ * error, you want to pass the error to the downstream.
2224
+ *
2225
+ * @param f The function to apply to the current value
2226
+ */
2227
+ andThrough<R extends Result<unknown, unknown>>(f: (t: T) => R): Result<T, InferErrTypes<R> | E>;
2228
+ andThrough<F>(f: (t: T) => Result<unknown, F>): Result<T, E | F>;
2229
+ /**
2230
+ * Takes an `Err` value and maps it to a `Result<T, SomeNewType>`.
2231
+ *
2232
+ * This is useful for error recovery.
2233
+ *
2234
+ *
2235
+ * @param f A function to apply to an `Err` value, leaving `Ok` values
2236
+ * untouched.
2237
+ */
2238
+ orElse<R extends Result<unknown, unknown>>(f: (e: E) => R): Result<InferOkTypes<R> | T, InferErrTypes<R>>;
2239
+ orElse<U, A>(f: (e: E) => Result<U, A>): Result<U | T, A>;
2240
+ /**
2241
+ * Similar to `map` Except you must return a new `Result`.
2242
+ *
2243
+ * This is useful for when you need to do a subsequent async computation using
2244
+ * the inner `T` value, but that computation might fail. Must return a ResultAsync
2245
+ *
2246
+ * @param f The function that returns a `ResultAsync` to apply to the current
2247
+ * value
2248
+ */
2249
+ asyncAndThen<U, F>(f: (t: T) => ResultAsync<U, F>): ResultAsync<U, E | F>;
2250
+ /**
2251
+ * Maps a `Result<T, E>` to `ResultAsync<U, E>`
2252
+ * by applying an async function to a contained `Ok` value, leaving an `Err`
2253
+ * value untouched.
2254
+ *
2255
+ * @param f An async function to apply an `OK` value
2256
+ */
2257
+ asyncMap<U>(f: (t: T) => Promise<U>): ResultAsync<U, E>;
2258
+ /**
2259
+ * Unwrap the `Ok` value, or return the default if there is an `Err`
2260
+ *
2261
+ * @param v the default value to return if there is an `Err`
2262
+ */
2263
+ unwrapOr<A>(v: A): T | A;
2264
+ /**
2265
+ *
2266
+ * Given 2 functions (one for the `Ok` variant and one for the `Err` variant)
2267
+ * execute the function that matches the `Result` variant.
2268
+ *
2269
+ * Match callbacks do not necessitate to return a `Result`, however you can
2270
+ * return a `Result` if you want to.
2271
+ *
2272
+ * `match` is like chaining `map` and `mapErr`, with the distinction that
2273
+ * with `match` both functions must have the same return type.
2274
+ *
2275
+ * @param ok
2276
+ * @param err
2277
+ */
2278
+ match<A, B = A>(ok: (t: T) => A, err: (e: E) => B): A | B;
2279
+ /**
2280
+ * @deprecated will be removed in 9.0.0.
2281
+ *
2282
+ * You can use `safeTry` without this method.
2283
+ * @example
2284
+ * ```typescript
2285
+ * safeTry(function* () {
2286
+ * const okValue = yield* yourResult
2287
+ * })
2288
+ * ```
2289
+ * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.
2290
+ */
2291
+ safeUnwrap(): Generator<Err<never, E>, T>;
2292
+ /**
2293
+ * **This method is unsafe, and should only be used in a test environments**
2294
+ *
2295
+ * Takes a `Result<T, E>` and returns a `T` when the result is an `Ok`, otherwise it throws a custom object.
2296
+ *
2297
+ * @param config
2298
+ */
2299
+ _unsafeUnwrap(config?: ErrorConfig): T;
2300
+ /**
2301
+ * **This method is unsafe, and should only be used in a test environments**
2302
+ *
2303
+ * takes a `Result<T, E>` and returns a `E` when the result is an `Err`,
2304
+ * otherwise it throws a custom object.
2305
+ *
2306
+ * @param config
2307
+ */
2308
+ _unsafeUnwrapErr(config?: ErrorConfig): E;
2309
+ }
2310
+ declare class Ok<T, E> implements IResult<T, E> {
2311
+ readonly value: T;
2312
+ constructor(value: T);
2313
+ isOk(): this is Ok<T, E>;
2314
+ isErr(): this is Err<T, E>;
2315
+ map<A>(f: (t: T) => A): Result<A, E>;
2316
+ mapErr<U>(_f: (e: E) => U): Result<T, U>;
2317
+ andThen<R extends Result<unknown, unknown>>(f: (t: T) => R): Result<InferOkTypes<R>, InferErrTypes<R> | E>;
2318
+ andThen<U, F>(f: (t: T) => Result<U, F>): Result<U, E | F>;
2319
+ andThrough<R extends Result<unknown, unknown>>(f: (t: T) => R): Result<T, InferErrTypes<R> | E>;
2320
+ andThrough<F>(f: (t: T) => Result<unknown, F>): Result<T, E | F>;
2321
+ andTee(f: (t: T) => unknown): Result<T, E>;
2322
+ orTee(_f: (t: E) => unknown): Result<T, E>;
2323
+ orElse<R extends Result<unknown, unknown>>(_f: (e: E) => R): Result<InferOkTypes<R> | T, InferErrTypes<R>>;
2324
+ orElse<U, A>(_f: (e: E) => Result<U, A>): Result<U | T, A>;
2325
+ asyncAndThen<U, F>(f: (t: T) => ResultAsync<U, F>): ResultAsync<U, E | F>;
2326
+ asyncAndThrough<R extends ResultAsync<unknown, unknown>>(f: (t: T) => R): ResultAsync<T, InferAsyncErrTypes<R> | E>;
2327
+ asyncAndThrough<F>(f: (t: T) => ResultAsync<unknown, F>): ResultAsync<T, E | F>;
2328
+ asyncMap<U>(f: (t: T) => Promise<U>): ResultAsync<U, E>;
2329
+ unwrapOr<A>(_v: A): T | A;
2330
+ match<A, B = A>(ok: (t: T) => A, _err: (e: E) => B): A | B;
2331
+ safeUnwrap(): Generator<Err<never, E>, T>;
2332
+ _unsafeUnwrap(_?: ErrorConfig): T;
2333
+ _unsafeUnwrapErr(config?: ErrorConfig): E;
2334
+ [Symbol.iterator](): Generator<Err<never, E>, T>;
2335
+ }
2336
+ declare class Err<T, E> implements IResult<T, E> {
2337
+ readonly error: E;
2338
+ constructor(error: E);
2339
+ isOk(): this is Ok<T, E>;
2340
+ isErr(): this is Err<T, E>;
2341
+ map<A>(_f: (t: T) => A): Result<A, E>;
2342
+ mapErr<U>(f: (e: E) => U): Result<T, U>;
2343
+ andThrough<F>(_f: (t: T) => Result<unknown, F>): Result<T, E | F>;
2344
+ andTee(_f: (t: T) => unknown): Result<T, E>;
2345
+ orTee(f: (t: E) => unknown): Result<T, E>;
2346
+ andThen<R extends Result<unknown, unknown>>(_f: (t: T) => R): Result<InferOkTypes<R>, InferErrTypes<R> | E>;
2347
+ andThen<U, F>(_f: (t: T) => Result<U, F>): Result<U, E | F>;
2348
+ orElse<R extends Result<unknown, unknown>>(f: (e: E) => R): Result<InferOkTypes<R> | T, InferErrTypes<R>>;
2349
+ orElse<U, A>(f: (e: E) => Result<U, A>): Result<U | T, A>;
2350
+ asyncAndThen<U, F>(_f: (t: T) => ResultAsync<U, F>): ResultAsync<U, E | F>;
2351
+ asyncAndThrough<F>(_f: (t: T) => ResultAsync<unknown, F>): ResultAsync<T, E | F>;
2352
+ asyncMap<U>(_f: (t: T) => Promise<U>): ResultAsync<U, E>;
2353
+ unwrapOr<A>(v: A): T | A;
2354
+ match<A, B = A>(_ok: (t: T) => A, err: (e: E) => B): A | B;
2355
+ safeUnwrap(): Generator<Err<never, E>, T>;
2356
+ _unsafeUnwrap(config?: ErrorConfig): T;
2357
+ _unsafeUnwrapErr(_?: ErrorConfig): E;
2358
+ [Symbol.iterator](): Generator<Err<never, E>, T>;
2359
+ }
2360
+ declare type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ...0[]];
2361
+ declare type CollectResults<T, Collected extends unknown[] = [], Depth extends number = 50> = [Depth] extends [never] ? [] : T extends [infer H, ...infer Rest] ? H extends Result<infer L, infer R> ? CollectResults<Rest, [...Collected, [L, R]], Prev[Depth]> : never : Collected;
2362
+ declare type Transpose<A, Transposed extends unknown[][] = [], Depth extends number = 10> = A extends [infer T, ...infer Rest] ? T extends [infer L, infer R] ? Transposed extends [infer PL, infer PR] ? PL extends unknown[] ? PR extends unknown[] ? Transpose<Rest, [[...PL, L], [...PR, R]], Prev[Depth]> : never : never : Transpose<Rest, [[L], [R]], Prev[Depth]> : Transposed : Transposed;
2363
+ declare type Combine<T, Depth extends number = 5> = Transpose<CollectResults<T>, [], Depth> extends [infer L, infer R] ? [UnknownMembersToNever<L>, UnknownMembersToNever<R>] : Transpose<CollectResults<T>, [], Depth> extends [] ? [[], []] : never;
2364
+ declare type Dedup<T> = T extends Result<infer RL, infer RR> ? [unknown] extends [RL] ? Err<RL, RR> : Ok<RL, RR> : T;
2365
+ declare type MemberListOf<T> = ((T extends unknown ? (t: T) => T : never) extends infer U ? (U extends unknown ? (u: U) => unknown : never) extends ((v: infer V) => unknown) ? V : never : never) extends ((_: unknown) => infer W) ? [...MemberListOf<Exclude<T, W>>, W] : [];
2366
+ declare type EmptyArrayToNever<T, NeverArrayToNever extends number = 0> = T extends [] ? never : NeverArrayToNever extends 1 ? T extends [never, ...infer Rest] ? [EmptyArrayToNever<Rest>] extends [never] ? never : T : T : T;
2367
+ declare type UnknownMembersToNever<T> = T extends [infer H, ...infer R] ? [[unknown] extends [H] ? never : H, ...UnknownMembersToNever<R>] : T;
2368
+ declare type MembersToUnion<T> = T extends unknown[] ? T[number] : never;
2369
+ declare type IsLiteralArray<T> = T extends {
2370
+ length: infer L;
2371
+ } ? L extends number ? number extends L ? 0 : 1 : 0 : 0;
2372
+ declare type Traverse<T, Depth extends number = 5> = Combine<T, Depth> extends [infer Oks, infer Errs] ? Result<EmptyArrayToNever<Oks, 1>, MembersToUnion<Errs>> : never;
2373
+ declare type TraverseWithAllErrors<T, Depth extends number = 5> = Traverse<T, Depth> extends Result<infer Oks, infer Errs> ? Result<Oks, Errs[]> : never;
2374
+ declare type CombineResults<T extends readonly Result<unknown, unknown>[]> = IsLiteralArray<T> extends 1 ? Traverse<T> : Result<ExtractOkTypes<T>, ExtractErrTypes<T>[number]>;
2375
+ declare type CombineResultsWithAllErrorsArray<T extends readonly Result<unknown, unknown>[]> = IsLiteralArray<T> extends 1 ? TraverseWithAllErrors<T> : Result<ExtractOkTypes<T>, ExtractErrTypes<T>[number][]>;
2376
+ //#endregion
2377
+ //#region src/services/error/getResult.d.ts
2378
+ declare const getResult: <T>(fn: () => T) => Result<T, Error>;
2379
+ //#endregion
2380
+ //#region src/services/error/getResultAsync.d.ts
2381
+ declare const getResultAsync: <T>(fn: () => Promise<T>) => ResultAsync<T, Error>;
2382
+ //#endregion
2383
+ //#region src/services/error/toAppError.d.ts
2384
+ declare const toAppError: (error: unknown) => Error;
2385
+ //#endregion
2386
+ //#region src/services/error/withFinalizer.d.ts
2387
+ declare const withFinalizer: <T>(fn: () => T, finalizer?: () => void) => T;
2388
+ //#endregion
2389
+ //#region src/services/error/withFinalizerAsync.d.ts
2390
+ declare const withFinalizerAsync: <T>(fn: () => Promisable<T>, finalizer?: () => Promisable<void>) => Promise<T>;
2391
+ //#endregion
2045
2392
  //#region src/services/message/constants.d.ts
2046
2393
  declare const MENTION_ID_ATTRIBUTE = "data-id";
2047
2394
  declare const MENTION_LABEL_ATTRIBUTE = "data-label";
@@ -2370,6 +2717,9 @@ declare const takeOne: TakeOne;
2370
2717
  //#region src/util/environment/getIsServer.d.ts
2371
2718
  declare const getIsServer: () => boolean;
2372
2719
  //#endregion
2720
+ //#region src/util/function/noop.d.ts
2721
+ declare const noop: () => void;
2722
+ //#endregion
2373
2723
  //#region src/util/id/constants.d.ts
2374
2724
  declare const ID_SEPARATOR = "|";
2375
2725
  //#endregion
@@ -2400,6 +2750,9 @@ declare const escapeRegExp: (string: string) => string;
2400
2750
  //#region src/util/text/capitalize.d.ts
2401
2751
  declare const capitalize: (string: string) => string;
2402
2752
  //#endregion
2753
+ //#region src/util/text/normalizeString.d.ts
2754
+ declare const normalizeString: (value: null | string | undefined) => string;
2755
+ //#endregion
2403
2756
  //#region src/util/text/streamToText.d.ts
2404
2757
  declare const streamToText: (readable: NodeJS.ReadableStream) => Promise<string>;
2405
2758
  //#endregion
@@ -2458,4 +2811,4 @@ declare const UUIDV4_REGEX: RegExp;
2458
2811
  //#region src/util/id/uuid/uuidValidateV4.d.ts
2459
2812
  declare const uuidValidateV4: (uuid: string) => boolean;
2460
2813
  //#endregion
2461
- export { AllSpecialValues, BuildTuple, DeepOmit, DeepOptionalUndefined, ExcludeFunctionProperties, ForbiddenError, FunctionProperties, GetPaths, GetProperties, ID_SEPARATOR, InvalidOperationError, ItemEntityType, ItemEntityTypePropertyNames, ItemMetadata, ItemMetadataPropertyNames, MENTION_EVERYONE_ID, MENTION_HERE_ID, MENTION_ID_ATTRIBUTE, MENTION_LABEL_ATTRIBUTE, MENTION_TYPE, MENTION_TYPE_ATTRIBUTE, MapValue, MergeObjectsStrict, NIL, NotFoundError, NotInitializedError, Operation, PropertyNames, RoutePath, SITE_NAME, SURVEY_DISPLAY_NAME, Serializable, SkipFirst, TakeFirst, TakeOne, ToData, TupleSlice, TupleSplit, TupleSplitHead, TupleSplitTail, UUIDV4_REGEX, WithMetadata, applyItemMetadataMixin, capitalize, createItemEntityTypeSchema, css, escapeRegExp, exhaustiveGuard, getIsServer, getMentions, getPropertyNames, getRawData, hrtime, html, isPlainObject, itemMetadataSchema, jsonDateParse, mergeObjectsStrict, now, streamToText, takeOne, toKebabCase, toRawDeep, truncate, uncapitalize, uuidValidateV4 };
2814
+ export { AllSpecialValues, BuildTuple, DeepOmit, DeepOptionalUndefined, ExcludeFunctionProperties, ForbiddenError, FunctionProperties, GetArrayProps, GetObjectProps, GetPaths, GetPrimitiveProps, GetProperties, ID_SEPARATOR, InvalidOperationError, ItemEntityType, ItemEntityTypePropertyNames, ItemMetadata, ItemMetadataPropertyNames, KnownKeys, MENTION_EVERYONE_ID, MENTION_HERE_ID, MENTION_ID_ATTRIBUTE, MENTION_LABEL_ATTRIBUTE, MENTION_TYPE, MENTION_TYPE_ATTRIBUTE, MapValue, MergeObjectsStrict, NIL, NotFoundError, NotInitializedError, Operation, PropertyNames, RoutePath, SITE_NAME, SURVEY_DISPLAY_NAME, Serializable, SkipFirst, TakeFirst, TakeOne, ToData, TupleSlice, TupleSplit, TupleSplitHead, TupleSplitTail, UUIDV4_REGEX, WithMetadata, applyItemMetadataMixin, capitalize, createItemEntityTypeSchema, css, escapeRegExp, exhaustiveGuard, getIsServer, getMentions, getPropertyNames, getRawData, getResult, getResultAsync, hrtime, html, isPlainObject, itemMetadataSchema, jsonDateParse, mergeObjectsStrict, noop, normalizeString, now, streamToText, takeOne, toAppError, toKebabCase, toRawDeep, truncate, uncapitalize, uuidValidateV4, withFinalizer, withFinalizerAsync };
package/dist/index.js CHANGED
@@ -27,6 +27,9 @@ var __copyProps = (to, from, except, desc) => {
27
27
  };
28
28
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  //#endregion
30
+ //#region src/util/function/noop.ts
31
+ const noop = () => {};
32
+ //#endregion
30
33
  //#region src/test/constants.ts
31
34
  const AllSpecialValues = [
32
35
  {
@@ -67,11 +70,11 @@ const AllSpecialValues = [
67
70
  },
68
71
  {
69
72
  isPlainObject: false,
70
- value: () => {}
73
+ value: noop
71
74
  },
72
75
  {
73
76
  isPlainObject: false,
74
- value: /* @__PURE__ */ new RegExp("")
77
+ value: /* @__PURE__ */ new RegExp("", "u")
75
78
  }
76
79
  ];
77
80
  //#endregion
@@ -180,9 +183,9 @@ let Operation = /* @__PURE__ */ function(Operation) {
180
183
  return Operation;
181
184
  }({});
182
185
  //#endregion
183
- //#region ../../node_modules/.pnpm/@vue+shared@3.5.33/node_modules/@vue/shared/dist/shared.esm-bundler.js
186
+ //#region ../../node_modules/.pnpm/@vue+shared@3.5.34/node_modules/@vue/shared/dist/shared.esm-bundler.js
184
187
  /**
185
- * @vue/shared v3.5.33
188
+ * @vue/shared v3.5.34
186
189
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
187
190
  * @license MIT
188
191
  **/
@@ -195,7 +198,6 @@ function makeMap(str) {
195
198
  const EMPTY_OBJ = Object.freeze({});
196
199
  Object.freeze([]);
197
200
  const NOOP = () => {};
198
- const NO = () => false;
199
201
  const extend = Object.assign;
200
202
  const remove = (arr, el) => {
201
203
  const i = arr.indexOf(el);
@@ -226,18 +228,9 @@ const cacheStringFunction$1 = (fn) => {
226
228
  return cache[str] || (cache[str] = fn(str));
227
229
  });
228
230
  };
229
- const camelizeRE$1 = /-\w/g;
230
- cacheStringFunction$1((str) => {
231
- return str.replace(camelizeRE$1, (c) => c.slice(1).toUpperCase());
232
- });
233
- const hyphenateRE$1 = /\B([A-Z])/g;
234
- cacheStringFunction$1((str) => str.replace(hyphenateRE$1, "-$1").toLowerCase());
235
231
  const capitalize$1 = cacheStringFunction$1((str) => {
236
232
  return str.charAt(0).toUpperCase() + str.slice(1);
237
233
  });
238
- const toHandlerKey = cacheStringFunction$1((str) => {
239
- return str ? `on${capitalize$1(str)}` : ``;
240
- });
241
234
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
242
235
  const def = (obj, key, value, writable = false) => {
243
236
  Object.defineProperty(obj, key, {
@@ -252,9 +245,9 @@ const getGlobalThis = () => {
252
245
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
253
246
  };
254
247
  //#endregion
255
- //#region ../../node_modules/.pnpm/@vue+reactivity@3.5.33/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
248
+ //#region ../../node_modules/.pnpm/@vue+reactivity@3.5.34/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
256
249
  /**
257
- * @vue/reactivity v3.5.33
250
+ * @vue/reactivity v3.5.34
258
251
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
259
252
  * @license MIT
260
253
  **/
@@ -1354,9 +1347,9 @@ function traverse(value, depth = Infinity, seen) {
1354
1347
  return value;
1355
1348
  }
1356
1349
  //#endregion
1357
- //#region ../../node_modules/.pnpm/@vue+runtime-core@3.5.33/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
1350
+ //#region ../../node_modules/.pnpm/@vue+runtime-core@3.5.34/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
1358
1351
  /**
1359
- * @vue/runtime-core v3.5.33
1352
+ * @vue/runtime-core v3.5.34
1360
1353
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
1361
1354
  * @license MIT
1362
1355
  **/
@@ -1828,34 +1821,6 @@ function createPathGetter(ctx, path) {
1828
1821
  }
1829
1822
  getGlobalThis().requestIdleCallback;
1830
1823
  getGlobalThis().cancelIdleCallback;
1831
- function injectHook(type, hook, target = currentInstance, prepend = false) {
1832
- if (target) {
1833
- const hooks = target[type] || (target[type] = []);
1834
- const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
1835
- pauseTracking();
1836
- const reset = setCurrentInstance(target);
1837
- const res = callWithAsyncErrorHandling(hook, target, type, args);
1838
- reset();
1839
- resetTracking();
1840
- return res;
1841
- });
1842
- if (prepend) hooks.unshift(wrappedHook);
1843
- else hooks.push(wrappedHook);
1844
- return wrappedHook;
1845
- } else warn$1(`${toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`);
1846
- }
1847
- const createHook = (lifecycle) => (hook, target = currentInstance) => {
1848
- if (!isInSSRComponentSetup || lifecycle === "sp") injectHook(lifecycle, (...args) => hook(...args), target);
1849
- };
1850
- createHook("bm");
1851
- createHook("m");
1852
- createHook("bu");
1853
- createHook("u");
1854
- createHook("bum");
1855
- createHook("um");
1856
- createHook("sp");
1857
- createHook("rtg");
1858
- createHook("rtc");
1859
1824
  const getPublicInstance = (i) => {
1860
1825
  if (!i) return null;
1861
1826
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
@@ -1911,10 +1876,8 @@ const PublicInstanceProxyHandlers = {
1911
1876
  const publicGetter = publicPropertiesMap[key];
1912
1877
  let cssModule, globalProperties;
1913
1878
  if (publicGetter) {
1914
- if (key === "$attrs") {
1915
- track(instance.attrs, "get", "");
1916
- markAttrsAccessed();
1917
- } else if (key === "$slots") track(instance, "get", key);
1879
+ if (key === "$attrs") track(instance.attrs, "get", "");
1880
+ else if (key === "$slots") track(instance, "get", key);
1918
1881
  return publicGetter(instance);
1919
1882
  } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) return cssModule;
1920
1883
  else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
@@ -2056,36 +2019,13 @@ function mergeWatchOptions(to, from) {
2056
2019
  for (const key in from) merged[key] = mergeAsArray(to[key], from[key]);
2057
2020
  return merged;
2058
2021
  }
2059
- function createAppContext() {
2060
- return {
2061
- app: null,
2062
- config: {
2063
- isNativeTag: NO,
2064
- performance: false,
2065
- globalProperties: {},
2066
- optionMergeStrategies: {},
2067
- errorHandler: void 0,
2068
- warnHandler: void 0,
2069
- compilerOptions: {}
2070
- },
2071
- mixins: [],
2072
- components: {},
2073
- directives: {},
2074
- provides: /* @__PURE__ */ Object.create(null),
2075
- optionsCache: /* @__PURE__ */ new WeakMap(),
2076
- propsCache: /* @__PURE__ */ new WeakMap(),
2077
- emitsCache: /* @__PURE__ */ new WeakMap()
2078
- };
2079
- }
2080
2022
  let currentApp = null;
2081
- function markAttrsAccessed() {}
2082
2023
  const queuePostRenderEffect = queueEffectWithSuspense;
2083
2024
  function queueEffectWithSuspense(fn, suspense) {
2084
2025
  if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
2085
2026
  else suspense.effects.push(fn);
2086
2027
  else queuePostFlushCb(fn);
2087
2028
  }
2088
- createAppContext();
2089
2029
  let currentInstance = null;
2090
2030
  const getCurrentInstance = () => currentInstance || currentRenderingInstance;
2091
2031
  let internalSetCurrentInstance;
@@ -2313,9 +2253,9 @@ function initCustomFormatter() {
2313
2253
  else window.devtoolsFormatters = [formatter];
2314
2254
  }
2315
2255
  //#endregion
2316
- //#region ../../node_modules/.pnpm/vue@3.5.33_typescript@5.9.3/node_modules/vue/dist/vue.runtime.esm-bundler.js
2256
+ //#region ../../node_modules/.pnpm/vue@3.5.34_typescript@5.9.3/node_modules/vue/dist/vue.runtime.esm-bundler.js
2317
2257
  /**
2318
- * vue v3.5.33
2258
+ * vue v3.5.34
2319
2259
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
2320
2260
  * @license MIT
2321
2261
  **/
@@ -2329,18 +2269,6 @@ const getRawData = (data) => /* @__PURE__ */ isReactive(data) ? /* @__PURE__ */
2329
2269
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
2330
2270
  const toString = Object.prototype.toString;
2331
2271
  const isObject = (val) => toString.call(val) === "[object Object]";
2332
- function cacheStringFunction(fn) {
2333
- const cache = Object.create(null);
2334
- return ((str) => {
2335
- return cache[str] || (cache[str] = fn(str));
2336
- });
2337
- }
2338
- const hyphenateRE = /\B([A-Z])/g;
2339
- cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
2340
- const camelizeRE = /-(\w)/g;
2341
- cacheStringFunction((str) => {
2342
- return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
2343
- });
2344
2272
  //#endregion
2345
2273
  //#region src/util/reactivity/toRawDeep.ts
2346
2274
  const toRawDeep = (data) => {
@@ -2360,6 +2288,507 @@ var Serializable = class {
2360
2288
  }
2361
2289
  };
2362
2290
  //#endregion
2291
+ //#region src/services/error/toAppError.ts
2292
+ const toAppError = (error) => {
2293
+ if (error instanceof Error) return error;
2294
+ if (typeof error === "object" && error !== null && "message" in error && typeof error.message === "string") return new Error(error.message, { cause: error });
2295
+ return new Error(String(error), { cause: error });
2296
+ };
2297
+ //#endregion
2298
+ //#region ../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.es.js
2299
+ const defaultErrorConfig = { withStackTrace: false };
2300
+ const createNeverThrowError = (message, result, config = defaultErrorConfig) => {
2301
+ return {
2302
+ data: result.isOk() ? {
2303
+ type: "Ok",
2304
+ value: result.value
2305
+ } : {
2306
+ type: "Err",
2307
+ value: result.error
2308
+ },
2309
+ message,
2310
+ stack: config.withStackTrace ? (/* @__PURE__ */ new Error()).stack : void 0
2311
+ };
2312
+ };
2313
+ /******************************************************************************
2314
+ Copyright (c) Microsoft Corporation.
2315
+
2316
+ Permission to use, copy, modify, and/or distribute this software for any
2317
+ purpose with or without fee is hereby granted.
2318
+
2319
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
2320
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
2321
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
2322
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
2323
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
2324
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2325
+ PERFORMANCE OF THIS SOFTWARE.
2326
+ ***************************************************************************** */
2327
+ function __awaiter(thisArg, _arguments, P, generator) {
2328
+ function adopt(value) {
2329
+ return value instanceof P ? value : new P(function(resolve) {
2330
+ resolve(value);
2331
+ });
2332
+ }
2333
+ return new (P || (P = Promise))(function(resolve, reject) {
2334
+ function fulfilled(value) {
2335
+ try {
2336
+ step(generator.next(value));
2337
+ } catch (e) {
2338
+ reject(e);
2339
+ }
2340
+ }
2341
+ function rejected(value) {
2342
+ try {
2343
+ step(generator["throw"](value));
2344
+ } catch (e) {
2345
+ reject(e);
2346
+ }
2347
+ }
2348
+ function step(result) {
2349
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
2350
+ }
2351
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
2352
+ });
2353
+ }
2354
+ function __values(o) {
2355
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
2356
+ if (m) return m.call(o);
2357
+ if (o && typeof o.length === "number") return { next: function() {
2358
+ if (o && i >= o.length) o = void 0;
2359
+ return {
2360
+ value: o && o[i++],
2361
+ done: !o
2362
+ };
2363
+ } };
2364
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
2365
+ }
2366
+ function __await(v) {
2367
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
2368
+ }
2369
+ function __asyncGenerator(thisArg, _arguments, generator) {
2370
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
2371
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
2372
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
2373
+ return this;
2374
+ }, i;
2375
+ function awaitReturn(f) {
2376
+ return function(v) {
2377
+ return Promise.resolve(v).then(f, reject);
2378
+ };
2379
+ }
2380
+ function verb(n, f) {
2381
+ if (g[n]) {
2382
+ i[n] = function(v) {
2383
+ return new Promise(function(a, b) {
2384
+ q.push([
2385
+ n,
2386
+ v,
2387
+ a,
2388
+ b
2389
+ ]) > 1 || resume(n, v);
2390
+ });
2391
+ };
2392
+ if (f) i[n] = f(i[n]);
2393
+ }
2394
+ }
2395
+ function resume(n, v) {
2396
+ try {
2397
+ step(g[n](v));
2398
+ } catch (e) {
2399
+ settle(q[0][3], e);
2400
+ }
2401
+ }
2402
+ function step(r) {
2403
+ r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
2404
+ }
2405
+ function fulfill(value) {
2406
+ resume("next", value);
2407
+ }
2408
+ function reject(value) {
2409
+ resume("throw", value);
2410
+ }
2411
+ function settle(f, v) {
2412
+ if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
2413
+ }
2414
+ }
2415
+ function __asyncDelegator(o) {
2416
+ var i, p;
2417
+ return i = {}, verb("next"), verb("throw", function(e) {
2418
+ throw e;
2419
+ }), verb("return"), i[Symbol.iterator] = function() {
2420
+ return this;
2421
+ }, i;
2422
+ function verb(n, f) {
2423
+ i[n] = o[n] ? function(v) {
2424
+ return (p = !p) ? {
2425
+ value: __await(o[n](v)),
2426
+ done: false
2427
+ } : f ? f(v) : v;
2428
+ } : f;
2429
+ }
2430
+ }
2431
+ function __asyncValues(o) {
2432
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
2433
+ var m = o[Symbol.asyncIterator], i;
2434
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
2435
+ return this;
2436
+ }, i);
2437
+ function verb(n) {
2438
+ i[n] = o[n] && function(v) {
2439
+ return new Promise(function(resolve, reject) {
2440
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
2441
+ });
2442
+ };
2443
+ }
2444
+ function settle(resolve, reject, d, v) {
2445
+ Promise.resolve(v).then(function(v) {
2446
+ resolve({
2447
+ value: v,
2448
+ done: d
2449
+ });
2450
+ }, reject);
2451
+ }
2452
+ }
2453
+ var ResultAsync = class ResultAsync {
2454
+ constructor(res) {
2455
+ this._promise = res;
2456
+ }
2457
+ static fromSafePromise(promise) {
2458
+ return new ResultAsync(promise.then((value) => new Ok(value)));
2459
+ }
2460
+ static fromPromise(promise, errorFn) {
2461
+ return new ResultAsync(promise.then((value) => new Ok(value)).catch((e) => new Err(errorFn(e))));
2462
+ }
2463
+ static fromThrowable(fn, errorFn) {
2464
+ return (...args) => {
2465
+ return new ResultAsync(__awaiter(this, void 0, void 0, function* () {
2466
+ try {
2467
+ return new Ok(yield fn(...args));
2468
+ } catch (error) {
2469
+ return new Err(errorFn ? errorFn(error) : error);
2470
+ }
2471
+ }));
2472
+ };
2473
+ }
2474
+ static combine(asyncResultList) {
2475
+ return combineResultAsyncList(asyncResultList);
2476
+ }
2477
+ static combineWithAllErrors(asyncResultList) {
2478
+ return combineResultAsyncListWithAllErrors(asyncResultList);
2479
+ }
2480
+ map(f) {
2481
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2482
+ if (res.isErr()) return new Err(res.error);
2483
+ return new Ok(yield f(res.value));
2484
+ })));
2485
+ }
2486
+ andThrough(f) {
2487
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2488
+ if (res.isErr()) return new Err(res.error);
2489
+ const newRes = yield f(res.value);
2490
+ if (newRes.isErr()) return new Err(newRes.error);
2491
+ return new Ok(res.value);
2492
+ })));
2493
+ }
2494
+ andTee(f) {
2495
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2496
+ if (res.isErr()) return new Err(res.error);
2497
+ try {
2498
+ yield f(res.value);
2499
+ } catch (e) {}
2500
+ return new Ok(res.value);
2501
+ })));
2502
+ }
2503
+ orTee(f) {
2504
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2505
+ if (res.isOk()) return new Ok(res.value);
2506
+ try {
2507
+ yield f(res.error);
2508
+ } catch (e) {}
2509
+ return new Err(res.error);
2510
+ })));
2511
+ }
2512
+ mapErr(f) {
2513
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2514
+ if (res.isOk()) return new Ok(res.value);
2515
+ return new Err(yield f(res.error));
2516
+ })));
2517
+ }
2518
+ andThen(f) {
2519
+ return new ResultAsync(this._promise.then((res) => {
2520
+ if (res.isErr()) return new Err(res.error);
2521
+ const newValue = f(res.value);
2522
+ return newValue instanceof ResultAsync ? newValue._promise : newValue;
2523
+ }));
2524
+ }
2525
+ orElse(f) {
2526
+ return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {
2527
+ if (res.isErr()) return f(res.error);
2528
+ return new Ok(res.value);
2529
+ })));
2530
+ }
2531
+ match(ok, _err) {
2532
+ return this._promise.then((res) => res.match(ok, _err));
2533
+ }
2534
+ unwrapOr(t) {
2535
+ return this._promise.then((res) => res.unwrapOr(t));
2536
+ }
2537
+ /**
2538
+ * @deprecated will be removed in 9.0.0.
2539
+ *
2540
+ * You can use `safeTry` without this method.
2541
+ * @example
2542
+ * ```typescript
2543
+ * safeTry(async function* () {
2544
+ * const okValue = yield* yourResult
2545
+ * })
2546
+ * ```
2547
+ * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.
2548
+ */
2549
+ safeUnwrap() {
2550
+ return __asyncGenerator(this, arguments, function* safeUnwrap_1() {
2551
+ return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));
2552
+ });
2553
+ }
2554
+ then(successCallback, failureCallback) {
2555
+ return this._promise.then(successCallback, failureCallback);
2556
+ }
2557
+ [Symbol.asyncIterator]() {
2558
+ return __asyncGenerator(this, arguments, function* _a() {
2559
+ const result = yield __await(this._promise);
2560
+ if (result.isErr()) yield yield __await(errAsync(result.error));
2561
+ return yield __await(result.value);
2562
+ });
2563
+ }
2564
+ };
2565
+ function errAsync(err) {
2566
+ return new ResultAsync(Promise.resolve(new Err(err)));
2567
+ }
2568
+ ResultAsync.fromPromise;
2569
+ ResultAsync.fromSafePromise;
2570
+ ResultAsync.fromThrowable;
2571
+ /**
2572
+ * Short circuits on the FIRST Err value that we find
2573
+ */
2574
+ const combineResultList = (resultList) => {
2575
+ let acc = ok([]);
2576
+ for (const result of resultList) if (result.isErr()) {
2577
+ acc = err(result.error);
2578
+ break;
2579
+ } else acc.map((list) => list.push(result.value));
2580
+ return acc;
2581
+ };
2582
+ const combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);
2583
+ /**
2584
+ * Give a list of all the errors we find
2585
+ */
2586
+ const combineResultListWithAllErrors = (resultList) => {
2587
+ let acc = ok([]);
2588
+ for (const result of resultList) if (result.isErr() && acc.isErr()) acc.error.push(result.error);
2589
+ else if (result.isErr() && acc.isOk()) acc = err([result.error]);
2590
+ else if (result.isOk() && acc.isOk()) acc.value.push(result.value);
2591
+ return acc;
2592
+ };
2593
+ const combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);
2594
+ var Result;
2595
+ (function(Result) {
2596
+ /**
2597
+ * Wraps a function with a try catch, creating a new function with the same
2598
+ * arguments but returning `Ok` if successful, `Err` if the function throws
2599
+ *
2600
+ * @param fn function to wrap with ok on success or err on failure
2601
+ * @param errorFn when an error is thrown, this will wrap the error result if provided
2602
+ */
2603
+ function fromThrowable(fn, errorFn) {
2604
+ return (...args) => {
2605
+ try {
2606
+ return ok(fn(...args));
2607
+ } catch (e) {
2608
+ return err(errorFn ? errorFn(e) : e);
2609
+ }
2610
+ };
2611
+ }
2612
+ Result.fromThrowable = fromThrowable;
2613
+ function combine(resultList) {
2614
+ return combineResultList(resultList);
2615
+ }
2616
+ Result.combine = combine;
2617
+ function combineWithAllErrors(resultList) {
2618
+ return combineResultListWithAllErrors(resultList);
2619
+ }
2620
+ Result.combineWithAllErrors = combineWithAllErrors;
2621
+ })(Result || (Result = {}));
2622
+ function ok(value) {
2623
+ return new Ok(value);
2624
+ }
2625
+ function err(err) {
2626
+ return new Err(err);
2627
+ }
2628
+ var Ok = class {
2629
+ constructor(value) {
2630
+ this.value = value;
2631
+ }
2632
+ isOk() {
2633
+ return true;
2634
+ }
2635
+ isErr() {
2636
+ return !this.isOk();
2637
+ }
2638
+ map(f) {
2639
+ return ok(f(this.value));
2640
+ }
2641
+ mapErr(_f) {
2642
+ return ok(this.value);
2643
+ }
2644
+ andThen(f) {
2645
+ return f(this.value);
2646
+ }
2647
+ andThrough(f) {
2648
+ return f(this.value).map((_value) => this.value);
2649
+ }
2650
+ andTee(f) {
2651
+ try {
2652
+ f(this.value);
2653
+ } catch (e) {}
2654
+ return ok(this.value);
2655
+ }
2656
+ orTee(_f) {
2657
+ return ok(this.value);
2658
+ }
2659
+ orElse(_f) {
2660
+ return ok(this.value);
2661
+ }
2662
+ asyncAndThen(f) {
2663
+ return f(this.value);
2664
+ }
2665
+ asyncAndThrough(f) {
2666
+ return f(this.value).map(() => this.value);
2667
+ }
2668
+ asyncMap(f) {
2669
+ return ResultAsync.fromSafePromise(f(this.value));
2670
+ }
2671
+ unwrapOr(_v) {
2672
+ return this.value;
2673
+ }
2674
+ match(ok, _err) {
2675
+ return ok(this.value);
2676
+ }
2677
+ safeUnwrap() {
2678
+ const value = this.value;
2679
+ return (function* () {
2680
+ return value;
2681
+ })();
2682
+ }
2683
+ _unsafeUnwrap(_) {
2684
+ return this.value;
2685
+ }
2686
+ _unsafeUnwrapErr(config) {
2687
+ throw createNeverThrowError("Called `_unsafeUnwrapErr` on an Ok", this, config);
2688
+ }
2689
+ *[Symbol.iterator]() {
2690
+ return this.value;
2691
+ }
2692
+ };
2693
+ var Err = class {
2694
+ constructor(error) {
2695
+ this.error = error;
2696
+ }
2697
+ isOk() {
2698
+ return false;
2699
+ }
2700
+ isErr() {
2701
+ return !this.isOk();
2702
+ }
2703
+ map(_f) {
2704
+ return err(this.error);
2705
+ }
2706
+ mapErr(f) {
2707
+ return err(f(this.error));
2708
+ }
2709
+ andThrough(_f) {
2710
+ return err(this.error);
2711
+ }
2712
+ andTee(_f) {
2713
+ return err(this.error);
2714
+ }
2715
+ orTee(f) {
2716
+ try {
2717
+ f(this.error);
2718
+ } catch (e) {}
2719
+ return err(this.error);
2720
+ }
2721
+ andThen(_f) {
2722
+ return err(this.error);
2723
+ }
2724
+ orElse(f) {
2725
+ return f(this.error);
2726
+ }
2727
+ asyncAndThen(_f) {
2728
+ return errAsync(this.error);
2729
+ }
2730
+ asyncAndThrough(_f) {
2731
+ return errAsync(this.error);
2732
+ }
2733
+ asyncMap(_f) {
2734
+ return errAsync(this.error);
2735
+ }
2736
+ unwrapOr(v) {
2737
+ return v;
2738
+ }
2739
+ match(_ok, err) {
2740
+ return err(this.error);
2741
+ }
2742
+ safeUnwrap() {
2743
+ const error = this.error;
2744
+ return (function* () {
2745
+ yield err(error);
2746
+ throw new Error("Do not use this generator out of `safeTry`");
2747
+ })();
2748
+ }
2749
+ _unsafeUnwrap(config) {
2750
+ throw createNeverThrowError("Called `_unsafeUnwrap` on an Err", this, config);
2751
+ }
2752
+ _unsafeUnwrapErr(_) {
2753
+ return this.error;
2754
+ }
2755
+ *[Symbol.iterator]() {
2756
+ const self = this;
2757
+ yield self;
2758
+ return self;
2759
+ }
2760
+ };
2761
+ const fromThrowable = Result.fromThrowable;
2762
+ //#endregion
2763
+ //#region src/services/error/getResult.ts
2764
+ const getResult = (fn) => fromThrowable(fn, toAppError)();
2765
+ //#endregion
2766
+ //#region src/services/error/getResultAsync.ts
2767
+ const getResultAsync = (fn) => ResultAsync.fromPromise(Promise.resolve().then(fn), toAppError);
2768
+ //#endregion
2769
+ //#region src/services/error/withFinalizer.ts
2770
+ const withFinalizer = (fn, finalizer) => {
2771
+ const result = getResult(fn);
2772
+ (finalizer ? getResult(finalizer) : void 0)?.match(noop, (error) => {
2773
+ throw error;
2774
+ });
2775
+ return result.match((value) => value, (error) => {
2776
+ throw error;
2777
+ });
2778
+ };
2779
+ //#endregion
2780
+ //#region src/services/error/withFinalizerAsync.ts
2781
+ const withFinalizerAsync = async (fn, finalizer) => {
2782
+ const result = await getResultAsync(async () => fn());
2783
+ if (finalizer) await getResultAsync(async () => finalizer()).match(noop, (error) => {
2784
+ if (result.isOk()) throw error;
2785
+ console.error(error);
2786
+ });
2787
+ return result.match((value) => value, (error) => {
2788
+ throw error;
2789
+ });
2790
+ };
2791
+ //#endregion
2363
2792
  //#region src/services/message/constants.ts
2364
2793
  const MENTION_ID_ATTRIBUTE = "data-id";
2365
2794
  const MENTION_LABEL_ATTRIBUTE = "data-label";
@@ -14385,17 +14814,17 @@ const isPlainObject = (data) => {
14385
14814
  };
14386
14815
  //#endregion
14387
14816
  //#region src/util/object/jsonDateParse.ts
14388
- const reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.{0,1}\d*))(?:Z|(\+|-)([\d|:]*))?$/;
14389
- const reMsAjax = /^\/Date\((d|-|.*)\)[/|\\]$/;
14817
+ const ISO_DATE_REGEX = new RegExp(String.raw`^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.{0,1}\d*))(?:Z|(\+|-)([\d|:]*))?$`, "u");
14818
+ const MS_AJAX_DATE_REGEX = new RegExp(String.raw`^\/Date\((d|-|.*)\)[\/|\\]$`, "u");
14390
14819
  const jsonDateParse = (text) => JSON.parse(text, (_key, value) => {
14391
14820
  let parsedValue = value;
14392
14821
  if (typeof value === "string") {
14393
- let a = reISO.exec(value);
14822
+ let a = ISO_DATE_REGEX.exec(value);
14394
14823
  if (a) parsedValue = new Date(value);
14395
14824
  else {
14396
- a = reMsAjax.exec(value);
14825
+ a = MS_AJAX_DATE_REGEX.exec(value);
14397
14826
  if (a) {
14398
- const b = takeOne(a, 1).split(/[-+,.]/);
14827
+ const b = takeOne(a, 1).split(new RegExp(String.raw`[-+,.]`, "u"));
14399
14828
  parsedValue = new Date(b[0] ? Number(b[0]) : 0 - Number(b[1]));
14400
14829
  }
14401
14830
  }
@@ -14407,11 +14836,14 @@ const jsonDateParse = (text) => JSON.parse(text, (_key, value) => {
14407
14836
  const mergeObjectsStrict = (...objects) => Object.assign({}, ...objects);
14408
14837
  //#endregion
14409
14838
  //#region src/util/regex/escapeRegExp.ts
14410
- const escapeRegExp = (string) => string.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
14839
+ const escapeRegExp = (string) => string.replaceAll(/[.*+?^${}()|[\]\\]/gu, String.raw`\$&`);
14411
14840
  //#endregion
14412
14841
  //#region src/util/text/capitalize.ts
14413
14842
  const capitalize = (string) => `${string.charAt(0).toUpperCase()}${string.slice(1)}`;
14414
14843
  //#endregion
14844
+ //#region src/util/text/normalizeString.ts
14845
+ const normalizeString = (value) => value?.trim() ?? "";
14846
+ //#endregion
14415
14847
  //#region src/util/text/streamToText.ts
14416
14848
  const streamToText = async (readable) => {
14417
14849
  readable.setEncoding("utf8");
@@ -14421,7 +14853,7 @@ const streamToText = async (readable) => {
14421
14853
  };
14422
14854
  //#endregion
14423
14855
  //#region src/util/text/toKebabCase.ts
14424
- const toKebabCase = (string) => string.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)?.map((x) => x.toLowerCase()).join("-") ?? "";
14856
+ const toKebabCase = (string) => string.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/gu)?.map((x) => x.toLowerCase()).join("-") ?? "";
14425
14857
  //#endregion
14426
14858
  //#region src/util/text/truncate.ts
14427
14859
  const truncate = (string, length) => string.length > length ? `${string.slice(0, length)}..."` : string;
@@ -14458,9 +14890,9 @@ const exhaustiveGuard = (value) => {
14458
14890
  //#endregion
14459
14891
  //#region src/util/id/uuid/constants.ts
14460
14892
  const NIL = "00000000-0000-0000-0000-000000000000";
14461
- const UUIDV4_REGEX = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
14893
+ const UUIDV4_REGEX = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/iu;
14462
14894
  //#endregion
14463
14895
  //#region src/util/id/uuid/uuidValidateV4.ts
14464
14896
  const uuidValidateV4 = (uuid) => UUIDV4_REGEX.test(uuid);
14465
14897
  //#endregion
14466
- export { AllSpecialValues, ForbiddenError, ID_SEPARATOR, InvalidOperationError, ItemEntityTypePropertyNames, ItemMetadata, ItemMetadataPropertyNames, MENTION_EVERYONE_ID, MENTION_HERE_ID, MENTION_ID_ATTRIBUTE, MENTION_LABEL_ATTRIBUTE, MENTION_TYPE, MENTION_TYPE_ATTRIBUTE, NIL, NotFoundError, NotInitializedError, Operation, RoutePath, SITE_NAME, SURVEY_DISPLAY_NAME, Serializable, UUIDV4_REGEX, applyItemMetadataMixin, capitalize, createItemEntityTypeSchema, css, escapeRegExp, exhaustiveGuard, getIsServer, getMentions, getPropertyNames, getRawData, hrtime, html, isPlainObject, itemMetadataSchema, jsonDateParse, mergeObjectsStrict, now, streamToText, takeOne, toKebabCase, toRawDeep, truncate, uncapitalize, uuidValidateV4 };
14898
+ export { AllSpecialValues, ForbiddenError, ID_SEPARATOR, InvalidOperationError, ItemEntityTypePropertyNames, ItemMetadata, ItemMetadataPropertyNames, MENTION_EVERYONE_ID, MENTION_HERE_ID, MENTION_ID_ATTRIBUTE, MENTION_LABEL_ATTRIBUTE, MENTION_TYPE, MENTION_TYPE_ATTRIBUTE, NIL, NotFoundError, NotInitializedError, Operation, RoutePath, SITE_NAME, SURVEY_DISPLAY_NAME, Serializable, UUIDV4_REGEX, applyItemMetadataMixin, capitalize, createItemEntityTypeSchema, css, escapeRegExp, exhaustiveGuard, getIsServer, getMentions, getPropertyNames, getRawData, getResult, getResultAsync, hrtime, html, isPlainObject, itemMetadataSchema, jsonDateParse, mergeObjectsStrict, noop, normalizeString, now, streamToText, takeOne, toAppError, toKebabCase, toRawDeep, truncate, uncapitalize, uuidValidateV4, withFinalizer, withFinalizerAsync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esposter/shared",
3
- "version": "2.22.0",
3
+ "version": "2.23.0",
4
4
  "description": "A library that contains shared typescript code.",
5
5
  "homepage": "https://github.com/Esposter/Esposter/blob/main/packages/shared#readme",
6
6
  "bugs": {
@@ -33,13 +33,13 @@
33
33
  "typecheck": "tsgo"
34
34
  },
35
35
  "dependencies": {
36
- "@vueuse/core": "^14.2.1",
36
+ "@vueuse/core": "^14.3.0",
37
37
  "node-html-parser": "^7.1.0",
38
- "vue": "^3.5.33",
39
- "zod": "^4.3.6"
38
+ "vue": "^3.5.34",
39
+ "zod": "^4.4.3"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@azure/data-tables": "^13.3.2"
43
43
  },
44
- "gitHead": "405a6743bb0fdae18c07faff17037b9e7a345939"
44
+ "gitHead": "b5172e2824227a4b5e9524a4945f521a70ff5c9d"
45
45
  }