@ozyman42/ozy-cli 0.4.8-linux-x64.0 → 0.4.8
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/bin/ozy +191 -0
- package/bin/ozy-signing-agent +191 -0
- package/bin/ozy-ssh-keygen +191 -0
- package/bin/ozy-virtual-security-key +191 -0
- package/dist/commands/git/hosts.js +18 -0
- package/dist/commands/git/hosts.js.map +1 -0
- package/dist/commands/git/index.js +8 -0
- package/dist/commands/git/index.js.map +1 -0
- package/dist/commands/git/setup.js +145 -0
- package/dist/commands/git/setup.js.map +1 -0
- package/dist/commands/index.js +13 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/npm/index.js +7 -0
- package/dist/commands/npm/index.js.map +1 -0
- package/dist/commands/npm/setup/git-remote.js +66 -0
- package/dist/commands/npm/setup/git-remote.js.map +1 -0
- package/dist/commands/npm/setup/index.js +168 -0
- package/dist/commands/npm/setup/index.js.map +1 -0
- package/dist/commands/npm/setup/npm-auth.js +62 -0
- package/dist/commands/npm/setup/npm-auth.js.map +1 -0
- package/dist/commands/npm/setup/package-json-validate.js +47 -0
- package/dist/commands/npm/setup/package-json-validate.js.map +1 -0
- package/dist/commands/npm/setup/package-registry.js +20 -0
- package/dist/commands/npm/setup/package-registry.js.map +1 -0
- package/dist/commands/npm/setup/setup.test.js +95 -0
- package/dist/commands/npm/setup/setup.test.js.map +1 -0
- package/dist/commands/npm/setup/trusted-publishing.js +84 -0
- package/dist/commands/npm/setup/trusted-publishing.js.map +1 -0
- package/dist/commands/npm/setup/workflow.js +19 -0
- package/dist/commands/npm/setup/workflow.js.map +1 -0
- package/dist/commands/ssh/get-sk-credential.js +104 -0
- package/dist/commands/ssh/get-sk-credential.js.map +1 -0
- package/dist/commands/ssh/index.js +7 -0
- package/dist/commands/ssh/index.js.map +1 -0
- package/dist/commands/upgrade.js +199 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/common/command.js +15 -0
- package/dist/common/command.js.map +1 -0
- package/dist/common/constants.js +25 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/effective-modules-extensions.js +13 -0
- package/dist/common/effective-modules-extensions.js.map +1 -0
- package/dist/common/log.js +4 -0
- package/dist/common/log.js.map +1 -0
- package/dist/common/render-caller-tree.js +20 -0
- package/dist/common/render-caller-tree.js.map +1 -0
- package/dist/entrypoints/ozy-signing-agent.js +48 -0
- package/dist/entrypoints/ozy-signing-agent.js.map +1 -0
- package/dist/entrypoints/ozy-ssh-keygen.js +9 -0
- package/dist/entrypoints/ozy-ssh-keygen.js.map +1 -0
- package/dist/entrypoints/ozy-virtual-security-key.js +18 -0
- package/dist/entrypoints/ozy-virtual-security-key.js.map +1 -0
- package/dist/entrypoints/ozy.js +3 -0
- package/dist/entrypoints/ozy.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/thing.js +4 -0
- package/dist/internal/thing.js.map +1 -0
- package/dist/modules/cli/agent-client/impl.js +109 -0
- package/dist/modules/cli/agent-client/impl.js.map +1 -0
- package/dist/modules/cli/agent-client/interface.js +11 -0
- package/dist/modules/cli/agent-client/interface.js.map +1 -0
- package/dist/modules/cli/git/impl.js +124 -0
- package/dist/modules/cli/git/impl.js.map +1 -0
- package/dist/modules/cli/git/interface.js +3 -0
- package/dist/modules/cli/git/interface.js.map +1 -0
- package/dist/modules/cli/git/submodule/fix.js +257 -0
- package/dist/modules/cli/git/submodule/fix.js.map +1 -0
- package/dist/modules/cli/git/submodule/git-state.js +154 -0
- package/dist/modules/cli/git/submodule/git-state.js.map +1 -0
- package/dist/modules/cli/git/submodule/gitmodules.js +113 -0
- package/dist/modules/cli/git/submodule/gitmodules.js.map +1 -0
- package/dist/modules/cli/git/submodule/printer.js +232 -0
- package/dist/modules/cli/git/submodule/printer.js.map +1 -0
- package/dist/modules/cli/git/submodule/resolve-git-dir.js +16 -0
- package/dist/modules/cli/git/submodule/resolve-git-dir.js.map +1 -0
- package/dist/modules/cli/github/impl.js +137 -0
- package/dist/modules/cli/github/impl.js.map +1 -0
- package/dist/modules/cli/github/interface.js +2 -0
- package/dist/modules/cli/github/interface.js.map +1 -0
- package/dist/modules/cli/index.js +9 -0
- package/dist/modules/cli/index.js.map +1 -0
- package/dist/modules/common/crypto/impl.js +133 -0
- package/dist/modules/common/crypto/impl.js.map +1 -0
- package/dist/modules/common/crypto/interface.js +2 -0
- package/dist/modules/common/crypto/interface.js.map +1 -0
- package/dist/modules/common/index.js +10 -0
- package/dist/modules/common/index.js.map +1 -0
- package/dist/modules/common/kep-map-store/impl.js +42 -0
- package/dist/modules/common/kep-map-store/impl.js.map +1 -0
- package/dist/modules/common/kep-map-store/interface.js +2 -0
- package/dist/modules/common/kep-map-store/interface.js.map +1 -0
- package/dist/modules/common/os-platform/caller-info.js +132 -0
- package/dist/modules/common/os-platform/caller-info.js.map +1 -0
- package/dist/modules/common/os-platform/impl.js +95 -0
- package/dist/modules/common/os-platform/impl.js.map +1 -0
- package/dist/modules/common/os-platform/interface.js +2 -0
- package/dist/modules/common/os-platform/interface.js.map +1 -0
- package/dist/modules/common/os-platform/virtual-hid/index.js +12 -0
- package/dist/modules/common/os-platform/virtual-hid/index.js.map +1 -0
- package/dist/modules/common/os-platform/virtual-hid/linux.js +5 -0
- package/dist/modules/common/os-platform/virtual-hid/linux.js.map +1 -0
- package/dist/modules/common/os-platform/virtual-hid/mac.js +119 -0
- package/dist/modules/common/os-platform/virtual-hid/mac.js.map +1 -0
- package/dist/modules/common/os-platform/virtual-hid/windows.js +5 -0
- package/dist/modules/common/os-platform/virtual-hid/windows.js.map +1 -0
- package/dist/modules/common/ssh-config/impl.js +116 -0
- package/dist/modules/common/ssh-config/impl.js.map +1 -0
- package/dist/modules/common/ssh-config/interface.js +10 -0
- package/dist/modules/common/ssh-config/interface.js.map +1 -0
- package/dist/modules/ssh-agent/index.js +8 -0
- package/dist/modules/ssh-agent/index.js.map +1 -0
- package/dist/modules/ssh-agent/session/impl.js +265 -0
- package/dist/modules/ssh-agent/session/impl.js.map +1 -0
- package/dist/modules/ssh-agent/session/interface-rpc.js +20 -0
- package/dist/modules/ssh-agent/session/interface-rpc.js.map +1 -0
- package/dist/modules/ssh-agent/session/interface.js +32 -0
- package/dist/modules/ssh-agent/session/interface.js.map +1 -0
- package/dist/modules/ssh-agent/session/passkey-prf-page.js +204 -0
- package/dist/modules/ssh-agent/session/passkey-prf-page.js.map +1 -0
- package/dist/modules/ssh-agent/session/prf-flow.js +103 -0
- package/dist/modules/ssh-agent/session/prf-flow.js.map +1 -0
- package/dist/modules/ssh-agent/ssh-agent/impl.js +117 -0
- package/dist/modules/ssh-agent/ssh-agent/impl.js.map +1 -0
- package/dist/modules/ssh-agent/ssh-agent/interface.js +2 -0
- package/dist/modules/ssh-agent/ssh-agent/interface.js.map +1 -0
- package/dist/scripts/build.js +410 -0
- package/dist/scripts/build.js.map +1 -0
- package/dist/scripts/check-npm-version.js +8 -0
- package/dist/scripts/check-npm-version.js.map +1 -0
- package/dist/scripts/kill-existing-agent.js +21 -0
- package/dist/scripts/kill-existing-agent.js.map +1 -0
- package/dist/scripts/publish.js +46 -0
- package/dist/scripts/publish.js.map +1 -0
- package/package.json +52 -11
- package/src/commands/git/hosts.ts +20 -0
- package/src/commands/git/index.ts +9 -0
- package/src/commands/git/setup.ts +182 -0
- package/src/commands/index.ts +15 -0
- package/src/commands/npm/index.ts +8 -0
- package/src/commands/npm/setup/git-remote.ts +78 -0
- package/src/commands/npm/setup/index.ts +189 -0
- package/src/commands/npm/setup/npm-auth.ts +58 -0
- package/src/commands/npm/setup/package-json-validate.ts +68 -0
- package/src/commands/npm/setup/package-registry.ts +24 -0
- package/src/commands/npm/setup/publish-workflow.yml +35 -0
- package/src/commands/npm/setup/setup.test.ts +117 -0
- package/src/commands/npm/setup/trusted-publishing.ts +106 -0
- package/src/commands/npm/setup/workflow.ts +20 -0
- package/src/commands/ssh/get-sk-credential.ts +110 -0
- package/src/commands/ssh/index.ts +8 -0
- package/src/commands/upgrade.ts +220 -0
- package/src/common/command.ts +16 -0
- package/src/common/constants.ts +26 -0
- package/src/common/effective-modules-extensions.ts +24 -0
- package/src/common/log.ts +3 -0
- package/src/common/render-caller-tree.ts +22 -0
- package/src/entrypoints/ozy-signing-agent.ts +48 -0
- package/src/entrypoints/ozy-ssh-keygen.ts +10 -0
- package/src/entrypoints/ozy-virtual-security-key.ts +21 -0
- package/src/entrypoints/ozy.ts +2 -0
- package/src/index.ts +1 -0
- package/src/internal/thing.ts +3 -0
- package/src/modules/cli/agent-client/impl.ts +152 -0
- package/src/modules/cli/agent-client/interface.ts +17 -0
- package/src/modules/cli/git/impl.ts +133 -0
- package/src/modules/cli/git/interface.ts +23 -0
- package/src/modules/cli/git/submodule/fix.ts +298 -0
- package/src/modules/cli/git/submodule/git-state.ts +217 -0
- package/src/modules/cli/git/submodule/gitmodules.ts +126 -0
- package/src/modules/cli/git/submodule/printer.ts +256 -0
- package/src/modules/cli/git/submodule/resolve-git-dir.ts +14 -0
- package/src/modules/cli/github/impl.ts +169 -0
- package/src/modules/cli/github/interface.ts +29 -0
- package/src/modules/cli/index.ts +16 -0
- package/src/modules/common/crypto/impl.ts +173 -0
- package/src/modules/common/crypto/interface.ts +20 -0
- package/src/modules/common/index.ts +19 -0
- package/src/modules/common/kep-map-store/impl.ts +47 -0
- package/src/modules/common/kep-map-store/interface.ts +9 -0
- package/src/modules/common/os-platform/caller-info.ts +152 -0
- package/src/modules/common/os-platform/impl.ts +91 -0
- package/src/modules/common/os-platform/interface.ts +16 -0
- package/src/modules/common/os-platform/virtual-hid/index.ts +12 -0
- package/src/modules/common/os-platform/virtual-hid/linux.ts +7 -0
- package/src/modules/common/os-platform/virtual-hid/mac.ts +150 -0
- package/src/modules/common/os-platform/virtual-hid/windows.ts +7 -0
- package/src/modules/common/ssh-config/impl.ts +130 -0
- package/src/modules/common/ssh-config/interface.ts +33 -0
- package/src/modules/ssh-agent/index.ts +13 -0
- package/src/modules/ssh-agent/session/agent-notes.md +210 -0
- package/src/modules/ssh-agent/session/design.md +2 -0
- package/src/modules/ssh-agent/session/html-refactor.md +23 -0
- package/src/modules/ssh-agent/session/impl.ts +328 -0
- package/src/modules/ssh-agent/session/interface-rpc.ts +24 -0
- package/src/modules/ssh-agent/session/interface.ts +62 -0
- package/src/modules/ssh-agent/session/passkey-prf-page.ts +224 -0
- package/src/modules/ssh-agent/session/prf-flow.ts +152 -0
- package/src/modules/ssh-agent/ssh-agent/impl.ts +136 -0
- package/src/modules/ssh-agent/ssh-agent/interface.ts +9 -0
- package/src/scripts/build.ts +504 -0
- package/src/scripts/check-npm-version.ts +7 -0
- package/src/scripts/command-launcher.js.ejs +168 -0
- package/src/scripts/kill-existing-agent.ts +22 -0
- package/src/scripts/publish.ts +47 -0
- package/src/scripts/windows-bin-shims.md +1104 -0
- package/multi-call-binary +0 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import { access, chmod, cp, mkdir, readdir, readFile, rename, rm, writeFile, } from "node:fs/promises";
|
|
2
|
+
import { basename, dirname, relative, resolve } from "node:path";
|
|
3
|
+
import { Schema } from "effect";
|
|
4
|
+
import { applyEdits, modify, parse as parseJsonc, printParseErrorCode, } from "jsonc-parser";
|
|
5
|
+
import ejs from "ejs";
|
|
6
|
+
/**
|
|
7
|
+
* Jive library builder.
|
|
8
|
+
*
|
|
9
|
+
* Source package:
|
|
10
|
+
* src/index.ts Optional package TypeScript ESM entrypoint.
|
|
11
|
+
* src/entrypoints/* Command entrypoints included in the generated multi-call binary.
|
|
12
|
+
* src/agents/* Agent entrypoints, if present, included in the same multi-call binary.
|
|
13
|
+
*
|
|
14
|
+
* Generated base package:
|
|
15
|
+
* package.json Stripped package manifest plus generated command launchers.
|
|
16
|
+
* src/ Source tree for package consumers.
|
|
17
|
+
* dist/ TypeScript-emitted library files, when a source entrypoint exists.
|
|
18
|
+
* bin/<command> Generated JS launcher that self-repairs to the platform multi-call executable.
|
|
19
|
+
*
|
|
20
|
+
* Generated platform packages:
|
|
21
|
+
* package.json Same package name with platform-specific prerelease version and os/cpu.
|
|
22
|
+
* multi-call-binary Native Bun-compiled multi-call executable (`multi-call-binary.exe` on Windows).
|
|
23
|
+
*
|
|
24
|
+
* The dist folder contains only packed .tgz files. The file name is the npm dist-tag to publish:
|
|
25
|
+
* latest.tgz for the base package and one <platform>.tgz per platform package.
|
|
26
|
+
*
|
|
27
|
+
* Files in the following directories will be non importable from dependents
|
|
28
|
+
* src/entrypoints/*
|
|
29
|
+
* src/agents/*
|
|
30
|
+
* src/internal
|
|
31
|
+
* So for example `import * as a from "my-package/internal"` will fail to compile
|
|
32
|
+
*/
|
|
33
|
+
const COMMAND_SOURCE_DIRS = ["src/entrypoints", "src/agents"];
|
|
34
|
+
const PRIVATE_SOURCE_DIRS = [...COMMAND_SOURCE_DIRS, "src/internal"];
|
|
35
|
+
const SOURCE_ENTRYPOINT = "src/index.ts";
|
|
36
|
+
const SOURCE_SUFFIX = ".ts";
|
|
37
|
+
const OUTDIR = "dist";
|
|
38
|
+
const WORKDIR = "build-temp";
|
|
39
|
+
const MULTI_CALL_BINARY = "multi-call-binary";
|
|
40
|
+
const WINDOWS_EXECUTABLE_SUFFIX = ".exe";
|
|
41
|
+
const BIN_DIR = "bin";
|
|
42
|
+
const COMMAND_LAUNCHER_TEMPLATE = "src/scripts/command-launcher.js.ejs";
|
|
43
|
+
const TSCONFIG_INCLUDE = ["src/**/*.ts"];
|
|
44
|
+
const TSCONFIG_EXCLUDE = [OUTDIR, "node_modules"];
|
|
45
|
+
const JSONC_FORMATTING_OPTIONS = {
|
|
46
|
+
insertSpaces: true,
|
|
47
|
+
tabSize: 2,
|
|
48
|
+
eol: "\n",
|
|
49
|
+
insertFinalNewline: true,
|
|
50
|
+
};
|
|
51
|
+
const PLATFORMS = [
|
|
52
|
+
{ id: "darwin-arm64", target: "bun-darwin-arm64", os: "darwin", cpu: "arm64" },
|
|
53
|
+
{ id: "darwin-x64", target: "bun-darwin-x64", os: "darwin", cpu: "x64" },
|
|
54
|
+
{ id: "linux-arm64", target: "bun-linux-arm64", os: "linux", cpu: "arm64" },
|
|
55
|
+
{ id: "linux-x64", target: "bun-linux-x64", os: "linux", cpu: "x64" },
|
|
56
|
+
{ id: "windows-x64", target: "bun-windows-x64", os: "win32", cpu: "x64" },
|
|
57
|
+
];
|
|
58
|
+
const PackageJson = Schema.Struct({
|
|
59
|
+
name: Schema.String,
|
|
60
|
+
version: Schema.String,
|
|
61
|
+
description: Schema.optional(Schema.String),
|
|
62
|
+
type: Schema.optional(Schema.Literal("module")),
|
|
63
|
+
license: Schema.optional(Schema.String),
|
|
64
|
+
author: Schema.optional(Schema.Unknown),
|
|
65
|
+
contributors: Schema.optional(Schema.Unknown),
|
|
66
|
+
keywords: Schema.optional(Schema.Unknown),
|
|
67
|
+
homepage: Schema.optional(Schema.String),
|
|
68
|
+
bugs: Schema.optional(Schema.Unknown),
|
|
69
|
+
funding: Schema.optional(Schema.Unknown),
|
|
70
|
+
repository: Schema.optional(Schema.Unknown),
|
|
71
|
+
publishConfig: Schema.optional(Schema.Unknown),
|
|
72
|
+
dependencies: Schema.optional(Schema.Record(Schema.String, Schema.String)),
|
|
73
|
+
});
|
|
74
|
+
class TscFailed extends Error {
|
|
75
|
+
exitCode;
|
|
76
|
+
constructor(exitCode) {
|
|
77
|
+
super(`tsc failed with exit code ${exitCode}`);
|
|
78
|
+
this.exitCode = exitCode;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const rootDir = process.cwd();
|
|
82
|
+
const outDir = resolve(rootDir, OUTDIR);
|
|
83
|
+
const workDir = resolve(outDir, WORKDIR);
|
|
84
|
+
const multiCallEntrypointPath = resolve(workDir, "multi-call.ts");
|
|
85
|
+
const packageJson = await readPackageJson();
|
|
86
|
+
const commandSources = await collectCommandSources();
|
|
87
|
+
const sourceEntrypoint = resolve(rootDir, SOURCE_ENTRYPOINT);
|
|
88
|
+
const hasSourceEntrypoint = await pathExists(sourceEntrypoint);
|
|
89
|
+
const hasCommandSources = commandSources.length > 0;
|
|
90
|
+
await rm(outDir, { recursive: true, force: true });
|
|
91
|
+
await mkdir(outDir, { recursive: true });
|
|
92
|
+
await mkdir(workDir, { recursive: true });
|
|
93
|
+
try {
|
|
94
|
+
if (hasCommandSources) {
|
|
95
|
+
await writeFile(multiCallEntrypointPath, generateMultiCallEntrypoint(multiCallEntrypointPath));
|
|
96
|
+
}
|
|
97
|
+
await buildBasePackage();
|
|
98
|
+
if (hasCommandSources) {
|
|
99
|
+
await Promise.all(PLATFORMS.map(buildPlatformPackage));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof TscFailed) {
|
|
104
|
+
process.exitCode = error.exitCode;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
await rm(workDir, { recursive: true, force: true });
|
|
112
|
+
}
|
|
113
|
+
async function readPackageJson() {
|
|
114
|
+
const parsed = JSON.parse(await readFile(resolve(rootDir, "package.json"), "utf-8"));
|
|
115
|
+
return Schema.decodeUnknownSync(PackageJson)(parsed);
|
|
116
|
+
}
|
|
117
|
+
async function collectCommandSources() {
|
|
118
|
+
const commands = new Map();
|
|
119
|
+
for (const sourceDir of COMMAND_SOURCE_DIRS) {
|
|
120
|
+
const absoluteSourceDir = resolve(rootDir, sourceDir);
|
|
121
|
+
if (!(await pathExists(absoluteSourceDir)))
|
|
122
|
+
continue;
|
|
123
|
+
for (const child of (await readdir(absoluteSourceDir)).sort()) {
|
|
124
|
+
if (!child.endsWith(SOURCE_SUFFIX))
|
|
125
|
+
continue;
|
|
126
|
+
const command = basename(child, SOURCE_SUFFIX);
|
|
127
|
+
const sourcePath = resolve(absoluteSourceDir, child);
|
|
128
|
+
const existing = commands.get(command);
|
|
129
|
+
if (existing) {
|
|
130
|
+
throw new Error(`Duplicate command "${command}" in ${existing.sourcePath} and ${sourcePath}`);
|
|
131
|
+
}
|
|
132
|
+
commands.set(command, { command, sourcePath });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return [...commands.values()].sort((a, b) => a.command.localeCompare(b.command));
|
|
136
|
+
}
|
|
137
|
+
async function buildBasePackage() {
|
|
138
|
+
const packageDir = resolve(workDir, "base-package");
|
|
139
|
+
await mkdir(packageDir, { recursive: true });
|
|
140
|
+
if (hasSourceEntrypoint) {
|
|
141
|
+
await transpileLibrarySource(packageDir);
|
|
142
|
+
}
|
|
143
|
+
await cp(resolve(rootDir, "src"), resolve(packageDir, "src"), { recursive: true });
|
|
144
|
+
if (hasCommandSources) {
|
|
145
|
+
await writeCommandLaunchers(packageDir);
|
|
146
|
+
}
|
|
147
|
+
await writePackageJson(packageDir, generateBasePackageJson());
|
|
148
|
+
await packPackage(packageDir, "latest");
|
|
149
|
+
}
|
|
150
|
+
async function buildPlatformPackage(platform) {
|
|
151
|
+
const packageDir = resolve(workDir, platform.id);
|
|
152
|
+
await mkdir(packageDir, { recursive: true });
|
|
153
|
+
const binaryPath = resolve(packageDir, platformBinaryFile(platform));
|
|
154
|
+
const buildResult = await Bun.build({
|
|
155
|
+
entrypoints: [multiCallEntrypointPath],
|
|
156
|
+
compile: {
|
|
157
|
+
outfile: binaryPath,
|
|
158
|
+
target: platform.target,
|
|
159
|
+
},
|
|
160
|
+
sourcemap: "inline",
|
|
161
|
+
});
|
|
162
|
+
assertBuildSucceeded(buildResult, `compile ${platform.id} multi-call binary`);
|
|
163
|
+
await chmod(binaryPath, 0o755);
|
|
164
|
+
await writePackageJson(packageDir, generatePlatformPackageJson(platform));
|
|
165
|
+
await packPackage(packageDir, platform.id);
|
|
166
|
+
}
|
|
167
|
+
async function writeCommandLaunchers(packageDir) {
|
|
168
|
+
const binDir = resolve(packageDir, BIN_DIR);
|
|
169
|
+
await mkdir(binDir, { recursive: true });
|
|
170
|
+
const launcher = await renderCommandLauncher();
|
|
171
|
+
await Promise.all(commandSources.map(({ command }) => writeFile(resolve(binDir, command), launcher, { mode: 0o755 })));
|
|
172
|
+
}
|
|
173
|
+
function assertBuildSucceeded(result, label) {
|
|
174
|
+
if (result.success)
|
|
175
|
+
return;
|
|
176
|
+
for (const log of result.logs) {
|
|
177
|
+
console.error(log);
|
|
178
|
+
}
|
|
179
|
+
throw new Error(`Failed to ${label}`);
|
|
180
|
+
}
|
|
181
|
+
async function writePackageJson(packageDir, value) {
|
|
182
|
+
await writeFile(resolve(packageDir, "package.json"), `${JSON.stringify(value, null, 2)}\n`);
|
|
183
|
+
}
|
|
184
|
+
async function transpileLibrarySource(packageDir) {
|
|
185
|
+
const rootTsconfigPath = resolve(rootDir, "tsconfig.json");
|
|
186
|
+
await ensureTsconfigSourceBoundary(rootTsconfigPath);
|
|
187
|
+
const tscPath = resolve(rootDir, "node_modules", ".bin", process.platform === "win32" ? "tsc.cmd" : "tsc");
|
|
188
|
+
// TODO: tool should just come bundled with typescript.
|
|
189
|
+
if (!(await pathExists(tscPath))) {
|
|
190
|
+
throw new Error("TypeScript is required to emit library source. Install typescript as a devDependency.");
|
|
191
|
+
}
|
|
192
|
+
const exitCode = await Bun.spawn([
|
|
193
|
+
tscPath,
|
|
194
|
+
"--project",
|
|
195
|
+
rootTsconfigPath,
|
|
196
|
+
"--rootDir",
|
|
197
|
+
resolve(rootDir, "src"),
|
|
198
|
+
"--outDir",
|
|
199
|
+
resolve(packageDir, "dist"),
|
|
200
|
+
"--pretty",
|
|
201
|
+
"true",
|
|
202
|
+
"--noEmit",
|
|
203
|
+
"false",
|
|
204
|
+
"--declaration",
|
|
205
|
+
"false",
|
|
206
|
+
"--declarationMap",
|
|
207
|
+
"false",
|
|
208
|
+
"--sourceMap",
|
|
209
|
+
"--rewriteRelativeImportExtensions",
|
|
210
|
+
], {
|
|
211
|
+
stdin: "inherit",
|
|
212
|
+
stdout: "inherit",
|
|
213
|
+
stderr: "inherit",
|
|
214
|
+
}).exited;
|
|
215
|
+
if (exitCode !== 0) {
|
|
216
|
+
throw new TscFailed(exitCode);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async function ensureTsconfigSourceBoundary(tsconfigPath) {
|
|
220
|
+
const originalText = await readFile(tsconfigPath, "utf-8");
|
|
221
|
+
assertValidJsonc(tsconfigPath, originalText);
|
|
222
|
+
const withInclude = applyEdits(originalText, modify(originalText, ["include"], TSCONFIG_INCLUDE, {
|
|
223
|
+
formattingOptions: JSONC_FORMATTING_OPTIONS,
|
|
224
|
+
getInsertionIndex: (properties) => insertAfter(properties, "compilerOptions"),
|
|
225
|
+
}));
|
|
226
|
+
const withExclude = applyEdits(withInclude, modify(withInclude, ["exclude"], TSCONFIG_EXCLUDE, {
|
|
227
|
+
formattingOptions: JSONC_FORMATTING_OPTIONS,
|
|
228
|
+
getInsertionIndex: (properties) => insertAfter(properties, "include"),
|
|
229
|
+
}));
|
|
230
|
+
assertValidJsonc(tsconfigPath, withExclude);
|
|
231
|
+
if (withExclude !== originalText) {
|
|
232
|
+
await writeFile(tsconfigPath, withExclude);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function assertValidJsonc(filePath, text) {
|
|
236
|
+
const errors = [];
|
|
237
|
+
parseJsonc(text, errors, { allowTrailingComma: true });
|
|
238
|
+
if (errors.length === 0)
|
|
239
|
+
return;
|
|
240
|
+
const details = errors
|
|
241
|
+
.map((error) => `${printParseErrorCode(error.error)} at offset ${error.offset}`)
|
|
242
|
+
.join(", ");
|
|
243
|
+
throw new Error(`${filePath} is invalid JSONC: ${details}`);
|
|
244
|
+
}
|
|
245
|
+
function insertAfter(properties, property) {
|
|
246
|
+
const index = properties.indexOf(property);
|
|
247
|
+
return index === -1 ? properties.length : index + 1;
|
|
248
|
+
}
|
|
249
|
+
function generateBasePackageJson() {
|
|
250
|
+
const generated = {};
|
|
251
|
+
for (const key of [
|
|
252
|
+
"name",
|
|
253
|
+
"version",
|
|
254
|
+
"description",
|
|
255
|
+
"type",
|
|
256
|
+
"license",
|
|
257
|
+
"author",
|
|
258
|
+
"contributors",
|
|
259
|
+
"keywords",
|
|
260
|
+
"homepage",
|
|
261
|
+
"bugs",
|
|
262
|
+
"funding",
|
|
263
|
+
"repository",
|
|
264
|
+
"publishConfig",
|
|
265
|
+
]) {
|
|
266
|
+
const value = packageJson[key];
|
|
267
|
+
if (value !== undefined)
|
|
268
|
+
generated[key] = value;
|
|
269
|
+
}
|
|
270
|
+
generated["type"] = packageJson["type"] ?? "module";
|
|
271
|
+
if (hasSourceEntrypoint) {
|
|
272
|
+
generated["main"] = "./dist/index.js";
|
|
273
|
+
generated["module"] = "./dist/index.js";
|
|
274
|
+
generated["types"] = "./src/index.ts";
|
|
275
|
+
generated["exports"] = {
|
|
276
|
+
".": {
|
|
277
|
+
types: "./src/index.ts",
|
|
278
|
+
import: "./dist/index.js",
|
|
279
|
+
},
|
|
280
|
+
...Object.fromEntries(PRIVATE_SOURCE_DIRS.flatMap((sourceDir) => {
|
|
281
|
+
const subpath = sourceDir.replace(/^src\//, "");
|
|
282
|
+
return [
|
|
283
|
+
[`./${subpath}`, null],
|
|
284
|
+
[`./${subpath}/*`, null],
|
|
285
|
+
];
|
|
286
|
+
})),
|
|
287
|
+
"./*": {
|
|
288
|
+
types: "./src/*.ts",
|
|
289
|
+
import: "./dist/*.js",
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
const files = hasSourceEntrypoint ? ["dist", "src"] : [];
|
|
294
|
+
if (hasCommandSources)
|
|
295
|
+
files.push(BIN_DIR);
|
|
296
|
+
if (files.length > 0)
|
|
297
|
+
generated["files"] = files;
|
|
298
|
+
if (hasCommandSources) {
|
|
299
|
+
generated["bin"] = generateBaseBinEntries();
|
|
300
|
+
}
|
|
301
|
+
if (packageJson["dependencies"])
|
|
302
|
+
generated["dependencies"] = packageJson["dependencies"];
|
|
303
|
+
if (hasCommandSources) {
|
|
304
|
+
generated["optionalDependencies"] = Object.fromEntries(PLATFORMS.map((platform) => [
|
|
305
|
+
platformAliasName(platform),
|
|
306
|
+
`npm:${packageJson.name}@${platformVersion(platform)}`,
|
|
307
|
+
]));
|
|
308
|
+
}
|
|
309
|
+
return generated;
|
|
310
|
+
}
|
|
311
|
+
function generatePlatformPackageJson(platform) {
|
|
312
|
+
const generated = {
|
|
313
|
+
name: packageJson.name,
|
|
314
|
+
version: platformVersion(platform),
|
|
315
|
+
type: packageJson.type ?? "module",
|
|
316
|
+
os: [platform.os],
|
|
317
|
+
cpu: [platform.cpu],
|
|
318
|
+
files: [platformBinaryFile(platform)],
|
|
319
|
+
};
|
|
320
|
+
for (const key of ["description", "license", "repository", "publishConfig"]) {
|
|
321
|
+
const value = packageJson[key];
|
|
322
|
+
if (value !== undefined)
|
|
323
|
+
generated[key] = value;
|
|
324
|
+
}
|
|
325
|
+
return generated;
|
|
326
|
+
}
|
|
327
|
+
function platformVersion(platform) {
|
|
328
|
+
return `${packageJson.version}-${platform.id}.0`;
|
|
329
|
+
}
|
|
330
|
+
function platformAliasName(platform) {
|
|
331
|
+
return `${packageJson.name}-${platform.id}`;
|
|
332
|
+
}
|
|
333
|
+
function platformBinaryFile(platform) {
|
|
334
|
+
return platform.os === "win32" ? `${MULTI_CALL_BINARY}${WINDOWS_EXECUTABLE_SUFFIX}` : MULTI_CALL_BINARY;
|
|
335
|
+
}
|
|
336
|
+
function generateBaseBinEntries() {
|
|
337
|
+
return Object.fromEntries(commandSources.map(({ command }) => [command, `./${BIN_DIR}/${command}`]));
|
|
338
|
+
}
|
|
339
|
+
async function packPackage(packageDir, tag) {
|
|
340
|
+
const npmCacheDir = resolve(workDir, "npm-cache");
|
|
341
|
+
const output = await Bun.$ `npm pack ${packageDir} --pack-destination ${outDir} --ignore-scripts --cache ${npmCacheDir} --loglevel error`.text();
|
|
342
|
+
const generatedFile = output.trim().split("\n").at(-1);
|
|
343
|
+
if (!generatedFile)
|
|
344
|
+
throw new Error(`npm pack did not report an output file for ${packageDir}`);
|
|
345
|
+
const sourcePath = resolve(outDir, generatedFile);
|
|
346
|
+
const taggedPath = resolve(outDir, `${tag}.tgz`);
|
|
347
|
+
await rm(taggedPath, { force: true });
|
|
348
|
+
await rename(sourcePath, taggedPath);
|
|
349
|
+
console.log(`${packageDir} -> ${relative(rootDir, taggedPath)}`);
|
|
350
|
+
}
|
|
351
|
+
function generateMultiCallEntrypoint(dispatcherPath) {
|
|
352
|
+
const dispatcherDir = dirname(dispatcherPath);
|
|
353
|
+
const loaders = commandSources
|
|
354
|
+
.map(({ command, sourcePath }) => {
|
|
355
|
+
const importPath = toImportPath(relative(dispatcherDir, sourcePath));
|
|
356
|
+
return ` ${JSON.stringify(command)}: () => import(${JSON.stringify(importPath)}),`;
|
|
357
|
+
})
|
|
358
|
+
.join("\n");
|
|
359
|
+
return `import { basename } from "node:path";
|
|
360
|
+
// console.log("multi-call argv", JSON.stringify({ argv0: process.argv0, argv: process.argv }));
|
|
361
|
+
const commandLoaders: Record<string, () => Promise<unknown>> = {
|
|
362
|
+
${loaders}
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
const invokedPath = process.argv0 || process.argv[1] || "";
|
|
366
|
+
const command = basename(invokedPath).replace(/\\.(?:exe|cmd|ps1)$/i, "");
|
|
367
|
+
const loadCommand = commandLoaders[command];
|
|
368
|
+
|
|
369
|
+
if (!loadCommand) {
|
|
370
|
+
console.error(\`Unknown ${packageJson.name} command "\${command}". Expected one of: \${Object.keys(commandLoaders).sort().join(", ")}\`);
|
|
371
|
+
process.exit(1);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
await loadCommand();
|
|
375
|
+
`;
|
|
376
|
+
}
|
|
377
|
+
async function renderCommandLauncher() {
|
|
378
|
+
const platformMap = Object.fromEntries(PLATFORMS.map((platform) => [`${platform.os}-${platform.cpu}`, platform.id]));
|
|
379
|
+
const platformPackages = Object.fromEntries(PLATFORMS.map((platform) => [platform.id, platformAliasName(platform)]));
|
|
380
|
+
const platformBinaries = Object.fromEntries(PLATFORMS.map((platform) => [platform.id, platformBinaryFile(platform)]));
|
|
381
|
+
const commandNames = commandSources.map(({ command }) => command);
|
|
382
|
+
const template = await readFile(resolve(rootDir, COMMAND_LAUNCHER_TEMPLATE), "utf-8");
|
|
383
|
+
return ejs.render(template, {
|
|
384
|
+
commandNames,
|
|
385
|
+
json: (value) => JSON.stringify(value, null, 2),
|
|
386
|
+
platformBinaries,
|
|
387
|
+
platformMap,
|
|
388
|
+
platformPackages,
|
|
389
|
+
windowsExecutableSuffix: WINDOWS_EXECUTABLE_SUFFIX,
|
|
390
|
+
}, { async: false });
|
|
391
|
+
}
|
|
392
|
+
function toImportPath(path) {
|
|
393
|
+
const normalized = toPosixPath(path);
|
|
394
|
+
if (normalized.startsWith(".") || normalized.startsWith("/"))
|
|
395
|
+
return normalized;
|
|
396
|
+
return `./${normalized}`;
|
|
397
|
+
}
|
|
398
|
+
function toPosixPath(path) {
|
|
399
|
+
return path.split("\\").join("/");
|
|
400
|
+
}
|
|
401
|
+
async function pathExists(path) {
|
|
402
|
+
try {
|
|
403
|
+
await access(path);
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/scripts/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const { name, version } = await Bun.file("package.json").json();
|
|
2
|
+
const res = await fetch(`https://registry.npmjs.org/${name}/${version}`);
|
|
3
|
+
if (res.status === 200) {
|
|
4
|
+
console.error(`✗ ${name}@${version} is already published on npm`);
|
|
5
|
+
process.exit(1);
|
|
6
|
+
}
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=check-npm-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-npm-version.js","sourceRoot":"","sources":["../../../../../src/scripts/check-npm-version.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;AAEhE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,8BAA8B,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;AACzE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,8BAA8B,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
const pidFile = path.resolve(import.meta.dir, "../../dist/ozy-signing-agent.pid");
|
|
4
|
+
function isProcessRunning(pid) {
|
|
5
|
+
try {
|
|
6
|
+
// signal 0 sends nothing; it only checks whether the PID exists
|
|
7
|
+
process.kill(pid, 0);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (existsSync(pidFile)) {
|
|
15
|
+
const pid = parseInt(readFileSync(pidFile, "utf-8"));
|
|
16
|
+
if (isProcessRunning(pid)) {
|
|
17
|
+
console.log(`Killing agent on PID ${pid}`);
|
|
18
|
+
process.kill(pid, "SIGTERM");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=kill-existing-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill-existing-agent.js","sourceRoot":"","sources":["../../../../../src/scripts/kill-existing-agent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;AAElF,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,gEAAgE;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import * as fs from "fs/promises";
|
|
3
|
+
// only publish on workflow dispatch on push to default branch (config can change this later)
|
|
4
|
+
const event = process.argv[2];
|
|
5
|
+
if (event !== "push") {
|
|
6
|
+
console.log("Skipping publish. Only publishing to NPM on push events. Current event is", event);
|
|
7
|
+
process.exit(0);
|
|
8
|
+
}
|
|
9
|
+
const buildFolderName = "dist";
|
|
10
|
+
const expectedFileType = ".tgz";
|
|
11
|
+
const distFolder = path.resolve(__dirname, `../../${buildFolderName}`);
|
|
12
|
+
const children = await fs.readdir(distFolder);
|
|
13
|
+
const badChildren = new Set();
|
|
14
|
+
for (const child of children) {
|
|
15
|
+
if (!child.endsWith(expectedFileType)) {
|
|
16
|
+
badChildren.add(child);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (badChildren.size > 0) {
|
|
20
|
+
console.log(`Only expected ${expectedFileType} files in ${buildFolderName} folder. Instead got following:`);
|
|
21
|
+
for (const child of children) {
|
|
22
|
+
const isBad = badChildren.has(child);
|
|
23
|
+
const prefix = isBad ? "::error::" : "";
|
|
24
|
+
const suffix = isBad ? "" : "";
|
|
25
|
+
console.log(`${prefix}- ${child}${suffix}`);
|
|
26
|
+
}
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
for (const child of children) {
|
|
30
|
+
const fullPath = path.resolve(distFolder, child).toLocaleLowerCase();
|
|
31
|
+
const tarball = `./${buildFolderName}/${child}`;
|
|
32
|
+
const tag = path.basename(fullPath, expectedFileType);
|
|
33
|
+
// 11.5.1 is when OIDC / trusted publishing were added
|
|
34
|
+
const command = ["bunx", "npm@^11.5.1", "publish", tarball, "--tag", tag, "--loglevel", "silly"];
|
|
35
|
+
console.log(command.join(" "));
|
|
36
|
+
const exitCode = await Bun.spawn(command, {
|
|
37
|
+
stdin: "inherit",
|
|
38
|
+
stdout: "inherit",
|
|
39
|
+
stderr: "inherit",
|
|
40
|
+
env: process.env
|
|
41
|
+
}).exited;
|
|
42
|
+
if (exitCode !== 0) {
|
|
43
|
+
process.exit(exitCode);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../../src/scripts/publish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,6FAA6F;AAC7F,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,2EAA2E,EAAE,KAAK,CAAC,CAAC;IAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC;AACvE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AACtC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AACD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,aAAa,eAAe,iCAAiC,CAAC,CAAC;IAC5G,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,KAAK,eAAe,IAAI,KAAK,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACtD,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;QACxC,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC,MAAM,CAAC;IACV,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ozyman42/ozy-cli",
|
|
3
|
-
"version": "0.4.8
|
|
4
|
-
"type": "module",
|
|
5
|
-
"os": [
|
|
6
|
-
"linux"
|
|
7
|
-
],
|
|
8
|
-
"cpu": [
|
|
9
|
-
"x64"
|
|
10
|
-
],
|
|
11
|
-
"files": [
|
|
12
|
-
"multi-call-binary"
|
|
13
|
-
],
|
|
3
|
+
"version": "0.4.8",
|
|
14
4
|
"description": "Tools for setting up new packages, configuring with git & npm",
|
|
5
|
+
"type": "module",
|
|
15
6
|
"license": "MIT",
|
|
16
7
|
"repository": {
|
|
17
8
|
"type": "git",
|
|
@@ -20,5 +11,55 @@
|
|
|
20
11
|
"publishConfig": {
|
|
21
12
|
"access": "public",
|
|
22
13
|
"provenance": true
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"module": "./dist/index.js",
|
|
17
|
+
"types": "./src/index.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./src/index.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./entrypoints": null,
|
|
24
|
+
"./entrypoints/*": null,
|
|
25
|
+
"./agents": null,
|
|
26
|
+
"./agents/*": null,
|
|
27
|
+
"./internal": null,
|
|
28
|
+
"./internal/*": null,
|
|
29
|
+
"./*": {
|
|
30
|
+
"types": "./src/*.ts",
|
|
31
|
+
"import": "./dist/*.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"src",
|
|
37
|
+
"bin"
|
|
38
|
+
],
|
|
39
|
+
"bin": {
|
|
40
|
+
"ozy": "./bin/ozy",
|
|
41
|
+
"ozy-signing-agent": "./bin/ozy-signing-agent",
|
|
42
|
+
"ozy-ssh-keygen": "./bin/ozy-ssh-keygen",
|
|
43
|
+
"ozy-virtual-security-key": "./bin/ozy-virtual-security-key"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@effect/platform-bun": "^4.0.0-beta.70",
|
|
47
|
+
"@ozyman42/interactive-cli-select": "^0.2.0",
|
|
48
|
+
"bip39": "^3.1.0",
|
|
49
|
+
"bs58": "^6.0.0",
|
|
50
|
+
"commander": "^13.1.0",
|
|
51
|
+
"effect": "4.0.0-beta.70",
|
|
52
|
+
"effective-modules": "0.3.1-effect4",
|
|
53
|
+
"expand-tilde": "^2.0.2",
|
|
54
|
+
"friendly-words": "^1.3.1",
|
|
55
|
+
"ssh-config": "^5.0.3",
|
|
56
|
+
"zod": "^3.24.2"
|
|
57
|
+
},
|
|
58
|
+
"optionalDependencies": {
|
|
59
|
+
"@ozyman42/ozy-cli-darwin-arm64": "npm:@ozyman42/ozy-cli@0.4.8-darwin-arm64.0",
|
|
60
|
+
"@ozyman42/ozy-cli-darwin-x64": "npm:@ozyman42/ozy-cli@0.4.8-darwin-x64.0",
|
|
61
|
+
"@ozyman42/ozy-cli-linux-arm64": "npm:@ozyman42/ozy-cli@0.4.8-linux-arm64.0",
|
|
62
|
+
"@ozyman42/ozy-cli-linux-x64": "npm:@ozyman42/ozy-cli@0.4.8-linux-x64.0",
|
|
63
|
+
"@ozyman42/ozy-cli-windows-x64": "npm:@ozyman42/ozy-cli@0.4.8-windows-x64.0"
|
|
23
64
|
}
|
|
24
65
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { makeCommand } from "@/common/command";
|
|
3
|
+
import { log } from "@/common/log";
|
|
4
|
+
import { commonModules } from "@/modules/common";
|
|
5
|
+
import { SSHConfigImpl } from "@/modules/common/ssh-config/impl";
|
|
6
|
+
|
|
7
|
+
export const hosts = makeCommand('hosts', 'show all configured github.com SSH hosts', () =>
|
|
8
|
+
Effect.gen(function* () {
|
|
9
|
+
const sshConfig = yield* commonModules.SSHConfig;
|
|
10
|
+
const config = yield* sshConfig.getSSHConfig();
|
|
11
|
+
const gitHosts: string[] = [];
|
|
12
|
+
for (const host in config) {
|
|
13
|
+
if (config[host]!.HostName === 'github.com') {
|
|
14
|
+
gitHosts.push(host);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
log('Available hosts:');
|
|
18
|
+
gitHosts.forEach(host => { log(` - ${host}`); });
|
|
19
|
+
}).pipe(Effect.provide(SSHConfigImpl.Layer))
|
|
20
|
+
);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { setup } from './setup';
|
|
3
|
+
import { hosts } from './hosts';
|
|
4
|
+
|
|
5
|
+
export const git = new Command('git')
|
|
6
|
+
.summary('setup git in repo for verified commits');
|
|
7
|
+
|
|
8
|
+
[setup, hosts]
|
|
9
|
+
.forEach(cmd => { git.addCommand(cmd) });
|