opensoma 0.5.0 → 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/dist/package.json +5 -1
- package/dist/src/agent-browser-launcher.d.ts +43 -0
- package/dist/src/agent-browser-launcher.d.ts.map +1 -0
- package/dist/src/agent-browser-launcher.js +97 -0
- package/dist/src/agent-browser-launcher.js.map +1 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +3 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +36 -7
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +231 -63
- package/dist/src/client.js.map +1 -1
- package/dist/src/commands/agent-browser.d.ts +3 -0
- package/dist/src/commands/agent-browser.d.ts.map +1 -0
- package/dist/src/commands/agent-browser.js +27 -0
- package/dist/src/commands/agent-browser.js.map +1 -0
- package/dist/src/commands/auth.d.ts +1 -1
- package/dist/src/commands/auth.d.ts.map +1 -1
- package/dist/src/commands/auth.js +4 -2
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/dashboard.d.ts +13 -0
- package/dist/src/commands/dashboard.d.ts.map +1 -1
- package/dist/src/commands/dashboard.js +10 -18
- package/dist/src/commands/dashboard.js.map +1 -1
- package/dist/src/commands/helpers.d.ts +1 -1
- package/dist/src/commands/helpers.d.ts.map +1 -1
- package/dist/src/commands/helpers.js +2 -2
- package/dist/src/commands/helpers.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/mentoring.d.ts.map +1 -1
- package/dist/src/commands/mentoring.js +54 -29
- package/dist/src/commands/mentoring.js.map +1 -1
- package/dist/src/commands/notice.d.ts.map +1 -1
- package/dist/src/commands/notice.js +2 -1
- package/dist/src/commands/notice.js.map +1 -1
- package/dist/src/commands/report.d.ts.map +1 -1
- package/dist/src/commands/report.js +4 -2
- package/dist/src/commands/report.js.map +1 -1
- package/dist/src/commands/room.d.ts.map +1 -1
- package/dist/src/commands/room.js +125 -2
- package/dist/src/commands/room.js.map +1 -1
- package/dist/src/commands/schedule.d.ts +3 -0
- package/dist/src/commands/schedule.d.ts.map +1 -0
- package/dist/src/commands/schedule.js +27 -0
- package/dist/src/commands/schedule.js.map +1 -0
- package/dist/src/commands/team.d.ts.map +1 -1
- package/dist/src/commands/team.js +55 -4
- package/dist/src/commands/team.js.map +1 -1
- package/dist/src/constants.d.ts +5 -5
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +20 -8
- package/dist/src/constants.js.map +1 -1
- package/dist/src/credential-manager.d.ts +9 -0
- package/dist/src/credential-manager.d.ts.map +1 -1
- package/dist/src/credential-manager.js +24 -0
- package/dist/src/credential-manager.js.map +1 -1
- package/dist/src/formatters.d.ts +11 -3
- package/dist/src/formatters.d.ts.map +1 -1
- package/dist/src/formatters.js +281 -52
- package/dist/src/formatters.js.map +1 -1
- package/dist/src/http.d.ts +8 -0
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +29 -1
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/shared/utils/swmaestro.d.ts +34 -1
- package/dist/src/shared/utils/swmaestro.d.ts.map +1 -1
- package/dist/src/shared/utils/swmaestro.js +102 -43
- package/dist/src/shared/utils/swmaestro.js.map +1 -1
- package/dist/src/shared/utils/team-action-params.d.ts +3 -0
- package/dist/src/shared/utils/team-action-params.d.ts.map +1 -0
- package/dist/src/shared/utils/team-action-params.js +10 -0
- package/dist/src/shared/utils/team-action-params.js.map +1 -0
- package/dist/src/shared/utils/team-params.d.ts +12 -0
- package/dist/src/shared/utils/team-params.d.ts.map +1 -0
- package/dist/src/shared/utils/team-params.js +38 -0
- package/dist/src/shared/utils/team-params.js.map +1 -0
- package/dist/src/types.d.ts +147 -10
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +74 -6
- package/dist/src/types.js.map +1 -1
- package/package.json +5 -1
- package/src/agent-browser-launcher.test.ts +263 -0
- package/src/agent-browser-launcher.ts +159 -0
- package/src/cli.ts +4 -2
- package/src/client.test.ts +801 -140
- package/src/client.ts +293 -79
- package/src/commands/agent-browser.ts +33 -0
- package/src/commands/auth.test.ts +83 -32
- package/src/commands/auth.ts +5 -3
- package/src/commands/dashboard.test.ts +57 -0
- package/src/commands/dashboard.ts +22 -19
- package/src/commands/helpers.test.ts +79 -32
- package/src/commands/helpers.ts +3 -3
- package/src/commands/index.ts +2 -1
- package/src/commands/mentoring.ts +60 -29
- package/src/commands/notice.ts +2 -1
- package/src/commands/report.test.ts +7 -7
- package/src/commands/report.ts +4 -2
- package/src/commands/room.ts +160 -1
- package/src/commands/schedule.ts +32 -0
- package/src/commands/team.ts +73 -5
- package/src/constants.ts +20 -8
- package/src/credential-manager.test.ts +49 -5
- package/src/credential-manager.ts +27 -0
- package/src/formatters.test.ts +548 -53
- package/src/formatters.ts +309 -55
- package/src/http.test.ts +108 -39
- package/src/http.ts +41 -2
- package/src/index.ts +10 -1
- package/src/shared/utils/mentoring-params.test.ts +16 -16
- package/src/shared/utils/swmaestro.test.ts +326 -11
- package/src/shared/utils/swmaestro.ts +150 -52
- package/src/shared/utils/team-action-params.test.ts +32 -0
- package/src/shared/utils/team-action-params.ts +10 -0
- package/src/shared/utils/team-params.test.ts +141 -0
- package/src/shared/utils/team-params.ts +53 -0
- package/src/shared/utils/toz.test.ts +12 -7
- package/src/token-extractor.test.ts +12 -12
- package/src/toz-http.test.ts +11 -11
- package/src/types.test.ts +235 -206
- package/src/types.ts +87 -7
- package/dist/src/commands/event.d.ts +0 -3
- package/dist/src/commands/event.d.ts.map +0 -1
- package/dist/src/commands/event.js +0 -58
- package/dist/src/commands/event.js.map +0 -1
- package/src/commands/event.ts +0 -73
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opensoma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "SWMaestro MyPage CLI & SDK for AI agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
"./shared/utils/mentoring-params": {
|
|
42
42
|
"types": "./src/shared/utils/mentoring-params.ts",
|
|
43
43
|
"default": "./src/shared/utils/mentoring-params.ts"
|
|
44
|
+
},
|
|
45
|
+
"./shared/utils/team-params": {
|
|
46
|
+
"types": "./src/shared/utils/team-params.ts",
|
|
47
|
+
"default": "./src/shared/utils/team-params.ts"
|
|
44
48
|
}
|
|
45
49
|
},
|
|
46
50
|
"scripts": {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface AgentBrowserLaunchInput {
|
|
2
|
+
url: string;
|
|
3
|
+
sessionCookie: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SpawnedProcess {
|
|
6
|
+
exited: Promise<number>;
|
|
7
|
+
}
|
|
8
|
+
export type Spawner = (command: string[]) => SpawnedProcess;
|
|
9
|
+
export interface AgentBrowserLauncherOptions {
|
|
10
|
+
spawn?: Spawner;
|
|
11
|
+
binary?: string;
|
|
12
|
+
tmpDir?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface LaunchResult {
|
|
15
|
+
exitCode: number;
|
|
16
|
+
statePath: string;
|
|
17
|
+
}
|
|
18
|
+
interface StorageStateCookie {
|
|
19
|
+
name: string;
|
|
20
|
+
value: string;
|
|
21
|
+
domain: string;
|
|
22
|
+
path: string;
|
|
23
|
+
expires: number;
|
|
24
|
+
httpOnly: boolean;
|
|
25
|
+
secure: boolean;
|
|
26
|
+
sameSite: 'Strict' | 'Lax' | 'None';
|
|
27
|
+
}
|
|
28
|
+
interface StorageState {
|
|
29
|
+
cookies: StorageStateCookie[];
|
|
30
|
+
origins: never[];
|
|
31
|
+
}
|
|
32
|
+
export declare function buildStorageState(sessionCookie: string): StorageState;
|
|
33
|
+
export declare function assertSwmaestroUrl(rawUrl: string): URL;
|
|
34
|
+
export declare class AgentBrowserLauncher {
|
|
35
|
+
private readonly spawn;
|
|
36
|
+
private readonly binary;
|
|
37
|
+
private readonly tmpRoot;
|
|
38
|
+
constructor(options?: AgentBrowserLauncherOptions);
|
|
39
|
+
launch(input: AgentBrowserLaunchInput): Promise<LaunchResult>;
|
|
40
|
+
private createStateDir;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=agent-browser-launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-browser-launcher.d.ts","sourceRoot":"","sources":["../../src/agent-browser-launcher.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,CAAA;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAKD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CACpC;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,OAAO,EAAE,KAAK,EAAE,CAAA;CACjB;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,CAsBrE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAmBtD;AAcD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,GAAE,2BAAgC;IAM/C,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;YAwBrD,cAAc;CAU7B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { chmod, mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
const SWMAESTRO_HOST = 'www.swmaestro.ai';
|
|
6
|
+
const ALLOWED_HOSTS = new Set([SWMAESTRO_HOST, 'swmaestro.ai']);
|
|
7
|
+
export function buildStorageState(sessionCookie) {
|
|
8
|
+
// Java EE JSESSIONID is host-only on the exact host that issued it. Use
|
|
9
|
+
// www.swmaestro.ai (no leading dot) to match how the native server sets it.
|
|
10
|
+
// Using `.swmaestro.ai` here would either fail to import or produce a
|
|
11
|
+
// domain-cookie that the server treats as foreign.
|
|
12
|
+
return {
|
|
13
|
+
cookies: [
|
|
14
|
+
{
|
|
15
|
+
name: 'JSESSIONID',
|
|
16
|
+
value: sessionCookie,
|
|
17
|
+
domain: SWMAESTRO_HOST,
|
|
18
|
+
path: '/',
|
|
19
|
+
// -1 is the Playwright/agent-browser convention for session cookies
|
|
20
|
+
// (no Expires/Max-Age attribute). JSESSIONID is a session cookie.
|
|
21
|
+
expires: -1,
|
|
22
|
+
httpOnly: true,
|
|
23
|
+
secure: true,
|
|
24
|
+
sameSite: 'Lax',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
origins: [],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function assertSwmaestroUrl(rawUrl) {
|
|
31
|
+
let parsed;
|
|
32
|
+
try {
|
|
33
|
+
parsed = new URL(rawUrl);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new Error(`Invalid URL: ${rawUrl}`);
|
|
37
|
+
}
|
|
38
|
+
if (parsed.protocol !== 'https:') {
|
|
39
|
+
throw new Error(`URL must use https:// (got ${parsed.protocol}//): ${rawUrl}`);
|
|
40
|
+
}
|
|
41
|
+
if (!ALLOWED_HOSTS.has(parsed.hostname)) {
|
|
42
|
+
throw new Error(`URL must point to swmaestro.ai (got ${parsed.hostname}). Cookie injection only works for swmaestro.ai targets.`);
|
|
43
|
+
}
|
|
44
|
+
return parsed;
|
|
45
|
+
}
|
|
46
|
+
function defaultSpawn(command) {
|
|
47
|
+
// Bun.spawn with array args avoids shell interpretation entirely. The
|
|
48
|
+
// randomized state-file path appears in argv but the JSESSIONID value
|
|
49
|
+
// never does — that's the security guarantee.
|
|
50
|
+
const proc = Bun.spawn(command, {
|
|
51
|
+
stdout: 'inherit',
|
|
52
|
+
stderr: 'inherit',
|
|
53
|
+
stdin: 'inherit',
|
|
54
|
+
});
|
|
55
|
+
return { exited: proc.exited };
|
|
56
|
+
}
|
|
57
|
+
export class AgentBrowserLauncher {
|
|
58
|
+
spawn;
|
|
59
|
+
binary;
|
|
60
|
+
tmpRoot;
|
|
61
|
+
constructor(options = {}) {
|
|
62
|
+
this.spawn = options.spawn ?? defaultSpawn;
|
|
63
|
+
this.binary = options.binary ?? 'agent-browser';
|
|
64
|
+
this.tmpRoot = options.tmpDir ?? tmpdir();
|
|
65
|
+
}
|
|
66
|
+
async launch(input) {
|
|
67
|
+
const target = assertSwmaestroUrl(input.url);
|
|
68
|
+
const state = buildStorageState(input.sessionCookie);
|
|
69
|
+
// agent-browser ignores --state if a daemon is already running. Close
|
|
70
|
+
// first so our cookie injection actually takes effect. We don't care
|
|
71
|
+
// about the close exit code (no-op if no daemon was running).
|
|
72
|
+
await this.spawn([this.binary, 'close', '--all']).exited;
|
|
73
|
+
const stateDir = await this.createStateDir();
|
|
74
|
+
const statePath = join(stateDir, 'state.json');
|
|
75
|
+
try {
|
|
76
|
+
await writeFile(statePath, JSON.stringify(state), { mode: 0o600 });
|
|
77
|
+
await chmod(statePath, 0o600);
|
|
78
|
+
const proc = this.spawn([this.binary, '--state', statePath, 'open', target.toString()]);
|
|
79
|
+
const exitCode = await proc.exited;
|
|
80
|
+
return { exitCode, statePath };
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
await rm(stateDir, { recursive: true, force: true });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async createStateDir() {
|
|
87
|
+
// Random suffix on the directory name so concurrent launches don't
|
|
88
|
+
// collide and so the path is hard to predict for same-UID local
|
|
89
|
+
// attackers. mkdtemp creates with 0700 by default on macOS/Linux but we
|
|
90
|
+
// chmod to be explicit across platforms.
|
|
91
|
+
const prefix = `opensoma-agent-browser-${randomBytes(8).toString('hex')}-`;
|
|
92
|
+
const dir = await mkdtemp(join(this.tmpRoot, prefix));
|
|
93
|
+
await chmod(dir, 0o700);
|
|
94
|
+
return dir;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=agent-browser-launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-browser-launcher.js","sourceRoot":"","sources":["../../src/agent-browser-launcher.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2BnC,QAAA,MAAM,OAAO,SAAgB,CAAA;AA+B7B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/src/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import pkg from '../package.json' with { type: 'json' };
|
|
4
|
-
import { authCommand, dashboardCommand,
|
|
4
|
+
import { agentBrowserCommand, authCommand, dashboardCommand, memberCommand, mentoringCommand, noticeCommand, reportCommand, roomCommand, scheduleCommand, teamCommand, } from './commands/index.js';
|
|
5
5
|
function isAuthCommand(command) {
|
|
6
6
|
let current = command;
|
|
7
7
|
while (current) {
|
|
@@ -27,13 +27,14 @@ program.hook('preAction', async (_thisCommand, actionCommand) => {
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
program.addCommand(authCommand);
|
|
30
|
+
program.addCommand(agentBrowserCommand);
|
|
30
31
|
program.addCommand(mentoringCommand);
|
|
31
32
|
program.addCommand(roomCommand);
|
|
32
33
|
program.addCommand(dashboardCommand);
|
|
33
34
|
program.addCommand(noticeCommand);
|
|
34
35
|
program.addCommand(teamCommand);
|
|
35
36
|
program.addCommand(memberCommand);
|
|
36
|
-
program.addCommand(
|
|
37
|
+
program.addCommand(scheduleCommand);
|
|
37
38
|
program.addCommand(reportCommand);
|
|
38
39
|
program.parse(process.argv);
|
|
39
40
|
export { program };
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,SAAS,aAAa,CAAC,OAAgB;IACrC,IAAI,OAAO,GAAmB,OAAO,CAAA;IACrC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC1B,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAE/F,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAC9D,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,OAAM;IACR,CAAC;IAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAA;IACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC,CAAA;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC/B,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACpC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC/B,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AAEjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { CredentialManager } from './credential-manager.js';
|
|
2
|
+
import { SomaHttp, type UserIdentity } from './http.js';
|
|
2
3
|
import { type MentoringSearchQuery } from './shared/utils/mentoring-params.js';
|
|
3
|
-
import
|
|
4
|
+
import { type TeamSearchQuery } from './shared/utils/team-params.js';
|
|
5
|
+
import type { ApplicationHistoryItem, ApprovalListItem, Dashboard, MemberInfo, MentoringDetail, MentoringListItem, MentoringUpdateOptions, NoticeDetail, NoticeListItem, Pagination, ReportCreateOptions, ReportDetail, ReportListItem, ReportUpdateOptions, RoomCard, RoomReservationDetail, RoomReservationListItem, RoomReservationStatus, RoomUpdateOptions, ScheduleListItem, TeamInfo } from './types.js';
|
|
4
6
|
export interface SomaClientOptions {
|
|
5
7
|
sessionCookie?: string;
|
|
6
8
|
csrfToken?: string;
|
|
7
9
|
username?: string;
|
|
8
10
|
password?: string;
|
|
9
11
|
verbose?: boolean;
|
|
12
|
+
/** @internal */
|
|
13
|
+
http?: SomaHttp;
|
|
10
14
|
}
|
|
11
15
|
export declare class SomaClient {
|
|
12
16
|
private readonly http;
|
|
13
17
|
private readonly options;
|
|
14
18
|
private loginCredentials;
|
|
19
|
+
private reloginInFlight;
|
|
15
20
|
readonly mentoring: {
|
|
16
21
|
list(options?: {
|
|
17
22
|
status?: string;
|
|
@@ -31,8 +36,11 @@ export declare class SomaClient {
|
|
|
31
36
|
endTime: string;
|
|
32
37
|
venue: string;
|
|
33
38
|
maxAttendees?: number;
|
|
39
|
+
receiptType?: 'UNTIL_LECTURE' | 'DIRECT';
|
|
34
40
|
regStart?: string;
|
|
41
|
+
regStartTime?: string;
|
|
35
42
|
regEnd?: string;
|
|
43
|
+
regEndTime?: string;
|
|
36
44
|
content?: string;
|
|
37
45
|
}): Promise<void>;
|
|
38
46
|
update(id: number, params: MentoringUpdateOptions): Promise<void>;
|
|
@@ -64,6 +72,18 @@ export declare class SomaClient {
|
|
|
64
72
|
attendees?: number;
|
|
65
73
|
notes?: string;
|
|
66
74
|
}): Promise<void>;
|
|
75
|
+
get(rentId: number): Promise<RoomReservationDetail>;
|
|
76
|
+
update(rentId: number, params?: RoomUpdateOptions): Promise<void>;
|
|
77
|
+
cancel(rentId: number): Promise<void>;
|
|
78
|
+
reservations(options?: {
|
|
79
|
+
status?: Exclude<RoomReservationStatus, 'unknown'> | 'all';
|
|
80
|
+
startDate?: string;
|
|
81
|
+
endDate?: string;
|
|
82
|
+
page?: number;
|
|
83
|
+
}): Promise<{
|
|
84
|
+
items: RoomReservationListItem[];
|
|
85
|
+
pagination: Pagination;
|
|
86
|
+
}>;
|
|
67
87
|
};
|
|
68
88
|
readonly dashboard: {
|
|
69
89
|
get(): Promise<Dashboard>;
|
|
@@ -87,7 +107,10 @@ export declare class SomaClient {
|
|
|
87
107
|
pagination: Pagination;
|
|
88
108
|
}>;
|
|
89
109
|
get(id: number): Promise<ReportDetail>;
|
|
90
|
-
create(options: ReportCreateOptions,
|
|
110
|
+
create(options: ReportCreateOptions, files: Array<{
|
|
111
|
+
buffer: Buffer;
|
|
112
|
+
name: string;
|
|
113
|
+
}>): Promise<void>;
|
|
91
114
|
update(id: number, options: Omit<ReportUpdateOptions, 'id'>, file?: Buffer | string, fileName?: string): Promise<void>;
|
|
92
115
|
approval(options?: {
|
|
93
116
|
page?: number;
|
|
@@ -99,20 +122,22 @@ export declare class SomaClient {
|
|
|
99
122
|
}>;
|
|
100
123
|
};
|
|
101
124
|
readonly team: {
|
|
102
|
-
|
|
125
|
+
list(options?: {
|
|
126
|
+
search?: TeamSearchQuery;
|
|
127
|
+
}): Promise<TeamInfo>;
|
|
128
|
+
join(teamId: string): Promise<void>;
|
|
129
|
+
leave(teamId: string): Promise<void>;
|
|
103
130
|
};
|
|
104
131
|
readonly member: {
|
|
105
132
|
show(): Promise<MemberInfo>;
|
|
106
133
|
};
|
|
107
|
-
readonly
|
|
134
|
+
readonly schedule: {
|
|
108
135
|
list(options?: {
|
|
109
136
|
page?: number;
|
|
110
137
|
}): Promise<{
|
|
111
|
-
items:
|
|
138
|
+
items: ScheduleListItem[];
|
|
112
139
|
pagination: Pagination;
|
|
113
140
|
}>;
|
|
114
|
-
get(id: number): Promise<unknown>;
|
|
115
|
-
apply(id: number): Promise<void>;
|
|
116
141
|
};
|
|
117
142
|
constructor(options?: SomaClientOptions);
|
|
118
143
|
getSessionData(): {
|
|
@@ -120,11 +145,15 @@ export declare class SomaClient {
|
|
|
120
145
|
csrfToken: string | null;
|
|
121
146
|
};
|
|
122
147
|
private requireAuth;
|
|
148
|
+
private relogin;
|
|
123
149
|
private resolveUser;
|
|
124
150
|
login(username?: string, password?: string): Promise<void>;
|
|
125
151
|
isLoggedIn(): Promise<boolean>;
|
|
152
|
+
whoami(): Promise<UserIdentity | null>;
|
|
126
153
|
logout(): Promise<void>;
|
|
127
154
|
saveCredentials(manager?: CredentialManager): Promise<void>;
|
|
155
|
+
private postTeamAction;
|
|
156
|
+
private postRoomUpdate;
|
|
128
157
|
private containsErrorIndicator;
|
|
129
158
|
private extractErrorMessage;
|
|
130
159
|
}
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|