@nocobase/plugin-multi-portal 2.2.0-alpha.10
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/LICENSE.txt +107 -0
- package/README.md +14 -0
- package/client-v2.d.ts +2 -0
- package/client-v2.js +1 -0
- package/client.d.ts +2 -0
- package/client.js +1 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.js +10 -0
- package/dist/client/locale.d.ts +10 -0
- package/dist/client/models/index.d.ts +11 -0
- package/dist/client/plugin.d.ts +13 -0
- package/dist/client-v2/354.ead3e96143164cd5.js +10 -0
- package/dist/client-v2/499.ef2ff0c022687485.js +10 -0
- package/dist/client-v2/778.23ba409a924ee34a.js +10 -0
- package/dist/client-v2/845.f2b0ce44ae4be707.js +10 -0
- package/dist/client-v2/entryActions/PortalEntryActionModel.d.ts +52 -0
- package/dist/client-v2/entryActions/portalEntryActionStore.d.ts +36 -0
- package/dist/client-v2/entryActions/registerPortalEntryActions.d.ts +10 -0
- package/dist/client-v2/entryActions/types.d.ts +41 -0
- package/dist/client-v2/entryActions/url.d.ts +10 -0
- package/dist/client-v2/index.d.ts +9 -0
- package/dist/client-v2/index.js +10 -0
- package/dist/client-v2/layoutRegistration.d.ts +38 -0
- package/dist/client-v2/locale.d.ts +13 -0
- package/dist/client-v2/models/MultiPortalBlockModel.d.ts +13 -0
- package/dist/client-v2/models/MultiPortalMobilePageModels.d.ts +34 -0
- package/dist/client-v2/pages/MultiPortalsPage.d.ts +80 -0
- package/dist/client-v2/permissions/MultiPortalPermissionsTab.d.ts +21 -0
- package/dist/client-v2/permissions/multiPortalPermissions.d.ts +12 -0
- package/dist/client-v2/plugin.d.ts +13 -0
- package/dist/client-v2/routeRepositoryScope.d.ts +11 -0
- package/dist/client-v2/routeUrl.d.ts +18 -0
- package/dist/externalVersion.js +25 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +48 -0
- package/dist/locale/en-US.json +82 -0
- package/dist/locale/zh-CN.json +82 -0
- package/dist/node_modules/tar/dist/commonjs/create.d.ts +3 -0
- package/dist/node_modules/tar/dist/commonjs/create.js +82 -0
- package/dist/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
- package/dist/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
- package/dist/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
- package/dist/node_modules/tar/dist/commonjs/extract.js +88 -0
- package/dist/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
- package/dist/node_modules/tar/dist/commonjs/header.d.ts +53 -0
- package/dist/node_modules/tar/dist/commonjs/header.js +312 -0
- package/dist/node_modules/tar/dist/commonjs/index.d.ts +20 -0
- package/dist/node_modules/tar/dist/commonjs/index.js +64 -0
- package/dist/node_modules/tar/dist/commonjs/index.min.js +1 -0
- package/dist/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
- package/dist/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
- package/dist/node_modules/tar/dist/commonjs/list.d.ts +7 -0
- package/dist/node_modules/tar/dist/commonjs/list.js +145 -0
- package/dist/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
- package/dist/node_modules/tar/dist/commonjs/make-command.js +52 -0
- package/dist/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
- package/dist/node_modules/tar/dist/commonjs/mkdir.js +187 -0
- package/dist/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
- package/dist/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
- package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
- package/dist/node_modules/tar/dist/commonjs/options.d.ts +596 -0
- package/dist/node_modules/tar/dist/commonjs/options.js +66 -0
- package/dist/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
- package/dist/node_modules/tar/dist/commonjs/pack.js +545 -0
- package/dist/node_modules/tar/dist/commonjs/package.json +3 -0
- package/dist/node_modules/tar/dist/commonjs/parse.d.ts +85 -0
- package/dist/node_modules/tar/dist/commonjs/parse.js +610 -0
- package/dist/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
- package/dist/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
- package/dist/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
- package/dist/node_modules/tar/dist/commonjs/pax.js +158 -0
- package/dist/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/process-umask.js +7 -0
- package/dist/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
- package/dist/node_modules/tar/dist/commonjs/read-entry.js +136 -0
- package/dist/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/replace.js +227 -0
- package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
- package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
- package/dist/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
- package/dist/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
- package/dist/node_modules/tar/dist/commonjs/types.d.ts +7 -0
- package/dist/node_modules/tar/dist/commonjs/types.js +50 -0
- package/dist/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
- package/dist/node_modules/tar/dist/commonjs/unpack.js +932 -0
- package/dist/node_modules/tar/dist/commonjs/update.d.ts +2 -0
- package/dist/node_modules/tar/dist/commonjs/update.js +33 -0
- package/dist/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
- package/dist/node_modules/tar/dist/commonjs/warn-method.js +31 -0
- package/dist/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
- package/dist/node_modules/tar/dist/commonjs/winchars.js +14 -0
- package/dist/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
- package/dist/node_modules/tar/dist/commonjs/write-entry.js +698 -0
- package/dist/node_modules/tar/dist/esm/create.d.ts +3 -0
- package/dist/node_modules/tar/dist/esm/create.js +76 -0
- package/dist/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
- package/dist/node_modules/tar/dist/esm/cwd-error.js +14 -0
- package/dist/node_modules/tar/dist/esm/extract.d.ts +3 -0
- package/dist/node_modules/tar/dist/esm/extract.js +49 -0
- package/dist/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/get-write-flag.js +26 -0
- package/dist/node_modules/tar/dist/esm/header.d.ts +53 -0
- package/dist/node_modules/tar/dist/esm/header.js +275 -0
- package/dist/node_modules/tar/dist/esm/index.d.ts +20 -0
- package/dist/node_modules/tar/dist/esm/index.js +20 -0
- package/dist/node_modules/tar/dist/esm/index.min.js +4 -0
- package/dist/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
- package/dist/node_modules/tar/dist/esm/large-numbers.js +94 -0
- package/dist/node_modules/tar/dist/esm/list.d.ts +7 -0
- package/dist/node_modules/tar/dist/esm/list.js +105 -0
- package/dist/node_modules/tar/dist/esm/make-command.d.ts +49 -0
- package/dist/node_modules/tar/dist/esm/make-command.js +48 -0
- package/dist/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
- package/dist/node_modules/tar/dist/esm/mkdir.js +179 -0
- package/dist/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/mode-fix.js +25 -0
- package/dist/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
- package/dist/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
- package/dist/node_modules/tar/dist/esm/options.d.ts +596 -0
- package/dist/node_modules/tar/dist/esm/options.js +54 -0
- package/dist/node_modules/tar/dist/esm/pack.d.ts +105 -0
- package/dist/node_modules/tar/dist/esm/pack.js +503 -0
- package/dist/node_modules/tar/dist/esm/package.json +3 -0
- package/dist/node_modules/tar/dist/esm/parse.d.ts +85 -0
- package/dist/node_modules/tar/dist/esm/parse.js +606 -0
- package/dist/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
- package/dist/node_modules/tar/dist/esm/path-reservations.js +166 -0
- package/dist/node_modules/tar/dist/esm/pax.d.ts +26 -0
- package/dist/node_modules/tar/dist/esm/pax.js +154 -0
- package/dist/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/process-umask.js +3 -0
- package/dist/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
- package/dist/node_modules/tar/dist/esm/read-entry.js +132 -0
- package/dist/node_modules/tar/dist/esm/replace.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/replace.js +221 -0
- package/dist/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
- package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
- package/dist/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
- package/dist/node_modules/tar/dist/esm/symlink-error.js +15 -0
- package/dist/node_modules/tar/dist/esm/types.d.ts +7 -0
- package/dist/node_modules/tar/dist/esm/types.js +45 -0
- package/dist/node_modules/tar/dist/esm/unpack.d.ts +101 -0
- package/dist/node_modules/tar/dist/esm/unpack.js +891 -0
- package/dist/node_modules/tar/dist/esm/update.d.ts +2 -0
- package/dist/node_modules/tar/dist/esm/update.js +30 -0
- package/dist/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
- package/dist/node_modules/tar/dist/esm/warn-method.js +27 -0
- package/dist/node_modules/tar/dist/esm/winchars.d.ts +3 -0
- package/dist/node_modules/tar/dist/esm/winchars.js +9 -0
- package/dist/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
- package/dist/node_modules/tar/dist/esm/write-entry.js +656 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/index.js +93 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/package.json +3 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/esm/index.d.ts +3 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/esm/index.js +85 -0
- package/dist/node_modules/tar/node_modules/chownr/dist/esm/package.json +3 -0
- package/dist/node_modules/tar/node_modules/chownr/package.json +69 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/index.d.ts +549 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/index.js +1028 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/package.json +3 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/esm/index.d.ts +549 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/esm/index.js +1018 -0
- package/dist/node_modules/tar/node_modules/minipass/dist/esm/package.json +3 -0
- package/dist/node_modules/tar/node_modules/minipass/package.json +82 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/constants.js +123 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/index.js +416 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/package.json +3 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/esm/constants.js +117 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/esm/index.d.ts +99 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/esm/index.js +363 -0
- package/dist/node_modules/tar/node_modules/minizlib/dist/esm/package.json +3 -0
- package/dist/node_modules/tar/node_modules/minizlib/package.json +80 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/index.js +384 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +3 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/esm/index.d.ts +39 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/esm/index.js +379 -0
- package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +3 -0
- package/dist/node_modules/tar/node_modules/yallist/package.json +68 -0
- package/dist/node_modules/tar/package.json +1 -0
- package/dist/server/collections/desktopRoutes.d.ts +14 -0
- package/dist/server/collections/desktopRoutes.js +48 -0
- package/dist/server/collections/extendRoleField.d.ts +14 -0
- package/dist/server/collections/extendRoleField.js +51 -0
- package/dist/server/collections/multiPortals.d.ts +10 -0
- package/dist/server/collections/multiPortals.js +128 -0
- package/dist/server/collections/rolesMultiPortalDesktopRoutes.d.ts +10 -0
- package/dist/server/collections/rolesMultiPortalDesktopRoutes.js +76 -0
- package/dist/server/collections/rolesMultiPortalRoutePolicies.d.ts +10 -0
- package/dist/server/collections/rolesMultiPortalRoutePolicies.js +73 -0
- package/dist/server/collections/rolesMultiPortals.d.ts +10 -0
- package/dist/server/collections/rolesMultiPortals.js +68 -0
- package/dist/server/ensureDefaultRoleMultiPortalAccess.d.ts +11 -0
- package/dist/server/ensureDefaultRoleMultiPortalAccess.js +70 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +42 -0
- package/dist/server/migrations/20260723105200-drop-ui-layout-foreign-key-constraint.d.ts +13 -0
- package/dist/server/migrations/20260723105200-drop-ui-layout-foreign-key-constraint.js +104 -0
- package/dist/server/plugin.d.ts +63 -0
- package/dist/server/plugin.js +2130 -0
- package/package.json +34 -0
- package/server.d.ts +2 -0
- package/server.js +1 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.replace = void 0;
|
|
7
|
+
// tar -r
|
|
8
|
+
const fs_minipass_1 = require("@isaacs/fs-minipass");
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const header_js_1 = require("./header.js");
|
|
12
|
+
const list_js_1 = require("./list.js");
|
|
13
|
+
const make_command_js_1 = require("./make-command.js");
|
|
14
|
+
const options_js_1 = require("./options.js");
|
|
15
|
+
const pack_js_1 = require("./pack.js");
|
|
16
|
+
// starting at the head of the file, read a Header
|
|
17
|
+
// If the checksum is invalid, that's our position to start writing
|
|
18
|
+
// If it is, jump forward by the specified size (round up to 512)
|
|
19
|
+
// and try again.
|
|
20
|
+
// Write the new Pack stream starting there.
|
|
21
|
+
const replaceSync = (opt, files) => {
|
|
22
|
+
const p = new pack_js_1.PackSync(opt);
|
|
23
|
+
let threw = true;
|
|
24
|
+
let fd;
|
|
25
|
+
let position;
|
|
26
|
+
try {
|
|
27
|
+
try {
|
|
28
|
+
fd = node_fs_1.default.openSync(opt.file, 'r+');
|
|
29
|
+
}
|
|
30
|
+
catch (er) {
|
|
31
|
+
if (er?.code === 'ENOENT') {
|
|
32
|
+
fd = node_fs_1.default.openSync(opt.file, 'w+');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw er;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const st = node_fs_1.default.fstatSync(fd);
|
|
39
|
+
const headBuf = Buffer.alloc(512);
|
|
40
|
+
POSITION: for (position = 0; position < st.size; position += 512) {
|
|
41
|
+
for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {
|
|
42
|
+
bytes = node_fs_1.default.readSync(fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos);
|
|
43
|
+
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
|
|
44
|
+
throw new Error('cannot append to compressed archives');
|
|
45
|
+
}
|
|
46
|
+
if (!bytes) {
|
|
47
|
+
break POSITION;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const h = new header_js_1.Header(headBuf);
|
|
51
|
+
if (!h.cksumValid) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
const entryBlockSize = 512 * Math.ceil((h.size || 0) / 512);
|
|
55
|
+
if (position + entryBlockSize + 512 > st.size) {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
// the 512 for the header we just parsed will be added as well
|
|
59
|
+
// also jump ahead all the blocks for the body
|
|
60
|
+
position += entryBlockSize;
|
|
61
|
+
if (opt.mtimeCache && h.mtime) {
|
|
62
|
+
opt.mtimeCache.set(String(h.path), h.mtime);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
threw = false;
|
|
66
|
+
streamSync(opt, p, position, fd, files);
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
if (threw) {
|
|
70
|
+
try {
|
|
71
|
+
node_fs_1.default.closeSync(fd);
|
|
72
|
+
}
|
|
73
|
+
catch { }
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const streamSync = (opt, p, position, fd, files) => {
|
|
78
|
+
const stream = new fs_minipass_1.WriteStreamSync(opt.file, {
|
|
79
|
+
fd: fd,
|
|
80
|
+
start: position,
|
|
81
|
+
});
|
|
82
|
+
p.pipe(stream);
|
|
83
|
+
addFilesSync(p, files);
|
|
84
|
+
};
|
|
85
|
+
const replaceAsync = (opt, files) => {
|
|
86
|
+
files = Array.from(files);
|
|
87
|
+
const p = new pack_js_1.Pack(opt);
|
|
88
|
+
const getPos = (fd, size, cb_) => {
|
|
89
|
+
const cb = (er, pos) => {
|
|
90
|
+
if (er) {
|
|
91
|
+
node_fs_1.default.close(fd, _ => cb_(er));
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
cb_(null, pos);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
let position = 0;
|
|
98
|
+
if (size === 0) {
|
|
99
|
+
return cb(null, 0);
|
|
100
|
+
}
|
|
101
|
+
let bufPos = 0;
|
|
102
|
+
const headBuf = Buffer.alloc(512);
|
|
103
|
+
const onread = (er, bytes) => {
|
|
104
|
+
if (er || bytes === undefined) {
|
|
105
|
+
return cb(er);
|
|
106
|
+
}
|
|
107
|
+
bufPos += bytes;
|
|
108
|
+
if (bufPos < 512 && bytes) {
|
|
109
|
+
return node_fs_1.default.read(fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos, onread);
|
|
110
|
+
}
|
|
111
|
+
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
|
|
112
|
+
return cb(new Error('cannot append to compressed archives'));
|
|
113
|
+
}
|
|
114
|
+
// truncated header
|
|
115
|
+
if (bufPos < 512) {
|
|
116
|
+
return cb(null, position);
|
|
117
|
+
}
|
|
118
|
+
const h = new header_js_1.Header(headBuf);
|
|
119
|
+
if (!h.cksumValid) {
|
|
120
|
+
return cb(null, position);
|
|
121
|
+
}
|
|
122
|
+
/* c8 ignore next */
|
|
123
|
+
const entryBlockSize = 512 * Math.ceil((h.size ?? 0) / 512);
|
|
124
|
+
if (position + entryBlockSize + 512 > size) {
|
|
125
|
+
return cb(null, position);
|
|
126
|
+
}
|
|
127
|
+
position += entryBlockSize + 512;
|
|
128
|
+
if (position >= size) {
|
|
129
|
+
return cb(null, position);
|
|
130
|
+
}
|
|
131
|
+
if (opt.mtimeCache && h.mtime) {
|
|
132
|
+
opt.mtimeCache.set(String(h.path), h.mtime);
|
|
133
|
+
}
|
|
134
|
+
bufPos = 0;
|
|
135
|
+
node_fs_1.default.read(fd, headBuf, 0, 512, position, onread);
|
|
136
|
+
};
|
|
137
|
+
node_fs_1.default.read(fd, headBuf, 0, 512, position, onread);
|
|
138
|
+
};
|
|
139
|
+
const promise = new Promise((resolve, reject) => {
|
|
140
|
+
p.on('error', reject);
|
|
141
|
+
let flag = 'r+';
|
|
142
|
+
const onopen = (er, fd) => {
|
|
143
|
+
if (er && er.code === 'ENOENT' && flag === 'r+') {
|
|
144
|
+
flag = 'w+';
|
|
145
|
+
return node_fs_1.default.open(opt.file, flag, onopen);
|
|
146
|
+
}
|
|
147
|
+
if (er || !fd) {
|
|
148
|
+
return reject(er);
|
|
149
|
+
}
|
|
150
|
+
node_fs_1.default.fstat(fd, (er, st) => {
|
|
151
|
+
if (er) {
|
|
152
|
+
return node_fs_1.default.close(fd, () => reject(er));
|
|
153
|
+
}
|
|
154
|
+
getPos(fd, st.size, (er, position) => {
|
|
155
|
+
if (er) {
|
|
156
|
+
return reject(er);
|
|
157
|
+
}
|
|
158
|
+
const stream = new fs_minipass_1.WriteStream(opt.file, {
|
|
159
|
+
fd: fd,
|
|
160
|
+
start: position,
|
|
161
|
+
});
|
|
162
|
+
p.pipe(stream);
|
|
163
|
+
stream.on('error', reject);
|
|
164
|
+
stream.on('close', resolve);
|
|
165
|
+
addFilesAsync(p, files);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
node_fs_1.default.open(opt.file, flag, onopen);
|
|
170
|
+
});
|
|
171
|
+
return promise;
|
|
172
|
+
};
|
|
173
|
+
const addFilesSync = (p, files) => {
|
|
174
|
+
files.forEach(file => {
|
|
175
|
+
if (file.charAt(0) === '@') {
|
|
176
|
+
(0, list_js_1.list)({
|
|
177
|
+
file: node_path_1.default.resolve(p.cwd, file.slice(1)),
|
|
178
|
+
sync: true,
|
|
179
|
+
noResume: true,
|
|
180
|
+
onReadEntry: entry => p.add(entry),
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
p.add(file);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
p.end();
|
|
188
|
+
};
|
|
189
|
+
const addFilesAsync = async (p, files) => {
|
|
190
|
+
for (const file of files) {
|
|
191
|
+
if (file.charAt(0) === '@') {
|
|
192
|
+
await (0, list_js_1.list)({
|
|
193
|
+
file: node_path_1.default.resolve(String(p.cwd), file.slice(1)),
|
|
194
|
+
noResume: true,
|
|
195
|
+
onReadEntry: entry => p.add(entry),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
p.add(file);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
p.end();
|
|
203
|
+
};
|
|
204
|
+
exports.replace = (0, make_command_js_1.makeCommand)(replaceSync, replaceAsync,
|
|
205
|
+
/* c8 ignore start */
|
|
206
|
+
() => {
|
|
207
|
+
throw new TypeError('file is required');
|
|
208
|
+
}, () => {
|
|
209
|
+
throw new TypeError('file is required');
|
|
210
|
+
},
|
|
211
|
+
/* c8 ignore stop */
|
|
212
|
+
(opt, entries) => {
|
|
213
|
+
if (!(0, options_js_1.isFile)(opt)) {
|
|
214
|
+
throw new TypeError('file is required');
|
|
215
|
+
}
|
|
216
|
+
if (opt.gzip ||
|
|
217
|
+
opt.brotli ||
|
|
218
|
+
opt.zstd ||
|
|
219
|
+
opt.file.endsWith('.br') ||
|
|
220
|
+
opt.file.endsWith('.tbr')) {
|
|
221
|
+
throw new TypeError('cannot append to compressed archives');
|
|
222
|
+
}
|
|
223
|
+
if (!entries?.length) {
|
|
224
|
+
throw new TypeError('no paths specified to add/replace');
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
//# sourceMappingURL=replace.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripAbsolutePath = void 0;
|
|
4
|
+
// unix absolute paths are also absolute on win32, so we use this for both
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const { isAbsolute, parse } = node_path_1.win32;
|
|
7
|
+
// returns [root, stripped]
|
|
8
|
+
// Note that windows will think that //x/y/z/a has a "root" of //x/y, and in
|
|
9
|
+
// those cases, we want to sanitize it to x/y/z/a, not z/a, so we strip /
|
|
10
|
+
// explicitly if it's the first character.
|
|
11
|
+
// drive-specific relative paths on Windows get their root stripped off even
|
|
12
|
+
// though they are not absolute, so `c:../foo` becomes ['c:', '../foo']
|
|
13
|
+
const stripAbsolutePath = (path) => {
|
|
14
|
+
let r = '';
|
|
15
|
+
let parsed = parse(path);
|
|
16
|
+
while (isAbsolute(path) || parsed.root) {
|
|
17
|
+
// windows will think that //x/y/z has a "root" of //x/y/
|
|
18
|
+
// but strip the //?/C:/ off of //?/C:/path
|
|
19
|
+
const root = path.charAt(0) === '/' && path.slice(0, 4) !== '//?/' ?
|
|
20
|
+
'/'
|
|
21
|
+
: parsed.root;
|
|
22
|
+
path = path.slice(root.length);
|
|
23
|
+
r += root;
|
|
24
|
+
parsed = parse(path);
|
|
25
|
+
}
|
|
26
|
+
return [r, path];
|
|
27
|
+
};
|
|
28
|
+
exports.stripAbsolutePath = stripAbsolutePath;
|
|
29
|
+
//# sourceMappingURL=strip-absolute-path.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripTrailingSlashes = void 0;
|
|
4
|
+
// warning: extremely hot code path.
|
|
5
|
+
// This has been meticulously optimized for use
|
|
6
|
+
// within npm install on large package trees.
|
|
7
|
+
// Do not edit without careful benchmarking.
|
|
8
|
+
const stripTrailingSlashes = (str) => {
|
|
9
|
+
let i = str.length - 1;
|
|
10
|
+
let slashesStart = -1;
|
|
11
|
+
while (i > -1 && str.charAt(i) === '/') {
|
|
12
|
+
slashesStart = i;
|
|
13
|
+
i--;
|
|
14
|
+
}
|
|
15
|
+
return slashesStart === -1 ? str : str.slice(0, slashesStart);
|
|
16
|
+
};
|
|
17
|
+
exports.stripTrailingSlashes = stripTrailingSlashes;
|
|
18
|
+
//# sourceMappingURL=strip-trailing-slashes.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SymlinkError = void 0;
|
|
4
|
+
class SymlinkError extends Error {
|
|
5
|
+
path;
|
|
6
|
+
symlink;
|
|
7
|
+
syscall = 'symlink';
|
|
8
|
+
code = 'TAR_SYMLINK_ERROR';
|
|
9
|
+
constructor(symlink, path) {
|
|
10
|
+
super('TAR_SYMLINK_ERROR: Cannot extract through symbolic link');
|
|
11
|
+
this.symlink = symlink;
|
|
12
|
+
this.path = path;
|
|
13
|
+
}
|
|
14
|
+
get name() {
|
|
15
|
+
return 'SymlinkError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.SymlinkError = SymlinkError;
|
|
19
|
+
//# sourceMappingURL=symlink-error.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const isCode: (c: string) => c is EntryTypeCode;
|
|
2
|
+
export declare const isName: (c: string) => c is EntryTypeName;
|
|
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
|
+
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
|
+
export declare const name: Map<EntryTypeCode, EntryTypeName>;
|
|
6
|
+
export declare const code: Map<EntryTypeName, EntryTypeCode>;
|
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.code = exports.name = exports.isName = exports.isCode = void 0;
|
|
4
|
+
const isCode = (c) => exports.name.has(c);
|
|
5
|
+
exports.isCode = isCode;
|
|
6
|
+
const isName = (c) => exports.code.has(c);
|
|
7
|
+
exports.isName = isName;
|
|
8
|
+
// map types from key to human-friendly name
|
|
9
|
+
exports.name = new Map([
|
|
10
|
+
['0', 'File'],
|
|
11
|
+
// same as File
|
|
12
|
+
['', 'OldFile'],
|
|
13
|
+
['1', 'Link'],
|
|
14
|
+
['2', 'SymbolicLink'],
|
|
15
|
+
// Devices and FIFOs aren't fully supported
|
|
16
|
+
// they are parsed, but skipped when unpacking
|
|
17
|
+
['3', 'CharacterDevice'],
|
|
18
|
+
['4', 'BlockDevice'],
|
|
19
|
+
['5', 'Directory'],
|
|
20
|
+
['6', 'FIFO'],
|
|
21
|
+
// same as File
|
|
22
|
+
['7', 'ContiguousFile'],
|
|
23
|
+
// pax headers
|
|
24
|
+
['g', 'GlobalExtendedHeader'],
|
|
25
|
+
['x', 'ExtendedHeader'],
|
|
26
|
+
// vendor-specific stuff
|
|
27
|
+
// skip
|
|
28
|
+
['A', 'SolarisACL'],
|
|
29
|
+
// like 5, but with data, which should be skipped
|
|
30
|
+
['D', 'GNUDumpDir'],
|
|
31
|
+
// metadata only, skip
|
|
32
|
+
['I', 'Inode'],
|
|
33
|
+
// data = link path of next file
|
|
34
|
+
['K', 'NextFileHasLongLinkpath'],
|
|
35
|
+
// data = path of next file
|
|
36
|
+
['L', 'NextFileHasLongPath'],
|
|
37
|
+
// skip
|
|
38
|
+
['M', 'ContinuationFile'],
|
|
39
|
+
// like L
|
|
40
|
+
['N', 'OldGnuLongPath'],
|
|
41
|
+
// skip
|
|
42
|
+
['S', 'SparseFile'],
|
|
43
|
+
// skip
|
|
44
|
+
['V', 'TapeVolumeHeader'],
|
|
45
|
+
// like x
|
|
46
|
+
['X', 'OldExtendedHeader'],
|
|
47
|
+
]);
|
|
48
|
+
// map the other direction
|
|
49
|
+
exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]]));
|
|
50
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type Stats } from 'node:fs';
|
|
2
|
+
import type { MkdirError } from './mkdir.js';
|
|
3
|
+
import { Parser } from './parse.js';
|
|
4
|
+
import type { TarOptions } from './options.js';
|
|
5
|
+
import { PathReservations } from './path-reservations.js';
|
|
6
|
+
import type { ReadEntry } from './read-entry.js';
|
|
7
|
+
import type { WarnData } from './warn-method.js';
|
|
8
|
+
import { SymlinkError } from './symlink-error.js';
|
|
9
|
+
declare const ONENTRY: unique symbol;
|
|
10
|
+
declare const CHECKFS: unique symbol;
|
|
11
|
+
declare const CHECKFS2: unique symbol;
|
|
12
|
+
declare const ISREUSABLE: unique symbol;
|
|
13
|
+
declare const MAKEFS: unique symbol;
|
|
14
|
+
declare const FILE: unique symbol;
|
|
15
|
+
declare const DIRECTORY: unique symbol;
|
|
16
|
+
declare const LINK: unique symbol;
|
|
17
|
+
declare const SYMLINK: unique symbol;
|
|
18
|
+
declare const HARDLINK: unique symbol;
|
|
19
|
+
declare const ENSURE_NO_SYMLINK: unique symbol;
|
|
20
|
+
declare const UNSUPPORTED: unique symbol;
|
|
21
|
+
declare const CHECKPATH: unique symbol;
|
|
22
|
+
declare const STRIPABSOLUTEPATH: unique symbol;
|
|
23
|
+
declare const MKDIR: unique symbol;
|
|
24
|
+
declare const ONERROR: unique symbol;
|
|
25
|
+
declare const PENDING: unique symbol;
|
|
26
|
+
declare const PEND: unique symbol;
|
|
27
|
+
declare const UNPEND: unique symbol;
|
|
28
|
+
declare const ENDED: unique symbol;
|
|
29
|
+
declare const MAYBECLOSE: unique symbol;
|
|
30
|
+
declare const SKIP: unique symbol;
|
|
31
|
+
declare const DOCHOWN: unique symbol;
|
|
32
|
+
declare const UID: unique symbol;
|
|
33
|
+
declare const GID: unique symbol;
|
|
34
|
+
declare const CHECKED_CWD: unique symbol;
|
|
35
|
+
export declare class Unpack extends Parser {
|
|
36
|
+
[ENDED]: boolean;
|
|
37
|
+
[CHECKED_CWD]: boolean;
|
|
38
|
+
[PENDING]: number;
|
|
39
|
+
reservations: PathReservations;
|
|
40
|
+
transform?: TarOptions['transform'];
|
|
41
|
+
writable: true;
|
|
42
|
+
readable: false;
|
|
43
|
+
uid?: number;
|
|
44
|
+
gid?: number;
|
|
45
|
+
setOwner: boolean;
|
|
46
|
+
preserveOwner: boolean;
|
|
47
|
+
processGid?: number;
|
|
48
|
+
processUid?: number;
|
|
49
|
+
maxDepth: number;
|
|
50
|
+
forceChown: boolean;
|
|
51
|
+
win32: boolean;
|
|
52
|
+
newer: boolean;
|
|
53
|
+
keep: boolean;
|
|
54
|
+
noMtime: boolean;
|
|
55
|
+
preservePaths: boolean;
|
|
56
|
+
unlink: boolean;
|
|
57
|
+
cwd: string;
|
|
58
|
+
strip: number;
|
|
59
|
+
processUmask: number;
|
|
60
|
+
umask: number;
|
|
61
|
+
dmode: number;
|
|
62
|
+
fmode: number;
|
|
63
|
+
chmod: boolean;
|
|
64
|
+
constructor(opt?: TarOptions);
|
|
65
|
+
warn(code: string, msg: string | Error, data?: WarnData): void;
|
|
66
|
+
[MAYBECLOSE](): void;
|
|
67
|
+
[STRIPABSOLUTEPATH](entry: ReadEntry, field: 'path' | 'linkpath'): boolean;
|
|
68
|
+
[CHECKPATH](entry: ReadEntry): boolean;
|
|
69
|
+
[ONENTRY](entry: ReadEntry): void;
|
|
70
|
+
[ONERROR](er: Error, entry: ReadEntry): void;
|
|
71
|
+
[MKDIR](dir: string, mode: number, cb: (er?: null | MkdirError, made?: string) => void): void;
|
|
72
|
+
[DOCHOWN](entry: ReadEntry): boolean;
|
|
73
|
+
[UID](entry: ReadEntry): number | undefined;
|
|
74
|
+
[GID](entry: ReadEntry): number | undefined;
|
|
75
|
+
[FILE](entry: ReadEntry, fullyDone: () => void): void;
|
|
76
|
+
[DIRECTORY](entry: ReadEntry, fullyDone: () => void): void;
|
|
77
|
+
[UNSUPPORTED](entry: ReadEntry): void;
|
|
78
|
+
[SYMLINK](entry: ReadEntry, done: () => void): void;
|
|
79
|
+
[HARDLINK](entry: ReadEntry, done: () => void): void;
|
|
80
|
+
[ENSURE_NO_SYMLINK](entry: ReadEntry, cwd: string, parts: string[], done: () => void, onError: (er: SymlinkError) => void): void;
|
|
81
|
+
[PEND](): void;
|
|
82
|
+
[UNPEND](): void;
|
|
83
|
+
[SKIP](entry: ReadEntry): void;
|
|
84
|
+
[ISREUSABLE](entry: ReadEntry, st: Stats): boolean;
|
|
85
|
+
[CHECKFS](entry: ReadEntry): void;
|
|
86
|
+
[CHECKFS2](entry: ReadEntry, fullyDone: (er?: Error) => void): void;
|
|
87
|
+
[MAKEFS](er: null | undefined | Error, entry: ReadEntry, done: () => void): void;
|
|
88
|
+
[LINK](entry: ReadEntry, linkpath: string, link: 'link' | 'symlink', done: () => void): void;
|
|
89
|
+
}
|
|
90
|
+
export declare class UnpackSync extends Unpack {
|
|
91
|
+
sync: true;
|
|
92
|
+
[MAKEFS](er: null | Error | undefined, entry: ReadEntry): void;
|
|
93
|
+
[CHECKFS](entry: ReadEntry): void;
|
|
94
|
+
[FILE](entry: ReadEntry, done: () => void): void;
|
|
95
|
+
[DIRECTORY](entry: ReadEntry, done: () => void): void;
|
|
96
|
+
[MKDIR](dir: string, mode: number): unknown;
|
|
97
|
+
[ENSURE_NO_SYMLINK](_entry: ReadEntry, cwd: string, parts: string[], done: () => void, onError: (er: SymlinkError) => void): void;
|
|
98
|
+
[LINK](entry: ReadEntry, linkpath: string, link: 'link' | 'symlink', done: () => void): void;
|
|
99
|
+
}
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=unpack.d.ts.map
|