onboardconnect-agent 1.2.0 → 1.2.1
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/index.js +40 -15
- package/dist/index.js.map +1 -1
- package/dist/uninstall.d.ts.map +1 -1
- package/dist/uninstall.js +82 -36
- package/dist/uninstall.js.map +1 -1
- package/package.json +64 -64
- package/ui/assets/index-BnqKvq_1.js +62 -62
- package/ui/index.html +24 -24
package/dist/index.js
CHANGED
|
@@ -6,7 +6,13 @@ import { OcHeartbeat } from "./heartbeat.js";
|
|
|
6
6
|
import { OcUpdater } from "./updater.js";
|
|
7
7
|
import { OcStore } from "./store.js";
|
|
8
8
|
import { OcServer } from "./server.js";
|
|
9
|
-
|
|
9
|
+
// IMPORTANT: do NOT instantiate OcLogger at module-load. The logger opens a
|
|
10
|
+
// DailyRotateFile transport against C:\ProgramData\OnboardConnect\logs\
|
|
11
|
+
// agent-<DATE>.log, which is locked by the running Windows service. Calling
|
|
12
|
+
// `onboardconnect-agent uninstall` while the service is up would otherwise
|
|
13
|
+
// crash the CLI with an unhandled EPERM before the uninstall branch even
|
|
14
|
+
// runs. Subcommands that don't run the agent service (uninstall/setup/token)
|
|
15
|
+
// must not touch the file logger.
|
|
10
16
|
const subcommand = process.argv[2];
|
|
11
17
|
// ─── Uninstall ────────────────────────────────────────────────────────────────
|
|
12
18
|
if (subcommand === "uninstall") {
|
|
@@ -37,16 +43,35 @@ if (subcommand === "token") {
|
|
|
37
43
|
}
|
|
38
44
|
process.exit(0);
|
|
39
45
|
}
|
|
46
|
+
// Module-level logger handle, initialized lazily in ocMain so subcommand
|
|
47
|
+
// branches above never touch the file transport. The unhandledRejection /
|
|
48
|
+
// uncaughtException / startup-error handlers below resolve this binding at
|
|
49
|
+
// call time, so a null logger before init falls back to console.
|
|
50
|
+
let logger = null;
|
|
51
|
+
function ocLog(level, msg) {
|
|
52
|
+
if (logger)
|
|
53
|
+
logger[level](msg);
|
|
54
|
+
else
|
|
55
|
+
console[level === "error" ? "error" : "log"](`[oc-agent] ${msg}`);
|
|
56
|
+
}
|
|
40
57
|
async function ocMain() {
|
|
41
|
-
|
|
58
|
+
// Constructed here, AFTER the subcommand branches above, so the daily-rotate
|
|
59
|
+
// file transport is only opened when we actually run the agent. The module-
|
|
60
|
+
// level `logger` is published so the top-of-file process.on handlers can
|
|
61
|
+
// pick it up via ocLog; we also capture a local non-null binding so the
|
|
62
|
+
// closures below (heartbeat, relay, shutdown) satisfy TypeScript without a
|
|
63
|
+
// non-null assertion at every call site.
|
|
64
|
+
const log = new OcLogger("main");
|
|
65
|
+
logger = log;
|
|
66
|
+
log.info("OnboardConnect On-Prem Agent starting...");
|
|
42
67
|
// Check for updates on startup
|
|
43
68
|
const updater = new OcUpdater();
|
|
44
69
|
await updater.checkForUpdates();
|
|
45
70
|
const store = new OcStore();
|
|
46
71
|
let credentials = await store.loadCredentials();
|
|
47
72
|
if (credentials) {
|
|
48
|
-
|
|
49
|
-
|
|
73
|
+
log.info(`Agent ID: ${credentials.agentId}`);
|
|
74
|
+
log.info(`Tenant ID: ${credentials.tenantId}`);
|
|
50
75
|
// Backfill connectionId for agents registered before 1.1.32 (which didn't
|
|
51
76
|
// get connectionId from the exchange-token response). Best-effort: failure
|
|
52
77
|
// is logged and tolerated — UI just won't show connectionId until next try.
|
|
@@ -71,21 +96,21 @@ async function ocMain() {
|
|
|
71
96
|
const data = (await res.json());
|
|
72
97
|
if (data.connectionId) {
|
|
73
98
|
await store.saveCredentials({ ...credsForBackfill, connectionId: data.connectionId });
|
|
74
|
-
|
|
99
|
+
log.info(`Connection ID backfilled (applies on next restart): ${data.connectionId}`);
|
|
75
100
|
}
|
|
76
101
|
}
|
|
77
102
|
else {
|
|
78
|
-
|
|
103
|
+
log.warn(`connection-info fetch returned ${res.status}`);
|
|
79
104
|
}
|
|
80
105
|
}
|
|
81
106
|
catch (err) {
|
|
82
|
-
|
|
107
|
+
log.warn(`connection-info fetch failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
83
108
|
}
|
|
84
109
|
})();
|
|
85
110
|
}
|
|
86
111
|
}
|
|
87
112
|
else {
|
|
88
|
-
|
|
113
|
+
log.info("No credentials found — starting in setup mode. Open http://localhost:7432 to configure.");
|
|
89
114
|
}
|
|
90
115
|
// Load or generate the UI token
|
|
91
116
|
let uiToken = await store.loadUiToken();
|
|
@@ -97,7 +122,7 @@ async function ocMain() {
|
|
|
97
122
|
const relay = new OcRelay(credentials);
|
|
98
123
|
const heartbeat = new OcHeartbeat(credentials, (reason) => {
|
|
99
124
|
relay.setBlockedByHeartbeat(reason);
|
|
100
|
-
|
|
125
|
+
log.error(`Agent blocked by relay: ${reason}`);
|
|
101
126
|
}, () => relay.paused);
|
|
102
127
|
// Connect to relay only if credentials are present. NON-BLOCKING and
|
|
103
128
|
// NON-FATAL: a failure here (e.g. corrupt/undecryptable LDAP credentials —
|
|
@@ -108,7 +133,7 @@ async function ocMain() {
|
|
|
108
133
|
if (credentials) {
|
|
109
134
|
relay.connect().catch((err) => {
|
|
110
135
|
const msg = err instanceof Error ? err.message : String(err);
|
|
111
|
-
|
|
136
|
+
log.error(`Relay connection failed at startup: ${msg}. ` +
|
|
112
137
|
`If this is a credential-decryption error, re-run setup to re-enter credentials. ` +
|
|
113
138
|
`The local agent UI remains available at http://localhost:7432.`);
|
|
114
139
|
});
|
|
@@ -136,14 +161,14 @@ async function ocMain() {
|
|
|
136
161
|
console.log("");
|
|
137
162
|
// Graceful shutdown
|
|
138
163
|
const shutdown = async (signal) => {
|
|
139
|
-
|
|
164
|
+
log.info(`Received ${signal}. Shutting down gracefully...`);
|
|
140
165
|
heartbeat.stop();
|
|
141
166
|
await relay.disconnect();
|
|
142
167
|
process.exit(0);
|
|
143
168
|
};
|
|
144
169
|
process.on("SIGTERM", () => shutdown("SIGTERM"));
|
|
145
170
|
process.on("SIGINT", () => shutdown("SIGINT"));
|
|
146
|
-
|
|
171
|
+
log.info("Agent running. Press Ctrl+C to stop.");
|
|
147
172
|
}
|
|
148
173
|
// Keep the service process alive unconditionally. A Windows service must never
|
|
149
174
|
// let its event loop drain and exit cleanly — node-windows treats a code-0 exit
|
|
@@ -158,15 +183,15 @@ setInterval(() => { }, 1 << 30);
|
|
|
158
183
|
// this.connect()` retry path) — which node-windows treats as a crash and, after
|
|
159
184
|
// maxRestarts, stops the service. Log and keep running instead of exiting.
|
|
160
185
|
process.on("unhandledRejection", (reason) => {
|
|
161
|
-
|
|
186
|
+
ocLog("error", `Unhandled rejection (kept alive): ${reason instanceof Error ? reason.stack ?? reason.message : String(reason)}`);
|
|
162
187
|
});
|
|
163
188
|
process.on("uncaughtException", (err) => {
|
|
164
|
-
|
|
189
|
+
ocLog("error", `Uncaught exception (kept alive): ${err.stack ?? err.message}`);
|
|
165
190
|
});
|
|
166
191
|
ocMain().catch((err) => {
|
|
167
192
|
// Log but do NOT exit. The keep-alive timer + handlers above hold the process
|
|
168
193
|
// up so the local UI stays reachable and the relay keeps retrying, rather than
|
|
169
194
|
// crash-looping the Windows service.
|
|
170
|
-
|
|
195
|
+
ocLog("error", `Agent startup error (service stays up): ${err instanceof Error ? err.stack ?? err.message : String(err)}`);
|
|
171
196
|
});
|
|
172
197
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/uninstall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"AAgNA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCjD"}
|
package/dist/uninstall.js
CHANGED
|
@@ -42,9 +42,14 @@ async function ocForceRemoveWithRetry(target, timeoutMs) {
|
|
|
42
42
|
const OC_CONFIG_DIR = process.platform === "win32"
|
|
43
43
|
? join(process.env["PROGRAMDATA"] ?? "C:\\ProgramData", "OnboardConnect")
|
|
44
44
|
: "/etc/onboardconnect";
|
|
45
|
+
// MUST match logger.ts's OC_LOG_DIR — Windows logs land under
|
|
46
|
+
// %PROGRAMDATA%\OnboardConnect\logs, NOT under %USERPROFILE%\.oc-agent. The
|
|
47
|
+
// previous (wrong) path here meant log files were never deleted AND the
|
|
48
|
+
// recursive rmSync of OC_CONFIG_DIR hit ENOTEMPTY when it tripped over the
|
|
49
|
+
// still-locked log file inside it.
|
|
45
50
|
const OC_LOG_DIR = process.platform === "win32"
|
|
46
|
-
? join(process.env["
|
|
47
|
-
: join(process.env["HOME"] ?? "/root", ".oc-agent");
|
|
51
|
+
? join(process.env["PROGRAMDATA"] ?? "C:\\ProgramData", "OnboardConnect", "logs")
|
|
52
|
+
: join(process.env["HOME"] ?? "/root", ".oc-agent", "logs");
|
|
48
53
|
async function ocStopAndRemoveService() {
|
|
49
54
|
const spinner = ora("Removing OnboardConnect Agent service...").start();
|
|
50
55
|
if (process.platform === "win32") {
|
|
@@ -55,14 +60,42 @@ async function ocStopAndRemoveService() {
|
|
|
55
60
|
// Remove any legacy Task Scheduler task from older installs
|
|
56
61
|
spawnSync("schtasks", ["/end", "/tn", name], { stdio: "pipe" });
|
|
57
62
|
spawnSync("schtasks", ["/delete", "/tn", name, "/f"], { stdio: "pipe" });
|
|
58
|
-
// Stop the service and wait until it actually reports STOPPED (or is
|
|
59
|
-
// gone).
|
|
60
|
-
//
|
|
61
|
-
|
|
63
|
+
// Stop the service and wait until it actually reports STOPPED (or is
|
|
64
|
+
// already gone). `sc stop` requires SERVICE_STOP rights, which a
|
|
65
|
+
// non-elevated shell does not have — the call returns "Access denied"
|
|
66
|
+
// and we wait 30s for a transition that will never happen. Detect that
|
|
67
|
+
// up-front and fall back to PowerShell's Stop-Service -Force (still
|
|
68
|
+
// requires admin, but emits a clearer message) and finally taskkill
|
|
69
|
+
// against the winsw wrapper PID for the truly stuck cases.
|
|
70
|
+
const scStop = spawnSync("sc", ["stop", name], { encoding: "utf8" });
|
|
71
|
+
const scStopOutput = `${scStop.stdout ?? ""}${scStop.stderr ?? ""}`;
|
|
72
|
+
const accessDenied = /access is denied|5:/i.test(scStopOutput);
|
|
73
|
+
if (accessDenied) {
|
|
74
|
+
spinner.fail(`Cannot stop service: access denied. Re-run from an ELEVATED prompt ` +
|
|
75
|
+
`(Right-click → "Run as administrator"), then run \`onboardconnect-agent uninstall\` again.`);
|
|
76
|
+
throw new Error("Service stop requires administrator privileges");
|
|
77
|
+
}
|
|
62
78
|
const stopDeadline = Date.now() + 30000;
|
|
63
79
|
while (Date.now() < stopDeadline && ocWinServiceState(name) === "running") {
|
|
64
80
|
await ocSleep(1000);
|
|
65
81
|
}
|
|
82
|
+
// Stuck in STOP_PENDING? Force via PowerShell.
|
|
83
|
+
if (ocWinServiceState(name) === "running") {
|
|
84
|
+
spawnSync("powershell", [
|
|
85
|
+
"-NoProfile",
|
|
86
|
+
"-Command",
|
|
87
|
+
`Stop-Service -Name '${name}' -Force -ErrorAction SilentlyContinue`,
|
|
88
|
+
], { stdio: "pipe" });
|
|
89
|
+
const forceDeadline = Date.now() + 15000;
|
|
90
|
+
while (Date.now() < forceDeadline && ocWinServiceState(name) === "running") {
|
|
91
|
+
await ocSleep(1000);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Last resort: kill the winsw wrapper process that holds the service.
|
|
95
|
+
if (ocWinServiceState(name) === "running") {
|
|
96
|
+
spawnSync("taskkill", ["/F", "/FI", `SERVICES eq ${name}`], { stdio: "pipe" });
|
|
97
|
+
await ocSleep(2000);
|
|
98
|
+
}
|
|
66
99
|
// Deregister via sc.exe. Unlike node-windows' uninstall (which unlinks the
|
|
67
100
|
// daemon .out/.err/.wrapper logs and throws an *uncaught* EBUSY when winsw
|
|
68
101
|
// still holds them), sc delete removes the registration without touching any
|
|
@@ -106,45 +139,58 @@ async function ocStopAndRemoveService() {
|
|
|
106
139
|
}
|
|
107
140
|
}
|
|
108
141
|
async function ocDeleteConfigDir(removeLogs) {
|
|
142
|
+
// ORDER MATTERS: on Windows the log files inside OC_CONFIG_DIR\logs are
|
|
143
|
+
// often still held open for a few seconds after the service stops (the
|
|
144
|
+
// service process releases the handle async, and winston's daily-rotate
|
|
145
|
+
// transport keeps its own file handle). Deleting the parent OC_CONFIG_DIR
|
|
146
|
+
// first hits ENOTEMPTY on the locked logs subdir. We always remove the
|
|
147
|
+
// logs subdir FIRST (with retry, regardless of `removeLogs`) so the parent
|
|
148
|
+
// can succeed; the `removeLogs` flag only controls whether we surface a
|
|
149
|
+
// warning vs an info note when logs can't be removed.
|
|
150
|
+
if (process.platform === "win32" && existsSync(OC_LOG_DIR)) {
|
|
151
|
+
const spinner = ora(`Removing log directory: ${OC_LOG_DIR}`).start();
|
|
152
|
+
// Try PowerShell force-remove first (handles transient locks better than rmSync)
|
|
153
|
+
const { spawnSync } = await import("child_process");
|
|
154
|
+
spawnSync("powershell", [
|
|
155
|
+
"-NoProfile",
|
|
156
|
+
"-Command",
|
|
157
|
+
`Remove-Item -Recurse -Force -Path '${OC_LOG_DIR}' -ErrorAction SilentlyContinue`,
|
|
158
|
+
], { stdio: "pipe" });
|
|
159
|
+
// Fall back to our retry helper for stubborn handles.
|
|
160
|
+
const removed = existsSync(OC_LOG_DIR)
|
|
161
|
+
? await ocForceRemoveWithRetry(OC_LOG_DIR, 20000)
|
|
162
|
+
: true;
|
|
163
|
+
if (removed)
|
|
164
|
+
spinner.succeed("Log directory deleted ✓");
|
|
165
|
+
else if (removeLogs)
|
|
166
|
+
spinner.warn(`Log files still locked — delete manually: ${OC_LOG_DIR}`);
|
|
167
|
+
else
|
|
168
|
+
spinner.info("Log directory present but could not be removed (locked); parent deletion will skip it");
|
|
169
|
+
}
|
|
170
|
+
else if (removeLogs && existsSync(OC_LOG_DIR)) {
|
|
171
|
+
const spinner = ora(`Deleting log directory: ${OC_LOG_DIR}`).start();
|
|
172
|
+
try {
|
|
173
|
+
rmSync(OC_LOG_DIR, { recursive: true, force: true });
|
|
174
|
+
spinner.succeed("Log directory deleted ✓");
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
spinner.warn(`Could not delete logs: ${err instanceof Error ? err.message : String(err)}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
109
180
|
if (existsSync(OC_CONFIG_DIR)) {
|
|
110
181
|
const spinner = ora(`Deleting config directory: ${OC_CONFIG_DIR}`).start();
|
|
111
|
-
|
|
112
|
-
|
|
182
|
+
const removed = await ocForceRemoveWithRetry(OC_CONFIG_DIR, 15000);
|
|
183
|
+
if (removed) {
|
|
113
184
|
spinner.succeed("Config directory deleted ✓");
|
|
114
185
|
}
|
|
115
|
-
|
|
116
|
-
spinner.
|
|
186
|
+
else {
|
|
187
|
+
spinner.warn(`Some files in ${OC_CONFIG_DIR} are still locked (likely the active log file). ` +
|
|
188
|
+
`Reboot to release the handles, then delete the folder manually.`);
|
|
117
189
|
}
|
|
118
190
|
}
|
|
119
191
|
else {
|
|
120
192
|
console.log(chalk.gray(` Config directory not found, skipping: ${OC_CONFIG_DIR}`));
|
|
121
193
|
}
|
|
122
|
-
if (removeLogs && existsSync(OC_LOG_DIR)) {
|
|
123
|
-
const spinner = ora(`Deleting log directory: ${OC_LOG_DIR}`).start();
|
|
124
|
-
try {
|
|
125
|
-
if (process.platform === "win32") {
|
|
126
|
-
// Use PowerShell to force-remove; Node rmSync can fail on locked log files
|
|
127
|
-
const { spawnSync } = await import("child_process");
|
|
128
|
-
spawnSync("powershell", [
|
|
129
|
-
"-Command",
|
|
130
|
-
`Remove-Item -Recurse -Force -Path '${OC_LOG_DIR}' -ErrorAction SilentlyContinue`,
|
|
131
|
-
], { stdio: "pipe" });
|
|
132
|
-
if (!existsSync(OC_LOG_DIR)) {
|
|
133
|
-
spinner.succeed("Log directory deleted ✓");
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
spinner.warn(`Log files still locked — delete manually: ${OC_LOG_DIR}`);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
rmSync(OC_LOG_DIR, { recursive: true, force: true });
|
|
141
|
-
spinner.succeed("Log directory deleted ✓");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
spinner.warn(`Could not delete logs: ${err instanceof Error ? err.message : String(err)}`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
194
|
}
|
|
149
195
|
function ocUninstallPackage() {
|
|
150
196
|
const spinner = ora("Removing npm global package...").start();
|
package/dist/uninstall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC,SAAS,OAAO,CAAC,EAAU;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,8CAA8C;AAC9C,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IACtD,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,iFAAiF;AACjF,kFAAkF;AAClF,+DAA+D;AAC/D,KAAK,UAAU,sBAAsB,CAAC,MAAc,EAAE,SAAiB;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GACjB,OAAO,CAAC,QAAQ,KAAK,OAAO;IAC1B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,iBAAiB,EAAE,gBAAgB,CAAC;IACzE,CAAC,CAAC,qBAAqB,CAAC;AAE5B,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;IAC1B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "onboardconnect-agent",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "OnboardConnect On-Prem Agent — LDAP provisioning bridge for on-premises Active Directory",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"onboardconnect",
|
|
7
|
-
"active-directory",
|
|
8
|
-
"ldap",
|
|
9
|
-
"provisioning",
|
|
10
|
-
"slate-crm"
|
|
11
|
-
],
|
|
12
|
-
"homepage": "https://onboardconnectapp.com/docs/agent",
|
|
13
|
-
"license": "UNLICENSED",
|
|
14
|
-
"type": "module",
|
|
15
|
-
"bin": {
|
|
16
|
-
"oc-agent": "dist/index.js",
|
|
17
|
-
"onboardconnect-agent": "dist/index.js"
|
|
18
|
-
},
|
|
19
|
-
"main": "./dist/index.js",
|
|
20
|
-
"files": [
|
|
21
|
-
"dist",
|
|
22
|
-
"scripts",
|
|
23
|
-
"ui"
|
|
24
|
-
],
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "tsc",
|
|
27
|
-
"dev": "tsx watch src/index.ts",
|
|
28
|
-
"setup": "tsx src/setup.ts",
|
|
29
|
-
"start": "node dist/index.js",
|
|
30
|
-
"typecheck": "tsc --noEmit",
|
|
31
|
-
"test:unit": "vitest run",
|
|
32
|
-
"clean": "rimraf dist *.tsbuildinfo",
|
|
33
|
-
"uninstall": "tsx src/uninstall.ts",
|
|
34
|
-
"postinstall": "node scripts/postinstall.js"
|
|
35
|
-
},
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"node-windows": "^1.0.0-beta.8",
|
|
38
|
-
"ldapts": "^7.2.0",
|
|
39
|
-
"ssh2": "^1.16.0",
|
|
40
|
-
"winston": "^3.17.0",
|
|
41
|
-
"winston-daily-rotate-file": "^5.0.0",
|
|
42
|
-
"lru-cache": "^11.0.0",
|
|
43
|
-
"inquirer": "^12.0.0",
|
|
44
|
-
"chalk": "^5.4.0",
|
|
45
|
-
"ora": "^8.0.0",
|
|
46
|
-
"ws": "^8.18.0",
|
|
47
|
-
"zod": "^3.24.0",
|
|
48
|
-
"semver": "^7.7.0"
|
|
49
|
-
},
|
|
50
|
-
"devDependencies": {
|
|
51
|
-
"@oc/types": "workspace:*",
|
|
52
|
-
"@types/node": "^22.0.0",
|
|
53
|
-
"@types/ssh2": "^1.15.0",
|
|
54
|
-
"@types/ws": "^8.5.0",
|
|
55
|
-
"@types/semver": "^7.5.0",
|
|
56
|
-
"tsx": "^4.19.0",
|
|
57
|
-
"typescript": "^5.7.0",
|
|
58
|
-
"vitest": "^2.0.0",
|
|
59
|
-
"rimraf": "^6.0.0"
|
|
60
|
-
},
|
|
61
|
-
"engines": {
|
|
62
|
-
"node": ">=18"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "onboardconnect-agent",
|
|
3
|
+
"version": "1.2.1",
|
|
4
|
+
"description": "OnboardConnect On-Prem Agent — LDAP provisioning bridge for on-premises Active Directory",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"onboardconnect",
|
|
7
|
+
"active-directory",
|
|
8
|
+
"ldap",
|
|
9
|
+
"provisioning",
|
|
10
|
+
"slate-crm"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://onboardconnectapp.com/docs/agent",
|
|
13
|
+
"license": "UNLICENSED",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"bin": {
|
|
16
|
+
"oc-agent": "dist/index.js",
|
|
17
|
+
"onboardconnect-agent": "dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"scripts",
|
|
23
|
+
"ui"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"dev": "tsx watch src/index.ts",
|
|
28
|
+
"setup": "tsx src/setup.ts",
|
|
29
|
+
"start": "node dist/index.js",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"test:unit": "vitest run",
|
|
32
|
+
"clean": "rimraf dist *.tsbuildinfo",
|
|
33
|
+
"uninstall": "tsx src/uninstall.ts",
|
|
34
|
+
"postinstall": "node scripts/postinstall.js"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"node-windows": "^1.0.0-beta.8",
|
|
38
|
+
"ldapts": "^7.2.0",
|
|
39
|
+
"ssh2": "^1.16.0",
|
|
40
|
+
"winston": "^3.17.0",
|
|
41
|
+
"winston-daily-rotate-file": "^5.0.0",
|
|
42
|
+
"lru-cache": "^11.0.0",
|
|
43
|
+
"inquirer": "^12.0.0",
|
|
44
|
+
"chalk": "^5.4.0",
|
|
45
|
+
"ora": "^8.0.0",
|
|
46
|
+
"ws": "^8.18.0",
|
|
47
|
+
"zod": "^3.24.0",
|
|
48
|
+
"semver": "^7.7.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@oc/types": "workspace:*",
|
|
52
|
+
"@types/node": "^22.0.0",
|
|
53
|
+
"@types/ssh2": "^1.15.0",
|
|
54
|
+
"@types/ws": "^8.5.0",
|
|
55
|
+
"@types/semver": "^7.5.0",
|
|
56
|
+
"tsx": "^4.19.0",
|
|
57
|
+
"typescript": "^5.7.0",
|
|
58
|
+
"vitest": "^2.0.0",
|
|
59
|
+
"rimraf": "^6.0.0"
|
|
60
|
+
},
|
|
61
|
+
"engines": {
|
|
62
|
+
"node": ">=18"
|
|
63
|
+
}
|
|
64
|
+
}
|