@xemahq/biome-database-nest 6.0.0 → 7.0.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/README.md +36 -0
- package/dist/bin/xema-org-erasure-graph.d.ts +3 -0
- package/dist/bin/xema-org-erasure-graph.d.ts.map +1 -0
- package/dist/bin/xema-org-erasure-graph.js +10 -0
- package/dist/bin/xema-org-erasure-graph.js.map +1 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/bootstrap.d.ts.map +1 -1
- package/dist/lib/bootstrap.js +17 -4
- package/dist/lib/bootstrap.js.map +1 -1
- package/dist/lib/migration-history.d.ts +1 -0
- package/dist/lib/migration-history.d.ts.map +1 -1
- package/dist/lib/migration-history.js +16 -3
- package/dist/lib/migration-history.js.map +1 -1
- package/dist/lib/nest/org-erasure.module.d.ts +1 -2
- package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
- package/dist/lib/nest/org-erasure.module.js +8 -10
- package/dist/lib/nest/org-erasure.module.js.map +1 -1
- package/dist/lib/nest/prisma-service-factory.d.ts +8 -2
- package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
- package/dist/lib/nest/prisma-service-factory.js +18 -20
- package/dist/lib/nest/prisma-service-factory.js.map +1 -1
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts +4 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js +37 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts +4 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js +40 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts +5 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js +94 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js.map +1 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts +15 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js +19 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts +22 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js +53 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts +11 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts +11 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.js +10 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts +14 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts +7 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js +13 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js.map +1 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js +33 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js.map +1 -0
- package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts +4 -0
- package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts.map +1 -1
- package/dist/lib/tenant-isolation/tenant-isolation.extension.js +12 -5
- package/dist/lib/tenant-isolation/tenant-isolation.extension.js.map +1 -1
- package/dist/lib/tenant-isolation/unscoped-models.d.ts +0 -2
- package/dist/lib/tenant-isolation/unscoped-models.d.ts.map +1 -1
- package/dist/lib/tenant-isolation/unscoped-models.js +0 -3
- package/dist/lib/tenant-isolation/unscoped-models.js.map +1 -1
- package/package.json +9 -5
- package/xema-peer-facts.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OrgErasureDmmfModel } from './org-erasure-dmmf';
|
|
2
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
3
|
+
export declare function buildOrgErasureGraph(models: readonly OrgErasureDmmfModel[]): OrgErasureGraph;
|
|
4
|
+
//# sourceMappingURL=build-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,qBAAqB,CAAC;AA6C7B,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC,eAAe,CAKjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildOrgErasureGraph = buildOrgErasureGraph;
|
|
4
|
+
const OBJECT_FIELD_KIND = 'object';
|
|
5
|
+
const CASCADE_ON_DELETE = 'Cascade';
|
|
6
|
+
function compareStrings(a, b) {
|
|
7
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
8
|
+
}
|
|
9
|
+
function isProvenCascade(field, scalarsByName) {
|
|
10
|
+
if (field.kind !== OBJECT_FIELD_KIND || field.isList) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const fkNames = field.relationFromFields ?? [];
|
|
14
|
+
if (fkNames.length === 0 || field.relationOnDelete !== CASCADE_ON_DELETE) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return fkNames.every((name) => scalarsByName.get(name)?.isRequired === true);
|
|
18
|
+
}
|
|
19
|
+
function buildModel(model) {
|
|
20
|
+
const byName = new Map(model.fields.map((f) => [f.name, f]));
|
|
21
|
+
const cascadeParents = model.fields
|
|
22
|
+
.filter((field) => isProvenCascade(field, byName))
|
|
23
|
+
.map((field) => ({ relationField: field.name, parentModel: field.type }))
|
|
24
|
+
.sort((a, b) => compareStrings(a.relationField, b.relationField) ||
|
|
25
|
+
compareStrings(a.parentModel, b.parentModel));
|
|
26
|
+
return {
|
|
27
|
+
fields: model.fields.map((f) => f.name).sort(compareStrings),
|
|
28
|
+
cascadeParents,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function buildOrgErasureGraph(models) {
|
|
32
|
+
const sorted = [...models].sort((a, b) => compareStrings(a.name, b.name));
|
|
33
|
+
return {
|
|
34
|
+
models: Object.fromEntries(sorted.map((m) => [m.name, buildModel(m)])),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=build-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":";;AAqDA,oDAOC;AAlDD,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAOD,SAAS,eAAe,CACtB,KAA0B,EAC1B,aAAuD;IAEvD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,UAAU,CAAC,KAA0B;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAA4B,KAAK,CAAC,MAAM;SACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SACxE,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC;QAChD,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,cAAc;KACf,CAAC;AACJ,CAAC;AAGD,SAAgB,oBAAoB,CAClC,MAAsC;IAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
2
|
+
import type { RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
|
|
3
|
+
export declare function assertOrgErasureGraphMatchesRuntime(graph: OrgErasureGraph, runtime: Readonly<Record<string, RuntimeDataModelModel>>): void;
|
|
4
|
+
//# sourceMappingURL=check-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAW5F,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GACvD,IAAI,CA2CN"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertOrgErasureGraphMatchesRuntime = assertOrgErasureGraphMatchesRuntime;
|
|
4
|
+
const org_erasure_coverage_errors_1 = require("./org-erasure-coverage-errors");
|
|
5
|
+
function sameSet(a, b) {
|
|
6
|
+
return a.length === b.length && a.every((name) => b.includes(name));
|
|
7
|
+
}
|
|
8
|
+
function assertOrgErasureGraphMatchesRuntime(graph, runtime) {
|
|
9
|
+
const problems = [];
|
|
10
|
+
const graphNames = Object.keys(graph.models);
|
|
11
|
+
const runtimeNames = Object.keys(runtime);
|
|
12
|
+
const missing = runtimeNames.filter((n) => !(n in graph.models)).sort();
|
|
13
|
+
const extra = graphNames.filter((n) => !(n in runtime)).sort();
|
|
14
|
+
if (missing.length > 0) {
|
|
15
|
+
problems.push(`models missing from the graph: ${missing.join(', ')}`);
|
|
16
|
+
}
|
|
17
|
+
if (extra.length > 0) {
|
|
18
|
+
problems.push(`graph models absent from the client: ${extra.join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
for (const name of graphNames.filter((n) => n in runtime).sort()) {
|
|
21
|
+
const graphModel = graph.models[name];
|
|
22
|
+
const runtimeFields = runtime[name].fields;
|
|
23
|
+
if (!sameSet(graphModel.fields, runtimeFields.map((f) => f.name))) {
|
|
24
|
+
problems.push(`model ${name}: field names differ from the client`);
|
|
25
|
+
}
|
|
26
|
+
for (const edge of graphModel.cascadeParents) {
|
|
27
|
+
const field = runtimeFields.find((f) => f.name === edge.relationField);
|
|
28
|
+
if (field?.kind !== 'object' || field.type !== edge.parentModel) {
|
|
29
|
+
problems.push(`model ${name}: edge ${edge.relationField} -> ${edge.parentModel} is not a relation to that model in the client`);
|
|
30
|
+
}
|
|
31
|
+
if (!(edge.parentModel in graph.models)) {
|
|
32
|
+
problems.push(`model ${name}: edge ${edge.relationField} names unknown parent ${edge.parentModel}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (problems.length > 0) {
|
|
37
|
+
throw new org_erasure_coverage_errors_1.OrgErasureGraphMismatchError(problems);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=check-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
|
|
2
|
+
import type { OrgErasureCoverage } from './org-erasure-coverage';
|
|
3
|
+
import type { OrgErasureCoverageOptions } from './org-erasure-coverage-options';
|
|
4
|
+
export declare function classifyOrgErasureCoverage(runtime: Readonly<Record<string, RuntimeDataModelModel>>, options: OrgErasureCoverageOptions): OrgErasureCoverage;
|
|
5
|
+
//# sourceMappingURL=classify-org-erasure-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-org-erasure-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/classify-org-erasure-coverage.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAwChF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EACxD,OAAO,EAAE,yBAAyB,GACjC,kBAAkB,CAmFpB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.classifyOrgErasureCoverage = classifyOrgErasureCoverage;
|
|
4
|
+
const check_org_erasure_graph_1 = require("./check-org-erasure-graph");
|
|
5
|
+
const org_erasure_coverage_errors_1 = require("./org-erasure-coverage-errors");
|
|
6
|
+
const org_erasure_disposition_1 = require("./org-erasure-disposition");
|
|
7
|
+
const org_erasure_1 = require("../tenant-isolation/org-erasure");
|
|
8
|
+
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
9
|
+
const DISPOSITIONS = Object.values(org_erasure_disposition_1.OrgErasureDisposition);
|
|
10
|
+
function findReachable(graph, swept) {
|
|
11
|
+
const reachable = {};
|
|
12
|
+
const names = Object.keys(graph.models).sort();
|
|
13
|
+
let changed = true;
|
|
14
|
+
while (changed) {
|
|
15
|
+
changed = false;
|
|
16
|
+
for (const name of names) {
|
|
17
|
+
if (swept.has(name) || name in reachable) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const edge = graph.models[name].cascadeParents.find((e) => swept.has(e.parentModel) || e.parentModel in reachable);
|
|
21
|
+
if (edge !== undefined) {
|
|
22
|
+
reachable[name] = edge.parentModel;
|
|
23
|
+
changed = true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return reachable;
|
|
28
|
+
}
|
|
29
|
+
function classifyOrgErasureCoverage(runtime, options) {
|
|
30
|
+
(0, check_org_erasure_graph_1.assertOrgErasureGraphMatchesRuntime)(options.graph, runtime);
|
|
31
|
+
const modelNames = Object.keys(runtime).sort();
|
|
32
|
+
const sweep = options.sweep === undefined
|
|
33
|
+
? undefined
|
|
34
|
+
: {
|
|
35
|
+
orgField: options.sweep.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD,
|
|
36
|
+
exemptModels: options.sweep.exemptModels ?? [],
|
|
37
|
+
};
|
|
38
|
+
const unknownExemptModels = sweep === undefined
|
|
39
|
+
? []
|
|
40
|
+
: [...(0, tenant_isolation_extension_1.findUnknownModels)(runtime, sweep.exemptModels)].sort();
|
|
41
|
+
const swept = sweep === undefined
|
|
42
|
+
? new Set()
|
|
43
|
+
: (0, tenant_isolation_extension_1.selectOrgScopedModels)(runtime, sweep.orgField, sweep.exemptModels);
|
|
44
|
+
if (sweep !== undefined && swept.size === 0) {
|
|
45
|
+
throw new org_erasure_1.OrgErasureMatchesNothingError(sweep.orgField, modelNames, sweep.exemptModels);
|
|
46
|
+
}
|
|
47
|
+
const reachable = findReachable(options.graph, swept);
|
|
48
|
+
const declarations = options.declarations ?? {};
|
|
49
|
+
const unknownDeclarations = [];
|
|
50
|
+
const blankReasons = [];
|
|
51
|
+
const invalidDispositions = [];
|
|
52
|
+
const declaredButErased = [];
|
|
53
|
+
const declared = {};
|
|
54
|
+
for (const [name, declaration] of Object.entries(declarations).sort(([a], [b]) => (a < b ? -1 : 1))) {
|
|
55
|
+
if (!(name in runtime)) {
|
|
56
|
+
unknownDeclarations.push(name);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (declaration.reason.trim().length === 0) {
|
|
60
|
+
blankReasons.push(name);
|
|
61
|
+
}
|
|
62
|
+
if (!DISPOSITIONS.includes(declaration.disposition)) {
|
|
63
|
+
invalidDispositions.push(name);
|
|
64
|
+
}
|
|
65
|
+
if (swept.has(name) || name in reachable) {
|
|
66
|
+
declaredButErased.push(name);
|
|
67
|
+
}
|
|
68
|
+
declared[name] = declaration;
|
|
69
|
+
}
|
|
70
|
+
const unaccounted = modelNames.filter((name) => !swept.has(name) && !(name in reachable) && !(name in declared));
|
|
71
|
+
if (unaccounted.length +
|
|
72
|
+
unknownDeclarations.length +
|
|
73
|
+
blankReasons.length +
|
|
74
|
+
invalidDispositions.length +
|
|
75
|
+
declaredButErased.length +
|
|
76
|
+
unknownExemptModels.length >
|
|
77
|
+
0) {
|
|
78
|
+
throw new org_erasure_coverage_errors_1.OrgErasureCoverageError({
|
|
79
|
+
unaccounted,
|
|
80
|
+
unknownDeclarations,
|
|
81
|
+
blankReasons,
|
|
82
|
+
invalidDispositions,
|
|
83
|
+
declaredButErased,
|
|
84
|
+
unknownExemptModels,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
sweep,
|
|
89
|
+
swept: [...swept].sort(),
|
|
90
|
+
reachable,
|
|
91
|
+
declared,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=classify-org-erasure-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-org-erasure-coverage.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/classify-org-erasure-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OrgErasureDmmfModel } from './org-erasure-dmmf';
|
|
2
|
+
export interface OrgErasureGraphGeneratorOptions {
|
|
3
|
+
readonly generator: {
|
|
4
|
+
readonly output: {
|
|
5
|
+
readonly value: string | null;
|
|
6
|
+
} | null;
|
|
7
|
+
};
|
|
8
|
+
readonly dmmf: {
|
|
9
|
+
readonly datamodel: {
|
|
10
|
+
readonly models: readonly OrgErasureDmmfModel[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function generateOrgErasureGraph(options: OrgErasureGraphGeneratorOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=generate-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/generate-org-erasure-graph.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAiB9D,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KAC3D,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,SAAS,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAGD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateOrgErasureGraph = generateOrgErasureGraph;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const build_org_erasure_graph_1 = require("./build-org-erasure-graph");
|
|
7
|
+
const render_org_erasure_graph_module_1 = require("./render-org-erasure-graph-module");
|
|
8
|
+
async function generateOrgErasureGraph(options) {
|
|
9
|
+
const output = options.generator.output?.value;
|
|
10
|
+
if (output === null || output === undefined || output === '') {
|
|
11
|
+
throw new Error('[xema-org-erasure-graph] the generator block must set `output`, e.g. ' +
|
|
12
|
+
'output = "../node_modules/.prisma/<service>-org-erasure-graph".');
|
|
13
|
+
}
|
|
14
|
+
const { js, dts } = (0, render_org_erasure_graph_module_1.renderOrgErasureGraphModule)((0, build_org_erasure_graph_1.buildOrgErasureGraph)(options.dmmf.datamodel.models));
|
|
15
|
+
await (0, promises_1.mkdir)(output, { recursive: true });
|
|
16
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(output, 'index.js'), js);
|
|
17
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(output, 'index.d.ts'), dts);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=generate-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/generate-org-erasure-graph.ts"],"names":[],"mappings":";;AAiCA,0DAgBC;AAjDD,+CAAoD;AACpD,yCAAiC;AAEjC,uEAAiE;AACjE,uFAAgF;AA6BzE,KAAK,UAAU,uBAAuB,CAC3C,OAAwC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,6DAA2B,EAC7C,IAAA,8CAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACpD,CAAC;IACF,MAAM,IAAA,gBAAK,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class OrgErasureGraphMismatchError extends Error {
|
|
2
|
+
readonly problems: readonly string[];
|
|
3
|
+
constructor(problems: readonly string[]);
|
|
4
|
+
}
|
|
5
|
+
export interface OrgErasureCoverageProblems {
|
|
6
|
+
readonly unaccounted: readonly string[];
|
|
7
|
+
readonly unknownDeclarations: readonly string[];
|
|
8
|
+
readonly blankReasons: readonly string[];
|
|
9
|
+
readonly invalidDispositions: readonly string[];
|
|
10
|
+
readonly declaredButErased: readonly string[];
|
|
11
|
+
readonly unknownExemptModels: readonly string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class OrgErasureCoverageError extends Error implements OrgErasureCoverageProblems {
|
|
14
|
+
readonly unaccounted: readonly string[];
|
|
15
|
+
readonly unknownDeclarations: readonly string[];
|
|
16
|
+
readonly blankReasons: readonly string[];
|
|
17
|
+
readonly invalidDispositions: readonly string[];
|
|
18
|
+
readonly declaredButErased: readonly string[];
|
|
19
|
+
readonly unknownExemptModels: readonly string[];
|
|
20
|
+
constructor(problems: OrgErasureCoverageProblems);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=org-erasure-coverage-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;gBAA3B,QAAQ,EAAE,SAAS,MAAM,EAAE;CAUjD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAYD,qBAAa,uBACX,SAAQ,KACR,YAAW,0BAA0B;IAErC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEpC,QAAQ,EAAE,0BAA0B;CAuCjD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrgErasureCoverageError = exports.OrgErasureGraphMismatchError = void 0;
|
|
4
|
+
class OrgErasureGraphMismatchError extends Error {
|
|
5
|
+
problems;
|
|
6
|
+
constructor(problems) {
|
|
7
|
+
super('[org-erasure] REFUSING TO START - the org-erasure graph does not match ' +
|
|
8
|
+
'the Prisma client. Run `prisma generate` with the ' +
|
|
9
|
+
'`xema-org-erasure-graph` generator so the graph is rebuilt from the ' +
|
|
10
|
+
'current schema:\n' +
|
|
11
|
+
problems.map((p) => ` - ${p}`).join('\n'));
|
|
12
|
+
this.problems = problems;
|
|
13
|
+
this.name = 'OrgErasureGraphMismatchError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.OrgErasureGraphMismatchError = OrgErasureGraphMismatchError;
|
|
17
|
+
function section(title, names) {
|
|
18
|
+
return names.length === 0
|
|
19
|
+
? []
|
|
20
|
+
: [` ${title} (${names.length}):`, ` ${names.join(', ')}`];
|
|
21
|
+
}
|
|
22
|
+
class OrgErasureCoverageError extends Error {
|
|
23
|
+
unaccounted;
|
|
24
|
+
unknownDeclarations;
|
|
25
|
+
blankReasons;
|
|
26
|
+
invalidDispositions;
|
|
27
|
+
declaredButErased;
|
|
28
|
+
unknownExemptModels;
|
|
29
|
+
constructor(problems) {
|
|
30
|
+
super([
|
|
31
|
+
'[org-erasure] REFUSING TO START - personal data could be silently ' +
|
|
32
|
+
'left unerased.',
|
|
33
|
+
...section('models neither swept by the org-data erasure, cascade-deleted from a swept model, nor declared', problems.unaccounted),
|
|
34
|
+
...section('orgErasure.declarations name models that do not exist', problems.unknownDeclarations),
|
|
35
|
+
...section('declarations with a blank reason', problems.blankReasons),
|
|
36
|
+
...section('declarations with a disposition outside OrgErasureDisposition', problems.invalidDispositions),
|
|
37
|
+
...section('declared models that ARE erased (swept or cascade-deleted); remove the declaration', problems.declaredButErased),
|
|
38
|
+
...section('orgErasure.sweep.exemptModels name models that do not exist', problems.unknownExemptModels),
|
|
39
|
+
' Fix: declare each unaccounted model in orgErasure.declarations:',
|
|
40
|
+
" { Foo: { disposition: OrgErasureDisposition.NotPersonalData, reason: '...' } }",
|
|
41
|
+
' (NotPersonalData | Retained | ErasedByServiceEraser), or give it the org column / a required ON DELETE CASCADE relation to a swept model.',
|
|
42
|
+
].join('\n'));
|
|
43
|
+
this.name = 'OrgErasureCoverageError';
|
|
44
|
+
this.unaccounted = problems.unaccounted;
|
|
45
|
+
this.unknownDeclarations = problems.unknownDeclarations;
|
|
46
|
+
this.blankReasons = problems.blankReasons;
|
|
47
|
+
this.invalidDispositions = problems.invalidDispositions;
|
|
48
|
+
this.declaredButErased = problems.declaredButErased;
|
|
49
|
+
this.unknownExemptModels = problems.unknownExemptModels;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OrgErasureCoverageError = OrgErasureCoverageError;
|
|
53
|
+
//# sourceMappingURL=org-erasure-coverage-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-errors.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,4BAA6B,SAAQ,KAAK;IAChC;IAArB,YAAqB,QAA2B;QAC9C,KAAK,CACH,yEAAyE;YACvE,oDAAoD;YACpD,sEAAsE;YACtE,mBAAmB;YACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;QAPiB,aAAQ,GAAR,QAAQ,CAAmB;QAQ9C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAXD,oEAWC;AAWD,SAAS,OAAO,CAAC,KAAa,EAAE,KAAwB;IACtD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAMD,MAAa,uBACX,SAAQ,KAAK;IAGJ,WAAW,CAAoB;IAC/B,mBAAmB,CAAoB;IACvC,YAAY,CAAoB;IAChC,mBAAmB,CAAoB;IACvC,iBAAiB,CAAoB;IACrC,mBAAmB,CAAoB;IAEhD,YAAY,QAAoC;QAC9C,KAAK,CACH;YACE,oEAAoE;gBAClE,gBAAgB;YAClB,GAAG,OAAO,CACR,gGAAgG,EAChG,QAAQ,CAAC,WAAW,CACrB;YACD,GAAG,OAAO,CACR,uDAAuD,EACvD,QAAQ,CAAC,mBAAmB,CAC7B;YACD,GAAG,OAAO,CAAC,kCAAkC,EAAE,QAAQ,CAAC,YAAY,CAAC;YACrE,GAAG,OAAO,CACR,+DAA+D,EAC/D,QAAQ,CAAC,mBAAmB,CAC7B;YACD,GAAG,OAAO,CACR,oFAAoF,EACpF,QAAQ,CAAC,iBAAiB,CAC3B;YACD,GAAG,OAAO,CACR,6DAA6D,EAC7D,QAAQ,CAAC,mBAAmB,CAC7B;YACD,mEAAmE;YACnE,oFAAoF;YACpF,6IAA6I;SAC9I,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QACpD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,CAAC;CACF;AAlDD,0DAkDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OrgErasureDeclarations } from './org-erasure-disposition';
|
|
2
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
3
|
+
export interface OrgErasureSweep {
|
|
4
|
+
readonly orgField?: string;
|
|
5
|
+
readonly exemptModels?: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
export interface OrgErasureCoverageOptions {
|
|
8
|
+
readonly graph: OrgErasureGraph;
|
|
9
|
+
readonly sweep?: OrgErasureSweep;
|
|
10
|
+
readonly declarations?: OrgErasureDeclarations;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=org-erasure-coverage-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-options.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAOD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-options.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OrgErasureDeclaration } from './org-erasure-disposition';
|
|
2
|
+
export interface OrgErasureCoverage {
|
|
3
|
+
readonly sweep: {
|
|
4
|
+
readonly orgField: string;
|
|
5
|
+
readonly exemptModels: readonly string[];
|
|
6
|
+
} | undefined;
|
|
7
|
+
readonly swept: readonly string[];
|
|
8
|
+
readonly reachable: Readonly<Record<string, string>>;
|
|
9
|
+
readonly declared: Readonly<Record<string, OrgErasureDeclaration>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=org-erasure-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EACV;QACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1C,GACD,SAAS,CAAC;IAEd,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;CACpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum OrgErasureDisposition {
|
|
2
|
+
NotPersonalData = "not-personal-data",
|
|
3
|
+
Retained = "retained",
|
|
4
|
+
ErasedByServiceEraser = "erased-by-service-eraser"
|
|
5
|
+
}
|
|
6
|
+
export interface OrgErasureDeclaration {
|
|
7
|
+
readonly disposition: OrgErasureDisposition;
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
}
|
|
10
|
+
export type OrgErasureDeclarations = Readonly<Record<string, OrgErasureDeclaration>>;
|
|
11
|
+
//# sourceMappingURL=org-erasure-disposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-disposition.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-disposition.ts"],"names":[],"mappings":"AAKA,oBAAY,qBAAqB;IAE/B,eAAe,sBAAsB;IAErC,QAAQ,aAAa;IAErB,qBAAqB,6BAA6B;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAE5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrgErasureDisposition = void 0;
|
|
4
|
+
var OrgErasureDisposition;
|
|
5
|
+
(function (OrgErasureDisposition) {
|
|
6
|
+
OrgErasureDisposition["NotPersonalData"] = "not-personal-data";
|
|
7
|
+
OrgErasureDisposition["Retained"] = "retained";
|
|
8
|
+
OrgErasureDisposition["ErasedByServiceEraser"] = "erased-by-service-eraser";
|
|
9
|
+
})(OrgErasureDisposition || (exports.OrgErasureDisposition = OrgErasureDisposition = {}));
|
|
10
|
+
//# sourceMappingURL=org-erasure-disposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-disposition.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-disposition.ts"],"names":[],"mappings":";;;AAKA,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAE/B,8DAAqC,CAAA;IAErC,8CAAqB,CAAA;IAErB,2EAAkD,CAAA;AACpD,CAAC,EAPW,qBAAqB,qCAArB,qBAAqB,QAOhC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface OrgErasureDmmfField {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly kind: string;
|
|
4
|
+
readonly isList: boolean;
|
|
5
|
+
readonly isRequired: boolean;
|
|
6
|
+
readonly type: string;
|
|
7
|
+
readonly relationFromFields?: readonly string[];
|
|
8
|
+
readonly relationOnDelete?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface OrgErasureDmmfModel {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly fields: readonly OrgErasureDmmfField[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=org-erasure-dmmf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-dmmf.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-dmmf.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-dmmf.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-dmmf.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface OrgErasureCascadeEdge {
|
|
2
|
+
readonly relationField: string;
|
|
3
|
+
readonly parentModel: string;
|
|
4
|
+
}
|
|
5
|
+
export interface OrgErasureGraphModel {
|
|
6
|
+
readonly fields: readonly string[];
|
|
7
|
+
readonly cascadeParents: readonly OrgErasureCascadeEdge[];
|
|
8
|
+
}
|
|
9
|
+
export interface OrgErasureGraph {
|
|
10
|
+
readonly models: Readonly<Record<string, OrgErasureGraphModel>>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-graph.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,QAAQ,CAAC,cAAc,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CACjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-graph.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
2
|
+
export interface RenderedOrgErasureGraphModule {
|
|
3
|
+
readonly js: string;
|
|
4
|
+
readonly dts: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function renderOrgErasureGraphModule(graph: OrgErasureGraph): RenderedOrgErasureGraphModule;
|
|
7
|
+
//# sourceMappingURL=render-org-erasure-graph-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-org-erasure-graph-module.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/render-org-erasure-graph-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,6BAA6B;IAE5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAGD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,GACrB,6BAA6B,CAU/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderOrgErasureGraphModule = renderOrgErasureGraphModule;
|
|
4
|
+
function renderOrgErasureGraphModule(graph) {
|
|
5
|
+
return {
|
|
6
|
+
js: '"use strict";\n' +
|
|
7
|
+
'Object.defineProperty(exports, "__esModule", { value: true });\n' +
|
|
8
|
+
`exports.orgErasureGraph = ${JSON.stringify(graph, null, 2)};\n`,
|
|
9
|
+
dts: "import type { OrgErasureGraph } from '@xemahq/biome-database-nest';\n" +
|
|
10
|
+
'export declare const orgErasureGraph: OrgErasureGraph;\n',
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=render-org-erasure-graph-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-org-erasure-graph-module.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/render-org-erasure-graph-module.ts"],"names":[],"mappings":";;AAUA,kEAYC;AAZD,SAAgB,2BAA2B,CACzC,KAAsB;IAEtB,OAAO;QACL,EAAE,EACA,iBAAiB;YACjB,kEAAkE;YAClE,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK;QAClE,GAAG,EACD,uEAAuE;YACvE,0DAA0D;KAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OrgErasureCoverage } from './org-erasure-coverage';
|
|
2
|
+
import type { OrgErasureCoverageOptions } from './org-erasure-coverage-options';
|
|
3
|
+
import type { OrgErasureReport } from '@xemahq/org-erasure-nest';
|
|
4
|
+
export interface OrgErasureApi {
|
|
5
|
+
readonly orgErasureCoverage: OrgErasureCoverage;
|
|
6
|
+
eraseOrg(orgId: string): Promise<OrgErasureReport>;
|
|
7
|
+
}
|
|
8
|
+
export interface OrgErasureCoverageLogger {
|
|
9
|
+
log(message: string): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveOrgErasureApi(raw: unknown, options: OrgErasureCoverageOptions, logger: OrgErasureCoverageLogger): OrgErasureApi;
|
|
12
|
+
//# sourceMappingURL=resolve-org-erasure-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-org-erasure-api.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/resolve-org-erasure-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEhD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAMD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,yBAAyB,EAClC,MAAM,EAAE,wBAAwB,GAC/B,aAAa,CA+Bf"}
|