diff --git a/extensions/community/Pocketbase.json b/extensions/community/Pocketbase.json new file mode 100644 index 000000000..2079edbf3 --- /dev/null +++ b/extensions/community/Pocketbase.json @@ -0,0 +1,2800 @@ +{ + "author": "", + "category": "Network", + "extensionNamespace": "", + "fullName": "Pocketbase", + "gdevelopVersion": "", + "helpPath": "https://forum.gdevelop.io/t/tired-of-firebase-free-plan-try-this-self-hosted-server/72223", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNlcnZlci1zZWN1cml0eSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0zLDFIMTlBMSwxIDAgMCwxIDIwLDJWNkExLDEgMCAwLDEgMTksN0gzQTEsMSAwIDAsMSAyLDZWMkExLDEgMCAwLDEgMywxTTMsOUgxOUExLDEgMCAwLDEgMjAsMTBWMTAuNjdMMTcuNSw5LjU2TDExLDEyLjQ0VjE1SDNBMSwxIDAgMCwxIDIsMTRWMTBBMSwxIDAgMCwxIDMsOU0zLDE3SDExQzExLjA2LDE5LjI1IDEyLDIxLjQgMTMuNDYsMjNIM0ExLDEgMCAwLDEgMiwyMlYxOEExLDEgMCAwLDEgMywxN004LDVIOVYzSDhWNU04LDEzSDlWMTFIOFYxM004LDIxSDlWMTlIOFYyMU00LDNWNUg2VjNINE00LDExVjEzSDZWMTFINE00LDE5VjIxSDZWMTlINE0xNy41LDEyTDIyLDE0VjE3QzIyLDE5Ljc4IDIwLjA4LDIyLjM3IDE3LjUsMjNDMTQuOTIsMjIuMzcgMTMsMTkuNzggMTMsMTdWMTRMMTcuNSwxMk0xNy41LDEzLjk0TDE1LDE1LjA2VjE3LjcyQzE1LDE5LjI2IDE2LjA3LDIwLjcgMTcuNSwyMS4wNlYxMy45NFoiIC8+PC9zdmc+", + "name": "Pocketbase", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/ae51b83ca061b542dbe59959472cd508f9c61c0a4dbeb4aa96e64783539e48d9_server-security.svg", + "shortDescription": "A self-hosted server like Firebase, giving you full control over data and authentication. It runs entirely on your own infrastructure.", + "version": "1.0.1", + "description": [ + "Account & Authentication:", + "", + "- Sign Up", + "", + "- Log In", + "", + "- Log Out", + "", + "- User ID", + "", + "- User Token", + "", + "- Refresh Auth Token", + "", + "Email & Password:", + "", + "- Verify Email", + "", + "- Change Email", + "", + "- Reset Password", + "", + "Data Management:", + "", + "- Save Data", + "", + "- Load Data", + "", + "- Update Data", + "", + "- Delete Data", + "", + "- Delete Account" + ], + "tags": [ + "Network" + ], + "authorIds": [ + "KPIbi138jTTJkK5bfaqtq4FE1Ko1" + ], + "dependencies": [], + "globalVariables": [ + { + "name": "Ok", + "type": "string", + "value": "" + }, + { + "name": "Error", + "type": "string", + "value": "" + }, + { + "name": "UserID", + "type": "string", + "value": "" + }, + { + "name": "Data", + "type": "number", + "value": 0 + }, + { + "name": "Ready", + "type": "boolean", + "value": false + }, + { + "name": "Token", + "type": "string", + "value": "" + }, + { + "name": "Signedin", + "type": "number", + "value": 0 + }, + { + "name": "EmailVerified", + "type": "string", + "value": "" + }, + { + "name": "Fied", + "type": "number", + "value": 0 + }, + { + "name": "LogChecker", + "type": "string", + "value": "" + } + ], + "sceneVariables": [ + { + "name": "response", + "type": "string", + "value": "" + }, + { + "name": "error", + "type": "string", + "value": "" + }, + { + "name": "Sign", + "type": "structure", + "children": [] + }, + { + "name": "Log", + "type": "structure", + "children": [] + }, + { + "name": "Load", + "type": "structure", + "children": [] + }, + { + "name": "Tok", + "type": "structure", + "children": [] + }, + { + "name": "FEROR", + "type": "structure", + "children": [] + }, + { + "name": "VaF", + "type": "structure", + "children": [] + }, + { + "name": "DataCollection", + "type": "structure", + "children": [] + }, + { + "name": "DataVar", + "type": "structure", + "children": [] + }, + { + "name": "FERO", + "type": "structure", + "children": [] + }, + { + "name": "Var", + "type": "string", + "value": "" + }, + { + "name": "RefTok", + "type": "structure", + "children": [] + }, + { + "name": "ChaEma", + "type": "structure", + "children": [] + }, + { + "name": "FoT", + "type": "boolean", + "value": false + } + ], + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "async": true, + "description": "The url link to signing up, needs to have \"/api/collections/users/records\". For example \"http://127.0.0.1:8090/api/collections/users/records\".", + "fullName": "Sign Up", + "functionType": "Action", + "group": "Authentication", + "name": "_CreateUser", + "sentence": "Sign Up _PARAM1_ The URL , _PARAM2_ email, _PARAM3_ and password, Add _PARAM4_ after the URL,", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL", + "\"{\\\"email\\\":\\\"\" + (email) + \"\\\",\\\"password\\\":\\\"\" + (password) + \"\\\",\\\"passwordConfirm\\\":\\\"\" + (password) + \"\\\"}\"", + "\"POST\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Sign" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "VariableString(Sign.id)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Tok" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "email", + "name": "email", + "type": "string" + }, + { + "description": "password", + "name": "password", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\"/api/collections/users/records\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "The url link to singing in, needs to have \"/api/collections/users/auth-with-password\". For example \"http://127.0.0.1:8090/api/collections/users/auth-with-password\".", + "fullName": "Log in", + "functionType": "Action", + "group": "Authentication", + "name": "_LogIn", + "sentence": "Log in _PARAM1_ The URL , _PARAM2_ email, _PARAM3_ and password, Add _PARAM4_ after the URL,", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL", + "\"{\\\"identity\\\":\\\"\" + (email) + \"\\\",\\\"password\\\":\\\"\" + (password) + \"\\\"}\"", + "\"POST\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Log" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "LogChecker", + "=", + "VariableString(Log.message)" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "LogChecker", + "=", + "\"Failed to authenticate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "FoT", + "False", + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "FoT", + "False", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "0" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Fied", + "=", + "0" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Data", + "=", + "0" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Emao\"", + "\"True\"", + "Fied" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Data\"", + "\"Load\"", + "Data" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "LogChecker", + "=", + "\"0\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "FoT", + "True", + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "FoT", + "True", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Log" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "VariableString(Log.record.id)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Tok" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "VariableString(Tok.token)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "1" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Tok" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "VariableString(Tok.token)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "1" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Log" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "VariableString(Log.record.id)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "email", + "name": "email", + "type": "string" + }, + { + "description": "password", + "name": "password", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\"/api/collections/users/auth-with-password\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return Pocketbase user unique ID.", + "fullName": "userID", + "functionType": "StringExpression", + "group": "User ID", + "name": "_UserID", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadStringFromStorage" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID", + "UserID" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "UserID" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "UserID", + "=", + "\"0\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "\"\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "UserID", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "\"\"" + ] + } + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [], + "objectGroups": [] + }, + { + "async": true, + "description": "You can only save a variable once. If you later need to change its value, use the Update Data section to update the saved variable instead of saving it again.", + "fullName": "Save data", + "functionType": "Action", + "group": "Save Data", + "name": "_SaveData", + "sentence": "Save data _PARAM1_ URL , _PARAM2_ UserID, _PARAM3_ Save variable", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL", + "\"{\\\"id\\\":\\\"\" + (UserID) + \"\\\",\\\"Var\\\":\\\"\" + (Var) + \"\\\"}\"", + "\"POST\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Tok" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID", + "type": "string" + }, + { + "description": "Vairable that needs to be saved", + "name": "Var", + "supplementaryInformation": "TextObject::Text", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "Update the value of a previously saved variable. Use this option when you want to change data that has already been saved instead of saving it again.\nInclude a \"/\" at the end — otherwise it won’t work.", + "fullName": "Update data", + "functionType": "Action", + "group": "Update Data", + "name": "_UpdateVariable", + "sentence": "Update data _PARAM1_ URL , _PARAM2_ UserID, _PARAM3_ Update data", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL + UserID", + "\"{\\\"Var\\\":\\\"\" + (Var) + \"\\\"}\"", + "\"PATCH\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Tok" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID", + "type": "string" + }, + { + "description": "Vairable that needs to be updated", + "name": "Var", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "Load a saved data, then use the expression Loaded Data to access it.\nInclude a \"/\" at the end — otherwise it won’t work.", + "fullName": "Load data", + "functionType": "Action", + "group": "Load Data", + "name": "_LoadData", + "sentence": "Load data _PARAM1_ URL , _PARAM2_ UserID", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL + UserID", + "\"{\\\"Var\\\":\\\"\" + (Var) + \"\\\"}\" ", + "\"GET\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "Load" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Flux", + "=", + "VariableString(Load.Var)" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Data", + "=", + "Flux" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Data\"", + "\"Load\"", + "Data" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ], + "variables": [ + { + "name": "Flux", + "type": "string", + "value": "" + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "This is the data retrieved from PocketBase. Assign it to any variable you want.", + "fullName": "Loaded data", + "functionType": "Expression", + "group": "Loaded Data", + "name": "_LoadedData", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadNumberFromStorage" + }, + "parameters": [ + "\"Data\"", + "\"Load\"", + "Data", + "Data" + ] + }, + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Data" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "async": true, + "description": "Permanently delete the saved data from Pocketbase. \nInclude a \"/\" at the end — otherwise it won’t work. (NOTE: Once you delete a user’s data, it cannot be recovered).", + "fullName": "Delete data", + "functionType": "Action", + "group": "Delete Data", + "name": "_DeleteData", + "sentence": "Delete data _PARAM1_ URL , _PARAM2_ UserID", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL + UserID", + "\"{\\\"Var\\\":\\\"\" + (Var) + \"\\\"}\"", + "\"DELETE\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "Permanently deletes the user’s account. I strongly suggest deleting the user's data also. Include a \"/\" at the end — otherwise it won’t work.\n(NOTE: Once you delete an account, it cannot be recovered).", + "fullName": "Delete user", + "functionType": "Action", + "group": "Authentication", + "name": "_DeleteUser", + "sentence": "Delete user _PARAM1_ URL , _PARAM2_ UserID", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL + UserID2", + "\"{\\\"id\\\":\\\"\" + (UserID2) + \"\\\"}\"", + "\"DELETE\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "0" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID2", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Shows the error.", + "fullName": "Error", + "functionType": "StringExpression", + "group": "Errors", + "name": "_Error", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadStringFromStorage" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error", + "Error" + ] + }, + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Error" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "Check if the user is signed in.", + "fullName": "Is the user signed in", + "functionType": "Condition", + "group": "Authentication", + "name": "_SignedIn", + "sentence": "User is signed in", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadNumberFromStorage" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin", + "Signedin" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "async": true, + "description": "Sends an email with a link that allows the user to reset their password.", + "fullName": "Password reset", + "functionType": "Action", + "group": "Authentication", + "name": "_PasswordReset", + "sentence": "Password reset _PARAM1_ URL , _PARAM2_ email, Add _PARAM3_ after the URL", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL", + "\"{\\\"email\\\":\\\"\" + (email) + \"\\\"}\"", + "\"POST\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "email", + "name": "email", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\"/api/collections/users/request-password-reset\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "Sends an email containing a verification link to confirm your email address.", + "fullName": "Send a email verification", + "functionType": "Action", + "group": "Authentication", + "name": "_EmailVerification", + "sentence": "Email verification _PARAM1_ URL , _PARAM2_ email, Add _PARAM3_ after the URL", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL", + "\"{\\\"email\\\":\\\"\" + (email) + \"\\\"}\"", + "\"POST\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + }, + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "email", + "name": "email", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\" /api/collections/users/request-verification\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "async": true, + "description": "Checks whether the user’s email address has been verified. Include a \"/\" at the end — otherwise it won’t work.", + "fullName": "Is email verified?", + "functionType": "Action", + "group": "Authentication", + "name": "_CheckIfEmailVerified", + "sentence": "Check if email is verified _PARAM1_ URL, _PARAM2_ UserID", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "await": true, + "value": "SendAsyncRequest" + }, + "parameters": [ + "URL + UserID", + "\"\"", + "\"GET\"", + "\"application/json\"", + "response", + "error" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "VaF" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "EmailVerified", + "=", + "VariableString(VaF.verified)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"Emai\"", + "\"Veri\"", + "EmailVerified" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "EmailVerified", + "=", + "\"false\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Fied", + "=", + "0" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Emao\"", + "\"True\"", + "Fied" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "EmailVerified", + "=", + "\"true\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Fied", + "=", + "1" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Emao\"", + "\"True\"", + "Fied" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BuiltinAsync::ResolveAsyncEventsFunction" + }, + "parameters": [ + "" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "UserID", + "name": "UserID", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Checks if the user’s email is verified.", + "fullName": "Email verified", + "functionType": "Condition", + "group": "Authentication", + "name": "_EmailVerified", + "sentence": "Email is verified?", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadNumberFromStorage" + }, + "parameters": [ + "\"Emao\"", + "\"True\"", + "Fied", + "Fied" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "Fied", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "Fied", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Logs the user out of their account.", + "fullName": "Log out", + "functionType": "Action", + "group": "Authentication", + "name": "_LogOut", + "sentence": "Are you sure you want to log out? _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadStringFromStorage" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token", + "Token" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Are_you_sure", + "=", + "" + ] + } + ], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Are_you_sure", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Signedin", + "=", + "0" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "UserID", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Fied", + "=", + "0" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Data", + "=", + "0" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Sign\"", + "\"ED\"", + "Signedin" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"id\"", + "\"user\"", + "UserID" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Emao\"", + "\"True\"", + "Fied" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"Data\"", + "\"Load\"", + "Data" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Are you sure you want to log out?", + "name": "Are_you_sure", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Refreshes the user’s authentication token to keep their session active.\n(NOTE: Requires the AdvancedHTTP extension to use this action).", + "fullName": "Refresh token", + "functionType": "Action", + "group": "Authentication", + "name": "_RefreshAuthToken", + "sentence": "Refresh token _PARAM1_ URL, current token _PARAM2_, Add _PARAM3_ after the URL", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AdvancedHTTP::CreateRequest" + }, + "parameters": [ + "", + "\"RT\"", + "URL", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestMethod" + }, + "parameters": [ + "", + "\"RT\"", + "\"POST\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestHeader" + }, + "parameters": [ + "", + "=", + "token", + "\"RT\"", + "\"Authorization\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::ExecuteRequest" + }, + "parameters": [ + "", + "\"RT\"", + "response", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::ReadResponseJSON" + }, + "parameters": [ + "", + "response", + "RefTok", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Token", + "=", + "VariableString(RefTok.token)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "Current saved token", + "name": "token", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\" /api/collections/users/auth-refresh\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Sends a verification email to the user’s new address to confirm the change.\n(NOTE: Requires the AdvancedHTTP extension to use this action).", + "fullName": "Change email", + "functionType": "Action", + "group": "Authentication", + "name": "_ChangeEmail", + "sentence": "Change email _PARAM1_ URL, New email _PARAM2_, Token _PARAM3_ , Add _PARAM4_ after the URL", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AdvancedHTTP::CreateRequest" + }, + "parameters": [ + "", + "\"CE\"", + "URL", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestMethod" + }, + "parameters": [ + "", + "\"CE\"", + "\"POST\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestBody" + }, + "parameters": [ + "", + "=", + "\"{\\\"newEmail\\\":\\\"\" + (newEmail) + \"\\\"}\"", + "\"CE\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestHeader" + }, + "parameters": [ + "", + "=", + "token", + "\"CE\"", + "\"Authorization\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::SetRequestHeader" + }, + "parameters": [ + "", + "=", + "\"application/json\"", + "\"CE\"", + "\"Content-Type\"", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::ExecuteRequest" + }, + "parameters": [ + "", + "\"CE\"", + "response", + "" + ] + }, + { + "type": { + "value": "AdvancedHTTP::ReadResponseJSON" + }, + "parameters": [ + "", + "response", + "ChaEma", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "JSONToVariableStructure2" + }, + "parameters": [ + "VariableString(response)", + "FEROR" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Error", + "=", + "VariableString(FEROR.message)" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"ERROR\"", + "\"ROR\"", + "Error" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "URL", + "name": "URL", + "type": "string" + }, + { + "description": "New email", + "name": "newEmail", + "type": "string" + }, + { + "description": "Current saved token", + "name": "token", + "type": "string" + }, + { + "description": "Add the API details after the URL", + "name": "API_details", + "supplementaryInformation": "[\" /api/collections/users/request-email-change\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Returns the current PocketBase user access token.", + "fullName": "User access token", + "functionType": "StringExpression", + "group": "Authentication", + "name": "_Token", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ReadStringFromStorage" + }, + "parameters": [ + "\"token\"", + "\"Login\"", + "Token", + "Token" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Token" + ] + } + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] +} \ No newline at end of file