@ebowwa/channel-types 0.2.3 → 0.2.4

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.
package/dist/index.d.ts CHANGED
@@ -32,11 +32,83 @@ export interface MessageSender {
32
32
  }
33
33
  /** Media attachment */
34
34
  export interface MediaAttachment {
35
- type: "image" | "video" | "audio" | "file";
35
+ type: "image" | "video" | "audio" | "file" | "location" | "venue";
36
36
  url?: string;
37
37
  data?: Buffer;
38
38
  mimeType?: string;
39
39
  filename?: string;
40
+ /** Location data when type is "location" or "venue" */
41
+ location?: ChannelLocation;
42
+ }
43
+ /** Basic coordinates */
44
+ export interface Coordinates {
45
+ /** Latitude in degrees (-90 to 90) */
46
+ latitude: number;
47
+ /** Longitude in degrees (-180 to 180) */
48
+ longitude: number;
49
+ }
50
+ /** Optional location metadata */
51
+ export interface LocationMetadata {
52
+ /** Accuracy radius in meters */
53
+ accuracy?: number;
54
+ /** Direction of travel in degrees (1-360) */
55
+ heading?: number;
56
+ /** Speed in meters/second */
57
+ speed?: number;
58
+ /** Altitude in meters */
59
+ altitude?: number;
60
+ }
61
+ /** Live location status */
62
+ export type LiveLocationStatus = "active" | "paused" | "expired" | "stopped" | "error";
63
+ /** Static location - single point, no updates */
64
+ export interface StaticLocation extends Coordinates, LocationMetadata {
65
+ /** Type discriminator */
66
+ type: "static";
67
+ /** Timestamp when location was captured */
68
+ timestamp: Date;
69
+ /** Optional label/name for the location */
70
+ label?: string;
71
+ /** Optional address */
72
+ address?: string;
73
+ }
74
+ /** Live location - real-time updates over time */
75
+ export interface LiveLocation extends Coordinates, LocationMetadata {
76
+ /** Type discriminator */
77
+ type: "live";
78
+ /** Unique identifier for this live location session */
79
+ sessionId: string;
80
+ /** When live tracking started */
81
+ startedAt: Date;
82
+ /** When live tracking will expire */
83
+ expiresAt?: Date;
84
+ /** Duration in seconds the location is live */
85
+ livePeriod?: number;
86
+ /** Number of updates received */
87
+ updateCount: number;
88
+ /** Current status */
89
+ status: LiveLocationStatus;
90
+ }
91
+ /** Union type for all locations */
92
+ export type ChannelLocation = StaticLocation | LiveLocation;
93
+ /** Venue information (location + business details) */
94
+ export interface ChannelVenue {
95
+ /** Location coordinates */
96
+ coordinates: Coordinates;
97
+ /** Venue name */
98
+ title: string;
99
+ /** Street address */
100
+ address: string;
101
+ /** Optional Foursquare/Google Places ID */
102
+ providerId?: string;
103
+ /** Optional provider type */
104
+ providerType?: "foursquare" | "google";
105
+ }
106
+ /** Proximity alert configuration */
107
+ export interface ProximityAlert {
108
+ /** Distance in meters to trigger alert */
109
+ radius: number;
110
+ /** Target user/channel to alert when approached */
111
+ targetId?: string;
40
112
  }
41
113
  /** Message context (where it came from) */
42
114
  export interface MessageContext {
@@ -147,6 +219,9 @@ export interface ChannelCapabilities {
147
219
  reactions: boolean;
148
220
  editing: boolean;
149
221
  streaming: boolean;
222
+ locations: boolean;
223
+ liveLocations: boolean;
224
+ venues: boolean;
150
225
  };
151
226
  /** Media constraints */
152
227
  readonly media?: {
@@ -158,6 +233,13 @@ export interface ChannelCapabilities {
158
233
  messagesPerMinute?: number;
159
234
  charactersPerMessage?: number;
160
235
  };
236
+ /** Location constraints */
237
+ readonly location?: {
238
+ /** Maximum live location duration in seconds */
239
+ maxLivePeriod?: number;
240
+ /** Supported location providers */
241
+ providers?: ("foursquare" | "google")[];
242
+ };
161
243
  }
162
244
  /**
163
245
  * Interface for LLM implementations.
@@ -207,6 +289,8 @@ export declare function formatChannelId(id: ChannelId): string;
207
289
  export declare const DEFAULT_CAPABILITIES: ChannelCapabilities;
208
290
  /** Full capabilities for rich channels (Discord, Slack) */
209
291
  export declare const RICH_CAPABILITIES: ChannelCapabilities;
292
+ /** Telegram-specific capabilities */
293
+ export declare const TELEGRAM_CAPABILITIES: ChannelCapabilities;
210
294
  export type { BaseChannelConfig, TelegramChannelConfig, DiscordChannelConfig, WhatsAppChannelConfig, IMessageChannelConfig, SlackChannelConfig, SignalChannelConfig, CLIChannelConfig, WebChannelConfig, SSHChannelConfig, ChannelConfig, ChannelConfigMap, } from "./config.js";
211
295
  export { loadChannelConfigsFromEnv, getChannelId, validateChannelConfig, getEnabledChannels, getChannelsByPlatform, createChannelConfig, parseChannelConfig, parseChannelConfigs, serializeChannelConfig, serializeChannelConfigs, } from "./config.js";
212
296
  export * from "./plugins/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,kCAAkC;AAClC,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,KAAK,GACL,QAAQ,CAAC;AAEb,gCAAgC;AAChC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,yBAAyB;AACzB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAMD,wBAAwB;AACxB,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,CAAC;AAEZ,iDAAiD;AACjD,MAAM,WAAW,cAAe,SAAQ,WAAW,EAAE,gBAAgB;IACnE,yBAAyB;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,2CAA2C;IAC3C,SAAS,EAAE,IAAI,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,gBAAgB;IACjE,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,IAAI,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,CAAC;AAE5D,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;CACxC;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAGzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAG/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAGnC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAGjC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAE1B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR,kDAAkD;QAClD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,2BAA2B;QAC3B,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;QAChC,kCAAkC;QAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAElC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAE7B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAEvB,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,4BAA4B;IAC5B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAE3C,mCAAmC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,qBAAqB;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,6CAA6C;IAC7C,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAEzC,+BAA+B;IAC/B,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,6CAA6C;IAC7C,MAAM,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtF,yBAAyB;IACzB,WAAW,IAAI,OAAO,CAAC;CACxB;AAED,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAE1F,2BAA2B;AAC3B,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,wBAAwB;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IAEF,kBAAkB;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IAEF,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,gDAAgD;QAChD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mCAAmC;QACnC,SAAS,CAAC,EAAE,CAAC,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;KACzC,CAAC;CACH;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,+BAA+B;IAC/B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE3D,wCAAwC;IACxC,MAAM,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAE7D,qBAAqB;IACrB,OAAO,IAAI,OAAO,CAAC;CACpB;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEjD,8BAA8B;IAC9B,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAE3C,wCAAwC;IACxC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjE,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,wBAAwB;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,6BAA6B;IAC7B,WAAW,IAAI,gBAAgB,EAAE,CAAC;IAElC,8BAA8B;IAC9B,WAAW,IAAI,UAAU,EAAE,CAAC;CAC7B;AAMD,iCAAiC;AACjC,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,CAEX;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAEpF;AAED,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAMnE;AAED,oCAAoC;AACpC,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAGrD;AAED,kDAAkD;AAClD,eAAO,MAAM,oBAAoB,EAAE,mBAalC,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,EAAE,mBAa/B,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,qBAAqB,EAAE,mBAiBnC,CAAC;AAGF,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -42,6 +42,9 @@ export const DEFAULT_CAPABILITIES = {
42
42
  reactions: false,
43
43
  editing: false,
44
44
  streaming: false,
45
+ locations: false,
46
+ liveLocations: false,
47
+ venues: false,
45
48
  },
46
49
  };
47
50
  /** Full capabilities for rich channels (Discord, Slack) */
@@ -54,6 +57,28 @@ export const RICH_CAPABILITIES = {
54
57
  reactions: true,
55
58
  editing: true,
56
59
  streaming: true,
60
+ locations: true,
61
+ liveLocations: true,
62
+ venues: true,
63
+ },
64
+ };
65
+ /** Telegram-specific capabilities */
66
+ export const TELEGRAM_CAPABILITIES = {
67
+ supports: {
68
+ text: true,
69
+ media: true,
70
+ replies: true,
71
+ threads: true, // Topics in supergroups
72
+ reactions: true,
73
+ editing: true,
74
+ streaming: true,
75
+ locations: true,
76
+ liveLocations: true, // Up to 24 hours
77
+ venues: true,
78
+ },
79
+ location: {
80
+ maxLivePeriod: 86400, // 24 hours in seconds
81
+ providers: ["foursquare", "google"],
57
82
  },
58
83
  };
59
84
  export { loadChannelConfigsFromEnv, getChannelId, validateChannelConfig, getEnabledChannels, getChannelsByPlatform, createChannelConfig, parseChannelConfig, parseChannelConfigs, serializeChannelConfig, serializeChannelConfigs, } from "./config.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA+QH,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D;AAE/D,iCAAiC;AACjC,MAAM,UAAU,eAAe,CAC7B,QAAyB,EACzB,SAAiB,EACjB,UAAmB;IAEnB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,SAAoB;IACtE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe,CAAC,CAAY,EAAE,CAAY;IACxD,OAAO,CACL,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAC9B,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,eAAe,CAAC,EAAa;IAC3C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IAC9C,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAkBF,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,sCAAsC;AACtC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmXH,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D;AAE/D,iCAAiC;AACjC,MAAM,UAAU,eAAe,CAC7B,QAAyB,EACzB,SAAiB,EACjB,UAAmB;IAEnB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,SAAoB;IACtE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe,CAAC,CAAY,EAAE,CAAY;IACxD,OAAO,CACL,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAC9B,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,eAAe,CAAC,EAAa;IAC3C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IAC9C,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,KAAK;KACd;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI,EAAE,wBAAwB;QACvC,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI,EAAE,iBAAiB;QACtC,MAAM,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK,EAAE,sBAAsB;QAC5C,SAAS,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;KACpC;CACF,CAAC;AAkBF,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,sCAAsC;AACtC,cAAc,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ebowwa/channel-types",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Composable types for channel-LLM communication",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -55,11 +55,100 @@ export interface MessageSender {
55
55
 
56
56
  /** Media attachment */
57
57
  export interface MediaAttachment {
58
- type: "image" | "video" | "audio" | "file";
58
+ type: "image" | "video" | "audio" | "file" | "location" | "venue";
59
59
  url?: string;
60
60
  data?: Buffer;
61
61
  mimeType?: string;
62
62
  filename?: string;
63
+ /** Location data when type is "location" or "venue" */
64
+ location?: ChannelLocation;
65
+ }
66
+
67
+ // ============================================================
68
+ // LOCATION TYPES (Channel-Agnostic)
69
+ // ============================================================
70
+
71
+ /** Basic coordinates */
72
+ export interface Coordinates {
73
+ /** Latitude in degrees (-90 to 90) */
74
+ latitude: number;
75
+ /** Longitude in degrees (-180 to 180) */
76
+ longitude: number;
77
+ }
78
+
79
+ /** Optional location metadata */
80
+ export interface LocationMetadata {
81
+ /** Accuracy radius in meters */
82
+ accuracy?: number;
83
+ /** Direction of travel in degrees (1-360) */
84
+ heading?: number;
85
+ /** Speed in meters/second */
86
+ speed?: number;
87
+ /** Altitude in meters */
88
+ altitude?: number;
89
+ }
90
+
91
+ /** Live location status */
92
+ export type LiveLocationStatus =
93
+ | "active" // Currently updating
94
+ | "paused" // Temporarily stopped
95
+ | "expired" // Time limit reached
96
+ | "stopped" // Manually stopped
97
+ | "error"; // Error occurred
98
+
99
+ /** Static location - single point, no updates */
100
+ export interface StaticLocation extends Coordinates, LocationMetadata {
101
+ /** Type discriminator */
102
+ type: "static";
103
+ /** Timestamp when location was captured */
104
+ timestamp: Date;
105
+ /** Optional label/name for the location */
106
+ label?: string;
107
+ /** Optional address */
108
+ address?: string;
109
+ }
110
+
111
+ /** Live location - real-time updates over time */
112
+ export interface LiveLocation extends Coordinates, LocationMetadata {
113
+ /** Type discriminator */
114
+ type: "live";
115
+ /** Unique identifier for this live location session */
116
+ sessionId: string;
117
+ /** When live tracking started */
118
+ startedAt: Date;
119
+ /** When live tracking will expire */
120
+ expiresAt?: Date;
121
+ /** Duration in seconds the location is live */
122
+ livePeriod?: number;
123
+ /** Number of updates received */
124
+ updateCount: number;
125
+ /** Current status */
126
+ status: LiveLocationStatus;
127
+ }
128
+
129
+ /** Union type for all locations */
130
+ export type ChannelLocation = StaticLocation | LiveLocation;
131
+
132
+ /** Venue information (location + business details) */
133
+ export interface ChannelVenue {
134
+ /** Location coordinates */
135
+ coordinates: Coordinates;
136
+ /** Venue name */
137
+ title: string;
138
+ /** Street address */
139
+ address: string;
140
+ /** Optional Foursquare/Google Places ID */
141
+ providerId?: string;
142
+ /** Optional provider type */
143
+ providerType?: "foursquare" | "google";
144
+ }
145
+
146
+ /** Proximity alert configuration */
147
+ export interface ProximityAlert {
148
+ /** Distance in meters to trigger alert */
149
+ radius: number;
150
+ /** Target user/channel to alert when approached */
151
+ targetId?: string;
63
152
  }
64
153
 
65
154
  /** Message context (where it came from) */
@@ -209,6 +298,9 @@ export interface ChannelCapabilities {
209
298
  reactions: boolean;
210
299
  editing: boolean;
211
300
  streaming: boolean;
301
+ locations: boolean;
302
+ liveLocations: boolean;
303
+ venues: boolean;
212
304
  };
213
305
 
214
306
  /** Media constraints */
@@ -222,6 +314,14 @@ export interface ChannelCapabilities {
222
314
  messagesPerMinute?: number;
223
315
  charactersPerMessage?: number;
224
316
  };
317
+
318
+ /** Location constraints */
319
+ readonly location?: {
320
+ /** Maximum live location duration in seconds */
321
+ maxLivePeriod?: number;
322
+ /** Supported location providers */
323
+ providers?: ("foursquare" | "google")[];
324
+ };
225
325
  }
226
326
 
227
327
  // ============================================================
@@ -323,6 +423,9 @@ export const DEFAULT_CAPABILITIES: ChannelCapabilities = {
323
423
  reactions: false,
324
424
  editing: false,
325
425
  streaming: false,
426
+ locations: false,
427
+ liveLocations: false,
428
+ venues: false,
326
429
  },
327
430
  };
328
431
 
@@ -336,6 +439,29 @@ export const RICH_CAPABILITIES: ChannelCapabilities = {
336
439
  reactions: true,
337
440
  editing: true,
338
441
  streaming: true,
442
+ locations: true,
443
+ liveLocations: true,
444
+ venues: true,
445
+ },
446
+ };
447
+
448
+ /** Telegram-specific capabilities */
449
+ export const TELEGRAM_CAPABILITIES: ChannelCapabilities = {
450
+ supports: {
451
+ text: true,
452
+ media: true,
453
+ replies: true,
454
+ threads: true, // Topics in supergroups
455
+ reactions: true,
456
+ editing: true,
457
+ streaming: true,
458
+ locations: true,
459
+ liveLocations: true, // Up to 24 hours
460
+ venues: true,
461
+ },
462
+ location: {
463
+ maxLivePeriod: 86400, // 24 hours in seconds
464
+ providers: ["foursquare", "google"],
339
465
  },
340
466
  };
341
467