@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 +85 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +127 -1
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
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;
|
|
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
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
|
|