sof-mssql 1.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.
Files changed (135) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +346 -0
  3. package/dist/cli.d.ts +7 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +85 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/fhirpath/transpiler.d.ts +18 -0
  8. package/dist/fhirpath/transpiler.d.ts.map +1 -0
  9. package/dist/fhirpath/transpiler.js +82 -0
  10. package/dist/fhirpath/transpiler.js.map +1 -0
  11. package/dist/fhirpath/visitor.d.ts +153 -0
  12. package/dist/fhirpath/visitor.d.ts.map +1 -0
  13. package/dist/fhirpath/visitor.js +1295 -0
  14. package/dist/fhirpath/visitor.js.map +1 -0
  15. package/dist/generated/grammar/fhirpathLexer.d.ts +88 -0
  16. package/dist/generated/grammar/fhirpathLexer.d.ts.map +1 -0
  17. package/dist/generated/grammar/fhirpathLexer.js +598 -0
  18. package/dist/generated/grammar/fhirpathLexer.js.map +1 -0
  19. package/dist/generated/grammar/fhirpathListener.d.ts +589 -0
  20. package/dist/generated/grammar/fhirpathListener.d.ts.map +1 -0
  21. package/dist/generated/grammar/fhirpathListener.js +4 -0
  22. package/dist/generated/grammar/fhirpathListener.js.map +1 -0
  23. package/dist/generated/grammar/fhirpathParser.d.ts +470 -0
  24. package/dist/generated/grammar/fhirpathParser.d.ts.map +1 -0
  25. package/dist/generated/grammar/fhirpathParser.js +3022 -0
  26. package/dist/generated/grammar/fhirpathParser.js.map +1 -0
  27. package/dist/generated/grammar/fhirpathVisitor.d.ts +372 -0
  28. package/dist/generated/grammar/fhirpathVisitor.d.ts.map +1 -0
  29. package/dist/generated/grammar/fhirpathVisitor.js +4 -0
  30. package/dist/generated/grammar/fhirpathVisitor.js.map +1 -0
  31. package/dist/index.d.ts +28 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +42 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/load.d.ts +14 -0
  36. package/dist/load.d.ts.map +1 -0
  37. package/dist/load.js +115 -0
  38. package/dist/load.js.map +1 -0
  39. package/dist/loader/connection.d.ts +36 -0
  40. package/dist/loader/connection.d.ts.map +1 -0
  41. package/dist/loader/connection.js +106 -0
  42. package/dist/loader/connection.js.map +1 -0
  43. package/dist/loader/discovery.d.ts +38 -0
  44. package/dist/loader/discovery.d.ts.map +1 -0
  45. package/dist/loader/discovery.js +107 -0
  46. package/dist/loader/discovery.js.map +1 -0
  47. package/dist/loader/index.d.ts +24 -0
  48. package/dist/loader/index.d.ts.map +1 -0
  49. package/dist/loader/index.js +193 -0
  50. package/dist/loader/index.js.map +1 -0
  51. package/dist/loader/progress.d.ts +70 -0
  52. package/dist/loader/progress.d.ts.map +1 -0
  53. package/dist/loader/progress.js +206 -0
  54. package/dist/loader/progress.js.map +1 -0
  55. package/dist/loader/stream.d.ts +21 -0
  56. package/dist/loader/stream.d.ts.map +1 -0
  57. package/dist/loader/stream.js +103 -0
  58. package/dist/loader/stream.js.map +1 -0
  59. package/dist/loader/tables.d.ts +43 -0
  60. package/dist/loader/tables.d.ts.map +1 -0
  61. package/dist/loader/tables.js +88 -0
  62. package/dist/loader/tables.js.map +1 -0
  63. package/dist/loader/types.d.ts +134 -0
  64. package/dist/loader/types.d.ts.map +1 -0
  65. package/dist/loader/types.js +8 -0
  66. package/dist/loader/types.js.map +1 -0
  67. package/dist/parser.d.ts +60 -0
  68. package/dist/parser.d.ts.map +1 -0
  69. package/dist/parser.js +226 -0
  70. package/dist/parser.js.map +1 -0
  71. package/dist/queryGenerator/ColumnExpressionGenerator.d.ts +52 -0
  72. package/dist/queryGenerator/ColumnExpressionGenerator.d.ts.map +1 -0
  73. package/dist/queryGenerator/ColumnExpressionGenerator.js +144 -0
  74. package/dist/queryGenerator/ColumnExpressionGenerator.js.map +1 -0
  75. package/dist/queryGenerator/ForEachProcessor.d.ts +127 -0
  76. package/dist/queryGenerator/ForEachProcessor.d.ts.map +1 -0
  77. package/dist/queryGenerator/ForEachProcessor.js +351 -0
  78. package/dist/queryGenerator/ForEachProcessor.js.map +1 -0
  79. package/dist/queryGenerator/PathParser.d.ts +64 -0
  80. package/dist/queryGenerator/PathParser.d.ts.map +1 -0
  81. package/dist/queryGenerator/PathParser.js +164 -0
  82. package/dist/queryGenerator/PathParser.js.map +1 -0
  83. package/dist/queryGenerator/SelectClauseBuilder.d.ts +63 -0
  84. package/dist/queryGenerator/SelectClauseBuilder.d.ts.map +1 -0
  85. package/dist/queryGenerator/SelectClauseBuilder.js +196 -0
  86. package/dist/queryGenerator/SelectClauseBuilder.js.map +1 -0
  87. package/dist/queryGenerator/SelectCombinationExpander.d.ts +42 -0
  88. package/dist/queryGenerator/SelectCombinationExpander.d.ts.map +1 -0
  89. package/dist/queryGenerator/SelectCombinationExpander.js +95 -0
  90. package/dist/queryGenerator/SelectCombinationExpander.js.map +1 -0
  91. package/dist/queryGenerator/WhereClauseBuilder.d.ts +20 -0
  92. package/dist/queryGenerator/WhereClauseBuilder.d.ts.map +1 -0
  93. package/dist/queryGenerator/WhereClauseBuilder.js +63 -0
  94. package/dist/queryGenerator/WhereClauseBuilder.js.map +1 -0
  95. package/dist/queryGenerator/index.d.ts +10 -0
  96. package/dist/queryGenerator/index.d.ts.map +1 -0
  97. package/dist/queryGenerator/index.js +19 -0
  98. package/dist/queryGenerator/index.js.map +1 -0
  99. package/dist/queryGenerator.d.ts +61 -0
  100. package/dist/queryGenerator.d.ts.map +1 -0
  101. package/dist/queryGenerator.js +187 -0
  102. package/dist/queryGenerator.js.map +1 -0
  103. package/dist/tests/sqlOnFhir.test.d.ts +11 -0
  104. package/dist/tests/sqlOnFhir.test.d.ts.map +1 -0
  105. package/dist/tests/sqlOnFhir.test.js +24 -0
  106. package/dist/tests/sqlOnFhir.test.js.map +1 -0
  107. package/dist/tests/utils/database.d.ts +38 -0
  108. package/dist/tests/utils/database.d.ts.map +1 -0
  109. package/dist/tests/utils/database.js +258 -0
  110. package/dist/tests/utils/database.js.map +1 -0
  111. package/dist/tests/utils/generator.d.ts +58 -0
  112. package/dist/tests/utils/generator.d.ts.map +1 -0
  113. package/dist/tests/utils/generator.js +195 -0
  114. package/dist/tests/utils/generator.js.map +1 -0
  115. package/dist/tests/utils/reporter.d.ts +83 -0
  116. package/dist/tests/utils/reporter.d.ts.map +1 -0
  117. package/dist/tests/utils/reporter.js +245 -0
  118. package/dist/tests/utils/reporter.js.map +1 -0
  119. package/dist/tests/utils/sqlOnFhir.d.ts +33 -0
  120. package/dist/tests/utils/sqlOnFhir.d.ts.map +1 -0
  121. package/dist/tests/utils/sqlOnFhir.js +281 -0
  122. package/dist/tests/utils/sqlOnFhir.js.map +1 -0
  123. package/dist/tests/utils/testContext.d.ts +18 -0
  124. package/dist/tests/utils/testContext.d.ts.map +1 -0
  125. package/dist/tests/utils/testContext.js +25 -0
  126. package/dist/tests/utils/testContext.js.map +1 -0
  127. package/dist/tests/utils/types.d.ts +31 -0
  128. package/dist/tests/utils/types.d.ts.map +1 -0
  129. package/dist/tests/utils/types.js +9 -0
  130. package/dist/tests/utils/types.js.map +1 -0
  131. package/dist/types.d.ts +288 -0
  132. package/dist/types.d.ts.map +1 -0
  133. package/dist/types.js +6 -0
  134. package/dist/types.js.map +1 -0
  135. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE;QACN,wDAAwD;QACxD,MAAM,EAAE,OAAO,CAAC;QAChB,iDAAiD;QACjD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,yDAAyD;QACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;CACtC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for test reporting.
4
+ *
5
+ * Matches the SQL on FHIR test report schema:
6
+ * https://raw.githubusercontent.com/FHIR/sql-on-fhir-v2/refs/heads/master/test_report/test-report.schema.json
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tests/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,288 @@
1
+ /**
2
+ * Core types for SQL on FHIR ViewDefinition processing.
3
+ */
4
+ /**
5
+ * Unvalidated JSON structures from FHIR resources or test data.
6
+ * These types represent the expected shape of input data before validation.
7
+ */
8
+ /**
9
+ * FHIR resource as untyped JSON object.
10
+ * FHIR resources have dynamic structures that vary by resourceType.
11
+ */
12
+ export type FhirResource = Record<string, unknown>;
13
+ /**
14
+ * Test expectation result - can be any JSON value.
15
+ */
16
+ export type TestExpectation = Record<string, unknown>;
17
+ /**
18
+ * Unvalidated ViewDefinition column from JSON input.
19
+ * Fields are marked as unknown since validation will check types at runtime.
20
+ */
21
+ export interface UnvalidatedColumn {
22
+ name?: unknown;
23
+ path?: unknown;
24
+ description?: unknown;
25
+ collection?: unknown;
26
+ type?: unknown;
27
+ [key: string]: unknown;
28
+ }
29
+ /**
30
+ * Unvalidated ViewDefinition select element from JSON input.
31
+ * Arrays and nested structures use unknown[] to allow iteration while preserving type safety.
32
+ */
33
+ export interface UnvalidatedSelect {
34
+ column?: UnvalidatedColumn[];
35
+ select?: UnvalidatedSelect[];
36
+ forEach?: unknown;
37
+ forEachOrNull?: unknown;
38
+ unionAll?: UnvalidatedSelect[];
39
+ where?: unknown[];
40
+ [key: string]: unknown;
41
+ }
42
+ /**
43
+ * Unvalidated ViewDefinition from JSON input.
44
+ * Top-level structure that accepts any JSON but hints at expected fields.
45
+ */
46
+ export interface UnvalidatedViewDefinition {
47
+ resourceType?: unknown;
48
+ resource?: unknown;
49
+ select?: UnvalidatedSelect[];
50
+ constant?: unknown[];
51
+ [key: string]: unknown;
52
+ }
53
+ /**
54
+ * Validated ViewDefinition with strict typing.
55
+ * Extends UnvalidatedViewDefinition to support type predicates.
56
+ */
57
+ export interface ViewDefinition extends UnvalidatedViewDefinition {
58
+ resourceType: "ViewDefinition";
59
+ id?: string;
60
+ url?: string;
61
+ identifier?: Identifier[];
62
+ version?: string;
63
+ name?: string;
64
+ title?: string;
65
+ status: "draft" | "active" | "retired" | "unknown";
66
+ experimental?: boolean;
67
+ date?: string;
68
+ publisher?: string;
69
+ contact?: ContactDetail[];
70
+ description?: string;
71
+ useContext?: UsageContext[];
72
+ jurisdiction?: CodeableConcept[];
73
+ purpose?: string;
74
+ copyright?: string;
75
+ copyrightLabel?: string;
76
+ resource: string;
77
+ profile?: string;
78
+ fhirVersion?: string[];
79
+ constant?: ViewDefinitionConstant[];
80
+ select: ViewDefinitionSelect[];
81
+ where?: ViewDefinitionWhere[];
82
+ }
83
+ export interface ViewDefinitionSelect extends UnvalidatedSelect {
84
+ column?: ViewDefinitionColumn[];
85
+ select?: ViewDefinitionSelect[];
86
+ forEach?: string;
87
+ forEachOrNull?: string;
88
+ unionAll?: ViewDefinitionSelect[];
89
+ where?: ViewDefinitionWhere[];
90
+ }
91
+ export interface ViewDefinitionColumn extends UnvalidatedColumn {
92
+ name: string;
93
+ path: string;
94
+ description?: string;
95
+ collection?: boolean;
96
+ type?: string;
97
+ }
98
+ export interface ViewDefinitionWhere {
99
+ path: string;
100
+ description?: string;
101
+ }
102
+ export interface ViewDefinitionConstant {
103
+ name: string;
104
+ valueBase64Binary?: string;
105
+ valueBoolean?: boolean;
106
+ valueCanonical?: string;
107
+ valueCode?: string;
108
+ valueDate?: string;
109
+ valueDateTime?: string;
110
+ valueDecimal?: number;
111
+ valueId?: string;
112
+ valueInstant?: string;
113
+ valueInteger?: number;
114
+ valueInteger64?: string;
115
+ valueMarkdown?: string;
116
+ valueOid?: string;
117
+ valuePositiveInt?: number;
118
+ valueString?: string;
119
+ valueTime?: string;
120
+ valueUnsignedInt?: number;
121
+ valueUri?: string;
122
+ valueUrl?: string;
123
+ valueUuid?: string;
124
+ valueAddress?: Address;
125
+ valueAge?: Age;
126
+ valueAnnotation?: Annotation;
127
+ valueAttachment?: Attachment;
128
+ valueCodeableConcept?: CodeableConcept;
129
+ valueCoding?: Coding;
130
+ valueContactPoint?: ContactPoint;
131
+ valueCount?: Count;
132
+ valueDistance?: Distance;
133
+ valueDuration?: Duration;
134
+ valueHumanName?: HumanName;
135
+ valueIdentifier?: Identifier;
136
+ valueMoney?: Money;
137
+ valuePeriod?: Period;
138
+ valueQuantity?: Quantity;
139
+ valueRange?: Range;
140
+ valueRatio?: Ratio;
141
+ valueRatioRange?: RatioRange;
142
+ valueReference?: Reference;
143
+ valueSampledData?: SampledData;
144
+ valueSignature?: Signature;
145
+ valueTiming?: Timing;
146
+ valueContactDetail?: ContactDetail;
147
+ valueContributor?: Contributor;
148
+ valueDataRequirement?: DataRequirement;
149
+ valueExpression?: Expression;
150
+ valueParameterDefinition?: ParameterDefinition;
151
+ valueRelatedArtifact?: RelatedArtifact;
152
+ valueTriggerDefinition?: TriggerDefinition;
153
+ valueUsageContext?: UsageContext;
154
+ valueDosage?: Dosage;
155
+ }
156
+ export interface Identifier {
157
+ use?: string;
158
+ type?: CodeableConcept;
159
+ system?: string;
160
+ value?: string;
161
+ period?: Period;
162
+ assigner?: Reference;
163
+ }
164
+ export interface ContactDetail {
165
+ name?: string;
166
+ telecom?: ContactPoint[];
167
+ }
168
+ export interface ContactPoint {
169
+ system?: string;
170
+ value?: string;
171
+ use?: string;
172
+ rank?: number;
173
+ period?: Period;
174
+ }
175
+ export interface UsageContext {
176
+ code: Coding;
177
+ valueCodeableConcept?: CodeableConcept;
178
+ valueQuantity?: Quantity;
179
+ valueRange?: Range;
180
+ valueReference?: Reference;
181
+ }
182
+ export interface CodeableConcept {
183
+ coding?: Coding[];
184
+ text?: string;
185
+ }
186
+ export interface Coding {
187
+ system?: string;
188
+ version?: string;
189
+ code?: string;
190
+ display?: string;
191
+ userSelected?: boolean;
192
+ }
193
+ export interface Period {
194
+ start?: string;
195
+ end?: string;
196
+ }
197
+ export interface Reference {
198
+ reference?: string;
199
+ type?: string;
200
+ identifier?: Identifier;
201
+ display?: string;
202
+ }
203
+ export interface Quantity {
204
+ value?: number;
205
+ comparator?: string;
206
+ unit?: string;
207
+ system?: string;
208
+ code?: string;
209
+ }
210
+ export interface Range {
211
+ low?: Quantity;
212
+ high?: Quantity;
213
+ }
214
+ export interface Address {
215
+ }
216
+ export interface Age {
217
+ }
218
+ export interface Annotation {
219
+ }
220
+ export interface Attachment {
221
+ }
222
+ export interface Count {
223
+ }
224
+ export interface Distance {
225
+ }
226
+ export interface Duration {
227
+ }
228
+ export interface HumanName {
229
+ }
230
+ export interface Money {
231
+ }
232
+ export interface Ratio {
233
+ }
234
+ export interface RatioRange {
235
+ }
236
+ export interface SampledData {
237
+ }
238
+ export interface Signature {
239
+ }
240
+ export interface Timing {
241
+ }
242
+ export interface Contributor {
243
+ }
244
+ export interface DataRequirement {
245
+ }
246
+ export interface Expression {
247
+ }
248
+ export interface ParameterDefinition {
249
+ }
250
+ export interface RelatedArtifact {
251
+ }
252
+ export interface TriggerDefinition {
253
+ }
254
+ export interface Dosage {
255
+ }
256
+ /**
257
+ * Test case structure from sql-on-fhir-v2 repository.
258
+ */
259
+ export interface TestCase {
260
+ title: string;
261
+ description?: string;
262
+ tags?: string[];
263
+ view: ViewDefinition;
264
+ expect: TestExpectation[];
265
+ expectColumns?: string[];
266
+ expectError?: boolean;
267
+ }
268
+ export interface TestSuite {
269
+ title: string;
270
+ description?: string;
271
+ fhirVersion?: string[];
272
+ resources: FhirResource[];
273
+ tests: TestCase[];
274
+ }
275
+ /**
276
+ * Transpilation result containing the generated T-SQL query.
277
+ */
278
+ export interface TranspilationResult {
279
+ sql: string;
280
+ columns: ColumnInfo[];
281
+ }
282
+ export interface ColumnInfo {
283
+ name: string;
284
+ type: string;
285
+ nullable: boolean;
286
+ description?: string;
287
+ }
288
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core types for SQL on FHIR ViewDefinition processing.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "sof-mssql",
3
+ "version": "1.0.0",
4
+ "description": "A SQL on FHIR view runner that transpiles view definitions into T-SQL queries for MS SQL Server",
5
+ "author": "Australian e-Health Research Centre, CSIRO",
6
+ "contributors": [
7
+ {
8
+ "name": "John Grimes",
9
+ "email": "John.Grimes@csiro.au",
10
+ "url": "https://people.csiro.au/G/J/john-grimes"
11
+ }
12
+ ],
13
+ "main": "dist/index.js",
14
+ "types": "dist/index.d.ts",
15
+ "bin": {
16
+ "sof-mssql": "./dist/cli.js"
17
+ },
18
+ "scripts": {
19
+ "antlr": "antlr4ts -visitor grammar/fhirpath.g4 -o src/generated",
20
+ "build": "tsc",
21
+ "cli": "tsx src/cli.ts",
22
+ "cli:load": "tsx src/cli.ts load",
23
+ "cli:transpile": "tsx src/cli.ts transpile",
24
+ "test": "vitest run",
25
+ "test:ci": "vitest run --testNamePattern '^(?!.*#experimental)'",
26
+ "test:watch": "vitest",
27
+ "test:ui": "vitest --ui",
28
+ "coverage": "vitest run --coverage",
29
+ "lint": "eslint",
30
+ "format": "prettier --write \"src/**/*.(ts|json|yml)\" \".github/**/*.(ts|json|yml)\"",
31
+ "format:check": "prettier --check \"src/**/*.(ts|json|yml)\" \".github/**/*.(ts|json|yml)\""
32
+ },
33
+ "keywords": [
34
+ "fhir",
35
+ "sql-on-fhir",
36
+ "mssql",
37
+ "tsql",
38
+ "healthcare"
39
+ ],
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/aehrc/sof-mssql.git"
43
+ },
44
+ "homepage": "https://github.com/aehrc/sof-mssql#readme",
45
+ "bugs": {
46
+ "url": "https://github.com/aehrc/sof-mssql/issues"
47
+ },
48
+ "files": [
49
+ "dist/",
50
+ "LICENSE",
51
+ "README.md"
52
+ ],
53
+ "license": "Apache-2.0",
54
+ "dependencies": {
55
+ "antlr4ts": "^0.5.0-alpha.4",
56
+ "commander": "^14.0.1",
57
+ "fhirpath": "^3.15.1"
58
+ },
59
+ "devDependencies": {
60
+ "@types/mssql": "^9.1.7",
61
+ "@types/node": "^22.5.5",
62
+ "@typescript-eslint/eslint-plugin": "^8.8.0",
63
+ "@typescript-eslint/parser": "^8.8.0",
64
+ "@vitest/ui": "^3.2.4",
65
+ "antlr4ts-cli": "^0.5.0-alpha.4",
66
+ "eslint": "^9.11.1",
67
+ "mssql": "^11.0.1",
68
+ "prettier": "^3.6.2",
69
+ "tsx": "^4.20.6",
70
+ "typescript": "^5.6.2",
71
+ "vitest": "^3.2.4"
72
+ },
73
+ "engines": {
74
+ "node": ">=18.0.0"
75
+ }
76
+ }