sof-mssql 2.3.0 → 2.4.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 (57) hide show
  1. package/README.md +88 -0
  2. package/dist/fhirpath/jsonSafeEmptiness.test.d.ts +19 -0
  3. package/dist/fhirpath/jsonSafeEmptiness.test.d.ts.map +1 -0
  4. package/dist/fhirpath/jsonSafeEmptiness.test.js +80 -0
  5. package/dist/fhirpath/jsonSafeEmptiness.test.js.map +1 -0
  6. package/dist/fhirpath/visitor.d.ts.map +1 -1
  7. package/dist/fhirpath/visitor.js +20 -12
  8. package/dist/fhirpath/visitor.js.map +1 -1
  9. package/dist/load.d.ts +9 -0
  10. package/dist/load.d.ts.map +1 -1
  11. package/dist/load.js +4 -0
  12. package/dist/load.js.map +1 -1
  13. package/dist/loader/feedback.integration.test.d.ts +14 -0
  14. package/dist/loader/feedback.integration.test.d.ts.map +1 -0
  15. package/dist/loader/feedback.integration.test.js +76 -0
  16. package/dist/loader/feedback.integration.test.js.map +1 -0
  17. package/dist/loader/index.d.ts.map +1 -1
  18. package/dist/loader/index.js +19 -6
  19. package/dist/loader/index.js.map +1 -1
  20. package/dist/loader/jsonColumn.integration.test.d.ts +13 -0
  21. package/dist/loader/jsonColumn.integration.test.d.ts.map +1 -0
  22. package/dist/loader/jsonColumn.integration.test.js +86 -0
  23. package/dist/loader/jsonColumn.integration.test.js.map +1 -0
  24. package/dist/loader/tables.d.ts +96 -3
  25. package/dist/loader/tables.d.ts.map +1 -1
  26. package/dist/loader/tables.js +182 -16
  27. package/dist/loader/tables.js.map +1 -1
  28. package/dist/loader/tables.test.d.ts +12 -0
  29. package/dist/loader/tables.test.d.ts.map +1 -0
  30. package/dist/loader/tables.test.js +130 -0
  31. package/dist/loader/tables.test.js.map +1 -0
  32. package/dist/loader/types.d.ts +9 -0
  33. package/dist/loader/types.d.ts.map +1 -1
  34. package/dist/tests/load.test.d.ts +11 -0
  35. package/dist/tests/load.test.d.ts.map +1 -0
  36. package/dist/tests/load.test.js +37 -0
  37. package/dist/tests/load.test.js.map +1 -0
  38. package/dist/tests/utils/database.d.ts.map +1 -1
  39. package/dist/tests/utils/database.js +51 -3
  40. package/dist/tests/utils/database.js.map +1 -1
  41. package/dist/tests/utils/loaderIntegration.d.ts +59 -0
  42. package/dist/tests/utils/loaderIntegration.d.ts.map +1 -0
  43. package/dist/tests/utils/loaderIntegration.js +137 -0
  44. package/dist/tests/utils/loaderIntegration.js.map +1 -0
  45. package/dist/tests/utils/serverCapabilities.d.ts +23 -0
  46. package/dist/tests/utils/serverCapabilities.d.ts.map +1 -0
  47. package/dist/tests/utils/serverCapabilities.js +35 -0
  48. package/dist/tests/utils/serverCapabilities.js.map +1 -0
  49. package/dist/tests/validation.test.d.ts +13 -0
  50. package/dist/tests/validation.test.d.ts.map +1 -0
  51. package/dist/tests/validation.test.js +81 -0
  52. package/dist/tests/validation.test.js.map +1 -0
  53. package/dist/validation.d.ts +40 -0
  54. package/dist/validation.d.ts.map +1 -1
  55. package/dist/validation.js +56 -0
  56. package/dist/validation.js.map +1 -1
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/tests/utils/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/tests/utils/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Shared harness for database-backed loader integration tests.
3
+ *
4
+ * Encapsulates the connection pool lifecycle, native-JSON capability probe,
5
+ * sample NDJSON generation, and per-test table/temp-directory cleanup so the
6
+ * individual integration test files stay focused on assertions. The native
7
+ * JSON type is only available on SQL Server 2025+, so callers gate JSON-specific
8
+ * cases on isNativeJsonSupported().
9
+ *
10
+ * @author John Grimes
11
+ */
12
+ /** A small, representative set of FHIR resources used by the integration tests. */
13
+ export declare const SAMPLE_PATIENTS: ({
14
+ resourceType: string;
15
+ id: string;
16
+ active: boolean;
17
+ gender?: undefined;
18
+ } | {
19
+ resourceType: string;
20
+ id: string;
21
+ gender: string;
22
+ active?: undefined;
23
+ })[];
24
+ /** The effective type of a json column read from INFORMATION_SCHEMA. */
25
+ export interface JsonColumnType {
26
+ /** The INFORMATION_SCHEMA DATA_TYPE (e.g. `nvarchar` or `json`). */
27
+ dataType: string;
28
+ /** The CHARACTER_MAXIMUM_LENGTH (-1 for MAX, null for the native type). */
29
+ maxLength: number | null;
30
+ }
31
+ /** Helpers bound to a single connection pool for one integration test file. */
32
+ export interface LoaderIntegrationHarness {
33
+ /** Open the pool and probe native-JSON support. Call from beforeAll. */
34
+ connect(): Promise<void>;
35
+ /** Drop created tables, remove temp dirs and close the pool. Call from afterAll. */
36
+ cleanup(): Promise<void>;
37
+ /** Whether the connected server supports the native JSON column type. */
38
+ isNativeJsonSupported(): boolean;
39
+ /** Generate and register a unique, valid table name. */
40
+ makeTableName(): string;
41
+ /**
42
+ * Create a loader-shaped table whose `json` column uses the given SQL type,
43
+ * for exercising the existing-column mismatch safeguard.
44
+ */
45
+ createTableWithJsonColumnType(tableName: string, jsonColumnType: string): Promise<void>;
46
+ /** Load the sample NDJSON into a table, returning the rows loaded. */
47
+ loadSample(tableName: string, resourceJsonDataType?: string): Promise<number>;
48
+ /** Read the effective type of a table's json column. */
49
+ getJsonColumnType(tableName: string): Promise<JsonColumnType>;
50
+ /** Count the rows in a table. */
51
+ getRowCount(tableName: string): Promise<number>;
52
+ }
53
+ /**
54
+ * Create a loader integration harness.
55
+ *
56
+ * @returns A harness whose lifecycle is driven by connect()/cleanup().
57
+ */
58
+ export declare function createLoaderIntegrationHarness(): LoaderIntegrationHarness;
59
+ //# sourceMappingURL=loaderIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loaderIntegration.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/loaderIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,mFAAmF;AACnF,eAAO,MAAM,eAAe;;;;;;;;;;IAI3B,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,oFAAoF;IACpF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,yEAAyE;IACzE,qBAAqB,IAAI,OAAO,CAAC;IACjC,wDAAwD;IACxD,aAAa,IAAI,MAAM,CAAC;IACxB;;;OAGG;IACH,6BAA6B,CAC3B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,sEAAsE;IACtE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,wDAAwD;IACxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,iCAAiC;IACjC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CA0HzE"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * Shared harness for database-backed loader integration tests.
4
+ *
5
+ * Encapsulates the connection pool lifecycle, native-JSON capability probe,
6
+ * sample NDJSON generation, and per-test table/temp-directory cleanup so the
7
+ * individual integration test files stay focused on assertions. The native
8
+ * JSON type is only available on SQL Server 2025+, so callers gate JSON-specific
9
+ * cases on isNativeJsonSupported().
10
+ *
11
+ * @author John Grimes
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.SAMPLE_PATIENTS = void 0;
15
+ exports.createLoaderIntegrationHarness = createLoaderIntegrationHarness;
16
+ const crypto_1 = require("crypto");
17
+ const fs_1 = require("fs");
18
+ const os_1 = require("os");
19
+ const path_1 = require("path");
20
+ const connection_1 = require("../../loader/connection");
21
+ const index_1 = require("../../loader/index");
22
+ const serverCapabilities_1 = require("./serverCapabilities");
23
+ /** A small, representative set of FHIR resources used by the integration tests. */
24
+ exports.SAMPLE_PATIENTS = [
25
+ { resourceType: "Patient", id: "p1", active: true },
26
+ { resourceType: "Patient", id: "p2", active: false },
27
+ { resourceType: "Patient", id: "p3", gender: "female" },
28
+ ];
29
+ /**
30
+ * Create a loader integration harness.
31
+ *
32
+ * @returns A harness whose lifecycle is driven by connect()/cleanup().
33
+ */
34
+ function createLoaderIntegrationHarness() {
35
+ let pool = null;
36
+ let databaseConfig = null;
37
+ let nativeJsonSupported = false;
38
+ const createdTables = [];
39
+ const createdDirs = [];
40
+ function requirePool() {
41
+ if (!pool) {
42
+ throw new Error("Harness not connected; call connect() first.");
43
+ }
44
+ return pool;
45
+ }
46
+ function requireConfig() {
47
+ if (!databaseConfig) {
48
+ throw new Error("Harness not connected; call connect() first.");
49
+ }
50
+ return databaseConfig;
51
+ }
52
+ function writeSampleNdjson() {
53
+ const dir = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "sof-loader-it-"));
54
+ createdDirs.push(dir);
55
+ const lines = exports.SAMPLE_PATIENTS.map((r) => JSON.stringify(r)).join("\n");
56
+ (0, fs_1.writeFileSync)((0, path_1.join)(dir, "Patient.ndjson"), lines + "\n", "utf-8");
57
+ return dir;
58
+ }
59
+ async function connect() {
60
+ databaseConfig = (0, connection_1.getDatabaseConfigFromEnv)();
61
+ pool = await (0, connection_1.createConnectionPool)(databaseConfig);
62
+ nativeJsonSupported = await (0, serverCapabilities_1.supportsNativeJsonType)(pool);
63
+ }
64
+ async function cleanup() {
65
+ for (const dir of createdDirs) {
66
+ (0, fs_1.rmSync)(dir, { recursive: true, force: true });
67
+ }
68
+ if (pool) {
69
+ for (const tableName of createdTables) {
70
+ try {
71
+ await pool
72
+ .request()
73
+ .query(`DROP TABLE IF EXISTS [dbo].[${tableName}]`);
74
+ }
75
+ catch {
76
+ // Best-effort cleanup; ignore failures.
77
+ }
78
+ }
79
+ await (0, connection_1.closeConnectionPool)(pool);
80
+ pool = null;
81
+ }
82
+ }
83
+ function makeTableName() {
84
+ const tableName = `jsontest_${(0, crypto_1.randomBytes)(4).toString("hex")}`;
85
+ createdTables.push(tableName);
86
+ return tableName;
87
+ }
88
+ async function createTableWithJsonColumnType(tableName, jsonColumnType) {
89
+ // Mirrors the loader's table shape but with a deliberately chosen json
90
+ // column type so the existing-column mismatch safeguard can be exercised.
91
+ // The type is a test-controlled literal, not external input.
92
+ await requirePool()
93
+ .request()
94
+ .query(`CREATE TABLE [dbo].[${tableName}] (
95
+ [id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
96
+ [resource_type] NVARCHAR(64) NOT NULL,
97
+ [json] ${jsonColumnType} NOT NULL
98
+ )`);
99
+ }
100
+ async function loadSample(tableName, resourceJsonDataType) {
101
+ const summary = await (0, index_1.loadNdjsonFiles)({
102
+ directory: writeSampleNdjson(),
103
+ database: requireConfig(),
104
+ tableName,
105
+ resourceJsonDataType,
106
+ quiet: true,
107
+ });
108
+ return summary.rowsLoaded;
109
+ }
110
+ async function getJsonColumnType(tableName) {
111
+ const result = await requirePool()
112
+ .request()
113
+ .input("tableName", tableName)
114
+ .query(`SELECT DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
115
+ FROM INFORMATION_SCHEMA.COLUMNS
116
+ WHERE TABLE_NAME = @tableName AND COLUMN_NAME = 'json'`);
117
+ const row = result.recordset[0];
118
+ return { dataType: row.DATA_TYPE, maxLength: row.CHARACTER_MAXIMUM_LENGTH };
119
+ }
120
+ async function getRowCount(tableName) {
121
+ const result = await requirePool()
122
+ .request()
123
+ .query(`SELECT COUNT(*) AS n FROM [dbo].[${tableName}]`);
124
+ return result.recordset[0].n;
125
+ }
126
+ return {
127
+ connect,
128
+ cleanup,
129
+ isNativeJsonSupported: () => nativeJsonSupported,
130
+ makeTableName,
131
+ createTableWithJsonColumnType,
132
+ loadSample,
133
+ getJsonColumnType,
134
+ getRowCount,
135
+ };
136
+ }
137
+ //# sourceMappingURL=loaderIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loaderIntegration.js","sourceRoot":"","sources":["../../../src/tests/utils/loaderIntegration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Server capability probes for integration tests.
3
+ *
4
+ * The native JSON column type is only available on SQL Server 2025 and later.
5
+ * Integration tests that exercise it must skip gracefully on older servers
6
+ * (the CI matrix still runs the suite against 2017/2019/2022), so they probe
7
+ * the live server rather than assuming a version.
8
+ *
9
+ * @author John Grimes
10
+ */
11
+ import type { ConnectionPool } from "mssql";
12
+ /**
13
+ * Determine whether the connected server supports the native `JSON` column type.
14
+ *
15
+ * The probe creates and drops a temporary table with a `JSON` column in a single
16
+ * batch (so it runs on one pooled connection) and reports success. On a server
17
+ * that does not know the type, the statement fails and the probe returns false.
18
+ *
19
+ * @param pool - An open connection pool.
20
+ * @returns `true` if a `JSON`-typed column can be created, `false` otherwise.
21
+ */
22
+ export declare function supportsNativeJsonType(pool: ConnectionPool): Promise<boolean>;
23
+ //# sourceMappingURL=serverCapabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverCapabilities.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/serverCapabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC,CAWlB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Server capability probes for integration tests.
4
+ *
5
+ * The native JSON column type is only available on SQL Server 2025 and later.
6
+ * Integration tests that exercise it must skip gracefully on older servers
7
+ * (the CI matrix still runs the suite against 2017/2019/2022), so they probe
8
+ * the live server rather than assuming a version.
9
+ *
10
+ * @author John Grimes
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.supportsNativeJsonType = supportsNativeJsonType;
14
+ /**
15
+ * Determine whether the connected server supports the native `JSON` column type.
16
+ *
17
+ * The probe creates and drops a temporary table with a `JSON` column in a single
18
+ * batch (so it runs on one pooled connection) and reports success. On a server
19
+ * that does not know the type, the statement fails and the probe returns false.
20
+ *
21
+ * @param pool - An open connection pool.
22
+ * @returns `true` if a `JSON`-typed column can be created, `false` otherwise.
23
+ */
24
+ async function supportsNativeJsonType(pool) {
25
+ try {
26
+ await pool
27
+ .request()
28
+ .query("CREATE TABLE #native_json_probe (j JSON NOT NULL); DROP TABLE #native_json_probe;");
29
+ return true;
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ //# sourceMappingURL=serverCapabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverCapabilities.js","sourceRoot":"","sources":["../../../src/tests/utils/serverCapabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAcH,wDAaC;AAvBD;;;;;;;;;GASG;AACI,KAAK,UAAU,sBAAsB,CAC1C,IAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI;aACP,OAAO,EAAE;aACT,KAAK,CACJ,mFAAmF,CACpF,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Unit tests for resource JSON data type validation and normalisation.
3
+ *
4
+ * These cover the trusted-boundary handling of the `resourceJsonDataType`
5
+ * configuration value: the strict two-value allowlist, case-insensitive and
6
+ * whitespace-tolerant matching, normalisation to canonical form, and the
7
+ * meaningful errors raised for empty or unknown values (FR-001, FR-003,
8
+ * FR-004).
9
+ *
10
+ * @author John Grimes
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=validation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../src/tests/validation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * Unit tests for resource JSON data type validation and normalisation.
4
+ *
5
+ * These cover the trusted-boundary handling of the `resourceJsonDataType`
6
+ * configuration value: the strict two-value allowlist, case-insensitive and
7
+ * whitespace-tolerant matching, normalisation to canonical form, and the
8
+ * meaningful errors raised for empty or unknown values (FR-001, FR-003,
9
+ * FR-004).
10
+ *
11
+ * @author John Grimes
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const vitest_1 = require("vitest");
15
+ const validation_1 = require("../validation");
16
+ (0, vitest_1.describe)("validateResourceJsonDataType (type predicate)", () => {
17
+ // The predicate recognises only the exact canonical forms; it does not
18
+ // normalise. Normalisation is the normaliser's job.
19
+ (0, vitest_1.it)("accepts the canonical NVARCHAR(MAX) value", () => {
20
+ (0, vitest_1.expect)((0, validation_1.validateResourceJsonDataType)("NVARCHAR(MAX)")).toBe(true);
21
+ });
22
+ (0, vitest_1.it)("accepts the canonical JSON value", () => {
23
+ (0, vitest_1.expect)((0, validation_1.validateResourceJsonDataType)("JSON")).toBe(true);
24
+ });
25
+ (0, vitest_1.it)("rejects a non-canonical (lower-case) value", () => {
26
+ // The predicate is strict; lower case is only acceptable after
27
+ // normalisation, not to the predicate itself.
28
+ (0, vitest_1.expect)((0, validation_1.validateResourceJsonDataType)("json")).toBe(false);
29
+ });
30
+ (0, vitest_1.it)("rejects an unknown value", () => {
31
+ (0, vitest_1.expect)((0, validation_1.validateResourceJsonDataType)("TEXT")).toBe(false);
32
+ });
33
+ (0, vitest_1.it)("rejects an empty value", () => {
34
+ (0, vitest_1.expect)((0, validation_1.validateResourceJsonDataType)("")).toBe(false);
35
+ });
36
+ });
37
+ (0, vitest_1.describe)("normaliseResourceJsonDataType", () => {
38
+ // Accepts the two allowed values regardless of case.
39
+ (0, vitest_1.it)("accepts NVARCHAR(MAX) and returns it unchanged", () => {
40
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)("NVARCHAR(MAX)")).toBe("NVARCHAR(MAX)");
41
+ });
42
+ (0, vitest_1.it)("accepts JSON and returns it unchanged", () => {
43
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)("JSON")).toBe("JSON");
44
+ });
45
+ (0, vitest_1.it)("normalises a lower-case nvarchar(max) to canonical form", () => {
46
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)("nvarchar(max)")).toBe("NVARCHAR(MAX)");
47
+ });
48
+ (0, vitest_1.it)("normalises a lower-case json to canonical form", () => {
49
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)("json")).toBe("JSON");
50
+ });
51
+ (0, vitest_1.it)("normalises a mixed-case value to canonical form", () => {
52
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)("Json")).toBe("JSON");
53
+ });
54
+ // Tolerates surrounding whitespace.
55
+ (0, vitest_1.it)("trims surrounding whitespace before matching", () => {
56
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)(" JSON ")).toBe("JSON");
57
+ });
58
+ (0, vitest_1.it)("trims and normalises whitespace plus case together", () => {
59
+ (0, vitest_1.expect)((0, validation_1.normaliseResourceJsonDataType)(" nvarchar(max) ")).toBe("NVARCHAR(MAX)");
60
+ });
61
+ // Rejects empty and whitespace-only values with the documented message.
62
+ (0, vitest_1.it)("rejects an empty string with the empty-value error", () => {
63
+ (0, vitest_1.expect)(() => (0, validation_1.normaliseResourceJsonDataType)("")).toThrow("Resource JSON data type cannot be empty.");
64
+ });
65
+ (0, vitest_1.it)("rejects a whitespace-only string with the empty-value error", () => {
66
+ (0, vitest_1.expect)(() => (0, validation_1.normaliseResourceJsonDataType)(" ")).toThrow("Resource JSON data type cannot be empty.");
67
+ });
68
+ // Rejects unknown values, naming the offending value and the allowed set.
69
+ (0, vitest_1.it)("rejects an unknown value with an error naming the value", () => {
70
+ (0, vitest_1.expect)(() => (0, validation_1.normaliseResourceJsonDataType)("TEXT")).toThrow(/TEXT/);
71
+ });
72
+ (0, vitest_1.it)("rejects an unknown value with an error listing the allowed values", () => {
73
+ (0, vitest_1.expect)(() => (0, validation_1.normaliseResourceJsonDataType)("TEXT")).toThrow(/NVARCHAR\(MAX\).*JSON/);
74
+ });
75
+ (0, vitest_1.it)("preserves the original offending value in the error message", () => {
76
+ // The error should echo what the user actually supplied, not a normalised
77
+ // form, so the message is recognisable.
78
+ (0, vitest_1.expect)(() => (0, validation_1.normaliseResourceJsonDataType)("varchar")).toThrow(/varchar/);
79
+ });
80
+ });
81
+ //# sourceMappingURL=validation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../src/tests/validation.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,46 @@
1
1
  /**
2
2
  * SQL Server identifier and FHIR resource type validation utilities.
3
3
  */
4
+ /**
5
+ * Canonical storage types allowed for the resources table `json` column.
6
+ *
7
+ * `NVARCHAR(MAX)` is the default and is valid on every supported SQL Server
8
+ * version (2017+). `JSON` is SQL Server 2025's native JSON type.
9
+ */
10
+ export type ResourceJsonDataType = "NVARCHAR(MAX)" | "JSON";
11
+ /**
12
+ * Type predicate that narrows a string to a canonical {@link ResourceJsonDataType}.
13
+ *
14
+ * The check is strict: only the exact canonical forms (`NVARCHAR(MAX)`, `JSON`)
15
+ * are recognised. Case-insensitive and whitespace-tolerant acceptance is the
16
+ * responsibility of {@link normaliseResourceJsonDataType}, which normalises the
17
+ * value before delegating here.
18
+ *
19
+ * @param value - The candidate value to test.
20
+ * @returns `true` if the value is exactly a canonical resource JSON data type.
21
+ */
22
+ export declare function validateResourceJsonDataType(value: string): value is ResourceJsonDataType;
23
+ /**
24
+ * Validate and normalise a configured resource JSON data type.
25
+ *
26
+ * Matching is case-insensitive and tolerant of surrounding whitespace, but the
27
+ * underlying set of accepted values is strictly limited to `NVARCHAR(MAX)` and
28
+ * `JSON`. The value is interpolated into `CREATE TABLE` DDL, so it is validated
29
+ * against the allowlist rather than trusted (Constitution Principle IV); a
30
+ * two-value allowlist removes any injection surface entirely.
31
+ *
32
+ * @param value - The configured value, e.g. from `LoaderOptions` or the
33
+ * `--resource-json-data-type` CLI flag.
34
+ * @returns The canonical, upper-case form (`NVARCHAR(MAX)` or `JSON`) for use in
35
+ * DDL.
36
+ * @throws Error if the value is empty, whitespace-only, or not one of the
37
+ * allowed types. The message names the offending value and the allowed set.
38
+ * @example
39
+ * normaliseResourceJsonDataType(" json "); // "JSON"
40
+ * normaliseResourceJsonDataType("nvarchar(max)"); // "NVARCHAR(MAX)"
41
+ * normaliseResourceJsonDataType("TEXT"); // throws
42
+ */
43
+ export declare function normaliseResourceJsonDataType(value: string): ResourceJsonDataType;
4
44
  /**
5
45
  * Validate a SQL Server identifier (table name, schema name, etc.).
6
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyMH;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CA2BN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAU/D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAenD;AAqCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAqCvD;AAqED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA6C5D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,MAAM,CAAC;AAS5D;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,oBAAoB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,GACZ,oBAAoB,CAkBtB;AAyMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CA2BN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAU/D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAenD;AAqCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAqCvD;AAqED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA6C5D"}
@@ -3,11 +3,67 @@
3
3
  * SQL Server identifier and FHIR resource type validation utilities.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateResourceJsonDataType = validateResourceJsonDataType;
7
+ exports.normaliseResourceJsonDataType = normaliseResourceJsonDataType;
6
8
  exports.validateSqlServerIdentifier = validateSqlServerIdentifier;
7
9
  exports.validateResourceType = validateResourceType;
8
10
  exports.validateTestId = validateTestId;
9
11
  exports.validateMsSqlType = validateMsSqlType;
10
12
  exports.validateAnsiSqlType = validateAnsiSqlType;
13
+ /**
14
+ * The strict allowlist of canonical resource JSON data types. Kept as a set of
15
+ * the canonical (upper-case) forms so membership checks are exact, mirroring the
16
+ * Set-based style used elsewhere in this module.
17
+ */
18
+ const RESOURCE_JSON_DATA_TYPES = new Set(["NVARCHAR(MAX)", "JSON"]);
19
+ /**
20
+ * Type predicate that narrows a string to a canonical {@link ResourceJsonDataType}.
21
+ *
22
+ * The check is strict: only the exact canonical forms (`NVARCHAR(MAX)`, `JSON`)
23
+ * are recognised. Case-insensitive and whitespace-tolerant acceptance is the
24
+ * responsibility of {@link normaliseResourceJsonDataType}, which normalises the
25
+ * value before delegating here.
26
+ *
27
+ * @param value - The candidate value to test.
28
+ * @returns `true` if the value is exactly a canonical resource JSON data type.
29
+ */
30
+ function validateResourceJsonDataType(value) {
31
+ return RESOURCE_JSON_DATA_TYPES.has(value);
32
+ }
33
+ /**
34
+ * Validate and normalise a configured resource JSON data type.
35
+ *
36
+ * Matching is case-insensitive and tolerant of surrounding whitespace, but the
37
+ * underlying set of accepted values is strictly limited to `NVARCHAR(MAX)` and
38
+ * `JSON`. The value is interpolated into `CREATE TABLE` DDL, so it is validated
39
+ * against the allowlist rather than trusted (Constitution Principle IV); a
40
+ * two-value allowlist removes any injection surface entirely.
41
+ *
42
+ * @param value - The configured value, e.g. from `LoaderOptions` or the
43
+ * `--resource-json-data-type` CLI flag.
44
+ * @returns The canonical, upper-case form (`NVARCHAR(MAX)` or `JSON`) for use in
45
+ * DDL.
46
+ * @throws Error if the value is empty, whitespace-only, or not one of the
47
+ * allowed types. The message names the offending value and the allowed set.
48
+ * @example
49
+ * normaliseResourceJsonDataType(" json "); // "JSON"
50
+ * normaliseResourceJsonDataType("nvarchar(max)"); // "NVARCHAR(MAX)"
51
+ * normaliseResourceJsonDataType("TEXT"); // throws
52
+ */
53
+ function normaliseResourceJsonDataType(value) {
54
+ // Reject empty or whitespace-only input before anything else, so the user
55
+ // gets a precise message rather than a confusing "not allowed" error.
56
+ if (!value || value.trim().length === 0) {
57
+ throw new Error("Resource JSON data type cannot be empty.");
58
+ }
59
+ // Normalise to the canonical form: trim surrounding whitespace and upper-case.
60
+ const canonical = value.trim().toUpperCase();
61
+ // The predicate enforces the strict allowlist and narrows the type.
62
+ if (!validateResourceJsonDataType(canonical)) {
63
+ throw new Error(`Invalid resource JSON data type: '${value}'. Must be one of: NVARCHAR(MAX), JSON.`);
64
+ }
65
+ return canonical;
66
+ }
11
67
  /**
12
68
  * FHIR R4 resource types.
13
69
  * Complete list of all resource types defined in FHIR R4 specification.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sof-mssql",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "A SQL on FHIR view runner that transpiles view definitions into T-SQL queries for MS SQL Server",
5
5
  "author": "Australian e-Health Research Centre, CSIRO",
6
6
  "contributors": [