on-zero 0.12.4 → 0.12.5

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 (39) hide show
  1. package/dist/cjs/createZeroClient.cjs +3 -1
  2. package/dist/cjs/createZeroClient.native.js +3 -1
  3. package/dist/cjs/createZeroClient.native.js.map +1 -1
  4. package/dist/cjs/helpers/createMutators.cjs +5 -2
  5. package/dist/cjs/helpers/createMutators.native.js +5 -2
  6. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  7. package/dist/cjs/helpers/createMutators.test.cjs +103 -0
  8. package/dist/cjs/helpers/createMutators.test.native.js +113 -0
  9. package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
  10. package/dist/cjs/multi.cjs +2 -1
  11. package/dist/cjs/multi.native.js +2 -1
  12. package/dist/cjs/multi.native.js.map +1 -1
  13. package/dist/esm/createZeroClient.mjs +3 -1
  14. package/dist/esm/createZeroClient.mjs.map +1 -1
  15. package/dist/esm/createZeroClient.native.js +3 -1
  16. package/dist/esm/createZeroClient.native.js.map +1 -1
  17. package/dist/esm/helpers/createMutators.mjs +5 -2
  18. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  19. package/dist/esm/helpers/createMutators.native.js +5 -2
  20. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  21. package/dist/esm/helpers/createMutators.test.mjs +103 -0
  22. package/dist/esm/helpers/createMutators.test.mjs.map +1 -1
  23. package/dist/esm/helpers/createMutators.test.native.js +113 -0
  24. package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
  25. package/dist/esm/multi.mjs +2 -1
  26. package/dist/esm/multi.mjs.map +1 -1
  27. package/dist/esm/multi.native.js +2 -1
  28. package/dist/esm/multi.native.js.map +1 -1
  29. package/package.json +2 -2
  30. package/src/createZeroClient.tsx +4 -0
  31. package/src/helpers/createMutators.test.ts +92 -0
  32. package/src/helpers/createMutators.ts +8 -1
  33. package/src/multi.ts +3 -0
  34. package/types/createZeroClient.d.ts +3 -1
  35. package/types/createZeroClient.d.ts.map +1 -1
  36. package/types/helpers/createMutators.d.ts +3 -1
  37. package/types/helpers/createMutators.d.ts.map +1 -1
  38. package/types/multi.d.ts +2 -0
  39. package/types/multi.d.ts.map +1 -1
@@ -1,5 +1,13 @@
1
+ import { createBuilder, createSchema, number, string, table } from "@rocicorp/zero";
2
+ import { count, defineRollups } from "orez-lite/rollup";
1
3
  import { afterEach, describe, expect, test, vi } from "vitest";
4
+ import { setSchema } from "../state.native.js";
2
5
  import { createMutators } from "./createMutators.native.js";
6
+ function _type_of(obj) {
7
+ "@swc/helpers - typeof";
8
+
9
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
10
+ }
3
11
  afterEach(function () {
4
12
  vi.useRealTimers();
5
13
  });
@@ -41,4 +49,109 @@ describe("createMutators timeout guard", function () {
41
49
  expect(vi.getTimerCount()).toBe(0);
42
50
  });
43
51
  });
52
+ test("createMutators installs optimistic rollups on client transactions", async function () {
53
+ var comment = table("comment").columns({
54
+ id: string(),
55
+ postId: string()
56
+ }).primaryKey("id");
57
+ var post = table("post").columns({
58
+ id: string(),
59
+ commentCount: number()
60
+ }).primaryKey("id");
61
+ var schema = createSchema({
62
+ tables: [comment, post]
63
+ });
64
+ setSchema(schema, createBuilder(schema));
65
+ var rollups = defineRollups(schema, {
66
+ postCommentCount: {
67
+ source: "comment",
68
+ target: "post",
69
+ mode: "existing",
70
+ groupBy: {
71
+ postId: "id"
72
+ },
73
+ aggregates: {
74
+ commentCount: count()
75
+ }
76
+ }
77
+ });
78
+ var rows = {
79
+ comment: [],
80
+ post: [{
81
+ id: "p1",
82
+ commentCount: 0
83
+ }]
84
+ };
85
+ var mutate = {
86
+ comment: {
87
+ async insert(input) {
88
+ rows.comment.push({
89
+ ...input
90
+ });
91
+ },
92
+ async upsert() {},
93
+ async update() {},
94
+ async delete() {}
95
+ },
96
+ post: {
97
+ async insert() {},
98
+ async upsert() {},
99
+ async update(input) {
100
+ var row = rows.post.find(function (candidate) {
101
+ return candidate.id === input.id;
102
+ });
103
+ if (row) Object.assign(row, input);
104
+ },
105
+ async delete() {}
106
+ }
107
+ };
108
+ var transaction = {
109
+ location: "client",
110
+ mutate,
111
+ async run(query) {
112
+ var _rows_tableName;
113
+ if (!query || (typeof query === "undefined" ? "undefined" : _type_of(query)) !== "object") return void 0;
114
+ var ast = Reflect.get(query, "ast");
115
+ if (!ast || (typeof ast === "undefined" ? "undefined" : _type_of(ast)) !== "object") return void 0;
116
+ var tableName = Reflect.get(ast, "table");
117
+ var where = Reflect.get(ast, "where");
118
+ if (typeof tableName !== "string" || !where || (typeof where === "undefined" ? "undefined" : _type_of(where)) !== "object") {
119
+ return void 0;
120
+ }
121
+ var left = Reflect.get(where, "left");
122
+ var right = Reflect.get(where, "right");
123
+ if (!left || (typeof left === "undefined" ? "undefined" : _type_of(left)) !== "object" || !right || (typeof right === "undefined" ? "undefined" : _type_of(right)) !== "object") {
124
+ return void 0;
125
+ }
126
+ var column = Reflect.get(left, "name");
127
+ var value = Reflect.get(right, "value");
128
+ return typeof column === "string" ? (_rows_tableName = rows[tableName]) === null || _rows_tableName === void 0 ? void 0 : _rows_tableName.find(function (row) {
129
+ return Object.is(row[column], value);
130
+ }) : void 0;
131
+ }
132
+ };
133
+ var mutators = createMutators({
134
+ environment: "client",
135
+ authData: null,
136
+ can: async function can() {},
137
+ rollups,
138
+ models: {
139
+ comment: {
140
+ mutate: {
141
+ add: async function add(ctx, input) {
142
+ await ctx.tx.mutate.comment.insert(input);
143
+ }
144
+ }
145
+ }
146
+ }
147
+ });
148
+ await Reflect.apply(mutators.comment.add, null, [transaction, {
149
+ id: "c1",
150
+ postId: "p1"
151
+ }]);
152
+ expect(rows.post).toEqual([{
153
+ id: "p1",
154
+ commentCount: 1
155
+ }]);
156
+ });
44
157
  //# sourceMappingURL=createMutators.test.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["afterEach","describe","expect","test","vi","createMutators","useRealTimers","useFakeTimers","mutators","environment","authData","can","models","task","mutate","create","getTimerCount","toBe","Error","rejects","toThrow"],"sources":["../../../src/helpers/createMutators.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AAEtD,SAASC,cAAA,QAAsB;AAE/BL,SAAA,CAAU,YAAM;EACdI,EAAA,CAAGE,aAAA,CAAc;AACnB,CAAC;AAEDL,QAAA,CAAS,gCAAgC,YAAM;EAC7CE,IAAA,CAAK,iDAAiD,kBAAY;IAChEC,EAAA,CAAGG,aAAA,CAAc;IACjB,IAAAC,QAAM,GAAAH,cAAW;MACfI,WAAA,EAAa;MACbC,QAAA,EAAU;MACVC,GAAA,EAAK,CAAC;MACNC,MAAA,EAAQ;QACNC,IAAA,EAAM;UACJC,MAAA,EAAQ;YACNC,MAAA,EAAQ,eAAYA,OAAA,GAAC;UACvB;QACF;MACF;IACF,CAAC;IAED,MAAMP,QAAA,CAASK,IAAA,CAAKE,MAAA,CAAO,CAAC,GAAG,CAAC,CAAC;IAEjCb,MAAA,CAAOE,EAAA,CAAGY,aAAA,CAAc,CAAC,EAAEC,IAAA,CAAK,CAAC;EACnC,CAAC;EAEDd,IAAA,CAAK,8CAA8C,kBAAY;IAC7DC,EAAA,CAAGG,aAAA,CAAc;IACjB,IAAAC,QAAM,GAAAH,cAAW;MACfI,WAAA,EAAa;MACbC,QAAA,EAAU;MACVC,GAAA,EAAK,CAAC;MACNC,MAAA,EAAQ;QACNC,IAAA,EAAM;UACJC,MAAA,EAAQ;YACNC,MAAA,EAAQ,eAAYA,OAAA;cAClB,MAAM,IAAIG,KAAA,CAAM,MAAM;YACxB;UACF;QACF;MACF;IACF,CAAC;IAED,MAAMhB,MAAA,CAAOM,QAAA,CAASK,IAAA,CAAKE,MAAA,CAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEI,OAAA,CAAQC,OAAA,CAAQ,MAAM;IAEjElB,MAAA,CAAOE,EAAA,CAAGY,aAAA,CAAc,CAAC,EAAEC,IAAA,CAAK,CAAC;EACnC,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createBuilder","createSchema","number","string","table","count","defineRollups","afterEach","describe","expect","test","vi","setSchema","createMutators","_type_of","obj","Symbol","constructor","useRealTimers","useFakeTimers","mutators","environment","authData","can","models","task","mutate","create","getTimerCount","toBe","Error","rejects","toThrow","comment","columns","id","postId","primaryKey","post","commentCount","schema","tables","rollups","postCommentCount","source","target","mode","groupBy","aggregates","rows","insert","input","push","upsert","update","delete","row","find","candidate","Object","assign","transaction","location","run","query","_rows_tableName","ast","Reflect","get","tableName","where","left","right"],"sources":["../../../src/helpers/createMutators.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -28,7 +28,8 @@ function createZeroClients(instances) {
28
28
  schema: instance.schema,
29
29
  models: instance.models,
30
30
  groupedQueries: instance.queries,
31
- instanceName: name
31
+ instanceName: name,
32
+ rollups: instance.rollups
32
33
  };
33
34
  clients[name] = name === innerName ? createZeroClientInternal(options) : createZeroClientWithDirectQueries(options);
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","name","reverse","instance","schema","models","groupedQueries","queries","instanceName","typedClients","orderedClients","map","providers","fromEntries","ProvideZero","combined"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SACEC,wBAAA,QAGK;AACP,SAASC,sBAAA,QAA8B;AAKvC,cAAc;AAEP,SAASC,kCAIdC,OAAA,EAC6D;EAC7D,MAAMC,oBAAA,GAAmDL,oBAAA;EACzD,OAAOC,wBAAA,CAAyC;IAC9C,GAAGG,OAAA;IACHC;EACF,CAAC;AACH;AA4BO,SAASC,kBAEdC,SAAA,EAAsB;EACtB,MAAMC,KAAA,GAAQC,MAAA,CAAOC,IAAA,CAAKH,SAAS;EACnC,IAAIC,KAAA,CAAMG,MAAA,KAAW,GAAG;IACtB,MAAM,IAAIC,KAAA,CAAM,4DAA4D;EAC9E;EACA,IAAIJ,KAAA,CAAMK,QAAA,CAAS,SAAS,GAAG;IAC7BL,KAAA,CAAMM,MAAA,CAAON,KAAA,CAAMO,OAAA,CAAQ,SAAS,GAAG,CAAC;IACxCP,KAAA,CAAMQ,OAAA,CAAQ,SAAS;EACzB;EAEA,MAAMC,SAAA,GAAYT,KAAA,CAAMA,KAAA,CAAMG,MAAA,GAAS,CAAC;EACxC,MAAMO,OAAA,GAAuE,CAAC;EAI9EhB,sBAAA,CAAuBM,KAAK;EAC5B,WAAWW,IAAA,IAAQ,CAAC,GAAGX,KAAK,EAAEY,OAAA,CAAQ,GAAG;IACvC,MAAMC,QAAA,GAAWd,SAAA,CAAUY,IAAI;IAC/B,MAAMf,OAAA,GAAU;MACdkB,MAAA,EAAQD,QAAA,CAASC,MAAA;MACjBC,MAAA,EAAQF,QAAA,CAASE,MAAA;MACjBC,cAAA,EAAgBH,QAAA,CAASI,OAAA;MACzBC,YAAA,EAAcP;IAChB;IACAD,OAAA,CAAQC,IAAI,IACVA,IAAA,KAASF,SAAA,GACLhB,wBAAA,CAAyBG,OAAO,IAChCD,iCAAA,CAAkCC,OAAO;EACjD;EAEA,MAAMuB,YAAA,GAAeT,OAAA;EAGrB,MAAMU,cAAA,GAAiBpB,KAAA,CAAMqB,GAAA,CAC1BV,IAAA,IAASQ,YAAA,CAAaR,IAAuB,CAChD;EACA,MAAMW,SAAA,GAAYrB,MAAA,CAAOsB,WAAA,CACvBvB,KAAA,CAAMqB,GAAA,CAAKV,IAAA,IAAS,CAACA,IAAA,EAAMD,OAAA,CAAQC,IAAI,EAAGa,WAAW,CAAC,CACxD;EAEA,OAAO;IACLd,OAAA,EAASS,YAAA;IACTG,SAAA;IACAG,QAAA,EAAUlC,kBAAA,CAAmB,GAAG6B,cAAc;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","name","reverse","instance","schema","models","groupedQueries","queries","instanceName","rollups","typedClients","orderedClients","map","providers","fromEntries","ProvideZero","combined"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SACEC,wBAAA,QAGK;AACP,SAASC,sBAAA,QAA8B;AAMvC,cAAc;AAEP,SAASC,kCAIdC,OAAA,EAC6D;EAC7D,MAAMC,oBAAA,GAAmDL,oBAAA;EACzD,OAAOC,wBAAA,CAAyC;IAC9C,GAAGG,OAAA;IACHC;EACF,CAAC;AACH;AA6BO,SAASC,kBAEdC,SAAA,EAAsB;EACtB,MAAMC,KAAA,GAAQC,MAAA,CAAOC,IAAA,CAAKH,SAAS;EACnC,IAAIC,KAAA,CAAMG,MAAA,KAAW,GAAG;IACtB,MAAM,IAAIC,KAAA,CAAM,4DAA4D;EAC9E;EACA,IAAIJ,KAAA,CAAMK,QAAA,CAAS,SAAS,GAAG;IAC7BL,KAAA,CAAMM,MAAA,CAAON,KAAA,CAAMO,OAAA,CAAQ,SAAS,GAAG,CAAC;IACxCP,KAAA,CAAMQ,OAAA,CAAQ,SAAS;EACzB;EAEA,MAAMC,SAAA,GAAYT,KAAA,CAAMA,KAAA,CAAMG,MAAA,GAAS,CAAC;EACxC,MAAMO,OAAA,GAAuE,CAAC;EAI9EhB,sBAAA,CAAuBM,KAAK;EAC5B,WAAWW,IAAA,IAAQ,CAAC,GAAGX,KAAK,EAAEY,OAAA,CAAQ,GAAG;IACvC,MAAMC,QAAA,GAAWd,SAAA,CAAUY,IAAI;IAC/B,MAAMf,OAAA,GAAU;MACdkB,MAAA,EAAQD,QAAA,CAASC,MAAA;MACjBC,MAAA,EAAQF,QAAA,CAASE,MAAA;MACjBC,cAAA,EAAgBH,QAAA,CAASI,OAAA;MACzBC,YAAA,EAAcP,IAAA;MACdQ,OAAA,EAASN,QAAA,CAASM;IACpB;IACAT,OAAA,CAAQC,IAAI,IACVA,IAAA,KAASF,SAAA,GACLhB,wBAAA,CAAyBG,OAAO,IAChCD,iCAAA,CAAkCC,OAAO;EACjD;EAEA,MAAMwB,YAAA,GAAeV,OAAA;EAGrB,MAAMW,cAAA,GAAiBrB,KAAA,CAAMsB,GAAA,CAC1BX,IAAA,IAASS,YAAA,CAAaT,IAAuB,CAChD;EACA,MAAMY,SAAA,GAAYtB,MAAA,CAAOuB,WAAA,CACvBxB,KAAA,CAAMsB,GAAA,CAAKX,IAAA,IAAS,CAACA,IAAA,EAAMD,OAAA,CAAQC,IAAI,EAAGc,WAAW,CAAC,CACxD;EAEA,OAAO;IACLf,OAAA,EAASU,YAAA;IACTG,SAAA;IACAG,QAAA,EAAUnC,kBAAA,CAAmB,GAAG8B,cAAc;EAChD;AACF","ignoreList":[]}
@@ -33,7 +33,8 @@ function createZeroClients(instances) {
33
33
  schema: instance.schema,
34
34
  models: instance.models,
35
35
  groupedQueries: instance.queries,
36
- instanceName: name
36
+ instanceName: name,
37
+ rollups: instance.rollups
37
38
  };
38
39
  clients[name] = name === innerName ? createZeroClientInternal(options) : createZeroClientWithDirectQueries(options);
39
40
  }
@@ -1 +1 @@
1
- {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","reverse","Symbol","iterator","_step","next","done","name","value","instance","schema","models","groupedQueries","queries","instanceName","err","return"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SAAAC,wBAAA;AAAA,SACEC,sBAAA;AAAA,cAGK;AACP,SAASC,iCAA8BA,CAAAC,OAAA;EAKvC,IAAAC,oBAAc,GAAAL,oBAAA;EAEP,OAASC,wBAAA;IAMd,GAAAG,OAAM;IACNC;EAAgD,EAC9C;AAAG;AACH,SACDC,kBAAAC,SAAA;EACH,IAAAC,KAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA;EA4BO,IAAAC,KAAS,CAAAG,MAAA;IAGd,MAAM,IAAAC,KAAQ,6DAAqB;EACnC;EACE,IAAAJ,KAAM,CAAAK,QAAU;IAClBL,KAAA,CAAAM,MAAA,CAAAN,KAAA,CAAAO,OAAA;IACAP,KAAI,CAAAQ,OAAM,UAAS;EACjB;EACA,IAAAC,SAAM,GAAQT,KAAA,CAAAA,KAAS,CAAAG,MAAA;EACzB,IAAAO,OAAA;EAEAhB,sBAAkB,CAAAM,KAAM;EACxB,IAAAW,yBAA8E;IAAAC,iBAAA;IAAAC,cAAA;EAI9E;IACA,SAAWC,SAAS,GAAG,CACrB,GAAAd,KAAM,CACN,CAAAe,OAAM,GAAAC,MAAU,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACd,IAAAU,IAAQ,GAAAH,KAAA,CAASI,KAAA;MACjB,IAAAC,QAAQ,GAAAxB,SAAS,CAAAsB,IAAA;MACjB,IAAAzB,OAAA;QACA4B,MAAA,EAAAD,QAAc,CAAAC,MAAA;QAChBC,MAAA,EAAAF,QAAA,CAAAE,MAAA;QACAC,cACE,EAAAH,QAAS,CAAAI,OAAA;QAGbC,YAAA,EAAAP;MAEA;MAGAX,OAAM,CAAAW,IAAA,IAAAA,IAAiB,KAAMZ,SAAA,GAAAhB,wBAAA,CAAAG,OAAA,IAAAD,iCAAA,CAAAC,OAAA;IAC3B;EACF,SAAAiC,GAAA;IACAjB,iBAAkB,OAAO;IACvBC,cAAW,GAAAgB,GAAS;EACtB;IAEA;MACE,KAAAlB,yBAAS,IAAAG,SAAA,CAAAgB,MAAA;QACThB,SAAA,CAAAgB,MAAA;MACA;IACF;MACF,IAAAlB,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","reverse","Symbol","iterator","_step","next","done","name","value","instance","schema","models","groupedQueries","queries","instanceName","rollups","err","return"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SAAAC,wBAAA;AAAA,SACEC,sBAAA;AAAA,cAGK;AACP,SAASC,iCAA8BA,CAAAC,OAAA;EAMvC,IAAAC,oBAAc,GAAAL,oBAAA;EAEP,OAASC,wBAAA;IAMd,GAAAG,OAAM;IACNC;EAAgD,EAC9C;AAAG;AACH,SACDC,kBAAAC,SAAA;EACH,IAAAC,KAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA;EA6BO,IAAAC,KAAS,CAAAG,MAAA;IAGd,MAAM,IAAAC,KAAQ,6DAAqB;EACnC;EACE,IAAAJ,KAAM,CAAAK,QAAU;IAClBL,KAAA,CAAAM,MAAA,CAAAN,KAAA,CAAAO,OAAA;IACAP,KAAI,CAAAQ,OAAM,UAAS;EACjB;EACA,IAAAC,SAAM,GAAQT,KAAA,CAAAA,KAAS,CAAAG,MAAA;EACzB,IAAAO,OAAA;EAEAhB,sBAAkB,CAAAM,KAAM;EACxB,IAAAW,yBAA8E;IAAAC,iBAAA;IAAAC,cAAA;EAI9E;IACA,SAAWC,SAAS,GAAG,CACrB,GAAAd,KAAM,CACN,CAAAe,OAAM,GAAAC,MAAU,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACd,IAAAU,IAAQ,GAAAH,KAAA,CAASI,KAAA;MACjB,IAAAC,QAAQ,GAAAxB,SAAS,CAAAsB,IAAA;MACjB,IAAAzB,OAAA;QACA4B,MAAA,EAAAD,QAAc,CAAAC,MAAA;QACdC,MAAA,EAASF,QAAS,CAAAE,MAAA;QACpBC,cAAA,EAAAH,QAAA,CAAAI,OAAA;QACAC,YACE,EAAAP,IAAA;QAGJQ,OAAA,EAAAN,QAAA,CAAAM;MAEA;MAGAnB,OAAM,CAAAW,IAAA,IAAAA,IAAiB,KAAMZ,SAAA,GAAAhB,wBAAA,CAAAG,OAAA,IAAAD,iCAAA,CAAAC,OAAA;IAC3B;EACF,SAAAkC,GAAA;IACAlB,iBAAkB,OAAO;IACvBC,cAAW,GAAAiB,GAAS;EACtB;IAEA;MACE,KAAAnB,yBAAS,IAAAG,SAAA,CAAAiB,MAAA;QACTjB,SAAA,CAAAiB,MAAA;MACA;IACF;MACF,IAAAnB,iBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.12.4",
3
+ "version": "0.12.5",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "files": [
@@ -105,7 +105,7 @@
105
105
  "chokidar": "^4.0.3",
106
106
  "citty": "^0.1.6",
107
107
  "dequal": "^2.0.3",
108
- "orez-lite": "0.12.4",
108
+ "orez-lite": "0.12.5",
109
109
  "valibot": "^1.1.0"
110
110
  },
111
111
  "peerDependencies": {
@@ -71,6 +71,7 @@ import type {
71
71
  ZeroOptions,
72
72
  Schema as ZeroSchema,
73
73
  } from '@rocicorp/zero'
74
+ import type { RollupSet } from 'orez-lite/rollup'
74
75
 
75
76
  type PreloadOptions = { ttl?: 'always' | 'never' | number | undefined }
76
77
 
@@ -100,6 +101,7 @@ export type CreateZeroClientOptions<
100
101
  schema: Schema
101
102
  models: Models
102
103
  groupedQueries: GroupedQueries
104
+ rollups?: RollupSet<Schema>
103
105
  permissionStrategy?: PermissionStrategy
104
106
  // repeated server acknowledgement timeouts reconnect with the existing local
105
107
  // state. one timeout remains a normal slow-server failure.
@@ -159,6 +161,7 @@ export function createZeroClientInternal<
159
161
  schema,
160
162
  models,
161
163
  groupedQueries,
164
+ rollups,
162
165
  permissionStrategy = 'optimistic',
163
166
  instanceName = 'default',
164
167
  serverAckTimeoutRecoveryThreshold = 2,
@@ -302,6 +305,7 @@ export function createZeroClientInternal<
302
305
  environment: 'client',
303
306
  authData: null,
304
307
  can: permissionsHelpers.can,
308
+ rollups,
305
309
  })
306
310
  return clientMutators
307
311
  }
@@ -1,5 +1,8 @@
1
+ import { createBuilder, createSchema, number, string, table } from '@rocicorp/zero'
2
+ import { count, defineRollups } from 'orez-lite/rollup'
1
3
  import { afterEach, describe, expect, test, vi } from 'vitest'
2
4
 
5
+ import { setSchema } from '../state'
3
6
  import { createMutators } from './createMutators'
4
7
 
5
8
  afterEach(() => {
@@ -49,3 +52,92 @@ describe('createMutators timeout guard', () => {
49
52
  expect(vi.getTimerCount()).toBe(0)
50
53
  })
51
54
  })
55
+
56
+ test('createMutators installs optimistic rollups on client transactions', async () => {
57
+ const comment = table('comment')
58
+ .columns({ id: string(), postId: string() })
59
+ .primaryKey('id')
60
+ const post = table('post')
61
+ .columns({ id: string(), commentCount: number() })
62
+ .primaryKey('id')
63
+ const schema = createSchema({ tables: [comment, post] })
64
+ setSchema(schema, createBuilder(schema))
65
+ const rollups = defineRollups(schema, {
66
+ postCommentCount: {
67
+ source: 'comment',
68
+ target: 'post',
69
+ mode: 'existing',
70
+ groupBy: { postId: 'id' },
71
+ aggregates: { commentCount: count() },
72
+ },
73
+ })
74
+ const rows: Record<string, Array<Record<string, unknown>>> = {
75
+ comment: [],
76
+ post: [{ id: 'p1', commentCount: 0 }],
77
+ }
78
+ const mutate = {
79
+ comment: {
80
+ async insert(input: Readonly<Record<string, unknown>>) {
81
+ rows.comment!.push({ ...input })
82
+ },
83
+ async upsert() {},
84
+ async update() {},
85
+ async delete() {},
86
+ },
87
+ post: {
88
+ async insert() {},
89
+ async upsert() {},
90
+ async update(input: Readonly<Record<string, unknown>>) {
91
+ const row = rows.post!.find((candidate) => candidate.id === input.id)
92
+ if (row) Object.assign(row, input)
93
+ },
94
+ async delete() {},
95
+ },
96
+ }
97
+ const transaction = {
98
+ location: 'client',
99
+ mutate,
100
+ async run(query: unknown) {
101
+ if (!query || typeof query !== 'object') return undefined
102
+ const ast = Reflect.get(query, 'ast')
103
+ if (!ast || typeof ast !== 'object') return undefined
104
+ const tableName = Reflect.get(ast, 'table')
105
+ const where = Reflect.get(ast, 'where')
106
+ if (typeof tableName !== 'string' || !where || typeof where !== 'object') {
107
+ return undefined
108
+ }
109
+ const left = Reflect.get(where, 'left')
110
+ const right = Reflect.get(where, 'right')
111
+ if (!left || typeof left !== 'object' || !right || typeof right !== 'object') {
112
+ return undefined
113
+ }
114
+ const column = Reflect.get(left, 'name')
115
+ const value = Reflect.get(right, 'value')
116
+ return typeof column === 'string'
117
+ ? rows[tableName]?.find((row) => Object.is(row[column], value))
118
+ : undefined
119
+ },
120
+ }
121
+ const mutators = createMutators({
122
+ environment: 'client',
123
+ authData: null,
124
+ can: async () => {},
125
+ rollups,
126
+ models: {
127
+ comment: {
128
+ mutate: {
129
+ add: async (ctx, input: { id: string; postId: string }) => {
130
+ await ctx.tx.mutate.comment.insert(input)
131
+ },
132
+ },
133
+ },
134
+ },
135
+ })
136
+
137
+ await Reflect.apply(mutators.comment.add, null, [
138
+ transaction,
139
+ { id: 'c1', postId: 'p1' },
140
+ ])
141
+
142
+ expect(rows.post).toEqual([{ id: 'p1', commentCount: 1 }])
143
+ })
@@ -1,3 +1,5 @@
1
+ import { withOptimisticRollups } from 'orez-lite/rollup'
2
+
1
3
  import { getAuthData } from '../state'
2
4
  import { mapObject } from './mapObject'
3
5
  import { runWithContext } from './mutatorContext'
@@ -11,6 +13,7 @@ import type {
11
13
  MutatorContext,
12
14
  Transaction,
13
15
  } from '../types'
16
+ import type { RollupSet } from 'orez-lite/rollup'
14
17
 
15
18
  export type ValidateMutationFn = (args: {
16
19
  authData: AuthData | null
@@ -32,6 +35,7 @@ export function createMutators<Models extends GenericModels>({
32
35
  validateMutation,
33
36
  mutationValidators,
34
37
  resolveAuthData,
38
+ rollups,
35
39
  }: {
36
40
  environment: 'server' | 'client'
37
41
  authData: AuthData | null
@@ -44,6 +48,7 @@ export function createMutators<Models extends GenericModels>({
44
48
  /** valibot schemas keyed by model.mutationName, auto-validates args before running */
45
49
  mutationValidators?: Record<string, Record<string, any>>
46
50
  resolveAuthData?: () => AuthData | null
51
+ rollups?: RollupSet
47
52
  }): GetZeroMutators<Models> {
48
53
  const serverActions = createServerActions?.()
49
54
 
@@ -54,8 +59,10 @@ export function createMutators<Models extends GenericModels>({
54
59
 
55
60
  function withContext<Args extends any[]>(fn: (...args: Args) => Promise<void>) {
56
61
  return async (tx: Transaction, ...args: Args): Promise<void> => {
62
+ const transaction =
63
+ environment === 'client' && rollups ? withOptimisticRollups(tx, rollups) : tx
57
64
  const mutationContext: MutatorContext = {
58
- tx,
65
+ tx: transaction,
59
66
  // on client, read authData dynamically to avoid stale closure during auth transitions
60
67
  // (ZeroProvider recreates Zero instance in useEffect, but mutations can run before that)
61
68
  authData:
package/src/multi.ts CHANGED
@@ -9,6 +9,7 @@ import { releaseClientInstances } from './instanceRegistry'
9
9
 
10
10
  import type { GenericModels } from './types'
11
11
  import type { Schema as ZeroSchema } from '@rocicorp/zero'
12
+ import type { RollupSet } from 'orez-lite/rollup'
12
13
 
13
14
  export * from './combineZeroClients'
14
15
 
@@ -32,6 +33,7 @@ export type ZeroInstanceManifestEntry<
32
33
  schema: Schema
33
34
  queries: CreateZeroClientOptions<Schema, Models>['groupedQueries']
34
35
  models: Models
36
+ rollups?: RollupSet<Schema>
35
37
  tables: readonly string[]
36
38
  syncTables: readonly string[]
37
39
  supportTables: readonly string[]
@@ -76,6 +78,7 @@ export function createZeroClients<
76
78
  models: instance.models,
77
79
  groupedQueries: instance.queries,
78
80
  instanceName: name,
81
+ rollups: instance.rollups,
79
82
  }
80
83
  clients[name] =
81
84
  name === innerName
@@ -6,6 +6,7 @@ import { type RecoveryGuardStorage, type ScheduleReloadContext, type ZeroLogPatt
6
6
  import { resolveQuery, type PlainQueryFn } from './resolveQuery';
7
7
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEventsEmitter } from './types';
8
8
  import type { AnyQueryRegistry, Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
9
+ import type { RollupSet } from 'orez-lite/rollup';
9
10
  type PreloadOptions = {
10
11
  ttl?: 'always' | 'never' | number | undefined;
11
12
  };
@@ -24,6 +25,7 @@ export type CreateZeroClientOptions<Schema extends ZeroSchema, Models extends Ge
24
25
  schema: Schema;
25
26
  models: Models;
26
27
  groupedQueries: GroupedQueries;
28
+ rollups?: RollupSet<Schema>;
27
29
  permissionStrategy?: PermissionStrategy;
28
30
  serverAckTimeoutRecoveryThreshold?: number;
29
31
  instanceName?: string;
@@ -94,7 +96,7 @@ export declare function createZeroClient<Schema extends ZeroSchema, Models exten
94
96
  awaitMutationClient: (mutation: import(".").MutationLike, label: string, timeoutMs?: number) => Promise<unknown>;
95
97
  awaitMutationServer: (mutation: import(".").MutationLike, label: string, timeoutMs?: number) => Promise<unknown>;
96
98
  };
97
- export declare function createZeroClientInternal<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models, groupedQueries, permissionStrategy, instanceName, serverAckTimeoutRecoveryThreshold, createDirectUseQuery, }: CreateZeroClientOptions<Schema, Models> & {
99
+ export declare function createZeroClientInternal<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models, groupedQueries, rollups, permissionStrategy, instanceName, serverAckTimeoutRecoveryThreshold, createDirectUseQuery, }: CreateZeroClientOptions<Schema, Models> & {
98
100
  createDirectUseQuery?: DirectQueryAdapter<Schema>;
99
101
  }): {
100
102
  instanceName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { AuthData, Can, GenericModels, GetZeroMutators, MutatorContext } from '../types';
2
+ import type { RollupSet } from 'orez-lite/rollup';
2
3
  export type ValidateMutationFn = (args: {
3
4
  authData: AuthData | null;
4
5
  mutatorName: string;
@@ -6,7 +7,7 @@ export type ValidateMutationFn = (args: {
6
7
  args: unknown;
7
8
  }) => void | Promise<void>;
8
9
  export type { ValidateMutationFn as CreateMutatorsValidateFn };
9
- export declare function createMutators<Models extends GenericModels>({ environment, authData, createServerActions, enqueueTask, enqueueAction, can, models, validateMutation, mutationValidators, resolveAuthData, }: {
10
+ export declare function createMutators<Models extends GenericModels>({ environment, authData, createServerActions, enqueueTask, enqueueAction, can, models, validateMutation, mutationValidators, resolveAuthData, rollups, }: {
10
11
  environment: 'server' | 'client';
11
12
  authData: AuthData | null;
12
13
  can: Can;
@@ -18,5 +19,6 @@ export declare function createMutators<Models extends GenericModels>({ environme
18
19
  /** valibot schemas keyed by model.mutationName, auto-validates args before running */
19
20
  mutationValidators?: Record<string, Record<string, any>>;
20
21
  resolveAuthData?: () => AuthData | null;
22
+ rollups?: RollupSet;
21
23
  }): GetZeroMutators<Models>;
22
24
  //# sourceMappingURL=createMutators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,aAAa,EACb,eAAe,EACf,cAAc,EAEf,MAAM,UAAU,CAAA;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE1B,YAAY,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,CAAA;AAE9D,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,WAAsB,EACtB,aAAwB,EACxB,GAAG,EACH,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IACtE,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/C,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAA;CACxC,GAAG,eAAe,CAAC,MAAM,CAAC,CA0K1B"}
1
+ {"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,aAAa,EACb,eAAe,EACf,cAAc,EAEf,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE1B,YAAY,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,CAAA;AAE9D,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,WAAsB,EACtB,aAAwB,EACxB,GAAG,EACH,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,OAAO,GACR,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IACtE,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/C,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,GAAG,eAAe,CAAC,MAAM,CAAC,CA4K1B"}
package/types/multi.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  import { createZeroClientInternal, type CreateZeroClientOptions } from './createZeroClient';
2
2
  import type { GenericModels } from './types';
3
3
  import type { Schema as ZeroSchema } from '@rocicorp/zero';
4
+ import type { RollupSet } from 'orez-lite/rollup';
4
5
  export * from './combineZeroClients';
5
6
  export declare function createZeroClientWithDirectQueries<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): ReturnType<typeof createZeroClientInternal<Schema, Models>>;
6
7
  export type ZeroInstanceManifestEntry<Schema extends ZeroSchema = ZeroSchema, Models extends GenericModels = GenericModels> = {
7
8
  schema: Schema;
8
9
  queries: CreateZeroClientOptions<Schema, Models>['groupedQueries'];
9
10
  models: Models;
11
+ rollups?: RollupSet<Schema>;
10
12
  tables: readonly string[];
11
13
  syncTables: readonly string[];
12
14
  supportTables: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE1D,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS;;kBAsCZ,IAAI;;EAOb"}
1
+ {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS;;kBAuCZ,IAAI;;EAOb"}