@channel.io/app-sdk-core 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,14 +8,23 @@ import { z } from "zod";
8
8
  * Required by some tenant-aware providers such as Imweb. Applies to both authorize URL and token endpoint.
9
9
  */
10
10
  export const ParameterCaseSchema = z.enum(["snake", "camel"]);
11
+ export const TokenRequestContentTypeSchema = z.enum(["form", "json"]);
12
+ export const OAuthAuthScopeSchema = z.enum(["channel", "manager"]);
11
13
  /**
12
- * OAuth 2.0 configuration schema
14
+ * OAuth 2.0 provider metadata returned from metadata.getAuthConfig.
15
+ *
16
+ * Client credentials are intentionally excluded. AppStore stores and manages
17
+ * provider client ID/secret separately through Desk APIs/UI.
13
18
  */
14
- export const OAuthConfigSchema = z.object({
19
+ export const OAuthProviderSchema = z.object({
20
+ provider: z.string().min(1),
15
21
  authorizationUrl: z.string().url(),
16
22
  tokenUrl: z.string().url(),
17
- scopes: z.array(z.string()),
18
- clientId: z.string(),
23
+ refreshTokenUrl: z.string().url().optional(),
24
+ scopes: z.array(z.string()).min(1),
25
+ providerName: z.string().min(1),
26
+ providerDescription: z.string().optional(),
27
+ providerIconUrl: z.string().url().optional(),
19
28
  pkceRequired: z.boolean().optional(),
20
29
  additionalParams: z.record(z.string()).optional(),
21
30
  /**
@@ -24,7 +33,32 @@ export const OAuthConfigSchema = z.object({
24
33
  * on the authorize URL and token endpoint.
25
34
  */
26
35
  parameterCase: ParameterCaseSchema.optional(),
36
+ /**
37
+ * Token endpoint request body format. Defaults to `"form"` for RFC 6749
38
+ * providers, but some providers expect JSON bodies.
39
+ */
40
+ tokenRequestContentType: TokenRequestContentTypeSchema.optional(),
27
41
  });
42
+ /**
43
+ * Output schema for extension.oauth.metadata.getAuthConfig.
44
+ */
45
+ export const OAuthConfigSchema = z.object({
46
+ authType: z.literal("oauth"),
47
+ authScope: OAuthAuthScopeSchema,
48
+ oauthProvider: OAuthProviderSchema,
49
+ });
50
+ /**
51
+ * Input schema for extension.oauth.validation.validateCredentials.
52
+ *
53
+ * AppStore calls this with an empty params object after token exchange and
54
+ * injects the decrypted access token into context.authToken. accessToken is
55
+ * kept optional for local test harnesses and older examples.
56
+ */
57
+ export const CredentialValidationInputSchema = z
58
+ .object({
59
+ accessToken: z.string().optional(),
60
+ })
61
+ .passthrough();
28
62
  /**
29
63
  * Credential validation result schema
30
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/extensions/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAG9D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;;;OAIG;IACH,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/extensions/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAG9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAGtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;;;OAIG;IACH,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC7C;;;OAGG;IACH,uBAAuB,EAAE,6BAA6B,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5B,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,mBAAmB;CACnC,CAAC,CAAC;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/app-sdk-core",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Core types and utilities for Channel.io App SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",