fluxmail 0.7.0 → 0.8.0

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 (46) hide show
  1. package/LICENSE.md +66 -84
  2. package/README.md +1 -1
  3. package/dist/accounts/gmailConnection.d.ts +5 -0
  4. package/dist/accounts/gmailConnection.d.ts.map +1 -1
  5. package/dist/accounts/gmailConnection.js +24 -6
  6. package/dist/accounts/gmailConnection.js.map +1 -1
  7. package/dist/accounts/googleAuth.d.ts.map +1 -1
  8. package/dist/accounts/googleAuth.js +6 -1
  9. package/dist/accounts/googleAuth.js.map +1 -1
  10. package/dist/accounts/microsoftAuth.d.ts +1 -0
  11. package/dist/accounts/microsoftAuth.d.ts.map +1 -1
  12. package/dist/accounts/microsoftAuth.js +12 -0
  13. package/dist/accounts/microsoftAuth.js.map +1 -1
  14. package/dist/accounts/registry.d.ts +3 -1
  15. package/dist/accounts/registry.d.ts.map +1 -1
  16. package/dist/accounts/registry.js +11 -0
  17. package/dist/accounts/registry.js.map +1 -1
  18. package/dist/accounts/telemetry.d.ts +27 -0
  19. package/dist/accounts/telemetry.d.ts.map +1 -0
  20. package/dist/accounts/telemetry.js +42 -0
  21. package/dist/accounts/telemetry.js.map +1 -0
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +141 -125
  24. package/dist/cli.js.map +1 -1
  25. package/dist/cliInstances.d.ts.map +1 -1
  26. package/dist/cliInstances.js +5 -1
  27. package/dist/cliInstances.js.map +1 -1
  28. package/dist/http/admin.d.ts.map +1 -1
  29. package/dist/http/admin.js +17 -0
  30. package/dist/http/admin.js.map +1 -1
  31. package/dist/http/app.d.ts +1 -1
  32. package/dist/http/app.d.ts.map +1 -1
  33. package/dist/http/app.js +76 -12
  34. package/dist/http/app.js.map +1 -1
  35. package/dist/http/identity.d.ts.map +1 -1
  36. package/dist/http/identity.js +12 -0
  37. package/dist/http/identity.js.map +1 -1
  38. package/dist/http/operationTelemetry.d.ts +14 -0
  39. package/dist/http/operationTelemetry.d.ts.map +1 -0
  40. package/dist/http/operationTelemetry.js +8 -0
  41. package/dist/http/operationTelemetry.js.map +1 -0
  42. package/dist/http/rest.d.ts +2 -1
  43. package/dist/http/rest.d.ts.map +1 -1
  44. package/dist/http/rest.js +3 -0
  45. package/dist/http/rest.js.map +1 -1
  46. package/package.json +6 -6
@@ -0,0 +1,27 @@
1
+ import type { Provider } from '@fluxmail/core';
2
+ import type { FluxmailConfig } from '../config.js';
3
+ import type { TelemetryProperties } from '../telemetry.js';
4
+ import type { AccountRegistry } from './registry.js';
5
+ /** Where the provider sends the browser after consent. */
6
+ export type ConnectionFlow = 'hosted' | 'loopback';
7
+ /** Fluxmail's built-in OAuth application, or one the operator registered. */
8
+ export type OAuthAppKind = 'built-in' | 'custom';
9
+ /**
10
+ * Outlook has no built-in application, so any Entra app the instance uses is
11
+ * the operator's own.
12
+ */
13
+ export declare function oauthAppKind(provider: Provider, clientId: string | undefined): OAuthAppKind | undefined;
14
+ /** The OAuth application this instance is configured to use for a provider. */
15
+ export declare function configuredOAuthAppKind(config: FluxmailConfig, provider: Provider): OAuthAppKind | undefined;
16
+ export interface ConnectionTelemetry {
17
+ provider: Provider;
18
+ /** Omit when the surface cannot tell a reconnection from a new mailbox. */
19
+ reauthorize?: boolean;
20
+ flow?: ConnectionFlow;
21
+ oauthApp?: OAuthAppKind;
22
+ }
23
+ /** Describe a connection attempt without naming the mailbox it connects. */
24
+ export declare function connectionProperties(connection: ConnectionTelemetry): TelemetryProperties;
25
+ /** Mailbox totals by provider. Counts only: no address, id, or credential. */
26
+ export declare function accountInventoryProperties(registry: Pick<AccountRegistry, 'accountProviderCounts'> | undefined): TelemetryProperties;
27
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/accounts/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAGvG;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAE3G;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,mBAAmB,GAAG,mBAAmB,CAOzF;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC,GAAG,SAAS,GACnE,mBAAmB,CAcrB"}
@@ -0,0 +1,42 @@
1
+ import { DEFAULT_GOOGLE_CLIENT_ID } from './defaultGoogleOAuth.js';
2
+ /**
3
+ * Outlook has no built-in application, so any Entra app the instance uses is
4
+ * the operator's own.
5
+ */
6
+ export function oauthAppKind(provider, clientId) {
7
+ if (provider === 'imap' || !clientId)
8
+ return undefined;
9
+ return provider === 'gmail' && clientId === DEFAULT_GOOGLE_CLIENT_ID ? 'built-in' : 'custom';
10
+ }
11
+ /** The OAuth application this instance is configured to use for a provider. */
12
+ export function configuredOAuthAppKind(config, provider) {
13
+ return oauthAppKind(provider, provider === 'gmail' ? config.google?.clientId : config.microsoft?.clientId);
14
+ }
15
+ /** Describe a connection attempt without naming the mailbox it connects. */
16
+ export function connectionProperties(connection) {
17
+ return {
18
+ provider: connection.provider,
19
+ ...(connection.reauthorize === undefined ? {} : { reauthorize: connection.reauthorize }),
20
+ ...(connection.flow ? { connection_flow: connection.flow } : {}),
21
+ ...(connection.oauthApp ? { oauth_app: connection.oauthApp } : {}),
22
+ };
23
+ }
24
+ /** Mailbox totals by provider. Counts only: no address, id, or credential. */
25
+ export function accountInventoryProperties(registry) {
26
+ try {
27
+ const counts = registry?.accountProviderCounts();
28
+ if (!counts)
29
+ return {};
30
+ return {
31
+ account_count: counts.total,
32
+ gmail_account_count: counts.gmail,
33
+ outlook_account_count: counts.outlook,
34
+ imap_account_count: counts.imap,
35
+ };
36
+ }
37
+ catch {
38
+ // Telemetry must never affect a connection result.
39
+ return {};
40
+ }
41
+ }
42
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/accounts/telemetry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AASnE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,QAA4B;IAC3E,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,wBAAwB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,MAAsB,EAAE,QAAkB;IAC/E,OAAO,YAAY,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAUD,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,UAA+B;IAClE,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACxF,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,QAAoE;IAEpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,EAAE,qBAAqB,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,mBAAmB,EAAE,MAAM,CAAC,KAAK;YACjC,qBAAqB,EAAE,MAAM,CAAC,OAAO;YACrC,kBAAkB,EAAE,MAAM,CAAC,IAAI;SAChC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAwB1C,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAapE,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAmD,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAsCrH,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAcD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,UAAQ,GAAG,gBAAgB,CAoB/G;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,GAC9C,gBAAgB,CAQlB;AA+HD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD;AAkDD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED,UAAU,cAAc;IACtB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACnD;AAUD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAExE;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAylDzE;AAED,wBAAsB,MAAM,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlF"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAyB1C,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAapE,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAQL,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EAAmD,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAuCrH,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAcD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,UAAQ,GAAG,gBAAgB,CAoB/G;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,GAC9C,gBAAgB,CAQlB;AAkID,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD;AA+ED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED,UAAU,cAAc;IACtB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACnD;AAUD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAExE;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAqlDzE;AAED,wBAAsB,MAAM,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlF"}