on-zero 0.2.9 → 0.3.0

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 (242) hide show
  1. package/dist/cjs/cli.cjs +0 -0
  2. package/dist/cjs/cli.native.js +0 -0
  3. package/dist/cjs/createPermissions.native.js.map +1 -1
  4. package/dist/cjs/createSchemaFromDrizzle.cjs +30 -0
  5. package/dist/cjs/createSchemaFromDrizzle.native.js +33 -0
  6. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -0
  7. package/dist/cjs/createUseQuery.cjs +1 -1
  8. package/dist/cjs/createUseQuery.native.js +1 -1
  9. package/dist/cjs/createZeroClient.cjs +1 -1
  10. package/dist/cjs/createZeroClient.native.js +1 -1
  11. package/dist/cjs/createZeroClient.native.js.map +1 -1
  12. package/dist/cjs/createZeroServer.native.js.map +1 -1
  13. package/dist/cjs/generate.cjs +64 -12
  14. package/dist/cjs/generate.native.js +114 -12
  15. package/dist/cjs/generate.native.js.map +1 -1
  16. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  17. package/dist/cjs/index.cjs +2 -1
  18. package/dist/cjs/index.native.js +1 -0
  19. package/dist/cjs/index.native.js.map +1 -1
  20. package/dist/cjs/mutations.cjs +1 -1
  21. package/dist/cjs/mutations.native.js +1 -1
  22. package/dist/cjs/mutations.native.js.map +1 -1
  23. package/dist/cjs/server.native.js +1 -18
  24. package/dist/cjs/server.native.js.map +1 -1
  25. package/dist/cjs/vite-plugin.cjs +1 -1
  26. package/dist/cjs/vite-plugin.native.js +1 -1
  27. package/dist/cjs/vite-plugin.native.js.map +1 -1
  28. package/dist/esm/cli.mjs +0 -0
  29. package/dist/esm/cli.native.js +0 -0
  30. package/dist/esm/createPermissions.mjs.map +1 -1
  31. package/dist/esm/createPermissions.native.js.map +1 -1
  32. package/dist/esm/createSchemaFromDrizzle.mjs +5 -0
  33. package/dist/esm/createSchemaFromDrizzle.mjs.map +1 -0
  34. package/dist/esm/createSchemaFromDrizzle.native.js +5 -0
  35. package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -0
  36. package/dist/esm/createUseQuery.mjs +2 -2
  37. package/dist/esm/createUseQuery.mjs.map +1 -1
  38. package/dist/esm/createUseQuery.native.js +2 -2
  39. package/dist/esm/createUseQuery.native.js.map +1 -1
  40. package/dist/esm/createZeroClient.mjs +2 -2
  41. package/dist/esm/createZeroClient.mjs.map +1 -1
  42. package/dist/esm/createZeroClient.native.js +2 -2
  43. package/dist/esm/createZeroClient.native.js.map +1 -1
  44. package/dist/esm/createZeroServer.mjs.map +1 -1
  45. package/dist/esm/createZeroServer.native.js.map +1 -1
  46. package/dist/esm/generate.mjs +64 -13
  47. package/dist/esm/generate.mjs.map +1 -1
  48. package/dist/esm/generate.native.js +114 -13
  49. package/dist/esm/generate.native.js.map +1 -1
  50. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  51. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  52. package/dist/esm/index.js +19 -24
  53. package/dist/esm/index.js.map +1 -6
  54. package/dist/esm/index.mjs +1 -0
  55. package/dist/esm/index.mjs.map +1 -1
  56. package/dist/esm/index.native.js +1 -0
  57. package/dist/esm/index.native.js.map +1 -1
  58. package/dist/esm/mutations.mjs +1 -1
  59. package/dist/esm/mutations.mjs.map +1 -1
  60. package/dist/esm/mutations.native.js +1 -1
  61. package/dist/esm/mutations.native.js.map +1 -1
  62. package/dist/esm/server.native.js +1 -1
  63. package/dist/esm/server.native.js.map +1 -1
  64. package/dist/esm/vite-plugin.mjs +1 -1
  65. package/dist/esm/vite-plugin.mjs.map +1 -1
  66. package/dist/esm/vite-plugin.native.js +1 -1
  67. package/dist/esm/vite-plugin.native.js.map +1 -1
  68. package/package.json +10 -4
  69. package/readme.md +80 -54
  70. package/src/createPermissions.ts +4 -9
  71. package/src/createSchemaFromDrizzle.ts +3 -0
  72. package/src/createUseQuery.tsx +4 -4
  73. package/src/createZeroClient.tsx +14 -14
  74. package/src/createZeroServer.ts +12 -12
  75. package/src/generate.test.ts +32 -32
  76. package/src/generate.ts +208 -55
  77. package/src/helpers/batchQuery.ts +1 -1
  78. package/src/helpers/createMutators.ts +7 -6
  79. package/src/helpers/didRunPermissionCheck.ts +1 -1
  80. package/src/helpers/mutatorContext.ts +2 -2
  81. package/src/helpers/prettyFormatZeroQuery.ts +1 -1
  82. package/src/helpers/queryContext.ts +1 -1
  83. package/src/helpers/useZeroDebug.ts +2 -2
  84. package/src/index.ts +2 -0
  85. package/src/mutations.ts +33 -7
  86. package/src/queryRegistry.ts +1 -1
  87. package/src/resolveQuery.ts +3 -3
  88. package/src/run.ts +5 -5
  89. package/src/server.native.ts +3 -0
  90. package/src/serverWhere.ts +2 -2
  91. package/src/types.ts +4 -2
  92. package/src/vite-plugin.ts +2 -2
  93. package/src/where.ts +5 -5
  94. package/src/zeroRunner.ts +2 -2
  95. package/types/createPermissions.d.ts +1 -1
  96. package/types/createPermissions.d.ts.map +1 -1
  97. package/types/createSchemaFromDrizzle.d.ts +4 -0
  98. package/types/createSchemaFromDrizzle.d.ts.map +1 -0
  99. package/types/createUseQuery.d.ts.map +1 -1
  100. package/types/createZeroServer.d.ts +11 -11
  101. package/types/generate.d.ts +29 -0
  102. package/types/generate.d.ts.map +1 -1
  103. package/types/helpers/createMutators.d.ts.map +1 -1
  104. package/types/index.d.ts +1 -0
  105. package/types/index.d.ts.map +1 -1
  106. package/types/mutations.d.ts +4 -1
  107. package/types/mutations.d.ts.map +1 -1
  108. package/types/resolveQuery.d.ts +1 -1
  109. package/types/resolveQuery.d.ts.map +1 -1
  110. package/types/server.native.d.ts +1 -0
  111. package/types/server.native.d.ts.map +1 -0
  112. package/types/types.d.ts.map +1 -1
  113. package/dist/cjs/cli.js +0 -42
  114. package/dist/cjs/cli.js.map +0 -6
  115. package/dist/cjs/constants.js +0 -23
  116. package/dist/cjs/constants.js.map +0 -6
  117. package/dist/cjs/createPermissions.js +0 -92
  118. package/dist/cjs/createPermissions.js.map +0 -6
  119. package/dist/cjs/createUseQuery.js +0 -35
  120. package/dist/cjs/createUseQuery.js.map +0 -6
  121. package/dist/cjs/createZeroClient.js +0 -178
  122. package/dist/cjs/createZeroClient.js.map +0 -6
  123. package/dist/cjs/createZeroServer.js +0 -189
  124. package/dist/cjs/createZeroServer.js.map +0 -6
  125. package/dist/cjs/generate.js +0 -811
  126. package/dist/cjs/generate.js.map +0 -6
  127. package/dist/cjs/generate.test.js +0 -404
  128. package/dist/cjs/generate.test.js.map +0 -6
  129. package/dist/cjs/helpers/batchQuery.js +0 -41
  130. package/dist/cjs/helpers/batchQuery.js.map +0 -6
  131. package/dist/cjs/helpers/createMutators.js +0 -118
  132. package/dist/cjs/helpers/createMutators.js.map +0 -6
  133. package/dist/cjs/helpers/didRunPermissionCheck.js +0 -26
  134. package/dist/cjs/helpers/didRunPermissionCheck.js.map +0 -6
  135. package/dist/cjs/helpers/ensureLoggedIn.js +0 -25
  136. package/dist/cjs/helpers/ensureLoggedIn.js.map +0 -6
  137. package/dist/cjs/helpers/getAuth.js +0 -31
  138. package/dist/cjs/helpers/getAuth.js.map +0 -6
  139. package/dist/cjs/helpers/mutatorContext.js +0 -44
  140. package/dist/cjs/helpers/mutatorContext.js.map +0 -6
  141. package/dist/cjs/helpers/prettyFormatZeroQuery.js +0 -92
  142. package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +0 -6
  143. package/dist/cjs/helpers/queryContext.js +0 -33
  144. package/dist/cjs/helpers/queryContext.js.map +0 -6
  145. package/dist/cjs/helpers/useZeroDebug.js +0 -49
  146. package/dist/cjs/helpers/useZeroDebug.js.map +0 -6
  147. package/dist/cjs/index.js +0 -40
  148. package/dist/cjs/index.js.map +0 -6
  149. package/dist/cjs/modelRegistry.js +0 -32
  150. package/dist/cjs/modelRegistry.js.map +0 -6
  151. package/dist/cjs/mutations.js +0 -70
  152. package/dist/cjs/mutations.js.map +0 -6
  153. package/dist/cjs/queryRegistry.js +0 -32
  154. package/dist/cjs/queryRegistry.js.map +0 -6
  155. package/dist/cjs/resolveQuery.js +0 -40
  156. package/dist/cjs/resolveQuery.js.map +0 -6
  157. package/dist/cjs/run.js +0 -42
  158. package/dist/cjs/run.js.map +0 -6
  159. package/dist/cjs/server.js +0 -15
  160. package/dist/cjs/server.js.map +0 -6
  161. package/dist/cjs/serverWhere.js +0 -24
  162. package/dist/cjs/serverWhere.js.map +0 -6
  163. package/dist/cjs/serverWhere.test.js +0 -52
  164. package/dist/cjs/serverWhere.test.js.map +0 -6
  165. package/dist/cjs/state.js +0 -48
  166. package/dist/cjs/state.js.map +0 -6
  167. package/dist/cjs/types.js +0 -14
  168. package/dist/cjs/types.js.map +0 -6
  169. package/dist/cjs/usePermission.test.js +0 -29
  170. package/dist/cjs/usePermission.test.js.map +0 -6
  171. package/dist/cjs/vite-plugin.js +0 -89
  172. package/dist/cjs/vite-plugin.js.map +0 -6
  173. package/dist/cjs/where.js +0 -50
  174. package/dist/cjs/where.js.map +0 -6
  175. package/dist/cjs/zeroRunner.js +0 -35
  176. package/dist/cjs/zeroRunner.js.map +0 -6
  177. package/dist/cjs/zql.js +0 -26
  178. package/dist/cjs/zql.js.map +0 -6
  179. package/dist/esm/cli.js +0 -44
  180. package/dist/esm/cli.js.map +0 -6
  181. package/dist/esm/constants.js +0 -7
  182. package/dist/esm/constants.js.map +0 -6
  183. package/dist/esm/createPermissions.js +0 -81
  184. package/dist/esm/createPermissions.js.map +0 -6
  185. package/dist/esm/createUseQuery.js +0 -22
  186. package/dist/esm/createUseQuery.js.map +0 -6
  187. package/dist/esm/createZeroClient.js +0 -185
  188. package/dist/esm/createZeroClient.js.map +0 -6
  189. package/dist/esm/createZeroServer.js +0 -192
  190. package/dist/esm/createZeroServer.js.map +0 -6
  191. package/dist/esm/generate.js +0 -789
  192. package/dist/esm/generate.js.map +0 -6
  193. package/dist/esm/generate.test.js +0 -408
  194. package/dist/esm/generate.test.js.map +0 -6
  195. package/dist/esm/helpers/batchQuery.js +0 -25
  196. package/dist/esm/helpers/batchQuery.js.map +0 -6
  197. package/dist/esm/helpers/createMutators.js +0 -96
  198. package/dist/esm/helpers/createMutators.js.map +0 -6
  199. package/dist/esm/helpers/didRunPermissionCheck.js +0 -10
  200. package/dist/esm/helpers/didRunPermissionCheck.js.map +0 -6
  201. package/dist/esm/helpers/ensureLoggedIn.js +0 -10
  202. package/dist/esm/helpers/ensureLoggedIn.js.map +0 -6
  203. package/dist/esm/helpers/getAuth.js +0 -17
  204. package/dist/esm/helpers/getAuth.js.map +0 -6
  205. package/dist/esm/helpers/mutatorContext.js +0 -28
  206. package/dist/esm/helpers/mutatorContext.js.map +0 -6
  207. package/dist/esm/helpers/prettyFormatZeroQuery.js +0 -76
  208. package/dist/esm/helpers/prettyFormatZeroQuery.js.map +0 -6
  209. package/dist/esm/helpers/queryContext.js +0 -17
  210. package/dist/esm/helpers/queryContext.js.map +0 -6
  211. package/dist/esm/helpers/useZeroDebug.js +0 -35
  212. package/dist/esm/helpers/useZeroDebug.js.map +0 -6
  213. package/dist/esm/modelRegistry.js +0 -16
  214. package/dist/esm/modelRegistry.js.map +0 -6
  215. package/dist/esm/mutations.js +0 -56
  216. package/dist/esm/mutations.js.map +0 -6
  217. package/dist/esm/queryRegistry.js +0 -16
  218. package/dist/esm/queryRegistry.js.map +0 -6
  219. package/dist/esm/resolveQuery.js +0 -24
  220. package/dist/esm/resolveQuery.js.map +0 -6
  221. package/dist/esm/run.js +0 -27
  222. package/dist/esm/run.js.map +0 -6
  223. package/dist/esm/server.js +0 -2
  224. package/dist/esm/server.js.map +0 -6
  225. package/dist/esm/serverWhere.js +0 -8
  226. package/dist/esm/serverWhere.js.map +0 -6
  227. package/dist/esm/serverWhere.test.js +0 -55
  228. package/dist/esm/serverWhere.test.js.map +0 -6
  229. package/dist/esm/state.js +0 -33
  230. package/dist/esm/state.js.map +0 -6
  231. package/dist/esm/types.js +0 -1
  232. package/dist/esm/types.js.map +0 -6
  233. package/dist/esm/usePermission.test.js +0 -33
  234. package/dist/esm/usePermission.test.js.map +0 -6
  235. package/dist/esm/vite-plugin.js +0 -74
  236. package/dist/esm/vite-plugin.js.map +0 -6
  237. package/dist/esm/where.js +0 -36
  238. package/dist/esm/where.js.map +0 -6
  239. package/dist/esm/zeroRunner.js +0 -19
  240. package/dist/esm/zeroRunner.js.map +0 -6
  241. package/dist/esm/zql.js +0 -10
  242. package/dist/esm/zql.js.map +0 -6
@@ -1,17 +0,0 @@
1
- import { getAuthData } from "../state";
2
- import { isInZeroMutation, mutatorContext } from "./mutatorContext";
3
- import { isInQueryContext, queryAuthData } from "./queryContext";
4
- function ensureAuth() {
5
- const auth = getAuth();
6
- if (!auth)
7
- throw new Error("Not authenticated");
8
- return auth;
9
- }
10
- function getAuth() {
11
- return isInZeroMutation() ? mutatorContext().authData : isInQueryContext() ? queryAuthData() : getAuthData();
12
- }
13
- export {
14
- ensureAuth,
15
- getAuth
16
- };
17
- //# sourceMappingURL=getAuth.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/getAuth.ts"],
4
- "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,kBAAkB,qBAAqB;AAIzC,SAAS,aAAuB;AACrC,QAAM,OAAO,QAAQ;AACrB,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,mBAAmB;AAErC,SAAO;AACT;AAEO,SAAS,UAA2B;AACzC,SAAI,iBAAiB,IACZ,eAAe,EAAE,WAEtB,iBAAiB,IACZ,cAAc,IAGhB,YAAY;AACrB;",
5
- "names": []
6
- }
@@ -1,28 +0,0 @@
1
- import { createAsyncContext } from "@take-out/helpers";
2
- const asyncContext = createAsyncContext(), authScopeContext = createAsyncContext();
3
- function mutatorContext() {
4
- const currentContext = asyncContext.get();
5
- if (!currentContext)
6
- throw new Error("mutatorContext must be called within a mutator");
7
- return currentContext;
8
- }
9
- function isInZeroMutation() {
10
- return !!asyncContext.get();
11
- }
12
- function runWithContext(context, fn) {
13
- return asyncContext.run(context, fn);
14
- }
15
- function getScopedAuthData() {
16
- return isInZeroMutation() ? mutatorContext().authData : authScopeContext.get() ?? void 0;
17
- }
18
- function runWithAuthScope(authData, fn) {
19
- return authScopeContext.run(authData, fn);
20
- }
21
- export {
22
- getScopedAuthData,
23
- isInZeroMutation,
24
- mutatorContext,
25
- runWithAuthScope,
26
- runWithContext
27
- };
28
- //# sourceMappingURL=mutatorContext.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/mutatorContext.ts"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AAInC,MAAM,eAAe,mBAAmC,GAGlD,mBAAmB,mBAAoC;AAEtD,SAAS,iBAAiC;AAC/C,QAAM,iBAAiB,aAAa,IAAI;AACxC,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,SAAO;AACT;AAEO,SAAS,mBAAmB;AACjC,SAAO,CAAC,CAAC,aAAa,IAAI;AAC5B;AAEO,SAAS,eACd,SACA,IACY;AACZ,SAAO,aAAa,IAAI,SAAS,EAAE;AACrC;AAGO,SAAS,oBAAiD;AAC/D,SAAI,iBAAiB,IACZ,eAAe,EAAE,WAEnB,iBAAiB,IAAI,KAAK;AACnC;AAEO,SAAS,iBACd,UACA,IACY;AACZ,SAAO,iBAAiB,IAAI,UAAU,EAAE;AAC1C;",
5
- "names": []
6
- }
@@ -1,76 +0,0 @@
1
- import { ellipsis } from "@take-out/helpers";
2
- const prettyFormatZeroQuery = (query, mode = "full") => {
3
- const astObject = query._completeAst?.();
4
- return astObject ? mode === "minimal" ? prettyFormatMinimal(astObject) : prettyFormatFull(astObject) : "";
5
- }, prettyFormatFull = (astObject, indent = 0) => {
6
- if (!astObject || !astObject.table) return "";
7
- const spaces = " ".repeat(indent);
8
- let query = astObject.table, hasChainedMethods = !1;
9
- if (astObject.where) {
10
- const whereClause = formatWhere(astObject.where);
11
- hasChainedMethods ? query += `
12
- ${spaces} ${whereClause}` : (query += whereClause, hasChainedMethods = !0);
13
- }
14
- if (astObject.limit) {
15
- const limitClause = `.limit(${astObject.limit})`;
16
- hasChainedMethods ? query += `
17
- ${spaces} ${limitClause}` : (query += limitClause, hasChainedMethods = !0);
18
- }
19
- if (astObject.orderBy && astObject.orderBy.length > 0) {
20
- const orderByClause = `.orderBy(${astObject.orderBy.map(([field, direction]) => `${field}, ${direction}`).join(", ")})`;
21
- hasChainedMethods ? query += `
22
- ${spaces} ${orderByClause}` : (query += orderByClause, hasChainedMethods = !0);
23
- }
24
- if (astObject.related && astObject.related.length > 0) {
25
- astObject.related.forEach((rel) => {
26
- if (rel.subquery) {
27
- const alias = rel.subquery.alias || rel.subquery.table, subQuery = prettyFormatFull(rel.subquery, indent + 1);
28
- query += `
29
- ${spaces} .related(${alias}, q => q.${subQuery}`;
30
- }
31
- });
32
- const closingParens = ")".repeat(astObject.related.length);
33
- query += `
34
- ${spaces}${closingParens}`;
35
- }
36
- return query;
37
- }, prettyFormatMinimal = (astObject) => {
38
- if (!astObject || !astObject.table) return "";
39
- let query = astObject.table;
40
- if (astObject.where && (query += formatWhere(astObject.where).replace(".where(", "(")), astObject.related && astObject.related.length > 0) {
41
- const subQueries = collectSubQueryTables(astObject.related), count = subQueries.length, tableNames = subQueries.join(", ");
42
- query += ` (+${count}: ${ellipsis(tableNames, 30)})`;
43
- }
44
- return query;
45
- }, collectSubQueryTables = (related) => {
46
- const tables = [];
47
- return related.forEach((rel) => {
48
- if (rel.subquery) {
49
- const tableName = rel.subquery.alias || rel.subquery.table;
50
- tables.push(tableName), rel.subquery.related && rel.subquery.related.length > 0 && tables.push(...collectSubQueryTables(rel.subquery.related));
51
- }
52
- }), tables;
53
- }, formatWhere = (where) => {
54
- if (!where) return "";
55
- if (where.type === "simple") {
56
- const column = where.left?.name || where.left, value = where.right?.value !== void 0 ? where.right.value : where.right, op = where.op || "=";
57
- return column === "id" && op === "=" && (typeof value == "string" || typeof value == "number") ? `(${value})` : op === "=" ? `.where(${column}, ${value})` : `.where(${column}, ${op}, ${value})`;
58
- }
59
- if (where.type === "and" && where.conditions) {
60
- let result = "";
61
- return where.conditions.forEach((condition, index) => {
62
- index === 0 ? result += formatWhere(condition) : result += `.and(${formatWhere(condition).slice(1)})`;
63
- }), result;
64
- }
65
- if (where.type === "or" && where.conditions) {
66
- let result = "";
67
- return where.conditions.forEach((condition, index) => {
68
- index === 0 ? result += formatWhere(condition) : result += `.or(${formatWhere(condition).slice(1)})`;
69
- }), result;
70
- }
71
- return "";
72
- };
73
- export {
74
- prettyFormatZeroQuery
75
- };
76
- //# sourceMappingURL=prettyFormatZeroQuery.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/prettyFormatZeroQuery.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,17 +0,0 @@
1
- import { createAsyncContext } from "@take-out/helpers";
2
- const asyncContext = createAsyncContext();
3
- function queryAuthData() {
4
- return asyncContext.get()?.authData ?? null;
5
- }
6
- function isInQueryContext() {
7
- return !!asyncContext.get();
8
- }
9
- function runWithQueryContext(context, fn) {
10
- return asyncContext.run(context, fn);
11
- }
12
- export {
13
- isInQueryContext,
14
- queryAuthData,
15
- runWithQueryContext
16
- };
17
- //# sourceMappingURL=queryContext.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/queryContext.ts"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AAInC,MAAM,eAAe,mBAAkD;AAEhE,SAAS,gBAAiC;AAC/C,SAAO,aAAa,IAAI,GAAG,YAAY;AACzC;AAEO,SAAS,mBAAmB;AACjC,SAAO,CAAC,CAAC,aAAa,IAAI;AAC5B;AAEO,SAAS,oBACd,SACA,IACY;AACZ,SAAO,aAAa,IAAI,SAAS,EAAE;AACrC;",
5
- "names": []
6
- }
@@ -1,35 +0,0 @@
1
- import { getCurrentComponentStack } from "@take-out/helpers";
2
- import { useEffect, useId } from "react";
3
- import { prettyFormatZeroQuery } from "./prettyFormatZeroQuery";
4
- const activeQueries = /* @__PURE__ */ new Map(), astHistoryByComponent = /* @__PURE__ */ new Map(), filterLogs = (table) => !1, COLLAPSED = !0, AST_CHANGE_THRESHOLD = 4, MAX_AST_HISTORY = 10, useZeroDebug = (query, options, results) => {
5
- const astObject = query._completeAst?.() ?? query.ast, table = astObject?.table ?? "unknown", ast = JSON.stringify(astObject, null, 2), enabled = !(!options || options?.enabled === !1) && filterLogs(table), isPermissionQuery = new Error().stack?.includes("usePermission.ts"), id = useId(), num = activeQueries.get(ast) || 0, shouldLog = enabled && num === 0;
6
- enabled && (activeQueries.set(ast, num + 1), shouldLog && (COLLAPSED ? (console.groupCollapsed(
7
- `${isPermissionQuery ? "\u{1F46E}\u200D\u2642\uFE0F" : "\u2728"}${prettyFormatZeroQuery(query, "minimal")}`
8
- ), console.info(id, prettyFormatZeroQuery(query, "full")), console.info("cached result", results), console.trace(), console.groupEnd()) : console.info("\u2728", prettyFormatZeroQuery(query, "full")))), useEffect(() => {
9
- if (!enabled) return;
10
- const history = astHistoryByComponent.get(id) || { asts: [], changeCount: 0 }, currentAst = ast, lastAst = history.asts[history.asts.length - 1];
11
- currentAst !== lastAst && (history.asts.push(currentAst), history.asts.length > MAX_AST_HISTORY && history.asts.shift(), history.changeCount++, astHistoryByComponent.set(id, history), history.changeCount > AST_CHANGE_THRESHOLD && console.warn(
12
- `\u26A0\uFE0F AST changed ${history.changeCount} times for component.
13
- - id: ${id}
14
- - stack: ${getCurrentComponentStack("short")}
15
- - table: ${table}`,
16
- {
17
- componentId: id,
18
- table,
19
- changeCount: history.changeCount,
20
- recentAsts: history.asts
21
- }
22
- ));
23
- }, [id, ast, table, enabled]), useEffect(() => {
24
- if (enabled)
25
- return () => {
26
- activeQueries.set(ast, activeQueries.get(ast) - 1);
27
- };
28
- }, [ast, enabled]), useEffect(() => () => {
29
- astHistoryByComponent.delete(id);
30
- }, [id]);
31
- };
32
- export {
33
- useZeroDebug
34
- };
35
- //# sourceMappingURL=useZeroDebug.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/useZeroDebug.ts"],
4
- "mappings": "AAAA,SAAS,gCAAgC;AACzC,SAAS,WAAW,aAAa;AAEjC,SAAS,6BAA6B;AAItC,MAAM,gBAAgB,oBAAI,IAAoB,GAQxC,wBAAwB,oBAAI,IAAwB,GAGpD,aAAa,CAAC,UAA2B,IAEzC,YAAY,IACZ,uBAAuB,GACvB,kBAAkB,IAIX,eAAe,CAAC,OAA6B,SAAc,YAAiB;AACvF,QAAM,YAAY,MAAM,eAAkB,KAAK,MAAM,KAC/C,QAAQ,WAAW,SAAS,WAC5B,MAAM,KAAK,UAAU,WAAW,MAAM,CAAC,GAEvC,UAAU,EADM,CAAC,WAAW,SAAS,YAAY,OACrB,WAAW,KAAK,GAE5C,oBADQ,IAAI,MAAM,EAAE,OACO,SAAS,kBAAkB,GACtD,KAAK,MAAM,GAGX,MAAM,cAAc,IAAI,GAAG,KAAK,GAChC,YAAY,WAAW,QAAQ;AACrC,EAAI,YACF,cAAc,IAAI,KAAK,MAAM,CAAC,GAC1B,cACE,aACF,QAAQ;AAAA,IACN,GAAG,oBAAoB,gCAAU,QAAG,GAAG,sBAAsB,OAAO,SAAS,CAAC;AAAA,EAChF,GACA,QAAQ,KAAK,IAAI,sBAAsB,OAAO,MAAM,CAAC,GACrD,QAAQ,KAAK,iBAAiB,OAAO,GACrC,QAAQ,MAAM,GACd,QAAQ,SAAS,KAEjB,QAAQ,KAAK,UAAK,sBAAsB,OAAO,MAAM,CAAC,KAM5D,UAAU,MAAM;AACd,QAAI,CAAC,QAAS;AACd,UAAM,UAAU,sBAAsB,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE,GACtE,aAAa,KACb,UAAU,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC;AAEpD,IAAI,eAAe,YACjB,QAAQ,KAAK,KAAK,UAAU,GACxB,QAAQ,KAAK,SAAS,mBACxB,QAAQ,KAAK,MAAM,GAErB,QAAQ,eACR,sBAAsB,IAAI,IAAI,OAAO,GAEjC,QAAQ,cAAc,wBACxB,QAAQ;AAAA,MACN,4BAAkB,QAAQ,WAAW;AAAA,gBAC/B,EAAE;AAAA,mBACC,yBAAyB,OAAO,CAAC;AAAA,mBACjC,KAAK;AAAA,MACd;AAAA,QACE,aAAa;AAAA,QACb;AAAA,QACA,aAAa,QAAQ;AAAA,QACrB,YAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,EAGN,GAAG,CAAC,IAAI,KAAK,OAAO,OAAO,CAAC,GAE5B,UAAU,MAAM;AACd,QAAK;AACL,aAAO,MAAM;AACX,sBAAc,IAAI,KAAK,cAAc,IAAI,GAAG,IAAK,CAAC;AAAA,MACpD;AAAA,EACF,GAAG,CAAC,KAAK,OAAO,CAAC,GAGjB,UAAU,MACD,MAAM;AACX,0BAAsB,OAAO,EAAE;AAAA,EACjC,GACC,CAAC,EAAE,CAAC;AACT;",
5
- "names": []
6
- }
@@ -1,16 +0,0 @@
1
- const mutationsToPermissionsRegistry = /* @__PURE__ */ new Map();
2
- function setMutationsPermissions(tableName, permissions) {
3
- mutationsToPermissionsRegistry.set(tableName, permissions);
4
- }
5
- function getMutationsPermissions(tableName) {
6
- return mutationsToPermissionsRegistry.get(tableName);
7
- }
8
- function getAllMutationsPermissions() {
9
- return mutationsToPermissionsRegistry;
10
- }
11
- export {
12
- getAllMutationsPermissions,
13
- getMutationsPermissions,
14
- setMutationsPermissions
15
- };
16
- //# sourceMappingURL=modelRegistry.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/modelRegistry.ts"],
4
- "mappings": "AAEA,MAAM,iCAAiC,oBAAI,IAAmB;AAEvD,SAAS,wBAAwB,WAAmB,aAAoB;AAC7E,iCAA+B,IAAI,WAAW,WAAW;AAC3D;AAEO,SAAS,wBAAwB,WAAsC;AAC5E,SAAO,+BAA+B,IAAI,SAAS;AACrD;AAEO,SAAS,6BAAiD;AAC/D,SAAO;AACT;",
5
- "names": []
6
- }
@@ -1,56 +0,0 @@
1
- import { isServer } from "./constants";
2
- import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck";
3
- import { setMutationsPermissions } from "./modelRegistry";
4
- const registryKey = "__onZeroMutationRegistry__", proxyKey = "__onZeroProxyRegistry__", mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */ new Map()), proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */ new Map());
5
- function getOrCreateMutationProxy(tableName, implementations) {
6
- mutationRegistry.set(tableName, implementations);
7
- const existing = proxyRegistry.get(tableName);
8
- if (existing)
9
- return existing;
10
- const proxy = new Proxy({}, {
11
- get(_, key) {
12
- return mutationRegistry.get(tableName)?.[key];
13
- },
14
- ownKeys() {
15
- const current = mutationRegistry.get(tableName);
16
- return current ? Object.keys(current) : [];
17
- },
18
- getOwnPropertyDescriptor(_, key) {
19
- const current = mutationRegistry.get(tableName);
20
- if (current && key in current)
21
- return { enumerable: !0, configurable: !0, value: current[key] };
22
- },
23
- has(_, key) {
24
- const current = mutationRegistry.get(tableName);
25
- return current ? key in current : !1;
26
- }
27
- });
28
- return proxyRegistry.set(tableName, proxy), proxy;
29
- }
30
- function mutations(table, permissions, mutations2) {
31
- if (permissions) {
32
- const tableName = table.schema.name, createCRUDMutation = (action) => async (ctx, obj) => {
33
- const runServerPermissionCheck = async () => {
34
- getDidRunPermissionCheck(ctx) || isServer && await ctx.can(permissions, obj);
35
- };
36
- action !== "insert" && action !== "upsert" && await runServerPermissionCheck();
37
- const existing = mutations2?.[action];
38
- existing ? await existing(ctx, obj) : await ctx.tx.mutate[tableName][action](obj), (action === "insert" || action === "upsert") && await runServerPermissionCheck();
39
- }, crudMutations = {
40
- insert: createCRUDMutation("insert"),
41
- update: createCRUDMutation("update"),
42
- delete: createCRUDMutation("delete"),
43
- upsert: createCRUDMutation("upsert")
44
- }, finalMutations = {
45
- ...mutations2,
46
- // overwrite regular mutations but call them if they are defined by user
47
- ...crudMutations
48
- };
49
- return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
50
- }
51
- return table;
52
- }
53
- export {
54
- mutations
55
- };
56
- //# sourceMappingURL=mutations.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/mutations.ts"],
4
- "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAcxC,MAAM,cAAc,8BACd,WAAW,2BAGX,mBAA0D,WAAW,WAAW,MACrF,WAAW,WAAW,IAAI,oBAAI,IAAI,IAE7B,gBACJ,WAAW,QAAQ,MAAM,WAAW,QAAQ,IAAI,oBAAI,IAAI;AAI1D,SAAS,yBACP,WACA,iBACG;AAEH,mBAAiB,IAAI,WAAW,eAAe;AAG/C,QAAM,WAAW,cAAc,IAAI,SAAS;AAC5C,MAAI;AACF,WAAO;AAIT,QAAM,QAAQ,IAAI,MAAM,CAAC,GAAQ;AAAA,IAC/B,IAAI,GAAG,KAAa;AAClB,aAAO,iBAAiB,IAAI,SAAS,IAAI,GAAG;AAAA,IAC9C;AAAA,IACA,UAAU;AACR,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,aAAO,UAAU,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,yBAAyB,GAAG,KAAa;AACvC,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,UAAI,WAAW,OAAO;AACpB,eAAO,EAAE,YAAY,IAAM,cAAc,IAAM,OAAO,QAAQ,GAAG,EAAE;AAAA,IAEvE;AAAA,IACA,IAAI,GAAG,KAAa;AAClB,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,aAAO,UAAU,OAAO,UAAU;AAAA,IACpC;AAAA,EACF,CAAC;AAED,uBAAc,IAAI,WAAW,KAAK,GAC3B;AACT;AA0DO,SAAS,UAGd,OAA0B,aAAqBA,YAAkC;AACjF,MAAI,aAAa;AACf,UAAM,YAAa,MAAgB,OAAO,MAEpC,qBAAqB,CAAC,WACnB,OAAO,KAAqB,QAAa;AAS9C,YAAM,2BAA2B,YAAY;AAC3C,QAAI,yBAAyB,GAAG,KAM5B,YACF,MAAM,IAAI,IAAI,aAAa,GAAG;AAAA,MAElC;AAEA,MAAI,WAAW,YAAY,WAAW,YACpC,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,IAGtD,WAAW,YAAY,WAAW,aACpC,MAAM,yBAAyB;AAAA,IAEnC,GAGI,gBAAoC;AAAA,MACxC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACrC,GAEM,iBAAiB;AAAA,MACrB,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACL;AAEA,mCAAwB,WAAW,WAAW,GAGvC,yBAAyB,WAAW,cAAc;AAAA,EAC3D;AAGA,SAAO;AACT;",
5
- "names": ["mutations"]
6
- }
@@ -1,16 +0,0 @@
1
- import { globalValue } from "@take-out/helpers";
2
- const queryNameRegistry = globalValue(
3
- "on-zero:query-name",
4
- () => /* @__PURE__ */ new WeakMap()
5
- );
6
- function registerQuery(fn, name) {
7
- queryNameRegistry.set(fn, name);
8
- }
9
- function getQueryName(fn) {
10
- return queryNameRegistry.get(fn);
11
- }
12
- export {
13
- getQueryName,
14
- registerQuery
15
- };
16
- //# sourceMappingURL=queryRegistry.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/queryRegistry.ts"],
4
- "mappings": "AAGA,SAAS,mBAAmB;AAE5B,MAAM,oBAAoB;AAAA,EACxB;AAAA,EACA,MAAM,oBAAI,QAA0B;AACtC;AAEO,SAAS,cAAc,IAAc,MAAc;AACxD,oBAAkB,IAAI,IAAI,IAAI;AAChC;AAEO,SAAS,aAAa,IAAkC;AAC7D,SAAO,kBAAkB,IAAI,EAAE;AACjC;",
5
- "names": []
6
- }
@@ -1,24 +0,0 @@
1
- import { getQueryName } from "./queryRegistry";
2
- function resolveQuery({
3
- customQueries,
4
- fn,
5
- params
6
- }) {
7
- const queryName = getQueryName(fn);
8
- if (!queryName) {
9
- const fnName = fn?.name || "anonymous";
10
- throw new Error(
11
- `Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`
12
- );
13
- }
14
- const [namespace, name] = queryName.split(".", 2), customQuery = customQueries[namespace]?.[name];
15
- if (!customQuery)
16
- throw new Error(
17
- `CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`
18
- );
19
- return params !== void 0 ? customQuery(params) : customQuery();
20
- }
21
- export {
22
- resolveQuery
23
- };
24
- //# sourceMappingURL=resolveQuery.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/resolveQuery.ts"],
4
- "mappings": "AAAA,SAAS,oBAAoB;AAYtB,SAAS,aAAwC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,YAAY,aAAa,EAAE;AACjC,MAAI,CAAC,WAAW;AACd,UAAM,SAAS,IAAI,QAAQ;AAC3B,UAAM,IAAI;AAAA,MACR,mBAAmB,MAAM;AAAA,IAE3B;AAAA,EACF;AAIA,QAAM,CAAC,WAAW,IAAI,IAAI,UAAU,MAAM,KAAK,CAAC,GAC1C,cAAe,cAAsB,SAAS,IAAI,IAAI;AAE5D,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR,gBAAgB,SAAS;AAAA,IAE3B;AAGF,SAAO,WAAW,SAAY,YAAY,MAAM,IAAI,YAAY;AAClE;",
5
- "names": []
6
- }
package/dist/esm/run.js DELETED
@@ -1,27 +0,0 @@
1
- import { resolveQuery } from "./resolveQuery";
2
- import { getRunner } from "./zeroRunner";
3
- let customQueriesRef = null;
4
- function setCustomQueries(queries) {
5
- customQueriesRef = queries;
6
- }
7
- function getCustomQueries() {
8
- if (!customQueriesRef)
9
- throw new Error(
10
- "Custom queries not initialized. Ensure createZeroClient or createZeroServer has been called."
11
- );
12
- return customQueriesRef;
13
- }
14
- function run(queryOrFn, paramsOrMode, modeArg) {
15
- const hasParams = modeArg !== void 0 || paramsOrMode && paramsOrMode !== "complete", params = hasParams ? paramsOrMode : void 0, mode = hasParams ? modeArg : paramsOrMode, runner = getRunner(), options = mode === "complete" ? {
16
- type: "complete"
17
- } : void 0;
18
- if (queryOrFn && queryOrFn.ast)
19
- return runner(queryOrFn, options);
20
- const customQueries = getCustomQueries(), queryRequest = resolveQuery({ customQueries, fn: queryOrFn, params });
21
- return runner(queryRequest, options);
22
- }
23
- export {
24
- run,
25
- setCustomQueries
26
- };
27
- //# sourceMappingURL=run.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/run.ts"],
4
- "mappings": "AAAA,SAAS,oBAAuC;AAChD,SAAS,iBAAiB;AAS1B,IAAI,mBAA4C;AAEzC,SAAS,iBAAiB,SAA2B;AAC1D,qBAAmB;AACrB;AAEA,SAAS,mBAAqC;AAC5C,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAEF,SAAO;AACT;AAiCO,SAAS,IACd,WACA,cACA,SACc;AACd,QAAM,YAAY,YAAY,UAAc,gBAAgB,iBAAiB,YACvE,SAAS,YAAY,eAAe,QACpC,OAAO,YAAY,UAAU,cAC7B,SAAS,UAAU,GACnB,UACJ,SAAS,aACJ;AAAA,IACC,MAAM;AAAA,EACR,IACA;AAEN,MAAI,aAAa,UAAU;AAEzB,WAAO,OAAO,WAAW,OAAO;AAGlC,QAAM,gBAAgB,iBAAiB,GACjC,eAAe,aAAa,EAAE,eAAe,IAAI,WAAW,OAAO,CAAC;AAI1E,SAFY,OAAO,cAAqB,OAAO;AAGjD;",
5
- "names": []
6
- }
@@ -1,2 +0,0 @@
1
- export * from "./createZeroServer";
2
- //# sourceMappingURL=server.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/server.ts"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }
@@ -1,8 +0,0 @@
1
- import { where } from "./where";
2
- function serverWhere(a, b) {
3
- return where(a, b, !0);
4
- }
5
- export {
6
- serverWhere
7
- };
8
- //# sourceMappingURL=serverWhere.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/serverWhere.ts"],
4
- "mappings": "AAAA,SAAS,aAAa;AAef,SAAS,YACd,GACA,GAC6B;AAC7B,SAAO,MAAM,GAAU,GAAU,EAAI;AACvC;",
5
- "names": []
6
- }
@@ -1,55 +0,0 @@
1
- import { describe, expect, test, beforeEach } from "vitest";
2
- import { serverWhere } from "./serverWhere";
3
- import { getEnvironment, setEnvironment } from "./state";
4
- import { setEvaluatingPermission } from "./where";
5
- function createMockEB() {
6
- const calls = [];
7
- return {
8
- calls,
9
- and: () => (calls.push("and()"), { type: "noop" }),
10
- cmp: (field, value) => (calls.push(`cmp(${field}, ${value})`), { type: "condition", field, value }),
11
- cmpLit: (a, op, b) => (calls.push(`cmpLit(${a}, ${op}, ${b})`), { type: "literal", a, op, b })
12
- };
13
- }
14
- describe("serverWhere SSR behavior", () => {
15
- beforeEach(() => {
16
- globalThis[/* @__PURE__ */ Symbol.for("on-zero:state")] = null;
17
- }), test("serverWhere returns no-op on client environment", () => {
18
- setEnvironment("client");
19
- const whereFn = serverWhere("post", (eb2) => eb2.cmp("ownerId", "user-123")), eb = createMockEB(), result = whereFn(eb, { id: "user-123" });
20
- expect(eb.calls).toContain("and()"), expect(result).toEqual({ type: "noop" });
21
- }), test("serverWhere evaluates condition on server environment", () => {
22
- setEnvironment("server");
23
- const whereFn = serverWhere("post", (eb2) => eb2.cmp("ownerId", "user-123")), eb = createMockEB(), result = whereFn(eb, { id: "user-123" });
24
- expect(eb.calls).toContain("cmp(ownerId, user-123)"), expect(result).toEqual({ type: "condition", field: "ownerId", value: "user-123" });
25
- }), test("serverWhere evaluates when _evaluatingPermission is true (even on client)", () => {
26
- setEnvironment("client");
27
- const whereFn = serverWhere("post", (eb2) => eb2.cmp("ownerId", "user-123")), eb = createMockEB();
28
- setEvaluatingPermission(!0);
29
- try {
30
- const result = whereFn(eb, { id: "user-123" });
31
- expect(eb.calls).toContain("cmp(ownerId, user-123)"), expect(result).toEqual({ type: "condition", field: "ownerId", value: "user-123" });
32
- } finally {
33
- setEvaluatingPermission(!1);
34
- }
35
- }), test("environment stays server when already set (SSR scenario)", () => {
36
- setEnvironment("server"), expect(getEnvironment()).toBe("server"), getEnvironment() === null && setEnvironment("client"), expect(getEnvironment()).toBe("server");
37
- }), test("environment defaults to client when not set by server", () => {
38
- expect(getEnvironment()).toBe(null), getEnvironment() === null && setEnvironment("client"), expect(getEnvironment()).toBe("client");
39
- }), test("nested serverWhere calls evaluate during permission check", () => {
40
- setEnvironment("client");
41
- const outerWhere = serverWhere("post", (eb3) => eb3.cmp("ownerId", "user-123")), nestedWhere = serverWhere("comment", (eb3) => eb3.cmp("postId", "post-456")), eb = createMockEB(), result1 = outerWhere(eb, { id: "user-123" });
42
- expect(result1).toEqual({ type: "noop" });
43
- const eb2 = createMockEB();
44
- setEvaluatingPermission(!0);
45
- try {
46
- const result2 = outerWhere(eb2, { id: "user-123" });
47
- expect(result2).toEqual({ type: "condition", field: "ownerId", value: "user-123" });
48
- const eb3 = createMockEB(), result3 = nestedWhere(eb3, { id: "user-123" });
49
- expect(result3).toEqual({ type: "condition", field: "postId", value: "post-456" });
50
- } finally {
51
- setEvaluatingPermission(!1);
52
- }
53
- });
54
- });
55
- //# sourceMappingURL=serverWhere.test.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/serverWhere.test.ts"],
4
- "mappings": "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",
5
- "names": ["eb"]
6
- }
package/dist/esm/state.js DELETED
@@ -1,33 +0,0 @@
1
- import { createBuilder } from "@rocicorp/zero";
2
- import { globalValue } from "@take-out/helpers";
3
- const getState = () => globalValue("on-zero:state", () => ({
4
- schema: null,
5
- zql: null,
6
- authData: void 0,
7
- environment: null
8
- })), errMessage = "Haven't called createZeroClient or createZeroServer yet!", getZQL = () => {
9
- const { zql } = getState();
10
- if (!zql) throw new Error(errMessage);
11
- return zql;
12
- }, getSchema = () => {
13
- const { schema } = getState();
14
- if (!schema) throw new Error(errMessage);
15
- return schema;
16
- }, setSchema = (_) => {
17
- const state = getState();
18
- state.schema = _, state.zql = createBuilder(_);
19
- }, getAuthData = () => getState().authData || null, setAuthData = (_) => {
20
- getState().authData = _;
21
- }, getEnvironment = () => getState().environment, setEnvironment = (env) => {
22
- getState().environment = env;
23
- };
24
- export {
25
- getAuthData,
26
- getEnvironment,
27
- getSchema,
28
- getZQL,
29
- setAuthData,
30
- setEnvironment,
31
- setSchema
32
- };
33
- //# sourceMappingURL=state.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/state.ts"],
4
- "mappings": "AAAA,SAAS,qBAAkC;AAC3C,SAAS,mBAAmB;AAW5B,MAAM,WAAW,MACf,YAAmB,iBAAiB,OAAO;AAAA,EACzC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,UAAU;AAAA,EACV,aAAa;AACf,EAAE,GAEE,aAAa,4DAEN,SAAS,MAAM;AAC1B,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,UAAU;AACpC,SAAO;AACT,GAEa,YAAY,MAAM;AAC7B,QAAM,EAAE,OAAO,IAAI,SAAS;AAC5B,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,UAAU;AACvC,SAAO;AACT,GAEa,YAAY,CAAC,MAAc;AACtC,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,GACf,MAAM,MAAM,cAAc,CAAC;AAC7B,GAEa,cAAc,MAClB,SAAS,EAAE,YAAY,MAGnB,cAAc,CAAC,MAAgB;AAC1C,WAAS,EAAE,WAAW;AACxB,GAEa,iBAAiB,MAAM,SAAS,EAAE,aAElC,iBAAiB,CAAC,QAA6B;AAC1D,WAAS,EAAE,cAAc;AAC3B;",
5
- "names": []
6
- }
package/dist/esm/types.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
@@ -1,33 +0,0 @@
1
- import { boolean, string, table } from "@rocicorp/zero";
2
- import { describe, expect, test } from "vitest";
3
- import { getMutationsPermissions, setMutationsPermissions } from "./modelRegistry";
4
- import { registerQuery, getQueryName } from "./queryRegistry";
5
- import { setEnvironment, setSchema } from "./state";
6
- describe("usePermission _uid query identity", () => {
7
- test("permission check fn ignores extra _uid in args", () => {
8
- const testTable = table("testEntity").columns({
9
- id: string(),
10
- ownerId: string(),
11
- active: boolean()
12
- }).primaryKey("id");
13
- setSchema({ tables: { testEntity: testTable }, version: 1 }), setEnvironment("client");
14
- const fn = (args) => ({ objOrId: args.objOrId }), result1 = fn({ objOrId: "test-id", _uid: "user-A" }), result2 = fn({ objOrId: "test-id", _uid: "user-B" }), result3 = fn({ objOrId: "test-id" });
15
- expect(result1.objOrId).toBe("test-id"), expect(result2.objOrId).toBe("test-id"), expect(result3.objOrId).toBe("test-id");
16
- }), test("different _uid values produce different serialized args", () => {
17
- const args1 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" }), args2 = JSON.stringify({ objOrId: "server-1", _uid: "user-B" }), args3 = JSON.stringify({ objOrId: "server-1", _uid: "anon" });
18
- expect(args1).not.toBe(args2), expect(args1).not.toBe(args3), expect(args2).not.toBe(args3);
19
- }), test("same _uid produces stable query identity", () => {
20
- const args1 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" }), args2 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" });
21
- expect(args1).toBe(args2);
22
- }), test("permission registration works for query lookup", () => {
23
- const mockWhere = (eb, auth) => eb.cmp("ownerId", auth?.id || "");
24
- setMutationsPermissions("testEntity", mockWhere);
25
- const perm = getMutationsPermissions("testEntity");
26
- expect(perm).toBeDefined(), expect(perm).toBe(mockWhere);
27
- }), test("query name registration preserves permission namespace", () => {
28
- const fn = () => {
29
- };
30
- registerQuery(fn, "permission.testEntity"), expect(getQueryName(fn)).toBe("permission.testEntity");
31
- });
32
- });
33
- //# sourceMappingURL=usePermission.test.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/usePermission.test.ts"],
4
- "mappings": "AAAA,SAAS,SAAS,QAAQ,aAAa;AACvC,SAAS,UAAU,QAAQ,YAAY;AAEvC,SAAS,yBAAyB,+BAA+B;AACjE,SAAS,eAAe,oBAAoB;AAC5C,SAAS,gBAAgB,iBAAiB;AAE1C,SAAS,qCAAqC,MAAM;AAUlD,OAAK,kDAAkD,MAAM;AAE3D,UAAM,YAAY,MAAM,YAAY,EACjC,QAAQ;AAAA,MACP,IAAI,OAAO;AAAA,MACX,SAAS,OAAO;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAClB,CAAC,EACA,WAAW,IAAI;AAElB,cAAU,EAAE,QAAQ,EAAE,YAAY,UAAU,GAAG,SAAS,EAAE,CAAQ,GAClE,eAAe,QAAQ;AAIvB,UAAM,KAAK,CAAC,UAEH,EAAE,SAAS,KAAK,QAAQ,IAG3B,UAAU,GAAG,EAAE,SAAS,WAAW,MAAM,SAAS,CAAC,GACnD,UAAU,GAAG,EAAE,SAAS,WAAW,MAAM,SAAS,CAAC,GACnD,UAAU,GAAG,EAAE,SAAS,UAAU,CAAC;AAGzC,WAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,GACtC,OAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,GACtC,OAAO,QAAQ,OAAO,EAAE,KAAK,SAAS;AAAA,EACxC,CAAC,GAED,KAAK,2DAA2D,MAAM;AAGpE,UAAM,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,OAAO,CAAC;AAElE,WAAO,KAAK,EAAE,IAAI,KAAK,KAAK,GAC5B,OAAO,KAAK,EAAE,IAAI,KAAK,KAAK,GAC5B,OAAO,KAAK,EAAE,IAAI,KAAK,KAAK;AAAA,EAC9B,CAAC,GAED,KAAK,4CAA4C,MAAM;AAErD,UAAM,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC;AAEpE,WAAO,KAAK,EAAE,KAAK,KAAK;AAAA,EAC1B,CAAC,GAED,KAAK,kDAAkD,MAAM;AAE3D,UAAM,YAAY,CAAC,IAAS,SAAc,GAAG,IAAI,WAAW,MAAM,MAAM,EAAE;AAC1E,4BAAwB,cAAc,SAAgB;AAEtD,UAAM,OAAO,wBAAwB,YAAY;AACjD,WAAO,IAAI,EAAE,YAAY,GACzB,OAAO,IAAI,EAAE,KAAK,SAAS;AAAA,EAC7B,CAAC,GAED,KAAK,0DAA0D,MAAM;AACnE,UAAM,KAAK,MAAM;AAAA,IAAC;AAClB,kBAAc,IAAI,uBAAuB,GAEzC,OAAO,aAAa,EAAE,CAAC,EAAE,KAAK,uBAAuB;AAAA,EACvD,CAAC;AACH,CAAC;",
5
- "names": []
6
- }