appflare 0.2.48 → 0.2.49

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 (139) hide show
  1. package/Documentation.md +898 -898
  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 +1366 -1366
  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 -763
  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 -187
  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 +271 -271
  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 +703 -703
  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 +257 -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 +44 -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 +35 -35
  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 +65 -65
  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 +108 -108
  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 -291
  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 +156 -156
  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 -958
  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 +501 -501
  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 +402 -399
  128. package/dist/cli/index.js +77 -55
  129. package/dist/cli/index.mjs +77 -55
  130. package/index.ts +18 -18
  131. package/package.json +58 -58
  132. package/react/index.ts +5 -5
  133. package/react/use-infinite-query.ts +255 -255
  134. package/react/use-mutation.ts +89 -89
  135. package/react/use-query.ts +210 -210
  136. package/schema.ts +641 -641
  137. package/test-better-auth-hash.ts +2 -2
  138. package/tsconfig.json +6 -6
  139. package/tsup.config.ts +82 -82
@@ -1,135 +1,135 @@
1
- export function generateQueryApiTypesSection(): string {
2
- return `type AggregateWithInput<TName extends TableName> =
3
- QueryWithInput<TName, NativeFindManyWith<TName>>;
4
-
5
- type NumericFieldKey<TName extends TableName> = NumericModelFieldKey<
6
- TableModel<TName>
7
- >;
8
-
9
- type RelationAggregateAvgResult<TAvg> = TAvg extends Record<string, unknown>
10
- ? {
11
- [K in Extract<keyof TAvg, string> as TAvg[K] extends true ? K : never]: number;
12
- }
13
- : {};
14
-
15
- type RelationAggregateResult<TEntry> =
16
- Extract<TEntry, Record<string, unknown>> extends infer TRelation
17
- ? TRelation extends Record<string, unknown>
18
- ? (TRelation extends { _count?: true } ? { count: number } : {}) &
19
- (TRelation extends { _avg?: infer TAvg }
20
- ? { avg: RelationAggregateAvgResult<TAvg> }
21
- : {})
22
- : {}
23
- : {};
24
-
25
- type HasRelationAggregateRequest<TEntry> =
26
- Extract<TEntry, Record<string, unknown>> extends infer TRelation
27
- ? TRelation extends Record<string, unknown>
28
- ? TRelation extends { _count?: true }
29
- ? true
30
- : TRelation extends { _avg?: Record<string, unknown> }
31
- ? true
32
- : false
33
- : false
34
- : false;
35
-
36
- type QueryWithAggregateResult<TWith> = TWith extends Record<string, unknown>
37
- ? {
38
- [K in Extract<keyof TWith, string> as HasRelationAggregateRequest<
39
- TWith[K]
40
- > extends true
41
- ? \`\${K}Aggregate\`
42
- : never]: RelationAggregateResult<TWith[K]>;
43
- }
44
- : {};
45
-
46
- type WithFromArgs<TArgs> = TArgs extends { with?: infer TWith }
47
- ? TWith
48
- : undefined;
49
-
50
- type AppendRelationAggregatesToRow<TRow, TWith> = TRow &
51
- QueryWithAggregateResult<TWith>;
52
-
53
- type ApplyFindManyWithAggregateResult<TResult, TArgs> =
54
- TResult extends Promise<infer TRows>
55
- ? TRows extends Array<infer TRow>
56
- ? Promise<
57
- Array<AppendRelationAggregatesToRow<TRow, WithFromArgs<TArgs>>>
58
- >
59
- : TResult
60
- : TResult;
61
-
62
- type ApplyFindFirstWithAggregateResult<TResult, TArgs> =
63
- TResult extends Promise<infer TRow>
64
- ? Promise<
65
- TRow extends null
66
- ? null
67
- : AppendRelationAggregatesToRow<TRow, WithFromArgs<TArgs>>
68
- >
69
- : TResult;
70
-
71
- export type QueryCountArgs<TName extends TableName> = {
72
- where?: WhereInput<TableModel<TName>, TName>;
73
- field?: Extract<keyof TableModel<TName>, string> | string;
74
- distinct?: boolean;
75
- with?: AggregateWithInput<TName>;
76
- };
77
-
78
- export type QueryAvgArgs<TName extends TableName> = {
79
- where?: WhereInput<TableModel<TName>, TName>;
80
- field: NumericFieldKey<TName> | string;
81
- distinct?: boolean;
82
- with?: AggregateWithInput<TName>;
83
- };
84
-
85
- export type QueryUpsertArgs<TName extends TableName> = {
86
- values: TableInsertModel<TName> | Array<TableInsertModel<TName>>;
87
- target?:
88
- | Extract<keyof TableInsertModel<TName>, string>
89
- | Array<Extract<keyof TableInsertModel<TName>, string>>;
90
- set?: Partial<TableInsertModel<TName>>;
91
- };
92
-
93
- export type QueryTableApi<TName extends TableName> = {
94
- findMany: <
95
- TArgs extends QueryFindManyArgs<TName> | undefined =
96
- | QueryFindManyArgs<TName>
97
- | undefined,
98
- >(
99
- args?: TArgs,
100
- ) => ApplyFindManyWithAggregateResult<TableFindManyResult<TName, TArgs>, TArgs>;
101
- findFirst: <
102
- TArgs extends QueryFindFirstArgs<TName> | undefined =
103
- | QueryFindFirstArgs<TName>
104
- | undefined,
105
- >(
106
- args?: TArgs,
107
- ) => ApplyFindFirstWithAggregateResult<TableFindFirstResult<TName, TArgs>, TArgs>;
108
- insert: <TArgs extends QueryInsertArgs<TName>>(
109
- args: TArgs,
110
- ) => Promise<Array<QueryInsertResultRow<TName, TArgs>>>;
111
- update: (args: QueryUpdateArgs<TName>) => Promise<Array<TableModel<TName>>>;
112
- upsert: (args: QueryUpsertArgs<TName>) => Promise<Array<TableModel<TName>>>;
113
- delete: (args?: QueryDeleteArgs<TName>) => Promise<Array<TableModel<TName>>>;
114
- count: (args?: QueryCountArgs<TName>) => Promise<number>;
115
- avg: (args: QueryAvgArgs<TName>) => Promise<number | null>;
116
- };
117
-
118
- export type AppflareQueryDb = {
119
- [TName in TableName]: QueryTableApi<TName>;
120
- };
121
-
122
- export type DbMutationKind = "insert" | "update" | "upsert" | "delete";
123
-
124
- export type DbMutationEvent = {
125
- kind: DbMutationKind;
126
- table: string;
127
- args: Record<string, unknown>;
128
- rows: unknown[];
129
- };
130
-
131
- export type QueryDbOptions = {
132
- onMutation?: (event: DbMutationEvent) => void;
133
- };
134
- `;
135
- }
1
+ export function generateQueryApiTypesSection(): string {
2
+ return `type AggregateWithInput<TName extends TableName> =
3
+ QueryWithInput<TName, NativeFindManyWith<TName>>;
4
+
5
+ type NumericFieldKey<TName extends TableName> = NumericModelFieldKey<
6
+ TableModel<TName>
7
+ >;
8
+
9
+ type RelationAggregateAvgResult<TAvg> = TAvg extends Record<string, unknown>
10
+ ? {
11
+ [K in Extract<keyof TAvg, string> as TAvg[K] extends true ? K : never]: number;
12
+ }
13
+ : {};
14
+
15
+ type RelationAggregateResult<TEntry> =
16
+ Extract<TEntry, Record<string, unknown>> extends infer TRelation
17
+ ? TRelation extends Record<string, unknown>
18
+ ? (TRelation extends { _count?: true } ? { count: number } : {}) &
19
+ (TRelation extends { _avg?: infer TAvg }
20
+ ? { avg: RelationAggregateAvgResult<TAvg> }
21
+ : {})
22
+ : {}
23
+ : {};
24
+
25
+ type HasRelationAggregateRequest<TEntry> =
26
+ Extract<TEntry, Record<string, unknown>> extends infer TRelation
27
+ ? TRelation extends Record<string, unknown>
28
+ ? TRelation extends { _count?: true }
29
+ ? true
30
+ : TRelation extends { _avg?: Record<string, unknown> }
31
+ ? true
32
+ : false
33
+ : false
34
+ : false;
35
+
36
+ type QueryWithAggregateResult<TWith> = TWith extends Record<string, unknown>
37
+ ? {
38
+ [K in Extract<keyof TWith, string> as HasRelationAggregateRequest<
39
+ TWith[K]
40
+ > extends true
41
+ ? \`\${K}Aggregate\`
42
+ : never]: RelationAggregateResult<TWith[K]>;
43
+ }
44
+ : {};
45
+
46
+ type WithFromArgs<TArgs> = TArgs extends { with?: infer TWith }
47
+ ? TWith
48
+ : undefined;
49
+
50
+ type AppendRelationAggregatesToRow<TRow, TWith> = TRow &
51
+ QueryWithAggregateResult<TWith>;
52
+
53
+ type ApplyFindManyWithAggregateResult<TResult, TArgs> =
54
+ TResult extends Promise<infer TRows>
55
+ ? TRows extends Array<infer TRow>
56
+ ? Promise<
57
+ Array<AppendRelationAggregatesToRow<TRow, WithFromArgs<TArgs>>>
58
+ >
59
+ : TResult
60
+ : TResult;
61
+
62
+ type ApplyFindFirstWithAggregateResult<TResult, TArgs> =
63
+ TResult extends Promise<infer TRow>
64
+ ? Promise<
65
+ TRow extends null
66
+ ? null
67
+ : AppendRelationAggregatesToRow<TRow, WithFromArgs<TArgs>>
68
+ >
69
+ : TResult;
70
+
71
+ export type QueryCountArgs<TName extends TableName> = {
72
+ where?: WhereInput<TableModel<TName>, TName>;
73
+ field?: Extract<keyof TableModel<TName>, string> | string;
74
+ distinct?: boolean;
75
+ with?: AggregateWithInput<TName>;
76
+ };
77
+
78
+ export type QueryAvgArgs<TName extends TableName> = {
79
+ where?: WhereInput<TableModel<TName>, TName>;
80
+ field: NumericFieldKey<TName> | string;
81
+ distinct?: boolean;
82
+ with?: AggregateWithInput<TName>;
83
+ };
84
+
85
+ export type QueryUpsertArgs<TName extends TableName> = {
86
+ values: TableInsertModel<TName> | Array<TableInsertModel<TName>>;
87
+ target?:
88
+ | Extract<keyof TableInsertModel<TName>, string>
89
+ | Array<Extract<keyof TableInsertModel<TName>, string>>;
90
+ set?: Partial<TableInsertModel<TName>>;
91
+ };
92
+
93
+ export type QueryTableApi<TName extends TableName> = {
94
+ findMany: <
95
+ TArgs extends QueryFindManyArgs<TName> | undefined =
96
+ | QueryFindManyArgs<TName>
97
+ | undefined,
98
+ >(
99
+ args?: TArgs,
100
+ ) => ApplyFindManyWithAggregateResult<TableFindManyResult<TName, TArgs>, TArgs>;
101
+ findFirst: <
102
+ TArgs extends QueryFindFirstArgs<TName> | undefined =
103
+ | QueryFindFirstArgs<TName>
104
+ | undefined,
105
+ >(
106
+ args?: TArgs,
107
+ ) => ApplyFindFirstWithAggregateResult<TableFindFirstResult<TName, TArgs>, TArgs>;
108
+ insert: <TArgs extends QueryInsertArgs<TName>>(
109
+ args: TArgs,
110
+ ) => Promise<Array<QueryInsertResultRow<TName, TArgs>>>;
111
+ update: (args: QueryUpdateArgs<TName>) => Promise<Array<TableModel<TName>>>;
112
+ upsert: (args: QueryUpsertArgs<TName>) => Promise<Array<TableModel<TName>>>;
113
+ delete: (args?: QueryDeleteArgs<TName>) => Promise<Array<TableModel<TName>>>;
114
+ count: (args?: QueryCountArgs<TName>) => Promise<number>;
115
+ avg: (args: QueryAvgArgs<TName>) => Promise<number | null>;
116
+ };
117
+
118
+ export type AppflareQueryDb = {
119
+ [TName in TableName]: QueryTableApi<TName>;
120
+ };
121
+
122
+ export type DbMutationKind = "insert" | "update" | "upsert" | "delete";
123
+
124
+ export type DbMutationEvent = {
125
+ kind: DbMutationKind;
126
+ table: string;
127
+ args: Record<string, unknown>;
128
+ rows: unknown[];
129
+ };
130
+
131
+ export type QueryDbOptions = {
132
+ onMutation?: (event: DbMutationEvent) => void;
133
+ };
134
+ `;
135
+ }