chaite
Version:
core for chatgpt-plugin and karin-plugin-chatgpt
83 lines (80 loc) • 4.18 kB
JavaScript
import { s as __toESM } from "../../rolldown-runtime-DVriDoez.mjs";
import { r as File } from "../@anthropic-ai/sdk/index.mjs-sKjldQtK.mjs";
import { o as require_node_domexception } from "../fetch-blob/index.mjs-ChDdLWI-.mjs";
import { basename } from "path";
import { createReadStream, promises } from "fs";
//#region node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/isPlainObject.js
const getType = (value) => Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
function isPlainObject(value) {
if (getType(value) !== "object") return false;
const pp = Object.getPrototypeOf(value);
if (pp === null || pp === void 0) return true;
return (pp.constructor && pp.constructor.toString()) === Object.toString();
}
var isPlainObject_default = isPlainObject;
//#endregion
//#region node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/fileFromPath.js
var import_node_domexception = /* @__PURE__ */ __toESM(require_node_domexception(), 1);
var __classPrivateFieldSet = void 0 && (void 0).__classPrivateFieldSet || function(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
};
var __classPrivateFieldGet = void 0 && (void 0).__classPrivateFieldGet || function(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _FileFromPath_path, _FileFromPath_start;
const MESSAGE = "The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.";
var FileFromPath = class FileFromPath {
constructor(input) {
_FileFromPath_path.set(this, void 0);
_FileFromPath_start.set(this, void 0);
__classPrivateFieldSet(this, _FileFromPath_path, input.path, "f");
__classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, "f");
this.name = basename(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
this.size = input.size;
this.lastModified = input.lastModified;
}
slice(start, end) {
return new FileFromPath({
path: __classPrivateFieldGet(this, _FileFromPath_path, "f"),
lastModified: this.lastModified,
size: end - start,
start
});
}
async *stream() {
const { mtimeMs } = await promises.stat(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
if (mtimeMs > this.lastModified) throw new import_node_domexception.default(MESSAGE, "NotReadableError");
if (this.size) yield* createReadStream(__classPrivateFieldGet(this, _FileFromPath_path, "f"), {
start: __classPrivateFieldGet(this, _FileFromPath_start, "f"),
end: __classPrivateFieldGet(this, _FileFromPath_start, "f") + this.size - 1
});
}
get [(_FileFromPath_path = /* @__PURE__ */ new WeakMap(), _FileFromPath_start = /* @__PURE__ */ new WeakMap(), Symbol.toStringTag)]() {
return "File";
}
};
function createFileFromPath(path$1, { mtimeMs, size }, filenameOrOptions, options = {}) {
let filename;
if (isPlainObject_default(filenameOrOptions)) [options, filename] = [filenameOrOptions, void 0];
else filename = filenameOrOptions;
const file = new FileFromPath({
path: path$1,
size,
lastModified: mtimeMs
});
if (!filename) filename = file.name;
return new File([file], filename, {
...options,
lastModified: file.lastModified
});
}
async function fileFromPath(path$1, filenameOrOptions, options) {
return createFileFromPath(path$1, await promises.stat(path$1), filenameOrOptions, options);
}
//#endregion
export { fileFromPath as t };