@bgord/bun 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/healthcheck.service.d.ts +7 -4
- package/dist/healthcheck.service.d.ts.map +1 -1
- package/dist/healthcheck.service.js +1 -1
- package/dist/healthcheck.service.js.map +1 -1
- package/dist/prerequisites/binary.d.ts +2 -1
- package/dist/prerequisites/binary.d.ts.map +1 -1
- package/dist/prerequisites/binary.js +7 -5
- package/dist/prerequisites/binary.js.map +1 -1
- package/dist/prerequisites/bun.d.ts +2 -1
- package/dist/prerequisites/bun.d.ts.map +1 -1
- package/dist/prerequisites/bun.js +10 -5
- package/dist/prerequisites/bun.js.map +1 -1
- package/dist/prerequisites/clock-drift.d.ts +2 -2
- package/dist/prerequisites/clock-drift.d.ts.map +1 -1
- package/dist/prerequisites/clock-drift.js +7 -5
- package/dist/prerequisites/clock-drift.js.map +1 -1
- package/dist/prerequisites/dependency-vulnerabilities.d.ts +2 -1
- package/dist/prerequisites/dependency-vulnerabilities.d.ts.map +1 -1
- package/dist/prerequisites/dependency-vulnerabilities.js +8 -6
- package/dist/prerequisites/dependency-vulnerabilities.js.map +1 -1
- package/dist/prerequisites/directory.d.ts +3 -2
- package/dist/prerequisites/directory.d.ts.map +1 -1
- package/dist/prerequisites/directory.js +6 -4
- package/dist/prerequisites/directory.js.map +1 -1
- package/dist/prerequisites/external-api.d.ts +2 -1
- package/dist/prerequisites/external-api.d.ts.map +1 -1
- package/dist/prerequisites/external-api.js +7 -5
- package/dist/prerequisites/external-api.js.map +1 -1
- package/dist/prerequisites/jobs.d.ts +2 -1
- package/dist/prerequisites/jobs.d.ts.map +1 -1
- package/dist/prerequisites/jobs.js +6 -4
- package/dist/prerequisites/jobs.js.map +1 -1
- package/dist/prerequisites/log-file.d.ts +2 -1
- package/dist/prerequisites/log-file.d.ts.map +1 -1
- package/dist/prerequisites/log-file.js +7 -5
- package/dist/prerequisites/log-file.js.map +1 -1
- package/dist/prerequisites/mailer.d.ts +2 -1
- package/dist/prerequisites/mailer.d.ts.map +1 -1
- package/dist/prerequisites/mailer.js +6 -4
- package/dist/prerequisites/mailer.js.map +1 -1
- package/dist/prerequisites/memory.d.ts +2 -1
- package/dist/prerequisites/memory.d.ts.map +1 -1
- package/dist/prerequisites/memory.js +5 -4
- package/dist/prerequisites/memory.js.map +1 -1
- package/dist/prerequisites/node.d.ts +2 -1
- package/dist/prerequisites/node.d.ts.map +1 -1
- package/dist/prerequisites/node.js +8 -5
- package/dist/prerequisites/node.js.map +1 -1
- package/dist/prerequisites/outside-connectivity.d.ts +2 -1
- package/dist/prerequisites/outside-connectivity.d.ts.map +1 -1
- package/dist/prerequisites/outside-connectivity.js +7 -5
- package/dist/prerequisites/outside-connectivity.js.map +1 -1
- package/dist/prerequisites/port.d.ts +2 -1
- package/dist/prerequisites/port.d.ts.map +1 -1
- package/dist/prerequisites/port.js +6 -4
- package/dist/prerequisites/port.js.map +1 -1
- package/dist/prerequisites/ram.d.ts +2 -1
- package/dist/prerequisites/ram.d.ts.map +1 -1
- package/dist/prerequisites/ram.js +7 -4
- package/dist/prerequisites/ram.js.map +1 -1
- package/dist/prerequisites/running-user.d.ts +2 -1
- package/dist/prerequisites/running-user.d.ts.map +1 -1
- package/dist/prerequisites/running-user.js +6 -4
- package/dist/prerequisites/running-user.js.map +1 -1
- package/dist/prerequisites/self.d.ts +2 -1
- package/dist/prerequisites/self.d.ts.map +1 -1
- package/dist/prerequisites/self.js +5 -3
- package/dist/prerequisites/self.js.map +1 -1
- package/dist/prerequisites/space.d.ts +2 -1
- package/dist/prerequisites/space.d.ts.map +1 -1
- package/dist/prerequisites/space.js +6 -5
- package/dist/prerequisites/space.js.map +1 -1
- package/dist/prerequisites/sqlite.d.ts +2 -1
- package/dist/prerequisites/sqlite.d.ts.map +1 -1
- package/dist/prerequisites/sqlite.js +7 -5
- package/dist/prerequisites/sqlite.js.map +1 -1
- package/dist/prerequisites/ssl-certificate-expiry.d.ts +2 -1
- package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +1 -1
- package/dist/prerequisites/ssl-certificate-expiry.js +9 -5
- package/dist/prerequisites/ssl-certificate-expiry.js.map +1 -1
- package/dist/prerequisites/timezone-utc.d.ts +3 -2
- package/dist/prerequisites/timezone-utc.d.ts.map +1 -1
- package/dist/prerequisites/timezone-utc.js +6 -4
- package/dist/prerequisites/timezone-utc.js.map +1 -1
- package/dist/prerequisites/translations.d.ts +2 -1
- package/dist/prerequisites/translations.d.ts.map +1 -1
- package/dist/prerequisites/translations.js +8 -6
- package/dist/prerequisites/translations.js.map +1 -1
- package/dist/prerequisites.service.d.ts +24 -14
- package/dist/prerequisites.service.d.ts.map +1 -1
- package/dist/prerequisites.service.js +15 -11
- package/dist/prerequisites.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/healthcheck.service.ts +1 -1
- package/src/prerequisites/binary.ts +9 -5
- package/src/prerequisites/bun.ts +12 -5
- package/src/prerequisites/clock-drift.ts +8 -6
- package/src/prerequisites/dependency-vulnerabilities.ts +11 -6
- package/src/prerequisites/directory.ts +8 -5
- package/src/prerequisites/external-api.ts +9 -5
- package/src/prerequisites/jobs.ts +8 -4
- package/src/prerequisites/log-file.ts +9 -5
- package/src/prerequisites/mailer.ts +8 -4
- package/src/prerequisites/memory.ts +7 -4
- package/src/prerequisites/node.ts +10 -5
- package/src/prerequisites/outside-connectivity.ts +9 -5
- package/src/prerequisites/port.ts +10 -4
- package/src/prerequisites/ram.ts +9 -4
- package/src/prerequisites/running-user.ts +8 -4
- package/src/prerequisites/self.ts +7 -3
- package/src/prerequisites/space.ts +8 -5
- package/src/prerequisites/sqlite.ts +9 -5
- package/src/prerequisites/ssl-certificate-expiry.ts +12 -5
- package/src/prerequisites/timezone-utc.ts +8 -5
- package/src/prerequisites/translations.ts +10 -7
- package/src/prerequisites.service.ts +30 -15
|
@@ -15,10 +15,12 @@ export declare class Healthcheck {
|
|
|
15
15
|
details: {
|
|
16
16
|
label: prereqs.PrerequisiteLabelType;
|
|
17
17
|
outcome: {
|
|
18
|
-
|
|
18
|
+
status: prereqs.PrerequisiteStatusEnum.success;
|
|
19
|
+
duration: tools.DurationMsType;
|
|
19
20
|
} | {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
status: prereqs.PrerequisiteStatusEnum.failure;
|
|
22
|
+
duration: tools.DurationMsType;
|
|
23
|
+
error?: {
|
|
22
24
|
name?: string | undefined;
|
|
23
25
|
message?: string | undefined;
|
|
24
26
|
stack?: string | undefined;
|
|
@@ -29,7 +31,8 @@ export declare class Healthcheck {
|
|
|
29
31
|
} | undefined;
|
|
30
32
|
} | undefined;
|
|
31
33
|
} | {
|
|
32
|
-
|
|
34
|
+
status: prereqs.PrerequisiteStatusEnum.undetermined;
|
|
35
|
+
duration: tools.DurationMsType;
|
|
33
36
|
};
|
|
34
37
|
}[];
|
|
35
38
|
uptime: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.service.d.ts","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AAcnD,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjG,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,GAAI,eAAe,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,YAAY;YAXrE,OAAO,CAAC,sBAAsB;iBACzB,MAAM;;mBACG,OAAO,CAAC,qBAAqB
|
|
1
|
+
{"version":3,"file":"healthcheck.service.d.ts","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AAcnD,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjG,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,GAAI,eAAe,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,YAAY;YAXrE,OAAO,CAAC,sBAAsB;iBACzB,MAAM;;mBACG,OAAO,CAAC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAZhC,2BAA2B;;;mBAczB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;uBAAa,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;oBACrE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;6BAqC3B;CACN"}
|
|
@@ -11,7 +11,7 @@ export class Healthcheck {
|
|
|
11
11
|
const buildInfo = await BuildInfoRepository.extract(deps);
|
|
12
12
|
const details = [];
|
|
13
13
|
for (const prerequisite of prerequisites) {
|
|
14
|
-
details.push({ label: prerequisite.label, outcome: await prerequisite.verify() });
|
|
14
|
+
details.push({ label: prerequisite.label, outcome: await prerequisite.verify(deps.Clock) });
|
|
15
15
|
}
|
|
16
16
|
const ok = details.every((result) => result.outcome.status !== prereqs.PrerequisiteStatusEnum.failure)
|
|
17
17
|
? prereqs.PrerequisiteStatusEnum.success
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAyB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAahC,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,GAAG,CAAC,aAAqC,EAAE,IAAkB,EAAE,EAAE,CAC3E,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,OAAO,GAA+C,EAAE,CAAC;QAE/D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAyB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAahC,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,GAAG,CAAC,aAAqC,EAAE,IAAkB,EAAE,EAAE,CAC3E,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,OAAO,GAA+C,EAAE,CAAC;QAE/D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACpG,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO;YACxC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAE3C,MAAM,IAAI,GAAG,EAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvE,MAAM,MAAM,GAA0B;YACpC,EAAE;YACF,OAAO;YACP,OAAO,EAAE,SAAS,CAAC,aAAa,IAAI,SAAS;YAC7C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE;gBACN,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBACxC,SAAS,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC9D;YACD,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE;SAChC,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BinaryType } from "../binary.vo";
|
|
2
|
+
import type { ClockPort } from "../clock.port";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteBinary implements prereqs.Prerequisite {
|
|
4
5
|
readonly kind = "binary";
|
|
@@ -8,6 +9,6 @@ export declare class PrerequisiteBinary implements prereqs.Prerequisite {
|
|
|
8
9
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
9
10
|
binary: BinaryType;
|
|
10
11
|
});
|
|
11
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
12
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/prerequisites/binary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/prerequisites/binary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,kBAAmB,YAAW,OAAO,CAAC,YAAY;IAC7D,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;IAMrE,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAc/D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import bun from "bun";
|
|
2
|
+
import * as tools from "@bgord/tools";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export class PrerequisiteBinary {
|
|
4
5
|
kind = "binary";
|
|
@@ -10,17 +11,18 @@ export class PrerequisiteBinary {
|
|
|
10
11
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
11
12
|
this.binary = config.binary;
|
|
12
13
|
}
|
|
13
|
-
async verify() {
|
|
14
|
+
async verify(clock) {
|
|
15
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
14
16
|
try {
|
|
15
17
|
if (!this.enabled)
|
|
16
|
-
return prereqs.Verification.undetermined();
|
|
18
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
17
19
|
const result = await bun.$ `which ${this.binary}`.quiet();
|
|
18
20
|
if (result.exitCode === 0)
|
|
19
|
-
return prereqs.Verification.success();
|
|
20
|
-
return prereqs.Verification.failure({ message: `Exit code ${result.exitCode}` });
|
|
21
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
22
|
+
return prereqs.Verification.failure(stopwatch.stop(), { message: `Exit code ${result.exitCode}` });
|
|
21
23
|
}
|
|
22
24
|
catch (error) {
|
|
23
|
-
return prereqs.Verification.failure(error);
|
|
25
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/prerequisites/binary.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/prerequisites/binary.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,QAAQ,CAAC;IAChB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,MAAM,CAAa;IAEpC,YAAY,MAA+D;QACzE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YAEzD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import type { ClockPort } from "../clock.port";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteBun implements prereqs.Prerequisite {
|
|
4
5
|
readonly kind = "bun";
|
|
@@ -10,6 +11,6 @@ export declare class PrerequisiteBun implements prereqs.Prerequisite {
|
|
|
10
11
|
version: tools.PackageVersion;
|
|
11
12
|
current: string;
|
|
12
13
|
});
|
|
13
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
14
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=bun.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/prerequisites/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,eAAgB,YAAW,OAAO,CAAC,YAAY;IAC1D,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOjG,MAAM,
|
|
1
|
+
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/prerequisites/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,eAAgB,YAAW,OAAO,CAAC,YAAY;IAC1D,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOjG,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAkB/D"}
|
|
@@ -12,17 +12,22 @@ export class PrerequisiteBun {
|
|
|
12
12
|
this.version = config.version;
|
|
13
13
|
this.current = config.current;
|
|
14
14
|
}
|
|
15
|
-
async verify() {
|
|
15
|
+
async verify(clock) {
|
|
16
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
16
17
|
if (!this.enabled)
|
|
17
|
-
return prereqs.Verification.undetermined();
|
|
18
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
18
19
|
try {
|
|
19
20
|
const current = tools.PackageVersion.fromString(this.current);
|
|
20
21
|
if (current.isGreaterThanOrEqual(this.version))
|
|
21
|
-
return prereqs.Verification.success();
|
|
22
|
-
return prereqs.Verification.failure(
|
|
22
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
23
|
+
return prereqs.Verification.failure(stopwatch.stop(), {
|
|
24
|
+
message: `Version: ${this.version.toString()}`,
|
|
25
|
+
});
|
|
23
26
|
}
|
|
24
27
|
catch {
|
|
25
|
-
return prereqs.Verification.failure(
|
|
28
|
+
return prereqs.Verification.failure(stopwatch.stop(), {
|
|
29
|
+
message: `Invalid version passed: ${this.current}`,
|
|
30
|
+
});
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/prerequisites/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/prerequisites/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,KAAK,CAAC;IACb,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,OAAO,CAAuB;IAC9B,OAAO,CAAS;IAEjC,YAAY,MAA2F;QACrG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9D,IAAI,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACtG,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;gBACpD,OAAO,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;gBACpD,OAAO,EAAE,2BAA2B,IAAI,CAAC,OAAO,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
2
|
import type { ClockPort } from "../clock.port";
|
|
3
3
|
import * as prereqs from "../prerequisites.service";
|
|
4
4
|
import type { TimekeeperPort } from "../timekeeper.port";
|
|
@@ -14,6 +14,6 @@ export declare class PrerequisiteClockDrift implements prereqs.Prerequisite {
|
|
|
14
14
|
timekeeper: TimekeeperPort;
|
|
15
15
|
clock: ClockPort;
|
|
16
16
|
});
|
|
17
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
17
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=clock-drift.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock-drift.d.ts","sourceRoot":"","sources":["../../src/prerequisites/clock-drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"clock-drift.d.ts","sourceRoot":"","sources":["../../src/prerequisites/clock-drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,sBAAuB,YAAW,OAAO,CAAC,YAAY;IACjE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAGxB,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QACvC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrB,UAAU,EAAE,cAAc,CAAC;QAC3B,KAAK,EAAE,SAAS,CAAC;KAClB;IAUG,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAe/D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export class PrerequisiteClockDrift {
|
|
3
4
|
kind = "clock-drift";
|
|
@@ -13,17 +14,18 @@ export class PrerequisiteClockDrift {
|
|
|
13
14
|
this.timekeeper = config.timekeeper;
|
|
14
15
|
this.clock = config.clock;
|
|
15
16
|
}
|
|
16
|
-
async verify() {
|
|
17
|
+
async verify(clock) {
|
|
18
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
17
19
|
if (!this.enabled)
|
|
18
|
-
return prereqs.Verification.undetermined();
|
|
20
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
19
21
|
const now = this.clock.now();
|
|
20
22
|
const timestamp = await this.timekeeper.get();
|
|
21
23
|
if (!timestamp)
|
|
22
|
-
return prereqs.Verification.undetermined();
|
|
24
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
23
25
|
const duration = now.difference(timestamp).toAbolute();
|
|
24
26
|
if (duration.isShorterThan(this.skew))
|
|
25
|
-
return prereqs.Verification.success();
|
|
26
|
-
return prereqs.Verification.failure({ message: `Difference: ${duration.seconds}s` });
|
|
27
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
28
|
+
return prereqs.Verification.failure(stopwatch.stop(), { message: `Difference: ${duration.seconds}s` });
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
//# sourceMappingURL=clock-drift.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock-drift.js","sourceRoot":"","sources":["../../src/prerequisites/clock-drift.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clock-drift.js","sourceRoot":"","sources":["../../src/prerequisites/clock-drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAGpD,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAG,aAAa,CAAC;IACrB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEzB,IAAI,CAAiB;IACrB,UAAU,CAAiB;IAC3B,KAAK,CAAY;IAE1B,YACE,MAIC;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3E,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;QAEvD,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzG,CAAC;CACF"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { ClockPort } from "../clock.port";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export declare class PrerequisiteDependencyVulnerabilities implements prereqs.Prerequisite {
|
|
3
4
|
readonly kind = "dependency-vulnerabilities";
|
|
4
5
|
readonly label: prereqs.PrerequisiteLabelType;
|
|
5
6
|
readonly enabled?: boolean;
|
|
6
7
|
constructor(config: prereqs.PrerequisiteConfigType);
|
|
7
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
8
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=dependency-vulnerabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-vulnerabilities.d.ts","sourceRoot":"","sources":["../../src/prerequisites/dependency-vulnerabilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependency-vulnerabilities.d.ts","sourceRoot":"","sources":["../../src/prerequisites/dependency-vulnerabilities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAIpD,qBAAa,qCAAsC,YAAW,OAAO,CAAC,YAAY;IAChF,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;gBAEtB,MAAM,EAAE,OAAO,CAAC,sBAAsB;IAK5C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CA+B/D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import bun from "bun";
|
|
2
|
+
import * as tools from "@bgord/tools";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export class PrerequisiteDependencyVulnerabilities {
|
|
4
5
|
kind = "dependency-vulnerabilities";
|
|
@@ -8,24 +9,25 @@ export class PrerequisiteDependencyVulnerabilities {
|
|
|
8
9
|
this.label = config.label;
|
|
9
10
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
10
11
|
}
|
|
11
|
-
async verify() {
|
|
12
|
+
async verify(clock) {
|
|
13
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
12
14
|
if (!this.enabled)
|
|
13
|
-
return prereqs.Verification.undetermined();
|
|
15
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
14
16
|
try {
|
|
15
17
|
const command = await bun.$ `bun audit --json`.quiet();
|
|
16
18
|
if (command.exitCode !== 0)
|
|
17
|
-
return prereqs.Verification.failure({ message: "Audit failure" });
|
|
19
|
+
return prereqs.Verification.failure(stopwatch.stop(), { message: "Audit failure" });
|
|
18
20
|
const audit = JSON.parse(command.stdout.toString());
|
|
19
21
|
const criticalVulnerabilitiesCount = Object.values(audit).filter((name) => name.some((vulnerability) => vulnerability.severity === "critical")).length;
|
|
20
22
|
const highVulnerabilitiesCount = Object.values(audit).filter((name) => name.some((vulnerability) => vulnerability.severity === "high")).length;
|
|
21
23
|
if (criticalVulnerabilitiesCount > 0 || highVulnerabilitiesCount > 0)
|
|
22
|
-
return prereqs.Verification.failure({
|
|
24
|
+
return prereqs.Verification.failure(stopwatch.stop(), {
|
|
23
25
|
message: `Critical: ${criticalVulnerabilitiesCount} and high: ${highVulnerabilitiesCount}`,
|
|
24
26
|
});
|
|
25
|
-
return prereqs.Verification.success();
|
|
27
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
26
28
|
}
|
|
27
29
|
catch (error) {
|
|
28
|
-
return prereqs.Verification.failure(error);
|
|
30
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-vulnerabilities.js","sourceRoot":"","sources":["../../src/prerequisites/dependency-vulnerabilities.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAIpD,MAAM,OAAO,qCAAqC;IACvC,IAAI,GAAG,4BAA4B,CAAC;IACpC,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAElC,YAAY,MAAsC;QAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"dependency-vulnerabilities.js","sourceRoot":"","sources":["../../src/prerequisites/dependency-vulnerabilities.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAIpD,MAAM,OAAO,qCAAqC;IACvC,IAAI,GAAG,4BAA4B,CAAC;IACpC,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAElC,YAAY,MAAsC;QAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAEtD,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;gBACxB,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YAEtF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAmB,CAAC;YAEtE,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACxE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,KAAK,UAAU,CAAC,CACpE,CAAC,MAAM,CAAC;YAET,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,KAAK,MAAM,CAAC,CAChE,CAAC,MAAM,CAAC;YAET,IAAI,4BAA4B,GAAG,CAAC,IAAI,wBAAwB,GAAG,CAAC;gBAClE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;oBACpD,OAAO,EAAE,aAAa,4BAA4B,cAAc,wBAAwB,EAAE;iBAC3F,CAAC,CAAC;YAEL,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import type { ClockPort } from "../clock.port";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteDirectory implements prereqs.Prerequisite {
|
|
4
5
|
readonly kind = "directory";
|
|
@@ -13,6 +14,6 @@ export declare class PrerequisiteDirectory implements prereqs.Prerequisite {
|
|
|
13
14
|
execute?: boolean;
|
|
14
15
|
};
|
|
15
16
|
});
|
|
16
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
17
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=directory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/prerequisites/directory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/prerequisites/directory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,qBAAsB,YAAW,OAAO,CAAC,YAAY;IAChE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoE;IAC9F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAyC;gBAG/D,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QACvC,SAAS,EAAE,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,yBAAyB,CAAC;QAC7E,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACjD;IASG,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAkB/D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { constants } from "node:fs";
|
|
2
2
|
import fsp from "node:fs/promises";
|
|
3
|
+
import * as tools from "@bgord/tools";
|
|
3
4
|
import * as prereqs from "../prerequisites.service";
|
|
4
5
|
export class PrerequisiteDirectory {
|
|
5
6
|
kind = "directory";
|
|
@@ -13,18 +14,19 @@ export class PrerequisiteDirectory {
|
|
|
13
14
|
this.directory = config.directory;
|
|
14
15
|
this.access = config.access;
|
|
15
16
|
}
|
|
16
|
-
async verify() {
|
|
17
|
+
async verify(clock) {
|
|
18
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
17
19
|
if (!this.enabled)
|
|
18
|
-
return prereqs.Verification.undetermined();
|
|
20
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
19
21
|
const write = this.access?.write ?? false;
|
|
20
22
|
const execute = this.access?.execute ?? false;
|
|
21
23
|
const flags = constants.R_OK | (write ? constants.W_OK : 0) | (execute ? constants.X_OK : 0);
|
|
22
24
|
try {
|
|
23
25
|
await fsp.access(this.directory, flags);
|
|
24
|
-
return prereqs.Verification.success();
|
|
26
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
25
27
|
}
|
|
26
28
|
catch (error) {
|
|
27
|
-
return prereqs.Verification.failure(error);
|
|
29
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/prerequisites/directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,GAAG,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/prerequisites/directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,WAAW,CAAC;IACnB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,SAAS,CAAoE;IAC7E,MAAM,CAA0C;IAEjE,YACE,MAGC;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;QAE9C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAExC,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClockPort } from "../clock.port";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export declare class PrerequisiteExternalApi implements prereqs.Prerequisite {
|
|
3
4
|
readonly kind = "external-api";
|
|
@@ -7,6 +8,6 @@ export declare class PrerequisiteExternalApi implements prereqs.Prerequisite {
|
|
|
7
8
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
8
9
|
request: () => Promise<Response>;
|
|
9
10
|
});
|
|
10
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
11
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=external-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-api.d.ts","sourceRoot":"","sources":["../../src/prerequisites/external-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"external-api.d.ts","sourceRoot":"","sources":["../../src/prerequisites/external-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,uBAAwB,YAAW,OAAO,CAAC,YAAY;IAClE,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE;IAOnF,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAc/D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export class PrerequisiteExternalApi {
|
|
3
4
|
kind = "external-api";
|
|
@@ -9,17 +10,18 @@ export class PrerequisiteExternalApi {
|
|
|
9
10
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
10
11
|
this.request = config.request;
|
|
11
12
|
}
|
|
12
|
-
async verify() {
|
|
13
|
+
async verify(clock) {
|
|
14
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
13
15
|
if (!this.enabled)
|
|
14
|
-
return prereqs.Verification.undetermined();
|
|
16
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
15
17
|
try {
|
|
16
18
|
const response = await this.request();
|
|
17
19
|
if (response.ok)
|
|
18
|
-
return prereqs.Verification.success();
|
|
19
|
-
return prereqs.Verification.failure({ message: `HTTP ${response.status}` });
|
|
20
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
21
|
+
return prereqs.Verification.failure(stopwatch.stop(), { message: `HTTP ${response.status}` });
|
|
20
22
|
}
|
|
21
23
|
catch (error) {
|
|
22
|
-
return prereqs.Verification.failure(error);
|
|
24
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-api.js","sourceRoot":"","sources":["../../src/prerequisites/external-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,cAAc,CAAC;IACtB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,OAAO,CAA0B;IAElD,YAAY,MAA6E;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"external-api.js","sourceRoot":"","sources":["../../src/prerequisites/external-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,cAAc,CAAC;IACtB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,OAAO,CAA0B;IAElD,YAAY,MAA6E;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAEtC,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClockPort } from "../clock.port";
|
|
1
2
|
import { type MultipleJobsType } from "../jobs.service";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteJobs implements prereqs.Prerequisite {
|
|
@@ -8,6 +9,6 @@ export declare class PrerequisiteJobs implements prereqs.Prerequisite {
|
|
|
8
9
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
9
10
|
jobs: MultipleJobsType;
|
|
10
11
|
});
|
|
11
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
12
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/prerequisites/jobs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/prerequisites/jobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAQ,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,gBAAiB,YAAW,OAAO,CAAC,YAAY;IAC3D,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE;IAOzE,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAO/D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import { Jobs } from "../jobs.service";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export class PrerequisiteJobs {
|
|
@@ -10,12 +11,13 @@ export class PrerequisiteJobs {
|
|
|
10
11
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
11
12
|
this.jobs = config.jobs;
|
|
12
13
|
}
|
|
13
|
-
async verify() {
|
|
14
|
+
async verify(clock) {
|
|
15
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
14
16
|
if (!this.enabled)
|
|
15
|
-
return prereqs.Verification.undetermined();
|
|
17
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
16
18
|
if (Jobs.areAllRunning(this.jobs))
|
|
17
|
-
return prereqs.Verification.success();
|
|
18
|
-
return prereqs.Verification.failure();
|
|
19
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
20
|
+
return prereqs.Verification.failure(stopwatch.stop());
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=jobs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/prerequisites/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAyB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,MAAM,CAAC;IACd,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,IAAI,CAAmB;IAExC,YAAY,MAAmE;QAC7E,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/prerequisites/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAyB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,MAAM,CAAC;IACd,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,IAAI,CAAmB;IAExC,YAAY,MAAmE;QAC7E,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClockPort } from "../clock.port";
|
|
1
2
|
import type { LoggerWinstonProductionAdapter } from "../logger-winston-production.adapter";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteLogFile implements prereqs.Prerequisite {
|
|
@@ -8,6 +9,6 @@ export declare class PrerequisiteLogFile implements prereqs.Prerequisite {
|
|
|
8
9
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
9
10
|
logger: LoggerWinstonProductionAdapter;
|
|
10
11
|
});
|
|
11
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
12
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=log-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-file.d.ts","sourceRoot":"","sources":["../../src/prerequisites/log-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log-file.d.ts","sourceRoot":"","sources":["../../src/prerequisites/log-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,mBAAoB,YAAW,OAAO,CAAC,YAAY;IAC9D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE5C,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,MAAM,EAAE,8BAA8B,CAAA;KAAE;IAOzF,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAe/D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export class PrerequisiteLogFile {
|
|
3
4
|
kind = "log-file";
|
|
@@ -9,18 +10,19 @@ export class PrerequisiteLogFile {
|
|
|
9
10
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
10
11
|
this.logger = config.logger;
|
|
11
12
|
}
|
|
12
|
-
async verify() {
|
|
13
|
+
async verify(clock) {
|
|
14
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
13
15
|
if (!this.enabled)
|
|
14
|
-
return prereqs.Verification.undetermined();
|
|
16
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
15
17
|
try {
|
|
16
18
|
const path = this.logger.prodLogFile;
|
|
17
19
|
const result = await Bun.file(path).exists();
|
|
18
20
|
if (result)
|
|
19
|
-
return prereqs.Verification.success();
|
|
20
|
-
return prereqs.Verification.failure({ message: `Missing file: ${path}` });
|
|
21
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
22
|
+
return prereqs.Verification.failure(stopwatch.stop(), { message: `Missing file: ${path}` });
|
|
21
23
|
}
|
|
22
24
|
catch (error) {
|
|
23
|
-
return prereqs.Verification.failure(error);
|
|
25
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-file.js","sourceRoot":"","sources":["../../src/prerequisites/log-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log-file.js","sourceRoot":"","sources":["../../src/prerequisites/log-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,UAAU,CAAC;IAClB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,MAAM,CAAiC;IAExD,YAAY,MAAmF;QAC7F,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAE7C,IAAI,MAAM;gBAAE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClockPort } from "../clock.port";
|
|
1
2
|
import type { MailerPort } from "../mailer.port";
|
|
2
3
|
import * as prereqs from "../prerequisites.service";
|
|
3
4
|
export declare class PrerequisiteMailer implements prereqs.Prerequisite {
|
|
@@ -8,6 +9,6 @@ export declare class PrerequisiteMailer implements prereqs.Prerequisite {
|
|
|
8
9
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
9
10
|
mailer: MailerPort;
|
|
10
11
|
});
|
|
11
|
-
verify(): Promise<prereqs.VerifyOutcome>;
|
|
12
|
+
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=mailer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../src/prerequisites/mailer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../src/prerequisites/mailer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,qBAAa,kBAAmB,YAAW,OAAO,CAAC,YAAY;IAC7D,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,OAAO,CAAC,sBAAsB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;IAOrE,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAY/D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import * as prereqs from "../prerequisites.service";
|
|
2
3
|
export class PrerequisiteMailer {
|
|
3
4
|
kind = "mailer";
|
|
@@ -9,15 +10,16 @@ export class PrerequisiteMailer {
|
|
|
9
10
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
10
11
|
this.mailer = config.mailer;
|
|
11
12
|
}
|
|
12
|
-
async verify() {
|
|
13
|
+
async verify(clock) {
|
|
14
|
+
const stopwatch = new tools.Stopwatch(clock.now());
|
|
13
15
|
if (!this.enabled)
|
|
14
|
-
return prereqs.Verification.undetermined();
|
|
16
|
+
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
15
17
|
try {
|
|
16
18
|
await this.mailer.verify();
|
|
17
|
-
return prereqs.Verification.success();
|
|
19
|
+
return prereqs.Verification.success(stopwatch.stop());
|
|
18
20
|
}
|
|
19
21
|
catch (error) {
|
|
20
|
-
return prereqs.Verification.failure(error);
|
|
22
|
+
return prereqs.Verification.failure(stopwatch.stop(), error);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/prerequisites/mailer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/prerequisites/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,QAAQ,CAAC;IAChB,KAAK,CAAgC;IACrC,OAAO,GAAa,IAAI,CAAC;IAEjB,MAAM,CAAa;IAEpC,YAAY,MAA+D;QACzE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|