@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.
Files changed (217) hide show
  1. package/LICENSE.txt +107 -0
  2. package/README.md +14 -0
  3. package/client-v2.d.ts +2 -0
  4. package/client-v2.js +1 -0
  5. package/client.d.ts +2 -0
  6. package/client.js +1 -0
  7. package/dist/client/index.d.ts +9 -0
  8. package/dist/client/index.js +10 -0
  9. package/dist/client/locale.d.ts +10 -0
  10. package/dist/client/models/index.d.ts +11 -0
  11. package/dist/client/plugin.d.ts +13 -0
  12. package/dist/client-v2/354.ead3e96143164cd5.js +10 -0
  13. package/dist/client-v2/499.ef2ff0c022687485.js +10 -0
  14. package/dist/client-v2/778.23ba409a924ee34a.js +10 -0
  15. package/dist/client-v2/845.f2b0ce44ae4be707.js +10 -0
  16. package/dist/client-v2/entryActions/PortalEntryActionModel.d.ts +52 -0
  17. package/dist/client-v2/entryActions/portalEntryActionStore.d.ts +36 -0
  18. package/dist/client-v2/entryActions/registerPortalEntryActions.d.ts +10 -0
  19. package/dist/client-v2/entryActions/types.d.ts +41 -0
  20. package/dist/client-v2/entryActions/url.d.ts +10 -0
  21. package/dist/client-v2/index.d.ts +9 -0
  22. package/dist/client-v2/index.js +10 -0
  23. package/dist/client-v2/layoutRegistration.d.ts +38 -0
  24. package/dist/client-v2/locale.d.ts +13 -0
  25. package/dist/client-v2/models/MultiPortalBlockModel.d.ts +13 -0
  26. package/dist/client-v2/models/MultiPortalMobilePageModels.d.ts +34 -0
  27. package/dist/client-v2/pages/MultiPortalsPage.d.ts +80 -0
  28. package/dist/client-v2/permissions/MultiPortalPermissionsTab.d.ts +21 -0
  29. package/dist/client-v2/permissions/multiPortalPermissions.d.ts +12 -0
  30. package/dist/client-v2/plugin.d.ts +13 -0
  31. package/dist/client-v2/routeRepositoryScope.d.ts +11 -0
  32. package/dist/client-v2/routeUrl.d.ts +18 -0
  33. package/dist/externalVersion.js +25 -0
  34. package/dist/index.d.ts +10 -0
  35. package/dist/index.js +48 -0
  36. package/dist/locale/en-US.json +82 -0
  37. package/dist/locale/zh-CN.json +82 -0
  38. package/dist/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  39. package/dist/node_modules/tar/dist/commonjs/create.js +82 -0
  40. package/dist/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  41. package/dist/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  42. package/dist/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  43. package/dist/node_modules/tar/dist/commonjs/extract.js +88 -0
  44. package/dist/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  45. package/dist/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  46. package/dist/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  47. package/dist/node_modules/tar/dist/commonjs/header.js +312 -0
  48. package/dist/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  49. package/dist/node_modules/tar/dist/commonjs/index.js +64 -0
  50. package/dist/node_modules/tar/dist/commonjs/index.min.js +1 -0
  51. package/dist/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  52. package/dist/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  53. package/dist/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  54. package/dist/node_modules/tar/dist/commonjs/list.js +145 -0
  55. package/dist/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  56. package/dist/node_modules/tar/dist/commonjs/make-command.js +52 -0
  57. package/dist/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  58. package/dist/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  59. package/dist/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  60. package/dist/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  61. package/dist/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  62. package/dist/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  63. package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  64. package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  65. package/dist/node_modules/tar/dist/commonjs/options.d.ts +596 -0
  66. package/dist/node_modules/tar/dist/commonjs/options.js +66 -0
  67. package/dist/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
  68. package/dist/node_modules/tar/dist/commonjs/pack.js +545 -0
  69. package/dist/node_modules/tar/dist/commonjs/package.json +3 -0
  70. package/dist/node_modules/tar/dist/commonjs/parse.d.ts +85 -0
  71. package/dist/node_modules/tar/dist/commonjs/parse.js +610 -0
  72. package/dist/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  73. package/dist/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  74. package/dist/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  75. package/dist/node_modules/tar/dist/commonjs/pax.js +158 -0
  76. package/dist/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  77. package/dist/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  78. package/dist/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  79. package/dist/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  80. package/dist/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  81. package/dist/node_modules/tar/dist/commonjs/replace.js +227 -0
  82. package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  83. package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  84. package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  85. package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  86. package/dist/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  87. package/dist/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  88. package/dist/node_modules/tar/dist/commonjs/types.d.ts +7 -0
  89. package/dist/node_modules/tar/dist/commonjs/types.js +50 -0
  90. package/dist/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  91. package/dist/node_modules/tar/dist/commonjs/unpack.js +932 -0
  92. package/dist/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  93. package/dist/node_modules/tar/dist/commonjs/update.js +33 -0
  94. package/dist/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  95. package/dist/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  96. package/dist/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  97. package/dist/node_modules/tar/dist/commonjs/winchars.js +14 -0
  98. package/dist/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  99. package/dist/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  100. package/dist/node_modules/tar/dist/esm/create.d.ts +3 -0
  101. package/dist/node_modules/tar/dist/esm/create.js +76 -0
  102. package/dist/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  103. package/dist/node_modules/tar/dist/esm/cwd-error.js +14 -0
  104. package/dist/node_modules/tar/dist/esm/extract.d.ts +3 -0
  105. package/dist/node_modules/tar/dist/esm/extract.js +49 -0
  106. package/dist/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  107. package/dist/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  108. package/dist/node_modules/tar/dist/esm/header.d.ts +53 -0
  109. package/dist/node_modules/tar/dist/esm/header.js +275 -0
  110. package/dist/node_modules/tar/dist/esm/index.d.ts +20 -0
  111. package/dist/node_modules/tar/dist/esm/index.js +20 -0
  112. package/dist/node_modules/tar/dist/esm/index.min.js +4 -0
  113. package/dist/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  114. package/dist/node_modules/tar/dist/esm/large-numbers.js +94 -0
  115. package/dist/node_modules/tar/dist/esm/list.d.ts +7 -0
  116. package/dist/node_modules/tar/dist/esm/list.js +105 -0
  117. package/dist/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  118. package/dist/node_modules/tar/dist/esm/make-command.js +48 -0
  119. package/dist/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  120. package/dist/node_modules/tar/dist/esm/mkdir.js +179 -0
  121. package/dist/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  122. package/dist/node_modules/tar/dist/esm/mode-fix.js +25 -0
  123. package/dist/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  124. package/dist/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  125. package/dist/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  126. package/dist/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  127. package/dist/node_modules/tar/dist/esm/options.d.ts +596 -0
  128. package/dist/node_modules/tar/dist/esm/options.js +54 -0
  129. package/dist/node_modules/tar/dist/esm/pack.d.ts +105 -0
  130. package/dist/node_modules/tar/dist/esm/pack.js +503 -0
  131. package/dist/node_modules/tar/dist/esm/package.json +3 -0
  132. package/dist/node_modules/tar/dist/esm/parse.d.ts +85 -0
  133. package/dist/node_modules/tar/dist/esm/parse.js +606 -0
  134. package/dist/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  135. package/dist/node_modules/tar/dist/esm/path-reservations.js +166 -0
  136. package/dist/node_modules/tar/dist/esm/pax.d.ts +26 -0
  137. package/dist/node_modules/tar/dist/esm/pax.js +154 -0
  138. package/dist/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  139. package/dist/node_modules/tar/dist/esm/process-umask.js +3 -0
  140. package/dist/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  141. package/dist/node_modules/tar/dist/esm/read-entry.js +132 -0
  142. package/dist/node_modules/tar/dist/esm/replace.d.ts +2 -0
  143. package/dist/node_modules/tar/dist/esm/replace.js +221 -0
  144. package/dist/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  145. package/dist/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  146. package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  147. package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  148. package/dist/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  149. package/dist/node_modules/tar/dist/esm/symlink-error.js +15 -0
  150. package/dist/node_modules/tar/dist/esm/types.d.ts +7 -0
  151. package/dist/node_modules/tar/dist/esm/types.js +45 -0
  152. package/dist/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  153. package/dist/node_modules/tar/dist/esm/unpack.js +891 -0
  154. package/dist/node_modules/tar/dist/esm/update.d.ts +2 -0
  155. package/dist/node_modules/tar/dist/esm/update.js +30 -0
  156. package/dist/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  157. package/dist/node_modules/tar/dist/esm/warn-method.js +27 -0
  158. package/dist/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  159. package/dist/node_modules/tar/dist/esm/winchars.js +9 -0
  160. package/dist/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  161. package/dist/node_modules/tar/dist/esm/write-entry.js +656 -0
  162. package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  163. package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/index.js +93 -0
  164. package/dist/node_modules/tar/node_modules/chownr/dist/commonjs/package.json +3 -0
  165. package/dist/node_modules/tar/node_modules/chownr/dist/esm/index.d.ts +3 -0
  166. package/dist/node_modules/tar/node_modules/chownr/dist/esm/index.js +85 -0
  167. package/dist/node_modules/tar/node_modules/chownr/dist/esm/package.json +3 -0
  168. package/dist/node_modules/tar/node_modules/chownr/package.json +69 -0
  169. package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/index.d.ts +549 -0
  170. package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/index.js +1028 -0
  171. package/dist/node_modules/tar/node_modules/minipass/dist/commonjs/package.json +3 -0
  172. package/dist/node_modules/tar/node_modules/minipass/dist/esm/index.d.ts +549 -0
  173. package/dist/node_modules/tar/node_modules/minipass/dist/esm/index.js +1018 -0
  174. package/dist/node_modules/tar/node_modules/minipass/dist/esm/package.json +3 -0
  175. package/dist/node_modules/tar/node_modules/minipass/package.json +82 -0
  176. package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  177. package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  178. package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  179. package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/index.js +416 -0
  180. package/dist/node_modules/tar/node_modules/minizlib/dist/commonjs/package.json +3 -0
  181. package/dist/node_modules/tar/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  182. package/dist/node_modules/tar/node_modules/minizlib/dist/esm/constants.js +117 -0
  183. package/dist/node_modules/tar/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  184. package/dist/node_modules/tar/node_modules/minizlib/dist/esm/index.js +363 -0
  185. package/dist/node_modules/tar/node_modules/minizlib/dist/esm/package.json +3 -0
  186. package/dist/node_modules/tar/node_modules/minizlib/package.json +80 -0
  187. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  188. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/index.js +384 -0
  189. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +3 -0
  190. package/dist/node_modules/tar/node_modules/yallist/dist/esm/index.d.ts +39 -0
  191. package/dist/node_modules/tar/node_modules/yallist/dist/esm/index.js +379 -0
  192. package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +3 -0
  193. package/dist/node_modules/tar/node_modules/yallist/package.json +68 -0
  194. package/dist/node_modules/tar/package.json +1 -0
  195. package/dist/server/collections/desktopRoutes.d.ts +14 -0
  196. package/dist/server/collections/desktopRoutes.js +48 -0
  197. package/dist/server/collections/extendRoleField.d.ts +14 -0
  198. package/dist/server/collections/extendRoleField.js +51 -0
  199. package/dist/server/collections/multiPortals.d.ts +10 -0
  200. package/dist/server/collections/multiPortals.js +128 -0
  201. package/dist/server/collections/rolesMultiPortalDesktopRoutes.d.ts +10 -0
  202. package/dist/server/collections/rolesMultiPortalDesktopRoutes.js +76 -0
  203. package/dist/server/collections/rolesMultiPortalRoutePolicies.d.ts +10 -0
  204. package/dist/server/collections/rolesMultiPortalRoutePolicies.js +73 -0
  205. package/dist/server/collections/rolesMultiPortals.d.ts +10 -0
  206. package/dist/server/collections/rolesMultiPortals.js +68 -0
  207. package/dist/server/ensureDefaultRoleMultiPortalAccess.d.ts +11 -0
  208. package/dist/server/ensureDefaultRoleMultiPortalAccess.js +70 -0
  209. package/dist/server/index.d.ts +9 -0
  210. package/dist/server/index.js +42 -0
  211. package/dist/server/migrations/20260723105200-drop-ui-layout-foreign-key-constraint.d.ts +13 -0
  212. package/dist/server/migrations/20260723105200-drop-ui-layout-foreign-key-constraint.js +104 -0
  213. package/dist/server/plugin.d.ts +63 -0
  214. package/dist/server/plugin.js +2130 -0
  215. package/package.json +34 -0
  216. package/server.d.ts +2 -0
  217. 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,2 @@
1
+ export declare const stripAbsolutePath: (path: string) => [string, string];
2
+ //# sourceMappingURL=strip-absolute-path.d.ts.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,2 @@
1
+ export declare const stripTrailingSlashes: (str: string) => string;
2
+ //# sourceMappingURL=strip-trailing-slashes.d.ts.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,9 @@
1
+ export declare class SymlinkError extends Error {
2
+ path: string;
3
+ symlink: string;
4
+ syscall: "symlink";
5
+ code: "TAR_SYMLINK_ERROR";
6
+ constructor(symlink: string, path: string);
7
+ get name(): string;
8
+ }
9
+ //# sourceMappingURL=symlink-error.d.ts.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