Skip to content

Commit 79f3c44

Browse files
committed
chore: update workspace configs
1 parent 18ba35c commit 79f3c44

File tree

20 files changed

+4713
-1014
lines changed

20 files changed

+4713
-1014
lines changed

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
"type": "module",
66
"scripts": {
77
"preinstall": "npx only-allow pnpm",
8+
"connectors:sync": "cd packages/connectors && node templates/sync-to-current.js",
9+
"connectors:update": "cd packages/connectors && node templates/sync-from-current.js",
10+
"pnpm:devPreinstall": "pnpm connectors:sync",
811
"prepare": "if test \"$NODE_ENV\" != \"production\" && test \"$CI\" != \"true\" ; then husky install ; fi",
912
"prepack": "pnpm -r prepack",
1013
"dev": "pnpm -r prepack && pnpm start:dev",

packages/connectors/connector-alipay-native/src/utils.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import crypto from 'node:crypto';
22

3-
import { parseJson } from '@logto/connector-kit';
3+
import { parseJsonObject } from '@logto/connector-kit';
44
import iconv from 'iconv-lite';
55
import snakeCaseKeys from 'snakecase-keys';
66

@@ -16,11 +16,12 @@ export const signingParameters: SigningParameters = (
1616
parameters: AlipayNativeConfig & Record<string, string | undefined>
1717
): Record<string, string> => {
1818
const { biz_content, privateKey, ...rest } = parameters;
19+
1920
const signParameters = snakeCaseKeys(
2021
biz_content
2122
? {
2223
...rest,
23-
bizContent: JSON.stringify(snakeCaseKeys(parseJson(biz_content))),
24+
bizContent: JSON.stringify(snakeCaseKeys(parseJsonObject(biz_content))),
2425
}
2526
: rest
2627
);

packages/connectors/connector-alipay-web/src/utils.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import crypto from 'node:crypto';
22

3-
import { parseJson } from '@logto/connector-kit';
3+
import { parseJsonObject } from '@logto/connector-kit';
44
import iconv from 'iconv-lite';
55
import snakeCaseKeys from 'snakecase-keys';
66

@@ -16,11 +16,12 @@ export const signingParameters: SigningParameters = (
1616
parameters: AlipayConfig & Record<string, string | undefined>
1717
): Record<string, string> => {
1818
const { biz_content, privateKey, ...rest } = parameters;
19+
1920
const signParameters = snakeCaseKeys(
2021
biz_content
2122
? {
2223
...rest,
23-
bizContent: JSON.stringify(snakeCaseKeys(parseJson(biz_content))),
24+
bizContent: JSON.stringify(snakeCaseKeys(parseJsonObject(biz_content))),
2425
}
2526
: rest
2627
);

packages/connectors/connector-aliyun-dm/src/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createHmac } from 'crypto';
1+
import { createHmac } from 'node:crypto';
22

33
import { got } from 'got';
44

packages/connectors/connector-aliyun-sms/src/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createHmac } from 'crypto';
1+
import { createHmac } from 'node:crypto';
22

33
import { got } from 'got';
44

packages/connectors/connector-azuread/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import path from 'path';
1+
import path from 'node:path';
22

33
import type { AuthorizationCodeRequest, AuthorizationUrlRequest } from '@azure/msal-node';
44
import { ConfidentialClientApplication, CryptoProvider } from '@azure/msal-node';

packages/connectors/connector-discord/src/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ export const getAccessToken = async (
8888

8989
const getUserInfo =
9090
(getConfig: GetConnectorConfig): GetUserInfo =>
91-
// eslint-disable-next-line complexity
9291
async (data) => {
9392
const { code, redirectUri } = await authorizationCallbackHandler(data);
9493
const config = await getConfig(defaultMetadata.id);

packages/connectors/connector-mock-email-alternative/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import fs from 'fs/promises';
2-
import path from 'path';
1+
import fs from 'node:fs/promises';
2+
import path from 'node:path';
33

44
import type {
55
GetConnectorConfig,

packages/connectors/connector-mock-email/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import fs from 'fs/promises';
2-
import path from 'path';
1+
import fs from 'node:fs/promises';
2+
import path from 'node:path';
33

44
import type {
55
GetConnectorConfig,

packages/connectors/connector-mock-sms/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import fs from 'fs/promises';
2-
import path from 'path';
1+
import fs from 'node:fs/promises';
2+
import path from 'node:path';
33

44
import type {
55
GetConnectorConfig,

packages/connectors/connector-mock-social/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { randomUUID } from 'crypto';
1+
import { randomUUID } from 'node:crypto';
22

33
import type {
44
GetAuthorizationUri,

packages/connectors/connector-oauth2/src/index.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
import type {
2-
GetAuthorizationUri,
3-
GetUserInfo,
4-
SocialConnector,
5-
CreateConnector,
6-
GetConnectorConfig,
7-
} from '@logto/connector-kit';
81
import {
2+
type GetAuthorizationUri,
3+
type GetUserInfo,
4+
type SocialConnector,
5+
type CreateConnector,
6+
type GetConnectorConfig,
7+
parseJsonObject,
98
ConnectorError,
109
ConnectorErrorCodes,
1110
validateConfig,
1211
ConnectorType,
13-
parseJson,
1412
} from '@logto/connector-kit';
1513
import { assert, pick } from '@silverhand/essentials';
1614
import { got, HTTPError } from 'got';
@@ -74,7 +72,7 @@ const getUserInfo =
7472
timeout: { request: defaultTimeout },
7573
});
7674

77-
return userProfileMapping(parseJson(httpResponse.body), parsedConfig.profileMap);
75+
return userProfileMapping(parseJsonObject(httpResponse.body), parsedConfig.profileMap);
7876
} catch (error: unknown) {
7977
if (error instanceof HTTPError) {
8078
throw new ConnectorError(ConnectorErrorCodes.General, JSON.stringify(error.response.body));

packages/connectors/connector-oauth2/src/utils.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ const accessTokenResponseHandler = async (
5959
};
6060

6161
export const userProfileMapping = (
62-
originUserProfile: Record<string, unknown>,
62+
// eslint-disable-next-line @typescript-eslint/ban-types
63+
originUserProfile: object,
6364
keyMapping: ProfileMap
6465
) => {
6566
const keyMap = new Map(

packages/connectors/connector-oidc/src/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ const getAuthorizationUri =
5959

6060
const getUserInfo =
6161
(getConfig: GetConnectorConfig): GetUserInfo =>
62-
// eslint-disable-next-line complexity
6362
async (data, getSession) => {
6463
const config = await getConfig(defaultMetadata.id);
6564
validateConfig<OidcConfig>(config, oidcConfigGuard);

packages/connectors/connector-smtp/src/index.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,18 @@ const sendMessage =
6565

6666
const parseContents = (contents: string, contentType: ContextType) => {
6767
switch (contentType) {
68-
case ContextType.Text:
68+
case ContextType.Text: {
6969
return { text: contents };
70-
case ContextType.Html:
70+
}
71+
case ContextType.Html: {
7172
return { html: contents };
72-
default:
73+
}
74+
default: {
7375
throw new ConnectorError(
7476
ConnectorErrorCodes.InvalidConfig,
7577
'`contentType` should be ContextType.'
7678
);
79+
}
7780
}
7881
};
7982

packages/connectors/connector-tencent-sms/src/http.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import type { BinaryToTextEncoding } from 'crypto';
2-
import crypto from 'crypto';
1+
import type { BinaryToTextEncoding } from 'node:crypto';
2+
import crypto from 'node:crypto';
33

44
import { got } from 'got';
55

@@ -38,7 +38,7 @@ export function isSmsErrorResponse(response: unknown): response is TencentErrorR
3838
return result.success;
3939
}
4040

41-
export function sendSmsRequest(
41+
export async function sendSmsRequest(
4242
templateId: string,
4343
templateParameters: string[],
4444
phoneNumber: string,

packages/connectors/templates/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"test:only": "NODE_OPTIONS=--experimental-vm-modules jest",
2323
"test": "pnpm build:test && pnpm test:only",
2424
"test:ci": "pnpm test:only --silent --coverage",
25-
"prepack": "pnpm build"
25+
"prepublishOnly": "pnpm build"
2626
},
2727
"dependencies": {
2828
"@logto/connector-kit": "workspace:^",

packages/toolkit/connector-kit/src/index.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,22 @@ export const parseJson = (
1616
jsonString: string,
1717
errorCode: ConnectorErrorCodes = ConnectorErrorCodes.InvalidResponse,
1818
errorPayload?: unknown
19-
) => {
19+
): unknown => {
2020
try {
21-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
2221
return JSON.parse(jsonString);
2322
} catch {
2423
throw new ConnectorError(errorCode, errorPayload ?? jsonString);
2524
}
2625
};
2726

27+
export const parseJsonObject = (...args: Parameters<typeof parseJson>) => {
28+
const parsed = parseJson(...args);
29+
30+
if (!(parsed !== null && typeof parsed === 'object')) {
31+
throw new ConnectorError(ConnectorErrorCodes.InvalidResponse, parsed);
32+
}
33+
34+
return parsed;
35+
};
36+
2837
export const mockSmsVerificationCodeFileName = 'logto_mock_verification_code_record.txt';

0 commit comments

Comments
 (0)