mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
feat(connector): add http email connector (#6592)
This commit is contained in:
parent
21a59363ae
commit
9adbb31341
10 changed files with 332 additions and 15 deletions
3
packages/connectors/connector-http-email/README.md
Normal file
3
packages/connectors/connector-http-email/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# HTTP email connector
|
||||
|
||||
TBD
|
13
packages/connectors/connector-http-email/logo-dark.svg
Normal file
13
packages/connectors/connector-http-email/logo-dark.svg
Normal file
|
@ -0,0 +1,13 @@
|
|||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#F7F8F8"/>
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#78767F" fill-opacity="0.02"/>
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#5D34F2" fill-opacity="0.16"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.33352 5.66668C7.0992 5.901 7.0992 6.2809 7.33352 6.51522L9.10295 8.28468L6.59959 8.28468C6.26822 8.28468 5.99959 8.55331 5.99959 8.88468V10.0847C5.99959 10.4161 6.26822 10.6847 6.59959 10.6847L9.10323 10.6847L7.333 12.455C7.09868 12.6893 7.09868 13.0692 7.333 13.3035L8.18152 14.152C8.41584 14.3864 8.79574 14.3864 9.03005 14.152L10.7996 12.3824L10.7996 14.8845C10.7996 15.2159 11.0683 15.4845 11.3996 15.4845L12.5996 15.4845C12.931 15.4845 13.1996 15.2159 13.1996 14.8845L13.1996 12.3825L14.9691 14.152C15.2034 14.3864 15.5833 14.3864 15.8176 14.152L16.6662 13.3035C16.9005 13.0692 16.9005 12.6893 16.6662 12.455L14.8959 10.6847H17.3996C17.731 10.6847 17.9996 10.4161 17.9996 10.0847V8.88468C17.9996 8.55331 17.731 8.28468 17.3996 8.28468L14.897 8.28468L16.6664 6.51522C16.9007 6.2809 16.9007 5.901 16.6664 5.66668L15.8179 4.81815C15.5835 4.58383 15.2036 4.58383 14.9693 4.81815L13.1996 6.58786V4.08451C13.1996 3.75314 12.931 3.48451 12.5996 3.48451L11.3996 3.48451C11.0683 3.48451 10.7996 3.75314 10.7996 4.08451L10.7996 6.58723L9.03057 4.81815C8.79626 4.58383 8.41636 4.58383 8.18205 4.81815L7.33352 5.66668ZM12.9931 7.08455L11.0068 7.08455L9.59959 8.49182V10.4789L11.0051 11.8845L12.994 11.8845L14.3996 10.4789V8.49108L12.9931 7.08455Z" fill="#E67EF7"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 14.2847C14.6509 14.2847 16.8 12.1356 16.8 9.48462C16.8 6.83363 14.6509 4.68457 12 4.68457C9.34898 4.68457 7.19995 6.83363 7.19995 9.48462C7.19995 12.1356 9.34898 14.2847 12 14.2847ZM11.9999 11.885C13.3253 11.885 14.3999 10.8105 14.3999 9.48499C14.3999 8.15949 13.3253 7.08496 11.9999 7.08496C10.6744 7.08496 9.59985 8.15949 9.59985 9.48499C9.59985 10.8105 10.6744 11.885 11.9999 11.885Z" fill="#F099FE"/>
|
||||
<path d="M0 8.93156C0 8.09371 0.836852 7.51377 1.62136 7.80796L11.5786 11.5419C11.8503 11.6438 12.1497 11.6438 12.4214 11.5419L22.3786 7.80796C23.1631 7.51377 24 8.09371 24 8.93156V22.0001C24 23.1047 23.1046 24.0001 22 24.0001H2C0.89543 24.0001 0 23.1047 0 22.0001V8.93156Z" fill="#7958FF"/>
|
||||
<path d="M0 22.0654H24C24 23.17 23.1046 24.0654 22 24.0654H2C0.89543 24.0654 0 23.17 0 22.0654Z" fill="#957BFF"/>
|
||||
<path d="M18.1231 17.6615V16.7422H19.2772C19.5352 16.7422 19.7358 16.6772 19.8791 16.5471C20.0246 16.417 20.0974 16.2285 20.0974 15.9816V15.975C20.0974 15.7259 20.0246 15.5374 19.8791 15.4095C19.7358 15.2816 19.5352 15.2177 19.2772 15.2177H18.1231V14.2852H19.5716C19.9265 14.2852 20.2351 14.3557 20.4975 14.4968C20.7598 14.6357 20.9627 14.8319 21.106 15.0854C21.2515 15.3368 21.3242 15.6333 21.3242 15.975V15.9816C21.3242 16.3211 21.2515 16.6176 21.106 16.8712C20.9627 17.1225 20.7598 17.3176 20.4975 17.4565C20.2351 17.5932 19.9265 17.6615 19.5716 17.6615H18.1231ZM17.5146 19.057V14.2852H18.7283V19.057H17.5146Z" fill="white"/>
|
||||
<path d="M14.0651 19.057V15.2607H12.6895V14.2852H16.6545V15.2607H15.2788V19.057H14.0651Z" fill="white"/>
|
||||
<path d="M9.23994 19.057V15.2607H7.86426V14.2852H11.8293V15.2607H10.4536V19.057H9.23994Z" fill="white"/>
|
||||
<path d="M2.67554 19.057V14.2852H3.88918V16.1569H5.79066V14.2852H7.0043V19.057H5.79066V17.1324H3.88918V19.057H2.67554Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
13
packages/connectors/connector-http-email/logo.svg
Normal file
13
packages/connectors/connector-http-email/logo.svg
Normal file
|
@ -0,0 +1,13 @@
|
|||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#F7F8F8"/>
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#78767F" fill-opacity="0.02"/>
|
||||
<path d="M0 9.64966C0 8.86651 0.382104 8.13262 1.02369 7.68351L11.3118 0.48172C11.725 0.192485 12.275 0.192485 12.6882 0.48172L22.9763 7.68351C23.6179 8.13262 24 8.86651 24 9.64967V19.2002C24 21.8512 21.851 24.0003 19.2 24.0003H4.80003C2.14904 24.0003 0 21.8512 0 19.2002V9.64966Z" fill="#5D34F2" fill-opacity="0.16"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.33352 5.66668C7.0992 5.901 7.0992 6.2809 7.33352 6.51522L9.10295 8.28468L6.59959 8.28468C6.26822 8.28468 5.99959 8.55331 5.99959 8.88468V10.0847C5.99959 10.4161 6.26822 10.6847 6.59959 10.6847L9.10323 10.6847L7.333 12.455C7.09868 12.6893 7.09868 13.0692 7.333 13.3035L8.18152 14.152C8.41584 14.3864 8.79574 14.3864 9.03005 14.152L10.7996 12.3824L10.7996 14.8845C10.7996 15.2159 11.0683 15.4845 11.3996 15.4845L12.5996 15.4845C12.931 15.4845 13.1996 15.2159 13.1996 14.8845L13.1996 12.3825L14.9691 14.152C15.2034 14.3864 15.5833 14.3864 15.8176 14.152L16.6662 13.3035C16.9005 13.0692 16.9005 12.6893 16.6662 12.455L14.8959 10.6847H17.3996C17.731 10.6847 17.9996 10.4161 17.9996 10.0847V8.88468C17.9996 8.55331 17.731 8.28468 17.3996 8.28468L14.897 8.28468L16.6664 6.51522C16.9007 6.2809 16.9007 5.901 16.6664 5.66668L15.8179 4.81815C15.5835 4.58383 15.2036 4.58383 14.9693 4.81815L13.1996 6.58786V4.08451C13.1996 3.75314 12.931 3.48451 12.5996 3.48451L11.3996 3.48451C11.0683 3.48451 10.7996 3.75314 10.7996 4.08451L10.7996 6.58723L9.03057 4.81815C8.79626 4.58383 8.41636 4.58383 8.18205 4.81815L7.33352 5.66668ZM12.9931 7.08455L11.0068 7.08455L9.59959 8.49182V10.4789L11.0051 11.8845L12.994 11.8845L14.3996 10.4789V8.49108L12.9931 7.08455Z" fill="#E67EF7"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 14.2847C14.6509 14.2847 16.8 12.1356 16.8 9.48462C16.8 6.83363 14.6509 4.68457 12 4.68457C9.34898 4.68457 7.19995 6.83363 7.19995 9.48462C7.19995 12.1356 9.34898 14.2847 12 14.2847ZM11.9999 11.885C13.3253 11.885 14.3999 10.8105 14.3999 9.48499C14.3999 8.15949 13.3253 7.08496 11.9999 7.08496C10.6744 7.08496 9.59985 8.15949 9.59985 9.48499C9.59985 10.8105 10.6744 11.885 11.9999 11.885Z" fill="#F099FE"/>
|
||||
<path d="M0 8.93156C0 8.09371 0.836852 7.51377 1.62136 7.80796L11.5786 11.5419C11.8503 11.6438 12.1497 11.6438 12.4214 11.5419L22.3786 7.80796C23.1631 7.51377 24 8.09371 24 8.93156V22.0001C24 23.1047 23.1046 24.0001 22 24.0001H2C0.89543 24.0001 0 23.1047 0 22.0001V8.93156Z" fill="#7958FF"/>
|
||||
<path d="M0 22.0654H24C24 23.17 23.1046 24.0654 22 24.0654H2C0.89543 24.0654 0 23.17 0 22.0654Z" fill="#957BFF"/>
|
||||
<path d="M18.1231 17.6615V16.7422H19.2772C19.5352 16.7422 19.7358 16.6772 19.8791 16.5471C20.0246 16.417 20.0974 16.2285 20.0974 15.9816V15.975C20.0974 15.7259 20.0246 15.5374 19.8791 15.4095C19.7358 15.2816 19.5352 15.2177 19.2772 15.2177H18.1231V14.2852H19.5716C19.9265 14.2852 20.2351 14.3557 20.4975 14.4968C20.7598 14.6357 20.9627 14.8319 21.106 15.0854C21.2515 15.3368 21.3242 15.6333 21.3242 15.975V15.9816C21.3242 16.3211 21.2515 16.6176 21.106 16.8712C20.9627 17.1225 20.7598 17.3176 20.4975 17.4565C20.2351 17.5932 19.9265 17.6615 19.5716 17.6615H18.1231ZM17.5146 19.057V14.2852H18.7283V19.057H17.5146Z" fill="white"/>
|
||||
<path d="M14.0651 19.057V15.2607H12.6895V14.2852H16.6545V15.2607H15.2788V19.057H14.0651Z" fill="white"/>
|
||||
<path d="M9.23994 19.057V15.2607H7.86426V14.2852H11.8293V15.2607H10.4536V19.057H9.23994Z" fill="white"/>
|
||||
<path d="M2.67554 19.057V14.2852H3.88918V16.1569H5.79066V14.2852H7.0043V19.057H5.79066V17.1324H3.88918V19.057H2.67554Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
68
packages/connectors/connector-http-email/package.json
Normal file
68
packages/connectors/connector-http-email/package.json
Normal file
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"name": "@logto/connector-http-email",
|
||||
"version": "0.1.0",
|
||||
"description": "Email connector to send email via HTTP call.",
|
||||
"author": "Silverhand Inc. <contact@silverhand.io>",
|
||||
"dependencies": {
|
||||
"@logto/connector-kit": "workspace:^4.0.0",
|
||||
"@silverhand/essentials": "^2.9.1",
|
||||
"got": "^14.0.0",
|
||||
"zod": "^3.23.8"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"module": "./lib/index.js",
|
||||
"exports": "./lib/index.js",
|
||||
"license": "MPL-2.0",
|
||||
"type": "module",
|
||||
"files": [
|
||||
"lib",
|
||||
"docs",
|
||||
"logo.svg",
|
||||
"logo-dark.svg"
|
||||
],
|
||||
"scripts": {
|
||||
"precommit": "lint-staged",
|
||||
"check": "tsc --noEmit",
|
||||
"build": "tsup",
|
||||
"dev": "tsup --watch",
|
||||
"lint": "eslint --ext .ts src",
|
||||
"lint:report": "pnpm lint --format json --output-file report.json",
|
||||
"test": "vitest src",
|
||||
"test:ci": "pnpm run test --silent --coverage",
|
||||
"prepublishOnly": "pnpm build"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.9.0"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "@silverhand",
|
||||
"settings": {
|
||||
"import/core-modules": [
|
||||
"@silverhand/essentials",
|
||||
"got",
|
||||
"nock",
|
||||
"snakecase-keys",
|
||||
"zod"
|
||||
]
|
||||
}
|
||||
},
|
||||
"prettier": "@silverhand/eslint-config/.prettierrc",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@silverhand/eslint-config": "6.0.1",
|
||||
"@silverhand/ts-config": "6.0.0",
|
||||
"@types/node": "^20.11.20",
|
||||
"@types/supertest": "^6.0.2",
|
||||
"@vitest/coverage-v8": "^2.0.0",
|
||||
"eslint": "^8.56.0",
|
||||
"lint-staged": "^15.0.2",
|
||||
"nock": "^13.3.1",
|
||||
"prettier": "^3.0.0",
|
||||
"supertest": "^7.0.0",
|
||||
"tsup": "^8.1.0",
|
||||
"typescript": "^5.5.3",
|
||||
"vitest": "^2.0.0"
|
||||
}
|
||||
}
|
33
packages/connectors/connector-http-email/src/constant.ts
Normal file
33
packages/connectors/connector-http-email/src/constant.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import type { ConnectorMetadata } from '@logto/connector-kit';
|
||||
import { ConnectorConfigFormItemType } from '@logto/connector-kit';
|
||||
|
||||
export const defaultMetadata: ConnectorMetadata = {
|
||||
id: 'http-email-service',
|
||||
target: 'http-mail',
|
||||
platform: null,
|
||||
name: {
|
||||
en: 'HTTP Email',
|
||||
},
|
||||
logo: './logo.svg',
|
||||
logoDark: null,
|
||||
description: {
|
||||
en: 'Send email via HTTP call.',
|
||||
},
|
||||
readme: './README.md',
|
||||
formItems: [
|
||||
{
|
||||
key: 'endpoint',
|
||||
label: 'Endpoint',
|
||||
type: ConnectorConfigFormItemType.Text,
|
||||
required: true,
|
||||
placeholder: '<https://example.com/your-http-endpoint>',
|
||||
},
|
||||
{
|
||||
key: 'authorization',
|
||||
label: 'Authorization Header',
|
||||
type: ConnectorConfigFormItemType.Text,
|
||||
required: false,
|
||||
placeholder: '<Bearer your-token>',
|
||||
},
|
||||
],
|
||||
};
|
47
packages/connectors/connector-http-email/src/index.test.ts
Normal file
47
packages/connectors/connector-http-email/src/index.test.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import nock from 'nock';
|
||||
|
||||
import { TemplateType } from '@logto/connector-kit';
|
||||
|
||||
import createConnector from './index.js';
|
||||
import { mockedConfig } from './mock.js';
|
||||
|
||||
const getConfig = vi.fn().mockResolvedValue(mockedConfig);
|
||||
|
||||
describe('HTTP email connector', () => {
|
||||
afterEach(() => {
|
||||
nock.cleanAll();
|
||||
});
|
||||
|
||||
it('should init without throwing errors', async () => {
|
||||
await expect(createConnector({ getConfig })).resolves.not.toThrow();
|
||||
});
|
||||
|
||||
it('should call endpoint with correct parameters', async () => {
|
||||
const url = new URL(mockedConfig.endpoint);
|
||||
const mockPost = nock(url.origin)
|
||||
.post(url.pathname, (body) => {
|
||||
expect(body).toMatchObject({
|
||||
to: 'foo@logto.io',
|
||||
type: TemplateType.SignIn,
|
||||
payload: {
|
||||
code: '123456',
|
||||
},
|
||||
});
|
||||
return true;
|
||||
})
|
||||
.reply(200, {
|
||||
message: 'Email sent successfully',
|
||||
});
|
||||
|
||||
const connector = await createConnector({ getConfig });
|
||||
await connector.sendMessage({
|
||||
to: 'foo@logto.io',
|
||||
type: TemplateType.SignIn,
|
||||
payload: {
|
||||
code: '123456',
|
||||
},
|
||||
});
|
||||
|
||||
expect(mockPost.isDone()).toBe(true);
|
||||
});
|
||||
});
|
70
packages/connectors/connector-http-email/src/index.ts
Normal file
70
packages/connectors/connector-http-email/src/index.ts
Normal file
|
@ -0,0 +1,70 @@
|
|||
import { assert } from '@silverhand/essentials';
|
||||
import { got, HTTPError } from 'got';
|
||||
|
||||
import type {
|
||||
GetConnectorConfig,
|
||||
SendMessageFunction,
|
||||
CreateConnector,
|
||||
EmailConnector,
|
||||
} from '@logto/connector-kit';
|
||||
import {
|
||||
ConnectorError,
|
||||
ConnectorErrorCodes,
|
||||
validateConfig,
|
||||
ConnectorType,
|
||||
} from '@logto/connector-kit';
|
||||
|
||||
import { defaultMetadata } from './constant.js';
|
||||
import { httpMailConfigGuard } from './types.js';
|
||||
|
||||
const sendMessage =
|
||||
(getConfig: GetConnectorConfig): SendMessageFunction =>
|
||||
async (data, inputConfig) => {
|
||||
const { to, type, payload } = data;
|
||||
const config = inputConfig ?? (await getConfig(defaultMetadata.id));
|
||||
validateConfig(config, httpMailConfigGuard);
|
||||
const { endpoint, authorization } = config;
|
||||
|
||||
try {
|
||||
return await got.post(endpoint, {
|
||||
headers: {
|
||||
Authorization: authorization,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
json: {
|
||||
to,
|
||||
type,
|
||||
payload,
|
||||
},
|
||||
});
|
||||
} catch (error: unknown) {
|
||||
if (error instanceof HTTPError) {
|
||||
const {
|
||||
response: { body: rawBody },
|
||||
} = error;
|
||||
|
||||
assert(
|
||||
typeof rawBody === 'string',
|
||||
new ConnectorError(
|
||||
ConnectorErrorCodes.InvalidResponse,
|
||||
`Invalid response raw body type: ${typeof rawBody}`
|
||||
)
|
||||
);
|
||||
|
||||
throw new ConnectorError(ConnectorErrorCodes.General, rawBody);
|
||||
}
|
||||
|
||||
throw new ConnectorError(ConnectorErrorCodes.General, error);
|
||||
}
|
||||
};
|
||||
|
||||
const createHttpMailConnector: CreateConnector<EmailConnector> = async ({ getConfig }) => {
|
||||
return {
|
||||
metadata: defaultMetadata,
|
||||
type: ConnectorType.Email,
|
||||
configGuard: httpMailConfigGuard,
|
||||
sendMessage: sendMessage(getConfig),
|
||||
};
|
||||
};
|
||||
|
||||
export default createHttpMailConnector;
|
6
packages/connectors/connector-http-email/src/mock.ts
Normal file
6
packages/connectors/connector-http-email/src/mock.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
import type { HttpMailConfig } from './types.js';
|
||||
|
||||
export const mockedConfig: HttpMailConfig = {
|
||||
endpoint: 'https://example.com/your-http-endpoint',
|
||||
authorization: 'SampleToken',
|
||||
};
|
8
packages/connectors/connector-http-email/src/types.ts
Normal file
8
packages/connectors/connector-http-email/src/types.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
import { z } from 'zod';
|
||||
|
||||
export const httpMailConfigGuard = z.object({
|
||||
endpoint: z.string(),
|
||||
authorization: z.string().optional(),
|
||||
});
|
||||
|
||||
export type HttpMailConfig = z.infer<typeof httpMailConfigGuard>;
|
|
@ -1076,6 +1076,61 @@ importers:
|
|||
specifier: ^2.0.0
|
||||
version: 2.0.0(@types/node@20.11.20)(happy-dom@14.12.3)(jsdom@20.0.2)(lightningcss@1.25.1)(sass@1.77.8)
|
||||
|
||||
packages/connectors/connector-http-email:
|
||||
dependencies:
|
||||
'@logto/connector-kit':
|
||||
specifier: workspace:^4.0.0
|
||||
version: link:../../toolkit/connector-kit
|
||||
'@silverhand/essentials':
|
||||
specifier: ^2.9.1
|
||||
version: 2.9.1
|
||||
got:
|
||||
specifier: ^14.0.0
|
||||
version: 14.0.0
|
||||
zod:
|
||||
specifier: ^3.23.8
|
||||
version: 3.23.8
|
||||
devDependencies:
|
||||
'@silverhand/eslint-config':
|
||||
specifier: 6.0.1
|
||||
version: 6.0.1(eslint@8.57.0)(prettier@3.0.0)(typescript@5.5.3)
|
||||
'@silverhand/ts-config':
|
||||
specifier: 6.0.0
|
||||
version: 6.0.0(typescript@5.5.3)
|
||||
'@types/node':
|
||||
specifier: ^20.11.20
|
||||
version: 20.12.7
|
||||
'@types/supertest':
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2
|
||||
'@vitest/coverage-v8':
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0(vitest@2.0.0(@types/node@20.12.7)(happy-dom@14.12.3)(jsdom@20.0.2)(lightningcss@1.25.1)(sass@1.77.8))
|
||||
eslint:
|
||||
specifier: ^8.56.0
|
||||
version: 8.57.0
|
||||
lint-staged:
|
||||
specifier: ^15.0.2
|
||||
version: 15.0.2
|
||||
nock:
|
||||
specifier: ^13.3.1
|
||||
version: 13.3.1
|
||||
prettier:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
supertest:
|
||||
specifier: ^7.0.0
|
||||
version: 7.0.0
|
||||
tsup:
|
||||
specifier: ^8.1.0
|
||||
version: 8.1.0(@swc/core@1.3.52(@swc/helpers@0.5.1))(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3)
|
||||
typescript:
|
||||
specifier: ^5.5.3
|
||||
version: 5.5.3
|
||||
vitest:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0(@types/node@20.12.7)(happy-dom@14.12.3)(jsdom@20.0.2)(lightningcss@1.25.1)(sass@1.77.8)
|
||||
|
||||
packages/connectors/connector-huggingface:
|
||||
dependencies:
|
||||
'@logto/connector-kit':
|
||||
|
@ -5536,6 +5591,7 @@ packages:
|
|||
'@koa/router@12.0.1':
|
||||
resolution: {integrity: sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==}
|
||||
engines: {node: '>= 12'}
|
||||
deprecated: Use v12.0.2 or higher to fix the vulnerability issue
|
||||
|
||||
'@levischuck/tiny-cbor@0.2.2':
|
||||
resolution: {integrity: sha512-f5CnPw997Y2GQ8FAvtuVVC19FX8mwNNC+1XJcIi16n/LTJifKO6QBgGLgN3YEmqtGMk17SKSuoWES3imJVxAVw==}
|
||||
|
@ -7575,7 +7631,7 @@ packages:
|
|||
engines: {node: '>= 0.6'}
|
||||
|
||||
concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
|
||||
confusing-browser-globals@1.0.11:
|
||||
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
|
||||
|
@ -8174,7 +8230,7 @@ packages:
|
|||
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
|
||||
|
||||
ee-first@1.1.1:
|
||||
resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
electron-to-chromium@1.5.0:
|
||||
resolution: {integrity: sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==}
|
||||
|
@ -9195,7 +9251,7 @@ packages:
|
|||
engines: {node: '>=16.17.0'}
|
||||
|
||||
humanize-number@0.0.2:
|
||||
resolution: {integrity: sha1-EcCvakcWQ2M1iFiASPF5lUFInBg=}
|
||||
resolution: {integrity: sha512-un3ZAcNQGI7RzaWGZzQDH47HETM4Wrj6z6E4TId8Yeq9w5ZKUVB1nrT2jwFheTUjEmqcgTjXDc959jum+ai1kQ==}
|
||||
|
||||
husky@9.0.7:
|
||||
resolution: {integrity: sha512-vWdusw+y12DUEeoZqW1kplOFqk3tedGV8qlga8/SF6a3lOiWLqGZZQvfWvY0fQYdfiRi/u1DFNpudTSV9l1aCg==}
|
||||
|
@ -10415,7 +10471,7 @@ packages:
|
|||
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
|
||||
|
||||
media-typer@0.3.0:
|
||||
resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=}
|
||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
meow@10.1.5:
|
||||
|
@ -12411,7 +12467,7 @@ packages:
|
|||
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
|
||||
|
||||
stubs@3.0.0:
|
||||
resolution: {integrity: sha1-6NK6H6nJBXAwPAMLaQD31fiavls=}
|
||||
resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==}
|
||||
|
||||
style-search@0.1.0:
|
||||
resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
|
||||
|
@ -13014,7 +13070,7 @@ packages:
|
|||
optional: true
|
||||
|
||||
void-elements@3.1.0:
|
||||
resolution: {integrity: sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=}
|
||||
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
w3c-xmlserializer@3.0.0:
|
||||
|
@ -15684,10 +15740,10 @@ snapshots:
|
|||
eslint-config-prettier: 9.1.0(eslint@8.57.0)
|
||||
eslint-config-xo: 0.44.0(eslint@8.57.0)
|
||||
eslint-config-xo-typescript: 4.0.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3))(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)
|
||||
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
|
||||
eslint-plugin-consistent-default-export-name: 0.0.15
|
||||
eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
|
||||
eslint-plugin-n: 17.2.1(eslint@8.57.0)
|
||||
eslint-plugin-no-use-extend-native: 0.5.0
|
||||
eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.0.0)
|
||||
|
@ -18651,13 +18707,13 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0):
|
||||
dependencies:
|
||||
debug: 4.3.5
|
||||
enhanced-resolve: 5.16.0
|
||||
eslint: 8.57.0
|
||||
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
|
||||
fast-glob: 3.3.2
|
||||
get-tsconfig: 4.7.3
|
||||
is-core-module: 2.13.1
|
||||
|
@ -18668,14 +18724,14 @@ snapshots:
|
|||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.5.3)
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -18697,7 +18753,7 @@ snapshots:
|
|||
eslint: 8.57.0
|
||||
ignore: 5.3.1
|
||||
|
||||
eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
|
||||
dependencies:
|
||||
array-includes: 3.1.8
|
||||
array.prototype.findlastindex: 1.2.5
|
||||
|
@ -18707,7 +18763,7 @@ snapshots:
|
|||
doctrine: 2.1.0
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.13.1
|
||||
is-glob: 4.0.3
|
||||
|
|
Loading…
Reference in a new issue