extract-base-iterator 3.3.2 → 3.3.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/dist/cjs/DirectoryEntry.js.map +1 -1
- package/dist/cjs/FileEntry.js.map +1 -1
- package/dist/cjs/LinkEntry.js.map +1 -1
- package/dist/cjs/SymbolicLinkEntry.js.map +1 -1
- package/dist/cjs/fs/chmod.js.map +1 -1
- package/dist/cjs/fs/chown.js.map +1 -1
- package/dist/cjs/fs/lstatReal.js.map +1 -1
- package/dist/cjs/fs/lutimes.js.map +1 -1
- package/dist/cjs/fs/symlinkWin32.js.map +1 -1
- package/dist/cjs/fs/utimes.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/shared/BufferList.js.map +1 -1
- package/dist/cjs/shared/EntryStream.d.cts +4 -2
- package/dist/cjs/shared/EntryStream.d.ts +4 -2
- package/dist/cjs/shared/EntryStream.js +17 -4
- package/dist/cjs/shared/EntryStream.js.map +1 -1
- package/dist/cjs/shared/Lock.js.map +1 -1
- package/dist/cjs/shared/compat.js.map +1 -1
- package/dist/cjs/shared/crc32.js.map +1 -1
- package/dist/cjs/shared/index.d.cts +8 -1
- package/dist/cjs/shared/index.d.ts +8 -1
- package/dist/cjs/shared/index.js.map +1 -1
- package/dist/cjs/shared/normalizePath.js.map +1 -1
- package/dist/cjs/shared/streamToString.js.map +1 -1
- package/dist/cjs/shared/stripPath.js.map +1 -1
- package/dist/cjs/validateAttributes.js.map +1 -1
- package/dist/cjs/waitForAccess.js.map +1 -1
- package/dist/esm/DirectoryEntry.js.map +1 -1
- package/dist/esm/FileEntry.js.map +1 -1
- package/dist/esm/LinkEntry.js.map +1 -1
- package/dist/esm/SymbolicLinkEntry.js.map +1 -1
- package/dist/esm/fs/chmod.js.map +1 -1
- package/dist/esm/fs/chown.js.map +1 -1
- package/dist/esm/fs/lstatReal.js.map +1 -1
- package/dist/esm/fs/lutimes.js.map +1 -1
- package/dist/esm/fs/symlinkWin32.js.map +1 -1
- package/dist/esm/fs/utimes.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared/BufferList.js.map +1 -1
- package/dist/esm/shared/EntryStream.d.ts +4 -2
- package/dist/esm/shared/EntryStream.js +10 -2
- package/dist/esm/shared/EntryStream.js.map +1 -1
- package/dist/esm/shared/Lock.js.map +1 -1
- package/dist/esm/shared/compat.js.map +1 -1
- package/dist/esm/shared/crc32.js.map +1 -1
- package/dist/esm/shared/index.d.ts +8 -1
- package/dist/esm/shared/index.js +2 -1
- package/dist/esm/shared/index.js.map +1 -1
- package/dist/esm/shared/normalizePath.js.map +1 -1
- package/dist/esm/shared/streamToString.js.map +1 -1
- package/dist/esm/shared/stripPath.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/validateAttributes.js.map +1 -1
- package/dist/esm/waitForAccess.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/shared/index.ts"],"sourcesContent":["/**\n * Shared utilities for iterator libraries\n *\n * These utilities are designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n *\n * All utilities support Node.js 0.8+\n */\n\nimport BufferList from './BufferList.ts';\n\nexport { BufferList };\n\n/**\n * Type alias for Buffer or BufferList - both can be read byte-by-byte.\n * Use this when an API should accept either contiguous data (Buffer)\n * or chunked streaming data (BufferList).\n */\nexport type BufferLike = Buffer | BufferList;\nexport {\n allocBuffer,\n allocBufferUnsafe,\n bufferCompare,\n bufferConcat,\n bufferEquals,\n bufferFrom,\n bufferSliceCopy,\n createInflateRawStream,\n inflateRaw,\n isNaN,\n objectAssign,\n PassThrough,\n Readable,\n readUInt64LE,\n Transform,\n Writable,\n writeUInt64LE,\n} from './compat.ts';\nexport { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.ts';\nexport { default as EntryStream } from './EntryStream.ts';\nexport { type CleanupFn, default as Lock } from './Lock.ts';\nexport { default as normalizePath } from './normalizePath.ts';\nexport { default as streamToString, type StreamToStringCallback } from './streamToString.ts';\nexport { default as stripPath } from './stripPath.ts';\n"],"names":["BufferList","allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","createInflateRawStream","inflateRaw","isNaN","objectAssign","PassThrough","Readable","readUInt64LE","Transform","Writable","writeUInt64LE","crc32","crc32Region","verifyCrc32","verifyCrc32Region","default","EntryStream","Lock","normalizePath","streamToString","stripPath"],"mappings":"AAAA;;;;;;;;;;CAUC,GAED,OAAOA,gBAAgB,kBAAkB;AAEzC,SAASA,UAAU,GAAG;AAQtB,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,sBAAsB,EACtBC,UAAU,EACVC,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,aAAa,QACR,cAAc;AACrB,SAASC,KAAK,EAAEC,WAAW,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,aAAa;AAChF,SAASC,WAAWC,WAAW,QAAQ,mBAAmB;AAC1D,SAAyBD,WAAWE,IAAI,QAAQ,YAAY;AAC5D,SAASF,WAAWG,aAAa,QAAQ,qBAAqB;AAC9D,SAASH,WAAWI,cAAc,QAAqC,sBAAsB;AAC7F,SAASJ,WAAWK,SAAS,QAAQ,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/shared/normalizePath.ts"],"sourcesContent":["/**\n * Normalize archive entry path\n *\n * - Converts backslashes to forward slashes\n * - Removes empty segments\n * - Removes leading slashes\n *\n * Node 0.8+ compatible.\n */\n\nexport default function normalizePath(p: string): string {\n // Split on both forward and back slashes, filter empty segments, rejoin with forward slash\n const segments = p.split(/[/\\\\]/);\n const result: string[] = [];\n for (let i = 0; i < segments.length; i++) {\n if (segments[i].length > 0) {\n result.push(segments[i]);\n }\n }\n return result.join('/');\n}\n"],"names":["normalizePath","p","segments","split","result","i","length","push","join"],"mappings":"AAAA;;;;;;;;CAQC,GAED,eAAe,SAASA,cAAcC,CAAS;IAC7C,2FAA2F;IAC3F,MAAMC,WAAWD,EAAEE,KAAK,CAAC;IACzB,MAAMC,SAAmB,EAAE;IAC3B,IAAK,IAAIC,IAAI,GAAGA,IAAIH,SAASI,MAAM,EAAED,IAAK;QACxC,IAAIH,QAAQ,CAACG,EAAE,CAACC,MAAM,GAAG,GAAG;YAC1BF,OAAOG,IAAI,CAACL,QAAQ,CAACG,EAAE;QACzB;IACF;IACA,OAAOD,OAAOI,IAAI,CAAC;AACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/shared/streamToString.ts"],"sourcesContent":["/**\n * Read entire stream content as string\n *\n * Handles both flowing streams and streams that have already\n * buffered data (using readable stream semantics).\n *\n * Node 0.8+ compatible.\n */\n\nimport oo from 'on-one';\nimport { bufferFrom } from './compat.ts';\n\nexport type StreamToStringCallback = (error?: Error, result?: string) => void;\n\nexport default function streamToString(stream: NodeJS.ReadableStream, callback: StreamToStringCallback): void {\n const chunks: Buffer[] = [];\n\n // Handle data from the stream\n stream.on('data', (chunk: Buffer | string) => {\n if (typeof chunk === 'string') {\n chunks.push(bufferFrom(chunk, 'utf8'));\n } else {\n chunks.push(chunk);\n }\n });\n\n // Handle stream end events using on-one for Node 0.8 compatibility\n oo(stream, ['error', 'end', 'close'], (err?: Error) => {\n if (err) {\n callback(err);\n } else {\n const content = Buffer.concat(chunks).toString('utf8');\n callback(null, content);\n }\n });\n\n // Ensure stream is flowing (in case it's paused)\n if (typeof (stream as NodeJS.ReadStream).resume === 'function') {\n (stream as NodeJS.ReadStream).resume();\n }\n}\n"],"names":["oo","bufferFrom","streamToString","stream","callback","chunks","on","chunk","push","err","content","Buffer","concat","toString","resume"],"mappings":"AAAA;;;;;;;CAOC,GAED,OAAOA,QAAQ,SAAS;AACxB,SAASC,UAAU,QAAQ,cAAc;AAIzC,eAAe,SAASC,eAAeC,MAA6B,EAAEC,QAAgC;IACpG,MAAMC,SAAmB,EAAE;IAE3B,8BAA8B;IAC9BF,OAAOG,EAAE,CAAC,QAAQ,CAACC;QACjB,IAAI,OAAOA,UAAU,UAAU;YAC7BF,OAAOG,IAAI,CAACP,WAAWM,OAAO;QAChC,OAAO;YACLF,OAAOG,IAAI,CAACD;QACd;IACF;IAEA,mEAAmE;IACnEP,GAAGG,QAAQ;QAAC;QAAS;QAAO;KAAQ,EAAE,CAACM;QACrC,IAAIA,KAAK;YACPL,SAASK;QACX,OAAO;YACL,MAAMC,UAAUC,OAAOC,MAAM,CAACP,QAAQQ,QAAQ,CAAC;YAC/CT,SAAS,MAAMM;QACjB;IACF;IAEA,iDAAiD;IACjD,IAAI,OAAO,AAACP,OAA6BW,MAAM,KAAK,YAAY;QAC7DX,OAA6BW,MAAM;IACtC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/shared/stripPath.ts"],"sourcesContent":["import path from 'path';\n\nimport type { ExtractOptions } from '../types.ts';\n\nexport default function stripPath(relativePath: string, options: ExtractOptions): string {\n const strip = options.strip || 0;\n if (!strip) return relativePath;\n const parts = relativePath.split(path.sep).filter(Boolean);\n if (parts.length < strip) throw new Error(`You cannot strip more levels than there are directories. Strip: ${strip}. Path: ${relativePath}`);\n return parts.slice(strip).join(path.sep);\n}\n"],"names":["path","stripPath","relativePath","options","strip","parts","split","sep","filter","Boolean","length","Error","slice","join"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAIxB,eAAe,SAASC,UAAUC,YAAoB,EAAEC,OAAuB;IAC7E,MAAMC,QAAQD,QAAQC,KAAK,IAAI;IAC/B,IAAI,CAACA,OAAO,OAAOF;IACnB,MAAMG,QAAQH,aAAaI,KAAK,CAACN,KAAKO,GAAG,EAAEC,MAAM,CAACC;IAClD,IAAIJ,MAAMK,MAAM,GAAGN,OAAO,MAAM,IAAIO,MAAM,CAAC,gEAAgE,EAAEP,MAAM,QAAQ,EAAEF,cAAc;IAC3I,OAAOG,MAAMO,KAAK,CAACR,OAAOS,IAAI,CAACb,KAAKO,GAAG;AACzC"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/types.ts"],"sourcesContent":["import type { Mode } from 'fs';\nimport type { StackOptions } from 'stack-base-iterator';\n\nexport interface ExtractOptions extends StackOptions {\n force?: boolean;\n strip?: number;\n now?: Date;\n}\n\nexport type NoParamCallback = (error?: Error) => void;\nexport type WriteFileFn = (path: string, options: object, callback: NoParamCallback) => void;\n\nexport interface FileAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n}\n\nexport interface DirectoryAttributes {\n mode: Mode;\n mtime: number | Date;\n path: string;\n}\n\nexport interface LinkAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n}\n\nimport type { default as DirectoryEntry } from './DirectoryEntry.ts';\nimport type { default as FileEntry } from './FileEntry.ts';\nimport type { default as LinkEntry } from './LinkEntry.ts';\nimport type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\n\nexport type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;\n\nexport interface AbstractEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n linkpath?: string;\n uid?: number;\n gid?: number;\n}\n"],"names":[],"mappings":"AAsCA,WASC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/validateAttributes.ts"],"sourcesContent":["export default function validateAttributes(attributes: object, keys: string[]): void {\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n if (attributes[key] === undefined) throw new Error(`Missing attribute ${key}.Attributes ${JSON.stringify(attributes)}`);\n }\n}\n"],"names":["validateAttributes","attributes","keys","index","length","key","undefined","Error","JSON","stringify"],"mappings":"AAAA,eAAe,SAASA,mBAAmBC,UAAkB,EAAEC,IAAc;IAC3E,IAAK,IAAIC,QAAQ,GAAGA,QAAQD,KAAKE,MAAM,EAAED,QAAS;QAChD,MAAME,MAAMH,IAAI,CAACC,MAAM;QACvB,IAAIF,UAAU,CAACI,IAAI,KAAKC,WAAW,MAAM,IAAIC,MAAM,CAAC,kBAAkB,EAAEF,IAAI,YAAY,EAAEG,KAAKC,SAAS,CAACR,aAAa;IACxH;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/iterators/extract-base-iterator/src/waitForAccess.ts"],"sourcesContent":["import fs from 'graceful-fs';\n\nimport type { NoParamCallback } from './types.ts';\n\n// Backward compatible: waitForAccess(path, callback) or waitForAccess(path, noFollow, callback)\nexport default function waitForAccess(fullPath: string, noFollow: boolean | NoParamCallback, callback?: NoParamCallback | number) {\n callback = typeof noFollow === 'function' ? noFollow : callback;\n noFollow = typeof noFollow === 'function' ? false : (noFollow as boolean);\n\n // Exponential backoff: 5, 10, 20, 40, 80, 160, 320, 640, 1280, 2560ms\n // Total max wait: ~5 seconds\n function waitSymlink(attempts, cb) {\n fs.lstat(fullPath, (err) => {\n if (err) {\n if (err.code === 'ENOENT' && attempts < 10) {\n const delay = Math.min(5 * 2 ** attempts, 2560);\n return setTimeout(() => waitSymlink(attempts + 1, cb), delay);\n }\n return cb(err);\n }\n cb();\n });\n }\n function waitOpen(attempts, cb) {\n fs.open(fullPath, 'r', (err, fd) => {\n if (err) {\n if (err.code === 'ENOENT' && attempts < 10) {\n const delay = Math.min(5 * 2 ** attempts, 2560);\n return setTimeout(() => waitOpen(attempts + 1, cb), delay);\n }\n return cb(err);\n }\n fs.close(fd, () => cb());\n });\n }\n\n // Windows: NTFS metadata may not be committed yet, verify accessibility\n // Node 0.10: the write stream's finish/close events may fire before the file is fully flushed to disk\n // For symlinks (noFollow=true), use lstat to check the link itself exists\n // For files/dirs/hardlinks, use open to verify the file is accessible\n noFollow ? waitSymlink(0, callback) : waitOpen(0, callback);\n}\n"],"names":["fs","waitForAccess","fullPath","noFollow","callback","waitSymlink","attempts","cb","lstat","err","code","delay","Math","min","setTimeout","waitOpen","open","fd","close"],"mappings":"AAAA,OAAOA,QAAQ,cAAc;AAI7B,gGAAgG;AAChG,eAAe,SAASC,cAAcC,QAAgB,EAAEC,QAAmC,EAAEC,QAAmC;IAC9HA,WAAW,OAAOD,aAAa,aAAaA,WAAWC;IACvDD,WAAW,OAAOA,aAAa,aAAa,QAASA;IAErD,sEAAsE;IACtE,6BAA6B;IAC7B,SAASE,YAAYC,QAAQ,EAAEC,EAAE;QAC/BP,GAAGQ,KAAK,CAACN,UAAU,CAACO;YAClB,IAAIA,KAAK;gBACP,IAAIA,IAAIC,IAAI,KAAK,YAAYJ,WAAW,IAAI;oBAC1C,MAAMK,QAAQC,KAAKC,GAAG,CAAC,IAAI,KAAKP,UAAU;oBAC1C,OAAOQ,WAAW,IAAMT,YAAYC,WAAW,GAAGC,KAAKI;gBACzD;gBACA,OAAOJ,GAAGE;YACZ;YACAF;QACF;IACF;IACA,SAASQ,SAAST,QAAQ,EAAEC,EAAE;QAC5BP,GAAGgB,IAAI,CAACd,UAAU,KAAK,CAACO,KAAKQ;YAC3B,IAAIR,KAAK;gBACP,IAAIA,IAAIC,IAAI,KAAK,YAAYJ,WAAW,IAAI;oBAC1C,MAAMK,QAAQC,KAAKC,GAAG,CAAC,IAAI,KAAKP,UAAU;oBAC1C,OAAOQ,WAAW,IAAMC,SAAST,WAAW,GAAGC,KAAKI;gBACtD;gBACA,OAAOJ,GAAGE;YACZ;YACAT,GAAGkB,KAAK,CAACD,IAAI,IAAMV;QACrB;IACF;IAEA,wEAAwE;IACxE,sGAAsG;IACtG,0EAA0E;IAC1E,sEAAsE;IACtEJ,WAAWE,YAAY,GAAGD,YAAYW,SAAS,GAAGX;AACpD"}
|