@omegup/msync 0.1.45 → 0.1.46
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/index.d.ts +35 -11
- package/index.esm.js +315 -177
- package/index.js +316 -176
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -39,10 +39,10 @@ interface RawObj {
|
|
|
39
39
|
type raw = readonly rawItem[] | RawObj;
|
|
40
40
|
type StrKey<T> = string & keyof T;
|
|
41
41
|
type Replace<R, V> = Omit<R, StrKey<V>> & V & O;
|
|
42
|
-
type AsLiteral<T extends keyof any | boolean, V = NoUnion<T>> = T extends keyof any ? {} extends {
|
|
42
|
+
type AsLiteral<T extends keyof any | boolean | N, V = NoUnion<T>> = T extends keyof any ? {} extends {
|
|
43
43
|
[K in T]: 1;
|
|
44
44
|
} ? never : V : V;
|
|
45
|
-
type NoUnion<T, V = T> = T extends
|
|
45
|
+
type NoUnion<T, V = T> = T extends T ? ([V] extends [T] ? T : never) : never;
|
|
46
46
|
|
|
47
47
|
type HasJob = {
|
|
48
48
|
job: object | undefined;
|
|
@@ -161,9 +161,22 @@ type D = O<DeletedAt & ID>;
|
|
|
161
161
|
type Model = D & TS;
|
|
162
162
|
type BA = 'before' | 'after';
|
|
163
163
|
type PreDelta<T, K extends BA = BA, E = unknown> = Rec<K, T> & E;
|
|
164
|
-
type
|
|
164
|
+
type DeletedFlags = O<{
|
|
165
|
+
readonly before?: true;
|
|
166
|
+
readonly after?: true;
|
|
167
|
+
}>;
|
|
168
|
+
type Deleted = {
|
|
169
|
+
readonly deleted?: DeletedFlags;
|
|
170
|
+
};
|
|
171
|
+
type Delta<T, K extends BA = BA, E = ID & Deleted> = PreDelta<T | null, K, E> & ({
|
|
172
|
+
after: T;
|
|
173
|
+
} | {
|
|
174
|
+
before: T;
|
|
175
|
+
});
|
|
165
176
|
type Before<T> = PreDelta<T, 'before'>;
|
|
166
|
-
type UBefore<T> = O &
|
|
177
|
+
type UBefore<T> = O & {
|
|
178
|
+
readonly before?: T | null;
|
|
179
|
+
};
|
|
167
180
|
type SnapshotStream<out Q extends O, in out T extends Q> = <Q2 extends O, Result extends Q2>(input: DeltaStages<Q2 | T, T, Result>) => SnapshotStreamExecutionResult<Q | Q2, Result>;
|
|
168
181
|
|
|
169
182
|
declare const ExprRaw: unique symbol;
|
|
@@ -226,7 +239,9 @@ type Accumulator<in Doc, out T, in Ctx = unknown> = {
|
|
|
226
239
|
<DeltaD extends O, I extends U>(f: Field<DeltaD, Doc | Undef<I>>): AccumulatorRaw<T | I, DeltaD, Ctx>;
|
|
227
240
|
};
|
|
228
241
|
};
|
|
229
|
-
type Part<Doc> = Rec<'v', Doc> & RORec<'old', boolean
|
|
242
|
+
type Part<Doc> = Rec<'v', Doc> & RORec<'old', boolean> & {
|
|
243
|
+
readonly deleted?: true | N;
|
|
244
|
+
};
|
|
230
245
|
type DeltaAccumulator<in out Doc, in out T, in out Ctx = unknown> = {
|
|
231
246
|
group: Accumulator<Part<Doc>, T, Ctx>;
|
|
232
247
|
merge: <D, C = Ctx>(a: Expr<T | N, D, C>, b: Expr<T, D, C>) => Expr<T, D, C>;
|
|
@@ -423,18 +438,25 @@ declare const $groupId: <T extends O, V extends O, EE = {}, Out extends Loose<st
|
|
|
423
438
|
declare const $group: <T extends O, Grp extends notArr, V extends O, EE = {}, Out extends Loose<Grp, V, "_grp"> = Loose<Grp, V, "_grp">>(id: Expr<Grp, T>, args: DeltaAccumulators<T, O & Omit<V, Denied<"_grp">>>, out: RWCollection<MergedInput<Out, V, Grp, "_grp", EE> | Strict<Grp, V, "_grp", EE>, Out>, extra: ExprsExact<Omit<EE, IdAndTsKeys | "_grp" | Exclude<keyof V, IdAndTsKeys | "_grp">>, Rec<"_grp", Grp> & Omit<V, IdAndTsKeys | "_grp">>, idPrefix?: string) => StreamRunnerParam<Delta<T>, "out">;
|
|
424
439
|
|
|
425
440
|
type Params<As extends string, LQ extends O, RQ extends O, RE extends RQ, S extends notArr> = {
|
|
426
|
-
localField: Field<LQ, S | Arr<S>>;
|
|
427
441
|
foreignField: Field<RQ, S | Arr<S>>;
|
|
428
442
|
from: SnapshotStreamExecutionResult<RQ, RE>;
|
|
429
443
|
as: AsLiteral<As>;
|
|
430
|
-
}
|
|
444
|
+
} & ({
|
|
445
|
+
localField: Field<LQ, S>;
|
|
446
|
+
toMany?: never;
|
|
447
|
+
} | {
|
|
448
|
+
localField: Field<LQ, Arr<S>>;
|
|
449
|
+
toMany: true;
|
|
450
|
+
});
|
|
431
451
|
declare const $lookup: <As extends string, LQ extends doc, RQ extends O, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE>>;
|
|
432
452
|
declare const $outerLookup: <As extends string, LQ extends doc, RQ extends O, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE | null>>;
|
|
433
453
|
|
|
434
454
|
declare const $matchDelta: <T extends doc>(query: Expr<boolean, T>) => RawStages<unknown, Delta<T>, Delta<T>, unknown, number>;
|
|
455
|
+
declare const matchDelta: <D>() => RawStages<unknown, Delta<D | null>, Delta<D>>;
|
|
435
456
|
|
|
436
457
|
declare const $match: <T extends doc>(query: Expr<boolean, T>) => DeltaStages<T, T, T>;
|
|
437
458
|
|
|
459
|
+
type Omit$1<T, K extends keyof any> = T extends T ? Pick<T, Exclude<keyof T, K>> : never;
|
|
438
460
|
declare const Updater: unique symbol;
|
|
439
461
|
type Updater<in R, in T, out V, in C = unknown> = {
|
|
440
462
|
[Type]?(x: typeof Updater, r: R, t: T, c: C): V;
|
|
@@ -444,14 +466,16 @@ interface UpdaterHKT<R, Old, V, C, K extends keyof Old = keyof Old, V2 extends V
|
|
|
444
466
|
readonly out: Updater<R, Get<Old, I<StrKey<V>, this>, K>, V2[I<StrKey<V>, this>], C>;
|
|
445
467
|
}
|
|
446
468
|
type Get<T, P extends string, K extends keyof T = never> = P extends K ? T[P] : P extends keyof T ? T[P] : undefined;
|
|
447
|
-
declare const set: <V>() => <R, Old extends notArr, C = unknown, K extends keyof Old = never>(fields: MapO<V, UpdaterHKT<R, Old, V, C, K>>) => Updater<R, Old, O & Omit<Old, StrKey<V>> & V, C> & Updater<R, Arr<Old>, Arr<Omit<Old, StrKey<V>> & V>, C>;
|
|
469
|
+
declare const set: <V>() => <R, Old extends notArr, C = unknown, K extends keyof Old = never>(fields: MapO<V, UpdaterHKT<R, Old, V, C, K>>) => Updater<R, Old, O & Omit$1<Old, StrKey<V>> & V, C> & Updater<R, Arr<Old>, Arr<Omit$1<Old, StrKey<V>> & V>, C>;
|
|
448
470
|
declare const to: <R, V, C = unknown, T = unknown>(expr: Expr<V, R, C>) => Updater<R, T, V, C>;
|
|
449
471
|
|
|
450
472
|
declare const $set: <V extends O>() => <R extends O, C = unknown>(fields: MapO<V, UpdaterHKT<R, R, V, C>>) => DeltaStages<O, R, Replace<R, V>, C> & LinStages<O, R, Replace<R, V>, C>;
|
|
451
473
|
declare const $replaceWith: <T extends O, V extends O>(expr: Expr<V, T>) => DeltaStages<O, T, V> & LinStages<O, T, V>;
|
|
452
474
|
|
|
453
475
|
type s$1 = string;
|
|
454
|
-
|
|
476
|
+
type JoinId<K1 extends s$1, K2 extends s$1> = K1 | K2 | readonly [K1, middle: s$1, K2] | readonly [K2, middle: s$1, K1];
|
|
477
|
+
declare const joinIdOf: <K1 extends s$1, K2 extends s$1, D, C = unknown>(k: JoinId<K1, K2>, k1: K1, k1Id: Expr<s$1, D, C>, k2Id: Expr<s$1, D, C>) => Expr<s$1, D, C>;
|
|
478
|
+
declare const $unwindDelta: <K1 extends s$1, T extends doc, K2 extends s$1, U extends doc, N1 extends null = never, N2 extends null = never>(k1: AsLiteral<K1>, k2: AsLiteral<K2>, k: JoinId<K1, K2>, includeNull1?: N1, includeNull2?: N2) => RawStages<unknown, Delta<Rec<K1, T | N1> & Rec<K2, Arr<U>>>, Delta<Rec<K1, T | N1> & Rec<K2, U | N2> & ID>>;
|
|
455
479
|
|
|
456
480
|
type s = string;
|
|
457
481
|
type TOf<TT, K extends string> = doc & Omit<TT, K>;
|
|
@@ -705,5 +729,5 @@ declare const enablePreAndPostImages: <T extends doc>(coll: Collection<T>) => Pr
|
|
|
705
729
|
declare const prepare: (testName?: string) => Promise<MongoClient$1>;
|
|
706
730
|
declare const makeCol: <T extends ID>(docs: readonly OptionalUnlessRequiredId<T>[], database: Db, name?: string) => Promise<Collection<T>>;
|
|
707
731
|
|
|
708
|
-
export { $accumulator, $and, $countDict, $countDictArray, $entries, $eq, $exists, $expr, $getField, $group, $groupId, $groupMerge, $group_, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $insert, $insertPart, $insertX, $keys, $let, $lookup, $lt, $lte, $map, $map0, $map1, $match, $matchDelta, $merge, $merge2, $mergeId, $mergePart, $merge_, $ne, $nin, $nor, $or, $outerLookup, $pushDict, $rand, $reduce, $replaceWith, $set, $simpleInsert, $simpleMerge, $simpleMergePart, $substr, $sum, $type, $unwind, $unwindDelta, Expr, Field, Machine, Type, add, and, anyElementTrue, array, ceil, comp, concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, emptyDelta, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first, firstSure, floor, from, func, getWhenMatched, getWhenMatchedForMerge, gt, gte, inArray, isArray, ite, last, log, lt, lte, makeCol, map1, mapFromPlainDateTime, mapToPlainDateTime, mapVal, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, not, notNull, now, or, padLeft, pair, prepare, rand, range, regex, root, set, setField, single, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
|
|
709
|
-
export type { Accumulators, Arr, AsLiteral, Delta, DeltaAccumulator, DeltaAccumulators, DeltaStages, ExactKeys, ExprHKT, Exprs, ExprsExact, ExprsExactHKT, ExprsPart, ID, Loose, Merge, MergeArgs, MergeInto, MergeMapOArgs, Model, MongoTypeNames, N, NoRaw, NullToOBJ, O, OPick, OPickD, Patch, RONoRaw, RORec, RawStages, Rec, Replace, SnapshotStreamExecutionResult, StrKey, Strict, TS, WriteonlyCollection, doc, jsonPrim, notArr };
|
|
732
|
+
export { $accumulator, $and, $countDict, $countDictArray, $entries, $eq, $exists, $expr, $getField, $group, $groupId, $groupMerge, $group_, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $insert, $insertPart, $insertX, $keys, $let, $lookup, $lt, $lte, $map, $map0, $map1, $match, $matchDelta, $merge, $merge2, $mergeId, $mergePart, $merge_, $ne, $nin, $nor, $or, $outerLookup, $pushDict, $rand, $reduce, $replaceWith, $set, $simpleInsert, $simpleMerge, $simpleMergePart, $substr, $sum, $type, $unwind, $unwindDelta, Expr, Field, Machine, Type, add, and, anyElementTrue, array, ceil, comp, concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, emptyDelta, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first, firstSure, floor, from, func, getWhenMatched, getWhenMatchedForMerge, gt, gte, inArray, isArray, ite, joinIdOf, last, log, lt, lte, makeCol, map1, mapFromPlainDateTime, mapToPlainDateTime, mapVal, matchDelta, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, not, notNull, now, or, padLeft, pair, prepare, rand, range, regex, root, set, setField, single, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
|
|
733
|
+
export type { Accumulators, Arr, AsLiteral, Delta, DeltaAccumulator, DeltaAccumulators, DeltaStages, ExactKeys, ExprHKT, Exprs, ExprsExact, ExprsExactHKT, ExprsPart, ID, JoinId, Loose, Merge, MergeArgs, MergeInto, MergeMapOArgs, Model, MongoTypeNames, N, NoRaw, NullToOBJ, O, OPick, OPickD, Patch, RONoRaw, RORec, RawStages, Rec, Replace, SnapshotStreamExecutionResult, StrKey, Strict, TS, WriteonlyCollection, doc, jsonPrim, notArr };
|