@s8fy/xdoc 0.3.12 → 0.6.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/lib/check-platform.cjs +6 -6
- package/lib/index.cjs +24 -24
- package/lib/platform.cjs +22 -22
- package/lib/version.cjs +4 -4
- package/package.json +6 -6
package/lib/check-platform.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
'use strict'
|
|
3
3
|
|
|
4
|
-
const { assertRuntimeSupport } = require(
|
|
4
|
+
const { assertRuntimeSupport } = require('./platform.cjs')
|
|
5
5
|
|
|
6
6
|
try {
|
|
7
|
-
assertRuntimeSupport()
|
|
7
|
+
assertRuntimeSupport()
|
|
8
8
|
} catch (error) {
|
|
9
|
-
const message = error instanceof Error ? error.message : String(error)
|
|
10
|
-
console.error(`xdoc install error: ${message}`)
|
|
11
|
-
process.exitCode = 1
|
|
9
|
+
const message = error instanceof Error ? error.message : String(error)
|
|
10
|
+
console.error(`xdoc install error: ${message}`)
|
|
11
|
+
process.exitCode = 1
|
|
12
12
|
}
|
package/lib/index.cjs
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
'use strict'
|
|
3
3
|
|
|
4
|
-
const { spawnSync } = require(
|
|
5
|
-
const { constants } = require(
|
|
6
|
-
const { resolveBinaryPath } = require(
|
|
4
|
+
const { spawnSync } = require('node:child_process')
|
|
5
|
+
const { constants } = require('node:os')
|
|
6
|
+
const { resolveBinaryPath } = require('./platform.cjs')
|
|
7
7
|
|
|
8
8
|
function execute(
|
|
9
9
|
args = process.argv.slice(2),
|
|
10
10
|
{ os = process.platform, cpu = process.arch, resolve = require.resolve, spawn = spawnSync } = {},
|
|
11
11
|
) {
|
|
12
|
-
const executable = resolveBinaryPath({ os, cpu, resolve })
|
|
13
|
-
const result = spawn(executable, args, { stdio:
|
|
12
|
+
const executable = resolveBinaryPath({ os, cpu, resolve })
|
|
13
|
+
const result = spawn(executable, args, { stdio: 'inherit' })
|
|
14
14
|
|
|
15
15
|
if (result.error) {
|
|
16
16
|
throw new Error(`Failed to start the xdoc binary: ${result.error.message}`, {
|
|
17
17
|
cause: result.error,
|
|
18
|
-
})
|
|
18
|
+
})
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
if (typeof result.status ===
|
|
22
|
-
return { exitCode: result.status, signal: null }
|
|
21
|
+
if (typeof result.status === 'number') {
|
|
22
|
+
return { exitCode: result.status, signal: null }
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if (result.signal) {
|
|
26
|
-
const signalNumber = constants.signals[result.signal]
|
|
26
|
+
const signalNumber = constants.signals[result.signal]
|
|
27
27
|
return {
|
|
28
|
-
exitCode: typeof signalNumber ===
|
|
28
|
+
exitCode: typeof signalNumber === 'number' ? 128 + signalNumber : 1,
|
|
29
29
|
signal: result.signal,
|
|
30
|
-
}
|
|
30
|
+
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
return { exitCode: 1, signal: null }
|
|
33
|
+
return { exitCode: 1, signal: null }
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
function main() {
|
|
37
37
|
try {
|
|
38
|
-
const result = execute()
|
|
38
|
+
const result = execute()
|
|
39
39
|
|
|
40
|
-
if (result.signal && process.platform !==
|
|
40
|
+
if (result.signal && process.platform !== 'win32') {
|
|
41
41
|
try {
|
|
42
|
-
process.kill(process.pid, result.signal)
|
|
42
|
+
process.kill(process.pid, result.signal)
|
|
43
43
|
} catch (cause) {
|
|
44
|
-
const message = cause instanceof Error ? cause.message : String(cause)
|
|
45
|
-
console.error(`xdoc launcher warning: failed to propagate ${result.signal}: ${message}`)
|
|
44
|
+
const message = cause instanceof Error ? cause.message : String(cause)
|
|
45
|
+
console.error(`xdoc launcher warning: failed to propagate ${result.signal}: ${message}`)
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
process.exitCode = result.exitCode
|
|
49
|
+
process.exitCode = result.exitCode
|
|
50
50
|
} catch (error) {
|
|
51
|
-
const message = error instanceof Error ? error.message : String(error)
|
|
52
|
-
console.error(`xdoc launcher error: ${message}`)
|
|
53
|
-
process.exitCode = 1
|
|
51
|
+
const message = error instanceof Error ? error.message : String(error)
|
|
52
|
+
console.error(`xdoc launcher error: ${message}`)
|
|
53
|
+
process.exitCode = 1
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
if (require.main === module) {
|
|
58
|
-
main()
|
|
58
|
+
main()
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
module.exports = { execute, main }
|
|
61
|
+
module.exports = { execute, main }
|
package/lib/platform.cjs
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict'
|
|
2
2
|
|
|
3
|
-
const { release: systemRelease } = require(
|
|
4
|
-
const platformsDocument = require(
|
|
3
|
+
const { release: systemRelease } = require('node:os')
|
|
4
|
+
const platformsDocument = require('../platforms.json')
|
|
5
5
|
|
|
6
6
|
const platforms = Object.freeze(
|
|
7
7
|
platformsDocument.platforms.map((platform) => Object.freeze({ ...platform })),
|
|
8
|
-
)
|
|
8
|
+
)
|
|
9
9
|
|
|
10
10
|
function platformId(os = process.platform, cpu = process.arch) {
|
|
11
|
-
const osName = os ===
|
|
12
|
-
return `${osName}-${cpu}
|
|
11
|
+
const osName = os === 'darwin' ? 'macos' : os === 'win32' ? 'windows' : os
|
|
12
|
+
return `${osName}-${cpu}`
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
function supportedPlatformIds() {
|
|
16
|
-
return platforms.map((platform) => platform.id)
|
|
16
|
+
return platforms.map((platform) => platform.id)
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
function getPlatform(os = process.platform, cpu = process.arch) {
|
|
20
|
-
const id = platformId(os, cpu)
|
|
21
|
-
const platform = platforms.find((candidate) => candidate.id === id)
|
|
20
|
+
const id = platformId(os, cpu)
|
|
21
|
+
const platform = platforms.find((candidate) => candidate.id === id)
|
|
22
22
|
|
|
23
23
|
if (!platform) {
|
|
24
24
|
throw new Error(
|
|
25
|
-
`@s8fy/xdoc does not support ${os}/${cpu} (${id}). Supported platforms: ${supportedPlatformIds().join(
|
|
26
|
-
)
|
|
25
|
+
`@s8fy/xdoc does not support ${os}/${cpu} (${id}). Supported platforms: ${supportedPlatformIds().join(', ')}.`,
|
|
26
|
+
)
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
return platform
|
|
29
|
+
return platform
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
function assertRuntimeSupport({
|
|
@@ -34,21 +34,21 @@ function assertRuntimeSupport({
|
|
|
34
34
|
cpu = process.arch,
|
|
35
35
|
kernelRelease = systemRelease(),
|
|
36
36
|
} = {}) {
|
|
37
|
-
const platform = getPlatform(os, cpu)
|
|
37
|
+
const platform = getPlatform(os, cpu)
|
|
38
38
|
if (platform.minimumKernelMajor !== undefined) {
|
|
39
|
-
const kernelMajor = Number.parseInt(kernelRelease, 10)
|
|
39
|
+
const kernelMajor = Number.parseInt(kernelRelease, 10)
|
|
40
40
|
if (!Number.isInteger(kernelMajor)) {
|
|
41
41
|
throw new Error(
|
|
42
42
|
`Unable to determine whether ${os}/${cpu} meets the minimum operating system version.`,
|
|
43
|
-
)
|
|
43
|
+
)
|
|
44
44
|
}
|
|
45
45
|
if (kernelMajor < platform.minimumKernelMajor) {
|
|
46
46
|
throw new Error(
|
|
47
47
|
`@s8fy/xdoc ${platform.id} requires macOS ${platform.minimumOsVersion} or newer.`,
|
|
48
|
-
)
|
|
48
|
+
)
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
return platform
|
|
51
|
+
return platform
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function resolveBinaryPath({
|
|
@@ -57,16 +57,16 @@ function resolveBinaryPath({
|
|
|
57
57
|
resolve = require.resolve,
|
|
58
58
|
kernelRelease = systemRelease(),
|
|
59
59
|
} = {}) {
|
|
60
|
-
const platform = assertRuntimeSupport({ os, cpu, kernelRelease })
|
|
61
|
-
const request = `${platform.packageName}/bin/${platform.binaryName}
|
|
60
|
+
const platform = assertRuntimeSupport({ os, cpu, kernelRelease })
|
|
61
|
+
const request = `${platform.packageName}/bin/${platform.binaryName}`
|
|
62
62
|
|
|
63
63
|
try {
|
|
64
|
-
return resolve(request)
|
|
64
|
+
return resolve(request)
|
|
65
65
|
} catch (cause) {
|
|
66
66
|
throw new Error(
|
|
67
67
|
`The xdoc binary package "${platform.packageName}" is missing. Reinstall @s8fy/xdoc with optional dependencies enabled and without --omit=optional.`,
|
|
68
68
|
{ cause },
|
|
69
|
-
)
|
|
69
|
+
)
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -77,4 +77,4 @@ module.exports = {
|
|
|
77
77
|
platforms,
|
|
78
78
|
resolveBinaryPath,
|
|
79
79
|
supportedPlatformIds,
|
|
80
|
-
}
|
|
80
|
+
}
|
package/lib/version.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict'
|
|
2
2
|
|
|
3
3
|
function containsExactVersion(output, expectedVersion) {
|
|
4
|
-
const escaped = expectedVersion.replace(/[.*+?^${}()|[\]\\]/g,
|
|
5
|
-
return new RegExp(`(^|\\s)v?${escaped}(?=\\s|$)`).test(output)
|
|
4
|
+
const escaped = expectedVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
|
5
|
+
return new RegExp(`(^|\\s)v?${escaped}(?=\\s|$)`).test(output)
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
module.exports = { containsExactVersion }
|
|
8
|
+
module.exports = { containsExactVersion }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@s8fy/xdoc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "The xdoc CLI packaged for installation through npm.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -37,17 +37,17 @@
|
|
|
37
37
|
"test": "node --test tests/*.test.cjs"
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
-
"@s8fy/xdoc-linux-arm64": "0.
|
|
41
|
-
"@s8fy/xdoc-linux-x64": "0.
|
|
42
|
-
"@s8fy/xdoc-macos-arm64": "0.
|
|
43
|
-
"@s8fy/xdoc-windows-x64": "0.
|
|
40
|
+
"@s8fy/xdoc-linux-arm64": "0.6.0",
|
|
41
|
+
"@s8fy/xdoc-linux-x64": "0.6.0",
|
|
42
|
+
"@s8fy/xdoc-macos-arm64": "0.6.0",
|
|
43
|
+
"@s8fy/xdoc-windows-x64": "0.6.0"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=22.0.0"
|
|
47
47
|
},
|
|
48
48
|
"preferUnplugged": true,
|
|
49
49
|
"xdoc": {
|
|
50
|
-
"releaseTag": "v0.
|
|
50
|
+
"releaseTag": "v0.6.0",
|
|
51
51
|
"sourceRepository": "hustcer/pptx"
|
|
52
52
|
}
|
|
53
53
|
}
|