citekit 0.1.1 → 0.1.2
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/client.d.ts +10 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +73 -2
- package/dist/client.js.map +1 -1
- package/dist/mapper/gemini.d.ts +1 -0
- package/dist/mapper/gemini.d.ts.map +1 -1
- package/dist/mapper/gemini.js +57 -4
- package/dist/mapper/gemini.js.map +1 -1
- package/dist/models.d.ts +3 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/resolvers/document.d.ts.map +1 -1
- package/dist/resolvers/document.js +10 -0
- package/dist/resolvers/document.js.map +1 -1
- package/dist/resolvers/image.d.ts.map +1 -1
- package/dist/resolvers/image.js +9 -0
- package/dist/resolvers/image.js.map +1 -1
- package/dist/resolvers/video.d.ts.map +1 -1
- package/dist/resolvers/video.js +10 -0
- package/dist/resolvers/video.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -35,10 +35,20 @@ export declare class CiteKitClient {
|
|
|
35
35
|
getStructure(resourceId: string): ResourceMap;
|
|
36
36
|
/**
|
|
37
37
|
* Ingest a resource using the configured mapper.
|
|
38
|
+
*
|
|
39
|
+
* Features:
|
|
40
|
+
* - SHA-256 Hashing & Caching
|
|
41
|
+
* - Concurrency Control
|
|
38
42
|
*/
|
|
39
43
|
ingest(resourcePath: string, resourceType: string, options?: {
|
|
40
44
|
resourceId?: string;
|
|
41
45
|
}): Promise<ResourceMap>;
|
|
46
|
+
private calculateFileHash;
|
|
47
|
+
private findMapByHash;
|
|
48
|
+
private activeRequests;
|
|
49
|
+
private maxConcurrency;
|
|
50
|
+
private queue;
|
|
51
|
+
private withConcurrencyLock;
|
|
42
52
|
/**
|
|
43
53
|
* Resolve a node to evidence using the appropriate resolver.
|
|
44
54
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAQ,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAcvE,MAAM,WAAW,oBAAoB;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAA2B;gBAEhC,OAAO,GAAE,oBAAyB;IA4C9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAUvC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAOpB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAM7C;;;;;;OAMG;IACG,MAAM,CACR,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,WAAW,CAAC;IA8CvB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAyB;YAExB,mBAAmB;IAmBjC;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA6B/E"}
|
package/dist/client.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* resolver backend for resolution (since resolvers are Python-based).
|
|
6
6
|
*/
|
|
7
7
|
import { readFileSync, writeFileSync, readdirSync, existsSync, mkdirSync } from "node:fs";
|
|
8
|
-
import { join } from "node:path";
|
|
8
|
+
import { join, basename, extname } from "node:path";
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
9
10
|
// ── Imported Mappers & Resolvers ────────────────────────────────────────
|
|
10
11
|
import { GeminiMapper } from "./mapper/gemini.js";
|
|
11
12
|
import { DocumentResolver } from "./resolvers/document.js";
|
|
@@ -86,14 +87,84 @@ export class CiteKitClient {
|
|
|
86
87
|
// ── Ingestion ───────────────────────────────────────────────────────────
|
|
87
88
|
/**
|
|
88
89
|
* Ingest a resource using the configured mapper.
|
|
90
|
+
*
|
|
91
|
+
* Features:
|
|
92
|
+
* - SHA-256 Hashing & Caching
|
|
93
|
+
* - Concurrency Control
|
|
89
94
|
*/
|
|
90
95
|
async ingest(resourcePath, resourceType, options) {
|
|
91
|
-
|
|
96
|
+
if (!existsSync(resourcePath)) {
|
|
97
|
+
throw new Error(`File not found: ${resourcePath}`);
|
|
98
|
+
}
|
|
99
|
+
// 1. Hashing & Caching
|
|
100
|
+
const fileHash = this.calculateFileHash(resourcePath);
|
|
101
|
+
const cachedMap = this.findMapByHash(fileHash);
|
|
102
|
+
if (cachedMap) {
|
|
103
|
+
// Check if user requested specific ID?
|
|
104
|
+
// For now, return cached.
|
|
105
|
+
return cachedMap;
|
|
106
|
+
}
|
|
107
|
+
const id = options?.resourceId || basename(resourcePath, extname(resourcePath));
|
|
108
|
+
// 2. Queueing
|
|
109
|
+
// Since we don't have p-limit, we use a simple internal semaphore if needed,
|
|
110
|
+
// or just rely on the fact that Node is single-threaded async.
|
|
111
|
+
// But to respect "queue" claim, let's use a basic lock/queue if the user calls ingest in parallel.
|
|
112
|
+
// Actually, for this MVP, true semaphore in a library requires a class property.
|
|
113
|
+
// Let's implement a simple acquire/release wrapper.
|
|
114
|
+
const map = await this.withConcurrencyLock(async () => {
|
|
115
|
+
return await this.mapper.generateMap(resourcePath, resourceType, id);
|
|
116
|
+
});
|
|
117
|
+
// Add metadata
|
|
118
|
+
if (!map.metadata)
|
|
119
|
+
map.metadata = {};
|
|
120
|
+
map.metadata["source_hash"] = fileHash;
|
|
92
121
|
// Save map
|
|
93
122
|
const mapPath = join(this.storageDir, `${map.resource_id}.json`);
|
|
94
123
|
writeFileSync(mapPath, JSON.stringify(map, null, 2));
|
|
95
124
|
return map;
|
|
96
125
|
}
|
|
126
|
+
// ── Utilities ───────────────────────────────────────────────────────────
|
|
127
|
+
calculateFileHash(path) {
|
|
128
|
+
const fileBuffer = readFileSync(path);
|
|
129
|
+
const hashSum = createHash("sha256");
|
|
130
|
+
hashSum.update(fileBuffer);
|
|
131
|
+
return hashSum.digest("hex");
|
|
132
|
+
}
|
|
133
|
+
findMapByHash(hash) {
|
|
134
|
+
const maps = this.listMaps();
|
|
135
|
+
for (const id of maps) {
|
|
136
|
+
try {
|
|
137
|
+
const map = this.getMap(id);
|
|
138
|
+
if (map.metadata && map.metadata["source_hash"] === hash) {
|
|
139
|
+
return map;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
// Simple semaphore state
|
|
149
|
+
activeRequests = 0;
|
|
150
|
+
maxConcurrency = 5;
|
|
151
|
+
queue = [];
|
|
152
|
+
async withConcurrencyLock(fn) {
|
|
153
|
+
if (this.activeRequests >= this.maxConcurrency) {
|
|
154
|
+
await new Promise(resolve => this.queue.push(resolve));
|
|
155
|
+
}
|
|
156
|
+
this.activeRequests++;
|
|
157
|
+
try {
|
|
158
|
+
return await fn();
|
|
159
|
+
}
|
|
160
|
+
finally {
|
|
161
|
+
this.activeRequests--;
|
|
162
|
+
if (this.queue.length > 0) {
|
|
163
|
+
const next = this.queue.shift();
|
|
164
|
+
next?.();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
97
168
|
// ── Resolution ──────────────────────────────────────────────────────────
|
|
98
169
|
/**
|
|
99
170
|
* Resolve a node to evidence using the appropriate resolver.
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/mapper/gemini.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class GeminiMapper implements MapperProvider {
|
|
|
7
7
|
generateMap(resourcePath: string, resourceType: string, resourceId?: string): Promise<ResourceMap>;
|
|
8
8
|
private mapDocument;
|
|
9
9
|
private mapVideo;
|
|
10
|
+
private callGeminiWithFile;
|
|
10
11
|
private callGemini;
|
|
11
12
|
private parseNodesResponse;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAkDhE,qBAAa,YAAa,YAAW,cAAc;IAC/C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAM;gBAEP,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B;IAK5D,WAAW,CACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;YA2BT,WAAW;YA2BX,QAAQ;YAoBR,kBAAkB;YAuDlB,UAAU;IAOxB,OAAO,CAAC,kBAAkB;CA+C7B"}
|
package/dist/mapper/gemini.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GoogleGenerativeAI } from "@google/generative-ai";
|
|
2
|
+
import { GoogleAIFileManager } from "@google/generative-ai/server";
|
|
2
3
|
import { readFileSync, existsSync } from "node:fs";
|
|
3
4
|
import { basename, extname } from "node:path";
|
|
4
5
|
import { createRequire } from "node:module";
|
|
@@ -104,19 +105,71 @@ export class GeminiMapper {
|
|
|
104
105
|
return this.callGemini(prompt);
|
|
105
106
|
}
|
|
106
107
|
async mapVideo(path) {
|
|
107
|
-
// We need duration
|
|
108
|
+
// We need duration for the prompt, though we could also just upload it.
|
|
109
|
+
// Let's get duration to be safe and consistent with prompt structure.
|
|
108
110
|
const { ffprobe } = await import("fluent-ffmpeg");
|
|
109
111
|
const duration = await new Promise((resolve, reject) => {
|
|
110
112
|
ffprobe(path, (err, metadata) => {
|
|
113
|
+
// If ffprobe fails, we might still proceed with upload, but let's try to get it.
|
|
111
114
|
if (err)
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
resolve(0);
|
|
116
|
+
else
|
|
117
|
+
resolve(metadata.format.duration || 0);
|
|
114
118
|
});
|
|
115
119
|
});
|
|
116
120
|
const prompt = VIDEO_PROMPT
|
|
117
121
|
.replace("{duration}", duration.toString())
|
|
118
122
|
.replace("{filename}", basename(path));
|
|
119
|
-
return this.
|
|
123
|
+
return this.callGeminiWithFile(path, prompt, "video/mp4");
|
|
124
|
+
}
|
|
125
|
+
async callGeminiWithFile(path, prompt, mimeType) {
|
|
126
|
+
const fileManager = new GoogleAIFileManager(this.genAI.apiKey);
|
|
127
|
+
console.log(`DEBUG: Uploading ${basename(path)} to Gemini File API...`);
|
|
128
|
+
let uploadResult;
|
|
129
|
+
try {
|
|
130
|
+
uploadResult = await fileManager.uploadFile(path, {
|
|
131
|
+
mimeType: mimeType,
|
|
132
|
+
displayName: basename(path),
|
|
133
|
+
});
|
|
134
|
+
console.log(`DEBUG: Uploaded as ${uploadResult.file.name}`);
|
|
135
|
+
// Wait for processing if video
|
|
136
|
+
if (mimeType.startsWith("video")) {
|
|
137
|
+
let file = await fileManager.getFile(uploadResult.file.name);
|
|
138
|
+
while (file.state === "PROCESSING") {
|
|
139
|
+
console.log("DEBUG: Waiting for video processing...");
|
|
140
|
+
await new Promise(r => setTimeout(r, 2000));
|
|
141
|
+
file = await fileManager.getFile(uploadResult.file.name);
|
|
142
|
+
}
|
|
143
|
+
if (file.state === "FAILED") {
|
|
144
|
+
throw new Error("Video processing failed.");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Generate content
|
|
148
|
+
const result = await this.model.generateContent([
|
|
149
|
+
prompt,
|
|
150
|
+
{
|
|
151
|
+
fileData: {
|
|
152
|
+
fileUri: uploadResult.file.uri,
|
|
153
|
+
mimeType: uploadResult.file.mimeType,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
]);
|
|
157
|
+
const response = await result.response;
|
|
158
|
+
const text = response.text();
|
|
159
|
+
return this.parseNodesResponse(text);
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
// Cleanup
|
|
163
|
+
if (uploadResult && uploadResult.file) {
|
|
164
|
+
console.log(`DEBUG: Deleting remote file ${uploadResult.file.name}`);
|
|
165
|
+
try {
|
|
166
|
+
await fileManager.deleteFile(uploadResult.file.name);
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
console.warn(`WARNING: Failed to delete remote file: ${e}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
120
173
|
}
|
|
121
174
|
async callGemini(prompt) {
|
|
122
175
|
const result = await this.model.generateContent(prompt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"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"}
|
package/dist/models.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export interface Node {
|
|
|
28
28
|
location: Location;
|
|
29
29
|
/** 1-2 sentence summary. */
|
|
30
30
|
summary?: string;
|
|
31
|
+
/** Nested nodes. */
|
|
32
|
+
children?: Node[];
|
|
31
33
|
}
|
|
32
34
|
/** Structured map of a resource — the first output of ingestion. */
|
|
33
35
|
export interface ResourceMap {
|
|
@@ -35,6 +37,7 @@ export interface ResourceMap {
|
|
|
35
37
|
type: "document" | "video" | "audio" | "image";
|
|
36
38
|
title: string;
|
|
37
39
|
source_path: string;
|
|
40
|
+
metadata?: Record<string, string | number | null>;
|
|
38
41
|
nodes: Node[];
|
|
39
42
|
created_at: string;
|
|
40
43
|
}
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAEnD,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACjB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAEnD,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACjB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC7B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,gBAAiB,YAAW,QAAQ;IACvC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,gBAAiB,YAAW,QAAQ;IACvC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CA4C/B"}
|
|
@@ -19,6 +19,16 @@ export class DocumentResolver {
|
|
|
19
19
|
const pageStr = location.pages.join("_");
|
|
20
20
|
const filename = `${resourceId}_pages_${pageStr}.pdf`;
|
|
21
21
|
const outputPath = join(outputDir, filename);
|
|
22
|
+
// Caching
|
|
23
|
+
if (require("node:fs").existsSync(outputPath)) {
|
|
24
|
+
return {
|
|
25
|
+
output_path: outputPath,
|
|
26
|
+
modality: "document",
|
|
27
|
+
address: `doc://${resourceId}#pages=${location.pages[0]}-${location.pages[location.pages.length - 1]}`,
|
|
28
|
+
node: { id: nodeId, location: location },
|
|
29
|
+
resource_id: resourceId
|
|
30
|
+
};
|
|
31
|
+
}
|
|
22
32
|
writeFileSync(outputPath, outputBytes);
|
|
23
33
|
return {
|
|
24
34
|
output_path: outputPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE1C,2DAA2D;QAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,aAAa;QACb,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAExC,4EAA4E;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,UAAU,UAAU,OAAO,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvC,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS,EAAE,2CAA2C;YAC5F,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE1C,2DAA2D;QAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,aAAa;QACb,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAExC,4EAA4E;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,UAAU,UAAU,OAAO,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,UAAU;QACV,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvC,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS,EAAE,2CAA2C;YAC5F,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CAiD/B"}
|
package/dist/resolvers/image.js
CHANGED
|
@@ -21,6 +21,15 @@ export class ImageResolver {
|
|
|
21
21
|
const cropHeight = Math.floor((y2 - y1) * height);
|
|
22
22
|
const filename = `${resourceId}_crop_${left}_${top}.png`;
|
|
23
23
|
const outputPath = join(outputDir, filename);
|
|
24
|
+
if (require("node:fs").existsSync(outputPath)) {
|
|
25
|
+
return {
|
|
26
|
+
output_path: outputPath,
|
|
27
|
+
modality: "image",
|
|
28
|
+
address: `image://${resourceId}#rect=${x1},${y1},${x2},${y2}`,
|
|
29
|
+
node: { id: nodeId, location: location },
|
|
30
|
+
resource_id: resourceId
|
|
31
|
+
};
|
|
32
|
+
}
|
|
24
33
|
await image
|
|
25
34
|
.extract({ left, top, width: cropWidth, height: cropHeight })
|
|
26
35
|
.toFile(outputPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEvC,kCAAkC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,MAAM,KAAK;aACN,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC5D,MAAM,CAAC,UAAU,CAAC,CAAC;QAExB,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;YAC/C,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEvC,kCAAkC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,MAAM,KAAK;aACN,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC5D,MAAM,CAAC,UAAU,CAAC,CAAC;QAExB,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;YAC/C,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CA0C/B"}
|
package/dist/resolvers/video.js
CHANGED
|
@@ -9,6 +9,16 @@ export class VideoResolver {
|
|
|
9
9
|
const duration = location.end - location.start;
|
|
10
10
|
const filename = `${resourceId}_clip_${start}_${location.end}.mp4`;
|
|
11
11
|
const outputPath = join(outputDir, filename);
|
|
12
|
+
// Caching
|
|
13
|
+
if (require("node:fs").existsSync(outputPath)) {
|
|
14
|
+
return {
|
|
15
|
+
output_path: outputPath,
|
|
16
|
+
modality: "video",
|
|
17
|
+
address: `video://${resourceId}#t=${start},${location.end}`,
|
|
18
|
+
node: { id: nodeId, location: location },
|
|
19
|
+
resource_id: resourceId
|
|
20
|
+
};
|
|
21
|
+
}
|
|
12
22
|
return new Promise((resolve, reject) => {
|
|
13
23
|
ffmpeg(sourcePath)
|
|
14
24
|
.setStartTime(start)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,2BAA2B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE/C,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,UAAU,CAAC;iBACb,YAAY,CAAC,KAAK,CAAC;iBACnB,WAAW,CAAC,QAAQ,CAAC;iBACrB,MAAM,CAAC,UAAU,CAAC;iBAClB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC;oBACJ,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;oBAC/C,WAAW,EAAE,UAAU;iBAC1B,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;iBACD,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,2BAA2B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE/C,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,UAAU;QACV,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;gBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,UAAU,CAAC;iBACb,YAAY,CAAC,KAAK,CAAC;iBACnB,WAAW,CAAC,QAAQ,CAAC;iBACrB,MAAM,CAAC,UAAU,CAAC;iBAClB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC;oBACJ,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;oBAC/C,WAAW,EAAE,UAAU;iBAC1B,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;iBACD,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/package.json
CHANGED