@dxos/plugin-magazine 0.10.0 → 0.11.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/dist/lib/MagazinePlugin.mjs +36 -0
- package/dist/lib/MagazinePlugin.mjs.map +1 -0
- package/dist/lib/MagazinePlugin.workerd.mjs +26 -0
- package/dist/lib/MagazinePlugin.workerd.mjs.map +1 -0
- package/dist/lib/atoms.mjs +175 -0
- package/dist/lib/atoms.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +12 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-FeedArticle.mjs +70 -0
- package/dist/lib/chunk-FeedArticle.mjs.map +1 -0
- package/dist/lib/chunk-FeedProperties.mjs +78 -0
- package/dist/lib/chunk-FeedProperties.mjs.map +1 -0
- package/dist/lib/chunk-MagazineArticle.mjs +267 -0
- package/dist/lib/chunk-MagazineArticle.mjs.map +1 -0
- package/dist/lib/chunk-PostArticle.mjs +174 -0
- package/dist/lib/chunk-PostArticle.mjs.map +1 -0
- package/dist/lib/chunk-PostCard.mjs +62 -0
- package/dist/lib/chunk-PostCard.mjs.map +1 -0
- package/dist/lib/chunk-app-graph-builder.mjs +91 -0
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
- package/dist/lib/chunk-clear-magazine.mjs +37 -0
- package/dist/lib/chunk-clear-magazine.mjs.map +1 -0
- package/dist/lib/chunk-create-object.mjs +59 -0
- package/dist/lib/chunk-create-object.mjs.map +1 -0
- package/dist/lib/chunk-curate-magazine.mjs +164 -0
- package/dist/lib/chunk-curate-magazine.mjs.map +1 -0
- package/dist/lib/chunk-date.mjs +25 -0
- package/dist/lib/chunk-date.mjs.map +1 -0
- package/dist/lib/chunk-fetch-article-content.mjs +26 -0
- package/dist/lib/chunk-fetch-article-content.mjs.map +1 -0
- package/dist/lib/chunk-load-post-content.mjs +57 -0
- package/dist/lib/chunk-load-post-content.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-JFPR6OV4.mjs → chunk-meta.mjs} +19 -26
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-operation-handler.mjs +13 -0
- package/dist/lib/chunk-operation-handler.mjs.map +1 -0
- package/dist/lib/chunk-paths.mjs +8 -0
- package/dist/lib/chunk-paths.mjs.map +1 -0
- package/dist/lib/chunk-post-content.mjs +14 -0
- package/dist/lib/chunk-post-content.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +60 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-routine-templates.mjs +52 -0
- package/dist/lib/chunk-routine-templates.mjs.map +1 -0
- package/dist/lib/chunk-skill-definition.mjs +12 -0
- package/dist/lib/chunk-skill-definition.mjs.map +1 -0
- package/dist/lib/chunk-sources.mjs +576 -0
- package/dist/lib/chunk-sources.mjs.map +1 -0
- package/dist/lib/chunk-sync-feed.mjs +86 -0
- package/dist/lib/chunk-sync-feed.mjs.map +1 -0
- package/dist/lib/chunk-text.mjs +52 -0
- package/dist/lib/chunk-text.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +607 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/components.mjs +323 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/containers.mjs +11 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/index.mjs +3 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/operations.mjs +7 -0
- package/dist/lib/operations.mjs.map +1 -0
- package/dist/lib/plugin.mjs +9 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/plugin.workerd.mjs +3 -0
- package/dist/lib/{neutral/skills/index.mjs → skills.mjs} +15 -28
- package/dist/lib/skills.mjs.map +1 -0
- package/dist/lib/testing.mjs +71 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/lib/translations.mjs +74 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/MagazinePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/routine-templates.d.ts +1 -1
- package/dist/types/src/components/PostContent/PostContent.d.ts +1 -13
- package/dist/types/src/components/PostContent/PostContent.d.ts.map +1 -1
- package/dist/types/src/components/PostContent/dedupe-images.d.ts +13 -0
- package/dist/types/src/components/PostContent/dedupe-images.d.ts.map +1 -0
- package/dist/types/src/components/PostContent/index.d.ts +1 -0
- package/dist/types/src/components/PostContent/index.d.ts.map +1 -1
- package/dist/types/src/components/PostStack/PostStack.d.ts +1 -1
- package/dist/types/src/components/PostStack/PostStack.d.ts.map +1 -1
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.d.ts +1 -1
- package/dist/types/src/components/SubscriptionStack/SubscriptionStack.d.ts.map +1 -1
- package/dist/types/src/containers/FeedArticle/FeedArticle.d.ts +4 -1
- package/dist/types/src/containers/FeedArticle/FeedArticle.d.ts.map +1 -1
- package/dist/types/src/containers/FeedProperties/FeedProperties.d.ts +4 -1
- package/dist/types/src/containers/FeedProperties/FeedProperties.d.ts.map +1 -1
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.d.ts +4 -1
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.d.ts.map +1 -1
- package/dist/types/src/containers/MagazineArticle/MagazineArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MagazineArticle/MagazineTile.d.ts +4 -1
- package/dist/types/src/containers/MagazineArticle/MagazineTile.d.ts.map +1 -1
- package/dist/types/src/containers/MagazineArticle/useToolbar.d.ts +4 -8
- package/dist/types/src/containers/MagazineArticle/useToolbar.d.ts.map +1 -1
- package/dist/types/src/containers/PostArticle/PostArticle.d.ts +4 -1
- package/dist/types/src/containers/PostArticle/PostArticle.d.ts.map +1 -1
- package/dist/types/src/containers/PostArticle/PostArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/PostArticle/PostToolbar.d.ts +1 -1
- package/dist/types/src/containers/PostArticle/PostToolbar.d.ts.map +1 -1
- package/dist/types/src/containers/PostCard/PostCard.d.ts +4 -6
- package/dist/types/src/containers/PostCard/PostCard.d.ts.map +1 -1
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.d.ts +4 -1
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.d.ts.map +1 -1
- package/dist/types/src/containers/SubscriptionsArticle/SubscriptionsArticle.stories.d.ts.map +1 -1
- package/dist/types/src/stories/ArticleExtractor.stories.d.ts +1 -0
- package/dist/types/src/stories/ArticleExtractor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/MagazineCurate.stories.d.ts.map +1 -1
- package/dist/types/src/templates/magazine-curation.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +1 -1
- package/package.json +57 -60
- package/src/MagazinePlugin.tsx +0 -3
- package/src/atoms/atoms.test.ts +5 -4
- package/src/capabilities/app-graph-builder.ts +8 -6
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/{react-surface.tsx → react-surface.ts} +10 -12
- package/src/components/PostContent/PostContent.test.ts +1 -1
- package/src/components/PostContent/PostContent.tsx +1 -41
- package/src/components/PostContent/dedupe-images.ts +48 -0
- package/src/components/PostContent/index.ts +1 -0
- package/src/containers/FeedArticle/FeedArticle.stories.tsx +2 -2
- package/src/containers/FeedArticle/FeedArticle.tsx +4 -2
- package/src/containers/FeedProperties/FeedProperties.tsx +6 -4
- package/src/containers/MagazineArticle/MagazineArticle.stories.tsx +2 -1
- package/src/containers/MagazineArticle/MagazineArticle.tsx +8 -6
- package/src/containers/MagazineArticle/MagazineTile.tsx +2 -0
- package/src/containers/MagazineArticle/useToolbar.tsx +2 -0
- package/src/containers/PostArticle/PostArticle.stories.tsx +2 -1
- package/src/containers/PostArticle/PostArticle.tsx +6 -3
- package/src/containers/PostArticle/PostToolbar.tsx +1 -1
- package/src/containers/PostCard/PostCard.tsx +3 -1
- package/src/containers/SubscriptionsArticle/SubscriptionsArticle.stories.tsx +2 -1
- package/src/containers/SubscriptionsArticle/SubscriptionsArticle.tsx +5 -3
- package/src/operations/curate-magazine.test.ts +108 -4
- package/src/operations/sync-feed.test.ts +1 -1
- package/src/operations/sync-feed.ts +1 -1
- package/src/paths.ts +3 -3
- package/src/stories/ArticleExtractor.stories.tsx +1 -1
- package/src/stories/MagazineCurate.stories.tsx +3 -2
- package/src/templates/magazine-curation.ts +3 -2
- package/src/types/Magazine.test.ts +1 -1
- package/src/types/Subscription.ts +1 -1
- package/dist/lib/neutral/FeedArticle-PEWCFFSP.mjs +0 -90
- package/dist/lib/neutral/FeedArticle-PEWCFFSP.mjs.map +0 -7
- package/dist/lib/neutral/FeedProperties-EIO7IZOA.mjs +0 -97
- package/dist/lib/neutral/FeedProperties-EIO7IZOA.mjs.map +0 -7
- package/dist/lib/neutral/MagazineArticle-5T7RTIPS.mjs +0 -325
- package/dist/lib/neutral/MagazineArticle-5T7RTIPS.mjs.map +0 -7
- package/dist/lib/neutral/MagazinePlugin.mjs +0 -62
- package/dist/lib/neutral/MagazinePlugin.mjs.map +0 -7
- package/dist/lib/neutral/MagazinePlugin.workerd.mjs +0 -12
- package/dist/lib/neutral/MagazinePlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/PostArticle-BGIPU7XA.mjs +0 -230
- package/dist/lib/neutral/PostArticle-BGIPU7XA.mjs.map +0 -7
- package/dist/lib/neutral/PostCard-VDGN7BBA.mjs +0 -60
- package/dist/lib/neutral/PostCard-VDGN7BBA.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-JDPRBVHL.mjs +0 -121
- package/dist/lib/neutral/app-graph-builder-JDPRBVHL.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -21
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/chunk-3K4AQKBZ.mjs +0 -12
- package/dist/lib/neutral/chunk-3K4AQKBZ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-AFPBWBTK.mjs +0 -591
- package/dist/lib/neutral/chunk-AFPBWBTK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-APQRTYT3.mjs +0 -57
- package/dist/lib/neutral/chunk-APQRTYT3.mjs.map +0 -7
- package/dist/lib/neutral/chunk-GU725ZF4.mjs +0 -11
- package/dist/lib/neutral/chunk-GU725ZF4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JFPR6OV4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KTYLUOUG.mjs +0 -36
- package/dist/lib/neutral/chunk-KTYLUOUG.mjs.map +0 -7
- package/dist/lib/neutral/chunk-LFSQMLPK.mjs +0 -8
- package/dist/lib/neutral/chunk-LFSQMLPK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-MBPX7RPI.mjs +0 -14
- package/dist/lib/neutral/chunk-MBPX7RPI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-OYCDRSWB.mjs +0 -624
- package/dist/lib/neutral/chunk-OYCDRSWB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SAWKLGJU.mjs +0 -28
- package/dist/lib/neutral/chunk-SAWKLGJU.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XCNCK47N.mjs +0 -15
- package/dist/lib/neutral/chunk-XCNCK47N.mjs.map +0 -7
- package/dist/lib/neutral/clear-magazine-KNY4OWY4.mjs +0 -59
- package/dist/lib/neutral/clear-magazine-KNY4OWY4.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -338
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -17
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/create-object-SYZMRR4H.mjs +0 -98
- package/dist/lib/neutral/create-object-SYZMRR4H.mjs.map +0 -7
- package/dist/lib/neutral/curate-magazine-7RMKSJC5.mjs +0 -184
- package/dist/lib/neutral/curate-magazine-7RMKSJC5.mjs.map +0 -7
- package/dist/lib/neutral/fetch-article-content-CXPKXIMR.mjs +0 -31
- package/dist/lib/neutral/fetch-article-content-CXPKXIMR.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -18
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/load-post-content-H3S4TKVM.mjs +0 -65
- package/dist/lib/neutral/load-post-content-H3S4TKVM.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -8
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-IN4OMCDR.mjs +0 -18
- package/dist/lib/neutral/navigation-resolver-IN4OMCDR.mjs.map +0 -7
- package/dist/lib/neutral/operation-handler-JE3743BU.mjs +0 -8
- package/dist/lib/neutral/operation-handler-JE3743BU.mjs.map +0 -7
- package/dist/lib/neutral/operations/index.mjs +0 -8
- package/dist/lib/neutral/operations/index.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -16
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/plugin.workerd.mjs +0 -16
- package/dist/lib/neutral/plugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-TZESAMG2.mjs +0 -60
- package/dist/lib/neutral/react-surface-TZESAMG2.mjs.map +0 -7
- package/dist/lib/neutral/routine-templates-D5A2L4KL.mjs +0 -52
- package/dist/lib/neutral/routine-templates-D5A2L4KL.mjs.map +0 -7
- package/dist/lib/neutral/skill-definition-3KLMUEC5.mjs +0 -8
- package/dist/lib/neutral/skill-definition-3KLMUEC5.mjs.map +0 -7
- package/dist/lib/neutral/skills/index.mjs.map +0 -7
- package/dist/lib/neutral/sync-feed-SDXYF7HU.mjs +0 -99
- package/dist/lib/neutral/sync-feed-SDXYF7HU.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -81
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -14
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/types/src/capabilities/navigation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +0 -1
- package/dist/types/src/operations/curate-magazine.skill.test.d.ts +0 -2
- package/dist/types/src/operations/curate-magazine.skill.test.d.ts.map +0 -1
- package/src/capabilities/navigation-resolver.ts +0 -21
- package/src/operations/curate-magazine.skill.conversations.json +0 -1
- package/src/operations/curate-magazine.skill.test.ts +0 -167
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { b as __exportAll } from "./chunk-types.mjs";
|
|
2
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { MagazineOperationHandlerSet } from "#operations";
|
|
5
|
+
//#region src/capabilities/operation-handler.ts
|
|
6
|
+
var operation_handler_exports = /* @__PURE__ */ __exportAll({ default: () => operation_handler_default });
|
|
7
|
+
var operation_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
8
|
+
return Capability.contributes(Capabilities.OperationHandler, MagazineOperationHandlerSet);
|
|
9
|
+
}));
|
|
10
|
+
//#endregion
|
|
11
|
+
export { operation_handler_exports as n, operation_handler_default as t };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=chunk-operation-handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-operation-handler.mjs","names":[],"sources":["../../src/capabilities/operation-handler.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport type { OperationHandlerSet } from '@dxos/compute';\n\nimport { MagazineOperationHandlerSet } from '#operations';\n\nexport default Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(\n Effect.fnUntraced(function* () {\n return Capability.contributes(Capabilities.OperationHandler, MagazineOperationHandlerSet);\n }),\n);\n"],"mappings":";;;;;;AAWA,IAAA,4BAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,OAAO,WAAW,YAAY,aAAa,kBAAkB,2BAA2B;AAC1F,CAAC,CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GraphPath } from "@dxos/app-toolkit";
|
|
2
|
+
import { Magazine } from "#types";
|
|
3
|
+
//#region src/paths.ts
|
|
4
|
+
var { getSectionPath: getMagazinesPath, getObjectPath: getMagazinePath } = GraphPath.createTypeSectionPaths(Magazine.Magazine, { groupId: GraphPath.GroupSegments.content });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { getMagazinesPath as t };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=chunk-paths.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-paths.mjs","names":[],"sources":["../../src/paths.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { GraphPath } from '@dxos/app-toolkit';\n\nimport { Magazine } from '#types';\n\nconst { getSectionPath: getMagazinesPath, getObjectPath: getMagazinePath } = GraphPath.createTypeSectionPaths(\n Magazine.Magazine,\n { groupId: GraphPath.GroupSegments.content },\n);\n\nexport { getMagazinePath, getMagazinesPath };\n"],"mappings":";;;AAQA,IAAM,EAAE,gBAAgB,kBAAkB,eAAe,oBAAoB,UAAU,uBACrF,SAAS,UACT,EAAE,SAAS,UAAU,cAAc,QAAQ,CAC7C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { i as stripHtml, n as extractImageUrls, r as makeSnippet } from "./chunk-text.mjs";
|
|
2
|
+
//#region src/util/post-content.ts
|
|
3
|
+
/**
|
|
4
|
+
* Pure derivations of a Post's display snippet/hero-image, preferring the refined values on a
|
|
5
|
+
* fetched {@link Subscription.PostContent} entry when present, else derived from `post.description`.
|
|
6
|
+
*/
|
|
7
|
+
/** Plain-text snippet: the refined contentFeed value if loaded, else derived from `post.description`. */
|
|
8
|
+
var getSnippet = (post, content) => content?.snippet ?? makeSnippet(stripHtml(post.description ?? ""));
|
|
9
|
+
/** Hero image url: the refined contentFeed value if loaded, else derived from `post.description`. */
|
|
10
|
+
var getImageUrl = (post, content) => content?.imageUrl ?? extractImageUrls(post.description ?? "")[0];
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getSnippet as n, getImageUrl as t };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=chunk-post-content.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-post-content.mjs","names":[],"sources":["../../src/util/post-content.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Subscription } from '../types';\nimport { extractImageUrls, makeSnippet, stripHtml } from './text';\n\n/**\n * Pure derivations of a Post's display snippet/hero-image, preferring the refined values on a\n * fetched {@link Subscription.PostContent} entry when present, else derived from `post.description`.\n */\n\n/** Plain-text snippet: the refined contentFeed value if loaded, else derived from `post.description`. */\nexport const getSnippet = (post: { description?: string }, content?: Subscription.PostContent): string =>\n content?.snippet ?? makeSnippet(stripHtml(post.description ?? ''));\n\n/** Hero image url: the refined contentFeed value if loaded, else derived from `post.description`. */\nexport const getImageUrl = (post: { description?: string }, content?: Subscription.PostContent): string | undefined =>\n content?.imageUrl ?? extractImageUrls(post.description ?? '')[0];\n"],"mappings":";;;;;;;AAaA,IAAa,cAAc,MAAgC,YACzD,SAAS,WAAW,YAAY,UAAU,KAAK,eAAe,EAAE,CAAC;;AAGnE,IAAa,eAAe,MAAgC,YAC1D,SAAS,YAAY,iBAAiB,KAAK,eAAe,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
2
|
+
import { Position } from "@dxos/util";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { Magazine, Subscription } from "#types";
|
|
5
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
6
|
+
import { AppSurface } from "@dxos/app-toolkit/ui";
|
|
7
|
+
import { FeedArticle, FeedProperties, MagazineArticle, PostArticle, PostCard } from "#containers";
|
|
8
|
+
//#region src/capabilities/react-surface.ts
|
|
9
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
10
|
+
Surface.create({
|
|
11
|
+
id: "magazineArticle",
|
|
12
|
+
filter: AppSurface.object(AppSurface.Article, Magazine.Magazine),
|
|
13
|
+
component: MagazineArticle,
|
|
14
|
+
props: ({ role, data: { subject, attendableId } }) => ({
|
|
15
|
+
role,
|
|
16
|
+
subject,
|
|
17
|
+
attendableId
|
|
18
|
+
})
|
|
19
|
+
}),
|
|
20
|
+
Surface.create({
|
|
21
|
+
id: "feedArticle",
|
|
22
|
+
filter: AppSurface.object(AppSurface.Article, Subscription.Subscription),
|
|
23
|
+
component: FeedArticle,
|
|
24
|
+
props: ({ role, data: { subject, attendableId } }) => ({
|
|
25
|
+
role,
|
|
26
|
+
subject,
|
|
27
|
+
attendableId
|
|
28
|
+
})
|
|
29
|
+
}),
|
|
30
|
+
Surface.create({
|
|
31
|
+
id: "postArticle",
|
|
32
|
+
filter: AppSurface.object(AppSurface.Article, Subscription.Post),
|
|
33
|
+
component: PostArticle,
|
|
34
|
+
props: ({ role, data: { subject, attendableId } }) => ({
|
|
35
|
+
role,
|
|
36
|
+
subject,
|
|
37
|
+
attendableId
|
|
38
|
+
})
|
|
39
|
+
}),
|
|
40
|
+
Surface.create({
|
|
41
|
+
id: "postCard",
|
|
42
|
+
position: Position.first,
|
|
43
|
+
filter: AppSurface.object(AppSurface.CardContent, Subscription.Post),
|
|
44
|
+
component: PostCard,
|
|
45
|
+
props: ({ role, data: { subject } }) => ({
|
|
46
|
+
role,
|
|
47
|
+
subject
|
|
48
|
+
})
|
|
49
|
+
}),
|
|
50
|
+
Surface.create({
|
|
51
|
+
id: "feedProperties",
|
|
52
|
+
filter: AppSurface.object(AppSurface.ObjectProperties, Subscription.Subscription),
|
|
53
|
+
component: FeedProperties,
|
|
54
|
+
props: ({ data: { subject } }) => ({ subject })
|
|
55
|
+
})
|
|
56
|
+
])));
|
|
57
|
+
//#endregion
|
|
58
|
+
export { react_surface_default as default };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=chunk-react-surface.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-react-surface.mjs","names":[],"sources":["../../src/capabilities/react-surface.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { Position } from '@dxos/util';\n\nimport { FeedArticle, FeedProperties, MagazineArticle, PostArticle, PostCard } from '#containers';\nimport { Magazine, Subscription } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'magazineArticle',\n filter: AppSurface.object(AppSurface.Article, Magazine.Magazine),\n component: MagazineArticle,\n props: ({ role, data: { subject, attendableId } }) => ({ role, subject, attendableId }),\n }),\n Surface.create({\n id: 'feedArticle',\n filter: AppSurface.object(AppSurface.Article, Subscription.Subscription),\n component: FeedArticle,\n props: ({ role, data: { subject, attendableId } }) => ({ role, subject, attendableId }),\n }),\n Surface.create({\n id: 'postArticle',\n filter: AppSurface.object(AppSurface.Article, Subscription.Post),\n component: PostArticle,\n props: ({ role, data: { subject, attendableId } }) => ({ role, subject, attendableId }),\n }),\n Surface.create({\n id: 'postCard',\n position: Position.first,\n filter: AppSurface.object(AppSurface.CardContent, Subscription.Post),\n component: PostCard,\n props: ({ role, data: { subject } }) => ({ role, subject }),\n }),\n Surface.create({\n id: 'feedProperties',\n filter: AppSurface.object(AppSurface.ObjectProperties, Subscription.Subscription),\n component: FeedProperties,\n props: ({ data: { subject } }) => ({ subject }),\n }),\n ]),\n ),\n);\n"],"mappings":";;;;;;;;AAcA,IAAA,wBAAe,WAAW,iBACxB,OAAO,QACL,WAAW,YAAY,aAAa,cAAc;CAChD,QAAQ,OAAO;EACb,IAAI;EACJ,QAAQ,WAAW,OAAO,WAAW,SAAS,SAAS,QAAQ;EAC/D,WAAW;EACX,QAAQ,EAAE,MAAM,MAAM,EAAE,SAAS,sBAAsB;GAAE;GAAM;GAAS;EAAa;CACvF,CAAC;CACD,QAAQ,OAAO;EACb,IAAI;EACJ,QAAQ,WAAW,OAAO,WAAW,SAAS,aAAa,YAAY;EACvE,WAAW;EACX,QAAQ,EAAE,MAAM,MAAM,EAAE,SAAS,sBAAsB;GAAE;GAAM;GAAS;EAAa;CACvF,CAAC;CACD,QAAQ,OAAO;EACb,IAAI;EACJ,QAAQ,WAAW,OAAO,WAAW,SAAS,aAAa,IAAI;EAC/D,WAAW;EACX,QAAQ,EAAE,MAAM,MAAM,EAAE,SAAS,sBAAsB;GAAE;GAAM;GAAS;EAAa;CACvF,CAAC;CACD,QAAQ,OAAO;EACb,IAAI;EACJ,UAAU,SAAS;EACnB,QAAQ,WAAW,OAAO,WAAW,aAAa,aAAa,IAAI;EACnE,WAAW;EACX,QAAQ,EAAE,MAAM,MAAM,EAAE,iBAAiB;GAAE;GAAM;EAAQ;CAC3D,CAAC;CACD,QAAQ,OAAO;EACb,IAAI;EACJ,QAAQ,WAAW,OAAO,WAAW,kBAAkB,aAAa,YAAY;EAChF,WAAW;EACX,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ;CAC/C,CAAC;AACH,CAAC,CACH,CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Capability } from "@dxos/app-framework";
|
|
2
|
+
import { Ref } from "@dxos/echo";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { Trigger } from "@dxos/compute";
|
|
5
|
+
import { FeedOperation, Magazine } from "#types";
|
|
6
|
+
import { RoutineCapabilities, makeRoutine } from "@dxos/plugin-routine";
|
|
7
|
+
import { invariant } from "@dxos/invariant";
|
|
8
|
+
//#region src/templates/magazine-curation.ts
|
|
9
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-magazine/src/templates/magazine-curation.ts";
|
|
10
|
+
/** Default cron for a magazine curation routine: daily at 9 AM. The user edits the schedule from the trigger. */
|
|
11
|
+
var DEFAULT_CRON = "0 9 * * *";
|
|
12
|
+
/**
|
|
13
|
+
* Magazine curation template. Creates a routine that invokes {@link FeedOperation.CurateMagazine} for
|
|
14
|
+
* the companion's Magazine subject on a daily schedule. Only visible in Magazine object companions.
|
|
15
|
+
*/
|
|
16
|
+
var magazineCuration = {
|
|
17
|
+
id: "org.dxos.routine.magazineCuration",
|
|
18
|
+
label: "Curate Magazine",
|
|
19
|
+
icon: "ph--sparkle--regular",
|
|
20
|
+
appliesTo: (subject) => subject != null && Magazine.instanceOf(subject),
|
|
21
|
+
scaffold: ({ name, subject }) => Effect.gen(function* () {
|
|
22
|
+
invariant(subject != null && Magazine.instanceOf(subject), "Magazine curation template requires a Magazine subject.", {
|
|
23
|
+
"~LogMeta": "~LogMeta",
|
|
24
|
+
F: __dxlog_file,
|
|
25
|
+
L: 29,
|
|
26
|
+
S: this,
|
|
27
|
+
A: ["subject != null && Magazine.instanceOf(subject)", "'Magazine curation template requires a Magazine subject.'"]
|
|
28
|
+
});
|
|
29
|
+
const magazine = subject;
|
|
30
|
+
return makeRoutine({
|
|
31
|
+
name: name ?? magazine.name ?? "Curate Magazine",
|
|
32
|
+
spec: {
|
|
33
|
+
kind: "runnable",
|
|
34
|
+
runnable: Ref.fromURI(FeedOperation.CurateMagazine.meta.key)
|
|
35
|
+
},
|
|
36
|
+
trigger: Trigger.make({
|
|
37
|
+
enabled: false,
|
|
38
|
+
spec: Trigger.specTimer(DEFAULT_CRON),
|
|
39
|
+
input: { magazine: Ref.make(magazine) }
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
})
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/capabilities/routine-templates.ts
|
|
46
|
+
var routine_templates_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
47
|
+
return [Capability.contributes(RoutineCapabilities.Template, magazineCuration)];
|
|
48
|
+
}));
|
|
49
|
+
//#endregion
|
|
50
|
+
export { routine_templates_default as default };
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=chunk-routine-templates.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-routine-templates.mjs","names":[],"sources":["../../src/templates/magazine-curation.ts","../../src/capabilities/routine-templates.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Trigger } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { makeRoutine } from '@dxos/plugin-routine';\nimport { type RoutineCapabilities } from '@dxos/plugin-routine/types';\n\nimport { FeedOperation, Magazine } from '#types';\n\n/** Default cron for a magazine curation routine: daily at 9 AM. The user edits the schedule from the trigger. */\nconst DEFAULT_CRON = '0 9 * * *';\n\n/**\n * Magazine curation template. Creates a routine that invokes {@link FeedOperation.CurateMagazine} for\n * the companion's Magazine subject on a daily schedule. Only visible in Magazine object companions.\n */\nexport const magazineCuration: RoutineCapabilities.Template = {\n id: 'org.dxos.routine.magazineCuration',\n label: 'Curate Magazine',\n icon: 'ph--sparkle--regular',\n appliesTo: (subject) => subject != null && Magazine.instanceOf(subject),\n scaffold: ({ name, subject }) =>\n Effect.gen(function* () {\n invariant(\n subject != null && Magazine.instanceOf(subject),\n 'Magazine curation template requires a Magazine subject.',\n );\n\n const magazine = subject;\n\n // Pre-populate the trigger's input so the magazine binding is preserved through the save flow.\n return makeRoutine({\n name: name ?? magazine.name ?? 'Curate Magazine',\n // Bind the CurateMagazine operation directly as the action (an operation action, not instructions-based).\n spec: { kind: 'runnable', runnable: Ref.fromURI(FeedOperation.CurateMagazine.meta.key) },\n trigger: Trigger.make({\n enabled: false,\n spec: Trigger.specTimer(DEFAULT_CRON),\n input: { magazine: Ref.make(magazine) },\n }),\n });\n }),\n};\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { RoutineCapabilities } from '@dxos/plugin-routine';\n\nimport { magazineCuration } from '../templates/magazine-curation';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [Capability.contributes(RoutineCapabilities.Template, magazineCuration)];\n }),\n);\n"],"mappings":";;;;;;;;;;AAeA,IAAM,eAAe;;;;;AAMrB,IAAa,mBAAiD;CAC5D,IAAI;CACJ,OAAO;CACP,MAAM;CACN,YAAY,YAAY,WAAW,QAAQ,SAAS,WAAW,OAAO;CACtE,WAAW,EAAE,MAAM,cACjB,OAAO,IAAI,aAAa;EACtB,UACE,WAAW,QAAQ,SAAS,WAAW,OAAO,GAC9C,2DACH;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA,CAAA,mDAAA,2DAAA;EAAA,CAAC;EAEA,MAAM,WAAW;EAGjB,OAAO,YAAY;GACjB,MAAM,QAAQ,SAAS,QAAQ;GAE/B,MAAM;IAAE,MAAM;IAAY,UAAU,IAAI,QAAQ,cAAc,eAAe,KAAK,GAAG;GAAE;GACvF,SAAS,QAAQ,KAAK;IACpB,SAAS;IACT,MAAM,QAAQ,UAAU,YAAY;IACpC,OAAO,EAAE,UAAU,IAAI,KAAK,QAAQ,EAAE;GACxC,CAAC;EACH,CAAC;CACH,CAAC;AACL;;;ACpCA,IAAA,4BAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,OAAO,CAAC,WAAW,YAAY,oBAAoB,UAAU,gBAAgB,CAAC;AAChF,CAAC,CACH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { b as __exportAll } from "./chunk-types.mjs";
|
|
2
|
+
import { Capability } from "@dxos/app-framework";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
5
|
+
import { MagazineSkill } from "#skills";
|
|
6
|
+
//#region src/capabilities/skill-definition.ts
|
|
7
|
+
var skill_definition_exports = /* @__PURE__ */ __exportAll({ default: () => skillDefinition });
|
|
8
|
+
var skillDefinition = () => Effect.succeed([Capability.contributes(AppCapabilities.SkillDefinition, MagazineSkill)]);
|
|
9
|
+
//#endregion
|
|
10
|
+
export { skill_definition_exports as n, skillDefinition as t };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=chunk-skill-definition.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-skill-definition.mjs","names":[],"sources":["../../src/capabilities/skill-definition.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nimport { MagazineSkill } from '#skills';\n\nconst skillDefinition = () => Effect.succeed([Capability.contributes(AppCapabilities.SkillDefinition, MagazineSkill)]);\n\nexport default skillDefinition;\n"],"mappings":";;;;;;;AAWA,IAAM,wBAAwB,OAAO,QAAQ,CAAC,WAAW,YAAY,gBAAgB,iBAAiB,aAAa,CAAC,CAAC"}
|