@seedprotocol/feed 0.4.18 → 0.4.21

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.
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Maps list-relation storage / wire names to schema-facing plural keys (e.g. `authorIdentityIds` → `authors`).
3
+ * Non-matching keys are returned unchanged.
4
+ */
5
+ export declare function publicListRelationPropertyKey(propertyKey: string): string;
6
+ /**
7
+ * Removes keys that are storage aliases for the same list relation as `publicKey`
8
+ * (e.g. delete `authorIdentityIds` when `authors` is the canonical field).
9
+ */
10
+ export declare function stripListRelationStorageAliasesForPublicKey(item: Record<string, unknown>, publicKey: string): void;
11
+ /** If value is a JSON array string from legacy feed assembly, parse to string[]. */
12
+ export declare function tryCoerceJsonStringArray(value: unknown): unknown;
13
+ //# sourceMappingURL=listRelationKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listRelationKey.d.ts","sourceRoot":"","sources":["../src/listRelationKey.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgBzE;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CACzD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,GAChB,IAAI,CAON;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYhE"}
@@ -0,0 +1,25 @@
1
+ export type EasPropertyMetadataForFeed = {
2
+ name: string;
3
+ value: string | string[];
4
+ type?: string;
5
+ };
6
+ export type ParseEasPropertyMetadataForFeedResult = {
7
+ ok: true;
8
+ metadata: EasPropertyMetadataForFeed;
9
+ } | {
10
+ ok: false;
11
+ reason: 'empty';
12
+ } | {
13
+ ok: false;
14
+ reason: 'shape';
15
+ } | {
16
+ ok: false;
17
+ reason: 'parse';
18
+ error: unknown;
19
+ };
20
+ /**
21
+ * Parse EAS property `decodedDataJson` for feed assembly.
22
+ * Matches SDK guards in syncDbWithEas / saveDataToDb (empty trim, parse, array + [0].value).
23
+ */
24
+ export declare function parseEasPropertyMetadataForFeed(decodedDataJson: string | undefined | null): ParseEasPropertyMetadataForFeedResult;
25
+ //# sourceMappingURL=parseEasPropertyMetadataForFeed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEasPropertyMetadataForFeed.d.ts","sourceRoot":"","sources":["../src/parseEasPropertyMetadataForFeed.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAC7C;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,0BAA0B,CAAA;CAAE,GAClD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACzC,qCAAqC,CAoBvC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Resolves RSS/Atom/JSON feed `description` and `content` from dynamic Seed item shapes.
3
+ * Html-type properties often use `body`; `html` / `content` are alternate sources.
4
+ */
5
+ /** Short text fields only (excerpt / summary) — not full HTML body keys. */
6
+ export declare const DESCRIPTION_KEYS: readonly ["summary", "Summary", "description", "Description", "text", "Text"];
7
+ /**
8
+ * Primary HTML / rich body keys first, then plain fallbacks (same as legacy `content` chain).
9
+ */
10
+ export declare const CONTENT_PRIMARY_KEYS: readonly ["html", "Html", "body", "Body", "content", "Content"];
11
+ export declare function pickFeedItemDescription(item: Record<string, unknown>): string;
12
+ export declare function pickFeedItemContent(item: Record<string, unknown>): string;
13
+ /**
14
+ * True when primary body keys or excerpt-style keys contain an embedded `data:image/...;base64,...` URI.
15
+ * Used by feed generation to omit oversized RSS entries by default.
16
+ */
17
+ export declare function feedItemRichTextContainsDataUriImage(item: Record<string, unknown>): boolean;
18
+ export declare function filterItemsByRichTextDataUriImagePolicy<T extends Record<string, unknown>>(items: readonly T[], richTextDataUriImages?: 'omit_items' | 'include_items'): T[];
19
+ //# sourceMappingURL=pickFeedItemRichText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickFeedItemRichText.d.ts","sourceRoot":"","sources":["../src/pickFeedItemRichText.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,+EAAgF,CAAA;AAE7G;;GAEG;AACH,eAAO,MAAM,oBAAoB,iEAAkE,CAAA;AAqDnG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAMzE;AA8BD;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAS3F;AAED,wBAAgB,uCAAuC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvF,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,qBAAqB,GAAE,YAAY,GAAG,eAA8B,GACnE,CAAC,EAAE,CAGL"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateRssXml.d.ts","sourceRoot":"","sources":["../../src/rss/generateRssXml.ts"],"names":[],"mappings":"AA+UA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAiE5D"}
1
+ {"version":3,"file":"generateRssXml.d.ts","sourceRoot":"","sources":["../../src/rss/generateRssXml.ts"],"names":[],"mappings":"AA+VA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAiE5D"}
package/dist/types.d.ts CHANGED
@@ -16,6 +16,11 @@ export interface TransformOptions {
16
16
  itemUrlBase?: string;
17
17
  /** Path for attestation links when itemUrlBase is set (default: attestation/view) */
18
18
  itemUrlPath?: string;
19
+ /**
20
+ * `omit_items` (default): drop feed entries whose rich-text fields contain `data:image/` URIs (large RSS payloads).
21
+ * `include_items`: keep those entries (opt-in).
22
+ */
23
+ richTextDataUriImages?: 'omit_items' | 'include_items';
19
24
  }
20
25
  export interface FeedConfig {
21
26
  title: string;
@@ -34,7 +39,19 @@ export interface GraphQLItem {
34
39
  id: string;
35
40
  title: string;
36
41
  summary?: string;
42
+ /** Full HTML body; often the same logical field as `body` for `dataType: 'Html'`. */
37
43
  html?: string;
44
+ Html?: string;
45
+ /** Common property name for `Html` fields (e.g. article `body`). */
46
+ body?: string;
47
+ Body?: string;
48
+ /** Alternate rich body / plain body string. */
49
+ content?: string;
50
+ Content?: string;
51
+ description?: string;
52
+ Description?: string;
53
+ text?: string;
54
+ Text?: string;
38
55
  createdAt?: string;
39
56
  updatedAt?: string;
40
57
  publishedAt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD;;;GAGG;AACH,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAG/E,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAC,CAAA;IACF,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;IACD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAA;KACnB,CAAA;IACD,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedprotocol/feed",
3
- "version": "0.4.18",
3
+ "version": "0.4.21",
4
4
  "description": "Feed generation (RSS, Atom, JSON) for Seed Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,12 +25,13 @@
25
25
  "prepublishOnly": "bun run build && node ../../scripts/sync-versions.js"
26
26
  },
27
27
  "dependencies": {
28
- "@seedprotocol/sdk": "0.4.18",
28
+ "@seedprotocol/sdk": "0.4.21",
29
29
  "express": "^5.2.1",
30
30
  "feedsmith": "^2.9.0",
31
31
  "graphql-request": "^7.3.5",
32
32
  "image-size": "^1.1.1",
33
33
  "pluralize": "^8.0.0",
34
+ "rss-parser": "^3.13.0",
34
35
  "xmlbuilder2": "^4.0.3"
35
36
  },
36
37
  "devDependencies": {