@dxos/plugin-youtube 0.8.3
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 +21 -0
- package/dist/lib/browser/ChannelArticle-CDQR4BBY.mjs +90 -0
- package/dist/lib/browser/ChannelArticle-CDQR4BBY.mjs.map +7 -0
- package/dist/lib/browser/ChannelSettings-ZYUNW3VS.mjs +28 -0
- package/dist/lib/browser/ChannelSettings-ZYUNW3VS.mjs.map +7 -0
- package/dist/lib/browser/VideoArticle-FC4A6E7B.mjs +76 -0
- package/dist/lib/browser/VideoArticle-FC4A6E7B.mjs.map +7 -0
- package/dist/lib/browser/VideoCard-CCPXDCB7.mjs +64 -0
- package/dist/lib/browser/VideoCard-CCPXDCB7.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-MJY6A6SN.mjs +195 -0
- package/dist/lib/browser/app-graph-builder-MJY6A6SN.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-FRYUYJ22.mjs +22 -0
- package/dist/lib/browser/blueprint-definition-FRYUYJ22.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +13 -0
- package/dist/lib/browser/blueprints/index.mjs.map +7 -0
- package/dist/lib/browser/chunk-C26XKDK2.mjs +355 -0
- package/dist/lib/browser/chunk-C26XKDK2.mjs.map +7 -0
- package/dist/lib/browser/chunk-DFRSBBSO.mjs +21 -0
- package/dist/lib/browser/chunk-DFRSBBSO.mjs.map +7 -0
- package/dist/lib/browser/chunk-GFRR4TTX.mjs +72 -0
- package/dist/lib/browser/chunk-GFRR4TTX.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/chunk-MUE22YUM.mjs +57 -0
- package/dist/lib/browser/chunk-MUE22YUM.mjs.map +7 -0
- package/dist/lib/browser/chunk-P67QEKBQ.mjs +72 -0
- package/dist/lib/browser/chunk-P67QEKBQ.mjs.map +7 -0
- package/dist/lib/browser/chunk-YMDT37TA.mjs +62 -0
- package/dist/lib/browser/chunk-YMDT37TA.mjs.map +7 -0
- package/dist/lib/browser/chunk-Z3DGTMKC.mjs +8 -0
- package/dist/lib/browser/chunk-Z3DGTMKC.mjs.map +7 -0
- package/dist/lib/browser/clear-synced-videos-EVMJIZPD.mjs +66 -0
- package/dist/lib/browser/clear-synced-videos-EVMJIZPD.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +153 -0
- package/dist/lib/browser/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -0
- package/dist/lib/browser/react-surface-EDA5VYDC.mjs +77 -0
- package/dist/lib/browser/react-surface-EDA5VYDC.mjs.map +7 -0
- package/dist/lib/browser/sync-423Q4BDD.mjs +360 -0
- package/dist/lib/browser/sync-423Q4BDD.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +14 -0
- package/dist/lib/browser/types/index.mjs.map +7 -0
- package/dist/lib/node-esm/ChannelArticle-GQ64BO7V.mjs +91 -0
- package/dist/lib/node-esm/ChannelArticle-GQ64BO7V.mjs.map +7 -0
- package/dist/lib/node-esm/ChannelSettings-DM2HWNKO.mjs +29 -0
- package/dist/lib/node-esm/ChannelSettings-DM2HWNKO.mjs.map +7 -0
- package/dist/lib/node-esm/VideoArticle-WLTWZO3K.mjs +77 -0
- package/dist/lib/node-esm/VideoArticle-WLTWZO3K.mjs.map +7 -0
- package/dist/lib/node-esm/VideoCard-FOWQZK75.mjs +65 -0
- package/dist/lib/node-esm/VideoCard-FOWQZK75.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-IU5TBAXN.mjs +196 -0
- package/dist/lib/node-esm/app-graph-builder-IU5TBAXN.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-W264MZ3D.mjs +23 -0
- package/dist/lib/node-esm/blueprint-definition-W264MZ3D.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +14 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5KNC2JMP.mjs +58 -0
- package/dist/lib/node-esm/chunk-5KNC2JMP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6BUJ2DQX.mjs +73 -0
- package/dist/lib/node-esm/chunk-6BUJ2DQX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CX6MV3QM.mjs +23 -0
- package/dist/lib/node-esm/chunk-CX6MV3QM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CZSLL3XQ.mjs +63 -0
- package/dist/lib/node-esm/chunk-CZSLL3XQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JM5SBBP5.mjs +356 -0
- package/dist/lib/node-esm/chunk-JM5SBBP5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JSGRZMG3.mjs +73 -0
- package/dist/lib/node-esm/chunk-JSGRZMG3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-M4S6BE47.mjs +10 -0
- package/dist/lib/node-esm/chunk-M4S6BE47.mjs.map +7 -0
- package/dist/lib/node-esm/clear-synced-videos-5UCH6XHL.mjs +67 -0
- package/dist/lib/node-esm/clear-synced-videos-5UCH6XHL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +154 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/react-surface-5DJAQPHJ.mjs +78 -0
- package/dist/lib/node-esm/react-surface-5DJAQPHJ.mjs.map +7 -0
- package/dist/lib/node-esm/sync-CEF5DX2J.mjs +361 -0
- package/dist/lib/node-esm/sync-CEF5DX2J.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +15 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/YouTubePlugin.d.ts +3 -0
- package/dist/types/src/YouTubePlugin.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +3 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/youtube.d.ts +4 -0
- package/dist/types/src/blueprints/youtube.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +4 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts +8 -0
- package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelArticle/index.d.ts +3 -0
- package/dist/types/src/containers/ChannelArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelSettings/ChannelSettings.d.ts +7 -0
- package/dist/types/src/containers/ChannelSettings/ChannelSettings.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelSettings/index.d.ts +3 -0
- package/dist/types/src/containers/ChannelSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/VideoArticle/VideoArticle.d.ts +11 -0
- package/dist/types/src/containers/VideoArticle/VideoArticle.d.ts.map +1 -0
- package/dist/types/src/containers/VideoArticle/index.d.ts +3 -0
- package/dist/types/src/containers/VideoArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/VideoCard/VideoCard.d.ts +9 -0
- package/dist/types/src/containers/VideoCard/VideoCard.d.ts.map +1 -0
- package/dist/types/src/containers/VideoCard/index.d.ts +3 -0
- package/dist/types/src/containers/VideoCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +11 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +4 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +3 -0
- package/dist/types/src/meta.d.ts.map +1 -0
- package/dist/types/src/operations/apis/index.d.ts +2 -0
- package/dist/types/src/operations/apis/index.d.ts.map +1 -0
- package/dist/types/src/operations/apis/youtube/api.d.ts +251 -0
- package/dist/types/src/operations/apis/youtube/api.d.ts.map +1 -0
- package/dist/types/src/operations/apis/youtube/index.d.ts +3 -0
- package/dist/types/src/operations/apis/youtube/index.d.ts.map +1 -0
- package/dist/types/src/operations/apis/youtube/types.d.ts +493 -0
- package/dist/types/src/operations/apis/youtube/types.d.ts.map +1 -0
- package/dist/types/src/operations/clear-synced-videos.d.ts +5 -0
- package/dist/types/src/operations/clear-synced-videos.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +45 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +5 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/services/google-credentials.d.ts +35 -0
- package/dist/types/src/operations/services/google-credentials.d.ts.map +1 -0
- package/dist/types/src/operations/services/index.d.ts +2 -0
- package/dist/types/src/operations/services/index.d.ts.map +1 -0
- package/dist/types/src/operations/sync.d.ts +5 -0
- package/dist/types/src/operations/sync.d.ts.map +1 -0
- package/dist/types/src/operations/sync.test.d.ts +2 -0
- package/dist/types/src/operations/sync.test.d.ts.map +1 -0
- package/dist/types/src/operations/transcript.d.ts +12 -0
- package/dist/types/src/operations/transcript.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +49 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/types/Channel.d.ts +54 -0
- package/dist/types/src/types/Channel.d.ts.map +1 -0
- package/dist/types/src/types/Video.d.ts +41 -0
- package/dist/types/src/types/Video.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +4 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +5 -0
- package/dist/types/src/types/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +113 -0
- package/src/YouTubePlugin.tsx +66 -0
- package/src/blueprints/index.ts +7 -0
- package/src/blueprints/youtube.ts +52 -0
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +148 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/index.ts +7 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +54 -0
- package/src/containers/ChannelArticle/ChannelArticle.tsx +115 -0
- package/src/containers/ChannelArticle/index.ts +7 -0
- package/src/containers/ChannelSettings/ChannelSettings.tsx +34 -0
- package/src/containers/ChannelSettings/index.ts +7 -0
- package/src/containers/VideoArticle/VideoArticle.tsx +109 -0
- package/src/containers/VideoArticle/index.ts +7 -0
- package/src/containers/VideoCard/VideoCard.tsx +86 -0
- package/src/containers/VideoCard/index.ts +7 -0
- package/src/containers/index.ts +24 -0
- package/src/index.ts +8 -0
- package/src/meta.ts +19 -0
- package/src/operations/apis/index.ts +5 -0
- package/src/operations/apis/youtube/api.ts +149 -0
- package/src/operations/apis/youtube/index.ts +6 -0
- package/src/operations/apis/youtube/types.ts +254 -0
- package/src/operations/clear-synced-videos.ts +50 -0
- package/src/operations/definitions.ts +62 -0
- package/src/operations/index.ts +13 -0
- package/src/operations/services/google-credentials.ts +81 -0
- package/src/operations/services/index.ts +5 -0
- package/src/operations/sync.test.ts +114 -0
- package/src/operations/sync.ts +309 -0
- package/src/operations/transcript.ts +47 -0
- package/src/translations.ts +59 -0
- package/src/types/Channel.ts +80 -0
- package/src/types/Video.ts +67 -0
- package/src/types/index.ts +8 -0
- package/src/types/types.ts +10 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Channel_exports
|
|
3
|
+
} from "./chunk-GFRR4TTX.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Video_exports
|
|
6
|
+
} from "./chunk-YMDT37TA.mjs";
|
|
7
|
+
|
|
8
|
+
// src/operations/definitions.ts
|
|
9
|
+
import { Operation } from "@dxos/operation";
|
|
10
|
+
import * as Schema from "effect/Schema";
|
|
11
|
+
import { Database, Feed, Ref } from "@dxos/echo";
|
|
12
|
+
import { CredentialsService } from "@dxos/functions";
|
|
13
|
+
var Sync = Operation.make({
|
|
14
|
+
meta: {
|
|
15
|
+
key: "dxos.org/function/youtube/sync",
|
|
16
|
+
name: "Sync YouTube Channel",
|
|
17
|
+
description: "Sync videos from a YouTube channel to the feed."
|
|
18
|
+
},
|
|
19
|
+
input: Schema.Struct({
|
|
20
|
+
channel: Ref.Ref(Channel_exports.YouTubeChannel).annotations({
|
|
21
|
+
description: "Reference to the YouTube channel to sync videos from."
|
|
22
|
+
}),
|
|
23
|
+
restrictedMode: Schema.Boolean.pipe(Schema.annotations({
|
|
24
|
+
description: "Use restricted mode to limit to max 20 videos. Reduces API calls. Useful for testing or quick syncs."
|
|
25
|
+
}), Schema.optional),
|
|
26
|
+
includeTranscripts: Schema.Boolean.pipe(Schema.annotations({
|
|
27
|
+
description: "Whether to fetch transcripts: Data API when your account can manage the video, otherwise watch-page captions (browser uses a public CORS proxy for YouTube fetches)."
|
|
28
|
+
}), Schema.optional)
|
|
29
|
+
}),
|
|
30
|
+
output: Schema.Struct({
|
|
31
|
+
newVideos: Schema.Number,
|
|
32
|
+
channelTitle: Schema.String.pipe(Schema.optional)
|
|
33
|
+
}),
|
|
34
|
+
types: [
|
|
35
|
+
Channel_exports.YouTubeChannel,
|
|
36
|
+
Video_exports.YouTubeVideo
|
|
37
|
+
],
|
|
38
|
+
services: [
|
|
39
|
+
Database.Service,
|
|
40
|
+
Feed.Service,
|
|
41
|
+
CredentialsService
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
var ClearSyncedVideos = Operation.make({
|
|
45
|
+
meta: {
|
|
46
|
+
key: "dxos.org/function/youtube/clear-synced-videos",
|
|
47
|
+
name: "Clear Synced YouTube Videos",
|
|
48
|
+
description: "Remove all synced videos from the channel by replacing its feed with a new empty feed."
|
|
49
|
+
},
|
|
50
|
+
input: Schema.Struct({
|
|
51
|
+
channel: Ref.Ref(Channel_exports.YouTubeChannel).annotations({
|
|
52
|
+
description: "Reference to the YouTube channel whose synced videos should be cleared."
|
|
53
|
+
})
|
|
54
|
+
}),
|
|
55
|
+
output: Schema.Struct({
|
|
56
|
+
removedVideos: Schema.Number
|
|
57
|
+
}),
|
|
58
|
+
types: [
|
|
59
|
+
Channel_exports.YouTubeChannel,
|
|
60
|
+
Video_exports.YouTubeVideo
|
|
61
|
+
],
|
|
62
|
+
services: [
|
|
63
|
+
Database.Service,
|
|
64
|
+
Feed.Service
|
|
65
|
+
]
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
Sync,
|
|
70
|
+
ClearSyncedVideos
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=chunk-P67QEKBQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/definitions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Operation } from '@dxos/operation';\nimport * as Schema from 'effect/Schema';\n\nimport { Database, Feed, Ref } from '@dxos/echo';\nimport { CredentialsService } from '@dxos/functions';\n\nimport { Channel, Video } from '../types';\n\nexport const Sync = Operation.make({\n meta: {\n key: 'dxos.org/function/youtube/sync',\n name: 'Sync YouTube Channel',\n description: 'Sync videos from a YouTube channel to the feed.',\n },\n input: Schema.Struct({\n channel: Ref.Ref(Channel.YouTubeChannel).annotations({\n description: 'Reference to the YouTube channel to sync videos from.',\n }),\n restrictedMode: Schema.Boolean.pipe(\n Schema.annotations({\n description:\n 'Use restricted mode to limit to max 20 videos. Reduces API calls. Useful for testing or quick syncs.',\n }),\n Schema.optional,\n ),\n includeTranscripts: Schema.Boolean.pipe(\n Schema.annotations({\n description:\n 'Whether to fetch transcripts: Data API when your account can manage the video, otherwise watch-page captions (browser uses a public CORS proxy for YouTube fetches).',\n }),\n Schema.optional,\n ),\n }),\n output: Schema.Struct({\n newVideos: Schema.Number,\n channelTitle: Schema.String.pipe(Schema.optional),\n }),\n types: [Channel.YouTubeChannel, Video.YouTubeVideo],\n services: [Database.Service, Feed.Service, CredentialsService],\n});\n\nexport const ClearSyncedVideos = Operation.make({\n meta: {\n key: 'dxos.org/function/youtube/clear-synced-videos',\n name: 'Clear Synced YouTube Videos',\n description: 'Remove all synced videos from the channel by replacing its feed with a new empty feed.',\n },\n input: Schema.Struct({\n channel: Ref.Ref(Channel.YouTubeChannel).annotations({\n description: 'Reference to the YouTube channel whose synced videos should be cleared.',\n }),\n }),\n output: Schema.Struct({\n removedVideos: Schema.Number,\n }),\n types: [Channel.YouTubeChannel, Video.YouTubeVideo],\n services: [Database.Service, Feed.Service],\n});\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,iBAAiB;AAC1B,YAAYC,YAAY;AAExB,SAASC,UAAUC,MAAMC,WAAW;AACpC,SAASC,0BAA0B;AAI5B,IAAMC,OAAOC,UAAUC,KAAK;EACjCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,SAASC,IAAIA,IAAIC,gBAAQC,cAAc,EAAEC,YAAY;MACnDP,aAAa;IACf,CAAA;IACAQ,gBAAuBC,eAAQC,KACtBH,mBAAY;MACjBP,aACE;IACJ,CAAA,GACOW,eAAQ;IAEjBC,oBAA2BH,eAAQC,KAC1BH,mBAAY;MACjBP,aACE;IACJ,CAAA,GACOW,eAAQ;EAEnB,CAAA;EACAE,QAAeX,cAAO;IACpBY,WAAkBC;IAClBC,cAAqBC,cAAOP,KAAYC,eAAQ;EAClD,CAAA;EACAO,OAAO;IAACb,gBAAQC;IAAgBa,cAAMC;;EACtCC,UAAU;IAACC,SAASC;IAASC,KAAKD;IAASE;;AAC7C,CAAA;AAEO,IAAMC,oBAAoB/B,UAAUC,KAAK;EAC9CC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,SAASC,IAAIA,IAAIC,gBAAQC,cAAc,EAAEC,YAAY;MACnDP,aAAa;IACf,CAAA;EACF,CAAA;EACAa,QAAeX,cAAO;IACpByB,eAAsBZ;EACxB,CAAA;EACAG,OAAO;IAACb,gBAAQC;IAAgBa,cAAMC;;EACtCC,UAAU;IAACC,SAASC;IAASC,KAAKD;;AACpC,CAAA;",
|
|
6
|
+
"names": ["Operation", "Schema", "Database", "Feed", "Ref", "CredentialsService", "Sync", "Operation", "make", "meta", "key", "name", "description", "input", "Struct", "channel", "Ref", "Channel", "YouTubeChannel", "annotations", "restrictedMode", "Boolean", "pipe", "optional", "includeTranscripts", "output", "newVideos", "Number", "channelTitle", "String", "types", "Video", "YouTubeVideo", "services", "Database", "Service", "Feed", "CredentialsService", "ClearSyncedVideos", "removedVideos"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
4
|
+
|
|
5
|
+
// src/types/Video.ts
|
|
6
|
+
var Video_exports = {};
|
|
7
|
+
__export(Video_exports, {
|
|
8
|
+
TranscriptSegment: () => TranscriptSegment,
|
|
9
|
+
YouTubeVideo: () => YouTubeVideo,
|
|
10
|
+
instanceOf: () => instanceOf
|
|
11
|
+
});
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
13
|
+
import { Annotation, Obj, Type } from "@dxos/echo";
|
|
14
|
+
var TranscriptSegment = Schema.Struct({
|
|
15
|
+
/** Transcript text. */
|
|
16
|
+
text: Schema.String,
|
|
17
|
+
/** Start time in seconds. */
|
|
18
|
+
offset: Schema.Number,
|
|
19
|
+
/** Duration in seconds. */
|
|
20
|
+
duration: Schema.Number
|
|
21
|
+
});
|
|
22
|
+
var YouTubeVideo = Schema.Struct({
|
|
23
|
+
/** Video title. */
|
|
24
|
+
title: Schema.String,
|
|
25
|
+
/** YouTube video ID. */
|
|
26
|
+
videoId: Schema.String,
|
|
27
|
+
/** Video description. */
|
|
28
|
+
description: Schema.String.pipe(Schema.optional),
|
|
29
|
+
/** Video URL. */
|
|
30
|
+
url: Schema.String,
|
|
31
|
+
/** Thumbnail URL. */
|
|
32
|
+
thumbnailUrl: Schema.String.pipe(Schema.optional),
|
|
33
|
+
/** Channel name. */
|
|
34
|
+
channelTitle: Schema.String.pipe(Schema.optional),
|
|
35
|
+
/** Published date as ISO string. */
|
|
36
|
+
publishedAt: Schema.String,
|
|
37
|
+
/** Video duration in ISO 8601 format (e.g., PT1H30M15S). */
|
|
38
|
+
duration: Schema.String.pipe(Schema.optional),
|
|
39
|
+
/** View count. */
|
|
40
|
+
viewCount: Schema.Number.pipe(Schema.optional),
|
|
41
|
+
/** Like count. */
|
|
42
|
+
likeCount: Schema.Number.pipe(Schema.optional),
|
|
43
|
+
/** Full transcript text. */
|
|
44
|
+
transcript: Schema.String.pipe(Schema.optional),
|
|
45
|
+
/** Transcript segments with timestamps. */
|
|
46
|
+
transcriptSegments: Schema.Array(TranscriptSegment).pipe(Schema.optional),
|
|
47
|
+
/** True when transcript text was successfully loaded; false when disabled or none available. */
|
|
48
|
+
transcriptFetched: Schema.Boolean.pipe(Schema.optional)
|
|
49
|
+
}).pipe(Type.object({
|
|
50
|
+
typename: "org.dxos.type.youtube-video",
|
|
51
|
+
version: "0.1.0"
|
|
52
|
+
}), Annotation.IconAnnotation.set({
|
|
53
|
+
icon: "ph--play--regular",
|
|
54
|
+
hue: "red"
|
|
55
|
+
}));
|
|
56
|
+
var instanceOf = (value) => Obj.instanceOf(YouTubeVideo, value);
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
YouTubeVideo,
|
|
60
|
+
Video_exports
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=chunk-YMDT37TA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Video.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Type } from '@dxos/echo';\n\n/**\n * Transcript segment from a YouTube video.\n */\nexport const TranscriptSegment = Schema.Struct({\n /** Transcript text. */\n text: Schema.String,\n /** Start time in seconds. */\n offset: Schema.Number,\n /** Duration in seconds. */\n duration: Schema.Number,\n});\n\nexport type TranscriptSegment = Schema.Schema.Type<typeof TranscriptSegment>;\n\n/**\n * YouTubeVideo schema representing a video from a YouTube channel.\n */\nexport const YouTubeVideo = Schema.Struct({\n /** Video title. */\n title: Schema.String,\n /** YouTube video ID. */\n videoId: Schema.String,\n /** Video description. */\n description: Schema.String.pipe(Schema.optional),\n /** Video URL. */\n url: Schema.String,\n /** Thumbnail URL. */\n thumbnailUrl: Schema.String.pipe(Schema.optional),\n /** Channel name. */\n channelTitle: Schema.String.pipe(Schema.optional),\n /** Published date as ISO string. */\n publishedAt: Schema.String,\n /** Video duration in ISO 8601 format (e.g., PT1H30M15S). */\n duration: Schema.String.pipe(Schema.optional),\n /** View count. */\n viewCount: Schema.Number.pipe(Schema.optional),\n /** Like count. */\n likeCount: Schema.Number.pipe(Schema.optional),\n /** Full transcript text. */\n transcript: Schema.String.pipe(Schema.optional),\n /** Transcript segments with timestamps. */\n transcriptSegments: Schema.Array(TranscriptSegment).pipe(Schema.optional),\n /** True when transcript text was successfully loaded; false when disabled or none available. */\n transcriptFetched: Schema.Boolean.pipe(Schema.optional),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.youtube-video',\n version: '0.1.0',\n }),\n Annotation.IconAnnotation.set({\n icon: 'ph--play--regular',\n hue: 'red',\n }),\n);\n\nexport interface YouTubeVideo extends Schema.Schema.Type<typeof YouTubeVideo> {}\n\n/** Checks if a value is a YouTubeVideo object. */\nexport const instanceOf = (value: unknown): value is YouTubeVideo => Obj.instanceOf(YouTubeVideo, value);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,KAAKC,YAAY;AAK/B,IAAMC,oBAA2BC,cAAO;;EAE7CC,MAAaC;;EAEbC,QAAeC;;EAEfC,UAAiBD;AACnB,CAAA;AAOO,IAAME,eAAsBN,cAAO;;EAExCO,OAAcL;;EAEdM,SAAgBN;;EAEhBO,aAAoBP,cAAOQ,KAAYC,eAAQ;;EAE/CC,KAAYV;;EAEZW,cAAqBX,cAAOQ,KAAYC,eAAQ;;EAEhDG,cAAqBZ,cAAOQ,KAAYC,eAAQ;;EAEhDI,aAAoBb;;EAEpBG,UAAiBH,cAAOQ,KAAYC,eAAQ;;EAE5CK,WAAkBZ,cAAOM,KAAYC,eAAQ;;EAE7CM,WAAkBb,cAAOM,KAAYC,eAAQ;;EAE7CO,YAAmBhB,cAAOQ,KAAYC,eAAQ;;EAE9CQ,oBAA2BC,aAAMrB,iBAAAA,EAAmBW,KAAYC,eAAQ;;EAExEU,mBAA0BC,eAAQZ,KAAYC,eAAQ;AACxD,CAAA,EAAGD,KACDa,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,WAAWC,eAAeC,IAAI;EAC5BC,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAMK,IAAMC,aAAa,CAACC,UAA0CC,IAAIF,WAAW1B,cAAc2B,KAAAA;",
|
|
6
|
+
"names": ["Schema", "Annotation", "Obj", "Type", "TranscriptSegment", "Struct", "text", "String", "offset", "Number", "duration", "YouTubeVideo", "title", "videoId", "description", "pipe", "optional", "url", "thumbnailUrl", "channelTitle", "publishedAt", "viewCount", "likeCount", "transcript", "transcriptSegments", "Array", "transcriptFetched", "Boolean", "Type", "object", "typename", "version", "Annotation", "IconAnnotation", "set", "icon", "hue", "instanceOf", "value", "Obj"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/operations/index.ts
|
|
2
|
+
import { OperationHandlerSet } from "@dxos/operation";
|
|
3
|
+
var YouTubeHandlers = OperationHandlerSet.lazy(() => import("./clear-synced-videos-EVMJIZPD.mjs"), () => import("./sync-423Q4BDD.mjs"));
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
YouTubeHandlers
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=chunk-Z3DGTMKC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/operation';\n\nexport { YouTube } from './apis';\nexport * from './definitions';\n\nexport const YouTubeHandlers = OperationHandlerSet.lazy(\n () => import('./clear-synced-videos'),\n () => import('./sync'),\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,2BAA2B;AAK7B,IAAMC,kBAAkBC,oBAAoBC,KACjD,MAAM,OAAO,oCAAA,GACb,MAAM,OAAO,qBAAA,CAAA;",
|
|
6
|
+
"names": ["OperationHandlerSet", "YouTubeHandlers", "OperationHandlerSet", "lazy"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClearSyncedVideos
|
|
3
|
+
} from "./chunk-P67QEKBQ.mjs";
|
|
4
|
+
import "./chunk-GFRR4TTX.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Video_exports
|
|
7
|
+
} from "./chunk-YMDT37TA.mjs";
|
|
8
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
9
|
+
|
|
10
|
+
// src/operations/clear-synced-videos.ts
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { Database, Feed, Filter, Obj, Ref } from "@dxos/echo";
|
|
13
|
+
import { log } from "@dxos/log";
|
|
14
|
+
import { Operation } from "@dxos/operation";
|
|
15
|
+
var __dxlog_file = "/Users/mykola/dev/dxos/packages/plugins/plugin-youtube/src/operations/clear-synced-videos.ts";
|
|
16
|
+
var handler = ClearSyncedVideos.pipe(Operation.withHandler(({ channel: channelRef }) => Effect.gen(function* () {
|
|
17
|
+
log("clearing youtube channel synced videos", {
|
|
18
|
+
channel: channelRef.dxn.toString()
|
|
19
|
+
}, {
|
|
20
|
+
F: __dxlog_file,
|
|
21
|
+
L: 18,
|
|
22
|
+
S: this,
|
|
23
|
+
C: (f, a) => f(...a)
|
|
24
|
+
});
|
|
25
|
+
const channel = yield* Database.load(channelRef);
|
|
26
|
+
const oldFeed = yield* Database.load(channel.feed);
|
|
27
|
+
const videos = yield* Feed.runQuery(oldFeed, Filter.type(Video_exports.YouTubeVideo));
|
|
28
|
+
log("removing synced videos", {
|
|
29
|
+
count: videos.length
|
|
30
|
+
}, {
|
|
31
|
+
F: __dxlog_file,
|
|
32
|
+
L: 23,
|
|
33
|
+
S: this,
|
|
34
|
+
C: (f, a) => f(...a)
|
|
35
|
+
});
|
|
36
|
+
const newFeed = Feed.make();
|
|
37
|
+
yield* Database.add(newFeed);
|
|
38
|
+
Obj.setParent(newFeed, channel);
|
|
39
|
+
Obj.change(channel, (mutable) => {
|
|
40
|
+
mutable.feed = Ref.make(newFeed);
|
|
41
|
+
delete mutable.lastSyncedAt;
|
|
42
|
+
});
|
|
43
|
+
if (videos.length > 0) {
|
|
44
|
+
yield* Feed.remove(oldFeed, videos);
|
|
45
|
+
}
|
|
46
|
+
for (const video of videos) {
|
|
47
|
+
yield* Database.remove(video);
|
|
48
|
+
}
|
|
49
|
+
yield* Database.remove(oldFeed);
|
|
50
|
+
log("replaced youtube channel feed", {
|
|
51
|
+
removedVideos: videos.length
|
|
52
|
+
}, {
|
|
53
|
+
F: __dxlog_file,
|
|
54
|
+
L: 44,
|
|
55
|
+
S: this,
|
|
56
|
+
C: (f, a) => f(...a)
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
removedVideos: videos.length
|
|
60
|
+
};
|
|
61
|
+
})));
|
|
62
|
+
var clear_synced_videos_default = handler;
|
|
63
|
+
export {
|
|
64
|
+
clear_synced_videos_default as default
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=clear-synced-videos-EVMJIZPD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/clear-synced-videos.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Operation } from '@dxos/operation';\n\nimport { Channel, Video } from '../types';\n\nimport { ClearSyncedVideos } from './definitions';\n\nconst handler: Operation.WithHandler<typeof ClearSyncedVideos> = ClearSyncedVideos.pipe(\n Operation.withHandler(({ channel: channelRef }) =>\n Effect.gen(function* () {\n log('clearing youtube channel synced videos', { channel: channelRef.dxn.toString() });\n const channel = (yield* Database.load(channelRef)) as Channel.YouTubeChannel;\n const oldFeed = yield* Database.load(channel.feed as Ref.Ref<Feed.Feed>);\n\n const videos = yield* Feed.runQuery(oldFeed, Filter.type(Video.YouTubeVideo));\n log('removing synced videos', { count: videos.length });\n\n const newFeed = Feed.make();\n yield* Database.add(newFeed);\n Obj.setParent(newFeed, channel);\n\n Obj.change(channel, (mutable) => {\n mutable.feed = Ref.make(newFeed);\n delete mutable.lastSyncedAt;\n });\n\n if (videos.length > 0) {\n yield* Feed.remove(oldFeed, videos);\n }\n\n for (const video of videos) {\n yield* Database.remove(video);\n }\n\n yield* Database.remove(oldFeed);\n\n log('replaced youtube channel feed', { removedVideos: videos.length });\n return { removedVideos: videos.length };\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,UAAUC,MAAMC,QAAQC,KAAKC,WAAW;AACjD,SAASC,WAAW;AACpB,SAASC,iBAAiB;;AAM1B,IAAMC,UAA2DC,kBAAkBC,KACjFC,UAAUC,YAAY,CAAC,EAAEC,SAASC,WAAU,MACnCC,WAAI,aAAA;AACTC,MAAI,0CAA0C;IAAEH,SAASC,WAAWG,IAAIC,SAAQ;EAAG,GAAA;;;;;;AACnF,QAAML,UAAW,OAAOM,SAASC,KAAKN,UAAAA;AACtC,QAAMO,UAAU,OAAOF,SAASC,KAAKP,QAAQS,IAAI;AAEjD,QAAMC,SAAS,OAAOC,KAAKC,SAASJ,SAASK,OAAOC,KAAKC,cAAMC,YAAY,CAAA;AAC3Eb,MAAI,0BAA0B;IAAEc,OAAOP,OAAOQ;EAAO,GAAA;;;;;;AAErD,QAAMC,UAAUR,KAAKS,KAAI;AACzB,SAAOd,SAASe,IAAIF,OAAAA;AACpBG,MAAIC,UAAUJ,SAASnB,OAAAA;AAEvBsB,MAAIE,OAAOxB,SAAS,CAACyB,YAAAA;AACnBA,YAAQhB,OAAOiB,IAAIN,KAAKD,OAAAA;AACxB,WAAOM,QAAQE;EACjB,CAAA;AAEA,MAAIjB,OAAOQ,SAAS,GAAG;AACrB,WAAOP,KAAKiB,OAAOpB,SAASE,MAAAA;EAC9B;AAEA,aAAWmB,SAASnB,QAAQ;AAC1B,WAAOJ,SAASsB,OAAOC,KAAAA;EACzB;AAEA,SAAOvB,SAASsB,OAAOpB,OAAAA;AAEvBL,MAAI,iCAAiC;IAAE2B,eAAepB,OAAOQ;EAAO,GAAA;;;;;;AACpE,SAAO;IAAEY,eAAepB,OAAOQ;EAAO;AACxC,CAAA,CAAA,CAAA;AAIJ,IAAA,8BAAevB;",
|
|
6
|
+
"names": ["Effect", "Database", "Feed", "Filter", "Obj", "Ref", "log", "Operation", "handler", "ClearSyncedVideos", "pipe", "Operation", "withHandler", "channel", "channelRef", "gen", "log", "dxn", "toString", "Database", "load", "oldFeed", "feed", "videos", "Feed", "runQuery", "Filter", "type", "Video", "YouTubeVideo", "count", "length", "newFeed", "make", "add", "Obj", "setParent", "change", "mutable", "Ref", "lastSyncedAt", "remove", "video", "removedVideos"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-DFRSBBSO.mjs";
|
|
4
|
+
import {
|
|
5
|
+
youtube_default
|
|
6
|
+
} from "./chunk-MUE22YUM.mjs";
|
|
7
|
+
import {
|
|
8
|
+
YouTubeHandlers
|
|
9
|
+
} from "./chunk-Z3DGTMKC.mjs";
|
|
10
|
+
import {
|
|
11
|
+
youtube_exports
|
|
12
|
+
} from "./chunk-C26XKDK2.mjs";
|
|
13
|
+
import {
|
|
14
|
+
ClearSyncedVideos,
|
|
15
|
+
Sync
|
|
16
|
+
} from "./chunk-P67QEKBQ.mjs";
|
|
17
|
+
import {
|
|
18
|
+
Channel_exports
|
|
19
|
+
} from "./chunk-GFRR4TTX.mjs";
|
|
20
|
+
import {
|
|
21
|
+
Video_exports
|
|
22
|
+
} from "./chunk-YMDT37TA.mjs";
|
|
23
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
24
|
+
|
|
25
|
+
// src/YouTubePlugin.tsx
|
|
26
|
+
import * as Effect from "effect/Effect";
|
|
27
|
+
import * as Option from "effect/Option";
|
|
28
|
+
import { ActivationEvent, Plugin } from "@dxos/app-framework";
|
|
29
|
+
import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
|
|
30
|
+
import { Annotation } from "@dxos/echo";
|
|
31
|
+
import { Operation } from "@dxos/operation";
|
|
32
|
+
import { AttentionEvents } from "@dxos/plugin-attention";
|
|
33
|
+
import { SpaceOperation } from "@dxos/plugin-space/operations";
|
|
34
|
+
|
|
35
|
+
// src/capabilities/app-graph-builder/index.ts
|
|
36
|
+
import { Capability } from "@dxos/app-framework";
|
|
37
|
+
var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-MJY6A6SN.mjs"));
|
|
38
|
+
|
|
39
|
+
// src/capabilities/blueprint-definition/index.ts
|
|
40
|
+
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
41
|
+
var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-FRYUYJ22.mjs"));
|
|
42
|
+
|
|
43
|
+
// src/capabilities/react-surface/index.ts
|
|
44
|
+
import { Capability as Capability3 } from "@dxos/app-framework";
|
|
45
|
+
var ReactSurface = Capability3.lazy("ReactSurface", () => import("./react-surface-EDA5VYDC.mjs"));
|
|
46
|
+
|
|
47
|
+
// src/translations.ts
|
|
48
|
+
var translations = [
|
|
49
|
+
{
|
|
50
|
+
"en-US": {
|
|
51
|
+
[Channel_exports.YouTubeChannel.typename]: {
|
|
52
|
+
"typename label": "YouTube Channel",
|
|
53
|
+
"typename label_zero": "YouTube Channels",
|
|
54
|
+
"typename label_one": "YouTube Channel",
|
|
55
|
+
"typename label_other": "YouTube Channels",
|
|
56
|
+
"object name placeholder": "New YouTube channel",
|
|
57
|
+
"add object label": "Add YouTube channel",
|
|
58
|
+
"rename object label": "Rename YouTube channel",
|
|
59
|
+
"delete object label": "Delete YouTube channel",
|
|
60
|
+
"object deleted label": "YouTube channel deleted"
|
|
61
|
+
},
|
|
62
|
+
[Video_exports.YouTubeVideo.typename]: {
|
|
63
|
+
"typename label": "Video",
|
|
64
|
+
"typename label_zero": "Videos",
|
|
65
|
+
"typename label_one": "Video",
|
|
66
|
+
"typename label_other": "Videos",
|
|
67
|
+
"object name placeholder": "New video",
|
|
68
|
+
"add object label": "Add video",
|
|
69
|
+
"rename object label": "Rename video",
|
|
70
|
+
"delete object label": "Delete video",
|
|
71
|
+
"object deleted label": "Video deleted"
|
|
72
|
+
},
|
|
73
|
+
[meta.id]: {
|
|
74
|
+
"plugin name": "YouTube",
|
|
75
|
+
"channel label": "YouTube Channel",
|
|
76
|
+
"video label": "Video",
|
|
77
|
+
"sync channel label": "Sync channel",
|
|
78
|
+
"sync channel error title": "Failed to sync channel",
|
|
79
|
+
"clear synced videos label": "Clear synced videos",
|
|
80
|
+
"clear synced videos error title": "Failed to clear synced videos",
|
|
81
|
+
"close label": "Close",
|
|
82
|
+
"new channel label": "New YouTube Channel",
|
|
83
|
+
"empty channel message": "No videos synced yet",
|
|
84
|
+
"no video message": "Select a video to view it",
|
|
85
|
+
"channel account label": "Account",
|
|
86
|
+
"channel account placeholder": "Select account...",
|
|
87
|
+
"channel sync label": "Channel Sync",
|
|
88
|
+
"enable background sync label": "Enable background sync",
|
|
89
|
+
"enabling background sync label": "Enabling...",
|
|
90
|
+
"disable background sync label": "Disable background sync",
|
|
91
|
+
"view trigger label": "View trigger"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
// src/YouTubePlugin.tsx
|
|
98
|
+
var YouTubePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
|
|
99
|
+
activatesOn: ActivationEvent.allOf(AppActivationEvents.SetupAppGraph, AttentionEvents.AttentionReady),
|
|
100
|
+
activate: AppGraphBuilder
|
|
101
|
+
}), AppPlugin.addBlueprintDefinitionModule({
|
|
102
|
+
activate: BlueprintDefinition
|
|
103
|
+
}), AppPlugin.addMetadataModule({
|
|
104
|
+
metadata: [
|
|
105
|
+
{
|
|
106
|
+
id: Channel_exports.YouTubeChannel.typename,
|
|
107
|
+
metadata: {
|
|
108
|
+
label: (object) => object.name ?? object.channelUrl ?? object.channelId ?? "YouTube",
|
|
109
|
+
icon: Annotation.IconAnnotation.get(Channel_exports.YouTubeChannel).pipe(Option.getOrThrow).icon,
|
|
110
|
+
iconHue: Annotation.IconAnnotation.get(Channel_exports.YouTubeChannel).pipe(Option.getOrThrow).hue ?? "white",
|
|
111
|
+
blueprints: [
|
|
112
|
+
youtube_default.key
|
|
113
|
+
],
|
|
114
|
+
inputSchema: Channel_exports.CreateYouTubeChannelSchema,
|
|
115
|
+
createObject: (props, options) => Effect.gen(function* () {
|
|
116
|
+
const object = Channel_exports.make(props);
|
|
117
|
+
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
118
|
+
object,
|
|
119
|
+
target: options.target,
|
|
120
|
+
hidden: true,
|
|
121
|
+
targetNodeId: options.targetNodeId
|
|
122
|
+
});
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: Video_exports.YouTubeVideo.typename,
|
|
128
|
+
metadata: {
|
|
129
|
+
label: (object) => object.title,
|
|
130
|
+
icon: Annotation.IconAnnotation.get(Video_exports.YouTubeVideo).pipe(Option.getOrThrow).icon,
|
|
131
|
+
iconHue: Annotation.IconAnnotation.get(Video_exports.YouTubeVideo).pipe(Option.getOrThrow).hue ?? "white"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}), AppPlugin.addSchemaModule({
|
|
136
|
+
schema: [
|
|
137
|
+
Channel_exports.YouTubeChannel,
|
|
138
|
+
Video_exports.YouTubeVideo
|
|
139
|
+
]
|
|
140
|
+
}), AppPlugin.addSurfaceModule({
|
|
141
|
+
activate: ReactSurface
|
|
142
|
+
}), AppPlugin.addTranslationsModule({
|
|
143
|
+
translations
|
|
144
|
+
}), Plugin.make);
|
|
145
|
+
export {
|
|
146
|
+
ClearSyncedVideos,
|
|
147
|
+
Sync,
|
|
148
|
+
youtube_exports as YouTube,
|
|
149
|
+
YouTubeHandlers,
|
|
150
|
+
YouTubePlugin,
|
|
151
|
+
meta
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/YouTubePlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { ActivationEvent, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\n\nimport { YouTubeBlueprint } from './blueprints';\nimport { AppGraphBuilder, BlueprintDefinition, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, Video } from './types';\n\nexport const YouTubePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({\n activatesOn: ActivationEvent.allOf(AppActivationEvents.SetupAppGraph, AttentionEvents.AttentionReady),\n activate: AppGraphBuilder,\n }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: [\n {\n id: Channel.YouTubeChannel.typename,\n metadata: {\n label: (object: Channel.YouTubeChannel) => object.name ?? object.channelUrl ?? object.channelId ?? 'YouTube',\n icon: Annotation.IconAnnotation.get(Channel.YouTubeChannel).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Channel.YouTubeChannel).pipe(Option.getOrThrow).hue ?? 'white',\n blueprints: [YouTubeBlueprint.key],\n inputSchema: Channel.CreateYouTubeChannelSchema,\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Channel.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n {\n id: Video.YouTubeVideo.typename,\n metadata: {\n label: (object: Video.YouTubeVideo) => object.title,\n icon: Annotation.IconAnnotation.get(Video.YouTubeVideo).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Video.YouTubeVideo).pipe(Option.getOrThrow).hue ?? 'white',\n },\n },\n ],\n }),\n AppPlugin.addSchemaModule({\n schema: [Channel.YouTubeChannel, Video.YouTubeVideo],\n }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel, Video } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Channel.YouTubeChannel.typename]: {\n 'typename label': 'YouTube Channel',\n 'typename label_zero': 'YouTube Channels',\n 'typename label_one': 'YouTube Channel',\n 'typename label_other': 'YouTube Channels',\n 'object name placeholder': 'New YouTube channel',\n 'add object label': 'Add YouTube channel',\n 'rename object label': 'Rename YouTube channel',\n 'delete object label': 'Delete YouTube channel',\n 'object deleted label': 'YouTube channel deleted',\n },\n [Video.YouTubeVideo.typename]: {\n 'typename label': 'Video',\n 'typename label_zero': 'Videos',\n 'typename label_one': 'Video',\n 'typename label_other': 'Videos',\n 'object name placeholder': 'New video',\n 'add object label': 'Add video',\n 'rename object label': 'Rename video',\n 'delete object label': 'Delete video',\n 'object deleted label': 'Video deleted',\n },\n [meta.id]: {\n 'plugin name': 'YouTube',\n 'channel label': 'YouTube Channel',\n 'video label': 'Video',\n 'sync channel label': 'Sync channel',\n 'sync channel error title': 'Failed to sync channel',\n 'clear synced videos label': 'Clear synced videos',\n 'clear synced videos error title': 'Failed to clear synced videos',\n 'close label': 'Close',\n 'new channel label': 'New YouTube Channel',\n 'empty channel message': 'No videos synced yet',\n 'no video message': 'Select a video to view it',\n\n 'channel account label': 'Account',\n 'channel account placeholder': 'Select account...',\n 'channel sync label': 'Channel Sync',\n\n 'enable background sync label': 'Enable background sync',\n 'enabling background sync label': 'Enabling...',\n 'disable background sync label': 'Disable background sync',\n 'view trigger label': 'View trigger',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,iBAAiBC,cAAc;AACxC,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAEhC,SAASC,sBAAsB;;;ACT/B,SAASC,kBAAkB;AAEpB,IAAMC,kBAAkBC,WAAWC,KAAK,mBAAmB,MAAM,OAAO,kCAAA,CAAA;;;ACF/E,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,sBAAsBC,YAAWC,KAAK,uBAAuB,MAAM,OAAO,qCAAA,CAAA;;;ACFvF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACGlE,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,gBAAQC,eAAeC,QAAQ,GAAG;QACjC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,cAAMC,aAAaF,QAAQ,GAAG;QAC7B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACG,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,sBAAsB;QACtB,4BAA4B;QAC5B,6BAA6B;QAC7B,mCAAmC;QACnC,eAAe;QACf,qBAAqB;QACrB,yBAAyB;QACzB,oBAAoB;QAEpB,yBAAyB;QACzB,+BAA+B;QAC/B,sBAAsB;QAEtB,gCAAgC;QAChC,kCAAkC;QAClC,iCAAiC;QACjC,sBAAsB;MACxB;IACF;EACF;;;;AJpCK,IAAMC,gBAAgBC,OAAOC,OAAOC,IAAAA,EAAMC,KAC/CC,UAAUC,kBAAkB;EAC1BC,aAAaC,gBAAgBC,MAAMC,oBAAoBC,eAAeC,gBAAgBC,cAAc;EACpGC,UAAUC;AACZ,CAAA,GACAV,UAAUW,6BAA6B;EAAEF,UAAUG;AAAoB,CAAA,GACvEZ,UAAUa,kBAAkB;EAC1BC,UAAU;IACR;MACEC,IAAIC,gBAAQC,eAAeC;MAC3BJ,UAAU;QACRK,OAAO,CAACC,WAAmCA,OAAOC,QAAQD,OAAOE,cAAcF,OAAOG,aAAa;QACnGC,MAAMC,WAAWC,eAAeC,IAAIX,gBAAQC,cAAc,EAAElB,KAAY6B,iBAAU,EAAEJ;QACpFK,SAASJ,WAAWC,eAAeC,IAAIX,gBAAQC,cAAc,EAAElB,KAAY6B,iBAAU,EAAEE,OAAO;QAC9FC,YAAY;UAACC,gBAAiBC;;QAC9BC,aAAalB,gBAAQmB;QACrBC,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,gBAAMnB,SAASJ,gBAAQwB,KAAKH,KAAAA;AAC5B,iBAAO,OAAOI,UAAUC,OAAOC,eAAeC,WAAW;YACvDxB;YACAyB,QAAQP,QAAQO;YAChBC,QAAQ;YACRC,cAAcT,QAAQS;UACxB,CAAA;QACF,CAAA;MACJ;IACF;IACA;MACEhC,IAAIiC,cAAMC,aAAa/B;MACvBJ,UAAU;QACRK,OAAO,CAACC,WAA+BA,OAAO8B;QAC9C1B,MAAMC,WAAWC,eAAeC,IAAIqB,cAAMC,YAAY,EAAElD,KAAY6B,iBAAU,EAAEJ;QAChFK,SAASJ,WAAWC,eAAeC,IAAIqB,cAAMC,YAAY,EAAElD,KAAY6B,iBAAU,EAAEE,OAAO;MAC5F;IACF;;AAEJ,CAAA,GACA9B,UAAUmD,gBAAgB;EACxBC,QAAQ;IAACpC,gBAAQC;IAAgB+B,cAAMC;;AACzC,CAAA,GACAjD,UAAUqD,iBAAiB;EAAE5C,UAAU6C;AAAa,CAAA,GACpDtD,UAAUuD,sBAAsB;EAAEC;AAAa,CAAA,GAC/C5D,OAAO4C,IAAI;",
|
|
6
|
+
"names": ["Effect", "Option", "ActivationEvent", "Plugin", "AppActivationEvents", "AppPlugin", "Annotation", "Operation", "AttentionEvents", "SpaceOperation", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "translations", "Channel", "YouTubeChannel", "typename", "Video", "YouTubeVideo", "meta", "id", "YouTubePlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activatesOn", "ActivationEvent", "allOf", "AppActivationEvents", "SetupAppGraph", "AttentionEvents", "AttentionReady", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Channel", "YouTubeChannel", "typename", "label", "object", "name", "channelUrl", "channelId", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "blueprints", "YouTubeBlueprint", "key", "inputSchema", "CreateYouTubeChannelSchema", "createObject", "props", "options", "gen", "make", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "Video", "YouTubeVideo", "title", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"src/meta.ts":{"bytes":1822,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/operations/services/google-credentials.ts":{"bytes":8745,"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/operations/apis/youtube/types.ts":{"bytes":23707,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true}],"format":"esm"},"src/operations/apis/youtube/api.ts":{"bytes":17186,"imports":[{"path":"@effect/platform/HttpClient","kind":"import-statement","external":true},{"path":"@effect/platform/HttpClientRequest","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schedule","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/operations/services/google-credentials.ts","kind":"import-statement","original":"../../services/google-credentials"},{"path":"src/operations/apis/youtube/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/operations/apis/youtube/index.ts":{"bytes":562,"imports":[{"path":"src/operations/apis/youtube/api.ts","kind":"import-statement","original":"./api"},{"path":"src/operations/apis/youtube/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/operations/apis/index.ts":{"bytes":540,"imports":[{"path":"src/operations/apis/youtube/index.ts","kind":"import-statement","original":"./youtube"}],"format":"esm"},"src/types/types.ts":{"bytes":814,"imports":[],"format":"esm"},"src/types/Channel.ts":{"bytes":8955,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"format":"esm"},"src/types/Video.ts":{"bytes":7281,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":749,"imports":[{"path":"src/types/types.ts","kind":"import-statement","original":"./types"},{"path":"src/types/Channel.ts","kind":"import-statement","original":"./Channel"},{"path":"src/types/Video.ts","kind":"import-statement","original":"./Video"}],"format":"esm"},"src/operations/definitions.ts":{"bytes":7475,"imports":[{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/clear-synced-videos.ts":{"bytes":6185,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/operations/definitions.ts","kind":"import-statement","original":"./definitions"}],"format":"esm"},"src/operations/transcript.ts":{"bytes":5127,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"youtube-caption-extractor","kind":"dynamic-import","external":true}],"format":"esm"},"src/operations/sync.ts":{"bytes":38146,"imports":[{"path":"@effect/platform/FetchHttpClient","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"effect/Stream","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/operations/apis/index.ts","kind":"import-statement","original":"./apis"},{"path":"src/operations/definitions.ts","kind":"import-statement","original":"./definitions"},{"path":"src/operations/services/google-credentials.ts","kind":"import-statement","original":"./services/google-credentials"},{"path":"src/operations/transcript.ts","kind":"import-statement","original":"./transcript"}],"format":"esm"},"src/operations/index.ts":{"bytes":1261,"imports":[{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"src/operations/apis/index.ts","kind":"import-statement","original":"./apis"},{"path":"src/operations/definitions.ts","kind":"import-statement","original":"./definitions"},{"path":"src/operations/clear-synced-videos.ts","kind":"dynamic-import","original":"./clear-synced-videos"},{"path":"src/operations/sync.ts","kind":"dynamic-import","original":"./sync"}],"format":"esm"},"src/blueprints/youtube.ts":{"bytes":5249,"imports":[{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/operations/index.ts","kind":"import-statement","original":"../operations"}],"format":"esm"},"src/blueprints/index.ts":{"bytes":648,"imports":[{"path":"src/blueprints/youtube.ts","kind":"import-statement","original":"./youtube"}],"format":"esm"},"src/capabilities/app-graph-builder/app-graph-builder.ts":{"bytes":23196,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-automation","kind":"import-statement","external":true},{"path":"@dxos/plugin-deck/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"src/operations/index.ts","kind":"import-statement","original":"../../operations"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/capabilities/app-graph-builder/index.ts":{"bytes":953,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/app-graph-builder/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"}],"format":"esm"},"src/capabilities/blueprint-definition/blueprint-definition.ts":{"bytes":1998,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"src/blueprints/index.ts","kind":"import-statement","original":"../../blueprints"}],"format":"esm"},"src/capabilities/blueprint-definition/index.ts":{"bytes":987,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/blueprint-definition/blueprint-definition.ts","kind":"dynamic-import","original":"./blueprint-definition"}],"format":"esm"},"src/containers/ChannelArticle/ChannelArticle.tsx":{"bytes":14202,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/types/Video.ts","kind":"import-statement","original":"../../types/Video"}],"format":"esm"},"src/containers/ChannelArticle/index.ts":{"bytes":686,"imports":[{"path":"src/containers/ChannelArticle/ChannelArticle.tsx","kind":"import-statement","original":"./ChannelArticle"}],"format":"esm"},"src/containers/ChannelSettings/ChannelSettings.tsx":{"bytes":4207,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/containers/ChannelSettings/index.ts":{"bytes":698,"imports":[{"path":"src/containers/ChannelSettings/ChannelSettings.tsx","kind":"import-statement","original":"./ChannelSettings"}],"format":"esm"},"src/containers/VideoArticle/VideoArticle.tsx":{"bytes":12805,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/containers/VideoArticle/index.ts":{"bytes":666,"imports":[{"path":"src/containers/VideoArticle/VideoArticle.tsx","kind":"import-statement","original":"./VideoArticle"}],"format":"esm"},"src/containers/VideoCard/VideoCard.tsx":{"bytes":10588,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/containers/VideoCard/index.ts":{"bytes":634,"imports":[{"path":"src/containers/VideoCard/VideoCard.tsx","kind":"import-statement","original":"./VideoCard"}],"format":"esm"},"src/containers/index.ts":{"bytes":2391,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/ChannelArticle/index.ts","kind":"dynamic-import","original":"./ChannelArticle"},{"path":"src/containers/ChannelSettings/index.ts","kind":"dynamic-import","original":"./ChannelSettings"},{"path":"src/containers/VideoArticle/index.ts","kind":"dynamic-import","original":"./VideoArticle"},{"path":"src/containers/VideoCard/index.ts","kind":"dynamic-import","original":"./VideoCard"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":7794,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"src/containers/index.ts","kind":"import-statement","original":"../../containers"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":919,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":725,"imports":[{"path":"src/capabilities/app-graph-builder/index.ts","kind":"import-statement","original":"./app-graph-builder"},{"path":"src/capabilities/blueprint-definition/index.ts","kind":"import-statement","original":"./blueprint-definition"},{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":6863,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/YouTubePlugin.tsx":{"bytes":10192,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/operations","kind":"import-statement","external":true},{"path":"src/blueprints/index.ts","kind":"import-statement","original":"./blueprints"},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":657,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/operations/index.ts","kind":"import-statement","original":"./operations"},{"path":"src/YouTubePlugin.tsx","kind":"import-statement","original":"./YouTubePlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/ChannelSettings-ZYUNW3VS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2397},"dist/lib/browser/ChannelSettings-ZYUNW3VS.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/ChannelSettings/index.ts","inputs":{"src/containers/ChannelSettings/ChannelSettings.tsx":{"bytesInOutput":1382},"src/containers/ChannelSettings/index.ts":{"bytesInOutput":47}},"bytes":1662},"dist/lib/browser/VideoArticle-FC4A6E7B.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6962},"dist/lib/browser/VideoArticle-FC4A6E7B.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/VideoArticle/index.ts","inputs":{"src/containers/VideoArticle/VideoArticle.tsx":{"bytesInOutput":4050},"src/containers/VideoArticle/index.ts":{"bytesInOutput":41}},"bytes":4309},"dist/lib/browser/VideoCard-CCPXDCB7.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5661},"dist/lib/browser/VideoCard-CCPXDCB7.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/VideoCard/index.ts","inputs":{"src/containers/VideoCard/VideoCard.tsx":{"bytesInOutput":3323},"src/containers/VideoCard/index.ts":{"bytesInOutput":35}},"bytes":3561},"dist/lib/browser/react-surface-EDA5VYDC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5118},"dist/lib/browser/react-surface-EDA5VYDC.mjs":{"imports":[{"path":"dist/lib/browser/chunk-DFRSBBSO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/browser/ChannelArticle-CDQR4BBY.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/ChannelSettings-ZYUNW3VS.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/VideoArticle-FC4A6E7B.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/VideoCard-CCPXDCB7.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":1709},"src/containers/index.ts":{"bytesInOutput":314}},"bytes":2448},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9377},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-DFRSBBSO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-MUE22YUM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-Z3DGTMKC.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-C26XKDK2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/operations","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/app-graph-builder-MJY6A6SN.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/blueprint-definition-FRYUYJ22.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-EDA5VYDC.mjs","kind":"dynamic-import"}],"exports":["ClearSyncedVideos","Sync","YouTube","YouTubeHandlers","YouTubePlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/YouTubePlugin.tsx":{"bytesInOutput":2226},"src/capabilities/app-graph-builder/index.ts":{"bytesInOutput":158},"src/capabilities/index.ts":{"bytesInOutput":0},"src/capabilities/blueprint-definition/index.ts":{"bytesInOutput":185},"src/capabilities/react-surface/index.ts":{"bytesInOutput":164},"src/translations.ts":{"bytesInOutput":2000}},"bytes":5535},"dist/lib/browser/blueprints/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/blueprints/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MUE22YUM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-Z3DGTMKC.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-C26XKDK2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["YouTubeBlueprint"],"entryPoint":"src/blueprints/index.ts","inputs":{},"bytes":336},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["Channel","Video","YouTubeOperation"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":290},"dist/lib/browser/clear-synced-videos-EVMJIZPD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3107},"dist/lib/browser/clear-synced-videos-EVMJIZPD.mjs":{"imports":[{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/clear-synced-videos.ts","inputs":{"src/operations/clear-synced-videos.ts":{"bytesInOutput":1565}},"bytes":1896},"dist/lib/browser/sync-423Q4BDD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21313},"dist/lib/browser/sync-423Q4BDD.mjs":{"imports":[{"path":"dist/lib/browser/chunk-C26XKDK2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@effect/platform/FetchHttpClient","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"effect/Stream","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"youtube-caption-extractor","kind":"dynamic-import","external":true}],"exports":["default"],"entryPoint":"src/operations/sync.ts","inputs":{"src/operations/sync.ts":{"bytesInOutput":9926},"src/operations/transcript.ts":{"bytesInOutput":1130}},"bytes":11468},"dist/lib/browser/app-graph-builder-MJY6A6SN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10620},"dist/lib/browser/app-graph-builder-MJY6A6SN.mjs":{"imports":[{"path":"dist/lib/browser/chunk-DFRSBBSO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-Z3DGTMKC.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-C26XKDK2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-automation","kind":"import-statement","external":true},{"path":"@dxos/plugin-deck/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder/app-graph-builder.ts":{"bytesInOutput":6262}},"bytes":6726},"dist/lib/browser/chunk-DFRSBBSO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":872},"dist/lib/browser/chunk-DFRSBBSO.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":420}},"bytes":499},"dist/lib/browser/blueprint-definition-FRYUYJ22.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1045},"dist/lib/browser/blueprint-definition-FRYUYJ22.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MUE22YUM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-Z3DGTMKC.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-C26XKDK2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/blueprint-definition/blueprint-definition.ts","inputs":{"src/capabilities/blueprint-definition/blueprint-definition.ts":{"bytesInOutput":355}},"bytes":778},"dist/lib/browser/chunk-MUE22YUM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2485},"dist/lib/browser/chunk-MUE22YUM.mjs":{"imports":[{"path":"dist/lib/browser/chunk-P67QEKBQ.mjs","kind":"import-statement"},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["youtube_default"],"inputs":{"src/blueprints/youtube.ts":{"bytesInOutput":1568},"src/blueprints/index.ts":{"bytesInOutput":0}},"bytes":1741},"dist/lib/browser/chunk-Z3DGTMKC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":591},"dist/lib/browser/chunk-Z3DGTMKC.mjs":{"imports":[{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"dist/lib/browser/clear-synced-videos-EVMJIZPD.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sync-423Q4BDD.mjs","kind":"dynamic-import"}],"exports":["YouTubeHandlers"],"inputs":{"src/operations/index.ts":{"bytesInOutput":192}},"bytes":294},"dist/lib/browser/chunk-C26XKDK2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24537},"dist/lib/browser/chunk-C26XKDK2.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@effect/platform/HttpClient","kind":"import-statement","external":true},{"path":"@effect/platform/HttpClientRequest","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schedule","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true}],"exports":["GoogleCredentials","youtube_exports"],"inputs":{"src/operations/services/google-credentials.ts":{"bytesInOutput":2085},"src/operations/apis/youtube/index.ts":{"bytesInOutput":911},"src/operations/apis/youtube/api.ts":{"bytesInOutput":3652},"src/operations/apis/youtube/types.ts":{"bytesInOutput":5083},"src/operations/apis/index.ts":{"bytesInOutput":0}},"bytes":12088},"dist/lib/browser/chunk-P67QEKBQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3627},"dist/lib/browser/chunk-P67QEKBQ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GFRR4TTX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true}],"exports":["ClearSyncedVideos","Sync"],"inputs":{"src/operations/definitions.ts":{"bytesInOutput":1995}},"bytes":2228},"dist/lib/browser/chunk-GFRR4TTX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4897},"dist/lib/browser/chunk-GFRR4TTX.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"exports":["Channel_exports","YouTubeOperation"],"inputs":{"src/types/types.ts":{"bytesInOutput":27},"src/types/index.ts":{"bytesInOutput":0},"src/types/Channel.ts":{"bytesInOutput":2204}},"bytes":2425},"dist/lib/browser/ChannelArticle-CDQR4BBY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7695},"dist/lib/browser/ChannelArticle-CDQR4BBY.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YMDT37TA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/ChannelArticle/index.ts","inputs":{"src/containers/ChannelArticle/ChannelArticle.tsx":{"bytesInOutput":4038},"src/containers/ChannelArticle/index.ts":{"bytesInOutput":45}},"bytes":4366},"dist/lib/browser/chunk-YMDT37TA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3451},"dist/lib/browser/chunk-YMDT37TA.mjs":{"imports":[{"path":"dist/lib/browser/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["Video_exports","YouTubeVideo"],"inputs":{"src/types/Video.ts":{"bytesInOutput":1792}},"bytes":1955},"dist/lib/browser/chunk-J5LGTIGS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-J5LGTIGS.mjs":{"imports":[],"exports":["__export"],"inputs":{},"bytes":235}}}
|