@whitewall/blip-sdk 0.0.138 → 0.0.140

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 (36) hide show
  1. package/dist/cjs/namespaces/account.js +85 -0
  2. package/dist/cjs/namespaces/account.js.map +1 -1
  3. package/dist/cjs/namespaces/namespace.js +78 -38
  4. package/dist/cjs/namespaces/namespace.js.map +1 -1
  5. package/dist/cjs/namespaces/portal.js +4 -1
  6. package/dist/cjs/namespaces/portal.js.map +1 -1
  7. package/dist/cjs/sender/enveloperesolver.js +3 -3
  8. package/dist/cjs/sender/enveloperesolver.js.map +1 -1
  9. package/dist/cjs/sender/throttler.js +51 -21
  10. package/dist/cjs/sender/throttler.js.map +1 -1
  11. package/dist/esm/namespaces/account.js +85 -0
  12. package/dist/esm/namespaces/account.js.map +1 -1
  13. package/dist/esm/namespaces/namespace.js +78 -38
  14. package/dist/esm/namespaces/namespace.js.map +1 -1
  15. package/dist/esm/namespaces/portal.js +4 -1
  16. package/dist/esm/namespaces/portal.js.map +1 -1
  17. package/dist/esm/sender/enveloperesolver.js +3 -3
  18. package/dist/esm/sender/enveloperesolver.js.map +1 -1
  19. package/dist/esm/sender/throttler.js +51 -21
  20. package/dist/esm/sender/throttler.js.map +1 -1
  21. package/dist/types/namespaces/account.d.ts +18 -2
  22. package/dist/types/namespaces/account.d.ts.map +1 -1
  23. package/dist/types/namespaces/namespace.d.ts +25 -5
  24. package/dist/types/namespaces/namespace.d.ts.map +1 -1
  25. package/dist/types/namespaces/portal.d.ts.map +1 -1
  26. package/dist/types/sender/throttler.d.ts +7 -2
  27. package/dist/types/sender/throttler.d.ts.map +1 -1
  28. package/dist/types/types/account.d.ts +10 -0
  29. package/dist/types/types/account.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/namespaces/account.ts +121 -1
  32. package/src/namespaces/namespace.ts +137 -62
  33. package/src/namespaces/portal.ts +4 -1
  34. package/src/sender/enveloperesolver.ts +3 -3
  35. package/src/sender/throttler.ts +59 -20
  36. package/src/types/account.ts +11 -0
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/namespaces/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,KAAK,EACR,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,KAAK,EACL,UAAU,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExF,qBAAa,gBAAiB,SAAQ,SAAS;gBAC/B,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,kBAAkB;IAI1D,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,WAAW,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrG,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpE,UAAU,CACnB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACnE,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAYH,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAqB7E,qBAAqB,CAC9B,OAAO,EAAE,QAAQ,EACjB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA0BrC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAkB9F,UAAU,CACnB,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAcH,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnF,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAa1F,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAalG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAqBrF,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkBlF,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,YAAY,CACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EACrD,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAYH,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtE,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAazD,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkBjF,SAAS,CAAC,CAAC,GAAG,MAAM,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAcH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/D,uBAAuB,CAChC,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAaxE,iBAAiB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAkBtF;;OAEG;IACU,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc;IAY9E,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAM;uBAqBzE,QAAQ;kBAAY,QAAQ;qBAAe,UAAU;;IAkC7F;;;;;OAKG;IACU,SAAS,CAClB,OAAO,EAAE,QAAQ,EACjB,KAAK,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC7B,sBAAsB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;QAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAChC,EACD,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IA4ChB,gBAAgB,CACzB,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAalB,eAAe,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAiBrE,WAAW,CACpB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA+B/D,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc;IAWpE,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc;IAW7E,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc;IAW7E,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc;IAWxF,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,cAAc;IAW3F,uBAAuB,CAChC,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,KAAK,EAAE,oBAAoB,EAC3B,IAAI,CAAC,EAAE,cAAc;IAYZ,4BAA4B,CAAC,IAAI,CAAC,EAAE,cAAc;IAIlD,kCAAkC,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc;IAI7E,4BAA4B,CACrC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,wBAAwB,EAC/B,IAAI,CAAC,EAAE,cAAc;IAgCZ,wCAAwC,CAAC,IAAI,CAAC,EAAE,cAAc;IAY9D,wCAAwC,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc;CAkBtG"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/namespaces/account.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import type { BlipClient } from '../client.ts';
2
2
  import { type Command, type CommandMethods, type Domain, type Identity, type NodeLike } from '../types/index.ts';
3
3
  import { type URI } from '../utils/uri.ts';
4
+ type Unpacked<T> = T extends Array<infer U> ? U : T;
5
+ type PromiseOrIterator<T, S extends boolean> = S extends true ? AsyncIterable<Unpacked<T>> : Promise<T>;
6
+ type NamespaceCommand<TMethod extends CommandMethods = CommandMethods> = Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
7
+ uri: URI;
8
+ };
4
9
  export type SendCommandOptions = {
5
10
  to?: NodeLike;
6
11
  ownerIdentity?: Identity | Domain;
@@ -11,6 +16,11 @@ export type ConsumeOptions = SendCommandOptions & {
11
16
  skip?: number;
12
17
  fetchall?: boolean;
13
18
  max?: number;
19
+ /**
20
+ * If true, it will try to parallel fetch data in chunks
21
+ * Be careful as this can be slower in situations with few data and will consume much more bandwidth
22
+ * Set together with max or fetchall
23
+ */
14
24
  optimistic?: boolean;
15
25
  };
16
26
  export declare class Namespace {
@@ -19,10 +29,20 @@ export declare class Namespace {
19
29
  private readonly defaultOptions?;
20
30
  constructor(blipClient: BlipClient, ownerSubdomain: string, defaultOptions?: ConsumeOptions | undefined);
21
31
  get identity(): Identity;
22
- sendCommand<TMethod extends CommandMethods, TResponse = void, TCollection = TResponse extends Array<unknown> ? true : false>(command: Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
23
- uri: URI;
24
- }, opts?: ConsumeOptions & {
25
- collection?: TCollection extends true ? true : never;
26
- }): Promise<TResponse>;
32
+ sendCommand<TMethod extends CommandMethods, TResponse = void>(command: NamespaceCommand<TMethod>, opts: ConsumeOptions & {
33
+ collection: true;
34
+ stream: true;
35
+ }): PromiseOrIterator<TResponse, true>;
36
+ sendCommand<TMethod extends CommandMethods, TResponse = void>(command: NamespaceCommand<TMethod>, opts?: ConsumeOptions & {
37
+ collection?: boolean;
38
+ stream?: false;
39
+ }): PromiseOrIterator<TResponse, false>;
40
+ private prepareCommandContext;
41
+ private buildCommand;
42
+ private extractCollection;
43
+ private sendIterableCommand;
44
+ private sendPlainCommand;
45
+ private sendCollectionCommand;
27
46
  }
47
+ export {};
28
48
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/namespaces/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAQ,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEtH,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,iBAAiB,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IAGZ,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,SAAS;IAEd,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAFb,UAAU,EAAE,UAAU,EACxB,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,cAAc,YAAA;IAGpD,IAAI,QAAQ,IACqH,QAAQ,CACxI;IAEY,WAAW,CACpB,OAAO,SAAS,cAAc,EAC9B,SAAS,GAAG,IAAI,EAChB,WAAW,GAAG,SAAS,SAAS,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,EAE7D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG;QACnD,GAAG,EAAE,GAAG,CAAA;KACX,EACD,IAAI,CAAC,EAAE,cAAc,GAAG;QACpB,UAAU,CAAC,EAAE,WAAW,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;KACvD,GACF,OAAO,CAAC,SAAS,CAAC;CAgFxB"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/namespaces/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAQ,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEtH,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,iBAAiB,CAAA;AAEvD,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACnD,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACvG,KAAK,gBAAgB,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG;IACnH,GAAG,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,SAAS;IAEd,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAFb,UAAU,EAAE,UAAU,EACxB,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,cAAc,YAAA;IAGpD,IAAI,QAAQ,IACqH,QAAQ,CACxI;IAEM,WAAW,CAAC,OAAO,SAAS,cAAc,EAAE,SAAS,GAAG,IAAI,EAC/D,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAClC,IAAI,EAAE,cAAc,GAAG;QAAE,UAAU,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAC1D,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;IAC9B,WAAW,CAAC,OAAO,SAAS,cAAc,EAAE,SAAS,GAAG,IAAI,EAC/D,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAClC,IAAI,CAAC,EAAE,cAAc,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAA;KAAE,GACjE,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC;IAgBtC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,iBAAiB;YASV,mBAAmB;YAqCpB,gBAAgB;YAahB,qBAAqB;CA4CtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/namespaces/portal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/namespaces/portal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,KAAK,QAAQ,EAAQ,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE9G,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExF,qBAAa,eAAgB,SAAQ,SAAS;gBAC9B,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,kBAAkB;IAI1D,mBAAmB,CAAC,IAAI,CAAC,EAAE,cAAc;;;;;IAiBzC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxE,SAAS,CAClB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;KACd,EACD,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAeH,YAAY,CACrB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;KACd,CAAC,EACF,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAsBT,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBvG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAe5F,mEAAmE;IAC5D,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAelF,qBAAqB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAuBpD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBhD,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAazD,cAAc,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC;IAazD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/F,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxF,aAAa,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,EAChC,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAqBH,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAalG,kBAAkB,CAC3B,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAUlB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9F,kBAAkB,CAC3B,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAcH,gCAAgC,CACzC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,EAChC,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;CAiDnB"}
@@ -1,5 +1,10 @@
1
1
  export declare class EnvelopeThrottler {
2
- private sent;
3
- throttle(type: keyof typeof this.sent): Promise<void>;
2
+ private buckets;
3
+ private readonly refillInterval;
4
+ private readonly throughputFactor;
5
+ private readonly voidPromise;
6
+ throttle(type: keyof typeof this.buckets): Promise<void>;
7
+ private refillTokens;
8
+ private scheduleRefill;
4
9
  }
5
10
  //# sourceMappingURL=throttler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttler.d.ts","sourceRoot":"","sources":["../../../src/sender/throttler.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,IAAI,CAWX;IAEY,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBrE"}
1
+ {"version":3,"file":"throttler.d.ts","sourceRoot":"","sources":["../../../src/sender/throttler.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAed;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAEvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEzC,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/D,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,cAAc;CAuBzB"}
@@ -73,4 +73,14 @@ export type Comment = {
73
73
  authorIdentity: Identity;
74
74
  content: string;
75
75
  };
76
+ export type AccessKey = {
77
+ id: string;
78
+ account: Identity;
79
+ purpose?: string;
80
+ expiration?: string;
81
+ requirer: string;
82
+ temporary: boolean;
83
+ creationDate: string;
84
+ key: string;
85
+ };
76
86
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGzC,MAAM,MAAM,QAAQ,GAAG;IACnB,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAA;IACnE;;;;;OAKG;IACH,WAAW,EAAE,UAAU,GAAG,UAAU,CAAA;IACpC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,sLAAsL;IACtL,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uCAAuC;IACvC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE7C,MAAM,MAAM,MAAM,GAAG;IACjB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,UAAU,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CAC3C,GAAG,qBAAqB,CAAA;AAEzB,MAAM,MAAM,OAAO,GAAG;IAClB,EAAE,EAAE,QAAQ,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,QAAQ,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitewall/blip-sdk",
3
- "version": "0.0.138",
3
+ "version": "0.0.140",
4
4
  "description": "Blip API wrapper",
5
5
  "exports": {
6
6
  "types": "./dist/types/index.d.ts",
@@ -1,6 +1,7 @@
1
1
  import type { BlipClient } from '../client.ts'
2
2
  import { BlipError } from '../sender/bliperror.ts'
3
3
  import type {
4
+ AccessKey,
4
5
  Account,
5
6
  ApplicationFlow,
6
7
  BuilderConfiguration,
@@ -17,7 +18,7 @@ import type {
17
18
  ThreadItem,
18
19
  } from '../types/index.ts'
19
20
  import type { Notification } from '../types/notification.ts'
20
- import type { ODataFilter } from '../utils/odata.ts'
21
+ import { type ODataFilter, filter } from '../utils/odata.ts'
21
22
  import { uri } from '../utils/uri.ts'
22
23
  import { type ConsumeOptions, Namespace, type SendCommandOptions } from './namespace.ts'
23
24
 
@@ -217,6 +218,59 @@ export class AccountNamespace extends Namespace {
217
218
  )
218
219
  }
219
220
 
221
+ public async *streamContactsInTimeframe(
222
+ startDate: Date | string,
223
+ endDate: Date | string,
224
+ opts: Omit<ConsumeOptions, 'skip' | 'max'> = {},
225
+ ): AsyncIterable<Contact> {
226
+ const take = opts.take ?? 1000
227
+ const start = new Date(startDate)
228
+ const end = new Date(endDate)
229
+ if (start > end) return
230
+
231
+ const seenIdentities = new Set<string>()
232
+ let cursorTime = end.getTime()
233
+ const startTime = start.getTime()
234
+
235
+ while (cursorTime >= startTime) {
236
+ const items = await this.sendCommand<'get', Array<Contact>>(
237
+ {
238
+ method: 'get',
239
+ uri: uri`/contacts?${{
240
+ $filter: filter<Contact>()
241
+ .ge('lastMessageDate', start)
242
+ .le('lastMessageDate', new Date(cursorTime)),
243
+ }}`,
244
+ },
245
+ { collection: true, ...opts, take, fetchall: false, optimistic: false },
246
+ )
247
+
248
+ let oldestTime = Number.POSITIVE_INFINITY
249
+
250
+ for (const contact of items) {
251
+ if (contact.lastMessageDate) {
252
+ if (!seenIdentities.has(contact.identity)) {
253
+ seenIdentities.add(contact.identity)
254
+ yield contact
255
+ }
256
+
257
+ const lastMessageTime = new Date(contact.lastMessageDate).getTime()
258
+ if (lastMessageTime < oldestTime) {
259
+ oldestTime = lastMessageTime
260
+ }
261
+ }
262
+ }
263
+
264
+ if (items.length < take || !opts.fetchall) break
265
+
266
+ if (oldestTime < Number.POSITIVE_INFINITY) {
267
+ cursorTime = oldestTime - 1
268
+ } else {
269
+ break
270
+ }
271
+ }
272
+ }
273
+
220
274
  public async getContactComments(contact: Identity, opts?: ConsumeOptions): Promise<Array<Comment>> {
221
275
  try {
222
276
  return await this.sendCommand(
@@ -401,6 +455,7 @@ export class AccountNamespace extends Namespace {
401
455
  )
402
456
  }
403
457
 
458
+ // THis doesn't ensure that the contact exists, it may have received a active message but never interacted
404
459
  public async getThreads(startDate: Date | string, endDate: Date | string, opts: Omit<ConsumeOptions, 'skip'> = {}) {
405
460
  const start = new Date(startDate)
406
461
  const end = new Date(endDate)
@@ -726,4 +781,69 @@ export class AccountNamespace extends Namespace {
726
781
 
727
782
  throw new Error('Application flow not found')
728
783
  }
784
+
785
+ public async getAccessKeys(opts?: ConsumeOptions): Promise<Array<Omit<AccessKey, 'key'>>> {
786
+ return await this.sendCommand(
787
+ {
788
+ method: 'get',
789
+ uri: uri`/account/keys`,
790
+ },
791
+ {
792
+ collection: true,
793
+ ...opts,
794
+ },
795
+ )
796
+ }
797
+
798
+ public async getAccessKey(id: string, opts?: ConsumeOptions): Promise<Omit<AccessKey, 'key'> | undefined> {
799
+ try {
800
+ return await this.sendCommand(
801
+ {
802
+ method: 'get',
803
+ uri: uri`/account/keys/${id}`,
804
+ },
805
+ opts,
806
+ )
807
+ } catch (err) {
808
+ if (err instanceof BlipError && err.code === 67) {
809
+ return undefined
810
+ }
811
+
812
+ throw err
813
+ }
814
+ }
815
+
816
+ /**
817
+ * @param key.purpose Optional purpose of the key, can be used to identify
818
+ * @param key.temporary Indicates if the key must be removed after the first use
819
+ * @param key.ttl Time to live in milliseconds
820
+ */
821
+ public async createAccessKey(
822
+ key?: Partial<{
823
+ purpose: string
824
+ temporary: boolean
825
+ ttl: number
826
+ }>,
827
+ opts?: ConsumeOptions,
828
+ ): Promise<AccessKey & { key: string }> {
829
+ return await this.sendCommand(
830
+ {
831
+ method: 'set',
832
+ uri: uri`/account/keys`,
833
+ type: 'application/vnd.iris.keyRequest+json',
834
+ resource: key,
835
+ },
836
+ opts,
837
+ )
838
+ }
839
+
840
+ public async deleteAccessKey(id: string, opts?: ConsumeOptions): Promise<void> {
841
+ return await this.sendCommand(
842
+ {
843
+ method: 'delete',
844
+ uri: uri`/account/keys/${id}`,
845
+ },
846
+ opts,
847
+ )
848
+ }
729
849
  }
@@ -4,6 +4,12 @@ import { type Command, type CommandMethods, type Domain, type Identity, Node, ty
4
4
  import { randomId } from '../utils/random.ts'
5
5
  import { type URI, uriToString } from '../utils/uri.ts'
6
6
 
7
+ type Unpacked<T> = T extends Array<infer U> ? U : T
8
+ type PromiseOrIterator<T, S extends boolean> = S extends true ? AsyncIterable<Unpacked<T>> : Promise<T>
9
+ type NamespaceCommand<TMethod extends CommandMethods = CommandMethods> = Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
10
+ uri: URI
11
+ }
12
+
7
13
  export type SendCommandOptions = {
8
14
  to?: NodeLike
9
15
  ownerIdentity?: Identity | Domain
@@ -15,8 +21,11 @@ export type ConsumeOptions = SendCommandOptions & {
15
21
  skip?: number
16
22
  fetchall?: boolean
17
23
  max?: number
18
- // If true, it will try to parallel fetch data in chunks
19
- // Be careful as this can be slower in situations with few data and will consume much more bandwidth
24
+ /**
25
+ * If true, it will try to parallel fetch data in chunks
26
+ * Be careful as this can be slower in situations with few data and will consume much more bandwidth
27
+ * Set together with max or fetchall
28
+ */
20
29
  optimistic?: boolean
21
30
  }
22
31
 
@@ -31,93 +40,159 @@ export class Namespace {
31
40
  return `postmaster@${this.ownerSubdomain ? `${this.ownerSubdomain}.` : ''}${this.defaultOptions?.domain ?? 'msging.net'}` as Identity
32
41
  }
33
42
 
34
- public async sendCommand<
35
- TMethod extends CommandMethods,
36
- TResponse = void,
37
- TCollection = TResponse extends Array<unknown> ? true : false,
38
- >(
39
- command: Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
40
- uri: URI
41
- },
42
- opts?: ConsumeOptions & {
43
- collection?: TCollection extends true ? true : never
44
- },
45
- ): Promise<TResponse> {
43
+ public sendCommand<TMethod extends CommandMethods, TResponse = void>(
44
+ command: NamespaceCommand<TMethod>,
45
+ opts: ConsumeOptions & { collection: true; stream: true },
46
+ ): PromiseOrIterator<TResponse, true>
47
+ public sendCommand<TMethod extends CommandMethods, TResponse = void>(
48
+ command: NamespaceCommand<TMethod>,
49
+ opts?: ConsumeOptions & { collection?: boolean; stream?: false },
50
+ ): PromiseOrIterator<TResponse, false>
51
+ public sendCommand<TMethod extends CommandMethods, TResponse = void>(
52
+ command: NamespaceCommand<TMethod>,
53
+ opts?: ConsumeOptions & { collection?: boolean; stream?: boolean },
54
+ ): Promise<TResponse> | AsyncIterable<Unpacked<TResponse>> {
46
55
  const options = { ...this.defaultOptions, ...opts }
47
56
 
48
- let path = command.uri.path
49
- const query = command.uri.query
57
+ if (options.stream) {
58
+ return this.sendIterableCommand(command, options)
59
+ } else if (options.collection) {
60
+ return this.sendCollectionCommand(command, options)
61
+ } else {
62
+ return this.sendPlainCommand(command, options)
63
+ }
64
+ }
50
65
 
51
- const take = options?.take ?? Math.min(options?.max ?? 100, 100)
66
+ private prepareCommandContext<TMethod extends CommandMethods>(
67
+ command: NamespaceCommand<TMethod>,
68
+ options: ConsumeOptions,
69
+ ) {
70
+ const domain =
71
+ options?.domain ??
72
+ (this.blipClient.sender instanceof ConnectionSender ? this.blipClient.sender.domain : 'msging.net')
52
73
 
53
- if (options?.collection) {
54
- query.set('$take', take.toString())
74
+ return {
75
+ path: options?.ownerIdentity ? `lime://${options.ownerIdentity}${command.uri.path}` : command.uri.path,
76
+ query: new Map(command.uri.query),
77
+ owner: new Node('postmaster', `${this.ownerSubdomain ? `${this.ownerSubdomain}.` : ''}${domain}`),
78
+ take: options?.take ?? Math.min(options?.max ?? 100, 100),
55
79
  }
80
+ }
56
81
 
57
- if (options?.ownerIdentity) {
58
- path = `lime://${options.ownerIdentity}${path}`
82
+ private buildCommand<TMethod extends CommandMethods>(
83
+ base: NamespaceCommand<TMethod>,
84
+ path: string,
85
+ query: Map<string, string>,
86
+ owner: Node,
87
+ options: ConsumeOptions,
88
+ ): Command<TMethod> {
89
+ return {
90
+ id: randomId(),
91
+ to: options.to ?? owner,
92
+ ...base,
93
+ uri: uriToString({ path, query }),
94
+ } as Command<TMethod>
95
+ }
96
+
97
+ private extractCollection<T>(response: unknown): Array<T> {
98
+ if (response && typeof response === 'object') {
99
+ const r = response as Record<string, unknown>
100
+ if (Array.isArray(r.items)) return r.items as Array<T>
101
+ if (Array.isArray(r.data)) return r.data as Array<T>
59
102
  }
103
+ return []
104
+ }
60
105
 
61
- const domain =
62
- options?.domain ??
63
- (this.blipClient.sender instanceof ConnectionSender ? this.blipClient.sender.domain : 'msging.net')
64
- const owner = new Node('postmaster', `${this.ownerSubdomain ? `${this.ownerSubdomain}.` : ''}${domain}`)
65
-
66
- if (!options.collection) {
67
- const commandToSend = {
68
- id: randomId(),
69
- to: options.to ?? owner,
70
- ...command,
71
- uri: uriToString({ path, query }),
72
- } as Command<TMethod>
106
+ private async *sendIterableCommand<TMethod extends CommandMethods, TResponse = void>(
107
+ command: Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
108
+ uri: URI
109
+ },
110
+ options: ConsumeOptions,
111
+ ): AsyncIterable<Unpacked<TResponse>> {
112
+ const { path, query, owner, take } = this.prepareCommandContext(command, options)
113
+ let skip = options.skip ?? 0
114
+ let yielded = 0
115
+
116
+ while (true) {
117
+ const q = new Map(query).set('$take', take.toString()).set('$skip', skip.toString())
118
+
119
+ const commandToSend = this.buildCommand(command, path, q, owner, options)
73
120
  const response = await this.blipClient.sender.sendCommand(commandToSend)
74
- return response as TResponse
121
+ const items = this.extractCollection<Unpacked<TResponse>>(response)
122
+
123
+ if (!items.length) {
124
+ break
125
+ }
126
+
127
+ for (const item of items) {
128
+ yield item
129
+
130
+ if (options.max && yielded++ >= options.max) {
131
+ return
132
+ }
133
+ }
134
+
135
+ if (!options.fetchall || items.length < take) {
136
+ break
137
+ }
138
+
139
+ skip += take
75
140
  }
141
+ }
76
142
 
143
+ private async sendPlainCommand<TMethod extends CommandMethods, TResponse = void>(
144
+ command: Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
145
+ uri: URI
146
+ },
147
+ options: ConsumeOptions,
148
+ ): Promise<TResponse> {
149
+ const { path, query, owner } = this.prepareCommandContext(command, options)
150
+
151
+ const commandToSend = this.buildCommand(command, path, query, owner, options)
152
+ const response = await this.blipClient.sender.sendCommand(commandToSend)
153
+ return response as TResponse
154
+ }
155
+
156
+ private async sendCollectionCommand<TMethod extends CommandMethods, TResponse = void>(
157
+ command: Omit<Command<TMethod>, 'uri' | 'id' | 'to'> & {
158
+ uri: URI
159
+ },
160
+ options: ConsumeOptions,
161
+ ): Promise<TResponse> {
162
+ const { path, query, owner, take } = this.prepareCommandContext(command, options)
77
163
  if (options.optimistic && !options.max && !options.fetchall) {
78
164
  throw new Error('Optimistic consume requires max or fetchall to be set')
79
165
  }
80
166
 
81
167
  let skip = options.skip ?? 0
82
- let results: Array<TResponse> = []
168
+ const results: Array<Unpacked<TResponse>> = []
83
169
 
170
+ query.set('$take', take.toString())
84
171
  while (true) {
85
172
  const remaining = options.max !== undefined ? options.max - results.length : Number.POSITIVE_INFINITY
86
- const potentialBatches = Math.ceil(remaining / take)
87
- const batchSize = options.optimistic ? Math.min(potentialBatches, 20) : 1
88
- const tasks = Array.from({ length: batchSize }, async (_, i: number) => {
89
- const currentQuery = new Map(query)
90
- currentQuery.set('$skip', (skip + i * take).toString())
91
-
92
- const commandToSend = {
93
- id: randomId(),
94
- to: options.to ?? owner,
95
- ...command,
96
- uri: uriToString({ path, query: currentQuery }),
97
- } as Command<TMethod>
98
-
99
- const response = (await this.blipClient.sender.sendCommand(commandToSend)) as
100
- | { data: Array<TResponse> }
101
- | { items: Array<TResponse> }
102
- const items: Array<TResponse> =
103
- 'items' in response ? response.items : 'data' in response ? response.data : []
104
-
105
- return items ?? []
106
- })
107
-
108
- const items = await Promise.all(tasks)
109
- results = results.concat(items.flat())
173
+ const pageCapacity = options.optimistic ? Math.min(Math.ceil(remaining / take), 20) : 1
174
+
175
+ const items = await Promise.all(
176
+ Array.from({ length: pageCapacity }, async (_, i: number) => {
177
+ const q = new Map(query).set('$skip', (skip + i * take).toString())
178
+ const cmd = this.buildCommand(command, path, q, owner, options)
179
+ const response = await this.blipClient.sender.sendCommand(cmd)
180
+ return this.extractCollection<Unpacked<TResponse>>(response)
181
+ }),
182
+ )
183
+
184
+ const flattened = items.flat()
185
+ results.push(...flattened)
110
186
 
111
187
  if (
112
188
  !options.fetchall ||
113
- results.length % take !== 0 ||
114
- results.length === 0 ||
189
+ flattened.length < take ||
115
190
  (options.max !== undefined && results.length >= options.max)
116
191
  ) {
117
192
  break
118
193
  }
119
194
 
120
- skip += take * batchSize
195
+ skip += take * pageCapacity
121
196
  }
122
197
 
123
198
  return results as TResponse
@@ -297,7 +297,10 @@ export class PortalNamespace extends Namespace {
297
297
  method: 'get',
298
298
  uri: uri`/applications/${Node.from(bot, 'msging.net')}/users`,
299
299
  },
300
- opts,
300
+ {
301
+ collection: true,
302
+ ...opts,
303
+ },
301
304
  )
302
305
  }
303
306
 
@@ -114,9 +114,9 @@ export class EnvelopeResolver {
114
114
  }
115
115
 
116
116
  public createEnvelopeResponsePromise(id: string): Promise<Envelope> {
117
- return new Promise((resolve) => {
118
- this.waitingEnvelopeResponseResolvers[id] = resolve
119
- })
117
+ const { resolve, promise } = Promise.withResolvers<Envelope>()
118
+ this.waitingEnvelopeResponseResolvers[id] = resolve
119
+ return promise
120
120
  }
121
121
 
122
122
  public addListener<K extends keyof EventMap>(ev: K, listener: Listener<K>) {