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,661 @@
1
+ /**
2
+ * Database Firewall / Query Allowlist
3
+ *
4
+ * A security layer that:
5
+ * - Blocks dangerous queries or commands
6
+ * - Allows only approved query patterns
7
+ * - Logs and alerts on blocked queries
8
+ * - Required for: OWASP, CIS Benchmarks compliance
9
+ *
10
+ * Usage:
11
+ * // Create firewall instance
12
+ * const firewall = QueryFirewall.create(prorm, {
13
+ * mode: 'allowlist',
14
+ * onBlock: (block) => console.log('Blocked:', block.query),
15
+ * });
16
+ *
17
+ * // Add allowed patterns
18
+ * firewall.allow('^SELECT \\* FROM users WHERE');
19
+ * firewall.allow('^INSERT INTO orders');
20
+ *
21
+ * // Add blocked patterns (dangerous commands)
22
+ * firewall.block('^DROP (TABLE|DATABASE)');
23
+ * firewall.block('^TRUNCATE');
24
+ *
25
+ * // Check if query is allowed
26
+ * const result = firewall.checkQuery('SELECT * FROM users WHERE id = 1');
27
+ * if (!result.allowed) {
28
+ * console.log('Query blocked:', result.reason);
29
+ * }
30
+ *
31
+ * // Get blocked history
32
+ * const history = firewall.getBlockedHistory();
33
+ */
34
+ import { Prorm } from '../prorm';
35
+ export type FirewallRuleType = 'allow' | 'block';
36
+ export type FirewallMode = 'allowlist' | 'blocklist' | 'strict';
37
+ /**
38
+ * Companion enum for {@link FirewallMode}. Provided for callers who prefer
39
+ * enum-based ergonomics (autocomplete, refactor-safety) over raw string
40
+ * literals. The underlying values are identical to the `FirewallMode`
41
+ * string literals, so either form may be used interchangeably.
42
+ */
43
+ export declare enum FirewallModeEnum {
44
+ Allowlist = "allowlist",
45
+ Blocklist = "blocklist",
46
+ Strict = "strict"
47
+ }
48
+ export interface FirewallRule {
49
+ id: string;
50
+ type: FirewallRuleType;
51
+ pattern: string | RegExp;
52
+ description?: string;
53
+ createdAt: Date;
54
+ }
55
+ export interface QueryAnalysis {
56
+ query: string;
57
+ allowed: boolean;
58
+ reason?: string;
59
+ matchedRule?: string;
60
+ riskScore: number;
61
+ operation: QueryOperation;
62
+ tables: string[];
63
+ containsSensitiveData: boolean;
64
+ }
65
+ export type QueryOperation = 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'DROP' | 'TRUNCATE' | 'ALTER' | 'CREATE' | 'EXECUTE' | 'UNKNOWN';
66
+ export interface BlockedQuery {
67
+ id: string;
68
+ timestamp: Date;
69
+ query: string;
70
+ reason: string;
71
+ matchedRule: string;
72
+ operation: QueryOperation;
73
+ user?: string;
74
+ }
75
+ export interface FirewallOptions {
76
+ /** Firewall mode: allowlist (only allow matching), blocklist (block matching), strict (both) */
77
+ mode?: FirewallMode | FirewallModeEnum;
78
+ /** Default blocked patterns for dangerous operations */
79
+ blockDangerousByDefault?: boolean;
80
+ /** Callback when a query is blocked */
81
+ onBlock?: (blocked: BlockedQuery) => void;
82
+ /** Callback when a query is allowed */
83
+ onAllow?: (analysis: QueryAnalysis) => void;
84
+ /** Maximum blocked queries to keep in history */
85
+ maxHistory?: number;
86
+ /** Log all queries (including allowed) */
87
+ logAllQueries?: boolean;
88
+ /** Enable case-insensitive matching */
89
+ caseInsensitive?: boolean;
90
+ /** Custom rules to apply at startup */
91
+ rules?: Array<{
92
+ type: FirewallRuleType;
93
+ pattern: string;
94
+ description?: string;
95
+ }>;
96
+ /** Active compliance frameworks for auto-configuration */
97
+ frameworks?: string[];
98
+ }
99
+ /** Exportable rule constants for custom configurations */
100
+ export declare const FIREWALL_RULES: {
101
+ readonly DESTRUCTIVE: readonly [{
102
+ readonly pattern: RegExp;
103
+ readonly description: "DROP object";
104
+ }, {
105
+ readonly pattern: RegExp;
106
+ readonly description: "TRUNCATE table";
107
+ }, {
108
+ readonly pattern: RegExp;
109
+ readonly description: "DELETE without WHERE clause";
110
+ }, {
111
+ readonly pattern: RegExp;
112
+ readonly description: "ALTER TABLE DROP";
113
+ }, {
114
+ readonly pattern: RegExp;
115
+ readonly description: "ALTER TABLE RENAME";
116
+ }, {
117
+ readonly pattern: RegExp;
118
+ readonly description: "DROP index";
119
+ }, {
120
+ readonly pattern: RegExp;
121
+ readonly description: "DROP trigger";
122
+ }, {
123
+ readonly pattern: RegExp;
124
+ readonly description: "DROP sequence";
125
+ }];
126
+ readonly SCHEMA_MODIFICATION: readonly [{
127
+ readonly pattern: RegExp;
128
+ readonly description: "CREATE table/database/schema";
129
+ }, {
130
+ readonly pattern: RegExp;
131
+ readonly description: "ADD column";
132
+ }, {
133
+ readonly pattern: RegExp;
134
+ readonly description: "MODIFY column";
135
+ }, {
136
+ readonly pattern: RegExp;
137
+ readonly description: "CHANGE column";
138
+ }, {
139
+ readonly pattern: RegExp;
140
+ readonly description: "ADD index";
141
+ }, {
142
+ readonly pattern: RegExp;
143
+ readonly description: "CREATE index";
144
+ }, {
145
+ readonly pattern: RegExp;
146
+ readonly description: "CREATE index";
147
+ }];
148
+ readonly PERMISSIONS: readonly [{
149
+ readonly pattern: RegExp;
150
+ readonly description: "GRANT permissions";
151
+ }, {
152
+ readonly pattern: RegExp;
153
+ readonly description: "REVOKE permissions";
154
+ }, {
155
+ readonly pattern: RegExp;
156
+ readonly description: "CREATE user";
157
+ }, {
158
+ readonly pattern: RegExp;
159
+ readonly description: "DROP user";
160
+ }, {
161
+ readonly pattern: RegExp;
162
+ readonly description: "ALTER user";
163
+ }, {
164
+ readonly pattern: RegExp;
165
+ readonly description: "SET password";
166
+ }];
167
+ readonly CODE_EXECUTION: readonly [{
168
+ readonly pattern: RegExp;
169
+ readonly description: "EXEC stored procedure";
170
+ }, {
171
+ readonly pattern: RegExp;
172
+ readonly description: "EXECUTE stored procedure";
173
+ }, {
174
+ readonly pattern: RegExp;
175
+ readonly description: "CALL procedure/function";
176
+ }, {
177
+ readonly pattern: RegExp;
178
+ readonly description: "xp_cmdshell (SQL Server)";
179
+ }, {
180
+ readonly pattern: RegExp;
181
+ readonly description: "sp_executesql (SQL Server)";
182
+ }, {
183
+ readonly pattern: RegExp;
184
+ readonly description: "CREATE function/procedure";
185
+ }, {
186
+ readonly pattern: RegExp;
187
+ readonly description: "DROP function/procedure";
188
+ }];
189
+ readonly FILE_OPERATIONS: readonly [{
190
+ readonly pattern: RegExp;
191
+ readonly description: "LOAD_FILE() - read file";
192
+ }, {
193
+ readonly pattern: RegExp;
194
+ readonly description: "INTO OUTFILE - write file";
195
+ }, {
196
+ readonly pattern: RegExp;
197
+ readonly description: "INTO DUMPFILE - write binary file";
198
+ }, {
199
+ readonly pattern: RegExp;
200
+ readonly description: "Path traversal attempt";
201
+ }, {
202
+ readonly pattern: RegExp;
203
+ readonly description: "Access /etc/passwd";
204
+ }, {
205
+ readonly pattern: RegExp;
206
+ readonly description: "Access Windows system32";
207
+ }];
208
+ readonly INFORMATION_GATHERING: readonly [{
209
+ readonly pattern: RegExp;
210
+ readonly description: "SHOW databases/tables/columns";
211
+ }, {
212
+ readonly pattern: RegExp;
213
+ readonly description: "DESCRIBE table";
214
+ }, {
215
+ readonly pattern: RegExp;
216
+ readonly description: "EXPLAIN query";
217
+ }, {
218
+ readonly pattern: RegExp;
219
+ readonly description: "Get database version";
220
+ }, {
221
+ readonly pattern: RegExp;
222
+ readonly description: "Get current user";
223
+ }, {
224
+ readonly pattern: RegExp;
225
+ readonly description: "Get current user";
226
+ }, {
227
+ readonly pattern: RegExp;
228
+ readonly description: "Get data directory";
229
+ }, {
230
+ readonly pattern: RegExp;
231
+ readonly description: "Access information_schema";
232
+ }];
233
+ readonly TRANSACTION_CONTROL: readonly [{
234
+ readonly pattern: RegExp;
235
+ readonly description: "BEGIN transaction";
236
+ }, {
237
+ readonly pattern: RegExp;
238
+ readonly description: "START TRANSACTION";
239
+ }, {
240
+ readonly pattern: RegExp;
241
+ readonly description: "COMMIT transaction";
242
+ }, {
243
+ readonly pattern: RegExp;
244
+ readonly description: "ROLLBACK transaction";
245
+ }, {
246
+ readonly pattern: RegExp;
247
+ readonly description: "SET TRANSACTION ISOLATION";
248
+ }];
249
+ readonly BULK_OPERATIONS: readonly [{
250
+ readonly pattern: RegExp;
251
+ readonly description: "BULK INSERT";
252
+ }, {
253
+ readonly pattern: RegExp;
254
+ readonly description: "Bulk insert with wildcard";
255
+ }];
256
+ readonly REMOTE_OPERATIONS: readonly [{
257
+ readonly pattern: RegExp;
258
+ readonly description: "Cross-database query";
259
+ }, {
260
+ readonly pattern: RegExp;
261
+ readonly description: "Remote execution (Oracle)";
262
+ }, {
263
+ readonly pattern: RegExp;
264
+ readonly description: "OPENQUERY - linked server";
265
+ }, {
266
+ readonly pattern: RegExp;
267
+ readonly description: "OPENDATASOURCE";
268
+ }];
269
+ readonly CRYPTO_OPERATIONS: readonly [{
270
+ readonly pattern: RegExp;
271
+ readonly description: "CREATE asymmetric key";
272
+ }, {
273
+ readonly pattern: RegExp;
274
+ readonly description: "CREATE symmetric key";
275
+ }, {
276
+ readonly pattern: RegExp;
277
+ readonly description: "CREATE certificate";
278
+ }];
279
+ readonly BACKUP_OPERATIONS: readonly [{
280
+ readonly pattern: RegExp;
281
+ readonly description: "BACKUP database/log";
282
+ }, {
283
+ readonly pattern: RegExp;
284
+ readonly description: "RESTORE database/log";
285
+ }, {
286
+ readonly pattern: RegExp;
287
+ readonly description: "mysqldump command";
288
+ }, {
289
+ readonly pattern: RegExp;
290
+ readonly description: "pg_dump command";
291
+ }];
292
+ };
293
+ /** OWASP Top 10 SQL Injection patterns */
294
+ export declare const OWASP_SQL_INJECTION_PATTERNS: RegExp[];
295
+ /** CIS Benchmarks database security rules */
296
+ export declare const CIS_BENCHMARK_RULES: {
297
+ pattern: RegExp;
298
+ description: string;
299
+ }[];
300
+ /** PCI DSS compliance rules */
301
+ export declare const PCI_DSS_RULES: {
302
+ pattern: RegExp;
303
+ description: string;
304
+ }[];
305
+ /** HIPAA compliance rules */
306
+ export declare const HIPAA_RULES: {
307
+ pattern: RegExp;
308
+ description: string;
309
+ }[];
310
+ /** SOX compliance rules */
311
+ export declare const SOX_RULES: {
312
+ pattern: RegExp;
313
+ description: string;
314
+ }[];
315
+ /** NIST CSF rules */
316
+ export declare const NIST_CSF_RULES: {
317
+ pattern: RegExp;
318
+ description: string;
319
+ }[];
320
+ /** PostgreSQL-specific dangerous patterns */
321
+ export declare const POSTGRESQL_RULES: {
322
+ pattern: RegExp;
323
+ description: string;
324
+ }[];
325
+ /** MySQL-specific dangerous patterns */
326
+ export declare const MYSQL_RULES: {
327
+ pattern: RegExp;
328
+ description: string;
329
+ }[];
330
+ /** MariaDB-specific dangerous patterns */
331
+ export declare const MARIADB_RULES: {
332
+ pattern: RegExp;
333
+ description: string;
334
+ }[];
335
+ /** Microsoft SQL Server-specific dangerous patterns */
336
+ export declare const MSSQL_RULES: {
337
+ pattern: RegExp;
338
+ description: string;
339
+ }[];
340
+ /** Oracle-specific dangerous patterns */
341
+ export declare const ORACLE_RULES: {
342
+ pattern: RegExp;
343
+ description: string;
344
+ }[];
345
+ /** SQLite-specific dangerous patterns */
346
+ export declare const SQLITE_RULES: {
347
+ pattern: RegExp;
348
+ description: string;
349
+ }[];
350
+ /** Database type union */
351
+ export type DatabaseType = 'postgresql' | 'mysql' | 'mariadb' | 'mssql' | 'oracle' | 'sqlite';
352
+ /** All database-specific rules */
353
+ export declare const DATABASE_RULES: Record<DatabaseType, readonly {
354
+ pattern: RegExp;
355
+ description: string;
356
+ }[]>;
357
+ export declare class QueryFirewall {
358
+ private prorm;
359
+ private options;
360
+ private allowRules;
361
+ private blockRules;
362
+ private blockedHistory;
363
+ private queryLog;
364
+ private originalQuery;
365
+ private isActive;
366
+ private static instances;
367
+ private constructor();
368
+ /**
369
+ * Create a new firewall instance (factory method)
370
+ */
371
+ static create(prorm: Prorm, options?: FirewallOptions): QueryFirewall;
372
+ /**
373
+ * Get existing instance for a Prorm instance
374
+ */
375
+ static getInstance(prorm: Prorm): QueryFirewall | undefined;
376
+ /**
377
+ * Initialize default rules
378
+ */
379
+ private initializeRules;
380
+ /**
381
+ * Add an allowed pattern
382
+ */
383
+ allow(pattern: string | RegExp, description?: string): FirewallRule;
384
+ /**
385
+ * Add a blocked pattern
386
+ */
387
+ block(pattern: string | RegExp, description?: string): FirewallRule;
388
+ /**
389
+ * Remove a rule by ID
390
+ */
391
+ removeRule(ruleId: string): boolean;
392
+ /**
393
+ * Check if a query is allowed
394
+ */
395
+ checkQuery(sql: string): QueryAnalysis;
396
+ /**
397
+ * Analyze a query without applying firewall rules
398
+ */
399
+ analyzeQuery(sql: string): QueryAnalysis;
400
+ /**
401
+ * Match a pattern against a query
402
+ */
403
+ private matchPattern;
404
+ /**
405
+ * Get blocked query history
406
+ */
407
+ getBlockedHistory(options?: {
408
+ since?: Date;
409
+ operation?: QueryOperation;
410
+ limit?: number;
411
+ }): BlockedQuery[];
412
+ /**
413
+ * Get query log (if logging enabled)
414
+ */
415
+ getQueryLog(limit?: number): QueryAnalysis[];
416
+ /**
417
+ * Get all rules
418
+ */
419
+ getRules(): {
420
+ allowRules: FirewallRule[];
421
+ blockRules: FirewallRule[];
422
+ };
423
+ /**
424
+ * Get statistics
425
+ */
426
+ getStats(): {
427
+ totalBlocked: number;
428
+ totalAllowed: number;
429
+ blockedByOperation: Record<QueryOperation, number>;
430
+ allowRulesCount: number;
431
+ blockRulesCount: number;
432
+ isActive: boolean;
433
+ };
434
+ /**
435
+ * Apply CIS Benchmarks rules
436
+ */
437
+ applyCisRules(): void;
438
+ /**
439
+ * Apply PCI DSS rules
440
+ */
441
+ applyPciRules(): void;
442
+ /**
443
+ * Apply HIPAA rules
444
+ */
445
+ applyHipaaRules(): void;
446
+ /**
447
+ * Apply SOX rules
448
+ */
449
+ applySoxRules(): void;
450
+ /**
451
+ * Apply NIST CSF rules
452
+ */
453
+ applyNistRules(): void;
454
+ /**
455
+ * Apply OWASP SQL Injection patterns
456
+ */
457
+ applyOwaspRules(): void;
458
+ /**
459
+ * Apply all destructive operation rules
460
+ */
461
+ applyDestructiveRules(): void;
462
+ /**
463
+ * Apply all schema modification rules
464
+ */
465
+ applySchemaRules(): void;
466
+ /**
467
+ * Apply all permission rules
468
+ */
469
+ applyPermissionRules(): void;
470
+ /**
471
+ * Apply all file operation rules
472
+ */
473
+ applyFileRules(): void;
474
+ /**
475
+ * Apply all information gathering rules
476
+ */
477
+ applyInfoGatheringRules(): void;
478
+ /**
479
+ * Apply all code execution rules
480
+ */
481
+ applyCodeExecutionRules(): void;
482
+ /**
483
+ * Apply all transaction control rules
484
+ */
485
+ applyTransactionRules(): void;
486
+ /**
487
+ * Apply all remote operation rules
488
+ */
489
+ applyRemoteOperationRules(): void;
490
+ /**
491
+ * Apply all crypto operation rules
492
+ */
493
+ applyCryptoRules(): void;
494
+ /**
495
+ * Apply all backup operation rules
496
+ */
497
+ applyBackupRules(): void;
498
+ /**
499
+ * Apply database-specific rules
500
+ * @param database - 'postgresql' | 'mysql' | 'mariadb' | 'mssql' | 'oracle' | 'sqlite'
501
+ */
502
+ applyDatabaseRules(database: DatabaseType): void;
503
+ /**
504
+ * Apply all predefined security rules
505
+ */
506
+ applyAllSecurityRules(): void;
507
+ /**
508
+ * Apply predefined compliance framework rules
509
+ * @param framework - 'CIS', 'PCI', 'HIPAA', 'SOX', 'NIST', 'OWASP'
510
+ */
511
+ applyFrameworkRules(framework: 'CIS' | 'PCI' | 'HIPAA' | 'SOX' | 'NIST' | 'OWASP'): void;
512
+ /**
513
+ * Start the firewall - intercept queries
514
+ */
515
+ start(): void;
516
+ /**
517
+ * Stop the firewall - restore original query method
518
+ */
519
+ stop(): void;
520
+ /**
521
+ * Check if firewall is active
522
+ */
523
+ isFirewallActive(): boolean;
524
+ /**
525
+ * Clear blocked history
526
+ */
527
+ clearHistory(): void;
528
+ /**
529
+ * Clear query log
530
+ */
531
+ clearLog(): void;
532
+ /**
533
+ * Export rules for audit purposes
534
+ */
535
+ exportRules(): string;
536
+ /**
537
+ * Import rules from JSON
538
+ */
539
+ importRules(json: string): void;
540
+ }
541
+ /**
542
+ * Analyze a query for security issues (static method)
543
+ */
544
+ export declare function analyzeQuerySecurity(query: string): {
545
+ isSQLInjection: boolean;
546
+ isDangerousOperation: boolean;
547
+ riskLevel: 'low' | 'medium' | 'high' | 'critical';
548
+ detectedPatterns: string[];
549
+ };
550
+ /**
551
+ * Get recommended firewall rules for compliance frameworks
552
+ */
553
+ export declare function getRecommendedRules(frameworks: string[]): Array<{
554
+ type: FirewallRuleType;
555
+ pattern: string;
556
+ description: string;
557
+ }>;
558
+ export interface FirewallRuleDecoratorOptions {
559
+ /** Database type for database-specific rules */
560
+ database?: DatabaseType;
561
+ /** Additional rules to apply */
562
+ rules?: Array<{
563
+ pattern: string | RegExp;
564
+ description: string;
565
+ }>;
566
+ /** Block all Destructive operations */
567
+ blockDestructive?: boolean;
568
+ /** Block all Schema modifications */
569
+ blockSchemaModification?: boolean;
570
+ /** Block all Permission changes */
571
+ blockPermissions?: boolean;
572
+ /** Block all File operations */
573
+ blockFileOperations?: boolean;
574
+ /** Block all Information gathering */
575
+ blockInfoGathering?: boolean;
576
+ /** Block all Code execution */
577
+ blockCodeExecution?: boolean;
578
+ /** Block all Transaction control */
579
+ blockTransactions?: boolean;
580
+ /** Block all Remote operations */
581
+ blockRemoteOperations?: boolean;
582
+ }
583
+ /**
584
+ * Decorator to apply firewall rules to a model class
585
+ *
586
+ * @example
587
+ * // Block destructive operations and file operations on a model
588
+ * @FirewallRules({
589
+ * blockDestructive: true,
590
+ * blockFileOperations: true,
591
+ * })
592
+ * class SensitiveData extends Model { ... }
593
+ *
594
+ * // Apply database-specific rules
595
+ * @FirewallRules({
596
+ * database: 'postgresql',
597
+ * blockCodeExecution: true,
598
+ * })
599
+ * class UserDefinedFunction extends Model { ... }
600
+ *
601
+ * // Custom rules
602
+ * @FirewallRules({
603
+ * rules: [
604
+ * { pattern: /^SELECT\s+FROM\s+logs/i, description: 'Block log access' },
605
+ * ],
606
+ * })
607
+ * class AuditLog extends Model { ... }
608
+ */
609
+ export declare function FirewallRules(options?: FirewallRuleDecoratorOptions): (target: any) => void;
610
+ /**
611
+ * Decorator for PostgreSQL-specific firewall rules
612
+ *
613
+ * @example
614
+ * @PostgreSQLFirewall()
615
+ * class PostgresSensitive extends Model { ... }
616
+ */
617
+ export declare function PostgreSQLFirewall(): (target: any) => void;
618
+ /**
619
+ * Decorator for MySQL-specific firewall rules
620
+ *
621
+ * @example
622
+ * @MySQLFirewall()
623
+ * class MySQLSensitive extends Model { ... }
624
+ */
625
+ export declare function MySQLFirewall(): (target: any) => void;
626
+ /**
627
+ * Decorator for MariaDB-specific firewall rules
628
+ *
629
+ * @example
630
+ * @MariaDBFirewall()
631
+ * class MariaDBSensitive extends Model { ... }
632
+ */
633
+ export declare function MariaDBFirewall(): (target: any) => void;
634
+ /**
635
+ * Decorator for SQL Server-specific firewall rules
636
+ *
637
+ * @example
638
+ * @MSSQLFirewall()
639
+ * class MSSQLSensitive extends Model { ... }
640
+ */
641
+ export declare function MSSQLFirewall(): (target: any) => void;
642
+ /**
643
+ * Decorator for Oracle-specific firewall rules
644
+ *
645
+ * @example
646
+ * @OracleFirewall()
647
+ * class OracleSensitive extends Model { ... }
648
+ */
649
+ export declare function OracleFirewall(): (target: any) => void;
650
+ /**
651
+ * Decorator for SQLite-specific firewall rules
652
+ *
653
+ * @example
654
+ * @SQLiteFirewall()
655
+ * class SQLiteSensitive extends Model { ... }
656
+ */
657
+ export declare function SQLiteFirewall(): (target: any) => void;
658
+ /**
659
+ * Apply firewall rules from a decorated model to a firewall instance
660
+ */
661
+ export declare function applyFirewallRulesToModel(model: any, firewall: QueryFirewall): void;