@classytic/social 0.1.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.
- package/CHANGELOG.md +65 -0
- package/LICENSE +21 -0
- package/README.md +368 -0
- package/dist/base-Bw7e52V8.mjs +246 -0
- package/dist/base-Bw7e52V8.mjs.map +1 -0
- package/dist/base-DBtKFiSX.d.mts +226 -0
- package/dist/base-DBtKFiSX.d.mts.map +1 -0
- package/dist/chunk-DQk6qfdC.mjs +18 -0
- package/dist/client/index.d.mts +44 -0
- package/dist/client/index.d.mts.map +1 -0
- package/dist/client/index.mjs +154 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/common/index.d.mts +3 -0
- package/dist/common/index.mjs +7 -0
- package/dist/contracts-Cdwa4zlg.d.mts +121 -0
- package/dist/contracts-Cdwa4zlg.d.mts.map +1 -0
- package/dist/contracts-lCa069IK.mjs +221 -0
- package/dist/contracts-lCa069IK.mjs.map +1 -0
- package/dist/env-Bl0cwwjC.mjs +955 -0
- package/dist/env-Bl0cwwjC.mjs.map +1 -0
- package/dist/env-DxOZHf0p.d.mts +394 -0
- package/dist/env-DxOZHf0p.d.mts.map +1 -0
- package/dist/errors-Cm6LeKf7.mjs +32 -0
- package/dist/errors-Cm6LeKf7.mjs.map +1 -0
- package/dist/facebook-l_4CghaA.mjs +95 -0
- package/dist/facebook-l_4CghaA.mjs.map +1 -0
- package/dist/http-DpcLSR1M.mjs +197 -0
- package/dist/http-DpcLSR1M.mjs.map +1 -0
- package/dist/index.d.mts +42 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +71 -0
- package/dist/index.mjs.map +1 -0
- package/dist/instagram-BGaeUFU2.mjs +90 -0
- package/dist/instagram-BGaeUFU2.mjs.map +1 -0
- package/dist/linkedin-70whtVKa.mjs +101 -0
- package/dist/linkedin-70whtVKa.mjs.map +1 -0
- package/dist/meta-D3vcJU1c.mjs +126 -0
- package/dist/meta-D3vcJU1c.mjs.map +1 -0
- package/dist/pkce-jq5II68b.mjs +72 -0
- package/dist/pkce-jq5II68b.mjs.map +1 -0
- package/dist/polling-DZ1apXtA.mjs +25 -0
- package/dist/polling-DZ1apXtA.mjs.map +1 -0
- package/dist/providers/facebook.d.mts +135 -0
- package/dist/providers/facebook.d.mts.map +1 -0
- package/dist/providers/facebook.mjs +450 -0
- package/dist/providers/facebook.mjs.map +1 -0
- package/dist/providers/instagram.d.mts +122 -0
- package/dist/providers/instagram.d.mts.map +1 -0
- package/dist/providers/instagram.mjs +496 -0
- package/dist/providers/instagram.mjs.map +1 -0
- package/dist/providers/linkedin.d.mts +145 -0
- package/dist/providers/linkedin.d.mts.map +1 -0
- package/dist/providers/linkedin.mjs +574 -0
- package/dist/providers/linkedin.mjs.map +1 -0
- package/dist/providers/reddit.d.mts +102 -0
- package/dist/providers/reddit.d.mts.map +1 -0
- package/dist/providers/reddit.mjs +657 -0
- package/dist/providers/reddit.mjs.map +1 -0
- package/dist/providers/telegram.d.mts +139 -0
- package/dist/providers/telegram.d.mts.map +1 -0
- package/dist/providers/telegram.mjs +517 -0
- package/dist/providers/telegram.mjs.map +1 -0
- package/dist/providers/tiktok.d.mts +116 -0
- package/dist/providers/tiktok.d.mts.map +1 -0
- package/dist/providers/tiktok.mjs +676 -0
- package/dist/providers/tiktok.mjs.map +1 -0
- package/dist/providers/twitter.d.mts +150 -0
- package/dist/providers/twitter.d.mts.map +1 -0
- package/dist/providers/twitter.mjs +628 -0
- package/dist/providers/twitter.mjs.map +1 -0
- package/dist/providers/whatsapp.d.mts +79 -0
- package/dist/providers/whatsapp.d.mts.map +1 -0
- package/dist/providers/whatsapp.mjs +376 -0
- package/dist/providers/whatsapp.mjs.map +1 -0
- package/dist/providers/youtube.d.mts +153 -0
- package/dist/providers/youtube.d.mts.map +1 -0
- package/dist/providers/youtube.mjs +902 -0
- package/dist/providers/youtube.mjs.map +1 -0
- package/dist/reddit-B10kS4Se.mjs +126 -0
- package/dist/reddit-B10kS4Se.mjs.map +1 -0
- package/dist/schemas/index.d.mts +819 -0
- package/dist/schemas/index.d.mts.map +1 -0
- package/dist/schemas/index.mjs +31 -0
- package/dist/schemas/index.mjs.map +1 -0
- package/dist/security-BXhfebWm.d.mts +338 -0
- package/dist/security-BXhfebWm.d.mts.map +1 -0
- package/dist/shared-Fvc6xQku.mjs +100 -0
- package/dist/shared-Fvc6xQku.mjs.map +1 -0
- package/dist/telegram-FaUHpZgB.mjs +107 -0
- package/dist/telegram-FaUHpZgB.mjs.map +1 -0
- package/dist/tiktok-B_bMk4G-.mjs +94 -0
- package/dist/tiktok-B_bMk4G-.mjs.map +1 -0
- package/dist/twitter-BC22zfuc.mjs +98 -0
- package/dist/twitter-BC22zfuc.mjs.map +1 -0
- package/dist/types-BFE4psYI.d.mts +102 -0
- package/dist/types-BFE4psYI.d.mts.map +1 -0
- package/dist/types-Bv27tcT0.d.mts +230 -0
- package/dist/types-Bv27tcT0.d.mts.map +1 -0
- package/dist/types-BwkKyqpi.d.mts +253 -0
- package/dist/types-BwkKyqpi.d.mts.map +1 -0
- package/dist/types-CJrHMDV9.mjs +27 -0
- package/dist/types-CJrHMDV9.mjs.map +1 -0
- package/dist/types-ClbVc2rc.d.mts +117 -0
- package/dist/types-ClbVc2rc.d.mts.map +1 -0
- package/dist/types-D91N16Ym.d.mts +242 -0
- package/dist/types-D91N16Ym.d.mts.map +1 -0
- package/dist/types-DfLp_ibQ.d.mts +178 -0
- package/dist/types-DfLp_ibQ.d.mts.map +1 -0
- package/dist/types-DfjDgEoJ.d.mts +88 -0
- package/dist/types-DfjDgEoJ.d.mts.map +1 -0
- package/dist/types-Dp5Z9VBr.mjs +23 -0
- package/dist/types-Dp5Z9VBr.mjs.map +1 -0
- package/dist/types-hriBJTsU.d.mts +129 -0
- package/dist/types-hriBJTsU.d.mts.map +1 -0
- package/dist/types-rn6UuLL8.d.mts +184 -0
- package/dist/types-rn6UuLL8.d.mts.map +1 -0
- package/dist/whatsapp-CFp7ryR4.mjs +101 -0
- package/dist/whatsapp-CFp7ryR4.mjs.map +1 -0
- package/dist/youtube-Bs0fdY7H.mjs +98 -0
- package/dist/youtube-Bs0fdY7H.mjs.map +1 -0
- package/package.json +148 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DQk6qfdC.mjs";
|
|
2
|
+
import { i as OAuthTokensSchema, r as NonEmptyString } from "./shared-Fvc6xQku.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
//#region src/schemas/tiktok.ts
|
|
6
|
+
/**
|
|
7
|
+
* TikTok zod v4 schemas.
|
|
8
|
+
*/
|
|
9
|
+
var tiktok_exports = /* @__PURE__ */ __exportAll({
|
|
10
|
+
TikTokCredentialDataSchema: () => TikTokCredentialDataSchema,
|
|
11
|
+
TikTokCredentialsSchema: () => TikTokCredentialsSchema,
|
|
12
|
+
TikTokListVideosSchema: () => TikTokListVideosSchema,
|
|
13
|
+
TikTokPhotoUploadSchema: () => TikTokPhotoUploadSchema,
|
|
14
|
+
TikTokPrivacy: () => TikTokPrivacy,
|
|
15
|
+
TikTokPrivacyLevel: () => TikTokPrivacyLevel,
|
|
16
|
+
TikTokVideoUploadSchema: () => TikTokVideoUploadSchema,
|
|
17
|
+
tiktokCapabilities: () => tiktokCapabilities,
|
|
18
|
+
tiktokInfo: () => tiktokInfo
|
|
19
|
+
});
|
|
20
|
+
const TikTokCredentialsSchema = z.object({
|
|
21
|
+
clientKey: NonEmptyString.describe("TikTok app client key (NOT client_id)"),
|
|
22
|
+
clientSecret: NonEmptyString.describe("TikTok app client secret"),
|
|
23
|
+
redirectUri: z.url().optional()
|
|
24
|
+
});
|
|
25
|
+
const TikTokCredentialDataSchema = TikTokCredentialsSchema.extend({ oauthTokenData: z.union([z.string(), OAuthTokensSchema]).optional() });
|
|
26
|
+
const TikTokPrivacyLevel = z.enum([
|
|
27
|
+
"PUBLIC_TO_EVERYONE",
|
|
28
|
+
"MUTUAL_FOLLOW_FRIENDS",
|
|
29
|
+
"FOLLOWER_OF_CREATOR",
|
|
30
|
+
"SELF_ONLY"
|
|
31
|
+
]);
|
|
32
|
+
const TikTokPrivacy = z.enum([
|
|
33
|
+
"public",
|
|
34
|
+
"private",
|
|
35
|
+
"unlisted",
|
|
36
|
+
"followers",
|
|
37
|
+
"friends"
|
|
38
|
+
]);
|
|
39
|
+
const TikTokVideoUploadSchema = z.object({
|
|
40
|
+
filePath: z.string().min(1).optional(),
|
|
41
|
+
videoUrl: z.url().optional().describe("Public URL — used with PULL_FROM_URL source"),
|
|
42
|
+
title: z.string().max(2200).optional().describe("Caption (≤2200 characters)"),
|
|
43
|
+
privacy: TikTokPrivacy.optional().default("private"),
|
|
44
|
+
disableComment: z.boolean().optional().default(false),
|
|
45
|
+
disableDuet: z.boolean().optional().default(false),
|
|
46
|
+
disableStitch: z.boolean().optional().default(false),
|
|
47
|
+
brandContentToggle: z.boolean().optional().default(false),
|
|
48
|
+
brandOrganicToggle: z.boolean().optional().default(false),
|
|
49
|
+
scheduledAt: z.iso.datetime().optional()
|
|
50
|
+
}).refine((d) => d.filePath || d.videoUrl, { message: "Provide either filePath or videoUrl" });
|
|
51
|
+
const TikTokPhotoUploadSchema = z.object({
|
|
52
|
+
photoUrls: z.array(z.url()).min(1).max(35).describe("1–35 public photo URLs"),
|
|
53
|
+
title: z.string().max(2200).optional(),
|
|
54
|
+
description: z.string().max(2200).optional(),
|
|
55
|
+
privacy: TikTokPrivacy.optional().default("private")
|
|
56
|
+
});
|
|
57
|
+
const TikTokListVideosSchema = z.object({
|
|
58
|
+
maxCount: z.number().int().min(1).max(20).optional().default(10),
|
|
59
|
+
cursor: z.union([z.string(), z.number()]).optional()
|
|
60
|
+
});
|
|
61
|
+
const tiktokCapabilities = {
|
|
62
|
+
auth: "oauth2",
|
|
63
|
+
posting: true,
|
|
64
|
+
upload: true,
|
|
65
|
+
messaging: false,
|
|
66
|
+
scheduling: true,
|
|
67
|
+
deletion: false,
|
|
68
|
+
listing: true,
|
|
69
|
+
analytics: false,
|
|
70
|
+
environments: true,
|
|
71
|
+
pkce: true
|
|
72
|
+
};
|
|
73
|
+
const tiktokInfo = {
|
|
74
|
+
name: "tiktok",
|
|
75
|
+
displayName: "TikTok",
|
|
76
|
+
scopes: [
|
|
77
|
+
"user.info.profile",
|
|
78
|
+
"video.upload",
|
|
79
|
+
"video.publish"
|
|
80
|
+
],
|
|
81
|
+
rateLimits: { perDayPosts: 6 },
|
|
82
|
+
fileLimits: {
|
|
83
|
+
video: {
|
|
84
|
+
maxSizeBytes: 4 * 1024 ** 3,
|
|
85
|
+
maxDurationSec: 600
|
|
86
|
+
},
|
|
87
|
+
photo: { maxCount: 35 }
|
|
88
|
+
},
|
|
89
|
+
docsUrl: "https://developers.tiktok.com/doc/content-posting-api-reference-direct-post"
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { tiktok_exports as i, tiktokCapabilities as n, tiktokInfo as r, TikTokCredentialsSchema as t };
|
|
94
|
+
//# sourceMappingURL=tiktok-B_bMk4G-.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiktok-B_bMk4G-.mjs","names":[],"sources":["../src/schemas/tiktok.ts"],"sourcesContent":["/**\n * TikTok zod v4 schemas.\n */\n\nimport { z } from 'zod';\nimport type { ProviderCapabilities } from '../common/contracts.js';\nimport { NonEmptyString, OAuthTokensSchema } from './shared.js';\n\n// ─── Credentials ────────────────────────────────────────────────────────────\n// Note: TikTok uses `client_key` (not `client_id`) and comma-separated scopes.\n\nexport const TikTokCredentialsSchema = z.object({\n clientKey: NonEmptyString.describe('TikTok app client key (NOT client_id)'),\n clientSecret: NonEmptyString.describe('TikTok app client secret'),\n redirectUri: z.url().optional(),\n});\nexport type TikTokCredentialsInput = z.infer<typeof TikTokCredentialsSchema>;\n\nexport const TikTokCredentialDataSchema = TikTokCredentialsSchema.extend({\n oauthTokenData: z.union([z.string(), OAuthTokensSchema]).optional(),\n});\n\n// ─── Privacy levels ─────────────────────────────────────────────────────────\n\nexport const TikTokPrivacyLevel = z.enum([\n 'PUBLIC_TO_EVERYONE',\n 'MUTUAL_FOLLOW_FRIENDS',\n 'FOLLOWER_OF_CREATOR',\n 'SELF_ONLY',\n]);\n\nexport const TikTokPrivacy = z.enum(['public', 'private', 'unlisted', 'followers', 'friends']);\n\n// ─── Upload params ──────────────────────────────────────────────────────────\n\nexport const TikTokVideoUploadSchema = z.object({\n filePath: z.string().min(1).optional(),\n videoUrl: z.url().optional().describe('Public URL — used with PULL_FROM_URL source'),\n title: z.string().max(2200).optional().describe('Caption (≤2200 characters)'),\n privacy: TikTokPrivacy.optional().default('private'),\n disableComment: z.boolean().optional().default(false),\n disableDuet: z.boolean().optional().default(false),\n disableStitch: z.boolean().optional().default(false),\n brandContentToggle: z.boolean().optional().default(false),\n brandOrganicToggle: z.boolean().optional().default(false),\n scheduledAt: z.iso.datetime().optional(),\n}).refine(d => d.filePath || d.videoUrl, {\n message: 'Provide either filePath or videoUrl',\n});\n\nexport const TikTokPhotoUploadSchema = z.object({\n photoUrls: z.array(z.url()).min(1).max(35).describe('1–35 public photo URLs'),\n title: z.string().max(2200).optional(),\n description: z.string().max(2200).optional(),\n privacy: TikTokPrivacy.optional().default('private'),\n});\n\n// ─── List options ───────────────────────────────────────────────────────────\n\nexport const TikTokListVideosSchema = z.object({\n maxCount: z.number().int().min(1).max(20).optional().default(10),\n cursor: z.union([z.string(), z.number()]).optional(),\n});\n\n// ─── Capabilities ───────────────────────────────────────────────────────────\n\nexport const tiktokCapabilities: ProviderCapabilities = {\n auth: 'oauth2',\n posting: true,\n upload: true,\n messaging: false,\n scheduling: true,\n deletion: false,\n listing: true,\n analytics: false,\n environments: true,\n pkce: true,\n};\n\nexport const tiktokInfo = {\n name: 'tiktok' as const,\n displayName: 'TikTok',\n scopes: ['user.info.profile', 'video.upload', 'video.publish'],\n rateLimits: { perDayPosts: 6 },\n fileLimits: {\n video: { maxSizeBytes: 4 * 1024 ** 3, maxDurationSec: 600 },\n photo: { maxCount: 35 },\n },\n docsUrl: 'https://developers.tiktok.com/doc/content-posting-api-reference-direct-post',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAa,0BAA0B,EAAE,OAAO;CAC9C,WAAW,eAAe,SAAS,wCAAwC;CAC3E,cAAc,eAAe,SAAS,2BAA2B;CACjE,aAAa,EAAE,KAAK,CAAC,UAAU;CAChC,CAAC;AAGF,MAAa,6BAA6B,wBAAwB,OAAO,EACvE,gBAAgB,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,UAAU,EACpE,CAAC;AAIF,MAAa,qBAAqB,EAAE,KAAK;CACvC;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAa,gBAAgB,EAAE,KAAK;CAAC;CAAU;CAAW;CAAY;CAAa;CAAU,CAAC;AAI9F,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,8CAA8C;CACpF,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,6BAA6B;CAC7E,SAAS,cAAc,UAAU,CAAC,QAAQ,UAAU;CACpD,gBAAgB,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,MAAM;CACrD,aAAa,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,MAAM;CAClD,eAAe,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,MAAM;CACpD,oBAAoB,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,MAAM;CACzD,oBAAoB,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,MAAM;CACzD,aAAa,EAAE,IAAI,UAAU,CAAC,UAAU;CACzC,CAAC,CAAC,QAAO,MAAK,EAAE,YAAY,EAAE,UAAU,EACvC,SAAS,uCACV,CAAC;AAEF,MAAa,0BAA0B,EAAE,OAAO;CAC9C,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,yBAAyB;CAC7E,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU;CACtC,aAAa,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU;CAC5C,SAAS,cAAc,UAAU,CAAC,QAAQ,UAAU;CACrD,CAAC;AAIF,MAAa,yBAAyB,EAAE,OAAO;CAC7C,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG;CAChE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU;CACrD,CAAC;AAIF,MAAa,qBAA2C;CACtD,MAAM;CACN,SAAS;CACT,QAAQ;CACR,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,WAAW;CACX,cAAc;CACd,MAAM;CACP;AAED,MAAa,aAAa;CACxB,MAAM;CACN,aAAa;CACb,QAAQ;EAAC;EAAqB;EAAgB;EAAgB;CAC9D,YAAY,EAAE,aAAa,GAAG;CAC9B,YAAY;EACV,OAAO;GAAE,cAAc,IAAI,QAAQ;GAAG,gBAAgB;GAAK;EAC3D,OAAO,EAAE,UAAU,IAAI;EACxB;CACD,SAAS;CACV"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DQk6qfdC.mjs";
|
|
2
|
+
import { i as OAuthTokensSchema, r as NonEmptyString } from "./shared-Fvc6xQku.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
//#region src/schemas/twitter.ts
|
|
6
|
+
/**
|
|
7
|
+
* Twitter / X zod v4 schemas.
|
|
8
|
+
*/
|
|
9
|
+
var twitter_exports = /* @__PURE__ */ __exportAll({
|
|
10
|
+
TwitterCreateTweetSchema: () => TwitterCreateTweetSchema,
|
|
11
|
+
TwitterCredentialDataSchema: () => TwitterCredentialDataSchema,
|
|
12
|
+
TwitterCredentialsSchema: () => TwitterCredentialsSchema,
|
|
13
|
+
TwitterReplySettings: () => TwitterReplySettings,
|
|
14
|
+
TwitterSearchTweetsSchema: () => TwitterSearchTweetsSchema,
|
|
15
|
+
TwitterSendDmSchema: () => TwitterSendDmSchema,
|
|
16
|
+
twitterCapabilities: () => twitterCapabilities,
|
|
17
|
+
twitterInfo: () => twitterInfo
|
|
18
|
+
});
|
|
19
|
+
const TwitterCredentialsSchema = z.object({
|
|
20
|
+
clientId: NonEmptyString.describe("Twitter / X app client ID"),
|
|
21
|
+
clientSecret: z.string().optional().describe("Client secret — required for confidential clients only"),
|
|
22
|
+
redirectUri: z.url().optional()
|
|
23
|
+
});
|
|
24
|
+
const TwitterCredentialDataSchema = TwitterCredentialsSchema.extend({ oauthTokenData: z.union([z.string(), OAuthTokensSchema]).optional() });
|
|
25
|
+
const TwitterReplySettings = z.enum([
|
|
26
|
+
"everyone",
|
|
27
|
+
"mentionedUsers",
|
|
28
|
+
"following"
|
|
29
|
+
]);
|
|
30
|
+
const TwitterCreateTweetSchema = z.object({
|
|
31
|
+
text: z.string().max(280),
|
|
32
|
+
inReplyToTweetId: z.string().optional(),
|
|
33
|
+
quoteTweetId: z.string().optional(),
|
|
34
|
+
mediaIds: z.array(z.string()).max(4).optional(),
|
|
35
|
+
pollOptions: z.array(z.string()).min(2).max(4).optional(),
|
|
36
|
+
pollDurationMinutes: z.number().int().min(5).max(10080).optional(),
|
|
37
|
+
replySettings: TwitterReplySettings.optional(),
|
|
38
|
+
forSuperFollowersOnly: z.boolean().optional()
|
|
39
|
+
});
|
|
40
|
+
const TwitterSearchTweetsSchema = z.object({
|
|
41
|
+
query: z.string().min(1).max(1024),
|
|
42
|
+
maxResults: z.number().int().min(10).max(100).optional().default(10),
|
|
43
|
+
startTime: z.iso.datetime().optional(),
|
|
44
|
+
endTime: z.iso.datetime().optional(),
|
|
45
|
+
nextToken: z.string().optional()
|
|
46
|
+
});
|
|
47
|
+
const TwitterSendDmSchema = z.object({
|
|
48
|
+
recipientId: z.string().min(1),
|
|
49
|
+
text: z.string().min(1).max(1e4)
|
|
50
|
+
});
|
|
51
|
+
const twitterCapabilities = {
|
|
52
|
+
auth: "oauth2",
|
|
53
|
+
posting: true,
|
|
54
|
+
upload: true,
|
|
55
|
+
messaging: true,
|
|
56
|
+
scheduling: false,
|
|
57
|
+
deletion: true,
|
|
58
|
+
listing: true,
|
|
59
|
+
analytics: false,
|
|
60
|
+
environments: false,
|
|
61
|
+
pkce: true
|
|
62
|
+
};
|
|
63
|
+
const twitterInfo = {
|
|
64
|
+
name: "twitter",
|
|
65
|
+
displayName: "Twitter / X",
|
|
66
|
+
scopes: [
|
|
67
|
+
"tweet.read",
|
|
68
|
+
"tweet.write",
|
|
69
|
+
"tweet.moderate.write",
|
|
70
|
+
"users.read",
|
|
71
|
+
"follows.read",
|
|
72
|
+
"follows.write",
|
|
73
|
+
"offline.access",
|
|
74
|
+
"like.read",
|
|
75
|
+
"like.write",
|
|
76
|
+
"dm.write",
|
|
77
|
+
"dm.read",
|
|
78
|
+
"list.read",
|
|
79
|
+
"list.write",
|
|
80
|
+
"bookmark.read",
|
|
81
|
+
"bookmark.write",
|
|
82
|
+
"block.read",
|
|
83
|
+
"mute.read"
|
|
84
|
+
],
|
|
85
|
+
rateLimits: { freePerDay: 17 },
|
|
86
|
+
fileLimits: {
|
|
87
|
+
image: { maxSizeBytes: 5 * 1024 * 1024 },
|
|
88
|
+
video: {
|
|
89
|
+
maxSizeBytes: 512 * 1024 * 1024,
|
|
90
|
+
maxDurationSec: 140
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
docsUrl: "https://developer.x.com/en/docs/x-api"
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { twitter_exports as i, twitterCapabilities as n, twitterInfo as r, TwitterCredentialsSchema as t };
|
|
98
|
+
//# sourceMappingURL=twitter-BC22zfuc.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twitter-BC22zfuc.mjs","names":[],"sources":["../src/schemas/twitter.ts"],"sourcesContent":["/**\n * Twitter / X zod v4 schemas.\n */\n\nimport { z } from 'zod';\nimport type { ProviderCapabilities } from '../common/contracts.js';\nimport { NonEmptyString, OAuthTokensSchema } from './shared.js';\n\n// ─── Credentials ────────────────────────────────────────────────────────────\n\nexport const TwitterCredentialsSchema = z.object({\n clientId: NonEmptyString.describe('Twitter / X app client ID'),\n clientSecret: z.string().optional().describe('Client secret — required for confidential clients only'),\n redirectUri: z.url().optional(),\n});\nexport type TwitterCredentialsInput = z.infer<typeof TwitterCredentialsSchema>;\n\nexport const TwitterCredentialDataSchema = TwitterCredentialsSchema.extend({\n oauthTokenData: z.union([z.string(), OAuthTokensSchema]).optional(),\n});\n\n// ─── Tweet creation ─────────────────────────────────────────────────────────\n\nexport const TwitterReplySettings = z.enum(['everyone', 'mentionedUsers', 'following']);\n\nexport const TwitterCreateTweetSchema = z.object({\n text: z.string().max(280),\n /** Reply to an existing tweet by ID. */\n inReplyToTweetId: z.string().optional(),\n /** Quote-tweet an existing tweet by ID. */\n quoteTweetId: z.string().optional(),\n /** Up to 4 media IDs (uploaded via the v1.1 chunked endpoint). */\n mediaIds: z.array(z.string()).max(4).optional(),\n pollOptions: z.array(z.string()).min(2).max(4).optional(),\n pollDurationMinutes: z.number().int().min(5).max(10080).optional(),\n replySettings: TwitterReplySettings.optional(),\n forSuperFollowersOnly: z.boolean().optional(),\n});\n\nexport const TwitterSearchTweetsSchema = z.object({\n query: z.string().min(1).max(1024),\n maxResults: z.number().int().min(10).max(100).optional().default(10),\n startTime: z.iso.datetime().optional(),\n endTime: z.iso.datetime().optional(),\n nextToken: z.string().optional(),\n});\n\nexport const TwitterSendDmSchema = z.object({\n recipientId: z.string().min(1),\n text: z.string().min(1).max(10_000),\n});\n\n// ─── Capabilities ───────────────────────────────────────────────────────────\n\nexport const twitterCapabilities: ProviderCapabilities = {\n auth: 'oauth2',\n posting: true,\n upload: true,\n messaging: true,\n scheduling: false,\n deletion: true,\n listing: true,\n analytics: false,\n environments: false,\n pkce: true,\n};\n\nexport const twitterInfo = {\n name: 'twitter' as const,\n displayName: 'Twitter / X',\n scopes: [\n 'tweet.read', 'tweet.write', 'tweet.moderate.write',\n 'users.read', 'follows.read', 'follows.write',\n 'offline.access', 'like.read', 'like.write',\n 'dm.write', 'dm.read', 'list.read', 'list.write',\n 'bookmark.read', 'bookmark.write',\n 'block.read', 'mute.read',\n ],\n /** Free / Basic / Pro tiers. Free: ~17 posts/24h. */\n rateLimits: { freePerDay: 17 },\n fileLimits: {\n image: { maxSizeBytes: 5 * 1024 * 1024 },\n video: { maxSizeBytes: 512 * 1024 * 1024, maxDurationSec: 140 },\n },\n docsUrl: 'https://developer.x.com/en/docs/x-api',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAa,2BAA2B,EAAE,OAAO;CAC/C,UAAU,eAAe,SAAS,4BAA4B;CAC9D,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,yDAAyD;CACtG,aAAa,EAAE,KAAK,CAAC,UAAU;CAChC,CAAC;AAGF,MAAa,8BAA8B,yBAAyB,OAAO,EACzE,gBAAgB,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,UAAU,EACpE,CAAC;AAIF,MAAa,uBAAuB,EAAE,KAAK;CAAC;CAAY;CAAkB;CAAY,CAAC;AAEvF,MAAa,2BAA2B,EAAE,OAAO;CAC/C,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI;CAEzB,kBAAkB,EAAE,QAAQ,CAAC,UAAU;CAEvC,cAAc,EAAE,QAAQ,CAAC,UAAU;CAEnC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU;CAC/C,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACzD,qBAAqB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAClE,eAAe,qBAAqB,UAAU;CAC9C,uBAAuB,EAAE,SAAS,CAAC,UAAU;CAC9C,CAAC;AAEF,MAAa,4BAA4B,EAAE,OAAO;CAChD,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK;CAClC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;CACpE,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACtC,SAAS,EAAE,IAAI,UAAU,CAAC,UAAU;CACpC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAEF,MAAa,sBAAsB,EAAE,OAAO;CAC1C,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAO;CACpC,CAAC;AAIF,MAAa,sBAA4C;CACvD,MAAM;CACN,SAAS;CACT,QAAQ;CACR,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,WAAW;CACX,cAAc;CACd,MAAM;CACP;AAED,MAAa,cAAc;CACzB,MAAM;CACN,aAAa;CACb,QAAQ;EACN;EAAc;EAAe;EAC7B;EAAc;EAAgB;EAC9B;EAAkB;EAAa;EAC/B;EAAY;EAAW;EAAa;EACpC;EAAiB;EACjB;EAAc;EACf;CAED,YAAY,EAAE,YAAY,IAAI;CAC9B,YAAY;EACV,OAAO,EAAE,cAAc,IAAI,OAAO,MAAM;EACxC,OAAO;GAAE,cAAc,MAAM,OAAO;GAAM,gBAAgB;GAAK;EAChE;CACD,SAAS;CACV"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
//#region src/providers/linkedin/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* LinkedIn Provider Types
|
|
4
|
+
* =======================
|
|
5
|
+
* Comprehensive type definitions for the LinkedIn REST API v202604.
|
|
6
|
+
* Fields sourced from: LinkedIn Marketing API docs, n8n LinkedIn node.
|
|
7
|
+
*
|
|
8
|
+
* @see https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api
|
|
9
|
+
*/
|
|
10
|
+
interface LinkedInCredentials {
|
|
11
|
+
clientId: string;
|
|
12
|
+
clientSecret: string;
|
|
13
|
+
redirectUri?: string;
|
|
14
|
+
}
|
|
15
|
+
interface LinkedInTokenData {
|
|
16
|
+
access_token: string;
|
|
17
|
+
refresh_token?: string;
|
|
18
|
+
expires_in?: number;
|
|
19
|
+
refresh_token_expires_in?: number;
|
|
20
|
+
scope?: string;
|
|
21
|
+
token_type?: string;
|
|
22
|
+
}
|
|
23
|
+
interface LinkedInCredentialData {
|
|
24
|
+
clientId?: string;
|
|
25
|
+
clientSecret?: string;
|
|
26
|
+
oauthTokenData?: string | LinkedInTokenData;
|
|
27
|
+
}
|
|
28
|
+
type LinkedInVisibility = 'PUBLIC' | 'CONNECTIONS' | 'LOGGED_IN';
|
|
29
|
+
interface TextPostOptions {
|
|
30
|
+
visibility?: LinkedInVisibility;
|
|
31
|
+
}
|
|
32
|
+
interface ArticlePostOptions {
|
|
33
|
+
title?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
visibility?: LinkedInVisibility;
|
|
36
|
+
}
|
|
37
|
+
interface ImagePostOptions {
|
|
38
|
+
altText?: string;
|
|
39
|
+
visibility?: LinkedInVisibility;
|
|
40
|
+
}
|
|
41
|
+
interface MultiImagePostOptions {
|
|
42
|
+
altTexts?: string[];
|
|
43
|
+
visibility?: LinkedInVisibility;
|
|
44
|
+
}
|
|
45
|
+
interface ImageUploadResult {
|
|
46
|
+
uploadUrl: string;
|
|
47
|
+
imageUrn: string;
|
|
48
|
+
}
|
|
49
|
+
interface VideoUploadResult {
|
|
50
|
+
uploadUrl: string;
|
|
51
|
+
videoUrn: string;
|
|
52
|
+
}
|
|
53
|
+
interface LinkedInUploadParams {
|
|
54
|
+
videoBuffer: Buffer;
|
|
55
|
+
title?: string;
|
|
56
|
+
description?: string;
|
|
57
|
+
tokens: {
|
|
58
|
+
access_token: string;
|
|
59
|
+
personId?: string;
|
|
60
|
+
organizationUrn?: string;
|
|
61
|
+
};
|
|
62
|
+
visibility?: LinkedInVisibility;
|
|
63
|
+
onProgress?: (progress: number) => void;
|
|
64
|
+
}
|
|
65
|
+
interface LinkedInPost {
|
|
66
|
+
id: string;
|
|
67
|
+
authorUrn: string;
|
|
68
|
+
text: string;
|
|
69
|
+
createdAt: string;
|
|
70
|
+
visibility: string;
|
|
71
|
+
lifecycleState: string;
|
|
72
|
+
commentary?: string;
|
|
73
|
+
shareUrl: string | null;
|
|
74
|
+
}
|
|
75
|
+
interface LinkedInPostAnalytics {
|
|
76
|
+
/** Total unique impressions — requires Marketing API scope */
|
|
77
|
+
impressionCount: number | null;
|
|
78
|
+
/** Total link clicks — requires Marketing API scope */
|
|
79
|
+
clickCount: number | null;
|
|
80
|
+
/** Total LIKE reactions (or all reactions if LIKE not separately available) */
|
|
81
|
+
likeCount: number | null;
|
|
82
|
+
/** Total first-level comments */
|
|
83
|
+
commentCount: number | null;
|
|
84
|
+
/** Total shares/reposts */
|
|
85
|
+
shareCount: number | null;
|
|
86
|
+
/** Engagement rate (clicks + likes + comments + shares / impressions) — requires Marketing API */
|
|
87
|
+
engagementRate: number | null;
|
|
88
|
+
}
|
|
89
|
+
interface LinkedInSetupStep {
|
|
90
|
+
step: number;
|
|
91
|
+
title: string;
|
|
92
|
+
description: string;
|
|
93
|
+
}
|
|
94
|
+
interface LinkedInOrganization {
|
|
95
|
+
id: string;
|
|
96
|
+
name: string;
|
|
97
|
+
vanityName: string;
|
|
98
|
+
logoUrl?: string;
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
export { LinkedInCredentials as a, LinkedInPostAnalytics as c, LinkedInUploadParams as d, MultiImagePostOptions as f, LinkedInCredentialData as i, LinkedInSetupStep as l, VideoUploadResult as m, ImagePostOptions as n, LinkedInOrganization as o, TextPostOptions as p, ImageUploadResult as r, LinkedInPost as s, ArticlePostOptions as t, LinkedInTokenData as u };
|
|
102
|
+
//# sourceMappingURL=types-BFE4psYI.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BFE4psYI.d.mts","names":[],"sources":["../src/providers/linkedin/types.ts"],"mappings":";;AAaA;;;;;;;UAAiB,mBAAA;EACf,QAAA;EACA,YAAA;EACA,WAAA;AAAA;AAAA,UAGe,iBAAA;EACf,YAAA;EACA,aAAA;EACA,UAAA;EACA,wBAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,UAGe,sBAAA;EACf,QAAA;EACA,YAAA;EACA,cAAA,YAA0B,iBAAA;AAAA;AAAA,KAOhB,kBAAA;AAAA,UAYK,eAAA;EACf,UAAA,GAAa,kBAAA;AAAA;AAAA,UAGE,kBAAA;EACf,KAAA;EACA,WAAA;EACA,UAAA,GAAa,kBAAA;AAAA;AAAA,UAGE,gBAAA;EACf,OAAA;EACA,UAAA,GAAa,kBAAA;AAAA;AAAA,UAGE,qBAAA;EACf,QAAA;EACA,UAAA,GAAa,kBAAA;AAAA;AAAA,UAGE,iBAAA;EACf,SAAA;EACA,QAAA;AAAA;AAAA,UAGe,iBAAA;EACf,SAAA;EACA,QAAA;AAAA;AAAA,UAGe,oBAAA;EACf,WAAA,EAAa,MAAA;EACb,KAAA;EACA,WAAA;EACA,MAAA;IACE,YAAA;IACA,QAAA;IACA,eAAA;EAAA;EAEF,UAAA,GAAa,kBAAA;EACb,UAAA,IAAc,QAAA;AAAA;AAAA,UAOC,YAAA;EACf,EAAA;EACA,SAAA;EACA,IAAA;EACA,SAAA;EACA,UAAA;EACA,cAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAOe,qBAAA;EArCA;EAuCf,eAAA;;EAEA,UAAA;EAvCQ;EAyCR,SAAA;EAtCmC;EAwCnC,YAAA;EA/B+B;EAiC/B,UAAA;EAzCa;EA2Cb,cAAA;AAAA;AAAA,UAyBe,iBAAA;EACf,IAAA;EACA,KAAA;EACA,WAAA;AAAA;AAAA,UAOe,oBAAA;EACf,EAAA;EACA,IAAA;EACA,UAAA;EACA,OAAA;AAAA"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
//#region src/providers/telegram/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Telegram Provider Types
|
|
4
|
+
* =======================
|
|
5
|
+
* Type definitions for the Telegram Bot API.
|
|
6
|
+
* Fields sourced from: Telegram Bot API reference, n8n Telegram node.
|
|
7
|
+
*
|
|
8
|
+
* @see https://core.telegram.org/bots/api
|
|
9
|
+
*/
|
|
10
|
+
interface TelegramApiResponse {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
result?: unknown;
|
|
13
|
+
description?: string;
|
|
14
|
+
error_code?: number;
|
|
15
|
+
parameters?: {
|
|
16
|
+
retry_after?: number;
|
|
17
|
+
migrate_to_chat_id?: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
interface TelegramBotInfo {
|
|
21
|
+
id: number;
|
|
22
|
+
is_bot: boolean;
|
|
23
|
+
first_name: string;
|
|
24
|
+
last_name?: string;
|
|
25
|
+
username: string;
|
|
26
|
+
can_join_groups?: boolean;
|
|
27
|
+
can_read_all_group_messages?: boolean;
|
|
28
|
+
supports_inline_queries?: boolean;
|
|
29
|
+
}
|
|
30
|
+
interface TelegramChat {
|
|
31
|
+
id: number;
|
|
32
|
+
type: 'private' | 'group' | 'supergroup' | 'channel';
|
|
33
|
+
title?: string;
|
|
34
|
+
username?: string;
|
|
35
|
+
first_name?: string;
|
|
36
|
+
last_name?: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
invite_link?: string;
|
|
39
|
+
photo?: TelegramChatPhoto;
|
|
40
|
+
}
|
|
41
|
+
interface TelegramChatPhoto {
|
|
42
|
+
small_file_id: string;
|
|
43
|
+
small_file_unique_id: string;
|
|
44
|
+
big_file_id: string;
|
|
45
|
+
big_file_unique_id: string;
|
|
46
|
+
}
|
|
47
|
+
interface TelegramMessage {
|
|
48
|
+
message_id: number;
|
|
49
|
+
chat: TelegramChat;
|
|
50
|
+
date: number;
|
|
51
|
+
text?: string;
|
|
52
|
+
caption?: string;
|
|
53
|
+
from?: TelegramBotInfo;
|
|
54
|
+
reply_to_message?: TelegramMessage;
|
|
55
|
+
}
|
|
56
|
+
interface TelegramCredentialData {
|
|
57
|
+
botToken: string;
|
|
58
|
+
chatId?: string;
|
|
59
|
+
}
|
|
60
|
+
type TelegramParseMode = 'HTML' | 'MarkdownV2' | 'Markdown';
|
|
61
|
+
interface SendMessageOptions {
|
|
62
|
+
parseMode?: TelegramParseMode;
|
|
63
|
+
disableNotification?: boolean;
|
|
64
|
+
replyToMessageId?: number;
|
|
65
|
+
/** @deprecated Use replyToMessageId — maps to reply_parameters in Bot API 7.0+ */
|
|
66
|
+
disableWebPagePreview?: boolean;
|
|
67
|
+
/** Unique identifier for the target message thread (forum topics) */
|
|
68
|
+
messageThreadId?: number;
|
|
69
|
+
/** Protects message content from forwarding and saving */
|
|
70
|
+
protectContent?: boolean;
|
|
71
|
+
}
|
|
72
|
+
interface SendPhotoOptions {
|
|
73
|
+
caption?: string;
|
|
74
|
+
parseMode?: TelegramParseMode;
|
|
75
|
+
disableNotification?: boolean;
|
|
76
|
+
protectContent?: boolean;
|
|
77
|
+
/** Whether the photo needs to be covered with a spoiler animation */
|
|
78
|
+
hasSpoiler?: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface SendVideoOptions {
|
|
81
|
+
caption?: string;
|
|
82
|
+
parseMode?: TelegramParseMode;
|
|
83
|
+
duration?: number;
|
|
84
|
+
width?: number;
|
|
85
|
+
height?: number;
|
|
86
|
+
supportsStreaming?: boolean;
|
|
87
|
+
disableNotification?: boolean;
|
|
88
|
+
protectContent?: boolean;
|
|
89
|
+
hasSpoiler?: boolean;
|
|
90
|
+
/** Thumbnail URL or file_id */
|
|
91
|
+
thumbnail?: string;
|
|
92
|
+
}
|
|
93
|
+
interface SendDocumentOptions {
|
|
94
|
+
caption?: string;
|
|
95
|
+
parseMode?: TelegramParseMode;
|
|
96
|
+
disableNotification?: boolean;
|
|
97
|
+
protectContent?: boolean;
|
|
98
|
+
}
|
|
99
|
+
interface MediaGroupItem {
|
|
100
|
+
type: 'photo' | 'video';
|
|
101
|
+
media: string;
|
|
102
|
+
caption?: string;
|
|
103
|
+
parseMode?: TelegramParseMode;
|
|
104
|
+
hasSpoiler?: boolean;
|
|
105
|
+
}
|
|
106
|
+
interface SendMediaGroupOptions {
|
|
107
|
+
disableNotification?: boolean;
|
|
108
|
+
protectContent?: boolean;
|
|
109
|
+
}
|
|
110
|
+
interface PinMessageOptions {
|
|
111
|
+
disableNotification?: boolean;
|
|
112
|
+
}
|
|
113
|
+
interface EditMessageOptions {
|
|
114
|
+
parseMode?: TelegramParseMode;
|
|
115
|
+
disableWebPagePreview?: boolean;
|
|
116
|
+
}
|
|
117
|
+
interface TelegramUploadVideoParams {
|
|
118
|
+
videoUrl: string;
|
|
119
|
+
title?: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
tokens: {
|
|
122
|
+
botToken: string;
|
|
123
|
+
chatId: string;
|
|
124
|
+
};
|
|
125
|
+
onProgress?: (progress: number) => void;
|
|
126
|
+
}
|
|
127
|
+
interface TelegramUploadVideoResult {
|
|
128
|
+
platformVideoId: string;
|
|
129
|
+
platformUrl: string | null;
|
|
130
|
+
status: string;
|
|
131
|
+
uploadedAt: Date;
|
|
132
|
+
metadata: {
|
|
133
|
+
chatId: string;
|
|
134
|
+
messageId: number;
|
|
135
|
+
caption: string;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
interface TelegramTestResult {
|
|
139
|
+
status: 'OK' | 'Error' | 'Warning';
|
|
140
|
+
message: string;
|
|
141
|
+
data?: {
|
|
142
|
+
channelId: string;
|
|
143
|
+
channelTitle: string;
|
|
144
|
+
username: string;
|
|
145
|
+
chatTitle?: string;
|
|
146
|
+
chatType?: string;
|
|
147
|
+
availableChats?: Array<{
|
|
148
|
+
id: number;
|
|
149
|
+
title: string;
|
|
150
|
+
type: string;
|
|
151
|
+
}>;
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
interface DiscoveredChat {
|
|
155
|
+
id: number;
|
|
156
|
+
title: string;
|
|
157
|
+
type: string;
|
|
158
|
+
}
|
|
159
|
+
interface TelegramUser {
|
|
160
|
+
id: number;
|
|
161
|
+
is_bot: boolean;
|
|
162
|
+
first_name: string;
|
|
163
|
+
last_name?: string;
|
|
164
|
+
username?: string;
|
|
165
|
+
language_code?: string;
|
|
166
|
+
}
|
|
167
|
+
interface ChatAdministrator {
|
|
168
|
+
user: TelegramUser;
|
|
169
|
+
status: 'creator' | 'administrator';
|
|
170
|
+
custom_title?: string;
|
|
171
|
+
is_anonymous?: boolean;
|
|
172
|
+
can_manage_chat?: boolean;
|
|
173
|
+
can_post_messages?: boolean;
|
|
174
|
+
can_edit_messages?: boolean;
|
|
175
|
+
can_delete_messages?: boolean;
|
|
176
|
+
can_restrict_members?: boolean;
|
|
177
|
+
can_promote_members?: boolean;
|
|
178
|
+
can_change_info?: boolean;
|
|
179
|
+
can_invite_users?: boolean;
|
|
180
|
+
can_pin_messages?: boolean;
|
|
181
|
+
}
|
|
182
|
+
interface ChatMember {
|
|
183
|
+
user: TelegramUser;
|
|
184
|
+
status: 'creator' | 'administrator' | 'member' | 'restricted' | 'left' | 'kicked';
|
|
185
|
+
}
|
|
186
|
+
interface SendLocationOptions {
|
|
187
|
+
horizontalAccuracy?: number;
|
|
188
|
+
livePeriod?: number;
|
|
189
|
+
heading?: number;
|
|
190
|
+
proximityAlertRadius?: number;
|
|
191
|
+
disableNotification?: boolean;
|
|
192
|
+
protectContent?: boolean;
|
|
193
|
+
replyToMessageId?: number;
|
|
194
|
+
}
|
|
195
|
+
interface SendAudioOptions {
|
|
196
|
+
caption?: string;
|
|
197
|
+
parseMode?: TelegramParseMode;
|
|
198
|
+
duration?: number;
|
|
199
|
+
performer?: string;
|
|
200
|
+
title?: string;
|
|
201
|
+
thumbnail?: string;
|
|
202
|
+
disableNotification?: boolean;
|
|
203
|
+
protectContent?: boolean;
|
|
204
|
+
}
|
|
205
|
+
interface SendStickerOptions {
|
|
206
|
+
emoji?: string;
|
|
207
|
+
disableNotification?: boolean;
|
|
208
|
+
protectContent?: boolean;
|
|
209
|
+
replyToMessageId?: number;
|
|
210
|
+
}
|
|
211
|
+
type ChatAction = 'typing' | 'upload_photo' | 'record_video' | 'upload_video' | 'record_voice' | 'upload_voice' | 'upload_document' | 'choose_sticker' | 'find_location' | 'record_video_note' | 'upload_video_note';
|
|
212
|
+
interface ForwardMessageOptions {
|
|
213
|
+
disableNotification?: boolean;
|
|
214
|
+
protectContent?: boolean;
|
|
215
|
+
}
|
|
216
|
+
interface CopyMessageOptions {
|
|
217
|
+
caption?: string;
|
|
218
|
+
parseMode?: TelegramParseMode;
|
|
219
|
+
disableNotification?: boolean;
|
|
220
|
+
protectContent?: boolean;
|
|
221
|
+
}
|
|
222
|
+
interface AnswerCallbackQueryOptions {
|
|
223
|
+
text?: string;
|
|
224
|
+
showAlert?: boolean;
|
|
225
|
+
url?: string;
|
|
226
|
+
cacheTime?: number;
|
|
227
|
+
}
|
|
228
|
+
//#endregion
|
|
229
|
+
export { TelegramMessage as C, TelegramUploadVideoResult as D, TelegramUploadVideoParams as E, TelegramUser as O, TelegramCredentialData as S, TelegramTestResult as T, SendStickerOptions as _, CopyMessageOptions as a, TelegramBotInfo as b, ForwardMessageOptions as c, SendAudioOptions as d, SendDocumentOptions as f, SendPhotoOptions as g, SendMessageOptions as h, ChatMember as i, MediaGroupItem as l, SendMediaGroupOptions as m, ChatAction as n, DiscoveredChat as o, SendLocationOptions as p, ChatAdministrator as r, EditMessageOptions as s, AnswerCallbackQueryOptions as t, PinMessageOptions as u, SendVideoOptions as v, TelegramParseMode as w, TelegramChat as x, TelegramApiResponse as y };
|
|
230
|
+
//# sourceMappingURL=types-Bv27tcT0.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-Bv27tcT0.d.mts","names":[],"sources":["../src/providers/telegram/types.ts"],"mappings":"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"}
|