@gravito/echo 3.0.0 → 3.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 +211 -0
- package/dist/atlas/src/DB.d.ts +301 -0
- package/dist/atlas/src/OrbitAtlas.d.ts +9 -0
- package/dist/atlas/src/config/defineConfig.d.ts +14 -0
- package/dist/atlas/src/config/index.d.ts +7 -0
- package/dist/atlas/src/config/loadConfig.d.ts +48 -0
- package/dist/atlas/src/connection/Connection.d.ts +108 -0
- package/dist/atlas/src/connection/ConnectionManager.d.ts +111 -0
- package/dist/atlas/src/drivers/BunSQLDriver.d.ts +32 -0
- package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +118 -0
- package/dist/atlas/src/drivers/MongoDBDriver.d.ts +36 -0
- package/dist/atlas/src/drivers/MySQLDriver.d.ts +66 -0
- package/dist/atlas/src/drivers/PostgresDriver.d.ts +83 -0
- package/dist/atlas/src/drivers/RedisDriver.d.ts +43 -0
- package/dist/atlas/src/drivers/SQLiteDriver.d.ts +45 -0
- package/dist/atlas/src/drivers/types.d.ts +260 -0
- package/dist/atlas/src/errors/index.d.ts +45 -0
- package/dist/atlas/src/grammar/Grammar.d.ts +342 -0
- package/dist/atlas/src/grammar/MongoGrammar.d.ts +47 -0
- package/dist/atlas/src/grammar/MySQLGrammar.d.ts +54 -0
- package/dist/atlas/src/grammar/NullGrammar.d.ts +35 -0
- package/dist/atlas/src/grammar/PostgresGrammar.d.ts +62 -0
- package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +32 -0
- package/dist/atlas/src/index.d.ts +67 -0
- package/dist/atlas/src/migration/Migration.d.ts +64 -0
- package/dist/atlas/src/migration/MigrationRepository.d.ts +65 -0
- package/dist/atlas/src/migration/Migrator.d.ts +110 -0
- package/dist/atlas/src/migration/index.d.ts +6 -0
- package/dist/atlas/src/observability/AtlasMetrics.d.ts +11 -0
- package/dist/atlas/src/observability/AtlasObservability.d.ts +15 -0
- package/dist/atlas/src/observability/AtlasTracer.d.ts +12 -0
- package/dist/atlas/src/observability/index.d.ts +9 -0
- package/dist/atlas/src/orm/index.d.ts +5 -0
- package/dist/atlas/src/orm/model/DirtyTracker.d.ts +121 -0
- package/dist/atlas/src/orm/model/Model.d.ts +449 -0
- package/dist/atlas/src/orm/model/ModelRegistry.d.ts +20 -0
- package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +136 -0
- package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +36 -0
- package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +87 -0
- package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +117 -0
- package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +64 -0
- package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +15 -0
- package/dist/atlas/src/orm/model/concerns/index.d.ts +12 -0
- package/dist/atlas/src/orm/model/decorators.d.ts +109 -0
- package/dist/atlas/src/orm/model/errors.d.ts +52 -0
- package/dist/atlas/src/orm/model/index.d.ts +10 -0
- package/dist/atlas/src/orm/model/relationships.d.ts +207 -0
- package/dist/atlas/src/orm/model/types.d.ts +12 -0
- package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +123 -0
- package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +54 -0
- package/dist/atlas/src/orm/schema/index.d.ts +6 -0
- package/dist/atlas/src/orm/schema/types.d.ts +85 -0
- package/dist/atlas/src/query/Expression.d.ts +60 -0
- package/dist/atlas/src/query/NPlusOneDetector.d.ts +10 -0
- package/dist/atlas/src/query/QueryBuilder.d.ts +573 -0
- package/dist/atlas/src/query/clauses/GroupByClause.d.ts +51 -0
- package/dist/atlas/src/query/clauses/HavingClause.d.ts +70 -0
- package/dist/atlas/src/query/clauses/JoinClause.d.ts +87 -0
- package/dist/atlas/src/query/clauses/LimitClause.d.ts +82 -0
- package/dist/atlas/src/query/clauses/OrderByClause.d.ts +69 -0
- package/dist/atlas/src/query/clauses/SelectClause.d.ts +71 -0
- package/dist/atlas/src/query/clauses/WhereClause.d.ts +167 -0
- package/dist/atlas/src/query/clauses/index.d.ts +11 -0
- package/dist/atlas/src/schema/Blueprint.d.ts +276 -0
- package/dist/atlas/src/schema/ColumnDefinition.d.ts +154 -0
- package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +37 -0
- package/dist/atlas/src/schema/Schema.d.ts +131 -0
- package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +23 -0
- package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +26 -0
- package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +28 -0
- package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +97 -0
- package/dist/atlas/src/schema/grammars/index.d.ts +7 -0
- package/dist/atlas/src/schema/index.d.ts +8 -0
- package/dist/atlas/src/seed/Factory.d.ts +90 -0
- package/dist/atlas/src/seed/Seeder.d.ts +28 -0
- package/dist/atlas/src/seed/SeederRunner.d.ts +74 -0
- package/dist/atlas/src/seed/index.d.ts +6 -0
- package/dist/atlas/src/types/index.d.ts +1100 -0
- package/dist/atlas/src/utils/levenshtein.d.ts +9 -0
- package/dist/core/src/Application.d.ts +215 -0
- package/dist/core/src/CommandKernel.d.ts +33 -0
- package/dist/core/src/ConfigManager.d.ts +26 -0
- package/dist/core/src/Container.d.ts +108 -0
- package/dist/core/src/ErrorHandler.d.ts +63 -0
- package/dist/core/src/Event.d.ts +5 -0
- package/dist/core/src/EventManager.d.ts +123 -0
- package/dist/core/src/GlobalErrorHandlers.d.ts +47 -0
- package/dist/core/src/GravitoServer.d.ts +28 -0
- package/dist/core/src/HookManager.d.ts +496 -0
- package/dist/core/src/Listener.d.ts +4 -0
- package/dist/core/src/Logger.d.ts +20 -0
- package/dist/core/src/PlanetCore.d.ts +289 -0
- package/dist/core/src/Route.d.ts +36 -0
- package/dist/core/src/Router.d.ts +284 -0
- package/dist/core/src/ServiceProvider.d.ts +156 -0
- package/dist/core/src/adapters/GravitoEngineAdapter.d.ts +27 -0
- package/dist/core/src/adapters/PhotonAdapter.d.ts +171 -0
- package/dist/core/src/adapters/bun/BunContext.d.ts +45 -0
- package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +31 -0
- package/dist/core/src/adapters/bun/BunRequest.d.ts +31 -0
- package/dist/core/src/adapters/bun/RadixNode.d.ts +19 -0
- package/dist/core/src/adapters/bun/RadixRouter.d.ts +31 -0
- package/dist/core/src/adapters/bun/types.d.ts +20 -0
- package/dist/core/src/adapters/photon-types.d.ts +73 -0
- package/dist/core/src/adapters/types.d.ts +235 -0
- package/dist/core/src/engine/AOTRouter.d.ts +124 -0
- package/dist/core/src/engine/FastContext.d.ts +100 -0
- package/dist/core/src/engine/Gravito.d.ts +137 -0
- package/dist/core/src/engine/MinimalContext.d.ts +79 -0
- package/dist/core/src/engine/analyzer.d.ts +27 -0
- package/dist/core/src/engine/constants.d.ts +23 -0
- package/dist/core/src/engine/index.d.ts +26 -0
- package/dist/core/src/engine/path.d.ts +26 -0
- package/dist/core/src/engine/pool.d.ts +83 -0
- package/dist/core/src/engine/types.d.ts +143 -0
- package/dist/core/src/events/CircuitBreaker.d.ts +229 -0
- package/dist/core/src/events/DeadLetterQueue.d.ts +145 -0
- package/dist/core/src/events/EventBackend.d.ts +11 -0
- package/dist/core/src/events/EventOptions.d.ts +109 -0
- package/dist/core/src/events/EventPriorityQueue.d.ts +202 -0
- package/dist/core/src/events/IdempotencyCache.d.ts +60 -0
- package/dist/core/src/events/index.d.ts +14 -0
- package/dist/core/src/events/observability/EventMetrics.d.ts +132 -0
- package/dist/core/src/events/observability/EventTracer.d.ts +68 -0
- package/dist/core/src/events/observability/EventTracing.d.ts +161 -0
- package/dist/core/src/events/observability/OTelEventMetrics.d.ts +240 -0
- package/dist/core/src/events/observability/ObservableHookManager.d.ts +108 -0
- package/dist/core/src/events/observability/index.d.ts +20 -0
- package/dist/core/src/events/observability/metrics-types.d.ts +16 -0
- package/dist/core/src/events/types.d.ts +75 -0
- package/dist/core/src/exceptions/AuthenticationException.d.ts +8 -0
- package/dist/core/src/exceptions/AuthorizationException.d.ts +8 -0
- package/dist/core/src/exceptions/CircularDependencyException.d.ts +9 -0
- package/dist/core/src/exceptions/GravitoException.d.ts +23 -0
- package/dist/core/src/exceptions/HttpException.d.ts +9 -0
- package/dist/core/src/exceptions/ModelNotFoundException.d.ts +10 -0
- package/dist/core/src/exceptions/ValidationException.d.ts +22 -0
- package/dist/core/src/exceptions/index.d.ts +7 -0
- package/dist/core/src/helpers/Arr.d.ts +19 -0
- package/dist/core/src/helpers/Str.d.ts +23 -0
- package/dist/core/src/helpers/data.d.ts +25 -0
- package/dist/core/src/helpers/errors.d.ts +34 -0
- package/dist/core/src/helpers/response.d.ts +41 -0
- package/dist/core/src/helpers.d.ts +338 -0
- package/dist/core/src/http/CookieJar.d.ts +51 -0
- package/dist/core/src/http/cookie.d.ts +29 -0
- package/dist/core/src/http/middleware/BodySizeLimit.d.ts +16 -0
- package/dist/core/src/http/middleware/Cors.d.ts +24 -0
- package/dist/core/src/http/middleware/Csrf.d.ts +23 -0
- package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +28 -0
- package/dist/core/src/http/middleware/SecurityHeaders.d.ts +29 -0
- package/dist/core/src/http/middleware/ThrottleRequests.d.ts +18 -0
- package/dist/core/src/http/types.d.ts +355 -0
- package/dist/core/src/index.d.ts +76 -0
- package/dist/core/src/instrumentation/index.d.ts +35 -0
- package/dist/core/src/instrumentation/opentelemetry.d.ts +178 -0
- package/dist/core/src/instrumentation/types.d.ts +182 -0
- package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +316 -0
- package/dist/core/src/reliability/RetryPolicy.d.ts +217 -0
- package/dist/core/src/reliability/index.d.ts +6 -0
- package/dist/core/src/router/ControllerDispatcher.d.ts +12 -0
- package/dist/core/src/router/RequestValidator.d.ts +20 -0
- package/dist/core/src/runtime.d.ts +119 -0
- package/dist/core/src/security/Encrypter.d.ts +33 -0
- package/dist/core/src/security/Hasher.d.ts +29 -0
- package/dist/core/src/testing/HttpTester.d.ts +39 -0
- package/dist/core/src/testing/TestResponse.d.ts +78 -0
- package/dist/core/src/testing/index.d.ts +2 -0
- package/dist/core/src/types/events.d.ts +94 -0
- package/dist/echo/src/OrbitEcho.d.ts +115 -0
- package/dist/echo/src/dlq/DeadLetterQueue.d.ts +94 -0
- package/dist/echo/src/dlq/MemoryDeadLetterQueue.d.ts +36 -0
- package/dist/echo/src/dlq/index.d.ts +2 -0
- package/dist/echo/src/index.d.ts +64 -0
- package/dist/echo/src/middleware/RequestBufferMiddleware.d.ts +62 -0
- package/dist/echo/src/middleware/index.d.ts +8 -0
- package/dist/echo/src/observability/index.d.ts +3 -0
- package/dist/echo/src/observability/logging/ConsoleEchoLogger.d.ts +37 -0
- package/dist/echo/src/observability/logging/EchoLogger.d.ts +38 -0
- package/dist/echo/src/observability/logging/index.d.ts +2 -0
- package/dist/echo/src/observability/metrics/MetricsProvider.d.ts +69 -0
- package/dist/echo/src/observability/metrics/NoopMetricsProvider.d.ts +17 -0
- package/dist/echo/src/observability/metrics/PrometheusMetricsProvider.d.ts +39 -0
- package/dist/echo/src/observability/metrics/index.d.ts +3 -0
- package/dist/echo/src/observability/tracing/NoopTracer.d.ts +33 -0
- package/dist/echo/src/observability/tracing/Tracer.d.ts +75 -0
- package/dist/echo/src/observability/tracing/index.d.ts +2 -0
- package/dist/echo/src/providers/GenericProvider.d.ts +53 -0
- package/dist/echo/src/providers/GitHubProvider.d.ts +35 -0
- package/dist/echo/src/providers/LinearProvider.d.ts +27 -0
- package/dist/echo/src/providers/PaddleProvider.d.ts +31 -0
- package/dist/echo/src/providers/ShopifyProvider.d.ts +27 -0
- package/dist/echo/src/providers/SlackProvider.d.ts +27 -0
- package/dist/echo/src/providers/StripeProvider.d.ts +38 -0
- package/dist/echo/src/providers/TwilioProvider.d.ts +31 -0
- package/dist/echo/src/providers/base/BaseProvider.d.ts +87 -0
- package/dist/echo/src/providers/base/HeaderUtils.d.ts +34 -0
- package/dist/echo/src/providers/index.d.ts +14 -0
- package/dist/echo/src/receive/SignatureValidator.d.ts +67 -0
- package/dist/echo/src/receive/WebhookReceiver.d.ts +185 -0
- package/dist/echo/src/receive/index.d.ts +2 -0
- package/dist/echo/src/replay/WebhookReplayService.d.ts +35 -0
- package/dist/echo/src/replay/index.d.ts +1 -0
- package/dist/echo/src/resilience/CircuitBreaker.d.ts +117 -0
- package/dist/echo/src/resilience/index.d.ts +10 -0
- package/dist/echo/src/rotation/KeyRotationManager.d.ts +127 -0
- package/dist/echo/src/rotation/index.d.ts +10 -0
- package/dist/echo/src/send/WebhookDispatcher.d.ts +198 -0
- package/dist/echo/src/send/index.d.ts +1 -0
- package/dist/echo/src/storage/MemoryWebhookStore.d.ts +14 -0
- package/dist/echo/src/storage/WebhookStore.d.ts +236 -0
- package/dist/echo/src/storage/index.d.ts +2 -0
- package/dist/echo/src/types.d.ts +756 -0
- package/dist/index.js +1332 -190
- package/dist/index.js.map +28 -10
- package/dist/photon/src/index.d.ts +84 -0
- package/dist/photon/src/middleware/binary.d.ts +31 -0
- package/dist/photon/src/middleware/htmx.d.ts +39 -0
- package/dist/photon/src/middleware/ratelimit.d.ts +157 -0
- package/dist/photon/src/openapi.d.ts +19 -0
- package/package.json +7 -5
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Grammar
|
|
3
|
+
* @description Base class for generating DDL SQL statements
|
|
4
|
+
*/
|
|
5
|
+
import type { Blueprint } from '../Blueprint';
|
|
6
|
+
import type { ColumnDefinition } from '../ColumnDefinition';
|
|
7
|
+
import type { ForeignKeyDefinition, IndexDefinition } from '../ForeignKeyDefinition';
|
|
8
|
+
/**
|
|
9
|
+
* Schema Grammar
|
|
10
|
+
* Generates DDL SQL statements from Blueprint definitions
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class SchemaGrammar {
|
|
13
|
+
/**
|
|
14
|
+
* Compile CREATE TABLE statement
|
|
15
|
+
*/
|
|
16
|
+
compileCreate(blueprint: Blueprint): string;
|
|
17
|
+
/**
|
|
18
|
+
* Compile DROP TABLE statement
|
|
19
|
+
*/
|
|
20
|
+
compileDrop(table: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Compile DROP TABLE IF EXISTS statement
|
|
23
|
+
*/
|
|
24
|
+
compileDropIfExists(table: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Compile ALTER TABLE statement
|
|
27
|
+
*/
|
|
28
|
+
compileAlter(blueprint: Blueprint): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Determine if primary key should be added at the bottom of the statement
|
|
31
|
+
*/
|
|
32
|
+
protected shouldAddPrimaryAtBottom(blueprint: Blueprint): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Compile a column definition
|
|
35
|
+
*/
|
|
36
|
+
protected compileColumn(column: ColumnDefinition, _blueprint: Blueprint): string;
|
|
37
|
+
/**
|
|
38
|
+
* Compile column type
|
|
39
|
+
*/
|
|
40
|
+
protected abstract compileType(column: ColumnDefinition): string;
|
|
41
|
+
/**
|
|
42
|
+
* Compile auto increment syntax
|
|
43
|
+
*/
|
|
44
|
+
protected abstract compileAutoIncrement(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Check if database supports UNSIGNED
|
|
47
|
+
*/
|
|
48
|
+
protected abstract supportsUnsigned(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Compile default value
|
|
51
|
+
*/
|
|
52
|
+
protected compileDefault(value: unknown): string;
|
|
53
|
+
/**
|
|
54
|
+
* Compile CREATE INDEX statement
|
|
55
|
+
*/
|
|
56
|
+
compileIndex(table: string, index: IndexDefinition): string;
|
|
57
|
+
/**
|
|
58
|
+
* Compile fulltext index (override in subclasses)
|
|
59
|
+
*/
|
|
60
|
+
protected abstract compileFullTextIndex(table: string, index: IndexDefinition): string;
|
|
61
|
+
/**
|
|
62
|
+
* Compile spatial index (override in subclasses)
|
|
63
|
+
*/
|
|
64
|
+
protected abstract compileSpatialIndex(table: string, index: IndexDefinition): string;
|
|
65
|
+
/**
|
|
66
|
+
* Compile DROP INDEX statement
|
|
67
|
+
*/
|
|
68
|
+
abstract compileDropIndex(table: string, name: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Compile FOREIGN KEY constraint
|
|
71
|
+
*/
|
|
72
|
+
protected compileForeignKey(fk: ForeignKeyDefinition): string;
|
|
73
|
+
/**
|
|
74
|
+
* Wrap table name with quotes
|
|
75
|
+
*/
|
|
76
|
+
abstract wrapTable(table: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Wrap column name with quotes
|
|
79
|
+
*/
|
|
80
|
+
abstract wrapColumn(column: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Quote a string value
|
|
83
|
+
*/
|
|
84
|
+
protected quoteString(value: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* Compile query to check if table exists
|
|
87
|
+
*/
|
|
88
|
+
abstract compileTableExists(table: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* Compile query to check if column exists
|
|
91
|
+
*/
|
|
92
|
+
abstract compileColumnExists(table: string, column: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* Compile query to list all tables
|
|
95
|
+
*/
|
|
96
|
+
abstract compileListTables(): string;
|
|
97
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Grammars Index
|
|
3
|
+
*/
|
|
4
|
+
export { MySQLSchemaGrammar } from './MySQLSchemaGrammar';
|
|
5
|
+
export { PostgresSchemaGrammar } from './PostgresSchemaGrammar';
|
|
6
|
+
export { SchemaGrammar } from './SchemaGrammar';
|
|
7
|
+
export { SQLiteSchemaGrammar } from './SQLiteSchemaGrammar';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Module Index
|
|
3
|
+
*/
|
|
4
|
+
export { Blueprint } from './Blueprint';
|
|
5
|
+
export { ColumnDefinition, type ColumnType, type ForeignKeyAction } from './ColumnDefinition';
|
|
6
|
+
export type { ForeignKeyDefinition, IndexDefinition } from './ForeignKeyDefinition';
|
|
7
|
+
export { MySQLSchemaGrammar, PostgresSchemaGrammar, SchemaGrammar } from './grammars';
|
|
8
|
+
export { Schema } from './Schema';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Model } from '../orm/model/Model';
|
|
2
|
+
/**
|
|
3
|
+
* Factory State
|
|
4
|
+
*/
|
|
5
|
+
type FactoryState<T> = Partial<T>;
|
|
6
|
+
/**
|
|
7
|
+
* Factory Definition Function
|
|
8
|
+
*/
|
|
9
|
+
export type FactoryDefinition<T> = () => T;
|
|
10
|
+
/**
|
|
11
|
+
* Factory Options
|
|
12
|
+
*/
|
|
13
|
+
export interface FactoryOptions {
|
|
14
|
+
model?: typeof Model;
|
|
15
|
+
table?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Factory
|
|
19
|
+
* Generate fake records for seeding
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const userFactory = new Factory<User>(() => ({
|
|
24
|
+
* name: faker.person.fullName(),
|
|
25
|
+
* email: faker.internet.email(),
|
|
26
|
+
* password: 'hashed_password',
|
|
27
|
+
* }), { table: 'users' })
|
|
28
|
+
*
|
|
29
|
+
* // Create 10 users
|
|
30
|
+
* const users = await userFactory.count(10).create()
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class Factory<T extends Record<string, unknown>> {
|
|
34
|
+
private definition;
|
|
35
|
+
private _count;
|
|
36
|
+
private _states;
|
|
37
|
+
private model?;
|
|
38
|
+
private tableName?;
|
|
39
|
+
constructor(definition: FactoryDefinition<T>, options?: FactoryOptions);
|
|
40
|
+
private static registry;
|
|
41
|
+
/**
|
|
42
|
+
* Define a factory for a model
|
|
43
|
+
*/
|
|
44
|
+
static define<T extends Record<string, unknown>>(modelOrTable: typeof Model | string, definition: FactoryDefinition<T>): Factory<T>;
|
|
45
|
+
/**
|
|
46
|
+
* Create a factory for a specific model
|
|
47
|
+
*/
|
|
48
|
+
static model<T extends Record<string, unknown>>(model: typeof Model): Factory<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Create and insert multiple records
|
|
51
|
+
*/
|
|
52
|
+
createMany(n: number, attributes?: FactoryState<T>): Promise<T[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Set the number of records to generate
|
|
55
|
+
*/
|
|
56
|
+
count(n: number): this;
|
|
57
|
+
/**
|
|
58
|
+
* Apply state overrides
|
|
59
|
+
*/
|
|
60
|
+
state(state: FactoryState<T>): this;
|
|
61
|
+
/**
|
|
62
|
+
* Generate records without inserting
|
|
63
|
+
*/
|
|
64
|
+
make(): T[];
|
|
65
|
+
/**
|
|
66
|
+
* Generate a single record
|
|
67
|
+
*/
|
|
68
|
+
makeOne(): T;
|
|
69
|
+
/**
|
|
70
|
+
* Generate records as raw objects (alias for make)
|
|
71
|
+
*/
|
|
72
|
+
raw(): T[];
|
|
73
|
+
/**
|
|
74
|
+
* Generate a single raw record
|
|
75
|
+
*/
|
|
76
|
+
rawOne(): T;
|
|
77
|
+
/**
|
|
78
|
+
* Create and insert records into the database
|
|
79
|
+
*/
|
|
80
|
+
create(attributes?: FactoryState<T>): Promise<T[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Create a sequence generator
|
|
83
|
+
*/
|
|
84
|
+
sequence<K extends keyof T>(key: K, generator: (index: number) => T[K]): this;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Helper to create a factory
|
|
88
|
+
*/
|
|
89
|
+
export declare function factory<T extends Record<string, unknown>>(definition: FactoryDefinition<T>, options?: FactoryOptions): Factory<T>;
|
|
90
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeder constructor type
|
|
3
|
+
*/
|
|
4
|
+
export type SeederConstructor = new () => Seeder;
|
|
5
|
+
/**
|
|
6
|
+
* Seeder file info
|
|
7
|
+
*/
|
|
8
|
+
export interface SeederFile {
|
|
9
|
+
/** Seeder class name */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Full file path */
|
|
12
|
+
path: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Base Seeder Class
|
|
16
|
+
* @description All database seeders should extend this class
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class Seeder {
|
|
19
|
+
/**
|
|
20
|
+
* Run the seeder logic
|
|
21
|
+
*/
|
|
22
|
+
abstract run(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Run other seeders from within this seeder
|
|
25
|
+
* @example await this.call([UserSeeder, PostSeeder])
|
|
26
|
+
*/
|
|
27
|
+
call(seeders: SeederConstructor | SeederConstructor[]): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeder Runner
|
|
3
|
+
* @description Runs database seeders
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Seeder Runner Options
|
|
7
|
+
*/
|
|
8
|
+
export interface SeederRunnerOptions {
|
|
9
|
+
/** Path to seeders directory */
|
|
10
|
+
path?: string;
|
|
11
|
+
/** Database connection name */
|
|
12
|
+
connection?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Seeder Runner
|
|
16
|
+
* Discovers and runs database seeders
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const runner = new SeederRunner({ path: './seeders' })
|
|
21
|
+
*
|
|
22
|
+
* // Run all seeders
|
|
23
|
+
* await runner.run()
|
|
24
|
+
*
|
|
25
|
+
* // Run specific seeder
|
|
26
|
+
* await runner.call('UserSeeder')
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class SeederRunner {
|
|
30
|
+
private seedersPath;
|
|
31
|
+
private _connectionName;
|
|
32
|
+
private resolvedSeeders;
|
|
33
|
+
constructor(options?: SeederRunnerOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Set seeders path
|
|
36
|
+
*/
|
|
37
|
+
setPath(path: string): this;
|
|
38
|
+
/**
|
|
39
|
+
* Set database connection
|
|
40
|
+
*/
|
|
41
|
+
connection(name: string): this;
|
|
42
|
+
/**
|
|
43
|
+
* Run all seeders in the directory
|
|
44
|
+
*/
|
|
45
|
+
run(): Promise<string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Run a specific seeder by name
|
|
48
|
+
*/
|
|
49
|
+
call(seederName: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Run multiple specific seeders
|
|
52
|
+
*/
|
|
53
|
+
callMultiple(seederNames: string[]): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a seeder exists
|
|
56
|
+
*/
|
|
57
|
+
has(seederName: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* List all available seeders
|
|
60
|
+
*/
|
|
61
|
+
list(): Promise<string[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Get all seeder files from the seeders directory
|
|
64
|
+
*/
|
|
65
|
+
private getSeederFiles;
|
|
66
|
+
/**
|
|
67
|
+
* Run a single seeder
|
|
68
|
+
*/
|
|
69
|
+
private runSeeder;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve seeder class from file
|
|
72
|
+
*/
|
|
73
|
+
private resolveSeeder;
|
|
74
|
+
}
|