ts-prorm-orm 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/CHANGELOG.md +1111 -0
- package/LICENSE +21 -0
- package/README.md +573 -0
- package/dist/audit/history-query.js +180 -0
- package/dist/audit/index.js +23 -0
- package/dist/audit/logger.js +236 -0
- package/dist/cache/cache-manager.js +84 -0
- package/dist/cache/index.js +16 -0
- package/dist/cache/redis-cluster-cache.js +557 -0
- package/dist/cli.js +2200 -0
- package/dist/compliance/audit-trail.js +68 -0
- package/dist/compliance/backup-verification.js +685 -0
- package/dist/compliance/breach-detector.js +505 -0
- package/dist/compliance/consent-record.js +227 -0
- package/dist/compliance/consent-versioning.js +331 -0
- package/dist/compliance/cross-border-log.js +530 -0
- package/dist/compliance/data-classifier.js +258 -0
- package/dist/compliance/data-lineage.js +565 -0
- package/dist/compliance/data-masker.js +303 -0
- package/dist/compliance/data-portability.js +265 -0
- package/dist/compliance/data-retention.js +195 -0
- package/dist/compliance/dsar-workflow.js +342 -0
- package/dist/compliance/field-encryption.js +223 -0
- package/dist/compliance/immutable-record.js +148 -0
- package/dist/compliance/index.js +260 -0
- package/dist/compliance/privacy-impact-assessment.js +364 -0
- package/dist/compliance/pseudonymization.js +269 -0
- package/dist/compliance/query-firewall.js +1182 -0
- package/dist/compliance/rate-limiter.js +580 -0
- package/dist/compliance/right-to-erasure.js +117 -0
- package/dist/compliance/row-level-security.js +246 -0
- package/dist/compliance/security-decorator.js +574 -0
- package/dist/compliance/security-monitor.js +525 -0
- package/dist/compliance/sensitive-data-discovery.js +476 -0
- package/dist/compliance/session-isolation.js +472 -0
- package/dist/compliance/tls-enforcer.js +108 -0
- package/dist/compliance/worm-storage.js +712 -0
- package/dist/connection-manager.js +198 -0
- package/dist/connection-pool.js +519 -0
- package/dist/decorators/audit.js +136 -0
- package/dist/decorators/belongs-to-many.js +115 -0
- package/dist/decorators/belongs-to.js +115 -0
- package/dist/decorators/check.js +435 -0
- package/dist/decorators/collate.js +329 -0
- package/dist/decorators/comment.js +205 -0
- package/dist/decorators/database-settings.js +236 -0
- package/dist/decorators/default.js +244 -0
- package/dist/decorators/encryption.js +235 -0
- package/dist/decorators/engine.js +97 -0
- package/dist/decorators/fk-constraints.js +594 -0
- package/dist/decorators/foreign-table.js +136 -0
- package/dist/decorators/generated.js +274 -0
- package/dist/decorators/has-many.js +127 -0
- package/dist/decorators/has-one.js +116 -0
- package/dist/decorators/hstore.js +129 -0
- package/dist/decorators/index.js +355 -0
- package/dist/decorators/json-column.js +83 -0
- package/dist/decorators/jsonb.js +101 -0
- package/dist/decorators/orm-decorators.js +425 -0
- package/dist/decorators/permissions.js +294 -0
- package/dist/decorators/procedure.js +210 -0
- package/dist/decorators/query-options.js +556 -0
- package/dist/decorators/range.js +167 -0
- package/dist/decorators/set-column.js +83 -0
- package/dist/decorators/spatial.js +114 -0
- package/dist/decorators/storage.js +580 -0
- package/dist/decorators/timezone.js +512 -0
- package/dist/decorators/trigger.js +90 -0
- package/dist/decorators/uuid.js +135 -0
- package/dist/decorators/view.js +258 -0
- package/dist/diagrams/chen-diagram.js +354 -0
- package/dist/diagrams/class-diagram.js +384 -0
- package/dist/diagrams/dependency-diagram.js +432 -0
- package/dist/diagrams/er-diagram.js +605 -0
- package/dist/diagrams/flow-diagram.js +394 -0
- package/dist/diagrams/gantt-diagram.js +411 -0
- package/dist/diagrams/index-diagram.js +353 -0
- package/dist/diagrams/index.js +184 -0
- package/dist/diagrams/migration-diagram.js +316 -0
- package/dist/diagrams/model-diagram.js +616 -0
- package/dist/diagrams/package-diagram.js +376 -0
- package/dist/diagrams/palette.js +85 -0
- package/dist/diagrams/relational-diagram.js +455 -0
- package/dist/diagrams/schemadoc-diagram.js +309 -0
- package/dist/diagrams/sequence-diagram.js +307 -0
- package/dist/diagrams/state-diagram.js +344 -0
- package/dist/diagrams/svg-dom.js +111 -0
- package/dist/diagrams/tree-diagram.js +250 -0
- package/dist/dialects/clickhouse/index.js +1742 -0
- package/dist/dialects/cockroachdb/index.js +4677 -0
- package/dist/dialects/cratedb/index.js +441 -0
- package/dist/dialects/databricks/index.js +517 -0
- package/dist/dialects/db2/index.js +2225 -0
- package/dist/dialects/dialect.js +720 -0
- package/dist/dialects/duckdb/index.js +2014 -0
- package/dist/dialects/exasol/index.js +357 -0
- package/dist/dialects/firebird/index.js +495 -0
- package/dist/dialects/greenplum/index.js +457 -0
- package/dist/dialects/hana/index.js +1741 -0
- package/dist/dialects/mariadb/index.js +3590 -0
- package/dist/dialects/mssql/index.js +2296 -0
- package/dist/dialects/mysql/index.js +4058 -0
- package/dist/dialects/oracle/index.js +2999 -0
- package/dist/dialects/postgres/index.js +5319 -0
- package/dist/dialects/query-stream-helper.js +152 -0
- package/dist/dialects/questdb/index.js +433 -0
- package/dist/dialects/redshift/index.js +2277 -0
- package/dist/dialects/singlestore/index.js +354 -0
- package/dist/dialects/snowflake/index.js +2082 -0
- package/dist/dialects/spanner/index.js +1768 -0
- package/dist/dialects/sqlite/index.js +3382 -0
- package/dist/dialects/tidb/index.js +377 -0
- package/dist/dialects/timescaledb/index.js +164 -0
- package/dist/dialects/trino/index.js +420 -0
- package/dist/dialects/turso/index.js +227 -0
- package/dist/dialects/vertica/index.js +317 -0
- package/dist/dialects/yugabytedb/index.js +424 -0
- package/dist/errors/index.js +472 -0
- package/dist/errors/utils.js +340 -0
- package/dist/errors.js +21 -0
- package/dist/extensions/catalog/cloud-warehouse-features.js +207 -0
- package/dist/extensions/catalog/mssql-features.js +147 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.js +229 -0
- package/dist/extensions/catalog/oracle-db2-features.js +196 -0
- package/dist/extensions/catalog/postgres-extensions.js +516 -0
- package/dist/extensions/index.js +71 -0
- package/dist/extensions/types.js +13 -0
- package/dist/foreign-data.js +173 -0
- package/dist/hooks/hooks-manager.js +350 -0
- package/dist/hooks/index.js +37 -0
- package/dist/index.js +463 -0
- package/dist/logging.js +335 -0
- package/dist/migrations/index.js +40 -0
- package/dist/migrations/migration.js +196 -0
- package/dist/migrations/migrator.js +411 -0
- package/dist/migrations/prormmigration.js +275 -0
- package/dist/migrations/query-interface.js +435 -0
- package/dist/migrations/seeder.js +353 -0
- package/dist/models/associations.js +852 -0
- package/dist/models/constraints.js +288 -0
- package/dist/models/data-types.js +2518 -0
- package/dist/models/decorators.js +445 -0
- package/dist/models/index.js +33 -0
- package/dist/models/indexes.js +531 -0
- package/dist/models/methods.js +382 -0
- package/dist/models/model-manager.js +103 -0
- package/dist/models/model.js +5349 -0
- package/dist/models/operators.js +67 -0
- package/dist/models/scopes.js +189 -0
- package/dist/models/typescript-types.js +26 -0
- package/dist/nosql/aerospike/index.js +205 -0
- package/dist/nosql/allegrograph/index.js +169 -0
- package/dist/nosql/arangodb/index.js +364 -0
- package/dist/nosql/azure-blob/index.js +206 -0
- package/dist/nosql/beanstalkd/index.js +231 -0
- package/dist/nosql/beequeue/index.js +210 -0
- package/dist/nosql/bigchaindb/index.js +195 -0
- package/dist/nosql/bigtable/index.js +224 -0
- package/dist/nosql/blazegraph/index.js +173 -0
- package/dist/nosql/bullmq/index.js +191 -0
- package/dist/nosql/cassandra/index.js +174 -0
- package/dist/nosql/chroma/index.js +190 -0
- package/dist/nosql/cloudflare-kv/index.js +220 -0
- package/dist/nosql/coherence/index.js +200 -0
- package/dist/nosql/cosmosdb/index.js +157 -0
- package/dist/nosql/couchbase/index.js +213 -0
- package/dist/nosql/dax/index.js +212 -0
- package/dist/nosql/deno-kv/index.js +206 -0
- package/dist/nosql/dgraph/index.js +171 -0
- package/dist/nosql/doris/index.js +169 -0
- package/dist/nosql/druid/index.js +162 -0
- package/dist/nosql/dynamodb/index.js +937 -0
- package/dist/nosql/elasticsearch/index.js +377 -0
- package/dist/nosql/etcd/index.js +502 -0
- package/dist/nosql/eventhubs/index.js +213 -0
- package/dist/nosql/eventstore/index.js +254 -0
- package/dist/nosql/faunadb/index.js +188 -0
- package/dist/nosql/firestore/index.js +177 -0
- package/dist/nosql/fluree/index.js +148 -0
- package/dist/nosql/fuseki/index.js +170 -0
- package/dist/nosql/gcs/index.js +172 -0
- package/dist/nosql/gearman/index.js +160 -0
- package/dist/nosql/geode/index.js +196 -0
- package/dist/nosql/graphdb/index.js +169 -0
- package/dist/nosql/graylog/index.js +188 -0
- package/dist/nosql/gridgain/index.js +171 -0
- package/dist/nosql/hazelcast/index.js +162 -0
- package/dist/nosql/hbase/index.js +230 -0
- package/dist/nosql/ignite/index.js +173 -0
- package/dist/nosql/immudb/index.js +184 -0
- package/dist/nosql/index.js +232 -0
- package/dist/nosql/infinispan/index.js +200 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.js +234 -0
- package/dist/nosql/keyspaces/index.js +189 -0
- package/dist/nosql/kinesis/index.js +253 -0
- package/dist/nosql/leveldb/index.js +153 -0
- package/dist/nosql/lmdb/index.js +160 -0
- package/dist/nosql/loki/index.js +201 -0
- package/dist/nosql/marklogic/index.js +204 -0
- package/dist/nosql/materialize/index.js +145 -0
- package/dist/nosql/meilisearch/index.js +154 -0
- package/dist/nosql/memcached/index.js +223 -0
- package/dist/nosql/milvus/index.js +410 -0
- package/dist/nosql/minio/index.js +265 -0
- package/dist/nosql/momento/index.js +179 -0
- package/dist/nosql/mongodb/index.js +461 -0
- package/dist/nosql/nats/index.js +247 -0
- package/dist/nosql/nedb/index.js +164 -0
- package/dist/nosql/neo4j/index.js +450 -0
- package/dist/nosql/neptune/index.js +470 -0
- package/dist/nosql/nsq/index.js +200 -0
- package/dist/nosql/opensearch/index.js +186 -0
- package/dist/nosql/orientdb/index.js +175 -0
- package/dist/nosql/papertrail/index.js +200 -0
- package/dist/nosql/pinecone/index.js +0 -0
- package/dist/nosql/pinot/index.js +133 -0
- package/dist/nosql/pouchdb/index.js +172 -0
- package/dist/nosql/prometheus/index.js +174 -0
- package/dist/nosql/provendb/index.js +147 -0
- package/dist/nosql/pubsub/index.js +187 -0
- package/dist/nosql/pulsar/index.js +232 -0
- package/dist/nosql/qdrant/index.js +295 -0
- package/dist/nosql/qldb/index.js +192 -0
- package/dist/nosql/r2/index.js +281 -0
- package/dist/nosql/rabbitmq/index.js +237 -0
- package/dist/nosql/ravendb/index.js +175 -0
- package/dist/nosql/redis/index.js +607 -0
- package/dist/nosql/redpanda/index.js +237 -0
- package/dist/nosql/resque/index.js +203 -0
- package/dist/nosql/rethinkdb/index.js +232 -0
- package/dist/nosql/rocksdb/index.js +152 -0
- package/dist/nosql/rockset/index.js +126 -0
- package/dist/nosql/s3/index.js +298 -0
- package/dist/nosql/scylladb/index.js +178 -0
- package/dist/nosql/signoz/index.js +227 -0
- package/dist/nosql/sns/index.js +201 -0
- package/dist/nosql/solr/index.js +231 -0
- package/dist/nosql/splunk/index.js +227 -0
- package/dist/nosql/sqs/index.js +246 -0
- package/dist/nosql/stardog/index.js +169 -0
- package/dist/nosql/starrocks/index.js +170 -0
- package/dist/nosql/store.js +2 -0
- package/dist/nosql/sumologic/index.js +213 -0
- package/dist/nosql/surrealdb/index.js +179 -0
- package/dist/nosql/terminusdb/index.js +151 -0
- package/dist/nosql/tigergraph/index.js +469 -0
- package/dist/nosql/typesense/index.js +148 -0
- package/dist/nosql/unqlite/index.js +157 -0
- package/dist/nosql/upstash/index.js +167 -0
- package/dist/nosql/vercel-kv/index.js +166 -0
- package/dist/nosql/victoriametrics/index.js +213 -0
- package/dist/nosql/virtuoso/index.js +169 -0
- package/dist/nosql/weaviate/index.js +276 -0
- package/dist/operators/index.js +108 -0
- package/dist/operators.js +2690 -0
- package/dist/prisma-migrate/index.js +38 -0
- package/dist/prisma-migrate/migration-generator.js +125 -0
- package/dist/prisma-migrate/model-generator.js +172 -0
- package/dist/prisma-migrate/relations.js +100 -0
- package/dist/prisma-migrate/schema-parser.js +167 -0
- package/dist/prisma-migrate/type-mapper.js +40 -0
- package/dist/prorm.js +6832 -0
- package/dist/query-builders/cte-builder.js +80 -0
- package/dist/query-builders/functions/aggregate.js +390 -0
- package/dist/query-builders/functions/conditional.js +503 -0
- package/dist/query-builders/functions/datetime.js +695 -0
- package/dist/query-builders/functions/fulltext.js +439 -0
- package/dist/query-builders/functions/index.js +93 -0
- package/dist/query-builders/functions/json.js +427 -0
- package/dist/query-builders/functions/math.js +399 -0
- package/dist/query-builders/functions/string.js +518 -0
- package/dist/query-builders/functions/window.js +328 -0
- package/dist/query-builders/include-builder.js +323 -0
- package/dist/query-builders/index-expression-builder.js +242 -0
- package/dist/query-builders/index.js +161 -0
- package/dist/query-builders/insert-builder.js +164 -0
- package/dist/query-builders/model-helpers.js +38 -0
- package/dist/query-builders/order-limit-builder.js +239 -0
- package/dist/query-builders/sql-compiler.js +2040 -0
- package/dist/query-builders/subquery-builder.js +152 -0
- package/dist/query-builders/update-builder.js +182 -0
- package/dist/query-builders/view-builder.js +218 -0
- package/dist/query-builders/where-builder.js +1532 -0
- package/dist/query-interface.js +622 -0
- package/dist/query-optimizers/batch-optimizer.js +426 -0
- package/dist/query-optimizers/explain-plans.js +415 -0
- package/dist/query-optimizers/index.js +51 -0
- package/dist/query-optimizers/prepared-statement-cache.js +423 -0
- package/dist/query-optimizers/query-hints.js +438 -0
- package/dist/query-optimizers/query-optimizer.js +278 -0
- package/dist/query-optimizers/slow-query-logger.js +271 -0
- package/dist/replica-manager.js +507 -0
- package/dist/schema/index.js +15 -0
- package/dist/schema/migration-generator.js +374 -0
- package/dist/schema/schema-differ.js +549 -0
- package/dist/schema/types.js +6 -0
- package/dist/sql-constants.js +300 -0
- package/dist/sqlite-advanced.js +1047 -0
- package/dist/streams/index.js +12 -0
- package/dist/streams/transforms.js +178 -0
- package/dist/transaction.js +456 -0
- package/dist/types/index.js +180 -0
- package/dist/user-management.js +127 -0
- package/dist/utils/date.js +300 -0
- package/dist/utils/index.js +1079 -0
- package/dist/utils/string.js +161 -0
- package/dist/validators/index.js +19 -0
- package/dist/validators/validator.js +911 -0
- package/package.json +190 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JSONB Decorator for the ORM
|
|
4
|
+
*
|
|
5
|
+
* Provides PostgreSQL JSONB type support.
|
|
6
|
+
* JSONB is different from JSON - it's stored in binary format and is indexable.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
*
|
|
10
|
+
* // Basic JSONB column
|
|
11
|
+
* @JSONB()
|
|
12
|
+
* metadata: object;
|
|
13
|
+
*
|
|
14
|
+
* // With validation
|
|
15
|
+
* @JSONB({ validate: true })
|
|
16
|
+
* config: object;
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.JSONB = JSONB;
|
|
20
|
+
exports.getJSONBMetadata = getJSONBMetadata;
|
|
21
|
+
exports.getAllJSONBMetadata = getAllJSONBMetadata;
|
|
22
|
+
exports.isJSONBColumn = isJSONBColumn;
|
|
23
|
+
exports.clearJSONBMetadata = clearJSONBMetadata;
|
|
24
|
+
// ==================== Registry ====================
|
|
25
|
+
const jsonbMetadataMap = new Map();
|
|
26
|
+
/**
|
|
27
|
+
* JSONB decorator for PostgreSQL JSONB columns
|
|
28
|
+
*
|
|
29
|
+
* @param options - Optional JSONB column options
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Basic JSONB column
|
|
33
|
+
* class Document extends Model {
|
|
34
|
+
* @JSONB()
|
|
35
|
+
* data: object;
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* // With validation
|
|
39
|
+
* class Config extends Model {
|
|
40
|
+
* @JSONB({ validate: true })
|
|
41
|
+
* settings: object;
|
|
42
|
+
* }
|
|
43
|
+
*/
|
|
44
|
+
function JSONB(options) {
|
|
45
|
+
return function (target, propertyKey) {
|
|
46
|
+
const decoratorOptions = {
|
|
47
|
+
allowNull: true,
|
|
48
|
+
validate: false,
|
|
49
|
+
...options,
|
|
50
|
+
};
|
|
51
|
+
// Get or create metadata map for this class
|
|
52
|
+
if (!jsonbMetadataMap.has(target.constructor)) {
|
|
53
|
+
jsonbMetadataMap.set(target.constructor, new Map());
|
|
54
|
+
}
|
|
55
|
+
const metadataMap = jsonbMetadataMap.get(target.constructor);
|
|
56
|
+
// Store metadata
|
|
57
|
+
metadataMap.set(propertyKey, {
|
|
58
|
+
options: decoratorOptions,
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get JSONB metadata for a property
|
|
64
|
+
*
|
|
65
|
+
* @param target - The target class
|
|
66
|
+
* @param propertyKey - The property name
|
|
67
|
+
* @returns JSONB metadata or undefined if not found
|
|
68
|
+
*/
|
|
69
|
+
function getJSONBMetadata(target, propertyKey) {
|
|
70
|
+
const metadataMap = jsonbMetadataMap.get(target.constructor);
|
|
71
|
+
if (!metadataMap) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
return metadataMap.get(propertyKey);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get all JSONB metadata for a class
|
|
78
|
+
*
|
|
79
|
+
* @param target - The target class
|
|
80
|
+
* @returns Map of property names to JSONB metadata
|
|
81
|
+
*/
|
|
82
|
+
function getAllJSONBMetadata(target) {
|
|
83
|
+
return jsonbMetadataMap.get(target.constructor) || new Map();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if a property is a JSONB column
|
|
87
|
+
*
|
|
88
|
+
* @param target - The target class
|
|
89
|
+
* @param propertyKey - The property name
|
|
90
|
+
* @returns True if the property is a JSONB column
|
|
91
|
+
*/
|
|
92
|
+
function isJSONBColumn(target, propertyKey) {
|
|
93
|
+
const metadata = getJSONBMetadata(target, propertyKey);
|
|
94
|
+
return metadata !== undefined;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Clear JSONB metadata (useful for testing)
|
|
98
|
+
*/
|
|
99
|
+
function clearJSONBMetadata() {
|
|
100
|
+
jsonbMetadataMap.clear();
|
|
101
|
+
}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ORM Decorators Registry
|
|
4
|
+
*
|
|
5
|
+
* Central registry of all decorator names used in the ORM.
|
|
6
|
+
* Useful for documentation, tooling, and reflection-based operations.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
*
|
|
10
|
+
* import { ORMDecorators } from './orm-decorators';
|
|
11
|
+
*
|
|
12
|
+
* // Access decorator names
|
|
13
|
+
* console.log(ORMDecorators.Table); // 'Table'
|
|
14
|
+
* console.log(ORMDecorators.Column); // 'Column'
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SETTINGS_DECORATORS = exports.POSTGRES_DECORATORS = exports.VALIDATION_DECORATORS = exports.HOOK_DECORATORS = exports.ASSOCIATION_DECORATORS = exports.CONSTRAINT_DECORATORS = exports.MODEL_DECORATORS = exports.ALL_DECORATORS = exports.ORMDecorators = void 0;
|
|
18
|
+
// ==================== Enum-like Constant ====================
|
|
19
|
+
/**
|
|
20
|
+
* All ORM decorator names organized by category.
|
|
21
|
+
*
|
|
22
|
+
* This constant provides a centralized registry of decorator names
|
|
23
|
+
* used throughout the ORM for documentation, tooling, and reflection.
|
|
24
|
+
*/
|
|
25
|
+
exports.ORMDecorators = {
|
|
26
|
+
// ─────────────────────────────────────────────────────────────────
|
|
27
|
+
// Model Definition
|
|
28
|
+
// ─────────────────────────────────────────────────────────────────
|
|
29
|
+
/** Model/table decorator */
|
|
30
|
+
Table: 'Table',
|
|
31
|
+
/** Schema/database schema decorator */
|
|
32
|
+
Schema: 'Schema',
|
|
33
|
+
/** Column/property decorator */
|
|
34
|
+
Column: 'Column',
|
|
35
|
+
/** Primary key decorator */
|
|
36
|
+
PrimaryKey: 'PrimaryKey',
|
|
37
|
+
// ─────────────────────────────────────────────────────────────────
|
|
38
|
+
// Constraints
|
|
39
|
+
// ─────────────────────────────────────────────────────────────────
|
|
40
|
+
/** Check constraint decorator */
|
|
41
|
+
Check: 'Check',
|
|
42
|
+
/** Unique constraint decorator */
|
|
43
|
+
Unique: 'Unique',
|
|
44
|
+
/** Default value decorator */
|
|
45
|
+
Default: 'Default',
|
|
46
|
+
/** Foreign key decorator */
|
|
47
|
+
ForeignKey: 'ForeignKey',
|
|
48
|
+
/** Index decorator */
|
|
49
|
+
Index: 'Index',
|
|
50
|
+
/** Partition decorator */
|
|
51
|
+
Partition: 'Partition',
|
|
52
|
+
// ─────────────────────────────────────────────────────────────────
|
|
53
|
+
// Associations
|
|
54
|
+
// ─────────────────────────────────────────────────────────────────
|
|
55
|
+
/** BelongsTo association decorator */
|
|
56
|
+
BelongsTo: 'BelongsTo',
|
|
57
|
+
/** HasOne association decorator */
|
|
58
|
+
HasOne: 'HasOne',
|
|
59
|
+
/** HasMany association decorator */
|
|
60
|
+
HasMany: 'HasMany',
|
|
61
|
+
/** Many-to-many (junction) association decorator */
|
|
62
|
+
BelongsToMany: 'BelongsToMany',
|
|
63
|
+
// ─────────────────────────────────────────────────────────────────
|
|
64
|
+
// Lifecycle Hooks - Before
|
|
65
|
+
// ─────────────────────────────────────────────────────────────────
|
|
66
|
+
/** Before create hook */
|
|
67
|
+
BeforeCreate: 'BeforeCreate',
|
|
68
|
+
/** Before bulk create hook */
|
|
69
|
+
BeforeBulkCreate: 'BeforeBulkCreate',
|
|
70
|
+
/** Before update hook */
|
|
71
|
+
BeforeUpdate: 'BeforeUpdate',
|
|
72
|
+
/** Before bulk update hook */
|
|
73
|
+
BeforeBulkUpdate: 'BeforeBulkUpdate',
|
|
74
|
+
/** Before delete hook */
|
|
75
|
+
BeforeDelete: 'BeforeDelete',
|
|
76
|
+
/** Before bulk delete hook */
|
|
77
|
+
BeforeBulkDelete: 'BeforeBulkDelete',
|
|
78
|
+
/** Before find hook */
|
|
79
|
+
BeforeFind: 'BeforeFind',
|
|
80
|
+
/** Before find after expand options hook */
|
|
81
|
+
BeforeFindAfterExpandOptions: 'BeforeFindAfterExpandOptions',
|
|
82
|
+
/** Before find after distribution hook */
|
|
83
|
+
BeforeFindAfterSetup: 'BeforeFindAfterSetup',
|
|
84
|
+
/** Before init hook */
|
|
85
|
+
BeforeInit: 'BeforeInit',
|
|
86
|
+
/** Before connect hook */
|
|
87
|
+
BeforeConnect: 'BeforeConnect',
|
|
88
|
+
/** Before query hook */
|
|
89
|
+
BeforeQuery: 'BeforeQuery',
|
|
90
|
+
/** Before sync hook */
|
|
91
|
+
BeforeSync: 'BeforeSync',
|
|
92
|
+
// ─────────────────────────────────────────────────────────────────
|
|
93
|
+
// Lifecycle Hooks - After
|
|
94
|
+
// ─────────────────────────────────────────────────────────────────
|
|
95
|
+
/** After create hook */
|
|
96
|
+
AfterCreate: 'AfterCreate',
|
|
97
|
+
/** After bulk create hook */
|
|
98
|
+
AfterBulkCreate: 'AfterBulkCreate',
|
|
99
|
+
/** After update hook */
|
|
100
|
+
AfterUpdate: 'AfterUpdate',
|
|
101
|
+
/** After bulk update hook */
|
|
102
|
+
AfterBulkUpdate: 'AfterBulkUpdate',
|
|
103
|
+
/** After delete hook */
|
|
104
|
+
AfterDelete: 'AfterDelete',
|
|
105
|
+
/** After bulk delete hook */
|
|
106
|
+
AfterBulkDelete: 'AfterBulkDelete',
|
|
107
|
+
/** After find hook */
|
|
108
|
+
AfterFind: 'AfterFind',
|
|
109
|
+
/** After init hook */
|
|
110
|
+
AfterInit: 'AfterInit',
|
|
111
|
+
/** After connect hook */
|
|
112
|
+
AfterConnect: 'AfterConnect',
|
|
113
|
+
/** After query hook */
|
|
114
|
+
AfterQuery: 'AfterQuery',
|
|
115
|
+
/** After sync hook */
|
|
116
|
+
AfterSync: 'AfterSync',
|
|
117
|
+
// ─────────────────────────────────────────────────────────────────
|
|
118
|
+
// Advanced Column Types
|
|
119
|
+
// ─────────────────────────────────────────────────────────────────
|
|
120
|
+
/** Virtual/computed column decorator */
|
|
121
|
+
Virtual: 'Virtual',
|
|
122
|
+
/** Generated column decorator */
|
|
123
|
+
Generated: 'Generated',
|
|
124
|
+
/** Identity/auto-increment decorator */
|
|
125
|
+
Identity: 'Identity',
|
|
126
|
+
// ─────────────────────────────────────────────────────────────────
|
|
127
|
+
// Scopes
|
|
128
|
+
// ─────────────────────────────────────────────────────────────────
|
|
129
|
+
/** Default scope decorator */
|
|
130
|
+
DefaultScope: 'DefaultScope',
|
|
131
|
+
/** Named scopes decorator */
|
|
132
|
+
Scopes: 'Scopes',
|
|
133
|
+
/** Scope decorator (single) */
|
|
134
|
+
Scope: 'Scope',
|
|
135
|
+
// ─────────────────────────────────────────────────────────────────
|
|
136
|
+
// Soft Deletes / Paranoid
|
|
137
|
+
// ─────────────────────────────────────────────────────────────────
|
|
138
|
+
/** Paranoid (soft delete) decorator */
|
|
139
|
+
Paranoid: 'Paranoid',
|
|
140
|
+
// ─────────────────────────────────────────────────────────────────
|
|
141
|
+
// Timestamps
|
|
142
|
+
// ─────────────────────────────────────────────────────────────────
|
|
143
|
+
/** CreatedAt timestamp decorator */
|
|
144
|
+
CreatedAt: 'CreatedAt',
|
|
145
|
+
/** UpdatedAt timestamp decorator */
|
|
146
|
+
UpdatedAt: 'UpdatedAt',
|
|
147
|
+
/** DeletedAt timestamp decorator */
|
|
148
|
+
DeletedAt: 'DeletedAt',
|
|
149
|
+
// ─────────────────────────────────────────────────────────────────
|
|
150
|
+
// Versioning
|
|
151
|
+
// ─────────────────────────────────────────────────────────────────
|
|
152
|
+
/** Version (optimistic locking) decorator */
|
|
153
|
+
Version: 'Version',
|
|
154
|
+
// ─────────────────────────────────────────────────────────────────
|
|
155
|
+
// PostgreSQL Specific
|
|
156
|
+
// ─────────────────────────────────────────────────────────────────
|
|
157
|
+
/** Trigger decorator */
|
|
158
|
+
Trigger: 'Trigger',
|
|
159
|
+
/** Stored procedure decorator */
|
|
160
|
+
Procedure: 'Procedure',
|
|
161
|
+
/** SQL function decorator */
|
|
162
|
+
Function: 'Function',
|
|
163
|
+
/** Function: 'Function' (alias for clarity) */
|
|
164
|
+
SqlFunction: 'SqlFunction',
|
|
165
|
+
/** Sequence decorator */
|
|
166
|
+
Sequence: 'Sequence',
|
|
167
|
+
/** Extension decorator */
|
|
168
|
+
Extension: 'Extension',
|
|
169
|
+
/** Row-level security decorator */
|
|
170
|
+
RowLevelSecurity: 'RowLevelSecurity',
|
|
171
|
+
/** Policy decorator */
|
|
172
|
+
Policy: 'Policy',
|
|
173
|
+
/** Table inheritance decorator */
|
|
174
|
+
Inheritance: 'Inheritance',
|
|
175
|
+
/** Partition decorator (PostgreSQL specific) */
|
|
176
|
+
PartitionPostgres: 'Partition',
|
|
177
|
+
// ─────────────────────────────────────────────────────────────────
|
|
178
|
+
// MySQL/MariaDB Specific
|
|
179
|
+
// ─────────────────────────────────────────────────────────────────
|
|
180
|
+
/** Event decorator (MySQL/MariaDB) */
|
|
181
|
+
Event: 'Event',
|
|
182
|
+
/** Stored routine decorator */
|
|
183
|
+
Routine: 'Routine',
|
|
184
|
+
// ─────────────────────────────────────────────────────────────────
|
|
185
|
+
// SQLite Specific
|
|
186
|
+
// ─────────────────────────────────────────────────────────────────
|
|
187
|
+
/** Foreign table decorator (SQLite FDW) */
|
|
188
|
+
ForeignTable: 'ForeignTable',
|
|
189
|
+
// ─────────────────────────────────────────────────────────────────
|
|
190
|
+
// Views
|
|
191
|
+
// ─────────────────────────────────────────────────────────────────
|
|
192
|
+
/** View decorator */
|
|
193
|
+
View: 'View',
|
|
194
|
+
// ─────────────────────────────────────────────────────────────────
|
|
195
|
+
// Database Settings
|
|
196
|
+
// ─────────────────────────────────────────────────────────────────
|
|
197
|
+
/** Foreign key checks setting decorator */
|
|
198
|
+
ForeignKeyChecks: 'ForeignKeyChecks',
|
|
199
|
+
/** Database setting decorator */
|
|
200
|
+
DatabaseSetting: 'DatabaseSetting',
|
|
201
|
+
// ─────────────────────────────────────────────────────────────────
|
|
202
|
+
// Comment
|
|
203
|
+
// ─────────────────────────────────────────────────────────────────
|
|
204
|
+
/** Comment decorator */
|
|
205
|
+
Comment: 'Comment',
|
|
206
|
+
// ─────────────────────────────────────────────────────────────────
|
|
207
|
+
// Encryption / Security
|
|
208
|
+
// ─────────────────────────────────────────────────────────────────
|
|
209
|
+
/** Secure field decorator */
|
|
210
|
+
Secure: 'Secure',
|
|
211
|
+
/** Secure field decorator (alias) */
|
|
212
|
+
SecureField: 'SecureField',
|
|
213
|
+
// ─────────────────────────────────────────────────────────────────
|
|
214
|
+
// Permissions
|
|
215
|
+
// ─────────────────────────────────────────────────────────────────
|
|
216
|
+
/** Permission decorator */
|
|
217
|
+
Permission: 'Permission',
|
|
218
|
+
/** Can view decorator */
|
|
219
|
+
CanView: 'CanView',
|
|
220
|
+
/** Cannot view decorator */
|
|
221
|
+
CannotView: 'CannotView',
|
|
222
|
+
/** Can write decorator */
|
|
223
|
+
CanWrite: 'CanWrite',
|
|
224
|
+
/** Cannot write decorator */
|
|
225
|
+
CannotWrite: 'CannotWrite',
|
|
226
|
+
// ─────────────────────────────────────────────────────────────────
|
|
227
|
+
// Audit
|
|
228
|
+
// ─────────────────────────────────────────────────────────────────
|
|
229
|
+
/** Audit decorator */
|
|
230
|
+
Audit: 'Audit',
|
|
231
|
+
/** AuditChange decorator */
|
|
232
|
+
AuditChange: 'AuditChange',
|
|
233
|
+
/** AuditLog decorator */
|
|
234
|
+
AuditLog: 'AuditLog',
|
|
235
|
+
// ─────────────────────────────────────────────────────────────────
|
|
236
|
+
// Validation
|
|
237
|
+
// ─────────────────────────────────────────────────────────────────
|
|
238
|
+
/** Validate decorator */
|
|
239
|
+
Validate: 'Validate',
|
|
240
|
+
/** Is decorator (validation rule) */
|
|
241
|
+
Is: 'Is',
|
|
242
|
+
/** IsAlpha decorator */
|
|
243
|
+
IsAlpha: 'IsAlpha',
|
|
244
|
+
/** IsAlphanumeric decorator */
|
|
245
|
+
IsAlphanumeric: 'IsAlphanumeric',
|
|
246
|
+
/** IsNumeric decorator */
|
|
247
|
+
IsNumeric: 'IsNumeric',
|
|
248
|
+
/** IsEmail decorator */
|
|
249
|
+
IsEmail: 'IsEmail',
|
|
250
|
+
/** IsURL decorator */
|
|
251
|
+
IsURL: 'IsURL',
|
|
252
|
+
/** IsIP decorator */
|
|
253
|
+
IsIP: 'IsIP',
|
|
254
|
+
/** IsDate decorator */
|
|
255
|
+
IsDate: 'IsDate',
|
|
256
|
+
/** IsInt decorator */
|
|
257
|
+
IsInt: 'IsInt',
|
|
258
|
+
/** IsFloat decorator */
|
|
259
|
+
IsFloat: 'IsFloat',
|
|
260
|
+
/** IsBoolean decorator */
|
|
261
|
+
IsBoolean: 'IsBoolean',
|
|
262
|
+
/** IsUUID decorator */
|
|
263
|
+
IsUUID: 'IsUUID',
|
|
264
|
+
/** IsJSON decorator */
|
|
265
|
+
IsJSON: 'IsJSON',
|
|
266
|
+
/** IsNull decorator */
|
|
267
|
+
IsNull: 'IsNull',
|
|
268
|
+
/** NotEmpty decorator */
|
|
269
|
+
NotEmpty: 'NotEmpty',
|
|
270
|
+
/** Len decorator (length validation) */
|
|
271
|
+
Len: 'Len',
|
|
272
|
+
/** Min decorator */
|
|
273
|
+
Min: 'Min',
|
|
274
|
+
/** Max decorator */
|
|
275
|
+
Max: 'Max',
|
|
276
|
+
/** IsIn decorator */
|
|
277
|
+
IsIn: 'IsIn',
|
|
278
|
+
/** NotIn decorator */
|
|
279
|
+
NotIn: 'NotIn',
|
|
280
|
+
/** Regexp decorator */
|
|
281
|
+
Regexp: 'Regexp',
|
|
282
|
+
/** NotRegexp decorator */
|
|
283
|
+
NotRegexp: 'NotRegexp',
|
|
284
|
+
/** IsCreditCard decorator */
|
|
285
|
+
IsCreditCard: 'IsCreditCard',
|
|
286
|
+
/** IsISBN decorator */
|
|
287
|
+
IsISBN: 'IsISBN',
|
|
288
|
+
/** IsMobilePhone decorator */
|
|
289
|
+
IsMobilePhone: 'IsMobilePhone',
|
|
290
|
+
/** IsPostalCode decorator */
|
|
291
|
+
IsPostalCode: 'IsPostalCode',
|
|
292
|
+
/** IsCurrency decorator */
|
|
293
|
+
IsCurrency: 'IsCurrency',
|
|
294
|
+
/** IsOctal decorator */
|
|
295
|
+
IsOctal: 'IsOctal',
|
|
296
|
+
/** IsDivisibleBy decorator */
|
|
297
|
+
IsDivisibleBy: 'IsDivisibleBy',
|
|
298
|
+
// ─────────────────────────────────────────────────────────────────
|
|
299
|
+
// Additional Utilities
|
|
300
|
+
// ─────────────────────────────────────────────────────────────────
|
|
301
|
+
/** Index (alias for backward compatibility) */
|
|
302
|
+
IndexAlt: 'Index',
|
|
303
|
+
/** Raw decorator for raw SQL */
|
|
304
|
+
Raw: 'Raw',
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Get all decorator names as an array
|
|
308
|
+
*/
|
|
309
|
+
exports.ALL_DECORATORS = Object.values(exports.ORMDecorators);
|
|
310
|
+
/**
|
|
311
|
+
* Get all model definition decorators
|
|
312
|
+
*/
|
|
313
|
+
exports.MODEL_DECORATORS = [
|
|
314
|
+
exports.ORMDecorators.Table,
|
|
315
|
+
exports.ORMDecorators.Schema,
|
|
316
|
+
exports.ORMDecorators.Column,
|
|
317
|
+
exports.ORMDecorators.PrimaryKey,
|
|
318
|
+
];
|
|
319
|
+
/**
|
|
320
|
+
* Get all constraint decorators
|
|
321
|
+
*/
|
|
322
|
+
exports.CONSTRAINT_DECORATORS = [
|
|
323
|
+
exports.ORMDecorators.Check,
|
|
324
|
+
exports.ORMDecorators.Unique,
|
|
325
|
+
exports.ORMDecorators.Default,
|
|
326
|
+
exports.ORMDecorators.ForeignKey,
|
|
327
|
+
exports.ORMDecorators.Index,
|
|
328
|
+
exports.ORMDecorators.Partition,
|
|
329
|
+
];
|
|
330
|
+
/**
|
|
331
|
+
* Get all association decorators
|
|
332
|
+
*/
|
|
333
|
+
exports.ASSOCIATION_DECORATORS = [
|
|
334
|
+
exports.ORMDecorators.BelongsTo,
|
|
335
|
+
exports.ORMDecorators.HasOne,
|
|
336
|
+
exports.ORMDecorators.HasMany,
|
|
337
|
+
exports.ORMDecorators.BelongsToMany,
|
|
338
|
+
];
|
|
339
|
+
/**
|
|
340
|
+
* Get all hook decorators (before and after)
|
|
341
|
+
*/
|
|
342
|
+
exports.HOOK_DECORATORS = [
|
|
343
|
+
// Before hooks
|
|
344
|
+
exports.ORMDecorators.BeforeCreate,
|
|
345
|
+
exports.ORMDecorators.BeforeBulkCreate,
|
|
346
|
+
exports.ORMDecorators.BeforeUpdate,
|
|
347
|
+
exports.ORMDecorators.BeforeBulkUpdate,
|
|
348
|
+
exports.ORMDecorators.BeforeDelete,
|
|
349
|
+
exports.ORMDecorators.BeforeBulkDelete,
|
|
350
|
+
exports.ORMDecorators.BeforeFind,
|
|
351
|
+
exports.ORMDecorators.BeforeFindAfterExpandOptions,
|
|
352
|
+
exports.ORMDecorators.BeforeFindAfterSetup,
|
|
353
|
+
exports.ORMDecorators.BeforeInit,
|
|
354
|
+
exports.ORMDecorators.BeforeConnect,
|
|
355
|
+
exports.ORMDecorators.BeforeQuery,
|
|
356
|
+
exports.ORMDecorators.BeforeSync,
|
|
357
|
+
// After hooks
|
|
358
|
+
exports.ORMDecorators.AfterCreate,
|
|
359
|
+
exports.ORMDecorators.AfterBulkCreate,
|
|
360
|
+
exports.ORMDecorators.AfterUpdate,
|
|
361
|
+
exports.ORMDecorators.AfterBulkUpdate,
|
|
362
|
+
exports.ORMDecorators.AfterDelete,
|
|
363
|
+
exports.ORMDecorators.AfterBulkDelete,
|
|
364
|
+
exports.ORMDecorators.AfterFind,
|
|
365
|
+
exports.ORMDecorators.AfterInit,
|
|
366
|
+
exports.ORMDecorators.AfterConnect,
|
|
367
|
+
exports.ORMDecorators.AfterQuery,
|
|
368
|
+
exports.ORMDecorators.AfterSync,
|
|
369
|
+
];
|
|
370
|
+
/**
|
|
371
|
+
* Get all validation decorators
|
|
372
|
+
*/
|
|
373
|
+
exports.VALIDATION_DECORATORS = [
|
|
374
|
+
exports.ORMDecorators.Validate,
|
|
375
|
+
exports.ORMDecorators.Is,
|
|
376
|
+
exports.ORMDecorators.IsAlpha,
|
|
377
|
+
exports.ORMDecorators.IsAlphanumeric,
|
|
378
|
+
exports.ORMDecorators.IsNumeric,
|
|
379
|
+
exports.ORMDecorators.IsEmail,
|
|
380
|
+
exports.ORMDecorators.IsURL,
|
|
381
|
+
exports.ORMDecorators.IsIP,
|
|
382
|
+
exports.ORMDecorators.IsDate,
|
|
383
|
+
exports.ORMDecorators.IsInt,
|
|
384
|
+
exports.ORMDecorators.IsFloat,
|
|
385
|
+
exports.ORMDecorators.IsBoolean,
|
|
386
|
+
exports.ORMDecorators.IsUUID,
|
|
387
|
+
exports.ORMDecorators.IsJSON,
|
|
388
|
+
exports.ORMDecorators.IsNull,
|
|
389
|
+
exports.ORMDecorators.NotEmpty,
|
|
390
|
+
exports.ORMDecorators.Len,
|
|
391
|
+
exports.ORMDecorators.Min,
|
|
392
|
+
exports.ORMDecorators.Max,
|
|
393
|
+
exports.ORMDecorators.IsIn,
|
|
394
|
+
exports.ORMDecorators.NotIn,
|
|
395
|
+
exports.ORMDecorators.Regexp,
|
|
396
|
+
exports.ORMDecorators.NotRegexp,
|
|
397
|
+
exports.ORMDecorators.IsCreditCard,
|
|
398
|
+
exports.ORMDecorators.IsISBN,
|
|
399
|
+
exports.ORMDecorators.IsMobilePhone,
|
|
400
|
+
exports.ORMDecorators.IsPostalCode,
|
|
401
|
+
exports.ORMDecorators.IsCurrency,
|
|
402
|
+
exports.ORMDecorators.IsOctal,
|
|
403
|
+
exports.ORMDecorators.IsDivisibleBy,
|
|
404
|
+
];
|
|
405
|
+
/**
|
|
406
|
+
* Get all PostgreSQL-specific decorators
|
|
407
|
+
*/
|
|
408
|
+
exports.POSTGRES_DECORATORS = [
|
|
409
|
+
exports.ORMDecorators.Trigger,
|
|
410
|
+
exports.ORMDecorators.Procedure,
|
|
411
|
+
exports.ORMDecorators.Function,
|
|
412
|
+
exports.ORMDecorators.SqlFunction,
|
|
413
|
+
exports.ORMDecorators.Sequence,
|
|
414
|
+
exports.ORMDecorators.Extension,
|
|
415
|
+
exports.ORMDecorators.RowLevelSecurity,
|
|
416
|
+
exports.ORMDecorators.Policy,
|
|
417
|
+
exports.ORMDecorators.Inheritance,
|
|
418
|
+
];
|
|
419
|
+
/**
|
|
420
|
+
* Get all database setting decorators
|
|
421
|
+
*/
|
|
422
|
+
exports.SETTINGS_DECORATORS = [
|
|
423
|
+
exports.ORMDecorators.ForeignKeyChecks,
|
|
424
|
+
exports.ORMDecorators.DatabaseSetting,
|
|
425
|
+
];
|