@omegup/msync 0.0.19 → 0.0.20

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.
Files changed (89) hide show
  1. package/index.d.ts +4 -2
  2. package/index.esm.js +13 -7
  3. package/index.js +15 -7
  4. package/package.json +1 -1
  5. package/lib/accumulators/index.d.ts +0 -10
  6. package/lib/aggregate/$merge.d.ts +0 -9
  7. package/lib/aggregate/$upsert.d.ts +0 -9
  8. package/lib/aggregate/group/$group-merge.d.ts +0 -12
  9. package/lib/aggregate/group/index.d.ts +0 -2
  10. package/lib/aggregate/group/utils/sub-group.d.ts +0 -6
  11. package/lib/aggregate/group/utils/sub-merge.d.ts +0 -15
  12. package/lib/aggregate/index.d.ts +0 -8
  13. package/lib/aggregate/lookup/$lookup-delta.d.ts +0 -10
  14. package/lib/aggregate/lookup/$lookup-raw.d.ts +0 -9
  15. package/lib/aggregate/lookup/index.d.ts +0 -11
  16. package/lib/aggregate/match/$match-delta.d.ts +0 -3
  17. package/lib/aggregate/match/$match.d.ts +0 -3
  18. package/lib/aggregate/match/index.d.ts +0 -2
  19. package/lib/aggregate/mongo-stages.d.ts +0 -13
  20. package/lib/aggregate/out.d.ts +0 -34
  21. package/lib/aggregate/prefix.d.ts +0 -33
  22. package/lib/aggregate/raws.d.ts +0 -17
  23. package/lib/aggregate/set/$replace-with-each.d.ts +0 -12
  24. package/lib/aggregate/set/$set-delta.d.ts +0 -5
  25. package/lib/aggregate/set/$set.d.ts +0 -6
  26. package/lib/aggregate/set/index.d.ts +0 -1
  27. package/lib/aggregate/unwind/$unwind-delta.d.ts +0 -5
  28. package/lib/aggregate/unwind/index.d.ts +0 -5
  29. package/lib/boot/boot-simpl.d.ts +0 -14
  30. package/lib/boot/boot.d.ts +0 -36
  31. package/lib/boot/index.d.ts +0 -2
  32. package/lib/expression/arith.d.ts +0 -26
  33. package/lib/expression/array.d.ts +0 -25
  34. package/lib/expression/concat.d.ts +0 -30
  35. package/lib/expression/date.d.ts +0 -17
  36. package/lib/expression/expr-base.d.ts +0 -5
  37. package/lib/expression/index.d.ts +0 -7
  38. package/lib/expression/logic.d.ts +0 -22
  39. package/lib/expression/range.d.ts +0 -6
  40. package/lib/expression/val.d.ts +0 -25
  41. package/lib/field/field.d.ts +0 -25
  42. package/lib/field/index.d.ts +0 -1
  43. package/lib/machine.d.ts +0 -9
  44. package/lib/predicate/$eq.d.ts +0 -13
  45. package/lib/predicate/$expr.d.ts +0 -3
  46. package/lib/predicate/$in.d.ts +0 -2
  47. package/lib/predicate/index.d.ts +0 -3
  48. package/lib/predicate/utils.d.ts +0 -5
  49. package/lib/query/index.d.ts +0 -1
  50. package/lib/query/logic.d.ts +0 -11
  51. package/lib/stream/aggregate.d.ts +0 -7
  52. package/lib/types/accumulator.d.ts +0 -30
  53. package/lib/types/aggregate.d.ts +0 -9
  54. package/lib/types/expr.d.ts +0 -27
  55. package/lib/types/extern.d.ts +0 -3
  56. package/lib/types/index.d.ts +0 -8
  57. package/lib/types/lookup.d.ts +0 -19
  58. package/lib/types/machine.d.ts +0 -17
  59. package/lib/types/predicate.d.ts +0 -14
  60. package/lib/types/query.d.ts +0 -12
  61. package/lib/types/stream.d.ts +0 -67
  62. package/lib/update/index.d.ts +0 -1
  63. package/lib/update/updater.d.ts +0 -19
  64. package/lib/utils/before.d.ts +0 -3
  65. package/lib/utils/coll.d.ts +0 -5
  66. package/lib/utils/db-indexes.d.ts +0 -4
  67. package/lib/utils/guard.d.ts +0 -18
  68. package/lib/utils/index.d.ts +0 -3
  69. package/lib/utils/json.d.ts +0 -9
  70. package/lib/utils/log.d.ts +0 -1
  71. package/lib/utils/map-object.d.ts +0 -41
  72. package/lib/utils/merge/combiners.d.ts +0 -6
  73. package/lib/utils/merge/index.d.ts +0 -2
  74. package/lib/utils/merge/merge.d.ts +0 -7
  75. package/lib/utils/merge/next-winner.d.ts +0 -3
  76. package/lib/utils/merge/types.d.ts +0 -19
  77. package/lib/utils/merge/utils.d.ts +0 -4
  78. package/lib/utils/tear-down.d.ts +0 -2
  79. package/lib/watch.d.ts +0 -15
  80. package/test/mongodb.d.ts +0 -9
  81. package/test/uri.d.ts +0 -1
  82. package/types/class.d.ts +0 -1
  83. package/types/extern.d.ts +0 -3
  84. package/types/global.d.ts +0 -44
  85. package/types/hkt.d.ts +0 -56
  86. package/types/index.d.ts +0 -6
  87. package/types/json.d.ts +0 -54
  88. package/types/mongo.d.ts +0 -24
  89. package/types/view.d.ts +0 -35
package/index.d.ts CHANGED
@@ -486,7 +486,9 @@ type ND = {
486
486
  readonly deletedAt?: null;
487
487
  };
488
488
  type Merge<T extends ID> = (T & ND & TS) | Del;
489
- declare const $upsert: <T extends doc>(out: RWCollection<Merge<T>>) => StreamRunnerParam<Delta<T>, "out">;
489
+ declare const $insertX: <T extends doc, D extends O>(out: RWCollection<Merge<T>>, expr: Expr<T, D>, map: (x: Expr<T & ND & TS, D>) => Expr<Merge<T>, D>) => StreamRunnerParam<D, "out">;
490
+ declare const $simpleInsert: <T extends doc>(out: RWCollection<Merge<T>>) => StreamRunnerParam<T, "out">;
491
+ declare const $insert: <T extends doc>(out: RWCollection<Merge<T>>) => StreamRunnerParam<Delta<T>, "out">;
490
492
 
491
493
  type DeltaPipe<Q extends O, T extends Q, F extends HKT<O2>, G extends HKT<O3>> = {
492
494
  with: <Q2 extends O, V extends Q2>(map: (a: Stream<Q, T, F, G>) => Stream<Q | Q2, V, F, G>) => DeltaPipe<Q | Q2, V, F, G>;
@@ -653,4 +655,4 @@ declare const enablePreAndPostImages: <T extends doc>(coll: Collection<T>) => Pr
653
655
  declare const prepare: (testName?: string) => Promise<MongoClient$1>;
654
656
  declare const makeCol: <T extends ID>(docs: readonly OptionalUnlessRequiredId<T>[], database: Db, name?: string) => Promise<Collection<T>>;
655
657
 
656
- export { $accumulator, $and, $countDict, $entries, $eq, $expr, $getField, $group, $groupId, $groupMerge, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $keys, $let, $lookup, $lt, $lte, $map, $map1, $match, $matchDelta, $merge, $merge_, $ne, $nin, $nor, $or, $pushDict, $rand, $replaceWith, $set, $simpleMerge, $sum, $unwind, $unwindDelta, $upsert, type Accumulators, type Arr, type AsLiteral, type Delta, type DeltaAccumulator, type DeltaAccumulators, Expr, type ExprHKT, type Exprs, type ExprsExact, type ExprsExactHKT, type ExprsPart, Field, type ID, type Loose, Machine, type Merge, type MergeArgs, type MergeInto, type MergeMapOArgs, type Model, type N, type NoRaw, type O, type OPick, type OPickD, type RONoRaw, type RORec, type RawStages, type Rec, type Replace, type SnapshotStreamExecutionResult, type StrKey, type Strict, type TS, Type, type WriteonlyCollection, add, and, array, ceil, comp, concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, type doc, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first, firstSure, floor, from, func, gt, gte, inArray, isArray, ite, last, log, lt, lte, makeCol, map1, mapVal, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, type notArr, notNull, now, or, pair, prepare, rand, range, root, set, setField, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
658
+ export { $accumulator, $and, $countDict, $entries, $eq, $expr, $getField, $group, $groupId, $groupMerge, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $insert, $insertX, $keys, $let, $lookup, $lt, $lte, $map, $map1, $match, $matchDelta, $merge, $merge_, $ne, $nin, $nor, $or, $pushDict, $rand, $replaceWith, $set, $simpleInsert, $simpleMerge, $sum, $unwind, $unwindDelta, type Accumulators, type Arr, type AsLiteral, type Delta, type DeltaAccumulator, type DeltaAccumulators, Expr, type ExprHKT, type Exprs, type ExprsExact, type ExprsExactHKT, type ExprsPart, Field, type ID, type Loose, Machine, type Merge, type MergeArgs, type MergeInto, type MergeMapOArgs, type Model, type N, type NoRaw, type O, type OPick, type OPickD, type RONoRaw, type RORec, type RawStages, type Rec, type Replace, type SnapshotStreamExecutionResult, type StrKey, type Strict, type TS, Type, type WriteonlyCollection, add, and, array, ceil, comp, concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, type doc, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first, firstSure, floor, from, func, gt, gte, inArray, isArray, ite, last, log, lt, lte, makeCol, map1, mapVal, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, type notArr, notNull, now, or, pair, prepare, rand, range, root, set, setField, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
package/index.esm.js CHANGED
@@ -1079,18 +1079,14 @@ const $merge = () => (out, keys) => $mergeId()(out, keys, assertNotNull$1(root()
1079
1079
  .expr()));
1080
1080
  const assertNotNull$1 = (expr) => expr;
1081
1081
 
1082
- const $upsert = (out) => ({
1082
+ const $insertX = (out, expr, map) => ({
1083
1083
  teardown: c => c({
1084
1084
  collection: out,
1085
1085
  method: 'updateMany',
1086
1086
  params: [{}, [{ $set: { deletedAt: '$$NOW', touchedAt: '$$CLUSTER_TIME' } }]],
1087
1087
  }),
1088
1088
  raw: () => {
1089
- const replacer = ite(eq(root().of('after').expr())(nil), field({
1090
- deletedAt: ['deletedAt', current],
1091
- _id: ['_id', assertNotNull(root().of('before').of('_id').expr())],
1092
- touchedAt: ['touchedAt', current],
1093
- }), mergeObjects(assertNotNull(root().of('after').expr()), field({ deletedAt: ['deletedAt', nil], touchedAt: ['touchedAt', current] })));
1089
+ const replacer = map(mergeObjects(expr, field({ deletedAt: ['deletedAt', nil], touchedAt: ['touchedAt', current] })));
1094
1090
  return link()
1095
1091
  .with($replaceWith_(replacer))
1096
1092
  .with($merge_({
@@ -1101,6 +1097,12 @@ const $upsert = (out) => ({
1101
1097
  })).stages;
1102
1098
  },
1103
1099
  });
1100
+ const $simpleInsert = (out) => $insertX(out, root().expr(), id$1);
1101
+ const $insert = (out) => $insertX(out, assertNotNull(root().of('after').expr()), x => ite(eq(root().of('after').expr())(nil), field({
1102
+ deletedAt: ['deletedAt', current],
1103
+ _id: ['_id', assertNotNull(root().of('before').of('_id').expr())],
1104
+ touchedAt: ['touchedAt', current],
1105
+ }), x));
1104
1106
  const assertNotNull = (expr) => expr;
1105
1107
 
1106
1108
  const T = (s) => `Timestamp(${parseInt(`${BigInt(s) / 2n ** 32n}`)}, ${parseInt(`${BigInt(s) % 2n ** 32n}`)})`;
@@ -1257,6 +1259,8 @@ const executes$1 = (view, input, streamName) => {
1257
1259
  ]).then(ts => next(step2_5(ts), 'handle teardown'));
1258
1260
  const step2_5 = ([same, exists]) => async () => {
1259
1261
  const handleTeardown = async (last) => {
1262
+ if (!last.data.teardown)
1263
+ return;
1260
1264
  const { collection: c, method: m, params: p } = last.data.teardown;
1261
1265
  const { collection, method, params } = {
1262
1266
  collection: db.collection(c),
@@ -1411,6 +1415,8 @@ const executes = (view, input, streamName) => {
1411
1415
  ]).then(ts => next(step2_5(ts), 'handle teardown'));
1412
1416
  const step2_5 = ([same, exists]) => async () => {
1413
1417
  const handleTeardown = async (last) => {
1418
+ if (!last.data.teardown)
1419
+ return;
1414
1420
  const { collection: c, method: m, params: p } = last.data.teardown;
1415
1421
  const { collection, method, params } = {
1416
1422
  collection: db.collection(c),
@@ -1735,4 +1741,4 @@ const makeCol = async (docs, database, name) => {
1735
1741
  }
1736
1742
  };
1737
1743
 
1738
- export { $accumulator, $and, $countDict, $entries, $eq, $expr, $getField, $group, $groupId, $groupMerge, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $keys, $let, $lookup, $lt, $lte, $map, $map1, $match, $matchDelta, $merge, $merge_, $ne, $nin, $nor, $or, $pushDict, $rand, $replaceWith, $set, $simpleMerge, $sum, $unwind, $unwindDelta, $upsert, Field, Machine, add, and, array, ceil, comp, concat$1 as concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first$1 as first, firstSure, floor, from, func, gt, gte, inArray, isArray, ite, last, log, lt, lte, makeCol, map1, mapVal, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, notNull, now, or, pair, prepare, rand, range, root, set, setField, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
1744
+ export { $accumulator, $and, $countDict, $entries, $eq, $expr, $getField, $group, $groupId, $groupMerge, $gt, $gtTs, $gte, $gteTs, $ifNull, $in, $insert, $insertX, $keys, $let, $lookup, $lt, $lte, $map, $map1, $match, $matchDelta, $merge, $merge_, $ne, $nin, $nor, $or, $pushDict, $rand, $replaceWith, $set, $simpleInsert, $simpleMerge, $sum, $unwind, $unwindDelta, Field, Machine, add, and, array, ceil, comp, concat$1 as concat, concatArray, createIndex, ctx, current, dateAdd, dateDiff, dateLt, datePart, dayAndMonthPart, divide, enablePreAndPostImages, eq, eqTyped, except, exprMapVal, field, fieldF, fieldM, filter, filterDefined, first$1 as first, firstSure, floor, from, func, gt, gte, inArray, isArray, ite, last, log, lt, lte, makeCol, map1, mapVal, max, maxDate, mergeExact, mergeExact0, mergeExpr, mergeObjects, minDate, monthPart, multiply, ne, nil, noop, notNull, now, or, pair, prepare, rand, range, root, set, setField, size, slice, sortArray, staging, startOf, str, sub, subtract, to, toInt, val, weekPart, wrap, year };
package/index.js CHANGED
@@ -1081,18 +1081,14 @@ const $merge = () => (out, keys) => $mergeId()(out, keys, assertNotNull$1(root()
1081
1081
  .expr()));
1082
1082
  const assertNotNull$1 = (expr) => expr;
1083
1083
 
1084
- const $upsert = (out) => ({
1084
+ const $insertX = (out, expr, map) => ({
1085
1085
  teardown: c => c({
1086
1086
  collection: out,
1087
1087
  method: 'updateMany',
1088
1088
  params: [{}, [{ $set: { deletedAt: '$$NOW', touchedAt: '$$CLUSTER_TIME' } }]],
1089
1089
  }),
1090
1090
  raw: () => {
1091
- const replacer = ite(eq(root().of('after').expr())(nil), field({
1092
- deletedAt: ['deletedAt', current],
1093
- _id: ['_id', assertNotNull(root().of('before').of('_id').expr())],
1094
- touchedAt: ['touchedAt', current],
1095
- }), mergeObjects(assertNotNull(root().of('after').expr()), field({ deletedAt: ['deletedAt', nil], touchedAt: ['touchedAt', current] })));
1091
+ const replacer = map(mergeObjects(expr, field({ deletedAt: ['deletedAt', nil], touchedAt: ['touchedAt', current] })));
1096
1092
  return link()
1097
1093
  .with($replaceWith_(replacer))
1098
1094
  .with($merge_({
@@ -1103,6 +1099,12 @@ const $upsert = (out) => ({
1103
1099
  })).stages;
1104
1100
  },
1105
1101
  });
1102
+ const $simpleInsert = (out) => $insertX(out, root().expr(), id$1);
1103
+ const $insert = (out) => $insertX(out, assertNotNull(root().of('after').expr()), x => ite(eq(root().of('after').expr())(nil), field({
1104
+ deletedAt: ['deletedAt', current],
1105
+ _id: ['_id', assertNotNull(root().of('before').of('_id').expr())],
1106
+ touchedAt: ['touchedAt', current],
1107
+ }), x));
1106
1108
  const assertNotNull = (expr) => expr;
1107
1109
 
1108
1110
  const T = (s) => `Timestamp(${parseInt(`${BigInt(s) / 2n ** 32n}`)}, ${parseInt(`${BigInt(s) % 2n ** 32n}`)})`;
@@ -1259,6 +1261,8 @@ const executes$1 = (view, input, streamName) => {
1259
1261
  ]).then(ts => next(step2_5(ts), 'handle teardown'));
1260
1262
  const step2_5 = ([same, exists]) => async () => {
1261
1263
  const handleTeardown = async (last) => {
1264
+ if (!last.data.teardown)
1265
+ return;
1262
1266
  const { collection: c, method: m, params: p } = last.data.teardown;
1263
1267
  const { collection, method, params } = {
1264
1268
  collection: db.collection(c),
@@ -1413,6 +1417,8 @@ const executes = (view, input, streamName) => {
1413
1417
  ]).then(ts => next(step2_5(ts), 'handle teardown'));
1414
1418
  const step2_5 = ([same, exists]) => async () => {
1415
1419
  const handleTeardown = async (last) => {
1420
+ if (!last.data.teardown)
1421
+ return;
1416
1422
  const { collection: c, method: m, params: p } = last.data.teardown;
1417
1423
  const { collection, method, params } = {
1418
1424
  collection: db.collection(c),
@@ -1753,6 +1759,8 @@ exports.$gte = $gte;
1753
1759
  exports.$gteTs = $gteTs;
1754
1760
  exports.$ifNull = $ifNull;
1755
1761
  exports.$in = $in;
1762
+ exports.$insert = $insert;
1763
+ exports.$insertX = $insertX;
1756
1764
  exports.$keys = $keys;
1757
1765
  exports.$let = $let;
1758
1766
  exports.$lookup = $lookup;
@@ -1772,11 +1780,11 @@ exports.$pushDict = $pushDict;
1772
1780
  exports.$rand = $rand;
1773
1781
  exports.$replaceWith = $replaceWith;
1774
1782
  exports.$set = $set;
1783
+ exports.$simpleInsert = $simpleInsert;
1775
1784
  exports.$simpleMerge = $simpleMerge;
1776
1785
  exports.$sum = $sum;
1777
1786
  exports.$unwind = $unwind;
1778
1787
  exports.$unwindDelta = $unwindDelta;
1779
- exports.$upsert = $upsert;
1780
1788
  exports.Field = Field;
1781
1789
  exports.Machine = Machine;
1782
1790
  exports.add = add;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "module": "index.esm.js",
4
4
  "typings": "index.d.ts",
5
5
  "name": "@omegup/msync",
6
- "version": "0.0.19",
6
+ "version": "0.0.20",
7
7
  "dependencies": {
8
8
  "dayjs": "^1.11.9",
9
9
  "dotenv": "^16.3.1",
@@ -1,10 +0,0 @@
1
- import type { AppMap, Arr, N, O, Rec } from '../../types';
2
- import type { ExprHKT } from '../expression/concat';
3
- import { type NoRaw } from '../expression/val';
4
- import type { DeltaAccumulator, Expr, Part } from '../types';
5
- export declare const $sum: <D extends O, C = unknown>(expr: Expr<number | N, D, C>) => DeltaAccumulator<D, number, C>;
6
- export declare const $accumulator: <D, T, Ctx, A extends readonly unknown[]>(init: () => NoRaw<T>, accumulateArgs: AppMap<ExprHKT<Part<D>, Ctx>, A>, accumulate: (a: NoRaw<T>, ...args: NoRaw<A>) => NoRaw<T>, merge: (...args: NoRaw<[T | N, T]>) => NoRaw<T>) => DeltaAccumulator<D, T, Ctx>;
7
- export declare const $countDict: <D extends O, C = unknown>(expr: Expr<string, D, C>) => DeltaAccumulator<D, Rec<string, number>, C>;
8
- export declare const $pushDict: <D extends O, V, C = unknown>(key: Expr<string, D, C>, value: Expr<V, D, C>) => DeltaAccumulator<D, Rec<string, Rec<"0" | "1", Arr<V>>>, C>;
9
- export declare const $keys: <D extends O, C = unknown>(expr: Expr<Rec<string, number>, D, C>) => Expr<Arr<string>, D, C>;
10
- export declare const $entries: <D extends O, V, C = unknown>(expr: Expr<Rec<string, Rec<"1" | "0", Arr<V>>>, D, C>) => Expr<Arr<Rec<"k", string> & Rec<"v", V>>, D, C>;
@@ -1,9 +0,0 @@
1
- import type { OPick, RWCollection } from '../../types';
2
- import type { ID, N, O, Rec, Replace, StrKey, doc } from '../../types/json';
3
- import type { Delta, StreamRunnerParam, TS } from '../types';
4
- import { type ExactKeys } from '../utils/map-object';
5
- type Allowed<K extends string> = Exclude<K, keyof (TS & ID)>;
6
- type Patch<V, KK extends StrKey<V>> = ((OPick<V, Allowed<KK>> & ID) | (Rec<Allowed<KK>, N> & ID)) & TS;
7
- export declare const $simpleMerge: <V extends O>() => <KK extends StrKey<V>, Out extends doc, E = unknown>(out: RWCollection<Out | Replace<Out, Patch<V, KK>>, Out>, keys: ExactKeys<Allowed<KK>>) => StreamRunnerParam<OPick<V, Allowed<KK>> & ID & E, "out">;
8
- export declare const $merge: <V extends O>() => <KK extends StrKey<V>, Out extends doc>(out: RWCollection<Out | Replace<Out, Patch<V, KK>>, Out>, keys: ExactKeys<Allowed<KK>>) => StreamRunnerParam<Delta<OPick<V, Allowed<KK>> & ID>, "out">;
9
- export {};
@@ -1,9 +0,0 @@
1
- import type { RWCollection } from '../../types';
2
- import type { ID, doc } from '../../types/json';
3
- import type { Del, Delta, StreamRunnerParam, TS } from '../types';
4
- type ND = {
5
- readonly deletedAt?: null;
6
- };
7
- export type Merge<T extends ID> = (T & ND & TS) | Del;
8
- export declare const $upsert: <T extends doc>(out: RWCollection<Merge<T>>) => StreamRunnerParam<Delta<T>, "out">;
9
- export {};
@@ -1,12 +0,0 @@
1
- import type { RWCollection, WriteonlyCollection } from '../../../types';
2
- import type { AsLiteral, ID, O, Rec, Replace, doc, notArr } from '../../../types/json';
3
- import { type ExprsExact } from '../../expression/concat';
4
- import type { Delta, DeltaAccumulators, Expr, StreamRunnerParam, TS } from '../../types';
5
- import type { MergeInto } from '../out';
6
- import { type Extra, type IdAndTsKeys, type Loose, type Strict, type V_Grp } from './utils/sub-merge';
7
- type Denied<GID = never> = keyof (TS & ID) | GID;
8
- type GI<GG> = Exclude<GG, keyof TS>;
9
- export declare const $groupMerge: <T extends O, Grp extends notArr, V extends O, GG extends string, EE = {}, Out extends Loose<Grp, V, GG> = Loose<Grp, V, GG>>(id: Expr<Grp, T>, args: DeltaAccumulators<T, O & Omit<V, Denied<GI<GG>>>>, out: MergeInto<Strict<Grp, V, GG, EE>, Out, WriteonlyCollection<Replace<Out, Strict<Grp, V, GG, EE>>>>, gid: AsLiteral<GI<GG>>, extra: ExprsExact<Extra<EE, V, GG>, V_Grp<V, GG, Grp>>, idPrefix?: string) => StreamRunnerParam<Delta<T>, "out">;
10
- export declare const $groupId: <T extends O, V extends O, EE = {}, Out extends Loose<string, V, "_id"> = Loose<string, V, "_id">>(id: Expr<string, T>, args: DeltaAccumulators<T, O & Omit<V, Denied>>, out: RWCollection<Replace<Out, Strict<string, V, "_id", EE>>, Out>, extra: ExprsExact<Omit<EE, IdAndTsKeys | keyof Omit<V, IdAndTsKeys>>, doc & Omit<V, IdAndTsKeys>>) => StreamRunnerParam<Delta<T>, "out">;
11
- export 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<Strict<Grp, V, "_grp", EE>, Out>, extra: ExprsExact<Omit<EE, IdAndTsKeys | "_grp" | keyof Omit<V, IdAndTsKeys | "_grp">>, Rec<"_grp", Grp> & Omit<V, IdAndTsKeys | "_grp">>, idPrefix?: string) => StreamRunnerParam<Delta<T>, "out">;
12
- export {};
@@ -1,2 +0,0 @@
1
- export { $groupMerge, $groupId, $group } from './$group-merge';
2
- export type { Loose, Strict } from './utils/sub-merge';
@@ -1,6 +0,0 @@
1
- import type { O, RORec, Rec } from '../../../../types';
2
- import { type ExprsExact } from '../../../expression/concat';
3
- import type { Delta, Expr, RawStages } from '../../../types';
4
- import type { DeltaAccumulators } from '../../../types/accumulator';
5
- export type WithItem<V, Grp> = Rec<'_id', Grp> & Rec<'item', O<V>>;
6
- export declare const subGroup: <T extends O, Grp, V extends O, GID extends string>(id: Expr<Grp, T>, args: DeltaAccumulators<T, V>, addGrp: <D extends Rec<"_id", Grp>>(src: ExprsExact<V, D>) => ExprsExact<RORec<GID, Grp> & V, D>) => RawStages<unknown, Delta<T>, Rec<GID, Grp> & V>;
@@ -1,15 +0,0 @@
1
- import type { AsLiteral, ID, O, Rec, Replace, WriteonlyCollection, notArr } from '../../../../types';
2
- import { type ExprsExact } from '../../../expression/concat';
3
- import type { RawStages, TS } from '../../../types';
4
- import type { DeltaAccumulators } from '../../../types/accumulator';
5
- import { type MergeInto } from '../../out';
6
- type GI<GG> = Exclude<GG, keyof TS>;
7
- export type IdAndTsKeys = keyof (TS & ID);
8
- type V<VV, GG extends string> = Omit<VV, IdAndTsKeys | GI<GG>>;
9
- export type Prepare<Grp, GG extends string> = TS & ID & Rec<GI<GG>, Grp>;
10
- export type Loose<Grp, VV, GG extends string> = Prepare<Grp, GG> & Partial<V<VV, GG>>;
11
- export type Strict<Grp, VV, GG extends string, EE> = Prepare<Grp, GG> & V<VV, GG> & Omit<EE, IdAndTsKeys | GI<GG> | keyof V<VV, GG>>;
12
- export type V_Grp<VV, GG extends string, Grp> = Rec<GI<GG>, Grp> & V<VV, GG>;
13
- export type Extra<EE, VV, GG extends string> = Omit<EE, IdAndTsKeys | GI<GG> | keyof V<VV, GG>>;
14
- export declare const subMerge: <T extends O, Grp extends notArr, VV extends O, GG extends string, EE = {}, Out extends Loose<Grp, VV, GG> = Loose<Grp, VV, GG>>(args: DeltaAccumulators<T, V<VV, GG>>, out: MergeInto<Strict<Grp, VV, GG, EE>, Out, WriteonlyCollection<Replace<Out, Strict<Grp, VV, GG, EE>>>>, gid: AsLiteral<GI<GG>>, extra: ExprsExact<Extra<EE, VV, GG>, V_Grp<VV, GG, Grp>>, idPrefix: string, first: boolean) => RawStages<unknown, V_Grp<VV, GG, Grp>, "out">;
15
- export {};
@@ -1,8 +0,0 @@
1
- export * from './group';
2
- export * from './lookup';
3
- export * from './match';
4
- export * from './set';
5
- export * from './unwind';
6
- export * from './$merge';
7
- export * from './$upsert';
8
- export * from './out';
@@ -1,10 +0,0 @@
1
- import type { AsLiteral, ID, N, O, Rec } from '../../../types';
2
- import { Field } from '../../field';
3
- import type { BA, Before, Delta, RawStages, TStages, UBefore } from '../../types';
4
- type s = string;
5
- type Both<K1 extends s, LE, KK2 extends s, RE> = Delta<Rec<K1, LE> & Rec<Exclude<KK2, BA | K1>, RE> & ID>;
6
- export declare const $lookupDelta: <LQ extends O, LE extends LQ & O, RQ extends O, RE extends RQ, BRB extends UBefore<RQ>, RS extends UBefore<RQ>, S, K1 extends s, KK2 extends s>({ field1, field2 }: {
7
- field1: Field<LQ, S | N>;
8
- field2: Field<RQ, S | N>;
9
- }, { coll, exec, input }: TStages<RS, UBefore<RQ>, BRB, Before<RE>>, k1: AsLiteral<K1>, k2: AsLiteral<Exclude<KK2, BA | K1>>, k: K1 | Exclude<KK2, BA | K1> | false) => RawStages<unknown, Delta<LE>, Both<K1, LE, KK2, RE>>;
10
- export {};
@@ -1,9 +0,0 @@
1
- import type { App, AsLiteral, HKT, ID, O, Rec } from '../../../types';
2
- import { type Field } from '../../field';
3
- import type { Before, RawStages, TStages } from '../../types';
4
- type s = string;
5
- export declare const $lookupRaw: <LQ extends O, LE extends LQ & ID, RQ extends O, RE extends RQ & ID, BRB extends Before<RQ>, RS, S, As extends s>({ field1, field2 }: {
6
- field1: Field<LQ, S>;
7
- field2: Field<RQ, S>;
8
- }, { coll, exec, input }: TStages<RS, Before<RQ>, BRB, Before<RE>>, k2: AsLiteral<As>, k: "left" | "right" | false) => <F extends HKT<O, O>>(f: <T extends O>() => Field<App<F, T>, T>) => RawStages<App<F, LQ>, App<F, LE>, App<F, LE & Rec<As, RE> & ID>>;
9
- export {};
@@ -1,11 +0,0 @@
1
- import type { AsLiteral, O, RORec, doc, notArr } from '../../../types';
2
- import { type Field } from '../../field';
3
- import type { SnapshotStream, SnapshotStreamExecutionResult } from '../../types/stream';
4
- type Params<As extends string, LQ extends O, RQ extends O, RE extends RQ, S extends notArr> = {
5
- localField: Field<LQ, S>;
6
- foreignField: Field<RQ, S>;
7
- from: SnapshotStreamExecutionResult<RQ, RE>;
8
- as: AsLiteral<As>;
9
- };
10
- export 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>>;
11
- export {};
@@ -1,3 +0,0 @@
1
- import type { doc } from '../../../types';
2
- import type { Delta, Expr } from '../../types';
3
- export declare const $matchDelta: <T extends doc>(query: Expr<boolean, T>) => import("../../types").RawStages<unknown, Delta<T>, Delta<T>, unknown, number>;
@@ -1,3 +0,0 @@
1
- import type { doc } from '../../../types';
2
- import type { DeltaStages, Expr } from '../../types';
3
- export declare const $match: <T extends doc>(query: Expr<boolean, T>) => DeltaStages<T, T, T>;
@@ -1,2 +0,0 @@
1
- export { $matchDelta } from './$match-delta';
2
- export { $match } from './$match';
@@ -1,13 +0,0 @@
1
- import type { Arr, O, Rec } from '../../types';
2
- import type { Accumulators, Expr, LookupArgs, Query, RawStages } from '../types';
3
- import type { Updater } from '../update/updater';
4
- export * from './raws';
5
- type s = string;
6
- export declare const $match_: <Q, T extends Q & O, C = unknown>(query?: Query<T, C>) => RawStages<O<T>, T, T, C>;
7
- export declare const $set_: <Q, T extends Q & O, V extends Q & O, C = unknown>(updater: Updater<T, T, V, C>) => RawStages<O<Q>, T, V, C, 1>;
8
- export declare const $replaceWith_: <T extends O, V extends O, C = unknown>(expr: Expr<V, T, C>) => RawStages<O, T, V, C, 1>;
9
- export declare const $unwind_: <T extends O, K extends s, U>(k: K) => RawStages<O<T>, T & Rec<K, Arr<U>>, T & Rec<K, U>>;
10
- export declare const $group_: <V extends O>() => <ID, T extends O, C = unknown>(id: Expr<ID, T, C>, args: Accumulators<T, V, C>) => RawStages<O, T, Rec<"_id", ID> & V, C, 1>;
11
- export declare const $documents_: <T extends O, C>(docs: Expr<Arr<T>, unknown, C>) => RawStages<unknown, null, T, C, 1>;
12
- export declare const $project_: <T extends O, K extends import("../..").StrKey<T>>(projection: import("../utils/map-object").ExactKeys<K>) => RawStages<T, T, T, unknown, 1>;
13
- export declare const $simpleLookup_: <T extends O, U extends O, R, K extends s, Ctx, C = unknown, S = string>(args: LookupArgs<T, U, R, K, Ctx, C, S>) => RawStages<O<T>, T, T & Rec<K, Arr<U>>, C, 1>;
@@ -1,34 +0,0 @@
1
- import type { O, RWCollection, ReadonlyCollection, Replace, jsonItem } from '../../types';
2
- import type { ExprsExact } from '../expression/concat';
3
- import { type Field } from '../field';
4
- import type { RawStages } from '../types';
5
- export type MergeInto<T extends O, Out extends O, E = unknown> = {
6
- whenNotMatched: 'insert';
7
- into: RWCollection<T, Out>;
8
- } | {
9
- whenNotMatched: 'discard' | 'fail';
10
- into: ReadonlyCollection<Out> & E;
11
- };
12
- export type MergeArgs<T extends O, Out extends O, Ctx, In extends O> = {
13
- on: Field<T, jsonItem> & Field<Out, jsonItem>;
14
- } & MergeInto<T, Out> & (({
15
- stages?: undefined;
16
- } & ({
17
- whenMatched: 'keepExisting' | 'fail';
18
- } | {
19
- whenMatched: 'replace';
20
- into: RWCollection<T, Out>;
21
- } | {
22
- whenMatched: 'merge';
23
- into: RWCollection<Replace<Out, T>, Out>;
24
- })) | {
25
- stages: true;
26
- into: RWCollection<In, Out>;
27
- whenMatched: RawStages<unknown, Out, In>;
28
- } | {
29
- stages: 'ctx';
30
- vars: ExprsExact<Ctx, T>;
31
- into: RWCollection<In, Out>;
32
- whenMatched: RawStages<unknown, Out, In, Ctx>;
33
- });
34
- export declare const $merge_: <T extends O, Out extends O = T, Ctx = unknown, In extends O = Out>({ into, on, whenNotMatched, ...notMatched }: MergeArgs<T, Out, Ctx, In>) => RawStages<unknown, T, "out", unknown, number>;
@@ -1,33 +0,0 @@
1
- import type { App, HKT, O2, O3, O, RawObj } from '../../types';
2
- import type { Delta, DeltaStages, FRawStages, RawStages, Stream, TStages } from '../types';
3
- import type { Equal } from '../utils/guard';
4
- type n = number;
5
- export declare const asStages: <Q, T extends Q, V extends Q, C = unknown, M extends n = number>(x: readonly RawObj[]) => RawStages<Q, T, V, C, M>;
6
- export declare const same: <T extends Dom, V extends Dom, F extends HKT<Dom, Q>, Dom = unknown, Q = unknown, C = unknown, M extends n = number>(_: Equal<Dom, T, V>) => RawStages<Q, App<F, T>, App<F, V>, C, M>;
7
- export declare const concatStages: <Q, T extends Q, V extends Q, W extends Q, C, M extends n = number>(part1: RawStages<Q, T, V, C, M>, part2: RawStages<Q, V, W, C, M>) => RawStages<Q, T, W, C, M>;
8
- export declare const concatFStages: <Q, T extends Q & O, V extends Q & O, W extends Q & O, C, M extends n = number>(part1: FRawStages<Q, T, V, C, M>, part2: FRawStages<Q, V, W, C, M>) => FRawStages<Q, T, W, C, M>;
9
- export declare const concatDelta: <Q extends O, T extends Q, V extends Q, W extends Q>(part1: DeltaStages<Q, T, V>, part2: DeltaStages<Q, V, W>) => DeltaStages<Q, T, W>;
10
- type Concat<out Q, in T extends Q, out V extends Q, in out C, in out M extends n = n> = {
11
- with: <Q2, W extends Q2>(extra: RawStages<Q | Q2, V, W, C, M>) => Concat<Q | Q2, T, W, C, M>;
12
- stages: RawStages<Q, T, V, C, M>;
13
- };
14
- type FConcat<out Q, in T extends Q & O, out V extends Q & O, in out C, in out M extends n = n> = {
15
- with: <Q2, W extends Q2 & O>(extra: FRawStages<Q | Q2, V, W, C, M>) => FConcat<Q | Q2, T, W, C, M>;
16
- stages: FRawStages<Q, T, V, C, M>;
17
- };
18
- export type DeltaPipe<Q extends O, T extends Q, F extends HKT<O2>, G extends HKT<O3>> = {
19
- with: <Q2 extends O, V extends Q2>(map: (a: Stream<Q, T, F, G>) => Stream<Q | Q2, V, F, G>) => DeltaPipe<Q | Q2, V, F, G>;
20
- then: <Q2 extends O, V extends Q2>(next: App<G, [Q2 | T, T, V]>) => DeltaPipe<Q | Q2, V, F, G>;
21
- get: () => App<F, [Q, T]>;
22
- };
23
- export declare const pipe: <Q extends O, S extends Q, T extends Q, F extends HKT<O2>, G extends HKT<O3>>(stream: Stream<Q, S, F, G>, s: App<G, [Q, S, T]>, concat: <Q_1 extends O, T_1 extends Q_1, V extends Q_1, W extends Q_1>(part1: App<G, [Q_1, T_1, V]>, part2: App<G, [Q_1, V, W]>) => App<G, [Q_1, T_1, W]>, empty: <T_2 extends Q>() => App<G, [Q, T_2, T_2]>) => DeltaPipe<Q, T, F, G>;
24
- type Link = <T, C = unknown, M extends n = n>() => Concat<T, T, T, C, M>;
25
- type FLink = <T extends O, C = unknown, M extends n = n>() => FConcat<T, T, T, C, M>;
26
- export declare const link: Link;
27
- export declare const flink: FLink;
28
- export declare const emptyDelta: <T extends O>() => {
29
- delta: RawStages<Delta<T>, Delta<T>, Delta<T>, unknown, number>;
30
- raw: <F extends HKT<O>>() => RawStages<App<F, T>, App<F, T>, App<F, T>, unknown, number>;
31
- };
32
- export declare const concatTStages: <S, Q, B extends Q, T extends Q, V extends Q>({ coll, exec, input }: TStages<S, Q, B, T>, stages: RawStages<Q, T, V>) => TStages<S, Q, B, V>;
33
- export {};
@@ -1,17 +0,0 @@
1
- import type { App, Arr, ConstHKT, HKT, O, Rec, StrKey, rawItem } from '../../types';
2
- import type { ExprsExact } from '../expression/concat';
3
- import { type Field } from '../field';
4
- import type { Accumulators, Expr, FRawStages, LookupArgs, Query, RawStages } from '../types';
5
- import type { Updater } from '../update/updater';
6
- import { type ExactKeys } from '../utils/map-object';
7
- type s = string;
8
- export declare const $match1: <T extends O, C = unknown>(query?: Query<T, C>) => FRawStages<T, T, T, C>;
9
- export declare const $set1: <Q, T extends Q & O, V extends Q & O, C = unknown>(updater: Updater<T, T, V, C>) => FRawStages<Q, T, V, C, 1>;
10
- export declare const $project1: <T extends O, K extends StrKey<T>>(projection: ExactKeys<K>) => RawStages<T, T, T, unknown, 1>;
11
- export declare const $replaceWith1: <T extends O, V extends O, C = unknown>(expr: Expr<V, T, C>) => FRawStages<O, T, V, C, 1>;
12
- export declare const $unwind1: <T extends O, K extends s, R>(k: K) => FRawStages<T, T & Rec<K, Arr<R>>, T & Rec<K, R>>;
13
- export declare const $group1: <T extends O, ID, V extends O, C>(id: Expr<ID, T, C>, args: Accumulators<T, V, C>) => <F extends HKT<O, O>>(f: <T_1 extends O>() => Field<App<F, T_1>, T_1>) => RawStages<O, App<F, T>, Rec<"_id", ID> & V, C, 1>;
14
- export declare const $documents1: <Q extends O, T extends Q & O, C>(docs: Expr<Arr<T>, unknown, C>) => <F extends HKT<O, O>>(f: <T_1 extends O>() => Field<App<F, T_1>, T_1>) => RawStages<unknown, null, App<F, T>, C, 1>;
15
- export declare const rawVars: <T, Ctx, C, V extends O>(vars: ExprsExact<Ctx, T, C>, f: Field<V, T, unknown>) => import("../utils/map-object").ExactPart1<Ctx, ConstHKT<rawItem, unknown>>;
16
- export declare const $simpleLookup1: <T extends O, U extends O, R, K extends s, Ctx, C = unknown, S = string>(args: LookupArgs<T, U, R, K, Ctx, C, S>) => FRawStages<T, T, T & Rec<K, Arr<U>>, C, 1>;
17
- export {};
@@ -1,12 +0,0 @@
1
- import type { ConstHKT, HKT, I, N, O, RORec, Rec, jsonItem } from '../../../types';
2
- import type { BA, Delta, Expr, FRawStages, RawStages } from '../../types';
3
- import { type Updater } from '../../update/updater';
4
- import { type MapK } from '../../utils/map-object';
5
- export interface ParDeltaHKT<K extends BA, T extends jsonItem, E> extends HKT<jsonItem> {
6
- readonly out: RORec<K, I<jsonItem, this>> & Delta<T> & E;
7
- }
8
- type Delta2<T extends jsonItem, BA2 extends string> = Delta<T> & Partial<RORec<BA2, T | null>>;
9
- export declare const $setEach1: <T extends jsonItem, V extends jsonItem, BA2 extends string, E = unknown, C = unknown>(updater: (k: BA) => Updater<Delta<T> & Partial<RORec<BA2, T | null>> & E, T | N, V | null, C>, dict: MapK<BA2, ConstHKT<BA>>) => FRawStages<unknown, Delta2<T, BA2> & E, Rec<BA2, V | null> & Omit<Delta<T> & E, BA2>, C, 1>;
10
- export declare const $setEach: <T extends O, V extends jsonItem, BA2 extends string, E = unknown, C = unknown>(updater: (k: BA) => Updater<Delta<T> & E, T | N, V | null, C>, dict: MapK<BA2, ConstHKT<BA>>) => RawStages<unknown, Delta2<T, BA2> & E, Rec<BA2, V | null> & Omit<Delta<T> & E, BA2>, C, 1>;
11
- export declare const $replaceWithEach: <T extends O, V extends jsonItem, E = unknown>(expr: <K extends BA>(field: K) => Expr<V | null, Rec<K, T> & Delta<T> & E>) => RawStages<unknown, Delta<T> & E, Delta<V> & Omit<E, BA>>;
12
- export {};
@@ -1,5 +0,0 @@
1
- import type { O, jsonItem } from '../../../types';
2
- import type { Delta, Expr, RawStages } from '../../types';
3
- import { type Updater } from '../../update/updater';
4
- export declare const $replaceWithDelta: <T extends O, V extends jsonItem>(expr: Expr<V, T>) => RawStages<unknown, Delta<T>, Delta<V>>;
5
- export declare const $setDelta: <T extends O, V extends O, C = unknown>(updater: Updater<T, T, V, C>) => RawStages<unknown, Delta<T>, Delta<V>, C, number>;
@@ -1,6 +0,0 @@
1
- import type { O, Replace } from '../../../types';
2
- import type { DeltaStages, Expr, LinStages } from '../../types';
3
- import { type UpdaterHKT } from '../../update/updater';
4
- import type { MapO } from '../../utils/map-object';
5
- export 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>;
6
- export declare const $replaceWith: <T extends O, V extends O>(expr: Expr<V, T>) => DeltaStages<O, T, V> & LinStages<O, T, V>;
@@ -1 +0,0 @@
1
- export { $replaceWith, $set } from './$set';
@@ -1,5 +0,0 @@
1
- import type { Arr, AsLiteral, ID, Rec, doc } from '../../../types';
2
- import type { Delta, RawStages } from '../../types';
3
- type s = string;
4
- export declare const $unwindDelta: <K1 extends s, T extends doc, K2 extends s, U extends doc>(k1: AsLiteral<K1>, k2: AsLiteral<K2>, k: K1 | K2 | false) => RawStages<Delta<Rec<K1, T>>, Delta<Rec<K1, T> & Rec<K2, Arr<U>>>, Delta<Rec<K1, T> & Rec<K2, U> & ID>>;
5
- export {};
@@ -1,5 +0,0 @@
1
- import type { Arr, AsLiteral, doc, O, Rec, RORec } from '../../../types';
2
- import type { DeltaStages } from '../../types';
3
- export { $unwindDelta } from './$unwind-delta';
4
- type s = string;
5
- export declare const $unwind: <T extends doc, K extends s, U extends doc>(k: AsLiteral<K>, dict: RORec<K, "key">) => DeltaStages<O, T & Rec<K, Arr<U>>, T & Rec<K, U>>;
@@ -1,14 +0,0 @@
1
- import type { O2, O3, OPickD, RORec, StrKey, View } from '../../types';
2
- import type { HKT, I } from '../../types/hkt';
3
- import type { RawStages } from '../types';
4
- import type { Model, SimpleStreamExecutionResult } from '../types/stream';
5
- type Allowed<K> = Exclude<K, 'deletedAt' | '_id'>;
6
- type AllowedPick<V extends Model, K extends StrKey<V>> = OPickD<V, Allowed<K>>;
7
- interface StreamRunnerHKT extends HKT<O2> {
8
- readonly out: SimpleStreamExecutionResult<I<O2, this>[0], I<O2, this>[1]>;
9
- }
10
- interface StagesHKT extends HKT<O3> {
11
- readonly out: RORec<'lin', RawStages<I<O3, this>[0], I<O3, this>[1], I<O3, this>[2], unknown, 1>>;
12
- }
13
- export declare const from: <V extends Model, KK extends StrKey<V>>(view: View<V, Allowed<KK>>, streamName: string) => import("../aggregate/prefix").DeltaPipe<AllowedPick<V, KK>, AllowedPick<V, KK>, StreamRunnerHKT, StagesHKT>;
14
- export {};
@@ -1,36 +0,0 @@
1
- import { Collection, type Timestamp } from 'mongodb';
2
- import type { BSON, O2, O3, OPickD, RawObj, StrKey, View } from '../../types';
3
- import type { HKT, I } from '../../types/hkt';
4
- import { type DeltaPipe } from '../aggregate/prefix';
5
- import type { SnapshotStreamExecutionResult } from '../types';
6
- import type { Actions, DeltaStages, Model } from '../types/stream';
7
- type Allowed<K> = Exclude<K, 'deletedAt' | '_id'>;
8
- type AllowedPick<V extends Model, K extends StrKey<V>> = OPickD<V, Allowed<K>>;
9
- export type Teardown = {
10
- collection: string;
11
- method: string;
12
- params: unknown[];
13
- };
14
- export type TsData = {
15
- input: readonly RawObj[];
16
- finalInput: readonly RawObj[];
17
- finalInputFirst: readonly RawObj[];
18
- teardown: Teardown;
19
- };
20
- export type Last = {
21
- _id: string;
22
- ts: Timestamp;
23
- data: TsData;
24
- };
25
- export declare const actions: {
26
- [K in keyof Actions<unknown>]: <W extends BSON.Document>(col: Collection<W>, x: Actions<W>[K]) => Promise<unknown>;
27
- };
28
- export declare const streamNames: Record<string, string>;
29
- export interface SnapshotStreamHKT extends HKT<O2> {
30
- readonly out: SnapshotStreamExecutionResult<I<O2, this>[0], I<O2, this>[1]>;
31
- }
32
- export interface DeltaHKT extends HKT<O3> {
33
- readonly out: DeltaStages<I<O3, this>[0], I<O3, this>[1], I<O3, this>[2]>;
34
- }
35
- export declare const staging: <V extends Model, KK extends StrKey<V>>(view: View<V, Allowed<KK>>, streamName: string) => DeltaPipe<AllowedPick<V, KK>, AllowedPick<V, KK>, SnapshotStreamHKT, DeltaHKT>;
36
- export {};
@@ -1,2 +0,0 @@
1
- export { staging } from './boot';
2
- export { from } from './boot-simpl';
@@ -1,26 +0,0 @@
1
- import type { Expr } from '../types';
2
- export declare const max: <D, C>(...expr: Expr<number, D, C>[]) => Expr<number, D, C>;
3
- export declare const lt: <D, C>(expr_0: Expr<number, D, C>, expr_1: Expr<number, D, C>) => Expr<boolean, D, C>;
4
- export declare const gt: <D, C>(expr_0: Expr<number, D, C>, expr_1: Expr<number, D, C>) => Expr<boolean, D, C>;
5
- export declare const lte: {
6
- <D, C>(...expr: [Expr<Date, D, C>, Expr<Date, D, C>]): Expr<boolean, D, C>;
7
- <D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<boolean, D, C>;
8
- };
9
- export declare const gte: {
10
- <D, C>(...expr: [Expr<Date, D, C>, Expr<Date, D, C>]): Expr<boolean, D, C>;
11
- <D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<boolean, D, C>;
12
- };
13
- type Num = number | null | undefined;
14
- export declare function subtract<D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<number, D, C>;
15
- export declare function subtract<D, C>(...expr: [Expr<Num, D, C>, Expr<Num, D, C>]): Expr<Num, D, C>;
16
- export declare function add<D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<number, D, C>;
17
- export declare function add<D, C>(...expr: [Expr<Num, D, C>, Expr<Num, D, C>]): Expr<Num, D, C>;
18
- export declare function divide<D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<number, D, C>;
19
- export declare function divide<D, C>(...expr: [Expr<Num, D, C>, Expr<Num, D, C>]): Expr<Num, D, C>;
20
- export declare function multiply<D, C>(...expr: [Expr<number, D, C>, Expr<number, D, C>]): Expr<number, D, C>;
21
- export declare function multiply<D, C>(...expr: [Expr<Num, D, C>, Expr<Num, D, C>]): Expr<Num, D, C>;
22
- export declare function floor<D, C>(expr: Expr<number, D, C>): Expr<number, D, C>;
23
- export declare function floor<D, C>(expr: Expr<Num, D, C>): Expr<Num, D, C>;
24
- export declare function ceil<D, C>(expr: Expr<number, D, C>): Expr<number, D, C>;
25
- export declare function ceil<D, C>(expr: Expr<Num, D, C>): Expr<Num, D, C>;
26
- export {};
@@ -1,25 +0,0 @@
1
- import type { App, Arr, HKT, N, RORec, notArr } from '../../types';
2
- import type { Expr } from '../types';
3
- export declare const size: <T, D, C>(expr: Expr<Arr<T>, D, C>) => Expr<number, D, C>;
4
- export declare const filterDefined: <T, D, C = unknown>(expr: Expr<Arr<T | N>, D, C>) => Expr<Arr<T>, D, C>;
5
- export declare const filter: <T, D, K extends string, C = unknown>({ as, cond, expr, limit, }: {
6
- expr: Expr<Arr<T>, D, C>;
7
- as: K;
8
- cond: Expr<unknown, D, C & RORec<K, T>>;
9
- limit?: Expr<number, D, C>;
10
- }) => Expr<Arr<T>, D, C>;
11
- export declare const sortArray: <T, D, C, K extends keyof T>({ sortBy, expr, order, }: {
12
- expr: Expr<Arr<T>, D, C>;
13
- sortBy: K;
14
- order?: 1 | -1;
15
- }) => Expr<Arr<T>, D, C>;
16
- export declare const isArray: <T extends notArr, D, C, F extends HKT<T | Arr<T>>>(expr: Expr<T | Arr<T>, D & (App<F, T> | App<F, Arr<T>>), C>) => import("../types").BoolExpr<D & App<F, Arr<T>>, D & App<F, T>, C>;
17
- export declare const array: <T, D, C = unknown>(...exprs: Expr<T, D, C>[]) => Expr<Arr<T>, D, C>;
18
- export declare const concatArray: <T, D, C>(...exprs: Expr<Arr<T>, D, C>[]) => Expr<Arr<T>, D, C>;
19
- export declare const first: <T, D, C>(expr: Expr<Arr<T>, D, C>) => Expr<T | null, D, C>;
20
- export declare const firstSure: <T, D, C>(expr: Expr<Arr<T>, D, C>) => Expr<T, D, C>;
21
- export declare const last: <T, D, C>(expr: Expr<Arr<T>, D, C>) => Expr<T | null, D, C>;
22
- export declare const mergeObjects: <T1, T2, D, C = unknown>(exprs_0: Expr<T1, D, C>, exprs_1: Expr<T2, D, C>) => Expr<T1 & T2, D, C>;
23
- export declare const inArray: <T, D, C = unknown>(exprs_0: Expr<T, D, C>, exprs_1: Expr<Arr<T>, D, C>) => Expr<boolean, D, C>;
24
- export declare const slice: <T, D, C>(array: Expr<Arr<T>, D, C>, start: Expr<number, D, C>, end: Expr<number, D, C>) => Expr<Arr<T>, D, C>;
25
- export declare const except: <T, D, C>(a: Expr<Arr<T>, D, C>, b: Expr<Arr<T>, D, C>) => Expr<Arr<T>, D, C>;