Skip to main content

eddication

Provides expertise in full-stack development, executive dashboard design, and data analytics using modern technologies and methodologies.

Install this skill

or
0/100

Security score

The eddication skill was audited on Feb 27, 2026 and we found 183 security issues across 6 threat categories. Review the findings below before installing.

Categories Tested

Security Issues

medium line 122

Template literal with variable interpolation in command context

SourceSKILL.md
122.channel(`channel-${userId}`)
medium line 127

Template literal with variable interpolation in command context

SourceSKILL.md
127filter: `user_id=eq.${userId}`
medium line 216

Template literal with variable interpolation in command context

SourceSKILL.md
216.channel(`table-${userId}`)
medium line 221

Template literal with variable interpolation in command context

SourceSKILL.md
221filter: `user_id=eq.${userId}`
medium line 365

Template literal with variable interpolation in command context

SourceSKILL.md
365```python
medium line 462

Template literal with variable interpolation in command context

SourceSKILL.md
462let url = `${this.url}/rest/v1/${table}?select=${select}&limit=${limit}`;
medium line 463

Template literal with variable interpolation in command context

SourceSKILL.md
463if (filter) url += `&${filter}`;
medium line 464

Template literal with variable interpolation in command context

SourceSKILL.md
464if (order) url += `&order=${order}`;
medium line 469

Template literal with variable interpolation in command context

SourceSKILL.md
469'Authorization': `Bearer ${this.key}`,
medium line 476

Template literal with variable interpolation in command context

SourceSKILL.md
476throw new Error(`Supabase error: ${response.getContentText()}`);
medium line 483

Template literal with variable interpolation in command context

SourceSKILL.md
483return UrlFetchApp.fetch(`${this.url}/rest/v1/${table}`, {
medium line 487

Template literal with variable interpolation in command context

SourceSKILL.md
487'Authorization': `Bearer ${this.key}`,
medium line 879

Template literal with variable interpolation in command context

SourceSKILL.md
879id: `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
medium line 935

Template literal with variable interpolation in command context

SourceSKILL.md
935throw new Error(`HTTP ${response.status}`);
medium line 1453

Template literal with variable interpolation in command context

SourceSKILL.md
1453return `${d.getDate()} ${getThaiMonth(d.getMonth() + 1)} ${toBuddhistYear(d.getFullYear())}`;
medium line 1556

Template literal with variable interpolation in command context

SourceSKILL.md
1556return `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;
medium line 1622

Template literal with variable interpolation in command context

SourceSKILL.md
1622if (address.houseNumber) parts.push(`${address.houseNumber}`);
medium line 1623

Template literal with variable interpolation in command context

SourceSKILL.md
1623if (address.villageNumber) parts.push(`ม.${address.villageNumber}`);
medium line 1626

Template literal with variable interpolation in command context

SourceSKILL.md
1626if (address.floor) parts.push(`ชั้น ${address.floor}`);
medium line 1627

Template literal with variable interpolation in command context

SourceSKILL.md
1627if (address.room) parts.push(`ห้อง ${address.room}`);
medium line 1628

Template literal with variable interpolation in command context

SourceSKILL.md
1628if (address.alley) parts.push(`ซ.${address.alley}`);
medium line 1629

Template literal with variable interpolation in command context

SourceSKILL.md
1629if (address.road) parts.push(`ถ.${address.road}`);
medium line 1632

Template literal with variable interpolation in command context

SourceSKILL.md
1632if (address.subdistrict) parts.push(`ต.${address.subdistrict}`);
medium line 1633

Template literal with variable interpolation in command context

SourceSKILL.md
1633if (address.district) parts.push(`อ.${address.district}`);
medium line 1634

Template literal with variable interpolation in command context

SourceSKILL.md
1634if (address.province) parts.push(`จ.${address.province}`);
medium line 1689

Template literal with variable interpolation in command context

SourceSKILL.md
1689url.searchParams.set('address', `${address}, Thailand`);
medium line 1716

Template literal with variable interpolation in command context

SourceSKILL.md
1716url.searchParams.set('latlng', `${lat},${lng}`);
medium line 1803

Template literal with variable interpolation in command context

SourceSKILL.md
1803return `${Math.round(meters)} ม.`;
medium line 1805

Template literal with variable interpolation in command context

SourceSKILL.md
1805return `${(meters / 1000).toFixed(1)} กม.`;
medium line 2354

Template literal with variable interpolation in command context

SourceSKILL.md
2354const response = await fetch(`${this.apiBase}/richmenu`, {
medium line 2357

Template literal with variable interpolation in command context

SourceSKILL.md
2357'Authorization': `Bearer ${this.accessToken}`,
medium line 2373

Template literal with variable interpolation in command context

SourceSKILL.md
2373await fetch(`${this.apiBase}/richmenu/${richMenuId}/content`, {
medium line 2376

Template literal with variable interpolation in command context

SourceSKILL.md
2376'Authorization': `Bearer ${this.accessToken}`,
medium line 2385

Template literal with variable interpolation in command context

SourceSKILL.md
2385await fetch(`${this.apiBase}/user/${userId}/richmenu/${richMenuId}`, {
medium line 2388

Template literal with variable interpolation in command context

SourceSKILL.md
2388'Authorization': `Bearer ${this.accessToken}`
medium line 2395

Template literal with variable interpolation in command context

SourceSKILL.md
2395await fetch(`${this.apiBase}/richmenu/${richMenuId}/users`, {
medium line 2398

Template literal with variable interpolation in command context

SourceSKILL.md
2398'Authorization': `Bearer ${this.accessToken}`,
medium line 2407

Template literal with variable interpolation in command context

SourceSKILL.md
2407await fetch(`${this.apiBase}/richmenu/${richMenuId}`, {
medium line 2410

Template literal with variable interpolation in command context

SourceSKILL.md
2410'Authorization': `Bearer ${this.accessToken}`
medium line 2417

Template literal with variable interpolation in command context

SourceSKILL.md
2417const response = await fetch(`${this.apiBase}/user/${userId}/richmenu`, {
medium line 2419

Template literal with variable interpolation in command context

SourceSKILL.md
2419'Authorization': `Bearer ${this.accessToken}`
medium line 2431

Template literal with variable interpolation in command context

SourceSKILL.md
2431await fetch(`${this.apiBase}/user/${userId}/richmenu`, {
medium line 2434

Template literal with variable interpolation in command context

SourceSKILL.md
2434'Authorization': `Bearer ${this.accessToken}`
medium line 2441

Template literal with variable interpolation in command context

SourceSKILL.md
2441const response = await fetch(`${this.apiBase}/richmenu/list`, {
medium line 2443

Template literal with variable interpolation in command context

SourceSKILL.md
2443'Authorization': `Bearer ${this.accessToken}`
medium line 2543

Template literal with variable interpolation in command context

SourceSKILL.md
2543altText: `งาน ${job.ref}`,
medium line 2552

Template literal with variable interpolation in command context

SourceSKILL.md
2552text: `งานที่ ${job.ref}`,
medium line 2816

Template literal with variable interpolation in command context

SourceSKILL.md
2816'Authorization': `Bearer ${this.config.accessToken}`,
medium line 2843

Template literal with variable interpolation in command context

SourceSKILL.md
2843'Authorization': `Bearer ${this.config.accessToken}`
medium line 2860

Template literal with variable interpolation in command context

SourceSKILL.md
2860'Authorization': `Bearer ${this.config.accessToken}`,
medium line 3063

Template literal with variable interpolation in command context

SourceSKILL.md
3063const filename = `${user.id}/${Date.now()}-${crypto.randomUUID()}.${ext}`;
medium line 3123

Template literal with variable interpolation in command context

SourceSKILL.md
3123if (cronKey !== `Bearer ${Deno.env.get('CRON_SECRET')}`) {
medium line 3149

Template literal with variable interpolation in command context

SourceSKILL.md
3149const message = `
medium line 3168

Template literal with variable interpolation in command context

SourceSKILL.md
3168'Authorization': `Bearer ${LINE_NOTIFY_TOKEN}`,
medium line 3208

Template literal with variable interpolation in command context

SourceSKILL.md
3208super(`${resource} not found`, 404, 'NOT_FOUND');
medium line 3359

Template literal with variable interpolation in command context

SourceSKILL.md
3359return { error: `${firstError.path.join('.')}: ${firstError.message}` };
medium line 3561

Template literal with variable interpolation in command context

SourceSKILL.md
3561error: rules.message || `Minimum ${rules.minLength} characters required`
medium line 3569

Template literal with variable interpolation in command context

SourceSKILL.md
3569error: rules.message || `Maximum ${rules.maxLength} characters allowed`
medium line 3937

Template literal with variable interpolation in command context

SourceSKILL.md
3937document.documentElement.style.setProperty('--viewport-width', `${info.width}px`);
medium line 3938

Template literal with variable interpolation in command context

SourceSKILL.md
3938document.documentElement.style.setProperty('--viewport-height', `${info.height}px`);
medium line 3939

Template literal with variable interpolation in command context

SourceSKILL.md
3939document.documentElement.style.setProperty('--safe-top', `${insets.top}px`);
medium line 3940

Template literal with variable interpolation in command context

SourceSKILL.md
3940document.documentElement.style.setProperty('--safe-bottom', `${insets.bottom}px`);
medium line 4403

Template literal with variable interpolation in command context

SourceSKILL.md
4403html: `ข้อมูลของคุณ: <pre>${JSON.stringify(result.value)}</pre>`,
medium line 4500

Template literal with variable interpolation in command context

SourceSKILL.md
4500html: `
medium line 4578

Template literal with variable interpolation in command context

SourceSKILL.md
4578html: `
medium line 4837

Template literal with variable interpolation in command context

SourceSKILL.md
4837<div className={`bg-white rounded-lg border border-gray-100 ${sizeClasses[size]} shadow-sm`}>
medium line 4851

Template literal with variable interpolation in command context

SourceSKILL.md
4851<div className={`font-bold text-gray-800 ${valueSizeClasses[size]} tracking-tight mb-1`}>
medium line 4861

Template literal with variable interpolation in command context

SourceSKILL.md
4861<span className={`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-medium ${trendColors[trend]}`}>
medium line 4923

Template literal with variable interpolation in command context

SourceSKILL.md
4923className={`p-5 rounded-lg border ${statusColors[item.status]}`}
medium line 5043

Template literal with variable interpolation in command context

SourceSKILL.md
5043return `${context.parsed.y.toLocaleString('th-TH')}`;
medium line 5136

Template literal with variable interpolation in command context

SourceSKILL.md
5136return `${context.label}: ${value.toLocaleString('th-TH')} (${percentage}%)`;
medium line 5171

Template literal with variable interpolation in command context

SourceSKILL.md
5171header.innerHTML = `
medium line 5199

Template literal with variable interpolation in command context

SourceSKILL.md
5199const trendHtml = options.change !== undefined ? `
medium line 5210

Template literal with variable interpolation in command context

SourceSKILL.md
5210card.innerHTML = `
medium line 5225

Template literal with variable interpolation in command context

SourceSKILL.md
5225section.innerHTML = `
medium line 5326

Template literal with variable interpolation in command context

SourceSKILL.md
5326return `<span class="${bg} ${text} px-3 py-1 rounded-full text-xs font-medium inline-flex items-center gap-2">
medium line 5729

Template literal with variable interpolation in command context

SourceSKILL.md
5729query = query.like(filter.field, `%${filter.value}%`);
medium line 5851

Template literal with variable interpolation in command context

SourceSKILL.md
5851const filename = `${options.filename}_${timestamp}.${options.format}`;
medium line 5924

Template literal with variable interpolation in command context

SourceSKILL.md
5924printWindow.document.write(`
medium line 5932

Template literal with variable interpolation in command context

SourceSKILL.md
5932@page { ${options.orientation ? `size: A4 ${options.orientation};` : ''} }
medium line 5966

Template literal with variable interpolation in command context

SourceSKILL.md
5966const html = `
medium line 6047

Template literal with variable interpolation in command context

SourceSKILL.md
6047title: `ใบรับงาน ${job.ref}`,
medium line 6087

Template literal with variable interpolation in command context

SourceSKILL.md
6087id ? `${resource} with id ${id} not found` : `${resource} not found`,
medium line 6274

Template literal with variable interpolation in command context

SourceSKILL.md
6274`%c[${entry.level.toUpperCase()}] ${entry.message}`,
medium line 6505

Template literal with variable interpolation in command context

SourceSKILL.md
6505const url = new URL(`${SUPABASE_URL}/storage/v1/object/public/${STORAGE_BUCKET}/${path}`);
medium line 6533

Template literal with variable interpolation in command context

SourceSKILL.md
6533.map(size => `${getOptimizedImageUrl(path, { width: size, quality })} ${size}w`)
medium line 6644

Template literal with variable interpolation in command context

SourceSKILL.md
6644if (document.querySelector(`script[src="${src}"]`)) {
medium line 6655

Template literal with variable interpolation in command context

SourceSKILL.md
6655script.onerror = () => reject(new Error(`Failed to load script: ${src}`));
medium line 6739

Template literal with variable interpolation in command context

SourceSKILL.md
6739email: `test-${Date.now()}@example.com`,
medium line 6759

Template literal with variable interpolation in command context

SourceSKILL.md
6759ref: `TEST-${Date.now()}`,
medium line 6909

Template literal with variable interpolation in command context

SourceSKILL.md
6909job: (id: string) => `/api/v1/jobs/${id}`,
medium line 6910

Template literal with variable interpolation in command context

SourceSKILL.md
6910jobStops: (id: string) => `/api/v1/jobs/${id}/stops`,
medium line 6911

Template literal with variable interpolation in command context

SourceSKILL.md
6911jobCheckin: (id: string) => `/api/v1/jobs/${id}/checkin`,
medium line 6912

Template literal with variable interpolation in command context

SourceSKILL.md
6912jobCheckout: (id: string) => `/api/v1/jobs/${id}/checkout`,
medium line 6916

Template literal with variable interpolation in command context

SourceSKILL.md
6916driver: (id: string) => `/api/v1/drivers/${id}`,
medium line 6917

Template literal with variable interpolation in command context

SourceSKILL.md
6917driverStatus: (id: string) => `/api/v1/drivers/${id}/status`,
medium line 6918

Template literal with variable interpolation in command context

SourceSKILL.md
6918driverLocation: (id: string) => `/api/v1/drivers/${id}/location`,
medium line 6922

Template literal with variable interpolation in command context

SourceSKILL.md
6922station: (id: string) => `/api/v1/stations/${id}`,
medium line 6926

Template literal with variable interpolation in command context

SourceSKILL.md
6926driverReport: (id: string, period: string) => `/api/v1/reports/drivers/${id}/${period}`
medium line 6985

Template literal with variable interpolation in command context

SourceSKILL.md
6985notFound: (resource: string) => errorResponse(`${resource} not found`, 'NOT_FOUND', 404),
medium line 7016

Template literal with variable interpolation in command context

SourceSKILL.md
7016const url = `${this.config.baseUrl}${endpoint}`;
medium line 7027

Template literal with variable interpolation in command context

SourceSKILL.md
7027headers['Authorization'] = `Bearer ${token}`;
medium line 7179

Template literal with variable interpolation in command context

SourceSKILL.md
7179console.group(`Action: ${action.type}`);
medium line 7337

Template literal with variable interpolation in command context

SourceSKILL.md
7337return `${token}.${signature}`;
medium line 7411

Template literal with variable interpolation in command context

SourceSKILL.md
7411headers.set('Strict-Transport-Security', `max-age=${maxAge}${includeSub ? '; includeSubDomains' : ''}`);
medium line 7420

Template literal with variable interpolation in command context

SourceSKILL.md
7420.map(([directive, value]) => `${directive} ${value}`)
medium line 7569

Template literal with variable interpolation in command context

SourceSKILL.md
7569```yaml
medium line 7647

Template literal with variable interpolation in command context

SourceSKILL.md
7647```yaml
medium line 7737

Template literal with variable interpolation in command context

SourceSKILL.md
7737console.log(`${c.name.padEnd(25)} [${c.status.toUpperCase()}]`);
medium line 7738

Template literal with variable interpolation in command context

SourceSKILL.md
7738console.log(` ${c.message}`);
medium line 7965

Template literal with variable interpolation in command context

SourceSKILL.md
7965const filename = `signatures/${jobId}/${Date.now()}.png`;
medium line 8022

Template literal with variable interpolation in command context

SourceSKILL.md
8022throw new Error(`Element ${elementId} not found`);
medium line 8067

Template literal with variable interpolation in command context

SourceSKILL.md
8067return `${baseUrl}/job/${jobRef}`;
medium line 8175

Template literal with variable interpolation in command context

SourceSKILL.md
8175throw new Error(`Element ${elementId} not found`);
low line 3165

Fetch to external URL

SourceSKILL.md
3165await fetch('https://notify-api.line.me/api/notify', {
medium line 22

Webhook reference - potential data exfiltration

SourceSKILL.md
22| **APIs & Integration** | LINE Platform, REST APIs, Webhooks, OAuth, Third-party integrations |
low line 320

Webhook reference - potential data exfiltration

SourceSKILL.md
320// Webhook signature verification
low line 332

Webhook reference - potential data exfiltration

SourceSKILL.md
332// Express webhook handler
low line 337

Webhook reference - potential data exfiltration

SourceSKILL.md
337app.post('/webhook',
medium line 6771

Webhook reference - potential data exfiltration

SourceSKILL.md
6771### Mock Webhook Testing
low line 6774

Webhook reference - potential data exfiltration

SourceSKILL.md
6774// tests/mocks/line-webhook.ts
low line 6776

Webhook reference - potential data exfiltration

SourceSKILL.md
6776* Mock LINE webhook for testing
low line 6779

Webhook reference - potential data exfiltration

SourceSKILL.md
6779export interface MockWebhookEvent {
low line 6787

Webhook reference - potential data exfiltration

SourceSKILL.md
6787export function createMockWebhook(events: MockWebhookEvent[]): {
low line 6799

Webhook reference - potential data exfiltration

SourceSKILL.md
6799// Mock webhook request
low line 6800

Webhook reference - potential data exfiltration

SourceSKILL.md
6800export function mockWebhookRequest(events: MockWebhookEvent[]): Request {
low line 6801

Webhook reference - potential data exfiltration

SourceSKILL.md
6801const { body, signature } = createMockWebhook(events);
low line 6803

Webhook reference - potential data exfiltration

SourceSKILL.md
6803return new Request('https://example.com/webhook/line', {
low line 245

Access to .env file

SourceSKILL.md
245const LIFF_ID = import.meta.env.VITE_LIFF_ID;
low line 341

Access to .env file

SourceSKILL.md
341if (!verifyLineSignature(req.body.toString(), signature, process.env.LINE_CHANNEL_SECRET!)) {
low line 709

Access to .env file

SourceSKILL.md
709Deno.env.get('SUPABASE_URL')!,
low line 710

Access to .env file

SourceSKILL.md
710Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
low line 2897

Access to .env file

SourceSKILL.md
2897const supabaseUrl = Deno.env.get('SUPABASE_URL')!;
low line 2898

Access to .env file

SourceSKILL.md
2898const supabaseServiceKey = Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!;
low line 3000

Access to .env file

SourceSKILL.md
3000const supabaseUrl = Deno.env.get('SUPABASE_URL')!;
low line 3001

Access to .env file

SourceSKILL.md
3001const supabaseServiceKey = Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!;
low line 3116

Access to .env file

SourceSKILL.md
3116const supabaseUrl = Deno.env.get('SUPABASE_URL')!;
low line 3117

Access to .env file

SourceSKILL.md
3117const supabaseServiceKey = Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!;
low line 3118

Access to .env file

SourceSKILL.md
3118const LINE_NOTIFY_TOKEN = Deno.env.get('LINE_NOTIFY_TOKEN')!;
low line 3123

Access to .env file

SourceSKILL.md
3123if (cronKey !== `Bearer ${Deno.env.get('CRON_SECRET')}`) {
low line 6266

Access to .env file

SourceSKILL.md
6266if (import.meta.env.DEV) {
low line 6731

Access to .env file

SourceSKILL.md
6731const testSupabaseUrl = process.env.SUPABASE_TEST_URL!;
low line 6732

Access to .env file

SourceSKILL.md
6732const testSupabaseKey = process.env.SUPABASE_TEST_ANON_KEY!;
low line 7710

Access to .env file

SourceSKILL.md
7710process.env.DATABASE_URL && process.env.SUPABASE_URL,
medium line 543

Prompting for password/secret input

SourceSKILL.md
543await page.fill('[data-testid="password-input"]', 'password123');
medium line 4266

Prompting for password/secret input

SourceSKILL.md
4266// Password input
low line 4005

Base64 decode via atob()

SourceSKILL.md
4005const rawData = window.atob(base64);
medium line 7498

Hex-encoded characters

SourceSKILL.md
7498return unsafe.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, char => {
medium line 7501

Hex-encoded characters

SourceSKILL.md
7501case '\x08': return '\\b';
medium line 7502

Hex-encoded characters

SourceSKILL.md
7502case '\x09': return '\\t';
medium line 7503

Hex-encoded characters

SourceSKILL.md
7503case '\x1a': return '\\z';
low line 383

External URL reference

SourceSKILL.md
383allow_origins=os.getenv("ALLOWED_ORIGINS", "http://localhost:3000").split(","),
low line 702

External URL reference

SourceSKILL.md
702import { serve } from 'https://deno.land/[email protected]/http/server.ts';
low line 703

External URL reference

SourceSKILL.md
703import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
low line 1688

External URL reference

SourceSKILL.md
1688const url = new URL('https://maps.googleapis.com/maps/api/geocode/json');
low line 1715

External URL reference

SourceSKILL.md
1715const url = new URL('https://maps.googleapis.com/maps/api/geocode/json');
low line 2331

External URL reference

SourceSKILL.md
2331private apiBase = 'https://api.line.me/v2/bot'
low line 2802

External URL reference

SourceSKILL.md
2802const LINE_NOTIFY_API = 'https://notify-api.line.me/api/notify';
low line 2894

External URL reference

SourceSKILL.md
2894import { serve } from 'https://deno.land/[email protected]/http/server.ts';
low line 2895

External URL reference

SourceSKILL.md
2895import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
low line 2997

External URL reference

SourceSKILL.md
2997import { serve } from 'https://deno.land/[email protected]/http/server.ts';
low line 2998

External URL reference

SourceSKILL.md
2998import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
low line 3113

External URL reference

SourceSKILL.md
3113import { serve } from 'https://deno.land/[email protected]/http/server.ts';
low line 3114

External URL reference

SourceSKILL.md
3114import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
low line 3165

External URL reference

SourceSKILL.md
3165await fetch('https://notify-api.line.me/api/notify', {
low line 3289

External URL reference

SourceSKILL.md
3289import { z } from 'https://deno.land/x/zod/mod.ts';
low line 4033

External URL reference

SourceSKILL.md
4033<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
low line 5343

External URL reference

SourceSKILL.md
5343<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap" rel="stylesheet">
low line 5947

External URL reference

SourceSKILL.md
5947<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@400;700&display=swap" rel="stylesheet">
low line 6172

External URL reference

SourceSKILL.md
6172import * as Sentry from 'https://deno.land/x/[email protected]/index.ts';
low line 6803

External URL reference

SourceSKILL.md
6803return new Request('https://example.com/webhook/line', {
low line 7998

External URL reference

SourceSKILL.md
7998* Load from: https://cdn.jsdelivr.net/npm/[email protected]/qrcode.min.js
low line 8077

External URL reference

SourceSKILL.md
8077* Load from: https://unpkg.com/html5-qrcode
low line 8149

External URL reference

SourceSKILL.md
8149* Using JsBarcode library: https://cdn.jsdelivr.net/npm/[email protected]/dist/JsBarcode.all.min.js
low line 8246

External URL reference

SourceSKILL.md
8246| **Supabase** | https://supabase.com/docs |
low line 8247

External URL reference

SourceSKILL.md
8247| **PostgreSQL** | https://www.postgresql.org/docs/ |
low line 8248

External URL reference

SourceSKILL.md
8248| **LINE Platform** | https://developers.line.biz/ |
low line 8249

External URL reference

SourceSKILL.md
8249| **React** | https://react.dev |
low line 8250

External URL reference

SourceSKILL.md
8250| **TypeScript** | https://www.typescriptlang.org/docs |
low line 8251

External URL reference

SourceSKILL.md
8251| **Vue** | https://vuejs.org |
low line 8252

External URL reference

SourceSKILL.md
8252| **FastAPI** | https://fastapi.tiangolo.com |
low line 8254

External URL reference

SourceSKILL.md
8254| **Playwright** | https://playwright.dev |
low line 8255

External URL reference

SourceSKILL.md
8255| **Google Apps Script** | https://developers.google.com/apps-script |
Scanned on Feb 27, 2026
View Security Dashboard
Installation guide →