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