@dxos/plugin-magazine 0.0.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.
- package/LICENSE +105 -0
- package/PLUGIN.mdl +653 -0
- package/dist/lib/neutral/FeedArticle-PEWCFFSP.mjs +90 -0
- package/dist/lib/neutral/FeedArticle-PEWCFFSP.mjs.map +7 -0
- package/dist/lib/neutral/FeedProperties-EIO7IZOA.mjs +97 -0
- package/dist/lib/neutral/FeedProperties-EIO7IZOA.mjs.map +7 -0
- package/dist/lib/neutral/MagazineArticle-DEUTR23F.mjs +325 -0
- package/dist/lib/neutral/MagazineArticle-DEUTR23F.mjs.map +7 -0
- package/dist/lib/neutral/MagazinePlugin.mjs +62 -0
- package/dist/lib/neutral/MagazinePlugin.mjs.map +7 -0
- package/dist/lib/neutral/MagazinePlugin.workerd.mjs +12 -0
- package/dist/lib/neutral/MagazinePlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/PostArticle-RERHXPXC.mjs +230 -0
- package/dist/lib/neutral/PostArticle-RERHXPXC.mjs.map +7 -0
- package/dist/lib/neutral/PostCard-VDGN7BBA.mjs +60 -0
- package/dist/lib/neutral/PostCard-VDGN7BBA.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-JDPRBVHL.mjs +121 -0
- package/dist/lib/neutral/app-graph-builder-JDPRBVHL.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +21 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3K4AQKBZ.mjs +12 -0
- package/dist/lib/neutral/chunk-3K4AQKBZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-AFPBWBTK.mjs +591 -0
- package/dist/lib/neutral/chunk-AFPBWBTK.mjs.map +7 -0
- package/dist/lib/neutral/chunk-APQRTYT3.mjs +57 -0
- package/dist/lib/neutral/chunk-APQRTYT3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GU725ZF4.mjs +11 -0
- package/dist/lib/neutral/chunk-GU725ZF4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-JFPR6OV4.mjs +60 -0
- package/dist/lib/neutral/chunk-JFPR6OV4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KTYLUOUG.mjs +36 -0
- package/dist/lib/neutral/chunk-KTYLUOUG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MBPX7RPI.mjs +14 -0
- package/dist/lib/neutral/chunk-MBPX7RPI.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MJ2AY2CK.mjs +8 -0
- package/dist/lib/neutral/chunk-MJ2AY2CK.mjs.map +7 -0
- package/dist/lib/neutral/chunk-OYCDRSWB.mjs +624 -0
- package/dist/lib/neutral/chunk-OYCDRSWB.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SAWKLGJU.mjs +28 -0
- package/dist/lib/neutral/chunk-SAWKLGJU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-XCNCK47N.mjs +15 -0
- package/dist/lib/neutral/chunk-XCNCK47N.mjs.map +7 -0
- package/dist/lib/neutral/clear-magazine-KNY4OWY4.mjs +59 -0
- package/dist/lib/neutral/clear-magazine-KNY4OWY4.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +338 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +17 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-SYZMRR4H.mjs +98 -0
- package/dist/lib/neutral/create-object-SYZMRR4H.mjs.map +7 -0
- package/dist/lib/neutral/curate-magazine-MA6OLK2X.mjs +184 -0
- package/dist/lib/neutral/curate-magazine-MA6OLK2X.mjs.map +7 -0
- package/dist/lib/neutral/fetch-article-content-CZO6D3QD.mjs +31 -0
- package/dist/lib/neutral/fetch-article-content-CZO6D3QD.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +18 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/load-post-content-XGL6VFF6.mjs +65 -0
- package/dist/lib/neutral/load-post-content-XGL6VFF6.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/navigation-resolver-IN4OMCDR.mjs +18 -0
- package/dist/lib/neutral/navigation-resolver-IN4OMCDR.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-JE3743BU.mjs +8 -0
- package/dist/lib/neutral/operation-handler-JE3743BU.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/plugin.workerd.mjs +16 -0
- package/dist/lib/neutral/plugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-TZESAMG2.mjs +60 -0
- package/dist/lib/neutral/react-surface-TZESAMG2.mjs.map +7 -0
- package/dist/lib/neutral/routine-templates-A2XTJOZO.mjs +52 -0
- package/dist/lib/neutral/routine-templates-A2XTJOZO.mjs.map +7 -0
- package/dist/lib/neutral/skill-definition-3KLMUEC5.mjs +8 -0
- package/dist/lib/neutral/skill-definition-3KLMUEC5.mjs.map +7 -0
- package/dist/lib/neutral/skills/index.mjs +46 -0
- package/dist/lib/neutral/skills/index.mjs.map +7 -0
- package/dist/lib/neutral/sync-feed-UZX2XHSQ.mjs +99 -0
- package/dist/lib/neutral/sync-feed-UZX2XHSQ.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +81 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +14 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/MagazinePlugin.d.ts +4 -0
- package/dist/types/src/MagazinePlugin.d.ts.map +1 -0
- package/dist/types/src/MagazinePlugin.test.d.ts +2 -0
- package/dist/types/src/MagazinePlugin.test.d.ts.map +1 -0
- package/dist/types/src/MagazinePlugin.workerd.d.ts +4 -0
- package/dist/types/src/MagazinePlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/atoms/atoms.test.d.ts +2 -0
- package/dist/types/src/atoms/atoms.test.d.ts.map +1 -0
- package/dist/types/src/atoms/index.d.ts +7 -0
- package/dist/types/src/atoms/index.d.ts.map +1 -0
- package/dist/types/src/atoms/magazine-posts.d.ts +16 -0
- package/dist/types/src/atoms/magazine-posts.d.ts.map +1 -0
- package/dist/types/src/atoms/post-content.d.ts +7 -0
- package/dist/types/src/atoms/post-content.d.ts.map +1 -0
- package/dist/types/src/atoms/post-curation.d.ts +16 -0
- package/dist/types/src/atoms/post-curation.d.ts.map +1 -0
- package/dist/types/src/atoms/post-display.d.ts +22 -0
- package/dist/types/src/atoms/post-display.d.ts.map +1 -0
- package/dist/types/src/atoms/post-read.d.ts +14 -0
- package/dist/types/src/atoms/post-read.d.ts.map +1 -0
- package/dist/types/src/atoms/post-tags.d.ts +16 -0
- package/dist/types/src/atoms/post-tags.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +5 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +5 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +10 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/navigation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/routine-templates.d.ts +5 -0
- package/dist/types/src/capabilities/routine-templates.d.ts.map +1 -0
- package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
- package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
- package/dist/types/src/components/PostContent/PostContent.d.ts +30 -0
- package/dist/types/src/components/PostContent/PostContent.d.ts.map +1 -0
- package/dist/types/src/components/PostContent/PostContent.test.d.ts +2 -0
- package/dist/types/src/components/PostContent/PostContent.test.d.ts.map +1 -0
- package/dist/types/src/components/PostContent/index.d.ts +2 -0
- package/dist/types/src/components/PostContent/index.d.ts.map +1 -0
- package/dist/types/src/components/PostStack/PostStack.d.ts +17 -0
- package/dist/types/src/components/PostStack/PostStack.d.ts.map +1 -0
- package/dist/types/src/components/PostStack/PostStack.stories.d.ts +10 -0
- package/dist/types/src/components/PostStack/PostStack.stories.d.ts.map +1 -0
- package/dist/types/src/components/PostStack/index.d.ts +2 -0
- package/dist/types/src/components/PostStack/index.d.ts.map +1 -0
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.d.ts +23 -0
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.d.ts.map +1 -0
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.stories.d.ts +8 -0
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.stories.d.ts.map +1 -0
- package/dist/types/src/components/SubscriptionStack/index.d.ts +2 -0
- package/dist/types/src/components/SubscriptionStack/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +4 -0
- package/dist/types/src/components/index.d.ts.map +1 -0
- package/dist/types/src/containers/FeedArticle/FeedArticle.d.ts +6 -0
- package/dist/types/src/containers/FeedArticle/FeedArticle.d.ts.map +1 -0
- package/dist/types/src/containers/FeedArticle/FeedArticle.stories.d.ts +12 -0
- package/dist/types/src/containers/FeedArticle/FeedArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/FeedArticle/FeedToolbar.d.ts +10 -0
- package/dist/types/src/containers/FeedArticle/FeedToolbar.d.ts.map +1 -0
- package/dist/types/src/containers/FeedArticle/index.d.ts +2 -0
- package/dist/types/src/containers/FeedArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/FeedProperties/FeedProperties.d.ts +6 -0
- package/dist/types/src/containers/FeedProperties/FeedProperties.d.ts.map +1 -0
- package/dist/types/src/containers/FeedProperties/index.d.ts +2 -0
- package/dist/types/src/containers/FeedProperties/index.d.ts.map +1 -0
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.d.ts +6 -0
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.d.ts.map +1 -0
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.stories.d.ts +9 -0
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MagazineArticle/MagazineTile.d.ts +11 -0
- package/dist/types/src/containers/MagazineArticle/MagazineTile.d.ts.map +1 -0
- package/dist/types/src/containers/MagazineArticle/index.d.ts +2 -0
- package/dist/types/src/containers/MagazineArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/MagazineArticle/useToolbar.d.ts +18 -0
- package/dist/types/src/containers/MagazineArticle/useToolbar.d.ts.map +1 -0
- package/dist/types/src/containers/PostArticle/PostArticle.d.ts +6 -0
- package/dist/types/src/containers/PostArticle/PostArticle.d.ts.map +1 -0
- package/dist/types/src/containers/PostArticle/PostArticle.stories.d.ts +8 -0
- package/dist/types/src/containers/PostArticle/PostArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/PostArticle/PostToolbar.d.ts +19 -0
- package/dist/types/src/containers/PostArticle/PostToolbar.d.ts.map +1 -0
- package/dist/types/src/containers/PostArticle/index.d.ts +2 -0
- package/dist/types/src/containers/PostArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/PostCard/PostCard.d.ts +11 -0
- package/dist/types/src/containers/PostCard/PostCard.d.ts.map +1 -0
- package/dist/types/src/containers/PostCard/index.d.ts +2 -0
- package/dist/types/src/containers/PostCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.d.ts +5 -0
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.d.ts.map +1 -0
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.stories.d.ts +8 -0
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/SubscriptionsArticle/index.d.ts +2 -0
- package/dist/types/src/containers/SubscriptionsArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +7 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +33 -0
- package/dist/types/src/meta.d.ts.map +1 -0
- package/dist/types/src/operations/clear-magazine.d.ts +10 -0
- package/dist/types/src/operations/clear-magazine.d.ts.map +1 -0
- package/dist/types/src/operations/curate-magazine.d.ts +25 -0
- package/dist/types/src/operations/curate-magazine.d.ts.map +1 -0
- package/dist/types/src/operations/curate-magazine.skill.test.d.ts +2 -0
- package/dist/types/src/operations/curate-magazine.skill.test.d.ts.map +1 -0
- package/dist/types/src/operations/curate-magazine.test.d.ts +2 -0
- package/dist/types/src/operations/curate-magazine.test.d.ts.map +1 -0
- package/dist/types/src/operations/extraction/article.d.ts +37 -0
- package/dist/types/src/operations/extraction/article.d.ts.map +1 -0
- package/dist/types/src/operations/extraction/article.test.d.ts +2 -0
- package/dist/types/src/operations/extraction/article.test.d.ts.map +1 -0
- package/dist/types/src/operations/extraction/index.d.ts +2 -0
- package/dist/types/src/operations/extraction/index.d.ts.map +1 -0
- package/dist/types/src/operations/fetch-article-content.d.ts +5 -0
- package/dist/types/src/operations/fetch-article-content.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/load-post-content.d.ts +8 -0
- package/dist/types/src/operations/load-post-content.d.ts.map +1 -0
- package/dist/types/src/operations/sources/article.d.ts +24 -0
- package/dist/types/src/operations/sources/article.d.ts.map +1 -0
- package/dist/types/src/operations/sources/cors.d.ts +12 -0
- package/dist/types/src/operations/sources/cors.d.ts.map +1 -0
- package/dist/types/src/operations/sources/feed-fetcher.d.ts +22 -0
- package/dist/types/src/operations/sources/feed-fetcher.d.ts.map +1 -0
- package/dist/types/src/operations/sources/feed-fetcher.test.d.ts +2 -0
- package/dist/types/src/operations/sources/feed-fetcher.test.d.ts.map +1 -0
- package/dist/types/src/operations/sources/http.d.ts +9 -0
- package/dist/types/src/operations/sources/http.d.ts.map +1 -0
- package/dist/types/src/operations/sources/index.d.ts +6 -0
- package/dist/types/src/operations/sources/index.d.ts.map +1 -0
- package/dist/types/src/operations/sources/rss.d.ts +4 -0
- package/dist/types/src/operations/sources/rss.d.ts.map +1 -0
- package/dist/types/src/operations/sources/rss.test.d.ts +2 -0
- package/dist/types/src/operations/sources/rss.test.d.ts.map +1 -0
- package/dist/types/src/operations/sources/standard-site.d.ts +33 -0
- package/dist/types/src/operations/sources/standard-site.d.ts.map +1 -0
- package/dist/types/src/operations/sync-feed.d.ts +5 -0
- package/dist/types/src/operations/sync-feed.d.ts.map +1 -0
- package/dist/types/src/operations/sync-feed.test.d.ts +2 -0
- package/dist/types/src/operations/sync-feed.test.d.ts.map +1 -0
- package/dist/types/src/operations/util.d.ts +25 -0
- package/dist/types/src/operations/util.d.ts.map +1 -0
- package/dist/types/src/operations/util.test.d.ts +2 -0
- package/dist/types/src/operations/util.test.d.ts.map +1 -0
- package/dist/types/src/paths.d.ts +3 -0
- package/dist/types/src/paths.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/plugin.workerd.d.ts +3 -0
- package/dist/types/src/plugin.workerd.d.ts.map +1 -0
- package/dist/types/src/skills/index.d.ts +2 -0
- package/dist/types/src/skills/index.d.ts.map +1 -0
- package/dist/types/src/skills/magazine-skill.d.ts +4 -0
- package/dist/types/src/skills/magazine-skill.d.ts.map +1 -0
- package/dist/types/src/stories/ArticleExtractor.stories.d.ts +267 -0
- package/dist/types/src/stories/ArticleExtractor.stories.d.ts.map +1 -0
- package/dist/types/src/stories/MagazineCurate.stories.d.ts +32 -0
- package/dist/types/src/stories/MagazineCurate.stories.d.ts.map +1 -0
- package/dist/types/src/stories/theregister-fixture.test.d.ts +2 -0
- package/dist/types/src/stories/theregister-fixture.test.d.ts.map +1 -0
- package/dist/types/src/templates/magazine-curation.d.ts +7 -0
- package/dist/types/src/templates/magazine-curation.d.ts.map +1 -0
- package/dist/types/src/testing/builder.d.ts +28 -0
- package/dist/types/src/testing/builder.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +247 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/types/CreateSubscription.d.ts +29 -0
- package/dist/types/src/types/CreateSubscription.d.ts.map +1 -0
- package/dist/types/src/types/FeedOperation.d.ts +52 -0
- package/dist/types/src/types/FeedOperation.d.ts.map +1 -0
- package/dist/types/src/types/Magazine.d.ts +87 -0
- package/dist/types/src/types/Magazine.d.ts.map +1 -0
- package/dist/types/src/types/Magazine.test.d.ts +2 -0
- package/dist/types/src/types/Magazine.test.d.ts.map +1 -0
- package/dist/types/src/types/Subscription.d.ts +144 -0
- package/dist/types/src/types/Subscription.d.ts.map +1 -0
- package/dist/types/src/types/Subscription.test.d.ts +2 -0
- package/dist/types/src/types/Subscription.test.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +5 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/util/date.d.ts +8 -0
- package/dist/types/src/util/date.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +4 -0
- package/dist/types/src/util/index.d.ts.map +1 -0
- package/dist/types/src/util/post-content.d.ts +14 -0
- package/dist/types/src/util/post-content.d.ts.map +1 -0
- package/dist/types/src/util/text.d.ts +18 -0
- package/dist/types/src/util/text.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dx.config.ts +48 -0
- package/package.json +164 -0
- package/src/MagazinePlugin.test.ts +36 -0
- package/src/MagazinePlugin.tsx +61 -0
- package/src/MagazinePlugin.workerd.ts +31 -0
- package/src/atoms/atoms.test.ts +323 -0
- package/src/atoms/index.ts +10 -0
- package/src/atoms/magazine-posts.ts +70 -0
- package/src/atoms/post-content.ts +34 -0
- package/src/atoms/post-curation.ts +36 -0
- package/src/atoms/post-display.ts +59 -0
- package/src/atoms/post-read.ts +40 -0
- package/src/atoms/post-tags.ts +66 -0
- package/src/capabilities/app-graph-builder.ts +125 -0
- package/src/capabilities/create-object.ts +127 -0
- package/src/capabilities/index.ts +17 -0
- package/src/capabilities/navigation-resolver.ts +21 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +53 -0
- package/src/capabilities/routine-templates.ts +16 -0
- package/src/capabilities/skill-definition.ts +14 -0
- package/src/components/PostContent/PostContent.test.ts +81 -0
- package/src/components/PostContent/PostContent.tsx +111 -0
- package/src/components/PostContent/index.ts +5 -0
- package/src/components/PostStack/PostStack.stories.tsx +39 -0
- package/src/components/PostStack/PostStack.tsx +151 -0
- package/src/components/PostStack/index.ts +5 -0
- package/src/components/SubscriptionStack/SubscriptionStack.stories.tsx +52 -0
- package/src/components/SubscriptionStack/SubscriptionStack.tsx +161 -0
- package/src/components/SubscriptionStack/index.ts +5 -0
- package/src/components/index.ts +7 -0
- package/src/containers/FeedArticle/FeedArticle.stories.tsx +102 -0
- package/src/containers/FeedArticle/FeedArticle.tsx +68 -0
- package/src/containers/FeedArticle/FeedToolbar.tsx +47 -0
- package/src/containers/FeedArticle/index.ts +5 -0
- package/src/containers/FeedProperties/FeedProperties.tsx +107 -0
- package/src/containers/FeedProperties/index.ts +5 -0
- package/src/containers/MagazineArticle/MagazineArticle.stories.tsx +244 -0
- package/src/containers/MagazineArticle/MagazineArticle.tsx +146 -0
- package/src/containers/MagazineArticle/MagazineTile.tsx +88 -0
- package/src/containers/MagazineArticle/index.ts +5 -0
- package/src/containers/MagazineArticle/useToolbar.tsx +145 -0
- package/src/containers/PostArticle/PostArticle.stories.tsx +117 -0
- package/src/containers/PostArticle/PostArticle.tsx +140 -0
- package/src/containers/PostArticle/PostToolbar.tsx +120 -0
- package/src/containers/PostArticle/index.ts +5 -0
- package/src/containers/PostCard/PostCard.tsx +70 -0
- package/src/containers/PostCard/index.ts +5 -0
- package/src/containers/SubscriptionsArticle/SubscriptionsArticle.stories.tsx +80 -0
- package/src/containers/SubscriptionsArticle/SubscriptionsArticle.tsx +99 -0
- package/src/containers/SubscriptionsArticle/index.ts +5 -0
- package/src/containers/index.ts +11 -0
- package/src/index.ts +6 -0
- package/src/meta.ts +9 -0
- package/src/operations/clear-magazine.ts +83 -0
- package/src/operations/curate-magazine.skill.conversations.json +1 -0
- package/src/operations/curate-magazine.skill.test.ts +167 -0
- package/src/operations/curate-magazine.test.ts +91 -0
- package/src/operations/curate-magazine.ts +178 -0
- package/src/operations/extraction/article.test.ts +154 -0
- package/src/operations/extraction/article.ts +270 -0
- package/src/operations/extraction/index.ts +5 -0
- package/src/operations/fetch-article-content.ts +27 -0
- package/src/operations/index.ts +13 -0
- package/src/operations/load-post-content.ts +76 -0
- package/src/operations/sources/article.ts +122 -0
- package/src/operations/sources/cors.ts +19 -0
- package/src/operations/sources/feed-fetcher.test.ts +200 -0
- package/src/operations/sources/feed-fetcher.ts +26 -0
- package/src/operations/sources/http.ts +42 -0
- package/src/operations/sources/index.ts +9 -0
- package/src/operations/sources/rss.test.ts +201 -0
- package/src/operations/sources/rss.ts +138 -0
- package/src/operations/sources/standard-site.ts +381 -0
- package/src/operations/sources/testing/feed.xml +477 -0
- package/src/operations/sync-feed.test.ts +146 -0
- package/src/operations/sync-feed.ts +140 -0
- package/src/operations/util.test.ts +67 -0
- package/src/operations/util.ts +65 -0
- package/src/paths.ts +14 -0
- package/src/plugin.ts +11 -0
- package/src/plugin.workerd.ts +6 -0
- package/src/skills/index.ts +5 -0
- package/src/skills/magazine-skill.ts +45 -0
- package/src/stories/ArticleExtractor.stories.tsx +204 -0
- package/src/stories/MagazineCurate.stories.tsx +217 -0
- package/src/stories/fixtures/theregister-ai.xml +45 -0
- package/src/stories/theregister-fixture.test.ts +35 -0
- package/src/templates/magazine-curation.ts +47 -0
- package/src/testing/builder.ts +77 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +81 -0
- package/src/types/CreateSubscription.ts +61 -0
- package/src/types/FeedOperation.ts +134 -0
- package/src/types/Magazine.test.ts +69 -0
- package/src/types/Magazine.ts +214 -0
- package/src/types/Subscription.test.ts +171 -0
- package/src/types/Subscription.ts +366 -0
- package/src/types/index.ts +8 -0
- package/src/util/date.ts +27 -0
- package/src/util/index.ts +7 -0
- package/src/util/post-content.ts +19 -0
- package/src/util/text.ts +98 -0
- package/src/vite-env.d.ts +10 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type FetchArticleResult = {
|
|
2
|
+
/** Plain-text body extracted from the article HTML. */
|
|
3
|
+
text: string;
|
|
4
|
+
/** Image URLs found on the page (og:image first, then <img src=...>). */
|
|
5
|
+
imageUrls: string[];
|
|
6
|
+
};
|
|
7
|
+
export type FetchArticleOptions = {
|
|
8
|
+
/**
|
|
9
|
+
* URL prefix for a server-side fetch proxy used to bypass browser CORS.
|
|
10
|
+
* The target URL is appended (URL-encoded). E.g. `'/api/rss?url='`.
|
|
11
|
+
* When omitted, the article is fetched directly.
|
|
12
|
+
*/
|
|
13
|
+
corsProxy?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Fetches a post's article page over HTTP and returns extracted plain text
|
|
17
|
+
* plus any image URLs found. Applies protocol validation, a fetch timeout,
|
|
18
|
+
* a Content-Length rejection, and a streamed byte cap.
|
|
19
|
+
*
|
|
20
|
+
* Wraps the original error as `cause` so callers can distinguish
|
|
21
|
+
* AbortError (timeout) from network/fetch failures.
|
|
22
|
+
*/
|
|
23
|
+
export declare const fetchArticle: (link: string, options?: FetchArticleOptions) => Promise<FetchArticleResult>;
|
|
24
|
+
//# sourceMappingURL=article.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/article.ts"],"names":[],"mappings":"AAqEA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,SAAgB,MAAM,YAAW,mBAAmB,KAAQ,OAAO,CAAC,kBAAkB,CA4B9G,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-origin fetch helpers. Feed/article URLs are arbitrary third-party origins, so in the browser
|
|
3
|
+
* they must be routed through the dev/edge RSS proxy; server-side (no `window`) they're fetched
|
|
4
|
+
* directly.
|
|
5
|
+
*/
|
|
6
|
+
/** Browser proxy path; the target URL is appended URL-encoded. */
|
|
7
|
+
export declare const CORS_PROXY = "/api/rss?url=";
|
|
8
|
+
/** The proxy to use in the current environment: the browser proxy, or undefined server-side. */
|
|
9
|
+
export declare const browserCorsProxy: () => string | undefined;
|
|
10
|
+
/** Wraps `url` with `proxy` (URL-encoded) when a proxy is set, else returns `url` unchanged. */
|
|
11
|
+
export declare const applyCorsProxy: (url: string, proxy?: string) => string;
|
|
12
|
+
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/cors.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,kEAAkE;AAClE,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAE1C,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,QAAO,MAAM,GAAG,SAAqE,CAAC;AAEnH,gGAAgG;AAChG,eAAO,MAAM,cAAc,QAAS,MAAM,UAAU,MAAM,KAAG,MACT,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type * as Effect from 'effect/Effect';
|
|
2
|
+
import { type Subscription } from '#types';
|
|
3
|
+
export type FetchOptions = {
|
|
4
|
+
corsProxy?: string;
|
|
5
|
+
};
|
|
6
|
+
export type FetchResult = {
|
|
7
|
+
feed: Subscription.Subscription;
|
|
8
|
+
posts: Subscription.Post[];
|
|
9
|
+
};
|
|
10
|
+
declare const FeedFetchError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
11
|
+
readonly _tag: "FeedFetchError";
|
|
12
|
+
} & Readonly<A>;
|
|
13
|
+
/** Failure fetching or decoding a feed (network error, non-2xx response, or malformed body). */
|
|
14
|
+
export declare class FeedFetchError extends FeedFetchError_base<{
|
|
15
|
+
message: string;
|
|
16
|
+
cause?: unknown;
|
|
17
|
+
}> {
|
|
18
|
+
}
|
|
19
|
+
/** Generic feed fetcher — protocol-specific implementations return normalized Subscription objects. */
|
|
20
|
+
export type FeedFetcher = (url: string, options?: FetchOptions) => Effect.Effect<FetchResult, FeedFetchError>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=feed-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/feed-fetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;CAC5B,CAAC;;;;AAEF,gGAAgG;AAChG,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;CAAG;AAEL,uGAAuG;AACvG,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-fetcher.test.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/feed-fetcher.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as HttpClient from '@effect/platform/HttpClient';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import type * as Schema from 'effect/Schema';
|
|
4
|
+
import { FeedFetchError } from './feed-fetcher';
|
|
5
|
+
/** GETs a URL (through the optional CORS proxy) and decodes the JSON body against `schema`. */
|
|
6
|
+
export declare const getJson: <A, I>(schema: Schema.Schema<A, I>, url: string, proxy?: string) => Effect.Effect<A, FeedFetchError, HttpClient.HttpClient>;
|
|
7
|
+
/** GETs a URL (through the optional CORS proxy) and returns the response body as text. */
|
|
8
|
+
export declare const getText: (url: string, proxy?: string) => Effect.Effect<string, FeedFetchError, HttpClient.HttpClient>;
|
|
9
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAG1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,+FAA+F;AAC/F,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,UAClB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OACtB,MAAM,UACH,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,CAQtD,CAAC;AAEJ,0FAA0F;AAC1F,eAAO,MAAM,OAAO,QAAS,MAAM,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,CAQ9G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rss.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/rss.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,gBAAgB,CAAC;AAuDpF,yEAAyE;AACzE,eAAO,MAAM,QAAQ,EAAE,WAOyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rss.test.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/rss.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import { type FeedFetcher, FeedFetchError, type FetchOptions } from './feed-fetcher';
|
|
3
|
+
/** A publication a handle publishes under, keyed by its Standard.site `site` reference. */
|
|
4
|
+
export type Publication = {
|
|
5
|
+
/** The document `site` reference (`at://…` URI or `https://…` URL); the stable selection key. */
|
|
6
|
+
site: string;
|
|
7
|
+
/** Canonical site URL (e.g. `https://dxos.org`), trailing slash stripped. */
|
|
8
|
+
url?: string;
|
|
9
|
+
/** Publication display name. */
|
|
10
|
+
name?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Extracts an atproto handle or DID from a URL or raw identifier.
|
|
14
|
+
* Supports: bare handles (`dxos.org`), `@handle`, `did:plc:…`/`did:web:…`, or a
|
|
15
|
+
* `https://bsky.app/profile/{actor}` URL.
|
|
16
|
+
*/
|
|
17
|
+
export declare const parseStandardSiteActor: (url: string) => string;
|
|
18
|
+
/** Lists the publications a handle publishes under (deduped by `site`), for publication selection. */
|
|
19
|
+
export declare const listStandardSitePublications: (actorOrUrl: string, options?: FetchOptions) => Effect.Effect<Publication[], FeedFetchError>;
|
|
20
|
+
/** A handle suggestion returned by typeahead search. */
|
|
21
|
+
export type HandleSuggestion = {
|
|
22
|
+
handle: string;
|
|
23
|
+
displayName?: string;
|
|
24
|
+
};
|
|
25
|
+
/** Searches atproto handles by prefix (typeahead), for combobox suggestions; empty on blank/failed query. */
|
|
26
|
+
export declare const searchStandardSiteHandles: (query: string, options?: FetchOptions) => Effect.Effect<HandleSuggestion[], never>;
|
|
27
|
+
/**
|
|
28
|
+
* Fetches a Standard.site feed. `url` is the publication's `site` reference — either an `at://` URI
|
|
29
|
+
* (DID extracted directly) or an `https://` URL (DID resolved via `/.well-known/atproto-did`). In both
|
|
30
|
+
* cases, all documents in the author's repo filtered to that publication are fetched.
|
|
31
|
+
*/
|
|
32
|
+
export declare const fetchStandardSite: FeedFetcher;
|
|
33
|
+
//# sourceMappingURL=standard-site.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-site.d.ts","sourceRoot":"","sources":["../../../../../src/operations/sources/standard-site.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA6BrF,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG;IACxB,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,MAOpD,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,4BAA4B,eAC3B,MAAM,YACR,YAAY,KACrB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,CAaE,CAAC;AAEjD,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,6GAA6G;AAC7G,eAAO,MAAM,yBAAyB,UAC7B,MAAM,YACH,YAAY,KACrB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,CASnC,CAAC;AAER;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAgDgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-feed.d.ts","sourceRoot":"","sources":["../../../../src/operations/sync-feed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAAE,aAAa,EAAgB,MAAM,UAAU,CAAC;AAiBvD,QAAA,MAAM,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,aAAa,CAAC,QAAQ,CA8GjE,CAAC;eAEa,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-feed.test.d.ts","sourceRoot":"","sources":["../../../../src/operations/sync-feed.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import { Database } from '@dxos/echo';
|
|
3
|
+
import { type Magazine, Subscription } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the Magazine's referenced feeds and the Posts in each feed's backing
|
|
6
|
+
* ECHO queue, filtering out Posts already curated into `magazine.posts` (and cross-feed duplicates).
|
|
7
|
+
*/
|
|
8
|
+
export declare const collectCandidates: (magazine: Magazine.Magazine) => Effect.Effect<{
|
|
9
|
+
post: Subscription.Post;
|
|
10
|
+
feed: Subscription.Subscription;
|
|
11
|
+
}[], import("@dxos/echo/Err").EntityNotFoundError, Database.Service>;
|
|
12
|
+
/**
|
|
13
|
+
* Partitions posts into those to keep and those to drop, given a maximum
|
|
14
|
+
* non-starred retention bound. Starred posts are always kept; the remaining
|
|
15
|
+
* non-starred posts are sorted newest-first by `published` and the top
|
|
16
|
+
* `keep` retained.
|
|
17
|
+
*
|
|
18
|
+
* `isStarred` is injectable; callers with a starred-tag uri pass a predicate backed by it
|
|
19
|
+
* (defaults to treating nothing as starred).
|
|
20
|
+
*/
|
|
21
|
+
export declare const partitionByKeepBound: <T extends Subscription.Post>(posts: readonly T[], keep: number, isStarred?: (post: T) => boolean) => {
|
|
22
|
+
kept: T[];
|
|
23
|
+
dropped: T[];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/operations/util.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,KAAK,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGvD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAAc,QAAQ,CAAC,QAAQ;UAGzB,YAAY,CAAC,IAAI;UAAQ,YAAY,CAAC,YAAY;oEAiBlF,CAAC;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,YAAY,CAAC,IAAI,SACvD,SAAS,CAAC,EAAE,QACb,MAAM,cACD,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,KAC9B;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,EAAE,CAAA;CAc3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.test.d.ts","sourceRoot":"","sources":["../../../../src/operations/util.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/paths.ts"],"names":[],"mappings":"AAQA,QAAA,MAAwB,gBAAgB,+BAAiB,eAAe,+CAGvE,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,eAAO,MAAM,cAAc,4BAA6C,CAAC;AAEzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.workerd.d.ts","sourceRoot":"","sources":["../../../src/plugin.workerd.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skills/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magazine-skill.d.ts","sourceRoot":"","sources":["../../../../src/skills/magazine-skill.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAY,MAAM,eAAe,CAAC;AAmChD,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,UAGlB,CAAC;eAEa,KAAK"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
render: () => React.JSX.Element;
|
|
6
|
+
decorators: import("@storybook/react").Decorator[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
translations: [{
|
|
10
|
+
readonly 'en-US': {
|
|
11
|
+
readonly "@dxos/react-ui-form": {
|
|
12
|
+
readonly 'ref-editor.placeholder': "Type '@' to add a reference, or enter a value";
|
|
13
|
+
readonly 'ref-editor-auto.placeholder': 'Search by name, or enter a value';
|
|
14
|
+
readonly 'fields.label': 'Fields';
|
|
15
|
+
readonly 'hidden-fields.label': 'Hidden Fields';
|
|
16
|
+
readonly 'empty-readonly-ref-field.label': '(none)';
|
|
17
|
+
readonly 'field-property.label': 'Property';
|
|
18
|
+
readonly 'field-property.placeholder': 'Property name';
|
|
19
|
+
readonly 'field-format.label': 'Type';
|
|
20
|
+
readonly 'field-path.label': 'Field path';
|
|
21
|
+
readonly 'remove-item.button': 'Delete item';
|
|
22
|
+
readonly 'add-item.button': 'Add item';
|
|
23
|
+
readonly 'add-property-button.label': 'Add property';
|
|
24
|
+
readonly 'boolean-input-true.value': 'Yes';
|
|
25
|
+
readonly 'boolean-input-false.value': 'No';
|
|
26
|
+
readonly 'show-field.label': 'Show field';
|
|
27
|
+
readonly 'hide-field.label': 'Hide field';
|
|
28
|
+
readonly 'expand-fields.label': 'Expand';
|
|
29
|
+
readonly 'collapse-fields.label': 'Collapse';
|
|
30
|
+
readonly 'delete-field.label': 'Delete field';
|
|
31
|
+
readonly 'create-option.label': 'Create';
|
|
32
|
+
readonly 'add-tag.label': 'Add tag';
|
|
33
|
+
readonly 'ref-field-combobox-input.placeholder': 'Search\u2026';
|
|
34
|
+
readonly 'ref-field.placeholder': 'Select\u2026';
|
|
35
|
+
readonly 'ref-field.placeholder_one': 'Select\u2026';
|
|
36
|
+
readonly 'ref-field.placeholder_other': 'Select items\u2026';
|
|
37
|
+
readonly 'example.placeholder': 'Example';
|
|
38
|
+
readonly 'latitude.placeholder': 'Latitude (e.g., 40.7128)';
|
|
39
|
+
readonly 'longitude.placeholder': 'Longitude (e.g., -74.0060)';
|
|
40
|
+
readonly 'cancel-button.label': 'Cancel';
|
|
41
|
+
readonly 'save-button.label': 'Save';
|
|
42
|
+
readonly 'create-text.label': 'Create text';
|
|
43
|
+
readonly 'format.boolean.label': 'Boolean';
|
|
44
|
+
readonly 'format.currency.label': 'Currency';
|
|
45
|
+
readonly 'format.date.label': 'Date';
|
|
46
|
+
readonly 'format.date-time.label': 'DateTime';
|
|
47
|
+
readonly 'format.did.label': 'DID';
|
|
48
|
+
readonly 'format.duration.label': 'Duration';
|
|
49
|
+
readonly 'format.dxn.label': 'DXN';
|
|
50
|
+
readonly 'format.email.label': 'Email';
|
|
51
|
+
readonly 'format.formula.label': 'Formula';
|
|
52
|
+
readonly 'format.hostname.label': 'Hostname';
|
|
53
|
+
readonly 'format.integer.label': 'Integer';
|
|
54
|
+
readonly 'format.json.label': 'JSON';
|
|
55
|
+
readonly 'format.lnglat.label': 'Geopoint';
|
|
56
|
+
readonly 'format.markdown.label': 'Markdown';
|
|
57
|
+
readonly 'format.percent.label': 'Percent';
|
|
58
|
+
readonly 'format.ref.label': 'Reference';
|
|
59
|
+
readonly 'format.regex.label': 'RegExp';
|
|
60
|
+
readonly 'format.string.label': 'String';
|
|
61
|
+
readonly 'format.single-select.label': 'Select';
|
|
62
|
+
readonly 'format.multi-select.label': 'Multi-select';
|
|
63
|
+
readonly 'format.text.label': 'Long text';
|
|
64
|
+
readonly 'format.time.label': 'Time';
|
|
65
|
+
readonly 'format.timestamp.label': 'Timestamp';
|
|
66
|
+
readonly 'format.user.label': 'User';
|
|
67
|
+
readonly 'format.number.label': 'Number';
|
|
68
|
+
readonly 'format.uri.label': 'URI';
|
|
69
|
+
readonly 'format.url.label': 'URL';
|
|
70
|
+
readonly 'format.uuid.label': 'UUID';
|
|
71
|
+
readonly 'latitude.label': 'Latitude';
|
|
72
|
+
readonly 'longitude.label': 'Longitude';
|
|
73
|
+
readonly 'select-option.label': 'Label';
|
|
74
|
+
readonly 'select-option-label.placeholder': 'Option label';
|
|
75
|
+
readonly 'select-option-delete.button': 'Delete';
|
|
76
|
+
readonly 'select-option-add.button': 'Add option';
|
|
77
|
+
readonly 'system-schema.title': 'System type';
|
|
78
|
+
readonly 'system-schema.description': 'System type: cannot add or remove fields.';
|
|
79
|
+
readonly 'remove.button': 'Delete';
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}, {
|
|
83
|
+
readonly 'en-US': {
|
|
84
|
+
readonly [x: string]: {
|
|
85
|
+
readonly 'typename.label': 'Feed';
|
|
86
|
+
readonly 'typename.label_zero': 'Feeds';
|
|
87
|
+
readonly 'typename.label_one': 'Feed';
|
|
88
|
+
readonly 'typename.label_other': 'Feeds';
|
|
89
|
+
readonly 'object-name.placeholder': 'New feed';
|
|
90
|
+
readonly 'add-object.label': 'Add feed';
|
|
91
|
+
readonly 'rename-object.label': 'Rename feed';
|
|
92
|
+
readonly 'delete-object.label': 'Delete feed';
|
|
93
|
+
readonly 'object-deleted.label': 'Feed deleted';
|
|
94
|
+
readonly 'plugin.name'?: undefined;
|
|
95
|
+
readonly 'empty-feed.message'?: undefined;
|
|
96
|
+
readonly 'feed-companion.label'?: undefined;
|
|
97
|
+
readonly 'sync-feed.label'?: undefined;
|
|
98
|
+
readonly 'sync-feed-error.title'?: undefined;
|
|
99
|
+
readonly 'feed-sync.label'?: undefined;
|
|
100
|
+
readonly 'view-trigger.label'?: undefined;
|
|
101
|
+
readonly 'add-feed.label'?: undefined;
|
|
102
|
+
readonly 'curate.label'?: undefined;
|
|
103
|
+
readonly 'clear-magazine.label'?: undefined;
|
|
104
|
+
readonly 'refreshing-magazine.label'?: undefined;
|
|
105
|
+
readonly 'no-feeds.label'?: undefined;
|
|
106
|
+
readonly 'empty-magazine.message'?: undefined;
|
|
107
|
+
readonly 'curate-error.message'?: undefined;
|
|
108
|
+
readonly 'clear-error.message'?: undefined;
|
|
109
|
+
readonly 'refresh-content-error.message'?: undefined;
|
|
110
|
+
readonly 'post-companion.label'?: undefined;
|
|
111
|
+
readonly 'post-title.placeholder'?: undefined;
|
|
112
|
+
readonly 'open-original.label'?: undefined;
|
|
113
|
+
readonly 'mark-unread.label'?: undefined;
|
|
114
|
+
readonly 'refresh-content.label'?: undefined;
|
|
115
|
+
readonly 'refresh-content-pending.label'?: undefined;
|
|
116
|
+
readonly 'archive-post.label'?: undefined;
|
|
117
|
+
readonly 'unarchive-post.label'?: undefined;
|
|
118
|
+
readonly 'star-post.label'?: undefined;
|
|
119
|
+
readonly 'unstar-post.label'?: undefined;
|
|
120
|
+
readonly 'sort-by-date.label'?: undefined;
|
|
121
|
+
readonly 'sort-by-rank.label'?: undefined;
|
|
122
|
+
readonly 'view-filter.label'?: undefined;
|
|
123
|
+
readonly 'show-archived.label'?: undefined;
|
|
124
|
+
readonly 'only-starred.label'?: undefined;
|
|
125
|
+
readonly 'close.label'?: undefined;
|
|
126
|
+
} | {
|
|
127
|
+
readonly 'typename.label': 'Post';
|
|
128
|
+
readonly 'typename.label_zero': 'Posts';
|
|
129
|
+
readonly 'typename.label_one': 'Post';
|
|
130
|
+
readonly 'typename.label_other': 'Posts';
|
|
131
|
+
readonly 'post-title.placeholder': 'Untitled';
|
|
132
|
+
readonly 'object-name.placeholder'?: undefined;
|
|
133
|
+
readonly 'add-object.label'?: undefined;
|
|
134
|
+
readonly 'rename-object.label'?: undefined;
|
|
135
|
+
readonly 'delete-object.label'?: undefined;
|
|
136
|
+
readonly 'object-deleted.label'?: undefined;
|
|
137
|
+
readonly 'plugin.name'?: undefined;
|
|
138
|
+
readonly 'empty-feed.message'?: undefined;
|
|
139
|
+
readonly 'feed-companion.label'?: undefined;
|
|
140
|
+
readonly 'sync-feed.label'?: undefined;
|
|
141
|
+
readonly 'sync-feed-error.title'?: undefined;
|
|
142
|
+
readonly 'feed-sync.label'?: undefined;
|
|
143
|
+
readonly 'view-trigger.label'?: undefined;
|
|
144
|
+
readonly 'add-feed.label'?: undefined;
|
|
145
|
+
readonly 'curate.label'?: undefined;
|
|
146
|
+
readonly 'clear-magazine.label'?: undefined;
|
|
147
|
+
readonly 'refreshing-magazine.label'?: undefined;
|
|
148
|
+
readonly 'no-feeds.label'?: undefined;
|
|
149
|
+
readonly 'empty-magazine.message'?: undefined;
|
|
150
|
+
readonly 'curate-error.message'?: undefined;
|
|
151
|
+
readonly 'clear-error.message'?: undefined;
|
|
152
|
+
readonly 'refresh-content-error.message'?: undefined;
|
|
153
|
+
readonly 'post-companion.label'?: undefined;
|
|
154
|
+
readonly 'open-original.label'?: undefined;
|
|
155
|
+
readonly 'mark-unread.label'?: undefined;
|
|
156
|
+
readonly 'refresh-content.label'?: undefined;
|
|
157
|
+
readonly 'refresh-content-pending.label'?: undefined;
|
|
158
|
+
readonly 'archive-post.label'?: undefined;
|
|
159
|
+
readonly 'unarchive-post.label'?: undefined;
|
|
160
|
+
readonly 'star-post.label'?: undefined;
|
|
161
|
+
readonly 'unstar-post.label'?: undefined;
|
|
162
|
+
readonly 'sort-by-date.label'?: undefined;
|
|
163
|
+
readonly 'sort-by-rank.label'?: undefined;
|
|
164
|
+
readonly 'view-filter.label'?: undefined;
|
|
165
|
+
readonly 'show-archived.label'?: undefined;
|
|
166
|
+
readonly 'only-starred.label'?: undefined;
|
|
167
|
+
readonly 'close.label'?: undefined;
|
|
168
|
+
} | {
|
|
169
|
+
readonly 'typename.label': 'Magazine';
|
|
170
|
+
readonly 'typename.label_zero': 'Magazines';
|
|
171
|
+
readonly 'typename.label_one': 'Magazine';
|
|
172
|
+
readonly 'typename.label_other': 'Magazines';
|
|
173
|
+
readonly 'object-name.placeholder': 'New magazine';
|
|
174
|
+
readonly 'add-object.label': 'Add magazine';
|
|
175
|
+
readonly 'rename-object.label': 'Rename magazine';
|
|
176
|
+
readonly 'delete-object.label': 'Delete magazine';
|
|
177
|
+
readonly 'object-deleted.label': 'Magazine deleted';
|
|
178
|
+
readonly 'plugin.name'?: undefined;
|
|
179
|
+
readonly 'empty-feed.message'?: undefined;
|
|
180
|
+
readonly 'feed-companion.label'?: undefined;
|
|
181
|
+
readonly 'sync-feed.label'?: undefined;
|
|
182
|
+
readonly 'sync-feed-error.title'?: undefined;
|
|
183
|
+
readonly 'feed-sync.label'?: undefined;
|
|
184
|
+
readonly 'view-trigger.label'?: undefined;
|
|
185
|
+
readonly 'add-feed.label'?: undefined;
|
|
186
|
+
readonly 'curate.label'?: undefined;
|
|
187
|
+
readonly 'clear-magazine.label'?: undefined;
|
|
188
|
+
readonly 'refreshing-magazine.label'?: undefined;
|
|
189
|
+
readonly 'no-feeds.label'?: undefined;
|
|
190
|
+
readonly 'empty-magazine.message'?: undefined;
|
|
191
|
+
readonly 'curate-error.message'?: undefined;
|
|
192
|
+
readonly 'clear-error.message'?: undefined;
|
|
193
|
+
readonly 'refresh-content-error.message'?: undefined;
|
|
194
|
+
readonly 'post-companion.label'?: undefined;
|
|
195
|
+
readonly 'post-title.placeholder'?: undefined;
|
|
196
|
+
readonly 'open-original.label'?: undefined;
|
|
197
|
+
readonly 'mark-unread.label'?: undefined;
|
|
198
|
+
readonly 'refresh-content.label'?: undefined;
|
|
199
|
+
readonly 'refresh-content-pending.label'?: undefined;
|
|
200
|
+
readonly 'archive-post.label'?: undefined;
|
|
201
|
+
readonly 'unarchive-post.label'?: undefined;
|
|
202
|
+
readonly 'star-post.label'?: undefined;
|
|
203
|
+
readonly 'unstar-post.label'?: undefined;
|
|
204
|
+
readonly 'sort-by-date.label'?: undefined;
|
|
205
|
+
readonly 'sort-by-rank.label'?: undefined;
|
|
206
|
+
readonly 'view-filter.label'?: undefined;
|
|
207
|
+
readonly 'show-archived.label'?: undefined;
|
|
208
|
+
readonly 'only-starred.label'?: undefined;
|
|
209
|
+
readonly 'close.label'?: undefined;
|
|
210
|
+
} | {
|
|
211
|
+
readonly 'typename.label'?: undefined;
|
|
212
|
+
readonly 'typename.label_zero'?: undefined;
|
|
213
|
+
readonly 'typename.label_one'?: undefined;
|
|
214
|
+
readonly 'typename.label_other'?: undefined;
|
|
215
|
+
readonly 'object-name.placeholder'?: undefined;
|
|
216
|
+
readonly 'add-object.label'?: undefined;
|
|
217
|
+
readonly 'rename-object.label'?: undefined;
|
|
218
|
+
readonly 'delete-object.label'?: undefined;
|
|
219
|
+
readonly 'object-deleted.label'?: undefined;
|
|
220
|
+
readonly 'plugin.name': 'Feed';
|
|
221
|
+
readonly 'empty-feed.message': 'No posts yet';
|
|
222
|
+
readonly 'feed-companion.label': 'Feed';
|
|
223
|
+
readonly 'sync-feed.label': 'Sync feed';
|
|
224
|
+
readonly 'sync-feed-error.title': 'Failed to sync feed';
|
|
225
|
+
readonly 'feed-sync.label': 'Feed Sync';
|
|
226
|
+
readonly 'view-trigger.label': 'View trigger';
|
|
227
|
+
readonly 'add-feed.label': 'Add feed';
|
|
228
|
+
readonly 'curate.label': 'Curate';
|
|
229
|
+
readonly 'clear-magazine.label': 'Clear (preserves starred)';
|
|
230
|
+
readonly 'refreshing-magazine.label': 'Refreshing magazine...';
|
|
231
|
+
readonly 'no-feeds.label': 'Add at least one feed first';
|
|
232
|
+
readonly 'empty-magazine.message': 'No articles yet.';
|
|
233
|
+
readonly 'curate-error.message': 'Failed to curate magazine.';
|
|
234
|
+
readonly 'clear-error.message': 'Failed to clear magazine.';
|
|
235
|
+
readonly 'refresh-content-error.message': 'Failed to refresh content.';
|
|
236
|
+
readonly 'post-companion.label': 'Post';
|
|
237
|
+
readonly 'post-title.placeholder': 'Untitled';
|
|
238
|
+
readonly 'open-original.label': 'Open original';
|
|
239
|
+
readonly 'mark-unread.label': 'Mark as unread';
|
|
240
|
+
readonly 'refresh-content.label': 'Refresh content';
|
|
241
|
+
readonly 'refresh-content-pending.label': 'Refreshing\u2026';
|
|
242
|
+
readonly 'archive-post.label': 'Archive';
|
|
243
|
+
readonly 'unarchive-post.label': 'Unarchive';
|
|
244
|
+
readonly 'star-post.label': 'Star';
|
|
245
|
+
readonly 'unstar-post.label': 'Unstar';
|
|
246
|
+
readonly 'sort-by-date.label': 'Sort by date';
|
|
247
|
+
readonly 'sort-by-rank.label': 'Sort by rank';
|
|
248
|
+
readonly 'view-filter.label': 'Filter posts';
|
|
249
|
+
readonly 'show-archived.label': 'Show archived';
|
|
250
|
+
readonly 'only-starred.label': 'Show starred only';
|
|
251
|
+
readonly 'close.label': 'Close';
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
}];
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
export default meta;
|
|
258
|
+
type Story = StoryObj<typeof meta>;
|
|
259
|
+
/**
|
|
260
|
+
* Live preview of the defuddle-based article extractor.
|
|
261
|
+
*
|
|
262
|
+
* Paste a URL → the storybook-react vite middleware proxies the fetch via
|
|
263
|
+
* `/api/rss?url=` to bypass browser CORS → the HTML is run through
|
|
264
|
+
* `extractArticle` → the result is rendered with `MarkdownView`.
|
|
265
|
+
*/
|
|
266
|
+
export declare const Default: Story;
|
|
267
|
+
//# sourceMappingURL=ArticleExtractor.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticleExtractor.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/ArticleExtractor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAyC,MAAM,OAAO,CAAC;AAiL9D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ2B,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { type Space } from '@dxos/client/echo';
|
|
4
|
+
import { Magazine } from '#types';
|
|
5
|
+
declare global {
|
|
6
|
+
var __magazineStoryContext: {
|
|
7
|
+
space: Space;
|
|
8
|
+
magazine: Magazine.Magazine;
|
|
9
|
+
} | undefined;
|
|
10
|
+
}
|
|
11
|
+
declare const DefaultStory: () => React.JSX.Element;
|
|
12
|
+
declare const meta: Meta<typeof DefaultStory>;
|
|
13
|
+
export default meta;
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
export declare const Default: Story;
|
|
16
|
+
/**
|
|
17
|
+
* Live, agent-driven curation end-to-end against the The Register "AI + ML" feed (the feed fetch is
|
|
18
|
+
* served from a bundled fixture, but the LLM call is real). It verifies:
|
|
19
|
+
* 1. the curation Routine exists — created with the magazine (Magazine.make), so it is present
|
|
20
|
+
* before any curate; and
|
|
21
|
+
* 2. clicking Curate pulls the feed (SyncFeed) and runs that Routine via RunInstructions against the
|
|
22
|
+
* live edge model, which selects matching Posts into `magazine.posts` (rendered as tiles).
|
|
23
|
+
*
|
|
24
|
+
* The seed stashes the space + magazine in module scope so the play can read ECHO state directly.
|
|
25
|
+
*
|
|
26
|
+
* Excluded from CI (`!test`) — needs network + a reachable edge model and is non-deterministic/slow;
|
|
27
|
+
* run it manually (signed in, online). Deterministic pieces are covered by `theregister-fixture.test.ts`
|
|
28
|
+
* (fetch → parse), `curate-magazine.test.ts`, and `Magazine.test.ts`; the agent path by
|
|
29
|
+
* `curate-magazine.skill.test.ts`.
|
|
30
|
+
*/
|
|
31
|
+
export declare const Curate: Story;
|
|
32
|
+
//# sourceMappingURL=MagazineCurate.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MagazineCurate.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/MagazineCurate.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAc/C,OAAO,EAAE,QAAQ,EAAgB,MAAM,QAAQ,CAAC;AA2DhD,OAAO,CAAC,MAAM,CAAC,CAAC;IAEd,IAAI,sBAAsB,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAA;KAAE,GAAG,SAAS,CAAC;CACvF;AAED,QAAA,MAAM,YAAY,yBAqBjB,CAAC;AA4BF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAwBnC,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,EAAE,KAuBpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theregister-fixture.test.d.ts","sourceRoot":"","sources":["../../../../src/stories/theregister-fixture.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type RoutineCapabilities } from '@dxos/plugin-routine/types';
|
|
2
|
+
/**
|
|
3
|
+
* Magazine curation template. Creates a routine that invokes {@link FeedOperation.CurateMagazine} for
|
|
4
|
+
* the companion's Magazine subject on a daily schedule. Only visible in Magazine object companions.
|
|
5
|
+
*/
|
|
6
|
+
export declare const magazineCuration: RoutineCapabilities.Template;
|
|
7
|
+
//# sourceMappingURL=magazine-curation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magazine-curation.d.ts","sourceRoot":"","sources":["../../../../src/templates/magazine-curation.ts"],"names":[],"mappings":"AASA,OAAO,EAAW,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAO/E;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,CAAC,QA0BlD,CAAC"}
|