pmcf 2.44.0 → 2.46.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/package.json +3 -3
- package/src/host.mjs +14 -0
- package/src/service.mjs +9 -6
- package/src/services/bind.mjs +2 -3
- package/types/cluster.d.mts +5 -0
- package/types/host.d.mts +8 -0
- package/types/service.d.mts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pmcf",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.46.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"prepare": "node --run prepare:typescript",
|
|
38
|
-
"prepare:typescript": "tsc --allowJs --declaration --emitDeclarationOnly --declarationDir types --resolveJsonModule --target
|
|
38
|
+
"prepare:typescript": "tsc --allowJs --declaration --emitDeclarationOnly --declarationDir types --resolveJsonModule --target esnext -m esnext --module nodenext --moduleResolution nodenext --rootDir src ./src**/*.mjs",
|
|
39
39
|
"test": "node --run test:ava",
|
|
40
40
|
"test:ava": "ava --timeout 4m tests/*-ava.mjs tests/*-ava-node.mjs",
|
|
41
41
|
"cover": "c8 -x 'tests/**/*' --temp-directory build/tmp ava --timeout 4m tests/*-ava.mjs tests/*-ava-node.mjs && c8 report -r lcov -o build/coverage --temp-directory build/tmp",
|
|
42
42
|
"docs": "documentation readme --section=API ./src**/*.mjs",
|
|
43
43
|
"lint": "node --run lint:docs && node --run lint:typescript",
|
|
44
44
|
"lint:docs": "documentation lint ./src**/*.mjs",
|
|
45
|
-
"lint:typescript": "tsc --allowJs --checkJs --noEmit --resolveJsonModule --target
|
|
45
|
+
"lint:typescript": "tsc --allowJs --checkJs --noEmit --resolveJsonModule --target esnext -m esnext --module nodenext --moduleResolution nodenext ./src**/*.mjs"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"ip-utilties": "^1.3.1",
|
package/src/host.mjs
CHANGED
|
@@ -47,6 +47,7 @@ const HostTypeDefinition = {
|
|
|
47
47
|
weight: { type: "number", collection: false, writeable: true },
|
|
48
48
|
serial: { type: "string", collection: false, writeable: true },
|
|
49
49
|
vendor: { type: "string", collection: false, writeable: true },
|
|
50
|
+
keymap: { type: "string", collection: false, writeable: true },
|
|
50
51
|
chassis: {
|
|
51
52
|
type: "string",
|
|
52
53
|
collection: false,
|
|
@@ -95,6 +96,7 @@ export class Host extends ServiceOwner {
|
|
|
95
96
|
_vendor;
|
|
96
97
|
_architecture;
|
|
97
98
|
_serial;
|
|
99
|
+
_keymap;
|
|
98
100
|
|
|
99
101
|
static {
|
|
100
102
|
addType(this);
|
|
@@ -187,6 +189,14 @@ export class Host extends ServiceOwner {
|
|
|
187
189
|
return this.extendedProperty("_vendor");
|
|
188
190
|
}
|
|
189
191
|
|
|
192
|
+
set keymap(value) {
|
|
193
|
+
this._keymap = value;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
get keymap() {
|
|
197
|
+
return this.extendedProperty("_keymap");
|
|
198
|
+
}
|
|
199
|
+
|
|
190
200
|
set architecture(value) {
|
|
191
201
|
this._architecture = value;
|
|
192
202
|
}
|
|
@@ -490,6 +500,10 @@ export class Host extends ServiceOwner {
|
|
|
490
500
|
await ni.systemdDefinitions(packageData);
|
|
491
501
|
}
|
|
492
502
|
|
|
503
|
+
if (this.keymap) {
|
|
504
|
+
await writeLines(dir, "etc/vconsole.conf", `KEYMAP=${this.keymap}`);
|
|
505
|
+
}
|
|
506
|
+
|
|
493
507
|
await generateMachineInfo(this, packageData);
|
|
494
508
|
await generateKnownHosts(this.owner.hosts(), join(dir, "root", ".ssh"));
|
|
495
509
|
|
package/src/service.mjs
CHANGED
|
@@ -184,10 +184,6 @@ export class Service extends Base {
|
|
|
184
184
|
return this.host.domainName;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
get ipAddressOrDomainName() {
|
|
188
|
-
return this.address ?? this.domainName;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
187
|
get networks() {
|
|
192
188
|
return this.host.networks;
|
|
193
189
|
}
|
|
@@ -209,7 +205,14 @@ export class Service extends Base {
|
|
|
209
205
|
return filter ? result.filter(filter) : result;
|
|
210
206
|
}
|
|
211
207
|
|
|
212
|
-
address(
|
|
208
|
+
address(
|
|
209
|
+
options = {
|
|
210
|
+
endpoints: e => e.networkInterface?.kind !== "loopbak",
|
|
211
|
+
select: e => e.domainName||e.address,
|
|
212
|
+
limit: 1,
|
|
213
|
+
join: ""
|
|
214
|
+
}
|
|
215
|
+
) {
|
|
213
216
|
const all = this.endpoints(options.endpoints);
|
|
214
217
|
const res = [...new Set(options.select ? all.map(options.select) : all)];
|
|
215
218
|
|
|
@@ -217,7 +220,7 @@ export class Service extends Base {
|
|
|
217
220
|
res.length = options.limit;
|
|
218
221
|
}
|
|
219
222
|
|
|
220
|
-
return options.join ? res.join(options.join) : res;
|
|
223
|
+
return options.join !== undefined ? res.join(options.join) : res;
|
|
221
224
|
}
|
|
222
225
|
|
|
223
226
|
set alias(value) {
|
package/src/services/bind.mjs
CHANGED
|
@@ -527,20 +527,19 @@ export class BINDService extends ExtraSourceService {
|
|
|
527
527
|
|
|
528
528
|
get defaultRecords() {
|
|
529
529
|
const nameService = this.findService({ type: "dns", priority: "<10" });
|
|
530
|
-
const rname = this.administratorEmail.replace(/@/, ".");
|
|
531
530
|
|
|
532
531
|
const SOARecord = DNSRecord(
|
|
533
532
|
"@",
|
|
534
533
|
"SOA",
|
|
535
534
|
dnsFullName(nameService.domainName),
|
|
536
|
-
dnsFullName(
|
|
535
|
+
dnsFullName(this.administratorEmail.replace(/@/, ".")),
|
|
537
536
|
`(${[...this.soaUpdates].join(" ")})`
|
|
538
537
|
);
|
|
539
538
|
|
|
540
539
|
const NSRecord = DNSRecord(
|
|
541
540
|
"@",
|
|
542
541
|
"NS",
|
|
543
|
-
dnsFullName(nameService.
|
|
542
|
+
dnsFullName(nameService.address())
|
|
544
543
|
);
|
|
545
544
|
|
|
546
545
|
return [SOARecord, NSRecord];
|
package/types/cluster.d.mts
CHANGED
package/types/host.d.mts
CHANGED
|
@@ -103,6 +103,11 @@ export class Host extends ServiceOwner {
|
|
|
103
103
|
collection: boolean;
|
|
104
104
|
writeable: boolean;
|
|
105
105
|
};
|
|
106
|
+
keymap: {
|
|
107
|
+
type: string;
|
|
108
|
+
collection: boolean;
|
|
109
|
+
writeable: boolean;
|
|
110
|
+
};
|
|
106
111
|
chassis: {
|
|
107
112
|
type: string;
|
|
108
113
|
collection: boolean;
|
|
@@ -185,6 +190,7 @@ export class Host extends ServiceOwner {
|
|
|
185
190
|
_vendor: any;
|
|
186
191
|
_architecture: any;
|
|
187
192
|
_serial: any;
|
|
193
|
+
_keymap: any;
|
|
188
194
|
extra: any;
|
|
189
195
|
_applyExtends(host: any): void;
|
|
190
196
|
set serial(value: any);
|
|
@@ -195,6 +201,8 @@ export class Host extends ServiceOwner {
|
|
|
195
201
|
get chassis(): any;
|
|
196
202
|
set vendor(value: any);
|
|
197
203
|
get vendor(): any;
|
|
204
|
+
set keymap(value: any);
|
|
205
|
+
get keymap(): any;
|
|
198
206
|
set architecture(value: any);
|
|
199
207
|
get architecture(): any;
|
|
200
208
|
get isTemplate(): true | RegExpMatchArray;
|
package/types/service.d.mts
CHANGED
|
@@ -313,12 +313,13 @@ export class Service extends Base {
|
|
|
313
313
|
get host(): Host;
|
|
314
314
|
hosts(): Generator<any, void, any>;
|
|
315
315
|
get domainName(): any;
|
|
316
|
-
get ipAddressOrDomainName(): any;
|
|
317
316
|
get networks(): Set<any>;
|
|
318
317
|
endpoints(filter: any): any[];
|
|
319
318
|
address(options?: {
|
|
319
|
+
endpoints: (e: any) => boolean;
|
|
320
320
|
select: (e: any) => any;
|
|
321
321
|
limit: number;
|
|
322
|
+
join: string;
|
|
322
323
|
}): string | any[];
|
|
323
324
|
set alias(value: any);
|
|
324
325
|
get alias(): any;
|