kitcn 0.0.1 → 0.12.1

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 (93) hide show
  1. package/bin/intent.js +3 -0
  2. package/dist/aggregate/index.d.ts +388 -0
  3. package/dist/aggregate/index.js +37 -0
  4. package/dist/api-entry-BckXqaLb.js +66 -0
  5. package/dist/auth/client/index.d.ts +37 -0
  6. package/dist/auth/client/index.js +217 -0
  7. package/dist/auth/config/index.d.ts +45 -0
  8. package/dist/auth/config/index.js +24 -0
  9. package/dist/auth/generated/index.d.ts +2 -0
  10. package/dist/auth/generated/index.js +3 -0
  11. package/dist/auth/http/index.d.ts +64 -0
  12. package/dist/auth/http/index.js +461 -0
  13. package/dist/auth/index.d.ts +221 -0
  14. package/dist/auth/index.js +1398 -0
  15. package/dist/auth/nextjs/index.d.ts +50 -0
  16. package/dist/auth/nextjs/index.js +81 -0
  17. package/dist/auth-store-Cljlmdmi.js +197 -0
  18. package/dist/builder-CBdG5W6A.js +1974 -0
  19. package/dist/caller-factory-cTXNvYdz.js +216 -0
  20. package/dist/cli.mjs +13264 -0
  21. package/dist/codegen-lF80HSWu.mjs +3416 -0
  22. package/dist/context-utils-HPC5nXzx.d.ts +17 -0
  23. package/dist/create-schema-odyF4kCy.js +156 -0
  24. package/dist/create-schema-orm-DOyiNDCx.js +246 -0
  25. package/dist/crpc/index.d.ts +105 -0
  26. package/dist/crpc/index.js +169 -0
  27. package/dist/customFunctions-C0voKmtx.js +144 -0
  28. package/dist/error-BZEnI7Sq.js +41 -0
  29. package/dist/generated-contract-disabled-Cih4eITO.js +50 -0
  30. package/dist/generated-contract-disabled-D-sOFy92.d.ts +354 -0
  31. package/dist/http-types-DqJubRPJ.d.ts +292 -0
  32. package/dist/meta-utils-0Pu0Nrap.js +117 -0
  33. package/dist/middleware-BUybuv9n.d.ts +34 -0
  34. package/dist/middleware-C2qTZ3V7.js +84 -0
  35. package/dist/orm/index.d.ts +17 -0
  36. package/dist/orm/index.js +10713 -0
  37. package/dist/plugins/index.d.ts +2 -0
  38. package/dist/plugins/index.js +3 -0
  39. package/dist/procedure-caller-DtxLmGwA.d.ts +1467 -0
  40. package/dist/procedure-caller-MWcxhQDv.js +349 -0
  41. package/dist/query-context-B8o6-8kC.js +1518 -0
  42. package/dist/query-context-CFZqIvD7.d.ts +42 -0
  43. package/dist/query-options-Dw7cOyXl.js +121 -0
  44. package/dist/ratelimit/index.d.ts +269 -0
  45. package/dist/ratelimit/index.js +856 -0
  46. package/dist/ratelimit/react/index.d.ts +76 -0
  47. package/dist/ratelimit/react/index.js +183 -0
  48. package/dist/react/index.d.ts +1284 -0
  49. package/dist/react/index.js +2526 -0
  50. package/dist/rsc/index.d.ts +276 -0
  51. package/dist/rsc/index.js +233 -0
  52. package/dist/runtime-CtvJPkur.js +2453 -0
  53. package/dist/server/index.d.ts +5 -0
  54. package/dist/server/index.js +6 -0
  55. package/dist/solid/index.d.ts +1221 -0
  56. package/dist/solid/index.js +2940 -0
  57. package/dist/transformer-DtDhR3Lc.js +194 -0
  58. package/dist/types-BTb_4BaU.d.ts +42 -0
  59. package/dist/types-BiJE7qxR.d.ts +4 -0
  60. package/dist/types-DEJpkIhw.d.ts +88 -0
  61. package/dist/types-HhO_R6pd.d.ts +213 -0
  62. package/dist/validators-B7oIJCAp.js +279 -0
  63. package/dist/validators-vzRKjBJC.d.ts +88 -0
  64. package/dist/watcher.mjs +96 -0
  65. package/dist/where-clause-compiler-DdjN63Io.d.ts +4756 -0
  66. package/package.json +107 -34
  67. package/skills/convex/SKILL.md +486 -0
  68. package/skills/convex/references/features/aggregates.md +353 -0
  69. package/skills/convex/references/features/auth-admin.md +446 -0
  70. package/skills/convex/references/features/auth-organizations.md +1141 -0
  71. package/skills/convex/references/features/auth-polar.md +579 -0
  72. package/skills/convex/references/features/auth.md +470 -0
  73. package/skills/convex/references/features/create-plugins.md +153 -0
  74. package/skills/convex/references/features/http.md +676 -0
  75. package/skills/convex/references/features/migrations.md +162 -0
  76. package/skills/convex/references/features/orm.md +1166 -0
  77. package/skills/convex/references/features/react.md +657 -0
  78. package/skills/convex/references/features/scheduling.md +267 -0
  79. package/skills/convex/references/features/testing.md +209 -0
  80. package/skills/convex/references/setup/auth.md +501 -0
  81. package/skills/convex/references/setup/biome.md +190 -0
  82. package/skills/convex/references/setup/doc-guidelines.md +145 -0
  83. package/skills/convex/references/setup/index.md +761 -0
  84. package/skills/convex/references/setup/next.md +116 -0
  85. package/skills/convex/references/setup/react.md +175 -0
  86. package/skills/convex/references/setup/server.md +473 -0
  87. package/skills/convex/references/setup/start.md +67 -0
  88. package/LICENSE +0 -21
  89. package/README.md +0 -0
  90. package/dist/index.d.mts +0 -5
  91. package/dist/index.d.mts.map +0 -1
  92. package/dist/index.mjs +0 -6
  93. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,42 @@
1
+ import { DocumentByName, GenericQueryCtx, TableNamesInDataModel } from "convex/server";
2
+
3
+ //#region src/orm/query-context.d.ts
4
+ type InferCtxDataModel<TCtx extends GenericQueryCtx<any>> = TCtx extends GenericQueryCtx<infer DataModel> ? DataModel : never;
5
+ type DocByCtx<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = DocumentByName<InferCtxDataModel<TCtx>, TableName>;
6
+ type QueryCtxWithOptionalOrmQueryTable<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = TCtx & {
7
+ orm?: {
8
+ query?: { [K in TableName]?: {
9
+ findFirst?: (...args: any[]) => unknown;
10
+ } };
11
+ };
12
+ };
13
+ type QueryCtxWithOrmQueryTable<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = TCtx & {
14
+ orm: {
15
+ query: { [K in TableName]-?: {
16
+ findFirst: (...args: any[]) => unknown;
17
+ } };
18
+ };
19
+ };
20
+ type OrmQueryByCtx<TCtx extends GenericQueryCtx<any>> = TCtx extends {
21
+ orm: {
22
+ query: infer TQuery;
23
+ };
24
+ } ? TQuery : never;
25
+ type OrmQueryEntryByCtx<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = TableName extends keyof OrmQueryByCtx<TCtx> ? NonNullable<OrmQueryByCtx<TCtx>[TableName]> : never;
26
+ type HasOrmFindFirstByCtx<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = [OrmQueryEntryByCtx<TCtx, TableName>] extends [never] ? false : OrmQueryEntryByCtx<TCtx, TableName> extends {
27
+ findFirst: (...args: any[]) => unknown;
28
+ } ? true : false;
29
+ type QueryCtxWithPreferredOrmQueryTable<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = TCtx extends {
30
+ orm: unknown;
31
+ } ? HasOrmFindFirstByCtx<TCtx, TableName> extends true ? TCtx : never : TCtx;
32
+ type OrmQueryRowByCtx<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = OrmQueryEntryByCtx<TCtx, TableName> extends {
33
+ _: {
34
+ baseResult: infer TResult;
35
+ };
36
+ } ? TResult : never;
37
+ type LookupByIdResultByCtx<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>> = (TCtx extends {
38
+ orm: unknown;
39
+ } ? OrmQueryRowByCtx<TCtx, TableName> : DocByCtx<TCtx, TableName>) | null;
40
+ declare function getByIdWithOrmQueryFallback<TCtx extends GenericQueryCtx<any>, TableName extends TableNamesInDataModel<InferCtxDataModel<TCtx>>>(ctx: QueryCtxWithPreferredOrmQueryTable<TCtx, TableName>, tableName: TableName, id: DocByCtx<TCtx, TableName>['_id']): Promise<LookupByIdResultByCtx<TCtx, TableName>>;
41
+ //#endregion
42
+ export { QueryCtxWithPreferredOrmQueryTable as a, QueryCtxWithOrmQueryTable as i, LookupByIdResultByCtx as n, getByIdWithOrmQueryFallback as o, QueryCtxWithOptionalOrmQueryTable as r, DocByCtx as t };
@@ -0,0 +1,121 @@
1
+ import { getFunctionName } from "convex/server";
2
+
3
+ //#region src/crpc/query-options.ts
4
+ /**
5
+ * Query options factory for Convex query function subscriptions.
6
+ * Requires `convexQueryClient.queryFn()` set as the default `queryFn` globally.
7
+ */
8
+ function convexQuery(funcRef, args, meta, opts) {
9
+ const finalArgs = args ?? {};
10
+ const isSkip = finalArgs === "skip";
11
+ const funcName = getFunctionName(funcRef);
12
+ const [namespace, fnName] = funcName.split(":");
13
+ const authType = meta?.[namespace]?.[fnName]?.auth;
14
+ const skipUnauth = opts?.skipUnauth;
15
+ return {
16
+ queryKey: [
17
+ "convexQuery",
18
+ funcName,
19
+ isSkip ? "skip" : finalArgs
20
+ ],
21
+ staleTime: Number.POSITIVE_INFINITY,
22
+ refetchInterval: false,
23
+ refetchOnMount: false,
24
+ refetchOnReconnect: false,
25
+ refetchOnWindowFocus: false,
26
+ ...isSkip ? { enabled: false } : {},
27
+ meta: {
28
+ authType,
29
+ skipUnauth,
30
+ subscribe: true
31
+ }
32
+ };
33
+ }
34
+ /**
35
+ * Query options factory for Convex action functions.
36
+ * Actions are NOT reactive - they follow normal TanStack Query semantics.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * useQuery(convexAction(api.ai.generate, { prompt }))
41
+ * ```
42
+ *
43
+ * @example With additional options (use spread):
44
+ * ```ts
45
+ * useQuery({
46
+ * ...convexAction(api.files.process, { fileId }),
47
+ * staleTime: 60_000
48
+ * });
49
+ * ```
50
+ */
51
+ function convexAction(funcRef, args, meta, opts) {
52
+ const finalArgs = args ?? {};
53
+ const isSkip = finalArgs === "skip";
54
+ const funcName = getFunctionName(funcRef);
55
+ const [namespace, fnName] = funcName.split(":");
56
+ const authType = meta?.[namespace]?.[fnName]?.auth;
57
+ const skipUnauth = opts?.skipUnauth;
58
+ return {
59
+ queryKey: [
60
+ "convexAction",
61
+ funcName,
62
+ isSkip ? {} : finalArgs
63
+ ],
64
+ staleTime: Number.POSITIVE_INFINITY,
65
+ refetchInterval: false,
66
+ refetchOnMount: false,
67
+ refetchOnReconnect: false,
68
+ refetchOnWindowFocus: false,
69
+ ...isSkip ? { enabled: false } : {},
70
+ meta: {
71
+ authType,
72
+ skipUnauth,
73
+ subscribe: false
74
+ }
75
+ };
76
+ }
77
+ /**
78
+ * Infinite query options factory for paginated Convex queries.
79
+ * Server-safe (non-hook) - can be used in RSC.
80
+ *
81
+ * Uses flat { cursor, limit } input like tRPC.
82
+ */
83
+ function convexInfiniteQueryOptions(funcRef, args, opts = {}, meta) {
84
+ const { limit, skipUnauth, enabled, ...queryOptions } = opts;
85
+ const finalArgs = args === "skip" ? {} : args;
86
+ const isSkip = args === "skip";
87
+ const funcName = getFunctionName(funcRef);
88
+ const [namespace, fnName] = funcName.split(":");
89
+ const authType = (meta?.[namespace]?.[fnName])?.auth;
90
+ const firstPageArgs = {
91
+ ...finalArgs,
92
+ cursor: null,
93
+ limit
94
+ };
95
+ const finalEnabled = enabled === false || isSkip ? false : void 0;
96
+ return {
97
+ queryKey: [
98
+ "convexQuery",
99
+ funcName,
100
+ firstPageArgs
101
+ ],
102
+ staleTime: Number.POSITIVE_INFINITY,
103
+ refetchInterval: false,
104
+ refetchOnMount: false,
105
+ refetchOnReconnect: false,
106
+ refetchOnWindowFocus: false,
107
+ ...queryOptions,
108
+ ...finalEnabled === false ? { enabled: false } : {},
109
+ meta: {
110
+ authType,
111
+ skipUnauth,
112
+ subscribe: true,
113
+ queryName: funcName,
114
+ args: finalArgs,
115
+ limit
116
+ }
117
+ };
118
+ }
119
+
120
+ //#endregion
121
+ export { convexInfiniteQueryOptions as n, convexQuery as r, convexAction as t };
@@ -0,0 +1,269 @@
1
+ import { o as MiddlewareBuilder } from "../types-DEJpkIhw.js";
2
+ import { t as Plugin } from "../middleware-BUybuv9n.js";
3
+ import * as convex_server0 from "convex/server";
4
+
5
+ //#region src/ratelimit/duration.d.ts
6
+ type DurationUnit = 'ms' | 's' | 'm' | 'h' | 'd';
7
+ type DurationString = `${number} ${DurationUnit}` | `${number}${DurationUnit}`;
8
+ type Duration = number | DurationString;
9
+ declare function toMs(duration: Duration): number;
10
+ //#endregion
11
+ //#region src/ratelimit/types.d.ts
12
+ type RatelimitReason = 'timeout' | 'cacheBlock' | 'denyList';
13
+ type RatelimitResponse = {
14
+ success: boolean;
15
+ ok: boolean;
16
+ limit: number;
17
+ remaining: number;
18
+ reset: number;
19
+ pending: Promise<unknown>;
20
+ reason?: RatelimitReason;
21
+ deniedValue?: string;
22
+ };
23
+ type RemainingResponse = {
24
+ remaining: number;
25
+ reset: number;
26
+ limit: number;
27
+ };
28
+ type DynamicLimitResponse = {
29
+ dynamicLimit: number | null;
30
+ };
31
+ type RatelimitState = {
32
+ value: number;
33
+ ts: number;
34
+ auxValue?: number;
35
+ auxTs?: number;
36
+ };
37
+ type RatelimitSnapshot = {
38
+ value: number;
39
+ ts: number;
40
+ shard: number;
41
+ config: ResolvedAlgorithm;
42
+ };
43
+ type BaseAlgorithmOptions = {
44
+ shards?: number;
45
+ maxReserved?: number;
46
+ };
47
+ type FixedWindowAlgorithm = {
48
+ kind: 'fixedWindow';
49
+ limit: number;
50
+ window: number;
51
+ capacity: number;
52
+ start?: number;
53
+ maxReserved?: number;
54
+ shards: number;
55
+ };
56
+ type SlidingWindowAlgorithm = {
57
+ kind: 'slidingWindow';
58
+ limit: number;
59
+ window: number;
60
+ maxReserved?: number;
61
+ shards: number;
62
+ };
63
+ type TokenBucketAlgorithm = {
64
+ kind: 'tokenBucket';
65
+ refillRate: number;
66
+ interval: number;
67
+ maxTokens: number;
68
+ maxReserved?: number;
69
+ shards: number;
70
+ };
71
+ type ResolvedAlgorithm = FixedWindowAlgorithm | SlidingWindowAlgorithm | TokenBucketAlgorithm;
72
+ type AlgorithmOptions = BaseAlgorithmOptions & {
73
+ capacity?: number;
74
+ start?: number;
75
+ };
76
+ type LimitRequest = {
77
+ rate?: number;
78
+ count?: number;
79
+ reserve?: boolean;
80
+ ip?: string;
81
+ userAgent?: string;
82
+ country?: string;
83
+ geo?: unknown;
84
+ };
85
+ type CheckRequest = Omit<LimitRequest, 'reserve'> & {
86
+ reserve?: boolean;
87
+ };
88
+ type FailureMode = 'closed' | 'open';
89
+ type ProtectionLists = {
90
+ identifiers?: readonly string[];
91
+ ips?: readonly string[];
92
+ userAgents?: readonly string[];
93
+ countries?: readonly string[];
94
+ };
95
+ type RatelimitConfig = {
96
+ db?: ConvexRatelimitDbReader | ConvexRatelimitDbWriter;
97
+ limiter: ResolvedAlgorithm;
98
+ prefix?: string;
99
+ dynamicLimits?: boolean;
100
+ ephemeralCache?: Map<string, number> | false;
101
+ timeout?: number;
102
+ failureMode?: FailureMode;
103
+ enableProtection?: boolean;
104
+ denyListThreshold?: number;
105
+ denyList?: ProtectionLists;
106
+ };
107
+ type RatelimitRow = {
108
+ _id: string;
109
+ _creationTime?: number;
110
+ name: string;
111
+ key?: string;
112
+ shard: number;
113
+ value: number;
114
+ ts: number;
115
+ auxValue?: number;
116
+ auxTs?: number;
117
+ };
118
+ type ConvexQueryBuilder = {
119
+ withIndex: (name: any, cb: any) => {
120
+ unique: () => Promise<any>;
121
+ collect: () => Promise<any[]>;
122
+ };
123
+ };
124
+ type ConvexRatelimitDbReader = {
125
+ query: (tableName: string) => ConvexQueryBuilder;
126
+ };
127
+ type ConvexRatelimitDbWriter = ConvexRatelimitDbReader & {
128
+ insert: (...args: any[]) => Promise<any>;
129
+ patch: (...args: any[]) => Promise<void>;
130
+ delete: (...args: any[]) => Promise<void>;
131
+ };
132
+ type HookAPIOptions = {
133
+ identifier?: string | ((ctx: unknown, fromClient?: string) => string | Promise<string>);
134
+ sampleShards?: number;
135
+ };
136
+ type HookCheckValue = {
137
+ value: number;
138
+ ts: number;
139
+ config: ResolvedAlgorithm;
140
+ shard: number;
141
+ ok: boolean;
142
+ retryAt?: number;
143
+ };
144
+ //#endregion
145
+ //#region src/ratelimit/core/algorithms.d.ts
146
+ declare function fixedWindow(limit: number, window: Duration, options?: AlgorithmOptions): FixedWindowAlgorithm;
147
+ declare function slidingWindow(limit: number, window: Duration, options?: AlgorithmOptions): SlidingWindowAlgorithm;
148
+ declare function tokenBucket(refillRate: number, interval: Duration, maxTokens: number, options?: AlgorithmOptions): TokenBucketAlgorithm;
149
+ declare function applyDynamicLimit(algorithm: ResolvedAlgorithm, dynamicLimit: number | null): ResolvedAlgorithm;
150
+ //#endregion
151
+ //#region src/ratelimit/core/calculate-rate-limit.d.ts
152
+ type EvaluationResult = {
153
+ state: RatelimitState;
154
+ retryAfter?: number;
155
+ remaining: number;
156
+ reset: number;
157
+ limit: number;
158
+ };
159
+ declare function calculateRatelimit(state: RatelimitState | null, algorithm: ResolvedAlgorithm, now: number, count: number): EvaluationResult;
160
+ //#endregion
161
+ //#region src/ratelimit/plugin.d.ts
162
+ type MaybePromise<T> = T | Promise<T>;
163
+ type RatelimitBuckets = Record<string, Record<string, ResolvedAlgorithm>>;
164
+ type BucketName<TBuckets extends RatelimitBuckets> = Extract<keyof TBuckets, string>;
165
+ type TierName<TBuckets extends RatelimitBuckets> = Extract<keyof TBuckets[BucketName<TBuckets>], string>;
166
+ type RatelimitResolvedArgs<TCtx, TMeta extends object, TUser, TBuckets extends RatelimitBuckets> = {
167
+ ctx: TCtx;
168
+ meta: TMeta;
169
+ user: TUser;
170
+ bucket: BucketName<TBuckets>;
171
+ tier: TierName<TBuckets>;
172
+ identifier: string;
173
+ };
174
+ type RatelimitPluginOptions<TCtx = unknown, TMeta extends object = object, TUser = unknown, TBuckets extends RatelimitBuckets = RatelimitBuckets> = {
175
+ buckets: TBuckets;
176
+ getBucket: (args: {
177
+ ctx: TCtx;
178
+ meta: TMeta;
179
+ }) => MaybePromise<BucketName<TBuckets>>;
180
+ getUser: (args: {
181
+ ctx: TCtx;
182
+ meta: TMeta;
183
+ }) => MaybePromise<TUser>;
184
+ getIdentifier: (args: {
185
+ ctx: TCtx;
186
+ meta: TMeta;
187
+ user: TUser;
188
+ bucket: BucketName<TBuckets>;
189
+ }) => MaybePromise<string>;
190
+ getTier: (user: TUser) => MaybePromise<TierName<TBuckets>>;
191
+ getSignals: (args: RatelimitResolvedArgs<TCtx, TMeta, TUser, TBuckets>) => MaybePromise<LimitRequest | undefined>;
192
+ prefix?: string | ((args: RatelimitResolvedArgs<TCtx, TMeta, TUser, TBuckets>) => MaybePromise<string>);
193
+ failureMode?: 'closed' | 'open';
194
+ enableProtection?: boolean;
195
+ denyListThreshold?: number;
196
+ message?: string | ((args: RatelimitResolvedArgs<TCtx, TMeta, TUser, TBuckets>) => MaybePromise<string>);
197
+ };
198
+ type AnyRatelimitPluginOptions = RatelimitPluginOptions<any, any, any, any>;
199
+ declare const RatelimitPlugin: Plugin<"ratelimit", AnyRatelimitPluginOptions, AnyRatelimitPluginOptions, unknown, Omit<{
200
+ middleware: () => MiddlewareBuilder<any, any, {
201
+ api: Record<string, unknown> & Record<"ratelimit", AnyRatelimitPluginOptions>;
202
+ } | {
203
+ [x: string]: any;
204
+ [x: number]: any;
205
+ [x: symbol]: any;
206
+ api: Record<string, unknown> & Record<"ratelimit", AnyRatelimitPluginOptions>;
207
+ }, unknown>;
208
+ }, "middleware">>;
209
+ //#endregion
210
+ //#region src/ratelimit/ratelimit.d.ts
211
+ declare class Ratelimit {
212
+ private readonly config;
213
+ static fixedWindow: typeof fixedWindow;
214
+ static slidingWindow: typeof slidingWindow;
215
+ static tokenBucket: typeof tokenBucket;
216
+ private readonly store;
217
+ private readonly prefix;
218
+ private readonly timeout;
219
+ private readonly dynamicLimits;
220
+ private readonly failureMode;
221
+ private readonly enableProtection;
222
+ private readonly denyListThreshold;
223
+ private readonly denyList?;
224
+ private readonly limiter;
225
+ private readonly blockCache?;
226
+ private readonly blockCacheSource?;
227
+ private readonly checkCache;
228
+ constructor(config: RatelimitConfig);
229
+ limit(identifier: string, request?: LimitRequest): Promise<RatelimitResponse>;
230
+ check(identifier: string, request?: CheckRequest): Promise<RatelimitResponse>;
231
+ blockUntilReady(identifier: string, timeoutMs: number): Promise<RatelimitResponse>;
232
+ resetUsedTokens(identifier: string): Promise<void>;
233
+ getRemaining(identifier: string): Promise<RemainingResponse>;
234
+ getValue(identifier: string, options?: {
235
+ sampleShards?: number;
236
+ }): Promise<RatelimitSnapshot>;
237
+ setDynamicLimit(options: {
238
+ limit: number | false;
239
+ }): Promise<void>;
240
+ getDynamicLimit(): Promise<DynamicLimitResponse>;
241
+ hookAPI(options?: HookAPIOptions): {
242
+ getRatelimit: convex_server0.RegisteredQuery<"public", {
243
+ identifier?: string | undefined;
244
+ sampleShards?: number | undefined;
245
+ }, Promise<RatelimitSnapshot>>;
246
+ getServerTime: convex_server0.RegisteredMutation<"public", {}, Promise<number>>;
247
+ };
248
+ private withDb;
249
+ private evaluate;
250
+ private evaluateCandidates;
251
+ private resolveAlgorithm;
252
+ private rawLimit;
253
+ private runWithTimeout;
254
+ private timeoutResponse;
255
+ }
256
+ //#endregion
257
+ //#region src/ratelimit/store/convex-store.d.ts
258
+ declare const RATE_LIMIT_STATE_TABLE = "ratelimitState";
259
+ declare const RATE_LIMIT_DYNAMIC_TABLE = "ratelimitDynamicLimit";
260
+ declare const RATE_LIMIT_HIT_TABLE = "ratelimitProtectionHit";
261
+ //#endregion
262
+ //#region src/ratelimit/index.d.ts
263
+ declare const SECOND = 1000;
264
+ declare const MINUTE: number;
265
+ declare const HOUR: number;
266
+ declare const DAY: number;
267
+ declare const WEEK: number;
268
+ //#endregion
269
+ export { type CheckRequest, type ConvexQueryBuilder, type ConvexRatelimitDbReader, type ConvexRatelimitDbWriter, DAY, type Duration, type DurationString, type DurationUnit, type DynamicLimitResponse, type FixedWindowAlgorithm, HOUR, type HookAPIOptions, type HookCheckValue, type LimitRequest, MINUTE, RATE_LIMIT_DYNAMIC_TABLE, RATE_LIMIT_HIT_TABLE, RATE_LIMIT_STATE_TABLE, Ratelimit, type RatelimitConfig, RatelimitPlugin, type RatelimitPluginOptions, type RatelimitReason, type RatelimitResponse, type RatelimitRow, type RatelimitSnapshot, type RatelimitState, type RemainingResponse, type ResolvedAlgorithm, SECOND, type SlidingWindowAlgorithm, type TokenBucketAlgorithm, WEEK, applyDynamicLimit, calculateRatelimit, fixedWindow, slidingWindow, toMs, tokenBucket };