@514labs/moose-lib 0.6.262 → 0.6.263-ci-10-gc7213e03

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 (35) hide show
  1. package/dist/{browserCompatible-CC6Jamxn.d.ts → browserCompatible-CpjUXotI.d.ts} +1 -1
  2. package/dist/{browserCompatible-GsBQtLKo.d.mts → browserCompatible-fk6xPzoB.d.mts} +1 -1
  3. package/dist/browserCompatible.d.mts +2 -2
  4. package/dist/browserCompatible.d.ts +2 -2
  5. package/dist/browserCompatible.js +60 -12
  6. package/dist/browserCompatible.js.map +1 -1
  7. package/dist/browserCompatible.mjs +60 -12
  8. package/dist/browserCompatible.mjs.map +1 -1
  9. package/dist/compilerPlugin.js +35 -3
  10. package/dist/compilerPlugin.js.map +1 -1
  11. package/dist/compilerPlugin.mjs +35 -3
  12. package/dist/compilerPlugin.mjs.map +1 -1
  13. package/dist/dataModels/toDataModels.js +2 -2
  14. package/dist/dataModels/toDataModels.js.map +1 -1
  15. package/dist/dataModels/toDataModels.mjs +2 -2
  16. package/dist/dataModels/toDataModels.mjs.map +1 -1
  17. package/dist/dmv2/index.d.mts +1 -1
  18. package/dist/dmv2/index.d.ts +1 -1
  19. package/dist/dmv2/index.js +60 -12
  20. package/dist/dmv2/index.js.map +1 -1
  21. package/dist/dmv2/index.mjs +60 -12
  22. package/dist/dmv2/index.mjs.map +1 -1
  23. package/dist/{index-B1HsstjQ.d.mts → index-Dd3ZmpTq.d.mts} +29 -6
  24. package/dist/{index-B1HsstjQ.d.ts → index-Dd3ZmpTq.d.ts} +29 -6
  25. package/dist/index.d.mts +3 -3
  26. package/dist/index.d.ts +3 -3
  27. package/dist/index.js +60 -12
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +60 -12
  30. package/dist/index.mjs.map +1 -1
  31. package/dist/moose-runner.js +4 -1
  32. package/dist/moose-runner.js.map +1 -1
  33. package/dist/moose-runner.mjs +4 -1
  34. package/dist/moose-runner.mjs.map +1 -1
  35. package/package.json +1 -1
@@ -152,6 +152,12 @@ declare class TypedBase<T, C> {
152
152
  metadata: {
153
153
  [key: string]: any;
154
154
  };
155
+ /**
156
+ * Whether this resource allows extra fields beyond the defined columns.
157
+ * When true, extra fields in payloads are passed through to streaming functions.
158
+ * Injected by the compiler plugin when the type has an index signature.
159
+ */
160
+ allowExtraFields: boolean;
155
161
  /**
156
162
  * @internal Constructor intended for internal use by subclasses and the compiler plugin.
157
163
  * It expects the schema and columns to be provided, typically injected by the compiler.
@@ -160,8 +166,9 @@ declare class TypedBase<T, C> {
160
166
  * @param config The configuration object for the resource.
161
167
  * @param schema The JSON schema for the resource's data type T (injected).
162
168
  * @param columns The array of Column definitions for T (injected).
169
+ * @param allowExtraFields Whether extra fields are allowed (injected when type has index signature).
163
170
  */
164
- constructor(name: string, config: C, schema?: IJsonSchemaCollection.IV3_1, columns?: Column[], validators?: TypiaValidators<T>);
171
+ constructor(name: string, config: C, schema?: IJsonSchemaCollection.IV3_1, columns?: Column[], validators?: TypiaValidators<T>, allowExtraFields?: boolean);
165
172
  }
166
173
 
167
174
  interface MaterializedViewCreateOptions {
@@ -1132,8 +1139,13 @@ declare class Stream<T> extends TypedBase<T, StreamConfig<T>> {
1132
1139
  * @param config Optional configuration for the stream.
1133
1140
  */
1134
1141
  constructor(name: string, config?: StreamConfig<T>);
1135
- /** @internal **/
1136
- constructor(name: string, config: StreamConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[]);
1142
+ /**
1143
+ * @internal
1144
+ * Note: `validators` parameter is a positional placeholder (always undefined for Stream).
1145
+ * It exists because TypedBase has validators as the 5th param, and we need to pass
1146
+ * allowExtraFields as the 6th param. Stream doesn't use validators.
1147
+ */
1148
+ constructor(name: string, config: StreamConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: undefined, allowExtraFields: boolean);
1137
1149
  /**
1138
1150
  * Internal map storing transformation configurations.
1139
1151
  * Maps destination stream names to arrays of transformation functions and their configs.
@@ -1503,8 +1515,13 @@ declare class IngestApi<T> extends TypedBase<T, IngestConfig<T>> {
1503
1515
  * @param config Optional configuration for the ingest API.
1504
1516
  */
1505
1517
  constructor(name: string, config?: IngestConfig<T>);
1506
- /** @internal **/
1507
- constructor(name: string, config: IngestConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[]);
1518
+ /**
1519
+ * @internal
1520
+ * Note: `validators` parameter is a positional placeholder (always undefined for IngestApi).
1521
+ * It exists because TypedBase has validators as the 5th param, and we need to pass
1522
+ * allowExtraFields as the 6th param. IngestApi doesn't use validators.
1523
+ */
1524
+ constructor(name: string, config: IngestConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: undefined, allowExtraFields: boolean);
1508
1525
  }
1509
1526
 
1510
1527
  interface ApiUtil {
@@ -1798,8 +1815,10 @@ declare class IngestPipeline<T> extends TypedBase<T, IngestPipelineConfig<T>> {
1798
1815
  * @param config Configuration specifying which components to create and their settings.
1799
1816
  * @param schema JSON schema collection for type validation.
1800
1817
  * @param columns Column definitions for the data model.
1818
+ * @param validators Typia validation functions.
1819
+ * @param allowExtraFields Whether extra fields are allowed (injected when type has index signature).
1801
1820
  */
1802
- constructor(name: string, config: IngestPipelineConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: TypiaValidators<T>);
1821
+ constructor(name: string, config: IngestPipelineConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: TypiaValidators<T>, allowExtraFields: boolean);
1803
1822
  }
1804
1823
 
1805
1824
  interface ETLPipelineConfig<T, U> {
@@ -1842,6 +1861,10 @@ declare class SqlResource {
1842
1861
  pushesDataTo: SqlObject[];
1843
1862
  /** @internal Source file path where this resource was defined */
1844
1863
  sourceFile?: string;
1864
+ /** @internal Source line number where this resource was defined */
1865
+ sourceLine?: number;
1866
+ /** @internal Source column number where this resource was defined */
1867
+ sourceColumn?: number;
1845
1868
  /**
1846
1869
  * Creates a new SqlResource instance.
1847
1870
  * @param name The name of the resource.
@@ -152,6 +152,12 @@ declare class TypedBase<T, C> {
152
152
  metadata: {
153
153
  [key: string]: any;
154
154
  };
155
+ /**
156
+ * Whether this resource allows extra fields beyond the defined columns.
157
+ * When true, extra fields in payloads are passed through to streaming functions.
158
+ * Injected by the compiler plugin when the type has an index signature.
159
+ */
160
+ allowExtraFields: boolean;
155
161
  /**
156
162
  * @internal Constructor intended for internal use by subclasses and the compiler plugin.
157
163
  * It expects the schema and columns to be provided, typically injected by the compiler.
@@ -160,8 +166,9 @@ declare class TypedBase<T, C> {
160
166
  * @param config The configuration object for the resource.
161
167
  * @param schema The JSON schema for the resource's data type T (injected).
162
168
  * @param columns The array of Column definitions for T (injected).
169
+ * @param allowExtraFields Whether extra fields are allowed (injected when type has index signature).
163
170
  */
164
- constructor(name: string, config: C, schema?: IJsonSchemaCollection.IV3_1, columns?: Column[], validators?: TypiaValidators<T>);
171
+ constructor(name: string, config: C, schema?: IJsonSchemaCollection.IV3_1, columns?: Column[], validators?: TypiaValidators<T>, allowExtraFields?: boolean);
165
172
  }
166
173
 
167
174
  interface MaterializedViewCreateOptions {
@@ -1132,8 +1139,13 @@ declare class Stream<T> extends TypedBase<T, StreamConfig<T>> {
1132
1139
  * @param config Optional configuration for the stream.
1133
1140
  */
1134
1141
  constructor(name: string, config?: StreamConfig<T>);
1135
- /** @internal **/
1136
- constructor(name: string, config: StreamConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[]);
1142
+ /**
1143
+ * @internal
1144
+ * Note: `validators` parameter is a positional placeholder (always undefined for Stream).
1145
+ * It exists because TypedBase has validators as the 5th param, and we need to pass
1146
+ * allowExtraFields as the 6th param. Stream doesn't use validators.
1147
+ */
1148
+ constructor(name: string, config: StreamConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: undefined, allowExtraFields: boolean);
1137
1149
  /**
1138
1150
  * Internal map storing transformation configurations.
1139
1151
  * Maps destination stream names to arrays of transformation functions and their configs.
@@ -1503,8 +1515,13 @@ declare class IngestApi<T> extends TypedBase<T, IngestConfig<T>> {
1503
1515
  * @param config Optional configuration for the ingest API.
1504
1516
  */
1505
1517
  constructor(name: string, config?: IngestConfig<T>);
1506
- /** @internal **/
1507
- constructor(name: string, config: IngestConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[]);
1518
+ /**
1519
+ * @internal
1520
+ * Note: `validators` parameter is a positional placeholder (always undefined for IngestApi).
1521
+ * It exists because TypedBase has validators as the 5th param, and we need to pass
1522
+ * allowExtraFields as the 6th param. IngestApi doesn't use validators.
1523
+ */
1524
+ constructor(name: string, config: IngestConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: undefined, allowExtraFields: boolean);
1508
1525
  }
1509
1526
 
1510
1527
  interface ApiUtil {
@@ -1798,8 +1815,10 @@ declare class IngestPipeline<T> extends TypedBase<T, IngestPipelineConfig<T>> {
1798
1815
  * @param config Configuration specifying which components to create and their settings.
1799
1816
  * @param schema JSON schema collection for type validation.
1800
1817
  * @param columns Column definitions for the data model.
1818
+ * @param validators Typia validation functions.
1819
+ * @param allowExtraFields Whether extra fields are allowed (injected when type has index signature).
1801
1820
  */
1802
- constructor(name: string, config: IngestPipelineConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: TypiaValidators<T>);
1821
+ constructor(name: string, config: IngestPipelineConfig<T>, schema: IJsonSchemaCollection$1.IV3_1, columns: Column[], validators: TypiaValidators<T>, allowExtraFields: boolean);
1803
1822
  }
1804
1823
 
1805
1824
  interface ETLPipelineConfig<T, U> {
@@ -1842,6 +1861,10 @@ declare class SqlResource {
1842
1861
  pushesDataTo: SqlObject[];
1843
1862
  /** @internal Source file path where this resource was defined */
1844
1863
  sourceFile?: string;
1864
+ /** @internal Source line number where this resource was defined */
1865
+ sourceLine?: number;
1866
+ /** @internal Source column number where this resource was defined */
1867
+ sourceColumn?: number;
1845
1868
  /**
1846
1869
  * Creates a new SqlResource instance.
1847
1870
  * @param name The name of the resource.
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- export { C as ClickHouseByteSize, q as ClickHouseCodec, j as ClickHouseDecimal, n as ClickHouseDefault, k as ClickHouseFixedStringSize, l as ClickHouseFloat, a as ClickHouseInt, m as ClickHouseJson, e as ClickHouseLineString, p as ClickHouseMaterialized, f as ClickHouseMultiLineString, h as ClickHouseMultiPolygon, b as ClickHouseNamedTuple, c as ClickHousePoint, g as ClickHousePolygon, i as ClickHousePrecision, d as ClickHouseRing, o as ClickHouseTTL, D as DateTime, r as DateTime64, t as DateTime64String, s as DateTimeString, E as Decimal, F as FixedString, u as Float32, v as Float64, w as Int16, x as Int32, y as Int64, I as Int8, J as JWT, K as Key, L as LowCardinality, z as UInt16, A as UInt32, B as UInt64, U as UInt8, W as WithDefault } from './browserCompatible-GsBQtLKo.mjs';
2
- import { K as ApiUtil, a4 as MooseClient } from './index-B1HsstjQ.mjs';
3
- export { A as Aggregated, h as Api, i as ApiConfig, ad as ApiHelpers, a5 as Blocks, a6 as ClickHouseEngines, C as ConsumptionApi, ae as ConsumptionHelpers, N as ConsumptionUtil, e as DeadLetter, D as DeadLetterModel, f as DeadLetterQueue, l as ETLPipeline, m as ETLPipelineConfig, E as EgressConfig, F as FrameworkApp, Q as IdentifierBrandedString, I as IngestApi, g as IngestConfig, j as IngestPipeline, L as LifeCycle, M as MaterializedView, R as NonIdentifierBrandedString, a as OlapConfig, O as OlapTable, aa as QueryClient, X as RawValue, b as S3QueueTableSettings, S as SimpleAggregated, Z as Sql, k as SqlResource, c as Stream, d as StreamConfig, T as Task, U as Value, V as View, n as WebApp, o as WebAppConfig, p as WebAppHandler, W as Workflow, ab as WorkflowClient, a2 as createClickhouseParameter, a8 as createMaterializedView, a7 as dropView, x as getApi, w as getApis, v as getIngestApi, u as getIngestApis, z as getSqlResource, y as getSqlResources, t as getStream, s as getStreams, r as getTable, q as getTables, ac as getTemporalClient, a1 as getValueFromParameter, J as getWebApp, H as getWebApps, G as getWorkflow, B as getWorkflows, af as joinQueries, a3 as mapToClickHouseType, a9 as populateTable, P as quoteIdentifier, Y as sql, $ as toQuery, a0 as toQueryPreview, _ as toStaticQuery } from './index-B1HsstjQ.mjs';
1
+ export { C as ClickHouseByteSize, q as ClickHouseCodec, j as ClickHouseDecimal, n as ClickHouseDefault, k as ClickHouseFixedStringSize, l as ClickHouseFloat, a as ClickHouseInt, m as ClickHouseJson, e as ClickHouseLineString, p as ClickHouseMaterialized, f as ClickHouseMultiLineString, h as ClickHouseMultiPolygon, b as ClickHouseNamedTuple, c as ClickHousePoint, g as ClickHousePolygon, i as ClickHousePrecision, d as ClickHouseRing, o as ClickHouseTTL, D as DateTime, r as DateTime64, t as DateTime64String, s as DateTimeString, E as Decimal, F as FixedString, u as Float32, v as Float64, w as Int16, x as Int32, y as Int64, I as Int8, J as JWT, K as Key, L as LowCardinality, z as UInt16, A as UInt32, B as UInt64, U as UInt8, W as WithDefault } from './browserCompatible-fk6xPzoB.mjs';
2
+ import { K as ApiUtil, a4 as MooseClient } from './index-Dd3ZmpTq.mjs';
3
+ export { A as Aggregated, h as Api, i as ApiConfig, ad as ApiHelpers, a5 as Blocks, a6 as ClickHouseEngines, C as ConsumptionApi, ae as ConsumptionHelpers, N as ConsumptionUtil, e as DeadLetter, D as DeadLetterModel, f as DeadLetterQueue, l as ETLPipeline, m as ETLPipelineConfig, E as EgressConfig, F as FrameworkApp, Q as IdentifierBrandedString, I as IngestApi, g as IngestConfig, j as IngestPipeline, L as LifeCycle, M as MaterializedView, R as NonIdentifierBrandedString, a as OlapConfig, O as OlapTable, aa as QueryClient, X as RawValue, b as S3QueueTableSettings, S as SimpleAggregated, Z as Sql, k as SqlResource, c as Stream, d as StreamConfig, T as Task, U as Value, V as View, n as WebApp, o as WebAppConfig, p as WebAppHandler, W as Workflow, ab as WorkflowClient, a2 as createClickhouseParameter, a8 as createMaterializedView, a7 as dropView, x as getApi, w as getApis, v as getIngestApi, u as getIngestApis, z as getSqlResource, y as getSqlResources, t as getStream, s as getStreams, r as getTable, q as getTables, ac as getTemporalClient, a1 as getValueFromParameter, J as getWebApp, H as getWebApps, G as getWorkflow, B as getWorkflows, af as joinQueries, a3 as mapToClickHouseType, a9 as populateTable, P as quoteIdentifier, Y as sql, $ as toQuery, a0 as toQueryPreview, _ as toStaticQuery } from './index-Dd3ZmpTq.mjs';
4
4
  import * as _clickhouse_client from '@clickhouse/client';
5
5
  import { KafkaJS } from '@confluentinc/kafka-javascript';
6
6
  import http from 'http';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { C as ClickHouseByteSize, q as ClickHouseCodec, j as ClickHouseDecimal, n as ClickHouseDefault, k as ClickHouseFixedStringSize, l as ClickHouseFloat, a as ClickHouseInt, m as ClickHouseJson, e as ClickHouseLineString, p as ClickHouseMaterialized, f as ClickHouseMultiLineString, h as ClickHouseMultiPolygon, b as ClickHouseNamedTuple, c as ClickHousePoint, g as ClickHousePolygon, i as ClickHousePrecision, d as ClickHouseRing, o as ClickHouseTTL, D as DateTime, r as DateTime64, t as DateTime64String, s as DateTimeString, E as Decimal, F as FixedString, u as Float32, v as Float64, w as Int16, x as Int32, y as Int64, I as Int8, J as JWT, K as Key, L as LowCardinality, z as UInt16, A as UInt32, B as UInt64, U as UInt8, W as WithDefault } from './browserCompatible-CC6Jamxn.js';
2
- import { K as ApiUtil, a4 as MooseClient } from './index-B1HsstjQ.js';
3
- export { A as Aggregated, h as Api, i as ApiConfig, ad as ApiHelpers, a5 as Blocks, a6 as ClickHouseEngines, C as ConsumptionApi, ae as ConsumptionHelpers, N as ConsumptionUtil, e as DeadLetter, D as DeadLetterModel, f as DeadLetterQueue, l as ETLPipeline, m as ETLPipelineConfig, E as EgressConfig, F as FrameworkApp, Q as IdentifierBrandedString, I as IngestApi, g as IngestConfig, j as IngestPipeline, L as LifeCycle, M as MaterializedView, R as NonIdentifierBrandedString, a as OlapConfig, O as OlapTable, aa as QueryClient, X as RawValue, b as S3QueueTableSettings, S as SimpleAggregated, Z as Sql, k as SqlResource, c as Stream, d as StreamConfig, T as Task, U as Value, V as View, n as WebApp, o as WebAppConfig, p as WebAppHandler, W as Workflow, ab as WorkflowClient, a2 as createClickhouseParameter, a8 as createMaterializedView, a7 as dropView, x as getApi, w as getApis, v as getIngestApi, u as getIngestApis, z as getSqlResource, y as getSqlResources, t as getStream, s as getStreams, r as getTable, q as getTables, ac as getTemporalClient, a1 as getValueFromParameter, J as getWebApp, H as getWebApps, G as getWorkflow, B as getWorkflows, af as joinQueries, a3 as mapToClickHouseType, a9 as populateTable, P as quoteIdentifier, Y as sql, $ as toQuery, a0 as toQueryPreview, _ as toStaticQuery } from './index-B1HsstjQ.js';
1
+ export { C as ClickHouseByteSize, q as ClickHouseCodec, j as ClickHouseDecimal, n as ClickHouseDefault, k as ClickHouseFixedStringSize, l as ClickHouseFloat, a as ClickHouseInt, m as ClickHouseJson, e as ClickHouseLineString, p as ClickHouseMaterialized, f as ClickHouseMultiLineString, h as ClickHouseMultiPolygon, b as ClickHouseNamedTuple, c as ClickHousePoint, g as ClickHousePolygon, i as ClickHousePrecision, d as ClickHouseRing, o as ClickHouseTTL, D as DateTime, r as DateTime64, t as DateTime64String, s as DateTimeString, E as Decimal, F as FixedString, u as Float32, v as Float64, w as Int16, x as Int32, y as Int64, I as Int8, J as JWT, K as Key, L as LowCardinality, z as UInt16, A as UInt32, B as UInt64, U as UInt8, W as WithDefault } from './browserCompatible-CpjUXotI.js';
2
+ import { K as ApiUtil, a4 as MooseClient } from './index-Dd3ZmpTq.js';
3
+ export { A as Aggregated, h as Api, i as ApiConfig, ad as ApiHelpers, a5 as Blocks, a6 as ClickHouseEngines, C as ConsumptionApi, ae as ConsumptionHelpers, N as ConsumptionUtil, e as DeadLetter, D as DeadLetterModel, f as DeadLetterQueue, l as ETLPipeline, m as ETLPipelineConfig, E as EgressConfig, F as FrameworkApp, Q as IdentifierBrandedString, I as IngestApi, g as IngestConfig, j as IngestPipeline, L as LifeCycle, M as MaterializedView, R as NonIdentifierBrandedString, a as OlapConfig, O as OlapTable, aa as QueryClient, X as RawValue, b as S3QueueTableSettings, S as SimpleAggregated, Z as Sql, k as SqlResource, c as Stream, d as StreamConfig, T as Task, U as Value, V as View, n as WebApp, o as WebAppConfig, p as WebAppHandler, W as Workflow, ab as WorkflowClient, a2 as createClickhouseParameter, a8 as createMaterializedView, a7 as dropView, x as getApi, w as getApis, v as getIngestApi, u as getIngestApis, z as getSqlResource, y as getSqlResources, t as getStream, s as getStreams, r as getTable, q as getTables, ac as getTemporalClient, a1 as getValueFromParameter, J as getWebApp, H as getWebApps, G as getWorkflow, B as getWorkflows, af as joinQueries, a3 as mapToClickHouseType, a9 as populateTable, P as quoteIdentifier, Y as sql, $ as toQuery, a0 as toQueryPreview, _ as toStaticQuery } from './index-Dd3ZmpTq.js';
4
4
  import * as _clickhouse_client from '@clickhouse/client';
5
5
  import { KafkaJS } from '@confluentinc/kafka-javascript';
6
6
  import http from 'http';
package/dist/index.js CHANGED
@@ -497,8 +497,35 @@ function getSourceFileInfo(stack) {
497
497
  }
498
498
  return {};
499
499
  }
500
+ function getSourceLocationFromStack(stack) {
501
+ if (!stack) return void 0;
502
+ const lines = stack.split("\n");
503
+ for (const line of lines.slice(1)) {
504
+ if (shouldSkipStackLine(line)) {
505
+ continue;
506
+ }
507
+ const v8Match = line.match(/at\s+(?:.*?\s+\()?(.+):(\d+):(\d+)\)?/);
508
+ if (v8Match) {
509
+ return {
510
+ file: v8Match[1],
511
+ line: parseInt(v8Match[2], 10),
512
+ column: parseInt(v8Match[3], 10)
513
+ };
514
+ }
515
+ const smMatch = line.match(/(?:.*@)?(.+):(\d+):(\d+)/);
516
+ if (smMatch) {
517
+ return {
518
+ file: smMatch[1],
519
+ line: parseInt(smMatch[2], 10),
520
+ column: parseInt(smMatch[3], 10)
521
+ };
522
+ }
523
+ }
524
+ return void 0;
525
+ }
500
526
  function getSourceFileFromStack(stack) {
501
- return getSourceFileInfo(stack).file;
527
+ const location = getSourceLocationFromStack(stack);
528
+ return location?.file;
502
529
  }
503
530
 
504
531
  // src/dmv2/typedBase.ts
@@ -517,6 +544,12 @@ var TypedBase = class {
517
544
  validators;
518
545
  /** Optional metadata for the resource, always present as an object. */
519
546
  metadata;
547
+ /**
548
+ * Whether this resource allows extra fields beyond the defined columns.
549
+ * When true, extra fields in payloads are passed through to streaming functions.
550
+ * Injected by the compiler plugin when the type has an index signature.
551
+ */
552
+ allowExtraFields;
520
553
  /**
521
554
  * @internal Constructor intended for internal use by subclasses and the compiler plugin.
522
555
  * It expects the schema and columns to be provided, typically injected by the compiler.
@@ -525,8 +558,9 @@ var TypedBase = class {
525
558
  * @param config The configuration object for the resource.
526
559
  * @param schema The JSON schema for the resource's data type T (injected).
527
560
  * @param columns The array of Column definitions for T (injected).
561
+ * @param allowExtraFields Whether extra fields are allowed (injected when type has index signature).
528
562
  */
529
- constructor(name, config, schema, columns, validators) {
563
+ constructor(name, config, schema, columns, validators, allowExtraFields) {
530
564
  if (schema === void 0 || columns === void 0) {
531
565
  throw new Error(
532
566
  "Supply the type param T so that the schema is inserted by the compiler plugin."
@@ -542,6 +576,7 @@ var TypedBase = class {
542
576
  this.name = name;
543
577
  this.config = config;
544
578
  this.validators = validators;
579
+ this.allowExtraFields = allowExtraFields ?? false;
545
580
  this.metadata = config?.metadata ? { ...config.metadata } : {};
546
581
  const stack = new Error().stack;
547
582
  if (stack) {
@@ -1626,8 +1661,8 @@ var Stream = class extends TypedBase {
1626
1661
  _memoizedProducer;
1627
1662
  /** @internal Hash of the configuration used to create the memoized Kafka producer */
1628
1663
  _kafkaConfigHash;
1629
- constructor(name, config, schema, columns) {
1630
- super(name, config ?? {}, schema, columns);
1664
+ constructor(name, config, schema, columns, validators, allowExtraFields) {
1665
+ super(name, config ?? {}, schema, columns, void 0, allowExtraFields);
1631
1666
  const streams = getMooseInternal().streams;
1632
1667
  if (streams.has(name)) {
1633
1668
  throw new Error(`Stream with name ${name} already exists`);
@@ -1883,7 +1918,7 @@ var DeadLetterQueue = class extends Stream {
1883
1918
  "Supply the type param T so that the schema is inserted by the compiler plugin."
1884
1919
  );
1885
1920
  }
1886
- super(name, config ?? {}, dlqSchema, dlqColumns);
1921
+ super(name, config ?? {}, dlqSchema, dlqColumns, void 0, false);
1887
1922
  this.typeGuard = typeGuard;
1888
1923
  getMooseInternal().streams.set(name, this);
1889
1924
  }
@@ -2049,8 +2084,8 @@ var Workflow = class {
2049
2084
 
2050
2085
  // src/dmv2/sdk/ingestApi.ts
2051
2086
  var IngestApi = class extends TypedBase {
2052
- constructor(name, config, schema, columns) {
2053
- super(name, config, schema, columns);
2087
+ constructor(name, config, schema, columns, validators, allowExtraFields) {
2088
+ super(name, config, schema, columns, void 0, allowExtraFields);
2054
2089
  const ingestApis = getMooseInternal().ingestApis;
2055
2090
  if (ingestApis.has(name)) {
2056
2091
  throw new Error(`Ingest API with name ${name} already exists`);
@@ -2189,8 +2224,8 @@ var IngestPipeline = class extends TypedBase {
2189
2224
  ingestApi;
2190
2225
  /** The dead letter queue of the pipeline, if configured. */
2191
2226
  deadLetterQueue;
2192
- constructor(name, config, schema, columns, validators) {
2193
- super(name, config, schema, columns, validators);
2227
+ constructor(name, config, schema, columns, validators, allowExtraFields) {
2228
+ super(name, config, schema, columns, validators, allowExtraFields);
2194
2229
  if (config.ingest !== void 0) {
2195
2230
  console.warn(
2196
2231
  "\u26A0\uFE0F DEPRECATION WARNING: The 'ingest' parameter is deprecated and will be removed in a future version. Please use 'ingestApi' instead."
@@ -2239,7 +2274,9 @@ var IngestPipeline = class extends TypedBase {
2239
2274
  name,
2240
2275
  streamConfig,
2241
2276
  this.schema,
2242
- this.columnArray
2277
+ this.columnArray,
2278
+ void 0,
2279
+ this.allowExtraFields
2243
2280
  );
2244
2281
  this.stream.pipelineParent = this;
2245
2282
  }
@@ -2259,7 +2296,9 @@ var IngestPipeline = class extends TypedBase {
2259
2296
  name,
2260
2297
  ingestConfig,
2261
2298
  this.schema,
2262
- this.columnArray
2299
+ this.columnArray,
2300
+ void 0,
2301
+ this.allowExtraFields
2263
2302
  );
2264
2303
  this.ingestApi.pipelineParent = this;
2265
2304
  }
@@ -2424,6 +2463,10 @@ var SqlResource = class {
2424
2463
  pushesDataTo;
2425
2464
  /** @internal Source file path where this resource was defined */
2426
2465
  sourceFile;
2466
+ /** @internal Source line number where this resource was defined */
2467
+ sourceLine;
2468
+ /** @internal Source column number where this resource was defined */
2469
+ sourceColumn;
2427
2470
  /**
2428
2471
  * Creates a new SqlResource instance.
2429
2472
  * @param name The name of the resource.
@@ -2449,7 +2492,12 @@ var SqlResource = class {
2449
2492
  this.pullsDataFrom = options?.pullsDataFrom ?? [];
2450
2493
  this.pushesDataTo = options?.pushesDataTo ?? [];
2451
2494
  const stack = new Error().stack;
2452
- this.sourceFile = getSourceFileFromStack(stack);
2495
+ const location = getSourceLocationFromStack(stack);
2496
+ if (location) {
2497
+ this.sourceFile = location.file;
2498
+ this.sourceLine = location.line;
2499
+ this.sourceColumn = location.column;
2500
+ }
2453
2501
  }
2454
2502
  };
2455
2503