@slates/provider-handler 1.0.0-rc.3 → 1.0.0-rc.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1462 -2
- package/dist/index.d.cts +8 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.module.js +1439 -2
- package/package.json +12 -11
- package/src/attachments.test.ts +171 -0
- package/src/index.ts +1054 -136
- package/src/pQueue.test.ts +18 -0
- package/src/pQueue.ts +18 -0
- package/src/spec.ts +130 -21
- package/src/validation.ts +1 -1
- package/src/webhook.test.ts +65 -0
- package/src/webhook.ts +69 -0
- package/dist/action/action.d.ts +0 -90
- package/dist/action/action.d.ts.map +0 -1
- package/dist/action/builder.d.ts +0 -27
- package/dist/action/builder.d.ts.map +0 -1
- package/dist/action/index.d.ts +0 -5
- package/dist/action/index.d.ts.map +0 -1
- package/dist/action/tool.d.ts +0 -11
- package/dist/action/tool.d.ts.map +0 -1
- package/dist/action/trigger.d.ts +0 -14
- package/dist/action/trigger.d.ts.map +0 -1
- package/dist/auth/auth.d.ts +0 -26
- package/dist/auth/auth.d.ts.map +0 -1
- package/dist/auth/index.d.ts +0 -3
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/types.d.ts +0 -148
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/axios/index.d.ts +0 -4
- package/dist/axios/index.d.ts.map +0 -1
- package/dist/config/config.d.ts +0 -22
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -2
- package/dist/config/index.d.ts.map +0 -1
- package/dist/context/context.d.ts +0 -20
- package/dist/context/context.d.ts.map +0 -1
- package/dist/context/hook.d.ts +0 -4
- package/dist/context/hook.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.d.ts.map +0 -1
- package/dist/error/base.d.ts +0 -5
- package/dist/error/base.d.ts.map +0 -1
- package/dist/error/declaration.d.ts +0 -6
- package/dist/error/declaration.d.ts.map +0 -1
- package/dist/error/index.d.ts +0 -3
- package/dist/error/index.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.modern.js +0 -2
- package/dist/index.modern.js.map +0 -1
- package/dist/index.module.js.map +0 -1
- package/dist/index.umd.js +0 -2
- package/dist/index.umd.js.map +0 -1
- package/dist/spec.d.ts +0 -14
- package/dist/spec.d.ts.map +0 -1
- package/dist/specification/index.d.ts +0 -3
- package/dist/specification/index.d.ts.map +0 -1
- package/dist/specification/slate.d.ts +0 -15
- package/dist/specification/slate.d.ts.map +0 -1
- package/dist/specification/specification.d.ts +0 -30
- package/dist/specification/specification.d.ts.map +0 -1
- package/dist/specification/zero.d.ts +0 -13
- package/dist/specification/zero.d.ts.map +0 -1
- package/dist/state.d.ts +0 -8
- package/dist/state.d.ts.map +0 -1
- package/dist/tokens.d.ts +0 -34
- package/dist/tokens.d.ts.map +0 -1
- package/dist/validation.d.ts +0 -5
- package/dist/validation.d.ts.map +0 -1
package/dist/auth/types.d.ts
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
export type SlateAuthWithOauth<InputType extends {}, OutputType extends {
|
|
3
|
-
token: string;
|
|
4
|
-
refreshToken?: string;
|
|
5
|
-
expiresAt?: number | string | Date;
|
|
6
|
-
}> = {
|
|
7
|
-
type: 'auth.oauth';
|
|
8
|
-
name: string;
|
|
9
|
-
key: string;
|
|
10
|
-
scopes: {
|
|
11
|
-
title: string;
|
|
12
|
-
description?: string;
|
|
13
|
-
scope: string;
|
|
14
|
-
}[];
|
|
15
|
-
inputSchema?: z.ZodType<InputType>;
|
|
16
|
-
onInputChanged?: (params: {
|
|
17
|
-
previousInput: InputType | null;
|
|
18
|
-
newInput: InputType;
|
|
19
|
-
}) => Promise<{
|
|
20
|
-
input?: InputType;
|
|
21
|
-
} | void>;
|
|
22
|
-
getDefaultInput?: () => Promise<InputType>;
|
|
23
|
-
getAuthorizationUrl: (ctx: {
|
|
24
|
-
redirectUri: string;
|
|
25
|
-
state: string;
|
|
26
|
-
input: InputType;
|
|
27
|
-
clientId: string;
|
|
28
|
-
clientSecret: string;
|
|
29
|
-
scopes: string[];
|
|
30
|
-
}) => Promise<{
|
|
31
|
-
url: string;
|
|
32
|
-
input?: InputType;
|
|
33
|
-
}>;
|
|
34
|
-
handleCallback: (ctx: {
|
|
35
|
-
code: string;
|
|
36
|
-
state: string;
|
|
37
|
-
redirectUri: string;
|
|
38
|
-
input: InputType;
|
|
39
|
-
clientId: string;
|
|
40
|
-
clientSecret: string;
|
|
41
|
-
scopes: string[];
|
|
42
|
-
}) => Promise<{
|
|
43
|
-
output: OutputType;
|
|
44
|
-
input?: InputType;
|
|
45
|
-
}>;
|
|
46
|
-
handleTokenRefresh?: (ctx: {
|
|
47
|
-
output: OutputType;
|
|
48
|
-
input: InputType;
|
|
49
|
-
clientId: string;
|
|
50
|
-
clientSecret: string;
|
|
51
|
-
scopes: string[];
|
|
52
|
-
}) => Promise<{
|
|
53
|
-
output: OutputType;
|
|
54
|
-
input?: InputType;
|
|
55
|
-
}>;
|
|
56
|
-
getProfile?: (ctx: {
|
|
57
|
-
output: OutputType;
|
|
58
|
-
input: InputType;
|
|
59
|
-
scopes: string[];
|
|
60
|
-
}) => Promise<{
|
|
61
|
-
profile: Record<string, any>;
|
|
62
|
-
}>;
|
|
63
|
-
};
|
|
64
|
-
export type SlateAuthWithToken<InputType extends {}, OutputType extends {
|
|
65
|
-
token?: string;
|
|
66
|
-
}> = {
|
|
67
|
-
type: 'auth.token';
|
|
68
|
-
name: string;
|
|
69
|
-
key: string;
|
|
70
|
-
inputSchema?: z.ZodType<InputType>;
|
|
71
|
-
getOutput: (ctx: {
|
|
72
|
-
input: InputType;
|
|
73
|
-
}) => Promise<{
|
|
74
|
-
output: OutputType;
|
|
75
|
-
}>;
|
|
76
|
-
onInputChanged?: (params: {
|
|
77
|
-
previousInput: InputType;
|
|
78
|
-
newInput: InputType;
|
|
79
|
-
}) => Promise<{
|
|
80
|
-
input?: InputType;
|
|
81
|
-
} | void>;
|
|
82
|
-
getDefaultInput?: () => Promise<InputType>;
|
|
83
|
-
getProfile?: (ctx: {
|
|
84
|
-
output: OutputType;
|
|
85
|
-
input: InputType;
|
|
86
|
-
}) => Promise<{
|
|
87
|
-
profile: Record<string, any>;
|
|
88
|
-
}>;
|
|
89
|
-
};
|
|
90
|
-
export type SlateAuthWithServiceAccount<InputType extends {}, OutputType extends {}> = {
|
|
91
|
-
type: 'auth.service_account';
|
|
92
|
-
name: string;
|
|
93
|
-
key: string;
|
|
94
|
-
inputSchema?: z.ZodType<InputType>;
|
|
95
|
-
getOutput: (ctx: {
|
|
96
|
-
input: InputType;
|
|
97
|
-
}) => Promise<{
|
|
98
|
-
output: OutputType;
|
|
99
|
-
}>;
|
|
100
|
-
onInputChanged?: (params: {
|
|
101
|
-
previousInput: InputType;
|
|
102
|
-
newInput: InputType;
|
|
103
|
-
}) => Promise<{
|
|
104
|
-
input?: InputType;
|
|
105
|
-
} | void>;
|
|
106
|
-
getDefaultInput?: () => Promise<InputType>;
|
|
107
|
-
getProfile?: (ctx: {
|
|
108
|
-
output: OutputType;
|
|
109
|
-
input: InputType;
|
|
110
|
-
}) => Promise<{
|
|
111
|
-
profile: Record<string, any>;
|
|
112
|
-
}>;
|
|
113
|
-
};
|
|
114
|
-
export type SlateAuthWithCustomData<InputType extends {}, OutputType extends {}> = {
|
|
115
|
-
type: 'auth.custom';
|
|
116
|
-
name: string;
|
|
117
|
-
key: string;
|
|
118
|
-
inputSchema?: z.ZodType<InputType>;
|
|
119
|
-
getOutput: (ctx: {
|
|
120
|
-
input: InputType;
|
|
121
|
-
}) => Promise<{
|
|
122
|
-
output: OutputType;
|
|
123
|
-
}>;
|
|
124
|
-
onInputChanged?: (params: {
|
|
125
|
-
previousInput: InputType;
|
|
126
|
-
newInput: InputType;
|
|
127
|
-
}) => Promise<{
|
|
128
|
-
input?: InputType;
|
|
129
|
-
} | void>;
|
|
130
|
-
getDefaultInput?: () => Promise<InputType>;
|
|
131
|
-
getProfile?: (ctx: {
|
|
132
|
-
output: OutputType;
|
|
133
|
-
input: InputType;
|
|
134
|
-
}) => Promise<{
|
|
135
|
-
profile: Record<string, any>;
|
|
136
|
-
}>;
|
|
137
|
-
};
|
|
138
|
-
export type SlateAuthWithNone<InputType extends {}, OutputType extends {}> = {
|
|
139
|
-
type: 'auth.none';
|
|
140
|
-
name: string;
|
|
141
|
-
key: string;
|
|
142
|
-
};
|
|
143
|
-
export type SlateAuthType<InputType extends {}, OutputType extends {}> = SlateAuthWithOauth<InputType, OutputType & {
|
|
144
|
-
token: string;
|
|
145
|
-
}> | SlateAuthWithToken<InputType, OutputType & {
|
|
146
|
-
token?: string;
|
|
147
|
-
}> | SlateAuthWithServiceAccount<InputType, OutputType> | SlateAuthWithCustomData<InputType, OutputType> | SlateAuthWithNone<InputType, OutputType>;
|
|
148
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/auth/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
|
package/dist/axios/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/axios/index.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGvD,eAAO,IAAI,WAAW,GAAI,SAAS,mBAAmB,kCAsBrD,CAAC;AAEF,eAAO,IAAI,KAAK,+BAAgB,CAAC"}
|
package/dist/config/config.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
export declare class SlateConfig<ConfigType extends {}> {
|
|
3
|
-
#private;
|
|
4
|
-
private constructor();
|
|
5
|
-
static create<ConfigType extends {}>(schema: z.ZodType<ConfigType>): SlateConfig<ConfigType>;
|
|
6
|
-
config<NewConfigType extends {}>(schema: z.ZodType<NewConfigType>): SlateConfig<NewConfigType>;
|
|
7
|
-
onConfigChanged(handler: (params: {
|
|
8
|
-
previousConfig: ConfigType | null;
|
|
9
|
-
newConfig: ConfigType;
|
|
10
|
-
}) => void): SlateConfig<ConfigType>;
|
|
11
|
-
getDefaultConfig(getter: () => ConfigType): SlateConfig<ConfigType>;
|
|
12
|
-
get configSchema(): z.ZodType<ConfigType, unknown, z.core.$ZodTypeInternals<ConfigType, unknown>>;
|
|
13
|
-
get handlers(): {
|
|
14
|
-
configChanged: ((params: {
|
|
15
|
-
previousConfig: ConfigType | null;
|
|
16
|
-
newConfig: ConfigType;
|
|
17
|
-
}) => void) | null;
|
|
18
|
-
getDefaultConfig: (() => ConfigType) | null;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export declare let config: <ConfigType extends {}>(schema: z.ZodType<ConfigType>) => SlateConfig<ConfigType>;
|
|
22
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,qBAAa,WAAW,CAAC,UAAU,SAAS,EAAE;;IAO5C,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAIlE,MAAM,CAAC,aAAa,SAAS,EAAE,EAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAC/B,WAAW,CAAC,aAAa,CAAC;IAK7B,eAAe,CACb,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,GACtF,WAAW,CAAC,UAAU,CAAC;IAK1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAKnE,IAAI,YAAY,kFAEf;IAED,IAAI,QAAQ;iCAnCE;YAAE,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;YAAC,SAAS,EAAE,UAAU,CAAA;SAAE,KAAK,IAAI;iCAEzD,UAAU;MAsCnC;CACF;AAED,eAAO,IAAI,MAAM,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,4BACjC,CAAC"}
|
package/dist/config/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { SlateLogger, SlateLogMessageInput } from '../logger';
|
|
2
|
-
import { SlateSpecification } from '../specification/specification';
|
|
3
|
-
export declare class SlateContext<ConfigType extends {}, AuthType extends {}, InputType extends {}> {
|
|
4
|
-
#private;
|
|
5
|
-
private readonly spec;
|
|
6
|
-
private readonly logger;
|
|
7
|
-
constructor(config: ConfigType, input: InputType, auth: AuthType, spec: SlateSpecification<ConfigType, AuthType>, logger: SlateLogger);
|
|
8
|
-
get specification(): SlateSpecification<ConfigType, AuthType>;
|
|
9
|
-
get config(): Readonly<ConfigType>;
|
|
10
|
-
get input(): Readonly<InputType>;
|
|
11
|
-
get event(): Readonly<InputType>;
|
|
12
|
-
get state(): "state" extends keyof InputType ? InputType["state"] : never;
|
|
13
|
-
get request(): "request" extends keyof InputType ? InputType["request"] : never;
|
|
14
|
-
get auth(): Readonly<AuthType>;
|
|
15
|
-
info(message: SlateLogMessageInput): void;
|
|
16
|
-
warn(message: SlateLogMessageInput): void;
|
|
17
|
-
error(message: SlateLogMessageInput): void;
|
|
18
|
-
progress(message: SlateLogMessageInput): void;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,qBAAa,YAAY,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,SAAS,EAAE;;IAStF,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAJvB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,QAAQ,EACG,IAAI,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC9C,MAAM,EAAE,WAAW;IAOtC,IAAI,aAAa,6CAEhB;IAED,IAAI,MAAM,yBAET;IAED,IAAI,KAAK,wBAER;IAED,IAAI,KAAK,wBAER;IAED,IAAI,KAAK,IAC6C,OAAO,SAAS,MAAM,SAAS,GAC/E,SAAS,CAAC,OAAO,CAAC,GAClB,KAAK,CACV;IAED,IAAI,OAAO,IAC6C,SAAS,SAAS,MAAM,SAAS,GACnF,SAAS,CAAC,SAAS,CAAC,GACpB,KAAK,CACV;IAED,IAAI,IAAI,uBAEP;IAED,IAAI,CAAC,OAAO,EAAE,oBAAoB;IAIlC,IAAI,CAAC,OAAO,EAAE,oBAAoB;IAIlC,KAAK,CAAC,OAAO,EAAE,oBAAoB;IAInC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;CAGvC"}
|
package/dist/context/hook.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { SlateContext } from './context';
|
|
2
|
-
export declare let runWithContext: <ConfigType extends {}, AuthType extends {}, InputType extends {}>(context: SlateContext<ConfigType, AuthType, InputType>, fn: () => Promise<void>) => Promise<void>;
|
|
3
|
-
export declare let getCurrentContext: <ConfigType extends {}, AuthType extends {}, InputType extends {}>() => SlateContext<ConfigType, AuthType, InputType>;
|
|
4
|
-
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/context/hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,eAAO,IAAI,cAAc,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,SAAS,EAAE,EAC3F,SAAS,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EACtD,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,kBAGxB,CAAC;AAEF,eAAO,IAAI,iBAAiB,GAC1B,UAAU,SAAS,EAAE,EACrB,QAAQ,SAAS,EAAE,EACnB,SAAS,SAAS,EAAE,OACjB,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAMhD,CAAC"}
|
package/dist/context/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
package/dist/error/base.d.ts
DELETED
package/dist/error/base.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/error/base.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;IAK3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU;CAG/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../src/error/declaration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,OAAO,EAAE,MAAM;IAK3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB;CAG1D"}
|
package/dist/error/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return { input: await authMethod.getDefaultInput() };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await authMethod.onInputChanged({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n });\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await authMethod.getOutput({ input });\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await authMethod.getProfile({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n });\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await authMethod.handleTokenRefresh({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let res = await action.handleInvocation(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let res = await action.handleEvent(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let res = await action.pollEvents(\n new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let res = await action.handleRequest(\n new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let res = await action.autoRegisterWebhook(\n new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n await action.autoUnregisterWebhook(\n new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","_authMethod$getDefaul","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_exit","_temp2","_result","_temp","getOutput","outputRes","_output","_ref13","_temp4","_exit2","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackRes","_output$input","_ref14","_exit3","_temp6","_result3","_temp5","getAuthorizationUrl","urlRes","_authorizationUrl$inp","authorizationUrl","url","_ref15","_temp8","_exit4","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","handleInvocation","SlateContext","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAA6B,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKtF,eAAO,IAAI,qBAAqB,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAC5E,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,WAAW,gBAAgB,EAAE;;CAsf3B,CAAC"}
|
package/dist/index.modern.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{base62 as e}from"@lowerdeck/base62";import{memo as t}from"@lowerdeck/memo";class r{constructor(r){this.keys=void 0,this.signer=void 0,this.keys=r,this.signer=(r=>{if("secret"in r){let n=t(()=>crypto.subtle.importKey("raw",(new TextEncoder).encode(r.secret),{name:"HMAC",hash:{name:"SHA-384"}},!1,["sign","verify"]));return{async sign(t){let r=await crypto.subtle.sign({name:"HMAC",hash:{name:"SHA-384"}},await n(),(new TextEncoder).encode(t));return e.encode(new Uint8Array(r))},verify:async(t,r)=>crypto.subtle.verify({name:"HMAC",hash:{name:"SHA-384"}},await n(),new Uint8Array(e.decodeRaw(r)),(new TextEncoder).encode(t))}}{let n=t(async()=>{if("string"==typeof r.privateKey){let e=JSON.parse(r.privateKey);return await crypto.subtle.importKey("jwk",e,{name:"EC"==e.kty?"ECDSA":e.kty,namedCurve:e.crv},!0,["sign"])}return await r.privateKey()}),i=t(async()=>{if("string"==typeof r.publicKey){let e=JSON.parse(r.publicKey);return await crypto.subtle.importKey("jwk",JSON.parse(r.publicKey),{name:"EC"==e.kty?"ECDSA":e.kty,namedCurve:e.crv},!0,["verify"])}return await r.publicKey()});return{async sign(t){let r=await n(),i=await crypto.subtle.sign({name:r.algorithm.name,hash:{name:"SHA-384"}},r,(new TextEncoder).encode(t));return e.encode(new Uint8Array(i))},verify:async(t,r)=>crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-384"}},await i(),new Uint8Array(e.decodeRaw(r)),(new TextEncoder).encode(t))}}})(r)}async sign({type:t,data:r,expiresAt:n}){let i=`${t}_v1_${e.encode(JSON.stringify({d:r,e:null==n?void 0:n.getTime(),c:Date.now()}))}`;return`${i}_${await this.signer.sign(i)}`}async verify({token:t,expectedType:r}){let n=t.split("_");if(n.length<4)return{verified:!1};let i=n.pop(),a=n.pop(),s=n.pop(),c=n.join("_");if(c!=r)return{verified:!1};if("v1"!=s)return{verified:!1};let o=`${c}_${s}_${a}`;if(!await this.signer.verify(o,i))return{verified:!1};let y=JSON.parse(e.decode(a)),d=y.e?new Date(y.e):null;return d&&d<new Date?{verified:!1}:{verified:!0,type:c,expiresAt:d,createdAt:new Date(y.c),data:y.d}}static decode(t){let r=t.split("_");return r.length<4?null:JSON.parse(e.decode(r[r.length-2]))}}export{r as Tokens};
|
|
2
|
-
//# sourceMappingURL=index.modern.js.map
|
package/dist/index.modern.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/tokens.ts"],"sourcesContent":["import { base62 } from '@lowerdeck/base62';\nimport { memo } from '@lowerdeck/memo';\n\nexport type TokenKeys =\n | {\n privateKey: string | (() => Promise<CryptoKey> | CryptoKey);\n publicKey: string | (() => Promise<CryptoKey> | CryptoKey);\n }\n | {\n secret: string;\n };\n\ntype Signer = {\n sign: (data: string) => Promise<string>;\n verify: (data: string, signature: string) => Promise<boolean>;\n};\n\nlet getSigner = (keys: TokenKeys): Signer => {\n if ('secret' in keys) {\n let keyMemo = memo(() =>\n crypto.subtle.importKey(\n 'raw',\n new TextEncoder().encode(keys.secret),\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n false,\n ['sign', 'verify']\n )\n );\n\n return {\n async sign(data) {\n let signature = await crypto.subtle.sign(\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n await keyMemo(),\n new TextEncoder().encode(data)\n );\n\n return base62.encode(new Uint8Array(signature));\n },\n\n async verify(data, signature) {\n return crypto.subtle.verify(\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n await keyMemo(),\n new Uint8Array(base62.decodeRaw(signature)),\n new TextEncoder().encode(data)\n );\n }\n };\n } else {\n let privateKeyMemo = memo(async () => {\n if (typeof keys.privateKey == 'string') {\n let data = JSON.parse(keys.privateKey) as any;\n\n return await crypto.subtle.importKey(\n 'jwk',\n data,\n { name: data.kty == 'EC' ? 'ECDSA' : data.kty, namedCurve: data.crv },\n true,\n ['sign']\n );\n } else {\n return (await keys.privateKey()) as CryptoKey;\n }\n });\n\n let publicKeyMemo = memo(async () => {\n if (typeof keys.publicKey == 'string') {\n let data = JSON.parse(keys.publicKey) as any;\n\n return await crypto.subtle.importKey(\n 'jwk',\n JSON.parse(keys.publicKey) as any,\n { name: data.kty == 'EC' ? 'ECDSA' : data.kty, namedCurve: data.crv },\n true,\n ['verify']\n );\n } else {\n return (await keys.publicKey()) as CryptoKey;\n }\n });\n\n return {\n async sign(data) {\n let key = await privateKeyMemo();\n\n let signature = await crypto.subtle.sign(\n { name: key.algorithm.name, hash: { name: 'SHA-384' } },\n key,\n new TextEncoder().encode(data)\n );\n\n return base62.encode(new Uint8Array(signature));\n },\n\n async verify(data, signature) {\n return crypto.subtle.verify(\n { name: 'ECDSA', hash: { name: 'SHA-384' } },\n await publicKeyMemo(),\n new Uint8Array(base62.decodeRaw(signature)),\n new TextEncoder().encode(data)\n );\n }\n };\n }\n};\n\nexport class Tokens {\n private signer: Signer;\n constructor(readonly keys: TokenKeys) {\n this.signer = getSigner(keys);\n }\n\n async sign({ type, data, expiresAt }: { type: string; data: any; expiresAt?: Date }) {\n let token = `${type}_v1_${base62.encode(\n JSON.stringify({\n d: data,\n e: expiresAt?.getTime(),\n c: Date.now()\n })\n )}`;\n\n let signature = await this.signer.sign(token);\n return `${token}_${signature}`;\n }\n\n async verify({ token, expectedType }: { expectedType: string; token: string }) {\n let parts = token.split('_');\n if (parts.length < 4) return { verified: false as const };\n\n let signatureBase62 = parts.pop()!;\n let dataBase62 = parts.pop()!;\n let version = parts.pop()!;\n let type = parts.join('_');\n if (type != expectedType) return { verified: false as const };\n\n if (version != 'v1') return { verified: false as const };\n\n let main = `${type}_${version}_${dataBase62}`;\n\n let verified = await this.signer.verify(main, signatureBase62);\n if (!verified) return { verified: false as const };\n\n let data = JSON.parse(base62.decode(dataBase62));\n let expiresAt = data.e ? new Date(data.e) : null;\n if (expiresAt && expiresAt < new Date()) return { verified: false as const };\n\n let createdAt = new Date(data.c);\n\n return {\n verified: true as const,\n\n type,\n expiresAt,\n createdAt,\n data: data.d\n };\n }\n\n static decode(token: string) {\n let parts = token.split('_');\n if (parts.length < 4) return null;\n\n let dataBase62 = parts[parts.length - 2];\n return JSON.parse(base62.decode(dataBase62));\n }\n}\n"],"names":["Tokens","constructor","keys","this","signer","keyMemo","memo","crypto","subtle","importKey","TextEncoder","encode","secret","name","hash","sign","data","signature","base62","Uint8Array","async","verify","decodeRaw","privateKeyMemo","privateKey","JSON","parse","kty","namedCurve","crv","publicKeyMemo","publicKey","key","algorithm","getSigner","type","expiresAt","token","stringify","d","e","getTime","c","Date","now","expectedType","parts","split","length","verified","signatureBase62","pop","dataBase62","version","join","main","decode","createdAt"],"mappings":"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"}
|
package/dist/index.module.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return { input: await authMethod.getDefaultInput() };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await authMethod.onInputChanged({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n });\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await authMethod.getOutput({ input });\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await authMethod.getProfile({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n });\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await authMethod.handleTokenRefresh({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let res = await action.handleInvocation(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let res = await action.handleEvent(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let res = await action.pollEvents(\n new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let res = await action.handleRequest(\n new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let res = await action.autoRegisterWebhook(\n new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n await action.autoUnregisterWebhook(\n new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","createProviderHandler","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","_authMethod$getDefaul","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_exit","_temp2","_result","_temp","getOutput","outputRes","_output","_ref13","_temp4","_exit2","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackRes","_output$input","_ref14","_exit3","_temp6","_result3","_temp5","getAuthorizationUrl","urlRes","_authorizationUrl$inp","authorizationUrl","url","_ref15","_temp8","_exit4","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","handleInvocation","SlateContext","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
|
package/dist/index.umd.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@lowerdeck/error"),require("@slates/proto"),require("@slates/provider"),require("zod")):"function"==typeof define&&define.amd?define(["exports","@lowerdeck/error","@slates/proto","@slates/provider","zod"],t):t((e||self).providerHandler={},e.error,e.proto,e.provider,e.zod)}(this,function(e,t,r,n,o){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=/*#__PURE__*/i(o);function u(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var s=0;function c(e){return"__private_"+s+++"_"+e}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(null,arguments)}function p(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var h=function(e,r,n,o){var i=e.safeParse(r);if(!i.success)throw new t.ServiceError(function(e,r,n){return t.validationError({message:r,entity:e,errors:n.issues.map(function(e){return l({},e,{path:e.path.map(function(e){return String(e)})})})})}(n,o,i.error));return i.data},d=function(e){return e.toJSONSchema({unrepresentable:"any",override:function(e){var t=e.zodSchema._zod.def;"date"===t.type&&(e.jsonSchema.type="string",e.jsonSchema.format="date-time"),"bigint"===t.type&&(e.jsonSchema.type="number")}})},f=function(e,r){var n=e.spec.auth.authStack.find(function(e){return e.key==r});if(!n)throw new t.ServiceError(t.badRequestError({message:"Invalid authentication method ID: "+r}));return n},v=function(e,t){var r;return{id:t.key,name:t.name,type:t.type,scopes:"scopes"in t?t.scopes.map(function(e){return{id:e.scope,title:e.title,description:e.description}}):void 0,inputSchema:d(null!=(r=t.inputSchema)?r:a.default.object({})),outputSchema:d(e.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in t)||!t.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in t)||!t.handleTokenRefresh)},handleChangedInput:{enabled:!!t.onInputChanged},getProfile:{enabled:!!t.getProfile}}}},m=function(e,r){var n=e.actions.find(function(e){return e.key==r});if(!n)throw new t.ServiceError(t.notFoundError("action",r));return n},g=function(e,r,n){var o=m(e,n);if(o.type!=r)throw new t.ServiceError(t.badRequestError({message:"Action with ID "+n+" is not of type "+r}));return o},P=function(e,t){var r;return l({},{id:t.key,name:t.name,description:t.description,instructions:t.instructions,constraints:t.constraints,tags:t.tags,metadata:t.metadata,inputSchema:d(t.inputSchema),outputSchema:d(t.outputSchema)},"tool"==t.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==t.source?{type:"polling",intervalSeconds:null!=(r=t.polling.intervalInSeconds)?r:n.SlateDefaultPollingIntervalSeconds}:{type:"webhook",autoRegistration:!!t.autoRegisterWebhook,autoUnregistration:!!t.autoUnregisterWebhook}})},y=/*#__PURE__*/c("value"),w=/*#__PURE__*/function(){function e(e){Object.defineProperty(this,y,{writable:!0,value:void 0}),u(this,y)[y]=e}var t,r,n=e.prototype;return n.get=function(){return u(this,y)[y]},n.set=function(e){u(this,y)[y]=e},t=e,(r=[{key:"value",get:function(){return u(this,y)[y]}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,p(n.key),n)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}();e.createProviderHandler=function(e,o){return r.createSlatesProviderProtoHandler(function(r){try{var i=new w(null),a=new w(null),u=new w(null),s=new w(null),c=new w(null),p=new n.SlateLogger(o),y=function(){var e=i.get(),r=a.get();if(!e||!r)throw new t.ServiceError(t.preconditionFailedError({message:"Connection context has not been initialized"}));return{protocol:e,participants:r}},I=function(){var r=y(),n=s.get(),o=c.get(),i=u.get();if(!n||!o||!i&&e.spec.auth.authStack.length>0)throw new t.ServiceError(t.preconditionFailedError({message:"Session context has not been initialized"}));return l({},r,{config:n.value,session:o,auth:i})};return r.onNotification("slates/hello",function(e){var t=e.params;try{return i.set(t.protocol),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/participant.set",function(e){var r=e.params;try{if(!i.get())throw new t.ServiceError(t.preconditionFailedError({message:"Connection protocol has not been initialized"}));return a.set(r.participants),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/auth.set",function(t){var r=t.params;try{y(),f(e,r.authenticationMethodId);var n=h(e.spec.authSchema,r.output,"auth","Invalid authentication output for method ID: "+r.authenticationMethodId);return u.set({authenticationMethodId:r.authenticationMethodId,output:n}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/config.set",function(t){var r=t.params;try{y();var n=h(e.spec.configSchema,r.config,"config","Invalid configuration");return s.set({value:n}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/session.start",function(e){var t=e.params;try{return y(),c.set({id:t.sessionId,state:t.state}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.changed",function(t){var r=t.params;try{y();var n=h(e.spec.config.configSchema,r.newConfig,"config","Invalid configuration"),o=e.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:r.previousConfig,newConfig:n})).then(function(e){var t;return{success:!0,config:null!=(t=null==e?void 0:e.config)?t:n}}):Promise.resolve({success:!0,config:n})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.get_default",function(t){try{y();var r=e.spec.config.handlers.getDefaultConfig;return r?Promise.resolve(r()).then(function(e){return{config:e}}):Promise.resolve({config:null})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.schema.get",function(t){try{return y(),Promise.resolve({schema:d(e.spec.configSchema)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/provider.identify",function(t){try{return y(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:e.spec.key,name:e.spec.name,description:e.spec.description,metadata:e.spec.parameters.metadata}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.methods.list",function(t){try{return y(),Promise.resolve({authenticationMethods:e.spec.auth.authStack.map(function(t){return v(e,t)})})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.method.get",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return Promise.resolve({authenticationMethod:v(e,n)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.input.get_default",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return n.getDefaultInput?Promise.resolve(n.getDefaultInput()).then(function(e){return{input:e}}):Promise.resolve({input:null})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.input.changed",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return n.onInputChanged?Promise.resolve(n.onInputChanged({previousInput:r.previousInput,newInput:r.newInput})).then(function(e){var t;return{success:!0,input:null!=(t=null==e?void 0:e.input)?t:r.newInput}}):Promise.resolve({success:!0,input:r.newInput})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.output.get",function(t){var r=t.params;try{var n,o=function(e){return n?e:{output:a}};y();var i=f(e,r.authenticationMethodId),a=r.input;i.inputSchema&&(a=h(i.inputSchema,a,"auth","Invalid authentication input for method ID: "+r.authenticationMethodId));var u=function(){if("getOutput"in i)return Promise.resolve(i.getOutput({input:a})).then(function(e){return n=1,{output:e.output}})}();return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.authorization_callback.handle",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization callback handling: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("handleCallback"in a)return Promise.resolve(a.handleCallback({code:n.code,state:n.state,redirectUri:n.redirectUri,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.authorization_url.get",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization URL retrieval: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("getAuthorizationUrl"in a)return Promise.resolve(a.getAuthorizationUrl({redirectUri:n.redirectUri,state:n.state,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{authorizationUrl:e.url,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.profile.get",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support profile retrieval: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if(a.getProfile)return Promise.resolve(a.getProfile({output:n.output,input:n.input,scopes:n.scopes})).then(function(e){return o=1,{profile:e.profile}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.token_refresh.handle",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support token refresh handling: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("handleTokenRefresh"in a&&a.handleTokenRefresh)return Promise.resolve(a.handleTokenRefresh({output:n.output,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/actions.list",function(t){try{return y(),Promise.resolve({actions:e.actions.map(function(e){return P(0,e)})})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.get",function(t){var r=t.params;try{y();var n=m(e,r.actionId);return Promise.resolve({action:P(0,n)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.tool.invoke",function(t){var r=t.params;try{var o,i=I(),a=g(e,"tool",r.actionId),u=h(a.inputSchema,r.input,"input","Invalid input for tool ID: "+r.actionId);return Promise.resolve(a.handleInvocation(new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,e.spec,p))).then(function(e){return{output:e.output,message:e.message}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.map_event",function(t){var r=t.params;try{var o,i=I(),a=g(e,"trigger",r.actionId),u=h(a.inputSchema,r.input,"input","Invalid event for trigger ID: "+r.actionId);return Promise.resolve(a.handleEvent(new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,e.spec,p))).then(function(e){return{id:e.id,type:e.type,output:e.output}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.poll_events",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.pollEvents)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support polling: "+o.actionId}));return Promise.resolve(u.pollEvents(new n.SlateContext(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_handle",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.handleRequest)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook requests: "+o.actionId}));var s=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(e){return e.charCodeAt(0)}):null});return Promise.resolve(u.handleRequest(new n.SlateContext(a.config,{request:s,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_register",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));return Promise.resolve(u.autoRegisterWebhook(new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{registrationDetails:e.registrationDetails,state:e.state}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_unregister",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));return Promise.resolve(u.autoUnregisterWebhook(new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(){return{}})}catch(e){return Promise.reject(e)}}),Promise.resolve()}catch(e){return Promise.reject(e)}})}});
|
|
2
|
-
//# sourceMappingURL=index.umd.js.map
|