snapshot of https://github.com/mountain-loop/yaak.git (main, 2026-09-23; blobs > 131072B omitted)
Some checks failed
Lint and Test / Lint/Test (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-23 17:39:41 +05:00
commit 906fb231cc
1544 changed files with 164131 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"name": "@yaak/template-function-encode",
"displayName": "Encoding Template Functions",
"version": "0.1.0",
"private": true,
"description": "Template functions for encoding and decoding data",
"scripts": {
"build": "yaakcli build",
"dev": "yaakcli dev"
}
}

View File

@@ -0,0 +1,62 @@
import type { CallTemplateFunctionArgs, Context, PluginDefinition } from "@yaakapp/api";
export const plugin: PluginDefinition = {
templateFunctions: [
{
name: "base64.encode",
description: "Encode a value to base64",
args: [
{
label: "Encoding",
type: "select",
name: "encoding",
defaultValue: "base64",
options: [
{
label: "Base64",
value: "base64",
},
{
label: "Base64 URL-safe",
value: "base64url",
},
],
},
{ label: "Plain Text", type: "text", name: "value", multiLine: true },
],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
return Buffer.from(String(args.values.value ?? "")).toString(
args.values.encoding === "base64url" ? "base64url" : "base64",
);
},
},
{
name: "base64.decode",
description: "Decode a value from base64",
args: [{ label: "Encoded Value", type: "text", name: "value", multiLine: true }],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
return Buffer.from(String(args.values.value ?? ""), "base64").toString("utf-8");
},
},
{
name: "url.encode",
description: "Encode a value for use in a URL (percent-encoding)",
args: [{ label: "Plain Text", type: "text", name: "value", multiLine: true }],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
return encodeURIComponent(String(args.values.value ?? ""));
},
},
{
name: "url.decode",
description: "Decode a percent-encoded URL value",
args: [{ label: "Encoded Value", type: "text", name: "value", multiLine: true }],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
try {
return decodeURIComponent(String(args.values.value ?? ""));
} catch {
return "";
}
},
},
],
};

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}