@mcpmake/core 0.2.4 → 0.2.5
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/analyzer/dom-parser.d.ts +7 -0
- package/dist/analyzer/dom-parser.d.ts.map +1 -1
- package/dist/analyzer/dom-parser.js +31 -5
- package/dist/analyzer/dom-parser.js.map +1 -1
- package/dist/analyzer/site-crawler.d.ts.map +1 -1
- package/dist/analyzer/site-crawler.js +40 -8
- package/dist/analyzer/site-crawler.js.map +1 -1
- package/dist/emitter/index.d.ts.map +1 -1
- package/dist/emitter/index.js +113 -6
- package/dist/emitter/index.js.map +1 -1
- package/dist/emitter/project-scaffolder.d.ts +13 -0
- package/dist/emitter/project-scaffolder.d.ts.map +1 -1
- package/dist/emitter/project-scaffolder.js +29 -0
- package/dist/emitter/project-scaffolder.js.map +1 -1
- package/dist/emitter/python-template-loader.d.ts.map +1 -1
- package/dist/emitter/python-template-loader.js +10 -0
- package/dist/emitter/python-template-loader.js.map +1 -1
- package/dist/emitter/python-templates/server.py.hbs +78 -8
- package/dist/emitter/site-templates/browser-manager.ts.hbs +81 -32
- package/dist/emitter/site-templates/server-main-http.ts.hbs +25 -7
- package/dist/emitter/site-templates/tool-handler-form.ts.hbs +10 -8
- package/dist/emitter/template-loader.d.ts.map +1 -1
- package/dist/emitter/template-loader.js +9 -0
- package/dist/emitter/template-loader.js.map +1 -1
- package/dist/emitter/templates/auth-provider.ts.hbs +81 -20
- package/dist/emitter/templates/config.ts.hbs +7 -0
- package/dist/emitter/templates/env.example.hbs +6 -0
- package/dist/emitter/templates/http-executor.ts.hbs +150 -7
- package/dist/emitter/templates/server-main-http.ts.hbs +60 -4
- package/dist/emitter/templates/tool-handler.ts.hbs +37 -2
- package/dist/emitter/templates/tool-test.ts.hbs +9 -1
- package/dist/emitter/worker-templates/config.ts.hbs +7 -0
- package/dist/emitter/worker-templates/tool-handler.ts.hbs +37 -2
- package/dist/emitter/worker-templates/worker.ts.hbs +33 -2
- package/dist/parser/operation-extractor.d.ts.map +1 -1
- package/dist/parser/operation-extractor.js +12 -1
- package/dist/parser/operation-extractor.js.map +1 -1
- package/dist/parser/overlay-loader.d.ts.map +1 -1
- package/dist/parser/overlay-loader.js +11 -2
- package/dist/parser/overlay-loader.js.map +1 -1
- package/dist/parser/schema-converter.d.ts +13 -2
- package/dist/parser/schema-converter.d.ts.map +1 -1
- package/dist/parser/schema-converter.js +30 -19
- package/dist/parser/schema-converter.js.map +1 -1
- package/dist/pricing.d.ts +5 -1
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +7 -3
- package/dist/pricing.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -21
- package/dist/providers/index.js.map +1 -1
- package/dist/recorder/browser-recorder.d.ts.map +1 -1
- package/dist/recorder/browser-recorder.js +39 -7
- package/dist/recorder/browser-recorder.js.map +1 -1
- package/dist/site-transformer/tool-generator.d.ts.map +1 -1
- package/dist/site-transformer/tool-generator.js +90 -22
- package/dist/site-transformer/tool-generator.js.map +1 -1
- package/dist/transformer/auth-detector.d.ts.map +1 -1
- package/dist/transformer/auth-detector.js +11 -4
- package/dist/transformer/auth-detector.js.map +1 -1
- package/dist/transformer/naming.d.ts.map +1 -1
- package/dist/transformer/naming.js +16 -8
- package/dist/transformer/naming.js.map +1 -1
- package/dist/transformer/resource-builder.d.ts.map +1 -1
- package/dist/transformer/resource-builder.js +13 -6
- package/dist/transformer/resource-builder.js.map +1 -1
- package/dist/transformer/stainless-translator.d.ts +6 -0
- package/dist/transformer/stainless-translator.d.ts.map +1 -1
- package/dist/transformer/stainless-translator.js +18 -1
- package/dist/transformer/stainless-translator.js.map +1 -1
- package/dist/transformer/tool-builder.d.ts.map +1 -1
- package/dist/transformer/tool-builder.js +111 -13
- package/dist/transformer/tool-builder.js.map +1 -1
- package/dist/types/index.d.ts +72 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/site.d.ts +19 -1
- package/dist/types/site.d.ts.map +1 -1
- package/dist/utils/sanitize.d.ts +62 -0
- package/dist/utils/sanitize.d.ts.map +1 -1
- package/dist/utils/sanitize.js +141 -0
- package/dist/utils/sanitize.js.map +1 -1
- package/package.json +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -47,6 +47,14 @@ export interface OperationDescriptor {
|
|
|
47
47
|
requestBody?: RequestBodyDescriptor;
|
|
48
48
|
responses: ResponseDescriptor[];
|
|
49
49
|
security: SecurityRequirement[];
|
|
50
|
+
/**
|
|
51
|
+
* True when the operation explicitly declares `security: []` (an empty array),
|
|
52
|
+
* which per OpenAPI means the operation is PUBLIC — it overrides any global
|
|
53
|
+
* security and MUST NOT have auth applied (D-H2). Distinct from `security`
|
|
54
|
+
* simply being empty because nothing was declared anywhere (in which case the
|
|
55
|
+
* legacy global-auth behavior is preserved).
|
|
56
|
+
*/
|
|
57
|
+
securityOptional?: boolean;
|
|
50
58
|
deprecated: boolean;
|
|
51
59
|
mcpExtensions?: McpExtensions;
|
|
52
60
|
}
|
|
@@ -55,6 +63,21 @@ export interface ToolAnnotations {
|
|
|
55
63
|
destructiveHint?: boolean;
|
|
56
64
|
idempotentHint?: boolean;
|
|
57
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Maps a tool's MCP input key to the original wire parameter it drives. Keeping
|
|
68
|
+
* the wire name separate from the input key lets the schema expose any name
|
|
69
|
+
* (emitted as a JSON.stringify'd key) while the handler still sends the exact
|
|
70
|
+
* upstream parameter name and routes it to the right place (path/query/header/
|
|
71
|
+
* cookie). See D-H1 / D-H2.
|
|
72
|
+
*/
|
|
73
|
+
export interface ParamMapping {
|
|
74
|
+
/** The key the agent supplies in the tool input. */
|
|
75
|
+
inputKey: string;
|
|
76
|
+
/** The original API parameter name sent upstream. */
|
|
77
|
+
wireName: string;
|
|
78
|
+
/** Where the parameter is applied on the upstream request. */
|
|
79
|
+
in: 'path' | 'query' | 'header' | 'cookie';
|
|
80
|
+
}
|
|
58
81
|
export interface ToolDefinition {
|
|
59
82
|
name: string;
|
|
60
83
|
title: string;
|
|
@@ -67,8 +90,32 @@ export interface ToolDefinition {
|
|
|
67
90
|
pathParams: string[];
|
|
68
91
|
queryParams: string[];
|
|
69
92
|
headerParams: string[];
|
|
93
|
+
/**
|
|
94
|
+
* MCP-input-key → wire-name/location mappings for every parameter. Drives the
|
|
95
|
+
* generated handler's path/query/header/cookie assembly (D-H1/D-H2).
|
|
96
|
+
*/
|
|
97
|
+
paramMappings: ParamMapping[];
|
|
98
|
+
/** The input key under which the request body is exposed (`body`/`requestBody`). */
|
|
99
|
+
bodyInputKey?: string;
|
|
70
100
|
hasRequestBody: boolean;
|
|
71
101
|
requestBodyContentType: string;
|
|
102
|
+
/**
|
|
103
|
+
* Body serialization the executor must apply for {@link requestBodyContentType}:
|
|
104
|
+
* `json` → JSON.stringify, `form` → URLSearchParams, `multipart` → FormData.
|
|
105
|
+
* Unsupported media types are rejected at generation time (D-H3).
|
|
106
|
+
*/
|
|
107
|
+
bodyEncoding?: 'json' | 'form' | 'multipart';
|
|
108
|
+
/**
|
|
109
|
+
* Generated body of `buildHeaders(params)` — assembles header and cookie
|
|
110
|
+
* parameters from the tool input into an upstream header record. Empty record
|
|
111
|
+
* when the operation has no header/cookie params (D-H2).
|
|
112
|
+
*/
|
|
113
|
+
buildHeadersBody: string;
|
|
114
|
+
/**
|
|
115
|
+
* JSON.stringify'd source-operation metadata ({method, path}) for the generated
|
|
116
|
+
* test, so an untrusted path can never escape a comment/literal (D-C3).
|
|
117
|
+
*/
|
|
118
|
+
operationMeta: string;
|
|
72
119
|
fileName: string;
|
|
73
120
|
functionName: string;
|
|
74
121
|
buildUrlBody: string;
|
|
@@ -77,7 +124,25 @@ export interface ToolDefinition {
|
|
|
77
124
|
isDestructive?: boolean;
|
|
78
125
|
/** JQ filter to apply to API response before returning to agent */
|
|
79
126
|
jqFilter?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Per-operation outbound-auth requirement, derived from the operation's
|
|
129
|
+
* OpenAPI `security` (D-H2). Controls which configured auth scheme(s) the
|
|
130
|
+
* generated handler applies to the upstream request:
|
|
131
|
+
* - `undefined` → apply all configured schemes (legacy global behavior).
|
|
132
|
+
* - `mode: 'public'` → apply NO auth (operation declared `security: []`).
|
|
133
|
+
* - `mode: 'schemes'` → apply ONLY the listed OpenAPI scheme names.
|
|
134
|
+
* The OR/AND matrix is collapsed to the union of every alternative's scheme
|
|
135
|
+
* names (any configured scheme that satisfies some alternative is applied);
|
|
136
|
+
* full alternative-by-alternative selection is deferred.
|
|
137
|
+
*/
|
|
138
|
+
authRequirement?: ToolAuthRequirement;
|
|
80
139
|
}
|
|
140
|
+
export type ToolAuthRequirement = {
|
|
141
|
+
mode: 'public';
|
|
142
|
+
} | {
|
|
143
|
+
mode: 'schemes';
|
|
144
|
+
schemeNames: string[];
|
|
145
|
+
};
|
|
81
146
|
export type AuthType = 'apiKey' | 'http-bearer' | 'http-basic' | 'oauth2';
|
|
82
147
|
export interface AuthScheme {
|
|
83
148
|
type: AuthType;
|
|
@@ -85,6 +150,13 @@ export interface AuthScheme {
|
|
|
85
150
|
headerName?: string;
|
|
86
151
|
in?: 'header' | 'query' | 'cookie';
|
|
87
152
|
description?: string;
|
|
153
|
+
/**
|
|
154
|
+
* The original OpenAPI security-scheme name (the key under
|
|
155
|
+
* `components.securitySchemes`). Lets per-operation security requirements
|
|
156
|
+
* (D-H2) select a specific scheme by name in the generated auth application.
|
|
157
|
+
* Optional for sources (HAR) that have no named schemes.
|
|
158
|
+
*/
|
|
159
|
+
schemeName?: string;
|
|
88
160
|
}
|
|
89
161
|
export interface EnvVarDescriptor {
|
|
90
162
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/site.d.ts
CHANGED
|
@@ -20,6 +20,14 @@ export interface SelectorSet {
|
|
|
20
20
|
humanLabel?: string;
|
|
21
21
|
}
|
|
22
22
|
export type FormFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'hidden' | 'file' | 'date' | 'datetime-local' | 'color' | 'range' | 'other';
|
|
23
|
+
/** A single <option> from a <select>, preserving both the user-visible label
|
|
24
|
+
* and the wire value submitted to the server (they routinely differ). */
|
|
25
|
+
export interface SelectOption {
|
|
26
|
+
/** Visible option text shown to the user */
|
|
27
|
+
label: string;
|
|
28
|
+
/** Value attribute actually submitted / matched by Playwright's selectOption */
|
|
29
|
+
value: string;
|
|
30
|
+
}
|
|
23
31
|
export interface FormFieldDescriptor {
|
|
24
32
|
/** Form field name attribute */
|
|
25
33
|
name: string;
|
|
@@ -33,10 +41,20 @@ export interface FormFieldDescriptor {
|
|
|
33
41
|
placeholder?: string;
|
|
34
42
|
/** Whether the field is required */
|
|
35
43
|
required: boolean;
|
|
36
|
-
/** Options for <select>, radio groups, and datalists */
|
|
44
|
+
/** Options for <select>, radio groups, and datalists (visible labels). */
|
|
37
45
|
options?: string[];
|
|
46
|
+
/** Option label/value pairs for <select> fields (value drives Playwright). */
|
|
47
|
+
optionPairs?: SelectOption[];
|
|
38
48
|
/** Default or current value */
|
|
39
49
|
defaultValue?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Stable, deduplicated MCP input key for this field. Derived from `name`
|
|
52
|
+
* but guaranteed to be a valid, unique JS identifier within the form so the
|
|
53
|
+
* generated schema property and the generated handler agree on one key. The
|
|
54
|
+
* handler still drives the DOM via `selector`, so the original `name` is not
|
|
55
|
+
* needed at fill time. Set by the site tool-generator.
|
|
56
|
+
*/
|
|
57
|
+
inputKey?: string;
|
|
40
58
|
}
|
|
41
59
|
export interface FormDescriptor {
|
|
42
60
|
/** Generated stable ID for this form */
|
package/dist/types/site.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/types/site.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIlE,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,IAAI,GACJ,YAAY,GACZ,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,QAAQ,GACR,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,kCAAkC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/types/site.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/sanitize.d.ts
CHANGED
|
@@ -13,6 +13,68 @@ export declare function escapeTemplateLiteral(str: string): string;
|
|
|
13
13
|
* Strips anything that isn't alphanumeric, underscore, or hyphen.
|
|
14
14
|
*/
|
|
15
15
|
export declare function sanitizeIdentifier(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Sanitize an HTTP header name (e.g. an apiKey scheme `name`) for safe embedding
|
|
18
|
+
* in a string literal. Real header names are RFC 7230 tokens; in practice API
|
|
19
|
+
* key headers are `[A-Za-z0-9-]` (plus `_`). Stripping everything else removes
|
|
20
|
+
* quotes/backticks/newlines that could break out of the generated literal.
|
|
21
|
+
*/
|
|
22
|
+
export declare function sanitizeHeaderName(str: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Sanitize an environment-variable name. It is emitted both as a quoted string
|
|
25
|
+
* and as a bare member access (`process.env.<NAME>` / `env.<NAME>`), so it must
|
|
26
|
+
* be a valid JS/POSIX identifier. Strips invalid chars and prefixes `_` when the
|
|
27
|
+
* result would start with a digit or be empty.
|
|
28
|
+
*/
|
|
29
|
+
export declare function sanitizeEnvVarName(str: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve OpenAPI server-variable placeholders (`{var}`) in a server URL from
|
|
32
|
+
* their declared defaults, then validate the result is a real http(s) URL.
|
|
33
|
+
*
|
|
34
|
+
* OpenAPI server URLs may carry variables — `https://{region}.api.test/{version}`
|
|
35
|
+
* — with a `variables` map giving each a `default`. Substituting them here keeps
|
|
36
|
+
* the URL semantically intact instead of stripping the braces (which would corrupt
|
|
37
|
+
* the path, e.g. `{version}` → empty). Variables without a known default are left
|
|
38
|
+
* as-is; the subsequent per-sink escaper neutralizes any residual unsafe chars.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveServerUrl(url: string, variables?: Record<string, {
|
|
41
|
+
default?: string;
|
|
42
|
+
} | undefined>): string;
|
|
43
|
+
/**
|
|
44
|
+
* Escape a base URL for safe embedding in a string literal across multiple
|
|
45
|
+
* target languages without mutating its semantics. Unlike a strip-based
|
|
46
|
+
* approach, this preserves every character that is legal in a URL (including
|
|
47
|
+
* `$`, `{`, `}`, `~`, etc. that appear in real paths such as `/v1/$metadata`)
|
|
48
|
+
* and only neutralizes the characters that could break out of, or inject into,
|
|
49
|
+
* the literal it is embedded in:
|
|
50
|
+
* - backslash, single/double quote, backtick → backslash-escaped
|
|
51
|
+
* - `${` (TS template-literal interpolation) → broken with a backslash
|
|
52
|
+
* - CR/LF (could inject extra dotenv/TOML lines) → backslash-escaped
|
|
53
|
+
* The same escaped form is safe in a TS single/double-quote string, a TS
|
|
54
|
+
* backtick literal, a Python double-quote string, a TOML basic string, and a
|
|
55
|
+
* single-line dotenv value. Validation/variable-resolution happens upstream in
|
|
56
|
+
* the emitter via {@link resolveServerUrl}.
|
|
57
|
+
*/
|
|
58
|
+
export declare function sanitizeUrlLiteral(str: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Validate a request-body media type against the RFC media-type grammar
|
|
61
|
+
* (`type/subtype`, optional parameters). The OpenAPI `content` map key is
|
|
62
|
+
* attacker-influenced and is interpolated into a string literal, so a value
|
|
63
|
+
* that is not a well-formed media type is replaced with `application/json`
|
|
64
|
+
* (the universal safe default) rather than trusted. The returned value is
|
|
65
|
+
* still escaped at the literal sink by {@link escapeStringLiteral}.
|
|
66
|
+
*/
|
|
67
|
+
export declare function sanitizeMediaType(str: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Escape a string for safe embedding in a double-quoted Python string literal.
|
|
70
|
+
* Escapes backslashes, double quotes, and newlines.
|
|
71
|
+
*/
|
|
72
|
+
export declare function escapePyString(str: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Convert an arbitrary parameter name into a valid, non-keyword Python
|
|
75
|
+
* identifier for use as a function argument or local variable name.
|
|
76
|
+
*/
|
|
77
|
+
export declare function sanitizePyIdentifier(str: string): string;
|
|
16
78
|
/**
|
|
17
79
|
* Validate that a URL path template contains only safe characters.
|
|
18
80
|
* Allows: alphanumeric, /, {, }, -, _, .
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,GAC3D,MAAM,CAUR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAStD;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD;AA0CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
package/dist/utils/sanitize.js
CHANGED
|
@@ -19,6 +19,147 @@ export function escapeTemplateLiteral(str) {
|
|
|
19
19
|
export function sanitizeIdentifier(str) {
|
|
20
20
|
return str.replace(/[^a-zA-Z0-9_\-]/g, '');
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Sanitize an HTTP header name (e.g. an apiKey scheme `name`) for safe embedding
|
|
24
|
+
* in a string literal. Real header names are RFC 7230 tokens; in practice API
|
|
25
|
+
* key headers are `[A-Za-z0-9-]` (plus `_`). Stripping everything else removes
|
|
26
|
+
* quotes/backticks/newlines that could break out of the generated literal.
|
|
27
|
+
*/
|
|
28
|
+
export function sanitizeHeaderName(str) {
|
|
29
|
+
return str.replace(/[^A-Za-z0-9_\-]/g, '');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sanitize an environment-variable name. It is emitted both as a quoted string
|
|
33
|
+
* and as a bare member access (`process.env.<NAME>` / `env.<NAME>`), so it must
|
|
34
|
+
* be a valid JS/POSIX identifier. Strips invalid chars and prefixes `_` when the
|
|
35
|
+
* result would start with a digit or be empty.
|
|
36
|
+
*/
|
|
37
|
+
export function sanitizeEnvVarName(str) {
|
|
38
|
+
const cleaned = str.replace(/[^A-Za-z0-9_]/g, '');
|
|
39
|
+
return /^[A-Za-z_]/.test(cleaned) ? cleaned : `_${cleaned}`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resolve OpenAPI server-variable placeholders (`{var}`) in a server URL from
|
|
43
|
+
* their declared defaults, then validate the result is a real http(s) URL.
|
|
44
|
+
*
|
|
45
|
+
* OpenAPI server URLs may carry variables — `https://{region}.api.test/{version}`
|
|
46
|
+
* — with a `variables` map giving each a `default`. Substituting them here keeps
|
|
47
|
+
* the URL semantically intact instead of stripping the braces (which would corrupt
|
|
48
|
+
* the path, e.g. `{version}` → empty). Variables without a known default are left
|
|
49
|
+
* as-is; the subsequent per-sink escaper neutralizes any residual unsafe chars.
|
|
50
|
+
*/
|
|
51
|
+
export function resolveServerUrl(url, variables) {
|
|
52
|
+
if (!url)
|
|
53
|
+
return url;
|
|
54
|
+
let resolved = url;
|
|
55
|
+
if (variables) {
|
|
56
|
+
resolved = resolved.replace(/\{([^{}]+)\}/g, (match, name) => {
|
|
57
|
+
const def = variables[name]?.default;
|
|
58
|
+
return typeof def === 'string' ? def : match;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return resolved;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Escape a base URL for safe embedding in a string literal across multiple
|
|
65
|
+
* target languages without mutating its semantics. Unlike a strip-based
|
|
66
|
+
* approach, this preserves every character that is legal in a URL (including
|
|
67
|
+
* `$`, `{`, `}`, `~`, etc. that appear in real paths such as `/v1/$metadata`)
|
|
68
|
+
* and only neutralizes the characters that could break out of, or inject into,
|
|
69
|
+
* the literal it is embedded in:
|
|
70
|
+
* - backslash, single/double quote, backtick → backslash-escaped
|
|
71
|
+
* - `${` (TS template-literal interpolation) → broken with a backslash
|
|
72
|
+
* - CR/LF (could inject extra dotenv/TOML lines) → backslash-escaped
|
|
73
|
+
* The same escaped form is safe in a TS single/double-quote string, a TS
|
|
74
|
+
* backtick literal, a Python double-quote string, a TOML basic string, and a
|
|
75
|
+
* single-line dotenv value. Validation/variable-resolution happens upstream in
|
|
76
|
+
* the emitter via {@link resolveServerUrl}.
|
|
77
|
+
*/
|
|
78
|
+
export function sanitizeUrlLiteral(str) {
|
|
79
|
+
return str
|
|
80
|
+
.replace(/\\/g, '\\\\')
|
|
81
|
+
.replace(/`/g, '\\`')
|
|
82
|
+
.replace(/'/g, "\\'")
|
|
83
|
+
.replace(/"/g, '\\"')
|
|
84
|
+
.replace(/\$\{/g, '\\${')
|
|
85
|
+
.replace(/\r/g, '\\r')
|
|
86
|
+
.replace(/\n/g, '\\n');
|
|
87
|
+
}
|
|
88
|
+
/** RFC 6838 / RFC 7231 media-type token: `type/subtype` with optional params. */
|
|
89
|
+
const MEDIA_TYPE_RE = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]*\/[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]*(\s*;\s*[^\s;]+)*$/;
|
|
90
|
+
/**
|
|
91
|
+
* Validate a request-body media type against the RFC media-type grammar
|
|
92
|
+
* (`type/subtype`, optional parameters). The OpenAPI `content` map key is
|
|
93
|
+
* attacker-influenced and is interpolated into a string literal, so a value
|
|
94
|
+
* that is not a well-formed media type is replaced with `application/json`
|
|
95
|
+
* (the universal safe default) rather than trusted. The returned value is
|
|
96
|
+
* still escaped at the literal sink by {@link escapeStringLiteral}.
|
|
97
|
+
*/
|
|
98
|
+
export function sanitizeMediaType(str) {
|
|
99
|
+
return MEDIA_TYPE_RE.test(str.trim()) ? str.trim() : 'application/json';
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Escape a string for safe embedding in a double-quoted Python string literal.
|
|
103
|
+
* Escapes backslashes, double quotes, and newlines.
|
|
104
|
+
*/
|
|
105
|
+
export function escapePyString(str) {
|
|
106
|
+
return str
|
|
107
|
+
.replace(/\\/g, '\\\\')
|
|
108
|
+
.replace(/"/g, '\\"')
|
|
109
|
+
.replace(/\n/g, '\\n')
|
|
110
|
+
.replace(/\r/g, '\\r');
|
|
111
|
+
}
|
|
112
|
+
const PY_KEYWORDS = new Set([
|
|
113
|
+
'False',
|
|
114
|
+
'None',
|
|
115
|
+
'True',
|
|
116
|
+
'and',
|
|
117
|
+
'as',
|
|
118
|
+
'assert',
|
|
119
|
+
'async',
|
|
120
|
+
'await',
|
|
121
|
+
'break',
|
|
122
|
+
'class',
|
|
123
|
+
'continue',
|
|
124
|
+
'def',
|
|
125
|
+
'del',
|
|
126
|
+
'elif',
|
|
127
|
+
'else',
|
|
128
|
+
'except',
|
|
129
|
+
'finally',
|
|
130
|
+
'for',
|
|
131
|
+
'from',
|
|
132
|
+
'global',
|
|
133
|
+
'if',
|
|
134
|
+
'import',
|
|
135
|
+
'in',
|
|
136
|
+
'is',
|
|
137
|
+
'lambda',
|
|
138
|
+
'nonlocal',
|
|
139
|
+
'not',
|
|
140
|
+
'or',
|
|
141
|
+
'pass',
|
|
142
|
+
'raise',
|
|
143
|
+
'return',
|
|
144
|
+
'try',
|
|
145
|
+
'while',
|
|
146
|
+
'with',
|
|
147
|
+
'yield',
|
|
148
|
+
'match',
|
|
149
|
+
'case',
|
|
150
|
+
]);
|
|
151
|
+
/**
|
|
152
|
+
* Convert an arbitrary parameter name into a valid, non-keyword Python
|
|
153
|
+
* identifier for use as a function argument or local variable name.
|
|
154
|
+
*/
|
|
155
|
+
export function sanitizePyIdentifier(str) {
|
|
156
|
+
let id = str.replace(/[^A-Za-z0-9_]/g, '_');
|
|
157
|
+
if (!/^[A-Za-z_]/.test(id))
|
|
158
|
+
id = `_${id}`;
|
|
159
|
+
if (PY_KEYWORDS.has(id))
|
|
160
|
+
id = `${id}_`;
|
|
161
|
+
return id || '_param';
|
|
162
|
+
}
|
|
22
163
|
/**
|
|
23
164
|
* Validate that a URL path template contains only safe characters.
|
|
24
165
|
* Allows: alphanumeric, /, {, }, -, _, .
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG;SACP,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED