@tianshu-ai/tianshu 0.3.37 → 0.3.39
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/node_modules/@tianshu-ai/plugin-sdk/dist/channel-bindings.d.ts +18 -5
- package/node_modules/@tianshu-ai/plugin-sdk/dist/channel-bindings.d.ts.map +1 -1
- package/node_modules/@tianshu-ai/plugin-sdk/src/channel-bindings.ts +17 -5
- package/package.json +1 -1
- package/packages/plugin-sdk/dist/channel-bindings.d.ts +18 -5
- package/packages/plugin-sdk/dist/channel-bindings.d.ts.map +1 -1
- package/packages/server/dist/channels/bindings.d.ts +8 -2
- package/packages/server/dist/channels/bindings.d.ts.map +1 -1
- package/packages/server/dist/channels/bindings.js +22 -7
- package/packages/server/dist/channels/bindings.js.map +1 -1
- package/packages/server/dist/channels/index.d.ts +1 -1
- package/packages/server/dist/channels/index.d.ts.map +1 -1
- package/packages/server/dist/channels/index.js +1 -1
- package/packages/server/dist/channels/index.js.map +1 -1
- package/packages/server/dist/channels/sessions.d.ts.map +1 -1
- package/packages/server/dist/channels/sessions.js +19 -9
- package/packages/server/dist/channels/sessions.js.map +1 -1
- package/packages/server/dist/channels/types.d.ts +4 -0
- package/packages/server/dist/channels/types.d.ts.map +1 -1
- package/packages/server/dist/core/migrations/011-channel-bindings-owner.d.ts +4 -0
- package/packages/server/dist/core/migrations/011-channel-bindings-owner.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/011-channel-bindings-owner.js +62 -0
- package/packages/server/dist/core/migrations/011-channel-bindings-owner.js.map +1 -0
- package/packages/server/dist/core/migrations/012-channel-bindings-unique.d.ts +4 -0
- package/packages/server/dist/core/migrations/012-channel-bindings-unique.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/012-channel-bindings-unique.js +22 -0
- package/packages/server/dist/core/migrations/012-channel-bindings-unique.js.map +1 -0
- package/packages/server/dist/core/migrations/index.d.ts.map +1 -1
- package/packages/server/dist/core/migrations/index.js +4 -0
- package/packages/server/dist/core/migrations/index.js.map +1 -1
- package/packages/server/dist/index.js +45 -6
- package/packages/server/dist/index.js.map +1 -1
- package/plugins/wechat/dist/server.d.ts.map +1 -1
- package/plugins/wechat/dist/server.js +27 -5
- package/plugins/wechat/dist/server.js.map +1 -1
|
@@ -6,6 +6,12 @@ export interface ChannelBindingView {
|
|
|
6
6
|
id: string;
|
|
7
7
|
/** Tenant this binding belongs to. */
|
|
8
8
|
tenantId: string;
|
|
9
|
+
/** The user this binding belongs to. Channel accounts (a wechat
|
|
10
|
+
* login, a telegram bot token, ...) are personal credentials —
|
|
11
|
+
* one user binding their phone shouldn't surface that account
|
|
12
|
+
* to other users on the same tenant. The host scopes list /
|
|
13
|
+
* delete to this id. */
|
|
14
|
+
ownerUserId: string;
|
|
9
15
|
/** Channel id ("wechat" / "telegram" / ...). */
|
|
10
16
|
channelId: string;
|
|
11
17
|
/** Plugin id that contributes the channel. */
|
|
@@ -24,6 +30,11 @@ export interface ChannelBindingView {
|
|
|
24
30
|
updatedAt: number;
|
|
25
31
|
}
|
|
26
32
|
export interface CreateChannelBindingInput {
|
|
33
|
+
/** Per-user scope. Channel credentials are personal — the host
|
|
34
|
+
* refuses any operation where the caller-supplied userId doesn't
|
|
35
|
+
* own the targeted binding. Plugin admin routes get this from
|
|
36
|
+
* `req.ctx.userId` (set by the host's tenant middleware). */
|
|
37
|
+
ownerUserId: string;
|
|
27
38
|
channelId: string;
|
|
28
39
|
pluginId: string;
|
|
29
40
|
displayName?: string;
|
|
@@ -36,12 +47,14 @@ export interface ChannelBindingsCapability {
|
|
|
36
47
|
/** Create + start a binding in one call. Returns the row the
|
|
37
48
|
* host persisted. */
|
|
38
49
|
create(input: CreateChannelBindingInput): Promise<ChannelBindingView>;
|
|
39
|
-
/** Enumerate
|
|
40
|
-
list(opts
|
|
50
|
+
/** Enumerate the calling user's bindings. */
|
|
51
|
+
list(opts: {
|
|
52
|
+
ownerUserId: string;
|
|
41
53
|
channelId?: string;
|
|
42
54
|
}): ChannelBindingView[];
|
|
43
|
-
/** Stop the adapter, delete the row.
|
|
44
|
-
*
|
|
45
|
-
|
|
55
|
+
/** Stop the adapter, delete the row. Refuses the operation when
|
|
56
|
+
* the binding doesn't belong to the supplied user. Returns true
|
|
57
|
+
* if anything was removed. */
|
|
58
|
+
delete(bindingId: string, ownerUserId: string): Promise<boolean>;
|
|
46
59
|
}
|
|
47
60
|
//# sourceMappingURL=channel-bindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-bindings.d.ts","sourceRoot":"","sources":["../src/channel-bindings.ts"],"names":[],"mappings":"AAiBA;;yDAEyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,yEAAyE;IACzE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;8CAC0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;0BACsB;IACtB,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,
|
|
1
|
+
{"version":3,"file":"channel-bindings.d.ts","sourceRoot":"","sources":["../src/channel-bindings.ts"],"names":[],"mappings":"AAiBA;;yDAEyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;6BAIyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,yEAAyE;IACzE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;kEAG8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;8CAC0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;0BACsB;IACtB,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,6CAA6C;IAC7C,IAAI,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,EAAE,CAAC;IAC9E;;mCAE+B;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE"}
|
|
@@ -23,6 +23,12 @@ export interface ChannelBindingView {
|
|
|
23
23
|
id: string;
|
|
24
24
|
/** Tenant this binding belongs to. */
|
|
25
25
|
tenantId: string;
|
|
26
|
+
/** The user this binding belongs to. Channel accounts (a wechat
|
|
27
|
+
* login, a telegram bot token, ...) are personal credentials —
|
|
28
|
+
* one user binding their phone shouldn't surface that account
|
|
29
|
+
* to other users on the same tenant. The host scopes list /
|
|
30
|
+
* delete to this id. */
|
|
31
|
+
ownerUserId: string;
|
|
26
32
|
/** Channel id ("wechat" / "telegram" / ...). */
|
|
27
33
|
channelId: string;
|
|
28
34
|
/** Plugin id that contributes the channel. */
|
|
@@ -42,6 +48,11 @@ export interface ChannelBindingView {
|
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
export interface CreateChannelBindingInput {
|
|
51
|
+
/** Per-user scope. Channel credentials are personal — the host
|
|
52
|
+
* refuses any operation where the caller-supplied userId doesn't
|
|
53
|
+
* own the targeted binding. Plugin admin routes get this from
|
|
54
|
+
* `req.ctx.userId` (set by the host's tenant middleware). */
|
|
55
|
+
ownerUserId: string;
|
|
45
56
|
channelId: string;
|
|
46
57
|
pluginId: string;
|
|
47
58
|
displayName?: string;
|
|
@@ -55,9 +66,10 @@ export interface ChannelBindingsCapability {
|
|
|
55
66
|
/** Create + start a binding in one call. Returns the row the
|
|
56
67
|
* host persisted. */
|
|
57
68
|
create(input: CreateChannelBindingInput): Promise<ChannelBindingView>;
|
|
58
|
-
/** Enumerate
|
|
59
|
-
list(opts
|
|
60
|
-
/** Stop the adapter, delete the row.
|
|
61
|
-
*
|
|
62
|
-
|
|
69
|
+
/** Enumerate the calling user's bindings. */
|
|
70
|
+
list(opts: { ownerUserId: string; channelId?: string }): ChannelBindingView[];
|
|
71
|
+
/** Stop the adapter, delete the row. Refuses the operation when
|
|
72
|
+
* the binding doesn't belong to the supplied user. Returns true
|
|
73
|
+
* if anything was removed. */
|
|
74
|
+
delete(bindingId: string, ownerUserId: string): Promise<boolean>;
|
|
63
75
|
}
|
package/package.json
CHANGED
|
@@ -6,6 +6,12 @@ export interface ChannelBindingView {
|
|
|
6
6
|
id: string;
|
|
7
7
|
/** Tenant this binding belongs to. */
|
|
8
8
|
tenantId: string;
|
|
9
|
+
/** The user this binding belongs to. Channel accounts (a wechat
|
|
10
|
+
* login, a telegram bot token, ...) are personal credentials —
|
|
11
|
+
* one user binding their phone shouldn't surface that account
|
|
12
|
+
* to other users on the same tenant. The host scopes list /
|
|
13
|
+
* delete to this id. */
|
|
14
|
+
ownerUserId: string;
|
|
9
15
|
/** Channel id ("wechat" / "telegram" / ...). */
|
|
10
16
|
channelId: string;
|
|
11
17
|
/** Plugin id that contributes the channel. */
|
|
@@ -24,6 +30,11 @@ export interface ChannelBindingView {
|
|
|
24
30
|
updatedAt: number;
|
|
25
31
|
}
|
|
26
32
|
export interface CreateChannelBindingInput {
|
|
33
|
+
/** Per-user scope. Channel credentials are personal — the host
|
|
34
|
+
* refuses any operation where the caller-supplied userId doesn't
|
|
35
|
+
* own the targeted binding. Plugin admin routes get this from
|
|
36
|
+
* `req.ctx.userId` (set by the host's tenant middleware). */
|
|
37
|
+
ownerUserId: string;
|
|
27
38
|
channelId: string;
|
|
28
39
|
pluginId: string;
|
|
29
40
|
displayName?: string;
|
|
@@ -36,12 +47,14 @@ export interface ChannelBindingsCapability {
|
|
|
36
47
|
/** Create + start a binding in one call. Returns the row the
|
|
37
48
|
* host persisted. */
|
|
38
49
|
create(input: CreateChannelBindingInput): Promise<ChannelBindingView>;
|
|
39
|
-
/** Enumerate
|
|
40
|
-
list(opts
|
|
50
|
+
/** Enumerate the calling user's bindings. */
|
|
51
|
+
list(opts: {
|
|
52
|
+
ownerUserId: string;
|
|
41
53
|
channelId?: string;
|
|
42
54
|
}): ChannelBindingView[];
|
|
43
|
-
/** Stop the adapter, delete the row.
|
|
44
|
-
*
|
|
45
|
-
|
|
55
|
+
/** Stop the adapter, delete the row. Refuses the operation when
|
|
56
|
+
* the binding doesn't belong to the supplied user. Returns true
|
|
57
|
+
* if anything was removed. */
|
|
58
|
+
delete(bindingId: string, ownerUserId: string): Promise<boolean>;
|
|
46
59
|
}
|
|
47
60
|
//# sourceMappingURL=channel-bindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-bindings.d.ts","sourceRoot":"","sources":["../src/channel-bindings.ts"],"names":[],"mappings":"AAiBA;;yDAEyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,yEAAyE;IACzE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;8CAC0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;0BACsB;IACtB,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,
|
|
1
|
+
{"version":3,"file":"channel-bindings.d.ts","sourceRoot":"","sources":["../src/channel-bindings.ts"],"names":[],"mappings":"AAiBA;;yDAEyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;6BAIyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,yEAAyE;IACzE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;kEAG8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;8CAC0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC;0BACsB;IACtB,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,6CAA6C;IAC7C,IAAI,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,EAAE,CAAC;IAC9E;;mCAE+B;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { Database } from "better-sqlite3";
|
|
2
2
|
import type { BindingStatus, ChannelBinding } from "./types.js";
|
|
3
|
-
/** List every binding
|
|
4
|
-
*
|
|
3
|
+
/** List every binding for one user within a tenant. Channel
|
|
4
|
+
* credentials are personal; admins typically don't want one user's
|
|
5
|
+
* scan to surface to another. */
|
|
6
|
+
export declare function listBindingsForUser(db: Database, tenantId: string, ownerUserId: string): ChannelBinding[];
|
|
7
|
+
/** Tenant-wide listing — used by the boot path which still needs
|
|
8
|
+
* to know every binding to start. Per-user filtering happens
|
|
9
|
+
* inside the capability + API layer. */
|
|
5
10
|
export declare function listBindingsForTenant(db: Database, tenantId: string): ChannelBinding[];
|
|
6
11
|
/** List every binding the host should start at boot. */
|
|
7
12
|
export declare function listEnabledBindings(db: Database): ChannelBinding[];
|
|
@@ -9,6 +14,7 @@ export declare function listEnabledBindings(db: Database): ChannelBinding[];
|
|
|
9
14
|
export declare function getBinding(db: Database, bindingId: string): ChannelBinding | null;
|
|
10
15
|
export interface CreateBindingInput {
|
|
11
16
|
tenantId: string;
|
|
17
|
+
ownerUserId: string;
|
|
12
18
|
channelId: string;
|
|
13
19
|
pluginId: string;
|
|
14
20
|
displayName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/channels/bindings.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/channels/bindings.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8ChE;;kCAEkC;AAClC,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,cAAc,EAAE,CAWlB;AAED;;yCAEyC;AACzC,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CAWlB;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,cAAc,EAAE,CAWlE;AAED,sCAAsC;AACtC,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,GAChB,cAAc,GAAG,IAAI,CASvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,kBAAkB,GACxB,cAAc,CAwBhB;AAED;gEACgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,GACxB,IAAI,CAsBN;AAED;;8CAE8C;AAC9C,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,IAAI,CAMN;AAED;gEACgE;AAChE,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAInE"}
|
|
@@ -16,6 +16,7 @@ function rowToBinding(row) {
|
|
|
16
16
|
return {
|
|
17
17
|
id: row.id,
|
|
18
18
|
tenantId: row.tenant_id,
|
|
19
|
+
ownerUserId: row.owner_user_id,
|
|
19
20
|
channelId: row.channel_id,
|
|
20
21
|
pluginId: row.plugin_id,
|
|
21
22
|
displayName: row.display_name,
|
|
@@ -39,11 +40,25 @@ function parseConfig(json) {
|
|
|
39
40
|
}
|
|
40
41
|
return {};
|
|
41
42
|
}
|
|
42
|
-
/** List every binding
|
|
43
|
-
*
|
|
43
|
+
/** List every binding for one user within a tenant. Channel
|
|
44
|
+
* credentials are personal; admins typically don't want one user's
|
|
45
|
+
* scan to surface to another. */
|
|
46
|
+
export function listBindingsForUser(db, tenantId, ownerUserId) {
|
|
47
|
+
const rows = db
|
|
48
|
+
.prepare(`SELECT id, tenant_id, owner_user_id, channel_id, plugin_id, display_name, config,
|
|
49
|
+
enabled, status, status_detail, created_at, updated_at
|
|
50
|
+
FROM channel_bindings
|
|
51
|
+
WHERE tenant_id = ? AND owner_user_id = ?
|
|
52
|
+
ORDER BY created_at ASC`)
|
|
53
|
+
.all(tenantId, ownerUserId);
|
|
54
|
+
return rows.map(rowToBinding);
|
|
55
|
+
}
|
|
56
|
+
/** Tenant-wide listing — used by the boot path which still needs
|
|
57
|
+
* to know every binding to start. Per-user filtering happens
|
|
58
|
+
* inside the capability + API layer. */
|
|
44
59
|
export function listBindingsForTenant(db, tenantId) {
|
|
45
60
|
const rows = db
|
|
46
|
-
.prepare(`SELECT id, tenant_id, channel_id, plugin_id, display_name, config,
|
|
61
|
+
.prepare(`SELECT id, tenant_id, owner_user_id, channel_id, plugin_id, display_name, config,
|
|
47
62
|
enabled, status, status_detail, created_at, updated_at
|
|
48
63
|
FROM channel_bindings
|
|
49
64
|
WHERE tenant_id = ?
|
|
@@ -54,7 +69,7 @@ export function listBindingsForTenant(db, tenantId) {
|
|
|
54
69
|
/** List every binding the host should start at boot. */
|
|
55
70
|
export function listEnabledBindings(db) {
|
|
56
71
|
const rows = db
|
|
57
|
-
.prepare(`SELECT id, tenant_id, channel_id, plugin_id, display_name, config,
|
|
72
|
+
.prepare(`SELECT id, tenant_id, owner_user_id, channel_id, plugin_id, display_name, config,
|
|
58
73
|
enabled, status, status_detail, created_at, updated_at
|
|
59
74
|
FROM channel_bindings
|
|
60
75
|
WHERE enabled = 1
|
|
@@ -65,7 +80,7 @@ export function listEnabledBindings(db) {
|
|
|
65
80
|
/** Look up a single binding by id. */
|
|
66
81
|
export function getBinding(db, bindingId) {
|
|
67
82
|
const row = db
|
|
68
|
-
.prepare(`SELECT id, tenant_id, channel_id, plugin_id, display_name, config,
|
|
83
|
+
.prepare(`SELECT id, tenant_id, owner_user_id, channel_id, plugin_id, display_name, config,
|
|
69
84
|
enabled, status, status_detail, created_at, updated_at
|
|
70
85
|
FROM channel_bindings WHERE id = ?`)
|
|
71
86
|
.get(bindingId);
|
|
@@ -76,9 +91,9 @@ export function createBinding(db, input) {
|
|
|
76
91
|
const id = `cb_${randomUUID()}`;
|
|
77
92
|
const now = Date.now();
|
|
78
93
|
db.prepare(`INSERT INTO channel_bindings
|
|
79
|
-
(id, tenant_id, channel_id, plugin_id, display_name, config,
|
|
94
|
+
(id, tenant_id, owner_user_id, channel_id, plugin_id, display_name, config,
|
|
80
95
|
enabled, status, created_at, updated_at)
|
|
81
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, 'idle', ?, ?)`).run(id, input.tenantId, input.channelId, input.pluginId, input.displayName ?? null, JSON.stringify(input.config ?? {}), input.enabled === false ? 0 : 1, now, now);
|
|
96
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'idle', ?, ?)`).run(id, input.tenantId, input.ownerUserId, input.channelId, input.pluginId, input.displayName ?? null, JSON.stringify(input.config ?? {}), input.enabled === false ? 0 : 1, now, now);
|
|
82
97
|
return getBinding(db, id);
|
|
83
98
|
}
|
|
84
99
|
export function updateBinding(db, bindingId, patch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/channels/bindings.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,iEAAiE;AACjE,uCAAuC;AACvC,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,mEAAmE;AACnE,qEAAqE;AACrE,mBAAmB;AAGnB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/channels/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ChannelHub, channelHub } from "./hub.js";
|
|
2
2
|
export { ChannelAdapterManager } from "./adapter-manager.js";
|
|
3
3
|
export type { AdapterManagerDeps } from "./adapter-manager.js";
|
|
4
|
-
export { createBinding, deleteBinding, getBinding, listBindingsForTenant, listEnabledBindings, setBindingStatus, updateBinding, } from "./bindings.js";
|
|
4
|
+
export { createBinding, deleteBinding, getBinding, listBindingsForTenant, listBindingsForUser, listEnabledBindings, setBindingStatus, updateBinding, } from "./bindings.js";
|
|
5
5
|
export type { CreateBindingInput, UpdateBindingInput, } from "./bindings.js";
|
|
6
6
|
export type { BindingStatus, ChannelAdapter, ChannelAdapterContext, ChannelAdapterFactory, ChannelBinding, ChannelId, ChannelReactionKind, InboundChannelMessage, InboundEnvelope, OutboundChannelMessage, } from "./types.js";
|
|
7
7
|
export { startChannelRouter } from "./router.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// evolve without spraying import paths.
|
|
6
6
|
export { ChannelHub, channelHub } from "./hub.js";
|
|
7
7
|
export { ChannelAdapterManager } from "./adapter-manager.js";
|
|
8
|
-
export { createBinding, deleteBinding, getBinding, listBindingsForTenant, listEnabledBindings, setBindingStatus, updateBinding, } from "./bindings.js";
|
|
8
|
+
export { createBinding, deleteBinding, getBinding, listBindingsForTenant, listBindingsForUser, listEnabledBindings, setBindingStatus, updateBinding, } from "./bindings.js";
|
|
9
9
|
export { startChannelRouter } from "./router.js";
|
|
10
10
|
export { ensureChannelSession } from "./sessions.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,mEAAmE;AACnE,8DAA8D;AAC9D,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AAiBvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,mEAAmE;AACnE,8DAA8D;AAC9D,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AAiBvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/channels/sessions.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,yBAAyB;IACxC;;+CAE2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;6CACyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB;qCACiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD;;;;kCAIkC;AAClC,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,yBAAyB,GAC/B,WAAW,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/channels/sessions.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,yBAAyB;IACxC;;+CAE2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;6CACyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB;qCACiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD;;;;kCAIkC;AAClC,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,yBAAyB,GAC/B,WAAW,CAuFb"}
|
|
@@ -40,16 +40,26 @@ export function ensureChannelSession(ctx, input) {
|
|
|
40
40
|
createdAt: existing.created_at,
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
// Create new. Owner =
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
// Create new. Owner = the binding's `owner_user_id`. Channel
|
|
44
|
+
// bindings are personal credentials; sessions inherit that
|
|
45
|
+
// scope so they only surface in the binding-owner's sidebar.
|
|
46
|
+
// Falls back to the tenant's first user when no binding row
|
|
47
|
+
// exists (development paths that synthesise envelopes without
|
|
48
|
+
// a real binding).
|
|
49
|
+
const bindingRow = ctx.db
|
|
50
|
+
.prepare(`SELECT owner_user_id FROM channel_bindings WHERE id = ?`)
|
|
51
|
+
.get(input.bindingId);
|
|
52
|
+
let ownerId = bindingRow?.owner_user_id;
|
|
53
|
+
if (!ownerId) {
|
|
54
|
+
const fallback = ctx.db
|
|
55
|
+
.prepare(`SELECT id FROM users ORDER BY created_at ASC LIMIT 1`)
|
|
56
|
+
.get();
|
|
57
|
+
if (!fallback) {
|
|
58
|
+
throw new Error(`[channel-session] tenant ${ctx.tenantId} has no users; cannot create channel session`);
|
|
59
|
+
}
|
|
60
|
+
ownerId = fallback.id;
|
|
52
61
|
}
|
|
62
|
+
const ownerRow = { id: ownerId };
|
|
53
63
|
const id = `session_${randomUUID()}`;
|
|
54
64
|
const now = Date.now();
|
|
55
65
|
const title = buildChannelSessionTitle(input);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/channels/sessions.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,gEAAgE;AAChE,sEAAsE;AACtE,qEAAqE;AACrE,8DAA8D;AAC9D,EAAE;AACF,qEAAqE;AACrE,8DAA8D;AAC9D,2CAA2C;AAC3C,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAkC1D;;;;kCAIkC;AAClC,MAAM,UAAU,oBAAoB,CAClC,GAAkB,EAClB,KAAgC;IAEhC,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE;SACpB,OAAO,CACN;;;;;;;gBAOU,CACX;SACA,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,OAAO;YACxB,QAAQ,EAAE,QAAQ,CAAC,SAAS;YAC5B,MAAM,EAAE,QAAQ,CAAC,MAA+B;YAChD,IAAI,EAAE,QAAQ,CAAC,IAA2B;YAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,SAAS,EAAE,QAAQ,CAAC,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/channels/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export type BindingStatus = "idle" | "starting" | "running" | "error" | "stopped
|
|
|
18
18
|
export interface ChannelBinding {
|
|
19
19
|
id: string;
|
|
20
20
|
tenantId: string;
|
|
21
|
+
/** User that owns this binding. Channel credentials are personal
|
|
22
|
+
* (one user's wechat scan shouldn't expose another user's
|
|
23
|
+
* sessions); all CRUD scopes by both tenant + this id. */
|
|
24
|
+
ownerUserId: string;
|
|
21
25
|
channelId: string;
|
|
22
26
|
pluginId: string;
|
|
23
27
|
displayName: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC;;;oCAGoC;AACpC,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;iCACiC;AACjC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,SAAS,GACT,OAAO,GACP,SAAS,CACV;AAEH,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC;;;oCAGoC;AACpC,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;iCACiC;AACjC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,SAAS,GACT,OAAO,GACP,SAAS,CACV;AAEH,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB;;+DAE2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"011-channel-bindings-owner.d.ts","sourceRoot":"","sources":["../../../src/core/migrations/011-channel-bindings-owner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,eAAO,MAAM,EAAE,+BAA+B,CAAC;AAE/C,wBAAgB,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAoCrC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Migration 011 — make channel bindings per-user.
|
|
2
|
+
//
|
|
3
|
+
// Channel credentials (a wechat QR-scan, a telegram bot token) are
|
|
4
|
+
// personal: when Yu binds his wechat, the other users in the same
|
|
5
|
+
// tenant shouldn't see his sessions or be able to send through his
|
|
6
|
+
// adapter. The 0.3.37 schema only carried tenant_id, so this row
|
|
7
|
+
// fixes it.
|
|
8
|
+
//
|
|
9
|
+
// New column:
|
|
10
|
+
// owner_user_id TEXT NOT NULL
|
|
11
|
+
//
|
|
12
|
+
// SQLite doesn't allow adding a NOT NULL column without a default,
|
|
13
|
+
// and we don't want a fake default (would silently claim every
|
|
14
|
+
// existing binding for one user). The migration:
|
|
15
|
+
// 1. ALTER TABLE ... ADD COLUMN owner_user_id TEXT (nullable)
|
|
16
|
+
// 2. backfill: for each existing row, set owner_user_id to the
|
|
17
|
+
// tenant's primary user (first row in `users`, same fallback
|
|
18
|
+
// ensureChannelSession used). On fresh installs the table is
|
|
19
|
+
// empty so this is a no-op.
|
|
20
|
+
// 3. enforce NOT NULL via a CHECK constraint — SQLite doesn't
|
|
21
|
+
// have ALTER COLUMN SET NOT NULL, but the CHECK is enforced
|
|
22
|
+
// on subsequent INSERTs.
|
|
23
|
+
//
|
|
24
|
+
// We also drop+recreate the tenant index to include owner_user_id,
|
|
25
|
+
// so list-by-(tenant, channel) queries the admin UI runs are still
|
|
26
|
+
// fast after we filter to a user.
|
|
27
|
+
export const ID = "011-channel-bindings-owner";
|
|
28
|
+
export function up(db) {
|
|
29
|
+
db.exec(`
|
|
30
|
+
ALTER TABLE channel_bindings ADD COLUMN owner_user_id TEXT;
|
|
31
|
+
`);
|
|
32
|
+
// Backfill: each existing binding gets pinned to the tenant's
|
|
33
|
+
// primary user. Multi-tenant installs typically have only one
|
|
34
|
+
// user per tenant at this stage of the project, so the fallback
|
|
35
|
+
// matches what users would have expected before the per-user
|
|
36
|
+
// model existed.
|
|
37
|
+
db.exec(`
|
|
38
|
+
UPDATE channel_bindings
|
|
39
|
+
SET owner_user_id = (
|
|
40
|
+
SELECT id FROM users ORDER BY created_at ASC LIMIT 1
|
|
41
|
+
)
|
|
42
|
+
WHERE owner_user_id IS NULL;
|
|
43
|
+
`);
|
|
44
|
+
// Enforce non-null via a CHECK. Subsequent INSERTs without
|
|
45
|
+
// owner_user_id will fail loud — better than silently inheriting
|
|
46
|
+
// the tenant's primary user.
|
|
47
|
+
db.exec(`
|
|
48
|
+
CREATE TRIGGER channel_bindings_owner_required
|
|
49
|
+
BEFORE INSERT ON channel_bindings
|
|
50
|
+
FOR EACH ROW
|
|
51
|
+
WHEN NEW.owner_user_id IS NULL
|
|
52
|
+
BEGIN
|
|
53
|
+
SELECT RAISE(ABORT, 'channel_bindings.owner_user_id is required');
|
|
54
|
+
END;
|
|
55
|
+
`);
|
|
56
|
+
db.exec(`
|
|
57
|
+
DROP INDEX IF EXISTS idx_channel_bindings_tenant;
|
|
58
|
+
CREATE INDEX idx_channel_bindings_tenant_user
|
|
59
|
+
ON channel_bindings(tenant_id, owner_user_id, channel_id);
|
|
60
|
+
`);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=011-channel-bindings-owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"011-channel-bindings-owner.js","sourceRoot":"","sources":["../../../src/core/migrations/011-channel-bindings-owner.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,mEAAmE;AACnE,kEAAkE;AAClE,mEAAmE;AACnE,iEAAiE;AACjE,YAAY;AACZ,EAAE;AACF,cAAc;AACd,gCAAgC;AAChC,EAAE;AACF,mEAAmE;AACnE,+DAA+D;AAC/D,iDAAiD;AACjD,iEAAiE;AACjE,iEAAiE;AACjE,kEAAkE;AAClE,kEAAkE;AAClE,iCAAiC;AACjC,gEAAgE;AAChE,iEAAiE;AACjE,8BAA8B;AAC9B,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,kCAAkC;AAIlC,MAAM,CAAC,MAAM,EAAE,GAAG,4BAA4B,CAAC;AAE/C,MAAM,UAAU,EAAE,CAAC,EAAY;IAC7B,EAAE,CAAC,IAAI,CAAC;;GAEP,CAAC,CAAC;IAEH,8DAA8D;IAC9D,8DAA8D;IAC9D,gEAAgE;IAChE,6DAA6D;IAC7D,iBAAiB;IACjB,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,2DAA2D;IAC3D,iEAAiE;IACjE,6BAA6B;IAC7B,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;GAIP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"012-channel-bindings-unique.d.ts","sourceRoot":"","sources":["../../../src/core/migrations/012-channel-bindings-unique.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,eAAO,MAAM,EAAE,gCAAgC,CAAC;AAEhD,wBAAgB,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAKrC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Migration 012 — enforce "one binding per (tenant, user, channel)"
|
|
2
|
+
// at the schema level.
|
|
3
|
+
//
|
|
4
|
+
// 0.3.38 made bindings per-user; now we lock down the invariant
|
|
5
|
+
// each user has at most one active binding per channel. Two bindings
|
|
6
|
+
// for the same wechat scan would race the long-poll loop and
|
|
7
|
+
// duplicate every agent reply — there's no legitimate use case
|
|
8
|
+
// for it.
|
|
9
|
+
//
|
|
10
|
+
// The capability layer (host.channelBindings.create) already
|
|
11
|
+
// cascade-deletes existing bindings for the tuple before
|
|
12
|
+
// inserting, so the unique constraint is belt + braces: a
|
|
13
|
+
// misbehaving plugin or a direct SQL insert can't sneak around
|
|
14
|
+
// the policy.
|
|
15
|
+
export const ID = "012-channel-bindings-unique";
|
|
16
|
+
export function up(db) {
|
|
17
|
+
db.exec(`
|
|
18
|
+
CREATE UNIQUE INDEX channel_bindings_unique_per_user
|
|
19
|
+
ON channel_bindings(tenant_id, owner_user_id, channel_id);
|
|
20
|
+
`);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=012-channel-bindings-unique.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"012-channel-bindings-unique.js","sourceRoot":"","sources":["../../../src/core/migrations/012-channel-bindings-unique.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,uBAAuB;AACvB,EAAE;AACF,gEAAgE;AAChE,qEAAqE;AACrE,6DAA6D;AAC7D,+DAA+D;AAC/D,UAAU;AACV,EAAE;AACF,6DAA6D;AAC7D,yDAAyD;AACzD,0DAA0D;AAC1D,+DAA+D;AAC/D,cAAc;AAId,MAAM,CAAC,MAAM,EAAE,GAAG,6BAA6B,CAAC;AAEhD,MAAM,UAAU,EAAE,CAAC,EAAY;IAC7B,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAc/C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5B;AAED,kFAAkF;AAClF,eAAO,MAAM,UAAU,EAAE,SAAS,EAajC,CAAC;AASF,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CA6B3F"}
|
|
@@ -17,6 +17,8 @@ import * as sessionInbox from "./007-session-inbox.js";
|
|
|
17
17
|
import * as taskIntervention from "./008-task-intervention.js";
|
|
18
18
|
import * as sessionAppVersion from "./009-session-app-version.js";
|
|
19
19
|
import * as channels from "./010-channels.js";
|
|
20
|
+
import * as channelBindingsOwner from "./011-channel-bindings-owner.js";
|
|
21
|
+
import * as channelBindingsUnique from "./012-channel-bindings-unique.js";
|
|
20
22
|
/** Ordered list of migrations. Append, never reorder, never edit past entries. */
|
|
21
23
|
export const MIGRATIONS = [
|
|
22
24
|
{ id: initial.ID, up: initial.up },
|
|
@@ -29,6 +31,8 @@ export const MIGRATIONS = [
|
|
|
29
31
|
{ id: taskIntervention.ID, up: taskIntervention.up },
|
|
30
32
|
{ id: sessionAppVersion.ID, up: sessionAppVersion.up },
|
|
31
33
|
{ id: channels.ID, up: channels.up },
|
|
34
|
+
{ id: channelBindingsOwner.ID, up: channelBindingsOwner.up },
|
|
35
|
+
{ id: channelBindingsUnique.ID, up: channelBindingsUnique.up },
|
|
32
36
|
];
|
|
33
37
|
const ENSURE_MIGRATIONS_TABLE = `
|
|
34
38
|
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,cAAc;AACd,EAAE;AACF,yEAAyE;AACzE,oCAAoC;AAGpC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,iBAAiB,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ import { buildReloadingBuiltinResolver, PluginRegistry } from "./core/plugins/in
|
|
|
20
20
|
import { buildToolCatalogRefreshTool, TOOL_CATALOG_REFRESH_NAME, } from "./chat/host-tools/tool-catalog-refresh.js";
|
|
21
21
|
import { buildPluginsRouter } from "./plugins-routes.js";
|
|
22
22
|
import { CatalogClient } from "./catalog.js";
|
|
23
|
-
import { ChannelAdapterManager, createBinding, deleteBinding, getBinding,
|
|
23
|
+
import { ChannelAdapterManager, createBinding, deleteBinding, getBinding, listBindingsForUser, startChannelRouter, } from "./channels/index.js";
|
|
24
24
|
import path from "node:path";
|
|
25
25
|
import { fileURLToPath } from "node:url";
|
|
26
26
|
import { attachChatHandler, loadHostSkills, runPrompt, } from "./chat/handler.js";
|
|
@@ -212,8 +212,36 @@ pluginRegistry = new PluginRegistry({
|
|
|
212
212
|
// the manager" two-step.
|
|
213
213
|
"host.channelBindings": (ctx) => ({
|
|
214
214
|
async create(input) {
|
|
215
|
+
// Each (tenant, user, channel) tuple may have at most one
|
|
216
|
+
// active binding. Channel credentials are personal *and*
|
|
217
|
+
// exclusive — binding wechat twice would mean two adapters
|
|
218
|
+
// racing for the same long-poll, two outbound sends per
|
|
219
|
+
// agent reply, etc. So a fresh create replaces any
|
|
220
|
+
// existing binding for the same (tenant, user, channel):
|
|
221
|
+
// stop its adapter, cascade-delete its sessions + messages
|
|
222
|
+
// + the binding row, then proceed with the new one. This
|
|
223
|
+
// is also the right shape for "re-scan to refresh expired
|
|
224
|
+
// token" — the new scan just supersedes the old.
|
|
225
|
+
const existing = listBindingsForUser(ctx.db, ctx.tenantId, input.ownerUserId).filter((b) => b.channelId === input.channelId);
|
|
226
|
+
for (const old of existing) {
|
|
227
|
+
await channelManager.stopBinding(old.id).catch(() => { });
|
|
228
|
+
const cascade = ctx.db.transaction(() => {
|
|
229
|
+
ctx.db
|
|
230
|
+
.prepare(`DELETE FROM messages
|
|
231
|
+
WHERE session_id IN (
|
|
232
|
+
SELECT id FROM sessions WHERE channel_binding_id = ?
|
|
233
|
+
)`)
|
|
234
|
+
.run(old.id);
|
|
235
|
+
ctx.db
|
|
236
|
+
.prepare(`DELETE FROM sessions WHERE channel_binding_id = ?`)
|
|
237
|
+
.run(old.id);
|
|
238
|
+
deleteBinding(ctx.db, old.id);
|
|
239
|
+
});
|
|
240
|
+
cascade();
|
|
241
|
+
}
|
|
215
242
|
const row = createBinding(ctx.db, {
|
|
216
243
|
tenantId: ctx.tenantId,
|
|
244
|
+
ownerUserId: input.ownerUserId,
|
|
217
245
|
channelId: input.channelId,
|
|
218
246
|
pluginId: input.pluginId,
|
|
219
247
|
displayName: input.displayName,
|
|
@@ -231,13 +259,16 @@ pluginRegistry = new PluginRegistry({
|
|
|
231
259
|
return toView(row);
|
|
232
260
|
},
|
|
233
261
|
list(opts) {
|
|
234
|
-
const rows =
|
|
262
|
+
const rows = listBindingsForUser(ctx.db, ctx.tenantId, opts.ownerUserId).filter((r) => (opts.channelId ? r.channelId === opts.channelId : true));
|
|
235
263
|
return rows.map(toView);
|
|
236
264
|
},
|
|
237
|
-
async delete(bindingId) {
|
|
265
|
+
async delete(bindingId, ownerUserId) {
|
|
238
266
|
const row = getBinding(ctx.db, bindingId);
|
|
239
|
-
if (!row ||
|
|
267
|
+
if (!row ||
|
|
268
|
+
row.tenantId !== ctx.tenantId ||
|
|
269
|
+
row.ownerUserId !== ownerUserId) {
|
|
240
270
|
return false;
|
|
271
|
+
}
|
|
241
272
|
await channelManager.stopBinding(bindingId).catch(() => { });
|
|
242
273
|
// Cascade: delete the binding row and every session/message
|
|
243
274
|
// tied to it. Without this, the channel sessions linger in
|
|
@@ -268,6 +299,7 @@ function toView(row) {
|
|
|
268
299
|
return {
|
|
269
300
|
id: row.id,
|
|
270
301
|
tenantId: row.tenantId,
|
|
302
|
+
ownerUserId: row.ownerUserId,
|
|
271
303
|
channelId: row.channelId,
|
|
272
304
|
pluginId: row.pluginId,
|
|
273
305
|
displayName: row.displayName,
|
|
@@ -444,13 +476,20 @@ app.get("/api/channel-sessions", (req, res) => {
|
|
|
444
476
|
return;
|
|
445
477
|
}
|
|
446
478
|
const rows = req.ctx.tenant.db
|
|
447
|
-
.prepare(
|
|
479
|
+
.prepare(
|
|
480
|
+
// Scope to the calling user: channel sessions are personal
|
|
481
|
+
// (one user's wechat scan shouldn't surface to others on the
|
|
482
|
+
// tenant). user_id on the session row already tracks this
|
|
483
|
+
// because ensureChannelSession stamps it from the binding's
|
|
484
|
+
// owner_user_id.
|
|
485
|
+
`SELECT id, channel_id, channel_chat_id, channel_binding_id,
|
|
448
486
|
title, created_at
|
|
449
487
|
FROM sessions
|
|
450
488
|
WHERE channel_id IS NOT NULL
|
|
451
489
|
AND kind = 'user'
|
|
490
|
+
AND user_id = ?
|
|
452
491
|
ORDER BY created_at DESC`)
|
|
453
|
-
.all();
|
|
492
|
+
.all(req.ctx.userId);
|
|
454
493
|
res.json({
|
|
455
494
|
sessions: rows.map((r) => ({
|
|
456
495
|
id: r.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,kEAAkE;AAClE,gEAAgE;AAChE,qEAAqE;AACrE,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAE/D,uDAAuD;AACvD,mEAAmE;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,CAAC;AACV,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,+BAA+B,EAC/B,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/C,OAAO,EACL,OAAO,IAAI,YAAY,EACvB,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,yEAAyE;AACzE,qEAAqE;AACrE,iEAAiE;AACjE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,uBAAuB,CAAC;AAEvE,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,4DAA4D;AAC5D,mEAAmE;AACnE,mEAAmE;AACnE,iEAAiE;AACjE,EAAE;AACF,gEAAgE;AAChE,mCAAmC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,oEAAoE;AACpE,+DAA+D;AAC/D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB;IACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC/C,CAAC,CAAC,kBAAkB,CAAC;AAEvB,MAAM,iBAAiB,GAAG,MAAM,6BAA6B,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,mEAAmE;AACnE,6CAA6C;AAC7C,IAAI,cAA8B,CAAC;AACnC,gEAAgE;AAChE,mEAAmE;AACnE,8DAA8D;AAC9D,8DAA8D;AAC9D,mEAAmE;AACnE,gBAAgB;AAChB,IAAI,cAAqC,CAAC;AAC1C,cAAc,GAAG,IAAI,cAAc,CAAC;IAClC,QAAQ,EAAE,iBAAiB;IAC3B,UAAU;IACV,4DAA4D;IAC5D,2DAA2D;IAC3D,2DAA2D;IAC3D,2DAA2D;IAC3D,iCAAiC;IACjC,gBAAgB,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;IACxC,2DAA2D;IAC3D,4DAA4D;IAC5D,4DAA4D;IAC5D,uDAAuD;IACvD,mDAAmD;IACnD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,2BAA2B,CAAC;gBAChC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,oDAAoD;gBACpD,qDAAqD;gBACrD,uDAAuD;gBACvD,8BAA8B;gBAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc;aAC/B,CAAC;SACH;KACF;IACD,gBAAgB,EAAE;QAChB,mBAAmB,EAAE,CAAC,GAAG,EAA0B,EAAE,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CACpC,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC;SAC9C,CAAC;QACF,2DAA2D;QAC3D,+DAA+D;QAC/D,6DAA6D;QAC7D,8DAA8D;QAC9D,EAAE;QACF,+DAA+D;QAC/D,4DAA4D;QAC5D,+DAA+D;QAC/D,wCAAwC;QACxC,kBAAkB,EAAE,CAAC,GAAG,EAAyB,EAAE,CAAC,CAAC;YACnD,IAAI;gBACF,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAC;gBACJ,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;oBACzC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAC3C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACtB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE;wBAC1C,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;YACJ,CAAC;SACF,CAAC;QACF,mBAAmB,EAAE,CAAC,GAAG,EAA0B,EAAE,CAAC,CAAC;YACrD,IAAI;gBACF,OAAO,cAAc;qBAClB,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;oBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;qBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,CAAC;SACF,CAAC;QACF,0DAA0D;QAC1D,wDAAwD;QACxD,0DAA0D;QAC1D,4DAA4D;QAC5D,8CAA8C;QAC9C,oDAAoD;QACpD,2DAA2D;QAC3D,yDAAyD;QACzD,oDAAoD;QACpD,UAAU,EAAE,CAAC,GAAG,EAAiB,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,iBAAiB,CAAC,KAAK;gBAC3B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,iBAAiB,CAAC;oBAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,mBAAmB,EAAE,GAAG,CAAC,YAAY;oBACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,mBAAmB,EAAE,CAAC,GAAG,EAA0B,EAAE,CAAC,CAAC;YACrD,IAAI;gBACF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,UAAU;oBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC,CAAC;gBACJ,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvD,cAAc,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;iBACzC,CAAC;YACJ,CAAC;SACF,CAAC;QACF,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,MAAM,GAAoB;gBAC9B,GAAG,EAAE,KAAK,EACR,GAA2B,EACK,EAAE;oBAClC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;wBAChC,GAAG;wBACH,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;wBAC1C,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;wBACpC,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,eAAe,EAAE,GAAG,CAAC,eAAe;wBACpC,cAAc;wBACd,OAAO,EAAE,GAAG,CAAC,YAAY;qBAC1B,CAAC,CAAC;oBACH,OAAO;wBACL,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,6DAA6D;QAC7D,0DAA0D;QAC1D,6DAA6D;QAC7D,wDAAwD;QACxD,2DAA2D;QAC3D,yBAAyB;QACzB,sBAAsB,EAAE,CAAC,GAAG,EAA6B,EAAE,CAAC,CAAC;YAC3D,KAAK,CAAC,MAAM,CAAC,KAAK;gBAChB,0DAA0D;gBAC1D,yDAAyD;gBACzD,2DAA2D;gBAC3D,wDAAwD;gBACxD,mDAAmD;gBACnD,yDAAyD;gBACzD,2DAA2D;gBAC3D,yDAAyD;gBACzD,0DAA0D;gBAC1D,iDAAiD;gBACjD,MAAM,QAAQ,GAAG,mBAAmB,CAClC,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,QAAQ,EACZ,KAAK,CAAC,WAAW,CAClB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;wBACtC,GAAG,CAAC,EAAE;6BACH,OAAO,CACN;;;qBAGK,CACN;6BACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACf,GAAG,CAAC,EAAE;6BACH,OAAO,CACN,mDAAmD,CACpD;6BACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACf,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,oDAAoD;oBACpD,2DAA2D;oBAC3D,yCAAyC;oBACzC,MAAM,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtD,OAAO,CAAC,IAAI,CACV,uCAAuC,GAAG,CAAC,EAAE,aAC3C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,IAAI;gBACP,MAAM,IAAI,GAAG,mBAAmB,CAC9B,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,WAAW,CACjB,CAAC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAChE,CAAC;gBACF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC1C,IACE,CAAC,GAAG;oBACJ,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ;oBAC7B,GAAG,CAAC,WAAW,KAAK,WAAW,EAC/B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC5D,4DAA4D;gBAC5D,2DAA2D;gBAC3D,0DAA0D;gBAC1D,2DAA2D;gBAC3D,uDAAuD;gBACvD,qDAAqD;gBACrD,8CAA8C;gBAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;oBAClC,GAAG,CAAC,EAAE;yBACH,OAAO,CACN;;;mBAGK,CACN;yBACA,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClB,GAAG,CAAC,EAAE;yBACH,OAAO,CACN,mDAAmD,CACpD;yBACA,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClB,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;gBACH,GAAG,EAAE,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;KACH;CACF,CAAC,CAAC;AAEH,SAAS,MAAM,CAAC,GAAiD;IAC/D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,sDAAsD;AACtD,gDAAgD;AAChD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,iEAAiE;AACjE,6DAA6D;AAC7D,+DAA+D;AAC/D,iEAAiE;AACjE,+DAA+D;AAC/D,oDAAoD;AACpD,oCAAoC;AACpC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC9E,IAAI,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,wDAAwD,CACzD,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QACD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX;YACE,EAAE;YACF,cAAc;YACd,6CAA6C;YAC7C,iDAAiD;YACjD,EAAE;YACF,kEAAkE;SACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC5E,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;IACtB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACT,sCAAsC,SAAS,CAAC,QAAQ,gBAAgB,SAAS,CAAC,MAAM,GAAG,CAC5F,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,iEAAiE;AACjE,6DAA6D;AAC7D,iEAAiE;AACjE,+BAA+B;AAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,wCAAwC,QAAQ,WAAW,EAC3D,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,8BAA8B;AAC9B,EAAE;AACF,4DAA4D;AAC5D,gEAAgE;AAChE,gEAAgE;AAChE,+DAA+D;AAC/D,0DAA0D;AAC1D,cAAc,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IACzD,wDAAwD;IACxD,6DAA6D;IAC7D,0CAA0C;IAC1C,IAAI,SAAS,GAEF,IAAI,CAAC;IAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE;aACf,OAAO,CACN,sCAAsC,CACvC;aACA,GAAG,CAAC,SAAS,CAAC,CAAC;QAClB,IAAI,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,GAAG,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,6CAA6C,SAAS,YAAY,CACnE,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC;IAEtB,4DAA4D;IAC5D,2DAA2D;IAC3D,6DAA6D;IAC7D,eAAe;IACf,MAAM,IAAI,GAAG,CAAC,GAA8C,EAAE,EAAE,CAC9D,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,2DAA2D;IAC3D,6DAA6D;IAC7D,4DAA4D;IAC5D,2CAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,CAAC,GAAG,EAAE,GAAG,IAAI,CACd,CAAC;IACF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC;YACd,GAAG;YACH,MAAM;YACN,IAAI;YACJ,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc;YACd,OAAO,EAAE,GAAG,CAAC,YAAY;SAC1B,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;IACH,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AACF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAExC,uEAAuE;AACvE,yEAAyE;AACzE,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,oBAAoB;AACpB,MAAM,eAAe,GAAG,iBAAiB,EAAE,IAAI,SAAS,CAAC;AACzD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,GAAG,CAAC,IAAI,CAAC;QACP,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,sEAAsE;AACtE,sEAAsE;AACtE,+BAA+B;AAC/B,GAAG,CAAC,GAAG,CACL,MAAM,EACN,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;SAC3B,OAAO;IAWN,2DAA2D;IAC3D,6DAA6D;IAC7D,0DAA0D;IAC1D,4DAA4D;IAC5D,iBAAiB;IACjB;;;;;;iCAM2B,CAC5B;SACA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC;QACP,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,aAAa,EAAE,CAAC,CAAC,eAAe;YAChC,gBAAgB,EAAE,CAAC,CAAC,kBAAkB;YACtC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,UAAU;SACxB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;IACnC,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM;QACN,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;QACpD,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;QACnF,SAAS,EAAE,MAAM,CAAC,QAAQ,KAAK,aAAa,IAAI,MAAM,KAAK,WAAW;KACvE,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,UAAU;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;QACtB,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACjC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,6DAA6D;IAC7D,8DAA8D;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAC;IACJ,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,SAAS;QAC3C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE;YAC1C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,gEAAgE;IAChE,4DAA4D;IAC5D,yDAAyD;IACzD,MAAM,GAAG,GAAG,MAAM;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;QAC3B,gDAAgD;QAChD,0DAA0D;QAC1D,wDAAwD;QACxD,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjC,qEAAqE;AACrE,mEAAmE;AACnE,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEzD,wDAAwD;AACxD,EAAE;AACF,sEAAsE;AACtE,0DAA0D;AAC1D,sDAAsD;AACtD,0BAA0B;AAC1B,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,+DAA+D;AAC/D,oCAAoC;AACpC,GAAG,CAAC,GAAG,CACL,MAAM,EACN,kBAAkB,CAAC;IACjB,QAAQ,EAAE,cAAc;IACxB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,aAAa;IACtB,UAAU;IACV,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE;IAChD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QACvD,sDAAsD;QACtD,sDAAsD;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/C,QAAQ,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;SAClD,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,0DAA0D;YAC1D,oDAAoD;YACpD,+CAA+C;YAC/C,IAAK,MAAkC,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC;oBACF,MAAwC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QACD,8DAA8D;QAC9D,wDAAwD;QACxD,yDAAyD;QACzD,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,sDAAsD;YACtD,4DAA4D;YAC5D,uDAAuD;YACvD,yDAAyD;YACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACxD,2DAA2D;YAC3D,0DAA0D;YAC1D,0DAA0D;YAC1D,wDAAwD;YACxD,6CAA6C;YAC7C,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,qDACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CACH,CAAC;AACF,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC7C,+DAA+D;IAC/D,8DAA8D;IAC9D,mDAAmD;IACnD,8DAA8D;IAC9D,8DAA8D;IAC9D,8DAA8D;IAC9D,2DAA2D;IAC3D,gBAAgB;IAChB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,gBAAgB,CACxD,OAA4D,EAC5D,kBAAkB,CACnB,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,sBAAsB,UAAU,CAAC,QAAQ,YAAY,UAAU,CAAC,OAAO,EAAE;SAClF,CAAC,CACH,CAAC;QACF,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,cAAc;YACpB,MAAM,EACJ,UAAU,EAAE,IAAI,KAAK,MAAM;gBACzB,CAAC,CAAC,sBAAsB,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;gBACjE,CAAC,CAAC,8CAA8C;SACrD,CAAC,CACH,CAAC;QACF,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8DAA8D;QAC9D,yDAAyD;QACzD,2DAA2D;QAC3D,iBAAiB;QACjB,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,kBAAkB;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,UAAU,QAAQ,yCAAyC;iBACpE,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,UAAU,QAAQ,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAC9F,CAAC,CACH,CAAC;YACF,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;QACT,CAAC;IACH,CAAC;IACD,oDAAoD;IACpD,6DAA6D;IAC7D,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8DAA8D;QAC9D,2DAA2D;QAC3D,sCAAsC;QACtC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,0CAA0C,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC1G,CAAC;IACJ,CAAC;IACD,iBAAiB,CAAC;QAChB,GAAG;QACH,MAAM;QACN,MAAM;QACN,cAAc;QACd,2DAA2D;QAC3D,iEAAiE;QACjE,gDAAgD;QAChD,2DAA2D;QAC3D,sDAAsD;QACtD,sDAAsD;QACtD,sCAAsC;QACtC,OAAO,EAAE,GAAG,CAAC,YAAY;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,6DAA6D;AAC7D,EAAE;AACF,iEAAiE;AACjE,gEAAgE;AAChE,qCAAqC;AACrC,EAAE;AACF,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,4CAA4C;AAC5C,EAAE;AACF,8DAA8D;AAC9D,8DAA8D;AAC9D,gDAAgD;AAChD,6DAA6D;AAC7D,cAAc;AACd,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAChD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YACrD,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,8BAA8B,OAAO;qCACR,CAC9B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,6DAA6D;YAC7D,wDAAwD;YACxD,qCAAqC;YACrC,2DAA2D;YAC3D,oDAAoD;YACpD,sDAAsD;YACtD,6BAA6B;YAC7B,EAAE;YACF,yDAAyD;YACzD,sDAAsD;YACtD,wDAAwD;YACxD,oDAAoD;YACpD,+CAA+C;YAC/C,kDAAkD;YAClD,sDAAsD;YACtD,8BAA8B;YAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CACjC,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzB,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;oBAAE,OAAO,IAAI,EAAE,CAAC;gBAChD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO,IAAI,EAAE,CAAC;gBACvC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,EAAE,CAAC;gBAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,IAAI,EAAE,CAAC;gBACjE,wDAAwD;gBACxD,gDAAgD;gBAChD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,8CAA8C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,6DAA6D;AAC7D,2DAA2D;AAC3D,wDAAwD;AACxD,8DAA8D;AAC9D,uDAAuD;AACvD,MAAM,SAAS,GAAG,OAAO,CACvB,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CACxE,CAAC;AAEF,gEAAgE;AAChE,0DAA0D;AAC1D,iEAAiE;AACjE,8DAA8D;AAC9D,8DAA8D;AAC9D,gEAAgE;AAChE,oDAAoD;AACpD,cAAc,GAAG,IAAI,qBAAqB,CAAC;IACzC,SAAS;IACT,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IAC/E,CAAC;IACD,sBAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,SAAS,EAAE,SAAS,CAAC,OAAO;CAC7B,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;IAC3C,SAAS;IACT,cAAc;CACf,CAAC,CAAC;AACH,0DAA0D;AAC1D,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC1C,OAAO,CAAC,IAAI,CACV,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,yDAAyD;AACzD,6DAA6D;AAC7D,aAAa;AACZ,UAAqE,CAAC,0BAA0B;IAC/F,iBAAiB,CAAC;AAEpB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACvB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;IACtE,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,KAAK,CAAC,CAAC;IAChE,yBAAyB,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,SAAS,yBAAyB;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,+BAA+B,CAAC;YAC1C,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,GAAG;YAAE,OAAO;QACnD,MAAM,IAAI,GAAG;YACX,GAAG,GAAG;YACN,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE;SAC3D,CAAC;QACF,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sDAAsD;QACtD,oCAAoC;QACpC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,mDACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;IAClC,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,iBAAiB,CAAC,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAChB,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,gEAAgE;QAChE,KAAK,cAAc,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,SAAS,wBAAwB,CAC/B,KAA0B,EAC1B,SAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,OAAO,GACX,CAAC,KAAK,IAAI,UAAU,KAAK,EAAE,EAAE,QAAQ,IAAI,aAAa,QAAQ,EAAE,CAAC;SAC9D,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC;IAC7C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CACL,2BAA2B,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,QAAQ,sBAAsB;YACtF,qBAAqB,OAAO,IAAI;YAChC,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,CACL,2BAA2B,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,QAAQ,uBAAuB;QACvF,yBAAyB,OAAO,IAAI;QACpC,0EAA0E;QAC1E,qFAAqF,CACtF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAKV,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAehC,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAKV,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAehC,QAAA,MAAM,MAAM,EAAE,kBAmPb,CAAC;AAkBF,eAAe,MAAM,CAAC"}
|
|
@@ -93,6 +93,11 @@ const plugin = {
|
|
|
93
93
|
// → { ok, scanned: false } while pending
|
|
94
94
|
// → { ok, scanned: true, binding } after confirm
|
|
95
95
|
loginPoll: async (req, res) => {
|
|
96
|
+
const userId = req.ctx?.userId;
|
|
97
|
+
if (!userId) {
|
|
98
|
+
res.status(401).json({ ok: false, error: "no user in request context" });
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
96
101
|
const body = (req.body ?? {});
|
|
97
102
|
if (!body.qrcode) {
|
|
98
103
|
res.status(400).json({ ok: false, error: "missing qrcode" });
|
|
@@ -114,6 +119,7 @@ const plugin = {
|
|
|
114
119
|
// about this token after confirm.
|
|
115
120
|
const bindingBaseUrl = resp.baseurl?.trim();
|
|
116
121
|
const binding = await bindings.create({
|
|
122
|
+
ownerUserId: userId,
|
|
117
123
|
channelId: "wechat",
|
|
118
124
|
pluginId: "wechat",
|
|
119
125
|
displayName: display,
|
|
@@ -163,8 +169,13 @@ const plugin = {
|
|
|
163
169
|
}
|
|
164
170
|
},
|
|
165
171
|
// GET /bindings
|
|
166
|
-
listBindings: (
|
|
167
|
-
const
|
|
172
|
+
listBindings: (req, res) => {
|
|
173
|
+
const userId = req.ctx?.userId;
|
|
174
|
+
if (!userId) {
|
|
175
|
+
res.status(401).json({ ok: false, error: "no user in request context" });
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const list = bindings.list({ ownerUserId: userId, channelId: "wechat" });
|
|
168
179
|
// Strip the token before serialising \u2014 the admin UI
|
|
169
180
|
// doesn't need to see it and we don't want it floating
|
|
170
181
|
// around browser dev tools / log streams.
|
|
@@ -184,14 +195,20 @@ const plugin = {
|
|
|
184
195
|
// session storage; the host's /api/channel-sessions is
|
|
185
196
|
// still around but channel-agnostic. Per-channel rendering
|
|
186
197
|
// (icon, pill, label) belongs to the plugin.
|
|
187
|
-
listSessions: (
|
|
198
|
+
listSessions: (req, res) => {
|
|
199
|
+
const userId = req.ctx?.userId;
|
|
200
|
+
if (!userId) {
|
|
201
|
+
res.status(401).json({ ok: false, error: "no user in request context" });
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
188
204
|
const rows = ctx.db
|
|
189
205
|
.prepare(`SELECT id, channel_chat_id, channel_binding_id, title, created_at
|
|
190
206
|
FROM sessions
|
|
191
207
|
WHERE channel_id = 'wechat'
|
|
192
208
|
AND kind = 'user'
|
|
209
|
+
AND user_id = ?
|
|
193
210
|
ORDER BY created_at DESC`)
|
|
194
|
-
.all();
|
|
211
|
+
.all(userId);
|
|
195
212
|
res.json({
|
|
196
213
|
ok: true,
|
|
197
214
|
sessions: rows.map((r) => ({
|
|
@@ -212,13 +229,18 @@ const plugin = {
|
|
|
212
229
|
},
|
|
213
230
|
// DELETE /bindings/:id
|
|
214
231
|
deleteBinding: async (req, res) => {
|
|
232
|
+
const userId = req.ctx?.userId;
|
|
233
|
+
if (!userId) {
|
|
234
|
+
res.status(401).json({ ok: false, error: "no user in request context" });
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
215
237
|
const raw = req.params.id;
|
|
216
238
|
const id = Array.isArray(raw) ? raw[0] : raw;
|
|
217
239
|
if (!id) {
|
|
218
240
|
res.status(400).json({ ok: false, error: "missing binding id" });
|
|
219
241
|
return;
|
|
220
242
|
}
|
|
221
|
-
const removed = await bindings.delete(id);
|
|
243
|
+
const removed = await bindings.delete(id, userId);
|
|
222
244
|
if (!removed) {
|
|
223
245
|
res.status(404).json({ ok: false, error: "binding not found" });
|
|
224
246
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|