ts-prorm-orm 1.1.0 → 1.2.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 (460) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +711 -0
  239. package/dist/index.js +19 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -0,0 +1,169 @@
1
+ /**
2
+ * ConsentVersioning
3
+ *
4
+ * Tracks consent history with timestamps for legal audit compliance.
5
+ * Provides version control for consent records with full history tracking.
6
+ *
7
+ * Supports compliance frameworks:
8
+ * GDPR (Art 6, 7, 9), CCPA/CPRA, LGPD (Brazil), PDPA (Thailand),
9
+ * PDPA (Singapore, Philippines, Malaysia, Indonesia, Vietnam),
10
+ * PIPL (China), PIPA (South Korea), and 60+ others.
11
+ *
12
+ * Usage:
13
+ * // Initialize (creates consent_versions table):
14
+ * await ConsentVersioning.initialize(prorm);
15
+ *
16
+ * // Record consent with version tracking:
17
+ * await ConsentVersioning.recordConsent(
18
+ * 'user-123',
19
+ * 'marketing_emails',
20
+ * true,
21
+ * '2.1'
22
+ * );
23
+ *
24
+ * // Get full history for audit:
25
+ * const history = await ConsentVersioning.getConsentHistory('user-123', 'marketing_emails');
26
+ *
27
+ * // Get current consent state:
28
+ * const current = await ConsentVersioning.getCurrentConsent('user-123', 'marketing_emails');
29
+ *
30
+ * // Revoke consent:
31
+ * await ConsentVersioning.revokeConsent('user-123', 'marketing_emails');
32
+ *
33
+ * // Validate consent is still valid:
34
+ * const isValid = await ConsentVersioning.validateConsent('user-123', 'marketing_emails');
35
+ */
36
+ export type ConsentType = string;
37
+ export interface ConsentVersion {
38
+ id: number;
39
+ userId: string;
40
+ consentType: string;
41
+ granted: boolean;
42
+ version: string;
43
+ grantedAt: Date;
44
+ revokedAt: Date | null;
45
+ expiresAt: Date | null;
46
+ metadata: Record<string, any> | null;
47
+ ipAddress: string | null;
48
+ userAgent: string | null;
49
+ createdAt: Date;
50
+ updatedAt: Date;
51
+ }
52
+ export interface ConsentHistoryOptions {
53
+ /** Sort order for history records */
54
+ order?: 'ASC' | 'DESC';
55
+ /** Maximum number of records to return */
56
+ limit?: number;
57
+ /** Include only records after this date */
58
+ since?: Date;
59
+ /** Include only records before this date */
60
+ until?: Date;
61
+ }
62
+ export interface RecordConsentOptions {
63
+ /** IP address of the consenting user */
64
+ ipAddress?: string;
65
+ /** User agent string */
66
+ userAgent?: string;
67
+ /** Additional metadata */
68
+ metadata?: Record<string, any>;
69
+ /** Expiration date for time-limited consent */
70
+ expiresAt?: Date;
71
+ }
72
+ /**
73
+ * ConsentVersioning class for tracking consent history with version control.
74
+ * Provides methods for recording, retrieving, and validating consent records.
75
+ */
76
+ export declare class ConsentVersioning {
77
+ /**
78
+ * Initialize the ConsentVersioning model and sync the table.
79
+ * Call once at application startup.
80
+ *
81
+ * @param prorm - The Prorm instance
82
+ * @param tableName - Override the default table name 'consent_versions'
83
+ */
84
+ static initialize(prorm: any, tableName?: string): Promise<void>;
85
+ private static requireModel;
86
+ /**
87
+ * Record a new consent event with version tracking.
88
+ * Creates a new version record for each consent change.
89
+ *
90
+ * @param userId - Unique identifier of the data subject
91
+ * @param consentType - Type of consent (e.g. 'marketing_emails')
92
+ * @param granted - Whether consent is granted (true) or revoked (false)
93
+ * @param version - Privacy notice version at time of recording
94
+ * @param options - Additional options
95
+ * @returns The created consent version record
96
+ */
97
+ static recordConsent(userId: string, consentType: string, granted: boolean, version: string, options?: RecordConsentOptions): Promise<ConsentVersion>;
98
+ /**
99
+ * Get the full consent history for a user and consent type.
100
+ * Returns all version records in chronological order.
101
+ *
102
+ * @param userId - Unique identifier of the data subject
103
+ * @param consentType - Type of consent to query
104
+ * @param options - History options (order, limit, date filters)
105
+ * @returns Array of consent version records
106
+ */
107
+ static getConsentHistory(userId: string, consentType: string, options?: ConsentHistoryOptions): Promise<ConsentVersion[]>;
108
+ /**
109
+ * Get the current consent state for a user and consent type.
110
+ * Returns the most recent consent record (granted or revoked).
111
+ *
112
+ * @param userId - Unique identifier of the data subject
113
+ * @param consentType - Type of consent to query
114
+ * @returns The current consent version record or null if none exists
115
+ */
116
+ static getCurrentConsent(userId: string, consentType: string): Promise<ConsentVersion | null>;
117
+ /**
118
+ * Revoke consent for a user and consent type.
119
+ * Creates a new version record with granted = false.
120
+ *
121
+ * @param userId - Unique identifier of the data subject
122
+ * @param consentType - Type of consent to revoke
123
+ * @param options - Additional options (metadata, ipAddress, etc.)
124
+ * @returns The created revocation record
125
+ */
126
+ static revokeConsent(userId: string, consentType: string, options?: RecordConsentOptions): Promise<ConsentVersion>;
127
+ /**
128
+ * Validate whether consent is currently valid (granted and not expired).
129
+ *
130
+ * @param userId - Unique identifier of the data subject
131
+ * @param consentType - Type of consent to validate
132
+ * @returns true if consent is currently valid, false otherwise
133
+ */
134
+ static validateConsent(userId: string, consentType: string): Promise<boolean>;
135
+ /**
136
+ * Get all active (granted and not expired) consents for a user.
137
+ *
138
+ * @param userId - Unique identifier of the data subject
139
+ * @returns Array of active consent version records
140
+ */
141
+ static getActiveConsents(userId: string): Promise<ConsentVersion[]>;
142
+ /**
143
+ * Get all users who have granted consent for a specific consent type.
144
+ * Useful for compliance audits and marketing campaigns.
145
+ *
146
+ * @param consentType - Type of consent to query
147
+ * @returns Array of user IDs with active consent
148
+ */
149
+ static getConsentedUsers(consentType: string): Promise<string[]>;
150
+ /**
151
+ * Get consent by specific version.
152
+ *
153
+ * @param userId - Unique identifier of the data subject
154
+ * @param consentType - Type of consent to query
155
+ * @param version - Specific version to retrieve
156
+ * @returns The consent version record or null if not found
157
+ */
158
+ static getConsentByVersion(userId: string, consentType: string, version: string): Promise<ConsentVersion | null>;
159
+ /**
160
+ * Re-grant consent (creates new version after revocation).
161
+ *
162
+ * @param userId - Unique identifier of the data subject
163
+ * @param consentType - Type of consent to re-grant
164
+ * @param version - Current privacy notice version
165
+ * @param options - Additional options
166
+ * @returns The created consent record
167
+ */
168
+ static reGrantConsent(userId: string, consentType: string, version: string, options?: RecordConsentOptions): Promise<ConsentVersion>;
169
+ }
@@ -0,0 +1,254 @@
1
+ /**
2
+ * CrossBorderLog
3
+ *
4
+ * Logs when data crosses geo boundaries, tracking data transfers between
5
+ * regions/countries. Required for GDPR, PIPL, and DPDPA India compliance.
6
+ *
7
+ * Covers ~30 compliance frameworks including:
8
+ * GDPR Art 44-49, PIPL, DPDPA India, CCPA, LGPD Brazil, POPIA South Africa,
9
+ * PDPA Thailand, APPI Japan, and cross-border transfer requirements.
10
+ *
11
+ * Usage:
12
+ * // Initialize tracking on a model:
13
+ * CrossBorderLog.enable(prorm, User);
14
+ *
15
+ * // Log a cross-border transfer:
16
+ * await CrossBorderLog.logTransfer('EU', 'US', 'PII', userRecords);
17
+ *
18
+ * // Get transfer history for a record:
19
+ * const history = await CrossBorderLog.getTransferHistory(User, userId);
20
+ *
21
+ * // Check if transfer is allowed:
22
+ * const allowed = await CrossBorderLog.checkTransferAllowed('CN', 'US');
23
+ *
24
+ * // Configure regions for compliance:
25
+ * CrossBorderLog.configureRegions({
26
+ * 'EU': { adequateProtection: true, regulations: ['GDPR'] },
27
+ * 'US': { adequateProtection: false, regulations: ['CCPA'] },
28
+ * });
29
+ */
30
+ import { ModelStatic, Prorm } from '../prorm';
31
+ /** Transfer status */
32
+ export type TransferStatus = 'pending' | 'completed' | 'blocked' | 'reviewed';
33
+ /** Data type being transferred */
34
+ export type DataTypeCategory = 'PII' | 'PHI' | 'PCI' | 'FINANCIAL' | 'BIOMETRIC' | 'SENSITIVE' | 'GENERAL';
35
+ /** Region code (ISO 3166-1 alpha-2 or custom) */
36
+ export type RegionCode = string;
37
+ /** A transfer record stored in the database */
38
+ export interface TransferRecord {
39
+ /** Unique identifier */
40
+ id: number;
41
+ /** Record ID being transferred */
42
+ recordId: string | number;
43
+ /** Table/model name */
44
+ tableName: string;
45
+ /** Source region code */
46
+ sourceRegion: RegionCode;
47
+ /** Target region code */
48
+ targetRegion: RegionCode;
49
+ /** Data category type */
50
+ dataType: DataTypeCategory;
51
+ /** Number of records transferred */
52
+ recordCount: number;
53
+ /** Transfer status */
54
+ status: TransferStatus;
55
+ /** Transfer timestamp */
56
+ transferredAt: Date;
57
+ /** Who initiated the transfer */
58
+ initiatedBy?: string | number;
59
+ /** Purpose of transfer */
60
+ purpose?: string;
61
+ /** Legal basis for transfer */
62
+ legalBasis?: string;
63
+ /** Additional metadata */
64
+ metadata?: Record<string, any>;
65
+ /** Created at timestamp */
66
+ createdAt: Date;
67
+ /** Updated at timestamp */
68
+ updatedAt: Date;
69
+ }
70
+ /** Configuration for a region */
71
+ export interface RegionConfig {
72
+ /** Whether the region has adequate data protection */
73
+ adequateProtection: boolean;
74
+ /** Regulatory frameworks applicable */
75
+ regulations: string[];
76
+ /** Additional restrictions */
77
+ restrictions?: string[];
78
+ /** Custom requirements */
79
+ requirements?: Record<string, any>;
80
+ }
81
+ /** Options for CrossBorderLog.enable() */
82
+ export interface TransferOptions {
83
+ /** Custom table name for transfer logs. Default: 'CrossBorderTransfers' */
84
+ tableName?: string;
85
+ /** Function to get current user ID */
86
+ getUserId?: () => string | number | undefined;
87
+ /** Function to get IP address */
88
+ getIpAddress?: () => string | undefined;
89
+ /** Auto-log all cross-region queries. Default: true */
90
+ autoLog?: boolean;
91
+ /** Require approval for specific transfers */
92
+ requireApproval?: (source: RegionCode, target: RegionCode, dataType: DataTypeCategory) => boolean;
93
+ }
94
+ interface TransferConfig {
95
+ model: any;
96
+ prorm: Prorm;
97
+ options: Required<TransferOptions>;
98
+ transferModel: ModelStatic<any>;
99
+ }
100
+ export declare class CrossBorderLog {
101
+ /**
102
+ * Enable cross-border transfer logging on a model.
103
+ * Creates necessary tables and registers hooks.
104
+ *
105
+ * @param prorm - The Prorm instance
106
+ * @param model - The model class to track
107
+ * @param options - Optional configuration
108
+ */
109
+ static enable(prorm: any, model: any, options?: TransferOptions): void;
110
+ /**
111
+ * Apply hooks to a model for automatic transfer logging.
112
+ * Called automatically by enable() when autoLog is true.
113
+ *
114
+ * @param model - The model class
115
+ * @param config - The transfer configuration
116
+ */
117
+ static applyHooks(model: any, config?: TransferConfig): void;
118
+ /**
119
+ * Configure custom region settings.
120
+ * Merges with default region configs.
121
+ *
122
+ * @param regions - Map of region codes to their configurations
123
+ */
124
+ static configureRegions(regions: Record<RegionCode, RegionConfig>): void;
125
+ /**
126
+ * Get region configuration.
127
+ *
128
+ * @param regionCode - The region code
129
+ */
130
+ static getRegionConfig(regionCode: RegionCode): RegionConfig | undefined;
131
+ /**
132
+ * Log a cross-border data transfer.
133
+ *
134
+ * @param sourceRegion - Source region code (e.g., 'EU', 'US')
135
+ * @param targetRegion - Target region code
136
+ * @param dataType - Category of data being transferred
137
+ * @param records - Record IDs or array of record data
138
+ * @param options - Additional transfer details
139
+ */
140
+ static logTransfer(sourceRegion: RegionCode, targetRegion: RegionCode, dataType: DataTypeCategory, records: any[], options?: {
141
+ recordId?: string | number;
142
+ tableName?: string;
143
+ initiatedBy?: string | number;
144
+ purpose?: string;
145
+ legalBasis?: string;
146
+ status?: TransferStatus;
147
+ metadata?: Record<string, any>;
148
+ }): Promise<TransferRecord>;
149
+ /**
150
+ * Get transfer history for a specific record.
151
+ *
152
+ * @param model - The model class
153
+ * @param recordId - The record ID to get history for
154
+ */
155
+ static getTransferHistory(model: any, recordId: string | number): Promise<TransferRecord[]>;
156
+ /**
157
+ * Get all transfer records for a model.
158
+ *
159
+ * @param model - The model class
160
+ * @param options - Filter options (source, target, status, date range)
161
+ */
162
+ static getAllTransfers(model: any, options?: {
163
+ sourceRegion?: RegionCode;
164
+ targetRegion?: RegionCode;
165
+ dataType?: DataTypeCategory;
166
+ status?: TransferStatus;
167
+ startDate?: Date;
168
+ endDate?: Date;
169
+ limit?: number;
170
+ offset?: number;
171
+ }): Promise<TransferRecord[]>;
172
+ /**
173
+ * Check if a cross-border transfer is allowed.
174
+ * Evaluates based on source/target region configurations.
175
+ *
176
+ * @param sourceRegion - Source region code
177
+ * @param targetRegion - Target region code
178
+ * @param dataType - Optional data type for additional checks
179
+ */
180
+ static checkTransferAllowed(sourceRegion: RegionCode, targetRegion: RegionCode, dataType?: DataTypeCategory): Promise<{
181
+ allowed: boolean;
182
+ reason?: string;
183
+ requiresReview?: boolean;
184
+ regulations?: string[];
185
+ }>;
186
+ /**
187
+ * Get all regions with their configurations.
188
+ */
189
+ static listRegions(): Array<{
190
+ code: RegionCode;
191
+ config: RegionConfig;
192
+ }>;
193
+ /**
194
+ * Get transfer model for a model.
195
+ *
196
+ * @param model - The model class
197
+ */
198
+ static getTransferModel(model: any): ModelStatic<any> | undefined;
199
+ /**
200
+ * Disable transfer logging for a model.
201
+ *
202
+ * @param model - The model class
203
+ */
204
+ static disable(model: any): void;
205
+ /**
206
+ * List all models with transfer logging enabled.
207
+ */
208
+ static listTrackedModels(): Array<{
209
+ modelName: string;
210
+ options: TransferOptions;
211
+ }>;
212
+ /**
213
+ * Check if a model has transfer logging enabled.
214
+ *
215
+ * @param model - The model class
216
+ */
217
+ static isEnabled(model: any): boolean;
218
+ /**
219
+ * Reset all custom region configurations to defaults.
220
+ */
221
+ static resetRegions(): void;
222
+ }
223
+ /**
224
+ * Get all transfers for compliance reporting.
225
+ *
226
+ * @param prorm - The Prorm instance
227
+ * @param options - Filter options
228
+ */
229
+ export declare function getComplianceTransfers(prorm: any, options?: {
230
+ startDate?: Date;
231
+ endDate?: Date;
232
+ regions?: RegionCode[];
233
+ dataTypes?: DataTypeCategory[];
234
+ }): Promise<TransferRecord[]>;
235
+ /**
236
+ * Generate a compliance report for cross-border transfers.
237
+ *
238
+ * @param prorm - The Prorm instance
239
+ * @param options - Report options
240
+ */
241
+ export declare function generateTransferReport(prorm: any, options?: {
242
+ startDate?: Date;
243
+ endDate?: Date;
244
+ groupByRegion?: boolean;
245
+ }): Promise<{
246
+ summary: {
247
+ totalTransfers: number;
248
+ uniqueRegions: number;
249
+ dataTypes: Record<DataTypeCategory, number>;
250
+ };
251
+ byRegion?: Record<string, any>;
252
+ transfers: TransferRecord[];
253
+ }>;
254
+ export {};
@@ -0,0 +1,127 @@
1
+ /**
2
+ * DataClassifier
3
+ *
4
+ * Tags model fields with sensitivity classifications (PII, PHI, PCI, etc.)
5
+ * to enable other compliance classes to auto-identify sensitive data.
6
+ * Stores classifications in model metadata for runtime discovery.
7
+ *
8
+ * Covers ~25 compliance frameworks including:
9
+ * NIST CSF, NIST SP 800-122, FIPS 199, ISO 29101, China Data Security Law,
10
+ * PIPL, AI Act EU, GDPR Art 25/30/32, and data classification requirements.
11
+ *
12
+ * Usage:
13
+ * // Tag fields with sensitivity levels:
14
+ * @Classify('PII')
15
+ * @FieldClassification('email', 'PII')
16
+ * @FieldClassification('ssn', 'PHI') // PHI = Personal Health Information
17
+ * @FieldClassification('creditCard', 'PCI')
18
+ * @FieldClassification('salary', 'CONFIDENTIAL')
19
+ * class User extends Model { ... }
20
+ *
21
+ * // Query classifications:
22
+ * const fields = DataClassifier.getPIIFields(User);
23
+ * const classification = DataClassifier.getClassification(User, 'email');
24
+ * const all = DataClassifier.getClassifications(User);
25
+ *
26
+ * // Auto-discover fields by name patterns:
27
+ * DataClassifier.autoDiscover(User, ['ssn', 'social', 'dob', 'card', 'password']);
28
+ */
29
+ export type SensitivityLevel = 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL' | 'SECRET' | 'TOP_SECRET';
30
+ export type DataCategory = 'PII' | 'PHI' | 'PCI' | 'PCI_PAN' | 'FINANCIAL' | 'HEALTH' | 'BIOMETRIC' | 'CUI' | 'SENSITIVE';
31
+ export interface ClassificationMetadata {
32
+ /** The classification level */
33
+ level: SensitivityLevel;
34
+ /** The data category */
35
+ category: DataCategory;
36
+ /** Whether this field is a unique identifier */
37
+ isIdentifier?: boolean;
38
+ /** Whether this field can be used in logs/analytics */
39
+ canLog?: boolean;
40
+ /** Regulatory references */
41
+ regulations?: string[];
42
+ /** Free-form description */
43
+ description?: string;
44
+ }
45
+ /**
46
+ * Classify the entire model (applies to all fields, use field-level for specifics).
47
+ *
48
+ * @Classify('CONFIDENTIAL')
49
+ * class FinancialRecord extends Model { ... }
50
+ */
51
+ export declare function Classify(level: SensitivityLevel): (target: Function) => void;
52
+ /**
53
+ * Classify a specific field.
54
+ *
55
+ * @FieldClassification('email', 'PII')
56
+ * @FieldClassification('ssn', 'PHI', { level: 'SECRET', regulations: ['HIPAA'] })
57
+ * @FieldClassification('creditCard', 'PCI_PAN', { level: 'TOP_SECRET' })
58
+ */
59
+ export declare function FieldClassification(field: string, category: DataCategory, options?: Partial<ClassificationMetadata>): (target: Function) => void;
60
+ /**
61
+ * Get the classification for a specific field.
62
+ */
63
+ export declare function getClassification(Model: any, field: string): ClassificationMetadata | undefined;
64
+ /**
65
+ * Get all classifications for a model.
66
+ */
67
+ export declare function getClassificationsForModel(Model: any): Map<string, ClassificationMetadata>;
68
+ /**
69
+ * Get all fields with a specific category (e.g., all PII fields).
70
+ */
71
+ export declare function getFieldsByCategory(Model: any, category: DataCategory): string[];
72
+ /**
73
+ * Convenience: get all PII (Personally Identifiable Information) fields.
74
+ */
75
+ export declare function getPIIFields(Model: any): string[];
76
+ /**
77
+ * Convenience: get all PHI (Protected Health Information) fields.
78
+ */
79
+ export declare function getPHIFields(Model: any): string[];
80
+ /**
81
+ * Convenience: get all PCI (Payment Card Industry) fields.
82
+ */
83
+ export declare function getPCIFields(Model: any): string[];
84
+ /**
85
+ * Convenience: get all financial data fields.
86
+ */
87
+ export declare function getFinancialFields(Model: any): string[];
88
+ /**
89
+ * Get all fields with a specific sensitivity level.
90
+ */
91
+ export declare function getFieldsByLevel(Model: any, level: SensitivityLevel): string[];
92
+ /**
93
+ * Get all fields classified as CONFIDENTIAL or higher.
94
+ */
95
+ export declare function getConfidentialFields(Model: any): string[];
96
+ /**
97
+ * Check if a field contains sensitive data (PII, PHI, PCI, etc.).
98
+ */
99
+ export declare function isSensitive(Model: any, field: string): boolean;
100
+ /**
101
+ * Automatically classify fields based on their names.
102
+ * Call this after model definition to tag common sensitive fields.
103
+ *
104
+ * @param Model - The model to scan
105
+ * @param patterns - Optional custom patterns (merged with defaults)
106
+ */
107
+ export declare function autoDiscover(Model: any, additionalPatterns?: Array<RegExp | string>): void;
108
+ /**
109
+ * Merge classifications from another model (useful for inheritance).
110
+ */
111
+ export declare function inheritClassifications(child: any, parent: any): void;
112
+ export declare class DataClassifier {
113
+ static Classify: typeof Classify;
114
+ static FieldClassification: typeof FieldClassification;
115
+ static getClassification: typeof getClassification;
116
+ static getClassifications: typeof getClassificationsForModel;
117
+ static getFieldsByCategory: typeof getFieldsByCategory;
118
+ static getPIIFields: typeof getPIIFields;
119
+ static getPHIFields: typeof getPHIFields;
120
+ static getPCIFields: typeof getPCIFields;
121
+ static getFinancialFields: typeof getFinancialFields;
122
+ static getFieldsByLevel: typeof getFieldsByLevel;
123
+ static getConfidentialFields: typeof getConfidentialFields;
124
+ static isSensitive: typeof isSensitive;
125
+ static autoDiscover: typeof autoDiscover;
126
+ static inheritClassifications: typeof inheritClassifications;
127
+ }