prisma-safe-delete 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +21 -0
  3. package/README.md +436 -0
  4. package/dist/bin.d.ts +9 -0
  5. package/dist/bin.d.ts.map +1 -0
  6. package/dist/bin.js +9 -0
  7. package/dist/bin.js.map +1 -0
  8. package/dist/cascade-graph.d.ts +54 -0
  9. package/dist/cascade-graph.d.ts.map +1 -0
  10. package/dist/cascade-graph.js +123 -0
  11. package/dist/cascade-graph.js.map +1 -0
  12. package/dist/codegen/emit-cascade-graph.d.ts +6 -0
  13. package/dist/codegen/emit-cascade-graph.d.ts.map +1 -0
  14. package/dist/codegen/emit-cascade-graph.js +56 -0
  15. package/dist/codegen/emit-cascade-graph.js.map +1 -0
  16. package/dist/codegen/emit-index.d.ts +6 -0
  17. package/dist/codegen/emit-index.d.ts.map +1 -0
  18. package/dist/codegen/emit-index.js +26 -0
  19. package/dist/codegen/emit-index.js.map +1 -0
  20. package/dist/codegen/emit-runtime.d.ts +8 -0
  21. package/dist/codegen/emit-runtime.d.ts.map +1 -0
  22. package/dist/codegen/emit-runtime.js +873 -0
  23. package/dist/codegen/emit-runtime.js.map +1 -0
  24. package/dist/codegen/emit-types.d.ts +8 -0
  25. package/dist/codegen/emit-types.d.ts.map +1 -0
  26. package/dist/codegen/emit-types.js +109 -0
  27. package/dist/codegen/emit-types.js.map +1 -0
  28. package/dist/codegen/index.d.ts +5 -0
  29. package/dist/codegen/index.d.ts.map +1 -0
  30. package/dist/codegen/index.js +5 -0
  31. package/dist/codegen/index.js.map +1 -0
  32. package/dist/dmmf-parser.d.ts +62 -0
  33. package/dist/dmmf-parser.d.ts.map +1 -0
  34. package/dist/dmmf-parser.js +171 -0
  35. package/dist/dmmf-parser.js.map +1 -0
  36. package/dist/generator.d.ts +2 -0
  37. package/dist/generator.d.ts.map +1 -0
  38. package/dist/generator.js +71 -0
  39. package/dist/generator.js.map +1 -0
  40. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-graph.js","sourceRoot":"","sources":["../src/cascade-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CascadeGraph } from '../cascade-graph.js';
2
+ /**
3
+ * Generates TypeScript code for the cascade graph constant
4
+ */
5
+ export declare function emitCascadeGraph(graph: CascadeGraph): string;
6
+ //# sourceMappingURL=emit-cascade-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-cascade-graph.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-cascade-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAEtE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA4C5D"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Generates TypeScript code for the cascade graph constant
3
+ */
4
+ export function emitCascadeGraph(graph) {
5
+ const lines = [];
6
+ lines.push('/* eslint-disable */');
7
+ lines.push('// @ts-nocheck');
8
+ lines.push('// Auto-generated by prisma-safe-delete');
9
+ lines.push('// Do not edit this file manually');
10
+ lines.push('');
11
+ lines.push('/** Cascade child configuration */');
12
+ lines.push('export interface CascadeChild {');
13
+ lines.push(' model: string;');
14
+ lines.push(' foreignKey: string[];');
15
+ lines.push(' parentKey: string[];');
16
+ lines.push(' isSoftDeletable: boolean;');
17
+ lines.push(' deletedAtField: string | null;');
18
+ lines.push('}');
19
+ lines.push('');
20
+ lines.push('/** Maps parent model names to their cascade children */');
21
+ lines.push('export type CascadeGraph = Record<string, CascadeChild[]>;');
22
+ lines.push('');
23
+ lines.push('/** The cascade graph for this schema */');
24
+ lines.push('export const CASCADE_GRAPH: CascadeGraph = {');
25
+ const entries = Object.entries(graph);
26
+ for (let i = 0; i < entries.length; i++) {
27
+ const entry = entries[i];
28
+ if (entry === undefined)
29
+ continue;
30
+ const [modelName, children] = entry;
31
+ const isLast = i === entries.length - 1;
32
+ lines.push(` ${JSON.stringify(modelName)}: ${formatChildrenArray(children)}${isLast ? '' : ','}`);
33
+ }
34
+ lines.push('};');
35
+ lines.push('');
36
+ // Export model list for convenience
37
+ lines.push('/** List of all model names */');
38
+ lines.push(`export const MODEL_NAMES = ${JSON.stringify(Object.keys(graph))} as const;`);
39
+ lines.push('');
40
+ lines.push('/** Type for model names */');
41
+ lines.push('export type ModelName = typeof MODEL_NAMES[number];');
42
+ return lines.join('\n');
43
+ }
44
+ function formatChildrenArray(children) {
45
+ if (children.length === 0) {
46
+ return '[]';
47
+ }
48
+ const formatted = children.map((child) => {
49
+ return JSON.stringify(child);
50
+ });
51
+ if (formatted.join(', ').length < 80) {
52
+ return `[${formatted.join(', ')}]`;
53
+ }
54
+ return `[\n ${formatted.join(',\n ')}\n ]`;
55
+ }
56
+ //# sourceMappingURL=emit-cascade-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-cascade-graph.js","sourceRoot":"","sources":["../../src/codegen/emit-cascade-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ParsedSchema } from '../dmmf-parser.js';
2
+ /**
3
+ * Generates the main index.ts export file
4
+ */
5
+ export declare function emitIndex(schema: ParsedSchema): string;
6
+ //# sourceMappingURL=emit-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-index.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAyBtD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generates the main index.ts export file
3
+ */
4
+ export function emitIndex(schema) {
5
+ const lines = [];
6
+ lines.push('/* eslint-disable */');
7
+ lines.push('// @ts-nocheck');
8
+ lines.push('// Auto-generated by prisma-safe-delete');
9
+ lines.push('// Do not edit this file manually');
10
+ lines.push('');
11
+ lines.push('// Re-export types');
12
+ lines.push("export type { SafePrismaClient, IncludingDeletedClient, OnlyDeletedClient } from './types.js';");
13
+ // Export individual delegate types
14
+ for (const model of schema.models) {
15
+ lines.push(`export type { Safe${model.name}Delegate } from './types.js';`);
16
+ }
17
+ lines.push('');
18
+ lines.push('// Re-export cascade graph');
19
+ lines.push("export { CASCADE_GRAPH, MODEL_NAMES } from './cascade-graph.js';");
20
+ lines.push("export type { CascadeGraph, CascadeChild, ModelName } from './cascade-graph.js';");
21
+ lines.push('');
22
+ lines.push('// Re-export wrapper function');
23
+ lines.push("export { wrapPrismaClient } from './runtime.js';");
24
+ return lines.join('\n');
25
+ }
26
+ //# sourceMappingURL=emit-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-index.js","sourceRoot":"","sources":["../../src/codegen/emit-index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAoB;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IAE7G,mCAAmC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,+BAA+B,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAE/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ParsedSchema } from '../dmmf-parser.js';
2
+ /**
3
+ * Generates the runtime wrapper functions
4
+ * @param schema - The parsed Prisma schema
5
+ * @param clientImportPath - The relative import path to the generated Prisma client (e.g., '../client')
6
+ */
7
+ export declare function emitRuntime(schema: ParsedSchema, clientImportPath: string): string;
8
+ //# sourceMappingURL=emit-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-runtime.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAyGlF"}