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.
Files changed (310) hide show
  1. package/CHANGELOG.md +1111 -0
  2. package/LICENSE +21 -0
  3. package/README.md +573 -0
  4. package/dist/audit/history-query.js +180 -0
  5. package/dist/audit/index.js +23 -0
  6. package/dist/audit/logger.js +236 -0
  7. package/dist/cache/cache-manager.js +84 -0
  8. package/dist/cache/index.js +16 -0
  9. package/dist/cache/redis-cluster-cache.js +557 -0
  10. package/dist/cli.js +2200 -0
  11. package/dist/compliance/audit-trail.js +68 -0
  12. package/dist/compliance/backup-verification.js +685 -0
  13. package/dist/compliance/breach-detector.js +505 -0
  14. package/dist/compliance/consent-record.js +227 -0
  15. package/dist/compliance/consent-versioning.js +331 -0
  16. package/dist/compliance/cross-border-log.js +530 -0
  17. package/dist/compliance/data-classifier.js +258 -0
  18. package/dist/compliance/data-lineage.js +565 -0
  19. package/dist/compliance/data-masker.js +303 -0
  20. package/dist/compliance/data-portability.js +265 -0
  21. package/dist/compliance/data-retention.js +195 -0
  22. package/dist/compliance/dsar-workflow.js +342 -0
  23. package/dist/compliance/field-encryption.js +223 -0
  24. package/dist/compliance/immutable-record.js +148 -0
  25. package/dist/compliance/index.js +260 -0
  26. package/dist/compliance/privacy-impact-assessment.js +364 -0
  27. package/dist/compliance/pseudonymization.js +269 -0
  28. package/dist/compliance/query-firewall.js +1182 -0
  29. package/dist/compliance/rate-limiter.js +580 -0
  30. package/dist/compliance/right-to-erasure.js +117 -0
  31. package/dist/compliance/row-level-security.js +246 -0
  32. package/dist/compliance/security-decorator.js +574 -0
  33. package/dist/compliance/security-monitor.js +525 -0
  34. package/dist/compliance/sensitive-data-discovery.js +476 -0
  35. package/dist/compliance/session-isolation.js +472 -0
  36. package/dist/compliance/tls-enforcer.js +108 -0
  37. package/dist/compliance/worm-storage.js +712 -0
  38. package/dist/connection-manager.js +198 -0
  39. package/dist/connection-pool.js +519 -0
  40. package/dist/decorators/audit.js +136 -0
  41. package/dist/decorators/belongs-to-many.js +115 -0
  42. package/dist/decorators/belongs-to.js +115 -0
  43. package/dist/decorators/check.js +435 -0
  44. package/dist/decorators/collate.js +329 -0
  45. package/dist/decorators/comment.js +205 -0
  46. package/dist/decorators/database-settings.js +236 -0
  47. package/dist/decorators/default.js +244 -0
  48. package/dist/decorators/encryption.js +235 -0
  49. package/dist/decorators/engine.js +97 -0
  50. package/dist/decorators/fk-constraints.js +594 -0
  51. package/dist/decorators/foreign-table.js +136 -0
  52. package/dist/decorators/generated.js +274 -0
  53. package/dist/decorators/has-many.js +127 -0
  54. package/dist/decorators/has-one.js +116 -0
  55. package/dist/decorators/hstore.js +129 -0
  56. package/dist/decorators/index.js +355 -0
  57. package/dist/decorators/json-column.js +83 -0
  58. package/dist/decorators/jsonb.js +101 -0
  59. package/dist/decorators/orm-decorators.js +425 -0
  60. package/dist/decorators/permissions.js +294 -0
  61. package/dist/decorators/procedure.js +210 -0
  62. package/dist/decorators/query-options.js +556 -0
  63. package/dist/decorators/range.js +167 -0
  64. package/dist/decorators/set-column.js +83 -0
  65. package/dist/decorators/spatial.js +114 -0
  66. package/dist/decorators/storage.js +580 -0
  67. package/dist/decorators/timezone.js +512 -0
  68. package/dist/decorators/trigger.js +90 -0
  69. package/dist/decorators/uuid.js +135 -0
  70. package/dist/decorators/view.js +258 -0
  71. package/dist/diagrams/chen-diagram.js +354 -0
  72. package/dist/diagrams/class-diagram.js +384 -0
  73. package/dist/diagrams/dependency-diagram.js +432 -0
  74. package/dist/diagrams/er-diagram.js +605 -0
  75. package/dist/diagrams/flow-diagram.js +394 -0
  76. package/dist/diagrams/gantt-diagram.js +411 -0
  77. package/dist/diagrams/index-diagram.js +353 -0
  78. package/dist/diagrams/index.js +184 -0
  79. package/dist/diagrams/migration-diagram.js +316 -0
  80. package/dist/diagrams/model-diagram.js +616 -0
  81. package/dist/diagrams/package-diagram.js +376 -0
  82. package/dist/diagrams/palette.js +85 -0
  83. package/dist/diagrams/relational-diagram.js +455 -0
  84. package/dist/diagrams/schemadoc-diagram.js +309 -0
  85. package/dist/diagrams/sequence-diagram.js +307 -0
  86. package/dist/diagrams/state-diagram.js +344 -0
  87. package/dist/diagrams/svg-dom.js +111 -0
  88. package/dist/diagrams/tree-diagram.js +250 -0
  89. package/dist/dialects/clickhouse/index.js +1742 -0
  90. package/dist/dialects/cockroachdb/index.js +4677 -0
  91. package/dist/dialects/cratedb/index.js +441 -0
  92. package/dist/dialects/databricks/index.js +517 -0
  93. package/dist/dialects/db2/index.js +2225 -0
  94. package/dist/dialects/dialect.js +720 -0
  95. package/dist/dialects/duckdb/index.js +2014 -0
  96. package/dist/dialects/exasol/index.js +357 -0
  97. package/dist/dialects/firebird/index.js +495 -0
  98. package/dist/dialects/greenplum/index.js +457 -0
  99. package/dist/dialects/hana/index.js +1741 -0
  100. package/dist/dialects/mariadb/index.js +3590 -0
  101. package/dist/dialects/mssql/index.js +2296 -0
  102. package/dist/dialects/mysql/index.js +4058 -0
  103. package/dist/dialects/oracle/index.js +2999 -0
  104. package/dist/dialects/postgres/index.js +5319 -0
  105. package/dist/dialects/query-stream-helper.js +152 -0
  106. package/dist/dialects/questdb/index.js +433 -0
  107. package/dist/dialects/redshift/index.js +2277 -0
  108. package/dist/dialects/singlestore/index.js +354 -0
  109. package/dist/dialects/snowflake/index.js +2082 -0
  110. package/dist/dialects/spanner/index.js +1768 -0
  111. package/dist/dialects/sqlite/index.js +3382 -0
  112. package/dist/dialects/tidb/index.js +377 -0
  113. package/dist/dialects/timescaledb/index.js +164 -0
  114. package/dist/dialects/trino/index.js +420 -0
  115. package/dist/dialects/turso/index.js +227 -0
  116. package/dist/dialects/vertica/index.js +317 -0
  117. package/dist/dialects/yugabytedb/index.js +424 -0
  118. package/dist/errors/index.js +472 -0
  119. package/dist/errors/utils.js +340 -0
  120. package/dist/errors.js +21 -0
  121. package/dist/extensions/catalog/cloud-warehouse-features.js +207 -0
  122. package/dist/extensions/catalog/mssql-features.js +147 -0
  123. package/dist/extensions/catalog/mysql-mariadb-plugins.js +229 -0
  124. package/dist/extensions/catalog/oracle-db2-features.js +196 -0
  125. package/dist/extensions/catalog/postgres-extensions.js +516 -0
  126. package/dist/extensions/index.js +71 -0
  127. package/dist/extensions/types.js +13 -0
  128. package/dist/foreign-data.js +173 -0
  129. package/dist/hooks/hooks-manager.js +350 -0
  130. package/dist/hooks/index.js +37 -0
  131. package/dist/index.js +463 -0
  132. package/dist/logging.js +335 -0
  133. package/dist/migrations/index.js +40 -0
  134. package/dist/migrations/migration.js +196 -0
  135. package/dist/migrations/migrator.js +411 -0
  136. package/dist/migrations/prormmigration.js +275 -0
  137. package/dist/migrations/query-interface.js +435 -0
  138. package/dist/migrations/seeder.js +353 -0
  139. package/dist/models/associations.js +852 -0
  140. package/dist/models/constraints.js +288 -0
  141. package/dist/models/data-types.js +2518 -0
  142. package/dist/models/decorators.js +445 -0
  143. package/dist/models/index.js +33 -0
  144. package/dist/models/indexes.js +531 -0
  145. package/dist/models/methods.js +382 -0
  146. package/dist/models/model-manager.js +103 -0
  147. package/dist/models/model.js +5349 -0
  148. package/dist/models/operators.js +67 -0
  149. package/dist/models/scopes.js +189 -0
  150. package/dist/models/typescript-types.js +26 -0
  151. package/dist/nosql/aerospike/index.js +205 -0
  152. package/dist/nosql/allegrograph/index.js +169 -0
  153. package/dist/nosql/arangodb/index.js +364 -0
  154. package/dist/nosql/azure-blob/index.js +206 -0
  155. package/dist/nosql/beanstalkd/index.js +231 -0
  156. package/dist/nosql/beequeue/index.js +210 -0
  157. package/dist/nosql/bigchaindb/index.js +195 -0
  158. package/dist/nosql/bigtable/index.js +224 -0
  159. package/dist/nosql/blazegraph/index.js +173 -0
  160. package/dist/nosql/bullmq/index.js +191 -0
  161. package/dist/nosql/cassandra/index.js +174 -0
  162. package/dist/nosql/chroma/index.js +190 -0
  163. package/dist/nosql/cloudflare-kv/index.js +220 -0
  164. package/dist/nosql/coherence/index.js +200 -0
  165. package/dist/nosql/cosmosdb/index.js +157 -0
  166. package/dist/nosql/couchbase/index.js +213 -0
  167. package/dist/nosql/dax/index.js +212 -0
  168. package/dist/nosql/deno-kv/index.js +206 -0
  169. package/dist/nosql/dgraph/index.js +171 -0
  170. package/dist/nosql/doris/index.js +169 -0
  171. package/dist/nosql/druid/index.js +162 -0
  172. package/dist/nosql/dynamodb/index.js +937 -0
  173. package/dist/nosql/elasticsearch/index.js +377 -0
  174. package/dist/nosql/etcd/index.js +502 -0
  175. package/dist/nosql/eventhubs/index.js +213 -0
  176. package/dist/nosql/eventstore/index.js +254 -0
  177. package/dist/nosql/faunadb/index.js +188 -0
  178. package/dist/nosql/firestore/index.js +177 -0
  179. package/dist/nosql/fluree/index.js +148 -0
  180. package/dist/nosql/fuseki/index.js +170 -0
  181. package/dist/nosql/gcs/index.js +172 -0
  182. package/dist/nosql/gearman/index.js +160 -0
  183. package/dist/nosql/geode/index.js +196 -0
  184. package/dist/nosql/graphdb/index.js +169 -0
  185. package/dist/nosql/graylog/index.js +188 -0
  186. package/dist/nosql/gridgain/index.js +171 -0
  187. package/dist/nosql/hazelcast/index.js +162 -0
  188. package/dist/nosql/hbase/index.js +230 -0
  189. package/dist/nosql/ignite/index.js +173 -0
  190. package/dist/nosql/immudb/index.js +184 -0
  191. package/dist/nosql/index.js +232 -0
  192. package/dist/nosql/infinispan/index.js +200 -0
  193. package/dist/nosql/influxdb/index.js +0 -0
  194. package/dist/nosql/kafka/index.js +234 -0
  195. package/dist/nosql/keyspaces/index.js +189 -0
  196. package/dist/nosql/kinesis/index.js +253 -0
  197. package/dist/nosql/leveldb/index.js +153 -0
  198. package/dist/nosql/lmdb/index.js +160 -0
  199. package/dist/nosql/loki/index.js +201 -0
  200. package/dist/nosql/marklogic/index.js +204 -0
  201. package/dist/nosql/materialize/index.js +145 -0
  202. package/dist/nosql/meilisearch/index.js +154 -0
  203. package/dist/nosql/memcached/index.js +223 -0
  204. package/dist/nosql/milvus/index.js +410 -0
  205. package/dist/nosql/minio/index.js +265 -0
  206. package/dist/nosql/momento/index.js +179 -0
  207. package/dist/nosql/mongodb/index.js +461 -0
  208. package/dist/nosql/nats/index.js +247 -0
  209. package/dist/nosql/nedb/index.js +164 -0
  210. package/dist/nosql/neo4j/index.js +450 -0
  211. package/dist/nosql/neptune/index.js +470 -0
  212. package/dist/nosql/nsq/index.js +200 -0
  213. package/dist/nosql/opensearch/index.js +186 -0
  214. package/dist/nosql/orientdb/index.js +175 -0
  215. package/dist/nosql/papertrail/index.js +200 -0
  216. package/dist/nosql/pinecone/index.js +0 -0
  217. package/dist/nosql/pinot/index.js +133 -0
  218. package/dist/nosql/pouchdb/index.js +172 -0
  219. package/dist/nosql/prometheus/index.js +174 -0
  220. package/dist/nosql/provendb/index.js +147 -0
  221. package/dist/nosql/pubsub/index.js +187 -0
  222. package/dist/nosql/pulsar/index.js +232 -0
  223. package/dist/nosql/qdrant/index.js +295 -0
  224. package/dist/nosql/qldb/index.js +192 -0
  225. package/dist/nosql/r2/index.js +281 -0
  226. package/dist/nosql/rabbitmq/index.js +237 -0
  227. package/dist/nosql/ravendb/index.js +175 -0
  228. package/dist/nosql/redis/index.js +607 -0
  229. package/dist/nosql/redpanda/index.js +237 -0
  230. package/dist/nosql/resque/index.js +203 -0
  231. package/dist/nosql/rethinkdb/index.js +232 -0
  232. package/dist/nosql/rocksdb/index.js +152 -0
  233. package/dist/nosql/rockset/index.js +126 -0
  234. package/dist/nosql/s3/index.js +298 -0
  235. package/dist/nosql/scylladb/index.js +178 -0
  236. package/dist/nosql/signoz/index.js +227 -0
  237. package/dist/nosql/sns/index.js +201 -0
  238. package/dist/nosql/solr/index.js +231 -0
  239. package/dist/nosql/splunk/index.js +227 -0
  240. package/dist/nosql/sqs/index.js +246 -0
  241. package/dist/nosql/stardog/index.js +169 -0
  242. package/dist/nosql/starrocks/index.js +170 -0
  243. package/dist/nosql/store.js +2 -0
  244. package/dist/nosql/sumologic/index.js +213 -0
  245. package/dist/nosql/surrealdb/index.js +179 -0
  246. package/dist/nosql/terminusdb/index.js +151 -0
  247. package/dist/nosql/tigergraph/index.js +469 -0
  248. package/dist/nosql/typesense/index.js +148 -0
  249. package/dist/nosql/unqlite/index.js +157 -0
  250. package/dist/nosql/upstash/index.js +167 -0
  251. package/dist/nosql/vercel-kv/index.js +166 -0
  252. package/dist/nosql/victoriametrics/index.js +213 -0
  253. package/dist/nosql/virtuoso/index.js +169 -0
  254. package/dist/nosql/weaviate/index.js +276 -0
  255. package/dist/operators/index.js +108 -0
  256. package/dist/operators.js +2690 -0
  257. package/dist/prisma-migrate/index.js +38 -0
  258. package/dist/prisma-migrate/migration-generator.js +125 -0
  259. package/dist/prisma-migrate/model-generator.js +172 -0
  260. package/dist/prisma-migrate/relations.js +100 -0
  261. package/dist/prisma-migrate/schema-parser.js +167 -0
  262. package/dist/prisma-migrate/type-mapper.js +40 -0
  263. package/dist/prorm.js +6832 -0
  264. package/dist/query-builders/cte-builder.js +80 -0
  265. package/dist/query-builders/functions/aggregate.js +390 -0
  266. package/dist/query-builders/functions/conditional.js +503 -0
  267. package/dist/query-builders/functions/datetime.js +695 -0
  268. package/dist/query-builders/functions/fulltext.js +439 -0
  269. package/dist/query-builders/functions/index.js +93 -0
  270. package/dist/query-builders/functions/json.js +427 -0
  271. package/dist/query-builders/functions/math.js +399 -0
  272. package/dist/query-builders/functions/string.js +518 -0
  273. package/dist/query-builders/functions/window.js +328 -0
  274. package/dist/query-builders/include-builder.js +323 -0
  275. package/dist/query-builders/index-expression-builder.js +242 -0
  276. package/dist/query-builders/index.js +161 -0
  277. package/dist/query-builders/insert-builder.js +164 -0
  278. package/dist/query-builders/model-helpers.js +38 -0
  279. package/dist/query-builders/order-limit-builder.js +239 -0
  280. package/dist/query-builders/sql-compiler.js +2040 -0
  281. package/dist/query-builders/subquery-builder.js +152 -0
  282. package/dist/query-builders/update-builder.js +182 -0
  283. package/dist/query-builders/view-builder.js +218 -0
  284. package/dist/query-builders/where-builder.js +1532 -0
  285. package/dist/query-interface.js +622 -0
  286. package/dist/query-optimizers/batch-optimizer.js +426 -0
  287. package/dist/query-optimizers/explain-plans.js +415 -0
  288. package/dist/query-optimizers/index.js +51 -0
  289. package/dist/query-optimizers/prepared-statement-cache.js +423 -0
  290. package/dist/query-optimizers/query-hints.js +438 -0
  291. package/dist/query-optimizers/query-optimizer.js +278 -0
  292. package/dist/query-optimizers/slow-query-logger.js +271 -0
  293. package/dist/replica-manager.js +507 -0
  294. package/dist/schema/index.js +15 -0
  295. package/dist/schema/migration-generator.js +374 -0
  296. package/dist/schema/schema-differ.js +549 -0
  297. package/dist/schema/types.js +6 -0
  298. package/dist/sql-constants.js +300 -0
  299. package/dist/sqlite-advanced.js +1047 -0
  300. package/dist/streams/index.js +12 -0
  301. package/dist/streams/transforms.js +178 -0
  302. package/dist/transaction.js +456 -0
  303. package/dist/types/index.js +180 -0
  304. package/dist/user-management.js +127 -0
  305. package/dist/utils/date.js +300 -0
  306. package/dist/utils/index.js +1079 -0
  307. package/dist/utils/string.js +161 -0
  308. package/dist/validators/index.js +19 -0
  309. package/dist/validators/validator.js +911 -0
  310. 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
+ ];