🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

flutterflow-mcp

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flutterflow-mcp - npm Package Compare versions

Comparing version
0.3.4
to
0.3.5
+7
-0
build/utils/topic-map.js

@@ -87,2 +87,9 @@ /**

executecallbackaction: "03-components.md",
// Internationalization
translation: "01-project-files.md",
translations: "01-project-files.md",
i18n: "01-project-files.md",
localization: "01-project-files.md",
translatabletext: "01-project-files.md",
languages: "01-project-files.md",
// Universal patterns

@@ -89,0 +96,0 @@ inputvalue: "README.md",

+1
-1

@@ -39,3 +39,3 @@ # FlutterFlow Project Structure

| `agent/id-XXX` | AI agent configuration |
| `custom-file/id-<TYPE>` | Custom file configs for native platform files. Known types: `MAIN` (main.dart startup actions), `ANDROID_MANIFEST` (XML injection hooks for AndroidManifest.xml), `PROGUARD` (ProGuard rule injection for proguard-rules.pro), `BUILD_GRADLE` (Gradle plugin/dependency/repository injection for build.gradle). Only appear after enabled in FF editor. Sub-file `custom-file/id-MAIN/custom-file-code.dart` contains generated Dart source. |
| `custom-file/id-<TYPE>` | Custom file configs for native platform files. Known types: `MAIN` (main.dart startup actions), `ANDROID_MANIFEST` (XML injection hooks for AndroidManifest.xml), `INFO_PLIST` (plist property injection for Info.plist), `ENTITLEMENTS` (iOS capability entitlements for Runner.entitlements), `APP_DELEGATE` (Swift code injection for AppDelegate.swift), `PROGUARD` (ProGuard rule injection for proguard-rules.pro), `BUILD_GRADLE` (Gradle plugin/dependency/repository injection for build.gradle). Only appear after enabled in FF editor. Sub-file `custom-file/id-<TYPE>/custom-file-code.dart` contains generated source. |
| `environment-settings` | Per-environment configuration values (API URLs, keys) |

@@ -42,0 +42,0 @@ | `dependencies` | FlutterFlow library package dependencies |

@@ -338,2 +338,22 @@ # Components

**Translatable text (i18n):**
Use `translatableText` inside `inputValue` to pass a string that should be translated at runtime based on the app's current locale. This is the correct way to make component parameter text translatable.
```yaml
paramIdentifier:
name: title
key: p1titl
inputValue:
translatableText:
translationIdentifier:
key: ms01ttl1 # References languages/translation/id-ms01ttl1
textValue:
inputValue: Histamine / Low DAO # English default / editor preview
```
Each `translationIdentifier.key` must have a corresponding `languages/translation/id-<key>` file with translations for all supported languages (see `01-project-files.md` for the translation file schema).
> **Note:** `translationIdentifier` is NOT valid as a direct sibling of `paramIdentifier` on a parameterPass — it must be nested inside `inputValue.translatableText`. Placing it at the wrong level causes a validation error.
---

@@ -340,0 +360,0 @@

@@ -834,2 +834,17 @@ # Variables and Data Binding

**Translatable text (i18n):**
Used when passing a string that should be translated at runtime based on the app's locale. Wraps `translationIdentifier` and `textValue` inside `inputValue.translatableText`. Commonly used in component parameter passes to make per-instance text translatable.
```yaml
inputValue:
translatableText:
translationIdentifier:
key: ms01ttl1 # References languages/translation/id-ms01ttl1
textValue:
inputValue: Histamine / Low DAO # English default
```
Each key must have a corresponding translation file at `languages/translation/id-<key>` with entries for all supported languages. See `01-project-files.md` for the translation file schema.
The `mostRecentInputValue` field must always stay in sync with `inputValue` when both are present.
# Custom Code
FlutterFlow supports four types of custom code: **Custom Actions** (async Dart functions with side effects), **Custom Functions** (pure synchronous Dart functions), **Custom Widgets** (Flutter widgets with parameters), and **AI Agents** (LLM-powered processing pipelines). Additionally, **App Action Components** provide reusable action chains that can be invoked from any page, and **Custom Files** allow overriding special project-level files like `main.dart` and `AndroidManifest.xml`.
FlutterFlow supports four types of custom code: **Custom Actions** (async Dart functions with side effects), **Custom Functions** (pure synchronous Dart functions), **Custom Widgets** (Flutter widgets with parameters), and **AI Agents** (LLM-powered processing pipelines). Additionally, **App Action Components** provide reusable action chains that can be invoked from any page, and **Custom Files** allow overriding special project-level files like `main.dart`, `AndroidManifest.xml`, `Info.plist`, `proguard-rules.pro`, and `build.gradle`.

@@ -709,73 +709,18 @@ ---

Custom Files are special project-level files such as `main.dart` (the app entry point) and `AndroidManifest.xml`. Each has a metadata YAML file and a companion code file. They live under `custom-file/`.
Custom Files are special project-level files that override platform-specific configuration (e.g., `main.dart`, `AndroidManifest.xml`, `Info.plist`, `proguard-rules.pro`, `build.gradle`). Each has a metadata YAML file and a companion code file under `custom-file/`.
### File layout
> **Full documentation:** Custom Files are documented in detail in [01-project-files.md](01-project-files.md) under the `custom-file/id-*` sections, since they are project-level configuration files. See those sections for complete schemas, hook types, parameters, API capabilities, and warnings.
```
custom-file/
id-MAIN.yaml # Metadata for main.dart
id-MAIN/custom-file-code.dart.yaml # main.dart Dart code
id-ANDROID_MANIFEST.yaml # Metadata for AndroidManifest.xml
id-ANDROID_MANIFEST/custom-file-code.dart.yaml # AndroidManifest.xml content
```
### Quick reference
### MAIN metadata (id-MAIN.yaml)
| Type | File key | Description |
|------|----------|-------------|
| `MAIN` | `custom-file/id-MAIN` | App entry point (`main.dart`) — lifecycle actions (INITIAL/FINAL) |
| `ANDROID_MANIFEST` | `custom-file/id-ANDROID_MANIFEST` | Android manifest — XML injection hooks, template parameters |
| `INFO_PLIST` | `custom-file/id-INFO_PLIST` | iOS Info.plist — property injection hooks, template parameters |
| `ENTITLEMENTS` | `custom-file/id-ENTITLEMENTS` | iOS Runner.entitlements — capability entitlement injection |
| `APP_DELEGATE` | `custom-file/id-APP_DELEGATE` | iOS AppDelegate.swift — import and initialization code injection |
| `PROGUARD` | `custom-file/id-PROGUARD` | ProGuard rules — rule injection hooks |
| `BUILD_GRADLE` | `custom-file/id-BUILD_GRADLE` | Gradle config — plugin/dependency/repository injection hooks |
```yaml
type: MAIN
isUnlocked: false
actions:
- type: FINAL_ACTION
identifier:
name: initializeUlink
key: t6snt
projectId: ulink-21sajt
description: ""
```
### ANDROID_MANIFEST metadata (id-ANDROID_MANIFEST.yaml)
```yaml
type: ANDROID_MANIFEST
identifier:
name: AndroidManifest.xml
isUnlocked: true
parameters:
29c3b7b9-afe7-4429-9d20-abb2e09f7a40:
parameter:
identifier:
name: ulinkDomain
dataType:
scalarType: String
value:
variable:
source: DEV_ENVIRONMENT
baseVariable:
environmentValue:
identifier:
name: ulinkDomain
key: eji5p6
description: ""
```
### Definition fields
| Field | Required | Description |
|-------|----------|-------------|
| `type` | Yes | File type: `MAIN` or `ANDROID_MANIFEST` |
| `identifier` | For ANDROID_MANIFEST | `name` of the file |
| `isUnlocked` | No | Whether the file is editable (default: false) |
| `actions` | No | List of final actions (library initializers) that run at startup |
| `parameters` | No | Template parameter substitutions for the code file |
| `description` | No | Human-readable description |
### Code files
- **MAIN:** `custom-file/id-MAIN/custom-file-code.dart.yaml` contains the full `main.dart` with imports, `main()` function, Firebase/Supabase initialization, and library init calls.
- **ANDROID_MANIFEST:** `custom-file/id-ANDROID_MANIFEST/custom-file-code.dart.yaml` contains the XML manifest with template placeholders (e.g., `{{unlinkDomain}}`, `{{ulink-21sajt.ulinkSchema}}`). Parameters in metadata map to these placeholders.
### Parameter substitution
Parameters in ANDROID_MANIFEST metadata define template variables. Each key is a UUID, and the value specifies where the parameter's value comes from (typically `DEV_ENVIRONMENT`). These get substituted into the code file's template placeholders at build time.
---

@@ -792,2 +737,2 @@

| App Action Component | `app-action-components/id-<key>.yaml` | N/A (actions are inline) | `app-action-components/` |
| Custom File | `custom-file/id-<TYPE>.yaml` | `custom-file/id-<TYPE>/custom-file-code.dart.yaml` | `custom-file/` |
| Custom File | `custom-file/id-<TYPE>` | `custom-file/id-<TYPE>/custom-file-code.dart` | `custom-file/` |
{
"name": "flutterflow-mcp",
"version": "0.3.4",
"version": "0.3.5",
"description": "MCP server for the FlutterFlow Project API — AI-assisted FlutterFlow development through Claude and other MCP-compatible clients",

@@ -5,0 +5,0 @@ "type": "module",

Sorry, the diff of this file is too big to display