pacman-debian 7.2.0
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 +674 -0
- package/README.md +440 -0
- package/README.zh.md +388 -0
- package/README_zh-CN.md +421 -0
- package/dist/ar.d.ts +8 -0
- package/dist/ar.d.ts.map +1 -0
- package/dist/ar.js +88 -0
- package/dist/ar.js.map +1 -0
- package/dist/cli/pacman.d.ts +2 -0
- package/dist/cli/pacman.d.ts.map +1 -0
- package/dist/cli/pacman.js +512 -0
- package/dist/cli/pacman.js.map +1 -0
- package/dist/compress.d.ts +2 -0
- package/dist/compress.d.ts.map +1 -0
- package/dist/compress.js +78 -0
- package/dist/compress.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +90 -0
- package/dist/config.js.map +1 -0
- package/dist/control.d.ts +2 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +31 -0
- package/dist/control.js.map +1 -0
- package/dist/core/ar.d.ts +7 -0
- package/dist/core/ar.d.ts.map +1 -0
- package/dist/core/ar.js +45 -0
- package/dist/core/ar.js.map +1 -0
- package/dist/core/compress.d.ts +2 -0
- package/dist/core/compress.d.ts.map +1 -0
- package/dist/core/compress.js +75 -0
- package/dist/core/compress.js.map +1 -0
- package/dist/core/control.d.ts +2 -0
- package/dist/core/control.d.ts.map +1 -0
- package/dist/core/control.js +29 -0
- package/dist/core/control.js.map +1 -0
- package/dist/core/deb.d.ts +4 -0
- package/dist/core/deb.d.ts.map +1 -0
- package/dist/core/deb.js +89 -0
- package/dist/core/deb.js.map +1 -0
- package/dist/core/deps.d.ts +25 -0
- package/dist/core/deps.d.ts.map +1 -0
- package/dist/core/deps.js +230 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/options.d.ts +19 -0
- package/dist/core/options.d.ts.map +1 -0
- package/dist/core/options.js +3 -0
- package/dist/core/options.js.map +1 -0
- package/dist/core/pkgfile.d.ts +35 -0
- package/dist/core/pkgfile.d.ts.map +1 -0
- package/dist/core/pkgfile.js +162 -0
- package/dist/core/pkgfile.js.map +1 -0
- package/dist/core/tar.d.ts +13 -0
- package/dist/core/tar.d.ts.map +1 -0
- package/dist/core/tar.js +132 -0
- package/dist/core/tar.js.map +1 -0
- package/dist/core/types.d.ts +83 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/database.d.ts +20 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +181 -0
- package/dist/database.js.map +1 -0
- package/dist/db/database.d.ts +17 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/database.js +145 -0
- package/dist/db/database.js.map +1 -0
- package/dist/db/dpkg-compat.d.ts +19 -0
- package/dist/db/dpkg-compat.d.ts.map +1 -0
- package/dist/db/dpkg-compat.js +150 -0
- package/dist/db/dpkg-compat.js.map +1 -0
- package/dist/db/localdb.d.ts +9 -0
- package/dist/db/localdb.d.ts.map +1 -0
- package/dist/db/localdb.js +246 -0
- package/dist/db/localdb.js.map +1 -0
- package/dist/db/sqlite.d.ts +20 -0
- package/dist/db/sqlite.d.ts.map +1 -0
- package/dist/db/sqlite.js +309 -0
- package/dist/db/sqlite.js.map +1 -0
- package/dist/deb.d.ts +5 -0
- package/dist/deb.d.ts.map +1 -0
- package/dist/deb.js +105 -0
- package/dist/deb.js.map +1 -0
- package/dist/dpkg-compat.d.ts +18 -0
- package/dist/dpkg-compat.d.ts.map +1 -0
- package/dist/dpkg-compat.js +137 -0
- package/dist/dpkg-compat.js.map +1 -0
- package/dist/i18n/en.json +109 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +36 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/zh-CN.json +109 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/install.d.ts +2 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +126 -0
- package/dist/install.js.map +1 -0
- package/dist/makepkg/build.d.ts +19 -0
- package/dist/makepkg/build.d.ts.map +1 -0
- package/dist/makepkg/build.js +370 -0
- package/dist/makepkg/build.js.map +1 -0
- package/dist/makepkg/index.d.ts +3 -0
- package/dist/makepkg/index.d.ts.map +1 -0
- package/dist/makepkg/index.js +84 -0
- package/dist/makepkg/index.js.map +1 -0
- package/dist/makepkg/pkgbuild.d.ts +36 -0
- package/dist/makepkg/pkgbuild.d.ts.map +1 -0
- package/dist/makepkg/pkgbuild.js +165 -0
- package/dist/makepkg/pkgbuild.js.map +1 -0
- package/dist/ops/install.d.ts +5 -0
- package/dist/ops/install.d.ts.map +1 -0
- package/dist/ops/install.js +299 -0
- package/dist/ops/install.js.map +1 -0
- package/dist/ops/query.d.ts +9 -0
- package/dist/ops/query.d.ts.map +1 -0
- package/dist/ops/query.js +189 -0
- package/dist/ops/query.js.map +1 -0
- package/dist/ops/remove.d.ts +3 -0
- package/dist/ops/remove.d.ts.map +1 -0
- package/dist/ops/remove.js +121 -0
- package/dist/ops/remove.js.map +1 -0
- package/dist/ops/upgrade.d.ts +4 -0
- package/dist/ops/upgrade.d.ts.map +1 -0
- package/dist/ops/upgrade.js +122 -0
- package/dist/ops/upgrade.js.map +1 -0
- package/dist/pacman.d.ts +2 -0
- package/dist/pacman.d.ts.map +1 -0
- package/dist/pacman.js +165 -0
- package/dist/pacman.js.map +1 -0
- package/dist/query.d.ts +5 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +143 -0
- package/dist/query.js.map +1 -0
- package/dist/remove.d.ts +2 -0
- package/dist/remove.d.ts.map +1 -0
- package/dist/remove.js +82 -0
- package/dist/remove.js.map +1 -0
- package/dist/repo/config.d.ts +3 -0
- package/dist/repo/config.d.ts.map +1 -0
- package/dist/repo/config.js +146 -0
- package/dist/repo/config.js.map +1 -0
- package/dist/repo/repository.d.ts +10 -0
- package/dist/repo/repository.d.ts.map +1 -0
- package/dist/repo/repository.js +596 -0
- package/dist/repo/repository.js.map +1 -0
- package/dist/repository.d.ts +10 -0
- package/dist/repository.d.ts.map +1 -0
- package/dist/repository.js +175 -0
- package/dist/repository.js.map +1 -0
- package/dist/scripts/pacman-conf.d.ts +3 -0
- package/dist/scripts/pacman-conf.d.ts.map +1 -0
- package/dist/scripts/pacman-conf.js +74 -0
- package/dist/scripts/pacman-conf.js.map +1 -0
- package/dist/scripts/setup.d.ts +3 -0
- package/dist/scripts/setup.d.ts.map +1 -0
- package/dist/scripts/setup.js +289 -0
- package/dist/scripts/setup.js.map +1 -0
- package/dist/tar.d.ts +17 -0
- package/dist/tar.d.ts.map +1 -0
- package/dist/tar.js +148 -0
- package/dist/tar.js.map +1 -0
- package/dist/types.d.ts +80 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/colors.d.ts +13 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +38 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/format.d.ts +3 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +15 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/progress.d.ts +8 -0
- package/dist/ui/progress.d.ts.map +1 -0
- package/dist/ui/progress.js +50 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/prompt.d.ts +4 -0
- package/dist/ui/prompt.d.ts.map +1 -0
- package/dist/ui/prompt.js +60 -0
- package/dist/ui/prompt.js.map +1 -0
- package/lib/pac4deb/Makefile +26 -0
- package/lib/pac4deb/README.md +47 -0
- package/lib/pac4deb/include/alpm.h +166 -0
- package/lib/pac4deb/include/alpm_list.h +42 -0
- package/lib/pac4deb/libalpm.so +0 -0
- package/lib/pac4deb/src/alpm_list.c +102 -0
- package/lib/pac4deb/src/genstubs.sh +51 -0
- package/lib/pac4deb/src/genstubs2.sh +72 -0
- package/lib/pac4deb/src/genstubs3.sh +43 -0
- package/lib/pac4deb/src/libalpm.c +537 -0
- package/lib/pac4deb/src/stubs_manual.c +198 -0
- package/lib/pac4deb/stubs.c +6 -0
- package/lib/pac4deb/update_header.sh +15 -0
- package/package.json +41 -0
- package/src/cli/pacman.ts +308 -0
- package/src/core/ar.ts +54 -0
- package/src/core/compress.ts +27 -0
- package/src/core/control.ts +22 -0
- package/src/core/deb.ts +47 -0
- package/src/core/deps.ts +260 -0
- package/src/core/options.ts +20 -0
- package/src/core/pkgfile.ts +146 -0
- package/src/core/tar.ts +101 -0
- package/src/core/types.ts +89 -0
- package/src/db/database.ts +102 -0
- package/src/db/dpkg-compat.ts +129 -0
- package/src/db/localdb.ts +181 -0
- package/src/i18n/en.json +114 -0
- package/src/i18n/index.ts +32 -0
- package/src/i18n/zh-CN.json +114 -0
- package/src/index.ts +7 -0
- package/src/makepkg/build.ts +351 -0
- package/src/makepkg/index.ts +87 -0
- package/src/makepkg/pkgbuild.ts +146 -0
- package/src/ops/install.ts +260 -0
- package/src/ops/query.ts +117 -0
- package/src/ops/remove.ts +77 -0
- package/src/ops/upgrade.ts +87 -0
- package/src/repo/config.ts +96 -0
- package/src/repo/repository.ts +520 -0
- package/src/scripts/pacman-conf.ts +68 -0
- package/src/scripts/setup.ts +261 -0
- package/src/ui/colors.ts +40 -0
- package/src/ui/format.ts +9 -0
- package/src/ui/progress.ts +26 -0
- package/src/ui/prompt.ts +21 -0
- package/tsconfig.json +19 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadConfig = loadConfig;
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const CONFIG_PATH = '/etc/pacman-debian/pacman.conf';
|
|
39
|
+
function loadConfig() {
|
|
40
|
+
const cfg = { architecture: 'amd64', repos: [] };
|
|
41
|
+
if (!fs.existsSync(CONFIG_PATH)) {
|
|
42
|
+
cfg.repos.push({
|
|
43
|
+
name: 'ubuntu',
|
|
44
|
+
server: 'http://archive.ubuntu.com/ubuntu',
|
|
45
|
+
dist: 'noble',
|
|
46
|
+
components: ['main', 'universe'],
|
|
47
|
+
});
|
|
48
|
+
return cfg;
|
|
49
|
+
}
|
|
50
|
+
const content = fs.readFileSync(CONFIG_PATH, 'utf8');
|
|
51
|
+
let currentRepo = null;
|
|
52
|
+
for (const line of content.split('\n')) {
|
|
53
|
+
const trimmed = line.trim();
|
|
54
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
55
|
+
continue;
|
|
56
|
+
const sectionMatch = trimmed.match(/^\[(.+)\]$/);
|
|
57
|
+
if (sectionMatch) {
|
|
58
|
+
if (currentRepo)
|
|
59
|
+
cfg.repos.push(currentRepo);
|
|
60
|
+
const name = sectionMatch[1];
|
|
61
|
+
if (name === 'options') {
|
|
62
|
+
currentRepo = null;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
currentRepo = { name, server: '', dist: '', components: [] };
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const eqIdx = trimmed.indexOf('=');
|
|
69
|
+
if (eqIdx === -1)
|
|
70
|
+
continue;
|
|
71
|
+
const key = trimmed.slice(0, eqIdx).trim().toLowerCase();
|
|
72
|
+
const val = trimmed.slice(eqIdx + 1).trim();
|
|
73
|
+
if (!currentRepo) {
|
|
74
|
+
if (key === 'architecture')
|
|
75
|
+
cfg.architecture = val;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (key === 'server')
|
|
79
|
+
currentRepo.server = val;
|
|
80
|
+
else if (key === 'dist')
|
|
81
|
+
currentRepo.dist = val;
|
|
82
|
+
else if (key === 'components')
|
|
83
|
+
currentRepo.components = val.split(/\s+/).filter(Boolean);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (currentRepo)
|
|
87
|
+
cfg.repos.push(currentRepo);
|
|
88
|
+
return cfg;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gCAgDC;AArDD,4CAA8B;AAG9B,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,SAAgB,UAAU;IACxB,MAAM,GAAG,GAAW,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,kCAAkC;YAC1C,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;SACjC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,WAAW,GAAsB,IAAI,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,WAAW;gBAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,WAAW,GAAG,IAAI,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,GAAG,KAAK,cAAc;gBAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,QAAQ;gBAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;iBAC1C,IAAI,GAAG,KAAK,MAAM;gBAAE,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC;iBAC3C,IAAI,GAAG,KAAK,YAAY;gBAAE,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BxE"}
|
package/dist/control.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseControlFile = parseControlFile;
|
|
4
|
+
function parseControlFile(content) {
|
|
5
|
+
const fields = {};
|
|
6
|
+
let currentKey = '';
|
|
7
|
+
let currentValue = '';
|
|
8
|
+
for (const line of content.split('\n')) {
|
|
9
|
+
if (line.startsWith(' ') || line.startsWith('\t')) {
|
|
10
|
+
currentValue += '\n' + line.trimEnd();
|
|
11
|
+
}
|
|
12
|
+
else if (line.trim() === '') {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
if (currentKey) {
|
|
17
|
+
fields[currentKey.toLowerCase()] = currentValue.trimEnd();
|
|
18
|
+
}
|
|
19
|
+
const colonIdx = line.indexOf(':');
|
|
20
|
+
if (colonIdx === -1)
|
|
21
|
+
continue;
|
|
22
|
+
currentKey = line.slice(0, colonIdx).trim();
|
|
23
|
+
currentValue = line.slice(colonIdx + 1).trim();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (currentKey) {
|
|
27
|
+
fields[currentKey.toLowerCase()] = currentValue.trimEnd();
|
|
28
|
+
}
|
|
29
|
+
return fields;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":";;AAAA,4CA0BC;AA1BD,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5D,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC9B,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/core/ar.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA6ChD"}
|
package/dist/core/ar.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseAr = parseAr;
|
|
4
|
+
function parseAr(data) {
|
|
5
|
+
const members = [];
|
|
6
|
+
let offset = 0;
|
|
7
|
+
const magic = data.subarray(0, 8).toString('ascii');
|
|
8
|
+
if (magic !== '!<arch>\n') {
|
|
9
|
+
throw new Error(`Not a valid ar archive: bad magic "${magic}"`);
|
|
10
|
+
}
|
|
11
|
+
offset = 8;
|
|
12
|
+
let strTable = null;
|
|
13
|
+
while (offset < data.length) {
|
|
14
|
+
if (offset + 60 > data.length)
|
|
15
|
+
break;
|
|
16
|
+
const nameRaw = data.subarray(offset, offset + 16).toString('ascii');
|
|
17
|
+
const sizeStr = data.subarray(offset + 48, offset + 58).toString('ascii').trim();
|
|
18
|
+
const headerMagic = data.subarray(offset + 58, offset + 60).toString('ascii');
|
|
19
|
+
if (headerMagic !== '`\n')
|
|
20
|
+
break;
|
|
21
|
+
const size = parseInt(sizeStr, 10);
|
|
22
|
+
if (isNaN(size))
|
|
23
|
+
break;
|
|
24
|
+
offset += 60;
|
|
25
|
+
const content = data.subarray(offset, offset + size);
|
|
26
|
+
const rawName = nameRaw.replace(/\//g, '').trim();
|
|
27
|
+
if (rawName === '//' && strTable === null) {
|
|
28
|
+
strTable = content.toString('ascii').split('\n')
|
|
29
|
+
.map(s => s.replace(/\0/g, '').trim()).filter(Boolean);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
let name;
|
|
33
|
+
if (rawName.startsWith('/') && strTable) {
|
|
34
|
+
name = strTable[parseInt(rawName.slice(1), 10)] || rawName;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
name = rawName.replace(/\/$/, '');
|
|
38
|
+
}
|
|
39
|
+
members.push({ name, size, data: content });
|
|
40
|
+
}
|
|
41
|
+
offset += Math.ceil(size / 2) * 2;
|
|
42
|
+
}
|
|
43
|
+
return members;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../src/core/ar.ts"],"names":[],"mappings":";;AAQA,0BA6CC;AA7CD,SAAgB,OAAO,CAAC,IAAY;IAClC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,GAAG,CAAC,CAAC;IAEX,IAAI,QAAQ,GAAoB,IAAI,CAAC;IAErC,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9E,IAAI,WAAW,KAAK,KAAK;YAAE,MAAM;QAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,CAAC;YAAE,MAAM;QAEvB,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAElD,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1C,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,IAAY,CAAC;YACjB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACxC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../src/core/compress.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKjE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.decompress = decompress;
|
|
37
|
+
const zlib = __importStar(require("node:zlib"));
|
|
38
|
+
const node_child_process_1 = require("node:child_process");
|
|
39
|
+
const fs = __importStar(require("node:fs"));
|
|
40
|
+
const path = __importStar(require("node:path"));
|
|
41
|
+
const os = __importStar(require("node:os"));
|
|
42
|
+
function decompress(data, filename) {
|
|
43
|
+
if (filename.endsWith('.gz'))
|
|
44
|
+
return zlib.gunzipSync(data);
|
|
45
|
+
if (filename.endsWith('.xz'))
|
|
46
|
+
return decompressWith(data, 'xz');
|
|
47
|
+
if (filename.endsWith('.zst'))
|
|
48
|
+
return decompressWith(data, 'zstd');
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
function decompressWith(data, tool) {
|
|
52
|
+
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'pmdeb-'));
|
|
53
|
+
const inFile = path.join(tmp, `input.${tool === 'xz' ? 'xz' : 'zst'}`);
|
|
54
|
+
const outFile = path.join(tmp, 'output');
|
|
55
|
+
try {
|
|
56
|
+
fs.writeFileSync(inFile, data);
|
|
57
|
+
(0, node_child_process_1.execSync)(`${tool} -d -f "${inFile}" --stdout > "${outFile}"`, { stdio: 'pipe' });
|
|
58
|
+
return fs.readFileSync(outFile);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
try {
|
|
62
|
+
fs.unlinkSync(inFile);
|
|
63
|
+
}
|
|
64
|
+
catch { }
|
|
65
|
+
try {
|
|
66
|
+
fs.unlinkSync(outFile);
|
|
67
|
+
}
|
|
68
|
+
catch { }
|
|
69
|
+
try {
|
|
70
|
+
fs.rmdirSync(tmp);
|
|
71
|
+
}
|
|
72
|
+
catch { }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=compress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../src/core/compress.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,gCAKC;AAXD,gDAAkC;AAClC,2DAA8C;AAC9C,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAE9B,SAAgB,UAAU,CAAC,IAAY,EAAE,QAAgB;IACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAA,6BAAQ,EAAC,GAAG,IAAI,WAAW,MAAM,iBAAiB,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACvC,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACxC,IAAI,CAAC;YAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/core/control.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseControlFile = parseControlFile;
|
|
4
|
+
function parseControlFile(content) {
|
|
5
|
+
const fields = {};
|
|
6
|
+
let key = '';
|
|
7
|
+
let val = '';
|
|
8
|
+
for (const line of content.split('\n')) {
|
|
9
|
+
if (line.startsWith(' ') || line.startsWith('\t')) {
|
|
10
|
+
val += '\n' + line.trimEnd();
|
|
11
|
+
}
|
|
12
|
+
else if (line.trim() === '') {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
if (key)
|
|
17
|
+
fields[key.toLowerCase()] = val.trimEnd();
|
|
18
|
+
const ci = line.indexOf(':');
|
|
19
|
+
if (ci === -1)
|
|
20
|
+
continue;
|
|
21
|
+
key = line.slice(0, ci).trim();
|
|
22
|
+
val = line.slice(ci + 1).trim();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (key)
|
|
26
|
+
fields[key.toLowerCase()] = val.trimEnd();
|
|
27
|
+
return fields;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/core/control.ts"],"names":[],"mappings":";;AAAA,4CAqBC;AArBD,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;aAAM,CAAC;YACN,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,SAAS;YACxB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deb.d.ts","sourceRoot":"","sources":["../../src/core/deb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AAEtD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CA+BrD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE"}
|
package/dist/core/deb.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseDeb = parseDeb;
|
|
37
|
+
exports.readScript = readScript;
|
|
38
|
+
const fs = __importStar(require("node:fs"));
|
|
39
|
+
const ar_1 = require("./ar");
|
|
40
|
+
const compress_1 = require("./compress");
|
|
41
|
+
const tar_1 = require("./tar");
|
|
42
|
+
const control_1 = require("./control");
|
|
43
|
+
function parseDeb(filePath) {
|
|
44
|
+
const rawMembers = (0, ar_1.parseAr)(fs.readFileSync(filePath));
|
|
45
|
+
let debianBinary = null;
|
|
46
|
+
let controlTarRaw = null;
|
|
47
|
+
let controlTarName = '';
|
|
48
|
+
let dataTarRaw = null;
|
|
49
|
+
let dataTarName = '';
|
|
50
|
+
for (const m of rawMembers) {
|
|
51
|
+
if (m.name === 'debian-binary')
|
|
52
|
+
debianBinary = m.data;
|
|
53
|
+
else if (m.name.startsWith('control.tar')) {
|
|
54
|
+
controlTarRaw = m.data;
|
|
55
|
+
controlTarName = m.name;
|
|
56
|
+
}
|
|
57
|
+
else if (m.name.startsWith('data.tar')) {
|
|
58
|
+
dataTarRaw = m.data;
|
|
59
|
+
dataTarName = m.name;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!debianBinary)
|
|
63
|
+
throw new Error(`Missing debian-binary in ${filePath}`);
|
|
64
|
+
if (!controlTarRaw || !dataTarRaw)
|
|
65
|
+
throw new Error(`Malformed .deb: missing tar members`);
|
|
66
|
+
const controlTar = (0, compress_1.decompress)(controlTarRaw, controlTarName);
|
|
67
|
+
const dataTar = (0, compress_1.decompress)(dataTarRaw, dataTarName);
|
|
68
|
+
const controlFileBuf = (0, tar_1.readFileFromTar)(controlTar, './control')
|
|
69
|
+
?? (0, tar_1.readFileFromTar)(controlTar, 'control');
|
|
70
|
+
if (!controlFileBuf)
|
|
71
|
+
throw new Error(`Missing control file in ${filePath}`);
|
|
72
|
+
const fields = (0, control_1.parseControlFile)(controlFileBuf.toString('utf8'));
|
|
73
|
+
if (!fields['package'])
|
|
74
|
+
throw new Error(`control file missing Package field`);
|
|
75
|
+
const control = { package: fields['package'], version: fields['version'] || '0.0', architecture: fields['architecture'] || 'amd64' };
|
|
76
|
+
for (const [k, v] of Object.entries(fields))
|
|
77
|
+
if (!(k in control))
|
|
78
|
+
control[k] = v;
|
|
79
|
+
return { path: filePath, control, controlTar, dataTar };
|
|
80
|
+
}
|
|
81
|
+
function readScript(pkg, name) {
|
|
82
|
+
for (const prefix of ['', './']) {
|
|
83
|
+
const buf = (0, tar_1.readFileFromTar)(pkg.controlTar, prefix + name);
|
|
84
|
+
if (buf)
|
|
85
|
+
return buf.toString('utf8');
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=deb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deb.js","sourceRoot":"","sources":["../../src/core/deb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { RepoPkg } from './types';
|
|
2
|
+
export interface Dep {
|
|
3
|
+
name: string;
|
|
4
|
+
version?: string;
|
|
5
|
+
operator?: string;
|
|
6
|
+
arch?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface DepResult {
|
|
9
|
+
pkg: RepoPkg;
|
|
10
|
+
needed: boolean;
|
|
11
|
+
reason: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseDep(s: string): Dep[];
|
|
14
|
+
export declare function resolveDeps(targets: string[]): {
|
|
15
|
+
install: DepResult[];
|
|
16
|
+
errors: string[];
|
|
17
|
+
};
|
|
18
|
+
export declare function invalidateDepCache(): void;
|
|
19
|
+
export interface Conflict {
|
|
20
|
+
a: string;
|
|
21
|
+
b: string;
|
|
22
|
+
reason: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function detectConflicts(packages: RepoPkg[]): Conflict[];
|
|
25
|
+
//# sourceMappingURL=deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/core/deps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CA2BzC;AAyHD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA0CzF;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAAmB;AAkB7D,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAuB/D"}
|