@klnap/next-proxy-chain 1.0.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.
package/dist/core.d.ts ADDED
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Platform-agnostic proxy-chain primitives.
3
+ * No Next.js imports — unit-testable on any Web API runtime.
4
+ */
5
+ /**
6
+ * Brand for an explicit "continue the chain" action.
7
+ * Mirrors the mental model of middleware `next()`, without relying on
8
+ * Next.js private response headers.
9
+ */
10
+ declare const NEXT: unique symbol;
11
+ type NextOptions = {
12
+ /** Request header overrides visible to later rules and the final handler. */
13
+ request?: HeadersInit;
14
+ /** Response headers merged into the eventual outgoing response (last-write-wins). */
15
+ headers?: HeadersInit;
16
+ };
17
+ /**
18
+ * Continue the pipeline. Prefer this over returning a framework `NextResponse.next()`.
19
+ *
20
+ * @example
21
+ * return next({ request: { "x-request-id": id }, headers: { "x-request-id": id } })
22
+ */
23
+ type NextResult = NextOptions & {
24
+ readonly [NEXT]: true;
25
+ };
26
+ declare function next(options?: NextOptions): NextResult;
27
+ declare function isNextResult(value: unknown): value is NextResult;
28
+ /**
29
+ * Shared state for one request. `Map` avoids prototype-poisoning risks that
30
+ * come with plain objects and attacker-controlled keys.
31
+ */
32
+ type ProxyContext = Map<string, unknown>;
33
+ declare function createProxyContext(): ProxyContext;
34
+ type ProxyResult<TResponse> = TResponse | NextResult | undefined | void;
35
+ type PathMatcher = RegExp | string;
36
+ type PathOptions = {
37
+ /** Optional locale prefixes, e.g. next-intl `as-needed` routes. */
38
+ locales?: readonly string[];
39
+ };
40
+ type HostMatcher = string | RegExp | readonly (string | RegExp)[];
41
+ /**
42
+ * One include/exclude clause.
43
+ *
44
+ * - `path("/admin/*")` — that path on **any** host
45
+ * - `{ host: "shop.localhost" }` — **any** path on that host
46
+ * - `{ host: "shop.localhost", path: "/checkout/*" }` — both must match
47
+ *
48
+ * Lists are OR. Exclude is checked before include and always wins.
49
+ */
50
+ type RouteScopeInput = PathMatcher | {
51
+ host: HostMatcher;
52
+ path?: PathMatcher | PathMatcher[];
53
+ } | {
54
+ path: PathMatcher | PathMatcher[];
55
+ host?: HostMatcher;
56
+ };
57
+ type RouteScopeList = RouteScopeInput | RouteScopeInput[];
58
+ /** Compiled clause used at request time. Missing host/path means "any". */
59
+ type CompiledScope = {
60
+ host?: RegExp;
61
+ path?: RegExp;
62
+ };
63
+ interface BaseProxyRule<TFn> {
64
+ run: TFn;
65
+ include?: CompiledScope[];
66
+ exclude?: CompiledScope[];
67
+ name?: string;
68
+ }
69
+ type ProxyPathFilter = {
70
+ include?: RouteScopeList;
71
+ exclude?: RouteScopeList;
72
+ pathOptions?: PathOptions;
73
+ name?: string;
74
+ };
75
+ type Entry<TFn> = TFn | BaseProxyRule<TFn>;
76
+ /**
77
+ * Sticky RegExp flags (`g`, `y`) mutate `lastIndex` on each `.test()`.
78
+ * On Edge, one compiled pattern is shared across concurrent requests, so a
79
+ * sticky flag can make path matching flip between true/false spuriously.
80
+ * Always compile path filters without those flags.
81
+ */
82
+ declare function toStatelessRegExp(re: RegExp): RegExp;
83
+ /**
84
+ * Build a host matcher RegExp from exact names and/or patterns.
85
+ * Exact strings are anchored; RegExp sources are OR-combined (sticky flags stripped).
86
+ */
87
+ declare function host(matcher: HostMatcher): RegExp;
88
+ /**
89
+ * Compile user-facing include/exclude into stateless host/path clauses.
90
+ * Strings/globs go through `path()` (locale options apply). Raw RegExp is kept as-is
91
+ * (only sticky flags stripped) so prefix patterns like `/^\/admin/` keep working.
92
+ */
93
+ declare function compileScopes(input: RouteScopeList | undefined, pathOptions?: PathOptions): CompiledScope[] | undefined;
94
+ declare function toRule<TFn>(entry: Entry<TFn>): BaseProxyRule<TFn>;
95
+ declare function ruleLabel<TFn>(rule: BaseProxyRule<TFn>, index: number): string;
96
+ /**
97
+ * Scope a rule with path/host filters.
98
+ */
99
+ declare function withPaths<TFn>(entry: Entry<TFn>, filter: ProxyPathFilter): BaseProxyRule<TFn>;
100
+ /**
101
+ * Whether a rule applies to this request.
102
+ *
103
+ * Rules:
104
+ * 1. If any `exclude` clause matches -> skip (exclude wins).
105
+ * 2. If `include` is set -> run only when at least one clause matches (OR).
106
+ * 3. Path-only clauses apply to every host; host-only clauses apply to every path.
107
+ * 4. Mixing bare paths with host-scoped paths is not a conflict: OR widens the match.
108
+ */
109
+ declare function ruleMatches<TFn>(pathname: string, hostname: string | null, rule: BaseProxyRule<TFn>): boolean;
110
+ /** Path-only helper for tests (host treated as unrestricted). */
111
+ declare function pathMatches<TFn>(pathname: string, rule: BaseProxyRule<TFn>): boolean;
112
+ /** Normalize `Host` / `X-Forwarded-Host` into a bare lowercase hostname (no port). */
113
+ declare function normalizeHost(raw: string | null | undefined): string | null;
114
+ declare function parseCookieName(setCookie: string): string;
115
+ /**
116
+ * Collect `Set-Cookie` entries. Prefer the multi-value `getSetCookie()` API;
117
+ * a single `get("set-cookie")` is only a last-resort fallback on older runtimes.
118
+ */
119
+ declare function listSetCookie(headers: Headers): string[];
120
+ declare function cookieItemsFromHeaders(headers: Headers): Map<string, string>;
121
+ /**
122
+ * Response headers eligible for merge.
123
+ * Filters out `set-cookie` and internal Next.js middleware headers (`x-middleware-*`)
124
+ * to prevent leaking internal transport headers to client responses.
125
+ */
126
+ declare function responseHeaderItems(headers: Headers): Map<string, string>;
127
+ /**
128
+ * Decode request header overrides encoded by Next.js `NextResponse.next({ request: { headers } })`.
129
+ */
130
+ declare function decodeOverriddenRequestHeaders(headers: Headers): Headers;
131
+ interface EntryWrite {
132
+ ruleIndex: number;
133
+ ruleName: string;
134
+ items: Map<string, string>;
135
+ }
136
+ type MergeStrategy = "last-write-wins" | "first-write-wins" | ((key: string, existing: string, incoming: string) => string | null);
137
+ declare function mergeWrites(writes: EntryWrite[], strategy: MergeStrategy, onConflict?: (key: string, winner: string, loser: string) => void): Map<string, string>;
138
+ /**
139
+ * Apply merged headers and cookies onto the terminal response.
140
+ *
141
+ * Headers use last-write-wins via `set` (overwrite).
142
+ * Cookies are rebuilt from a name->value map so the same cookie never appears
143
+ * twice — browsers and CDNs behave unpredictably with duplicate Set-Cookie.
144
+ */
145
+ declare function applyMergedToResponse(res: Response, headers: Map<string, string>, cookies: Map<string, string>): void;
146
+ /**
147
+ * Headers that must not be rewritten by a rule unless explicitly allow-listed.
148
+ * Covers hop-by-hop framing, identity, Next.js internal headers, and common trust headers.
149
+ */
150
+ declare const DEFAULT_BLOCKED_REQUEST_HEADERS: readonly ["host", "connection", "keep-alive", "proxy-authenticate", "proxy-authorization", "te", "trailer", "transfer-encoding", "upgrade", "content-length", "cookie", "authorization", "x-forwarded-host", "x-forwarded-for", "x-forwarded-proto", "x-real-ip", "x-middleware-next", "x-middleware-override-headers"];
151
+ type RequestHeaderPolicy = {
152
+ blocked?: readonly string[];
153
+ /** Opt-in exceptions to the block list (lower-case names). */
154
+ allowed?: readonly string[];
155
+ };
156
+ declare function isRequestHeaderAllowed(name: string, policy?: RequestHeaderPolicy): boolean;
157
+ declare function mergeRequestHeaderOverrides(target: Headers, overrides: Headers, policy?: RequestHeaderPolicy): {
158
+ applied: number;
159
+ dropped: string[];
160
+ };
161
+ declare function headersInitToHeaders(init?: HeadersInit): Headers;
162
+ declare function headersDiffer(base: Headers, overrides: Headers): boolean;
163
+ /**
164
+ * Build a stateless path matcher from a glob, param path, or RegExp.
165
+ *
166
+ * @example
167
+ * path("/admin/*")
168
+ * path("/admin/:id")
169
+ * path("/admin/*", { locales: ["en", "pl"] })
170
+ */
171
+ declare function path(pattern: string | RegExp, options?: PathOptions): RegExp;
172
+ declare function toPathRegex(matcher: PathMatcher | PathMatcher[], options?: PathOptions): RegExp;
173
+ /** Throw when the same clause appears in both include and exclude (always a no-op / footgun). */
174
+ declare function assertIncludeExcludeNoOverlap(include: CompiledScope[] | undefined, exclude: CompiledScope[] | undefined, label: string): void;
175
+ type LogLevel = "debug" | "info" | "warn" | "error";
176
+ interface ChainLogger {
177
+ debug: (obj: unknown, msg?: string) => void;
178
+ info: (obj: unknown, msg?: string) => void;
179
+ warn: (obj: unknown, msg?: string) => void;
180
+ error: (obj: unknown, msg?: string) => void;
181
+ }
182
+ declare function createConsoleLogger(minLevel?: LogLevel): ChainLogger;
183
+ type PipelineOutcome = {
184
+ kind: "passed";
185
+ duration: number;
186
+ } | {
187
+ kind: "next";
188
+ duration: number;
189
+ headers: number;
190
+ } | {
191
+ kind: "stop";
192
+ duration: number;
193
+ status: number;
194
+ };
195
+ /** One line per executed rule — method + path first so parallel Edge logs stay scannable. */
196
+ declare function formatPipelineLine(input: {
197
+ method: string;
198
+ path: string;
199
+ name: string;
200
+ traceId?: string;
201
+ outcome: PipelineOutcome;
202
+ }): string;
203
+ declare class RuleTimeoutError extends Error {
204
+ readonly ruleName: string;
205
+ readonly timeoutMs: number;
206
+ constructor(ruleName: string, timeoutMs: number);
207
+ }
208
+ declare function withRuleTimeout<T>(promise: Promise<T>, timeoutMs: number | undefined, ruleName: string): Promise<T>;
209
+
210
+ export { type BaseProxyRule, type ChainLogger, type CompiledScope, DEFAULT_BLOCKED_REQUEST_HEADERS, type EntryWrite, type HostMatcher, type LogLevel, type MergeStrategy, NEXT, type NextOptions, type NextResult, type PathMatcher, type PathOptions, type PipelineOutcome, type ProxyContext, type ProxyPathFilter, type ProxyResult, type RequestHeaderPolicy, type RouteScopeInput, type RouteScopeList, RuleTimeoutError, applyMergedToResponse, assertIncludeExcludeNoOverlap, compileScopes, cookieItemsFromHeaders, createConsoleLogger, createProxyContext, decodeOverriddenRequestHeaders, formatPipelineLine, headersDiffer, headersInitToHeaders, host, isNextResult, isRequestHeaderAllowed, listSetCookie, mergeRequestHeaderOverrides, mergeWrites, next, normalizeHost, parseCookieName, path, pathMatches, responseHeaderItems, ruleLabel, ruleMatches, toPathRegex, toRule, toStatelessRegExp, withPaths, withRuleTimeout };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,eAAO,MAAM,IAAI,eAAiC,CAAA;AAElD,MAAM,MAAM,WAAW,GAAG;IACxB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,qFAAqF;IACrF,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhE,wBAAgB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,UAAU,CAE1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAID;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAID,MAAM,MAAM,WAAW,CAAC,SAAS,IAAI,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAA;AAE9E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;AAExE;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GACvB,WAAW,GACX;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CACnC,GACD;IACE,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IACjC,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,EAAE,CAAA;AAEhE,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;AAS1C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGpD;AAMD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAOjD;AAQD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,GAAG,SAAS,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,aAAa,EAAE,GAAG,SAAS,CAkC7B;AAYD,wBAAgB,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAwBjE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAQ7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,GACvB,OAAO,CAMT;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAEpF;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU3E;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAKxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBzE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAaxE;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3B;AAED,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,kBAAkB,GAClB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;AAExE,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAAE,EACpB,QAAQ,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAChE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,IAAI,CASN;AAID;;;GAGG;AACH,eAAO,MAAM,+BAA+B,yTAmBlC,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B,CAAA;AAMD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAU9F;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,OAAO,EAClB,MAAM,GAAE,mBAAwB,GAC/B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAYxC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAKxE;AAWD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAyBhF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAK/F;AAMD,iGAAiG;AACjG,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,EACpC,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,GACZ,IAAI,CAUN;AAID,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AASD,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,QAAiB,GAAG,WAAW,CAoB5E;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAMtD,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,eAAe,CAAA;CACzB,GAAG,MAAM,CAaT;AAID,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAEd,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMhD;AAED,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC,CAaZ"}
package/dist/core.js ADDED
@@ -0,0 +1,68 @@
1
+ import {
2
+ DEFAULT_BLOCKED_REQUEST_HEADERS,
3
+ NEXT,
4
+ RuleTimeoutError,
5
+ applyMergedToResponse,
6
+ assertIncludeExcludeNoOverlap,
7
+ compileScopes,
8
+ cookieItemsFromHeaders,
9
+ createConsoleLogger,
10
+ createProxyContext,
11
+ decodeOverriddenRequestHeaders,
12
+ formatPipelineLine,
13
+ headersDiffer,
14
+ headersInitToHeaders,
15
+ host,
16
+ isNextResult,
17
+ isRequestHeaderAllowed,
18
+ listSetCookie,
19
+ mergeRequestHeaderOverrides,
20
+ mergeWrites,
21
+ next,
22
+ normalizeHost,
23
+ parseCookieName,
24
+ path,
25
+ pathMatches,
26
+ responseHeaderItems,
27
+ ruleLabel,
28
+ ruleMatches,
29
+ toPathRegex,
30
+ toRule,
31
+ toStatelessRegExp,
32
+ withPaths,
33
+ withRuleTimeout
34
+ } from "./chunk-PTAOIFNB.js";
35
+ export {
36
+ DEFAULT_BLOCKED_REQUEST_HEADERS,
37
+ NEXT,
38
+ RuleTimeoutError,
39
+ applyMergedToResponse,
40
+ assertIncludeExcludeNoOverlap,
41
+ compileScopes,
42
+ cookieItemsFromHeaders,
43
+ createConsoleLogger,
44
+ createProxyContext,
45
+ decodeOverriddenRequestHeaders,
46
+ formatPipelineLine,
47
+ headersDiffer,
48
+ headersInitToHeaders,
49
+ host,
50
+ isNextResult,
51
+ isRequestHeaderAllowed,
52
+ listSetCookie,
53
+ mergeRequestHeaderOverrides,
54
+ mergeWrites,
55
+ next,
56
+ normalizeHost,
57
+ parseCookieName,
58
+ path,
59
+ pathMatches,
60
+ responseHeaderItems,
61
+ ruleLabel,
62
+ ruleMatches,
63
+ toPathRegex,
64
+ toRule,
65
+ toStatelessRegExp,
66
+ withPaths,
67
+ withRuleTimeout
68
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAiBlD,MAAM,UAAU,IAAI,CAAC,UAAuB,EAAE;IAC5C,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,CAAA;AACrE,CAAC;AAUD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,GAAG,EAAE,CAAA;AAClB,CAAC;AA2DD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAE3E,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3D,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC3C,OAAO,KAAK,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAAoB;IACvC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAwB,CAAA;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAkB,EAAE,EAAE;QAC5C,IAAI,CAAC,YAAY,MAAM;YAAE,OAAO,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAA;QACpE,OAAO,MAAM,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAA;IAC9C,CAAC,CAAC,CAAA;IACF,OAAO,iBAAiB,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,aAAa,CACpB,KAAa;IAEb,OAAO,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAiC,EACjC,WAAyB;IAEzB,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,WAAW,GAAG,CAAC,OAAoC,EAAU,EAAE;QACnE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACpE,CAAA;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAA;YACxC,OAAO,iBAAiB,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9F,CAAC;QACD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC9F,CAAC,CAAA;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAA;IACpC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC1C,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACxE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,QAAuB,EAAE,KAAoB;IACnF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;IAC9C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,MAAM,CAAM,KAAiB;IAC3C,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,UAAU,CAAE,KAA2B,CAAC,IAAI,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACrD,CAAC;IAED,MAAM,IAAI,GAAG,KAA2B,CAAA;IACxC,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAE,IAAI,CAAC,GAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/F,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAA;IAE7C,gEAAgE;IAChE,MAAM,MAAM,GAAG,CAAC,MAAmC,EAAE,EAAE,CACrD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACpD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC,CAAC,CAAA;IAEL,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAM,IAAwB,EAAE,KAAa;IACpE,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAE,IAAI,CAAC,GAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/F,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,QAAQ,KAAK,EAAE,CAAA;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAM,KAAiB,EAAE,MAAuB;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAA;IAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;IACrC,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,CAAA;IAChE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,QAAuB,EACvB,IAAwB;IAExB,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACxF,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAM,QAAgB,EAAE,IAAwB;IACzE,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,GAA8B;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC9C,OAAO,WAAW,IAAI,IAAI,CAAA;AAC5B,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,QAAQ,GAAG,OAAsD,CAAA;IACvE,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAA;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC/B,IAAI,KAAK,KAAK,YAAY;YAAE,OAAM;QAClC,IACE,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACrC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACxC,KAAK,CAAC,UAAU,CAAC,+BAA+B,CAAC;YACjD,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,EACzC,CAAC;YACD,OAAM;QACR,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAC5B,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACxE,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAA;YAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAaD,MAAM,UAAU,WAAW,CACzB,MAAoB,EACpB,QAAuB,EACvB,UAAiE;IAEjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACxB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC9B,SAAQ;YACV,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;YAEpC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;gBAC7C,IAAI,MAAM,KAAK,IAAI;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;;oBACpC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC9B,SAAQ;YACV,CAAC;YAED,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACpC,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC/C,SAAQ;YACV,CAAC;YAED,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC/C,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACxB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAa,EACb,OAA4B,EAC5B,OAA4B;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,IAAI;IACJ,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,gBAAgB;IAChB,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,WAAW;IACX,mBAAmB;IACnB,+BAA+B;CACvB,CAAA;AAQV,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,SAA8B,EAAE;IACnF,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,GAAG,+BAA+B,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC;KACnD,CAAC,CAAA;IACF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAe,EACf,SAAkB,EAClB,SAA8B,EAAE;IAEhC,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtB,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,SAAkB;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAA;IAC1C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,6EAA6E;AAE7E,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAA;IACrC,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,OAAO,CAAA;IACnC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,OAAwB,EAAE,UAAuB,EAAE;IACtE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAElG,IAAI,OAAO,YAAY,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC9C,OAAO,iBAAiB,CACtB,IAAI,MAAM,CACR,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAChG,OAAO,CAAC,KAAK,CACd,CACF,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IAChG,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;IACjF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAA;IACjD,MAAM,IAAI,GAAG,YAAY;QACvB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE5C,OAAO,IAAI,MAAM,CAAC,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAoC,EAAE,OAAqB;IACrF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAwB,CAAA;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAA;IAC/D,OAAO,iBAAiB,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAA;AAC5H,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,6BAA6B,CAC3C,OAAoC,EACpC,OAAoC,EACpC,KAAa;IAEb,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAM;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,6DAA6D,CACpF,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAaD,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAA;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAqB,MAAM;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEhC,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,GAAY,EAAE,EAAE;QAChE,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG;YAAE,OAAM;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;YACnB,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,IAAI,EAAE,CAAA;QACzB,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,iBAAiB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;;YACvD,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;KACtB,CAAA;AACH,CAAC;AAOD,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7B,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,KAMlC;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAA;IACnD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAE/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,mBAAmB,GAAG,MAAM,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAA;QAC3F,KAAK,MAAM;YACT,OAAO,mBAAmB,GAAG,MAAM,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,OAAO,CAAC,OAAO,GAAG,CAAA;QACzH,KAAK,MAAM;YACT,OAAO,mBAAmB,GAAG,MAAM,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAA;IAC7G,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IAE1B,YAAY,QAAgB,EAAE,SAAiB;QAC7C,KAAK,CAAC,iBAAiB,QAAQ,oBAAoB,SAAS,IAAI,CAAC,CAAA;QACjE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAmB,EACnB,SAA6B,EAC7B,QAAgB;IAEhB,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,OAAO,CAAA;IAEhD,IAAI,KAAgD,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}