on-zero 0.1.21 → 0.1.23

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 (68) hide show
  1. package/dist/cjs/cli.cjs +17 -420
  2. package/dist/cjs/cli.js +7 -398
  3. package/dist/cjs/cli.js.map +2 -2
  4. package/dist/cjs/cli.native.js +15 -514
  5. package/dist/cjs/cli.native.js.map +1 -1
  6. package/dist/cjs/generate.cjs +370 -0
  7. package/dist/cjs/generate.js +339 -0
  8. package/dist/cjs/generate.js.map +6 -0
  9. package/dist/cjs/generate.native.js +464 -0
  10. package/dist/cjs/generate.native.js.map +1 -0
  11. package/dist/cjs/helpers/createMutators.cjs +4 -3
  12. package/dist/cjs/helpers/createMutators.js +12 -9
  13. package/dist/cjs/helpers/createMutators.js.map +1 -1
  14. package/dist/cjs/helpers/createMutators.native.js +25 -21
  15. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  16. package/dist/cjs/mutations.cjs +34 -4
  17. package/dist/cjs/mutations.js +29 -4
  18. package/dist/cjs/mutations.js.map +1 -1
  19. package/dist/cjs/mutations.native.js +36 -4
  20. package/dist/cjs/mutations.native.js.map +1 -1
  21. package/dist/cjs/vite-plugin.cjs +84 -0
  22. package/dist/cjs/vite-plugin.js +86 -0
  23. package/dist/cjs/vite-plugin.js.map +6 -0
  24. package/dist/cjs/vite-plugin.native.js +99 -0
  25. package/dist/cjs/vite-plugin.native.js.map +1 -0
  26. package/dist/esm/cli.js +8 -384
  27. package/dist/esm/cli.js.map +2 -2
  28. package/dist/esm/cli.mjs +17 -398
  29. package/dist/esm/cli.mjs.map +1 -1
  30. package/dist/esm/cli.native.js +15 -492
  31. package/dist/esm/cli.native.js.map +1 -1
  32. package/dist/esm/generate.js +317 -0
  33. package/dist/esm/generate.js.map +6 -0
  34. package/dist/esm/generate.mjs +335 -0
  35. package/dist/esm/generate.mjs.map +1 -0
  36. package/dist/esm/generate.native.js +426 -0
  37. package/dist/esm/generate.native.js.map +1 -0
  38. package/dist/esm/helpers/createMutators.js +12 -9
  39. package/dist/esm/helpers/createMutators.js.map +1 -1
  40. package/dist/esm/helpers/createMutators.mjs +4 -3
  41. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  42. package/dist/esm/helpers/createMutators.native.js +25 -21
  43. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  44. package/dist/esm/mutations.js +29 -4
  45. package/dist/esm/mutations.js.map +1 -1
  46. package/dist/esm/mutations.mjs +34 -4
  47. package/dist/esm/mutations.mjs.map +1 -1
  48. package/dist/esm/mutations.native.js +35 -3
  49. package/dist/esm/mutations.native.js.map +1 -1
  50. package/dist/esm/vite-plugin.js +71 -0
  51. package/dist/esm/vite-plugin.js.map +6 -0
  52. package/dist/esm/vite-plugin.mjs +59 -0
  53. package/dist/esm/vite-plugin.mjs.map +1 -0
  54. package/dist/esm/vite-plugin.native.js +71 -0
  55. package/dist/esm/vite-plugin.native.js.map +1 -0
  56. package/package.json +7 -2
  57. package/readme.md +42 -32
  58. package/src/cli.ts +9 -638
  59. package/src/generate.ts +490 -0
  60. package/src/helpers/createMutators.ts +14 -8
  61. package/src/mutations.ts +57 -4
  62. package/src/vite-plugin.ts +110 -0
  63. package/types/generate.d.ts +21 -0
  64. package/types/generate.d.ts.map +1 -0
  65. package/types/helpers/createMutators.d.ts.map +1 -1
  66. package/types/mutations.d.ts.map +1 -1
  67. package/types/vite-plugin.d.ts +16 -0
  68. package/types/vite-plugin.d.ts.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","moduleName","moduleExports","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","exportValue"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","moduleName","moduleExports","_step","value","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop2","_step1","fullName","getDynamicFn"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,31 @@
1
1
  import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck";
2
2
  import { setMutationsPermissions } from "./modelRegistry";
3
+ const registryKey = "__onZeroMutationRegistry__", proxyKey = "__onZeroProxyRegistry__", mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */ new Map()), proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */ new Map());
4
+ function getOrCreateMutationProxy(tableName, implementations) {
5
+ mutationRegistry.set(tableName, implementations);
6
+ const existing = proxyRegistry.get(tableName);
7
+ if (existing)
8
+ return existing;
9
+ const proxy = new Proxy({}, {
10
+ get(_, key) {
11
+ return mutationRegistry.get(tableName)?.[key];
12
+ },
13
+ ownKeys() {
14
+ const current = mutationRegistry.get(tableName);
15
+ return current ? Object.keys(current) : [];
16
+ },
17
+ getOwnPropertyDescriptor(_, key) {
18
+ const current = mutationRegistry.get(tableName);
19
+ if (current && key in current)
20
+ return { enumerable: !0, configurable: !0, value: current[key] };
21
+ },
22
+ has(_, key) {
23
+ const current = mutationRegistry.get(tableName);
24
+ return current ? key in current : !1;
25
+ }
26
+ });
27
+ return proxyRegistry.set(tableName, proxy), proxy;
28
+ }
3
29
  function mutations(table, permissions, mutations2) {
4
30
  if (permissions) {
5
31
  const tableName = table.schema.name, createCRUDMutation = (action) => async (ctx, obj) => {
@@ -14,13 +40,12 @@ function mutations(table, permissions, mutations2) {
14
40
  update: createCRUDMutation("update"),
15
41
  delete: createCRUDMutation("delete"),
16
42
  upsert: createCRUDMutation("upsert")
17
- }, finalMutations = Object.freeze({
43
+ }, finalMutations = {
18
44
  ...mutations2,
19
45
  // overwrite regular mutations but call them if they are defined by user
20
46
  ...crudMutations
21
- // expose permissions for usePermission hook
22
- });
23
- return setMutationsPermissions(tableName, permissions), finalMutations;
47
+ };
48
+ return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
24
49
  }
25
50
  return table;
26
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/mutations.ts"],
4
- "mappings": "AAAA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAmEjC,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,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,GAAG;AAAA,MAElC;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,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,OAAO,OAAO;AAAA,MACnC,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA;AAAA,IAEL,CAAC;AAED,mCAAwB,WAAW,WAAW,GAEvC;AAAA,EACT;AAGA,SAAO;AACT;",
4
+ "mappings": "AAAA,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,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,GAAG;AAAA,MAElC;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,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
5
  "names": ["mutations"]
6
6
  }
@@ -1,5 +1,36 @@
1
1
  import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.mjs";
2
2
  import { setMutationsPermissions } from "./modelRegistry.mjs";
3
+ const registryKey = "__onZeroMutationRegistry__",
4
+ proxyKey = "__onZeroProxyRegistry__",
5
+ mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */new Map()),
6
+ proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */new Map());
7
+ function getOrCreateMutationProxy(tableName, implementations) {
8
+ mutationRegistry.set(tableName, implementations);
9
+ const existing = proxyRegistry.get(tableName);
10
+ if (existing) return existing;
11
+ const proxy = new Proxy({}, {
12
+ get(_, key) {
13
+ return mutationRegistry.get(tableName)?.[key];
14
+ },
15
+ ownKeys() {
16
+ const current = mutationRegistry.get(tableName);
17
+ return current ? Object.keys(current) : [];
18
+ },
19
+ getOwnPropertyDescriptor(_, key) {
20
+ const current = mutationRegistry.get(tableName);
21
+ if (current && key in current) return {
22
+ enumerable: !0,
23
+ configurable: !0,
24
+ value: current[key]
25
+ };
26
+ },
27
+ has(_, key) {
28
+ const current = mutationRegistry.get(tableName);
29
+ return current ? key in current : !1;
30
+ }
31
+ });
32
+ return proxyRegistry.set(tableName, proxy), proxy;
33
+ }
3
34
  function mutations(table, permissions, mutations2) {
4
35
  if (permissions) {
5
36
  const tableName = table.schema.name,
@@ -17,13 +48,12 @@ function mutations(table, permissions, mutations2) {
17
48
  delete: createCRUDMutation("delete"),
18
49
  upsert: createCRUDMutation("upsert")
19
50
  },
20
- finalMutations = Object.freeze({
51
+ finalMutations = {
21
52
  ...mutations2,
22
53
  // overwrite regular mutations but call them if they are defined by user
23
54
  ...crudMutations
24
- // expose permissions for usePermission hook
25
- });
26
- return setMutationsPermissions(tableName, permissions), finalMutations;
55
+ };
56
+ return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
27
57
  }
28
58
  return table;
29
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","mutations","table","permissions","mutations2","tableName","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","existing","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations","Object","freeze"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,uBAAA,QAA+B;AAmEjC,SAASC,UAGdC,KAAA,EAA0BC,WAAA,EAAqBC,UAAA,EAAkC;EACjF,IAAID,WAAA,EAAa;IACf,MAAME,SAAA,GAAaH,KAAA,CAAgBI,MAAA,CAAOC,IAAA;MAEpCC,kBAAA,GAAsBC,MAAA,IACnB,OAAOC,GAAA,EAAqBC,GAAA,KAAa;QAS9C,MAAMC,wBAAA,GAA2B,MAAAA,CAAA,KAAY;UACvCb,wBAAA,CAAyBW,GAAG,KAM5BG,OAAA,CAAQC,GAAA,CAAIC,gBAAA,KAAqB,UACnC,MAAML,GAAA,CAAIM,GAAA,CAAIb,WAAA,EAAaQ,GAAG;QAElC;QAEIF,MAAA,KAAW,aACb,MAAMG,wBAAA,CAAyB;QAIjC,MAAMK,QAAA,GAAWb,UAAA,GAAYK,MAAM;QAE/BQ,QAAA,GACF,MAAMA,QAAA,CAASP,GAAA,EAAKC,GAAG,IAGvB,MAAMD,GAAA,CAAIQ,EAAA,CAAGC,MAAA,CAAOd,SAAsB,EAAGI,MAAM,EAAEE,GAAG,GAGtDF,MAAA,KAAW,aACb,MAAMG,wBAAA,CAAyB;MAEnC;MAGIQ,aAAA,GAAoC;QACxCC,MAAA,EAAQb,kBAAA,CAAmB,QAAQ;QACnCc,MAAA,EAAQd,kBAAA,CAAmB,QAAQ;QACnCe,MAAA,EAAQf,kBAAA,CAAmB,QAAQ;QACnCgB,MAAA,EAAQhB,kBAAA,CAAmB,QAAQ;MACrC;MAEMiB,cAAA,GAAiBC,MAAA,CAAOC,MAAA,CAAO;QACnC,GAAGvB,UAAA;QAAA;QAEH,GAAGgB;QAAA;MAEL,CAAC;IAED,OAAApB,uBAAA,CAAwBK,SAAA,EAAWF,WAAW,GAEvCsB,cAAA;EACT;EAGA,OAAOvB,KAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","registryKey","proxyKey","mutationRegistry","globalThis","Map","proxyRegistry","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,37 @@
1
1
  import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
2
2
  import { setMutationsPermissions } from "./modelRegistry.native.js";
3
+ var registryKey = "__onZeroMutationRegistry__",
4
+ proxyKey = "__onZeroProxyRegistry__",
5
+ mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */new Map()),
6
+ proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */new Map());
7
+ function getOrCreateMutationProxy(tableName, implementations) {
8
+ mutationRegistry.set(tableName, implementations);
9
+ var existing = proxyRegistry.get(tableName);
10
+ if (existing) return existing;
11
+ var proxy = new Proxy({}, {
12
+ get(_, key) {
13
+ var _mutationRegistry_get;
14
+ return (_mutationRegistry_get = mutationRegistry.get(tableName)) === null || _mutationRegistry_get === void 0 ? void 0 : _mutationRegistry_get[key];
15
+ },
16
+ ownKeys() {
17
+ var current = mutationRegistry.get(tableName);
18
+ return current ? Object.keys(current) : [];
19
+ },
20
+ getOwnPropertyDescriptor(_, key) {
21
+ var current = mutationRegistry.get(tableName);
22
+ if (current && key in current) return {
23
+ enumerable: !0,
24
+ configurable: !0,
25
+ value: current[key]
26
+ };
27
+ },
28
+ has(_, key) {
29
+ var current = mutationRegistry.get(tableName);
30
+ return current ? key in current : !1;
31
+ }
32
+ });
33
+ return proxyRegistry.set(tableName, proxy), proxy;
34
+ }
3
35
  function mutations(table, permissions, mutations2) {
4
36
  if (permissions) {
5
37
  var tableName = table.schema.name,
@@ -19,12 +51,12 @@ function mutations(table, permissions, mutations2) {
19
51
  delete: createCRUDMutation("delete"),
20
52
  upsert: createCRUDMutation("upsert")
21
53
  },
22
- finalMutations = Object.freeze({
54
+ finalMutations = {
23
55
  ...mutations2,
24
56
  // overwrite regular mutations but call them if they are defined by user
25
57
  ...crudMutations
26
- });
27
- return setMutationsPermissions(tableName, permissions), finalMutations;
58
+ };
59
+ return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
28
60
  }
29
61
  return table;
30
62
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","mutations","table","permissions","mutations2","tableName","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","existing","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations","Object","freeze"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,uBAAA,QAA+B;AAmEjC,SAASC,UAGdC,KAAA,EAA0BC,WAAA,EAAqBC,UAAA,EAAkC;EACjF,IAAID,WAAA,EAAa;IACf,IAAAE,SAAM,GAAAH,KAAa,CAAAI,MAAgB,CAAAC,IAAO;MAAAC,kBAEpC,YAAAA,CAAsBC,MACnB;QASL,OAAM,gBAAAC,GAAA,EAAAC,GAAA;UACA,IAAAC,wBAA4B,kBAAAA,CAAA,EAMhB;YAGlBb,wBAAA,CAAAW,GAAA,KAAAG,OAAA,CAAAC,GAAA,CAAAC,gBAAA,qBAAAL,GAAA,CAAAM,GAAA,CAAAb,WAAA,EAAAQ,GAAA;UAEI;UAKJF,MAAM,aAAW,WAAYG,wBAAM;UAE/B,IAAAK,QACF,GAAMb,UAAS,GAAAK,MAAQ;UAYvBQ,QAAA,SAAoCA,QAAA,CAAAP,GAAA,EAAAC,GAAA,UAAAD,GAAA,CAAAQ,EAAA,CAAAC,MAAA,CAAAd,SAAA,EAAAI,MAAA,EAAAE,GAAA,GAAAF,MAAA,wBAAAG,wBAAA;QACxC;MAAmC;MACnCQ,aAAQ;QACRC,MAAA,EAAQb,kBAAA,CAAmB,QAAQ;QACnCc,MAAA,EAAQd,kBAAA,CAAmB,QAAQ;QACrCe,MAEM,EAAAf,kBAAwB,SAAO;QACnCgB,MAAG,EAAAhB,kBAAA;MAAA;MAAAiB,cAAA,GAAAC,MAAA,CAAAC,MAAA;QAEH,GAAGvB,UAAA;QAAA;QAEJ,GAAAgB;MAED;IAGF,OAAApB,uBAAA,CAAAK,SAAA,EAAAF,WAAA,GAAAsB,cAAA;EAGA;EACF,OAAAvB,KAAA","ignoreList":[]}
1
+ {"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","registryKey","proxyKey","mutationRegistry","globalThis","Map","proxyRegistry","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,uBAAA,QAA+B;AAcxC,IAAAC,WAAM,+BAAc;EAAAC,QACd,4BAAW;EAAAC,gBAGX,GAAAC,UAA0D,CAAAH,WAAW,MAAWG,UACrF,CAAAH,WAAW,IAAW,eAAI,IAAAI,GAAI,GAAI;EAAAC,aAE7B,GAAAF,UACJ,CAAAF,QAAW,MAAQE,UAAM,CAAAF,QAAW,IAAQ,eAAI,IAAAG,GAAI,GAAI;AAI1D,SAASE,yBACPC,SAAA,EACAC,eAAA,EACG;EAEHN,gBAAA,CAAiBO,GAAA,CAAIF,SAAA,EAAWC,eAAe;EAG/C,IAAAE,QAAM,GAAAL,aAAW,CAAAM,GAAc,CAAAJ,SAAI;EACnC,IAAIG,QAAA,EACF,OAAOA,QAAA;EAIT,IAAAE,KAAM,OAAQC,KAAI,GAAM,EAAC;IACvBF,IAAIG,CAAA,EAAGC,GAAA,EAAa;MAClB,IAAAC,qBAAwB;MAC1B,QAAAA,qBAAA,GAAAd,gBAAA,CAAAS,GAAA,CAAAJ,SAAA,eAAAS,qBAAA,uBAAAA,qBAAA,CAAAD,GAAA;IACA;IACEE,QAAA,EAAM;MACN,IAAAC,OAAO,GAAAhB,gBAAsB,CAAAS,GAAA,CAAAJ,SAAY;MAC3C,OAAAW,OAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAF,OAAA;IACA;IACEG,wBAAgBA,CAAAP,CAAA,EAAAC,GAAA;MAChB,IAAIG,OAAA,GAAAhB,gBAAkB,CAAAS,GAAA,CAAAJ,SAAA;MACpB,IAAAW,OAAS,IAAAH,GAAA,IAAAG,OAAkB,EAE/B;QACII,UAAgB;QAClBC,YAAgB;QAChBC,KAAO,EAAAN,OAAU,CAAAH,GAAA;MACnB;IACD;IAEDU,IAAAX,CAAA,EAAAC,GAAA;MAEF,IAAAG,OAAA,GAAAhB,gBAAA,CAAAS,GAAA,CAAAJ,SAAA;MA0DO,OAASW,OAGd,GAAAH,GAA0B,IAAAG,OAAA,GAAqB;IAC/C;EACE;EAYI,OAAAb,aAAM,CAAAI,GAAA,CAAAF,SAAA,EAAAK,KAA2B,GAAAA,KAAY;AAC3C;AAOgC,SAElCc,UAAAC,KAAA,EAAAC,WAAA,EAAAC,UAAA;EAEA,IAAID,WAAW;IAKf,IAAArB,SAAM,GAAAoB,KAAW,CAAAG,MAAA,CAAAC,IAAY;MAAAC,kBAAM,YAAAA,CAAAC,MAAA;QAE/B,uBACIC,GAAA,EAASC,GAAA,EAAK;UAYpB,IAAAC,wBAAoC,kBAAAA,CAAA;YACxCtC,wBAA2B,CAAAoC,GAAA,KAAQG,OAAA,CAAAC,GAAA,CAAAC,gBAAA,qBAAAL,GAAA,CAAAM,GAAA,CAAAZ,WAAA,EAAAO,GAAA;UACnC;UACAF,MAAQ,wBAAmBG,wBAAQ;UACnC,IAAA1B,QAAQ,GAAAmB,UAAmB,GAAAI,MAAQ;UAG/BvB,QAAA,SAAiBA,QAAA,CAAAwB,GAAA,EAAAC,GAAA,UAAAD,GAAA,CAAAO,EAAA,CAAAC,MAAA,CAAAnC,SAAA,EAAA0B,MAAA,EAAAE,GAAA,GAAAF,MAAA,wBAAAG,wBAAA;QACrB;MAAG;MAAAO,aAAA;QAEHC,MAAG,EAAAZ,kBAAA;QACLa,MAAA,EAAAb,kBAAA;QAEAc,MAAA,EAAAd,kBAAA,SAAwB;QAI1Be,MAAA,EAAAf,kBAAA;MAGA;MAAAgB,cAAO;QACT,GAAAnB,UAAA","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ import { isAbsolute, relative, resolve } from "node:path";
2
+ import { generate } from "./generate";
3
+ function createOnZeroHmrPlugin(hmrInclude = []) {
4
+ const hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
5
+ return {
6
+ name: "on-zero:hmr",
7
+ apply: "serve",
8
+ enforce: "post",
9
+ transform(code, id) {
10
+ if (!(!hmrPaths.some((p) => id.includes(p)) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate"))
11
+ return {
12
+ code: code.replace(
13
+ /if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g,
14
+ "/* on-zero: HMR invalidate disabled */"
15
+ ),
16
+ map: null
17
+ };
18
+ }
19
+ };
20
+ }
21
+ function isWithinDirectory(file, dir) {
22
+ const rel = relative(dir, file);
23
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
24
+ }
25
+ function onZeroPlugin(options = {}) {
26
+ const dir = options.dir ?? "src/data";
27
+ let dataDir, modelsDir, queriesDir;
28
+ const runGenerate = (silent) => generate({
29
+ dir: dataDir,
30
+ after: options.after,
31
+ silent
32
+ });
33
+ return [
34
+ {
35
+ name: "on-zero:serve",
36
+ apply: "serve",
37
+ configResolved(config) {
38
+ dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
39
+ },
40
+ async buildStart() {
41
+ options.disableGenerate || await runGenerate(!1);
42
+ },
43
+ configureServer(server) {
44
+ if (options.disableGenerate) return;
45
+ const handler = async (file) => {
46
+ /\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && await runGenerate(!1);
47
+ };
48
+ server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
49
+ }
50
+ },
51
+ {
52
+ name: "on-zero:build",
53
+ apply: "build",
54
+ configResolved(config) {
55
+ dataDir = resolve(config.root, dir);
56
+ },
57
+ async buildStart() {
58
+ options.disableGenerate || await runGenerate(!0);
59
+ }
60
+ },
61
+ createOnZeroHmrPlugin(options.hmrInclude)
62
+ ];
63
+ }
64
+ const onZeroHmrPlugin = (options) => createOnZeroHmrPlugin(options?.include);
65
+ var vite_plugin_default = onZeroPlugin;
66
+ export {
67
+ vite_plugin_default as default,
68
+ onZeroHmrPlugin,
69
+ onZeroPlugin
70
+ };
71
+ //# sourceMappingURL=vite-plugin.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/vite-plugin.ts"],
4
+ "mappings": "AAAA,SAAS,YAAY,UAAU,eAAe;AAE9C,SAAS,gBAAsC;AAa/C,SAAS,sBAAsB,aAAuB,CAAC,GAAW;AAChE,QAAM,WAAW,CAAC,YAAY,eAAe,aAAa,GAAG,UAAU;AAEvE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IAET,UAAU,MAAM,IAAI;AAClB,UAAI,GAAC,SAAS,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,MAC1D,KAAK,SAAS,4BAA4B;AAE/C,eAAO;AAAA,UACL,MAAM,KAAK;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACA,KAAK;AAAA,QACP;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,MAAc,KAAsB;AAC7D,QAAM,MAAM,SAAS,KAAK,IAAI;AAC9B,SAAO,QAAQ,MAAM,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG;AAC/D;AAEO,SAAS,aAAa,UAA+B,CAAC,GAAa;AACxE,QAAM,MAAM,QAAQ,OAAO;AAE3B,MAAI,SACA,WACA;AAEJ,QAAM,cAAc,CAAC,WACnB,SAAS;AAAA,IACP,KAAK;AAAA,IACL,OAAO,QAAQ;AAAA,IACf;AAAA,EACF,CAAC;AAEH,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MAEP,eAAe,QAAQ;AACrB,kBAAU,QAAQ,OAAO,MAAM,GAAG,GAClC,YAAY,QAAQ,SAAS,QAAQ,GACrC,aAAa,QAAQ,SAAS,SAAS;AAAA,MACzC;AAAA,MAEA,MAAM,aAAa;AACjB,QAAK,QAAQ,mBAAiB,MAAM,YAAY,EAAK;AAAA,MACvD;AAAA,MAEA,gBAAgB,QAAQ;AACtB,YAAI,QAAQ,gBAAiB;AAE7B,cAAM,UAAU,OAAO,SAAiB;AACtC,UAAK,UAAU,KAAK,IAAI,MACpB,kBAAkB,MAAM,SAAS,KAAK,kBAAkB,MAAM,UAAU,MAC1E,MAAM,YAAY,EAAK;AAAA,QAE3B;AAEA,eAAO,QAAQ,GAAG,UAAU,OAAO,GACnC,OAAO,QAAQ,GAAG,OAAO,OAAO,GAChC,OAAO,QAAQ,GAAG,UAAU,OAAO;AAAA,MACrC;AAAA,IACF;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MAEP,eAAe,QAAQ;AACrB,kBAAU,QAAQ,OAAO,MAAM,GAAG;AAAA,MACpC;AAAA,MAEA,MAAM,aAAa;AACjB,QAAK,QAAQ,mBAAiB,MAAM,YAAY,EAAI;AAAA,MACtD;AAAA,IACF;AAAA,IAEA,sBAAsB,QAAQ,UAAU;AAAA,EAC1C;AACF;AAEO,MAAM,kBAAkB,CAAC,YACvB,sBAAsB,SAAS,OAAO;AAG/C,IAAO,sBAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,59 @@
1
+ import { isAbsolute, relative, resolve } from "node:path";
2
+ import { generate } from "./generate.mjs";
3
+ function createOnZeroHmrPlugin(hmrInclude = []) {
4
+ const hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
5
+ return {
6
+ name: "on-zero:hmr",
7
+ apply: "serve",
8
+ enforce: "post",
9
+ transform(code, id) {
10
+ if (!(!hmrPaths.some(p => id.includes(p)) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate")) return {
11
+ code: code.replace(/if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g, "/* on-zero: HMR invalidate disabled */"),
12
+ map: null
13
+ };
14
+ }
15
+ };
16
+ }
17
+ function isWithinDirectory(file, dir) {
18
+ const rel = relative(dir, file);
19
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
20
+ }
21
+ function onZeroPlugin(options = {}) {
22
+ const dir = options.dir ?? "src/data";
23
+ let dataDir, modelsDir, queriesDir;
24
+ const runGenerate = silent => generate({
25
+ dir: dataDir,
26
+ after: options.after,
27
+ silent
28
+ });
29
+ return [{
30
+ name: "on-zero:serve",
31
+ apply: "serve",
32
+ configResolved(config) {
33
+ dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
34
+ },
35
+ async buildStart() {
36
+ options.disableGenerate || (await runGenerate(!1));
37
+ },
38
+ configureServer(server) {
39
+ if (options.disableGenerate) return;
40
+ const handler = async file => {
41
+ /\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && (await runGenerate(!1));
42
+ };
43
+ server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
44
+ }
45
+ }, {
46
+ name: "on-zero:build",
47
+ apply: "build",
48
+ configResolved(config) {
49
+ dataDir = resolve(config.root, dir);
50
+ },
51
+ async buildStart() {
52
+ options.disableGenerate || (await runGenerate(!0));
53
+ }
54
+ }, createOnZeroHmrPlugin(options.hmrInclude)];
55
+ }
56
+ const onZeroHmrPlugin = options => createOnZeroHmrPlugin(options?.include);
57
+ var vite_plugin_default = onZeroPlugin;
58
+ export { vite_plugin_default as default, onZeroHmrPlugin, onZeroPlugin };
59
+ //# sourceMappingURL=vite-plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","replace","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","dataDir","modelsDir","queriesDir","runGenerate","silent","after","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","watcher","on","onZeroHmrPlugin","include","vite_plugin_default"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,OAAA,QAAe;AAE9C,SAASC,QAAA,QAAsC;AAa/C,SAASC,sBAAsBC,UAAA,GAAuB,EAAC,EAAW;EAChE,MAAMC,QAAA,GAAW,CAAC,YAAY,eAAe,aAAa,GAAGD,UAAU;EAEvE,OAAO;IACLE,IAAA,EAAM;IACNC,KAAA,EAAO;IACPC,OAAA,EAAS;IAETC,UAAUC,IAAA,EAAMC,EAAA,EAAI;MAClB,IAAI,GAACN,QAAA,CAASO,IAAA,CAAMC,CAAA,IAAMF,EAAA,CAAGG,QAAA,CAASD,CAAC,CAAC,KAAK,CAAC,UAAUE,IAAA,CAAKJ,EAAE,MAC1DD,IAAA,CAAKI,QAAA,CAAS,4BAA4B,GAE/C,OAAO;QACLJ,IAAA,EAAMA,IAAA,CAAKM,OAAA,CACT,sFACA,wCACF;QACAC,GAAA,EAAK;MACP;IACF;EACF;AACF;AAEA,SAASC,kBAAkBC,IAAA,EAAcC,GAAA,EAAsB;EAC7D,MAAMC,GAAA,GAAMrB,QAAA,CAASoB,GAAA,EAAKD,IAAI;EAC9B,OAAOE,GAAA,KAAQ,MAAM,CAACA,GAAA,CAAIC,UAAA,CAAW,IAAI,KAAK,CAACvB,UAAA,CAAWsB,GAAG;AAC/D;AAEO,SAASE,aAAaC,OAAA,GAA+B,CAAC,GAAa;EACxE,MAAMJ,GAAA,GAAMI,OAAA,CAAQJ,GAAA,IAAO;EAE3B,IAAIK,OAAA,EACAC,SAAA,EACAC,UAAA;EAEJ,MAAMC,WAAA,GAAeC,MAAA,IACnB3B,QAAA,CAAS;IACPkB,GAAA,EAAKK,OAAA;IACLK,KAAA,EAAON,OAAA,CAAQM,KAAA;IACfD;EACF,CAAC;EAEH,OAAO,CACL;IACEvB,IAAA,EAAM;IACNC,KAAA,EAAO;IAEPwB,eAAeC,MAAA,EAAQ;MACrBP,OAAA,GAAUxB,OAAA,CAAQ+B,MAAA,CAAOC,IAAA,EAAMb,GAAG,GAClCM,SAAA,GAAYzB,OAAA,CAAQwB,OAAA,EAAS,QAAQ,GACrCE,UAAA,GAAa1B,OAAA,CAAQwB,OAAA,EAAS,SAAS;IACzC;IAEA,MAAMS,WAAA,EAAa;MACZV,OAAA,CAAQW,eAAA,KAAiB,MAAMP,WAAA,CAAY,EAAK;IACvD;IAEAQ,gBAAgBC,MAAA,EAAQ;MACtB,IAAIb,OAAA,CAAQW,eAAA,EAAiB;MAE7B,MAAMG,OAAA,GAAU,MAAOnB,IAAA,IAAiB;QACjC,UAAUJ,IAAA,CAAKI,IAAI,MACpBD,iBAAA,CAAkBC,IAAA,EAAMO,SAAS,KAAKR,iBAAA,CAAkBC,IAAA,EAAMQ,UAAU,OAC1E,MAAMC,WAAA,CAAY,EAAK;MAE3B;MAEAS,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,UAAUF,OAAO,GACnCD,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,OAAOF,OAAO,GAChCD,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,UAAUF,OAAO;IACrC;EACF,GAEA;IACEhC,IAAA,EAAM;IACNC,KAAA,EAAO;IAEPwB,eAAeC,MAAA,EAAQ;MACrBP,OAAA,GAAUxB,OAAA,CAAQ+B,MAAA,CAAOC,IAAA,EAAMb,GAAG;IACpC;IAEA,MAAMc,WAAA,EAAa;MACZV,OAAA,CAAQW,eAAA,KAAiB,MAAMP,WAAA,CAAY,EAAI;IACtD;EACF,GAEAzB,qBAAA,CAAsBqB,OAAA,CAAQpB,UAAU,EAC1C;AACF;AAEO,MAAMqC,eAAA,GAAmBjB,OAAA,IACvBrB,qBAAA,CAAsBqB,OAAA,EAASkB,OAAO;AAG/C,IAAOC,mBAAA,GAAQpB,YAAA","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ import { isAbsolute, relative, resolve } from "path";
2
+ import { generate } from "./generate.native.js";
3
+ function createOnZeroHmrPlugin() {
4
+ var hmrInclude = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [],
5
+ hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
6
+ return {
7
+ name: "on-zero:hmr",
8
+ apply: "serve",
9
+ enforce: "post",
10
+ transform(code, id) {
11
+ if (!(!hmrPaths.some(function (p) {
12
+ return id.includes(p);
13
+ }) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate")) return {
14
+ code: code.replace(/if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g, "/* on-zero: HMR invalidate disabled */"),
15
+ map: null
16
+ };
17
+ }
18
+ };
19
+ }
20
+ function isWithinDirectory(file, dir) {
21
+ var rel = relative(dir, file);
22
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
23
+ }
24
+ function onZeroPlugin() {
25
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},
26
+ _options_dir,
27
+ dir = (_options_dir = options.dir) !== null && _options_dir !== void 0 ? _options_dir : "src/data",
28
+ dataDir,
29
+ modelsDir,
30
+ queriesDir,
31
+ runGenerate = function (silent) {
32
+ return generate({
33
+ dir: dataDir,
34
+ after: options.after,
35
+ silent
36
+ });
37
+ };
38
+ return [{
39
+ name: "on-zero:serve",
40
+ apply: "serve",
41
+ configResolved(config) {
42
+ dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
43
+ },
44
+ async buildStart() {
45
+ options.disableGenerate || (await runGenerate(!1));
46
+ },
47
+ configureServer(server) {
48
+ if (!options.disableGenerate) {
49
+ var handler = async function (file) {
50
+ /\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && (await runGenerate(!1));
51
+ };
52
+ server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
53
+ }
54
+ }
55
+ }, {
56
+ name: "on-zero:build",
57
+ apply: "build",
58
+ configResolved(config) {
59
+ dataDir = resolve(config.root, dir);
60
+ },
61
+ async buildStart() {
62
+ options.disableGenerate || (await runGenerate(!0));
63
+ }
64
+ }, createOnZeroHmrPlugin(options.hmrInclude)];
65
+ }
66
+ var onZeroHmrPlugin = function (options) {
67
+ return createOnZeroHmrPlugin(options?.include);
68
+ },
69
+ vite_plugin_default = onZeroPlugin;
70
+ export { vite_plugin_default as default, onZeroHmrPlugin, onZeroPlugin };
71
+ //# sourceMappingURL=vite-plugin.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","arguments","length","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","replace","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","_options_dir","dataDir","modelsDir","queriesDir","runGenerate","silent","after","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","watcher","on"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,OAAA,QAAe;AAE9C,SAASC,QAAA,QAAsC;AAa/C,SAASC,sBAAA,EAAsB;EAC7B,IAAAC,UAAM,GAAWC,SAAC,CAAAC,MAAY,QAAAD,SAAe,QAAa,KAAG,IAAAA,SAAU;IAAAE,QAAA,IAEvE,UAAO,EACL,aAAM,EACN,WAAO,EACP,GAAAH,UAAS;EAGP;IAGAI,IAAA,eAAO;IAAAC,KAAA,EACL,OAAM;IAAKC,OAAA,EACT;IAAAC,SACAA,CAAAC,IAAA,EAAAC,EAAA;MAAA,IACF,GAAAN,QAAA,CAAAO,IAAA,WAAAC,CAAA;QAAA,OACKF,EAAA,CAAAG,QAAA,CAAAD,CAAA;MAAA,EACP,eAAAE,IAAA,CAAAJ,EAAA,MAAAD,IAAA,CAAAI,QAAA,gCACF;QACFJ,IAAA,EAAAA,IAAA,CAAAM,OAAA;QACFC,GAAA;MAEA,CAAS;IACP;EACA;AACF;AAEO,SAASC,iBAAaA,CAAAC,IAAA,EAAgCC,GAAa;EACxE,IAAAC,GAAM,GAAAvB,QAAM,CAAAsB,GAAQ,EAAAD,IAAO;EAE3B,OAAIE,GAAA,KACA,OAAAA,GACA,CAAAC,UAAA,WAAAzB,UAAA,CAAAwB,GAAA;AAEJ;AACW,SACFE,aAAA;EAAA,IACLC,OAAO,GAAArB,SAAQ,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAAAsB,YAAA;IAAAL,GAAA,IAAAK,YAAA,GAAAD,OAAA,CAAAJ,GAAA,cAAAK,YAAA,cAAAA,YAAA;IAAAC,OAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,WAAA,YAAAA,CAAAC,MAAA;MACf,OAAA9B,QAAA;QACDoB,GAAA,EAAAM,OAAA;QAEHK,KAAO,EAAAP,OAAA,CAAAO,KAAA;QACLD;MAAA,EACE;IAAM;EACC,OAEP,CACE;IAGFxB,IAAA;IAEAC,KAAA,EAAM;IACJyB,cAAaA,CAAAC,MAAA;MACfP,OAAA,GAAA3B,OAAA,CAAAkC,MAAA,CAAAC,IAAA,EAAAd,GAAA,GAAAO,SAAA,GAAA5B,OAAA,CAAA2B,OAAA,aAAAE,UAAA,GAAA7B,OAAA,CAAA2B,OAAA;IAEA;IACE,MAAIS,UAAQA,CAAA;MAEZX,OAAM,CAAAY,eAAiB,WAAiBP,WAAA;IACtC;IAEyBQ,eAE3BA,CAAAC,MAAA;MAEA,KAAAd,OAAO,CAAAY,eAAqB;QAG9B,IAAAG,OAAA,kBAAAA,CAAApB,IAAA;UACF,UAAAJ,IAAA,CAAAI,IAAA,MAAAD,iBAAA,CAAAC,IAAA,EAAAQ,SAAA,KAAAT,iBAAA,CAAAC,IAAA,EAAAS,UAAA,aAAAC,WAAA;QAEA;QACES,MAAM,CAAAE,OAAA,CAAAC,EAAA,WAAAF,OAAA,GAAAD,MAAA,CAAAE,OAAA,CAAAC,EAAA,QAAAF,OAAA,GAAAD,MAAA,CAAAE,OAAA,CAAAC,EAAA,WAAAF,OAAA;MACN;IAEA;EACE,GAAkC;IAGpCjC,IAAA,EAAM,eAAa;IACjBC,KAAK,SAAQ;IACfyB,eAAAC,MAAA;MACFP,OAAA,GAAA3B,OAAA,CAAAkC,MAAA,CAAAC,IAAA,EAAAd,GAAA;IAEA;IACF,MAAAe,WAAA;MACFX,OAAA,CAAAY,eAAA,WAAAP,WAAA;IAEa;EAIN,G","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -61,10 +61,15 @@
61
61
  "types": "./types/server.d.ts",
62
62
  "import": "./dist/esm/server.mjs",
63
63
  "require": "./dist/cjs/server.cjs"
64
+ },
65
+ "./vite": {
66
+ "types": "./types/vite-plugin.d.ts",
67
+ "import": "./dist/esm/vite-plugin.mjs",
68
+ "require": "./dist/cjs/vite-plugin.cjs"
64
69
  }
65
70
  },
66
71
  "dependencies": {
67
- "@take-out/helpers": "0.1.21",
72
+ "@take-out/helpers": "0.1.23",
68
73
  "@sinclair/typebox-codegen": "^0.11.1",
69
74
  "chokidar": "^4.0.3",
70
75
  "citty": "^0.1.6",
package/readme.md CHANGED
@@ -287,10 +287,49 @@ export const channelMessages = (props: { channelId: string }) => {
287
287
 
288
288
  ## generation
289
289
 
290
- `on-zero` has a CLI that auto-generates glue files that wire up your models,
291
- queries, and types.
290
+ on-zero auto-generates glue files that wire up your models, queries, and types.
292
291
 
293
- ### cli commands
292
+ ### vite plugin (recommended)
293
+
294
+ the vite plugin handles generation and HMR automatically:
295
+
296
+ ```ts
297
+ // vite.config.ts
298
+ import { onZeroPlugin } from 'on-zero/vite'
299
+
300
+ export default {
301
+ plugins: [
302
+ onZeroPlugin(),
303
+ // ... other plugins
304
+ ]
305
+ }
306
+ ```
307
+
308
+ **features:**
309
+
310
+ - generates on dev server start
311
+ - watches for model changes and regenerates
312
+ - enables HMR for mutations (no page reload when editing models)
313
+ - generates before production builds
314
+
315
+ **options:**
316
+
317
+ ```ts
318
+ onZeroPlugin({
319
+ // path to data directory (default: 'src/data')
320
+ dataDir: 'src/data',
321
+
322
+ // additional paths to apply HMR fix to
323
+ hmrInclude: ['/src/zero/'],
324
+
325
+ // disable generation (HMR only)
326
+ disableGenerate: false,
327
+ })
328
+ ```
329
+
330
+ ### cli (alternative)
331
+
332
+ if you prefer CLI over the vite plugin:
294
333
 
295
334
  **`on-zero generate [dir]`**
296
335
 
@@ -325,35 +364,6 @@ bun on-zero generate ./app/data
325
364
  bun on-zero generate --after "bun lint:fix"
326
365
  ```
327
366
 
328
- **`on-zero generate-queries <dir>`**
329
-
330
- generates query validators from TypeScript query functions. this is included in
331
- `generate` but can be run standalone.
332
-
333
- - parses exported arrow functions from `.ts` files in the queries directory
334
- - extracts parameter types using TypeScript compiler API
335
- - generates valibot schemas using typebox-codegen
336
-
337
- **example:**
338
-
339
- ```bash
340
- bun on-zero generate-queries src/data/queries
341
- ```
342
-
343
- ### what gets generated
344
-
345
- **models.ts:**
346
-
347
- ```ts
348
- import * as channel from '~/data/models/channel'
349
- import * as message from '~/data/models/message'
350
-
351
- export const models = {
352
- channel,
353
- message,
354
- }
355
- ```
356
-
357
367
  **types.ts:**
358
368
 
359
369
  ```ts