appflare 0.2.41 → 0.2.43

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 (145) hide show
  1. package/Documentation.md +898 -758
  2. package/cli/commands/index.ts +247 -247
  3. package/cli/generate.ts +360 -360
  4. package/cli/index.ts +120 -120
  5. package/cli/load-config.ts +184 -184
  6. package/cli/schema-compiler.ts +1363 -1361
  7. package/cli/templates/auth/README.md +156 -156
  8. package/cli/templates/auth/config.ts +61 -61
  9. package/cli/templates/auth/route-config.ts +1 -1
  10. package/cli/templates/auth/route-handler.ts +1 -1
  11. package/cli/templates/auth/route-request-utils.ts +5 -5
  12. package/cli/templates/auth/route.config.ts +18 -18
  13. package/cli/templates/auth/route.handler.ts +18 -18
  14. package/cli/templates/auth/route.request-utils.ts +55 -55
  15. package/cli/templates/auth/route.ts +14 -14
  16. package/cli/templates/core/README.md +266 -266
  17. package/cli/templates/core/app-creation.ts +19 -19
  18. package/cli/templates/core/client/appflare.ts +112 -112
  19. package/cli/templates/core/client/handlers/index.ts +763 -755
  20. package/cli/templates/core/client/handlers.ts +1 -1
  21. package/cli/templates/core/client/index.ts +7 -7
  22. package/cli/templates/core/client/storage.ts +195 -195
  23. package/cli/templates/core/client/types.ts +187 -186
  24. package/cli/templates/core/client-modules/appflare.ts +1 -1
  25. package/cli/templates/core/client-modules/handlers.ts +1 -1
  26. package/cli/templates/core/client-modules/index.ts +1 -1
  27. package/cli/templates/core/client-modules/storage.ts +1 -1
  28. package/cli/templates/core/client-modules/types.ts +1 -1
  29. package/cli/templates/core/client.artifacts.ts +39 -39
  30. package/cli/templates/core/client.ts +4 -4
  31. package/cli/templates/core/drizzle.ts +15 -15
  32. package/cli/templates/core/export.ts +14 -14
  33. package/cli/templates/core/handlers.route.ts +24 -24
  34. package/cli/templates/core/handlers.ts +1 -1
  35. package/cli/templates/core/imports.ts +9 -9
  36. package/cli/templates/core/server.ts +38 -38
  37. package/cli/templates/core/types.ts +6 -6
  38. package/cli/templates/core/wrangler.ts +109 -109
  39. package/cli/templates/dashboard/builders/functions/index.ts +17 -17
  40. package/cli/templates/dashboard/builders/functions/render-page/header.ts +20 -20
  41. package/cli/templates/dashboard/builders/functions/render-page/index.ts +33 -33
  42. package/cli/templates/dashboard/builders/functions/render-page/request-panel.ts +171 -171
  43. package/cli/templates/dashboard/builders/functions/render-page/result-panel.ts +85 -85
  44. package/cli/templates/dashboard/builders/functions/render-page/scripts.ts +554 -554
  45. package/cli/templates/dashboard/builders/functions/tree-builder.ts +47 -47
  46. package/cli/templates/dashboard/builders/navigation.ts +155 -155
  47. package/cli/templates/dashboard/builders/storage/index.ts +13 -13
  48. package/cli/templates/dashboard/builders/storage/routes/create-directory-route.ts +29 -29
  49. package/cli/templates/dashboard/builders/storage/routes/delete-route.ts +18 -18
  50. package/cli/templates/dashboard/builders/storage/routes/download-route.ts +23 -23
  51. package/cli/templates/dashboard/builders/storage/routes/index.ts +22 -22
  52. package/cli/templates/dashboard/builders/storage/routes/list-route.ts +25 -25
  53. package/cli/templates/dashboard/builders/storage/routes/preview-route.ts +21 -21
  54. package/cli/templates/dashboard/builders/storage/routes/upload-route.ts +21 -21
  55. package/cli/templates/dashboard/builders/storage/runtime/helpers.ts +72 -72
  56. package/cli/templates/dashboard/builders/storage/runtime/storage-page.ts +130 -130
  57. package/cli/templates/dashboard/builders/table-routes/common/drawer-panel.ts +27 -27
  58. package/cli/templates/dashboard/builders/table-routes/common/pagination.ts +30 -30
  59. package/cli/templates/dashboard/builders/table-routes/common/search-bar.ts +23 -23
  60. package/cli/templates/dashboard/builders/table-routes/fragments.ts +217 -217
  61. package/cli/templates/dashboard/builders/table-routes/helpers.ts +45 -45
  62. package/cli/templates/dashboard/builders/table-routes/index.ts +8 -8
  63. package/cli/templates/dashboard/builders/table-routes/table/actions-cell.ts +71 -71
  64. package/cli/templates/dashboard/builders/table-routes/table/get-route.ts +291 -291
  65. package/cli/templates/dashboard/builders/table-routes/table/index.ts +80 -80
  66. package/cli/templates/dashboard/builders/table-routes/table/post-routes.ts +163 -163
  67. package/cli/templates/dashboard/builders/table-routes/table-route.ts +7 -7
  68. package/cli/templates/dashboard/builders/table-routes/users/get-route.ts +69 -69
  69. package/cli/templates/dashboard/builders/table-routes/users/html/modals.ts +57 -57
  70. package/cli/templates/dashboard/builders/table-routes/users/html/page.ts +27 -27
  71. package/cli/templates/dashboard/builders/table-routes/users/html/table.ts +128 -128
  72. package/cli/templates/dashboard/builders/table-routes/users/index.ts +32 -32
  73. package/cli/templates/dashboard/builders/table-routes/users/post-routes.ts +150 -150
  74. package/cli/templates/dashboard/builders/table-routes/users/redirect.ts +14 -14
  75. package/cli/templates/dashboard/builders/table-routes/users-route.ts +10 -10
  76. package/cli/templates/dashboard/components/dashboard-home.ts +23 -23
  77. package/cli/templates/dashboard/components/layout.ts +420 -420
  78. package/cli/templates/dashboard/components/login-page.ts +65 -65
  79. package/cli/templates/dashboard/index.ts +61 -61
  80. package/cli/templates/dashboard/types.ts +9 -9
  81. package/cli/templates/handlers/README.md +353 -353
  82. package/cli/templates/handlers/auth.ts +37 -37
  83. package/cli/templates/handlers/execution.ts +42 -42
  84. package/cli/templates/handlers/generators/context/context-creation.ts +101 -101
  85. package/cli/templates/handlers/generators/context/error-helpers.ts +11 -11
  86. package/cli/templates/handlers/generators/context/scheduler.ts +24 -24
  87. package/cli/templates/handlers/generators/context/storage-api.ts +82 -82
  88. package/cli/templates/handlers/generators/context/storage-helpers.ts +59 -59
  89. package/cli/templates/handlers/generators/context/types.ts +40 -40
  90. package/cli/templates/handlers/generators/context.ts +43 -43
  91. package/cli/templates/handlers/generators/execution.ts +15 -15
  92. package/cli/templates/handlers/generators/handlers.ts +14 -14
  93. package/cli/templates/handlers/generators/registration/modules/cron.ts +26 -26
  94. package/cli/templates/handlers/generators/registration/modules/realtime/auth.ts +75 -75
  95. package/cli/templates/handlers/generators/registration/modules/realtime/durable-object.ts +144 -144
  96. package/cli/templates/handlers/generators/registration/modules/realtime/index.ts +14 -14
  97. package/cli/templates/handlers/generators/registration/modules/realtime/publisher.ts +102 -102
  98. package/cli/templates/handlers/generators/registration/modules/realtime/routes.ts +164 -164
  99. package/cli/templates/handlers/generators/registration/modules/realtime/types.ts +30 -30
  100. package/cli/templates/handlers/generators/registration/modules/realtime/utils.ts +510 -510
  101. package/cli/templates/handlers/generators/registration/modules/scheduler.ts +56 -56
  102. package/cli/templates/handlers/generators/registration/modules/storage.ts +199 -199
  103. package/cli/templates/handlers/generators/registration/sections.ts +210 -210
  104. package/cli/templates/handlers/generators/types/context.ts +121 -121
  105. package/cli/templates/handlers/generators/types/core.ts +106 -106
  106. package/cli/templates/handlers/generators/types/operations.ts +135 -135
  107. package/cli/templates/handlers/generators/types/query-definitions/filter-and-where-types.ts +291 -271
  108. package/cli/templates/handlers/generators/types/query-definitions/query-api-types.ts +135 -135
  109. package/cli/templates/handlers/generators/types/query-definitions/query-helper-functions.ts +1382 -1382
  110. package/cli/templates/handlers/generators/types/query-definitions/schema-and-table-types.ts +278 -278
  111. package/cli/templates/handlers/generators/types/query-definitions.ts +13 -13
  112. package/cli/templates/handlers/generators/types/query-runtime/handled-error.ts +13 -13
  113. package/cli/templates/handlers/generators/types/query-runtime/runtime-aggregate-and-footer.ts +174 -174
  114. package/cli/templates/handlers/generators/types/query-runtime/runtime-read.ts +157 -157
  115. package/cli/templates/handlers/generators/types/query-runtime/runtime-setup.ts +45 -45
  116. package/cli/templates/handlers/generators/types/query-runtime/runtime-write.ts +958 -697
  117. package/cli/templates/handlers/generators/types/query-runtime.ts +15 -15
  118. package/cli/templates/handlers/index.ts +47 -47
  119. package/cli/templates/handlers/operations.ts +116 -116
  120. package/cli/templates/handlers/registration.ts +91 -91
  121. package/cli/templates/handlers/types.ts +17 -17
  122. package/cli/templates/handlers/utils.ts +48 -48
  123. package/cli/types.ts +110 -110
  124. package/cli/utils/handler-discovery.ts +466 -466
  125. package/cli/utils/json-utils.ts +24 -24
  126. package/cli/utils/path-utils.ts +19 -19
  127. package/cli/utils/schema-discovery.ts +399 -399
  128. package/dist/cli/index.js +320 -31
  129. package/dist/cli/index.mjs +320 -31
  130. package/dist/index.js +1 -1
  131. package/dist/index.mjs +1 -1
  132. package/dist/react/index.d.mts +2 -0
  133. package/dist/react/index.d.ts +2 -0
  134. package/dist/react/index.js +1 -1
  135. package/dist/react/index.mjs +1 -1
  136. package/index.ts +18 -18
  137. package/package.json +58 -58
  138. package/react/index.ts +5 -5
  139. package/react/use-infinite-query.ts +255 -252
  140. package/react/use-mutation.ts +89 -89
  141. package/react/use-query.ts +210 -207
  142. package/schema.ts +641 -641
  143. package/test-better-auth-hash.ts +2 -2
  144. package/tsconfig.json +6 -6
  145. package/tsup.config.ts +82 -82
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var l=class n{def;constructor(e,t){this.def={kind:"enum",name:e,values:t};}sql(e){return new n(e,this.def.values)}toDefinition(){return {...this.def}}getValues(){return this.def.values}};function d(n,e){return new l(n,e)}var u=class{_element;constructor(e){this._element=e;}get shape(){return {kind:"array",element:this._element}}toColumnBuilder(){return new o("json",{jsonShape:this.shape})}};var o=class n{definition;constructor(e,t={}){if(typeof e=="string"){this.definition={kind:"column",type:e,sqlName:t.sqlName,length:t.length,enumValues:t.enumValues,enumRef:t.enumRef,jsonShape:t.jsonShape};return}this.definition={...e};}with(e){return new n({...this.definition,...e})}sql(e){return this.with({sqlName:e})}notNull(){return this.with({notNull:true,nullable:false})}nullable(){return this.with({nullable:true,notNull:false})}primaryKey(e={}){return this.with({primaryKey:true,autoIncrement:e.autoIncrement??this.definition.autoIncrement})}unique(e){return this.with({unique:e?{name:e}:true})}index(e){return this.with({index:e?{name:e}:true})}default(e){return this.with({sqlDefault:e})}defaultFn(e){return this.with({runtimeDefaultFn:e})}defaultNow(){return this.with({nowDefault:true,runtimeDefaultFn:()=>new Date})}references(e,t="id",r={}){return this.with({references:{table:e,column:t,onDelete:r.onDelete,onUpdate:r.onUpdate}})}array(){return this.with({isArray:true})}toDefinition(){return {...this.definition}}};function p(n,e={}){let t={},r={};for(let[i,a]of Object.entries(n)){if(a instanceof o){t[i]=a.toDefinition();continue}if(a.kind==="relation"){r[i]=a;continue}throw new Error(`Invalid table field '${i}'. Use column builders or relation helpers.`)}return {kind:"table",sqlName:e.sqlName,columns:t,relations:r}}function m(n,e={}){return {kind:"schema",tables:n,enums:e.enums??{}}}function f(n){if(typeof n!="object"||n===null)return false;let e=n;return e.kind==="schema"&&typeof e.tables=="object"&&(typeof e.enums=="object"||e.enums===void 0)}function c(n,e,t={}){let r=typeof e=="string"?e:void 0,i=typeof e=="string"?t:e??t;return {kind:"relation",relation:"one",targetTable:n,field:i.field??r,referenceField:i.referenceField,fkType:i.fkType,sqlName:i.sqlName,notNull:i.notNull,nullable:i.nullable,onDelete:i.onDelete,onUpdate:i.onUpdate}}function y(n,e,t={}){let r=typeof e=="string"?e:void 0,i=typeof e=="string"?t:e??t;return {kind:"relation",relation:"many",targetTable:n,field:i.field??r,referenceField:i.referenceField,fkType:i.fkType,sqlName:i.sqlName,notNull:i.notNull,nullable:i.nullable,onDelete:i.onDelete,onUpdate:i.onUpdate}}function g(n,e={}){return {kind:"relation",relation:"manyToMany",targetTable:n,referenceField:e.referenceField,targetReferenceField:e.targetReferenceField,junctionTable:e.junctionTable,sourceField:e.sourceField,targetField:e.targetField,sourceSqlName:e.sourceSqlName,targetSqlName:e.targetSqlName,onDelete:e.onDelete,onUpdate:e.onUpdate}}function s(n){let e=n.toDefinition();return e.jsonShape?e.jsonShape:e.type==="int"?{kind:"number"}:e.type==="string"?{kind:"string"}:e.type==="boolean"?{kind:"boolean"}:e.type==="date"?{kind:"date"}:e.type==="enum"&&e.enumValues?{kind:"string"}:{kind:"unknown"}}var h={defineEnum:(n,e)=>d(n,e),int:(n={})=>new o("int",n),number:(n={})=>new o("int",n),string:(n={})=>new o("string",n),boolean:(n={})=>new o("boolean",n),date:(n={})=>new o("date",n),uuid:(n={})=>new o({kind:"column",type:"string",sqlName:n.sqlName,length:n.length??36,primaryKey:true,notNull:true,nullable:false,uuidPrimaryKey:true,runtimeDefaultFn:()=>crypto.randomUUID()}),enum:(n,e={})=>{if(n instanceof l){let t=n.toDefinition();return new o("enum",{...e,enumValues:t.values,enumRef:t.name})}return new o("enum",{...e,enumValues:n})},enumArray:(n,e={})=>{if(n instanceof l){let t=n.toDefinition();return new o("enum",{...e,enumValues:t.values,enumRef:t.name,isArray:true})}return new o("enum",{...e,enumValues:n,isArray:true})},array:n=>{if(n instanceof u)return n.toColumnBuilder();if(n instanceof o){let e=n.toDefinition();if(e.jsonShape)return new o("json",{jsonShape:e.jsonShape});let t={kind:"array",element:s(n)};return new o("json",{jsonShape:t})}return new o("json",{jsonShape:{kind:"unknown"}})},object:n=>{let e={};for(let[t,r]of Object.entries(n))r instanceof o?e[t]=s(r):e[t]=r;return new o("json",{jsonShape:{kind:"object",shape:e}})},one:(n,e,t={})=>c(n,e,t),many:(n,e,t={})=>y(n,e,t),manyToMany:(n,e={})=>g(n,e)};export{f as isSchemaDefinition,m as schema,p as table,h as v};
1
+ var l=class n{def;constructor(e,t){this.def={kind:"enum",name:e,values:t};}sql(e){return new n(e,this.def.values)}toDefinition(){return {...this.def}}getValues(){return this.def.values}};function d(n,e){return new l(n,e)}var u=class{_element;constructor(e){this._element=e;}get shape(){return {kind:"array",element:this._element}}toColumnBuilder(){return new o("json",{jsonShape:this.shape})}};var o=class n{definition;constructor(e,t={}){if(typeof e=="string"){this.definition={kind:"column",type:e,sqlName:t.sqlName,length:t.length,enumValues:t.enumValues,enumRef:t.enumRef,jsonShape:t.jsonShape};return}this.definition={...e};}with(e){return new n({...this.definition,...e})}sql(e){return this.with({sqlName:e})}notNull(){return this.with({notNull:true,nullable:false})}nullable(){return this.with({nullable:true,notNull:false})}primaryKey(e={}){return this.with({primaryKey:true,autoIncrement:e.autoIncrement??this.definition.autoIncrement})}unique(e){return this.with({unique:e?{name:e}:true})}index(e){return this.with({index:e?{name:e}:true})}default(e){return this.with({sqlDefault:e})}defaultFn(e){return this.with({runtimeDefaultFn:e})}defaultNow(){return this.with({nowDefault:true,runtimeDefaultFn:()=>new Date})}references(e,t="id",r={}){return this.with({references:{table:e,column:t,onDelete:r.onDelete,onUpdate:r.onUpdate}})}array(){return this.with({isArray:true})}toDefinition(){return {...this.definition}}};function p(n,e={}){let t={},r={};for(let[i,a]of Object.entries(n)){if(a instanceof o){t[i]=a.toDefinition();continue}if(a.kind==="relation"){r[i]=a;continue}throw new Error(`Invalid table field '${i}'. Use column builders or relation helpers.`)}return {kind:"table",sqlName:e.sqlName,columns:t,relations:r}}function m(n,e={}){return {kind:"schema",tables:n,enums:e.enums??{}}}function f(n){if(typeof n!="object"||n===null)return false;let e=n;return e.kind==="schema"&&typeof e.tables=="object"&&(typeof e.enums=="object"||e.enums===void 0)}function c(n,e,t={}){let r=typeof e=="string"?e:void 0,i=typeof e=="string"?t:e??t;return {kind:"relation",relation:"one",targetTable:n,field:i.field??r,referenceField:i.referenceField,fkType:i.fkType,sqlName:i.sqlName,notNull:i.notNull,nullable:i.nullable,onDelete:i.onDelete,onUpdate:i.onUpdate}}function y(n,e,t={}){let r=typeof e=="string"?e:void 0,i=typeof e=="string"?t:e??t;return {kind:"relation",relation:"many",targetTable:n,field:i.field??r,referenceField:i.referenceField,fkType:i.fkType,sqlName:i.sqlName,notNull:i.notNull,nullable:i.nullable,onDelete:i.onDelete,onUpdate:i.onUpdate}}function g(n,e={}){return {kind:"relation",relation:"manyToMany",targetTable:n,referenceField:e.referenceField,targetReferenceField:e.targetReferenceField,junctionTable:e.junctionTable,sourceField:e.sourceField,targetField:e.targetField,sourceSqlName:e.sourceSqlName,targetSqlName:e.targetSqlName,onDelete:e.onDelete,onUpdate:e.onUpdate}}function s(n){let e=n.toDefinition();return e.jsonShape?e.jsonShape:e.type==="int"?{kind:"number"}:e.type==="string"?{kind:"string"}:e.type==="boolean"?{kind:"boolean"}:e.type==="date"?{kind:"date"}:e.type==="enum"&&e.enumValues?{kind:"string"}:{kind:"unknown"}}var h={defineEnum:(n,e)=>d(n,e),int:(n={})=>new o("int",n),number:(n={})=>new o("int",n),string:(n={})=>new o("string",n),boolean:(n={})=>new o("boolean",n),date:(n={})=>new o("date",n),uuid:(n={})=>new o({kind:"column",type:"string",sqlName:n.sqlName,length:n.length??36,primaryKey:true,notNull:true,nullable:false,uuidPrimaryKey:true,runtimeDefaultFn:()=>crypto.randomUUID()}),enum:(n,e={})=>{if(n instanceof l){let t=n.toDefinition();return new o("enum",{...e,enumValues:t.values,enumRef:t.name})}return new o("enum",{...e,enumValues:n})},enumArray:(n,e={})=>{if(n instanceof l){let t=n.toDefinition();return new o("enum",{...e,enumValues:t.values,enumRef:t.name,isArray:true})}return new o("enum",{...e,enumValues:n,isArray:true})},array:n=>{if(n instanceof u)return n.toColumnBuilder();if(n instanceof o){let e=n.toDefinition();if(e.jsonShape)return new o("json",{jsonShape:{kind:"array",element:e.jsonShape}});let t={kind:"array",element:s(n)};return new o("json",{jsonShape:t})}return new o("json",{jsonShape:{kind:"unknown"}})},object:n=>{let e={};for(let[t,r]of Object.entries(n))r instanceof o?e[t]=s(r):e[t]=r;return new o("json",{jsonShape:{kind:"object",shape:e}})},one:(n,e,t={})=>c(n,e,t),many:(n,e,t={})=>y(n,e,t),manyToMany:(n,e={})=>g(n,e)};export{f as isSchemaDefinition,m as schema,p as table,h as v};
@@ -36,6 +36,7 @@ type AppflareQueryLike$1<TArgs extends Record<string, unknown>, TData> = {
36
36
  onChange: (data: TData, update: AppflareRealtimeQueryUpdateLike$1<TData>) => void;
37
37
  onError?: (error: unknown) => void;
38
38
  }) => AppflareRealtimeSubscriptionLike$1;
39
+ queryKey?: (args?: TArgs) => QueryKey;
39
40
  };
40
41
  type UseAppflareQueryOptions<TArgs extends Record<string, unknown>, TData, TSelected = TData, TKey extends QueryKey = QueryKey> = {
41
42
  realtime?: {
@@ -95,6 +96,7 @@ type AppflareQueryLike<TArgs extends Record<string, unknown>, TData> = {
95
96
  onChange: (data: TData, update: AppflareRealtimeQueryUpdateLike<TData>) => void;
96
97
  onError?: (error: unknown) => void;
97
98
  }) => AppflareRealtimeSubscriptionLike;
99
+ queryKey?: (args?: TArgs) => QueryKey;
98
100
  };
99
101
  type UseAppflareInfiniteQueryOptions<TArgs extends Record<string, unknown>, TData, TPageParam, TSelected = InfiniteData<TData, TPageParam>, TKey extends QueryKey = QueryKey> = {
100
102
  realtime?: {
@@ -36,6 +36,7 @@ type AppflareQueryLike$1<TArgs extends Record<string, unknown>, TData> = {
36
36
  onChange: (data: TData, update: AppflareRealtimeQueryUpdateLike$1<TData>) => void;
37
37
  onError?: (error: unknown) => void;
38
38
  }) => AppflareRealtimeSubscriptionLike$1;
39
+ queryKey?: (args?: TArgs) => QueryKey;
39
40
  };
40
41
  type UseAppflareQueryOptions<TArgs extends Record<string, unknown>, TData, TSelected = TData, TKey extends QueryKey = QueryKey> = {
41
42
  realtime?: {
@@ -95,6 +96,7 @@ type AppflareQueryLike<TArgs extends Record<string, unknown>, TData> = {
95
96
  onChange: (data: TData, update: AppflareRealtimeQueryUpdateLike<TData>) => void;
96
97
  onError?: (error: unknown) => void;
97
98
  }) => AppflareRealtimeSubscriptionLike;
99
+ queryKey?: (args?: TArgs) => QueryKey;
98
100
  };
99
101
  type UseAppflareInfiniteQueryOptions<TArgs extends Record<string, unknown>, TData, TPageParam, TSelected = InfiniteData<TData, TPageParam>, TKey extends QueryKey = QueryKey> = {
100
102
  realtime?: {
@@ -1 +1 @@
1
- 'use strict';var reactQuery=require('@tanstack/react-query'),react=require('react');function O(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function b(r,...t){let a=t[0]??{},e=t[1],o=reactQuery.useQueryClient(),i=react.useRef(e?.realtime?.onChange),p=react.useRef(e?.realtime?.onError);react.useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=react.useMemo(()=>e?.queryOptions?.queryKey??["appflare","query",r,a],[a,e?.queryOptions?.queryKey,r]),g=react.useMemo(()=>reactQuery.hashKey(u),[u]),f=react.useMemo(()=>reactQuery.hashKey([a]),[a]),A=react.useMemo(()=>reactQuery.hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=reactQuery.useQuery({...e?.queryOptions,queryKey:u,queryFn:async()=>{let s=await r.run(a,e?.requestOptions);if(s.error)throw O(s.error);return s.data}});return react.useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:a,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,n),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,g]),m}function h(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function P(r,...t){let a=t[0]??{},e=t[1],o=reactQuery.useQueryClient(),i=react.useRef(e?.realtime?.onChange),p=react.useRef(e?.realtime?.onError);react.useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=react.useMemo(()=>e?.queryOptions?.queryKey??["appflare","infinite-query",r,a],[a,e?.queryOptions?.queryKey,r]),g=react.useMemo(()=>reactQuery.hashKey(u),[u]),f=react.useMemo(()=>reactQuery.hashKey([a]),[a]),A=react.useMemo(()=>reactQuery.hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=reactQuery.useInfiniteQuery({...e?.queryOptions,queryKey:u,queryFn:async({pageParam:s})=>{let y=s===void 0||!e?.pageParamToArgs?a:e.pageParamToArgs(a,s),n=await r.run(y,e?.requestOptions);if(n.error)throw h(n.error);return n.data}});return react.useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:a,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,l=>!l||l.pages.length===0?l:{...l,pages:[n,...l.pages.slice(1)]}),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,g]),m}function L(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function C(r,t){return reactQuery.useMutation({...t,mutationFn:async a=>{let e=await r.run(a??{});if(e.error)throw L(e.error);return e.data}})}exports.useInfiniteQuery=P;exports.useMutation=C;exports.useQuery=b;
1
+ 'use strict';var reactQuery=require('@tanstack/react-query'),react=require('react');function O(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function b(r,...a){let t=a[0]??{},e=a[1],o=reactQuery.useQueryClient(),i=react.useRef(e?.realtime?.onChange),p=react.useRef(e?.realtime?.onError);react.useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=react.useMemo(()=>e?.queryOptions?.queryKey??(r.queryKey?r.queryKey(t):["appflare","query",r,t]),[t,e?.queryOptions?.queryKey,r]),d=react.useMemo(()=>reactQuery.hashKey(u),[u]),f=react.useMemo(()=>reactQuery.hashKey([t]),[t]),A=react.useMemo(()=>reactQuery.hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=reactQuery.useQuery({...e?.queryOptions,queryKey:u,queryFn:async()=>{let s=await r.run(t,e?.requestOptions);if(s.error)throw O(s.error);return s.data}});return react.useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:t,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,n),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,d]),m}function h(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function P(r,...a){let t=a[0]??{},e=a[1],o=reactQuery.useQueryClient(),i=react.useRef(e?.realtime?.onChange),p=react.useRef(e?.realtime?.onError);react.useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=react.useMemo(()=>e?.queryOptions?.queryKey??(r.queryKey?r.queryKey(t):["appflare","infinite-query",r,t]),[t,e?.queryOptions?.queryKey,r]),d=react.useMemo(()=>reactQuery.hashKey(u),[u]),f=react.useMemo(()=>reactQuery.hashKey([t]),[t]),A=react.useMemo(()=>reactQuery.hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=reactQuery.useInfiniteQuery({...e?.queryOptions,queryKey:u,queryFn:async({pageParam:s})=>{let y=s===void 0||!e?.pageParamToArgs?t:e.pageParamToArgs(t,s),n=await r.run(y,e?.requestOptions);if(n.error)throw h(n.error);return n.data}});return react.useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:t,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,T=>!T||T.pages.length===0?T:{...T,pages:[n,...T.pages.slice(1)]}),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,d]),m}function L(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function C(r,a){return reactQuery.useMutation({...a,mutationFn:async t=>{let e=await r.run(t??{});if(e.error)throw L(e.error);return e.data}})}exports.useInfiniteQuery=P;exports.useMutation=C;exports.useQuery=b;
@@ -1 +1 @@
1
- import {useQueryClient,hashKey,useQuery,useInfiniteQuery,useMutation}from'@tanstack/react-query';import {useRef,useEffect,useMemo}from'react';function O(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function b(r,...t){let a=t[0]??{},e=t[1],o=useQueryClient(),i=useRef(e?.realtime?.onChange),p=useRef(e?.realtime?.onError);useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=useMemo(()=>e?.queryOptions?.queryKey??["appflare","query",r,a],[a,e?.queryOptions?.queryKey,r]),g=useMemo(()=>hashKey(u),[u]),f=useMemo(()=>hashKey([a]),[a]),A=useMemo(()=>hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=useQuery({...e?.queryOptions,queryKey:u,queryFn:async()=>{let s=await r.run(a,e?.requestOptions);if(s.error)throw O(s.error);return s.data}});return useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:a,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,n),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,g]),m}function h(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function P(r,...t){let a=t[0]??{},e=t[1],o=useQueryClient(),i=useRef(e?.realtime?.onChange),p=useRef(e?.realtime?.onError);useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=useMemo(()=>e?.queryOptions?.queryKey??["appflare","infinite-query",r,a],[a,e?.queryOptions?.queryKey,r]),g=useMemo(()=>hashKey(u),[u]),f=useMemo(()=>hashKey([a]),[a]),A=useMemo(()=>hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=useInfiniteQuery({...e?.queryOptions,queryKey:u,queryFn:async({pageParam:s})=>{let y=s===void 0||!e?.pageParamToArgs?a:e.pageParamToArgs(a,s),n=await r.run(y,e?.requestOptions);if(n.error)throw h(n.error);return n.data}});return useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:a,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,l=>!l||l.pages.length===0?l:{...l,pages:[n,...l.pages.slice(1)]}),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,g]),m}function L(r){let t=new Error(r.message);return r.status!==void 0&&(t.status=r.status),t}function C(r,t){return useMutation({...t,mutationFn:async a=>{let e=await r.run(a??{});if(e.error)throw L(e.error);return e.data}})}export{P as useInfiniteQuery,C as useMutation,b as useQuery};
1
+ import {useQueryClient,hashKey,useQuery,useInfiniteQuery,useMutation}from'@tanstack/react-query';import {useRef,useEffect,useMemo}from'react';function O(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function b(r,...a){let t=a[0]??{},e=a[1],o=useQueryClient(),i=useRef(e?.realtime?.onChange),p=useRef(e?.realtime?.onError);useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=useMemo(()=>e?.queryOptions?.queryKey??(r.queryKey?r.queryKey(t):["appflare","query",r,t]),[t,e?.queryOptions?.queryKey,r]),d=useMemo(()=>hashKey(u),[u]),f=useMemo(()=>hashKey([t]),[t]),A=useMemo(()=>hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=useQuery({...e?.queryOptions,queryKey:u,queryFn:async()=>{let s=await r.run(t,e?.requestOptions);if(s.error)throw O(s.error);return s.data}});return useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:t,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,n),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,d]),m}function h(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function P(r,...a){let t=a[0]??{},e=a[1],o=useQueryClient(),i=useRef(e?.realtime?.onChange),p=useRef(e?.realtime?.onError);useEffect(()=>{i.current=e?.realtime?.onChange,p.current=e?.realtime?.onError;},[e?.realtime?.onChange,e?.realtime?.onError]);let u=useMemo(()=>e?.queryOptions?.queryKey??(r.queryKey?r.queryKey(t):["appflare","infinite-query",r,t]),[t,e?.queryOptions?.queryKey,r]),d=useMemo(()=>hashKey(u),[u]),f=useMemo(()=>hashKey([t]),[t]),A=useMemo(()=>hashKey([e?.realtime?.requestOptions]),[e?.realtime?.requestOptions]),m=useInfiniteQuery({...e?.queryOptions,queryKey:u,queryFn:async({pageParam:s})=>{let y=s===void 0||!e?.pageParamToArgs?t:e.pageParamToArgs(t,s),n=await r.run(y,e?.requestOptions);if(n.error)throw h(n.error);return n.data}});return useEffect(()=>{if(e?.realtime?.enabled===false||!r.subscribe)return;let s=new AbortController,y=r.subscribe({args:t,authToken:e?.realtime?.authToken,requestOptions:e?.realtime?.requestOptions,signal:s.signal,onChange:(n,c)=>{o.setQueryData(u,T=>!T||T.pages.length===0?T:{...T,pages:[n,...T.pages.slice(1)]}),i.current?.(n,c);},onError:n=>{p.current?.(n);}});return ()=>{s.abort(),y.remove();}},[f,e?.realtime?.authToken,e?.realtime?.enabled,A,r.subscribe,o,d]),m}function L(r){let a=new Error(r.message);return r.status!==void 0&&(a.status=r.status),a}function C(r,a){return useMutation({...a,mutationFn:async t=>{let e=await r.run(t??{});if(e.error)throw L(e.error);return e.data}})}export{P as useInfiniteQuery,C as useMutation,b as useQuery};
package/index.ts CHANGED
@@ -1,18 +1,18 @@
1
- export type {
2
- AppflareConfig,
3
- AppflareDatabaseBinding,
4
- AppflareKVNamespace,
5
- AppflareR2Bucket,
6
- LoadedAppflareConfig,
7
- NormalizedAppflareConfig,
8
- } from "./cli/types";
9
- export {
10
- schema,
11
- table,
12
- v,
13
- isSchemaDefinition,
14
- type ColumnDefinition,
15
- type RelationDefinition,
16
- type SchemaDefinition,
17
- type TableDefinition,
18
- } from "./schema";
1
+ export type {
2
+ AppflareConfig,
3
+ AppflareDatabaseBinding,
4
+ AppflareKVNamespace,
5
+ AppflareR2Bucket,
6
+ LoadedAppflareConfig,
7
+ NormalizedAppflareConfig,
8
+ } from "./cli/types";
9
+ export {
10
+ schema,
11
+ table,
12
+ v,
13
+ isSchemaDefinition,
14
+ type ColumnDefinition,
15
+ type RelationDefinition,
16
+ type SchemaDefinition,
17
+ type TableDefinition,
18
+ } from "./schema";
package/package.json CHANGED
@@ -1,58 +1,58 @@
1
- {
2
- "name": "appflare",
3
- "version": "0.2.41",
4
- "main": "./dist/index.js",
5
- "module": "./dist/index.mjs",
6
- "types": "./dist/index.d.ts",
7
- "bin": {
8
- "appflare": "./dist/cli/index.js"
9
- },
10
- "exports": {
11
- ".": {
12
- "types": "./dist/index.d.ts",
13
- "import": "./dist/index.mjs",
14
- "require": "./dist/index.js"
15
- },
16
- "./react": {
17
- "types": "./dist/react/index.d.ts",
18
- "import": "./dist/react/index.mjs",
19
- "require": "./dist/react/index.js"
20
- },
21
- "./*": "./dist/*.js"
22
- },
23
- "scripts": {
24
- "build": "tsup",
25
- "dev": "tsup --watch",
26
- "lint": "tsc --noEmit",
27
- "prepublishOnly": "bun run build"
28
- },
29
- "peerDependencies": {
30
- "@tanstack/react-query": "^5.90.21",
31
- "react": ">=18"
32
- },
33
- "devDependencies": {
34
- "@cloudflare/workers-types": "^4.20260219.0",
35
- "@types/react": "^19.2.0",
36
- "@tanstack/react-query": "^5.90.21",
37
- "@types/bun": "^1.3.9",
38
- "@types/node": "^25.3.0",
39
- "npm-check-updates": "^19.4.0",
40
- "tsup": "^8.3.6"
41
- },
42
- "dependencies": {
43
- "@better-auth/cli": "^1.4.21",
44
- "@hono/standard-validator": "0.2.2",
45
- "better-auth": "^1.5.5",
46
- "better-auth-cloudflare": "0.2.9",
47
- "better-fetch": "1.1.2",
48
- "bun": "1.3.9",
49
- "chokidar": "5.0.0",
50
- "commander": "14.0.3",
51
- "drizzle-kit": "0.31.9",
52
- "drizzle-orm": "0.45.1",
53
- "hono": "4.12.0",
54
- "typescript": "6.0.3",
55
- "wrangler": "4.67.0",
56
- "zod": "4.3.6"
57
- }
58
- }
1
+ {
2
+ "name": "appflare",
3
+ "version": "0.2.43",
4
+ "main": "./dist/index.js",
5
+ "module": "./dist/index.mjs",
6
+ "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "appflare": "./dist/cli/index.js"
9
+ },
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.js"
15
+ },
16
+ "./react": {
17
+ "types": "./dist/react/index.d.ts",
18
+ "import": "./dist/react/index.mjs",
19
+ "require": "./dist/react/index.js"
20
+ },
21
+ "./*": "./dist/*.js"
22
+ },
23
+ "scripts": {
24
+ "build": "tsup",
25
+ "dev": "tsup --watch",
26
+ "lint": "tsc --noEmit",
27
+ "prepublishOnly": "bun run build"
28
+ },
29
+ "peerDependencies": {
30
+ "@tanstack/react-query": "^5.90.21",
31
+ "react": ">=18"
32
+ },
33
+ "devDependencies": {
34
+ "@cloudflare/workers-types": "^4.20260219.0",
35
+ "@types/react": "^19.2.0",
36
+ "@tanstack/react-query": "^5.90.21",
37
+ "@types/bun": "^1.3.9",
38
+ "@types/node": "^25.3.0",
39
+ "npm-check-updates": "^19.4.0",
40
+ "tsup": "^8.3.6"
41
+ },
42
+ "dependencies": {
43
+ "@better-auth/cli": "^1.4.21",
44
+ "@hono/standard-validator": "0.2.2",
45
+ "better-auth": "^1.5.5",
46
+ "better-auth-cloudflare": "0.2.9",
47
+ "better-fetch": "1.1.2",
48
+ "bun": "1.3.9",
49
+ "chokidar": "5.0.0",
50
+ "commander": "14.0.3",
51
+ "drizzle-kit": "0.31.9",
52
+ "drizzle-orm": "0.45.1",
53
+ "hono": "4.12.0",
54
+ "typescript": "6.0.3",
55
+ "wrangler": "4.67.0",
56
+ "zod": "4.3.6"
57
+ }
58
+ }
package/react/index.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { useQuery } from "./use-query";
2
- export type { UseAppflareQueryOptions } from "./use-query";
3
- export { useInfiniteQuery } from "./use-infinite-query";
4
- export type { UseAppflareInfiniteQueryOptions } from "./use-infinite-query";
5
- export { useMutation } from "./use-mutation";
1
+ export { useQuery } from "./use-query";
2
+ export type { UseAppflareQueryOptions } from "./use-query";
3
+ export { useInfiniteQuery } from "./use-infinite-query";
4
+ export type { UseAppflareInfiniteQueryOptions } from "./use-infinite-query";
5
+ export { useMutation } from "./use-mutation";