зеркало из https://github.com/mozilla/fxa.git
feat: add nestJS service loading to payments-next
Because: * We want to be able to call server-side logic with our business classes directly from the nextJS app before rendering on the server. This pull request: * Adds a NestJS application context to the NextJS app that can be used to load services and call methods on them.
This commit is contained in:
Родитель
475bfcd713
Коммит
e97fd383b8
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"mysqlConfig": {
|
||||
"database": "fxa",
|
||||
"port": 3306,
|
||||
"host": "127.0.0.1",
|
||||
"user": "root",
|
||||
"password": "",
|
||||
"connectionLimitMax": 20
|
||||
}
|
||||
}
|
|
@ -1,5 +1,8 @@
|
|||
import { CartService } from '@fxa/payments/cart';
|
||||
import { PurchaseDetails, TermsAndPrivacy } from '@fxa/payments/ui/server';
|
||||
|
||||
import { getCartData, getContentfulContent } from '../../lib/apiClient';
|
||||
import { getApp } from '../../nestapp/app';
|
||||
|
||||
interface CheckoutParams {
|
||||
offeringId: string;
|
||||
|
@ -17,6 +20,8 @@ export default async function Index({ params }: { params: CheckoutParams }) {
|
|||
const contentfulData = getContentfulContent(params.offeringId, locale);
|
||||
const cartData = getCartData(cartId);
|
||||
const [contentful, cart] = await Promise.all([contentfulData, cartData]);
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
const cartService = (await getApp()).get(CartService);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import { dotenvLoader, fileLoader, TypedConfigModule } from 'nest-typed-config';
|
||||
|
||||
import { CartManager, CartService } from '@fxa/payments/cart';
|
||||
import { AccountDatabaseFactory } from '@fxa/shared/db/mysql/account';
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { RootConfig } from './config';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
TypedConfigModule.forRoot({
|
||||
schema: RootConfig,
|
||||
load: [
|
||||
dotenvLoader({ separator: '__', ignoreEnvFile: true }),
|
||||
fileLoader(),
|
||||
],
|
||||
}),
|
||||
],
|
||||
controllers: [],
|
||||
providers: [AccountDatabaseFactory, CartService, CartManager],
|
||||
})
|
||||
export class AppModule {}
|
|
@ -0,0 +1,17 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import 'server-only';
|
||||
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
|
||||
import { AppModule } from './app.module';
|
||||
|
||||
let app: Awaited<ReturnType<typeof NestFactory.createApplicationContext>>;
|
||||
|
||||
export async function getApp() {
|
||||
if (app) return app;
|
||||
app = await NestFactory.createApplicationContext(AppModule);
|
||||
return app;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import { Type } from 'class-transformer';
|
||||
import { IsDefined, ValidateNested } from 'class-validator';
|
||||
|
||||
import { MySQLConfig } from '@fxa/shared/db/mysql/core';
|
||||
|
||||
export class RootConfig {
|
||||
@Type(() => MySQLConfig)
|
||||
@ValidateNested()
|
||||
@IsDefined()
|
||||
public readonly mysqlConfig!: Partial<MySQLConfig>;
|
||||
}
|
|
@ -13,7 +13,21 @@ const nextConfig = {
|
|||
svgr: false,
|
||||
},
|
||||
experimental: {
|
||||
serverComponentsExternalPackages: ['knex'],
|
||||
serverComponentsExternalPackages: [
|
||||
'@fxa/shared/db/mysql/account',
|
||||
'@fxa/shared/db/mysql/core',
|
||||
'@fxa/payments/cart',
|
||||
'@nestjs/core',
|
||||
'@nestjs/common',
|
||||
'class-transformer',
|
||||
'class-validator',
|
||||
'hot-shots',
|
||||
'knex',
|
||||
'kysely',
|
||||
'mysql2',
|
||||
'nest-typed-config',
|
||||
'rxjs',
|
||||
],
|
||||
},
|
||||
images: {
|
||||
remotePatterns: [
|
||||
|
@ -22,9 +36,9 @@ const nextConfig = {
|
|||
hostname: 'accounts-static.cdn.mozilla.net',
|
||||
port: '',
|
||||
pathname: '/product-icons/**',
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const plugins = [
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
export * from './lib/cart.types';
|
||||
export * from './lib/cart.factories';
|
||||
export * from './lib/cart.manager';
|
||||
export * from './lib/cart.service';
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
import { NotFoundError } from 'objection';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import type { AccountDatabase } from '@fxa/shared/db/mysql/account';
|
||||
import { CartState } from '@fxa/shared/db/mysql/account';
|
||||
import { AccountDbProvider, CartState } from '@fxa/shared/db/mysql/account';
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
|
||||
import {
|
||||
CartInvalidStateForActionError,
|
||||
|
@ -16,6 +15,12 @@ import {
|
|||
CartNotUpdatedError,
|
||||
CartVersionMismatchError,
|
||||
} from './cart.error';
|
||||
import {
|
||||
createCart,
|
||||
deleteCart,
|
||||
fetchCartById,
|
||||
updateCart,
|
||||
} from './cart.repository';
|
||||
import {
|
||||
FinishCart,
|
||||
FinishErrorCart,
|
||||
|
@ -23,13 +28,8 @@ import {
|
|||
SetupCart,
|
||||
UpdateCart,
|
||||
} from './cart.types';
|
||||
import {
|
||||
createCart,
|
||||
deleteCart,
|
||||
fetchCartById,
|
||||
updateCart,
|
||||
} from './cart.repository';
|
||||
|
||||
import type { AccountDatabase } from '@fxa/shared/db/mysql/account';
|
||||
// For an action to be executed, the cart state needs to be in one of
|
||||
// valid states listed in the array of CartStates below
|
||||
const ACTIONS_VALID_STATE = {
|
||||
|
@ -46,7 +46,7 @@ const isAction = (action: string): action is keyof typeof ACTIONS_VALID_STATE =>
|
|||
|
||||
@Injectable()
|
||||
export class CartManager {
|
||||
constructor(private db: AccountDatabase) {}
|
||||
constructor(@Inject(AccountDbProvider) private db: AccountDatabase) {}
|
||||
|
||||
/**
|
||||
* Ensure that the action being executed has a valid Cart state for
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
export * from './lib/associated-types';
|
||||
export * from './lib/keysley-types';
|
||||
export { CartFactory } from './lib/factories';
|
||||
export { setupAccountDatabase } from './lib/setup';
|
||||
export { setupAccountDatabase, AccountDbProvider } from './lib/setup';
|
||||
export { testAccountDatabaseSetup } from './lib/tests';
|
||||
export type { AccountDatabase } from './lib/setup';
|
||||
export { AccountDatabaseFactory } from './lib/account.provider';
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import { Provider } from '@nestjs/common';
|
||||
|
||||
import { MySQLConfig } from '../../../core/src';
|
||||
import {
|
||||
AccountDatabase,
|
||||
AccountDbProvider,
|
||||
setupAccountDatabase,
|
||||
} from './setup';
|
||||
|
||||
export const AccountDatabaseFactory: Provider<AccountDatabase> = {
|
||||
provide: AccountDbProvider,
|
||||
useFactory: (mysqlConfig: MySQLConfig) => {
|
||||
return setupAccountDatabase(mysqlConfig);
|
||||
},
|
||||
inject: [MySQLConfig],
|
||||
};
|
|
@ -7,6 +7,7 @@ import { createDialect, MySQLConfig } from '../../../core/src';
|
|||
import { DB } from './keysley-types';
|
||||
|
||||
export type AccountDatabase = Kysely<DB>;
|
||||
export const AccountDbProvider = Symbol('AccountDbProvider');
|
||||
|
||||
export async function setupAccountDatabase(opts: MySQLConfig) {
|
||||
const dialect = await createDialect(opts);
|
||||
|
|
|
@ -1,22 +1,30 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
import { IsInt, IsOptional, validate } from 'class-validator';
|
||||
import { IsInt, IsOptional, IsString, validate } from 'class-validator';
|
||||
|
||||
export class MySQLConfig {
|
||||
@IsString()
|
||||
database!: string;
|
||||
|
||||
@IsString()
|
||||
host!: string;
|
||||
password!: string;
|
||||
|
||||
@IsInt()
|
||||
port!: number;
|
||||
|
||||
@IsString()
|
||||
user!: string;
|
||||
|
||||
@IsString()
|
||||
password!: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
connectionLimitMin?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
connectionLimitMax?: number;
|
||||
|
||||
@IsOptional()
|
||||
|
|
|
@ -61,7 +61,8 @@
|
|||
"lint-staged": "^13.2.0",
|
||||
"mysql": "^2.18.1",
|
||||
"mysql2": "^3.6.0",
|
||||
"next": "13.4.1",
|
||||
"nest-typed-config": "^2.8.0",
|
||||
"next": "^13.4.19",
|
||||
"node-fetch": "^2.6.7",
|
||||
"nps": "^5.10.0",
|
||||
"objection": "^3.0.1",
|
||||
|
|
259
yarn.lock
259
yarn.lock
|
@ -8481,6 +8481,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@iarna/toml@npm:>= 2.2.5":
|
||||
version: 3.0.0
|
||||
resolution: "@iarna/toml@npm:3.0.0"
|
||||
checksum: 03fb2b8d67df9631437d1bff56f0474520b3b7256cefdc129306ea3cd79910aad877637e58808e88e53104fa387c7132c337385bf5d4801b51580829d2c91041
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ioredis/commands@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "@ioredis/commands@npm:1.1.1"
|
||||
|
@ -9744,6 +9751,18 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nestjs/axios@npm:>= 0.1.0":
|
||||
version: 3.0.0
|
||||
resolution: "@nestjs/axios@npm:3.0.0"
|
||||
peerDependencies:
|
||||
"@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
|
||||
axios: ^1.3.1
|
||||
reflect-metadata: ^0.1.12
|
||||
rxjs: ^6.0.0 || ^7.0.0
|
||||
checksum: 0483ef5a10ed920eb84756472de59b5bd83d09f152de9b769f68a57bd9c2c922961545c50001ac3ea45584cf991aee355b8fef4fe249b849fded4f1df92244f6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nestjs/cli@npm:^9.4.0":
|
||||
version: 9.4.0
|
||||
resolution: "@nestjs/cli@npm:9.4.0"
|
||||
|
@ -10005,10 +10024,10 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/env@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/env@npm:13.4.1"
|
||||
checksum: 4736c9c6f75d80b16d3ca0ad3ddb3fcaa171f2144fccf516a67110e3bfcd9121d076e838faad46f815e41ee32e9be0ab68591359de06af13be6cbb860eda3639
|
||||
"@next/env@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/env@npm:13.4.19"
|
||||
checksum: ace4f82890954ade0164fbe2b7ff988268d2b99b2e80caa6707c51fa4cbfaaa31e48fbbcecd4fd142af3503c544e1b4c91e8185d4af253c8fb46550e9e70ad7e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -10021,65 +10040,65 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-darwin-arm64@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-darwin-arm64@npm:13.4.1"
|
||||
"@next/swc-darwin-arm64@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-darwin-arm64@npm:13.4.19"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-darwin-x64@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-darwin-x64@npm:13.4.1"
|
||||
"@next/swc-darwin-x64@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-darwin-x64@npm:13.4.19"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-arm64-gnu@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-linux-arm64-gnu@npm:13.4.1"
|
||||
"@next/swc-linux-arm64-gnu@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-linux-arm64-gnu@npm:13.4.19"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-arm64-musl@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-linux-arm64-musl@npm:13.4.1"
|
||||
"@next/swc-linux-arm64-musl@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-linux-arm64-musl@npm:13.4.19"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-x64-gnu@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-linux-x64-gnu@npm:13.4.1"
|
||||
"@next/swc-linux-x64-gnu@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-linux-x64-gnu@npm:13.4.19"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-x64-musl@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-linux-x64-musl@npm:13.4.1"
|
||||
"@next/swc-linux-x64-musl@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-linux-x64-musl@npm:13.4.19"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-win32-arm64-msvc@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-win32-arm64-msvc@npm:13.4.1"
|
||||
"@next/swc-win32-arm64-msvc@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-win32-arm64-msvc@npm:13.4.19"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-win32-ia32-msvc@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-win32-ia32-msvc@npm:13.4.1"
|
||||
"@next/swc-win32-ia32-msvc@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-win32-ia32-msvc@npm:13.4.19"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-win32-x64-msvc@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "@next/swc-win32-x64-msvc@npm:13.4.1"
|
||||
"@next/swc-win32-x64-msvc@npm:13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "@next/swc-win32-x64-msvc@npm:13.4.19"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
@ -26362,7 +26381,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"class-transformer@npm:^0.5.1":
|
||||
"class-transformer@npm:0.5.1, class-transformer@npm:^0.5.1":
|
||||
version: 0.5.1
|
||||
resolution: "class-transformer@npm:0.5.1"
|
||||
checksum: f191c8b4cc4239990f5efdd790cabdd852c243ed66248e39f6616a349c910c6eed2d9fd1fbf7ee6ea89f69b4f1d0b493b27347fe0cd0ae26b47c3745a805b6d3
|
||||
|
@ -27572,6 +27591,23 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cosmiconfig@npm:>= 8.0.0":
|
||||
version: 8.3.6
|
||||
resolution: "cosmiconfig@npm:8.3.6"
|
||||
dependencies:
|
||||
import-fresh: ^3.3.0
|
||||
js-yaml: ^4.1.0
|
||||
parse-json: ^5.2.0
|
||||
path-type: ^4.0.0
|
||||
peerDependencies:
|
||||
typescript: ">=4.9.5"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cosmiconfig@npm:^5.0.0":
|
||||
version: 5.2.1
|
||||
resolution: "cosmiconfig@npm:5.2.1"
|
||||
|
@ -29576,7 +29612,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv-expand@npm:10.0.0, dotenv-expand@npm:^10.0.0":
|
||||
"dotenv-expand@npm:10.0.0, dotenv-expand@npm:>= 10.0.0, dotenv-expand@npm:^10.0.0":
|
||||
version: 10.0.0
|
||||
resolution: "dotenv-expand@npm:10.0.0"
|
||||
checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee
|
||||
|
@ -29597,6 +29633,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:>= 16.0.0, dotenv@npm:^16.0.0":
|
||||
version: 16.3.1
|
||||
resolution: "dotenv@npm:16.3.1"
|
||||
checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:^10.0.0, dotenv@npm:~10.0.0":
|
||||
version: 10.0.0
|
||||
resolution: "dotenv@npm:10.0.0"
|
||||
|
@ -29604,13 +29647,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:^16.0.0":
|
||||
version: 16.3.1
|
||||
resolution: "dotenv@npm:16.3.1"
|
||||
checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dset@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "dset@npm:3.1.2"
|
||||
|
@ -30091,7 +30127,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1":
|
||||
"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1, error-ex@npm:^1.3.2":
|
||||
version: 1.3.2
|
||||
resolution: "error-ex@npm:1.3.2"
|
||||
dependencies:
|
||||
|
@ -34791,7 +34827,8 @@ fsevents@~2.1.1:
|
|||
mocha-multi: ^1.1.7
|
||||
mysql: ^2.18.1
|
||||
mysql2: ^3.6.0
|
||||
next: 13.4.1
|
||||
nest-typed-config: ^2.8.0
|
||||
next: ^13.4.19
|
||||
node-fetch: ^2.6.7
|
||||
nps: ^5.10.0
|
||||
nx: 16.6.0
|
||||
|
@ -37899,7 +37936,7 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1":
|
||||
"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0":
|
||||
version: 3.3.0
|
||||
resolution: "import-fresh@npm:3.3.0"
|
||||
dependencies:
|
||||
|
@ -41765,6 +41802,13 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-parse-even-better-errors@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "json-parse-even-better-errors@npm:3.0.0"
|
||||
checksum: f1970b5220c7fa23d888565510752c3d5e863f93668a202fcaa719739fa41485dfc6a1db212f702ebd3c873851cc067aebc2917e3f79763cae2fdb95046f38f3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-schema-traverse@npm:^0.3.0":
|
||||
version: 0.3.1
|
||||
resolution: "json-schema-traverse@npm:0.3.1"
|
||||
|
@ -42639,7 +42683,7 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lines-and-columns@npm:~2.0.3":
|
||||
"lines-and-columns@npm:^2.0.3, lines-and-columns@npm:~2.0.3":
|
||||
version: 2.0.3
|
||||
resolution: "lines-and-columns@npm:2.0.3"
|
||||
checksum: 5955363dfd7d3d7c476d002eb47944dbe0310d57959e2112dce004c0dc76cecfd479cf8c098fd479ff344acdf04ee0e82b455462a26492231ac152f6c48d17a1
|
||||
|
@ -42964,6 +43008,13 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.frompairs@npm:4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "lodash.frompairs@npm:4.0.1"
|
||||
checksum: 8ff2d857f0764325dba5825ef8776cfc6992a504d75d668889bdd617c62fc3f179f1590042e127c98ed14d3fb14b71e66697b0fe8b10f73879c3a46e2d1c23d3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.get@npm:^4.4.2":
|
||||
version: 4.4.2
|
||||
resolution: "lodash.get@npm:4.4.2"
|
||||
|
@ -43097,7 +43148,7 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.set@npm:^4.3.2":
|
||||
"lodash.set@npm:4.3.2, lodash.set@npm:^4.3.2":
|
||||
version: 4.3.2
|
||||
resolution: "lodash.set@npm:4.3.2"
|
||||
checksum: a9122f49eef9f2d0fc9061a33d87f8e5b8c6b23d46e8b9e9ce1529d3588d79741bd1145a3abdfa3b13082703e65af27ff18d8a07bfc22b9be32f3fc36f763f70
|
||||
|
@ -45777,6 +45828,47 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nest-typed-config@npm:^2.8.0":
|
||||
version: 2.8.0
|
||||
resolution: "nest-typed-config@npm:2.8.0"
|
||||
dependencies:
|
||||
"@iarna/toml": ">= 2.2.5"
|
||||
"@nestjs/axios": ">= 0.1.0"
|
||||
chalk: 4.1.2
|
||||
class-transformer: 0.5.1
|
||||
class-validator: ^0.14.0
|
||||
cosmiconfig: ">= 8.0.0"
|
||||
debug: 4.3.4
|
||||
dotenv: ">= 16.0.0"
|
||||
dotenv-expand: ">= 10.0.0"
|
||||
lodash.frompairs: 4.0.1
|
||||
lodash.merge: 4.6.2
|
||||
lodash.set: 4.3.2
|
||||
parse-json: ">= 5.2.0"
|
||||
yaml: ">= 1.10.2"
|
||||
peerDependencies:
|
||||
"@nestjs/common": ">= 6.10.0 < 11"
|
||||
reflect-metadata: ^0.1.12
|
||||
rxjs: ">= 6.0.0 < 8"
|
||||
dependenciesMeta:
|
||||
"@iarna/toml":
|
||||
optional: true
|
||||
"@nestjs/axios":
|
||||
optional: true
|
||||
cosmiconfig:
|
||||
optional: true
|
||||
dotenv:
|
||||
optional: true
|
||||
dotenv-expand:
|
||||
optional: true
|
||||
parse-json:
|
||||
optional: true
|
||||
yaml:
|
||||
optional: true
|
||||
checksum: e603fa8cfea52957fb6e937c9da98f6c8b359241403ed9871ddc69010aa1d123f73fb17809c9688194682d22e23a735185ab342cd4578e67656fba5350899919
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"netmask@npm:^2.0.1":
|
||||
version: 2.0.2
|
||||
resolution: "netmask@npm:2.0.2"
|
||||
|
@ -45784,30 +45876,29 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"next@npm:13.4.1":
|
||||
version: 13.4.1
|
||||
resolution: "next@npm:13.4.1"
|
||||
"next@npm:^13.4.19":
|
||||
version: 13.4.19
|
||||
resolution: "next@npm:13.4.19"
|
||||
dependencies:
|
||||
"@next/env": 13.4.1
|
||||
"@next/swc-darwin-arm64": 13.4.1
|
||||
"@next/swc-darwin-x64": 13.4.1
|
||||
"@next/swc-linux-arm64-gnu": 13.4.1
|
||||
"@next/swc-linux-arm64-musl": 13.4.1
|
||||
"@next/swc-linux-x64-gnu": 13.4.1
|
||||
"@next/swc-linux-x64-musl": 13.4.1
|
||||
"@next/swc-win32-arm64-msvc": 13.4.1
|
||||
"@next/swc-win32-ia32-msvc": 13.4.1
|
||||
"@next/swc-win32-x64-msvc": 13.4.1
|
||||
"@next/env": 13.4.19
|
||||
"@next/swc-darwin-arm64": 13.4.19
|
||||
"@next/swc-darwin-x64": 13.4.19
|
||||
"@next/swc-linux-arm64-gnu": 13.4.19
|
||||
"@next/swc-linux-arm64-musl": 13.4.19
|
||||
"@next/swc-linux-x64-gnu": 13.4.19
|
||||
"@next/swc-linux-x64-musl": 13.4.19
|
||||
"@next/swc-win32-arm64-msvc": 13.4.19
|
||||
"@next/swc-win32-ia32-msvc": 13.4.19
|
||||
"@next/swc-win32-x64-msvc": 13.4.19
|
||||
"@swc/helpers": 0.5.1
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: ^1.0.30001406
|
||||
postcss: 8.4.14
|
||||
styled-jsx: 5.1.1
|
||||
watchpack: 2.4.0
|
||||
zod: 3.21.4
|
||||
peerDependencies:
|
||||
"@opentelemetry/api": ^1.1.0
|
||||
fibers: ">= 3.1.0"
|
||||
node-sass: ^6.0.0 || ^7.0.0
|
||||
react: ^18.2.0
|
||||
react-dom: ^18.2.0
|
||||
sass: ^1.3.0
|
||||
|
@ -45833,15 +45924,11 @@ fsevents@~2.1.1:
|
|||
peerDependenciesMeta:
|
||||
"@opentelemetry/api":
|
||||
optional: true
|
||||
fibers:
|
||||
optional: true
|
||||
node-sass:
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
bin:
|
||||
next: dist/bin/next
|
||||
checksum: 169e3fbbf713fad791a9b016c83d396bce628bb0ddf716c5fe50104a21cbc37af7df1586cbe05ae4ae6a090f4e1107211189cfbeeeab8345fe54e11cfefce87f
|
||||
checksum: f4873dab8888ed4dae14d36d7cf8dc54cd042695cf7ee41d05e8757f463d11952a594eb066143cc2f7253ea1d41c6efe681cdc3ab8c2fa6eb0815fa5a94de3dc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -47780,6 +47867,19 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"parse-json@npm:>= 5.2.0":
|
||||
version: 7.1.0
|
||||
resolution: "parse-json@npm:7.1.0"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.21.4
|
||||
error-ex: ^1.3.2
|
||||
json-parse-even-better-errors: ^3.0.0
|
||||
lines-and-columns: ^2.0.3
|
||||
type-fest: ^3.8.0
|
||||
checksum: bf9bc646e8b8cb9ae638988a303bf09866c13d2829c2ff75ee87c27631dac06d0d6e81913f8824c3c4586015bf3f0a6fee1dece168b37932d175ef0709e8860a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"parse-json@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "parse-json@npm:2.2.0"
|
||||
|
@ -58025,7 +58125,7 @@ resolve@1.1.7:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"type-fest@npm:^3.11.0":
|
||||
"type-fest@npm:^3.11.0, type-fest@npm:^3.8.0":
|
||||
version: 3.13.1
|
||||
resolution: "type-fest@npm:3.13.1"
|
||||
checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e
|
||||
|
@ -59377,6 +59477,16 @@ resolve@1.1.7:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"watchpack@npm:2.4.0, watchpack@npm:^2.4.0":
|
||||
version: 2.4.0
|
||||
resolution: "watchpack@npm:2.4.0"
|
||||
dependencies:
|
||||
glob-to-regexp: ^0.4.1
|
||||
graceful-fs: ^4.1.2
|
||||
checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"watchpack@npm:^1.7.4":
|
||||
version: 1.7.5
|
||||
resolution: "watchpack@npm:1.7.5"
|
||||
|
@ -59404,16 +59514,6 @@ resolve@1.1.7:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"watchpack@npm:^2.4.0":
|
||||
version: 2.4.0
|
||||
resolution: "watchpack@npm:2.4.0"
|
||||
dependencies:
|
||||
glob-to-regexp: ^0.4.1
|
||||
graceful-fs: ^4.1.2
|
||||
checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3":
|
||||
version: 1.7.3
|
||||
resolution: "wbuf@npm:1.7.3"
|
||||
|
@ -60852,6 +60952,13 @@ resolve@1.1.7:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"yaml@npm:>= 1.10.2":
|
||||
version: 2.3.2
|
||||
resolution: "yaml@npm:2.3.2"
|
||||
checksum: acd80cc24df12c808c6dec8a0176d404ef9e6f08ad8786f746ecc9d8974968c53c6e8a67fdfabcc5f99f3dc59b6bb0994b95646ff03d18e9b1dcd59eccc02146
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.5.0, yaml@npm:^1.7.2":
|
||||
version: 1.10.2
|
||||
resolution: "yaml@npm:1.10.2"
|
||||
|
|
Загрузка…
Ссылка в новой задаче