@zuplo/cli 6.73.8 → 6.73.11
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/cli.js +2 -11
- package/dist/cli.js.map +1 -1
- package/dist/common/cli-dispatcher.d.ts +6 -0
- package/dist/common/cli-dispatcher.d.ts.map +1 -0
- package/dist/common/cli-dispatcher.js +19 -0
- package/dist/common/cli-dispatcher.js.map +1 -0
- package/dist/common/cli-dispatcher.test.d.ts +2 -0
- package/dist/common/cli-dispatcher.test.d.ts.map +1 -0
- package/dist/common/cli-dispatcher.test.js +78 -0
- package/dist/common/cli-dispatcher.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/README.md +1 -4
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwks/remote.d.ts +3 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/key_to_jwk.js +4 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/package.json +1 -1
- package/node_modules/@posthog/core/dist/posthog-core.d.ts +5 -2
- package/node_modules/@posthog/core/dist/posthog-core.d.ts.map +1 -1
- package/node_modules/@posthog/core/dist/posthog-core.js +9 -3
- package/node_modules/@posthog/core/dist/posthog-core.mjs +9 -3
- package/node_modules/@posthog/core/dist/types.d.ts +4 -0
- package/node_modules/@posthog/core/dist/types.d.ts.map +1 -1
- package/node_modules/@posthog/core/package.json +2 -2
- package/node_modules/@posthog/core/src/posthog-core.ts +10 -5
- package/node_modules/@posthog/core/src/types.ts +5 -0
- package/node_modules/@posthog/types/dist/feature-flags.d.ts +9 -0
- package/node_modules/@posthog/types/dist/feature-flags.d.ts.map +1 -1
- package/node_modules/@posthog/types/dist/index.d.ts +1 -1
- package/node_modules/@posthog/types/dist/index.d.ts.map +1 -1
- package/node_modules/@posthog/types/dist/posthog.d.ts +6 -2
- package/node_modules/@posthog/types/dist/posthog.d.ts.map +1 -1
- package/node_modules/@posthog/types/package.json +1 -1
- package/node_modules/@posthog/types/src/feature-flags.ts +10 -0
- package/node_modules/@posthog/types/src/index.ts +1 -0
- package/node_modules/@posthog/types/src/posthog.ts +4 -1
- package/node_modules/@zuplo/core/customer.cli.minified.js +253 -253
- package/node_modules/@zuplo/core/index.minified.js +259 -259
- package/node_modules/@zuplo/core/package.json +1 -1
- package/node_modules/@zuplo/graphql/package.json +1 -1
- package/node_modules/@zuplo/openapi-tools/package.json +2 -2
- package/node_modules/@zuplo/otel/package.json +1 -1
- package/node_modules/@zuplo/runtime/out/esm/{chunk-W5A5ADF4.js → chunk-7Z5GGYF5.js} +4 -4
- package/node_modules/@zuplo/runtime/out/esm/chunk-7Z5GGYF5.js.map +1 -0
- package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
- package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
- package/node_modules/@zuplo/runtime/package.json +1 -1
- package/node_modules/js-yaml/README.md +5 -3
- package/node_modules/js-yaml/dist/js-yaml.js +3009 -2402
- package/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.min.js +2 -33
- package/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
- package/node_modules/js-yaml/dist/js-yaml.mjs +3073 -2381
- package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
- package/node_modules/js-yaml/lib/loader.js +7 -11
- package/node_modules/js-yaml/lib/type/float.js +1 -1
- package/node_modules/js-yaml/lib/type/int.js +4 -4
- package/node_modules/js-yaml/package.json +10 -4
- package/node_modules/tar/README.md +34 -6
- package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/create.js +3 -4
- package/node_modules/tar/dist/commonjs/create.js.map +1 -1
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts +1 -1
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -1
- package/node_modules/tar/dist/commonjs/extract.js.map +1 -1
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/get-write-flag.js +7 -4
- package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -1
- package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/header.js +60 -37
- package/node_modules/tar/dist/commonjs/header.js.map +1 -1
- package/node_modules/tar/dist/commonjs/index.min.js +3 -3
- package/node_modules/tar/dist/commonjs/index.min.js.map +3 -3
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -1
- package/node_modules/tar/dist/commonjs/list.d.ts +1 -1
- package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/list.js +2 -7
- package/node_modules/tar/dist/commonjs/list.js.map +1 -1
- package/node_modules/tar/dist/commonjs/make-command.d.ts +2 -2
- package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/make-command.js +3 -12
- package/node_modules/tar/dist/commonjs/make-command.js.map +1 -1
- package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/mkdir.js +5 -6
- package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -1
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +1 -1
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js +2 -2
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -1
- package/node_modules/tar/dist/commonjs/options.d.ts +14 -6
- package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/options.js.map +1 -1
- package/node_modules/tar/dist/commonjs/pack.d.ts +8 -4
- package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/pack.js +47 -19
- package/node_modules/tar/dist/commonjs/pack.js.map +1 -1
- package/node_modules/tar/dist/commonjs/parse.d.ts +11 -4
- package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/parse.js +61 -26
- package/node_modules/tar/dist/commonjs/parse.js.map +1 -1
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/path-reservations.js +2 -2
- package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -1
- package/node_modules/tar/dist/commonjs/pax.d.ts +1 -1
- package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/pax.js +30 -6
- package/node_modules/tar/dist/commonjs/pax.js.map +1 -1
- package/node_modules/tar/dist/commonjs/read-entry.d.ts +3 -3
- package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/read-entry.js +2 -6
- package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -1
- package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/replace.js +5 -10
- package/node_modules/tar/dist/commonjs/replace.js.map +1 -1
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts +2 -2
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -1
- package/node_modules/tar/dist/commonjs/types.d.ts +9 -0
- package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/types.js +21 -1
- package/node_modules/tar/dist/commonjs/types.js.map +1 -1
- package/node_modules/tar/dist/commonjs/unpack.d.ts +4 -4
- package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/unpack.js +39 -64
- package/node_modules/tar/dist/commonjs/unpack.js.map +1 -1
- package/node_modules/tar/dist/commonjs/warn-method.d.ts +2 -2
- package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -1
- package/node_modules/tar/dist/commonjs/winchars.js +1 -1
- package/node_modules/tar/dist/commonjs/winchars.js.map +1 -1
- package/node_modules/tar/dist/commonjs/write-entry.d.ts +11 -11
- package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -1
- package/node_modules/tar/dist/commonjs/write-entry.js +12 -13
- package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -1
- package/node_modules/tar/dist/esm/create.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/create.js +3 -4
- package/node_modules/tar/dist/esm/create.js.map +1 -1
- package/node_modules/tar/dist/esm/cwd-error.d.ts +1 -1
- package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/cwd-error.js.map +1 -1
- package/node_modules/tar/dist/esm/extract.js.map +1 -1
- package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/get-write-flag.js +7 -4
- package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -1
- package/node_modules/tar/dist/esm/header.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/header.js +60 -37
- package/node_modules/tar/dist/esm/header.js.map +1 -1
- package/node_modules/tar/dist/esm/index.min.js +3 -3
- package/node_modules/tar/dist/esm/index.min.js.map +3 -3
- package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/large-numbers.js.map +1 -1
- package/node_modules/tar/dist/esm/list.d.ts +1 -1
- package/node_modules/tar/dist/esm/list.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/list.js +2 -7
- package/node_modules/tar/dist/esm/list.js.map +1 -1
- package/node_modules/tar/dist/esm/make-command.d.ts +2 -2
- package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/make-command.js +3 -12
- package/node_modules/tar/dist/esm/make-command.js.map +1 -1
- package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/mkdir.js +5 -6
- package/node_modules/tar/dist/esm/mkdir.js.map +1 -1
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +1 -1
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/normalize-windows-path.js +2 -2
- package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -1
- package/node_modules/tar/dist/esm/options.d.ts +14 -6
- package/node_modules/tar/dist/esm/options.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/options.js.map +1 -1
- package/node_modules/tar/dist/esm/pack.d.ts +8 -4
- package/node_modules/tar/dist/esm/pack.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/pack.js +48 -20
- package/node_modules/tar/dist/esm/pack.js.map +1 -1
- package/node_modules/tar/dist/esm/parse.d.ts +11 -4
- package/node_modules/tar/dist/esm/parse.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/parse.js +62 -27
- package/node_modules/tar/dist/esm/parse.js.map +1 -1
- package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/path-reservations.js +2 -2
- package/node_modules/tar/dist/esm/path-reservations.js.map +1 -1
- package/node_modules/tar/dist/esm/pax.d.ts +1 -1
- package/node_modules/tar/dist/esm/pax.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/pax.js +30 -6
- package/node_modules/tar/dist/esm/pax.js.map +1 -1
- package/node_modules/tar/dist/esm/read-entry.d.ts +3 -3
- package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/read-entry.js +2 -6
- package/node_modules/tar/dist/esm/read-entry.js.map +1 -1
- package/node_modules/tar/dist/esm/replace.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/replace.js +6 -11
- package/node_modules/tar/dist/esm/replace.js.map +1 -1
- package/node_modules/tar/dist/esm/symlink-error.d.ts +2 -2
- package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/symlink-error.js.map +1 -1
- package/node_modules/tar/dist/esm/types.d.ts +9 -0
- package/node_modules/tar/dist/esm/types.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/types.js +20 -0
- package/node_modules/tar/dist/esm/types.js.map +1 -1
- package/node_modules/tar/dist/esm/unpack.d.ts +4 -4
- package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/unpack.js +39 -64
- package/node_modules/tar/dist/esm/unpack.js.map +1 -1
- package/node_modules/tar/dist/esm/warn-method.d.ts +2 -2
- package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/warn-method.js.map +1 -1
- package/node_modules/tar/dist/esm/winchars.js +1 -1
- package/node_modules/tar/dist/esm/winchars.js.map +1 -1
- package/node_modules/tar/dist/esm/write-entry.d.ts +11 -11
- package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -1
- package/node_modules/tar/dist/esm/write-entry.js +14 -15
- package/node_modules/tar/dist/esm/write-entry.js.map +1 -1
- package/node_modules/tar/package.json +15 -9
- package/node_modules/undici/docs/docs/api/Client.md +3 -0
- package/node_modules/undici/lib/dispatcher/agent.js +2 -2
- package/node_modules/undici/lib/dispatcher/client-h1.js +140 -23
- package/node_modules/undici/lib/dispatcher/client.js +3 -2
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +10 -1
- package/node_modules/undici/lib/dispatcher/pool-base.js +2 -2
- package/node_modules/undici/lib/dispatcher/pool.js +2 -2
- package/node_modules/undici/lib/web/cookies/parse.js +16 -23
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +13 -31
- package/node_modules/undici/lib/web/websocket/receiver.js +110 -24
- package/node_modules/undici/lib/web/websocket/websocket.js +8 -1
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/client.d.ts +17 -0
- package/package.json +9 -9
- package/node_modules/@zuplo/runtime/out/esm/chunk-W5A5ADF4.js.map +0 -1
- /package/node_modules/@zuplo/runtime/out/esm/{chunk-W5A5ADF4.js.LEGAL.txt → chunk-7Z5GGYF5.js.LEGAL.txt} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Minipass } from 'minipass';
|
|
2
|
-
import { Header } from './header.js';
|
|
3
|
-
import { Pax } from './pax.js';
|
|
4
|
-
import { EntryTypeName } from './types.js';
|
|
2
|
+
import type { Header } from './header.js';
|
|
3
|
+
import type { Pax } from './pax.js';
|
|
4
|
+
import type { EntryTypeName } from './types.js';
|
|
5
5
|
export declare class ReadEntry extends Minipass<Buffer, Buffer> {
|
|
6
6
|
#private;
|
|
7
7
|
extended?: Pax;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-entry.d.ts","sourceRoot":"","sources":["../../src/read-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"read-entry.d.ts","sourceRoot":"","sources":["../../src/read-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,qBAAa,SAAU,SAAQ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;;IACrD,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,OAAO,CAAQ;IACrB,MAAM,EAAE,OAAO,CAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAI;IAChB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAQ;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAQ;gBAEhB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG;IA6E/C,KAAK,CAAC,IAAI,EAAE,MAAM;CAqCnB"}
|
|
@@ -90,9 +90,7 @@ class ReadEntry extends minipass_1.Minipass {
|
|
|
90
90
|
this.ctime = header.ctime;
|
|
91
91
|
/* c8 ignore start */
|
|
92
92
|
this.linkpath =
|
|
93
|
-
header.linkpath ?
|
|
94
|
-
(0, normalize_windows_path_js_1.normalizeWindowsPath)(header.linkpath)
|
|
95
|
-
: undefined;
|
|
93
|
+
header.linkpath ? (0, normalize_windows_path_js_1.normalizeWindowsPath)(header.linkpath) : undefined;
|
|
96
94
|
/* c8 ignore stop */
|
|
97
95
|
this.uname = header.uname;
|
|
98
96
|
this.gname = header.gname;
|
|
@@ -130,9 +128,7 @@ class ReadEntry extends minipass_1.Minipass {
|
|
|
130
128
|
// we slurp in everything except for the path attribute in
|
|
131
129
|
// a global extended header, because that's weird. Also, any
|
|
132
130
|
// null/undefined values are ignored.
|
|
133
|
-
return !(v === null ||
|
|
134
|
-
v === undefined ||
|
|
135
|
-
(k === 'path' && gex));
|
|
131
|
+
return !(v === null || v === undefined || (k === 'path' && gex));
|
|
136
132
|
})));
|
|
137
133
|
}
|
|
138
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-entry.js","sourceRoot":"","sources":["../../src/read-entry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"read-entry.js","sourceRoot":"","sources":["../../src/read-entry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minipass } from 'minipass'\nimport type { Header } from './header.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport type { Pax } from './pax.js'\nimport type { EntryTypeName } from './types.js'\n\nexport class ReadEntry extends Minipass<Buffer, Buffer> {\n extended?: Pax\n globalExtended?: Pax\n header: Header\n startBlockSize: number\n blockRemain: number\n remain: number\n type: EntryTypeName\n meta: boolean = false\n ignore: boolean = false\n path: string\n mode?: number\n uid?: number\n gid?: number\n uname?: string\n gname?: string\n size: number = 0\n mtime?: Date\n atime?: Date\n ctime?: Date\n linkpath?: string\n\n dev?: number\n ino?: number\n nlink?: number\n invalid: boolean = false\n absolute?: string\n unsupported: boolean = false\n\n constructor(header: Header, ex?: Pax, gex?: Pax) {\n super({})\n // read entries always start life paused. this is to avoid the\n // situation where Minipass's auto-ending empty streams results\n // in an entry ending before we're ready for it.\n this.pause()\n this.extended = ex\n this.globalExtended = gex\n this.header = header\n /* c8 ignore start */\n this.remain = header.size ?? 0\n /* c8 ignore stop */\n this.startBlockSize = 512 * Math.ceil(this.remain / 512)\n this.blockRemain = this.startBlockSize\n this.type = header.type\n switch (this.type) {\n case 'File':\n case 'OldFile':\n case 'Link':\n case 'SymbolicLink':\n case 'CharacterDevice':\n case 'BlockDevice':\n case 'Directory':\n case 'FIFO':\n case 'ContiguousFile':\n case 'GNUDumpDir':\n break\n\n case 'NextFileHasLongLinkpath':\n case 'NextFileHasLongPath':\n case 'OldGnuLongPath':\n case 'GlobalExtendedHeader':\n case 'ExtendedHeader':\n case 'OldExtendedHeader':\n this.meta = true\n break\n\n // NOTE: gnutar and bsdtar treat unrecognized types as 'File'\n // it may be worth doing the same, but with a warning.\n default:\n this.ignore = true\n }\n\n /* c8 ignore start */\n if (!header.path) {\n throw new Error('no path provided for tar.ReadEntry')\n }\n /* c8 ignore stop */\n\n this.path = normalizeWindowsPath(header.path) as string\n this.mode = header.mode\n if (this.mode) {\n this.mode = this.mode & 0o7777\n }\n this.uid = header.uid\n this.gid = header.gid\n this.uname = header.uname\n this.gname = header.gname\n this.size = this.remain\n this.mtime = header.mtime\n this.atime = header.atime\n this.ctime = header.ctime\n /* c8 ignore start */\n this.linkpath =\n header.linkpath ? normalizeWindowsPath(header.linkpath) : undefined\n /* c8 ignore stop */\n this.uname = header.uname\n this.gname = header.gname\n\n if (ex) {\n this.#slurp(ex)\n }\n if (gex) {\n this.#slurp(gex, true)\n }\n }\n\n write(data: Buffer) {\n const writeLen = data.length\n if (writeLen > this.blockRemain) {\n throw new Error('writing more to entry than is appropriate')\n }\n\n const r = this.remain\n const br = this.blockRemain\n this.remain = Math.max(0, r - writeLen)\n this.blockRemain = Math.max(0, br - writeLen)\n if (this.ignore) {\n return true\n }\n\n if (r >= writeLen) {\n return super.write(data)\n }\n\n // r < writeLen\n return super.write(data.subarray(0, r))\n }\n\n #slurp(ex: Pax, gex: boolean = false) {\n if (ex.path) ex.path = normalizeWindowsPath(ex.path)\n if (ex.linkpath) ex.linkpath = normalizeWindowsPath(ex.linkpath)\n Object.assign(\n this,\n Object.fromEntries(\n Object.entries(ex).filter(([k, v]) => {\n // we slurp in everything except for the path attribute in\n // a global extended header, because that's weird. Also, any\n // null/undefined values are ignored.\n return !(v === null || v === undefined || (k === 'path' && gex))\n }),\n ),\n )\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/replace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/replace.ts"],"names":[],"mappings":"AAuPA,eAAO,MAAM,OAAO,sDA8BnB,CAAA"}
|
|
@@ -40,9 +40,7 @@ const replaceSync = (opt, files) => {
|
|
|
40
40
|
POSITION: for (position = 0; position < st.size; position += 512) {
|
|
41
41
|
for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {
|
|
42
42
|
bytes = node_fs_1.default.readSync(fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos);
|
|
43
|
-
if (position === 0 &&
|
|
44
|
-
headBuf[0] === 0x1f &&
|
|
45
|
-
headBuf[1] === 0x8b) {
|
|
43
|
+
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
|
|
46
44
|
throw new Error('cannot append to compressed archives');
|
|
47
45
|
}
|
|
48
46
|
if (!bytes) {
|
|
@@ -72,7 +70,7 @@ const replaceSync = (opt, files) => {
|
|
|
72
70
|
try {
|
|
73
71
|
node_fs_1.default.closeSync(fd);
|
|
74
72
|
}
|
|
75
|
-
catch
|
|
73
|
+
catch { }
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
};
|
|
@@ -103,16 +101,14 @@ const replaceAsync = (opt, files) => {
|
|
|
103
101
|
let bufPos = 0;
|
|
104
102
|
const headBuf = Buffer.alloc(512);
|
|
105
103
|
const onread = (er, bytes) => {
|
|
106
|
-
if (er ||
|
|
104
|
+
if (er || bytes === undefined) {
|
|
107
105
|
return cb(er);
|
|
108
106
|
}
|
|
109
107
|
bufPos += bytes;
|
|
110
108
|
if (bufPos < 512 && bytes) {
|
|
111
109
|
return node_fs_1.default.read(fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos, onread);
|
|
112
110
|
}
|
|
113
|
-
if (position === 0 &&
|
|
114
|
-
headBuf[0] === 0x1f &&
|
|
115
|
-
headBuf[1] === 0x8b) {
|
|
111
|
+
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
|
|
116
112
|
return cb(new Error('cannot append to compressed archives'));
|
|
117
113
|
}
|
|
118
114
|
// truncated header
|
|
@@ -191,8 +187,7 @@ const addFilesSync = (p, files) => {
|
|
|
191
187
|
p.end();
|
|
192
188
|
};
|
|
193
189
|
const addFilesAsync = async (p, files) => {
|
|
194
|
-
for (
|
|
195
|
-
const file = String(files[i]);
|
|
190
|
+
for (const file of files) {
|
|
196
191
|
if (file.charAt(0) === '@') {
|
|
197
192
|
await (0, list_js_1.list)({
|
|
198
193
|
file: node_path_1.default.resolve(String(p.cwd), file.slice(1)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/replace.ts"],"names":[],"mappings":"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","sourcesContent":["// tar -r\nimport { WriteStream, WriteStreamSync } from '@isaacs/fs-minipass'\nimport { Minipass } from 'minipass'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { Header } from './header.js'\nimport { list } from './list.js'\nimport { makeCommand } from './make-command.js'\nimport {\n isFile,\n TarOptionsFile,\n TarOptionsSyncFile,\n} from './options.js'\nimport { Pack, PackSync } from './pack.js'\n\n// starting at the head of the file, read a Header\n// If the checksum is invalid, that's our position to start writing\n// If it is, jump forward by the specified size (round up to 512)\n// and try again.\n// Write the new Pack stream starting there.\n\nconst replaceSync = (opt: TarOptionsSyncFile, files: string[]) => {\n const p = new PackSync(opt)\n\n let threw = true\n let fd\n let position\n\n try {\n try {\n fd = fs.openSync(opt.file, 'r+')\n } catch (er) {\n if ((er as NodeJS.ErrnoException)?.code === 'ENOENT') {\n fd = fs.openSync(opt.file, 'w+')\n } else {\n throw er\n }\n }\n\n const st = fs.fstatSync(fd)\n const headBuf = Buffer.alloc(512)\n\n POSITION: for (\n position = 0;\n position < st.size;\n position += 512\n ) {\n for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {\n bytes = fs.readSync(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n )\n\n if (\n position === 0 &&\n headBuf[0] === 0x1f &&\n headBuf[1] === 0x8b\n ) {\n throw new Error('cannot append to compressed archives')\n }\n\n if (!bytes) {\n break POSITION\n }\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n break\n }\n const entryBlockSize = 512 * Math.ceil((h.size || 0) / 512)\n if (position + entryBlockSize + 512 > st.size) {\n break\n }\n // the 512 for the header we just parsed will be added as well\n // also jump ahead all the blocks for the body\n position += entryBlockSize\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n }\n threw = false\n\n streamSync(opt, p, position, fd, files)\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd as number)\n } catch (er) {}\n }\n }\n}\n\nconst streamSync = (\n opt: TarOptionsSyncFile,\n p: Pack,\n position: number,\n fd: number,\n files: string[],\n) => {\n const stream = new WriteStreamSync(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n addFilesSync(p, files)\n}\n\nconst replaceAsync = (\n opt: TarOptionsFile,\n files: string[],\n): Promise<void> => {\n files = Array.from(files)\n const p = new Pack(opt)\n\n const getPos = (\n fd: number,\n size: number,\n cb_: (er?: null | Error, pos?: number) => void,\n ) => {\n const cb = (er?: Error | null, pos?: number) => {\n if (er) {\n fs.close(fd, _ => cb_(er))\n } else {\n cb_(null, pos)\n }\n }\n\n let position = 0\n if (size === 0) {\n return cb(null, 0)\n }\n\n let bufPos = 0\n const headBuf = Buffer.alloc(512)\n const onread = (er?: null | Error, bytes?: number): void => {\n if (er || typeof bytes === 'undefined') {\n return cb(er)\n }\n bufPos += bytes\n if (bufPos < 512 && bytes) {\n return fs.read(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n onread,\n )\n }\n\n if (\n position === 0 &&\n headBuf[0] === 0x1f &&\n headBuf[1] === 0x8b\n ) {\n return cb(new Error('cannot append to compressed archives'))\n }\n\n // truncated header\n if (bufPos < 512) {\n return cb(null, position)\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n return cb(null, position)\n }\n\n /* c8 ignore next */\n const entryBlockSize = 512 * Math.ceil((h.size ?? 0) / 512)\n if (position + entryBlockSize + 512 > size) {\n return cb(null, position)\n }\n\n position += entryBlockSize + 512\n if (position >= size) {\n return cb(null, position)\n }\n\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n bufPos = 0\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n p.on('error', reject)\n let flag = 'r+'\n const onopen = (\n er?: NodeJS.ErrnoException | null,\n fd?: number,\n ) => {\n if (er && er.code === 'ENOENT' && flag === 'r+') {\n flag = 'w+'\n return fs.open(opt.file, flag, onopen)\n }\n\n if (er || !fd) {\n return reject(er)\n }\n\n fs.fstat(fd, (er, st) => {\n if (er) {\n return fs.close(fd, () => reject(er))\n }\n\n getPos(fd, st.size, (er, position) => {\n if (er) {\n return reject(er)\n }\n const stream = new WriteStream(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n stream.on('error', reject)\n stream.on('close', resolve)\n addFilesAsync(p, files)\n })\n })\n }\n fs.open(opt.file, flag, onopen)\n })\n\n return promise\n}\n\nconst addFilesSync = (p: Pack, files: string[]) => {\n files.forEach(file => {\n if (file.charAt(0) === '@') {\n list({\n file: path.resolve(p.cwd, file.slice(1)),\n sync: true,\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n })\n p.end()\n}\n\nconst addFilesAsync = async (\n p: Pack,\n files: string[],\n): Promise<void> => {\n for (let i = 0; i < files.length; i++) {\n const file = String(files[i])\n if (file.charAt(0) === '@') {\n await list({\n file: path.resolve(String(p.cwd), file.slice(1)),\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n }\n p.end()\n}\n\nexport const replace = makeCommand(\n replaceSync,\n replaceAsync,\n /* c8 ignore start */\n (): never => {\n throw new TypeError('file is required')\n },\n (): never => {\n throw new TypeError('file is required')\n },\n /* c8 ignore stop */\n (opt, entries) => {\n if (!isFile(opt)) {\n throw new TypeError('file is required')\n }\n\n if (\n opt.gzip ||\n opt.brotli ||\n opt.zstd ||\n opt.file.endsWith('.br') ||\n opt.file.endsWith('.tbr')\n ) {\n throw new TypeError('cannot append to compressed archives')\n }\n\n if (!entries?.length) {\n throw new TypeError('no paths specified to add/replace')\n }\n },\n)\n"]}
|
|
1
|
+
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/replace.ts"],"names":[],"mappings":"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","sourcesContent":["// tar -r\nimport { WriteStream, WriteStreamSync } from '@isaacs/fs-minipass'\nimport type { Minipass } from 'minipass'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { Header } from './header.js'\nimport { list } from './list.js'\nimport { makeCommand } from './make-command.js'\nimport type { TarOptionsFile, TarOptionsSyncFile } from './options.js'\nimport { isFile } from './options.js'\nimport { Pack, PackSync } from './pack.js'\n\n// starting at the head of the file, read a Header\n// If the checksum is invalid, that's our position to start writing\n// If it is, jump forward by the specified size (round up to 512)\n// and try again.\n// Write the new Pack stream starting there.\n\nconst replaceSync = (opt: TarOptionsSyncFile, files: string[]) => {\n const p = new PackSync(opt)\n\n let threw = true\n let fd\n let position\n\n try {\n try {\n fd = fs.openSync(opt.file, 'r+')\n } catch (er) {\n if ((er as NodeJS.ErrnoException)?.code === 'ENOENT') {\n fd = fs.openSync(opt.file, 'w+')\n } else {\n throw er\n }\n }\n\n const st = fs.fstatSync(fd)\n const headBuf = Buffer.alloc(512)\n\n POSITION: for (position = 0; position < st.size; position += 512) {\n for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {\n bytes = fs.readSync(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n )\n\n if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {\n throw new Error('cannot append to compressed archives')\n }\n\n if (!bytes) {\n break POSITION\n }\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n break\n }\n const entryBlockSize = 512 * Math.ceil((h.size || 0) / 512)\n if (position + entryBlockSize + 512 > st.size) {\n break\n }\n // the 512 for the header we just parsed will be added as well\n // also jump ahead all the blocks for the body\n position += entryBlockSize\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n }\n threw = false\n\n streamSync(opt, p, position, fd, files)\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd as number)\n } catch {}\n }\n }\n}\n\nconst streamSync = (\n opt: TarOptionsSyncFile,\n p: Pack,\n position: number,\n fd: number,\n files: string[],\n) => {\n const stream = new WriteStreamSync(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n addFilesSync(p, files)\n}\n\nconst replaceAsync = (\n opt: TarOptionsFile,\n files: string[],\n): Promise<void> => {\n files = Array.from(files)\n const p = new Pack(opt)\n\n const getPos = (\n fd: number,\n size: number,\n cb_: (er?: null | Error, pos?: number) => void,\n ) => {\n const cb = (er?: Error | null, pos?: number) => {\n if (er) {\n fs.close(fd, _ => cb_(er))\n } else {\n cb_(null, pos)\n }\n }\n\n let position = 0\n if (size === 0) {\n return cb(null, 0)\n }\n\n let bufPos = 0\n const headBuf = Buffer.alloc(512)\n const onread = (er?: null | Error, bytes?: number): void => {\n if (er || bytes === undefined) {\n return cb(er)\n }\n bufPos += bytes\n if (bufPos < 512 && bytes) {\n return fs.read(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n onread,\n )\n }\n\n if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {\n return cb(new Error('cannot append to compressed archives'))\n }\n\n // truncated header\n if (bufPos < 512) {\n return cb(null, position)\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n return cb(null, position)\n }\n\n /* c8 ignore next */\n const entryBlockSize = 512 * Math.ceil((h.size ?? 0) / 512)\n if (position + entryBlockSize + 512 > size) {\n return cb(null, position)\n }\n\n position += entryBlockSize + 512\n if (position >= size) {\n return cb(null, position)\n }\n\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n bufPos = 0\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n p.on('error', reject)\n let flag = 'r+'\n const onopen = (er?: NodeJS.ErrnoException | null, fd?: number) => {\n if (er && er.code === 'ENOENT' && flag === 'r+') {\n flag = 'w+'\n return fs.open(opt.file, flag, onopen)\n }\n\n if (er || !fd) {\n return reject(er)\n }\n\n fs.fstat(fd, (er, st) => {\n if (er) {\n return fs.close(fd, () => reject(er))\n }\n\n getPos(fd, st.size, (er, position) => {\n if (er) {\n return reject(er)\n }\n const stream = new WriteStream(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n stream.on('error', reject)\n stream.on('close', resolve)\n addFilesAsync(p, files)\n })\n })\n }\n fs.open(opt.file, flag, onopen)\n })\n\n return promise\n}\n\nconst addFilesSync = (p: Pack, files: string[]) => {\n files.forEach(file => {\n if (file.charAt(0) === '@') {\n list({\n file: path.resolve(p.cwd, file.slice(1)),\n sync: true,\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n })\n p.end()\n}\n\nconst addFilesAsync = async (p: Pack, files: string[]): Promise<void> => {\n for (const file of files) {\n if (file.charAt(0) === '@') {\n await list({\n file: path.resolve(String(p.cwd), file.slice(1)),\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n }\n p.end()\n}\n\nexport const replace = makeCommand(\n replaceSync,\n replaceAsync,\n /* c8 ignore start */\n (): never => {\n throw new TypeError('file is required')\n },\n (): never => {\n throw new TypeError('file is required')\n },\n /* c8 ignore stop */\n (opt, entries) => {\n if (!isFile(opt)) {\n throw new TypeError('file is required')\n }\n\n if (\n opt.gzip ||\n opt.brotli ||\n opt.zstd ||\n opt.file.endsWith('.br') ||\n opt.file.endsWith('.tbr')\n ) {\n throw new TypeError('cannot append to compressed archives')\n }\n\n if (!entries?.length) {\n throw new TypeError('no paths specified to add/replace')\n }\n },\n)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symlink-error.d.ts","sourceRoot":"","sources":["../../src/symlink-error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,
|
|
1
|
+
{"version":3,"file":"symlink-error.d.ts","sourceRoot":"","sources":["../../src/symlink-error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAG,SAAS,CAAS;IAC5B,IAAI,EAAG,mBAAmB,CAAS;gBACvB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKzC,IAAI,IAAI,WAEP;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symlink-error.js","sourceRoot":"","sources":["../../src/symlink-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,CAAQ;IACZ,OAAO,CAAQ;IACf,OAAO,
|
|
1
|
+
{"version":3,"file":"symlink-error.js","sourceRoot":"","sources":["../../src/symlink-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,CAAQ;IACZ,OAAO,CAAQ;IACf,OAAO,GAAG,SAAkB,CAAA;IAC5B,IAAI,GAAG,mBAA4B,CAAA;IACnC,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAChE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,cAAc,CAAA;IACvB,CAAC;CACF;AAbD,oCAaC","sourcesContent":["export class SymlinkError extends Error {\n path: string\n symlink: string\n syscall = 'symlink' as const\n code = 'TAR_SYMLINK_ERROR' as const\n constructor(symlink: string, path: string) {\n super('TAR_SYMLINK_ERROR: Cannot extract through symbolic link')\n this.symlink = symlink\n this.path = path\n }\n get name() {\n return 'SymlinkError'\n }\n}\n"]}
|
|
@@ -2,6 +2,15 @@ export declare const isCode: (c: string) => c is EntryTypeCode;
|
|
|
2
2
|
export declare const isName: (c: string) => c is EntryTypeName;
|
|
3
3
|
export type EntryTypeCode = '0' | '' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | 'g' | 'x' | 'A' | 'D' | 'I' | 'K' | 'L' | 'M' | 'N' | 'S' | 'V' | 'X';
|
|
4
4
|
export type EntryTypeName = 'File' | 'OldFile' | 'Link' | 'SymbolicLink' | 'CharacterDevice' | 'BlockDevice' | 'Directory' | 'FIFO' | 'ContiguousFile' | 'GlobalExtendedHeader' | 'ExtendedHeader' | 'SolarisACL' | 'GNUDumpDir' | 'Inode' | 'NextFileHasLongLinkpath' | 'NextFileHasLongPath' | 'ContinuationFile' | 'OldGnuLongPath' | 'SparseFile' | 'TapeVolumeHeader' | 'OldExtendedHeader' | 'Unsupported';
|
|
5
|
+
/**
|
|
6
|
+
* types that are a normal file system entry, not metadata.
|
|
7
|
+
*
|
|
8
|
+
* These can be the subject of extended/globalExtended headers, long path
|
|
9
|
+
* names, long linkpath names, etc.
|
|
10
|
+
*
|
|
11
|
+
* Any other types are meta, and cannot be targetted by extended PAX headers.
|
|
12
|
+
*/
|
|
13
|
+
export declare const normalFsTypes: Set<EntryTypeCode>;
|
|
5
14
|
export declare const name: Map<EntryTypeCode, EntryTypeName>;
|
|
6
15
|
export declare const code: Map<EntryTypeName, EntryTypeCode>;
|
|
7
16
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,aACV,CAAA;AAE9B,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,aACV,CAAA;AAE9B,MAAM,MAAM,aAAa,GACrB,GAAG,GACH,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;AAEP,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,SAAS,GACT,MAAM,GACN,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,WAAW,GACX,MAAM,GACN,gBAAgB,GAChB,sBAAsB,GACtB,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,yBAAyB,GACzB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,aACV,CAAA;AAE9B,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,aACV,CAAA;AAE9B,MAAM,MAAM,aAAa,GACrB,GAAG,GACH,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;AAEP,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,SAAS,GACT,MAAM,GACN,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,WAAW,GACX,MAAM,GACN,gBAAgB,GAChB,sBAAsB,GACtB,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,yBAAyB,GACzB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,aAAa,CAAA;AAEjB;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,oBAWxB,CAAA;AAGF,eAAO,MAAM,IAAI,mCAsCf,CAAA;AAGF,eAAO,MAAM,IAAI,mCAEhB,CAAA"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.code = exports.name = exports.isName = exports.isCode = void 0;
|
|
3
|
+
exports.code = exports.name = exports.normalFsTypes = exports.isName = exports.isCode = void 0;
|
|
4
4
|
const isCode = (c) => exports.name.has(c);
|
|
5
5
|
exports.isCode = isCode;
|
|
6
6
|
const isName = (c) => exports.code.has(c);
|
|
7
7
|
exports.isName = isName;
|
|
8
|
+
/**
|
|
9
|
+
* types that are a normal file system entry, not metadata.
|
|
10
|
+
*
|
|
11
|
+
* These can be the subject of extended/globalExtended headers, long path
|
|
12
|
+
* names, long linkpath names, etc.
|
|
13
|
+
*
|
|
14
|
+
* Any other types are meta, and cannot be targetted by extended PAX headers.
|
|
15
|
+
*/
|
|
16
|
+
exports.normalFsTypes = new Set([
|
|
17
|
+
'0',
|
|
18
|
+
'',
|
|
19
|
+
'1',
|
|
20
|
+
'2',
|
|
21
|
+
'3',
|
|
22
|
+
'4',
|
|
23
|
+
'5',
|
|
24
|
+
'6',
|
|
25
|
+
'7',
|
|
26
|
+
'D',
|
|
27
|
+
]);
|
|
8
28
|
// map types from key to human-friendly name
|
|
9
29
|
exports.name = new Map([
|
|
10
30
|
['0', 'File'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,CAAS,EAAsB,EAAE,CACtD,YAAI,CAAC,GAAG,CAAC,CAAkB,CAAC,CAAA;AADjB,QAAA,MAAM,UACW;AAEvB,MAAM,MAAM,GAAG,CAAC,CAAS,EAAsB,EAAE,CACtD,YAAI,CAAC,GAAG,CAAC,CAAkB,CAAC,CAAA;AADjB,QAAA,MAAM,UACW;AAiD9B,4CAA4C;AAC/B,QAAA,IAAI,GAAG,IAAI,GAAG,CAA+B;IACxD,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,eAAe;IACf,CAAC,EAAE,EAAE,SAAS,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,cAAc,CAAC;IACrB,2CAA2C;IAC3C,8CAA8C;IAC9C,CAAC,GAAG,EAAE,iBAAiB,CAAC;IACxB,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,eAAe;IACf,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,cAAc;IACd,CAAC,GAAG,EAAE,sBAAsB,CAAC;IAC7B,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,wBAAwB;IACxB,OAAO;IACP,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,iDAAiD;IACjD,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,sBAAsB;IACtB,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,gCAAgC;IAChC,CAAC,GAAG,EAAE,yBAAyB,CAAC;IAChC,2BAA2B;IAC3B,CAAC,GAAG,EAAE,qBAAqB,CAAC;IAC5B,OAAO;IACP,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACzB,SAAS;IACT,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,OAAO;IACP,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,OAAO;IACP,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACzB,SAAS;IACT,CAAC,GAAG,EAAE,mBAAmB,CAAC;CAC3B,CAAC,CAAA;AAEF,0BAA0B;AACb,QAAA,IAAI,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,IAAI,CAAC,YAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3C,CAAA","sourcesContent":["export const isCode = (c: string): c is EntryTypeCode =>\n name.has(c as EntryTypeCode)\n\nexport const isName = (c: string): c is EntryTypeName =>\n code.has(c as EntryTypeName)\n\nexport type EntryTypeCode =\n | '0'\n | ''\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6'\n | '7'\n | 'g'\n | 'x'\n | 'A'\n | 'D'\n | 'I'\n | 'K'\n | 'L'\n | 'M'\n | 'N'\n | 'S'\n | 'V'\n | 'X'\n\nexport type EntryTypeName =\n | 'File'\n | 'OldFile'\n | 'Link'\n | 'SymbolicLink'\n | 'CharacterDevice'\n | 'BlockDevice'\n | 'Directory'\n | 'FIFO'\n | 'ContiguousFile'\n | 'GlobalExtendedHeader'\n | 'ExtendedHeader'\n | 'SolarisACL'\n | 'GNUDumpDir'\n | 'Inode'\n | 'NextFileHasLongLinkpath'\n | 'NextFileHasLongPath'\n | 'ContinuationFile'\n | 'OldGnuLongPath'\n | 'SparseFile'\n | 'TapeVolumeHeader'\n | 'OldExtendedHeader'\n | 'Unsupported'\n\n// map types from key to human-friendly name\nexport const name = new Map<EntryTypeCode, EntryTypeName>([\n ['0', 'File'],\n // same as File\n ['', 'OldFile'],\n ['1', 'Link'],\n ['2', 'SymbolicLink'],\n // Devices and FIFOs aren't fully supported\n // they are parsed, but skipped when unpacking\n ['3', 'CharacterDevice'],\n ['4', 'BlockDevice'],\n ['5', 'Directory'],\n ['6', 'FIFO'],\n // same as File\n ['7', 'ContiguousFile'],\n // pax headers\n ['g', 'GlobalExtendedHeader'],\n ['x', 'ExtendedHeader'],\n // vendor-specific stuff\n // skip\n ['A', 'SolarisACL'],\n // like 5, but with data, which should be skipped\n ['D', 'GNUDumpDir'],\n // metadata only, skip\n ['I', 'Inode'],\n // data = link path of next file\n ['K', 'NextFileHasLongLinkpath'],\n // data = path of next file\n ['L', 'NextFileHasLongPath'],\n // skip\n ['M', 'ContinuationFile'],\n // like L\n ['N', 'OldGnuLongPath'],\n // skip\n ['S', 'SparseFile'],\n // skip\n ['V', 'TapeVolumeHeader'],\n // like x\n ['X', 'OldExtendedHeader'],\n])\n\n// map the other direction\nexport const code = new Map<EntryTypeName, EntryTypeCode>(\n Array.from(name).map(kv => [kv[1], kv[0]]),\n)\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,CAAS,EAAsB,EAAE,CACtD,YAAI,CAAC,GAAG,CAAC,CAAkB,CAAC,CAAA;AADjB,QAAA,MAAM,UACW;AAEvB,MAAM,MAAM,GAAG,CAAC,CAAS,EAAsB,EAAE,CACtD,YAAI,CAAC,GAAG,CAAC,CAAkB,CAAC,CAAA;AADjB,QAAA,MAAM,UACW;AAiD9B;;;;;;;GAOG;AACU,QAAA,aAAa,GAAG,IAAI,GAAG,CAAgB;IAClD,GAAG;IACH,EAAE;IACF,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC,CAAA;AAEF,4CAA4C;AAC/B,QAAA,IAAI,GAAG,IAAI,GAAG,CAA+B;IACxD,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,eAAe;IACf,CAAC,EAAE,EAAE,SAAS,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,cAAc,CAAC;IACrB,2CAA2C;IAC3C,8CAA8C;IAC9C,CAAC,GAAG,EAAE,iBAAiB,CAAC;IACxB,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,eAAe;IACf,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,cAAc;IACd,CAAC,GAAG,EAAE,sBAAsB,CAAC;IAC7B,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,wBAAwB;IACxB,OAAO;IACP,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,iDAAiD;IACjD,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,sBAAsB;IACtB,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,gCAAgC;IAChC,CAAC,GAAG,EAAE,yBAAyB,CAAC;IAChC,2BAA2B;IAC3B,CAAC,GAAG,EAAE,qBAAqB,CAAC;IAC5B,OAAO;IACP,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACzB,SAAS;IACT,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,OAAO;IACP,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,OAAO;IACP,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACzB,SAAS;IACT,CAAC,GAAG,EAAE,mBAAmB,CAAC;CAC3B,CAAC,CAAA;AAEF,0BAA0B;AACb,QAAA,IAAI,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,IAAI,CAAC,YAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3C,CAAA","sourcesContent":["export const isCode = (c: string): c is EntryTypeCode =>\n name.has(c as EntryTypeCode)\n\nexport const isName = (c: string): c is EntryTypeName =>\n code.has(c as EntryTypeName)\n\nexport type EntryTypeCode =\n | '0'\n | ''\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6'\n | '7'\n | 'g'\n | 'x'\n | 'A'\n | 'D'\n | 'I'\n | 'K'\n | 'L'\n | 'M'\n | 'N'\n | 'S'\n | 'V'\n | 'X'\n\nexport type EntryTypeName =\n | 'File'\n | 'OldFile'\n | 'Link'\n | 'SymbolicLink'\n | 'CharacterDevice'\n | 'BlockDevice'\n | 'Directory'\n | 'FIFO'\n | 'ContiguousFile'\n | 'GlobalExtendedHeader'\n | 'ExtendedHeader'\n | 'SolarisACL'\n | 'GNUDumpDir'\n | 'Inode'\n | 'NextFileHasLongLinkpath'\n | 'NextFileHasLongPath'\n | 'ContinuationFile'\n | 'OldGnuLongPath'\n | 'SparseFile'\n | 'TapeVolumeHeader'\n | 'OldExtendedHeader'\n | 'Unsupported'\n\n/**\n * types that are a normal file system entry, not metadata.\n *\n * These can be the subject of extended/globalExtended headers, long path\n * names, long linkpath names, etc.\n *\n * Any other types are meta, and cannot be targetted by extended PAX headers.\n */\nexport const normalFsTypes = new Set<EntryTypeCode>([\n '0',\n '',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n 'D',\n])\n\n// map types from key to human-friendly name\nexport const name = new Map<EntryTypeCode, EntryTypeName>([\n ['0', 'File'],\n // same as File\n ['', 'OldFile'],\n ['1', 'Link'],\n ['2', 'SymbolicLink'],\n // Devices and FIFOs aren't fully supported\n // they are parsed, but skipped when unpacking\n ['3', 'CharacterDevice'],\n ['4', 'BlockDevice'],\n ['5', 'Directory'],\n ['6', 'FIFO'],\n // same as File\n ['7', 'ContiguousFile'],\n // pax headers\n ['g', 'GlobalExtendedHeader'],\n ['x', 'ExtendedHeader'],\n // vendor-specific stuff\n // skip\n ['A', 'SolarisACL'],\n // like 5, but with data, which should be skipped\n ['D', 'GNUDumpDir'],\n // metadata only, skip\n ['I', 'Inode'],\n // data = link path of next file\n ['K', 'NextFileHasLongLinkpath'],\n // data = path of next file\n ['L', 'NextFileHasLongPath'],\n // skip\n ['M', 'ContinuationFile'],\n // like L\n ['N', 'OldGnuLongPath'],\n // skip\n ['S', 'SparseFile'],\n // skip\n ['V', 'TapeVolumeHeader'],\n // like x\n ['X', 'OldExtendedHeader'],\n])\n\n// map the other direction\nexport const code = new Map<EntryTypeName, EntryTypeCode>(\n Array.from(name).map(kv => [kv[1], kv[0]]),\n)\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Stats } from 'node:fs';
|
|
2
|
-
import { MkdirError } from './mkdir.js';
|
|
2
|
+
import type { MkdirError } from './mkdir.js';
|
|
3
3
|
import { Parser } from './parse.js';
|
|
4
|
-
import { TarOptions } from './options.js';
|
|
4
|
+
import type { TarOptions } from './options.js';
|
|
5
5
|
import { PathReservations } from './path-reservations.js';
|
|
6
|
-
import { ReadEntry } from './read-entry.js';
|
|
7
|
-
import { WarnData } from './warn-method.js';
|
|
6
|
+
import type { ReadEntry } from './read-entry.js';
|
|
7
|
+
import type { WarnData } from './warn-method.js';
|
|
8
8
|
import { SymlinkError } from './symlink-error.js';
|
|
9
9
|
declare const ONENTRY: unique symbol;
|
|
10
10
|
declare const CHECKFS: unique symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpack.d.ts","sourceRoot":"","sources":["../../src/unpack.ts"],"names":[],"mappings":"AASA,OAAW,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,
|
|
1
|
+
{"version":3,"file":"unpack.d.ts","sourceRoot":"","sources":["../../src/unpack.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,8 +167,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
167
167
|
this.chmod = !!opt.chmod;
|
|
168
168
|
if (typeof opt.uid === 'number' || typeof opt.gid === 'number') {
|
|
169
169
|
// need both or neither
|
|
170
|
-
if (typeof opt.uid !== 'number' ||
|
|
171
|
-
typeof opt.gid !== 'number') {
|
|
170
|
+
if (typeof opt.uid !== 'number' || typeof opt.gid !== 'number') {
|
|
172
171
|
throw new TypeError('cannot set owner without number uid and gid');
|
|
173
172
|
}
|
|
174
173
|
if (opt.preserveOwner) {
|
|
@@ -184,13 +183,10 @@ class Unpack extends parse_js_1.Parser {
|
|
|
184
183
|
this.setOwner = false;
|
|
185
184
|
}
|
|
186
185
|
// default true for root
|
|
187
|
-
|
|
188
|
-
typeof opt.uid !== 'number'
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
else {
|
|
192
|
-
this.preserveOwner = !!opt.preserveOwner;
|
|
193
|
-
}
|
|
186
|
+
this.preserveOwner =
|
|
187
|
+
opt.preserveOwner === undefined && typeof opt.uid !== 'number' ?
|
|
188
|
+
!!(process.getuid?.() === 0)
|
|
189
|
+
: !!opt.preserveOwner;
|
|
194
190
|
this.processUid =
|
|
195
191
|
(this.preserveOwner || this.setOwner) && process.getuid ?
|
|
196
192
|
process.getuid()
|
|
@@ -202,9 +198,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
202
198
|
// prevent excessively deep nesting of subfolders
|
|
203
199
|
// set to `Infinity` to remove this restriction
|
|
204
200
|
this.maxDepth =
|
|
205
|
-
typeof opt.maxDepth === 'number' ?
|
|
206
|
-
opt.maxDepth
|
|
207
|
-
: DEFAULT_MAX_DEPTH;
|
|
201
|
+
typeof opt.maxDepth === 'number' ? opt.maxDepth : DEFAULT_MAX_DEPTH;
|
|
208
202
|
// mostly just for testing, but useful in some cases.
|
|
209
203
|
// Forcibly trigger a chown on every entry, no matter what
|
|
210
204
|
this.forceChown = opt.forceChown === true;
|
|
@@ -262,7 +256,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
262
256
|
return true;
|
|
263
257
|
// strip off the root
|
|
264
258
|
const [root, stripped] = (0, strip_absolute_path_js_1.stripAbsolutePath)(p);
|
|
265
|
-
const parts = stripped.
|
|
259
|
+
const parts = stripped.replaceAll(/\\/g, '/').split('/');
|
|
266
260
|
if (parts.includes('..') ||
|
|
267
261
|
/* c8 ignore next */
|
|
268
262
|
(isWindows && /^[a-z]:\.\.$/i.test(parts[0] ?? ''))) {
|
|
@@ -278,20 +272,18 @@ class Unpack extends parse_js_1.Parser {
|
|
|
278
272
|
// not ok!
|
|
279
273
|
return false;
|
|
280
274
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return false;
|
|
294
|
-
}
|
|
275
|
+
// Resolve linkpath relative to the entry's directory.
|
|
276
|
+
// `path.posix` is safe to use because we're operating on
|
|
277
|
+
// tar paths, not a filesystem.
|
|
278
|
+
const entryDir = node_path_1.default.posix.dirname(entry.path);
|
|
279
|
+
const resolved = node_path_1.default.posix.normalize(node_path_1.default.posix.join(entryDir, parts.join('/')));
|
|
280
|
+
// If the resolved path escapes (starts with ..), reject it
|
|
281
|
+
if (resolved.startsWith('../') || resolved === '..') {
|
|
282
|
+
this.warn('TAR_ENTRY_ERROR', `${field} escapes extraction directory`, {
|
|
283
|
+
entry,
|
|
284
|
+
[field]: p,
|
|
285
|
+
});
|
|
286
|
+
return false;
|
|
295
287
|
}
|
|
296
288
|
}
|
|
297
289
|
if (root) {
|
|
@@ -337,12 +329,10 @@ class Unpack extends parse_js_1.Parser {
|
|
|
337
329
|
!this[STRIPABSOLUTEPATH](entry, 'linkpath')) {
|
|
338
330
|
return false;
|
|
339
331
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
entry.absolute = (0, normalize_windows_path_js_1.normalizeWindowsPath)(node_path_1.default.resolve(this.cwd, entry.path));
|
|
345
|
-
}
|
|
332
|
+
entry.absolute =
|
|
333
|
+
node_path_1.default.isAbsolute(entry.path) ?
|
|
334
|
+
(0, normalize_windows_path_js_1.normalizeWindowsPath)(node_path_1.default.resolve(entry.path))
|
|
335
|
+
: (0, normalize_windows_path_js_1.normalizeWindowsPath)(node_path_1.default.resolve(this.cwd, entry.path));
|
|
346
336
|
// if we somehow ended up with a path that escapes the cwd, and we are
|
|
347
337
|
// not in preservePaths mode, then something is fishy! This should have
|
|
348
338
|
// been prevented above, so ignore this for coverage.
|
|
@@ -416,7 +406,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
416
406
|
}
|
|
417
407
|
}
|
|
418
408
|
[MKDIR](dir, mode, cb) {
|
|
419
|
-
(0, mkdir_js_1.mkdir)((0, normalize_windows_path_js_1.normalizeWindowsPath)(dir), {
|
|
409
|
+
void (0, mkdir_js_1.mkdir)((0, normalize_windows_path_js_1.normalizeWindowsPath)(dir), {
|
|
420
410
|
uid: this.uid,
|
|
421
411
|
gid: this.gid,
|
|
422
412
|
processUid: this.processUid,
|
|
@@ -437,8 +427,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
437
427
|
entry.uid !== this.processUid) ||
|
|
438
428
|
(typeof entry.gid === 'number' &&
|
|
439
429
|
entry.gid !== this.processGid))) ||
|
|
440
|
-
(typeof this.uid === 'number' &&
|
|
441
|
-
this.uid !== this.processUid) ||
|
|
430
|
+
(typeof this.uid === 'number' && this.uid !== this.processUid) ||
|
|
442
431
|
(typeof this.gid === 'number' && this.gid !== this.processGid));
|
|
443
432
|
}
|
|
444
433
|
[UID](entry) {
|
|
@@ -448,9 +437,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
448
437
|
return uint32(this.gid, entry.gid, this.processGid);
|
|
449
438
|
}
|
|
450
439
|
[FILE](entry, fullyDone) {
|
|
451
|
-
const mode = typeof entry.mode === 'number' ?
|
|
452
|
-
entry.mode & 0o7777
|
|
453
|
-
: this.fmode;
|
|
440
|
+
const mode = typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.fmode;
|
|
454
441
|
const stream = new fsm.WriteStream(String(entry.absolute), {
|
|
455
442
|
// slight lie, but it can be numeric flags
|
|
456
443
|
flags: (0, get_write_flag_js_1.getWriteFlag)(entry.size),
|
|
@@ -513,16 +500,14 @@ class Unpack extends parse_js_1.Parser {
|
|
|
513
500
|
const uid = this[UID](entry);
|
|
514
501
|
const gid = this[GID](entry);
|
|
515
502
|
if (typeof uid === 'number' && typeof gid === 'number') {
|
|
516
|
-
node_fs_1.default.fchown(fd, uid, gid, er => er ?
|
|
517
|
-
node_fs_1.default.chown(abs, uid, gid, er2 => done(er2 && er))
|
|
518
|
-
: done());
|
|
503
|
+
node_fs_1.default.fchown(fd, uid, gid, er => er ? node_fs_1.default.chown(abs, uid, gid, er2 => done(er2 && er)) : done());
|
|
519
504
|
}
|
|
520
505
|
}
|
|
521
506
|
done();
|
|
522
507
|
});
|
|
523
508
|
const tx = this.transform ? this.transform(entry) || entry : entry;
|
|
524
509
|
if (tx !== entry) {
|
|
525
|
-
tx.on('error',
|
|
510
|
+
tx.on('error', er => {
|
|
526
511
|
this[ONERROR](er, entry);
|
|
527
512
|
fullyDone();
|
|
528
513
|
});
|
|
@@ -531,9 +516,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
531
516
|
tx.pipe(stream);
|
|
532
517
|
}
|
|
533
518
|
[DIRECTORY](entry, fullyDone) {
|
|
534
|
-
const mode = typeof entry.mode === 'number' ?
|
|
535
|
-
entry.mode & 0o7777
|
|
536
|
-
: this.dmode;
|
|
519
|
+
const mode = typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.dmode;
|
|
537
520
|
this[MKDIR](String(entry.absolute), mode, er => {
|
|
538
521
|
if (er) {
|
|
539
522
|
this[ONERROR](er, entry);
|
|
@@ -669,9 +652,7 @@ class Unpack extends parse_js_1.Parser {
|
|
|
669
652
|
}
|
|
670
653
|
if (st.isDirectory()) {
|
|
671
654
|
if (entry.type === 'Directory') {
|
|
672
|
-
const needChmod = this.chmod &&
|
|
673
|
-
entry.mode &&
|
|
674
|
-
(st.mode & 0o7777) !== entry.mode;
|
|
655
|
+
const needChmod = this.chmod && entry.mode && (st.mode & 0o7777) !== entry.mode;
|
|
675
656
|
const afterChmod = (er) => this[MAKEFS](er ?? null, entry, done);
|
|
676
657
|
if (!needChmod) {
|
|
677
658
|
return afterChmod();
|
|
@@ -782,9 +763,7 @@ class UnpackSync extends Unpack {
|
|
|
782
763
|
}
|
|
783
764
|
if (st.isDirectory()) {
|
|
784
765
|
if (entry.type === 'Directory') {
|
|
785
|
-
const needChmod = this.chmod &&
|
|
786
|
-
entry.mode &&
|
|
787
|
-
(st.mode & 0o7777) !== entry.mode;
|
|
766
|
+
const needChmod = this.chmod && entry.mode && (st.mode & 0o7777) !== entry.mode;
|
|
788
767
|
const [er] = needChmod ?
|
|
789
768
|
callSync(() => {
|
|
790
769
|
node_fs_1.default.chmodSync(String(entry.absolute), Number(entry.mode));
|
|
@@ -804,9 +783,7 @@ class UnpackSync extends Unpack {
|
|
|
804
783
|
this[MAKEFS](er, entry);
|
|
805
784
|
}
|
|
806
785
|
[FILE](entry, done) {
|
|
807
|
-
const mode = typeof entry.mode === 'number' ?
|
|
808
|
-
entry.mode & 0o7777
|
|
809
|
-
: this.fmode;
|
|
786
|
+
const mode = typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.fmode;
|
|
810
787
|
const oner = (er) => {
|
|
811
788
|
let closeError;
|
|
812
789
|
try {
|
|
@@ -834,7 +811,7 @@ class UnpackSync extends Unpack {
|
|
|
834
811
|
/* c8 ignore stop */
|
|
835
812
|
const tx = this.transform ? this.transform(entry) || entry : entry;
|
|
836
813
|
if (tx !== entry) {
|
|
837
|
-
tx.on('error',
|
|
814
|
+
tx.on('error', er => this[ONERROR](er, entry));
|
|
838
815
|
entry.pipe(tx);
|
|
839
816
|
}
|
|
840
817
|
tx.on('data', (chunk) => {
|
|
@@ -859,7 +836,7 @@ class UnpackSync extends Unpack {
|
|
|
859
836
|
try {
|
|
860
837
|
node_fs_1.default.utimesSync(String(entry.absolute), atime, mtime);
|
|
861
838
|
}
|
|
862
|
-
catch
|
|
839
|
+
catch {
|
|
863
840
|
er = futimeser;
|
|
864
841
|
}
|
|
865
842
|
}
|
|
@@ -874,7 +851,7 @@ class UnpackSync extends Unpack {
|
|
|
874
851
|
try {
|
|
875
852
|
node_fs_1.default.chownSync(String(entry.absolute), Number(uid), Number(gid));
|
|
876
853
|
}
|
|
877
|
-
catch
|
|
854
|
+
catch {
|
|
878
855
|
er = er || fchowner;
|
|
879
856
|
}
|
|
880
857
|
}
|
|
@@ -883,9 +860,7 @@ class UnpackSync extends Unpack {
|
|
|
883
860
|
});
|
|
884
861
|
}
|
|
885
862
|
[DIRECTORY](entry, done) {
|
|
886
|
-
const mode = typeof entry.mode === 'number' ?
|
|
887
|
-
entry.mode & 0o7777
|
|
888
|
-
: this.dmode;
|
|
863
|
+
const mode = typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.dmode;
|
|
889
864
|
const er = this[MKDIR](String(entry.absolute), mode);
|
|
890
865
|
if (er) {
|
|
891
866
|
this[ONERROR](er, entry);
|
|
@@ -897,13 +872,13 @@ class UnpackSync extends Unpack {
|
|
|
897
872
|
node_fs_1.default.utimesSync(String(entry.absolute), entry.atime || new Date(), entry.mtime);
|
|
898
873
|
/* c8 ignore next */
|
|
899
874
|
}
|
|
900
|
-
catch
|
|
875
|
+
catch { }
|
|
901
876
|
}
|
|
902
877
|
if (this[DOCHOWN](entry)) {
|
|
903
878
|
try {
|
|
904
879
|
node_fs_1.default.chownSync(String(entry.absolute), Number(this[UID](entry)), Number(this[GID](entry)));
|
|
905
880
|
}
|
|
906
|
-
catch
|
|
881
|
+
catch { }
|
|
907
882
|
}
|
|
908
883
|
done();
|
|
909
884
|
entry.resume();
|
|
@@ -927,7 +902,7 @@ class UnpackSync extends Unpack {
|
|
|
927
902
|
}
|
|
928
903
|
}
|
|
929
904
|
[ENSURE_NO_SYMLINK](_entry, cwd, parts, done, onError) {
|
|
930
|
-
if (this.preservePaths ||
|
|
905
|
+
if (this.preservePaths || parts.length === 0)
|
|
931
906
|
return done();
|
|
932
907
|
let t = cwd;
|
|
933
908
|
for (const p of parts) {
|