@flusys/nestjs-core 1.0.1 → 1.1.0

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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Core Package Guide
2
2
 
3
3
  > **Package:** `@flusys/nestjs-core`
4
+ > **Version:** 1.1.0
4
5
  > **Type:** Pure TypeScript foundation (zero NestJS dependencies)
5
6
 
6
7
  Foundation layer providing type-safe configuration, database utilities, migration CLI, seeders with intelligent pattern detection, and Swagger setup.
@@ -578,39 +579,38 @@ import {
578
579
 
579
580
  ```typescript
580
581
  import {
582
+ // Classes
581
583
  BaseSeeder,
582
584
  SeedRunner,
583
585
  EntityReader,
584
586
  DataGenerator,
585
- TemplateGenerator,
586
- seedConfig,
587
- ISeedConfig,
588
- configureSeedConfig,
589
- runSeedCli,
590
- getEntityCount,
591
- shouldSkipEntity,
592
- getSeedingOrder,
587
+ // Interfaces
593
588
  ISeedResult,
594
589
  ISeedOptions,
595
590
  ISeederLogger,
596
- defaultLogger,
597
591
  IEntityInfo,
598
592
  IColumnInfo,
599
593
  IRelationInfo,
600
- // Field patterns
594
+ ISeedConfig,
595
+ // Functions
596
+ defaultLogger,
597
+ seedConfig,
598
+ configureSeedConfig,
599
+ runSeedCli,
600
+ getEntityCount,
601
+ shouldSkipEntity,
602
+ getSeedingOrder,
603
+ // Field pattern functions
601
604
  detectFieldPattern,
602
605
  detectTypeCategory,
603
- getStringLengthCategory,
604
606
  isSystemField,
605
- getTokenLength,
606
- FieldPatternType,
607
+ // Constants
607
608
  SYSTEM_FIELDS,
608
- AUDIT_FIELDS,
609
- IDENTITY_FIELDS,
610
- BOOLEAN_KEYWORDS,
611
609
  } from '@flusys/nestjs-core/seeders';
612
610
  ```
613
611
 
612
+ > **Note:** `FieldPatternType`, `AUDIT_FIELDS`, `IDENTITY_FIELDS`, `BOOLEAN_KEYWORDS`, `getStringLengthCategory`, and `getTokenLength` are internal utilities available in `field-patterns.ts` but not exported from the public API.
613
+
614
614
  ### Swagger
615
615
 
616
616
  ```typescript
@@ -111,6 +111,20 @@ let DataGenerator = class DataGenerator {
111
111
  });
112
112
  case 'company':
113
113
  return _faker.faker.company.name();
114
+ case 'emailProvider':
115
+ return _faker.faker.helpers.arrayElement([
116
+ 'smtp',
117
+ 'sendgrid',
118
+ 'mailgun',
119
+ 'ses',
120
+ 'postmark'
121
+ ]);
122
+ case 'formAccessType':
123
+ return _faker.faker.helpers.arrayElement([
124
+ 'public',
125
+ 'authenticated',
126
+ 'permission'
127
+ ]);
114
128
  default:
115
129
  return undefined;
116
130
  }
@@ -116,6 +116,10 @@ function detectFieldPattern(column) {
116
116
  if (nameLower.includes('serial') || nameLower.includes('order')) return 'serial';
117
117
  // Company
118
118
  if (nameLower.includes('company') && !nameLower.includes('id')) return 'company';
119
+ // Email provider type
120
+ if (nameLower === 'provider' || nameLower === 'emailprovider') return 'emailProvider';
121
+ // Form access type
122
+ if (nameLower === 'accesstype' || nameLower === 'access_type') return 'formAccessType';
119
123
  return undefined;
120
124
  }
121
125
  function detectTypeCategory(type) {
@@ -106,6 +106,20 @@ import { detectFieldPattern, detectTypeCategory, getStringLengthCategory, getTok
106
106
  });
107
107
  case 'company':
108
108
  return faker.company.name();
109
+ case 'emailProvider':
110
+ return faker.helpers.arrayElement([
111
+ 'smtp',
112
+ 'sendgrid',
113
+ 'mailgun',
114
+ 'ses',
115
+ 'postmark'
116
+ ]);
117
+ case 'formAccessType':
118
+ return faker.helpers.arrayElement([
119
+ 'public',
120
+ 'authenticated',
121
+ 'permission'
122
+ ]);
109
123
  default:
110
124
  return undefined;
111
125
  }
@@ -79,6 +79,10 @@
79
79
  if (nameLower.includes('serial') || nameLower.includes('order')) return 'serial';
80
80
  // Company
81
81
  if (nameLower.includes('company') && !nameLower.includes('id')) return 'company';
82
+ // Email provider type
83
+ if (nameLower === 'provider' || nameLower === 'emailprovider') return 'emailProvider';
84
+ // Form access type
85
+ if (nameLower === 'accesstype' || nameLower === 'access_type') return 'formAccessType';
82
86
  return undefined;
83
87
  }
84
88
  /**
@@ -3,6 +3,7 @@ export interface IBootstrapAppConfig {
3
3
  databaseMode: DatabaseMode;
4
4
  enableCompanyFeature: boolean;
5
5
  permissionMode?: 'FULL' | 'RBAC' | 'DIRECT';
6
+ enableEmailVerification?: boolean;
6
7
  }
7
8
  export interface IDynamicModuleConfig {
8
9
  global?: boolean;
@@ -17,6 +17,7 @@ export interface ITenantDatabaseConfig {
17
17
  password?: string;
18
18
  database: string;
19
19
  enableCompanyFeature?: boolean;
20
+ enableEmailVerification?: boolean;
20
21
  permissionMode?: 'FULL' | 'RBAC' | 'DIRECT';
21
22
  }
22
23
  export interface IDataSourceBuildOptions {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flusys/nestjs-core",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Core types, interfaces, and constants for Flusys NestJS packages",
5
5
  "main": "cjs/index.js",
6
6
  "module": "fesm/index.js",
@@ -3,7 +3,7 @@ export declare const SYSTEM_FIELDS: string[];
3
3
  export declare const AUDIT_FIELDS: string[];
4
4
  export declare const IDENTITY_FIELDS: string[];
5
5
  export declare const BOOLEAN_KEYWORDS: string[];
6
- export type FieldPatternType = 'skip' | 'null' | 'boolean' | 'token' | 'firstName' | 'lastName' | 'fullName' | 'email' | 'phone' | 'address' | 'street' | 'city' | 'state' | 'country' | 'zipCode' | 'url' | 'domain' | 'slug' | 'description' | 'summary' | 'content' | 'title' | 'username' | 'password' | 'birthdate' | 'futureDate' | 'recentDateOrNull' | 'serial' | 'company';
6
+ export type FieldPatternType = 'skip' | 'null' | 'boolean' | 'token' | 'firstName' | 'lastName' | 'fullName' | 'email' | 'phone' | 'address' | 'street' | 'city' | 'state' | 'country' | 'zipCode' | 'url' | 'domain' | 'slug' | 'description' | 'summary' | 'content' | 'title' | 'username' | 'password' | 'birthdate' | 'futureDate' | 'recentDateOrNull' | 'serial' | 'company' | 'emailProvider' | 'formAccessType';
7
7
  export type ColumnTypeCategory = 'string' | 'integer' | 'decimal' | 'boolean' | 'date' | 'timestamp' | 'time' | 'uuid' | 'json' | 'array' | 'unknown';
8
8
  export declare function detectFieldPattern(column: IColumnInfo): FieldPatternType | undefined;
9
9
  export declare function detectTypeCategory(type: string): ColumnTypeCategory;