@jant/core 0.5.4 → 0.6.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.
Files changed (90) hide show
  1. package/bin/commands/telegram/register-webhooks.js +93 -0
  2. package/dist/{app-BtNdUAqz.js → app-BIkkbVQk.js} +2252 -383
  3. package/dist/app-Bcr5_wZI.js +6 -0
  4. package/dist/client/.vite/manifest.json +3 -3
  5. package/dist/client/_assets/client-Bo7sKkAQ.js +274 -0
  6. package/dist/client/_assets/client-QHRvzZwk.css +2 -0
  7. package/dist/client/_assets/{client-auth-DJ_5wx9N.js → client-auth-D1jDQgbH.js} +81 -81
  8. package/dist/{env-CgaH9Mut.js → env-C7e2Nlnt.js} +30 -1
  9. package/dist/{export-CR9Megtb.js → export-Bbn86HmS.js} +1 -1
  10. package/dist/{github-sync-DYZq9rQp.js → github-sync-CBQPRZ8H.js} +1 -1
  11. package/dist/{github-sync-8Vv06aCr.js → github-sync-dXsiZa_e.js} +2 -2
  12. package/dist/index.js +4 -4
  13. package/dist/node.js +61 -5
  14. package/package.json +2 -1
  15. package/src/__tests__/helpers/app.ts +15 -2
  16. package/src/app.tsx +3 -0
  17. package/src/client/thread-context.ts +146 -2
  18. package/src/client/tiptap/__tests__/link-toolbar.test.ts +1 -1
  19. package/src/client/tiptap/bubble-menu.ts +1 -16
  20. package/src/client/tiptap/extensions.ts +2 -6
  21. package/src/client/tiptap/link-toolbar.ts +0 -21
  22. package/src/client/tiptap/toolbar-mode.ts +0 -43
  23. package/src/db/migrations/0022_old_gressill.sql +24 -0
  24. package/src/db/migrations/0023_broad_terror.sql +20 -0
  25. package/src/db/migrations/0024_red_the_twelve.sql +3 -0
  26. package/src/db/migrations/0025_exotic_wendell_rand.sql +1 -0
  27. package/src/db/migrations/meta/0022_snapshot.json +2267 -0
  28. package/src/db/migrations/meta/0023_snapshot.json +2396 -0
  29. package/src/db/migrations/meta/0024_snapshot.json +2417 -0
  30. package/src/db/migrations/meta/0025_snapshot.json +2424 -0
  31. package/src/db/migrations/meta/_journal.json +28 -0
  32. package/src/db/migrations/pg/0020_bizarre_smasher.sql +24 -0
  33. package/src/db/migrations/pg/0021_sharp_puppet_master.sql +20 -0
  34. package/src/db/migrations/pg/0022_blushing_blue_shield.sql +3 -0
  35. package/src/db/migrations/pg/0023_organic_zemo.sql +1 -0
  36. package/src/db/migrations/pg/meta/0020_snapshot.json +2904 -0
  37. package/src/db/migrations/pg/meta/0021_snapshot.json +3060 -0
  38. package/src/db/migrations/pg/meta/0022_snapshot.json +3078 -0
  39. package/src/db/migrations/pg/meta/0023_snapshot.json +3084 -0
  40. package/src/db/migrations/pg/meta/_journal.json +28 -0
  41. package/src/db/pg/schema.ts +82 -0
  42. package/src/db/schema.ts +90 -0
  43. package/src/i18n/coverage.generated.ts +2 -2
  44. package/src/i18n/locales/public/en.po +8 -0
  45. package/src/i18n/locales/public/zh-Hans.po +8 -0
  46. package/src/i18n/locales/public/zh-Hant.po +8 -0
  47. package/src/i18n/locales/settings/en.po +135 -0
  48. package/src/i18n/locales/settings/en.ts +1 -1
  49. package/src/i18n/locales/settings/zh-Hans.po +136 -1
  50. package/src/i18n/locales/settings/zh-Hans.ts +1 -1
  51. package/src/i18n/locales/settings/zh-Hant.po +136 -1
  52. package/src/i18n/locales/settings/zh-Hant.ts +1 -1
  53. package/src/lib/__tests__/image-dimensions.test.ts +314 -0
  54. package/src/lib/__tests__/telegram-entities.test.ts +180 -0
  55. package/src/lib/__tests__/telegram-pool-webhooks.test.ts +127 -0
  56. package/src/lib/env.ts +45 -0
  57. package/src/lib/ids.ts +3 -0
  58. package/src/lib/image-dimensions.ts +258 -0
  59. package/src/lib/telegram-entities.ts +240 -0
  60. package/src/lib/telegram-pool-webhooks.ts +86 -0
  61. package/src/lib/telegram-settings-status.tsx +109 -0
  62. package/src/lib/telegram.ts +363 -0
  63. package/src/node/runtime.ts +6 -0
  64. package/src/routes/api/__tests__/telegram.test.ts +612 -0
  65. package/src/routes/api/telegram.ts +782 -0
  66. package/src/routes/api/upload-multipart.ts +34 -12
  67. package/src/routes/api/upload.ts +23 -2
  68. package/src/routes/dash/settings.tsx +131 -1
  69. package/src/routes/pages/__tests__/post-page-title.test.ts +70 -0
  70. package/src/routes/pages/page.tsx +3 -2
  71. package/src/runtime/cloudflare.ts +20 -9
  72. package/src/runtime/node.ts +20 -9
  73. package/src/runtime/site.ts +2 -1
  74. package/src/services/__tests__/telegram.test.ts +148 -0
  75. package/src/services/index.ts +9 -0
  76. package/src/services/telegram.ts +613 -0
  77. package/src/services/upload-session.ts +39 -12
  78. package/src/styles/tokens.css +1 -0
  79. package/src/styles/ui.css +116 -38
  80. package/src/types/app-context.ts +6 -0
  81. package/src/types/bindings.ts +3 -0
  82. package/src/types/config.ts +40 -0
  83. package/src/ui/dash/settings/SettingsRootContent.tsx +48 -17
  84. package/src/ui/dash/settings/TelegramContent.tsx +549 -0
  85. package/src/ui/feed/ThreadPreview.tsx +91 -38
  86. package/src/ui/feed/__tests__/thread-preview.test.ts +67 -5
  87. package/src/ui/pages/PostPage.tsx +78 -15
  88. package/dist/app-DLINgGBd.js +0 -6
  89. package/dist/client/_assets/client-BErXNT6k.css +0 -2
  90. 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,3 @@
1
+ ALTER TABLE `telegram_media_group_item` ADD `width` integer;--> statement-breakpoint
2
+ ALTER TABLE `telegram_media_group_item` ADD `height` integer;--> statement-breakpoint
3
+ ALTER TABLE `telegram_media_group_item` ADD `duration_seconds` integer;
@@ -0,0 +1 @@
1
+ ALTER TABLE `telegram_media_group_item` ADD `poster_file_id` text;