> ## Documentation Index
> Fetch the complete documentation index at: https://docs.faremeter.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Gateway nginx.src

# gateway-nginx/src

## Type Aliases

### FieldRef

> **FieldRef** = `object`

Defined in: [packages/gateway-nginx/src/types.ts:5](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L5)

#### Properties

##### path

> **path**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:6](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L6)

##### source

> **source**: `"body"` | `"headers"` | `"status"`

Defined in: [packages/gateway-nginx/src/types.ts:7](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L7)

***

### GeneratorInput

> **GeneratorInput** = `object`

Defined in: [packages/gateway-nginx/src/types.ts:21](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L21)

#### Properties

##### extraDirectives?

> `optional` **extraDirectives**: `string`\[]

Defined in: [packages/gateway-nginx/src/types.ts:27](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L27)

##### routes

> **routes**: [`RouteConfig`](#routeconfig)\[]

Defined in: [packages/gateway-nginx/src/types.ts:22](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L22)

##### sidecarURL

> **sidecarURL**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:23](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L23)

##### sitePrefix?

> `optional` **sitePrefix**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:26](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L26)

##### specRoot?

> `optional` **specRoot**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:25](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L25)

##### upstreamURL

> **upstreamURL**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:24](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L24)

***

### GeneratorOutput

> **GeneratorOutput** = `object`

Defined in: [packages/gateway-nginx/src/types.ts:30](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L30)

#### Properties

##### locationsConf

> **locationsConf**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:31](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L31)

##### luaFiles

> **luaFiles**: `Map`\<`string`, `string`>

Defined in: [packages/gateway-nginx/src/types.ts:32](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L32)

##### warnings

> **warnings**: `string`\[]

Defined in: [packages/gateway-nginx/src/types.ts:33](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L33)

***

### PricingMode

> **PricingMode** = `"two-phase"` | `"one-phase"`

Defined in: [packages/gateway-nginx/src/types.ts:10](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L10)

***

### RouteConfig

> **RouteConfig** = `object`

Defined in: [packages/gateway-nginx/src/types.ts:12](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L12)

#### Properties

##### captureFields

> **captureFields**: [`FieldRef`](#fieldref)\[]

Defined in: [packages/gateway-nginx/src/types.ts:18](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L18)

##### method

> **method**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:14](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L14)

##### path

> **path**: `string`

Defined in: [packages/gateway-nginx/src/types.ts:13](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L13)

##### pricingMode

> **pricingMode**: [`PricingMode`](#pricingmode)

Defined in: [packages/gateway-nginx/src/types.ts:17](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L17)

##### pricingRules

> **pricingRules**: `Record`\<`string`, `string`>

Defined in: [packages/gateway-nginx/src/types.ts:15](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L15)

##### transportType

> **transportType**: [`TransportType`](#transporttype-1)

Defined in: [packages/gateway-nginx/src/types.ts:16](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/types.ts#L16)

***

### TransportType

> **TransportType** = `"json"` | `"sse"` | `"websocket"`

Defined in: packages/middleware-openapi/dist/src/types.d.ts:21

## Functions

### analyzeRule()

> **analyzeRule**(`rule`): `AnalysisResult`

Defined in: [packages/gateway-nginx/src/analyzer.ts:193](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/analyzer.ts#L193)

#### Parameters

##### rule

`AnalyzedRule`

#### Returns

`AnalysisResult`

***

### convertPath()

> **convertPath**(`path`): `LocationDirective`

Defined in: [packages/gateway-nginx/src/path.ts:108](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/path.ts#L108)

#### Parameters

##### path

`string`

#### Returns

`LocationDirective`

***

### detectOverlaps()

> **detectOverlaps**(`paths`): `string`\[]

Defined in: [packages/gateway-nginx/src/path.ts:119](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/path.ts#L119)

#### Parameters

##### paths

`string`\[]

#### Returns

`string`\[]

***

### extractGatewaySpec()

> **extractGatewaySpec**(`doc`): `ParsedSpec`

Defined in: [packages/gateway-nginx/src/parser.ts:72](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/parser.ts#L72)

Convert an already-dereferenced OpenAPI document into an nginx-ready route
set. Runs the same validation as [loadGatewaySpec](#loadgatewayspec).

#### Parameters

##### doc

`Record`\<`string`, `unknown`>

#### Returns

`ParsedSpec`

***

### generateConfig()

> **generateConfig**(`input`): [`GeneratorOutput`](#generatoroutput)

Defined in: [packages/gateway-nginx/src/index.ts:24](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/index.ts#L24)

Generate nginx location blocks and a bundled Lua module for a set
of parsed routes. Produces:

* `locationsConf` — the location block text. The operator
  includes this inside their own `server { }` block via
  `include locations.conf;`.

* `luaFiles` — standalone Lua modules that the generated
  config will `require()` at runtime. The operator places
  these in their `lua_package_path`. Currently produces a
  single `faremeter.lua` bundle.

* `warnings` — non-fatal concerns detected at generation time.

Pure function: does no I/O, no network calls, no filesystem
access. Safe to call in tests.

#### Parameters

##### input

[`GeneratorInput`](#generatorinput)

#### Returns

[`GeneratorOutput`](#generatoroutput)

***

### generateLuaFiles()

> **generateLuaFiles**(): `Map`\<`string`, `string`>

Defined in: [packages/gateway-nginx/src/lua/index.ts:21](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/lua/index.ts#L21)

#### Returns

`Map`\<`string`, `string`>

***

### generateNginxConf()

> **generateNginxConf**(`opts`): `NginxGeneratorResult`

Defined in: [packages/gateway-nginx/src/nginx/index.ts:18](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/nginx/index.ts#L18)

#### Parameters

##### opts

`NginxGeneratorOpts`

#### Returns

`NginxGeneratorResult`

***

### loadGatewaySpec()

> **loadGatewaySpec**(`filePath`): `Promise`\<`ParsedSpec`>

Defined in: [packages/gateway-nginx/src/parser.ts:63](https://github.com/faremeter/faremeter/blob/main/packages/gateway-nginx/src/parser.ts#L63)

Load and parse an OpenAPI spec file into an nginx-ready route set.

#### Parameters

##### filePath

`string`

#### Returns

`Promise`\<`ParsedSpec`>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.