@jant/core 0.5.4 → 0.6.1
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/bin/commands/telegram/register-webhooks.js +93 -0
- package/dist/app-CMSW_AYG.js +6 -0
- package/dist/{app-BtNdUAqz.js → app-DYQdDMs8.js} +2249 -387
- package/dist/client/.vite/manifest.json +3 -3
- package/dist/client/_assets/client-BRTh1ii1.js +274 -0
- package/dist/client/_assets/client-CO4b-RKd.css +2 -0
- package/dist/client/_assets/{client-auth-DJ_5wx9N.js → client-auth-CSNcTJwP.js} +81 -81
- package/dist/{env-CgaH9Mut.js → env-C7e2Nlnt.js} +30 -1
- package/dist/{export-CR9Megtb.js → export-Bbn86HmS.js} +1 -1
- package/dist/{github-sync-DYZq9rQp.js → github-sync-CBQPRZ8H.js} +1 -1
- package/dist/{github-sync-8Vv06aCr.js → github-sync-dXsiZa_e.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/node.js +61 -5
- package/package.json +2 -1
- package/src/__tests__/helpers/app.ts +15 -2
- package/src/app.tsx +3 -0
- package/src/client/thread-context.ts +146 -2
- package/src/client/tiptap/__tests__/link-toolbar.test.ts +1 -1
- package/src/client/tiptap/bubble-menu.ts +1 -16
- package/src/client/tiptap/extensions.ts +2 -6
- package/src/client/tiptap/link-toolbar.ts +0 -21
- package/src/client/tiptap/toolbar-mode.ts +0 -43
- package/src/db/migrations/0022_old_gressill.sql +24 -0
- package/src/db/migrations/0023_broad_terror.sql +20 -0
- package/src/db/migrations/0024_red_the_twelve.sql +3 -0
- package/src/db/migrations/0025_exotic_wendell_rand.sql +1 -0
- package/src/db/migrations/meta/0022_snapshot.json +2267 -0
- package/src/db/migrations/meta/0023_snapshot.json +2396 -0
- package/src/db/migrations/meta/0024_snapshot.json +2417 -0
- package/src/db/migrations/meta/0025_snapshot.json +2424 -0
- package/src/db/migrations/meta/_journal.json +28 -0
- package/src/db/migrations/pg/0020_bizarre_smasher.sql +24 -0
- package/src/db/migrations/pg/0021_sharp_puppet_master.sql +20 -0
- package/src/db/migrations/pg/0022_blushing_blue_shield.sql +3 -0
- package/src/db/migrations/pg/0023_organic_zemo.sql +1 -0
- package/src/db/migrations/pg/meta/0020_snapshot.json +2904 -0
- package/src/db/migrations/pg/meta/0021_snapshot.json +3060 -0
- package/src/db/migrations/pg/meta/0022_snapshot.json +3078 -0
- package/src/db/migrations/pg/meta/0023_snapshot.json +3084 -0
- package/src/db/migrations/pg/meta/_journal.json +28 -0
- package/src/db/pg/schema.ts +82 -0
- package/src/db/schema.ts +90 -0
- package/src/i18n/coverage.generated.ts +2 -2
- package/src/i18n/locales/public/en.po +8 -0
- package/src/i18n/locales/public/zh-Hans.po +8 -0
- package/src/i18n/locales/public/zh-Hant.po +8 -0
- package/src/i18n/locales/settings/en.po +135 -0
- package/src/i18n/locales/settings/en.ts +1 -1
- package/src/i18n/locales/settings/zh-Hans.po +136 -1
- package/src/i18n/locales/settings/zh-Hans.ts +1 -1
- package/src/i18n/locales/settings/zh-Hant.po +136 -1
- package/src/i18n/locales/settings/zh-Hant.ts +1 -1
- package/src/lib/__tests__/image-dimensions.test.ts +314 -0
- package/src/lib/__tests__/telegram-entities.test.ts +180 -0
- package/src/lib/__tests__/telegram-pool-webhooks.test.ts +127 -0
- package/src/lib/env.ts +45 -0
- package/src/lib/ids.ts +3 -0
- package/src/lib/image-dimensions.ts +258 -0
- package/src/lib/telegram-entities.ts +240 -0
- package/src/lib/telegram-pool-webhooks.ts +86 -0
- package/src/lib/telegram-settings-status.tsx +109 -0
- package/src/lib/telegram.ts +363 -0
- package/src/node/runtime.ts +6 -0
- package/src/routes/api/__tests__/telegram.test.ts +612 -0
- package/src/routes/api/telegram.ts +782 -0
- package/src/routes/api/upload-multipart.ts +34 -12
- package/src/routes/api/upload.ts +23 -2
- package/src/routes/dash/settings.tsx +131 -1
- package/src/routes/pages/__tests__/post-page-title.test.ts +70 -0
- package/src/routes/pages/page.tsx +3 -2
- package/src/runtime/cloudflare.ts +20 -9
- package/src/runtime/node.ts +20 -9
- package/src/runtime/site.ts +2 -1
- package/src/services/__tests__/telegram.test.ts +148 -0
- package/src/services/index.ts +9 -0
- package/src/services/telegram.ts +613 -0
- package/src/services/upload-session.ts +39 -12
- package/src/styles/tokens.css +1 -0
- package/src/styles/ui.css +117 -38
- package/src/types/app-context.ts +6 -0
- package/src/types/bindings.ts +3 -0
- package/src/types/config.ts +40 -0
- package/src/ui/dash/settings/SettingsRootContent.tsx +48 -17
- package/src/ui/dash/settings/TelegramContent.tsx +549 -0
- package/src/ui/feed/ThreadPreview.tsx +90 -38
- package/src/ui/feed/__tests__/thread-preview.test.ts +66 -5
- package/src/ui/pages/PostPage.tsx +77 -15
- package/dist/app-DLINgGBd.js +0 -6
- package/dist/client/_assets/client-BErXNT6k.css +0 -2
- package/dist/client/_assets/client-CtAgWT8i.js +0 -274
|
@@ -1,44 +1 @@
|
|
|
1
|
-
import type { EditorView } from "@tiptap/pm/view";
|
|
2
|
-
|
|
3
1
|
export type FormattingToolbarMode = "default" | "compose";
|
|
4
|
-
|
|
5
|
-
// Dock the formatting toolbar to the bottom of the compose surface only on
|
|
6
|
-
// touch-first devices. `(pointer: coarse)` targets the primary input, so real
|
|
7
|
-
// mobile/tablets match but a narrow desktop window (e.g. browser used as a
|
|
8
|
-
// sidebar) keeps the floating bubble menu near the selection.
|
|
9
|
-
const MOBILE_FORMATTING_QUERY = "(pointer: coarse)";
|
|
10
|
-
|
|
11
|
-
export function isComposeDockedToolbar(mode: FormattingToolbarMode): boolean {
|
|
12
|
-
return (
|
|
13
|
-
mode === "compose" &&
|
|
14
|
-
(globalThis.matchMedia?.(MOBILE_FORMATTING_QUERY).matches ?? false)
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function applyDockedToolbarOffset(
|
|
19
|
-
el: HTMLElement,
|
|
20
|
-
view: EditorView,
|
|
21
|
-
): void {
|
|
22
|
-
const composeEditor = view.dom.closest("jant-compose-editor");
|
|
23
|
-
const root =
|
|
24
|
-
view.dom.closest(
|
|
25
|
-
"jant-compose-dialog, .compose-fullscreen, .compose-attached-panel",
|
|
26
|
-
) ?? view.dom.closest("dialog");
|
|
27
|
-
|
|
28
|
-
let offset = 16;
|
|
29
|
-
const toolsRow =
|
|
30
|
-
composeEditor?.querySelector<HTMLElement>(".compose-tools-row") ??
|
|
31
|
-
root?.querySelector<HTMLElement>(".compose-tools-row");
|
|
32
|
-
const actionRow = root?.querySelector<HTMLElement>(".compose-action-row");
|
|
33
|
-
const attachmentDock = composeEditor?.querySelector<HTMLElement>(
|
|
34
|
-
".compose-attachments-dock",
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
if (toolsRow) offset += toolsRow.getBoundingClientRect().height;
|
|
38
|
-
if (actionRow) offset += actionRow.getBoundingClientRect().height;
|
|
39
|
-
if (attachmentDock) {
|
|
40
|
-
offset += attachmentDock.getBoundingClientRect().height;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
el.style.setProperty("--tiptap-docked-offset", `${offset}px`);
|
|
44
|
-
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
CREATE TABLE `telegram_binding` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`site_id` text NOT NULL,
|
|
4
|
+
`bot_id` text NOT NULL,
|
|
5
|
+
`telegram_user_id` text NOT NULL,
|
|
6
|
+
`telegram_username` text,
|
|
7
|
+
`last_update_id` integer,
|
|
8
|
+
`bound_at` integer NOT NULL,
|
|
9
|
+
FOREIGN KEY (`site_id`) REFERENCES `site`(`id`) ON UPDATE no action ON DELETE cascade
|
|
10
|
+
);
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
CREATE UNIQUE INDEX `uq_telegram_binding_site_id` ON `telegram_binding` (`site_id`);--> statement-breakpoint
|
|
13
|
+
CREATE UNIQUE INDEX `uq_telegram_binding_bot_user` ON `telegram_binding` (`bot_id`,`telegram_user_id`);--> statement-breakpoint
|
|
14
|
+
CREATE TABLE `telegram_pending_binding` (
|
|
15
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
16
|
+
`site_id` text NOT NULL,
|
|
17
|
+
`code` text NOT NULL,
|
|
18
|
+
`created_at` integer NOT NULL,
|
|
19
|
+
`expires_at` integer NOT NULL,
|
|
20
|
+
FOREIGN KEY (`site_id`) REFERENCES `site`(`id`) ON UPDATE no action ON DELETE cascade
|
|
21
|
+
);
|
|
22
|
+
--> statement-breakpoint
|
|
23
|
+
CREATE UNIQUE INDEX `uq_telegram_pending_binding_site_id` ON `telegram_pending_binding` (`site_id`);--> statement-breakpoint
|
|
24
|
+
CREATE UNIQUE INDEX `uq_telegram_pending_binding_code` ON `telegram_pending_binding` (`code`);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
CREATE TABLE `telegram_media_group_item` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`site_id` text NOT NULL,
|
|
4
|
+
`bot_id` text NOT NULL,
|
|
5
|
+
`telegram_user_id` text NOT NULL,
|
|
6
|
+
`media_group_id` text NOT NULL,
|
|
7
|
+
`chat_id` integer NOT NULL,
|
|
8
|
+
`message_id` integer NOT NULL,
|
|
9
|
+
`update_id` integer NOT NULL,
|
|
10
|
+
`file_id` text NOT NULL,
|
|
11
|
+
`media_kind` text NOT NULL,
|
|
12
|
+
`mime_type` text,
|
|
13
|
+
`original_name` text,
|
|
14
|
+
`caption_markdown` text,
|
|
15
|
+
`created_at` integer NOT NULL,
|
|
16
|
+
FOREIGN KEY (`site_id`) REFERENCES `site`(`id`) ON UPDATE no action ON DELETE cascade
|
|
17
|
+
);
|
|
18
|
+
--> statement-breakpoint
|
|
19
|
+
CREATE INDEX `idx_telegram_media_group_item_group` ON `telegram_media_group_item` (`bot_id`,`media_group_id`);--> statement-breakpoint
|
|
20
|
+
CREATE UNIQUE INDEX `uq_telegram_media_group_item_message` ON `telegram_media_group_item` (`bot_id`,`media_group_id`,`message_id`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `telegram_media_group_item` ADD `poster_file_id` text;
|