From 436a1840a8c403eca72b35c96e51be4caed751c2 Mon Sep 17 00:00:00 2001 From: simeng-li Date: Mon, 14 Oct 2024 15:39:05 +0800 Subject: [PATCH] feat(core,schemas): init auth flow for IdP initiated SAML SSO (#6668) * feat(core,schemas): init auth flow for IdP initiated SAML SSO init auth flow for IdP initiated SAML SSO * fix(test): fix phrases key fix phrases key --- packages/core/package.json | 1 + .../sign-in-experience/index.test.ts | 27 +- .../core/src/libraries/sso-connector.test.ts | 174 ++++++++++- packages/core/src/libraries/sso-connector.ts | 57 +++- packages/core/src/routes/authn.ts | 8 +- .../utils/single-sign-on-guard.test.ts | 17 +- .../core/src/test-utils/mock-libraries.ts | 12 + ...onnector-idp-initiated-auth-config.test.ts | 11 +- .../foundations/jsonb-types/sso-connector.ts | 5 +- pnpm-lock.yaml | 277 +++++++++--------- 10 files changed, 410 insertions(+), 179 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index de9077dde..76ec6e85d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,6 +40,7 @@ "@logto/demo-app": "workspace:*", "@logto/experience": "workspace:*", "@logto/experience-legacy": "workspace:*", + "@logto/js": "^4.1.4", "@logto/language-kit": "workspace:^1.1.0", "@logto/phrases": "workspace:^1.14.0", "@logto/phrases-experience": "workspace:^1.8.0", diff --git a/packages/core/src/libraries/sign-in-experience/index.test.ts b/packages/core/src/libraries/sign-in-experience/index.test.ts index 2f13e995d..5a1d5d7f4 100644 --- a/packages/core/src/libraries/sign-in-experience/index.test.ts +++ b/packages/core/src/libraries/sign-in-experience/index.test.ts @@ -15,11 +15,13 @@ import { import { WellKnownCache } from '#src/caches/well-known.js'; import RequestError from '#src/errors/RequestError/index.js'; import { ssoConnectorFactories } from '#src/sso/index.js'; -import { mockLogtoConfigsLibrary } from '#src/test-utils/mock-libraries.js'; +import { + mockLogtoConfigsLibrary, + mockSsoConnectorLibrary, +} from '#src/test-utils/mock-libraries.js'; import { createCloudConnectionLibrary } from '../cloud-connection.js'; import { createConnectorLibrary } from '../connector.js'; -import { type SsoConnectorLibrary } from '../sso-connector.js'; const { jest } = import.meta; @@ -41,15 +43,6 @@ const signInExperiences = { }; const { findDefaultSignInExperience, updateDefaultSignInExperience } = signInExperiences; -const ssoConnectorLibrary: jest.Mocked = { - getSsoConnectors: jest.fn(), - getSsoConnectorById: jest.fn(), - getAvailableSsoConnectors: jest.fn(), - createSsoConnectorIdpInitiatedAuthConfig: jest.fn(), - updateSsoConnectorIdpInitiatedAuthConfig: jest.fn(), - createIdpInitiatedSamlSsoSession: jest.fn(), -}; - const { MockQueries } = await import('#src/test-utils/tenant.js'); const queries = new MockQueries({ @@ -75,7 +68,7 @@ const { validateLanguageInfo, removeUnavailableSocialConnectorTargets, getFullSi createSignInExperienceLibrary( queries, connectorLibrary, - ssoConnectorLibrary, + mockSsoConnectorLibrary, cloudConnection, new WellKnownCache('foo', new TtlCache()) ); @@ -157,7 +150,7 @@ describe('getFullSignInExperience()', () => { it('should return full sign-in experience', async () => { findDefaultSignInExperience.mockResolvedValueOnce(mockSignInExperience); getLogtoConnectors.mockResolvedValueOnce(mockSocialConnectors); - ssoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ + mockSsoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ wellConfiguredSsoConnector, ]); @@ -191,7 +184,7 @@ describe('getFullSignInExperience()', () => { socialSignInConnectorTargets: ['github', 'facebook', 'google'], }); getLogtoConnectors.mockResolvedValueOnce([mockGoogleConnector, mockGithubConnector]); - ssoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ + mockSsoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ wellConfiguredSsoConnector, ]); @@ -238,7 +231,7 @@ describe('get sso connectors', () => { const { ssoConnectors } = await getFullSignInExperience({ locale: 'en' }); - expect(ssoConnectorLibrary.getAvailableSsoConnectors).not.toBeCalled(); + expect(mockSsoConnectorLibrary.getAvailableSsoConnectors).not.toBeCalled(); expect(ssoConnectors).toEqual([]); }); @@ -247,7 +240,7 @@ describe('get sso connectors', () => { getLogtoConnectors.mockResolvedValueOnce(mockSocialConnectors); findDefaultSignInExperience.mockResolvedValueOnce(mockSignInExperience); - ssoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ + mockSsoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ wellConfiguredSsoConnector, ]); @@ -271,7 +264,7 @@ describe('get sso connectors', () => { const displayName = 'Logto Connector'; - ssoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ + mockSsoConnectorLibrary.getAvailableSsoConnectors.mockResolvedValueOnce([ { ...wellConfiguredSsoConnector, branding: { diff --git a/packages/core/src/libraries/sso-connector.test.ts b/packages/core/src/libraries/sso-connector.test.ts index 94626671c..763572641 100644 --- a/packages/core/src/libraries/sso-connector.test.ts +++ b/packages/core/src/libraries/sso-connector.test.ts @@ -1,3 +1,6 @@ +import { Prompt, QueryKey, withReservedScopes } from '@logto/js'; +import { ApplicationType, type SsoConnectorIdpInitiatedAuthConfig } from '@logto/schemas'; + import { mockSsoConnector, wellConfiguredSsoConnector } from '#src/__mocks__/sso.js'; import RequestError from '#src/errors/RequestError/index.js'; import { MockQueries } from '#src/test-utils/tenant.js'; @@ -7,15 +10,27 @@ import { createSsoConnectorLibrary } from './sso-connector.js'; const { jest } = import.meta; const findAllSsoConnectors = jest.fn(); -const geConnectorById = jest.fn(); +const getConnectorById = jest.fn(); +const findApplicationById = jest.fn(); +const insertIdpInitiatedAuthConfig = jest.fn(); +const updateIdpInitiatedAuthConfig = jest.fn(); const queries = new MockQueries({ - ssoConnectors: { findAll: findAllSsoConnectors, findById: geConnectorById }, + ssoConnectors: { + findAll: findAllSsoConnectors, + findById: getConnectorById, + insertIdpInitiatedAuthConfig, + }, + applications: { findApplicationById }, }); describe('SsoConnectorLibrary', () => { const ssoConnectorLibrary = createSsoConnectorLibrary(queries); + afterEach(() => { + jest.clearAllMocks(); + }); + it('getSsoConnectors() should filter unsupported sso connectors', async () => { const { getSsoConnectors } = ssoConnectorLibrary; @@ -76,7 +91,7 @@ describe('SsoConnectorLibrary', () => { it('getSsoConnectorById() should throw 404 if the connector is not supported', async () => { const { getSsoConnectorById } = ssoConnectorLibrary; - geConnectorById.mockResolvedValueOnce({ + getConnectorById.mockResolvedValueOnce({ ...mockSsoConnector, providerName: 'unsupported', }); @@ -92,10 +107,161 @@ describe('SsoConnectorLibrary', () => { it('getSsoConnectorById() should return the connector if it is supported', async () => { const { getSsoConnectorById } = ssoConnectorLibrary; - geConnectorById.mockResolvedValueOnce(mockSsoConnector); + getConnectorById.mockResolvedValueOnce(mockSsoConnector); const connector = await getSsoConnectorById('id'); expect(connector).toEqual(mockSsoConnector); }); + + it.each([ + ApplicationType.MachineToMachine, + ApplicationType.Native, + ApplicationType.Protected, + ApplicationType.SPA, + ])( + 'createSsoConnectorIdpInitiatedAuthConfig() should throw 400 if the application type is $s', + async (type) => { + findApplicationById.mockResolvedValueOnce({ type, isThirdParty: false }); + + await expect( + ssoConnectorLibrary.createSsoConnectorIdpInitiatedAuthConfig({ + connectorId: 'connectorId', + defaultApplicationId: 'appId', + }) + ).rejects.toMatchError( + new RequestError('connector.saml_idp_initiated_auth_invalid_application_type') + ); + + expect(insertIdpInitiatedAuthConfig).not.toHaveBeenCalled(); + } + ); + + it('createSsoConnectorIdpInitiatedAuthConfig() should throw 400 if the application is third-party app', async () => { + findApplicationById.mockResolvedValueOnce({ + type: ApplicationType.Traditional, + isThirdParty: true, + }); + + await expect( + ssoConnectorLibrary.createSsoConnectorIdpInitiatedAuthConfig({ + connectorId: 'connectorId', + defaultApplicationId: 'appId', + }) + ).rejects.toMatchError( + new RequestError('connector.saml_idp_initiated_auth_invalid_application_type') + ); + + expect(insertIdpInitiatedAuthConfig).not.toHaveBeenCalled(); + }); + + it('should guard the application type if the defaultApplicationId is provided', async () => { + findApplicationById.mockResolvedValueOnce({ + type: ApplicationType.MachineToMachine, + isThirdParty: false, + }); + + await expect( + ssoConnectorLibrary.updateSsoConnectorIdpInitiatedAuthConfig('connectorId', { + defaultApplicationId: 'appId', + }) + ).rejects.toMatchError( + new RequestError('connector.saml_idp_initiated_auth_invalid_application_type') + ); + + expect(updateIdpInitiatedAuthConfig).not.toHaveBeenCalled(); + }); + + describe('getIdpInitiatedSamlSsoSignInUrl()', () => { + const { getIdpInitiatedSamlSsoSignInUrl } = ssoConnectorLibrary; + + const issuer = 'https://example.com/oidc'; + + const authConfig: SsoConnectorIdpInitiatedAuthConfig = { + tenantId: 'tenantId', + defaultApplicationId: 'appId', + connectorId: 'connectorId', + redirectUri: 'https://app.com', + authParameters: {}, + createdAt: Date.now(), + }; + + const defaultQueryParameters = { + [QueryKey.ClientId]: authConfig.defaultApplicationId, + [QueryKey.ResponseType]: 'code', + [QueryKey.Prompt]: Prompt.Login, + [QueryKey.DirectSignIn]: `sso:${authConfig.connectorId}`, + }; + + it('the returned sign-in url should be a auth endpoint', async () => { + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, authConfig); + expect(url.toString().indexOf(issuer)).toBe(0); + }); + + it('the returned sign-in url should contain the default query parameters', async () => { + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, authConfig); + const parameters = new URLSearchParams(url.search); + for (const [key, value] of Object.entries(defaultQueryParameters)) { + expect(parameters.get(key)).toBe(value); + } + expect(parameters.get(QueryKey.Scope)).toBe(withReservedScopes()); + }); + + it('should use the provided redirectUri', async () => { + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, authConfig); + + expect(findApplicationById).not.toHaveBeenCalled(); + const parameters = new URLSearchParams(url.search); + expect(parameters.get(QueryKey.RedirectUri)).toBe(authConfig.redirectUri); + }); + + it('should use the first registered redirectUri of the default application if not provided', async () => { + findApplicationById.mockResolvedValueOnce({ + oidcClientMetadata: { + redirectUris: ['https://fallback.com'], + }, + }); + + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, { + ...authConfig, + redirectUri: null, + }); + + expect(findApplicationById).toHaveBeenCalledWith(authConfig.defaultApplicationId); + const parameters = new URLSearchParams(url.search); + expect(parameters.get(QueryKey.RedirectUri)).toBe('https://fallback.com'); + }); + + it('should append extra scopes to the query parameters', async () => { + const scopes = ['scope1', 'scope2']; + + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, { + ...authConfig, + authParameters: { + scope: scopes.join(' '), + }, + }); + + const parameters = new URLSearchParams(url.search); + expect(parameters.get(QueryKey.Scope)).toBe(withReservedScopes(scopes)); + }); + + it('should be able to append extra query parameters', async () => { + const extraParams = { + [QueryKey.State]: 'custom_state', + [QueryKey.Resource]: 'http://example.com/api', + [QueryKey.ResponseType]: 'token', + }; + + const url = await getIdpInitiatedSamlSsoSignInUrl(issuer, { + ...authConfig, + authParameters: extraParams, + }); + + const parameters = new URLSearchParams(url.search); + expect(parameters.get(QueryKey.State)).toBe(extraParams[QueryKey.State]); + expect(parameters.get(QueryKey.Resource)).toBe(extraParams[QueryKey.Resource]); + expect(parameters.get(QueryKey.ResponseType)).toBe(extraParams[QueryKey.ResponseType]); + }); + }); }); diff --git a/packages/core/src/libraries/sso-connector.ts b/packages/core/src/libraries/sso-connector.ts index 5494602d7..6e35e12de 100644 --- a/packages/core/src/libraries/sso-connector.ts +++ b/packages/core/src/libraries/sso-connector.ts @@ -1,11 +1,13 @@ +import { type DirectSignInOptions, Prompt, QueryKey, withReservedScopes } from '@logto/js'; import { ApplicationType, type SsoSamlAssertionContent, type CreateSsoConnectorIdpInitiatedAuthConfig, type SupportedSsoConnector, + type SsoConnectorIdpInitiatedAuthConfig, } from '@logto/schemas'; import { generateStandardId } from '@logto/shared'; -import { assert } from '@silverhand/essentials'; +import { assert, trySafe } from '@silverhand/essentials'; import { defaultIdPInitiatedSamlSsoSessionTtl } from '#src/constants/index.js'; import RequestError from '#src/errors/RequestError/index.js'; @@ -134,6 +136,58 @@ export const createSsoConnectorLibrary = (queries: Queries) => { }); }; + /** + * Build the IdP initiated SAML SSO authentication sign-in URL. + * + * @remarks + * For IdP-initiated SAML SSO flow use only. Generate the sign-in URL for the user to sign in. + * + * @param issuer The oidc issuer endpoint of the current tenant. + * @param authConfig The IdP-initiated SAML SSO authentication configuration. + * + * @throw {RequestError} Throws a 400 error if the redirect URI is not provided and the default application does not have a registered redirect URI. + */ + const getIdpInitiatedSamlSsoSignInUrl = async ( + issuer: string, + authConfig: SsoConnectorIdpInitiatedAuthConfig + ) => { + const { + connectorId, + defaultApplicationId, + authParameters: { scope, ...extraParams }, + } = authConfig; + + // Get the first registered redirect URI of the default application if not provided + const redirectUri = + authConfig.redirectUri ?? + (await trySafe(async () => { + const { oidcClientMetadata } = await applications.findApplicationById(defaultApplicationId); + return oidcClientMetadata.redirectUris[0]; + })); + + if (!redirectUri) { + throw new RequestError('oidc.invalid_redirect_uri'); + } + + const directSignInOptions: DirectSignInOptions = { + method: 'sso', + target: connectorId, + }; + + const queryParameters = new URLSearchParams({ + [QueryKey.ClientId]: defaultApplicationId, + [QueryKey.RedirectUri]: redirectUri, + [QueryKey.ResponseType]: 'code', + [QueryKey.Prompt]: Prompt.Login, + [QueryKey.DirectSignIn]: `${directSignInOptions.method}:${directSignInOptions.target}`, + ...extraParams, + }); + + queryParameters.append(QueryKey.Scope, withReservedScopes(scope?.split(' ') ?? [])); + + return new URL(`${issuer}/auth?${queryParameters.toString()}`); + }; + return { getSsoConnectors, getAvailableSsoConnectors, @@ -141,5 +195,6 @@ export const createSsoConnectorLibrary = (queries: Queries) => { createSsoConnectorIdpInitiatedAuthConfig, updateSsoConnectorIdpInitiatedAuthConfig, createIdpInitiatedSamlSsoSession, + getIdpInitiatedSamlSsoSignInUrl, }; }; diff --git a/packages/core/src/routes/authn.ts b/packages/core/src/routes/authn.ts index 3283eb1d9..edbb5763a 100644 --- a/packages/core/src/routes/authn.ts +++ b/packages/core/src/routes/authn.ts @@ -236,8 +236,14 @@ export default function authnRoutes( }); // TODO: redirect to SSO direct sign-in flow + const signInUrl = await ssoConnectorsLibrary.getIdpInitiatedSamlSsoSignInUrl( + envSet.oidc.issuer, + idpInitiatedAuthConfig + ); - return next(); + ctx.redirect(signInUrl.toString()); + + return; } // TODO: remove this assertion after the IdP initiated SSO flow is implemented diff --git a/packages/core/src/routes/interaction/utils/single-sign-on-guard.test.ts b/packages/core/src/routes/interaction/utils/single-sign-on-guard.test.ts index b21e980f7..b2b3cf191 100644 --- a/packages/core/src/routes/interaction/utils/single-sign-on-guard.test.ts +++ b/packages/core/src/routes/interaction/utils/single-sign-on-guard.test.ts @@ -2,6 +2,7 @@ import { mockSignInExperience } from '#src/__mocks__/sign-in-experience.js'; import { wellConfiguredSsoConnector } from '#src/__mocks__/sso.js'; import RequestError from '#src/errors/RequestError/index.js'; import { type SsoConnectorLibrary } from '#src/libraries/sso-connector.js'; +import { mockSsoConnectorLibrary } from '#src/test-utils/mock-libraries.js'; import { verifySsoOnlyEmailIdentifier } from './single-sign-on-guard.js'; @@ -9,13 +10,9 @@ const { jest } = import.meta; const getAvailableSsoConnectorsMock = jest.fn(); -const mockSsoConnectorLibrary: jest.Mocked = { +const ssoConnectorLibrary: jest.Mocked = { + ...mockSsoConnectorLibrary, getAvailableSsoConnectors: getAvailableSsoConnectorsMock, - getSsoConnectors: jest.fn(), - getSsoConnectorById: jest.fn(), - createSsoConnectorIdpInitiatedAuthConfig: jest.fn(), - updateSsoConnectorIdpInitiatedAuthConfig: jest.fn(), - createIdpInitiatedSamlSsoSession: jest.fn(), }; describe('verifyEmailIdentifier tests', () => { @@ -26,7 +23,7 @@ describe('verifyEmailIdentifier tests', () => { it('should return if the identifier is not an email', async () => { await expect( verifySsoOnlyEmailIdentifier( - mockSsoConnectorLibrary, + ssoConnectorLibrary, { username: 'foo', password: 'bar', @@ -39,7 +36,7 @@ describe('verifyEmailIdentifier tests', () => { it('should return if the ssoConnector is not enabled', async () => { await expect( verifySsoOnlyEmailIdentifier( - mockSsoConnectorLibrary, + ssoConnectorLibrary, { email: 'foo@bar.com', password: 'bar', @@ -64,7 +61,7 @@ describe('verifyEmailIdentifier tests', () => { await expect( verifySsoOnlyEmailIdentifier( - mockSsoConnectorLibrary, + ssoConnectorLibrary, { email: 'foo@bar.com', password: 'bar', @@ -84,7 +81,7 @@ describe('verifyEmailIdentifier tests', () => { await expect( verifySsoOnlyEmailIdentifier( - mockSsoConnectorLibrary, + ssoConnectorLibrary, { email: 'foo@example.com', verificationCode: 'bar', diff --git a/packages/core/src/test-utils/mock-libraries.ts b/packages/core/src/test-utils/mock-libraries.ts index bde91839e..0f67882b9 100644 --- a/packages/core/src/test-utils/mock-libraries.ts +++ b/packages/core/src/test-utils/mock-libraries.ts @@ -3,6 +3,8 @@ import Client from '@withtyped/client'; import { type LogtoConfigLibrary } from '#src/libraries/logto-config.js'; +import { type SsoConnectorLibrary } from '../libraries/sso-connector.js'; + const { jest } = import.meta; export const mockLogtoConfigsLibrary: jest.Mocked = { @@ -15,3 +17,13 @@ export const mockLogtoConfigsLibrary: jest.Mocked = { }; export const mockCloudClient = new Client({ baseUrl: 'http://localhost:3001' }); + +export const mockSsoConnectorLibrary: jest.Mocked = { + getAvailableSsoConnectors: jest.fn(), + getSsoConnectors: jest.fn(), + getSsoConnectorById: jest.fn(), + createSsoConnectorIdpInitiatedAuthConfig: jest.fn(), + updateSsoConnectorIdpInitiatedAuthConfig: jest.fn(), + createIdpInitiatedSamlSsoSession: jest.fn(), + getIdpInitiatedSamlSsoSignInUrl: jest.fn(), +}; diff --git a/packages/integration-tests/src/tests/api/sso-connectors/sso-connector-idp-initiated-auth-config.test.ts b/packages/integration-tests/src/tests/api/sso-connectors/sso-connector-idp-initiated-auth-config.test.ts index 817259fa5..55c9cf72e 100644 --- a/packages/integration-tests/src/tests/api/sso-connectors/sso-connector-idp-initiated-auth-config.test.ts +++ b/packages/integration-tests/src/tests/api/sso-connectors/sso-connector-idp-initiated-auth-config.test.ts @@ -108,8 +108,7 @@ devFeatureTest.describe('SAML IdP initiated authentication config', () => { const defaultApplicationId = applications.get('traditional')!.id; const redirectUri = 'https://example.com'; const authParameters = { - resources: ['resource1', 'resource2'], - scopes: ['profile', 'email'], + scope: 'profile email', }; const connectorId = ssoConnectors.get('saml')!.id; @@ -202,8 +201,8 @@ devFeatureTest.describe('SAML IdP initiated authentication config', () => { { redirectUri: 'https://updated.com', authParameters: { - resources: ['resource1', 'resource2'], - scopes: ['profile', 'email'], + resource: 'test_api.com', + scopes: 'profile email', }, } ); @@ -213,8 +212,8 @@ devFeatureTest.describe('SAML IdP initiated authentication config', () => { defaultApplicationId, redirectUri: 'https://updated.com', authParameters: { - resources: ['resource1', 'resource2'], - scopes: ['profile', 'email'], + resource: 'test_api.com', + scopes: 'profile email', }, }); }); diff --git a/packages/schemas/src/foundations/jsonb-types/sso-connector.ts b/packages/schemas/src/foundations/jsonb-types/sso-connector.ts index 4709b5012..0688a020a 100644 --- a/packages/schemas/src/foundations/jsonb-types/sso-connector.ts +++ b/packages/schemas/src/foundations/jsonb-types/sso-connector.ts @@ -14,10 +14,9 @@ export type SsoBranding = z.infer; export const idpInitiatedAuthParamsGuard = z .object({ - resources: z.array(z.string()).optional(), - scopes: z.array(z.string()).optional(), + scope: z.string().optional(), }) - .catchall(z.unknown()); + .catchall(z.string()); export type IdpInitiatedAuthParams = z.infer; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b3fe59ca8..bab951846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,7 +41,7 @@ importers: version: 8.8.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2))(typescript@5.0.2) + 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.0.2))(typescript@5.0.2) typescript: specifier: ^5.0.0 version: 5.0.2 @@ -263,7 +263,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -330,7 +330,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -388,7 +388,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -446,7 +446,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -510,7 +510,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -574,7 +574,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -635,7 +635,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -702,7 +702,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -760,7 +760,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -818,7 +818,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -876,7 +876,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -937,7 +937,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1007,7 +1007,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -1068,7 +1068,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1123,7 +1123,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -1181,7 +1181,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -1239,7 +1239,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1297,7 +1297,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -1358,7 +1358,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1416,7 +1416,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1474,7 +1474,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1532,7 +1532,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1590,7 +1590,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1648,7 +1648,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1706,7 +1706,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1764,7 +1764,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1822,7 +1822,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1889,7 +1889,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1959,7 +1959,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2017,7 +2017,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -2072,7 +2072,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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 @@ -2136,7 +2136,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2194,7 +2194,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2252,7 +2252,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2316,7 +2316,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2374,7 +2374,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2432,7 +2432,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2490,7 +2490,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2548,7 +2548,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3) + 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.11.20)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2606,7 +2606,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3))(typescript@5.5.3) + 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.10.4)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -2952,6 +2952,9 @@ importers: '@logto/experience-legacy': specifier: workspace:* version: link:../experience-legacy + '@logto/js': + specifier: ^4.1.4 + version: 4.1.4 '@logto/language-kit': specifier: workspace:^1.1.0 version: link:../toolkit/language-kit @@ -3192,7 +3195,7 @@ importers: version: 8.57.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) jest-matcher-specific-error: specifier: ^1.0.0 version: 1.0.0 @@ -3222,7 +3225,7 @@ importers: version: 7.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3))(typescript@5.5.3) + 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.10.4)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -3373,7 +3376,7 @@ importers: version: 3.0.0 tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3) + 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) packages/experience: devDependencies: @@ -3848,7 +3851,7 @@ importers: version: 10.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) jest-matcher-specific-error: specifier: ^1.0.0 version: 1.0.0 @@ -3875,7 +3878,7 @@ importers: version: 22.6.5(typescript@5.5.3) tsup: specifier: ^8.1.0 - version: 8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3))(typescript@5.5.3) + 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.10.4)(typescript@5.5.3))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -7635,7 +7638,7 @@ packages: engines: {node: '>= 0.6'} concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} @@ -8234,7 +8237,7 @@ packages: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} electron-to-chromium@1.5.0: resolution: {integrity: sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==} @@ -9255,7 +9258,7 @@ packages: engines: {node: '>=16.17.0'} humanize-number@0.0.2: - resolution: {integrity: sha512-un3ZAcNQGI7RzaWGZzQDH47HETM4Wrj6z6E4TId8Yeq9w5ZKUVB1nrT2jwFheTUjEmqcgTjXDc959jum+ai1kQ==} + resolution: {integrity: sha1-EcCvakcWQ2M1iFiASPF5lUFInBg=} husky@9.0.7: resolution: {integrity: sha512-vWdusw+y12DUEeoZqW1kplOFqk3tedGV8qlga8/SF6a3lOiWLqGZZQvfWvY0fQYdfiRi/u1DFNpudTSV9l1aCg==} @@ -10475,7 +10478,7 @@ packages: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} engines: {node: '>= 0.6'} meow@10.1.5: @@ -12471,7 +12474,7 @@ packages: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} stubs@3.0.0: - resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + resolution: {integrity: sha1-6NK6H6nJBXAwPAMLaQD31fiavls=} style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} @@ -13074,7 +13077,7 @@ packages: optional: true void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + resolution: {integrity: sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=} engines: {node: '>=0.10.0'} w3c-xmlserializer@3.0.0: @@ -14963,7 +14966,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -14977,7 +14980,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -14998,7 +15001,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -15012,7 +15015,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17918,13 +17921,13 @@ snapshots: dependencies: lodash.get: 4.4.2 - create-jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): + create-jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -20258,16 +20261,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): + jest-cli@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + create-jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -20296,7 +20299,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): + jest-config@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -20322,7 +20325,38 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.10.4 - ts-node: 10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3) + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): + dependencies: + '@babel/core': 7.24.4 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.24.4) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.12.7 + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -20358,37 +20392,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): - dependencies: - '@babel/core': 7.24.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.4) - chalk: 4.1.2 - ci-info: 3.8.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.12.7 - ts-node: 10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - jest-dev-server@10.0.0: dependencies: chalk: 4.1.2 @@ -20697,12 +20700,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): + jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + jest-cli: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -22636,31 +22639,31 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)): + postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)): dependencies: lilconfig: 3.1.2 yaml: 2.4.5 optionalDependencies: postcss: 8.4.39 - ts-node: 10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3) + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3) - postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3)): + postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.11.20)(typescript@5.5.3)): dependencies: lilconfig: 3.1.2 yaml: 2.4.5 optionalDependencies: postcss: 8.4.39 - ts-node: 10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3) + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.11.20)(typescript@5.5.3) - postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2)): + postcss-load-config@4.0.2(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.0.2)): dependencies: lilconfig: 3.1.2 yaml: 2.4.5 optionalDependencies: postcss: 8.4.39 - ts-node: 10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2) + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.0.2) - postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3)): + postcss-load-config@4.0.2(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)): dependencies: lilconfig: 3.1.2 yaml: 2.4.5 @@ -24227,28 +24230,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.7 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.3.52(@swc/helpers@0.5.1) - optional: true - - ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3): + ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -24269,7 +24251,7 @@ snapshots: '@swc/core': 1.3.52(@swc/helpers@0.5.1) optional: true - ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3): + ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.11.20)(typescript@5.5.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -24290,7 +24272,7 @@ snapshots: '@swc/core': 1.3.52(@swc/helpers@0.5.1) optional: true - ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2): + ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.0.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -24311,6 +24293,27 @@ snapshots: '@swc/core': 1.3.52(@swc/helpers@0.5.1) optional: true + ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.5.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.12.7 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.3.52(@swc/helpers@0.5.1) + optional: true + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -24331,7 +24334,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3))(typescript@5.5.3): + tsup@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.10.4)(typescript@5.5.3))(typescript@5.5.3): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 @@ -24341,7 +24344,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.10.4)(typescript@5.5.3)) + postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.10.4)(typescript@5.5.3)) resolve-from: 5.0.0 rollup: 4.14.3 source-map: 0.8.0-beta.0 @@ -24355,7 +24358,7 @@ snapshots: - supports-color - ts-node - tsup@8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3))(typescript@5.5.3): + tsup@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.11.20)(typescript@5.5.3))(typescript@5.5.3): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 @@ -24365,7 +24368,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.11.20)(typescript@5.5.3)) + postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.11.20)(typescript@5.5.3)) resolve-from: 5.0.0 rollup: 4.14.3 source-map: 0.8.0-beta.0 @@ -24379,7 +24382,7 @@ snapshots: - supports-color - ts-node - tsup@8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2))(typescript@5.0.2): + tsup@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.0.2))(typescript@5.0.2): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 @@ -24389,7 +24392,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.0.2)) + postcss-load-config: 4.0.2(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.0.2)) resolve-from: 5.0.0 rollup: 4.14.3 source-map: 0.8.0-beta.0 @@ -24403,7 +24406,7 @@ snapshots: - supports-color - ts-node - tsup@8.1.0(@swc/core@1.3.52)(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3))(typescript@5.5.3): + tsup@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): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 @@ -24413,7 +24416,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.3)) + postcss-load-config: 4.0.2(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)) resolve-from: 5.0.0 rollup: 4.14.3 source-map: 0.8.0-beta.0