rawsql-ts 0.10.8-beta → 0.11.0-beta

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 (52) hide show
  1. package/README.md +174 -44
  2. package/dist/esm/index.js +30 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/index.min.js +16 -14
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.js +4 -0
  7. package/dist/esm/src/index.js.map +1 -1
  8. package/dist/esm/src/transformers/DynamicQueryBuilder.js +155 -0
  9. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -0
  10. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js +16 -12
  11. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  12. package/dist/esm/src/transformers/SqlFormatter.js +1 -2
  13. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  14. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js +342 -0
  15. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  16. package/dist/esm/src/transformers/UnifiedJsonMapping.js +59 -0
  17. package/dist/esm/src/transformers/UnifiedJsonMapping.js.map +1 -0
  18. package/dist/esm/src/utils/JsonSchemaValidator.js +211 -0
  19. package/dist/esm/src/utils/JsonSchemaValidator.js.map +1 -0
  20. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  21. package/dist/esm/types/src/index.d.ts +4 -0
  22. package/dist/esm/types/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  23. package/dist/esm/types/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -1
  24. package/dist/esm/types/src/transformers/SqlFormatter.d.ts +2 -3
  25. package/dist/esm/types/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  26. package/dist/esm/types/src/transformers/UnifiedJsonMapping.d.ts +54 -0
  27. package/dist/esm/types/src/utils/JsonSchemaValidator.d.ts +81 -0
  28. package/dist/index.min.js +16 -14
  29. package/dist/index.min.js.map +4 -4
  30. package/dist/src/index.d.ts +4 -0
  31. package/dist/src/index.js +4 -0
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  34. package/dist/src/transformers/DynamicQueryBuilder.js +159 -0
  35. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -0
  36. package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -1
  37. package/dist/src/transformers/PostgresJsonQueryBuilder.js +16 -12
  38. package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  39. package/dist/src/transformers/SqlFormatter.d.ts +2 -3
  40. package/dist/src/transformers/SqlFormatter.js +1 -2
  41. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  42. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  43. package/dist/src/transformers/TypeTransformationPostProcessor.js +351 -0
  44. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  45. package/dist/src/transformers/UnifiedJsonMapping.d.ts +54 -0
  46. package/dist/src/transformers/UnifiedJsonMapping.js +62 -0
  47. package/dist/src/transformers/UnifiedJsonMapping.js.map +1 -0
  48. package/dist/src/utils/JsonSchemaValidator.d.ts +81 -0
  49. package/dist/src/utils/JsonSchemaValidator.js +215 -0
  50. package/dist/src/utils/JsonSchemaValidator.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +7 -4
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Enhanced JSON mapping structure that integrates column mapping and type protection configuration.
3
+ * This unified approach eliminates the need for separate .types.json files.
4
+ */
5
+ import { JsonMapping } from './PostgresJsonQueryBuilder';
6
+ /**
7
+ * Supported column type enforcement options.
8
+ */
9
+ export type ColumnType = 'string' | 'auto';
10
+ /**
11
+ * Column configuration that can either be a simple string mapping or an enhanced mapping with type control.
12
+ */
13
+ export type ColumnMappingConfig = string | {
14
+ column: string;
15
+ type?: ColumnType;
16
+ };
17
+ /**
18
+ * Enhanced JSON mapping configuration with integrated type protection.
19
+ */
20
+ export interface UnifiedJsonMapping {
21
+ rootName: string;
22
+ typeInfo?: {
23
+ interface: string;
24
+ importPath: string;
25
+ };
26
+ rootEntity: {
27
+ id: string;
28
+ name: string;
29
+ columns: Record<string, ColumnMappingConfig>;
30
+ };
31
+ nestedEntities?: Array<{
32
+ id: string;
33
+ name: string;
34
+ parentId: string;
35
+ propertyName: string;
36
+ relationshipType: 'object' | 'array';
37
+ columns: Record<string, ColumnMappingConfig>;
38
+ }>;
39
+ useJsonb?: boolean;
40
+ }
41
+ /**
42
+ * Type protection configuration extracted from the unified mapping.
43
+ */
44
+ export interface TypeProtectionConfig {
45
+ protectedStringFields: string[];
46
+ }
47
+ /**
48
+ * Convert a unified JSON mapping to separate JsonMapping and TypeProtectionConfig.
49
+ * This enables backward compatibility with existing code while supporting the new unified structure.
50
+ */
51
+ export declare function convertUnifiedMapping(unified: UnifiedJsonMapping): {
52
+ jsonMapping: JsonMapping;
53
+ typeProtection: TypeProtectionConfig;
54
+ };
@@ -0,0 +1,81 @@
1
+ import { JsonMapping } from '../transformers/PostgresJsonQueryBuilder';
2
+ /**
3
+ * Represents the structure extracted from JsonMapping analysis
4
+ */
5
+ export type ExtractedStructure = 'primitive' | {
6
+ [key: string]: ExtractedStructure;
7
+ } | ExtractedStructure[];
8
+ /**
9
+ * Represents the expected type structure for validation
10
+ */
11
+ export type ExpectedTypeStructure = 'primitive' | {
12
+ [key: string]: ExpectedTypeStructure;
13
+ } | ExpectedTypeStructure[];
14
+ /**
15
+ * Result of JsonMapping validation
16
+ */
17
+ export interface ValidationResult {
18
+ isValid: boolean;
19
+ errors: string[];
20
+ missingProperties: string[];
21
+ extraProperties: string[];
22
+ }
23
+ export declare class JsonSchemaValidator {
24
+ /**
25
+ * Validates JsonMapping structure against an expected type structure.
26
+ * Checks if the JsonMapping covers all required properties and relationships.
27
+ *
28
+ * @param jsonMapping The JsonMapping configuration to validate
29
+ * @param expectedStructure The expected type structure to validate against
30
+ * @returns ValidationResult containing validation status and detailed errors
31
+ */
32
+ static validate(jsonMapping: JsonMapping, expectedStructure: ExpectedTypeStructure): ValidationResult;
33
+ /**
34
+ * Validates JsonMapping structure and throws an error if validation fails.
35
+ * Convenience method for strict validation scenarios.
36
+ *
37
+ * @param jsonMapping The JsonMapping configuration to validate
38
+ * @param expectedStructure The expected type structure to validate against
39
+ * @throws Error if validation fails with detailed error messages
40
+ */
41
+ static validateStrict(jsonMapping: JsonMapping, expectedStructure: ExpectedTypeStructure): void;
42
+ /**
43
+ * Extracts structure information from JsonMapping configuration.
44
+ * Analyzes rootEntity and nestedEntities to build complete structure map.
45
+ *
46
+ * @param jsonMapping The JsonMapping to analyze
47
+ * @returns ExtractedStructure representing the mapping structure
48
+ */
49
+ private static extractStructureFromJsonMapping; /**
50
+ * Extracts structure from a nested entity, including its children.
51
+ */
52
+ private static extractNestedEntityStructure; /**
53
+ * Compares extracted structure with expected structure with proper type guards.
54
+ */
55
+ private static compareStructures;
56
+ /**
57
+ * Validates JsonMapping structure against a sample object that implements the expected type.
58
+ * This method extracts structure from the sample object and compares it with JsonMapping.
59
+ *
60
+ * @param jsonMapping The JsonMapping configuration to validate
61
+ * @param sampleObject A sample object that implements the expected interface/type
62
+ * @returns ValidationResult containing validation status and detailed errors
63
+ */
64
+ static validateAgainstSample<T>(jsonMapping: JsonMapping, sampleObject: T): ValidationResult;
65
+ /**
66
+ * Validates JsonMapping structure against a sample object and throws an error if validation fails.
67
+ * Convenience method for strict validation scenarios with sample objects.
68
+ *
69
+ * @param jsonMapping The JsonMapping configuration to validate
70
+ * @param sampleObject A sample object that implements the expected interface/type
71
+ * @throws Error if validation fails with detailed error messages
72
+ */
73
+ static validateAgainstSampleStrict<T>(jsonMapping: JsonMapping, sampleObject: T): void; /**
74
+ * Extracts structure information from a sample object.
75
+ * Recursively analyzes the object properties to build a structure map.
76
+ *
77
+ * @param sampleObject The sample object to analyze
78
+ * @returns ExpectedTypeStructure representing the object structure
79
+ */
80
+ private static extractStructureFromSample;
81
+ }