@logto/connector-logto-social-demo 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,117 +1,128 @@
1
- import { ConnectorPlatform, ConnectorConfigFormItemType, ConnectorType, validateConfig } from '@logto/connector-kit';
2
- import { z } from 'zod';
1
+ // src/index.ts
2
+ import { validateConfig, ConnectorType } from "@logto/connector-kit";
3
3
 
4
- var SocialProvider;
5
- (function (SocialProvider) {
6
- SocialProvider["Google"] = "google";
7
- SocialProvider["GitHub"] = "github";
8
- SocialProvider["Discord"] = "discord";
9
- })(SocialProvider || (SocialProvider = {}));
10
- const socialDemoConfigGuard = z.object({
11
- provider: z.nativeEnum(SocialProvider),
12
- clientId: z.string(),
13
- redirectUri: z.string(),
4
+ // src/constant.ts
5
+ import { ConnectorConfigFormItemType, ConnectorPlatform } from "@logto/connector-kit";
6
+
7
+ // src/types.ts
8
+ import { z } from "zod";
9
+ var SocialProvider = /* @__PURE__ */ ((SocialProvider2) => {
10
+ SocialProvider2["Google"] = "google";
11
+ SocialProvider2["GitHub"] = "github";
12
+ SocialProvider2["Discord"] = "discord";
13
+ return SocialProvider2;
14
+ })(SocialProvider || {});
15
+ var socialDemoConfigGuard = z.object({
16
+ provider: z.nativeEnum(SocialProvider),
17
+ clientId: z.string(),
18
+ redirectUri: z.string()
14
19
  });
15
20
 
16
- const defaultMetadata = {
17
- id: 'logto-social-demo',
18
- target: 'logto-social-demo',
19
- platform: ConnectorPlatform.Universal,
20
- name: {
21
- en: 'Logto Social Demo',
22
- },
23
- logo: './logo.svg',
24
- logoDark: null,
25
- description: {
26
- en: 'The demo for social sign-in',
27
- },
28
- readme: './README.md',
29
- isStandard: true,
30
- formItems: [
21
+ // src/constant.ts
22
+ var defaultMetadata = {
23
+ id: "logto-social-demo",
24
+ target: "logto-social-demo",
25
+ platform: ConnectorPlatform.Universal,
26
+ name: {
27
+ en: "Logto Social Demo"
28
+ },
29
+ logo: "./logo.svg",
30
+ logoDark: null,
31
+ description: {
32
+ en: "The demo for social sign-in"
33
+ },
34
+ readme: "./README.md",
35
+ isStandard: true,
36
+ formItems: [
37
+ {
38
+ key: "provider",
39
+ label: "Provider",
40
+ type: ConnectorConfigFormItemType.Select,
41
+ selectItems: [
31
42
  {
32
- key: 'provider',
33
- label: 'Provider',
34
- type: ConnectorConfigFormItemType.Select,
35
- selectItems: [
36
- {
37
- title: 'Google',
38
- value: SocialProvider.Google,
39
- },
40
- {
41
- title: 'GitHub',
42
- value: SocialProvider.GitHub,
43
- },
44
- {
45
- title: 'Discord',
46
- value: SocialProvider.Discord,
47
- },
48
- ],
49
- required: true,
43
+ title: "Google",
44
+ value: "google" /* Google */
50
45
  },
51
46
  {
52
- key: 'clientId',
53
- label: 'Client ID',
54
- type: ConnectorConfigFormItemType.Text,
55
- required: true,
47
+ title: "GitHub",
48
+ value: "github" /* GitHub */
56
49
  },
57
50
  {
58
- key: 'redirectUri',
59
- label: 'Redirect URI',
60
- type: ConnectorConfigFormItemType.Text,
61
- required: true,
62
- },
63
- ],
64
- };
65
- const getProviderConfigs = (provider) => {
66
- if (provider === SocialProvider.GitHub) {
67
- return {
68
- params: {
69
- scope: 'read:user',
70
- },
71
- endpoint: 'https://github.com/login/oauth/authorize',
72
- };
73
- }
74
- if (provider === SocialProvider.Google) {
75
- return {
76
- params: {
77
- scope: 'openid profile email',
78
- response_type: 'code',
79
- },
80
- endpoint: 'https://accounts.google.com/o/oauth2/v2/auth',
81
- };
51
+ title: "Discord",
52
+ value: "discord" /* Discord */
53
+ }
54
+ ],
55
+ required: true
56
+ },
57
+ {
58
+ key: "clientId",
59
+ label: "Client ID",
60
+ type: ConnectorConfigFormItemType.Text,
61
+ required: true
62
+ },
63
+ {
64
+ key: "redirectUri",
65
+ label: "Redirect URI",
66
+ type: ConnectorConfigFormItemType.Text,
67
+ required: true
82
68
  }
69
+ ]
70
+ };
71
+ var getProviderConfigs = (provider) => {
72
+ if (provider === "github" /* GitHub */) {
83
73
  return {
84
- params: {
85
- scope: 'identify email',
86
- response_type: 'code',
87
- },
88
- endpoint: 'https://discord.com/oauth2/authorize',
74
+ params: {
75
+ scope: "read:user"
76
+ },
77
+ endpoint: "https://github.com/login/oauth/authorize"
89
78
  };
90
- };
91
-
92
- const getAuthorizationUri = (getConfig) => async ({ state }) => {
93
- const config = await getConfig(defaultMetadata.id);
94
- validateConfig(config, socialDemoConfigGuard);
95
- const { provider, clientId, redirectUri } = config;
96
- const { params, endpoint } = getProviderConfigs(provider);
97
- const queryParameters = new URLSearchParams({
98
- ...params,
99
- client_id: clientId,
100
- redirect_uri: redirectUri, // Use preset redirect uri
101
- state,
102
- });
103
- return `${endpoint}?${queryParameters.toString()}`;
104
- };
105
- const createSocialDemoConnector = async ({ getConfig }) => {
79
+ }
80
+ if (provider === "google" /* Google */) {
106
81
  return {
107
- metadata: defaultMetadata,
108
- type: ConnectorType.Social,
109
- configGuard: socialDemoConfigGuard,
110
- getAuthorizationUri: getAuthorizationUri(getConfig),
111
- getUserInfo: async () => {
112
- throw new Error('Not implemented');
113
- },
82
+ params: {
83
+ scope: "openid profile email",
84
+ response_type: "code"
85
+ },
86
+ endpoint: "https://accounts.google.com/o/oauth2/v2/auth"
114
87
  };
88
+ }
89
+ return {
90
+ params: {
91
+ scope: "identify email",
92
+ response_type: "code"
93
+ },
94
+ endpoint: "https://discord.com/oauth2/authorize"
95
+ };
115
96
  };
116
97
 
117
- export { createSocialDemoConnector as default };
98
+ // src/index.ts
99
+ var getAuthorizationUri = (getConfig) => async ({ state }) => {
100
+ const config = await getConfig(defaultMetadata.id);
101
+ validateConfig(config, socialDemoConfigGuard);
102
+ const { provider, clientId, redirectUri } = config;
103
+ const { params, endpoint } = getProviderConfigs(provider);
104
+ const queryParameters = new URLSearchParams({
105
+ ...params,
106
+ client_id: clientId,
107
+ redirect_uri: redirectUri,
108
+ // Use preset redirect uri
109
+ state
110
+ });
111
+ return `${endpoint}?${queryParameters.toString()}`;
112
+ };
113
+ var createSocialDemoConnector = async ({ getConfig }) => {
114
+ return {
115
+ metadata: defaultMetadata,
116
+ type: ConnectorType.Social,
117
+ configGuard: socialDemoConfigGuard,
118
+ getAuthorizationUri: getAuthorizationUri(getConfig),
119
+ getUserInfo: async () => {
120
+ throw new Error("Not implemented");
121
+ }
122
+ };
123
+ };
124
+ var src_default = createSocialDemoConnector;
125
+ export {
126
+ src_default as default
127
+ };
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/constant.ts","../src/types.ts"],"sourcesContent":["import type {\n GetAuthorizationUri,\n SocialConnector,\n CreateConnector,\n GetConnectorConfig,\n} from '@logto/connector-kit';\nimport { validateConfig, ConnectorType } from '@logto/connector-kit';\n\nimport { defaultMetadata, getProviderConfigs } from './constant.js';\nimport { socialDemoConfigGuard } from './types.js';\n\nconst getAuthorizationUri =\n (getConfig: GetConnectorConfig): GetAuthorizationUri =>\n async ({ state }) => {\n const config = await getConfig(defaultMetadata.id);\n validateConfig(config, socialDemoConfigGuard);\n\n const { provider, clientId, redirectUri } = config;\n\n const { params, endpoint } = getProviderConfigs(provider);\n\n const queryParameters = new URLSearchParams({\n ...params,\n client_id: clientId,\n redirect_uri: redirectUri, // Use preset redirect uri\n state,\n });\n\n return `${endpoint}?${queryParameters.toString()}`;\n };\n\nconst createSocialDemoConnector: CreateConnector<SocialConnector> = async ({ getConfig }) => {\n return {\n metadata: defaultMetadata,\n type: ConnectorType.Social,\n configGuard: socialDemoConfigGuard,\n getAuthorizationUri: getAuthorizationUri(getConfig),\n getUserInfo: async () => {\n throw new Error('Not implemented');\n },\n };\n};\n\nexport default createSocialDemoConnector;\n","import type { ConnectorMetadata } from '@logto/connector-kit';\nimport { ConnectorConfigFormItemType, ConnectorPlatform } from '@logto/connector-kit';\n\nimport { SocialProvider } from './types.js';\n\nexport const defaultMetadata: ConnectorMetadata = {\n id: 'logto-social-demo',\n target: 'logto-social-demo',\n platform: ConnectorPlatform.Universal,\n name: {\n en: 'Logto Social Demo',\n },\n logo: './logo.svg',\n logoDark: null,\n description: {\n en: 'The demo for social sign-in',\n },\n readme: './README.md',\n isStandard: true,\n formItems: [\n {\n key: 'provider',\n label: 'Provider',\n type: ConnectorConfigFormItemType.Select,\n selectItems: [\n {\n title: 'Google',\n value: SocialProvider.Google,\n },\n {\n title: 'GitHub',\n value: SocialProvider.GitHub,\n },\n {\n title: 'Discord',\n value: SocialProvider.Discord,\n },\n ],\n required: true,\n },\n {\n key: 'clientId',\n label: 'Client ID',\n type: ConnectorConfigFormItemType.Text,\n required: true,\n },\n {\n key: 'redirectUri',\n label: 'Redirect URI',\n type: ConnectorConfigFormItemType.Text,\n required: true,\n },\n ],\n};\n\nexport const getProviderConfigs = (\n provider: SocialProvider\n): { endpoint: string; params: Record<string, string> } => {\n if (provider === SocialProvider.GitHub) {\n return {\n params: {\n scope: 'read:user',\n },\n endpoint: 'https://github.com/login/oauth/authorize',\n };\n }\n\n if (provider === SocialProvider.Google) {\n return {\n params: {\n scope: 'openid profile email',\n response_type: 'code',\n },\n endpoint: 'https://accounts.google.com/o/oauth2/v2/auth',\n };\n }\n\n return {\n params: {\n scope: 'identify email',\n response_type: 'code',\n },\n endpoint: 'https://discord.com/oauth2/authorize',\n };\n};\n","import { z } from 'zod';\n\nexport enum SocialProvider {\n Google = 'google',\n GitHub = 'github',\n Discord = 'discord',\n}\n\nexport const socialDemoConfigGuard = z.object({\n provider: z.nativeEnum(SocialProvider),\n clientId: z.string(),\n redirectUri: z.string(),\n});\n\nexport type SocialDemoConfig = z.infer<typeof socialDemoConfigGuard>;\n"],"mappings":";AAMA,SAAS,gBAAgB,qBAAqB;;;ACL9C,SAAS,6BAA6B,yBAAyB;;;ACD/D,SAAS,SAAS;AAEX,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,aAAU;AAHA,SAAAA;AAAA,GAAA;AAML,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,UAAU,EAAE,WAAW,cAAc;AAAA,EACrC,UAAU,EAAE,OAAO;AAAA,EACnB,aAAa,EAAE,OAAO;AACxB,CAAC;;;ADPM,IAAM,kBAAqC;AAAA,EAChD,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,UAAU,kBAAkB;AAAA,EAC5B,MAAM;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,IACX,IAAI;AAAA,EACN;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,IACT;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM,4BAA4B;AAAA,MAClC,aAAa;AAAA,QACX;AAAA,UACE,OAAO;AAAA,UACP;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM,4BAA4B;AAAA,MAClC,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM,4BAA4B;AAAA,MAClC,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAEO,IAAM,qBAAqB,CAChC,aACyD;AACzD,MAAI,oCAAoC;AACtC,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,MAAI,oCAAoC;AACtC,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,eAAe;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,eAAe;AAAA,IACjB;AAAA,IACA,UAAU;AAAA,EACZ;AACF;;;ADzEA,IAAM,sBACJ,CAAC,cACD,OAAO,EAAE,MAAM,MAAM;AACnB,QAAM,SAAS,MAAM,UAAU,gBAAgB,EAAE;AACjD,iBAAe,QAAQ,qBAAqB;AAE5C,QAAM,EAAE,UAAU,UAAU,YAAY,IAAI;AAE5C,QAAM,EAAE,QAAQ,SAAS,IAAI,mBAAmB,QAAQ;AAExD,QAAM,kBAAkB,IAAI,gBAAgB;AAAA,IAC1C,GAAG;AAAA,IACH,WAAW;AAAA,IACX,cAAc;AAAA;AAAA,IACd;AAAA,EACF,CAAC;AAED,SAAO,GAAG,QAAQ,IAAI,gBAAgB,SAAS,CAAC;AAClD;AAEF,IAAM,4BAA8D,OAAO,EAAE,UAAU,MAAM;AAC3F,SAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM,cAAc;AAAA,IACpB,aAAa;AAAA,IACb,qBAAqB,oBAAoB,SAAS;AAAA,IAClD,aAAa,YAAY;AACvB,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AAAA,EACF;AACF;AAEA,IAAO,cAAQ;","names":["SocialProvider"]}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@logto/connector-logto-social-demo",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "OAuth standard connector implementation.",
5
5
  "author": "Silverhand Inc. <contact@silverhand.io>",
6
6
  "dependencies": {
7
7
  "@logto/connector-kit": "^4.0.0",
8
8
  "@silverhand/essentials": "^2.9.1",
9
9
  "got": "^14.0.0",
10
- "snakecase-keys": "^8.0.0",
11
- "zod": "^3.22.4"
10
+ "snakecase-keys": "^8.0.1",
11
+ "zod": "^3.23.8"
12
12
  },
13
13
  "main": "./lib/index.js",
14
14
  "module": "./lib/index.js",
@@ -41,30 +41,25 @@
41
41
  "access": "public"
42
42
  },
43
43
  "devDependencies": {
44
- "@rollup/plugin-commonjs": "^26.0.0",
45
- "@rollup/plugin-json": "^6.1.0",
46
- "@rollup/plugin-node-resolve": "^15.2.3",
47
- "@rollup/plugin-typescript": "^11.1.6",
48
44
  "@silverhand/eslint-config": "6.0.1",
49
45
  "@silverhand/ts-config": "6.0.0",
50
46
  "@types/node": "^20.11.20",
51
47
  "@types/supertest": "^6.0.2",
52
- "@vitest/coverage-v8": "^1.4.0",
48
+ "@vitest/coverage-v8": "^2.0.0",
53
49
  "eslint": "^8.56.0",
54
50
  "lint-staged": "^15.0.2",
55
51
  "nock": "^13.3.1",
56
52
  "prettier": "^3.0.0",
57
- "rollup": "^4.12.0",
58
- "rollup-plugin-output-size": "^1.3.0",
59
53
  "supertest": "^7.0.0",
60
- "typescript": "^5.3.3",
61
- "vitest": "^1.4.0"
54
+ "tsup": "^8.1.0",
55
+ "typescript": "^5.5.3",
56
+ "vitest": "^2.0.0"
62
57
  },
63
58
  "scripts": {
64
59
  "precommit": "lint-staged",
65
- "build:test": "rm -rf lib/ && tsc -p tsconfig.test.json --sourcemap",
66
- "build": "rm -rf lib/ && tsc -p tsconfig.build.json --noEmit && rollup -c",
67
- "dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental",
60
+ "check": "tsc --noEmit",
61
+ "build": "tsup",
62
+ "dev": "tsup --watch",
68
63
  "lint": "eslint --ext .ts src",
69
64
  "lint:report": "pnpm lint --format json --output-file report.json",
70
65
  "test": "vitest src",
package/lib/constant.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { ConnectorMetadata } from '@logto/connector-kit';
2
- import { SocialProvider } from './types.js';
3
- export declare const defaultMetadata: ConnectorMetadata;
4
- export declare const getProviderConfigs: (provider: SocialProvider) => {
5
- endpoint: string;
6
- params: Record<string, string>;
7
- };
package/lib/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { SocialConnector, CreateConnector } from '@logto/connector-kit';
2
- declare const createSocialDemoConnector: CreateConnector<SocialConnector>;
3
- export default createSocialDemoConnector;
package/lib/types.d.ts DELETED
@@ -1,20 +0,0 @@
1
- import { z } from 'zod';
2
- export declare enum SocialProvider {
3
- Google = "google",
4
- GitHub = "github",
5
- Discord = "discord"
6
- }
7
- export declare const socialDemoConfigGuard: z.ZodObject<{
8
- provider: z.ZodNativeEnum<typeof SocialProvider>;
9
- clientId: z.ZodString;
10
- redirectUri: z.ZodString;
11
- }, "strip", z.ZodTypeAny, {
12
- provider: SocialProvider;
13
- clientId: string;
14
- redirectUri: string;
15
- }, {
16
- provider: SocialProvider;
17
- clientId: string;
18
- redirectUri: string;
19
- }>;
20
- export type SocialDemoConfig = z.infer<typeof socialDemoConfigGuard>;