@claudein.org/cli 0.1.19 → 0.1.28
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.js +29 -18
- package/package.json +2 -1
- package/skills/claudein/SKILL.md +22 -0
package/dist/index.js
CHANGED
|
@@ -9886,7 +9886,10 @@ var links = {
|
|
|
9886
9886
|
_: "/",
|
|
9887
9887
|
auth: {
|
|
9888
9888
|
google: `/auth/google`,
|
|
9889
|
-
linkedin: `/auth/linkedin
|
|
9889
|
+
linkedin: `/auth/linkedin`,
|
|
9890
|
+
facebook: `/auth/facebook`,
|
|
9891
|
+
instagram: `/auth/instagram`,
|
|
9892
|
+
youtube: `/auth/youtube`
|
|
9890
9893
|
},
|
|
9891
9894
|
close: `/close`,
|
|
9892
9895
|
guide: `/guide`,
|
|
@@ -24176,20 +24179,26 @@ var zod_default = exports_external;
|
|
|
24176
24179
|
// ../common/index.ts
|
|
24177
24180
|
var yml;
|
|
24178
24181
|
((yml) => {
|
|
24179
|
-
|
|
24180
|
-
type: zod_default.union([zod_default.literal("image"), zod_default.literal("video")]),
|
|
24181
|
-
src: zod_default.string(),
|
|
24182
|
+
const BasicMedia = zod_default.object({
|
|
24182
24183
|
title: zod_default.string().optional(),
|
|
24183
|
-
description: zod_default.string().optional()
|
|
24184
|
+
description: zod_default.string().optional(),
|
|
24185
|
+
src: zod_default.string()
|
|
24184
24186
|
});
|
|
24185
|
-
|
|
24187
|
+
yml.Image = BasicMedia.extend({
|
|
24188
|
+
type: zod_default.literal("image")
|
|
24189
|
+
});
|
|
24190
|
+
yml.Video = BasicMedia.extend({
|
|
24191
|
+
type: zod_default.literal("video")
|
|
24192
|
+
});
|
|
24193
|
+
yml.Media = zod_default.discriminatedUnion("type", [yml.Image, yml.Video]);
|
|
24194
|
+
const BasePost = zod_default.object({
|
|
24186
24195
|
created: zod_default.iso.date()
|
|
24187
24196
|
});
|
|
24188
|
-
yml.PostText =
|
|
24197
|
+
yml.PostText = BasePost.extend({
|
|
24189
24198
|
type: zod_default.literal("text"),
|
|
24190
24199
|
text: zod_default.string()
|
|
24191
24200
|
});
|
|
24192
|
-
yml.PostMedia =
|
|
24201
|
+
yml.PostMedia = BasePost.extend({
|
|
24193
24202
|
type: zod_default.literal("media"),
|
|
24194
24203
|
text: zod_default.string().optional(),
|
|
24195
24204
|
media: yml.Media
|
|
@@ -24199,12 +24208,10 @@ var yml;
|
|
|
24199
24208
|
})(yml ||= {});
|
|
24200
24209
|
var proto;
|
|
24201
24210
|
((proto) => {
|
|
24202
|
-
const
|
|
24203
|
-
|
|
24204
|
-
|
|
24205
|
-
const PostMedia = yml.PostMedia.extend({
|
|
24206
|
-
media: Media
|
|
24207
|
-
});
|
|
24211
|
+
const Image = yml.Image.extend({ base64: zod_default.string() });
|
|
24212
|
+
const Video = yml.Video.extend({ base64: zod_default.string() });
|
|
24213
|
+
const Media = zod_default.discriminatedUnion("type", [Image, Video]);
|
|
24214
|
+
const PostMedia = yml.PostMedia.extend({ media: Media });
|
|
24208
24215
|
proto.Post = zod_default.discriminatedUnion("type", [yml.PostText, PostMedia]);
|
|
24209
24216
|
proto.Payload = zod_default.object({
|
|
24210
24217
|
hash: zod_default.string(),
|
|
@@ -25621,8 +25628,6 @@ import crypto from "crypto";
|
|
|
25621
25628
|
import { watch } from "fs";
|
|
25622
25629
|
import { cp, mkdir, readdir as readdir2, readFile, writeFile } from "fs/promises";
|
|
25623
25630
|
import { createRequire as createRequire2 } from "module";
|
|
25624
|
-
import { homedir } from "os";
|
|
25625
|
-
import { dirname as dirname2, join as join2 } from "path";
|
|
25626
25631
|
|
|
25627
25632
|
// ../node_modules/.bun/nanostores@1.3.0/node_modules/nanostores/clean-stores/index.js
|
|
25628
25633
|
var clean = Symbol("clean");
|
|
@@ -26199,6 +26204,10 @@ defineLazyProperty(apps, "browser", () => "browser");
|
|
|
26199
26204
|
defineLazyProperty(apps, "browserPrivate", () => "browserPrivate");
|
|
26200
26205
|
var open_default = open;
|
|
26201
26206
|
|
|
26207
|
+
// src/index.ts
|
|
26208
|
+
import { homedir } from "os";
|
|
26209
|
+
import { dirname as dirname2, join as join2 } from "path";
|
|
26210
|
+
|
|
26202
26211
|
// ../node_modules/.bun/stable-hash@0.0.6/node_modules/stable-hash/dist/index.mjs
|
|
26203
26212
|
var o = new WeakMap;
|
|
26204
26213
|
var u = 0;
|
|
@@ -26226,6 +26235,9 @@ function stableHash(t) {
|
|
|
26226
26235
|
return c ? t.toJSON() : i === "symbol" ? t.toString() : i === "string" ? JSON.stringify(t) : "" + t;
|
|
26227
26236
|
}
|
|
26228
26237
|
|
|
26238
|
+
// src/index.ts
|
|
26239
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
26240
|
+
|
|
26229
26241
|
// ../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/index.js
|
|
26230
26242
|
var composer = require_composer();
|
|
26231
26243
|
var Document = require_Document();
|
|
@@ -26273,7 +26285,6 @@ var $visit = visit.visit;
|
|
|
26273
26285
|
var $visitAsync = visit.visitAsync;
|
|
26274
26286
|
|
|
26275
26287
|
// src/index.ts
|
|
26276
|
-
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
26277
26288
|
var { version: version2 } = createRequire2(import.meta.url)("../package.json");
|
|
26278
26289
|
var DOMAIN = process.env.CIN_ENV === "dev" ? "localhost:3000" : "claudein.org";
|
|
26279
26290
|
function hash2(post) {
|
|
@@ -26346,7 +26357,7 @@ var start = command("start").meta({
|
|
|
26346
26357
|
}
|
|
26347
26358
|
});
|
|
26348
26359
|
const protoPosts = await ps2ps(posts2);
|
|
26349
|
-
const payloads = protoPosts.map((post) => ({ hash: hash2(post), post })).sort((a, b) =>
|
|
26360
|
+
const payloads = protoPosts.map((post) => ({ hash: hash2(post), post })).sort((a, b) => b.post.created.localeCompare(a.post.created));
|
|
26350
26361
|
$payloads.set(payloads);
|
|
26351
26362
|
} catch (err) {
|
|
26352
26363
|
console.error("Failed to load posts:", err);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudein.org/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.28",
|
|
4
4
|
"description": "Post to LinkedIn from the command line",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@types/ws": "^8.18.1",
|
|
28
28
|
"@versecafe/zcli": "^0.1.2",
|
|
29
|
+
"image-size": "^2.0.2",
|
|
29
30
|
"nanostores": "^1.3.0",
|
|
30
31
|
"open": "^10.1.0",
|
|
31
32
|
"stable-hash": "^0.0.6",
|
package/skills/claudein/SKILL.md
CHANGED
|
@@ -36,3 +36,25 @@ When generating or sourcing images and videos (e.g. with Remotion), target Linke
|
|
|
36
36
|
**Videos:** MP4, H.264
|
|
37
37
|
|
|
38
38
|
Content outside the 1:1–4:5 range may be cropped or rejected by LinkedIn.
|
|
39
|
+
|
|
40
|
+
### Remotion
|
|
41
|
+
|
|
42
|
+
Set the composition to exactly the target resolution:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
<Composition width={1080} height={1080} ... /> // or height={1350} for 4:5
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Any SVG used inside a composition must have its `width`, `height`, and `viewBox` match the composition dimensions — do not rely on SVG auto-scaling:
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
<svg width={1080} height={1080} viewBox="0 0 1080 1080">...</svg>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Render with high quality settings:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx remotion render --codec h264 --crf 18 --pixel-format yuv420p
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Low CRF (≤18) means high quality. Do not use default CRF — it produces noticeably lower quality video.
|