@rawsql-ts/sql-contract 0.1.0 → 0.2.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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mapper = exports.EntityMapping = exports.RowMapping = exports.mapperPresets = void 0;
3
+ exports.__internal = exports.Mapper = exports.EntityMapping = exports.RowMapping = exports.mapperPresets = void 0;
4
4
  exports.rowMapping = rowMapping;
5
5
  exports.entity = entity;
6
6
  exports.columnMapFromPrefix = columnMapFromPrefix;
@@ -10,6 +10,7 @@ exports.createReader = createReader;
10
10
  exports.toRowsExecutor = toRowsExecutor;
11
11
  exports.mapRows = mapRows;
12
12
  exports.mapSimpleRows = mapSimpleRows;
13
+ const internal_1 = require("./internal");
13
14
  /**
14
15
  * Named presets for simple mapping that avoid implicit inference.
15
16
  */
@@ -24,13 +25,14 @@ exports.mapperPresets = {
24
25
  return {
25
26
  keyTransform: 'snake_to_camel',
26
27
  coerceDates: true,
27
- coerceFn: ({ value }) => coerceColumnValue(value),
28
28
  };
29
29
  },
30
30
  };
31
31
  /**
32
32
  * Builds a row mapping that can be consumed by {@link Mapper#query} or {@link mapRows}.
33
33
  */
34
+ const isKeyExtractor = (value) => typeof value === 'function';
35
+ const isKeyColumnArray = (value) => Array.isArray(value);
34
36
  class RowMapping {
35
37
  constructor(options) {
36
38
  var _a, _b, _c;
@@ -56,6 +58,40 @@ class RowMapping {
56
58
  this.prefixLength = this.prefixNormalized.length;
57
59
  this.shouldCoerce = (_b = options.coerce) !== null && _b !== void 0 ? _b : true;
58
60
  this.coerceFn = (_c = options.coerceFn) !== null && _c !== void 0 ? _c : coerceColumnValue;
61
+ const keyInput = options.key;
62
+ if (isKeyExtractor(keyInput)) {
63
+ this.keyDescriptor = 'derived key function';
64
+ this.keyExtractor = (ctx) => keyInput(this.buildMappedRowForKey(ctx));
65
+ }
66
+ else if (isKeyColumnArray(keyInput)) {
67
+ const columns = keyInput;
68
+ if (columns.length === 0) {
69
+ throw new Error(`RowMapping "${this.name}" composite key must include at least one column.`);
70
+ }
71
+ const resolvedColumns = columns.map((column) => this.resolveColumnName(column));
72
+ this.keyColumns = resolvedColumns;
73
+ this.keyDescriptor = `columns ${columns.join(', ')}`;
74
+ this.keyExtractor = (ctx) => resolvedColumns.map((column) => {
75
+ const { found, value } = lookupRowColumn(ctx, column);
76
+ if (!found) {
77
+ throwMissingKeyColumn(this, column, ctx);
78
+ }
79
+ return value;
80
+ });
81
+ }
82
+ else {
83
+ const propertyName = keyInput;
84
+ const columnName = this.resolveColumnName(propertyName);
85
+ this.keyColumns = [columnName];
86
+ this.keyDescriptor = `property "${String(keyInput)}"`;
87
+ this.keyExtractor = (ctx) => (() => {
88
+ const { found, value } = lookupRowColumn(ctx, columnName);
89
+ if (!found) {
90
+ throwMissingKeyColumn(this, columnName, ctx);
91
+ }
92
+ return value;
93
+ })();
94
+ }
59
95
  }
60
96
  /**
61
97
  * Registers a parent relationship that will be attached after the current row is mapped.
@@ -118,8 +154,19 @@ class RowMapping {
118
154
  return `${this.prefix}${toSnakeCase(propertyName)}`;
119
155
  }
120
156
  readKeyValue(ctx) {
121
- const column = this.resolveColumnName(this.key);
122
- return getRowValue(ctx, column);
157
+ return this.keyExtractor(ctx);
158
+ }
159
+ /**
160
+ * Returns a human-readable description of the key for error reporting.
161
+ */
162
+ get keyDescription() {
163
+ return this.keyDescriptor;
164
+ }
165
+ /**
166
+ * Lists the resolved key column names, if the key is not derived.
167
+ */
168
+ get keyColumnNames() {
169
+ return this.keyColumns;
123
170
  }
124
171
  assignFields(target, ctx) {
125
172
  for (const column of Object.keys(ctx.row)) {
@@ -136,6 +183,17 @@ class RowMapping {
136
183
  }
137
184
  return this.coerceFn(value);
138
185
  }
186
+ buildMappedRowForKey(ctx) {
187
+ const target = {};
188
+ for (const column of Object.keys(ctx.row)) {
189
+ const propertyName = this.matchColumn(column);
190
+ if (!propertyName) {
191
+ continue;
192
+ }
193
+ target[propertyName] = ctx.row[column];
194
+ }
195
+ return target;
196
+ }
139
197
  }
140
198
  exports.RowMapping = RowMapping;
141
199
  exports.EntityMapping = RowMapping;
@@ -191,13 +249,32 @@ class Mapper {
191
249
  * Binds a structured row mapping to a reader that exposes `list` and `one`.
192
250
  */
193
251
  bind(mapping) {
194
- return {
195
- list: async (sql, params = []) => this.query(sql, params, mapping),
196
- one: async (sql, params = []) => {
197
- const rows = await this.query(sql, params, mapping);
198
- return expectExactlyOneRow(rows);
199
- },
252
+ const createReader = (currentValidator) => {
253
+ const validateRows = (rows) => applyRowValidator(rows, currentValidator);
254
+ const validateValue = (value) => applyScalarValidator(value, currentValidator);
255
+ const validator = (nextValidator) => {
256
+ const normalizedNext = normalizeReaderValidator(nextValidator);
257
+ const composed = composeValidators(currentValidator, normalizedNext);
258
+ return createReader(composed);
259
+ };
260
+ return {
261
+ list: async (sql, params = []) => {
262
+ const rows = await this.query(sql, params, mapping);
263
+ return validateRows(rows);
264
+ },
265
+ one: async (sql, params = []) => {
266
+ const rows = await this.query(sql, params, mapping);
267
+ const row = expectExactlyOneRow(rows);
268
+ return validateValue(row);
269
+ },
270
+ scalar: async (sql, params = []) => {
271
+ const value = await readScalarValue(this.executor, sql, params);
272
+ return value;
273
+ },
274
+ validator,
275
+ };
200
276
  };
277
+ return createReader();
201
278
  }
202
279
  }
203
280
  exports.Mapper = Mapper;
@@ -277,11 +354,7 @@ function mapRows(rows, mapping) {
277
354
  // Deduplicate root entities by key so joined rows map back to the same object.
278
355
  for (const row of rows) {
279
356
  const ctx = createRowContext(row);
280
- const keyValue = mapping.readKeyValue(ctx);
281
- if (keyValue === undefined || keyValue === null) {
282
- throw new Error(`Missing key column for root mapping "${mapping.name}" in row ${JSON.stringify(row)}`);
283
- }
284
- const keyString = stringifyKey(keyValue);
357
+ const keyString = normalizeRowKey(mapping.readKeyValue(ctx), mapping, ctx);
285
358
  const entity = buildEntity(ctx, mapping, cache, new Set(), [], undefined);
286
359
  // Always hydrate parents per row; cache reuses existing entity references.
287
360
  if (!roots.has(keyString)) {
@@ -299,6 +372,84 @@ function expectExactlyOneRow(rows) {
299
372
  }
300
373
  return rows[0];
301
374
  }
375
+ function readScalarValue(executor, sql, params) {
376
+ return executor(sql, params).then((rows) => extractScalar(rows));
377
+ }
378
+ function extractScalar(rows) {
379
+ const row = expectExactlyOneRow(rows);
380
+ const columns = Object.keys(row);
381
+ if (columns.length !== 1) {
382
+ throw new Error(`expected exactly one column but received ${columns.length}.`);
383
+ }
384
+ return row[columns[0]];
385
+ }
386
+ function applyRowValidator(rows, validator) {
387
+ if (!validator) {
388
+ return rows;
389
+ }
390
+ return rows.map((row) => validator(row));
391
+ }
392
+ function applyScalarValidator(value, validator) {
393
+ if (!validator) {
394
+ return value;
395
+ }
396
+ return validator(value);
397
+ }
398
+ function isReaderSchemaLike(value) {
399
+ if (typeof value !== 'object' || value === null) {
400
+ return false;
401
+ }
402
+ const candidate = value;
403
+ if ('parse' in candidate && typeof candidate.parse === 'function') {
404
+ return true;
405
+ }
406
+ if ('assert' in candidate && typeof candidate.assert === 'function') {
407
+ return true;
408
+ }
409
+ return false;
410
+ }
411
+ function hasParse(value) {
412
+ return typeof value.parse === 'function';
413
+ }
414
+ function hasAssert(value) {
415
+ return typeof value.assert === 'function';
416
+ }
417
+ const readerValidatorSchemaError = 'reader.validator expects a function or an object with parse/assert methods.';
418
+ function normalizeReaderValidator(validator) {
419
+ if (!validator) {
420
+ return undefined;
421
+ }
422
+ if (typeof validator === 'function') {
423
+ return validator;
424
+ }
425
+ if (!isReaderSchemaLike(validator)) {
426
+ throw new Error(readerValidatorSchemaError);
427
+ }
428
+ if (hasParse(validator)) {
429
+ const parser = validator.parse;
430
+ return (value) => parser(value);
431
+ }
432
+ if (hasAssert(validator)) {
433
+ const assertFn = validator.assert;
434
+ return (value) => {
435
+ const asserted = assertFn(value);
436
+ if (asserted !== undefined) {
437
+ return asserted;
438
+ }
439
+ return value;
440
+ };
441
+ }
442
+ throw new Error(readerValidatorSchemaError);
443
+ }
444
+ function composeValidators(first, second) {
445
+ if (!first) {
446
+ return second;
447
+ }
448
+ if (!second) {
449
+ return first;
450
+ }
451
+ return (value) => second(first(value));
452
+ }
302
453
  const builtinMapperOptions = {
303
454
  keyTransform: 'snake_to_camel',
304
455
  idKeysAsString: true,
@@ -537,18 +688,7 @@ function buildEntity(ctx, mapping, cache, visited, stack, relation) {
537
688
  }
538
689
  }
539
690
  function getOrCreateEntity(ctx, mapping, cache) {
540
- const keyValue = mapping.readKeyValue(ctx);
541
- if (keyValue === undefined || keyValue === null) {
542
- throw new Error(`Missing key column for mapping "${mapping.name}" during recursion.`);
543
- }
544
- let keyString;
545
- try {
546
- keyString = stringifyKey(keyValue);
547
- }
548
- catch (error) {
549
- const detail = error instanceof Error && error.message ? ` (${error.message})` : '';
550
- throw new Error(`Row mapping "${mapping.name}" key must be JSON-serializable${detail}.`);
551
- }
691
+ const keyString = normalizeRowKey(mapping.readKeyValue(ctx), mapping, ctx);
552
692
  let entitySet = cache.get(mapping);
553
693
  if (!entitySet) {
554
694
  entitySet = new Map();
@@ -576,22 +716,47 @@ function hydrateParents(entity, ctx, mapping, cache, visited, stack) {
576
716
  }
577
717
  localKeyIsNull(mapping.name, parent.propertyName, localColumn, parent.parent.name);
578
718
  }
579
- const parentKeyColumn = parent.parent.resolveColumnName(parent.parent.key);
580
- const normalizedParentKeyColumn = parentKeyColumn.toLowerCase();
581
- if (!ctx.normalizedColumns.has(normalizedParentKeyColumn)) {
582
- missingParentKeyColumn(mapping.name, parent.propertyName, parent.parent.name, parentKeyColumn);
719
+ const parentKeyColumns = resolveParentKeyColumns(parent.parent);
720
+ for (const parentKeyColumn of parentKeyColumns) {
721
+ const normalizedParentKeyColumn = parentKeyColumn.toLowerCase();
722
+ if (!ctx.normalizedColumns.has(normalizedParentKeyColumn)) {
723
+ missingParentKeyColumn(mapping.name, parent.propertyName, parent.parent.name, parentKeyColumn);
724
+ }
583
725
  }
584
- const parentKeyValue = getRowValue(ctx, parentKeyColumn);
585
- if (parentKeyValue === undefined || parentKeyValue === null) {
726
+ const missingValueColumn = parentKeyColumns.find((parentKeyColumn) => {
727
+ const parentKeyValue = getRowValue(ctx, parentKeyColumn);
728
+ return parentKeyValue === undefined || parentKeyValue === null;
729
+ });
730
+ if (missingValueColumn) {
586
731
  if (parent.optional) {
587
732
  continue;
588
733
  }
589
- throw new Error(`Missing key column "${parentKeyColumn}" for parent mapping "${parent.parent.name}"`);
734
+ throw new Error(`Missing key column "${missingValueColumn}" for parent mapping "${parent.parent.name}"`);
590
735
  }
591
736
  const parentEntity = buildEntity(ctx, parent.parent, cache, visited, stack, parent.propertyName);
592
737
  entity[parent.propertyName] = parentEntity;
593
738
  }
594
739
  }
740
+ function resolveParentKeyColumns(mapping) {
741
+ const explicitColumns = mapping.keyColumnNames;
742
+ if (explicitColumns && explicitColumns.length > 0) {
743
+ return explicitColumns;
744
+ }
745
+ const descriptor = mapping.key;
746
+ if (isKeyExtractor(descriptor)) {
747
+ throw new Error(`RowMapping "${mapping.name}" exposes a derived key function that cannot be referenced by belongsTo relations.`);
748
+ }
749
+ if (Array.isArray(descriptor)) {
750
+ if (descriptor.length === 0) {
751
+ throw new Error(`RowMapping "${mapping.name}" composite key must include at least one column.`);
752
+ }
753
+ return descriptor.map((column) => mapping.resolveColumnName(column));
754
+ }
755
+ if (typeof descriptor !== 'string') {
756
+ throw new Error(`RowMapping "${mapping.name}" key descriptor must be a property name when not derived or composite.`);
757
+ }
758
+ return [mapping.resolveColumnName(descriptor)];
759
+ }
595
760
  function createRowContext(row) {
596
761
  const normalized = new Map();
597
762
  for (const column of Object.keys(row)) {
@@ -606,6 +771,19 @@ function getRowValue(ctx, columnName) {
606
771
  }
607
772
  return ctx.row[actual];
608
773
  }
774
+ function lookupRowColumn(ctx, columnName) {
775
+ const normalizedKey = columnName.toLowerCase();
776
+ const actual = ctx.normalizedColumns.get(normalizedKey);
777
+ if (actual) {
778
+ return { found: true, value: ctx.row[actual] };
779
+ }
780
+ for (const column of Object.keys(ctx.row)) {
781
+ if (column.toLowerCase() === normalizedKey) {
782
+ return { found: true, value: ctx.row[column] };
783
+ }
784
+ }
785
+ return { found: false, value: undefined };
786
+ }
609
787
  function coerceColumnValue(value) {
610
788
  if (typeof value !== 'string') {
611
789
  return value;
@@ -635,16 +813,53 @@ function coerceColumnValue(value) {
635
813
  return value;
636
814
  }
637
815
  const isoDateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(?:\.\d{1,9})?)?(Z|[+-]\d{2}:?\d{2})$/;
638
- function stringifyKey(value) {
639
- if (typeof value === 'object' && value !== null) {
640
- try {
641
- return JSON.stringify(value);
642
- }
643
- catch {
644
- throw new Error('Row mapping key must be JSON-serializable.');
816
+ function normalizeRowKey(value, mapping, ctx) {
817
+ var _a;
818
+ if (value === undefined || value === null) {
819
+ throwMissingKeyValue(mapping, ctx);
820
+ }
821
+ if (!Array.isArray(value)) {
822
+ return serializeKeyComponent(value, mapping, ctx, 0, (_a = mapping.keyColumnNames) === null || _a === void 0 ? void 0 : _a[0]);
823
+ }
824
+ if (value.length === 0) {
825
+ throw new Error(`Composite key for mapping "${mapping.name}" (${mapping.keyDescription}) must include at least one value.`);
826
+ }
827
+ return value
828
+ .map((component, index) => {
829
+ var _a;
830
+ return serializeKeyComponent(component, mapping, ctx, index, (_a = mapping.keyColumnNames) === null || _a === void 0 ? void 0 : _a[index]);
831
+ })
832
+ .join('|');
833
+ }
834
+ function serializeKeyComponent(component, mapping, ctx, index, columnName) {
835
+ var _a;
836
+ if (component === undefined || component === null) {
837
+ throwMissingKeyValue(mapping, ctx, columnName !== null && columnName !== void 0 ? columnName : (_a = mapping.keyColumnNames) === null || _a === void 0 ? void 0 : _a[index]);
838
+ }
839
+ if (typeof component === 'string') {
840
+ return `s:${component.length}:${component}`;
841
+ }
842
+ if (typeof component === 'number') {
843
+ if (!Number.isFinite(component)) {
844
+ throw new Error(`Row mapping "${mapping.name}" key component ${index + 1} must be a finite number.`);
645
845
  }
846
+ return `n:${component}`;
847
+ }
848
+ if (typeof component === 'bigint') {
849
+ return `b:${component}`;
646
850
  }
647
- return String(value);
851
+ throw new Error(`Row mapping "${mapping.name}" key component ${index + 1} must be a string, number, or bigint.`);
852
+ }
853
+ function throwMissingKeyColumn(mapping, columnName, ctx) {
854
+ const descriptor = mapping.keyDescription;
855
+ throw new Error(`${mapping.name}: Missing key column "${columnName}" (${descriptor}) in row ${JSON.stringify(ctx.row)}`);
856
+ }
857
+ function throwMissingKeyValue(mapping, ctx, columnName) {
858
+ const descriptor = mapping.keyDescription;
859
+ const columnInfo = columnName
860
+ ? ` for column "${columnName}"`
861
+ : '';
862
+ throw new Error(`${mapping.name}: Missing key value${columnInfo} (${descriptor}) in row ${JSON.stringify(ctx.row)}`);
648
863
  }
649
864
  function missingLocalKey(mappingName, propertyName, localColumn, parentName) {
650
865
  throw new Error(`Missing local key column "${localColumn}" for relation "${propertyName}" on ${mappingName} (parent ${parentName})`);
@@ -688,4 +903,8 @@ function toSnakeCase(value) {
688
903
  .toLowerCase()
689
904
  .replace(/^_+/, '');
690
905
  }
906
+ exports.__internal = {
907
+ normalizeKeyValue: internal_1.normalizeKeyValue,
908
+ normalizeKeyFromRow: internal_1.normalizeKeyFromRow,
909
+ };
691
910
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mapper/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mapper/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { KeyExtractor, KeyValue, Row } from './index';
2
+ /**
3
+ * Serializes a key value so it can act as a deterministic cache identifier.
4
+ * Array values are flattened, and each component is tagged with its runtime
5
+ * type to keep string/number/bigint collisions distinct (e.g., "1" vs 1).
6
+ *
7
+ * @param value - A primitive or composite key value produced by a mapping.
8
+ * @returns A stable string representation that preserves component order and types.
9
+ * @throws If the provided value is null, undefined, or not a supported primitive.
10
+ */
11
+ export declare function normalizeKeyValue(value: KeyValue): string;
12
+ /**
13
+ * Extracts and normalizes a key from a database row using the supplied descriptor.
14
+ *
15
+ * @param row - The raw database row whose column names may still be snake_case.
16
+ * @param key - A property name, an ordered list of column names (for composites), or a key extractor.
17
+ * @param mappingName - Included in error-context messaging when required columns are missing.
18
+ * @returns A deterministic string form of the key that preserves component ordering and types.
19
+ * @throws If required columns are missing or contain null/undefined values.
20
+ */
21
+ export declare function normalizeKeyFromRow(row: Row, key: string | readonly string[] | KeyExtractor<Row>, mappingName: string): string;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeKeyValue = normalizeKeyValue;
4
+ exports.normalizeKeyFromRow = normalizeKeyFromRow;
5
+ function assertPrimitive(component) {
6
+ if (component === undefined || component === null) {
7
+ throw new Error('Internal key component must be defined.');
8
+ }
9
+ if (typeof component === 'string') {
10
+ return component;
11
+ }
12
+ if (typeof component === 'number') {
13
+ if (!Number.isFinite(component)) {
14
+ throw new Error('Internal key component must be a finite number.');
15
+ }
16
+ return component;
17
+ }
18
+ if (typeof component === 'bigint') {
19
+ return component;
20
+ }
21
+ throw new Error('Internal key component must be a string, number, or bigint.');
22
+ }
23
+ function serializePrimitive(component) {
24
+ if (typeof component === 'string') {
25
+ return `s:${component.length}:${component}`;
26
+ }
27
+ if (typeof component === 'number') {
28
+ return `n:${component}`;
29
+ }
30
+ return `b:${component}`;
31
+ }
32
+ function camelCaseRow(row) {
33
+ const target = {};
34
+ for (const column of Object.keys(row)) {
35
+ target[toCamelCase(column)] = row[column];
36
+ }
37
+ return target;
38
+ }
39
+ function toCamelCase(value) {
40
+ return value
41
+ .split('_')
42
+ .filter(Boolean)
43
+ .map((segment, index) => index === 0
44
+ ? segment.toLowerCase()
45
+ : `${segment.charAt(0).toUpperCase()}${segment
46
+ .slice(1)
47
+ .toLowerCase()}`)
48
+ .join('');
49
+ }
50
+ function lookupColumnValue(row, columnName, mappingName) {
51
+ const normalizedKey = columnName.toLowerCase();
52
+ for (const column of Object.keys(row)) {
53
+ if (column.toLowerCase() === normalizedKey) {
54
+ return row[column];
55
+ }
56
+ }
57
+ const context = mappingName ? ` for mapping "${mappingName}"` : '';
58
+ throw new Error(`Missing key column "${columnName}"${context}`);
59
+ }
60
+ function normalizeArrayValue(value) {
61
+ if (value.length === 0) {
62
+ throw new Error('Composite key must contain at least one value.');
63
+ }
64
+ return value.map((component) => serializePrimitive(assertPrimitive(component))).join('|');
65
+ }
66
+ /**
67
+ * Serializes a key value so it can act as a deterministic cache identifier.
68
+ * Array values are flattened, and each component is tagged with its runtime
69
+ * type to keep string/number/bigint collisions distinct (e.g., "1" vs 1).
70
+ *
71
+ * @param value - A primitive or composite key value produced by a mapping.
72
+ * @returns A stable string representation that preserves component order and types.
73
+ * @throws If the provided value is null, undefined, or not a supported primitive.
74
+ */
75
+ function normalizeKeyValue(value) {
76
+ if (Array.isArray(value)) {
77
+ return normalizeArrayValue(value);
78
+ }
79
+ const primitiveValue = assertPrimitive(value);
80
+ return serializePrimitive(primitiveValue);
81
+ }
82
+ /**
83
+ * Extracts and normalizes a key from a database row using the supplied descriptor.
84
+ *
85
+ * @param row - The raw database row whose column names may still be snake_case.
86
+ * @param key - A property name, an ordered list of column names (for composites), or a key extractor.
87
+ * @param mappingName - Included in error-context messaging when required columns are missing.
88
+ * @returns A deterministic string form of the key that preserves component ordering and types.
89
+ * @throws If required columns are missing or contain null/undefined values.
90
+ */
91
+ function normalizeKeyFromRow(row, key, mappingName) {
92
+ if (typeof key === 'function') {
93
+ return normalizeKeyValue(key(camelCaseRow(row)));
94
+ }
95
+ if (Array.isArray(key)) {
96
+ const values = key.map((column) => assertPrimitive(lookupColumnValue(row, column, mappingName)));
97
+ return normalizeArrayValue(values);
98
+ }
99
+ const columnKey = key;
100
+ const component = assertPrimitive(lookupColumnValue(row, columnKey, mappingName));
101
+ return serializePrimitive(component);
102
+ }
103
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/mapper/internal.ts"],"names":[],"mappings":"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"}