proto.io 0.0.228 → 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 +50 -7
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.mjs +51 -8
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/internals/{base-CW4QHAo3.d.ts → base-Bhrj5Pq1.d.ts} +2 -2
  37. package/dist/internals/{base-CW4QHAo3.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-DPgxK2_o.d.ts → chunk-o7lWIP-f.d.ts} +3 -3
  43. package/dist/internals/{chunk-DPgxK2_o.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-CywcwPk-.d.ts → index-B710pfTH.d.ts} +2 -2
  47. package/dist/internals/{index-CywcwPk-.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-h4KGKuhq.d.ts → index-OwgXw07h.d.ts} +45 -3
  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-BWZIV3_T.mjs.map +0 -1
  62. package/dist/internals/index-h4KGKuhq.d.ts.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.
@@ -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
  /**
@@ -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-h4KGKuhq.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