@discomedia/utils 1.0.78 → 1.0.79

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.
@@ -0,0 +1,24 @@
1
+ import type { DiscoMailClientOptions, DiscoMailCreateDomainRequest, DiscoMailDomain, DiscoMailRequestOptions, DiscoMailSendRequest, DiscoMailSendResponse, DiscoMailVerifyDomainResponse } from './types/disco-mail-types';
2
+ /** Error returned when Disco Mail rejects an API request. */
3
+ export declare class DiscoMailApiError extends Error {
4
+ readonly code: string;
5
+ readonly status: number;
6
+ constructor(code: string, message: string, status: number);
7
+ }
8
+ /** Server-side client for the hosted Disco Mail API. */
9
+ export declare class DiscoMailAPI {
10
+ private readonly clientOptions;
11
+ constructor(clientOptions?: DiscoMailClientOptions);
12
+ send(payload: DiscoMailSendRequest, options?: DiscoMailRequestOptions): Promise<DiscoMailSendResponse>;
13
+ listDomains(options?: DiscoMailRequestOptions): Promise<DiscoMailDomain[]>;
14
+ getDomain(domainId: number, options?: DiscoMailRequestOptions): Promise<DiscoMailDomain>;
15
+ createDomain(payload: DiscoMailCreateDomainRequest, options?: DiscoMailRequestOptions): Promise<DiscoMailDomain>;
16
+ verifyDomain(domainId: number, options?: DiscoMailRequestOptions): Promise<DiscoMailVerifyDomainResponse>;
17
+ private request;
18
+ private resolveApiKey;
19
+ private resolveBaseUrl;
20
+ private validateSendRequest;
21
+ private validateDomainId;
22
+ private createApiError;
23
+ }
24
+ //# sourceMappingURL=disco-mail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disco-mail.d.ts","sourceRoot":"","sources":["../../src/disco-mail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAUlC,6DAA6D;AAC7D,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YAAmB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAK/D;CACF;AAED,wDAAwD;AACxD,qBAAa,YAAY;IACJ,OAAO,CAAC,QAAQ,CAAC,aAAa;IAAjD,YAAoC,aAAa,GAAE,sBAA2B,EAAI;IAErE,IAAI,CACf,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAShC;IAEY,WAAW,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAE1F;IAEY,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAGxG;IAEY,YAAY,CACvB,OAAO,EAAE,4BAA4B,EACrC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,eAAe,CAAC,CAS1B;IAEY,YAAY,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,6BAA6B,CAAC,CAGxC;YAEa,OAAO;IAyBrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,gBAAgB;YAMV,cAAc;CAe7B"}
@@ -7,11 +7,13 @@ import * as llmImages from './llm-images';
7
7
  import * as deepseek from './llm-deepseek';
8
8
  import * as openrouter from './llm-openrouter';
9
9
  import { PerformanceTimer } from './performance-timer';
10
+ import { DiscoMailAPI } from './disco-mail';
10
11
  import { AlpacaTradingAPI } from './alpaca-trading-api';
11
12
  import { AlpacaMarketDataAPI } from './alpaca-market-data-api';
12
13
  export * from './types';
13
14
  export { AlpacaTradingAPI } from './alpaca-trading-api';
14
15
  export { AlpacaMarketDataAPI } from './alpaca-market-data-api';
16
+ export { DiscoMailAPI, DiscoMailApiError } from './disco-mail';
15
17
  export { supportsTemperature, uploadVisionFile } from './llm-openai';
16
18
  export { OPENAI_IMAGE_MODELS, OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
17
19
  export declare const disco: {
@@ -34,6 +36,7 @@ export declare const disco: {
34
36
  images: typeof llmImages.makeImagesCall;
35
37
  open: typeof openrouter.makeOpenRouterCall;
36
38
  };
39
+ mail: DiscoMailAPI;
37
40
  time: {
38
41
  convertDateToMarketTimeZone: typeof mt.convertDateToMarketTimeZone;
39
42
  getStartAndEndDates: typeof mt.getStartAndEndDates;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,KAAK;IAChB,KAAK;IACL,MAAM;QACJ,UAAU;QACV,aAAa;;IAEf,MAAM;QACJ,cAAc;QACd,QAAQ;QACR,MAAM;QACN,GAAG;QACH,aAAa;;IAEf,GAAG;QACD,IAAI;QACJ,gBAAgB;QAChB,IAAI;QACJ,MAAM;QACR,IAAI;;IAEJ,IAAI;QACF,2BAA2B;QAC3B,mBAAmB;QACnB,kBAAkB;QAClB,yBAAyB;QACzB,sBAAsB;QACtB,gBAAgB;QAChB,oBAAoB;QACpB,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,cAAc;QACd,0BAA0B;QAC1B,kBAAkB;QAClB,WAAW;QACX,mBAAmB;QACnB,gBAAgB;QAChB,YAAY;;IAEd,KAAK;QACH,UAAU;QACV,cAAc;QACd,KAAK;;CAER,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,KAAK;IAChB,KAAK;IACL,MAAM;QACJ,UAAU;QACV,aAAa;;IAEf,MAAM;QACJ,cAAc;QACd,QAAQ;QACR,MAAM;QACN,GAAG;QACH,aAAa;;IAEf,GAAG;QACD,IAAI;QACJ,gBAAgB;QAChB,IAAI;QACJ,MAAM;QACR,IAAI;;IAEJ,IAAI;IACJ,IAAI;QACF,2BAA2B;QAC3B,mBAAmB;QACnB,kBAAkB;QAClB,yBAAyB;QACzB,sBAAsB;QACtB,gBAAgB;QAChB,oBAAoB;QACpB,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,cAAc;QACd,0BAA0B;QAC1B,kBAAkB;QAClB,WAAW;QACX,mBAAmB;QACnB,gBAAgB;QAChB,YAAY;;IAEd,KAAK;QACH,UAAU;QACV,cAAc;QACd,KAAK;;CAER,CAAC"}
@@ -0,0 +1,80 @@
1
+ /** Configuration shared by Disco Mail API operations. */
2
+ export interface DiscoMailClientOptions {
3
+ /** API key. When omitted, the client reads DISCO_MAIL_API_KEY then DISCOMAIL_API_KEY. */
4
+ apiKey?: string;
5
+ /** API root, including the API version path. Defaults to https://mail.discomedia.co/api/v1. */
6
+ baseUrl?: string;
7
+ }
8
+ /** Per-request options for Disco Mail API operations. */
9
+ export interface DiscoMailRequestOptions extends DiscoMailClientOptions {
10
+ /** Optional idempotency key for a logical email send. */
11
+ idempotencyKey?: string;
12
+ }
13
+ export interface DiscoMailAttachment {
14
+ filename: string;
15
+ /** Base64-encoded attachment content. */
16
+ content: string;
17
+ }
18
+ /** Payload accepted by the Disco Mail email-send endpoint. */
19
+ export interface DiscoMailSendRequest {
20
+ to: string | string[];
21
+ from: string;
22
+ subject?: string;
23
+ templateId?: string;
24
+ variables?: Record<string, string>;
25
+ replyTo?: string | string[];
26
+ cc?: string | string[];
27
+ bcc?: string | string[];
28
+ text?: string | null;
29
+ html?: string | null;
30
+ headers?: Record<string, string>;
31
+ attachments?: DiscoMailAttachment[];
32
+ scheduledAt?: string;
33
+ inReplyToId?: string | null;
34
+ }
35
+ export interface DiscoMailSendResponse {
36
+ emailId?: string;
37
+ }
38
+ export type DiscoMailDomainStatus = 'NOT_STARTED' | 'PENDING' | 'SUCCESS' | 'FAILED' | 'TEMPORARY_FAILURE';
39
+ export interface DiscoMailDomainDnsRecord {
40
+ type: 'MX' | 'TXT';
41
+ name: string;
42
+ value: string;
43
+ ttl: string;
44
+ priority?: string | null;
45
+ status: DiscoMailDomainStatus;
46
+ recommended?: boolean;
47
+ }
48
+ export interface DiscoMailDomain {
49
+ id: number;
50
+ name: string;
51
+ teamId: number;
52
+ status: DiscoMailDomainStatus;
53
+ region: string;
54
+ clickTracking: boolean;
55
+ openTracking: boolean;
56
+ publicKey: string;
57
+ dkimStatus?: string | null;
58
+ spfDetails?: string | null;
59
+ createdAt: string;
60
+ updatedAt: string;
61
+ dmarcAdded: boolean;
62
+ isVerifying: boolean;
63
+ errorMessage?: string | null;
64
+ subdomain?: string | null;
65
+ verificationError?: string | null;
66
+ lastCheckedTime?: string | null;
67
+ dnsRecords: DiscoMailDomainDnsRecord[];
68
+ }
69
+ export interface DiscoMailCreateDomainRequest {
70
+ name: string;
71
+ region: string;
72
+ }
73
+ export interface DiscoMailVerifyDomainResponse {
74
+ message: string;
75
+ }
76
+ export interface DiscoMailApiErrorResponse {
77
+ code: string;
78
+ message: string;
79
+ }
80
+ //# sourceMappingURL=disco-mail-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disco-mail-types.d.ts","sourceRoot":"","sources":["../../../src/types/disco-mail-types.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './market-time-types';
3
3
  export * from './ta-types';
4
4
  export * from './llm-types';
5
5
  export * from './logging-types';
6
+ export * from './disco-mail-types';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.0.78",
6
+ "version": "1.0.79",
7
7
  "author": "Disco Media",
8
8
  "description": "Utility functions used in Disco Media apps",
9
9
  "always-build-npm": true,