@appxdigital/appx-core 0.1.68 → 0.1.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/admin/templates/admin.template.d.ts +1 -1
- package/dist/config/admin/templates/admin.template.d.ts.map +1 -1
- package/dist/config/admin/templates/admin.template.js +1 -1
- package/dist/config/generate-controllers.js +1 -1
- package/dist/config/generate-resolvers.js +1 -1
- package/dist/config/generate-services.js +1 -1
- package/dist/config/setup-fileupload.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const adminJsModuleCode = "\nimport {DynamicModule} from '@nestjs/common';\nimport {addBasicFilters, createActions, createPermissionHandler, dynamicImport, getAdminJSResources} from './utils';\nimport {initializeComponents} from './component-loader';\nimport {readFileSync} from 'fs';\nimport {getDMMF} from '@prisma/sdk';\nimport {PrismaService} from 'appx-core';\nimport {PrismaModule} from \"../prisma/prisma.module\";\n\nconst DEFAULT_ADMIN = {\n email: 'joao.duvido@appx.pt',\n password: 'password',\n};\n\nconst authenticate = async (email: string, password: string) => {\n if (email === DEFAULT_ADMIN.email && password === DEFAULT_ADMIN.password) {\n return Promise.resolve(DEFAULT_ADMIN);\n }\n return null;\n};\n\nexport async function createAdminJsModule(): Promise<DynamicModule> {\n const {default: AdminJS} = await dynamicImport('adminjs');\n const {Database, Resource} = await dynamicImport('@adminjs/prisma');\n const {AdminModule} = await dynamicImport('@adminjs/nestjs');\n const {default: importExportFeature} = await dynamicImport('@adminjs/import-export');\n const {default: passwordFeature} = await dynamicImport('@adminjs/passwords');\n const argon2 = await dynamicImport('argon2');\n\n const resources = getAdminJSResources();\n const {componentLoader, Components} = await initializeComponents();\n const schemaPath = './prisma/schema.prisma';\n const schema = readFileSync(schemaPath, 'utf-8');\n const dmmf = await getDMMF({datamodel: schema});\n\n const models = [];\n\n for (const resource of resources) {\n const model = dmmf.datamodel.models.find(\n (model) => model.name === resource.name,\n );\n\n models.push({\n model,\n options: resource.options,\n features: model.name === 'User' ? [\n passwordFeature({\n properties: {\n encryptedPassword: 'password',\n password: 'plainPassword',\n },\n hash: argon2.hash,\n componentLoader,\n }),\n ] : [],\n });\n }\n\n AdminJS.registerAdapter({Database, Resource});\n\n return AdminModule.createAdminAsync({\n imports: [PrismaModule],\n inject: [PrismaService],\n useFactory: async (prisma: PrismaService) => {\n const authenticate = async (email: string, password: string) => {\n const user = await prisma.user.findUnique({\n where: {\n email\n }\n });\n\n if (!user || user.role !== 'ADMIN') {\n return null;\n }\n\n const isPasswordValid = await argon2.verify(user.password, password);\n\n return isPasswordValid ? Promise.resolve({email: user.email, role: user.role, id: user.id}) : null;\n }\n\n return {\n adminJsOptions: {\n rootPath: '/admin',\n dashboard: {\n component: Components.Dashboard,\n handler: async () => {\n return {some: 'output'};\n },\n },\n branding: {\n companyName: 'AppX Core Wizard',\n withMadeWithLove: false,\n logo: 'https://i.ibb.co/XZNRS5m/appxdigitalcom-logo.jpg',\n },\n resources: models.map((m) => {\n return {\n resource: {model: m.model, client: prisma},\n options: {\n ...m.options,\n actions: createActions(),\n },\n features: [...(m.features || []), importExportFeature({\n componentLoader\n })],\n };\n }),\n componentLoader,\n },\n auth: {\n authenticate,\n cookieName: process.env.SESSION_COOKIE_NAME,\n cookiePassword: process.env.SESSION_SECRET,\n },\n sessionOptions: {\n resave: false,\n saveUninitialized: true,\n secret: process.env.SESSION_SECRET,\n cookie: {\n httpOnly: process.env.NODE_ENV === 'production',\n secure: false,\n },\n name: process.env.SESSION_COOKIE_NAME,\n },\n };\n },\n });\n}\n";
|
|
1
|
+
export declare const adminJsModuleCode = "\nimport {DynamicModule} from '@nestjs/common';\nimport {addBasicFilters, createActions, createPermissionHandler, dynamicImport, getAdminJSResources} from './utils';\nimport {initializeComponents} from './component-loader';\nimport {readFileSync} from 'fs';\nimport {getDMMF} from '@prisma/sdk';\nimport {PrismaService} from '@appxdigital/appx-core';\nimport {PrismaModule} from \"../prisma/prisma.module\";\n\nconst DEFAULT_ADMIN = {\n email: 'joao.duvido@appx.pt',\n password: 'password',\n};\n\nconst authenticate = async (email: string, password: string) => {\n if (email === DEFAULT_ADMIN.email && password === DEFAULT_ADMIN.password) {\n return Promise.resolve(DEFAULT_ADMIN);\n }\n return null;\n};\n\nexport async function createAdminJsModule(): Promise<DynamicModule> {\n const {default: AdminJS} = await dynamicImport('adminjs');\n const {Database, Resource} = await dynamicImport('@adminjs/prisma');\n const {AdminModule} = await dynamicImport('@adminjs/nestjs');\n const {default: importExportFeature} = await dynamicImport('@adminjs/import-export');\n const {default: passwordFeature} = await dynamicImport('@adminjs/passwords');\n const argon2 = await dynamicImport('argon2');\n\n const resources = getAdminJSResources();\n const {componentLoader, Components} = await initializeComponents();\n const schemaPath = './prisma/schema.prisma';\n const schema = readFileSync(schemaPath, 'utf-8');\n const dmmf = await getDMMF({datamodel: schema});\n\n const models = [];\n\n for (const resource of resources) {\n const model = dmmf.datamodel.models.find(\n (model) => model.name === resource.name,\n );\n\n models.push({\n model,\n options: resource.options,\n features: model.name === 'User' ? [\n passwordFeature({\n properties: {\n encryptedPassword: 'password',\n password: 'plainPassword',\n },\n hash: argon2.hash,\n componentLoader,\n }),\n ] : [],\n });\n }\n\n AdminJS.registerAdapter({Database, Resource});\n\n return AdminModule.createAdminAsync({\n imports: [PrismaModule],\n inject: [PrismaService],\n useFactory: async (prisma: PrismaService) => {\n const authenticate = async (email: string, password: string) => {\n const user = await prisma.user.findUnique({\n where: {\n email\n }\n });\n\n if (!user || user.role !== 'ADMIN') {\n return null;\n }\n\n const isPasswordValid = await argon2.verify(user.password, password);\n\n return isPasswordValid ? Promise.resolve({email: user.email, role: user.role, id: user.id}) : null;\n }\n\n return {\n adminJsOptions: {\n rootPath: '/admin',\n dashboard: {\n component: Components.Dashboard,\n handler: async () => {\n return {some: 'output'};\n },\n },\n branding: {\n companyName: 'AppX Core Wizard',\n withMadeWithLove: false,\n logo: 'https://i.ibb.co/XZNRS5m/appxdigitalcom-logo.jpg',\n },\n resources: models.map((m) => {\n return {\n resource: {model: m.model, client: prisma},\n options: {\n ...m.options,\n actions: createActions(),\n },\n features: [...(m.features || []), importExportFeature({\n componentLoader\n })],\n };\n }),\n componentLoader,\n },\n auth: {\n authenticate,\n cookieName: process.env.SESSION_COOKIE_NAME,\n cookiePassword: process.env.SESSION_SECRET,\n },\n sessionOptions: {\n resave: false,\n saveUninitialized: true,\n secret: process.env.SESSION_SECRET,\n cookie: {\n httpOnly: process.env.NODE_ENV === 'production',\n secure: false,\n },\n name: process.env.SESSION_COOKIE_NAME,\n },\n };\n },\n });\n}\n";
|
|
2
2
|
//# sourceMappingURL=admin.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.template.d.ts","sourceRoot":"","sources":["../../../../src/config/admin/templates/admin.template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"admin.template.d.ts","sourceRoot":"","sources":["../../../../src/config/admin/templates/admin.template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,gwJA+H7B,CAAC"}
|
|
@@ -7,7 +7,7 @@ import {addBasicFilters, createActions, createPermissionHandler, dynamicImport,
|
|
|
7
7
|
import {initializeComponents} from './component-loader';
|
|
8
8
|
import {readFileSync} from 'fs';
|
|
9
9
|
import {getDMMF} from '@prisma/sdk';
|
|
10
|
-
import {PrismaService} from 'appx-core';
|
|
10
|
+
import {PrismaService} from '@appxdigital/appx-core';
|
|
11
11
|
import {PrismaModule} from "../prisma/prisma.module";
|
|
12
12
|
|
|
13
13
|
const DEFAULT_ADMIN = {
|
|
@@ -47,7 +47,7 @@ const genericControllerTemplate = (model, folder) => `
|
|
|
47
47
|
import { Controller } from '@nestjs/common';
|
|
48
48
|
import { ${model}Service } from './${folder}.service';
|
|
49
49
|
import { ${model} } from '@prisma/client';
|
|
50
|
-
import { CoreController } from 'appx-core';
|
|
50
|
+
import { CoreController } from '@appxdigital/appx-core';
|
|
51
51
|
|
|
52
52
|
@Controller('${model.toLowerCase()}s')
|
|
53
53
|
export class ${model}Controller extends CoreController<${model}> {
|
|
@@ -44,7 +44,7 @@ const outputPath = path.join(process.cwd(), 'src/modules');
|
|
|
44
44
|
* @param folder
|
|
45
45
|
*/
|
|
46
46
|
const genericResolverTemplate = (model, folder) => `import { Resolver } from '@nestjs/graphql';
|
|
47
|
-
import { GenericResolverFactory, PrismaService } from 'appx-core';
|
|
47
|
+
import { GenericResolverFactory, PrismaService } from '@appxdigital/appx-core';
|
|
48
48
|
import { ${model} } from '../../generated/${folder}/${folder}.model';
|
|
49
49
|
import { ${model}CreateInput } from '../../generated/${folder}/${folder}-create.input';
|
|
50
50
|
import { ${model}UpdateInput } from '../../generated/${folder}/${folder}-update.input';
|
|
@@ -43,7 +43,7 @@ const servicesOutputPath = path.join(process.cwd(), 'src/modules');
|
|
|
43
43
|
* @param model
|
|
44
44
|
*/
|
|
45
45
|
const genericServiceTemplate = (model) => `import { Injectable } from '@nestjs/common';
|
|
46
|
-
import { CoreService, PrismaService } from 'appx-core';
|
|
46
|
+
import { CoreService, PrismaService } from '@appxdigital/appx-core';
|
|
47
47
|
import { ${model} } from '@prisma/client';
|
|
48
48
|
|
|
49
49
|
@Injectable()
|
|
@@ -242,7 +242,7 @@ async function main() {
|
|
|
242
242
|
else {
|
|
243
243
|
const { provider } = await configureProvider();
|
|
244
244
|
const newEndpointConfig = await configureEndpoint();
|
|
245
|
-
const configContent = `import { FileUploadModuleOptions } from 'appx-core';
|
|
245
|
+
const configContent = `import { FileUploadModuleOptions } from '@appxdigital/appx-core';
|
|
246
246
|
|
|
247
247
|
export const fileUploadConfig: FileUploadModuleOptions = {
|
|
248
248
|
cloudProvider: '${provider}',
|
package/package.json
CHANGED