@hypersocial/decks-cli 0.1.10 → 0.1.11

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/README.md CHANGED
@@ -127,15 +127,9 @@ cannot be unmuted. Statistics distinguish narration started, narration finished,
127
127
  narration not started, and unknown legacy playback. Closing a deck does not
128
128
  establish completion. See the main repository README for the runtime event contract.
129
129
 
130
- Publishing 0.1.10 is a separate coordinated step after backend/frontend rollout;
131
- this source change prepares packages and does not publish them.
130
+ ## Animated email previews (0.1.10+)
132
131
 
133
- Existing published 0.1.9 supports production login, import and ordinary share
134
- creation; publishing 0.1.10 is not required for those flows.
135
-
136
- ## Animated email previews (prepared 0.1.10; publication pending)
137
-
138
- This command is implemented in the prepared CLI source. npm publication, deployment of the owner-only `previews:get` Convex query, and upgrading a global CLI are coordinated release steps still pending. Local-file export needs no login or backend deployment. Both `hyperdecks` and `decks` accept the same command; the canonical package is `@hypersocial/decks-cli`.
132
+ Published in 0.1.10; the owner-only `previews:get` query is live in production. Local-file export needs no login. Both `hyperdecks` and `decks` accept the same command; the canonical package is `@hypersocial/decks-cli`.
139
133
 
140
134
  ```sh
141
135
  hyperdecks preview setup
@@ -148,7 +142,18 @@ Generate locally, select an existing same-deck recipient share, then explicitly
148
142
 
149
143
  Capture defaults to the initial slide, 4 seconds, 600px width and 10 fps, with a play/watch badge on GIF, PNG and silent MP4. `--duration` accepts 1–10 seconds, `--width` 240–1200 pixels (odd widths round up for MP4), `--delay` 0–10000 milliseconds (default 1000), and `--label "Watch · 2:41"` supplies an explicit label; no whole-deck narration duration is inferred. Aspect comes from `--aspect-ratio W:H`, `<meta name="preview-aspect-ratio" content="16:9">`, or the first slide/canvas bounds; otherwise 16:9. Output height rounds to an even pixel. Fonts get up to 5 seconds to settle. Inspect readiness warnings/poster for slow modules or media and increase the bounded delay if needed.
150
144
 
151
- `--json` prints one result on stdout; errors/progress use stderr and failures exit nonzero. `manifest.json` records source, status, absolute artifact paths, MIME types, bytes, dimensions, clip durations/fps, share URL, warnings and each completed upload. Files larger than 5 MiB warn: reduce duration/width for email. On upload failure local artifacts survive; inspect the manifest's URLs and `upload` records (an uploaded storage blob can exist even if saving its asset failed). Retry in a fresh directory; never overwrite an image already used in an email.
145
+ `--json` prints one line on stdout, identical to `<out>/manifest.json`:
146
+
147
+ ```json
148
+ { "status": "exported | uploaded | failed", "shareUrl": "https://decks.hypersocial.ai/v/<token>",
149
+ "files": [{ "type": "gif | png | mp4", "path": "...", "url": "https://...convex.cloud/api/storage/...", "bytes": 74662, "width": 600, "height": 338 }],
150
+ "email": { "sendable": true, "path": "<out>/email.html", "html": "<a href=\"<shareUrl>\"><img src=\"<gif url>\" ...></a>" },
151
+ "warnings": [] }
152
+ ```
153
+
154
+ `email.html` is the embed: drop it into any HTML email body or API send. `url` and `email` exist only after `--upload`.
155
+
156
+ Errors/progress use stderr and failures exit nonzero. `manifest.json` records source, status, absolute artifact paths, MIME types, bytes, dimensions, clip durations/fps, share URL, warnings and each completed upload. Files larger than 5 MiB warn: reduce duration/width for email. On upload failure local artifacts survive; inspect the manifest's URLs and `upload` records (an uploaded storage blob can exist even if saving its asset failed). Retry in a fresh directory; never overwrite an image already used in an email.
152
157
 
153
158
  Only successful explicit uploads produce `email.html` and `email.sendable: true`, with the GIF wrapped in the exact recipient link. Use that HTML/GIF in your draft manually. Some email clients show only the first GIF frame: the PNG poster and the visible watch badge provide a static fallback. MP4 is for other channels; email video support varies. Local exports provide files to insert manually and a separate share URL when selected, with no claim of sendable remote-image HTML. Static image downloads do not open the deck, start narration, record engagement, or notify the owner.
154
159
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hypersocial/decks-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Command-line client for Hypersocial Decks live analytics and share management.",
5
5
  "type": "module",
6
6
  "main": "./src/commands.mjs",
@@ -54,9 +54,9 @@ hyperdecks login
54
54
  intent is ambiguous.
55
55
  - Avoid printing full share tokens unless the user needs the exact URL/token.
56
56
 
57
- ## Animated email previews (prepared 0.1.10; publication pending)
57
+ ## Animated email previews (0.1.10+)
58
58
 
59
- This command is implemented in the prepared CLI source. npm publication, deployment of the owner-only `previews:get` Convex query, and upgrading a global CLI are coordinated release steps still pending. Local-file export needs no login or backend deployment. Both `hyperdecks` and `decks` accept the same command; the canonical package is `@hypersocial/decks-cli`.
59
+ Published in 0.1.10; the owner-only `previews:get` query is live in production. Local-file export needs no login. Both `hyperdecks` and `decks` accept the same command; the canonical package is `@hypersocial/decks-cli`.
60
60
 
61
61
  ```sh
62
62
  hyperdecks preview setup
@@ -69,7 +69,18 @@ Generate locally, select an existing same-deck recipient share, then explicitly
69
69
 
70
70
  Capture defaults to the initial slide, 4 seconds, 600px width and 10 fps, with a play/watch badge on GIF, PNG and silent MP4. `--duration` accepts 1–10 seconds, `--width` 240–1200 pixels (odd widths round up for MP4), `--delay` 0–10000 milliseconds (default 1000), and `--label "Watch · 2:41"` supplies an explicit label; no whole-deck narration duration is inferred. Aspect comes from `--aspect-ratio W:H`, `<meta name="preview-aspect-ratio" content="16:9">`, or the first slide/canvas bounds; otherwise 16:9. Output height rounds to an even pixel. Fonts get up to 5 seconds to settle. Inspect readiness warnings/poster for slow modules or media and increase the bounded delay if needed.
71
71
 
72
- `--json` prints one result on stdout; errors/progress use stderr and failures exit nonzero. `manifest.json` records source, status, absolute artifact paths, MIME types, bytes, dimensions, clip durations/fps, share URL, warnings and each completed upload. Files larger than 5 MiB warn: reduce duration/width for email. On upload failure local artifacts survive; inspect the manifest's URLs and `upload` records (an uploaded storage blob can exist even if saving its asset failed). Retry in a fresh directory; never overwrite an image already used in an email.
72
+ `--json` prints one line on stdout, identical to `<out>/manifest.json`:
73
+
74
+ ```json
75
+ { "status": "exported | uploaded | failed", "shareUrl": "https://decks.hypersocial.ai/v/<token>",
76
+ "files": [{ "type": "gif | png | mp4", "path": "...", "url": "https://...convex.cloud/api/storage/...", "bytes": 74662, "width": 600, "height": 338 }],
77
+ "email": { "sendable": true, "path": "<out>/email.html", "html": "<a href=\"<shareUrl>\"><img src=\"<gif url>\" ...></a>" },
78
+ "warnings": [] }
79
+ ```
80
+
81
+ `email.html` is the embed: drop it into any HTML email body or API send. `url` and `email` exist only after `--upload`.
82
+
83
+ Errors/progress use stderr and failures exit nonzero. `manifest.json` records source, status, absolute artifact paths, MIME types, bytes, dimensions, clip durations/fps, share URL, warnings and each completed upload. Files larger than 5 MiB warn: reduce duration/width for email. On upload failure local artifacts survive; inspect the manifest's URLs and `upload` records (an uploaded storage blob can exist even if saving its asset failed). Retry in a fresh directory; never overwrite an image already used in an email.
73
84
 
74
85
  Only successful explicit uploads produce `email.html` and `email.sendable: true`, with the GIF wrapped in the exact recipient link. Use that HTML/GIF in your draft manually. Some email clients show only the first GIF frame: the PNG poster and the visible watch badge provide a static fallback. MP4 is for other channels; email video support varies. Local exports provide files to insert manually and a separate share URL when selected, with no claim of sendable remote-image HTML. Static image downloads do not open the deck, start narration, record engagement, or notify the owner.
75
86
 
package/src/runtime.mjs CHANGED
@@ -8,7 +8,7 @@ import { fileURLToPath } from "node:url";
8
8
  import { ConvexHttpClient } from "convex/browser";
9
9
  import { makeFunctionReference } from "convex/server";
10
10
 
11
- export const VERSION = "0.1.10";
11
+ export const VERSION = "0.1.11";
12
12
  const UPLOAD_TIMEOUT_MS = 125_000;
13
13
 
14
14
  export const PROD = {