@superblocksteam/vite-plugin-file-sync 2.0.42-next.8 → 2.0.42
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/ai-service/agent/apis-system-prompt.d.ts +1 -1
- package/dist/ai-service/agent/apis-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/apis-system-prompt.js +3 -60
- package/dist/ai-service/agent/apis-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/apis.d.ts.map +1 -1
- package/dist/ai-service/agent/apis.js +1 -12
- package/dist/ai-service/agent/apis.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts +1 -0
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +6 -50
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +2 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +7 -4
- package/dist/file-system-manager.js.map +1 -1
- package/dist/parsing/page.d.ts.map +1 -1
- package/dist/parsing/page.js +5 -5
- package/dist/parsing/page.js.map +1 -1
- package/dist/parsing/scope.d.ts.map +1 -1
- package/dist/parsing/scope.js +7 -2
- package/dist/parsing/scope.js.map +1 -1
- package/package.json +7 -7
- package/dist/ai-service/agent/apis-static-analysis.d.ts +0 -2
- package/dist/ai-service/agent/apis-static-analysis.d.ts.map +0 -1
- package/dist/ai-service/agent/apis-static-analysis.js +0 -765
- package/dist/ai-service/agent/apis-static-analysis.js.map +0 -1
|
@@ -1,765 +0,0 @@
|
|
|
1
|
-
export const apiStaticAnalysis = (apiSource) => {
|
|
2
|
-
const warnings = [];
|
|
3
|
-
// Check for state mutation attempts (APIs cannot set frontend state)
|
|
4
|
-
const stateMutationPatterns = [
|
|
5
|
-
/(\w+)\.value\s*=\s*/g, // Setting .value property
|
|
6
|
-
/(\w+)\.refresh\s*\(/g, // Calling component refresh
|
|
7
|
-
/(\w+)\.reset\s*\(/g, // Calling component reset
|
|
8
|
-
/(\w+)\.clear\s*\(/g, // Calling component clear
|
|
9
|
-
];
|
|
10
|
-
for (const pattern of stateMutationPatterns) {
|
|
11
|
-
const matches = [...apiSource.matchAll(pattern)];
|
|
12
|
-
if (matches.length > 0) {
|
|
13
|
-
const examples = matches.slice(0, 3).map((m) => m[0].trim());
|
|
14
|
-
warnings.push(`CRITICAL: APIs cannot set frontend state. Found state mutation: ${examples.join(", ")}\n` +
|
|
15
|
-
`APIs are backend workflows that can only READ state, never SET it.\n` +
|
|
16
|
-
`State mutations must happen on the frontend via onSuccess/onError handlers.`);
|
|
17
|
-
break; // Only report once
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
// Check for placeholder/fake integration IDs
|
|
21
|
-
const fakeIdPatterns = [
|
|
22
|
-
/["']fake-[^"']*["']/gi,
|
|
23
|
-
/["']placeholder-[^"']*["']/gi,
|
|
24
|
-
/["']test-id["']/gi,
|
|
25
|
-
/["']your-\w+-integration-id["']/gi,
|
|
26
|
-
/["']integration-id["']/gi,
|
|
27
|
-
];
|
|
28
|
-
for (const pattern of fakeIdPatterns) {
|
|
29
|
-
if (pattern.test(apiSource)) {
|
|
30
|
-
warnings.push(`CRITICAL: Found placeholder or fake integration ID.\n` +
|
|
31
|
-
`All integration IDs must be real UUIDs from the provided integrations.\n` +
|
|
32
|
-
`Never make up integration IDs - this will cause the API to fail.`);
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// Check SQL blocks for multiple queries
|
|
37
|
-
const multipleQueriesPattern = /statement:\s*(?:`([^`]*)`|"([^"]*)")\s*[,}]/g;
|
|
38
|
-
const statementMatches = [...apiSource.matchAll(multipleQueriesPattern)];
|
|
39
|
-
for (const match of statementMatches) {
|
|
40
|
-
const statement = match[1] || match[2];
|
|
41
|
-
if (statement) {
|
|
42
|
-
// Remove string literals to avoid false positives
|
|
43
|
-
const cleanedStatement = statement.replace(/'[^']*'/g, "");
|
|
44
|
-
const semicolons = (cleanedStatement.match(/;/g) || []).length;
|
|
45
|
-
// If there are multiple semicolons (more than one query)
|
|
46
|
-
if (semicolons > 1) {
|
|
47
|
-
warnings.push(`WARNING: SQL statement appears to contain multiple queries (found ${semicolons} semicolons).\n` +
|
|
48
|
-
`Each SQL block can execute ONLY ONE query. Use separate blocks for multiple queries.`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Check for missing LIMIT in SELECT queries
|
|
53
|
-
const selectQueriesPattern = /statement:\s*(?:`([^`]*SELECT[^`]*)`|"([^"]*SELECT[^"]*)")/gi;
|
|
54
|
-
const selectMatches = [...apiSource.matchAll(selectQueriesPattern)];
|
|
55
|
-
for (const match of selectMatches) {
|
|
56
|
-
const statement = match[1] || match[2];
|
|
57
|
-
if (statement && !/LIMIT\s+\d+/i.test(statement)) {
|
|
58
|
-
warnings.push(`WARNING: SQL SELECT query missing LIMIT clause.\n` +
|
|
59
|
-
`Always include a LIMIT clause (default: 500) unless the user explicitly requests otherwise.`);
|
|
60
|
-
break; // Only warn once
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Check for browser globals in API blocks
|
|
64
|
-
const browserGlobalPatterns = [
|
|
65
|
-
/\bwindow\./g,
|
|
66
|
-
/\bdocument\./g,
|
|
67
|
-
/\blocation\./g,
|
|
68
|
-
/\bnavigator\./g,
|
|
69
|
-
];
|
|
70
|
-
for (const pattern of browserGlobalPatterns) {
|
|
71
|
-
if (pattern.test(apiSource)) {
|
|
72
|
-
warnings.push(`CRITICAL: Browser globals (window, document, location, navigator) are NOT available in API blocks.\n` +
|
|
73
|
-
`APIs are backend workflows. Use the Global constant for runtime context instead.`);
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Check for SQL injection patterns
|
|
78
|
-
const sqlInjectionPattern = /statement:\s*(?:`[^`]*\$\{[^}]*\.value\}[^`]*`|"[^"]*\$\{[^}]*\.value\}[^"]*")/g;
|
|
79
|
-
if (sqlInjectionPattern.test(apiSource)) {
|
|
80
|
-
warnings.push(`WARNING: Potential SQL injection vulnerability detected.\n` +
|
|
81
|
-
`Direct string interpolation of user inputs in SQL can be unsafe.\n` +
|
|
82
|
-
`Consider using parameterized queries or proper escaping.`);
|
|
83
|
-
}
|
|
84
|
-
// Check Python blocks use string code, not arrow functions
|
|
85
|
-
const pythonArrowFunctionPattern = /new\s+Python\s*\([^)]*,\s*{\s*fn:\s*\([^)]*\)\s*=>/g;
|
|
86
|
-
if (pythonArrowFunctionPattern.test(apiSource)) {
|
|
87
|
-
warnings.push(`CRITICAL: Python integration uses arrow function instead of string.\n` +
|
|
88
|
-
`Python blocks require a STRING containing Python code in the 'fn' property.\n` +
|
|
89
|
-
`Use: fn: \`def main():\\n return "hello"\` NOT fn: () => "..."\n` +
|
|
90
|
-
`Example: new Python("name", { fn: \`def main(x):\\n return x * 2\` })`);
|
|
91
|
-
}
|
|
92
|
-
// Check for unsupported library imports in JavaScript blocks
|
|
93
|
-
const jsBlockPattern = /new\s+JavaScript\s*\([^,]*,\s*{\s*fn:\s*(?:\([^)]*\)\s*=>)?\s*{([^}]*(?:{[^}]*}[^}]*)*)}/gs;
|
|
94
|
-
const jsBlockMatches = [...apiSource.matchAll(jsBlockPattern)];
|
|
95
|
-
for (const match of jsBlockMatches) {
|
|
96
|
-
const jsCode = match[0];
|
|
97
|
-
// Check for require() calls
|
|
98
|
-
const requirePattern = /require\s*\(\s*["']([^"']+)["']\s*\)/g;
|
|
99
|
-
const requireMatches = [...jsCode.matchAll(requirePattern)];
|
|
100
|
-
// Check for import statements (note: these might be at top level, not in JS blocks)
|
|
101
|
-
const importPattern = /import\s+(?:{[^}]+}|[^\s]+|\*\s+as\s+[^\s]+)\s+from\s+["']([^"']+)["']/g;
|
|
102
|
-
const importMatches = [...jsCode.matchAll(importPattern)];
|
|
103
|
-
const allImports = [
|
|
104
|
-
...requireMatches.map((m) => m[1]),
|
|
105
|
-
...importMatches.map((m) => m[1]),
|
|
106
|
-
];
|
|
107
|
-
for (const moduleName of allImports) {
|
|
108
|
-
// Extract base module name (handle scoped packages and subpaths)
|
|
109
|
-
const baseModule = moduleName?.startsWith("@")
|
|
110
|
-
? moduleName?.split("/").slice(0, 2).join("/") // @scope/package
|
|
111
|
-
: moduleName?.split("/")[0]; // package or node:module
|
|
112
|
-
// Remove "node:" prefix if present
|
|
113
|
-
const cleanModule = baseModule?.replace(/^node:/, "") ?? "";
|
|
114
|
-
// Check if it's a supported library or Node.js built-in
|
|
115
|
-
if (!SUPPORTED_JS_LIBRARIES.has(cleanModule) &&
|
|
116
|
-
!NODEJS_BUILTINS.has(cleanModule)) {
|
|
117
|
-
warnings.push(`CRITICAL: Unsupported library import detected: "${moduleName}"
|
|
118
|
-
` +
|
|
119
|
-
`JavaScript blocks only support specific libraries. Supported libraries:
|
|
120
|
-
` +
|
|
121
|
-
` - Node.js built-ins
|
|
122
|
-
` +
|
|
123
|
-
` - Third-party: ${Array.from(SUPPORTED_JS_LIBRARIES).join(", ")}
|
|
124
|
-
` +
|
|
125
|
-
`Use only these libraries in your JavaScript code.`);
|
|
126
|
-
break; // Only warn once per block
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Check for unsupported library imports in Python blocks
|
|
131
|
-
const pythonBlockPattern = /new\s+Python\s*\([^,]*,\s*{\s*fn:\s*`([^`]*)`/gs;
|
|
132
|
-
const pythonBlockMatches = [...apiSource.matchAll(pythonBlockPattern)];
|
|
133
|
-
for (const match of pythonBlockMatches) {
|
|
134
|
-
const pythonCode = match[1];
|
|
135
|
-
// Check for main() function definition
|
|
136
|
-
const mainFunctionPattern = /^\s*def\s+main\s*\(/m;
|
|
137
|
-
if (pythonCode && mainFunctionPattern.test(pythonCode)) {
|
|
138
|
-
warnings.push(`CRITICAL: Python blocks should NOT define a main() function.\n` +
|
|
139
|
-
`The Python code you provide is executed directly - there's no need for a main() function.\n` +
|
|
140
|
-
`Instead of:\n` +
|
|
141
|
-
` def main(x):\n` +
|
|
142
|
-
` return x * 2\n` +
|
|
143
|
-
`Just write:\n` +
|
|
144
|
-
` # Your code here\n` +
|
|
145
|
-
` result = x * 2\n` +
|
|
146
|
-
` # The last expression or variable is returned`);
|
|
147
|
-
}
|
|
148
|
-
// Check for import statements: "import module" or "from module import ..."
|
|
149
|
-
const importPattern = /^\s*(?:from\s+([a-zA-Z_][\w.]*)\s+import|import\s+([a-zA-Z_][\w.]*))/gm;
|
|
150
|
-
const importMatches = [...(pythonCode?.matchAll(importPattern) ?? [])];
|
|
151
|
-
for (const importMatch of importMatches) {
|
|
152
|
-
const moduleName = importMatch[1] || importMatch[2];
|
|
153
|
-
if (!moduleName)
|
|
154
|
-
continue;
|
|
155
|
-
// Extract base module name (first part before any dots)
|
|
156
|
-
const baseModule = moduleName?.split(".")[0] ?? "";
|
|
157
|
-
// Check if it's a supported library or Python built-in
|
|
158
|
-
// We need to check case-insensitively for some packages
|
|
159
|
-
const isSupported = SUPPORTED_PYTHON_LIBRARIES.has(baseModule) ||
|
|
160
|
-
SUPPORTED_PYTHON_LIBRARIES.has(baseModule.toLowerCase()) ||
|
|
161
|
-
PYTHON_BUILTINS.has(baseModule);
|
|
162
|
-
if (!isSupported) {
|
|
163
|
-
warnings.push(`CRITICAL: Unsupported library import detected in Python block: "${moduleName}"
|
|
164
|
-
` +
|
|
165
|
-
`Python blocks only support specific libraries. Supported libraries:
|
|
166
|
-
` +
|
|
167
|
-
` - Python built-ins
|
|
168
|
-
` +
|
|
169
|
-
` - Third-party: ${Array.from(SUPPORTED_PYTHON_LIBRARIES).join(", ")}
|
|
170
|
-
` +
|
|
171
|
-
`Use only these libraries in your Python code.`);
|
|
172
|
-
break; // Only warn once per block
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
// Check Databricks tables use three-part naming (catalog.schema.table)
|
|
177
|
-
const databricksPattern = /new\s+Databricks\s*\([^)]*,\s*{\s*statement:/g;
|
|
178
|
-
const databricksMatches = [...apiSource.matchAll(databricksPattern)];
|
|
179
|
-
if (databricksMatches.length > 0) {
|
|
180
|
-
// Extract Databricks statements to check table naming
|
|
181
|
-
const databricksStatementPattern = /new\s+Databricks\s*\([^)]*,\s*{\s*statement:\s*(?:`([^`]*)`|"([^"]*)")/gi;
|
|
182
|
-
const stmtMatches = [...apiSource.matchAll(databricksStatementPattern)];
|
|
183
|
-
for (const match of stmtMatches) {
|
|
184
|
-
const statement = match[1] || match[2];
|
|
185
|
-
if (statement) {
|
|
186
|
-
// Look for FROM/JOIN/INTO clauses with table names
|
|
187
|
-
const tableRefPattern = /(?:FROM|JOIN|INTO)\s+([a-zA-Z_][\w.]*)/gi;
|
|
188
|
-
const tableRefs = [...statement.matchAll(tableRefPattern)];
|
|
189
|
-
for (const tableRef of tableRefs) {
|
|
190
|
-
const tableName = tableRef[1];
|
|
191
|
-
if (!tableName)
|
|
192
|
-
continue;
|
|
193
|
-
// Count dots to determine if it's three-part naming
|
|
194
|
-
const dotCount = (tableName.match(/\./g) || []).length;
|
|
195
|
-
if (dotCount < 2) {
|
|
196
|
-
warnings.push(`WARNING: Databricks table reference may be missing catalog/schema: "${tableName}"\n` +
|
|
197
|
-
`Databricks requires three-part naming: catalog.schema.table\n` +
|
|
198
|
-
`Example: uber.default.orders (not just "orders" or "uber.orders")\n` +
|
|
199
|
-
`The word "default" is NOT optional - it's the actual schema name.`);
|
|
200
|
-
break; // Only warn once
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return warnings;
|
|
207
|
-
};
|
|
208
|
-
// Supported third-party libraries in JavaScript blocks
|
|
209
|
-
const SUPPORTED_JS_LIBRARIES = new Set([
|
|
210
|
-
"@notionhq/client",
|
|
211
|
-
"@paralleldrive/cuid2",
|
|
212
|
-
"amazon-qldb-driver-nodejs",
|
|
213
|
-
"aws-sdk",
|
|
214
|
-
"axios",
|
|
215
|
-
"base64url",
|
|
216
|
-
"bcrypt",
|
|
217
|
-
"date-fns",
|
|
218
|
-
"deasync",
|
|
219
|
-
"esprima",
|
|
220
|
-
"jmespath",
|
|
221
|
-
"jsonwebtoken",
|
|
222
|
-
"lodash",
|
|
223
|
-
"minimist",
|
|
224
|
-
"moment",
|
|
225
|
-
"notion-to-md",
|
|
226
|
-
"piscina",
|
|
227
|
-
"xmlbuilder2",
|
|
228
|
-
"xml2json",
|
|
229
|
-
"webflow-api",
|
|
230
|
-
]);
|
|
231
|
-
// Supported Python libraries (import names, not pip package names)
|
|
232
|
-
const SUPPORTED_PYTHON_LIBRARIES = new Set([
|
|
233
|
-
"Acquisition",
|
|
234
|
-
"aiohttp",
|
|
235
|
-
"aiosignal",
|
|
236
|
-
"anthropic",
|
|
237
|
-
"anyio",
|
|
238
|
-
"appdirs",
|
|
239
|
-
"appnope",
|
|
240
|
-
"arrow",
|
|
241
|
-
"asana",
|
|
242
|
-
"asn1crypto",
|
|
243
|
-
"asttokens",
|
|
244
|
-
"async_timeout",
|
|
245
|
-
"asyncio",
|
|
246
|
-
"attrs",
|
|
247
|
-
"AuthEncoding",
|
|
248
|
-
"Authlib",
|
|
249
|
-
"backcall",
|
|
250
|
-
"backoff",
|
|
251
|
-
"beautifulsoup4",
|
|
252
|
-
"bs4",
|
|
253
|
-
"bidict",
|
|
254
|
-
"boto",
|
|
255
|
-
"boto3",
|
|
256
|
-
"botocore",
|
|
257
|
-
"Brotli",
|
|
258
|
-
"BTrees",
|
|
259
|
-
"CacheControl",
|
|
260
|
-
"cachetools",
|
|
261
|
-
"certifi",
|
|
262
|
-
"cffi",
|
|
263
|
-
"charset_normalizer",
|
|
264
|
-
"click",
|
|
265
|
-
"cmake",
|
|
266
|
-
"ConfigArgParse",
|
|
267
|
-
"croniter",
|
|
268
|
-
"cryptography",
|
|
269
|
-
"cssselect",
|
|
270
|
-
"cvxpy",
|
|
271
|
-
"cycler",
|
|
272
|
-
"Cython",
|
|
273
|
-
"dataclasses_json",
|
|
274
|
-
"DateTime",
|
|
275
|
-
"decorator",
|
|
276
|
-
"defusedxml",
|
|
277
|
-
"Deprecated",
|
|
278
|
-
"distro",
|
|
279
|
-
"dnspython",
|
|
280
|
-
"ecos",
|
|
281
|
-
"et_xmlfile",
|
|
282
|
-
"exceptiongroup",
|
|
283
|
-
"executing",
|
|
284
|
-
"ExtensionClass",
|
|
285
|
-
"fake_useragent",
|
|
286
|
-
"feedparser",
|
|
287
|
-
"filelock",
|
|
288
|
-
"firebase_admin",
|
|
289
|
-
"Flask",
|
|
290
|
-
"Flask_BasicAuth",
|
|
291
|
-
"Flask_Cors",
|
|
292
|
-
"fonttools",
|
|
293
|
-
"fred",
|
|
294
|
-
"fredapi",
|
|
295
|
-
"frozendict",
|
|
296
|
-
"frozenlist",
|
|
297
|
-
"fsspec",
|
|
298
|
-
"future",
|
|
299
|
-
"geojson",
|
|
300
|
-
"gevent",
|
|
301
|
-
"geventhttpclient",
|
|
302
|
-
"gocardless_pro",
|
|
303
|
-
"google",
|
|
304
|
-
"google_api_core",
|
|
305
|
-
"google_api_python_client",
|
|
306
|
-
"google_auth",
|
|
307
|
-
"google_auth_httplib2",
|
|
308
|
-
"google_auth_oauthlib",
|
|
309
|
-
"google_cloud_bigquery",
|
|
310
|
-
"google_cloud_core",
|
|
311
|
-
"google_cloud_firestore",
|
|
312
|
-
"google_cloud_functions",
|
|
313
|
-
"google_cloud_pubsub",
|
|
314
|
-
"google_cloud_storage",
|
|
315
|
-
"google_crc32c",
|
|
316
|
-
"google_resumable_media",
|
|
317
|
-
"googleapis_common_protos",
|
|
318
|
-
"graphviz",
|
|
319
|
-
"greenlet",
|
|
320
|
-
"grpc_google_iam_v1",
|
|
321
|
-
"grpcio",
|
|
322
|
-
"grpcio_status",
|
|
323
|
-
"gspread",
|
|
324
|
-
"h11",
|
|
325
|
-
"html5lib",
|
|
326
|
-
"httpcore",
|
|
327
|
-
"httplib2",
|
|
328
|
-
"httpx",
|
|
329
|
-
"huggingface_hub",
|
|
330
|
-
"idna",
|
|
331
|
-
"importlib_metadata",
|
|
332
|
-
"ipython",
|
|
333
|
-
"isodate",
|
|
334
|
-
"itsdangerous",
|
|
335
|
-
"jedi",
|
|
336
|
-
"jeepney",
|
|
337
|
-
"Jinja2",
|
|
338
|
-
"jinja2",
|
|
339
|
-
"jira",
|
|
340
|
-
"jmespath",
|
|
341
|
-
"joblib",
|
|
342
|
-
"jsondiff",
|
|
343
|
-
"jsonpatch",
|
|
344
|
-
"jsonpickle",
|
|
345
|
-
"jsonpointer",
|
|
346
|
-
"jycm",
|
|
347
|
-
"kaleido",
|
|
348
|
-
"keyring",
|
|
349
|
-
"kiwisolver",
|
|
350
|
-
"langchain",
|
|
351
|
-
"langchain_community",
|
|
352
|
-
"langchain_core",
|
|
353
|
-
"langchain_text_splitters",
|
|
354
|
-
"langchainplus_sdk",
|
|
355
|
-
"langsmith",
|
|
356
|
-
"locust",
|
|
357
|
-
"loguru",
|
|
358
|
-
"lxml",
|
|
359
|
-
"MarkupSafe",
|
|
360
|
-
"marshmallow",
|
|
361
|
-
"marshmallow_enum",
|
|
362
|
-
"matplotlib",
|
|
363
|
-
"matplotlib_inline",
|
|
364
|
-
"mccabe",
|
|
365
|
-
"moncli",
|
|
366
|
-
"msgpack",
|
|
367
|
-
"multidict",
|
|
368
|
-
"multipart",
|
|
369
|
-
"multitasking",
|
|
370
|
-
"mypy_extensions",
|
|
371
|
-
"mysql",
|
|
372
|
-
"nest_asyncio",
|
|
373
|
-
"networkx",
|
|
374
|
-
"nltk",
|
|
375
|
-
"numexpr",
|
|
376
|
-
"numpy",
|
|
377
|
-
"oauthlib",
|
|
378
|
-
"openai",
|
|
379
|
-
"openapi_schema_pydantic",
|
|
380
|
-
"openpyxl",
|
|
381
|
-
"opentelemetry",
|
|
382
|
-
"orjson",
|
|
383
|
-
"oscrypto",
|
|
384
|
-
"osqp",
|
|
385
|
-
"packaging",
|
|
386
|
-
"pandas",
|
|
387
|
-
"parse",
|
|
388
|
-
"parso",
|
|
389
|
-
"pathspec",
|
|
390
|
-
"patsy",
|
|
391
|
-
"peewee",
|
|
392
|
-
"Persistence",
|
|
393
|
-
"persistent",
|
|
394
|
-
"pexpect",
|
|
395
|
-
"phonenumberslite",
|
|
396
|
-
"pickleshare",
|
|
397
|
-
"PIL",
|
|
398
|
-
"pinecone",
|
|
399
|
-
"platformdirs",
|
|
400
|
-
"plotly",
|
|
401
|
-
"postgresql_audit",
|
|
402
|
-
"prometheus_client",
|
|
403
|
-
"prompt_toolkit",
|
|
404
|
-
"proto",
|
|
405
|
-
"protobuf",
|
|
406
|
-
"psutil",
|
|
407
|
-
"psycopg2",
|
|
408
|
-
"ptyprocess",
|
|
409
|
-
"pure_eval",
|
|
410
|
-
"pyaes",
|
|
411
|
-
"pyarrow",
|
|
412
|
-
"pyasn1",
|
|
413
|
-
"pyasn1_modules",
|
|
414
|
-
"pybind11",
|
|
415
|
-
"pycodestyle",
|
|
416
|
-
"pycountry",
|
|
417
|
-
"pycparser",
|
|
418
|
-
"pycryptodomex",
|
|
419
|
-
"pydantic",
|
|
420
|
-
"pydash",
|
|
421
|
-
"pydot",
|
|
422
|
-
"pyee",
|
|
423
|
-
"Pygments",
|
|
424
|
-
"pygments",
|
|
425
|
-
"PyJWT",
|
|
426
|
-
"pymongo",
|
|
427
|
-
"pymongo_auth_aws",
|
|
428
|
-
"pymsteams",
|
|
429
|
-
"pyodbc",
|
|
430
|
-
"pyOpenSSL",
|
|
431
|
-
"pyowm",
|
|
432
|
-
"pyparsing",
|
|
433
|
-
"pypdf",
|
|
434
|
-
"pypng",
|
|
435
|
-
"pyppeteer",
|
|
436
|
-
"pyquery",
|
|
437
|
-
"PySocks",
|
|
438
|
-
"python_barcode",
|
|
439
|
-
"barcode",
|
|
440
|
-
"box",
|
|
441
|
-
"dateutil",
|
|
442
|
-
"docx",
|
|
443
|
-
"dotenv",
|
|
444
|
-
"engineio",
|
|
445
|
-
"gettext",
|
|
446
|
-
"graphql",
|
|
447
|
-
"socketio",
|
|
448
|
-
"pytz",
|
|
449
|
-
"pyvis",
|
|
450
|
-
"yaml",
|
|
451
|
-
"pyzipper",
|
|
452
|
-
"pyzmq",
|
|
453
|
-
"qdldl",
|
|
454
|
-
"qrcode",
|
|
455
|
-
"quickchart",
|
|
456
|
-
"redis",
|
|
457
|
-
"regex",
|
|
458
|
-
"requests",
|
|
459
|
-
"requests_file",
|
|
460
|
-
"requests_futures",
|
|
461
|
-
"requests_html",
|
|
462
|
-
"requests_oauthlib",
|
|
463
|
-
"requests_toolbelt",
|
|
464
|
-
"roundrobin",
|
|
465
|
-
"rsa",
|
|
466
|
-
"s3transfer",
|
|
467
|
-
"schematics",
|
|
468
|
-
"sklearn",
|
|
469
|
-
"scipy",
|
|
470
|
-
"scs",
|
|
471
|
-
"SecretStorage",
|
|
472
|
-
"sgmllib3k",
|
|
473
|
-
"simple_salesforce",
|
|
474
|
-
"simple_websocket",
|
|
475
|
-
"simplejson",
|
|
476
|
-
"six",
|
|
477
|
-
"SJSON",
|
|
478
|
-
"slack_sdk",
|
|
479
|
-
"sniffio",
|
|
480
|
-
"snowflake",
|
|
481
|
-
"sortedcontainers",
|
|
482
|
-
"soupsieve",
|
|
483
|
-
"sqlalchemy",
|
|
484
|
-
"SQLAlchemy_Utils",
|
|
485
|
-
"stack_data",
|
|
486
|
-
"statsmodels",
|
|
487
|
-
"stripe",
|
|
488
|
-
"tablib",
|
|
489
|
-
"tabulate",
|
|
490
|
-
"Telethon",
|
|
491
|
-
"telethon",
|
|
492
|
-
"tenacity",
|
|
493
|
-
"threadpoolctl",
|
|
494
|
-
"thrift",
|
|
495
|
-
"tldextract",
|
|
496
|
-
"tokenizers",
|
|
497
|
-
"tomli",
|
|
498
|
-
"tomlkit",
|
|
499
|
-
"tqdm",
|
|
500
|
-
"traitlets",
|
|
501
|
-
"transaction",
|
|
502
|
-
"types_python_dateutil",
|
|
503
|
-
"types_requests",
|
|
504
|
-
"types_simplejson",
|
|
505
|
-
"types_urllib3",
|
|
506
|
-
"typing_inspect",
|
|
507
|
-
"typing_extensions",
|
|
508
|
-
"ujson",
|
|
509
|
-
"uritemplate",
|
|
510
|
-
"urllib3",
|
|
511
|
-
"w3lib",
|
|
512
|
-
"wcwidth",
|
|
513
|
-
"webencodings",
|
|
514
|
-
"websockets",
|
|
515
|
-
"Werkzeug",
|
|
516
|
-
"werkzeug",
|
|
517
|
-
"wrapt",
|
|
518
|
-
"wsproto",
|
|
519
|
-
"xero_python",
|
|
520
|
-
"yahoo_fin",
|
|
521
|
-
"yarl",
|
|
522
|
-
"yfinance",
|
|
523
|
-
"zeep",
|
|
524
|
-
"zExceptions",
|
|
525
|
-
"zipp",
|
|
526
|
-
"zope",
|
|
527
|
-
]);
|
|
528
|
-
// Node.js built-in modules (these are always allowed)
|
|
529
|
-
const NODEJS_BUILTINS = new Set([
|
|
530
|
-
"assert",
|
|
531
|
-
"buffer",
|
|
532
|
-
"child_process",
|
|
533
|
-
"cluster",
|
|
534
|
-
"crypto",
|
|
535
|
-
"dgram",
|
|
536
|
-
"dns",
|
|
537
|
-
"events",
|
|
538
|
-
"fs",
|
|
539
|
-
"http",
|
|
540
|
-
"http2",
|
|
541
|
-
"https",
|
|
542
|
-
"net",
|
|
543
|
-
"os",
|
|
544
|
-
"path",
|
|
545
|
-
"perf_hooks",
|
|
546
|
-
"punycode",
|
|
547
|
-
"querystring",
|
|
548
|
-
"readline",
|
|
549
|
-
"stream",
|
|
550
|
-
"string_decoder",
|
|
551
|
-
"timers",
|
|
552
|
-
"tls",
|
|
553
|
-
"tty",
|
|
554
|
-
"url",
|
|
555
|
-
"util",
|
|
556
|
-
"v8",
|
|
557
|
-
"vm",
|
|
558
|
-
"worker_threads",
|
|
559
|
-
"zlib",
|
|
560
|
-
]);
|
|
561
|
-
// Python standard library modules (these are always allowed)
|
|
562
|
-
const PYTHON_BUILTINS = new Set([
|
|
563
|
-
"abc",
|
|
564
|
-
"aifc",
|
|
565
|
-
"argparse",
|
|
566
|
-
"array",
|
|
567
|
-
"ast",
|
|
568
|
-
"asynchat",
|
|
569
|
-
"asyncio",
|
|
570
|
-
"asyncore",
|
|
571
|
-
"atexit",
|
|
572
|
-
"audioop",
|
|
573
|
-
"base64",
|
|
574
|
-
"bdb",
|
|
575
|
-
"binascii",
|
|
576
|
-
"binhex",
|
|
577
|
-
"bisect",
|
|
578
|
-
"builtins",
|
|
579
|
-
"bz2",
|
|
580
|
-
"calendar",
|
|
581
|
-
"cgi",
|
|
582
|
-
"cgitb",
|
|
583
|
-
"chunk",
|
|
584
|
-
"cmath",
|
|
585
|
-
"cmd",
|
|
586
|
-
"code",
|
|
587
|
-
"codecs",
|
|
588
|
-
"codeop",
|
|
589
|
-
"collections",
|
|
590
|
-
"colorsys",
|
|
591
|
-
"compileall",
|
|
592
|
-
"concurrent",
|
|
593
|
-
"configparser",
|
|
594
|
-
"contextlib",
|
|
595
|
-
"contextvars",
|
|
596
|
-
"copy",
|
|
597
|
-
"copyreg",
|
|
598
|
-
"cProfile",
|
|
599
|
-
"crypt",
|
|
600
|
-
"csv",
|
|
601
|
-
"ctypes",
|
|
602
|
-
"curses",
|
|
603
|
-
"dataclasses",
|
|
604
|
-
"datetime",
|
|
605
|
-
"dbm",
|
|
606
|
-
"decimal",
|
|
607
|
-
"difflib",
|
|
608
|
-
"dis",
|
|
609
|
-
"distutils",
|
|
610
|
-
"doctest",
|
|
611
|
-
"email",
|
|
612
|
-
"encodings",
|
|
613
|
-
"enum",
|
|
614
|
-
"errno",
|
|
615
|
-
"faulthandler",
|
|
616
|
-
"fcntl",
|
|
617
|
-
"filecmp",
|
|
618
|
-
"fileinput",
|
|
619
|
-
"fnmatch",
|
|
620
|
-
"fractions",
|
|
621
|
-
"ftplib",
|
|
622
|
-
"functools",
|
|
623
|
-
"gc",
|
|
624
|
-
"getopt",
|
|
625
|
-
"getpass",
|
|
626
|
-
"gettext",
|
|
627
|
-
"glob",
|
|
628
|
-
"graphlib",
|
|
629
|
-
"grp",
|
|
630
|
-
"gzip",
|
|
631
|
-
"hashlib",
|
|
632
|
-
"heapq",
|
|
633
|
-
"hmac",
|
|
634
|
-
"html",
|
|
635
|
-
"http",
|
|
636
|
-
"imaplib",
|
|
637
|
-
"imghdr",
|
|
638
|
-
"imp",
|
|
639
|
-
"importlib",
|
|
640
|
-
"inspect",
|
|
641
|
-
"io",
|
|
642
|
-
"ipaddress",
|
|
643
|
-
"itertools",
|
|
644
|
-
"json",
|
|
645
|
-
"keyword",
|
|
646
|
-
"lib2to3",
|
|
647
|
-
"linecache",
|
|
648
|
-
"locale",
|
|
649
|
-
"logging",
|
|
650
|
-
"lzma",
|
|
651
|
-
"mailbox",
|
|
652
|
-
"mailcap",
|
|
653
|
-
"marshal",
|
|
654
|
-
"math",
|
|
655
|
-
"mimetypes",
|
|
656
|
-
"mmap",
|
|
657
|
-
"modulefinder",
|
|
658
|
-
"msilib",
|
|
659
|
-
"msvcrt",
|
|
660
|
-
"multiprocessing",
|
|
661
|
-
"netrc",
|
|
662
|
-
"nis",
|
|
663
|
-
"nntplib",
|
|
664
|
-
"numbers",
|
|
665
|
-
"operator",
|
|
666
|
-
"optparse",
|
|
667
|
-
"os",
|
|
668
|
-
"ossaudiodev",
|
|
669
|
-
"pathlib",
|
|
670
|
-
"pdb",
|
|
671
|
-
"pickle",
|
|
672
|
-
"pickletools",
|
|
673
|
-
"pipes",
|
|
674
|
-
"pkgutil",
|
|
675
|
-
"platform",
|
|
676
|
-
"plistlib",
|
|
677
|
-
"poplib",
|
|
678
|
-
"posix",
|
|
679
|
-
"posixpath",
|
|
680
|
-
"pprint",
|
|
681
|
-
"profile",
|
|
682
|
-
"pstats",
|
|
683
|
-
"pty",
|
|
684
|
-
"pwd",
|
|
685
|
-
"py_compile",
|
|
686
|
-
"pyclbr",
|
|
687
|
-
"pydoc",
|
|
688
|
-
"queue",
|
|
689
|
-
"quopri",
|
|
690
|
-
"random",
|
|
691
|
-
"re",
|
|
692
|
-
"readline",
|
|
693
|
-
"reprlib",
|
|
694
|
-
"resource",
|
|
695
|
-
"rlcompleter",
|
|
696
|
-
"runpy",
|
|
697
|
-
"sched",
|
|
698
|
-
"secrets",
|
|
699
|
-
"select",
|
|
700
|
-
"selectors",
|
|
701
|
-
"shelve",
|
|
702
|
-
"shlex",
|
|
703
|
-
"shutil",
|
|
704
|
-
"signal",
|
|
705
|
-
"site",
|
|
706
|
-
"smtpd",
|
|
707
|
-
"smtplib",
|
|
708
|
-
"sndhdr",
|
|
709
|
-
"socket",
|
|
710
|
-
"socketserver",
|
|
711
|
-
"spwd",
|
|
712
|
-
"sqlite3",
|
|
713
|
-
"ssl",
|
|
714
|
-
"stat",
|
|
715
|
-
"statistics",
|
|
716
|
-
"string",
|
|
717
|
-
"stringprep",
|
|
718
|
-
"struct",
|
|
719
|
-
"subprocess",
|
|
720
|
-
"sunau",
|
|
721
|
-
"symtable",
|
|
722
|
-
"sys",
|
|
723
|
-
"sysconfig",
|
|
724
|
-
"syslog",
|
|
725
|
-
"tabnanny",
|
|
726
|
-
"tarfile",
|
|
727
|
-
"telnetlib",
|
|
728
|
-
"tempfile",
|
|
729
|
-
"termios",
|
|
730
|
-
"test",
|
|
731
|
-
"textwrap",
|
|
732
|
-
"threading",
|
|
733
|
-
"time",
|
|
734
|
-
"timeit",
|
|
735
|
-
"token",
|
|
736
|
-
"tokenize",
|
|
737
|
-
"tomllib",
|
|
738
|
-
"trace",
|
|
739
|
-
"traceback",
|
|
740
|
-
"tracemalloc",
|
|
741
|
-
"tty",
|
|
742
|
-
"turtle",
|
|
743
|
-
"types",
|
|
744
|
-
"typing",
|
|
745
|
-
"unicodedata",
|
|
746
|
-
"unittest",
|
|
747
|
-
"urllib",
|
|
748
|
-
"uu",
|
|
749
|
-
"uuid",
|
|
750
|
-
"venv",
|
|
751
|
-
"warnings",
|
|
752
|
-
"wave",
|
|
753
|
-
"weakref",
|
|
754
|
-
"webbrowser",
|
|
755
|
-
"winreg",
|
|
756
|
-
"winsound",
|
|
757
|
-
"wsgiref",
|
|
758
|
-
"xml",
|
|
759
|
-
"xmlrpc",
|
|
760
|
-
"zipapp",
|
|
761
|
-
"zipfile",
|
|
762
|
-
"zipimport",
|
|
763
|
-
"zlib",
|
|
764
|
-
]);
|
|
765
|
-
//# sourceMappingURL=apis-static-analysis.js.map
|