on-zero 0.6.12 → 0.6.13

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 (131) hide show
  1. package/dist/cjs/createZeroSQLiteServer.cjs +319 -0
  2. package/dist/cjs/createZeroSQLiteServer.native.js +440 -0
  3. package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
  4. package/dist/cjs/createZeroSQLiteServer.test.cjs +429 -0
  5. package/dist/cjs/createZeroSQLiteServer.test.native.js +466 -0
  6. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
  7. package/dist/cjs/createZeroServer.cjs +20 -234
  8. package/dist/cjs/createZeroServer.native.js +24 -250
  9. package/dist/cjs/createZeroServer.native.js.map +1 -1
  10. package/dist/cjs/createZeroServer.test.cjs +35 -1
  11. package/dist/cjs/createZeroServer.test.native.js +38 -1
  12. package/dist/cjs/createZeroServer.test.native.js.map +1 -1
  13. package/dist/cjs/createZeroServerCore.cjs +362 -0
  14. package/dist/cjs/createZeroServerCore.native.js +389 -0
  15. package/dist/cjs/createZeroServerCore.native.js.map +1 -0
  16. package/dist/cjs/generate-lite.cjs +1 -0
  17. package/dist/cjs/generate-lite.native.js +1 -0
  18. package/dist/cjs/generate-lite.native.js.map +1 -1
  19. package/dist/cjs/generate-lite.test.cjs +5 -1
  20. package/dist/cjs/generate-lite.test.native.js +5 -1
  21. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  22. package/dist/cjs/generate.cjs +20 -11
  23. package/dist/cjs/generate.native.js +29 -21
  24. package/dist/cjs/generate.native.js.map +1 -1
  25. package/dist/cjs/generate.test.cjs +110 -0
  26. package/dist/cjs/generate.test.native.js +110 -0
  27. package/dist/cjs/generate.test.native.js.map +1 -1
  28. package/dist/cjs/httpPull/transport.test.cjs +5 -4
  29. package/dist/cjs/httpPull/transport.test.native.js +6 -5
  30. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  31. package/dist/cjs/httpPullTransport.cjs +2 -1
  32. package/dist/cjs/httpPullTransport.native.js +3 -2
  33. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  34. package/dist/cjs/server.cjs +2 -1
  35. package/dist/cjs/syncHost.cjs +164 -0
  36. package/dist/cjs/syncHost.native.js +371 -0
  37. package/dist/cjs/syncHost.native.js.map +1 -0
  38. package/dist/cjs/syncHost.test.cjs +229 -0
  39. package/dist/cjs/syncHost.test.native.js +278 -0
  40. package/dist/cjs/syncHost.test.native.js.map +1 -0
  41. package/dist/esm/createZeroSQLiteServer.mjs +293 -0
  42. package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
  43. package/dist/esm/createZeroSQLiteServer.native.js +411 -0
  44. package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
  45. package/dist/esm/createZeroSQLiteServer.test.mjs +430 -0
  46. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
  47. package/dist/esm/createZeroSQLiteServer.test.native.js +464 -0
  48. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
  49. package/dist/esm/createZeroServer.mjs +17 -231
  50. package/dist/esm/createZeroServer.mjs.map +1 -1
  51. package/dist/esm/createZeroServer.native.js +21 -247
  52. package/dist/esm/createZeroServer.native.js.map +1 -1
  53. package/dist/esm/createZeroServer.test.mjs +35 -1
  54. package/dist/esm/createZeroServer.test.mjs.map +1 -1
  55. package/dist/esm/createZeroServer.test.native.js +38 -1
  56. package/dist/esm/createZeroServer.test.native.js.map +1 -1
  57. package/dist/esm/createZeroServerCore.mjs +336 -0
  58. package/dist/esm/createZeroServerCore.mjs.map +1 -0
  59. package/dist/esm/createZeroServerCore.native.js +360 -0
  60. package/dist/esm/createZeroServerCore.native.js.map +1 -0
  61. package/dist/esm/generate-lite.mjs +1 -0
  62. package/dist/esm/generate-lite.mjs.map +1 -1
  63. package/dist/esm/generate-lite.native.js +1 -0
  64. package/dist/esm/generate-lite.native.js.map +1 -1
  65. package/dist/esm/generate-lite.test.mjs +5 -1
  66. package/dist/esm/generate-lite.test.mjs.map +1 -1
  67. package/dist/esm/generate-lite.test.native.js +5 -1
  68. package/dist/esm/generate-lite.test.native.js.map +1 -1
  69. package/dist/esm/generate.mjs +20 -11
  70. package/dist/esm/generate.mjs.map +1 -1
  71. package/dist/esm/generate.native.js +29 -21
  72. package/dist/esm/generate.native.js.map +1 -1
  73. package/dist/esm/generate.test.mjs +87 -1
  74. package/dist/esm/generate.test.mjs.map +1 -1
  75. package/dist/esm/generate.test.native.js +87 -1
  76. package/dist/esm/generate.test.native.js.map +1 -1
  77. package/dist/esm/httpPull/transport.test.mjs +5 -4
  78. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  79. package/dist/esm/httpPull/transport.test.native.js +6 -5
  80. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  81. package/dist/esm/httpPullTransport.mjs +2 -1
  82. package/dist/esm/httpPullTransport.mjs.map +1 -1
  83. package/dist/esm/httpPullTransport.native.js +3 -2
  84. package/dist/esm/httpPullTransport.native.js.map +1 -1
  85. package/dist/esm/server.mjs +1 -0
  86. package/dist/esm/server.mjs.map +1 -1
  87. package/dist/esm/syncHost.mjs +138 -0
  88. package/dist/esm/syncHost.mjs.map +1 -0
  89. package/dist/esm/syncHost.native.js +342 -0
  90. package/dist/esm/syncHost.native.js.map +1 -0
  91. package/dist/esm/syncHost.test.mjs +206 -0
  92. package/dist/esm/syncHost.test.mjs.map +1 -0
  93. package/dist/esm/syncHost.test.native.js +252 -0
  94. package/dist/esm/syncHost.test.native.js.map +1 -0
  95. package/package.json +19 -3
  96. package/readme.md +26 -0
  97. package/src/createZeroSQLiteServer.test.ts +461 -0
  98. package/src/createZeroSQLiteServer.ts +523 -0
  99. package/src/createZeroServer.test.ts +39 -1
  100. package/src/createZeroServer.ts +35 -428
  101. package/src/createZeroServerCore.ts +557 -0
  102. package/src/generate-lite.test.ts +4 -0
  103. package/src/generate-lite.ts +1 -0
  104. package/src/generate.test.ts +87 -1
  105. package/src/generate.ts +29 -20
  106. package/src/httpPull/transport.test.ts +6 -5
  107. package/src/httpPullTransport.ts +9 -4
  108. package/src/server.ts +1 -0
  109. package/src/syncHost.test.ts +216 -0
  110. package/src/syncHost.ts +255 -0
  111. package/test-fixtures/server-return-types.ts +50 -0
  112. package/test-fixtures/tsconfig.json +13 -0
  113. package/types/createZeroSQLiteServer.d.ts +37 -0
  114. package/types/createZeroSQLiteServer.d.ts.map +1 -0
  115. package/types/createZeroSQLiteServer.test.d.ts +2 -0
  116. package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
  117. package/types/createZeroServer.d.ts +11 -293
  118. package/types/createZeroServer.d.ts.map +1 -1
  119. package/types/createZeroServerCore.d.ts +310 -0
  120. package/types/createZeroServerCore.d.ts.map +1 -0
  121. package/types/generate-lite.d.ts.map +1 -1
  122. package/types/generate.d.ts +2 -1
  123. package/types/generate.d.ts.map +1 -1
  124. package/types/httpPullTransport.d.ts +1 -0
  125. package/types/httpPullTransport.d.ts.map +1 -1
  126. package/types/server.d.ts +1 -0
  127. package/types/server.d.ts.map +1 -1
  128. package/types/syncHost.d.ts +51 -0
  129. package/types/syncHost.d.ts.map +1 -0
  130. package/types/syncHost.test.d.ts +2 -0
  131. package/types/syncHost.test.d.ts.map +1 -0
@@ -25,268 +25,54 @@ __export(createZeroServer_exports, {
25
25
  createZeroServer: () => createZeroServer
26
26
  });
27
27
  module.exports = __toCommonJS(createZeroServer_exports);
28
- var import_zero = require("@rocicorp/zero");
29
- var import_pg = require("@rocicorp/zero/pg");
30
- var import_server = require("@rocicorp/zero/server");
31
- var import_pg2 = require("@rocicorp/zero/server/adapters/pg");
28
+ var import_pg = require("@rocicorp/zero/server/adapters/pg");
32
29
  var import_helpers = require("@take-out/helpers");
33
- var import_pg3 = require("pg");
34
- var import_createPermissions = require("./createPermissions.cjs");
35
- var import_createMutators = require("./helpers/createMutators.cjs");
36
- var import_mutatorContext = require("./helpers/mutatorContext.cjs");
37
- var import_queryContext = require("./helpers/queryContext.cjs");
38
- var import_modelRegistry = require("./modelRegistry.cjs");
39
- var import_run = require("./run.cjs");
40
- var import_state = require("./state.cjs");
41
- var import_where = require("./where.cjs");
42
- var import_zeroRunner = require("./zeroRunner.cjs");
30
+ var import_pg2 = require("pg");
31
+ var import_createZeroServerCore = require("./createZeroServerCore.cjs");
43
32
  function createZeroServer({
44
- createServerActions,
45
33
  database,
46
34
  pool: externalPool,
47
- schema,
48
- models,
49
- queries,
50
- mutations: mutationValidators,
51
- validateQuery,
52
- validateMutation,
53
- defaultAllowAdminRole = "all",
54
- defaultMutateAuthData = {}
35
+ ...options
55
36
  }) {
56
- (0, import_state.setSchema)(schema);
57
- (0, import_state.setEnvironment)("server");
58
37
  let pool;
59
38
  if (externalPool) {
60
39
  pool = externalPool;
61
40
  } else {
62
- const dbString = (0, import_helpers.assertString)(database, `createZeroServer "database"`);
63
- const pgPool = new import_pg3.Pool({
41
+ const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"');
42
+ const pgPool = new import_pg2.Pool({
64
43
  connectionString: dbString,
65
- // handle self-signed certificates in production
66
44
  ssl: dbString.includes("sslmode=require") ? {
67
45
  rejectUnauthorized: false
68
46
  } : void 0
69
47
  });
70
48
  pgPool.on("error", error => {
71
- console.error(`[on-zero] pool error`, error.message);
49
+ console.error("[on-zero] pool error", error.message);
72
50
  });
73
51
  pgPool.on("connect", client => {
74
52
  client.on("error", error => {
75
- console.error(`[on-zero] client error`, error.message);
53
+ console.error("[on-zero] client error", error.message);
76
54
  });
77
55
  });
78
56
  pool = pgPool;
79
57
  }
80
- const zeroDb = (0, import_pg2.zeroNodePg)(schema, pool);
81
- const permissions = (0, import_createPermissions.createPermissions)({
82
- environment: "server",
83
- schema,
84
- adminRoleMode: defaultAllowAdminRole
85
- });
86
- const processor = new import_pg.PushProcessor(zeroDb);
87
- const handleMutationRequest = async ({
88
- authData,
89
- request,
90
- skipAsyncTasks
91
- }) => {
92
- const asyncTasks = [];
93
- const recoveryRequest = request.clone();
94
- const mutators = (0, import_createMutators.createMutators)({
95
- asyncTasks,
96
- can: permissions.can,
97
- createServerActions,
98
- environment: "server",
99
- models,
100
- authData,
101
- validateMutation,
102
- mutationValidators
103
- });
104
- const response = await processor.process(mutators, request);
105
- await persistAlreadyProcessedMutationResults(pool, recoveryRequest, response);
106
- if (!skipAsyncTasks && asyncTasks.length) {
107
- Promise.all(asyncTasks.map(task => (0, import_mutatorContext.runWithAuthScope)(authData, task))).catch(err => {
108
- console.error(`[push] async tasks failed`, err);
109
- });
110
- }
111
- return {
112
- response,
113
- asyncTasks
114
- };
115
- };
116
- const handleQueryRequest = async ({
117
- authData,
118
- request
119
- }) => {
120
- if (!queries) {
121
- throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
122
- }
123
- const handler = (name, args) => {
124
- if (name.startsWith("permission.")) {
125
- const table = name.slice("permission.".length);
126
- const {
127
- objOrId
128
- } = args;
129
- const perm = (0, import_modelRegistry.getMutationsPermissions)(table);
130
- if (!perm) {
131
- throw new Error(`[permission] no permission defined for table: ${table}`);
132
- }
133
- (0, import_where.setEvaluatingPermission)(true);
134
- try {
135
- return (0, import_state.getZQL)()[table].where(eb => {
136
- return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table);
137
- }).one();
138
- } finally {
139
- (0, import_where.setEvaluatingPermission)(false);
140
- }
141
- }
142
- if (validateQuery) {
143
- validateQuery({
144
- authData,
145
- queryName: name,
146
- params: args
147
- });
148
- }
149
- const query2 = (0, import_zero.mustGetQuery)(queries, name);
150
- return query2.fn({
151
- args,
152
- ctx: authData
153
- });
154
- };
155
- const userID = typeof authData?.id === "string" ? authData.id : void 0;
156
- const response = await (0, import_queryContext.runWithQueryContext)({
157
- authData: authData || {}
158
- }, () => userID === void 0 ? (0, import_server.handleQueryRequest)(handler, schema, request) : (0, import_server.handleQueryRequest)({
159
- handler,
160
- schema,
161
- request,
162
- userID
163
- }));
164
- return {
165
- response
166
- };
167
- };
168
- async function runMutate(modelName, mutatorName, mutatorArg, options) {
169
- let authData = options?.authData;
170
- if (!authData) {
171
- const scoped = (0, import_mutatorContext.getScopedAuthData)();
172
- if (scoped) {
173
- authData = scoped;
174
- }
175
- }
176
- const asyncTasks = [];
177
- const mutators = (0, import_createMutators.createMutators)({
178
- models,
179
- environment: "server",
180
- asyncTasks,
181
- authData: {
182
- ...defaultMutateAuthData,
183
- ...authData
184
- },
185
- createServerActions,
186
- can: permissions.can,
187
- validateMutation,
188
- mutationValidators
189
- });
190
- const modelMutators = mutators[modelName];
191
- const mutator = modelMutators[mutatorName];
192
- await transaction(async tx => {
193
- await mutator(tx, mutatorArg);
194
- });
195
- if (asyncTasks.length) {
196
- const resolvedAuth = authData ?? null;
197
- const promise = Promise.all(asyncTasks.map(t => (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, t)));
198
- if (options?.awaitEffects) {
199
- await promise;
200
- } else {
201
- promise.catch(err => {
202
- console.error(`[mutate] async tasks failed`, err);
203
- });
204
- }
205
- }
206
- }
207
- const mutate = new Proxy({}, {
208
- get(_, modelName) {
209
- return new Proxy({}, {
210
- get(_2, mutatorName) {
211
- return (arg, options) => runMutate(modelName, mutatorName, arg, options);
212
- }
213
- });
214
- }
215
- });
216
- async function transaction(query2) {
217
- try {
218
- if ((0, import_mutatorContext.isInZeroMutation)()) {
219
- const {
220
- tx
221
- } = (0, import_mutatorContext.mutatorContext)();
222
- return await query2(tx);
223
- }
224
- const output = await zeroDb.transaction(query2, dummyTransactionInput);
225
- return output;
226
- } catch (err) {
227
- if (err?.name !== "PermissionError") {
228
- console.error(`Error running transaction(): ${err}`);
229
- }
230
- throw err;
231
- }
232
- }
233
- function query(cb, authData) {
234
- const run = () => transaction(async tx => {
235
- return tx.run(cb((0, import_state.getZQL)()));
236
- });
237
- if (authData !== void 0) {
238
- return (0, import_queryContext.runWithQueryContext)({
239
- authData
240
- }, run);
241
- }
242
- return run();
243
- }
244
- if (queries) {
245
- (0, import_run.setCustomQueries)(queries);
246
- }
247
- (0, import_zeroRunner.setRunner)(queryObj => {
248
- return transaction(async tx => {
249
- return tx.run(queryObj);
250
- });
251
- });
252
- const dummyTransactionInput = {
253
- clientGroupID: "unused",
254
- clientID: "unused",
255
- mutationID: 42,
256
- upstreamSchema: "unused"
257
- };
258
- return {
259
- handleMutationRequest,
260
- handleQueryRequest,
261
- transaction,
262
- mutate,
263
- query
264
- };
265
- }
266
- function alreadyProcessedMutations(response) {
267
- if (!response || typeof response !== "object") return [];
268
- const mutations = response.mutations;
269
- if (!Array.isArray(mutations)) return [];
270
- return mutations.filter(mutation => {
271
- if (!mutation || typeof mutation !== "object") return false;
272
- const id = mutation.id;
273
- const result = mutation.result;
274
- return !!id && typeof id === "object" && typeof id.clientID === "string" && typeof id.id === "number" && !!result && typeof result === "object" && result.error === "alreadyProcessed";
58
+ const databaseProvider = (0, import_pg.zeroNodePg)(options.schema, pool);
59
+ return (0, import_createZeroServerCore.createZeroServerCore)({
60
+ ...options,
61
+ createDatabase: () => databaseProvider,
62
+ persistAlreadyProcessed: args => persistAlreadyProcessedMutationResults(pool, args)
275
63
  });
276
64
  }
277
- async function persistAlreadyProcessedMutationResults(pool, request, response) {
278
- const mutations = alreadyProcessedMutations(response);
279
- if (mutations.length === 0) return;
280
- const schema = new URL(request.url).searchParams.get("schema");
281
- if (!schema) return;
282
- const body = await request.json();
283
- if (typeof body.clientGroupID !== "string") return;
284
- const table = `${quotePgIdentifier(schema)}."mutations"`;
65
+ async function persistAlreadyProcessedMutationResults(pool, {
66
+ clientGroupID,
67
+ mutations,
68
+ upstreamSchema
69
+ }) {
70
+ const table = `${quotePgIdentifier(upstreamSchema)}."mutations"`;
285
71
  const values = mutations.map((_, index) => {
286
72
  const offset = index * 4;
287
73
  return `($${offset + 1}, $${offset + 2}, $${offset + 3}, $${offset + 4}::json)`;
288
74
  }).join(", ");
289
- const params = mutations.flatMap(mutation => [body.clientGroupID, mutation.id.clientID, mutation.id.id, JSON.stringify(mutation.result)]);
75
+ const params = mutations.flatMap(mutation => [clientGroupID, mutation.id.clientID, mutation.id.id, JSON.stringify(mutation.result)]);
290
76
  await pool.query(`INSERT INTO ${table} ("clientGroupID", "clientID", "mutationID", "result")
291
77
  VALUES ${values}
292
78
  ON CONFLICT ("clientGroupID", "clientID", "mutationID") DO NOTHING`, params);
@@ -27,287 +27,61 @@ __export(createZeroServer_exports, {
27
27
  createZeroServer: () => createZeroServer
28
28
  });
29
29
  module.exports = __toCommonJS(createZeroServer_exports);
30
- var import_zero = require("@rocicorp/zero");
31
- var import_pg = require("@rocicorp/zero/pg");
32
- var import_server = require("@rocicorp/zero/server");
33
- var import_pg2 = require("@rocicorp/zero/server/adapters/pg");
30
+ var import_pg = require("@rocicorp/zero/server/adapters/pg");
34
31
  var import_helpers = require("@take-out/helpers");
35
- var import_pg3 = require("pg");
36
- var import_createPermissions = require("./createPermissions.native.js");
37
- var import_createMutators = require("./helpers/createMutators.native.js");
38
- var import_mutatorContext = require("./helpers/mutatorContext.native.js");
39
- var import_queryContext = require("./helpers/queryContext.native.js");
40
- var import_modelRegistry = require("./modelRegistry.native.js");
41
- var import_run = require("./run.native.js");
42
- var import_state = require("./state.native.js");
43
- var import_where = require("./where.native.js");
44
- var import_zeroRunner = require("./zeroRunner.native.js");
45
- function _type_of(obj) {
46
- "@swc/helpers - typeof";
47
-
48
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
49
- }
32
+ var import_pg2 = require("pg");
33
+ var import_createZeroServerCore = require("./createZeroServerCore.native.js");
50
34
  function createZeroServer(param) {
51
35
  var {
52
- createServerActions,
53
36
  database,
54
37
  pool: externalPool,
55
- schema,
56
- models,
57
- queries,
58
- mutations: mutationValidators,
59
- validateQuery,
60
- validateMutation,
61
- defaultAllowAdminRole = "all",
62
- defaultMutateAuthData = {}
38
+ ...options
63
39
  } = param;
64
- (0, import_state.setSchema)(schema);
65
- (0, import_state.setEnvironment)("server");
66
40
  var pool;
67
41
  if (externalPool) {
68
42
  pool = externalPool;
69
43
  } else {
70
- var dbString = (0, import_helpers.assertString)(database, `createZeroServer "database"`);
71
- var pgPool = new import_pg3.Pool({
44
+ var dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"');
45
+ var pgPool = new import_pg2.Pool({
72
46
  connectionString: dbString,
73
- // handle self-signed certificates in production
74
47
  ssl: dbString.includes("sslmode=require") ? {
75
48
  rejectUnauthorized: false
76
49
  } : void 0
77
50
  });
78
51
  pgPool.on("error", function (error) {
79
- console.error(`[on-zero] pool error`, error.message);
52
+ console.error("[on-zero] pool error", error.message);
80
53
  });
81
54
  pgPool.on("connect", function (client) {
82
55
  client.on("error", function (error) {
83
- console.error(`[on-zero] client error`, error.message);
56
+ console.error("[on-zero] client error", error.message);
84
57
  });
85
58
  });
86
59
  pool = pgPool;
87
60
  }
88
- var zeroDb = (0, import_pg2.zeroNodePg)(schema, pool);
89
- var permissions = (0, import_createPermissions.createPermissions)({
90
- environment: "server",
91
- schema,
92
- adminRoleMode: defaultAllowAdminRole
93
- });
94
- var processor = new import_pg.PushProcessor(zeroDb);
95
- var handleMutationRequest = async function (param2) {
96
- var {
97
- authData,
98
- request,
99
- skipAsyncTasks
100
- } = param2;
101
- var asyncTasks = [];
102
- var recoveryRequest = request.clone();
103
- var mutators = (0, import_createMutators.createMutators)({
104
- asyncTasks,
105
- can: permissions.can,
106
- createServerActions,
107
- environment: "server",
108
- models,
109
- authData,
110
- validateMutation,
111
- mutationValidators
112
- });
113
- var response = await processor.process(mutators, request);
114
- await persistAlreadyProcessedMutationResults(pool, recoveryRequest, response);
115
- if (!skipAsyncTasks && asyncTasks.length) {
116
- Promise.all(asyncTasks.map(function (task) {
117
- return (0, import_mutatorContext.runWithAuthScope)(authData, task);
118
- })).catch(function (err) {
119
- console.error(`[push] async tasks failed`, err);
120
- });
121
- }
122
- return {
123
- response,
124
- asyncTasks
125
- };
126
- };
127
- var handleQueryRequest = async function (param2) {
128
- var {
129
- authData,
130
- request
131
- } = param2;
132
- if (!queries) {
133
- throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
134
- }
135
- var handler = function (name, args) {
136
- if (name.startsWith("permission.")) {
137
- var table = name.slice("permission.".length);
138
- var {
139
- objOrId
140
- } = args;
141
- var perm = (0, import_modelRegistry.getMutationsPermissions)(table);
142
- if (!perm) {
143
- throw new Error(`[permission] no permission defined for table: ${table}`);
144
- }
145
- (0, import_where.setEvaluatingPermission)(true);
146
- try {
147
- return (0, import_state.getZQL)()[table].where(function (eb) {
148
- return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table);
149
- }).one();
150
- } finally {
151
- (0, import_where.setEvaluatingPermission)(false);
152
- }
153
- }
154
- if (validateQuery) {
155
- validateQuery({
156
- authData,
157
- queryName: name,
158
- params: args
159
- });
160
- }
161
- var _$query = (0, import_zero.mustGetQuery)(queries, name);
162
- return _$query.fn({
163
- args,
164
- ctx: authData
165
- });
166
- };
167
- var userID = typeof (authData === null || authData === void 0 ? void 0 : authData.id) === "string" ? authData.id : void 0;
168
- var response = await (0, import_queryContext.runWithQueryContext)({
169
- authData: authData || {}
170
- }, function () {
171
- return userID === void 0 ? (0, import_server.handleQueryRequest)(handler, schema, request) : (0, import_server.handleQueryRequest)({
172
- handler,
173
- schema,
174
- request,
175
- userID
176
- });
177
- });
178
- return {
179
- response
180
- };
181
- };
182
- async function runMutate(modelName, mutatorName, mutatorArg, options) {
183
- var authData = options === null || options === void 0 ? void 0 : options.authData;
184
- if (!authData) {
185
- var scoped = (0, import_mutatorContext.getScopedAuthData)();
186
- if (scoped) {
187
- authData = scoped;
188
- }
189
- }
190
- var asyncTasks = [];
191
- var mutators = (0, import_createMutators.createMutators)({
192
- models,
193
- environment: "server",
194
- asyncTasks,
195
- authData: {
196
- ...defaultMutateAuthData,
197
- ...authData
198
- },
199
- createServerActions,
200
- can: permissions.can,
201
- validateMutation,
202
- mutationValidators
203
- });
204
- var modelMutators = mutators[modelName];
205
- var mutator = modelMutators[mutatorName];
206
- await transaction(async function (tx) {
207
- await mutator(tx, mutatorArg);
208
- });
209
- if (asyncTasks.length) {
210
- var resolvedAuth = authData !== null && authData !== void 0 ? authData : null;
211
- var promise = Promise.all(asyncTasks.map(function (t) {
212
- return (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, t);
213
- }));
214
- if (options === null || options === void 0 ? void 0 : options.awaitEffects) {
215
- await promise;
216
- } else {
217
- promise.catch(function (err) {
218
- console.error(`[mutate] async tasks failed`, err);
219
- });
220
- }
221
- }
222
- }
223
- var mutate = new Proxy({}, {
224
- get(_, modelName) {
225
- return new Proxy({}, {
226
- get(_2, mutatorName) {
227
- return function (arg, options) {
228
- return runMutate(modelName, mutatorName, arg, options);
229
- };
230
- }
231
- });
232
- }
233
- });
234
- async function transaction(query2) {
235
- try {
236
- if ((0, import_mutatorContext.isInZeroMutation)()) {
237
- var {
238
- tx
239
- } = (0, import_mutatorContext.mutatorContext)();
240
- return await query2(tx);
241
- }
242
- var output = await zeroDb.transaction(query2, dummyTransactionInput);
243
- return output;
244
- } catch (err) {
245
- if ((err === null || err === void 0 ? void 0 : err.name) !== "PermissionError") {
246
- console.error(`Error running transaction(): ${err}`);
247
- }
248
- throw err;
249
- }
250
- }
251
- function query(cb, authData) {
252
- var run = function () {
253
- return transaction(async function (tx) {
254
- return tx.run(cb((0, import_state.getZQL)()));
255
- });
256
- };
257
- if (authData !== void 0) {
258
- return (0, import_queryContext.runWithQueryContext)({
259
- authData
260
- }, run);
61
+ var databaseProvider = (0, import_pg.zeroNodePg)(options.schema, pool);
62
+ return (0, import_createZeroServerCore.createZeroServerCore)({
63
+ ...options,
64
+ createDatabase: function () {
65
+ return databaseProvider;
66
+ },
67
+ persistAlreadyProcessed: function (args) {
68
+ return persistAlreadyProcessedMutationResults(pool, args);
261
69
  }
262
- return run();
263
- }
264
- if (queries) {
265
- (0, import_run.setCustomQueries)(queries);
266
- }
267
- (0, import_zeroRunner.setRunner)(function (queryObj) {
268
- return transaction(async function (tx) {
269
- return tx.run(queryObj);
270
- });
271
70
  });
272
- var dummyTransactionInput = {
273
- clientGroupID: "unused",
274
- clientID: "unused",
275
- mutationID: 42,
276
- upstreamSchema: "unused"
277
- };
278
- return {
279
- handleMutationRequest,
280
- handleQueryRequest,
281
- transaction,
282
- mutate,
283
- query
284
- };
285
71
  }
286
- function alreadyProcessedMutations(response) {
287
- if (!response || (typeof response === "undefined" ? "undefined" : _type_of(response)) !== "object") return [];
288
- var mutations = response.mutations;
289
- if (!Array.isArray(mutations)) return [];
290
- return mutations.filter(function (mutation) {
291
- if (!mutation || (typeof mutation === "undefined" ? "undefined" : _type_of(mutation)) !== "object") return false;
292
- var id = mutation.id;
293
- var result = mutation.result;
294
- return !!id && (typeof id === "undefined" ? "undefined" : _type_of(id)) === "object" && typeof id.clientID === "string" && typeof id.id === "number" && !!result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === "object" && result.error === "alreadyProcessed";
295
- });
296
- }
297
- async function persistAlreadyProcessedMutationResults(pool, request, response) {
298
- var mutations = alreadyProcessedMutations(response);
299
- if (mutations.length === 0) return;
300
- var schema = new URL(request.url).searchParams.get("schema");
301
- if (!schema) return;
302
- var body = await request.json();
303
- if (typeof body.clientGroupID !== "string") return;
304
- var table = `${quotePgIdentifier(schema)}."mutations"`;
72
+ async function persistAlreadyProcessedMutationResults(pool, param) {
73
+ var {
74
+ clientGroupID,
75
+ mutations,
76
+ upstreamSchema
77
+ } = param;
78
+ var table = `${quotePgIdentifier(upstreamSchema)}."mutations"`;
305
79
  var values = mutations.map(function (_, index) {
306
80
  var offset = index * 4;
307
81
  return `($${offset + 1}, $${offset + 2}, $${offset + 3}, $${offset + 4}::json)`;
308
82
  }).join(", ");
309
83
  var params = mutations.flatMap(function (mutation) {
310
- return [body.clientGroupID, mutation.id.clientID, mutation.id.id, JSON.stringify(mutation.result)];
84
+ return [clientGroupID, mutation.id.clientID, mutation.id.id, JSON.stringify(mutation.result)];
311
85
  });
312
86
  await pool.query(`INSERT INTO ${table} ("clientGroupID", "clientID", "mutationID", "result")
313
87
  VALUES ${values}
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_zero","require","import_pg","import_server","import_pg2","import_helpers","import_pg3","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_where","import_zeroRunner","_type_of","obj","Symbol","constructor","param","createServerActions","database","pool","externalPool","schema","models","queries","mutations","mutationValidators","validateQuery","validateMutation","defaultAllowAdminRole","defaultMutateAuthData","setSchema","setEnvironment","dbString","assertString","pgPool","Pool","connectionString","ssl","includes","rejectUnauthorized","on","error","console","message","client","zeroDb","zeroNodePg","permissions","createPermissions","environment","adminRoleMode","processor","PushProcessor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","recoveryRequest","clone","mutators","createMutators","can","response","process","persistAlreadyProcessedMutationResults","length","Promise","all","map","task","runWithAuthScope","catch","err","handleQueryRequest","Error","handler","name","args","startsWith","table","slice","objOrId","perm","getMutationsPermissions","setEvaluatingPermission","getZQL","where","eb","buildPermissionQuery","one","queryName","params","_$query","mustGetQuery","fn","ctx","userID","id","runWithQueryContext","runMutate","modelName","mutatorName","mutatorArg","options","scoped","getScopedAuthData","modelMutators","mutator","transaction","tx","resolvedAuth","promise","t","awaitEffects","mutate","Proxy","get","_","_2","arg","query2","isInZeroMutation","mutatorContext","output","dummyTransactionInput","query","cb","run","setCustomQueries","setRunner","queryObj","clientGroupID","clientID","mutationID","upstreamSchema","alreadyProcessedMutations","Array","isArray","filter","mutation","result","URL","url","searchParams","body","json","quotePgIdentifier","values","index","offset","join","flatMap","JSON","stringify"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_pg","require","import_helpers","import_pg2","import_createZeroServerCore","param","database","pool","externalPool","options","dbString","assertString","pgPool","Pool","connectionString","ssl","includes","rejectUnauthorized","on","error","console","message","client","databaseProvider","zeroNodePg","schema","createZeroServerCore","createDatabase","persistAlreadyProcessed","args","persistAlreadyProcessedMutationResults","clientGroupID","mutations","upstreamSchema","table","quotePgIdentifier","values","map","_","index","offset","join","params","flatMap","mutation","id","clientID","JSON","stringify","result","query"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAA2BT,YAAA,CAAAK,wBAAA;AAC3B,IAAAK,SAAA,GAAAC,OAA6B;AAC7B,IAAAC,cAAqB,GAAAD,OAAA;AAErB,IAAAE,UAAA,GAAAF,OAAA;AAmBO,IAAAG,2BAIL,GAAAH,OAAA;AAAA,SACAJ,iBAAAQ,KAAA;EACA;IAAMC,QAAA;IAAAC,IAAA,EAAAC,YAAA;IAAA,GAAAC;EAAA,IAAAJ,KAAA;EACN,IAAGE,IAAA;EACL,IAW8CC,YAAA;IAC5CD,IAAI,GAAAC,YAAA;EACJ,OAAI;IACF,IAAAE,QAAO,OAAAR,cAAA,CAAAS,YAAA,EAAAL,QAAA;IACT,IAAAM,MAAO,OAAAT,UAAA,CAAAU,IAAA;MACLC,gBAAM,EAAAJ,QAAW;MACjBK,GAAA,EAAML,QAAS,CAAAM,QAAI,kBAAK;QACtBC,kBAAkB;MAClB,SAAK;IAGP,CAAC;IACDL,MAAA,CAAOM,EAAA,CAAG,SAAS,UAACC,KAAU;MAC5BC,OAAA,CAAQD,KAAA,CAAM,wBAAwBA,KAAA,CAAME,OAAO;IACrD,CAAC;IACDT,MAAA,CAAOM,EAAA,CAAG,WAAW,UAACI,MAAW;MAC/BA,MAAA,CAAOJ,EAAA,CAAG,SAAS,UAACC,KAAU;QAC5BC,OAAA,CAAQD,KAAA,CAAM,0BAA0BA,KAAA,CAAME,OAAO;MACvD,CAAC;IACH,CAAC;IACDd,IAAA,GAAOK,MAAA;EACT;EAEA,IAAAW,gBAAM,OAAAvB,SAAmB,CAAAwB,UAAA,EAAAf,OAAW,CAAAgB,MAAQ,EAAAlB,IAAQ;EAEpD,WAAOH,2BAAA,CAAAsB,oBAAA,EAAqB;IAC1B,GAAGjB,OAAA;IACHkB,cAAA,EAAgB,SAAAA,CAAA,EAAM;MACtB,OAAAJ,gBAAyB;IAC1B;IACHK,uBAAA,WAAAA,CAAAC,IAAA;MAEA,OAAAC,sCAAe,CAAAvB,IACb,EAAAsB,IACE;IAEF;EACA;AAEI;AACA,eAAOC,sCAAqCA,CAAAvB,IAAU,EAAAF,KAAM;EAC9D,IACC;IAAA0B,aAAS;IAAAC,SAAA;IAAAC;EAAA,IAAA5B,KAAA;EACZ,IAAA6B,KAAM,MAASC,iBAAU,CAAQF,cAAc;EAAA,IAC7CG,MAAA,GAAAJ,SAAA,CAAAK,GAAA,WAAAC,CAAA,EAAAC,KAAA;IACA,IAAAC,MAAS,GAAGD,KAAA;IACZ,YAAYC,MAAA,UAAAA,MAAA,UAAAA,MAAA,UAAAA,MAAA;EAAA,EACZ,CAAAC,IAAK;EACP,IAACC,MAAA,GAAAV,SAAA,CAAAW,OAAA,WAAAC,QAAA;IAED,OAAM,CACJb,aAAe,EAAKa,QACV,CAAAC,EAAA,CAAAC,QAAM,EAAAF,QAAA,CAAAC,EAAA,CAAAA,EAAA,EAEhBE,IAAA,CAAAC,SAAA,CAAAJ,QAAA,CAAAK,MAAA,EACF;EACF;EAEA,MAAA1C,IAAS,CAAA2C,KAAA,gBAAiChB,KAAA;AACxC,cAAWE,MAAM;AACnB,0EAAAM,MAAA","ignoreList":[]}