proto.io 0.0.227 → 0.0.229

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 (65) hide show
  1. package/README.md +1017 -0
  2. package/dist/adapters/file/aliyun-oss.d.mts +26 -0
  3. package/dist/adapters/file/aliyun-oss.d.mts.map +1 -0
  4. package/dist/adapters/file/aliyun-oss.d.ts +3 -3
  5. package/dist/adapters/file/database.d.mts +23 -0
  6. package/dist/adapters/file/database.d.mts.map +1 -0
  7. package/dist/adapters/file/database.d.ts +2 -2
  8. package/dist/adapters/file/database.js +1 -1
  9. package/dist/adapters/file/database.mjs +1 -1
  10. package/dist/adapters/file/filesystem.d.mts +25 -0
  11. package/dist/adapters/file/filesystem.d.mts.map +1 -0
  12. package/dist/adapters/file/filesystem.d.ts +3 -3
  13. package/dist/adapters/file/google-cloud-storage.d.mts +29 -0
  14. package/dist/adapters/file/google-cloud-storage.d.mts.map +1 -0
  15. package/dist/adapters/file/google-cloud-storage.d.ts +3 -3
  16. package/dist/adapters/storage/postgres.d.mts +299 -0
  17. package/dist/adapters/storage/postgres.d.mts.map +1 -0
  18. package/dist/adapters/storage/postgres.d.ts +5 -1
  19. package/dist/adapters/storage/postgres.d.ts.map +1 -1
  20. package/dist/adapters/storage/postgres.js +182 -74
  21. package/dist/adapters/storage/postgres.js.map +1 -1
  22. package/dist/adapters/storage/postgres.mjs +182 -74
  23. package/dist/adapters/storage/postgres.mjs.map +1 -1
  24. package/dist/client.d.mts +16 -0
  25. package/dist/client.d.mts.map +1 -0
  26. package/dist/client.d.ts +3 -3
  27. package/dist/client.js +1 -1
  28. package/dist/client.mjs +2 -2
  29. package/dist/index.d.mts +151 -0
  30. package/dist/index.d.mts.map +1 -0
  31. package/dist/index.d.ts +3 -3
  32. package/dist/index.js +68 -25
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.mjs +69 -26
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/internals/{base-DSo02iAX.d.ts → base-Bhrj5Pq1.d.ts} +2 -2
  37. package/dist/internals/{base-DSo02iAX.d.ts.map → base-Bhrj5Pq1.d.ts.map} +1 -1
  38. package/dist/internals/base-CiZHXD0o.d.mts +27 -0
  39. package/dist/internals/base-CiZHXD0o.d.mts.map +1 -0
  40. package/dist/internals/chunk-Cp2QN7ug.d.mts +17 -0
  41. package/dist/internals/chunk-Cp2QN7ug.d.mts.map +1 -0
  42. package/dist/internals/{chunk-BhwfdCdq.d.ts → chunk-o7lWIP-f.d.ts} +3 -3
  43. package/dist/internals/{chunk-BhwfdCdq.d.ts.map → chunk-o7lWIP-f.d.ts.map} +1 -1
  44. package/dist/internals/{index-vOFh8pVc.js → index-B0TO6h9r.js} +8 -1
  45. package/dist/internals/index-B0TO6h9r.js.map +1 -0
  46. package/dist/internals/{index-Cj45GkKv.d.ts → index-B710pfTH.d.ts} +2 -2
  47. package/dist/internals/{index-Cj45GkKv.d.ts.map → index-B710pfTH.d.ts.map} +1 -1
  48. package/dist/internals/{index-BWZIV3_T.mjs → index-DG2-4tQ1.mjs} +8 -1
  49. package/dist/internals/index-DG2-4tQ1.mjs.map +1 -0
  50. package/dist/internals/index-DwjvuRyl.d.mts +92 -0
  51. package/dist/internals/index-DwjvuRyl.d.mts.map +1 -0
  52. package/dist/internals/index-OwgXw07h.d.mts +2107 -0
  53. package/dist/internals/index-OwgXw07h.d.mts.map +1 -0
  54. package/dist/internals/{index-1ZK5N4yb.d.ts → index-OwgXw07h.d.ts} +49 -7
  55. package/dist/internals/index-OwgXw07h.d.ts.map +1 -0
  56. package/dist/internals/{validator-Bc1jRJfA.js → validator-CFlx3oyq.js} +33 -1
  57. package/dist/internals/validator-CFlx3oyq.js.map +1 -0
  58. package/dist/internals/{validator-Boj1PUjM.mjs → validator-DubDY921.mjs} +32 -2
  59. package/dist/internals/validator-DubDY921.mjs.map +1 -0
  60. package/package.json +7 -19
  61. package/dist/internals/index-1ZK5N4yb.d.ts.map +0 -1
  62. package/dist/internals/index-BWZIV3_T.mjs.map +0 -1
  63. package/dist/internals/index-vOFh8pVc.js.map +0 -1
  64. package/dist/internals/validator-Bc1jRJfA.js.map +0 -1
  65. package/dist/internals/validator-Boj1PUjM.mjs.map +0 -1
@@ -308,11 +308,23 @@ type TQueryAccumulator = {
308
308
  p: number;
309
309
  mode?: 'discrete' | 'continuous';
310
310
  };
311
+ $group?: {
312
+ key: TExpression;
313
+ value: Omit<TQueryAccumulator, '$group'>;
314
+ };
311
315
  } & {
312
316
  [x in (typeof TZeroParamAccumulatorKeys)[number]]?: true | {};
313
317
  } & {
314
318
  [x in (typeof TUnaryAccumulatorKeys)[number]]?: TExpression;
315
319
  };
320
+ type TAccumulatorResult<A extends TQueryAccumulator> = A extends {
321
+ $group: any;
322
+ } ? {
323
+ key: any;
324
+ value: any;
325
+ }[] : A extends {
326
+ $count: any;
327
+ } ? number : any;
316
328
 
317
329
  /**
318
330
  * Options for a query filter.
@@ -642,6 +654,15 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
642
654
  * @returns A stream of the random result.
643
655
  */
644
656
  abstract random(opts?: TQueryRandomOptions, options?: ExtraOptions<M>): ReturnType<typeof asyncStream<TObjectType<T, Ext>>>;
657
+ /**
658
+ * Finds grouped results for the query.
659
+ * @param accumulators - The accumulators to use for grouping.
660
+ * @param options - Extra options for the query.
661
+ * @returns A stream of the grouped results.
662
+ */
663
+ abstract groupFind<T extends Record<string, TQueryAccumulator>>(accumulators: T, options?: ExtraOptions<M>): Promise<{
664
+ [K in keyof T]: TAccumulatorResult<T[K]>;
665
+ }>;
645
666
  /**
646
667
  * Finds non-reference results for the query.
647
668
  * @param options - Extra options for the query.
@@ -704,6 +725,10 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean> extends
704
725
  * @returns A promise that resolves to the deleted records.
705
726
  */
706
727
  abstract deleteMany(options?: ExtraOptions<M>): PromiseLike<TObjectType<T, Ext>[]>;
728
+ /**
729
+ * Subscribes to live query updates.
730
+ * @returns A live query subscription.
731
+ */
707
732
  abstract subscribe(): LiveQuerySubscription<T, Ext>;
708
733
  /**
709
734
  * Adds fields to include in the query.
@@ -1102,7 +1127,7 @@ interface ProtoType<Ext> {
1102
1127
  * @param options - Extra options.
1103
1128
  * @returns A promise resolving to a boolean indicating if the password is correct.
1104
1129
  */
1105
- varifyPassword(user: TUser, password: string, options: ExtraOptions<true>): Promise<boolean>;
1130
+ verifyPassword(user: TUser, password: string, options: ExtraOptions<true>): Promise<boolean>;
1106
1131
  /**
1107
1132
  * Sets a user's password.
1108
1133
  * @param user - The user whose password is to be set.
@@ -1183,7 +1208,7 @@ interface ProtoType<Ext> {
1183
1208
  * @param options - Options for verifying the JWT.
1184
1209
  * @returns The decoded JWT payload or undefined if verification fails.
1185
1210
  */
1186
- jwtVarify(token: string, options?: jwt.VerifyOptions): jwt.JwtPayload | undefined;
1211
+ jwtVerify(token: string, options?: jwt.VerifyOptions): jwt.JwtPayload | undefined;
1187
1212
  }
1188
1213
 
1189
1214
  /**
@@ -1820,6 +1845,7 @@ interface TStorage {
1820
1845
  count(query: DecodedQuery<FindOptions & RelationOptions>): PromiseLike<number>;
1821
1846
  find(query: DecodedQuery<FindOptions & RelationOptions>): AsyncIterable<TObject>;
1822
1847
  random(query: DecodedQuery<FindOptions & RelationOptions>, opts?: QueryRandomOptions): AsyncIterable<TObject>;
1848
+ groupFind(query: DecodedQuery<FindOptions & RelationOptions>, accumulators: Record<string, QueryAccumulator>): PromiseLike<Record<string, any>>;
1823
1849
  refs(object: TObject, classNames: string[], roles?: string[]): AsyncIterable<TObject>;
1824
1850
  nonrefs(query: DecodedQuery<FindOptions>): AsyncIterable<TObject>;
1825
1851
  insert(options: InsertOptions, values: Record<string, TValueWithUndefined>[]): PromiseLike<TObject[]>;
@@ -1952,6 +1978,22 @@ type ProtoServiceOptions<Ext> = {
1952
1978
  * Password hash options.
1953
1979
  */
1954
1980
  passwordHashOptions?: PasswordHashOptions;
1981
+ /**
1982
+ * Password policy options.
1983
+ */
1984
+ passwordPolicy?: {
1985
+ /**
1986
+ * Do not allow reusing previous passwords.
1987
+ */
1988
+ maxPasswordHistory?: number;
1989
+ /**
1990
+ * Custom validator callback for password strength.
1991
+ * @param password The password to validate.
1992
+ * @param user The user object (optional).
1993
+ * @returns A boolean or a promise that resolves to a boolean indicating whether the password is valid.
1994
+ */
1995
+ validatorCallback?: (password: string, user?: TUser) => Awaitable<boolean>;
1996
+ };
1955
1997
  };
1956
1998
  type ProtoServiceKeyOptions = {
1957
1999
  /**
@@ -2018,7 +2060,7 @@ declare class ProtoService<Ext = any> extends ProtoType<Ext> {
2018
2060
  cookieOptions?: CookieOptions | undefined;
2019
2061
  jwtSignOptions?: jwt.SignOptions | undefined;
2020
2062
  }): Promise<void>;
2021
- varifyPassword(user: TUser, password: string, options: ExtraOptions<true>): Promise<boolean>;
2063
+ verifyPassword(user: TUser, password: string, options: ExtraOptions<true>): Promise<boolean>;
2022
2064
  setPassword(user: TUser, password: string, options: ExtraOptions<true>): Promise<void>;
2023
2065
  unsetPassword(user: TUser, options: ExtraOptions<true>): Promise<void>;
2024
2066
  get schema(): ProtoServiceOptions<Ext>['schema'];
@@ -2049,7 +2091,7 @@ declare class ProtoService<Ext = any> extends ProtoType<Ext> {
2049
2091
  jwtSignOptions?: jwt.SignOptions;
2050
2092
  }): string;
2051
2093
  jwtSign(payload: any, options: jwt.SignOptions): string;
2052
- jwtVarify(token: string, options?: jwt.VerifyOptions): jwt.JwtPayload | undefined;
2094
+ jwtVerify(token: string, options?: jwt.VerifyOptions): jwt.JwtPayload | undefined;
2053
2095
  notify(data: Record<string, TValueWithoutObject> & {
2054
2096
  _rperm?: string[];
2055
2097
  }): Promise<void>;
@@ -2060,6 +2102,6 @@ declare class ProtoService<Ext = any> extends ProtoType<Ext> {
2060
2102
  gc(classNames?: string | string[]): Promise<void>;
2061
2103
  }
2062
2104
 
2063
- export { FieldSelectorExpression as F, ProtoService as P, QueryExpression as Q, TSchema as T, deserialize as g, ProtoType as i, TQuery as j, TObject as k, TUser as n, serialize as s, QuerySelector as u, QueryAccumulator as y };
2064
- export type { TransactionOptions as A, QueryRandomOptions as B, TPubSub as C, DeserializeOptions as D, ExtraOptions as E, TFileInfo as G, InsertOptions as I, RelationOptions as R, SerializeOptions as S, ProtoServiceOptions as a, ProtoServiceKeyOptions as b, TValueWithoutObject as c, TFileStorage as d, TNumber as e, TSerializable as f, TExtensions as h, PathName as l, TObjectType as m, EventData as o, TQuerySelector as p, TValueWithUndefined as q, TValue as r, TUpdateOp as t, DecodedQuery as v, FindOptions as w, DecodedSortOption as x, TStorage as z };
2065
- //# sourceMappingURL=index-1ZK5N4yb.d.ts.map
2105
+ export { FieldSelectorExpression as F, ProtoService as P, QueryExpression as Q, TSchema as T, deserialize as g, ProtoType as i, TQuery as j, TObject as k, TUser as n, serialize as s, QueryAccumulator as u, QuerySelector as v };
2106
+ export type { TransactionOptions as A, QueryRandomOptions as B, TPubSub as C, DeserializeOptions as D, ExtraOptions as E, TFileInfo as G, InsertOptions as I, RelationOptions as R, SerializeOptions as S, ProtoServiceOptions as a, ProtoServiceKeyOptions as b, TValueWithoutObject as c, TFileStorage as d, TNumber as e, TSerializable as f, TExtensions as h, PathName as l, TObjectType as m, EventData as o, TQuerySelector as p, TValueWithUndefined as q, TValue as r, TUpdateOp as t, DecodedQuery as w, FindOptions as x, DecodedSortOption as y, TStorage as z };
2107
+ //# sourceMappingURL=index-OwgXw07h.d.ts.map