diff --git a/dist_ts/index.d.ts b/dist_ts/index.d.ts index fc6d35b..33be5db 100644 --- a/dist_ts/index.d.ts +++ b/dist_ts/index.d.ts @@ -1 +1 @@ -export * from './smartarchive.classes.smartarchive'; +export * from './smartarchive.classes.smartarchive.js'; diff --git a/dist_ts/index.js b/dist_ts/index.js index 7ce3c7b..90cfcdf 100644 --- a/dist_ts/index.js +++ b/dist_ts/index.js @@ -1,7 +1,2 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./smartarchive.classes.smartarchive")); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlEQUFvRCJ9 \ No newline at end of file +export * from './smartarchive.classes.smartarchive.js'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdDQUF3QyxDQUFDIn0= \ No newline at end of file diff --git a/dist_ts/smartarchive.classes.smartarchive.d.ts b/dist_ts/smartarchive.classes.smartarchive.d.ts index 1705b91..0f59b4f 100644 --- a/dist_ts/smartarchive.classes.smartarchive.d.ts +++ b/dist_ts/smartarchive.classes.smartarchive.d.ts @@ -1,5 +1,24 @@ +/// +import * as plugins from './smartarchive.plugins.js'; export declare class SmartArchive { archiveDirectory: string; constructor(); - extractArchiveFromFilePath(filePathArg: string, targetDir: string): void; + /** + * extracts an archive from a given url + */ + extractArchiveFromUrlToFs(urlArg: string, targetDir: string): Promise; + /** + * extracts an archive from a given filePath on disk + * @param filePathArg + * @param targetDir + */ + extractArchiveFromFilePathToFs(filePathArg: string, targetDir: string): Promise; + /** + * extracts to Observable + */ + extractArchiveFromBufferToObservable(bufferArg: Buffer): Promise>; + /** + * extracts to Observable + */ + extractArchiveFromUrlToObservable(urlArg: string): Promise>; } diff --git a/dist_ts/smartarchive.classes.smartarchive.js b/dist_ts/smartarchive.classes.smartarchive.js index fd737dd..50332fc 100644 --- a/dist_ts/smartarchive.classes.smartarchive.js +++ b/dist_ts/smartarchive.classes.smartarchive.js @@ -1,21 +1,84 @@ -"use strict"; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const plugins = __importStar(require("./smartarchive.plugins")); -class SmartArchive { +import * as plugins from './smartarchive.plugins.js'; +import * as paths from './smartarchive.paths.js'; +import 'tar'; +export class SmartArchive { constructor() { } - extractArchiveFromFilePath(filePathArg, targetDir) { + /** + * extracts an archive from a given url + */ + async extractArchiveFromUrlToFs(urlArg, targetDir) { + const parsedPath = plugins.path.parse(urlArg); + const uniqueFileName = plugins.smartunique.uni() + parsedPath.ext; + plugins.smartfile.fs.ensureDir(paths.nogitDir); // TODO: totally remove caching needs + const downloadPath = plugins.path.join(paths.nogitDir, uniqueFileName); + const downloadedArchive = (await plugins.smartrequest.getBinary(urlArg)).body; + await plugins.smartfile.memory.toFs(downloadedArchive, downloadPath); + await this.extractArchiveFromFilePathToFs(downloadPath, targetDir); + await plugins.smartfile.fs.remove(downloadPath); + } + /** + * extracts an archive from a given filePath on disk + * @param filePathArg + * @param targetDir + */ + async extractArchiveFromFilePathToFs(filePathArg, targetDir) { const parsedPath = plugins.path.parse(filePathArg); switch (parsedPath.ext) { + case '.tgz': + console.log(`detected a .tgz archive`); + await plugins.tar.extract({ + file: filePathArg, + cwd: targetDir, + }); + break; } } - ; + /** + * extracts to Observable + */ + async extractArchiveFromBufferToObservable(bufferArg) { + const intake = new plugins.streamfunction.Intake(); + const replaySubject = new plugins.smartrx.rxjs.ReplaySubject(); + const readableStream = intake.getReadableStream(); + const extractPipeStop = plugins.tarStream.extract(); + extractPipeStop.on('entry', (header, stream, next) => { + let fileBuffer; + stream.on('data', (chunkArg) => { + if (!fileBuffer) { + fileBuffer = chunkArg; + } + else { + fileBuffer = Buffer.concat([fileBuffer, chunkArg]); + } + }); + stream.on('end', () => { + replaySubject.next(new plugins.smartfile.Smartfile({ + base: null, + contentBuffer: fileBuffer, + path: `./${header.name}` + })); + next(); + }); + stream.resume(); + }); + extractPipeStop.on('finish', () => { + replaySubject.complete(); + }); + // lets run the stream + readableStream + .pipe(plugins.gunzipMaybe()) + .pipe(extractPipeStop); + intake.pushData(bufferArg); + intake.signalEnd(); + return replaySubject; + } + /** + * extracts to Observable + */ + async extractArchiveFromUrlToObservable(urlArg) { + const response = await plugins.smartrequest.getBinary(urlArg); + const replaySubject = this.extractArchiveFromBufferToObservable(response.body); + return replaySubject; + } } -exports.SmartArchive = SmartArchive; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGdFQUFrRDtBQUVsRCxNQUFhLFlBQVk7SUFFdkIsZ0JBQWUsQ0FBQztJQUVULDBCQUEwQixDQUFDLFdBQW1CLEVBQUUsU0FBaUI7UUFDdEUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsUUFBUSxVQUFVLENBQUMsR0FBRyxFQUFFO1NBRXZCO0lBQ0gsQ0FBQztJQUFBLENBQUM7Q0FDSDtBQVZELG9DQVVDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxLQUFLLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUF3QixLQUFLLENBQUM7QUFFOUIsTUFBTSxPQUFPLFlBQVk7SUFFdkIsZ0JBQWUsQ0FBQztJQUVoQjs7T0FFRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7UUFDdEUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDckYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RSxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5RSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRSxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsOEJBQThCLENBQUMsV0FBbUIsRUFBRSxTQUFpQjtRQUNoRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxRQUFRLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztvQkFDeEIsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLEdBQUcsRUFBRSxTQUFTO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsb0NBQW9DLENBQy9DLFNBQWlCO1FBRWpCLE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBK0IsQ0FBQztRQUM1RixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BELGVBQWUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNuRCxJQUFJLFVBQWtCLENBQUM7WUFDdkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDZixVQUFVLEdBQUcsUUFBUSxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUNwRDtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNwQixhQUFhLENBQUMsSUFBSSxDQUNoQixJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO29CQUM5QixJQUFJLEVBQUUsSUFBSTtvQkFDVixhQUFhLEVBQUUsVUFBVTtvQkFDekIsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRTtpQkFDekIsQ0FBQyxDQUNILENBQUM7Z0JBQ0YsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNoQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxzQkFBc0I7UUFDdEIsY0FBYzthQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxpQ0FBaUMsQ0FDN0MsTUFBYztRQUVkLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRSxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0NBQ0YifQ== \ No newline at end of file diff --git a/dist_ts/smartarchive.paths.js b/dist_ts/smartarchive.paths.js index b9c41b9..ceeadd6 100644 --- a/dist_ts/smartarchive.paths.js +++ b/dist_ts/smartarchive.paths.js @@ -1,13 +1,4 @@ -"use strict"; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const plugins = __importStar(require("./smartarchive.plugins")); -exports.packageDir = plugins.path.join(__dirname, '../'); -exports.nogitDir = plugins.path.join(__dirname, './.nogit'); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGdFQUFrRDtBQUVyQyxRQUFBLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakQsUUFBQSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDIn0= \ No newline at end of file +import * as plugins from './smartarchive.plugins.js'; +export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../'); +export const nogitDir = plugins.path.join(packageDir, './.nogit'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEgsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyJ9 \ No newline at end of file diff --git a/dist_ts/smartarchive.plugins.d.ts b/dist_ts/smartarchive.plugins.d.ts index 0fa03f4..b18b24b 100644 --- a/dist_ts/smartarchive.plugins.d.ts +++ b/dist_ts/smartarchive.plugins.d.ts @@ -1,7 +1,13 @@ -import path from 'path'; +import * as path from 'path'; export { path }; import * as smartfile from '@pushrocks/smartfile'; import * as smartpath from '@pushrocks/smartpath'; -export { smartfile, smartpath }; +import * as smartrequest from '@pushrocks/smartrequest'; +import * as smartunique from '@pushrocks/smartunique'; +import * as streamfunction from '@pushrocks/streamfunction'; +import * as smartrx from '@pushrocks/smartrx'; +export { smartfile, smartpath, smartrequest, smartunique, streamfunction, smartrx }; +import gunzipMaybe from 'gunzip-maybe'; import tar from 'tar'; -export { tar }; +import tarStream from 'tar-stream'; +export { gunzipMaybe, tar, tarStream }; diff --git a/dist_ts/smartarchive.plugins.js b/dist_ts/smartarchive.plugins.js index 4e9b976..80f7603 100644 --- a/dist_ts/smartarchive.plugins.js +++ b/dist_ts/smartarchive.plugins.js @@ -1,24 +1,18 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); // node native scope -const path_1 = __importDefault(require("path")); -exports.path = path_1.default; +import * as path from 'path'; +export { path }; // @pushrocks scope -const smartfile = __importStar(require("@pushrocks/smartfile")); -exports.smartfile = smartfile; -const smartpath = __importStar(require("@pushrocks/smartpath")); -exports.smartpath = smartpath; +import * as smartfile from '@pushrocks/smartfile'; +import * as smartpath from '@pushrocks/smartpath'; +import * as smartrequest from '@pushrocks/smartrequest'; +import * as smartunique from '@pushrocks/smartunique'; +import * as streamfunction from '@pushrocks/streamfunction'; +import * as smartrx from '@pushrocks/smartrx'; +export { smartfile, smartpath, smartrequest, smartunique, streamfunction, smartrx }; // third party scope -const tar_1 = __importDefault(require("tar")); -exports.tar = tar_1.default; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFyY2hpdmUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBRWYsZUFGRixjQUFJLENBRUU7QUFFYixtQkFBbUI7QUFDbkIsZ0VBQWtEO0FBR3pDLDhCQUFTO0FBRmxCLGdFQUFrRDtBQUU5Qiw4QkFBUztBQUU3QixvQkFBb0I7QUFDcEIsOENBQXNCO0FBRWIsY0FGRixhQUFHLENBRUUifQ== \ No newline at end of file +import gunzipMaybe from 'gunzip-maybe'; +// @ts-ignore +import tar from 'tar'; +import tarStream from 'tar-stream'; +export { gunzipMaybe, tar, tarStream }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFyY2hpdmUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBRWhCLG1CQUFtQjtBQUNuQixPQUFPLEtBQUssU0FBUyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxTQUFTLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssV0FBVyxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sS0FBSyxjQUFjLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUVwRixvQkFBb0I7QUFDcEIsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLGFBQWE7QUFDYixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDIn0= \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 30d728f..752e3d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "@pushrocks/smartunique": "^3.0.3", "@pushrocks/streamfunction": "^4.0.1", "@types/gunzip-maybe": "^1.4.0", - "@types/tar": "^6.1.1", "@types/tar-stream": "^2.2.2", "gunzip-maybe": "^1.4.2", "tar": "^6.1.11", @@ -4637,15 +4636,6 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "license": "MIT" }, - "node_modules/@types/minipass": { - "version": "2.2.0", - "resolved": "https://verdaccio.lossless.one/@types%2fminipass/-/minipass-2.2.0.tgz", - "integrity": "sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "17.0.23", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-17.0.23.tgz", @@ -4714,16 +4704,6 @@ "integrity": "sha1-gJPuBBam4r8qpjOBCRFLP7/6Dps=", "license": "MIT" }, - "node_modules/@types/tar": { - "version": "6.1.1", - "resolved": "https://verdaccio.lossless.one/@types%2ftar/-/tar-6.1.1.tgz", - "integrity": "sha512-8mto3YZfVpqB1CHMaYz1TUYIQfZFbh/QbEq5Hsn6D0ilCfqRVCdalmc89B7vi3jhl9UYIk+dWDABShNfOkv5HA==", - "license": "MIT", - "dependencies": { - "@types/minipass": "*", - "@types/node": "*" - } - }, "node_modules/@types/tar-stream": { "version": "2.2.2", "resolved": "https://verdaccio.lossless.one/@types%2ftar-stream/-/tar-stream-2.2.2.tgz", @@ -14436,14 +14416,6 @@ "resolved": "https://verdaccio.lossless.one/@types%2fminimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, - "@types/minipass": { - "version": "2.2.0", - "resolved": "https://verdaccio.lossless.one/@types%2fminipass/-/minipass-2.2.0.tgz", - "integrity": "sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg==", - "requires": { - "@types/node": "*" - } - }, "@types/node": { "version": "17.0.23", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-17.0.23.tgz", @@ -14503,15 +14475,6 @@ "resolved": "https://verdaccio.lossless.one/@types%2fshortid/-/shortid-0.0.29.tgz", "integrity": "sha1-gJPuBBam4r8qpjOBCRFLP7/6Dps=" }, - "@types/tar": { - "version": "6.1.1", - "resolved": "https://verdaccio.lossless.one/@types%2ftar/-/tar-6.1.1.tgz", - "integrity": "sha512-8mto3YZfVpqB1CHMaYz1TUYIQfZFbh/QbEq5Hsn6D0ilCfqRVCdalmc89B7vi3jhl9UYIk+dWDABShNfOkv5HA==", - "requires": { - "@types/minipass": "*", - "@types/node": "*" - } - }, "@types/tar-stream": { "version": "2.2.2", "resolved": "https://verdaccio.lossless.one/@types%2ftar-stream/-/tar-stream-2.2.2.tgz", diff --git a/package.json b/package.json index 8d1796b..5c30377 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "type": "module", "scripts": { "test": "(tstest test/ --web)", - "build": "tsbuild --web" + "build": "tsbuild --web --allowimplicitany" }, "repository": { "type": "git", @@ -27,7 +27,6 @@ "@pushrocks/smartunique": "^3.0.3", "@pushrocks/streamfunction": "^4.0.1", "@types/gunzip-maybe": "^1.4.0", - "@types/tar": "^6.1.1", "@types/tar-stream": "^2.2.2", "gunzip-maybe": "^1.4.2", "tar": "^6.1.11", diff --git a/ts/smartarchive.classes.smartarchive.ts b/ts/smartarchive.classes.smartarchive.ts index 0e4940d..b60710a 100644 --- a/ts/smartarchive.classes.smartarchive.ts +++ b/ts/smartarchive.classes.smartarchive.ts @@ -60,8 +60,9 @@ export class SmartArchive { stream.on('end', () => { replaySubject.next( new plugins.smartfile.Smartfile({ + base: null, // no working directory for this one contentBuffer: fileBuffer, - path: header.name, + path: `./${header.name}` }) ); next(); diff --git a/ts/smartarchive.plugins.ts b/ts/smartarchive.plugins.ts index 433afc7..ee9aaa1 100644 --- a/ts/smartarchive.plugins.ts +++ b/ts/smartarchive.plugins.ts @@ -15,6 +15,8 @@ export { smartfile, smartpath, smartrequest, smartunique, streamfunction, smartr // third party scope import gunzipMaybe from 'gunzip-maybe'; + +// @ts-ignore import tar from 'tar'; import tarStream from 'tar-stream';