ts-prorm-orm 1.1.0 → 1.2.1

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 +95 -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 +713 -0
  239. package/dist/index.js +36 -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,175 @@
1
+ /**
2
+ * DSARWorkflow
3
+ *
4
+ * Manages the complete lifecycle of Data Subject Access Requests (DSARs).
5
+ * Tracks request status from creation through fulfillment and completion.
6
+ * Generates data exports for data subjects under GDPR, CCPA, HIPAA, and PIPEDA.
7
+ *
8
+ * Covers ~65 compliance frameworks including:
9
+ * GDPR Art 15-22, CCPA, CPRA, LGPD, APPI, PIPA, PDPA, PoPI, DPDP India,
10
+ * HIPAA Right to Access, PIPEDA, and all major data privacy regulations.
11
+ *
12
+ * Usage:
13
+ * // Create a new access request
14
+ * const request = await DSARWorkflow.createRequest('user-123', 'access');
15
+ *
16
+ * // Check request status
17
+ * const status = await DSARWorkflow.getRequestStatus(request.id);
18
+ *
19
+ * // Fulfill the request (generate data export)
20
+ * const fulfilled = await DSARWorkflow.fulfillRequest(request.id);
21
+ *
22
+ * // Mark as complete
23
+ * await DSARWorkflow.completeRequest(request.id);
24
+ *
25
+ * // List all requests for a data subject
26
+ * const allRequests = await DSARWorkflow.getRequestsForDataSubject('user-123');
27
+ */
28
+ import { ExportOptions, ExportFormat } from './data-portability';
29
+ import { ErasureOptions } from './right-to-erasure';
30
+ /**
31
+ * Status of a DSAR request throughout its lifecycle.
32
+ */
33
+ export type RequestStatus = 'pending' | 'in_progress' | 'pending_fulfillment' | 'fulfilled' | 'delivered' | 'completed' | 'rejected' | 'expired';
34
+ /**
35
+ * Types of DSAR requests supported.
36
+ */
37
+ export type RequestType = 'access' | 'rectification' | 'erasure' | 'portability' | 'restriction' | 'objection' | 'withdrawal';
38
+ /**
39
+ * Options for fulfilling a DSAR request.
40
+ */
41
+ export interface FulfillmentOptions {
42
+ /** Models to include in the data export */
43
+ models?: Array<{
44
+ model: any;
45
+ where?: Record<string, any>;
46
+ }>;
47
+ /** Export format - json, csv, or ndjson */
48
+ format?: ExportFormat;
49
+ /** Include associated models in export */
50
+ include?: any[];
51
+ /** Maximum records per model */
52
+ limit?: number;
53
+ /** Erasure options (only for requestType: 'erasure') */
54
+ erasureOptions?: ErasureOptions;
55
+ /** Custom export options for portability requests */
56
+ exportOptions?: ExportOptions;
57
+ /** Notes for the fulfillment */
58
+ notes?: string;
59
+ }
60
+ /**
61
+ * Complete DSAR request record.
62
+ */
63
+ export interface DSARRequest {
64
+ /** Unique request identifier */
65
+ id: string;
66
+ /** ID of the data subject (user) */
67
+ dataSubjectId: string;
68
+ /** Type of request */
69
+ requestType: RequestType;
70
+ /** Current status in the workflow */
71
+ status: RequestStatus;
72
+ /** Date the request was created */
73
+ createdAt: Date;
74
+ /** Date request was last updated */
75
+ updatedAt: Date;
76
+ /** Date request was fulfilled */
77
+ fulfilledAt?: Date;
78
+ /** Date request was completed */
79
+ completedAt?: Date;
80
+ /** Date request was delivered to data subject */
81
+ deliveredAt?: Date;
82
+ /** Deadline for fulfilling the request (typically 30 days) */
83
+ deadline?: Date;
84
+ /** Export data if fulfilled */
85
+ exportData?: {
86
+ content: string;
87
+ format: ExportFormat;
88
+ recordCount: number;
89
+ };
90
+ /** Rejection reason if rejected */
91
+ rejectionReason?: string;
92
+ /** Notes from the compliance team */
93
+ notes?: string;
94
+ /** Compliance framework(s) this request is for */
95
+ frameworks: string[];
96
+ /** Whether the request was honored */
97
+ honored?: boolean;
98
+ }
99
+ export declare class DSARWorkflow {
100
+ /**
101
+ * Create a new DSAR request.
102
+ *
103
+ * @param dataSubjectId - The unique identifier for the data subject
104
+ * @param requestType - The type of DSAR request
105
+ * @returns The created DSAR request
106
+ */
107
+ static createRequest(dataSubjectId: string, requestType: RequestType): DSARRequest;
108
+ /**
109
+ * Get the status of a DSAR request.
110
+ *
111
+ * @param requestId - The request ID
112
+ * @returns The request if found, undefined otherwise
113
+ */
114
+ static getRequestStatus(requestId: string): DSARRequest | undefined;
115
+ /**
116
+ * Fulfill a DSAR request by generating the data export.
117
+ * For 'access' and 'portability' requests, generates data export.
118
+ * For 'erasure' requests, performs the erasure operation.
119
+ *
120
+ * @param requestId - The request ID
121
+ * @param options - Fulfillment options
122
+ * @returns The fulfilled request
123
+ */
124
+ static fulfillRequest(requestId: string, options?: FulfillmentOptions): Promise<DSARRequest>;
125
+ /**
126
+ * Mark a DSAR request as complete.
127
+ * Valid transitions: fulfilled -> delivered -> completed
128
+ *
129
+ * @param requestId - The request ID
130
+ * @returns The completed request
131
+ */
132
+ static completeRequest(requestId: string): DSARRequest;
133
+ /**
134
+ * Get all requests for a specific data subject.
135
+ *
136
+ * @param dataSubjectId - The data subject ID
137
+ * @returns Array of DSAR requests for the data subject
138
+ */
139
+ static getRequestsForDataSubject(dataSubjectId: string): DSARRequest[];
140
+ /**
141
+ * Get all requests of a specific status.
142
+ *
143
+ * @param status - The status to filter by
144
+ * @returns Array of DSAR requests with the specified status
145
+ */
146
+ static getRequestsByStatus(status: RequestStatus): DSARRequest[];
147
+ /**
148
+ * Get all pending requests that have exceeded their deadline.
149
+ *
150
+ * @returns Array of expired DSAR requests
151
+ */
152
+ static getExpiredRequests(): DSARRequest[];
153
+ /**
154
+ * Reject a DSAR request with a reason.
155
+ *
156
+ * @param requestId - The request ID
157
+ * @param reason - The rejection reason
158
+ * @returns The rejected request
159
+ */
160
+ static rejectRequest(requestId: string, reason: string): DSARRequest;
161
+ /**
162
+ * Start processing a request (transition from pending to in_progress).
163
+ *
164
+ * @param requestId - The request ID
165
+ * @returns The request in progress
166
+ */
167
+ static startProcessing(requestId: string): DSARRequest;
168
+ /**
169
+ * Mark a request as delivered to the data subject.
170
+ *
171
+ * @param requestId - The request ID
172
+ * @returns The delivered request
173
+ */
174
+ static markDelivered(requestId: string): DSARRequest;
175
+ }
@@ -0,0 +1,84 @@
1
+ /**
2
+ * FieldEncryption
3
+ *
4
+ * AES-256-GCM reversible field-level encryption for model attributes.
5
+ * Unlike the existing @Secure decorator (which one-way hashes passwords),
6
+ * this encrypts data so it can be decrypted — suitable for PII, PHI, and PCI data.
7
+ *
8
+ * Covers ~63 compliance frameworks including:
9
+ * GDPR, HIPAA, PCI DSS, FIPS 140-2/140-3, NIST SP 800-111, PIPL, KVKK,
10
+ * PDPA (multiple), SOC 2, ISO 27001, HITRUST, and more.
11
+ *
12
+ * Usage:
13
+ * FieldEncryption.configure('32-byte-hex-key-here');
14
+ *
15
+ * // Annotate fields:
16
+ * Encrypt('ssn')(User);
17
+ * Encrypt('creditCardNumber')(User);
18
+ *
19
+ * // Apply hooks (once per model):
20
+ * applyEncryptionHooks(User);
21
+ *
22
+ * // Values are encrypted in the DB, transparent on read:
23
+ * const user = await User.findByPk(1);
24
+ * console.log(user.ssn); // plain text — decrypted automatically
25
+ */
26
+ /**
27
+ * Configure the global encryption key.
28
+ * Call once at app startup before any encrypted models are used.
29
+ *
30
+ * @param key - A 32-byte key as a hex string (64 hex chars) or raw Buffer.
31
+ */
32
+ export declare function configureFieldEncryption(key: string | Buffer): void;
33
+ /**
34
+ * Encrypt a plain-text value.
35
+ * Returns a prefixed base64 string: "enc:v1:<iv>:<tag>:<ciphertext>"
36
+ */
37
+ export declare function encryptValue(plain: string): string;
38
+ /**
39
+ * Decrypt a value produced by encryptValue().
40
+ * Returns the original plain-text string.
41
+ */
42
+ export declare function decryptValue(ciphertext: string): string;
43
+ /** Checks whether a value is already in encrypted form (prefixed with `enc:v1:`), used to avoid double-encrypting. */
44
+ declare function isEncrypted(value: string): boolean;
45
+ /**
46
+ * Get the list of fields marked for encryption on a model class.
47
+ */
48
+ export declare function getEncryptedFields(target: Function): string[];
49
+ /**
50
+ * Mark a field for AES-256-GCM encryption.
51
+ * Apply as a class decorator, passing the field name(s).
52
+ *
53
+ * Encrypt('ssn')(User);
54
+ * Encrypt('bankAccount')(User);
55
+ *
56
+ * Then call applyEncryptionHooks(User) once to wire the hooks.
57
+ */
58
+ export declare function Encrypt(field: string): (target: Function) => void;
59
+ /**
60
+ * Wire beforeSave and afterFind hooks onto a model to transparently
61
+ * encrypt on write and decrypt on read.
62
+ *
63
+ * Call once per model after it is defined:
64
+ * applyEncryptionHooks(User);
65
+ */
66
+ export declare function applyEncryptionHooks(ModelClass: any): void;
67
+ /**
68
+ * Convenience class grouping the encryption API.
69
+ */
70
+ export declare class FieldEncryption {
71
+ /** Configure the global AES-256-GCM key. */
72
+ static configure: typeof configureFieldEncryption;
73
+ /** Manually encrypt a value. */
74
+ static encrypt: typeof encryptValue;
75
+ /** Manually decrypt a value. */
76
+ static decrypt: typeof decryptValue;
77
+ /** Check if a value is already encrypted. */
78
+ static isEncrypted: typeof isEncrypted;
79
+ /** Wire hooks onto a model. */
80
+ static applyHooks: typeof applyEncryptionHooks;
81
+ /** Get the list of encrypted fields on a model. */
82
+ static getFields: typeof getEncryptedFields;
83
+ }
84
+ export {};
@@ -0,0 +1,84 @@
1
+ /**
2
+ * ImmutableRecord
3
+ *
4
+ * Prevents UPDATE and DELETE on a model. Only CREATE and READ are allowed.
5
+ * Provides an `append()` method for creating new versions of immutable data,
6
+ * optionally with soft versioning (storing the version number).
7
+ *
8
+ * Covers ~14 compliance frameworks including:
9
+ * SOX, SEC 17a-4 (WORM), 21 CFR Part 11, EU Annex 11, ALCOA+,
10
+ * GAMP 5, ICH E6 GCP, NATO STANAG, and financial audit requirements.
11
+ *
12
+ * Usage:
13
+ * // Make a model immutable:
14
+ * ImmutableRecord.makeImmutable(FinancialEntry);
15
+ *
16
+ * // Now attempting to update/delete throws:
17
+ * await entry.update({ amount: 100 }); // throws Error
18
+ * await entry.destroy(); // throws Error
19
+ *
20
+ * // Instead, create a new version:
21
+ * const newEntry = await FinancialEntry.append({
22
+ * amount: 100,
23
+ * description: 'Q3 adjustment',
24
+ * }, { parentId: entry.id });
25
+ *
26
+ * // Enable soft versioning (tracks version numbers):
27
+ * ImmutableRecord.enableVersioning(FinancialEntry, { versionField: 'version' });
28
+ */
29
+ export interface ImmutableOptions {
30
+ /** If true, DELETE attempts are silently ignored instead of throwing. Default: false (throws) */
31
+ silentDelete?: boolean;
32
+ /** If true, allows CREATE but blocks UPDATE/DELETE. Default: true */
33
+ allowCreate?: boolean;
34
+ }
35
+ export interface VersionOptions {
36
+ /** The field name to store the version number. Default: 'version' */
37
+ versionField?: string;
38
+ /** The field name for the parent record ID (for audit trail). Default: 'previousId' */
39
+ parentField?: string;
40
+ /** Starting version number. Default: 1 */
41
+ startAt?: number;
42
+ }
43
+ /**
44
+ * Mark a model as immutable — blocks UPDATE and DELETE.
45
+ *
46
+ * @param Model - The model class to protect
47
+ * @param options - Immutable configuration options
48
+ */
49
+ export declare function makeImmutable(Model: any, options?: ImmutableOptions): void;
50
+ /**
51
+ * Enable soft versioning on an immutable model.
52
+ * Adds version and previousId fields, and auto-increments on append.
53
+ *
54
+ * @param Model - The model class
55
+ * @param options - Version field configuration
56
+ */
57
+ export declare function enableVersioning(Model: any, options?: VersionOptions): void;
58
+ /**
59
+ * Check if a model is configured as immutable.
60
+ */
61
+ export declare function isImmutable(Model: any): boolean;
62
+ /**
63
+ * Check if an immutable model has versioning enabled.
64
+ */
65
+ export declare function hasVersioning(Model: any): boolean;
66
+ /**
67
+ * Get the version configuration for an immutable model.
68
+ */
69
+ export declare function getVersionConfig(Model: any): Required<VersionOptions> | undefined;
70
+ /**
71
+ * Get all immutable models registered.
72
+ */
73
+ export declare function listImmutableModels(): Array<{
74
+ model: any;
75
+ options: ImmutableOptions;
76
+ }>;
77
+ export declare class ImmutableRecord {
78
+ static makeImmutable: typeof makeImmutable;
79
+ static enableVersioning: typeof enableVersioning;
80
+ static isImmutable: typeof isImmutable;
81
+ static hasVersioning: typeof hasVersioning;
82
+ static getVersionConfig: typeof getVersionConfig;
83
+ static listImmutableModels: typeof listImmutableModels;
84
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Compliance Module
3
+ *
4
+ * A set of 12 reusable classes for addressing data storage requirements
5
+ * from 218+ security and compliance frameworks.
6
+ *
7
+ * Each class wraps existing ORM infrastructure (hooks, decorators, scopes)
8
+ * into simple one-liner APIs.
9
+ *
10
+ * ---
11
+ *
12
+ * Quick reference:
13
+ *
14
+ * // 1. Audit trail for all CRUD operations
15
+ * import { ComplianceAuditTrail } from './compliance/audit-trail';
16
+ * ComplianceAuditTrail.enable(prorm, UserModel, { getUserId: () => user.id });
17
+ *
18
+ * // 2. Field-level AES-256-GCM encryption
19
+ * import { FieldEncryption } from './compliance/field-encryption';
20
+ * FieldEncryption.configure('32-byte-hex-key');
21
+ * @Encrypt('ssn') class User extends Model {}
22
+ * applyEncryptionHooks(User);
23
+ *
24
+ * // 3. TLS enforcement at connection time
25
+ * import { TLSEnforcer } from './compliance/tls-enforcer';
26
+ * TLSEnforcer.enforce(prorm);
27
+ *
28
+ * // 4. Data retention / TTL policies
29
+ * import { DataRetentionPolicy } from './compliance/data-retention';
30
+ * DataRetentionPolicy.set(FinancialRecord, { maxAge: { years: 7 } });
31
+ * await DataRetentionPolicy.purge(FinancialRecord);
32
+ *
33
+ * // 5. Right to erasure (DSAR response)
34
+ * import { RightToErasure } from './compliance/right-to-erasure';
35
+ * await RightToErasure.erase(User, { where: { id: userId } }, { mode: 'anonymize' });
36
+ *
37
+ * // 6. Consent record storage
38
+ * import { ConsentRecord } from './compliance/consent-record';
39
+ * await ConsentRecord.initialize(prorm);
40
+ * await ConsentRecord.grant({ subjectId: userId, purpose: 'marketing' });
41
+ *
42
+ * // 7. Row-level security (tenant filtering)
43
+ * import { RowLevelSecurity } from './compliance/row-level-security';
44
+ * RowLevelSecurity.apply(Document, ctx => ({ where: { tenantId: ctx.tenantId } }));
45
+ *
46
+ * // 8. Data masking in query output
47
+ * import { DataMasker } from './compliance/data-masker';
48
+ * DataMasker.maskField(User, 'ssn', { pattern: 'ssn' });
49
+ * const masked = DataMasker.mask(user, 'admin');
50
+ *
51
+ * // 9. Immutable records (append-only, no update/delete)
52
+ * import { ImmutableRecord } from './compliance/immutable-record';
53
+ * ImmutableRecord.makeImmutable(AuditEntry);
54
+ *
55
+ * // 10. Pseudonymization / tokenization
56
+ * import { PseudonymizationService } from './compliance/pseudonymization';
57
+ * await PseudonymizationService.configure({ secretKey: '...' });
58
+ * const token = await PseudonymizationService.tokenize('user-123');
59
+ *
60
+ * // 11. Data portability (DSAR export)
61
+ * import { DataPortabilityExporter } from './compliance/data-portability';
62
+ * const export = await DataPortabilityExporter.export(User, { where: { id: userId } });
63
+ *
64
+ * // 12. Data classification / sensitivity tagging
65
+ * import { DataClassifier } from './compliance/data-classifier';
66
+ * @FieldClassification('email', 'PII') class User extends Model {}
67
+ * const piiFields = DataClassifier.getPIIFields(User);
68
+ */
69
+ export { ComplianceAuditTrail, AuditTrailOptions } from './audit-trail';
70
+ export { FieldEncryption, configureFieldEncryption, encryptValue, decryptValue, Encrypt, applyEncryptionHooks, getEncryptedFields, } from './field-encryption';
71
+ export { TLSEnforcer, TLSEnforcerOptions, TLSMode } from './tls-enforcer';
72
+ export { DataRetentionPolicy, RetentionDuration, RetentionExpiryMode, RetentionPolicyOptions, } from './data-retention';
73
+ export { RightToErasure, ErasureMode, CascadeTarget, ErasureOptions, ErasureResult, } from './right-to-erasure';
74
+ export { ConsentRecord, LegalBasis, LegalBasisEnum, ConsentGrantOptions, ConsentWithdrawOptions, } from './consent-record';
75
+ export { ConsentVersioning, ConsentVersion, ConsentHistoryOptions, ConsentType, RecordConsentOptions, } from './consent-versioning';
76
+ export { RowLevelSecurityAPI as RowLevelSecurity, RLS, SecurityContext, ScopeSelector, initRLS, apply, setContext, getContext, runInContext, rlsMiddleware, registerHooks, } from './row-level-security';
77
+ export { DataMasker, MaskPattern, MaskPatternEnum, MaskOptions, Mask, maskField, maskValue, mask, maskMany, applyHooks as applyMaskingHooks, } from './data-masker';
78
+ export { ImmutableRecord, ImmutableOptions, VersionOptions, makeImmutable, enableVersioning, isImmutable, } from './immutable-record';
79
+ export { PseudonymizationService, PseudonymizationConfig, StorageMode, configure, tokenize, detokenize, Pseudonymize, applyHooks as applyPseudonymizationHooks, } from './pseudonymization';
80
+ export { DataPortabilityExporter, ExportFormat, ExportOptions, StreamExportOptions, exportData, exportStream, createDSARResponse, } from './data-portability';
81
+ export { DataClassifier, SensitivityLevel, DataCategory, ClassificationMetadata, Classify, FieldClassification, getClassification, getPIIFields, getPHIFields, getPCIFields, isSensitive, autoDiscover, } from './data-classifier';
82
+ export { Security, SecurityFramework, SecurityFrameworkType, AllFrameworks, FrameworkCategories, FrameworkRequirements, FrameworkCount, isValidFramework, getFrameworkCategory, getAllFrameworks, setupSecurity, setupAllSecurity, Table, TableSecurityOptions, Database as DatabaseSecurity, DatabaseSecurityOptions, getTableSecurity, getDatabaseSecurity, getSecurityFrameworks, hasAudit, isImmutableModel, } from './security-decorator';
83
+ export { SecurityMonitor, SecurityMonitorOptions, ComplianceSecurityMonitor, AlertSeverity, AlertCategory, SecurityAlert, getGlobalMonitor, initSecurityMonitor, analyzeQuerySecurity, } from './security-monitor';
84
+ export { BreachDetector, BreachDetectorOptions, BreachSeverity, BreachCategory, BreachAlert, getGlobalBreachDetector, initBreachDetector, } from './breach-detector';
85
+ export { SessionIsolation, TenantIsolation, TenantContext, TenantKey, SessionInfo, SessionIsolationOptions, TenantIsolationDecoratorOptions, SessionStore, KeyStore, sessionIsolationMiddleware, getTenantAuditMetadata, getTenantIsolationOptions, } from './session-isolation';
86
+ export { WORMStorage, WORMOptions, WORMTamperLog, ArchiveState, WORM, getWORMOptions, applyWORMHooks, isFrozen, isArchived, } from './worm-storage';
87
+ export { RateLimiter, RateLimiterOptions, RateLimitConfig, RateLimitAction, RateLimitInfo, RateLimitResult, RateLimitStats, RateLimit, getRateLimitOptions, getGlobalLimiter, initRateLimiter, checkRateLimit, satisfiesCompliance, getRecommendedLimits, } from './rate-limiter';
88
+ export { SensitiveDataDiscovery, SensitiveDataType, ComplianceFramework, SensitiveField, DiscoveryPattern, ScanOptions, ScanResult, registerPattern, unregisterPattern, getPatterns, generateComplianceReport, } from './sensitive-data-discovery';
89
+ export { CrossBorderLog, TransferRecord, RegionConfig, TransferOptions, TransferStatus, DataTypeCategory, RegionCode, getComplianceTransfers, generateTransferReport, } from './cross-border-log';
90
+ export { DSARWorkflow, DSARRequest, RequestStatus, RequestType, FulfillmentOptions, } from './dsar-workflow';
91
+ export { PrivacyImpactAssessment, AssessmentStatus, RiskSeverity, PIARecord, RiskRecord, PIACreateOptions, RiskRecordOptions, } from './privacy-impact-assessment';
92
+ export { BackupVerification, BackupSource, BackupConfig, BackupMetadata, VerificationResult, VerificationSchedule, VerificationHistoryEntry, } from './backup-verification';
93
+ export { QueryFirewall, FirewallRule, FirewallRuleType, FirewallMode, FirewallModeEnum, FirewallOptions, QueryAnalysis, QueryOperation, BlockedQuery, getRecommendedRules, FIREWALL_RULES, OWASP_SQL_INJECTION_PATTERNS, CIS_BENCHMARK_RULES, PCI_DSS_RULES, HIPAA_RULES, SOX_RULES, NIST_CSF_RULES, POSTGRESQL_RULES, MYSQL_RULES, MARIADB_RULES, MSSQL_RULES, ORACLE_RULES, SQLITE_RULES, DATABASE_RULES, DatabaseType, FirewallRules, FirewallRuleDecoratorOptions, PostgreSQLFirewall, MySQLFirewall, MariaDBFirewall, MSSQLFirewall, OracleFirewall, SQLiteFirewall, applyFirewallRulesToModel, } from './query-firewall';
@@ -0,0 +1,196 @@
1
+ /**
2
+ * PrivacyImpactAssessment
3
+ *
4
+ * A ready-made model and service for conducting Privacy Impact Assessments (PIA)
5
+ * and Data Protection Impact Assessments (DPIA) for high-risk data processing.
6
+ *
7
+ * Covers compliance frameworks including:
8
+ * GDPR Art. 35 (DPIA), ISO 27701, UK GDPR, CCPA, PIPEDA,
9
+ * LGPD (Brazil), APPI (Japan), PDPA (Thailand, Singapore), and more.
10
+ *
11
+ * Usage:
12
+ * // Initialize once (creates the pia_assessments table):
13
+ * await PrivacyImpactAssessment.initialize(prorm);
14
+ *
15
+ * // Create a new PIA:
16
+ * const assessment = await PrivacyImpactAssessment.createAssessment(
17
+ * 'User Analytics Processing',
18
+ * ['email', 'ip_address', 'behavioral_data'],
19
+ * 'analyze_user_behavior_for_product_improvement'
20
+ * );
21
+ *
22
+ * // Record identified risks:
23
+ * await PrivacyImpactAssessment.recordRisk(
24
+ * assessment.id,
25
+ * 'Potential data breach exposing user profiles',
26
+ * 'high',
27
+ * * 'Implement AES-256 encryption at rest and TLS 1.3 in transit'
28
+ * );
29
+ *
30
+ * // Approve the assessment:
31
+ * await PrivacyImpactAssessment.approveAssessment(assessment.id, 'DPO John Smith');
32
+ *
33
+ * // Link to a model:
34
+ * await PrivacyImpactAssessment.linkToModel(assessment.id, UserAnalytics);
35
+ *
36
+ * // Get assessment details:
37
+ * const details = await PrivacyImpactAssessment.getAssessment(assessment.id);
38
+ */
39
+ /**
40
+ * Status of a Privacy Impact Assessment
41
+ */
42
+ export type AssessmentStatus = 'draft' | 'in_review' | 'approved' | 'rejected' | 'archived';
43
+ /**
44
+ * Severity level of identified risks
45
+ */
46
+ export type RiskSeverity = 'low' | 'medium' | 'high' | 'critical';
47
+ /**
48
+ * PIA Record containing assessment metadata
49
+ */
50
+ export interface PIARecord {
51
+ id: number;
52
+ name: string;
53
+ dataTypes: string[];
54
+ processingPurpose: string;
55
+ status: AssessmentStatus;
56
+ approvedBy?: string;
57
+ approvedAt?: Date;
58
+ linkedModels?: string[];
59
+ createdAt: Date;
60
+ updatedAt: Date;
61
+ }
62
+ /**
63
+ * Risk record associated with a PIA
64
+ */
65
+ export interface RiskRecord {
66
+ id: number;
67
+ assessmentId: number;
68
+ risk: string;
69
+ severity: RiskSeverity;
70
+ mitigation: string;
71
+ createdAt: Date;
72
+ }
73
+ /**
74
+ * Options for creating a new PIA
75
+ */
76
+ export interface PIACreateOptions {
77
+ /** Name/title of the assessment */
78
+ name: string;
79
+ /** List of data types being processed (e.g. ['email', 'ssn', 'health_data']) */
80
+ dataTypes: string[];
81
+ /** Purpose of the processing operation */
82
+ processingPurpose: string;
83
+ /** Additional metadata about the assessment */
84
+ metadata?: Record<string, any>;
85
+ }
86
+ /**
87
+ * Options for recording a risk
88
+ */
89
+ export interface RiskRecordOptions {
90
+ /** Description of the identified risk */
91
+ risk: string;
92
+ /** Severity level of the risk */
93
+ severity: RiskSeverity;
94
+ /** Mitigation measure for the risk */
95
+ mitigation: string;
96
+ }
97
+ export declare class PrivacyImpactAssessment {
98
+ /**
99
+ * Initialize the PrivacyImpactAssessment model and sync the tables.
100
+ * Call once at application startup.
101
+ *
102
+ * @param prorm - The Prorm instance
103
+ * @param tableName - Override the default table name 'pia_assessments'
104
+ */
105
+ static initialize(prorm: any, tableName?: string): Promise<void>;
106
+ private static requireModels;
107
+ /**
108
+ * Create a new Privacy Impact Assessment.
109
+ *
110
+ * @param name - Name/title of the assessment
111
+ * @param dataTypes - List of data types being processed
112
+ * @param processingPurpose - Purpose of the processing operation
113
+ * @returns The created PIA record
114
+ */
115
+ static createAssessment(name: string, dataTypes: string[], processingPurpose: string): Promise<PIARecord>;
116
+ /**
117
+ * Record a risk associated with a PIA assessment.
118
+ *
119
+ * @param assessmentId - The ID of the assessment to add the risk to
120
+ * @param risk - Description of the identified risk
121
+ * @param severity - Severity level of the risk
122
+ * @param mitigation - Mitigation measures for the risk
123
+ * @returns The created risk record
124
+ */
125
+ static recordRisk(assessmentId: number, risk: string, severity: RiskSeverity, mitigation: string): Promise<RiskRecord>;
126
+ /**
127
+ * Approve a Privacy Impact Assessment.
128
+ * Sets status to 'approved' and records approver information.
129
+ *
130
+ * @param assessmentId - The ID of the assessment to approve
131
+ * @param approver - Name/ID of the approver (e.g., DPO name)
132
+ * @returns The updated PIA record
133
+ */
134
+ static approveAssessment(assessmentId: number, approver: string): Promise<PIARecord>;
135
+ /**
136
+ * Get a Privacy Impact Assessment by ID.
137
+ * Includes associated risks.
138
+ *
139
+ * @param assessmentId - The ID of the assessment to retrieve
140
+ * @returns The PIA record with associated risks
141
+ */
142
+ static getAssessment(assessmentId: number): Promise<any>;
143
+ /**
144
+ * Link a model to a PIA assessment.
145
+ * Useful for tracking which models are covered by the assessment.
146
+ *
147
+ * @param assessmentId - The ID of the assessment
148
+ * @param model - The model class to link (can be a Prorm model or string name)
149
+ * @returns The updated PIA record
150
+ */
151
+ static linkToModel(assessmentId: number, model: any): Promise<PIARecord>;
152
+ /**
153
+ * Get all assessments with a specific status.
154
+ *
155
+ * @param status - The status to filter by
156
+ * @returns Array of PIA records matching the status
157
+ */
158
+ static getByStatus(status: AssessmentStatus): Promise<PIARecord[]>;
159
+ /**
160
+ * Reject a Privacy Impact Assessment.
161
+ *
162
+ * @param assessmentId - The ID of the assessment to reject
163
+ * @param reason - Reason for rejection
164
+ * @returns The updated PIA record
165
+ */
166
+ static rejectAssessment(assessmentId: number, reason: string): Promise<PIARecord>;
167
+ /**
168
+ * Submit an assessment for review.
169
+ * Changes status from 'draft' to 'in_review'.
170
+ *
171
+ * @param assessmentId - The ID of the assessment to submit
172
+ * @returns The updated PIA record
173
+ */
174
+ static submitForReview(assessmentId: number): Promise<PIARecord>;
175
+ /**
176
+ * Get all risks for an assessment grouped by severity.
177
+ *
178
+ * @param assessmentId - The ID of the assessment
179
+ * @returns Object with risks grouped by severity level
180
+ */
181
+ static getRisksBySeverity(assessmentId: number): Promise<Record<RiskSeverity, RiskRecord[]>>;
182
+ /**
183
+ * Check if an assessment has any high or critical risks without mitigations.
184
+ *
185
+ * @param assessmentId - The ID of the assessment
186
+ * @returns True if there are unresolved high-risk items
187
+ */
188
+ static hasUnresolvedHighRisks(assessmentId: number): Promise<boolean>;
189
+ /**
190
+ * List all models linked to a PIA assessment.
191
+ *
192
+ * @param assessmentId - The ID of the assessment
193
+ * @returns Array of linked model names
194
+ */
195
+ static getLinkedModels(assessmentId: number): Promise<string[]>;
196
+ }