@seedprotocol/feed 0.4.13 → 0.4.15
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 +4 -0
- package/dist/cache/CacheManager.d.ts +3 -3
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/FileCache.d.ts +4 -4
- package/dist/cache/FileCache.d.ts.map +1 -1
- package/dist/cache/MemoryCache.d.ts +3 -3
- package/dist/cache/MemoryCache.d.ts.map +1 -1
- package/dist/cache/config.d.ts.map +1 -1
- package/dist/cache/types.d.ts +13 -0
- package/dist/cache/types.d.ts.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/getFeedItems.d.ts +5 -1
- package/dist/getFeedItems.d.ts.map +1 -1
- package/dist/index.d.ts +22 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +982 -717
- package/dist/index.js.map +1 -1
- package/dist/rss/generateRssXml.d.ts +9 -0
- package/dist/rss/generateRssXml.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## Configuration
|
|
4
4
|
|
|
5
|
+
### Revoked attestations
|
|
6
|
+
|
|
7
|
+
Revoked attestations are excluded from feed queries by default. Items that have been unpublished (`item.unpublish()`) will not appear in feeds or discovery.
|
|
8
|
+
|
|
5
9
|
### Caching (dev mode)
|
|
6
10
|
|
|
7
11
|
In development (`NODE_ENV=development`), feed caching is **disabled by default** so you always see fresh content. Set `CACHE_ENABLED=true` to enable caching in dev. See `packages/feed/src/cache/README.md` for full cache configuration.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MemoryCache } from './MemoryCache';
|
|
2
|
-
import type { CachedFeedData, CachedFeedContent, CacheConfig, CacheStats } from './types';
|
|
2
|
+
import type { CachedFeedData, CachedFeedContent, CacheConfig, CacheContentKeyOptions, CacheStats } from './types';
|
|
3
3
|
import type { GraphQLItem, ImageMetadata } from '../types';
|
|
4
4
|
import type { FeedFormat } from '../types';
|
|
5
5
|
/**
|
|
@@ -25,12 +25,12 @@ export declare class CacheManager {
|
|
|
25
25
|
* Get cached feed content for a schema and format
|
|
26
26
|
* Checks memory cache first, then file cache
|
|
27
27
|
*/
|
|
28
|
-
getFeedContent(schemaName: string, format: FeedFormat): Promise<CachedFeedContent | null>;
|
|
28
|
+
getFeedContent(schemaName: string, format: FeedFormat, contentKeyOptions?: CacheContentKeyOptions): Promise<CachedFeedContent | null>;
|
|
29
29
|
/**
|
|
30
30
|
* Set cached feed content for a schema and format
|
|
31
31
|
* Updates both memory and file cache
|
|
32
32
|
*/
|
|
33
|
-
setFeedContent(schemaName: string, format: FeedFormat, content: string, contentType: string): Promise<void>;
|
|
33
|
+
setFeedContent(schemaName: string, format: FeedFormat, content: string, contentType: string, contentKeyOptions?: CacheContentKeyOptions): Promise<void>;
|
|
34
34
|
/**
|
|
35
35
|
* Clear feed data cache for a schema
|
|
36
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAKX;gBAEU,MAAM,EAAE,WAAW;IAM/B;;;OAGG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA+BrE;;;OAGG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1E;;;OAGG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAKX;gBAEU,MAAM,EAAE,WAAW;IAM/B;;;OAGG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA+BrE;;;OAGG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1E;;;OAGG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,EAClB,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAwCpC;;;OAGG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;;OAGG;IACG,eAAe,CAAC,CAAC,EACrB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;IAIb;;;OAGG;IACH,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAkC9E;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,sBAAsB,EAAE,MAAM,GAAG,WAAW,EAAE;IAOnF;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAMhD;;OAEG;IACH,QAAQ,IAAI,UAAU,GAAG;QAAE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE;IAO7E;;;OAGG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA+B5E;;;OAGG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrF;;OAEG;IACH,UAAU,IAAI,IAAI;CAQnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CachedFeedData, CachedFeedContent, CacheConfig } from './types';
|
|
1
|
+
import type { CachedFeedData, CachedFeedContent, CacheConfig, CacheContentKeyOptions } from './types';
|
|
2
2
|
import type { ImageMetadata } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* File-based persistent cache implementation
|
|
@@ -38,11 +38,11 @@ export declare class FileCache {
|
|
|
38
38
|
/**
|
|
39
39
|
* Get cached feed content for a schema and format
|
|
40
40
|
*/
|
|
41
|
-
getFeedContent(schemaName: string, format: string): Promise<CachedFeedContent | null>;
|
|
41
|
+
getFeedContent(schemaName: string, format: string, contentKeyOptions?: CacheContentKeyOptions): Promise<CachedFeedContent | null>;
|
|
42
42
|
/**
|
|
43
43
|
* Set cached feed content for a schema and format
|
|
44
44
|
*/
|
|
45
|
-
setFeedContent(schemaName: string, format: string, content: CachedFeedContent): Promise<void>;
|
|
45
|
+
setFeedContent(schemaName: string, format: string, content: CachedFeedContent, contentKeyOptions?: CacheContentKeyOptions): Promise<void>;
|
|
46
46
|
/**
|
|
47
47
|
* Clear feed data cache for a schema
|
|
48
48
|
*/
|
|
@@ -50,7 +50,7 @@ export declare class FileCache {
|
|
|
50
50
|
/**
|
|
51
51
|
* Clear content cache for a schema and format
|
|
52
52
|
*/
|
|
53
|
-
clearFeedContent(schemaName: string, format: string): Promise<void>;
|
|
53
|
+
clearFeedContent(schemaName: string, format: string, contentKeyOptions?: CacheContentKeyOptions): Promise<void>;
|
|
54
54
|
/**
|
|
55
55
|
* Clear all content cache for a schema (all formats)
|
|
56
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileCache.d.ts","sourceRoot":"","sources":["../../src/cache/FileCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAuB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FileCache.d.ts","sourceRoot":"","sources":["../../src/cache/FileCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAuB,MAAM,SAAS,CAAC;AAE3H,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAS/B;;OAEG;YACW,cAAc;IAW5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;OAEG;YACW,sBAAsB;IAWpC;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0BrE;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1E;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA4BpC;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyB5E;;OAEG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrF;;OAEG;IACG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CachedFeedData, CachedFeedContent, CacheConfig } from './types';
|
|
1
|
+
import type { CachedFeedData, CachedFeedContent, CacheConfig, CacheContentKeyOptions } from './types';
|
|
2
2
|
import type { GraphQLItem, ImageMetadata } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* In-memory cache implementation with TTL support
|
|
@@ -21,11 +21,11 @@ export declare class MemoryCache {
|
|
|
21
21
|
/**
|
|
22
22
|
* Get cached feed content for a schema and format
|
|
23
23
|
*/
|
|
24
|
-
getFeedContent(schemaName: string, format: string): CachedFeedContent | null;
|
|
24
|
+
getFeedContent(schemaName: string, format: string, contentKeyOptions?: CacheContentKeyOptions): CachedFeedContent | null;
|
|
25
25
|
/**
|
|
26
26
|
* Set cached feed content for a schema and format
|
|
27
27
|
*/
|
|
28
|
-
setFeedContent(schemaName: string, format: string, content: string, contentType: string): void;
|
|
28
|
+
setFeedContent(schemaName: string, format: string, content: string, contentType: string, contentKeyOptions?: CacheContentKeyOptions, ttlOverride?: number): void;
|
|
29
29
|
/**
|
|
30
30
|
* Clear feed data cache for a schema
|
|
31
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryCache.d.ts","sourceRoot":"","sources":["../../src/cache/MemoryCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAuB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryCache.d.ts","sourceRoot":"","sources":["../../src/cache/MemoryCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAuB,MAAM,SAAS,CAAC;AAE3H,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG3D;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,WAAW;IAI/B;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAmBtD;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAiC3D;;OAEG;IACH,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,sBAAsB,GACzC,iBAAiB,GAAG,IAAI;IAiB3B;;OAEG;IACH,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,sBAAsB,EAC1C,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAmBP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU3C;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgB7D;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IActE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;;OAGG;IACG,eAAe,CAAC,CAAC,EACrB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;IA0Bb;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAIhD;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;KACrB;CAQF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cache/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,SAAS,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cache/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,SAAS,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAwE7C"}
|
package/dist/cache/types.d.ts
CHANGED
|
@@ -46,7 +46,20 @@ export interface CacheConfig {
|
|
|
46
46
|
backgroundRefresh: boolean;
|
|
47
47
|
refreshInterval: number;
|
|
48
48
|
imageMetadata?: ImageMetadataConfig;
|
|
49
|
+
pageTtl?: number;
|
|
50
|
+
archiveTtl?: number;
|
|
49
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Options for cache content key (pagination or archive)
|
|
54
|
+
*/
|
|
55
|
+
export interface CacheContentKeyOptions {
|
|
56
|
+
page?: number;
|
|
57
|
+
archive?: {
|
|
58
|
+
year: number;
|
|
59
|
+
month: number;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export declare function buildContentKey(schemaName: string, format: string, options?: CacheContentKeyOptions): string;
|
|
50
63
|
/**
|
|
51
64
|
* Cache statistics for monitoring
|
|
52
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAQR;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/config.d.ts
CHANGED
|
@@ -7,10 +7,14 @@
|
|
|
7
7
|
* - FEED_ITEM_URL_PATH: Path segment for attestation links (default: 'attestation/view').
|
|
8
8
|
* Only used when FEED_ITEM_URL_BASE is set.
|
|
9
9
|
* - FEED_SITE_URL: Site URL for fallback when FEED_ITEM_URL_BASE is unset (default: 'https://seedprotocol.io').
|
|
10
|
+
* - FEED_EXPAND_RELATIONS: When 'false', relation properties stay as UIDs. Default: true (expand to nested objects).
|
|
11
|
+
* - FEED_PAGE_SIZE: Items per page for paged feeds (default: 25).
|
|
10
12
|
*/
|
|
11
13
|
export declare function loadFeedConfig(): {
|
|
12
14
|
itemUrlBase: string;
|
|
13
15
|
itemUrlPath: string;
|
|
14
16
|
siteUrl: string;
|
|
17
|
+
expandRelations: boolean;
|
|
18
|
+
pageSize: number;
|
|
15
19
|
};
|
|
16
20
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAUA"}
|
package/dist/getFeedItems.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export declare const getFeedItemsBySchemaName: (schemaName: string
|
|
1
|
+
export declare const getFeedItemsBySchemaName: (schemaName: string, options?: {
|
|
2
|
+
limit?: number;
|
|
3
|
+
skip?: number;
|
|
4
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
5
|
+
export declare const getFeedItemsBySchemaNameForMonth: (schemaName: string, year: number, month: number) => Promise<Record<string, unknown>[]>;
|
|
2
6
|
//# sourceMappingURL=getFeedItems.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFeedItems.d.ts","sourceRoot":"","sources":["../src/getFeedItems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFeedItems.d.ts","sourceRoot":"","sources":["../src/getFeedItems.ts"],"names":[],"mappings":"AAsjBA,eAAO,MAAM,wBAAwB,GACnC,YAAY,MAAM,EAClB,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAOnC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,YAAY,MAAM,EAClB,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAmCnC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
export { getFeedItemsBySchemaName, getFeedItemsBySchemaNameForMonth } from './getFeedItems';
|
|
2
|
+
export { loadFeedConfig } from './config';
|
|
3
3
|
import type { FeedFormat, GraphQLItem } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Reset cache manager (useful for testing)
|
|
@@ -20,7 +20,17 @@ export declare const getClient: () => Promise<any>;
|
|
|
20
20
|
* This should be called when the app is quitting
|
|
21
21
|
*/
|
|
22
22
|
export declare const teardownSeedClient: () => Promise<void>;
|
|
23
|
-
export
|
|
23
|
+
export interface FeedPaginationOptions {
|
|
24
|
+
page: number;
|
|
25
|
+
pageSize: number;
|
|
26
|
+
hasNext: boolean;
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FeedArchiveLink {
|
|
30
|
+
rel: string;
|
|
31
|
+
href: string;
|
|
32
|
+
}
|
|
33
|
+
export declare const createFeed: (items: GraphQLItem[], schemaName: string, format: FeedFormat, cacheBust?: string, pagination?: FeedPaginationOptions, archiveLinks?: FeedArchiveLink[], isArchive?: boolean) => Promise<string>;
|
|
24
34
|
/**
|
|
25
35
|
* Main route handler for feed generation.
|
|
26
36
|
*
|
|
@@ -31,5 +41,13 @@ export declare const createFeed: (items: GraphQLItem[], schemaName: string, form
|
|
|
31
41
|
* - /identities/json → JSON feed of identities
|
|
32
42
|
* - /posts/rss?v=1234567890 → RSS feed with cache busting parameter
|
|
33
43
|
*/
|
|
34
|
-
export declare function handleFeedRequest(collectionSegment: string, formatSegment: string, ifNoneMatch?: string | null, cacheBust?: string): Promise<Response>;
|
|
44
|
+
export declare function handleFeedRequest(collectionSegment: string, formatSegment: string, ifNoneMatch?: string | null, cacheBust?: string, page?: number): Promise<Response>;
|
|
45
|
+
/**
|
|
46
|
+
* Route handler for monthly archive feeds (RFC 5005).
|
|
47
|
+
*
|
|
48
|
+
* URL Pattern: /:collection/archive/:year/:month/:format
|
|
49
|
+
* Examples:
|
|
50
|
+
* - /posts/archive/2024/02/rss → RSS feed of posts from February 2024
|
|
51
|
+
*/
|
|
52
|
+
export declare function handleArchiveFeedRequest(collectionSegment: string, year: number, month: number, formatSegment: string, ifNoneMatch?: string | null, cacheBust?: string): Promise<Response>;
|
|
35
53
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAA+C,MAAM,SAAS,CAAC;AAuBpG;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAa,OAAO,CAAC,IAAI,CAkCzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,GAAG,CAe7C,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAmBvD,CAAA;AAkLD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,UAAU,GACrB,OAAO,WAAW,EAAE,EACpB,YAAY,MAAM,EAClB,QAAQ,UAAU,EAClB,YAAY,MAAM,EAClB,aAAa,qBAAqB,EAClC,eAAe,eAAe,EAAE,EAChC,YAAY,OAAO,KAClB,OAAO,CAAC,MAAM,CAiWhB,CAAA;AA8BD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAyNnB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CA8HnB"}
|