on-zero 0.7.2-1784530701923 → 0.7.2

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 (260) hide show
  1. package/dist/cjs/asyncTasks.cjs +51 -0
  2. package/dist/cjs/asyncTasks.native.js +84 -0
  3. package/dist/cjs/asyncTasks.native.js.map +1 -0
  4. package/dist/cjs/createZeroDirectServer.cjs +269 -0
  5. package/dist/cjs/createZeroDirectServer.native.js +287 -0
  6. package/dist/cjs/createZeroDirectServer.native.js.map +1 -0
  7. package/dist/cjs/createZeroSQLiteServer.cjs +50 -0
  8. package/dist/cjs/createZeroSQLiteServer.native.js +58 -0
  9. package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
  10. package/dist/cjs/createZeroSQLiteServer.test.cjs +595 -0
  11. package/dist/cjs/createZeroSQLiteServer.test.native.js +647 -0
  12. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
  13. package/dist/cjs/createZeroServer.cjs +82 -0
  14. package/dist/cjs/createZeroServer.native.js +93 -0
  15. package/dist/cjs/createZeroServer.native.js.map +1 -0
  16. package/dist/cjs/createZeroServer.test.cjs +378 -0
  17. package/dist/cjs/createZeroServer.test.native.js +448 -0
  18. package/dist/cjs/createZeroServer.test.native.js.map +1 -0
  19. package/dist/cjs/createZeroServerCore.cjs +211 -0
  20. package/dist/cjs/createZeroServerCore.native.js +355 -0
  21. package/dist/cjs/createZeroServerCore.native.js.map +1 -0
  22. package/dist/cjs/helpers/createMutators.cjs +3 -4
  23. package/dist/cjs/helpers/createMutators.native.js +3 -6
  24. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  25. package/dist/cjs/httpPull/auth.test.cjs +197 -0
  26. package/dist/cjs/httpPull/auth.test.native.js +279 -0
  27. package/dist/cjs/httpPull/auth.test.native.js.map +1 -0
  28. package/dist/cjs/httpPull/churn.test.cjs +132 -0
  29. package/dist/cjs/httpPull/churn.test.native.js +155 -0
  30. package/dist/cjs/httpPull/churn.test.native.js.map +1 -0
  31. package/dist/cjs/httpPull/completeAck.test.cjs +69 -0
  32. package/dist/cjs/httpPull/completeAck.test.native.js +76 -0
  33. package/dist/cjs/httpPull/completeAck.test.native.js.map +1 -0
  34. package/dist/cjs/httpPull/fixtureServer.cjs +340 -0
  35. package/dist/cjs/httpPull/fixtureServer.native.js +534 -0
  36. package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -0
  37. package/dist/cjs/httpPull/integration.test.cjs +53 -0
  38. package/dist/cjs/httpPull/integration.test.native.js +60 -0
  39. package/dist/cjs/httpPull/integration.test.native.js.map +1 -0
  40. package/dist/cjs/httpPull/rebase.test.cjs +360 -0
  41. package/dist/cjs/httpPull/rebase.test.native.js +420 -0
  42. package/dist/cjs/httpPull/rebase.test.native.js.map +1 -0
  43. package/dist/cjs/httpPull/relations.test.cjs +107 -0
  44. package/dist/cjs/httpPull/relations.test.native.js +119 -0
  45. package/dist/cjs/httpPull/relations.test.native.js.map +1 -0
  46. package/dist/cjs/httpPull/testHarness.cjs +100 -0
  47. package/dist/cjs/httpPull/testHarness.native.js +112 -0
  48. package/dist/cjs/httpPull/testHarness.native.js.map +1 -0
  49. package/dist/cjs/index.cjs +1 -0
  50. package/dist/cjs/index.native.js +1 -0
  51. package/dist/cjs/index.native.js.map +1 -1
  52. package/dist/cjs/run.cjs +1 -1
  53. package/dist/cjs/run.native.js +1 -1
  54. package/dist/cjs/server.cjs +22 -0
  55. package/dist/cjs/server.native.js +4 -0
  56. package/dist/cjs/server.native.js.map +1 -0
  57. package/dist/cjs/sqliteRuntime.cjs +318 -0
  58. package/dist/cjs/sqliteRuntime.native.js +438 -0
  59. package/dist/cjs/sqliteRuntime.native.js.map +1 -0
  60. package/dist/cjs/state.cjs +1 -1
  61. package/dist/cjs/state.native.js +1 -1
  62. package/dist/cjs/syncHost.cjs +179 -0
  63. package/dist/cjs/syncHost.native.js +388 -0
  64. package/dist/cjs/syncHost.native.js.map +1 -0
  65. package/dist/cjs/syncHost.test.cjs +240 -0
  66. package/dist/cjs/syncHost.test.native.js +290 -0
  67. package/dist/cjs/syncHost.test.native.js.map +1 -0
  68. package/dist/cjs/zeroRunner.cjs +1 -1
  69. package/dist/cjs/zeroRunner.native.js +1 -1
  70. package/dist/esm/asyncTasks.mjs +26 -0
  71. package/dist/esm/asyncTasks.mjs.map +1 -0
  72. package/dist/esm/asyncTasks.native.js +56 -0
  73. package/dist/esm/asyncTasks.native.js.map +1 -0
  74. package/dist/esm/createZeroDirectServer.mjs +241 -0
  75. package/dist/esm/createZeroDirectServer.mjs.map +1 -0
  76. package/dist/esm/createZeroDirectServer.native.js +256 -0
  77. package/dist/esm/createZeroDirectServer.native.js.map +1 -0
  78. package/dist/esm/createZeroSQLiteServer.mjs +24 -0
  79. package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
  80. package/dist/esm/createZeroSQLiteServer.native.js +29 -0
  81. package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
  82. package/dist/esm/createZeroSQLiteServer.test.mjs +596 -0
  83. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
  84. package/dist/esm/createZeroSQLiteServer.test.native.js +645 -0
  85. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
  86. package/dist/esm/createZeroServer.mjs +57 -0
  87. package/dist/esm/createZeroServer.mjs.map +1 -0
  88. package/dist/esm/createZeroServer.native.js +65 -0
  89. package/dist/esm/createZeroServer.native.js.map +1 -0
  90. package/dist/esm/createZeroServer.test.mjs +379 -0
  91. package/dist/esm/createZeroServer.test.mjs.map +1 -0
  92. package/dist/esm/createZeroServer.test.native.js +446 -0
  93. package/dist/esm/createZeroServer.test.native.js.map +1 -0
  94. package/dist/esm/createZeroServerCore.mjs +186 -0
  95. package/dist/esm/createZeroServerCore.mjs.map +1 -0
  96. package/dist/esm/createZeroServerCore.native.js +327 -0
  97. package/dist/esm/createZeroServerCore.native.js.map +1 -0
  98. package/dist/esm/helpers/createMutators.mjs +3 -4
  99. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  100. package/dist/esm/helpers/createMutators.native.js +3 -6
  101. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  102. package/dist/esm/httpPull/auth.test.mjs +198 -0
  103. package/dist/esm/httpPull/auth.test.mjs.map +1 -0
  104. package/dist/esm/httpPull/auth.test.native.js +277 -0
  105. package/dist/esm/httpPull/auth.test.native.js.map +1 -0
  106. package/dist/esm/httpPull/churn.test.mjs +133 -0
  107. package/dist/esm/httpPull/churn.test.mjs.map +1 -0
  108. package/dist/esm/httpPull/churn.test.native.js +153 -0
  109. package/dist/esm/httpPull/churn.test.native.js.map +1 -0
  110. package/dist/esm/httpPull/completeAck.test.mjs +70 -0
  111. package/dist/esm/httpPull/completeAck.test.mjs.map +1 -0
  112. package/dist/esm/httpPull/completeAck.test.native.js +74 -0
  113. package/dist/esm/httpPull/completeAck.test.native.js.map +1 -0
  114. package/dist/esm/httpPull/fixtureServer.mjs +315 -0
  115. package/dist/esm/httpPull/fixtureServer.mjs.map +1 -0
  116. package/dist/esm/httpPull/fixtureServer.native.js +506 -0
  117. package/dist/esm/httpPull/fixtureServer.native.js.map +1 -0
  118. package/dist/esm/httpPull/integration.test.mjs +54 -0
  119. package/dist/esm/httpPull/integration.test.mjs.map +1 -0
  120. package/dist/esm/httpPull/integration.test.native.js +58 -0
  121. package/dist/esm/httpPull/integration.test.native.js.map +1 -0
  122. package/dist/esm/httpPull/rebase.test.mjs +361 -0
  123. package/dist/esm/httpPull/rebase.test.mjs.map +1 -0
  124. package/dist/esm/httpPull/rebase.test.native.js +418 -0
  125. package/dist/esm/httpPull/rebase.test.native.js.map +1 -0
  126. package/dist/esm/httpPull/relations.test.mjs +108 -0
  127. package/dist/esm/httpPull/relations.test.mjs.map +1 -0
  128. package/dist/esm/httpPull/relations.test.native.js +117 -0
  129. package/dist/esm/httpPull/relations.test.native.js.map +1 -0
  130. package/dist/esm/httpPull/testHarness.mjs +72 -0
  131. package/dist/esm/httpPull/testHarness.mjs.map +1 -0
  132. package/dist/esm/httpPull/testHarness.native.js +81 -0
  133. package/dist/esm/httpPull/testHarness.native.js.map +1 -0
  134. package/dist/esm/index.js +1 -0
  135. package/dist/esm/index.js.map +1 -1
  136. package/dist/esm/index.mjs +1 -0
  137. package/dist/esm/index.mjs.map +1 -1
  138. package/dist/esm/index.native.js +1 -0
  139. package/dist/esm/index.native.js.map +1 -1
  140. package/dist/esm/run.mjs +1 -1
  141. package/dist/esm/run.mjs.map +1 -1
  142. package/dist/esm/run.native.js +1 -1
  143. package/dist/esm/server.mjs +4 -0
  144. package/dist/esm/server.mjs.map +1 -0
  145. package/dist/esm/server.native.js +2 -0
  146. package/dist/esm/server.native.js.map +1 -0
  147. package/dist/esm/sqliteRuntime.mjs +289 -0
  148. package/dist/esm/sqliteRuntime.mjs.map +1 -0
  149. package/dist/esm/sqliteRuntime.native.js +406 -0
  150. package/dist/esm/sqliteRuntime.native.js.map +1 -0
  151. package/dist/esm/state.mjs +1 -1
  152. package/dist/esm/state.native.js +1 -1
  153. package/dist/esm/syncHost.mjs +153 -0
  154. package/dist/esm/syncHost.mjs.map +1 -0
  155. package/dist/esm/syncHost.native.js +359 -0
  156. package/dist/esm/syncHost.native.js.map +1 -0
  157. package/dist/esm/syncHost.test.mjs +217 -0
  158. package/dist/esm/syncHost.test.mjs.map +1 -0
  159. package/dist/esm/syncHost.test.native.js +264 -0
  160. package/dist/esm/syncHost.test.native.js.map +1 -0
  161. package/dist/esm/zeroRunner.mjs +1 -1
  162. package/dist/esm/zeroRunner.mjs.map +1 -1
  163. package/dist/esm/zeroRunner.native.js +1 -1
  164. package/package.json +23 -8
  165. package/readme.md +65 -40
  166. package/src/asyncTasks.ts +36 -0
  167. package/src/createZeroClient.tsx +1 -1
  168. package/src/createZeroDirectServer.ts +411 -0
  169. package/src/createZeroSQLiteServer.test.ts +614 -0
  170. package/src/createZeroSQLiteServer.ts +56 -0
  171. package/src/createZeroServer.test.ts +421 -0
  172. package/src/createZeroServer.ts +105 -0
  173. package/src/createZeroServerCore.ts +296 -0
  174. package/src/helpers/createMutators.ts +2 -6
  175. package/src/httpPull/auth.test.ts +208 -0
  176. package/src/httpPull/churn.test.ts +147 -0
  177. package/src/httpPull/completeAck.test.ts +80 -0
  178. package/src/httpPull/fixtureServer.ts +391 -0
  179. package/src/httpPull/integration.test.ts +57 -0
  180. package/src/httpPull/rebase.test.ts +368 -0
  181. package/src/httpPull/relations.test.ts +135 -0
  182. package/src/httpPull/testHarness.ts +95 -0
  183. package/src/index.ts +1 -0
  184. package/src/run.ts +1 -1
  185. package/src/server.native.ts +3 -0
  186. package/src/server.ts +4 -0
  187. package/src/sqliteRuntime.ts +512 -0
  188. package/src/state.ts +1 -1
  189. package/src/syncHost.test.ts +223 -0
  190. package/src/syncHost.ts +294 -0
  191. package/src/types.ts +5 -0
  192. package/src/zeroRunner.ts +1 -1
  193. package/test-fixtures/server-return-types.ts +58 -21
  194. package/types/asyncTasks.d.ts +11 -0
  195. package/types/asyncTasks.d.ts.map +1 -0
  196. package/types/createZeroDirectServer.d.ts +80 -0
  197. package/types/createZeroDirectServer.d.ts.map +1 -0
  198. package/types/createZeroSQLiteServer.d.ts +12 -0
  199. package/types/createZeroSQLiteServer.d.ts.map +1 -0
  200. package/types/createZeroSQLiteServer.test.d.ts +2 -0
  201. package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
  202. package/types/createZeroServer.d.ts +18 -0
  203. package/types/createZeroServer.d.ts.map +1 -0
  204. package/types/createZeroServer.test.d.ts +2 -0
  205. package/types/createZeroServer.test.d.ts.map +1 -0
  206. package/types/createZeroServerCore.d.ts +256 -0
  207. package/types/createZeroServerCore.d.ts.map +1 -0
  208. package/types/helpers/createMutators.d.ts +1 -2
  209. package/types/helpers/createMutators.d.ts.map +1 -1
  210. package/types/httpPull/auth.test.d.ts +2 -0
  211. package/types/httpPull/auth.test.d.ts.map +1 -0
  212. package/types/httpPull/churn.test.d.ts +2 -0
  213. package/types/httpPull/churn.test.d.ts.map +1 -0
  214. package/types/httpPull/completeAck.test.d.ts +2 -0
  215. package/types/httpPull/completeAck.test.d.ts.map +1 -0
  216. package/types/httpPull/fixtureSchema.d.ts +1 -1
  217. package/types/httpPull/fixtureServer.d.ts +14 -0
  218. package/types/httpPull/fixtureServer.d.ts.map +1 -0
  219. package/types/httpPull/integration.test.d.ts +2 -0
  220. package/types/httpPull/integration.test.d.ts.map +1 -0
  221. package/types/httpPull/rebase.test.d.ts +2 -0
  222. package/types/httpPull/rebase.test.d.ts.map +1 -0
  223. package/types/httpPull/relations.test.d.ts +2 -0
  224. package/types/httpPull/relations.test.d.ts.map +1 -0
  225. package/types/httpPull/testHarness.d.ts +32 -0
  226. package/types/httpPull/testHarness.d.ts.map +1 -0
  227. package/types/index.d.ts +1 -0
  228. package/types/index.d.ts.map +1 -1
  229. package/types/server.d.ts +5 -0
  230. package/types/server.d.ts.map +1 -0
  231. package/types/server.native.d.ts +1 -0
  232. package/types/server.native.d.ts.map +1 -0
  233. package/types/sqliteRuntime.d.ts +71 -0
  234. package/types/sqliteRuntime.d.ts.map +1 -0
  235. package/types/syncHost.d.ts +42 -0
  236. package/types/syncHost.d.ts.map +1 -0
  237. package/types/syncHost.test.d.ts +2 -0
  238. package/types/syncHost.test.d.ts.map +1 -0
  239. package/types/types.d.ts +4 -0
  240. package/types/types.d.ts.map +1 -1
  241. package/dist/cjs/orez.cjs +0 -227
  242. package/dist/cjs/orez.native.js +0 -314
  243. package/dist/cjs/orez.native.js.map +0 -1
  244. package/dist/cjs/orez.test.cjs +0 -211
  245. package/dist/cjs/orez.test.native.js +0 -226
  246. package/dist/cjs/orez.test.native.js.map +0 -1
  247. package/dist/esm/orez.mjs +0 -202
  248. package/dist/esm/orez.mjs.map +0 -1
  249. package/dist/esm/orez.native.js +0 -286
  250. package/dist/esm/orez.native.js.map +0 -1
  251. package/dist/esm/orez.test.mjs +0 -188
  252. package/dist/esm/orez.test.mjs.map +0 -1
  253. package/dist/esm/orez.test.native.js +0 -200
  254. package/dist/esm/orez.test.native.js.map +0 -1
  255. package/src/orez.test.ts +0 -195
  256. package/src/orez.ts +0 -331
  257. package/types/orez.d.ts +0 -53
  258. package/types/orez.d.ts.map +0 -1
  259. package/types/orez.test.d.ts +0 -2
  260. package/types/orez.test.d.ts.map +0 -1
@@ -0,0 +1,51 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var asyncTasks_exports = {};
24
+ __export(asyncTasks_exports, {
25
+ runAsyncTaskEntries: () => runAsyncTaskEntries
26
+ });
27
+ module.exports = __toCommonJS(asyncTasks_exports);
28
+ async function runAsyncTaskEntries(entries, {
29
+ background
30
+ } = {}) {
31
+ const barriers = entries.filter(entry => entry.barrier);
32
+ const backgroundEntries = entries.filter(entry => !entry.barrier);
33
+ await Promise.all(barriers.map(({
34
+ task
35
+ }) => task()));
36
+ if (backgroundEntries.length === 0) return;
37
+ const promise = Promise.allSettled(backgroundEntries.map(({
38
+ task
39
+ }) => Promise.resolve().then(task))).then(results => {
40
+ for (const result of results) {
41
+ if (result.status === "rejected") {
42
+ console.error("[on-zero] async task failed", result.reason);
43
+ }
44
+ }
45
+ });
46
+ if (background) {
47
+ background(promise);
48
+ } else {
49
+ await promise;
50
+ }
51
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var asyncTasks_exports = {};
26
+ __export(asyncTasks_exports, {
27
+ runAsyncTaskEntries: () => runAsyncTaskEntries
28
+ });
29
+ module.exports = __toCommonJS(asyncTasks_exports);
30
+ async function runAsyncTaskEntries(entries) {
31
+ var {
32
+ background
33
+ } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
34
+ var barriers = entries.filter(function (entry) {
35
+ return entry.barrier;
36
+ });
37
+ var backgroundEntries = entries.filter(function (entry) {
38
+ return !entry.barrier;
39
+ });
40
+ await Promise.all(barriers.map(function (param) {
41
+ var {
42
+ task
43
+ } = param;
44
+ return task();
45
+ }));
46
+ if (backgroundEntries.length === 0) return;
47
+ var promise = Promise.allSettled(backgroundEntries.map(function (param) {
48
+ var {
49
+ task
50
+ } = param;
51
+ return Promise.resolve().then(task);
52
+ })).then(function (results) {
53
+ var _iteratorNormalCompletion = true,
54
+ _didIteratorError = false,
55
+ _iteratorError = void 0;
56
+ try {
57
+ for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
58
+ var result = _step.value;
59
+ if (result.status === "rejected") {
60
+ console.error("[on-zero] async task failed", result.reason);
61
+ }
62
+ }
63
+ } catch (err) {
64
+ _didIteratorError = true;
65
+ _iteratorError = err;
66
+ } finally {
67
+ try {
68
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
69
+ _iterator.return();
70
+ }
71
+ } finally {
72
+ if (_didIteratorError) {
73
+ throw _iteratorError;
74
+ }
75
+ }
76
+ }
77
+ });
78
+ if (background) {
79
+ background(promise);
80
+ } else {
81
+ await promise;
82
+ }
83
+ }
84
+ //# sourceMappingURL=asyncTasks.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","asyncTasks_exports","__export","runAsyncTaskEntries","module","exports","entries","background","arguments","length","barriers","filter","entry","barrier","backgroundEntries","Promise","all","map","param","task","promise","allSettled","resolve","then","results","_iteratorNormalCompletion","_didIteratorError","_iteratorError"],"sources":["../../src/asyncTasks.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAUAC,MAAA,CAAAC,OAAA,GAAsBT,YAAA,CAAAK,kBAElB;AAEF,eAAME,mBAA0BA,CAACG,OAAA;EACjC;IAAMC;EAAA,IAAAC,SAAoB,CAAAC,MAAQ,IAAO,IAACD,SAAW,QAAM,KAAO,IAAAA,SAAA;EAElE,IAAAE,QAAM,GAAQJ,OAAI,CAAAK,MAAS,WAAYC,KAAA,EAAM;IAC7C,OAAIA,KAAA,CAAAC,OAAkB;EAEtB;EAAwB,IACtBC,iBAAkB,GAAIR,OAAG,CAAKK,MAAM,WAAQC,KAAA,EAAQ;IACpD,OAAM,CAAAA,KAAA,CAAAC,OAAY;EAClB;EACE,MAAAE,OAAI,CAAAC,GAAO,CAAAN,QAAW,CAAAO,GAAA,WAAYC,KAAA;IAChC;MAAAC;IAAA,CAAQ,GAAAD,KAAM;IAA4C,OAC5DC,IAAA;EAAA,EACF;EACF,IAACL,iBAAA,CAAAL,MAAA;EAED,IAAIW,OAAA,GAAAL,OAAY,CAAAM,UAAA,CAAAP,iBAAA,CAAAG,GAAA,WAAAC,KAAA;IACd;MAAAC;IAAW,IAAAD,KAAO;IACpB,OAAOH,OAAA,CAAAO,OAAA,GAAAC,IAAA,CAAAJ,IAAA;EACL,IAAAI,IAAM,WAAAC,OAAA;IACR,IAAAC,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IACF","ignoreList":[]}
@@ -0,0 +1,269 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var createZeroDirectServer_exports = {};
24
+ __export(createZeroDirectServer_exports, {
25
+ createAsyncTaskCollector: () => createAsyncTaskCollector,
26
+ createZeroDirectServer: () => createZeroDirectServer,
27
+ createZeroDirectServerRuntime: () => createZeroDirectServerRuntime,
28
+ resolveServerQuery: () => resolveServerQuery
29
+ });
30
+ module.exports = __toCommonJS(createZeroDirectServer_exports);
31
+ var import_zero = require("@rocicorp/zero");
32
+ var import_asyncTasks = require("./asyncTasks.cjs");
33
+ var import_createPermissions = require("./createPermissions.cjs");
34
+ var import_createMutators = require("./helpers/createMutators.cjs");
35
+ var import_mutatorContext = require("./helpers/mutatorContext.cjs");
36
+ var import_queryContext = require("./helpers/queryContext.cjs");
37
+ var import_modelRegistry = require("./modelRegistry.cjs");
38
+ var import_run = require("./run.cjs");
39
+ var import_state = require("./state.cjs");
40
+ var import_where = require("./where.cjs");
41
+ var import_zeroRunner = require("./zeroRunner.cjs");
42
+ function resolveServerQuery({
43
+ authData,
44
+ name,
45
+ args,
46
+ queries,
47
+ permissions,
48
+ validateQuery
49
+ }) {
50
+ if (name.startsWith("permission.")) {
51
+ const table = name.slice("permission.".length);
52
+ const {
53
+ objOrId
54
+ } = args;
55
+ const permission = (0, import_modelRegistry.getMutationsPermissions)(table);
56
+ if (!permission) {
57
+ throw new Error(`[permission] no permission defined for table: ${table}`);
58
+ }
59
+ (0, import_where.setEvaluatingPermission)(true);
60
+ try {
61
+ return (0, import_state.getZQL)()[table].where(eb => {
62
+ return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
63
+ }).one();
64
+ } finally {
65
+ (0, import_where.setEvaluatingPermission)(false);
66
+ }
67
+ }
68
+ if (validateQuery) {
69
+ validateQuery({
70
+ authData,
71
+ queryName: name,
72
+ params: args
73
+ });
74
+ }
75
+ const query = (0, import_zero.mustGetQuery)(queries, name);
76
+ return query.fn({
77
+ args,
78
+ ctx: authData
79
+ });
80
+ }
81
+ function createAsyncTaskCollector() {
82
+ const committed = [];
83
+ let attempt;
84
+ let completedAttempt;
85
+ const enqueueTask = (task, opts) => {
86
+ const entries = attempt ?? committed;
87
+ entries.push({
88
+ task,
89
+ barrier: opts?.barrier === true
90
+ });
91
+ };
92
+ const lifecycle = {
93
+ beginAttempt() {
94
+ attempt = [];
95
+ completedAttempt = void 0;
96
+ },
97
+ completeAttempt() {
98
+ completedAttempt = attempt;
99
+ attempt = void 0;
100
+ },
101
+ rollbackAttempt() {
102
+ attempt = void 0;
103
+ completedAttempt = void 0;
104
+ },
105
+ commitTransaction() {
106
+ if (completedAttempt) committed.push(...completedAttempt);
107
+ completedAttempt = void 0;
108
+ },
109
+ rollbackTransaction() {
110
+ attempt = void 0;
111
+ completedAttempt = void 0;
112
+ }
113
+ };
114
+ return {
115
+ committed,
116
+ enqueueTask,
117
+ lifecycle
118
+ };
119
+ }
120
+ function createZeroDirectServerRuntime({
121
+ createDatabase,
122
+ createServerActions,
123
+ defaultAllowAdminRole = "all",
124
+ defaultMutateAuthData = {},
125
+ models,
126
+ mutations: mutationValidators,
127
+ queries,
128
+ schema,
129
+ validateMutation,
130
+ validateQuery
131
+ }) {
132
+ (0, import_state.setSchema)(schema, (0, import_zero.createBuilder)(schema));
133
+ (0, import_state.setEnvironment)("server");
134
+ const permissions = (0, import_createPermissions.createPermissions)({
135
+ environment: "server",
136
+ schema,
137
+ adminRoleMode: defaultAllowAdminRole
138
+ });
139
+ async function runTransaction(database, query2) {
140
+ try {
141
+ if ((0, import_mutatorContext.isInZeroMutation)()) {
142
+ const {
143
+ tx
144
+ } = (0, import_mutatorContext.mutatorContext)();
145
+ return await query2(tx);
146
+ }
147
+ return await database.transaction(query2, dummyTransactionInput);
148
+ } catch (err) {
149
+ if (err?.name !== "PermissionError") {
150
+ console.error(`Error running transaction(): ${err}`);
151
+ }
152
+ throw err;
153
+ }
154
+ }
155
+ async function transaction(query2) {
156
+ return runTransaction(createDatabase(), query2);
157
+ }
158
+ async function runMutate(modelName, mutatorName, mutatorArg, options) {
159
+ let authData = options?.authData;
160
+ if (!authData) {
161
+ const scoped = (0, import_mutatorContext.getScopedAuthData)();
162
+ if (scoped) authData = scoped;
163
+ }
164
+ const tasks = createAsyncTaskCollector();
165
+ const mutators = (0, import_createMutators.createMutators)({
166
+ models,
167
+ environment: "server",
168
+ enqueueTask: tasks.enqueueTask,
169
+ authData: {
170
+ ...defaultMutateAuthData,
171
+ ...authData
172
+ },
173
+ createServerActions,
174
+ can: permissions.can,
175
+ validateMutation,
176
+ mutationValidators
177
+ });
178
+ const modelMutators = mutators[modelName];
179
+ const mutator = modelMutators[mutatorName];
180
+ await runTransaction(createDatabaseWithLifecycle(createDatabase(), tasks.lifecycle), async tx => {
181
+ await mutator(tx, mutatorArg);
182
+ });
183
+ if (tasks.committed.length) {
184
+ const resolvedAuth = authData ?? null;
185
+ const entries = tasks.committed.map(entry => ({
186
+ ...entry,
187
+ task: () => (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, entry.task)
188
+ }));
189
+ if (options?.awaitEffects) {
190
+ await Promise.all(entries.map(({
191
+ task
192
+ }) => task()));
193
+ } else {
194
+ await (0, import_asyncTasks.runAsyncTaskEntries)(entries, {
195
+ background: () => void 0
196
+ });
197
+ }
198
+ }
199
+ }
200
+ const mutate = new Proxy({}, {
201
+ get(_, modelName) {
202
+ return new Proxy({}, {
203
+ get(_2, mutatorName) {
204
+ return (arg, options) => runMutate(modelName, mutatorName, arg, options);
205
+ }
206
+ });
207
+ }
208
+ });
209
+ function query(cb, authData) {
210
+ const run = () => transaction(async tx => {
211
+ return tx.run(cb((0, import_state.getZQL)()));
212
+ });
213
+ if (authData !== void 0) {
214
+ return (0, import_queryContext.runWithQueryContext)({
215
+ authData
216
+ }, run);
217
+ }
218
+ return run();
219
+ }
220
+ if (queries) {
221
+ (0, import_run.setCustomQueries)(queries);
222
+ }
223
+ (0, import_zeroRunner.setRunner)(queryObj => {
224
+ return transaction(async tx => {
225
+ return tx.run(queryObj);
226
+ });
227
+ });
228
+ return {
229
+ permissions,
230
+ server: {
231
+ transaction,
232
+ mutate,
233
+ query
234
+ }
235
+ };
236
+ }
237
+ function createZeroDirectServer(options) {
238
+ return createZeroDirectServerRuntime(options).server;
239
+ }
240
+ function createDatabaseWithLifecycle(database, lifecycle) {
241
+ return {
242
+ async transaction(callback, input) {
243
+ try {
244
+ const value = await database.transaction(async (tx, hooks) => {
245
+ lifecycle.beginAttempt();
246
+ try {
247
+ const result = await callback(tx, hooks);
248
+ lifecycle.completeAttempt();
249
+ return result;
250
+ } catch (error) {
251
+ lifecycle.rollbackAttempt();
252
+ throw error;
253
+ }
254
+ }, input);
255
+ lifecycle.commitTransaction();
256
+ return value;
257
+ } catch (error) {
258
+ lifecycle.rollbackTransaction();
259
+ throw error;
260
+ }
261
+ }
262
+ };
263
+ }
264
+ const dummyTransactionInput = {
265
+ clientGroupID: "unused",
266
+ clientID: "unused",
267
+ mutationID: 42,
268
+ upstreamSchema: "unused"
269
+ };
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var createZeroDirectServer_exports = {};
26
+ __export(createZeroDirectServer_exports, {
27
+ createAsyncTaskCollector: () => createAsyncTaskCollector,
28
+ createZeroDirectServer: () => createZeroDirectServer,
29
+ createZeroDirectServerRuntime: () => createZeroDirectServerRuntime,
30
+ resolveServerQuery: () => resolveServerQuery
31
+ });
32
+ module.exports = __toCommonJS(createZeroDirectServer_exports);
33
+ var import_zero = require("@rocicorp/zero");
34
+ var import_asyncTasks = require("./asyncTasks.native.js");
35
+ var import_createPermissions = require("./createPermissions.native.js");
36
+ var import_createMutators = require("./helpers/createMutators.native.js");
37
+ var import_mutatorContext = require("./helpers/mutatorContext.native.js");
38
+ var import_queryContext = require("./helpers/queryContext.native.js");
39
+ var import_modelRegistry = require("./modelRegistry.native.js");
40
+ var import_run = require("./run.native.js");
41
+ var import_state = require("./state.native.js");
42
+ var import_where = require("./where.native.js");
43
+ var import_zeroRunner = require("./zeroRunner.native.js");
44
+ function resolveServerQuery(param) {
45
+ var {
46
+ authData,
47
+ name,
48
+ args,
49
+ queries,
50
+ permissions,
51
+ validateQuery
52
+ } = param;
53
+ if (name.startsWith("permission.")) {
54
+ var table = name.slice("permission.".length);
55
+ var {
56
+ objOrId
57
+ } = args;
58
+ var permission = (0, import_modelRegistry.getMutationsPermissions)(table);
59
+ if (!permission) {
60
+ throw new Error(`[permission] no permission defined for table: ${table}`);
61
+ }
62
+ (0, import_where.setEvaluatingPermission)(true);
63
+ try {
64
+ return (0, import_state.getZQL)()[table].where(function (eb) {
65
+ return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
66
+ }).one();
67
+ } finally {
68
+ (0, import_where.setEvaluatingPermission)(false);
69
+ }
70
+ }
71
+ if (validateQuery) {
72
+ validateQuery({
73
+ authData,
74
+ queryName: name,
75
+ params: args
76
+ });
77
+ }
78
+ var query = (0, import_zero.mustGetQuery)(queries, name);
79
+ return query.fn({
80
+ args,
81
+ ctx: authData
82
+ });
83
+ }
84
+ function createAsyncTaskCollector() {
85
+ var committed = [];
86
+ var attempt;
87
+ var completedAttempt;
88
+ var enqueueTask = function (task, opts) {
89
+ var entries = attempt !== null && attempt !== void 0 ? attempt : committed;
90
+ entries.push({
91
+ task,
92
+ barrier: (opts === null || opts === void 0 ? void 0 : opts.barrier) === true
93
+ });
94
+ };
95
+ var lifecycle = {
96
+ beginAttempt() {
97
+ attempt = [];
98
+ completedAttempt = void 0;
99
+ },
100
+ completeAttempt() {
101
+ completedAttempt = attempt;
102
+ attempt = void 0;
103
+ },
104
+ rollbackAttempt() {
105
+ attempt = void 0;
106
+ completedAttempt = void 0;
107
+ },
108
+ commitTransaction() {
109
+ if (completedAttempt) committed.push(...completedAttempt);
110
+ completedAttempt = void 0;
111
+ },
112
+ rollbackTransaction() {
113
+ attempt = void 0;
114
+ completedAttempt = void 0;
115
+ }
116
+ };
117
+ return {
118
+ committed,
119
+ enqueueTask,
120
+ lifecycle
121
+ };
122
+ }
123
+ function createZeroDirectServerRuntime(param) {
124
+ var {
125
+ createDatabase,
126
+ createServerActions,
127
+ defaultAllowAdminRole = "all",
128
+ defaultMutateAuthData = {},
129
+ models,
130
+ mutations: mutationValidators,
131
+ queries,
132
+ schema,
133
+ validateMutation,
134
+ validateQuery
135
+ } = param;
136
+ (0, import_state.setSchema)(schema, (0, import_zero.createBuilder)(schema));
137
+ (0, import_state.setEnvironment)("server");
138
+ var permissions = (0, import_createPermissions.createPermissions)({
139
+ environment: "server",
140
+ schema,
141
+ adminRoleMode: defaultAllowAdminRole
142
+ });
143
+ async function runTransaction(database, query2) {
144
+ try {
145
+ if ((0, import_mutatorContext.isInZeroMutation)()) {
146
+ var {
147
+ tx
148
+ } = (0, import_mutatorContext.mutatorContext)();
149
+ return await query2(tx);
150
+ }
151
+ return await database.transaction(query2, dummyTransactionInput);
152
+ } catch (err) {
153
+ if ((err === null || err === void 0 ? void 0 : err.name) !== "PermissionError") {
154
+ console.error(`Error running transaction(): ${err}`);
155
+ }
156
+ throw err;
157
+ }
158
+ }
159
+ async function transaction(query2) {
160
+ return runTransaction(createDatabase(), query2);
161
+ }
162
+ async function runMutate(modelName, mutatorName, mutatorArg, options) {
163
+ var authData = options === null || options === void 0 ? void 0 : options.authData;
164
+ if (!authData) {
165
+ var scoped = (0, import_mutatorContext.getScopedAuthData)();
166
+ if (scoped) authData = scoped;
167
+ }
168
+ var tasks = createAsyncTaskCollector();
169
+ var mutators = (0, import_createMutators.createMutators)({
170
+ models,
171
+ environment: "server",
172
+ enqueueTask: tasks.enqueueTask,
173
+ authData: {
174
+ ...defaultMutateAuthData,
175
+ ...authData
176
+ },
177
+ createServerActions,
178
+ can: permissions.can,
179
+ validateMutation,
180
+ mutationValidators
181
+ });
182
+ var modelMutators = mutators[modelName];
183
+ var mutator = modelMutators[mutatorName];
184
+ await runTransaction(createDatabaseWithLifecycle(createDatabase(), tasks.lifecycle), async function (tx) {
185
+ await mutator(tx, mutatorArg);
186
+ });
187
+ if (tasks.committed.length) {
188
+ var resolvedAuth = authData !== null && authData !== void 0 ? authData : null;
189
+ var entries = tasks.committed.map(function (entry) {
190
+ return {
191
+ ...entry,
192
+ task: function () {
193
+ return (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, entry.task);
194
+ }
195
+ };
196
+ });
197
+ if (options === null || options === void 0 ? void 0 : options.awaitEffects) {
198
+ await Promise.all(entries.map(function (param2) {
199
+ var {
200
+ task
201
+ } = param2;
202
+ return task();
203
+ }));
204
+ } else {
205
+ await (0, import_asyncTasks.runAsyncTaskEntries)(entries, {
206
+ background: function () {
207
+ return void 0;
208
+ }
209
+ });
210
+ }
211
+ }
212
+ }
213
+ var mutate = new Proxy({}, {
214
+ get(_, modelName) {
215
+ return new Proxy({}, {
216
+ get(_2, mutatorName) {
217
+ return function (arg, options) {
218
+ return runMutate(modelName, mutatorName, arg, options);
219
+ };
220
+ }
221
+ });
222
+ }
223
+ });
224
+ function query(cb, authData) {
225
+ var run = function () {
226
+ return transaction(async function (tx) {
227
+ return tx.run(cb((0, import_state.getZQL)()));
228
+ });
229
+ };
230
+ if (authData !== void 0) {
231
+ return (0, import_queryContext.runWithQueryContext)({
232
+ authData
233
+ }, run);
234
+ }
235
+ return run();
236
+ }
237
+ if (queries) {
238
+ (0, import_run.setCustomQueries)(queries);
239
+ }
240
+ (0, import_zeroRunner.setRunner)(function (queryObj) {
241
+ return transaction(async function (tx) {
242
+ return tx.run(queryObj);
243
+ });
244
+ });
245
+ return {
246
+ permissions,
247
+ server: {
248
+ transaction,
249
+ mutate,
250
+ query
251
+ }
252
+ };
253
+ }
254
+ function createZeroDirectServer(options) {
255
+ return createZeroDirectServerRuntime(options).server;
256
+ }
257
+ function createDatabaseWithLifecycle(database, lifecycle) {
258
+ return {
259
+ async transaction(callback, input) {
260
+ try {
261
+ var value = await database.transaction(async function (tx, hooks) {
262
+ lifecycle.beginAttempt();
263
+ try {
264
+ var result = await callback(tx, hooks);
265
+ lifecycle.completeAttempt();
266
+ return result;
267
+ } catch (error) {
268
+ lifecycle.rollbackAttempt();
269
+ throw error;
270
+ }
271
+ }, input);
272
+ lifecycle.commitTransaction();
273
+ return value;
274
+ } catch (error) {
275
+ lifecycle.rollbackTransaction();
276
+ throw error;
277
+ }
278
+ }
279
+ };
280
+ }
281
+ var dummyTransactionInput = {
282
+ clientGroupID: "unused",
283
+ clientID: "unused",
284
+ mutationID: 42,
285
+ upstreamSchema: "unused"
286
+ };
287
+ //# sourceMappingURL=createZeroDirectServer.native.js.map