@modelprofile.com/authswitch 2.1.2 → 2.1.3
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@modelprofile.com/authswitch',
|
|
6
|
-
version: '2.1.
|
|
6
|
+
version: '2.1.3',
|
|
7
7
|
description: 'Manage Codex, OpenCode and Claude Code accounts with guided switching and live usage status'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDZGQUE2RjtDQUMzRyxDQUFBIn0=
|
|
@@ -156,7 +156,8 @@ export class RemoteControlStore {
|
|
|
156
156
|
* first lock contention.
|
|
157
157
|
*/
|
|
158
158
|
withDatabase(pathArg, readOnlyArg, handlerArg) {
|
|
159
|
-
const
|
|
159
|
+
const { DatabaseSync } = plugins.loadSqlite();
|
|
160
|
+
const database = new DatabaseSync(pathArg, { readOnly: readOnlyArg });
|
|
160
161
|
try {
|
|
161
162
|
database.exec('pragma busy_timeout = 5000');
|
|
162
163
|
return handlerArg(database);
|
|
@@ -166,4 +167,4 @@ export class RemoteControlStore {
|
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
169
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5yZW1vdGVjb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5yZW1vdGVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUVoRCxpRUFBaUU7QUFDakUsTUFBTSxPQUFPLEdBQUc7SUFDZCxlQUFlO0lBQ2YsWUFBWTtJQUNaLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixZQUFZO0lBQ1osd0JBQXdCO0NBQ2hCLENBQUM7QUFFWCx3REFBd0Q7QUFDeEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixDQUFVLENBQUM7QUFFdkY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUNiLFNBQVMsQ0FBWTtJQUVyQyxZQUFZLFlBQXVCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnRkFBZ0Y7SUFDekUsV0FBVztRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyRUFBMkU7WUFDM0UsbUVBQW1FO1lBQ25FLHlFQUF5RTtZ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
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -3,8 +3,11 @@ import * as os from 'node:os';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import * as childProcess from 'node:child_process';
|
|
5
5
|
import * as crypto from 'node:crypto';
|
|
6
|
-
import { DatabaseSync } from 'node:sqlite';
|
|
7
|
-
export { childProcess, crypto, fs, os, path
|
|
6
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
7
|
+
export { childProcess, crypto, fs, os, path };
|
|
8
|
+
export type { DatabaseSync };
|
|
9
|
+
/** SQLite is needed only when accessing a Codex state database, not when hosting account APIs. */
|
|
10
|
+
export declare const loadSqlite: () => typeof import("node:sqlite");
|
|
8
11
|
import * as smartconsole from '@push.rocks/smartconsole';
|
|
9
12
|
export { smartconsole };
|
|
10
13
|
import * as flexModels from '@modelprofile.com/flexharness-models';
|
package/dist_ts/plugins.js
CHANGED
|
@@ -4,8 +4,11 @@ import * as os from 'node:os';
|
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import * as childProcess from 'node:child_process';
|
|
6
6
|
import * as crypto from 'node:crypto';
|
|
7
|
-
import {
|
|
8
|
-
export { childProcess, crypto, fs, os, path
|
|
7
|
+
import { createRequire } from 'node:module';
|
|
8
|
+
export { childProcess, crypto, fs, os, path };
|
|
9
|
+
const nativeRequire = createRequire(import.meta.url);
|
|
10
|
+
/** SQLite is needed only when accessing a Codex state database, not when hosting account APIs. */
|
|
11
|
+
export const loadSqlite = () => nativeRequire('node:sqlite');
|
|
9
12
|
// @push.rocks modules
|
|
10
13
|
import * as smartconsole from '@push.rocks/smartconsole';
|
|
11
14
|
export { smartconsole };
|
|
@@ -15,4 +18,4 @@ import * as flexOpenAi from '@modelprofile.com/flexharness-providers/openai';
|
|
|
15
18
|
import * as flexAuth from '@modelprofile.com/flexharness-providers/auth';
|
|
16
19
|
import * as flexAccounts from '@modelprofile.com/flexharness-providers/accounts';
|
|
17
20
|
export { flexModels, flexOpenAi, flexAuth, flexAccounts };
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBQXNCO0FBQ3RCLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0FBRTlDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELGtHQUFrRztBQUNsRyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBaUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUUzRixzQkFBc0I7QUFDdEIsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFFeEIsNEJBQTRCO0FBQzVCLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxLQUFLLFVBQVUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RSxPQUFPLEtBQUssUUFBUSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxZQUFZLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDIn0=
|
package/package.json
CHANGED
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -139,7 +139,7 @@ export class RemoteControlStore {
|
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
private hasTable(databaseArg:
|
|
142
|
+
private hasTable(databaseArg: plugins.DatabaseSync): boolean {
|
|
143
143
|
const row = databaseArg
|
|
144
144
|
.prepare(`select name from sqlite_master where type = 'table' and name = ?`)
|
|
145
145
|
.get(TABLE_NAME);
|
|
@@ -153,7 +153,7 @@ export class RemoteControlStore {
|
|
|
153
153
|
* would quietly reset the rest to their defaults.
|
|
154
154
|
*/
|
|
155
155
|
private assertKnownColumns(
|
|
156
|
-
databaseArg:
|
|
156
|
+
databaseArg: plugins.DatabaseSync,
|
|
157
157
|
statePathArg: string,
|
|
158
158
|
): void {
|
|
159
159
|
const rows = databaseArg.prepare(`pragma table_info(${TABLE_NAME})`).all() as Array<
|
|
@@ -195,9 +195,10 @@ export class RemoteControlStore {
|
|
|
195
195
|
private withDatabase<T>(
|
|
196
196
|
pathArg: string,
|
|
197
197
|
readOnlyArg: boolean,
|
|
198
|
-
handlerArg: (databaseArg:
|
|
198
|
+
handlerArg: (databaseArg: plugins.DatabaseSync) => T,
|
|
199
199
|
): T {
|
|
200
|
-
const
|
|
200
|
+
const { DatabaseSync } = plugins.loadSqlite();
|
|
201
|
+
const database = new DatabaseSync(pathArg, { readOnly: readOnlyArg });
|
|
201
202
|
try {
|
|
202
203
|
database.exec('pragma busy_timeout = 5000');
|
|
203
204
|
return handlerArg(database);
|
package/ts/plugins.ts
CHANGED
|
@@ -4,9 +4,14 @@ import * as os from 'node:os';
|
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import * as childProcess from 'node:child_process';
|
|
6
6
|
import * as crypto from 'node:crypto';
|
|
7
|
-
import {
|
|
7
|
+
import { createRequire } from 'node:module';
|
|
8
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
8
9
|
|
|
9
|
-
export { childProcess, crypto, fs, os, path
|
|
10
|
+
export { childProcess, crypto, fs, os, path };
|
|
11
|
+
export type { DatabaseSync };
|
|
12
|
+
const nativeRequire = createRequire(import.meta.url);
|
|
13
|
+
/** SQLite is needed only when accessing a Codex state database, not when hosting account APIs. */
|
|
14
|
+
export const loadSqlite = (): typeof import('node:sqlite') => nativeRequire('node:sqlite');
|
|
10
15
|
|
|
11
16
|
// @push.rocks modules
|
|
12
17
|
import * as smartconsole from '@push.rocks/smartconsole';
|