nvent 1.0.0-alpha.10 → 1.0.0-alpha.12

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.
package/dist/module.d.mts CHANGED
@@ -40,345 +40,300 @@ type NventQueueConfig = {
40
40
  * `iii/config.ts` can import them without creating a circular dependency with
41
41
  * `module.ts`.
42
42
  */
43
+
43
44
  interface NventIiiOptions {
44
- iii?: {
45
- /** Version of the iii engine to install. Default: 'latest' */
46
- version?: string;
47
- /** 'local' uses a local binary, 'docker' uses Docker, 'remote' skips lifecycle management */
48
- mode?: 'local' | 'docker' | 'remote';
49
- /** WebSocket URL for workers to connect to (default: ws://localhost:49134) */
50
- wsUrl?: string;
51
- /** HTTP port for iii REST API (default: 3111) */
52
- httpPort?: number;
53
- /** HTTP host for iii REST API (default: 'localhost') */
54
- httpHost?: string;
55
- /** WebSocket port for workers (default: 49134) */
56
- wsPort?: number;
57
- /** WebSocket port for the Stream module (default: 3112) */
58
- streamPort?: number;
59
- /** Whether nvent manages engine lifecycle. Default: true in dev, false in prod */
60
- managed?: boolean;
61
- modules?: {
62
- state?: boolean;
63
- queue?: boolean;
64
- cron?: boolean;
65
- observability?: boolean;
66
- stream?: boolean;
67
- };
68
- /** State module adapter configuration */
69
- state?: {
70
- adapter?: {
71
- type: 'kv';
72
- storeMethod?: 'file_based' | 'in_memory';
73
- filePath?: string;
74
- saveIntervalMs?: number;
75
- } | {
76
- type: 'redis';
77
- redisUrl?: string;
78
- } | {
79
- type: 'bridge';
80
- bridgeUrl: string;
81
- };
82
- };
83
- /**
84
- * Queue module configuration.
85
- * Named queues must be declared here for the iii engine to route messages through them.
86
- */
87
- queue?: {
88
- adapter?: {
89
- type: 'builtin';
90
- storeMethod?: 'file_based' | 'in_memory';
91
- filePath?: string;
92
- saveIntervalMs?: number;
93
- maxAttempts?: number;
94
- backoffMs?: number;
95
- concurrency?: number;
96
- pollIntervalMs?: number;
97
- /** Processing order. 'concurrent' (parallel) or 'fifo' (sequential). Default: 'concurrent' */
98
- mode?: 'concurrent' | 'fifo';
99
- } | {
100
- type: 'redis';
101
- redisUrl?: string;
102
- } | {
103
- type: 'rabbitmq';
104
- amqpUrl?: string;
105
- maxAttempts?: number;
106
- prefetchCount?: number;
107
- /** 'standard' or 'quorum' (HA replicated). Default: 'standard' */
108
- queueMode?: 'standard' | 'quorum';
109
- } | {
110
- type: 'bridge';
111
- bridgeUrl: string;
112
- };
113
- queueConfigs?: Record<string, {
114
- type?: 'standard' | 'fifo';
115
- concurrency?: number;
116
- /** Alias of maxRetries */
117
- retries?: number;
118
- maxRetries?: number;
119
- /** Alias of backoffMs */
120
- backoff?: number;
121
- backoffMs?: number;
122
- /** Optional visibility timeout / lease timeout if supported by the engine */
123
- visibilityTimeoutMs?: number;
124
- leaseTimeoutMs?: number;
125
- /** Optional dead-letter / fallback queue names if supported by the engine */
126
- deadLetterQueue?: string;
127
- fallbackQueue?: string;
128
- /** FIFO only: field in the payload used to group messages */
129
- messageGroupField?: string;
130
- }>;
131
- };
132
- /** Cron module adapter configuration */
133
- cron?: {
134
- adapter?: {
135
- type: 'kv';
136
- lockTtlMs?: number;
137
- lockIndex?: string;
138
- storeMethod?: 'file_based' | 'in_memory';
139
- filePath?: string;
140
- saveIntervalMs?: number;
141
- } | {
142
- type: 'redis';
143
- redisUrl?: string;
144
- };
145
- };
146
- /** WebSocket Stream module configuration */
147
- stream?: {
148
- host?: string;
149
- authFunction?: string | null;
150
- adapter?: {
151
- type: 'kv';
152
- storeMethod?: 'file_based' | 'in_memory';
153
- filePath?: string;
154
- saveIntervalMs?: number;
155
- } | {
156
- type: 'redis';
157
- redisUrl?: string;
158
- } | {
159
- type: 'bridge';
160
- bridgeUrl: string;
161
- };
162
- };
163
- /** REST API module extra settings */
164
- restApi?: {
165
- host?: string;
166
- defaultTimeout?: number;
167
- concurrencyRequestLimit?: number;
168
- /** CORS configuration for browser clients */
169
- cors?: {
170
- /** Origins allowed to make requests. Use '*' for any, or list specific domains. */
171
- allowedOrigins?: string[];
172
- /** HTTP methods permitted for cross-origin requests. */
173
- allowedMethods?: string[];
174
- };
175
- };
176
- /** OtelModule (observability) configuration */
177
- observability?: {
178
- enabled?: boolean;
179
- serviceName?: string;
180
- serviceVersion?: string;
181
- serviceNamespace?: string;
182
- /**
183
- * Trace export destination.
184
- * 'memory' = queryable via iii API / console (default).
185
- * 'otlp' = external collector (set endpoint too).
186
- * 'both' = memory + otlp.
187
- */
188
- exporter?: 'memory' | 'otlp' | 'both';
189
- endpoint?: string;
190
- samplingRatio?: number;
191
- memoryMaxSpans?: number;
192
- metricsEnabled?: boolean;
193
- metricsExporter?: 'memory' | 'otlp';
194
- metricsRetentionSeconds?: number;
195
- metricsMaxCount?: number;
196
- logsEnabled?: boolean;
197
- logsExporter?: 'memory' | 'otlp' | 'both';
198
- logsMaxCount?: number;
199
- logsRetentionSeconds?: number;
200
- logsBatchSize?: number;
201
- logsFlushIntervalMs?: number;
202
- logsSamplingRatio?: number;
203
- logsConsoleOutput?: boolean;
204
- /** Advanced sampling rules override samplingRatio for matched operations. */
205
- sampling?: {
206
- default?: number;
207
- parentBased?: boolean;
208
- rules?: Array<{
209
- operation?: string;
210
- service?: string;
211
- rate: number;
212
- }>;
213
- rateLimit?: {
214
- maxTracesPerSecond?: number;
215
- };
216
- };
217
- /** Alert rules — trigger a webhook or function when a metric crosses a threshold. */
218
- alerts?: Array<{
219
- name: string;
220
- metric: string;
221
- threshold: number;
222
- operator: '>' | '>=' | '<' | '<=' | '==' | '!=';
223
- windowSeconds: number;
224
- enabled?: boolean;
225
- cooldownSeconds?: number;
226
- action: {
227
- type: 'webhook';
228
- url: string;
229
- } | {
230
- type: 'function';
231
- path: string;
232
- };
233
- }>;
234
- level?: 'trace' | 'debug' | 'info' | 'warn' | 'error';
235
- format?: 'default' | 'json';
236
- };
237
- /**
238
- * Minimum log level for iii engine output.
239
- * 'none' silences all output, 'error' shows only errors, 'warn' shows warnings + errors,
240
- * 'info' shows everything. Default: 'warn'
241
- */
242
- logLevel?: 'none' | 'error' | 'warn' | 'info';
243
- /**
244
- * Enable the iii-console web UI (separate binary, http://localhost:3113).
245
- * Pass `true` for defaults or an object to customise.
246
- */
247
- console?: boolean | {
248
- /** Version to install. Default: same as iii engine version */
249
- version?: string;
250
- /** Port for the console web UI. Default: 3113 */
251
- port?: number;
252
- /** Host for the console web UI. Default: 'localhost' */
253
- host?: string;
254
- /** Enable the Flow visualization page */
255
- flow?: boolean;
256
- };
257
- /** PubSub worker — topic-based event fanout across functions. */
258
- pubsub?: {
259
- adapter?: {
260
- type: 'local';
261
- } | {
262
- type: 'redis';
263
- redisUrl?: string;
264
- };
265
- };
266
- /**
267
- * HTTP Functions worker — enables outbound HTTP calls from the engine.
268
- * Required for functions registered with HttpInvocationConfig.
269
- */
270
- httpFunctions?: {
271
- security?: {
272
- /** URL patterns allowed for outbound requests. Use '*' to allow all. */
273
- urlAllowlist?: string[];
274
- /** Block requests to private/internal IP ranges (SSRF prevention). Default: true */
275
- blockPrivateIps?: boolean;
276
- /** Require HTTPS for all outbound requests. Default: true */
277
- requireHttps?: boolean;
278
- };
279
- };
280
- /**
281
- * Additional iii-worker-manager instance with RBAC.
282
- * nvent uses this automatically when browser SDK is enabled.
283
- * Can also be configured manually for custom auth scenarios.
284
- */
285
- workerManager?: {
286
- rbac?: {
287
- /** Port for the RBAC worker manager. Default: 49135 */
288
- port?: number;
289
- /** Function ID called on every WebSocket upgrade for auth. */
290
- authFunctionId?: string;
291
- /** Functions the connecting worker is allowed to invoke (patterns supported). */
292
- exposeFunctions?: string[];
293
- /** Function invoked before each handler — enrich or audit requests. */
294
- middlewareFunctionId?: string;
295
- /** Allow workers to register their own function handlers. Default: true */
296
- allowFunctionRegistration?: boolean;
297
- /** Allow workers to register new trigger types. Default: false */
298
- allowTriggerTypeRegistration?: boolean;
299
- /** Prefix prepended to every function the worker registers. */
300
- functionRegistrationPrefix?: string;
301
- /** TTL for signed browser auth tokens generated by the Nuxt proxy. Default: 120 */
302
- tokenTtlSeconds?: number;
303
- /** Allow browser connections without a custom resolver returning user context. Default: true */
304
- allowAnonymous?: boolean;
305
- /** Optional path (relative to project root) to a custom browser auth resolver module. */
306
- authResolverPath?: string;
307
- };
308
- };
309
- /**
310
- * Bridge client workers — connects this engine to remote iii instances.
311
- * Each entry creates an `iii-bridge` worker in the config.
312
- */
313
- bridge?: Array<{
314
- url: string;
315
- serviceId: string;
316
- serviceName?: string;
317
- expose?: Array<{
318
- localFunction: string;
319
- remoteFunction?: string;
320
- }>;
321
- forward?: Array<{
322
- localFunction: string;
323
- remoteFunction: string;
324
- timeoutMs?: number;
325
- }>;
326
- }>;
327
- /**
328
- * Exec workers — spawns external processes alongside the engine.
329
- * Each entry creates an `iii-exec` worker in the config.
330
- */
331
- exec?: Array<{
332
- watch?: string[];
333
- exec: string[];
334
- }>;
335
- /** Anonymous usage telemetry. Set enabled: false to opt out. */
336
- telemetry?: {
337
- enabled?: boolean;
338
- apiKey?: string;
339
- sdkApiKey?: string;
340
- heartbeatIntervalSecs?: number;
341
- };
342
- };
343
- functions?: {
344
- /** Directory under server/ where functions are, relative to serverDir (default: 'functions') */
345
- dir?: string;
346
- /**
347
- * Function ID prefix for this layer's functions.
348
- * Set in a layer's `nuxt.config.ts` to namespace its functions.
349
- * Priority: this value → `$meta.name` → package.json name → directory name.
350
- * Set to `''` (empty string) to explicitly opt out of any prefix.
351
- * Has no effect in the root project (always un-prefixed).
352
- * Example: 'myorg::auth'
353
- */
354
- prefix?: string;
355
- python?: {
356
- /**
357
- * Path to the Python executable used **in development only** (e.g. a virtualenv).
358
- * Has no effect in production — set `NVENT_PYTHON_BIN` env var instead.
359
- * Default: 'python3'
360
- * Example: '.venv/bin/python3'
361
- */
362
- devPath?: string;
363
- /**
364
- * Skip Python worker support entirely (no Python scanning, no workers started).
365
- * Useful when the project has no Python functions. Default: false
366
- */
367
- skip?: boolean;
368
- };
369
- };
370
- app?: {
371
- /** Enable the nvent app UI and its built-in route. Default: true */
372
- enabled?: boolean;
373
- /** Route path for the nvent app. Default: '/_nvent' */
374
- routePath?: string;
375
- /**
376
- * Layout to use for the nvent app route.
377
- * Set to false for no layout, or a string to use a named layout.
378
- * Default: false
379
- */
380
- layout?: string | false;
381
- };
45
+ iii?: {
46
+ /** Version of the iii engine to install. Default: 'latest' */
47
+ version?: string
48
+ /** 'local' uses a local binary, 'docker' uses Docker, 'remote' skips lifecycle management */
49
+ mode?: 'local' | 'docker' | 'remote'
50
+ /** WebSocket URL for workers to connect to (default: ws://localhost:49134) */
51
+ wsUrl?: string
52
+ /** HTTP port for iii REST API (default: 3111) */
53
+ httpPort?: number
54
+ /** HTTP host for iii REST API (default: 'localhost') */
55
+ httpHost?: string
56
+ /** WebSocket port for workers (default: 49134) */
57
+ wsPort?: number
58
+ /** WebSocket port for the Stream module (default: 3112) */
59
+ streamPort?: number
60
+ /** Whether nvent manages engine lifecycle. Default: true in dev, false in prod */
61
+ managed?: boolean
62
+ /** Exit with non-zero code if engine installation fails. Default: false */
63
+ failOnInstallFailure?: boolean
64
+ modules?: {
65
+ state?: boolean
66
+ queue?: boolean
67
+ cron?: boolean
68
+ observability?: boolean
69
+ stream?: boolean
70
+ }
71
+ /** State module adapter configuration */
72
+ state?: {
73
+ adapter?:
74
+ | { type: 'kv'; storeMethod?: 'file_based' | 'in_memory'; filePath?: string; saveIntervalMs?: number }
75
+ | { type: 'redis'; redisUrl?: string }
76
+ | { type: 'bridge'; bridgeUrl: string }
77
+ }
78
+ /**
79
+ * Queue module configuration.
80
+ * Named queues must be declared here for the iii engine to route messages through them.
81
+ */
82
+ queue?: {
83
+ adapter?:
84
+ | {
85
+ type: 'builtin'
86
+ storeMethod?: 'file_based' | 'in_memory'
87
+ filePath?: string
88
+ saveIntervalMs?: number
89
+ maxAttempts?: number
90
+ backoffMs?: number
91
+ concurrency?: number
92
+ pollIntervalMs?: number
93
+ /** Processing order. 'concurrent' (parallel) or 'fifo' (sequential). Default: 'concurrent' */
94
+ mode?: 'concurrent' | 'fifo'
95
+ }
96
+ | { type: 'redis'; redisUrl?: string }
97
+ | {
98
+ type: 'rabbitmq'
99
+ amqpUrl?: string
100
+ maxAttempts?: number
101
+ prefetchCount?: number
102
+ /** 'standard' or 'quorum' (HA replicated). Default: 'standard' */
103
+ queueMode?: 'standard' | 'quorum'
104
+ }
105
+ | { type: 'bridge'; bridgeUrl: string }
106
+ queueConfigs?: Record<string, {
107
+ type?: 'standard' | 'fifo'
108
+ concurrency?: number
109
+ /** Alias of maxRetries */
110
+ retries?: number
111
+ maxRetries?: number
112
+ /** Alias of backoffMs */
113
+ backoff?: number
114
+ backoffMs?: number
115
+ /** Optional visibility timeout / lease timeout if supported by the engine */
116
+ visibilityTimeoutMs?: number
117
+ leaseTimeoutMs?: number
118
+ /** Optional dead-letter / fallback queue names if supported by the engine */
119
+ deadLetterQueue?: string
120
+ fallbackQueue?: string
121
+ /** FIFO only: field in the payload used to group messages */
122
+ messageGroupField?: string
123
+ }>
124
+ }
125
+ /** Cron module adapter configuration */
126
+ cron?: {
127
+ adapter?:
128
+ | { type: 'kv'; lockTtlMs?: number; lockIndex?: string; storeMethod?: 'file_based' | 'in_memory'; filePath?: string; saveIntervalMs?: number }
129
+ | { type: 'redis'; redisUrl?: string }
130
+ }
131
+ /** WebSocket Stream module configuration */
132
+ stream?: {
133
+ host?: string
134
+ authFunction?: string | null
135
+ adapter?:
136
+ | { type: 'kv'; storeMethod?: 'file_based' | 'in_memory'; filePath?: string; saveIntervalMs?: number }
137
+ | { type: 'redis'; redisUrl?: string }
138
+ | { type: 'bridge'; bridgeUrl: string }
139
+ }
140
+ /** REST API module extra settings */
141
+ restApi?: {
142
+ host?: string
143
+ defaultTimeout?: number
144
+ concurrencyRequestLimit?: number
145
+ /** CORS configuration for browser clients */
146
+ cors?: {
147
+ /** Origins allowed to make requests. Use '*' for any, or list specific domains. */
148
+ allowedOrigins?: string[]
149
+ /** HTTP methods permitted for cross-origin requests. */
150
+ allowedMethods?: string[]
151
+ }
152
+ }
153
+ /** OtelModule (observability) configuration */
154
+ observability?: {
155
+ enabled?: boolean
156
+ serviceName?: string
157
+ serviceVersion?: string
158
+ serviceNamespace?: string
159
+ /**
160
+ * Trace export destination.
161
+ * 'memory' = queryable via iii API / console (default).
162
+ * 'otlp' = external collector (set endpoint too).
163
+ * 'both' = memory + otlp.
164
+ */
165
+ exporter?: 'memory' | 'otlp' | 'both'
166
+ endpoint?: string
167
+ samplingRatio?: number
168
+ memoryMaxSpans?: number
169
+ metricsEnabled?: boolean
170
+ metricsExporter?: 'memory' | 'otlp'
171
+ metricsRetentionSeconds?: number
172
+ metricsMaxCount?: number
173
+ logsEnabled?: boolean
174
+ logsExporter?: 'memory' | 'otlp' | 'both'
175
+ logsMaxCount?: number
176
+ logsRetentionSeconds?: number
177
+ logsBatchSize?: number
178
+ logsFlushIntervalMs?: number
179
+ logsSamplingRatio?: number
180
+ logsConsoleOutput?: boolean
181
+ /** Advanced sampling rules — override samplingRatio for matched operations. */
182
+ sampling?: {
183
+ default?: number
184
+ parentBased?: boolean
185
+ rules?: Array<{ operation?: string; service?: string; rate: number }>
186
+ rateLimit?: { maxTracesPerSecond?: number }
187
+ }
188
+ /** Alert rules — trigger a webhook or function when a metric crosses a threshold. */
189
+ alerts?: Array<{
190
+ name: string
191
+ metric: string
192
+ threshold: number
193
+ operator: '>' | '>=' | '<' | '<=' | '==' | '!='
194
+ windowSeconds: number
195
+ enabled?: boolean
196
+ cooldownSeconds?: number
197
+ action: { type: 'webhook'; url: string } | { type: 'function'; path: string }
198
+ }>
199
+ level?: 'trace' | 'debug' | 'info' | 'warn' | 'error'
200
+ format?: 'default' | 'json'
201
+ }
202
+ /**
203
+ * Minimum log level for iii engine output.
204
+ * 'none' silences all output, 'error' shows only errors, 'warn' shows warnings + errors,
205
+ * 'info' shows everything. Default: 'warn'
206
+ */
207
+ logLevel?: 'none' | 'error' | 'warn' | 'info'
208
+ /**
209
+ * Enable the iii-console web UI (separate binary, http://localhost:3113).
210
+ * Pass `true` for defaults or an object to customise.
211
+ */
212
+ console?: boolean | {
213
+ /** Version to install. Default: same as iii engine version */
214
+ version?: string
215
+ /** Port for the console web UI. Default: 3113 */
216
+ port?: number
217
+ /** Host for the console web UI. Default: 'localhost' */
218
+ host?: string
219
+ /** Enable the Flow visualization page */
220
+ flow?: boolean
221
+ }
222
+ /** PubSub worker — topic-based event fanout across functions. */
223
+ pubsub?: {
224
+ adapter?:
225
+ | { type: 'local' }
226
+ | { type: 'redis'; redisUrl?: string }
227
+ }
228
+ /**
229
+ * HTTP Functions worker — enables outbound HTTP calls from the engine.
230
+ * Required for functions registered with HttpInvocationConfig.
231
+ */
232
+ httpFunctions?: {
233
+ security?: {
234
+ /** URL patterns allowed for outbound requests. Use '*' to allow all. */
235
+ urlAllowlist?: string[]
236
+ /** Block requests to private/internal IP ranges (SSRF prevention). Default: true */
237
+ blockPrivateIps?: boolean
238
+ /** Require HTTPS for all outbound requests. Default: true */
239
+ requireHttps?: boolean
240
+ }
241
+ }
242
+ /**
243
+ * Additional iii-worker-manager instance with RBAC.
244
+ * nvent uses this automatically when browser SDK is enabled.
245
+ * Can also be configured manually for custom auth scenarios.
246
+ */
247
+ workerManager?: {
248
+ rbac?: {
249
+ /** Port for the RBAC worker manager. Default: 49135 */
250
+ port?: number
251
+ /** Function ID called on every WebSocket upgrade for auth. */
252
+ authFunctionId?: string
253
+ /** Functions the connecting worker is allowed to invoke (patterns supported). */
254
+ exposeFunctions?: string[]
255
+ /** Function invoked before each handler — enrich or audit requests. */
256
+ middlewareFunctionId?: string
257
+ /** Allow workers to register their own function handlers. Default: true */
258
+ allowFunctionRegistration?: boolean
259
+ /** Allow workers to register new trigger types. Default: false */
260
+ allowTriggerTypeRegistration?: boolean
261
+ /** Prefix prepended to every function the worker registers. */
262
+ functionRegistrationPrefix?: string
263
+ /** TTL for signed browser auth tokens generated by the Nuxt proxy. Default: 120 */
264
+ tokenTtlSeconds?: number
265
+ /** Allow browser connections without a custom resolver returning user context. Default: true */
266
+ allowAnonymous?: boolean
267
+ /** Optional path (relative to project root) to a custom browser auth resolver module. */
268
+ authResolverPath?: string
269
+ }
270
+ }
271
+ /**
272
+ * Bridge client workers — connects this engine to remote iii instances.
273
+ * Each entry creates an `iii-bridge` worker in the config.
274
+ */
275
+ bridge?: Array<{
276
+ url: string
277
+ serviceId: string
278
+ serviceName?: string
279
+ expose?: Array<{ localFunction: string; remoteFunction?: string }>
280
+ forward?: Array<{ localFunction: string; remoteFunction: string; timeoutMs?: number }>
281
+ }>
282
+ /**
283
+ * Exec workers spawns external processes alongside the engine.
284
+ * Each entry creates an `iii-exec` worker in the config.
285
+ */
286
+ exec?: Array<{
287
+ watch?: string[]
288
+ exec: string[]
289
+ }>
290
+ /** Anonymous usage telemetry. Set enabled: false to opt out. */
291
+ telemetry?: {
292
+ enabled?: boolean
293
+ apiKey?: string
294
+ sdkApiKey?: string
295
+ heartbeatIntervalSecs?: number
296
+ }
297
+ }
298
+ functions?: {
299
+ /** Directory under server/ where functions are, relative to serverDir (default: 'functions') */
300
+ dir?: string
301
+ /**
302
+ * Function ID prefix for this layer's functions.
303
+ * Set in a layer's `nuxt.config.ts` to namespace its functions.
304
+ * Priority: this value `$meta.name` package.json name directory name.
305
+ * Set to `''` (empty string) to explicitly opt out of any prefix.
306
+ * Has no effect in the root project (always un-prefixed).
307
+ * Example: 'myorg::auth'
308
+ */
309
+ prefix?: string
310
+ python?: {
311
+ /**
312
+ * Path to the Python executable used **in development only** (e.g. a virtualenv).
313
+ * Has no effect in production — set `NVENT_PYTHON_BIN` env var instead.
314
+ * Default: 'python3'
315
+ * Example: '.venv/bin/python3'
316
+ */
317
+ devPath?: string
318
+ /**
319
+ * Skip Python worker support entirely (no Python scanning, no workers started).
320
+ * Useful when the project has no Python functions. Default: false
321
+ */
322
+ skip?: boolean
323
+ }
324
+ }
325
+ app?: {
326
+ /** Enable the nvent app UI and its built-in route. Default: true */
327
+ enabled?: boolean
328
+ /** Route path for the nvent app. Default: '/_nvent' */
329
+ routePath?: string
330
+ /**
331
+ * Layout to use for the nvent app route.
332
+ * Set to false for no layout, or a string to use a named layout.
333
+ * Default: false
334
+ */
335
+ layout?: string | false
336
+ }
382
337
  }
383
338
 
384
339
  interface LayerInfo {